SLAM+语音机器人DIY系列:(五)树莓派3开发环境搭建——3.装机后一些实用软件安装和系统设置

328
0
2020年9月7日 10时05分

摘要

通过前面一系列的铺垫,相信大家对整个miiboo机器人的DIY有了一个清晰整体的认识。接下来就正式进入机器人大脑(嵌入式主板:树莓派3)的开发。本章将从树莓派3的开发环境搭建入手,为后续ros开发、slam导航及语音交互算法做准备。本章内容:

1.安装系统ubuntu_mate_16.04

2.安装ros-kinetic

3.装机后一些实用软件安装和系统设置

4.PC端与robot端ROS网络通信

5.Android手机端与robot端ROS网络通信

6.树莓派USB与tty串口号绑定

7.开机自启动ROS节点


3.装机后一些实用软件安装和系统设置

虽然我们顺利安装了ubuntu-mate-16.04系统,并且在系统上装好了ROS-kinetic发行版,为了后面跟高效和便捷的开发,这里将进行一些非常实用软件的安装和系统设置。

3.1.开机自动登录

装完系统后第一次开机,会要求设置用户名和密码,这里应该设置用户开机自动登录,只有登录后树莓派3才能自动连接到无线网络,从而才能远程控制。如果装机时已经设置了,请直接跳过这一部分;如果你搞忘记或遗漏了,没有设置开机自动登录,也不要紧,用下面的的方法进行自动登录设置。

 

打开文件/usr/share/lightdm/lightdm.conf.d/60-lightdm-gtk-greet.conf,在[seat:*]节点下修改或添加以下代码

 

autologin-user=ubuntu #ubuntu是要自动登录的用户名

 

3.2.超级用户root密码设置

装完ubuntu-mate-16.04系统后,root用户默认是没有密码的;用普通用户ubuntu的sudo权限去设置root用户的密码。

 

反正我们是用于学习,出于方便记忆的考虑,所以和之前设置ubuntu的用户名和密码一样,这里设置root的用户名和密码也一样,也就是root用户的密码也是root。

 

ubuntu@ubuntu-desktop:~$ sudo passwd root 
[sudo] password for ubuntu:    #键入ubuntu密码 
Enter new UNIX password:       #键入root新密码 
Retype new UNIX password:      #确认root新密码 
passwd: password updated successfully

 

root密码设置成功后,su root登录进去验证一下,如果能登录就设置成功了。

 

3.3.扩展SWAP空间

由于后续在树莓派3上需要编译一些大型的程序和运行复杂的SLAM算法,默认的物理内存1GB是不够用的,常常造成卡机死机等现象,这里需要添加SWAP扩展空间,其实就是当系统内存不足时会用硬盘上SWAP分区作为虚拟内存。

 

由于我的microSD卡是32GB的,所以可以多分配一些给SWAP,所以分配4GB给SWAP空间。具体步骤:

 

#先关闭swap
cd /var 
sudo swapoff /var/swap 

#重设swap大小1M*4096=4GB,会花较长时间,请耐心等待 
sudo dd if=/dev/zero of=swap bs=1M count=4096
 
#格式化 
sudo mkswap /var/swap 

#开启swap 
sudo swapon /var/swap 

#设置开机启动,在/etc/fstab文件中添加如下代码 
/var/swap swap swap defaults 0 0 
#查看当前已生效的swap 
swapon -s 
#查看当前swap使用情况 
free -m

 

3.4.连接wifi网络

为了让机器人启动后,我们能通过网络远程访问,需要给机器人配置好网络连接,并分配静态IP,让机器人开机后就能自动连接wifi。关于设置的内容已经在上面安装ros-kinetic详细介绍了,有需要的直接前去翻阅就行。

 

3.5.安装chromium浏览器

前一段时间,在ubuntu-mate-16.04上安装ROS后,ubuntu-mate-16.04系统自带的Firefox浏览器不能用了,Firefox最近对这个故障进行了修复。不过为了保险起见,还是推荐安装谷歌为linux系统推出的浏览器chromium,跟我们平时用的闻名于世的chrome浏览器是差不多的。安装很简单,就一条命令。

 

sudo apt-get install chromium-browser

 

3.6.安装vim、ssh工具

vim是Linux中一款很经典的代码文本编辑器,不论是本地还是远程编辑文本都很强大;ssh功能很强大,不紧可以提供用户远程登录控制系统和编辑文件,还提供命令终端下的scp远程文件传输。安装很简单,几条命令就搞定。

 

#安装vim
sudo apt-get install vim

 

#安装ssh服务端
sudo apt-get install openssh-server
#开启ssh服务
sudo service ssh start
#设置开机自启动ssh服务,在开机自启动脚本/etc/rc.local加入下面这条命令,
#注意加入位置是在exit 0这一句之前
service ssh start 
#检查ssh是否启动,使用下面命令
ps -e | grep ssh
如果输出中含有ssh-agent和sshd就说明成功了

 

3.7.通过ssh远程登录到机器人

树莓派3主板是安装在miiboo机器人上的,由于机器人要在地上自由移动,给机器人上的树莓派配一个HDMI显示器和鼠标键盘用于程序调试显然是不方便的。一个很好的方法是,工作端PC和机器人连接到同一个路由器完成局域网组网,然后在PC端用ssh远程登录到机器人,这样就可以在工作PC端对机器人上的程序和文件进行调试开发了。

 

ssh远程登录方法:

 

#在PC端上打开终端,ssh远程登录机器人,
#ubuntu为登录用户名,192.168.0.117为登录机器的IP,根据实际替换
ssh ubuntu@192.168.0.117

#退出ssh远程登录
exit

 

一旦PC端打开的终端窗口ssh远程登录机器人后,就可以在该终端下像在机器人上使用终端一样进行操作了。PC端可以打开多个终端窗口ssh远程登录机器人,这样在不同的终端下可以开启机器人上不同的程序。

 

3.8.在工作PC端远程编辑机器人上的文件

已经介绍了通过ssh远程登录机器人的方法,其实可以直接在登入的终端下用vim对机器人上的文件进行查看编辑。但是,如果需要同时编辑多个文件,或对一个软件项目源码进行编辑,vim就不方便了。

 

这里推荐在PC端安装IDE开发工具(比较推荐atom,不过sublime text也不错,根据个人喜好选择吧),然后将机器人上的系统文件夹远程挂载在PC端系统,这样就可以在PC端上用IDE开发工具直接对远程挂载过来的文件及文件夹进行编辑了。

 

在PC端安装IDE开发工具atom很简单,直接在ubuntu软件中搜索atom,然后点击安装就行了,如图21。

 

SLAM+语音机器人DIY系列:(五)树莓派3开发环境搭建——3.装机后一些实用软件安装和系统设置插图

(图21)在PC端安装IDE开发工具atom

 

将机器人上的系统文件夹远程挂载在PC端系统,首先打开[文件]管理器,找到左侧栏的[连接到服务器],在服务器地址栏输入远程文件地址(如sftp://192.168.0.117/home/ubuntu,这里的sftp是协议,192.168.0.117是远程设备IP地址,/home/ubuntu是远程设备中想要被挂载的文件夹请根据实际替换),然后点击[连接],这是需要输入远程设备的登录名和密码,如图22。

 

SLAM+语音机器人DIY系列:(五)树莓派3开发环境搭建——3.装机后一些实用软件安装和系统设置插图(1)

(图22)将机器人上的系统文件夹远程挂载在PC端系统

 

挂载好后,就可以使用各种我们喜欢的编辑工具对文件夹中的文件进行编辑了,如图23,不过远程文件系统挂载会比较占用网路带宽,不用时建议尽量断开。

 

SLAM+语音机器人DIY系列:(五)树莓派3开发环境搭建——3.装机后一些实用软件安装和系统设置插图(2)

(图23)挂载好后的远程文件夹

发表评论

后才能评论