【ROS2机器人入门到实战】使用SLAM_TOOLBOX完成建图

【ROS2机器人入门到实战】使用SLAM_TOOLBOX完成建图

5.使用SLAM_TOOLBOX完成建图

写在前面

当前平台文章汇总地址:ROS2机器人从入门到实战获取完整教程及配套资料代码,请关注公众号<鱼香ROS>获取教程配套机器人开发平台:两驱版| 四驱版为方便交流,搭建了机器人技术问答社区:地址 fishros.org.cn

SLAM 是通过传感器获取环境信息然后进行定位和建图。在 ROS 2 中,提供了很多的 SLAM 功能包,比如 slam_toolbox,cartographer_ros 和 rtabmap_slam 等。针对二维场景,其中 slam_toolbox 开箱即用,上手较为简单,就用它类来构建我们的第一张地图。

一、安装slam-toolbox

slam_toolbox 是一套用于2D SLAM的开源工具,使用 apt 可以方便的进行安装,命令如下:

sudo apt install ros-$ROS_DISTRO-slam-toolbox

二、启动底盘和雷达

1.运行TF转换Launch-Bringup

source install/setup.bash

ros2 launch fishbot_bringup fishbot_bringup.launch.py

2.运行Agent

sudo docker run -it --rm -v /dev:/dev -v /dev/shm:/dev/shm --privileged --net=host microros/micro-ros-agent:$ROS_DISTRO udp4 --port 8888 -v6

3.启动雷达

直接使用Docker:

xhost + && sudo docker run -it --rm -v /dev:/dev -v /dev/shm:/dev/shm --privileged -v /tmp/.X11-unix:/tmp/.X11-unix --device /dev/snd -e DISPLAY=unix$DISPLAY -p 8889:8888 registry.cn-hangzhou.aliyuncs.com/fishros/fishbot_laser

如果不用Docker需要修改下代码,因为 ydlidar_launch.py 会发布 base_link 和 laser_frame 之间的坐标变换,这和使用URDF发布的相冲突,所以需要做一次修改再运行:

def generate_launch_description():

...

return LaunchDescription([

params_declare,

driver_node,

#tf2_node, ----注释这一行就可以了-----

])

确定有雷达话题后,我们就可以运行建图了。

三、运行建图

接着打开一个新的终端, 入下面的命令,启动slam_toolbox 的在线建图:

ros2 launch slam_toolbox online_async_launch.py

---

INFO] [launch]: All log files can be found below /home/fishros/.ros/log/2023-05-25-16-47-11-319871-fishros-VirtualBox-11288

[INFO] [launch]: Default logging verbosity is set to INFO

[INFO] [async_slam_toolbox_node-1]: process started with pid [11290]

[async_slam_toolbox_node-1] [INFO] [1685004431.442212575] [slam_toolbox]: Node using stack size 40000000

[async_slam_toolbox_node-1] [INFO] [1685004431.503891373] [slam_toolbox]: Using solver plugin solver_plugins::CeresSolver

[async_slam_toolbox_node-1] [INFO] [1685004431.505007754] [slam_toolbox]: CeresSolver: Using SCHUR_JACOBI preconditioner.

[async_slam_toolbox_node-1] Info: clipped range threshold to be within minimum and maximum range!

[async_slam_toolbox_node-1] [WARN] [1685004431.658413039] [slam_toolbox]: maximum laser range setting (20.0 m) exceeds the capabilities of the used Lidar (8.0 m)

[async_slam_toolbox_node-1] Registering sensor: [Custom Described Lidar]

slam-toolbox 的输入有两个,第一个是订阅来自雷达的 /scan 话题,用于获取雷达数据,第二个是获取里程计坐标系 odom 到机器人坐标系 base_footprint 之间的变换。这些数据都是有时间戳的,所以在上面的命令中将 use_sim_time 参数的值设置为 True 表示使用仿真的时间,以防止因时间戳造成数据不合法。

用RVIZ2可视化图像

打开 RViz,修改 Fixed Frame 为 map,接着通过 Add/By Topic 添加 /map 话题,也可以添加 TF 和 RobotModel 等你感兴趣的话题进行显示,最终配置及效果如下图所示。

遥控机器人建图(记得减速哦)

ros2 run teleop_twist_keyboard teleop_twist_keyboard

房间已经探索了差不多后,接着我们来将地图保存下来。

相关推荐

手机外屏碎了会怎么样?(了解手机外屏碎裂的后果及处理方法)
怎样让汽车爆炸
bt365体育在线官网

怎样让汽车爆炸

📅 08-29 👁️ 7634
相差31岁恩爱25年,74岁张艺谋衰老佝偻,43岁陈婷愈发娇艳
5种方法永久保存网页内容
365体育投注3

5种方法永久保存网页内容

📅 07-13 👁️ 4016
智能手机格式化在哪里
365体育投注3

智能手机格式化在哪里

📅 09-14 👁️ 6093
王于兴师赵云充值多少
www.28365-365.com

王于兴师赵云充值多少

📅 08-23 👁️ 9271
让我用干货告诉你,为什么伍佰是「最被低估的摇滚教父」?
AI配音软件哪个好?8款热门配音工具深度测评
bt365体育在线官网

AI配音软件哪个好?8款热门配音工具深度测评

📅 08-09 👁️ 3678
笔记本电脑评测
bt365体育在线官网

笔记本电脑评测

📅 08-29 👁️ 7139