树莓派的支持的系统比较多,以 Raspbian Buster 为例,记录在树莓派上下载并构建 ROS Melodic 的步骤,其他的派类似。
一、安装 ROS Melodic
打开树莓派终端并执行以下步骤。
1. 安装 repository key
$ sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
$ curl -s https://raw.githubusercontent.com/ros/rosdistro/master/ros.asc | sudo apt-key add -
2. 更新 Debian 包索引,并升级已安装的软件包
$ sudo apt-get update
$ sudo apt-get upgrade
3. 安装依赖包
$ sudo apt install -y python-rosdep python-rosinstall-generator python-wstool python-rosinstall build-essential cmake
4. 初始化 rosdep
$ sudo rosdep init
$ rosdep update
二、创建 catkin
工作空间
1. 创建一个 catkin 工作空间来构建核心包。
在树莓派终端上运行以下命令。
$ mkdir -p ~/ros_catkin_ws
$ cd ~/ros_catkin_ws
2. 使用 wstool
命令来获取核心包并在树莓派上构建它们。
$ rosinstall_generator ros_comm rosout std_msgs sensor_msgs geometry_msgs tf --rosdistro melodic --deps --wet-only --tar > melodic-ros_mw-wet.rosinstall
$ wstool init src melodic-ros_mw-wet.rosinstall
这个命令会添加指定变体中的所有 catkin 或 wet 包,然后将源代码下载到 ~/ros_catkin_ws/src
目录中。一旦执行此命令,系统可能需要几分钟时间将核心包下载到 src
文件夹中。
如果 wstool init
命令失败或被中断,你可以通过运行以下命令来恢复下载过程。
wstool update -j4 -t src
注意:-j4
参数表示并行下载四个文件,以加快下载速度。-t src
参数指定了下载到的目标目录。
三、使用 rosdep 解决依赖关系
在构建 catkin 工作空间之前,需要确保已经解决了所有依赖关系并安装了所有包。
通过在树莓派终端上运行以下命令来解决依赖关系。
$ cd ~/ros_catkin_ws$ rosdep install -y --from-paths src --ignore-src --rosdistro melodic -r --os=debian:buster
四、构建 catkin 工作空间
对于早期的树莓派硬件(如:Model B+、Model B Rev1、Model B Rev2、Pi 2 Model B、Pi Zero W),可以增加交换空间以提高构建速度。
在树莓派终端上执行此命令以打开交换配置文件。
$ sudo nano /etc/dphys-swapfile
在编辑器窗口中,搜索 CONF_SWAPSIZE 变量并将其设置为 500。保存文件。这将把交换空间增加到 500MB。
执行以下命令以激活新的交换空间大小。
$ sudo dphys-swapfile setup$ sudo dphys-swapfile swapon
在解决完依赖关系和下载完软件包之后,调用 catkin_make_isolated,构建 catkin 工作空间。
$ sudo ./src/catkin/bin/catkin_make_isolated --install -DCMAKE_BUILD_TYPE=Release --install-space /opt/ros/melodic
ROS Melodic 现在已安装在树莓派硬件板上。
激活新安装的环境。
$ source /opt/ros/melodic/setup.bash
可以在 ~/.bashrc
文件中源设置 setup.bash
,以便每次启动新 shell 时自动将 ROS 环境变量添加到 bash 会话中。
$ echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc
五、创建 catkin
用户工作空间
在树莓派终端上创建一个 catkin 用户工作空间,执行以下步骤。
1. 为 ROS Melodic 源设置脚本。
source /opt/ros/melodic/setup.bash
2. 初始化 ROS 用户工作空间 ~/catkin_ws
.
创建并初始化 ROS 用户工作空间: ~/catkin_ws
.
mkdir -p ~/catkin_ws/src cd ~/catkin_ws/src catkin_init_workspace
3. 构建 ROS 用户工作空间。
此步骤在 ~/catkin_ws 工作空间下创建 devel 和 build 目录。
cd ~/catkin_ws/ catkin_make
老徐,2024/7/26