树莓派4B的系统是:Buster(针对的是这个系统,其他系统仅供参考)
本篇博文依据
http://wiki.ros.org/ROSberryPi/Installing%20ROS%20Kinetic%20on%20the%20Raspberry%20Pi
里面也有一些坑,二郎在文中部分进行了修改,希望能帮到大家。
这里说一下,这个ros是在python2.7下的,如果你卸载了2.7的话,建议你再安装回来
可能也有3.7的教程,但是二郎没有找到
sudo apt-get install python2.7
1.加入源
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.更新
sudo apt-get update && sudo apt-get upgrade
3.安装依赖
sudo apt-get install -y python-rosdep python-rosinstall-generator python-wstool python-rosinstall build-essential cmake
4.加入源
sudo gedit /etc/hosts
在文末加入以下内容
151.101.84.133 raw.githubusercontent.com
5.初始化
如果这不出错,找不到XXX,或者importXXX等问题,建议卸载之前安装的第3步,卸载python2.7,然后重新安装。二郎是这样解决问题的。
sudo rosdep init
rosdep update
如果到这里没出问题证明你安装好了。
6.创建我们自己的ros工作环境
1)建立文件夹
mkdir -p ~/ros_catkin_ws
2)进入文件夹
cd ~/ros_catkin_ws
3)设置空间
rosinstall_generator ros_comm --rosdistro kinetic --deps --wet-only --tar > kinetic-ros_comm-wet.rosinstall
wstool init src kinetic-desktop-wet.rosinstall
此时,你进入你的ros_caktin_ws文件夹,会看到src文件夹,证明整体是成功的。
4)用工具添加依赖项
cd ~/ros_catkin_ws
rosdep install -y --from-paths src --ignore-src --rosdistro kinetic -r --os=debian:buster
5)建立工作空间
①这里,有个操作,二郎也不知道为啥,只是粘贴过来
功能是删除libboost1.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
②进入我们建立的文件夹
cd ~/ros_catkin_ws
③构建
sudo ./src/catkin/bin/catkin_make_isolated --install -DCMAKE_BUILD_TYPE=Release --install-space /opt/ros/kinetic -j2
④运行ros内核
source /opt/ros/kinetic/setup.bash
⑤将其加入目录
echo "source /opt/ros/kinetic/setup.bash" >> ~/.bashrc
7.测试
roscore
8.虽然上面安装完成了,但你在加入自己的文件时会出现很多找不到库的问题,所以接下来需要进一步安装一下依赖库
1)进入工作空间文件夹
cd ~/ros_catkin_ws
2)安装库
rosinstall_generator ros_comm ros_control joystick_drivers --rosdistro kinetic --deps --wet-only --tar > kinetic-custom_ros.rosinstall
3)更新工作空间
wstool merge -t src kinetic-custom_ros.rosinstall
wstool update -t src
4)安装依赖库
rosdep install --from-paths src --ignore-src --rosdistro kinetic -y -r --os=debian:buster
更新
sudo apt-get update && sudo apt-get upgrade
5)安装Bootstrap依赖
这里有个大坑,前面虽然说是卸载了boost1.67,安装了1.58,但是一顿操作到了这里,你再进行下面的操作会直接报错,因为你卸载的1.67很有可能又自己跑了回来。
①查看安装的boost版本
sudo ldconfig -v|grep boost
如果运行后发现都是1.58,没有1.67,那么恭喜你,你可以进行下一步了。
如果两个都有…………你不知道该咋办了吧
二郎教你
再进行一次卸载1.67装1.58
sudo apt remove libboost1.67-dev
sudo apt autoremove
sudo apt install -y libboost1.58-dev libboost1.58-all-dev
弄完后再查看一下版本,如果全是1.58就OK了。
sudo ldconfig -v|grep boost
②开始构建工作空间
sudo ./src/catkin/bin/catkin_make_isolated --install -DCMAKE_BUILD_TYPE=Release --install-space /opt/ros/kinetic