ROS基础学习(根据Gmapping接口需求运行建图)(十二)

本文介绍了如何在ROS中使用Gmapping进行SLAM建图,包括设置map_update_interval和linearUpdate参数,以及如何查看和调整tf关系。通过一个模拟RoboCup场景的launch文件,展示了如何运行Gmapping、rviz和键盘控制节点。还提到了在低算力设备上的性能优化策略。
摘要由CSDN通过智能技术生成

Gmapping

gmapping接口

在这里插入图片描述

订阅中:必须的tf关系列表
在这里插入图片描述在这里插入图片描述

gmapping的输如:
在这里插入图片描述

gmapping的输出:
地图的基本信息:地图加载时间,地图分辨率,地图的宽和高,地图的原点坐标
地图的占据栅格地图数据:可以在rviz显示
机器人定位的置信度:越大定位错误可能性越大
map到odom的tf关系

运行大佬给的仿真

//模拟RoboCub@Home家庭服务机器人比赛的一个场景
roslaunch wpr_simulation wpb_stage_robocup.launch
rostopic list
rostopic echo /scan --noarr
rosrun rqt_tf_tree rqt_tf_tree

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

运行Gmapping建图

roslaunch wpr_simulation wpb_stage_robocup.launch
rosrun gmapping slam_gmapping
rviz
rosrun wpr_simulation keyboard_vel_ctrl 

使用launch运行

<launch>
    <!--$(find wpr_simulation) 相当于 ~/catkin_ws/src/wpr_simulation-->
    <!--如果在实体机上运行,需要将这个launch文件换成机器人启动的launch文件-->
    <include file="$(find wpr_simulation)/launch/wpb_stage_robocup.launch"/>
    <node pkg="gmapping" type="slam_gmapping" name ="slam_gmapping">
    	<param name="map_update_interval" value="0.5"/>
    	<param name="linearUpdate" value="0.1"/>
    </node>
    <node pkg="rviz" type="rviz" name ="rviz" args="-d $(find slam_pkg)/rviz/slam.rviz"/>
    <node pkg="wpr_simulation" type="keyboard_vel_ctrl" name ="keyboard_vel_ctrl"/>

</launch>

Gmapping的参数

在这里插入图片描述
接口相关,可以修改如果tf名称不一样可以进行设置自定义的tf树名称
性能参数,可以在树莓派等底算力的设备上运行,只是损失了一些精度(一般调iskip和throttle_scans的值)
在这里插入图片描述

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
你好!关于ROS建图,gmapping是一个常用的SLAM(Simultaneous Localization and Mapping)算法,用于在机器人移动过程同时进行定位和地图构建。你可以通过以下步骤来使用gmapping进行建图: 1. 首先,确保你已经安装了ROS和gmapping软件包。如果没有安装,可以通过以下命令进行安装: ``` sudo apt-get install ros-<distro>-slam-gmapping ``` 其`<distro>`是你使用的ROS发行版名称,例如`melodic`、`noetic`等。 2. 创建一个ROS工作空间(如果你还没有创建): ``` mkdir -p ~/catkin_ws/src cd ~/catkin_ws/ catkin_make ``` 3. 下载并编译gmapping软件包: ``` cd ~/catkin_ws/src git clone https://github.com/ros-perception/slam_gmapping.git cd .. catkin_make ``` 4. 启动一个ROS核心节点: ``` roscore ``` 5. 启动你的机器人(如果你有一个真实的机器人)或者启动一个仿真环境。 6. 启动gmapping节点,并订阅机器人的传感器数据: ``` roslaunch slam_gmapping gmapping.launch ``` 7. 在另一个终端,启动机器人的驱动程序(如果有)或者模拟机器人的运动: ``` roslaunch YOUR_ROBOT_DESCRIPTION_PACKAGE YOUR_ROBOT_DESCRIPTION.launch ``` 8. 在另一个终端,启动RViz可视化工具,查看地图的构建过程: ``` rviz ``` 在RViz,你可以添加一个"Map"显示来查看实时构建的地图。你还可以添加其他传感器数据的显示,如激光雷达数据。 9. 移动机器人以便gmapping能够收集足够的数据进行建图。在仿真环境,你可以使用键盘或者发布控制指令的节点来控制机器人的移动。 10. 当你认为地图已经构建好了,你可以保存地图: ``` rosrun map_server map_saver -f my_map ``` 这将在当前目录下保存一个名为"my_map"的地图文件。 希望这些步骤能帮助到你!如果你有其他问题,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值