导航
导航模块为 3we 平台提供高级运动原语。命令在仿真和硬件上的行为完全一致,规划器自动处理避障、路径平滑和麦克纳姆轮运动学。
move_to(x, y, theta=None)
Section titled “move_to(x, y, theta=None)”在世界坐标系中导航到目标位姿。规划器使用最新的 LiDAR 数据计算无碰撞路径并执行。
await robot.move_to(x=2.0, y=1.5, theta=0.0)参数:
| 参数 | 类型 | 默认值 | 描述 |
|---|---|---|---|
x | float | 必需 | 目标 X 位置,单位为米。 |
y | float | 必需 | 目标 Y 位置,单位为米。 |
theta | float | None | 目标朝向,单位为弧度。如果为 None,则最终朝向不受约束。 |
timeout | float | 30.0 | 尝试到达目标的最大秒数。 |
tolerance | float | 0.05 | 位置容差,单位为米。 |
返回值: MoveResult,包含 success、final_pose、duration、distance_traveled 字段。
move_forward(distance)
Section titled “move_forward(distance)”相对于当前朝向直线前进。
await robot.move_forward(0.5) # move 50 cm forwardrotate(angle)
Section titled “rotate(angle)”原地旋转给定角度。
import mathawait robot.rotate(math.pi / 2) # turn 90 degrees counter-clockwisefollow_path(waypoints)
Section titled “follow_path(waypoints)”执行一系列路径点,中间不停顿。
path = [(0.0, 0.0), (1.0, 0.0), (1.0, 1.0), (0.0, 1.0)]result = await robot.follow_path(path)参数:
| 参数 | 类型 | 默认值 | 描述 |
|---|---|---|---|
waypoints | list[tuple] | 必需 | (x, y) 或 (x, y, theta) 元组列表。 |
speed | float | 0.3 | 沿路径的目标速度(m/s)。 |
lookahead | float | 0.2 | 纯追踪前瞻距离(米)。 |
explore(duration=60.0)
Section titled “explore(duration=60.0)”使用基于前沿的策略自主探索环境。适用于地图构建。
await robot.explore(duration=120.0) # explore for 2 minutesoccupancy_grid = robot.get_map()参数:
| 参数 | 类型 | 默认值 | 描述 |
|---|---|---|---|
duration | float | 60.0 | 最大探索时间,单位为秒。 |
strategy | str | "frontier" | 探索算法:"frontier"、"random"、"coverage"。 |
用于直接速度控制(如遥操作或自定义控制器):
# Holonomic velocity: vx (forward), vy (strafe), omega (rotation)robot.set_velocity(vx=0.2, vy=0.0, omega=0.1)调用 robot.stop() 可立即停止所有运动。
所有高级命令默认启用避障功能。通过以下方式配置:
robot.navigation.set_avoidance( enabled=True, safety_margin=0.15, # meters from obstacle reactive=True # enable reactive dodge maneuvers)在探索或导航过程中,可以访问构建的地图:
grid = robot.get_map()# OccupancyGrid with .data (numpy array), .resolution, .origin