在树莓派4的上安装桌面版ROS

本文主要翻译自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。
一种是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 -u

Open 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

第三步:安装ROS系统

开始正经安装!

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

  • 4
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值