本文主要翻译自INSTALLING ROS MELODIC ON RASPBERRY PI 4 AND RPLIDAR A1M8
本人非计算机专业,使用的诸多术语可能有不专业的地方,还请多多包涵。
你需要:
一个树莓派4
一张16G或以上的Micro SD卡
可以参照树莓派官网的教程给树莓派4安装Raspbian系统。教程网上已经有许多了,在这里就不过多赘述了。安装完成后最好修改一下软件源。
首先需要向sources中添加必要的源
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
更新一下apt
sudo apt-get update
下载一些必要的包
sudo apt-get install -y python-rosdep python-rosinstall-generator python-wstool python-rosinstall build-essential cmake
初始化和更新rosdep
sudo rosdep init
sudo update
完成上述过程之后,创建一个专门的用于安装ROScatkin工作空间并且cd进入这个路径。
mkdir ~/ros_catkin_ws
cd ~/ros_catkin_ws
这个时候可以安装两种ROS。
一种是ROS-Comm。ROS-Comm的安装教程可以详见这篇博客。
另外一种是完整的Desktop版本。我本人安装后发现树莓派还是带的起来的,所以不用担心机器性能的问题。桌面版本中包含了GUI工具。
我之前安装了ROS-Comm版本后发现Turtlesim不能打开,我不确定是不是我安装的方法有问题。Desktop版本是可以很好地运行Turtelsim的。
执行下面这段代码安装Desktop Install
rosinstall_generator desktop --rosdistro melodic --deps --wet-only --tar > melodic-desktop-wet.rosinstall
wstool init -j8 src melodic-desktop-wet.rosinstall
为了把ROS包下载进入src文件夹下需要持续几分钟的时间,如果wstool失败了或者被中断了,你可以用如下的命令恢复下载。
wstool update -j 4 -t src
想要在Debian Buster系统下安装ROS其实是比较麻烦了,需要做很多的准备工作。下面我们就来完成它。
(虽然在Ubuntu上安装ROS会很方便,但是目前Ubuntu Mate还不能安装到Raspberry 4上,因此只能“曲线救国”)
坦白说,下面这一波操作我也不是特别懂为什么,反正跟着做就是了。
mkdir -p ~/ros_catkin_ws/external_src
cd ~/ros_catkin_ws/external_src
wget http://sourceforge.net/projects/assimp/files/assimp-3.1/assimp-3.1.1_no_test_models.zip/download -O assimp-3.1.1_no_test_models.zip
unzip assimp-3.1.1_no_test_models.zip
cd assimp-3.1.1
cmake .
make
sudo make install
sudo apt-get install libogre-1.9-dev
我参考的原博客上说需要修复一些libboost上的问题,但是我并没有修复它仿佛也顺利地完成了安装。(至少小海龟跑的很好)
但是无论如何我把他们贴在下面。
Finally we’ll need to fix the issues with libboost. I’m using the
solution from this post on stackoverflow:“The errors during compilation are caused by the
‘boost::posix_time::milliseconds’ function which in newer boost
versions accepts only an integer argument, but the actionlib package
in ROS, gives it a float on several places. You can list all files
using that function:find -type f -print0 | xargs -0 grep ‘boost::posix_time::milliseconds’
| cut -d: -f1 | sort -uOpen them in your text editor and search for the
‘boost::posix_time::milliseconds’ function call.and replace calls like this:
boost::posix_time::milliseconds(loop_duration.toSec() * 1000.0f));
with:
boost::posix_time::milliseconds(int(loop_duration.toSec() *
1000.0f)));and these:
boost::posix_time::milliseconds(1000.0f)
with:
boost::posix_time::milliseconds(1000)
I recommend you use nano text editor, which is simpler than VIM ?
Ctrl+O is saving, Ctrl+X is exiting and Ctrl+W is searching.
那么接下来我们就用rosdep工具去安装剩余的依赖
rosdep install --from-paths src --ignore-src --rosdistro melodic -y
开始正经安装!
sudo ./src/catkin/bin/catkin_make_isolated --install -DCMAKE_BUILD_TYPE=Release --install-space /opt/ros/melodic -j2
注意,这一步会持续很久,请耐心等待。
这一过程当中可能会发生交互空间不足的情况。
可以参考之前提到的另外一篇安装ROS-Comm的教程中的解决方案,给交互空间扩一下容。这里我引用一下。
if=/dev/zero of=/opt/image/swap bs=1024 count=1024000 sudo mkswap /opt/image/swap sudo swapon /opt/image/swap sudo nano /etc/fstab 后面追加 /opt/image/swap /swap swap defaults 0 0 安装完后请删除掉这句话,重启就还是原来的交换空间大小了 删除文件 sudo rm -rf /opt/image ```
配置一下环境变量
echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc
这个时候其实已经完成了ROS的安装了。可以在终端中输入
roscore
来确认一下是否成功。
在打开了roscore后,开启一个新的终端。利用rosrun命令打开小海龟仿真器。
rossun turtlesim turtlesim_node
打开另外一个新的终端,利用键盘来控制小海龟。
rosrun turtlesim turtle_teleop_key
输入的时候可以运用tab来补齐命令避免type fehler。
在打开的最新的终端中,就可以利用键盘来控制小海龟啦。如果发现小海龟跟着你键盘的上下左右运动起来,那安装应该也就圆满成功了~
参考文档:
https://www.seeedstudio.com/blog/2019/08/01/installing-ros-melodic-on-raspberry-pi-4-and-rplidar-a1m8/
https://blog.csdn.net/weixin_43866471/article/details/94150378