之前在进行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
复制这段内容后打开百度网盘手机App,操作更方便哦
1.0.2下载树莓派安装工具
链接:https://pan.baidu.com/s/1rqESAXRqIhu6fLlescM5Vw
提取码:r1b2
复制这段内容后打开百度网盘手机App,操作更方便哦
SDFormatter用来将SD卡格式化;Win32DiskImager用来烧录镜像,两个软件都是免安装的
操作比较简单,用读卡器将sd连接电脑,打开SDF,读取到SD后就能格式化
这里插一句,如果镜像烧录失败,想要重新烧录,用这个软件是不能完全读取SD卡所有扇区的,需要在磁盘管理中先把SD所有分区删除再格式化出来一个简单卷,提示,这里一定要小心加谨慎,数据无价,不要误操作!!
1.0.3 安装Notepad++用于一些文本文件的修改,在修改系统配置文件的时候如果使用系统自带的记事本可能会导致崩溃
建议直接去官网下载安装
官网链接: https://notepad-plus-plus.org/downloads/v7.8.1/
.
这个工具可以远程使用命令行操作Linux系统,操作流程详见1.1
链接:https://pan.baidu.com/s/1f_38eed5Kmbgi3mvTb9j6Q
提取码:i4ip
复制这段内容后打开百度网盘手机App,操作更方便哦
1.1开始安装
1.1.1 格式化SD卡
将SD插入读卡器,打开SDF,格式化SD卡,完成之后会提示重新插拔一次
1.1.2 烧录Ubuntu镜像将之前的.xz文件解压出来得到.img文件,打开Win32DiskImager,如果出现如下提示ok就行
然后选择镜像,开始Write
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安装
1.2.2 其他提醒在使用Putty过程中,可以吧一次配置信息保存,方便日后使用,在左侧进行配置修改后回到Session点击Save即可存储相关配置,尤其是可以再Connection下的Proxy中保存用户名和密码,这样我们日后就可以一键连接了
1.2.3 图形界面登录获取了IP地址之后可以直接使用Windows自带的远程桌面进行图形界面操控,同样可以存储链接信息日后一键登录
放一张安装ROS过程中使用Windows远程操控的截图
2.0 Linux系统配套操作 2.1 镜像烧写过程较Windows简化许多
参照链接.
首先使用
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.
中的第一条评论