之前在树莓派4B上安装了Ubuntu18.04,现在需要装上ROS,下面提供两种方法安装ROS melodic。
直接参考官方文档进行安装 http://wiki.ros.org/cn/melodic/Installation/Ubuntu。
注意安装推荐的完整版ROS,一步一步安装即可,如遇到些小问题,网上搜下都能解决。
在命令窗口直接输入鱼香ROS提供的一键安装工具
wget http://fishros.com/install -O fishros && . fishros
输入密码后就进入以下界面
鱼香ROS的这个一键安装真是懒人的福音,能省去很多工作和解决很多问题。
cd ~/catkin_ws/src/
git clone https://github.com/ROBOTIS-GIT/turtlebot3_msgs.git
git clone https://github.com/ROBOTIS-GIT/turtlebot3.git
git clone https://github.com/ROBOTIS-GIT/turtlebot3_simulations.git
cd ..
catkin_make
3.设置环境变量
echo "export TURTLEBOT3_MODEL=burger" >> ~/.bashrc
source ~/.bashrc
4.安装依赖包
sudo apt-get install ros-melodic-joy ros-melodic-teleop-twist-joy ros-melodic-teleop-twist-keyboard ros-melodic-laser-proc ros-melodic-rgbd-launch ros-melodic-depthimage-to-laserscan ros-melodic-rosserial-arduino ros-melodic-rosserial-python ros-melodic-rosserial-server ros-melodic-rosserial-client ros-melodic-rosserial-msgs ros-melodic-amcl ros-melodic-map-server ros-melodic-move-base ros-melodic-urdf ros-melodic-xacro ros-melodic-compressed-image-transport ros-melodic-rqt-image-view ros-melodic-gmapping ros-melodic-navigation ros-melodic-interactive-markers
安装Cartographer
参考大神文章 cartographer探秘第一章之安装编译与参数配置,每次安装都是如此舒心。
安装Gmapping, 直接安装Gmapping工具包
sudo apt install ros-melodic-gmapping
sudo apt-get install ros- melodic-hector-slam
1.用Cartographer SLAM算法仿真建图
a)修改launch文件
catkin_ws/src/turtlebot3/turtlebot3_slam/launch/turtlebot3_cartographer.launch文件中,把configuration_basename 更改为turtlebot3_lds_2d_gazebo.lua
b)打开Gazebo仿真环境
在一个命令行窗口输入
cd ~/catkin_ws/
source devel/setup.bash
roslaunch turtlebot3_gazebo turtlebot3_world.launch
c)使用Cartographer算法建图
重新开一个命令窗口,调用Cartographer算法建图
cd ~/catkin_ws/
source devel/setup.bash
roslaunch turtlebot3_slam turtlebot3_slam.launch slam_methods:=cartographer
d)使用键盘来控制turtlebot3运动
重新打开一个命令行窗口,运行以下命令调用键盘控制turtlebot3运动。
cd ~/catkin_ws/
source devel/setup.bash
roslaunch turtlebot3_teleop turtlebot3_teleop_key.launch
直至建图完成。
e)保存地图
打开一个新的命令行窗口,输入以下命令保存地图
rosrun map_server map_saver -f ~/map
2.用Gmapping SLAM算法仿真建图
a)打开Gazebo仿真环境
在一个命令行窗口输入
cd ~/catkin_ws/
source devel/setup.bash
roslaunch turtlebot3_gazebo turtlebot3_world.launch
b)使用Gmapping算法建图
重新开一个命令窗口,使用以下命令进行Gmapping建图
cd ~/catkin_ws/
source devel/setup.bash
roslaunch turtlebot3_slam turtlebot3_slam.launch slam_methods:=gmapping
c)使用键盘来控制turtlebot3运动
新开一个命令行窗口,运行以下命令调用键盘控制turtlebot3运动。
cd ~/catkin_ws/
source devel/setup.bash
roslaunch turtlebot3_teleop turtlebot3_teleop_key.launch
直至建图完成。
d)保存地图
新开一个命令行窗口,输入以下命令
rosrun map_server map_saver -f ~/map
2.用Hector SLAM算法仿真建图
a)打开Gazebo仿真环境
在一个命令行窗口输入
cd ~/catkin_ws/
source devel/setup.bash
roslaunch turtlebot3_gazebo turtlebot3_world.launch
b)使用hector算法建图
重新开一个命令窗口,输入以下命令进行Hector建图
cd ~/catkin_ws/
source devel/setup.bash
roslaunch turtlebot3_slam turtlebot3_slam.launch slam_methods:=hector
c)使用键盘来控制turtlebot3运动
新开一个命令行窗口,运行以下命令调用键盘控制turtlebot3运动。
cd ~/catkin_ws/
source devel/setup.bash
roslaunch turtlebot3_teleop turtlebot3_teleop_key.launch
直至建图完成。
d)保存地图
新开一个命令行窗口,输入以下命令
rosrun map_server map_saver -f ~/map
从左到右依次为Cartographer,Gampping,Hector所建地图
以上地图基本都是在线速度0.8,角速度0.1的控制条件下创建出来的,可以看出三种算法基本都能创建出完整地图。
另外试了下加快控制速度,Cartographer和Gampping都能保持较好稳定性并能完整的创建出地图,但Hector在角速度较快的情况下很容易丢失位置,从而产生重影,最终导致不能完整的创建出地图。这可能与该算法没有采用里程计数据,只采用了激光数据建图有关。
最后吐槽一下,树莓派4B上运行Gazebo软件依旧很卡,尽管我也提前下载了所有的Model,但仍旧很慢。看来做Gazebo仿真还是需要在较好的电脑上。
ROS官方安装文档
Turtlebot3 Gazebo仿真环境使用Cartographer算法建图
Ubuntu18.04 ROS仿真turtlebot3进行Gmapping,Hector,和cartographer建图
cartographer探秘第一章之安装编译与参数配置