在Jeston TX1上进行ROS配置和导航包测试

在最开始学习机器人操作系统(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输入指令:

  1. ifconfig  
在wlan0一栏找到笔记本的IP,TX1的IP

查看两台电脑的主机名指令:

  1. hostname  
经查看,最终我在两个平台上得到的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方式修改

  1. gksu gedit /etc/hosts  
打开hosts文件后,文件已经存在了前两行关于ip和hostname的信息,接着在这两行后面插入刚刚查到的两个平台的IP和hostname,IP和hostname中间用Tab键隔开,形式如下:

  1. iphostname  
修改完成后,在两个平台上都输入以下命令重启网络:

  1. sudo /etc/init.d/networking restart  

然后修改bashrc文件,

$ gedit ~/.bashrc

打开后,在笔记本上的bashrc文件最后加入:

  1. export ROS_HOSTNAME=exbot  
  2. export ROS_MASTER_URI=http://tegra-ubuntu:11311  
在TX1的bashrc文件最后加上:

  1. export ROS_HOSTNAME=tegra-ubuntu  
  2. export ROS_MASTER_URI=http://tegra-ubuntu:11311  
3.在两台电脑上安装chrony,用于实现同步:

sudo apt-get install chrony 

4.在两台电脑上安装ssh服务器

首先用下列命令安装ssh服务器(ssh客户端ubuntu中自带了)

  1. sudo apt-get install openssh-server  
安装完成后确认服务器已经启动

  1. ps -e|grep ssh  
如果ssh-server还没有启动,需要/etc/init.d/ssh start,如果看到sshd那说明ssh-server已经启动了。

现在两个平台之间就可以互相通信了,可以用笔记本控制TX1了


用ssh hostname就可以进入到另一个电脑系统中,如:

在笔记本上运行ssh ubuntu@tegra-ubuntu 就进入到TX1平台的ubuntu系统中了。


你可能感兴趣的:(在Jeston TX1上进行ROS配置和导航包测试)