当前位置: 首页 > ds >正文

ROS move base 简易调试

本地地图加载

本地地图加载参考之前文章

Move base配置

<launch><node pkg="move_base" type="move_base" name="move_base" output="screen"><!-- 加载全局规划器 (二选一) --><param name="base_global_planner" value="global_planner/GlobalPlanner" /><!-- 或使用navfn:<param name="base_global_planner" value="navfn/NavfnROS" /> --><!-- 加载局部规划器 --><param name="base_local_planner" value="base_local_planner/TrajectoryPlannerROS" /><param name="global_costmap/transform_tolerance" value="0.5" /><param name="local_costmap/transform_tolerance" value="0.5" /><param name="trajectory_planner/transform_tolerance" value="0.5" /><!-- 加载配置文件 --><rosparam file="$(find z_move_base)/config/costmap_common_params.yaml" command="load" ns="global_costmap" /><rosparam file="$(find z_move_base)/config/costmap_common_params.yaml" command="load" ns="local_costmap" /><rosparam file="$(find z_move_base)/config/global_costmap_params.yaml" command="load" /><rosparam file="$(find z_move_base)/config/local_costmap_params.yaml" command="load" /><rosparam file="$(find z_move_base)/config/base_local_planner_params.yaml" command="load" /></node>
</launch>

注意,tolerance一定设置,否则无法正常工作

配置地图

在ROS包中创建配置文件(如my_robot_config目录):
​​(1) 通用代价地图参数 (costmap_common_params.yaml)​​

obstacle_range: 2.5        # 障碍物探测范围
raytrace_range: 3.0         # 清理自由空间的探测范围
footprint: [[-0.2, -0.2], [-0.2, 0.2], [0.2, 0.2], [0.2, -0.2]]  # 机器人轮廓
inflation_radius: 0.15     # 膨胀半径
cost_scaling_factor: 10.0   # 代价缩放因子

传感器配置(根据实际传感器修改)

observation_sources: scan
scan: {sensor_frame: laser, data_type: LaserScan, topic: scan, marking: true, clearing: true}

​​(2) 全局代价地图参数 (global_costmap_params.yaml)​​

global_costmap:global_frame: map          # 全局坐标系robot_base_frame: base_link  # 机器人基坐标系update_frequency: 1.0        # 更新频率publish_frequency: 0.5static_map: true             # 使用静态地图rolling_window: false        # 禁用滚动窗口(全局地图固定)

配置局部地图

​​(3) 局部代价地图参数 (local_costmap_params.yaml)​​

local_costmap:global_frame: odom           # 局部使用odom坐标系robot_base_frame: base_linkupdate_frequency: 5.0publish_frequency: 2.0static_map: false            # 动态更新局部地图rolling_window: true         # 启用滚动窗口width: 3.0                   # 窗口宽/高 (单位:米)height: 3.0resolution: 0.05             # 分辨率 (与cost_map一致)

配置规划器

​​(4) 规划器参数 (base_local_planner_params.yaml)​​

TrajectoryPlannerROS:  # 使用默认的局部规划器max_vel_x: 0.3         # 最大线速度min_vel_x: 0.1max_vel_theta: 0.5     # 最大角速度xy_goal_tolerance: 0.1  # 目标位置容差yaw_goal_tolerance: 0.05 # 目标角度容差sim_time: 1.0          # 预测轨迹时长

tf发布

rosrun tf static_transform_publisher 0 0 0 0 0 0 odom base_link 1000
rosrun tf static_transform_publisher 300 50 0 0 0 0 map odom 1000
http://www.xdnf.cn/news/13544.html

相关文章:

  • 使用智能表格做项目工时管理
  • 软件开发和嵌入式开发岗位的面试题
  • 【深尚想】SN74HCT244DWR缓冲器/驱动器TI逻辑芯片 电子元器件解析
  • 【题解】P1156 垃圾陷阱
  • “新京味”小柯音乐剧《三里屯42》 在小柯剧场6月全新开演
  • Oraclede 的体系结构
  • pycharm-continue插件久后使用的注意事项
  • Java是实现大根堆
  • Unreal从入门到精通之 碰撞响应 详解
  • 【JavaScript】 HTTP Cookie 核心知识梳理与常用的封装实现
  • 数字孪生城市崛起:智慧城市生态中的技术协同与治理变革
  • DSP使用三角函数问题
  • 卷积神经网络参数量计算
  • 常用ADB命令
  • AIGC 基础篇 Python基础 04 for循环与while循环
  • Java 语言特性(面试系列2)
  • 自动K码对齐
  • Kotlin基础语法一
  • float负数浮点值强转uint16_t
  • NIFI的处理器:ConsumeMQTT 2.4.0
  • 【Zephyr 系列 17】多协议网关实战:BLE + LoRa + UART + MQTT 综合调度系统设计与实现
  • CoW模式、线程的本地存储和生产者-消费者模式
  • 线程分离属性
  • 【Python】 -- 趣味代码 - 扫雷游戏
  • 使用obsutil工具在OBS上完成基本的数据存取【玩转华为云】
  • LLM 推理:LLM 路由和分层技术的表征和分析
  • 进行性核上性麻痹护理指南:全维度守护健康
  • LIGHT (数据库操作)
  • 【Css】css修改滚动条的样式
  • MySQL InnoDB更新流程