根据激光雷达反馈数据实现“激光雷达避障”。默认持续向前运动;当“前方扇区”的最小距离小于 stop_distance 时,自动选择更空的一侧转向绕行;当前方最小距离重新大于 clear_distance 时恢复直行。
内置节点 obstacle_avoidance 订阅 scan ( sensor_msgs/msg/LaserScan ),并发布 cmd_vel ( geometry_msgs/Twist )控制底盘。
以OriginBot智能小车为例,先启动小车底盘运动控制,启用激光雷达。
该节点默认绑定可以直接通过平台节点管理菜单启动。
| 参数名 | 描述 | 类型 | 默认值 | 说明 |
|---|---|---|---|---|
| scan_topic | 订阅主题 | String | scan | 订阅激光雷达发布的 sensor_msgs/LaserScan 数据话题。 |
| cmd_topic | 速度指令主题 | String | cmd_vel | 发布 geometry_msgs/Twist 控制底盘。 |
| forward_speed | 直行速度 | double | 0.05 | 正常前进时的线速度(m/s)。 |
| turn_speed | 转向角速度 | double | 0.9 | 进入转向状态时的恒定角速度(rad/s)。 |
| cmd_rate_hz | 指令频率 | double | 15.0 | 定时下发频率(Hz),用于保活(部分底盘需持续心跳)。 |
| stop_distance | 停止阈值 | double | 0.20 | 前方扇区最小距离小于此值时进入转向状态(m)。 |
| clear_distance | 清空阈值 | double | 0.50 | 前方扇区最小距离大于此值时恢复直行(m)。 |
| front_sector_deg | 前方扇区半角 | double | 25.0 | 检测正前方最小距离的扇区半角(度)。 |
| side_sector_deg | 侧向扇区半角 | double | 70.0 | 比较左右平均距离、决定转向方向的扇区半角(度)。 |
| tie_break_turn_left | 平手优先左转 | bool | true | 当左右平均距离相等或均无效时是否优先左转( true =左转, false =右转)。 |
| scan_timeout_sec | 扫描超时 | double | 0.5 | 超过此秒数未收到有效激光雷达数据将立即急停。 |
“激光雷达避障”节点,通过实时获取雷达检测数据,调整底盘运动餐数据,从而达到避障效果。进入该节点通信页面,可实时查看对底盘的控制数据。

点击发布主题“/cmd_vel”中的“订阅”按钮,类型选择“文字”,可查看线速度/角速度。