各位ROS的学习者大家好,很荣幸收到古月前辈的邀请来到这个平台分享我的学习经验,本人是最近半年才开始接触的ROS,目前还处于很初级的学习阶段,如果你和我的经历相似,欢迎和我讨论ROS使用过程中的各种问题!

 

之前在进行ROS学习的过程中一直在困扰如何将ROS应用到项目中,本人只是简单学习过51和32的单片机,对嵌入式系统略有涉猎,最近在学习中接触到了树莓派这个控制板,便入手了一块,下面我来简单介绍一下我在树莓派上安装ROS的过程以及对其中一些步骤粗浅的理解,本人目前本科一年级,说实话有很多知识还不是很了解,如有错误,烦请斧正!

 

0.0前言

先放上一张成功的截图(Windows下远程桌面登录树莓派图形界面)

 

成功安装

 

本篇文章适用于树莓派4B,其他版本略有不同,但如果是3B就没必要看这篇文章大部分内容,直接在0.1中给的Ubuntu Mate网址中下载Ubuntu配套镜像(注意,一定要配套,官网有相关提示,请细心)然后正常刷ROS,操作参见后文

 

首先是树莓派的硬件连接,需要一张TF卡,最好是高速卡,然后烧录相关镜像,给刚接触树莓派的小伙伴介绍一下,这个TF卡就相当于电脑的硬盘,必须要在里面烧上系统才能正常使用,一般可以烧树莓派系统(官方推荐的系统,可以再官网下载,官网同样有详细的安装教程,附上官网链接:https://www.raspberrypi.org/

 

另外就是也可以直接刷Ubuntu,我会在文章后面介绍到。

 

然后就是硬件的配置,如果你是新手,又不想花钱买某宝上的树莓派的配套显示器,而恰巧你家还有显示器,那么你可以考虑买一根MicroHDMI转HDMI的线,否则第一次设置没有图形界面会很难受,不过也可以直接通过ssh访问,但是建立在镜像没有问题的情况下,不然还是有一个图形界面来得好。

 

所以,在准备安装ROS的过程中接触到了两种解决方案,第一种是直接在树莓派上刷Ubuntu,另一种是在Raspberry系统中通过源代码编译的方式进行ROS相关功能包的编译安装,我首先实验的第二种方法

 

0.1 失败安装(可直接跳到1.0查看成功安装步骤)

我首先尝试的其实是刷Ubuntu,但是后来发现官方还没有为树莓派4提供相应的Ubuntu版本或者Mate版本,这里说一下,Ubuntu每个版本都会对应一个Mate版,个人理解就是轻量化的Ubuntu版本,详细请参见官网:https://ubuntu-mate.org/

 

后来看到网上有使用树莓派系统直接运行ROS的,因为树莓派的内核也是linux,理论上可以使用,网上也有大神成功了,不过我卡在了解决各种功能包的依赖问题上,最后还是放弃了,想要尝试的小伙伴移步:http://wiki.ros.org/kinetic/Installation/Source

 

1.0软件准备(Windows)

  1.0.1首先下载Ubuntu镜像

来源github,原链接:https://github.com/TheRemote/Ubuntu-Server-raspi4-unofficial/releases

帮大家下了一份图形界面的:

链接:https://pan.baidu.com/s/18mvVzC-CP4SCvD71aK411w
提取码:octp

 

  1.0.2下载树莓派安装工具

链接:https://pan.baidu.com/s/1rqESAXRqIhu6fLlescM5Vw
提取码:r1b2

 

SDFormatter用来将SD卡格式化;Win32DiskImager用来烧录镜像,两个软件都是免安装的。

 

操作比较简单,用读卡器将sd连接电脑,打开SDF,读取到SD后就能格式化。

 

这里插一句,如果镜像烧录失败,想要重新烧录,用这个软件是不能完全读取SD卡所有扇区的,需要在磁盘管理中先把SD所有分区删除再格式化出来一个简单卷,提示,这里一定要小心加谨慎,数据无价,不要误操作!!

 

1.0.3 安装Notepad++

用于一些文本文件的修改,在修改系统配置文件的时候如果使用系统自带的记事本可能会导致崩溃

官网链接: https://notepad-plus-plus.org/downloads/v7.8.1/

 

1.0.4 远程工具安装 Putty

这个工具可以远程使用命令行操作Linux系统,操作流程详见1.1

链接:https://pan.baidu.com/s/1f_38eed5Kmbgi3mvTb9j6Q
提取码:i4ip

 

1.1开始安装

1.1.1 格式化SD卡

将SD插入读卡器,打开SDF,格式化SD卡,完成之后会提示重新插拔一次。

 

ROS入门学习记录(一) 树莓派4B安装ROS插图

 

1.1.2  烧录Ubuntu镜像

将之前的.xz文件解压出来得到.img文件,打开Win32DiskImager,如果出现如下提示ok就行

2

 

然后选择镜像,开始Write

 

3

 

1.1.3 插入树莓派之前的配置

建议进行一个超频的配置,默认主频1.5G,可以超到2G

 

使用的时候CPU会有发热,而且远远大于不超频的情况,建议某宝入手一些散热设备,不超频不太涉及散热问题

 

使用Notepad++编辑烧录好的SD卡中根目录中的config.txt文件,通常情况下,烧录好的SD会以U盘的形式被读取,名字应该是system_boot,根目录中就能找到config文件。

 

在文件最后一行加入超频命令

arm_freq=2000
over_voltage=10

 

保存退出,卸载SD卡

 

1.1.4 网络(SSH)配置

由于烧录的是Ubuntu系统,默认开启SSH,如果是Raspberry系统则需要手动开启

 

1.2 树莓派中Ubuntu系统配置

SD卡插入之后上电,可以通过显示器或者远程控制软件进行系统初始化配置,我最开始使用的是之前安装的Putty(详见1.0.4),需要在这里用网线把树莓派和电脑连起来,目的是获取树莓派的网卡IP以及操控树莓派,之后就可以无线连接了。

 

1.2.1 Ubuntu初始化

使用Putty的SSH连接树莓派,由于刷的系统是Ubuntu,其实上一步连接网线更多的是连接到这个设备,使用Putty能够使用用户名登录,在Host Name栏中输入ubuntu(注意首字母小写)端口号由于默认了SSH连接故默认好了,电机Open即可,最开始会输入初始密码,是ubuntu(同样首字母小写)然后会要求你重置密码,但是重置密码之前还会要求输入初始密码,然后就进入ubuntu的命令行界面了,如果对图形界面要求没有很强烈,可以直接跳到3.0来查看ROS安装

 

4

 

1.2.2 其他提醒

在使用Putty过程中,可以吧一次配置信息保存,方便日后使用,在左侧进行配置修改后回到Session点击Save即可存储相关配置,尤其是可以再Connection下的Proxy中保存用户名和密码,这样我们日后就可以一键连接了

5

 

1.2.3 图形界面登录

获取了IP地址之后可以直接使用Windows自带的远程桌面进行图形界面操控,同样可以存储链接信息日后一键登录。

 

放一张安装ROS过程中使用Windows远程操控的截图

 

开始安装ROS

 

2.0 Linux系统配套操作

2.1 镜像烧写

过程较Windows简化许多

参照https://blog.csdn.net/AlunX_daren/article/details/100881744 

 

首先查看盘符

fdisk -l

 

然后使用

sudo dd bs=1M if=镜像路径名称.img of=/dev/sdb(闪存卡设备号)

 

烧录镜像文件(也要先解压缩.xz文件)过程中没有进度显示,不过可以另外开一个终端使用top命令查看是否正常工作。

 

2.2 树莓派系统初始化

和使用Windows烧写的SD卡一样,插入到树莓派卡槽,上电,没有外接显示器的话就要SSH登录,Linux系统下SSH显然方便许多,不过需要查看ip,这里本人没有尝试,是通过Windows找到ip之后才登录的,另外本人目前也还没有做出Linux系统下的远程使用图形界面登录树莓派,日后还会研究,有大神愿意指点一二随时欢迎!!

 

3.0 ROS安装

主要参照古月居视频和 https://blog.csdn.net/qq_41450811/article/details/99079041

 

3.1 挖坑

相信能够找到古月居博客的朋友对ROS安装肯定不是一窍不通,否则出门左拐观看古月居21讲视频即可,这里只是简单提醒几句

3.1.1软件源配置

由于使用的镜像不是官方镜像,目前可能对镜像源更改支持不太好,本人尝试了阿里清华中科大的镜像源,都没成功(这里指的是/etc/apt/sources.list 中的镜像源,后文还要使用国内软件源),这里建议大家就是用默认镜像源,我是下了一宿把ROS装好的

 

3.1.2 软件源推荐

推荐中科大的源

sudo sh -c '. /etc/lsb-release && echo "deb http://mirrors.ustc.edu.cn/ros/ubuntu/ $DISTRIB_CODENAME main" > /etc/apt/sources.list.d/ros-latest.list'

 

 

3.1.3 针对sudo rosdep init过程中报错

尝试使用

rosdep init

 

安装,会提示安装"sudo apt install python-rosdep2 "

使用

sudo apt install python-rosdep2

 

安装之后会卸载部分功能包,大约100M

 

然后再

sudo rosdep init

 

这时候需要重新

sudo apt-get install ros-melodic-desktop-full
sudo apt-get install ros-melodic-rqt*

 

由于不需要下载,只需要安装一下,会很快

然后就可以添加路径等等常规操作了

 

参考https://blog.csdn.net/qq_41450811/article/details/99079041中的第一条评论

以上。