该节需要完成前面一节内容实现turtlebot3正常创建新地图,才可以实现本节的自动避障和导航
自动避障
- 启动虚拟机器人有环境的仿真
export SVGA_VGPU10=0
source ./devel/setup.bash # 之前已经写入.bashrc,可以忽略此步骤
export TURTLEBOT3_MODEL=burger # 之前已经写入.bashrc,可以忽略此步骤
roslaunch turtlebot3_gazebo turtlebot3_world.launch
- 键盘控制
打开新端口
# 如果上面的命令已经写入.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
启动导航时报错
这个错好像是没什么,但是可能需要等一段时间,我是多执行了几次,过一会就好了文章来源:https://www.toymoban.com/news/detail-432827.html
参考
turtlebot3实现仿真环境下的导航
【ros实践2】turtlebot3建图与导航文章来源地址https://www.toymoban.com/news/detail-432827.html
到了这里,关于机器人操作系统ROS(11)Turtlebot3自动避障及其地图构建和导航的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!