树莓派4b下安装ros

说明

由于采用raspberry pi 4b为最新版本,暂无适配的Ubuntu Mate镜像。而ros系统较适合用于Ubuntu系统安装和使用。
但ros官网也提供了raspberry 的官方系统Raspbian buster的安装说明,但步骤麻烦,安装时间较长,同时安装过程中也会存在各种问题。
本文依照自己的raspberry pi 4b版本参考官网安装流程安装

安装步骤

确认安装系统版本

lsb_release  -a

本raspberry pi 4b 安装官方版本Raspbian buster

Setup ROS Repositories

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://ha.pool.sks-keyservers.net:80 --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654

update

sudo apt-get update
sudo apt-get upgrade

Install Bootstrap Dependencies

sudo apt-get install -y python-rosdep python-rosinstall-generator python-wstool python-rosinstall build-essential cmake

Initializing rosdep

sudo rosdep init
rosdep update

其中运行sudo rosdep init会出现如下错误。

sudo rosdep init ERROR: cannot download default sources list from:

参考博客,
打开/etc/hosts文件,并在末尾添加如下语句:

151.101.84.133  raw.githubusercontent.com

再次运行,完美解决

Create a catkin Workspace

mkdir -p ~/ros_catkin_ws
cd ~/ros_catkin_ws

install

建议安装ros_robot 或 ros_comm,因为树莓派性能问题,不建议安装desktop。因为不需要在树莓派上运行rviz等界面操作。后续有另一篇文档会说明在x86系统上连接树莓派进行rviz等操作。

rosinstall_generator robot --rosdistro kinetic --deps --wet-only --tar > kinetic-ros_comm-wet.rosinstall
wstool init src kinetic-robot-wet.rosinstall

Resolve Dependencies

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

Resolving Dependencies with rosdep

要根据系统版本Raspbian buster,进行选择,否则可参考官方修改下面指令中–os=内容

cd ~/ros_catkin_ws
rosdep install -y --from-paths src --ignore-src --rosdistro kinetic -r --os=debian:buster

Building the catkin Workspace

由于我的系统是Raspbian buster,因此一定要执行以下命令,即更换libboost1.67库,否则编译时一定会会出现"'boost/tr1/unordered_set.hpp' file not found"错误,已经亲身经历,编译失败后,重新编译是重头进行编译的,非常浪费时间。

sudo apt remove libboost1.67-dev
sudo apt autoremove
sudo apt install -y libboost1.58-dev libboost1.58-all-dev
sudo apt install -y g++-5 gcc-5
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-5 10
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-5 20
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-5 10
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-5 20
sudo update-alternatives --install /usr/bin/cc cc /usr/bin/gcc 30
sudo update-alternatives --set cc /usr/bin/gcc
sudo update-alternatives --install /usr/bin/c++ c++ /usr/bin/g++ 30
sudo update-alternatives --set c++ /usr/bin/g++
sudo apt install -y python-rosdep python-rosinstall-generator python-wstool python-rosinstall build-essential cmake

编译时还会遇到 tf失败,出现error ,如/home/pi/ros_catkin_ws/src/geometry2/tf2/src/buffer_core.cpp:126:34: error: ‘logWarn’ was not declared in this scope

请提前修改/usr/include/console_bridge/console.h文件,在此文件的开头增加如下定义

#define logWarn CONSOLE_BRIDGE_logWarn
#define logError CONSOLE_BRIDGE_logError
#define logDebug CONSOLE_BRIDGE_logDebug
#define logInform CONSOLE_BRIDGE_logInform

编译并安装

sudo ./src/catkin/bin/catkin_make_isolated --install -DCMAKE_BUILD_TYPE=Release --install-space /opt/ros/kinetic

编译安装时间较久,约120个包。

source

永久source,可使每次打开终端自动source

echo "source /opt/ros/kinetic/setup.bash" >> ~/.bashrc

安装完成

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值