樹莓派控制無人機實現定點降落(一)——樹莓派4安裝ROS(Kinetic)

樹莓派控制無人機實現定點降落(一)——樹莓派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時可能會出錯

在這裏插入圖片描述
這時我們看到報錯出現在文件/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

問題解決

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章