目录

  • 树莓派控制无人机实现定点降落(一)——树莓派4安装ROS(Kinetic)
    • 1、安装ROS仓库
    • 2、安装Bootstrap依赖
    • 3、rosdep初始化
    • 4、安装ros
    • 5、解决依赖
    • 6、构建
      • (1)如果你安装发的是destop版,安装opencv时可能会出错
      • (2)安装过程中可能会出现有关boost的错误:
 

树莓派控制无人机实现定点降落(一)——树莓派4安装ROS(Kinetic)

树莓派4安装ROSKinetic可按照官网教程链接在此 本文顺一下安装过程(与官网教程一致),并指出我安装过程中踩到的坑和解决方法。 我烧写的系统是Raspbian2019.9.26更新的系统,该系统内核使用的是Buster,安装过程以官网Buster对应的为准。

1、安装ROS仓库

 
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
 

2、安装Bootstrap依赖

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

3、rosdep初始化

 
sudo rosdep init
rosdep update
 

4、安装ros

 
mkdir -p ~/ros_catkin_ws
cd ~/ros_catkin_ws
rosinstall_generator ros_comm --rosdistro kinetic --deps --wet-only --tar > kinetic-ros_comm-wet.rosinstall
wstool init src kinetic-ros_comm-wet.rosinstall
    这里安装的是ROS-Comm,是官网推荐的,大家还可以安Desktop版的(树莓派带起来可能会卡),安装方法官网写得也很清楚,这里就不写了

5、解决依赖

 
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
cd ~/ros_catkin_ws
rosdep install -y --from-paths src --ignore-src --rosdistro kinetic -r --os=debian:buster
 

6、构建

 
sudo ./src/catkin/bin/catkin_make_isolated --install -DCMAKE_BUILD_TYPE=Release --install-space /opt/ros/kinetic
source /opt/ros/kinetic/setup.bash
echo "source /opt/ros/kinetic/setup.bash" >> ~/.bashrc
  构建过程中可能会出现一些错误

(1)如果你安装发的是destop版,安装opencv时可能会出错

  1   这时我们看到报错出现在文件/home/pi/ros_catkin_ws/src/opencv3/modules/stitching/include/opencv2/stitching/detail/matchers.hpp里,通过寻找可以找到cuda.hpp位于/home/pi/ros_catkin_ws/src/opencv3/opencv_contrib/xfeatures2d/include/opencv2/xfeatures2d/cuda.hpp,故将出错文件52行直接改为绝对路径  
#include "/home/pi/ros_catkin_ws/src/opencv3/opencv_contrib/xfeatures2d/include/opencv2/xfeatures2d/cuda.hpp"
  问题解决

(2)安装过程中可能会出现有关boost的错误:

boost/tr1/unordered_set.hpp: No such file or directory 这是版本问题,树莓派上自带的可能是1.67版本,但我们需要的是1.58版本,故:  
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
  问题解决