0


机器人操作系统ROS(11)Turtlebot3自动避障及其地图构建和导航

该节需要完成前面一节内容实现turtlebot3正常创建新地图,才可以实现本节的自动避障和导航

自动避障

  1. 启动虚拟机器人有环境的仿真
exportSVGA_VGPU10=0source ./devel/setup.bash # 之前已经写入.bashrc,可以忽略此步骤exportTURTLEBOT3_MODEL=burger # 之前已经写入.bashrc,可以忽略此步骤
roslaunch turtlebot3_gazebo turtlebot3_world.launch
  1. 键盘控制 打开新端口
# 如果上面的命令已经写入.bashrc,如果未写入。每次打开新端口都需要执行一次
roslaunch turtlebot3_teleop turtlebot3_teleop_key.launch

在这里插入图片描述
3. 自动避障
打开新端口

roslaunch turtlebot3_gazebo turtlebot3_simulation.launch

在这里插入图片描述
4. 调用rviz

roslaunch turtlebot3_gazebo turtlebot3_gazebo_rviz.launch

注意:可以通过修改size来变化激光扫描边缘的粗细

在这里插入图片描述

建地图

之前已经启动无需再起世界地图

# 启动世界地图,默认的空白地图环境中加载Turtlebot3机器人
roslaunch turtlebot3_gazebo turtlebot3_world.launch
# 新端口启动slam程序
roslaunch turtlebot3_slam turtlebot3_slam.launch

启动好后可以同步建图了

# 新端口 启动键盘控制移动,,建立全部的地图
roslaunch turtlebot3_teleop turtlebot3_teleop_key.launch
# 如果无法控制,可以再新端口使用自动避障使其自己走
roslaunch turtlebot3_gazebo turtlebot3_simulation.launch

在这里插入图片描述控制turtlebot3四处移动,直到你觉得建图满意。
在这里插入图片描述

建完地图之后,我们运行下面的命令来保存地图:

rosrun map_server map_saver -f ~/map

在这里插入图片描述
这个是地图是保存到当前路径下的。保存为两个文件
在这里插入图片描述

导航

# 加载仿真环境 启动地图
roslaunch turtlebot3_gazebo turtlebot3_world.launch
# 加载这个地图
roslaunch turtlebot3_navigation turtlebot3_navigation.launch map_file:=$HOME/map.yaml # 这个路径根据自己配置,是你的地图路径# 如果启动报警告,就多试几次

效果如下:
在这里插入图片描述

(1)在rviz菜单中按下[2d pose estimate]时,会出现一个绿色箭头,将箭头放置tb3机器人在地图中的位置,并按住鼠标左键,转动绿色箭头使其指向机器人的正前方.这个箭头相当于给机器人一个初始位置和前进方向(暂时这么理解,欢迎大佬纠正)
(2)一切准备就绪后,下面下达移动命令。如果在RViz的菜单中按[2D Nav Goal],会出现一个非常大的绿色箭头。该绿色箭头是指定机器人的目的地的标记,箭头的起点是机器人的x、y位置,箭头方向是机器人的i方向。将此箭头移动到机器人的目的地,然后拖动,以设置方向。机器人将根据创建的地图躲避障碍物,移动到目的地.
在这里插入图片描述
点击
2D Nav Goal
按钮,并拖动设置方向,如图,就可以导航了
在这里插入图片描述

在这里插入图片描述

错误

错误1

启动导航时报错
roslaunch turtlebot3_navigation turtlebot3_navigation.launch map_file:=$HOME/map.yaml
这个错好像是没什么,但是可能需要等一段时间,我是多执行了几次,过一会就好了

参考

turtlebot3实现仿真环境下的导航
【ros实践2】turtlebot3建图与导航


本文转载自: https://blog.csdn.net/qq_38758371/article/details/127034201
版权归原作者 小钊_ 所有, 如有侵权,请联系我们删除。

“机器人操作系统ROS(11)Turtlebot3自动避障及其地图构建和导航”的评论:

还没有评论