ROS环境搭建及turtlebot3仿真
安装gazebo
1、获取安装脚本并安装
从gazebosim处下载脚本
将脚本上传到ubuntu的~/Downloads目录后输入以下命令:
chmod +x ~/Downloads/gazebo.sh
输入以下命令安装:
gnome-terminal --working-directory="~" -e "./Downloads/gazebo.sh"
然后会弹出安装页面:
安装完成后窗口会自动关闭
2、测试
在终端内输入gazebo命令,如果正常将会启动仿真界面
安装ros
添加ros源
在命令行内输入
sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
添加密钥
在命令行内输入
sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
输出以下信息表示添加成功
然后sudo apt-get update
刷新软件源
可以看到ros源被成功添加
安装ROS Melodic
输入sudo apt-get install ros-melodic-desktop-full
安装(如果报错请看常见问题与解决方法)
初始化 rosdep
sudo rosdep init
(如果报错请看常见问题与解决方法)
正常的话就会输出
然后输入rosdep update
设置环境
echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc
source ~/.bashrc
检验
输入roscore
正常的话会有以下输出
安装与测试turtlebot3
安装turtlebot3
sudo apt-get install ros-melodic-turtlebot3-*
//安装gmapping建图算法依赖
sudo apt-get install ros-melodic-gmapping
//安装dwa局部路径规划算法
sudo apt-get install ros-melodic-dwa-local-planner
测试turtlebot3仿真
首先在gazebo仿真环境中启动turtlebot3小车
export TURTLEBOT3_MODEL=waffle_pi
roslaunch turtlebot3_gazebo turtlebot3_empty_world.launch
可以看到小车成功在仿真环境里出现,然后新建终端,输入如下命令安装键盘控制依赖
sudo apt-get install ros-melodic-gazebo-ros-pkgs ros-melodic-gazebo-ros-control
sudo apt-get install ros-melodic-teleop-twist-keyboard
安装完毕后运行键盘控制节点,根据输出提示控制小车
rosrun teleop_twist_keyboard teleop_twist_keyboard.py
请在该命令行窗口内输入移动指令,否则小车不会移动!!
SLAM构建地图
先关闭刚刚的键盘控制终端和仿真终端(保留运行roscore的命令行)
开启仿真环境
export TURTLEBOT3_MODEL=waffle_pi
roslaunch turtlebot3_gazebo turtlebot3_house.launch
开启后界面如图,是个带房子的仿真场景
2、开启SLAM功能,建图算法选择gmapping
此处需要新建一个终端后再输入以下命令
export TURTLEBOT3_MODEL=waffle_pi
roslaunch turtlebot3_slam turtlebot3_slam.launch slam_methods:=gmapping
输入完毕执行后会出现如下界面:
启动键盘控制节点,控制小车在环境内转一圈,尽可能扫出完整封闭的地图
新建终端输入以下命令:
export TURTLEBOT3_MODEL=waffle_pi
roslaunch turtlebot3_teleop turtlebot3_teleop_key.launch
注意!!!所有的移动控制都要在该终端输入才有效!!
请按该提示输入键盘指令控制机器人移动
扫描完成图片如下:
保存地图
新建终端输入以下命令
rosrun map_server map_saver -f ~/map
提示如下
自主导航
关闭刚刚打开的所有命令行及仿真(保留运行roscore的命令行)
先加载保存好的地图
使用以下命令加载刚刚保存的地图
rosrun map_server map_server map.yaml
打开仿真环境,用可视化工具rviz显示出来
新建终端,输入以下命令:
export TURTLEBOT3_MODEL=waffle_pi
roslaunch turtlebot3_gazebo turtlebot3_house.launch
打开自主导航功能
新建终端,输入以下命令:
export TURTLEBOT3_MODEL=waffle_pi
roslaunch turtlebot3_navigation turtlebot3_navigation.launch map_file:=/home/anima/map.yaml
PS:上面那句代码最后的路径要改成/home/{你的用户名}/map.yaml
打开后会发现仿真和扫描出来的地图中的小车位置不同:
此时需要使用2D Pose Estimate设定好小车起始地点和朝向
校准完成后可以使用2D Nav Goal设定小车目标地点,小车会规划好路径,自动运行到目标位置,实现自主导航功能。
常见问题与解决方案
问题:在vm的ubuntu里输入gazebo有可能会闪退
解决方案:
先安装openssh-server,然后在windows主机里安装MobaXterm并使用ssh连接ubuntu,然后在ssh里输入gazebo命令就能正常启动了。
问题:输入sudo apt-get install ros-melodic-desktop-full后报
The following packages have unmet dependencies:
ros-melodic-desktop-full : Depends: ros-melodic-simulators but it is not going to be installed
Depends: ros-melodic-urdf-sim-tutorial but it is not going to be installed
E: Unable to correct problems, you have held broken packages.
解决办法:
sudo apt install aptitude
sudo aptitude install ros-melodic-desktop-full
就能顺利安装了
问题:sudo rosdep 找不到命令
解决办法:sudo apt-get install python-rosdep
致谢
https://blog.csdn.net/m0_51759289/article/details/123865295
https://www.guyuehome.com/10082
https://mp.weixin.qq.com/s/okwwmD_gVVdObSHfruI2VA