计算机:华为matebook 14
系统:ubuntu 18.04 + ros melodic
目的:在以上计算机与系统上安装turtlebot(注意:不是turtlebot 3
)
1. 安装教程
参照 gaunthan/Turtlebot2-On-Melodic
gaunthan/Turtlebot2-On-Melodic/install_all.sh
1.1 构造工作空间
mkdir -p ~/turtlebot_ws/src
catkin_make
1.2 安装
gaunthan/Turtlebot2-On-Melodic中有两种安装脚本文件install_basic.sh
与install_all.sh
。前者是安装完整的turtlebot版本,后者只安装一些基本的软件包(能利用键盘控制turtlebot)。
我选择安装install_all.sh
curl -sLf https://raw.githubusercontent.com/gaunthan/Turtlebot2-On-Melodic/master/install_all.sh | bash
catkin_make
如果编译不通过,可能是gcc与g++版本不对!请查看第2节偿试解决该问题
1.3 将turtlebot加入环境
echo "source ~/turtlebot_ws/devel/setup.bash" >> ~/.bashrc
source ~/.bashrc
1.4 安装其它依赖包
sudo apt-get install ros-melodic-move-base*
sudo apt-get install ros-melodic-map-server*
sudo apt-get install ros-melodic-amcl*
sudo apt-get install ros-melodic-navigation*
以上是我在运行turtlebot in stage例程时遇到缺少的包,如果运行其它程序,有报错的话,可根据报错情况查看缺少的包,缺哪个就安哪个。
1.5 运行turtlebot in stage [perfect]
roslaunch turtlebot_stage turtlebot_in_stage.launch
2. 可能出现的一些问题
2.1 问题描述
我在运行1.2安装
节中,运行安装命令会出现编译失败问题。所以,对于我来说,在ubuntu 18.04+ros melodic上安装turtlebot并不如上面写的那么beauty。我的过程充满了焦急和黑暗。
在网上各种搜索,也找不到相关的问题与答案。后来,我猜是不是gcc与g++版本的问题(前几天装nvidia mx250显卡驱动,把ubuntu 18.04自带的gcc-7与g+±7降级成了gcc+4.8与g+±4.8|点击查看降级方法)。没想到还真是这个原因。
如果编译不通过,可能是gcc与g++版本不对!
如果编译不通过,可能是gcc与g++版本不对!
如果编译不通过,可能是gcc与g++版本不对!
2.2 gcc与g++降级
ubuntu 18.04 自带的gcc与g++版本为7.4.0,若需要降级成更低版本,步骤如下(将4.8换成需要的版本号即可):
- 安装
sudo apt-get install -y gcc-4.8
sudo apt-get install -y g++-4.8
- 重新建立软联连
cd /usr/bin #进入/usr/bin文件夹下
sudo rm -r gcc #移除之前的软连接
sudo ln -sf gcc-4.8 gcc #建立gcc4.8的软连接
sudo rm -r g++ #同gcc
sudo ln -sf g++-4.8 g++
2.3 gcc与g++升级
- 查看系统装已经装的gcc与g++版本(我的系统有4.8与7两个版本)
ls gcc*
结果如下:
gcc gcc-7 gcc-ar-4.8 gcc-nm gcc-nm-7 gcc-ranlib-4.8
gcc-4.8 gcc-ar gcc-ar-7 gcc-nm-4.8 gcc-ranlib gcc-ranlib-7
- 使用update-alternatives调整各版本的顺序(我要升级,所以将7的优先顺序高于4.8):
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.8 40 --slave /usr/bin/g++ g++ /usr/bin/g++-4.8
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-7 70 --slave /usr/bin/g++ g++ /usr/bin/g++-7
- 查看当前系统gcc与g++的版本
gcc --version
若显示为gcc (Ubuntu 7.4.0-1ubuntu1~18.04.1) 7.4.0
,则说明升级成功。
我们可以通过sudo update-alternatives --install
来随时调整gcc与g++的版本,非常方便。
2.4 问题解决
当把gcc与g++版本还原后,所有编译都通过,非常顺滑。
致谢
在Melodic release? #272中,@bunchofcoders,@ProfJust热心的介绍了如何在ubuntu 18.04+ros melodic上安装turtlebot。最后@gaunthan将两人的回答总结在gaunthan/Turtlebot2-On-Melodic。
评论(0)
您还未登录,请登录后发表或查看评论