turtlebot3 gazebo仿真
依赖基础
-
ros gazebo等,安装见https://blog.csdn.net/weixin_41469272/article/details/105289174
-
turtlebot3系列包
sudo apt install ros-melodic-turtlebot3*
-
slam(这里使用gmapping)
sudo apt install ros-melodic-gmapping
-
navigation
sudo apt install ros-melodic-navigation
1 turtlrbot3 给定目标点,未知地图,自主定位建图及局部规划
- 启动ros master
roscore
注意:打开新终端,运行turtlebot3相关包时,终端都需指定bot类型:即打开终端需执行:export TURTLEBOT3_MODEL=burger
- 启动turtlebot3 gazebo仿真环境
roslaunch turtlebot3_gazebo turtlebot3_house.launch
gazebo中显示turtlebot3及仿真环境
- 启动rviz显示雷达数据
以下方式二选一,嫌麻烦选1,想了解rviz使用选2
1)直接打开写好的rviz配置文件:roslaunch turtlebot3_gazebo turtlebot3_gazebo_rviz.launch
2)自己配置rviz
*1. 终端输入rviz
打开rviz界面
*2. 将global option 下的fixed frame改成odom,因为当前map坐标没有被创建,在执行slam的时候map坐标才会被创建
*3. 点击下方add,添加laserscan ,将topic 设定为scan
此时会在界面中显示雷达点云,默认点云比较小,可以将size值改大一些,如0.05,点云数据会变大清晰。
*4. 点击add,添加tf,则显示出多个坐标系,点击frame,去掉除base_link与odom其余的坐标系 - 打开turtlebot3的键盘控制
roslaunch turtlebot3_teleop turtlebot3_teleop_key.launch
按waxd等按键,观察rviz中base_link的移动是否一致。 - 运行gmapping
rosrun gmapping slam_gmapping
- rviz下add map,topic选择/map,rviz显示slam创建地图
- 在打开的按键控制终端下,按waxd等按键,观察slam的创建地图的变换
- 关闭turtlebot3的键盘控制
- 打开move_base
roslaunch turtlebot3_navigation move_base.launch
- rviz中add path,topic选择 global path
- 点击2d nav_goal,在rviz显示的地图上,用鼠标点击选择一个目标点,机器人自行规划路径运行至目标点
- 最后可以把新配置的rviz保存,这样下次不用再挨个add topic
2 创建地图并保存,根据已知地图导航,全局规划
slam建图并保存
首先打开ros master:roscore
注意:打开新终端,运行turtlebot3相关包时,终端都需指定bot类型:即打开终端需执行:export TURTLEBOT3_MODEL=burger
- 启动turtlebot3 gazebo仿真环境
roslaunch turtlebot3_gazebo turtlebot3_house.launch
- 打开新终端,启动slam
roslaunch turtlebot3_slam turtlebot3_slam.launch slam_methods:=gmapping
- 新终端,启动键盘控制程序
roslaunch turtlebot3_teleop turtlebot3_teleop_key.launch
- 利用按键aw等移动机器人,使地图完整,保存地图到主~目录下
rosrun map_server map_saver -f ~/map
- 关闭turtlebot3_teleop,在turtlebot3_teleop运行终端下,ctrl+c就行
- 运行turtlebot3_navigation
roslaunch turtlebot3_navigation turtlebot3_navigation.launch map_file:=$HOME/map.yaml