在最开始学习机器人操作系统(ROS)时,将上位机通过连线与移动机器人和传感器设备相连接,在机器人移动时很不方便。因此选择jeston TX1嵌入式平台,将ROS及所有导航功能集成到TX1上,将TX1放到turtlebot上,通过无线控制实现运动和导航等。
一、TX1上ROS系统的安装
1.jeston TX1安装Ubuntu14.04系统
jeston TX1官方有相关的刷机方法,可参考网址http://blog.csdn.net/sinat_24290073/article/details/53089074
2.在安装了Ubuntu系统的jeston TX1上安装ROS系统
传统的ROS安装方法可参考http://www.jianshu.com/p/04be841e2293,安装ROS命令如下:
$ sudo apt-get install ros-indigo-desktop-full
但是由于jeston TX1处理器架构(ARM)不同于普通的电脑处理器架构,在系统设置->系统与更新->更新源 中没有多余可用的源,因此用apt-get方法安装时,提示找不到安装包“ros-indigo-desktop-full”
接着,修改source.list中的源,改成国内和国外的都不行,最终查阅资料找到了解决方法:
解决方法1:不用apt-get安装,改用
解决方法2:参考网址http://blog.csdn.net/keetsky/article/details/54015652
参考网址http://wenda.ncnynl.com/question/32
(安装过程中提示缺少什么就安装什么,一般用apt-get方法就行)
3.安装turtlebot导航所需要的包,按官网教程安装即可
我用的是北阳激光雷达,驱动安装教程参考http://www.ncnynl.com/archives/201611/1101.html
4.在嵌入式平台上安装ROS后,启动turtlebot所需要的指令,需要把要启动的指令设为自启动,使TX1开机后自动运行,ROS命令开机自启动节点用的是robot_upstart包,官网有安装教程。
二、实现笔记本电脑和TX1通信
实现两个Ubuntu系统的通信,用笔记本实现对turtlebot的控制和监控,首先保证两个Ubuntu处于同一局域网中,这里通过笔记本辐射WiFi,用TX1连接笔记本辐射的WiFi来实现局域网连接。
1.首先,查看两台电脑(笔记本电脑和TX1)的IP信息和主机名hostname,这里将笔记本电脑作为主机,TX1作为从机
查看IP输入指令:
查看两台电脑的主机名指令:
笔记本:10.42.0.1 exbot
TX1:10.42.0.46 tegra-ubuntu
2.修改/etc文件夹下的hosts文件
修改hosts文件的目的是将两电脑的ip和主机名绑定,两台电脑之间通过hostname就能找到对方。没有这一步的时候,你直接去ping 对方主机名时,结果是无法解析对方主机名。
以修改笔记本上的hosts文件为例,TX1上做相同操作,需要用root方式修改hosts文件属性:
用常用的gedit方式修改
然后修改bashrc文件,
$ gedit ~/.bashrc
打开后,在笔记本上的bashrc文件最后加入:
sudo apt-get install chrony
4.在两台电脑上安装ssh服务器
首先用下列命令安装ssh服务器(ssh客户端ubuntu中自带了)
现在两个平台之间就可以互相通信了,可以用笔记本控制TX1了
用ssh hostname就可以进入到另一个电脑系统中,如:
在笔记本上运行ssh ubuntu@tegra-ubuntu 就进入到TX1平台的ubuntu系统中了。