ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

树莓派3B新手入门 Raspbian Buster 安装ROSKinetic

2020-12-28 12:30:38  阅读:578  来源: 互联网

标签:树莓 ros Buster -- sudo gcc ROSKinetic ROS


目录

写在前面
一、无显示器配置树莓派
二、给树莓派更换软件源
三、安装ROS 准备工作
四、ROS Kinetic的安装
编译报错处理
五、参考资料

写在前面

在校大学生,想要入门ROS,踩了很多的坑整合了网上的一些教程,最后成功安装,在此记录,希望能帮到需要的人。祝大家不忘初心,砥砺前行。
——John 2020.12.28

前提:

  • 硬件版本:Raspberry Pi 3
  • 操作系统版本:Raspbian Buster
  • ROS版本:ROS Kinetic

一、无显示器配置树莓派

需要准备的工具:(我使用的是用网线连接笔记本和树莓派)
16G 以上的SD卡
读卡器
镜像写入软件Win32DiskImager
注:重写SD卡软件SD Card Formatter
软件putty
一根网线
树莓派的电源充电器(手机安卓充电器)
笔记本电脑
添加链接描述
1.下载镜像文件image.
打开清华开源镜像网站
下载raspbian-2020-02-14/
2.用Win32DiskImager写入文件
3.在初始目录创建ssh(空文本文件)
4.插上网线

打开cmd输入arp-a找到树莓派的id
5.putty连接树莓派并用putty初始化
登入用户:pi
密码:respberry
enable VNC功能
连接wifi
绑定id
6.配置完成
推荐参考:树莓派3B+无显示器配置详细教程

## 二、给树莓派更换软件源

1.一、首先更换好国内源

1.备份文件:

sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak 

sudo cp /etc/apt/sources.list.d/raspi.list /etc/apt/sources.list.d/raspi.list.bak

2.打开编辑器添加以下内容,原内容用#注释

sudo nano /etc/apt/sources.list

deb http://mirrors.ustc.edu.cn/raspbian/raspbian/ buster main contrib non-free rpi 
sudo nano /etc/apt/sources.list.d/raspi.list

deb http://mirrors.ustc.edu.cn/archive.raspberrypi.org/debian/ buster main ui
sudo apt-get update

说明:用的是中科大的软件源。

三、安装ROS 准备工作

3.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

更新软件包

$ sudo apt-get update
$ sudo apt-get upgrade

3.2安装Bootstrap依赖

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

3.3初始化rosdep

$ sudo rosdep init
$ rosdep update

注:sudo rosdep init可能会遇到website maybe down,网上大部分说换成手机热点,但是不一定,WiFi也是可以的。一般来说是网络的问题可以多试几次
解决办法

sudo gedit /etc/hosts 
*#在文件末尾添加* 
199.232.96.133  raw.githubusercontent.com

rosdep update:可能因为网络原因报错
可能IP被墙了
需要重新查找
在IPAddress.com 查询raw.githubusercontent.com
找到真实的IP地址
2020.12.16
这里也要多试几次
3.4安装gcc和g++

$ sudo apt-get install gcc-5 g++-5
$ gcc -v

更改gcc版本

sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-5 60

sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-5 60

sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-8 80

sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-8 70

注:最后的数字为优先级,可不管,更改时修改最后的数字优先级即可。
特别说明:我们前面执行的这条命令rosdep install -y --from-paths src --ignore-src --rosdistro kinetic -r --os=debian:buster会安装libboost1.67,ROS Kinetic中使用的rospack版本依赖于libboost1.58。

我们不能简单的将1.58版本替换成1.67版本,因为libboost1.58与gcc-8不兼容,所以我们现在有两种方案,一种是使用gcc-8从源码构建libboost1.58,另外一种是使用早期的gcc版本编译整个ROS。整个的意思是说,如果你使用了gcc-8编译过一部分ROS,则需要把build_isolated和devel_isolated文件夹删掉,重新从头编译ROS。
ROS官网教程使用的是第二种方法,使用gcc-5与g+±5构建整个ROS。
我们使用的是gcc-8从源码构建libboost1.58,所以安装gcc5和g++5,可能是不必要的,我安装的时候遇到gcc和g++5不行就换成8。
3.5源码编译安装libboost1.58
下载并解压代码

wget -O boost_1_58_0.tar.bz2 http://sourceforge.net/projects/boost/files/boost/1.58.0/boost_1_58_0.tar.bz2/download
tar --bzip2 -xvf boost_1_58_0.tar.bz2

安装

cd boost_1_58_0
./bootstrap.sh --with-libraries=all --with-toolset=gcc
./b2 toolset=gcc
sudo ./b2 install --prefix=/usr
sudo ldconfig

添加路径
由于libboost默认将动态链接库装在/usr/lib路径下,而系统的查找路径在/usr/lib/arm-linux-gnueabihf下,故需要将新的路径写入/etc/ld.so.conf.d目录下的配置文件中

cd /etc/ld.so.conf.d && sudo touch mylib.conf && echo '/usr/lib' | sudo tee mylib.conf
sudo ldconfig

四、ROS Kinetic的安装

4.1创建catkin工作空间

$ mkdir -p ~/ros_catkin_ws
$ cd ~/ros_catkin_ws

4.2 下载ROS包源码
ROS精简版(官方推荐)
包含二十多个核心包,不含可视化工具

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

ROS桌面版
包含一百九十多个常用包,含rqt、rviz等可视化工具以及OpenCV3,编译过程虽然长了些,但是个人认为是比安装ROS精简版好的,精简版会遇到无法定位包的情况,需要用到官网的安装包的方法。ROS桌面版不会遇到这种情况。
4.3安装Assimp依赖
编译collada_urdf 包的时候会需要

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

4.4 使用rosdep安装所需依赖

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

4.5编译工作空间

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

若树莓派4的内存为1G或2G,则在编译时可能造成内存耗尽,此时可以使用-j2进行编译,指令如下:

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

编译报错处理

可以参考[树莓派4B安装ROS(Kinetic版本)](https://blog.csdn.net/hua_lun_tong_xue/article/details/106930273?ops_request_misc=%25257B%252522request%25255Fid%252522%25253A%252522160903129916780273381930%252522%25252C%252522scm%252522%25253A%25252220140713.130102334.pc%25255Fall.%252522%25257D&request_id=160903129916780273381930&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~first_rank_v2~rank_v29-1-106930273.pc_search_result_no_baidu_js&utm_term=ros_catkin_ws/src/opencv3/modules/python/src2/cv2.cpp:885:34error:%20invalid%20conversion%20from%20%E2%80%98const%20char*%E2%80%99%20to%20%E2%80%98char*%E2%80%99%20%5B-fpermissive%5D)

4.6 添加环境变量

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

5.成功

启动看看,测试一下小海龟
roscore
rosrun turtlesim turtlesim_node
rosrun turtlesim turtle_teleop_key
出现以上画面即为成功

五、参考资料

树莓派3B+无显示器配置详细教程
树莓派4B日志(一) Raspbian Buster源码安装ROS Kinetic
树莓派4B安装ROS(Kinetic版本)
树莓派4B(8G)原生系统Raspbian Buster安装ROS Melodic

标签:树莓,ros,Buster,--,sudo,gcc,ROSKinetic,ROS
来源: https://blog.csdn.net/what_it_mean/article/details/111833161

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有