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

摘要                                              

通过前面一系列的铺垫,相信大家对整个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用户默认是没有密码的;用普通用户ubuntusudo权限去设置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,所以分配4GBSWAP空间。具体步骤:

#先关闭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.安装vimssh工具                 

vimLinux中一款很经典的代码文本编辑器,不论是本地还是远程编辑文本都很强大;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

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

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

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

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

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

后记              

------SLAM+语音机器人DIY系列【目录】快速导览------

第1章:Linux基础

1.Linux简介

2.安装Linux发行版ubuntu系统

3.Linux命令行基础操作

第2章:ROS入门

1.ROS是什么

2.ROS系统整体架构

3.在ubuntu16.04中安装ROS kinetic

4.如何编写ROS的第一个程序hello_world

5.编写简单的消息发布器和订阅器

6.编写简单的service和client

7.理解tf的原理

8.理解roslaunch在大型项目中的作用

9.熟练使用rviz

10.在实际机器人上运行ROS高级功能预览

第3章:感知与大脑

1.ydlidar-x4激光雷达

2.带自校准九轴数据融合IMU惯性传感器

3.轮式里程计与运动控制

4.音响麦克风与摄像头

5.机器人大脑嵌入式主板性能对比

6.做一个能走路和对话的机器人

第4章:差分底盘设计

1.stm32主控硬件设计

2.stm32主控软件设计

3.底盘通信协议

4.底盘ROS驱动开发

5.底盘PID控制参数整定

6.底盘里程计标

第5章:树莓派3开发环境搭建

1.安装系统ubuntu_mate_16.04

2.安装ros-kinetic

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

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

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

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

7.开机自启动ROS节点

第6章:SLAM建图与自主避障导航

1.在机器人上使用传感器

2.google-cartographer机器人SLAM建图

3.ros-navigation机器人自主避障导航

4.多目标点导航及任务调度

5.机器人巡航与现场监控

第7章:语音交互与自然语言处理

1.语音交互相关技术

2.机器人语音交互实现

3.自然语言处理云计算引擎

第8章:高阶拓展

1.miiboo机器人安卓手机APP开发

2.centos7下部署Django(nginx+uwsgi+django+python3)

----------------文章将持续更新,敬请关注-----------------

 

如果大家对博文的相关类容感兴趣,或有什么技术疑问,欢迎加入下面的《SLAM+语音机器人DIY》QQ技术交流群,一起讨论学习^_^

 

关于我们:

视频教程:

 

https://www.bilibili.com/video/av61448040

 

posted @ 2019-02-21 01:36 小虎哥哥爱学习 阅读(...) 评论(...) 编辑 收藏