在Nvida TX1上搭建ROS

        最近拿到一块TX1的板子搭建ROS平台,对于从来没有玩过开发板的我表示很心累,过程中遇到许多坑,最后也是成功了,也是希望能够分享出来与大家交流交流。

        TX1拿到手之后也是很懵逼的(因为没玩过),也是现在网上搜了一大堆资料,最后开始动手。其实在TX1上搭建ROS就两个步骤:刷机安装ROS,下面就给大家详细的操作流程。

 

一. 刷机

        刷机网上也有很多教程,大家可以参考,我向大家推荐这一个https://blog.csdn.net/c406495762/article/details/70786700,他已经写的比较详细了,基本上都能看懂,我这边也只是大概讲一下流程以及避免一些坑,大家可以两篇文章一起看,会更加全面。

       首先,提出一个说明,很多教程指出TX1不支持64位的Ubuntu系统上装ROS,最后证明是可以的,大家可以放心的下载Ubuntu16.04 64位。TX1本身是装有16.04的Ubuntu系统,我一开始是直接安装ROS没有刷机,但装的过程出现问题,最后也没有找到解决方案,按照终端给出的解决命令,直接把系统搞崩了,没办法,只有刷机之后再装,大家可以跳到下面的安装ROS步骤,尝试装一下,失败了刷机之后再装ROS也是没也问题。

      在官网下载Jetpack包,但需要注册账号之后才能下载(https://developer.nvidia.com/embedded/jetpack

      在这先指出本文中特别重要的一个名词->安全令

      安全令就是在终端执行以下三条命令

      $ sudo apt-get update

      $ sudo apt-get upgrade

      $ sudo apt-get -f install

      这是血淋淋的教训得出来的经验,不要不信邪,在需要使用安全令的时候一定要用。

      下载完之后先不要安装,确保安全令输入之后不会出错,没有问题则继续安装。有问题就需要百度或者google了。

       然后就是一路点击NEXT,选择TX1,在那篇文章里面有详细的介绍,我就不重复了。

       给出大家TX1的一些比较重要的接口和开关示意图。

       

      安装成功之后,按照步骤将电脑,开发板,路由器连接起来开始在开发板上安装,在开发板安装结束之后就可以在开发板上插入显示屏,键盘,鼠标开始装ROS了。

      问题来了,由于TX1板子的功能包是arm架构,电脑基本上都是amd架构,这就会出现一个冲突,导致在电脑上输入sudo apt-get update 会出错,错误解决方案在我另一篇博客(https://blog.csdn.net/BOSHEN97/article/details/84254353)当中给出,大家可以参考。

二. 装ROS

      我装的Jeppack包版本为3.3,Ubuntu会有两个用户nvida和ubuntu,密码和用户名都是一样的,默认进入nvida,由于国外源较慢,所以我们选择为数不多支持arm架构的中科大源。

$ cd /etc/apt

$ sudo gedit sources.list

将sources.list的内容全部注释,将以下内容复制粘贴进去

deb http://debian.ustc.edu.cn/ubuntu/ trusty main multiverse restricted universe

deb http://debian.ustc.edu.cn/ubuntu/ trusty-backports main multiverse restricted universe

deb http://debian.ustc.edu.cn/ubuntu/ trusty-proposed main multiverse restricted universe

deb http://debian.ustc.edu.cn/ubuntu/ trusty-security main multiverse restricted universe

deb http://debian.ustc.edu.cn/ubuntu/ trusty-updates main multiverse restricted universe

deb-src http://debian.ustc.edu.cn/ubuntu/ trusty main multiverse restricted universe

deb-src http://debian.ustc.edu.cn/ubuntu/ trusty-backports main multiverse restricted universe

deb-src http://debian.ustc.edu.cn/ubuntu/ trusty-proposed main multiverse restricted universe

deb-src http://debian.ustc.edu.cn/ubuntu/ trusty-security main multiverse restricted universe

deb-src http://debian.ustc.edu.cn/ubuntu/ trusty-updates main multiverse restricted universe

保存退出

接下来就开始安装ROS了

添加ROS的镜像源

$ 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'

添加密钥

$ sudo apt-key adv --keyserver hkp://ha.pool.sks-keyservers.net:80 --recv-key 421C365BD9FF1F717815A3895523BAEEB01FA116

输入安全令,确保无误方可继续。

安装ROS(无法安装桌面完全版,具体原因尚未清楚)

 $ sudo apt-get install ros-kinetic-desktop

初始化rosdep

$ sudo rosdep init

$ rosdep update

设置环境变量

$ echo "source /opt/ros/kinetic/setup.bash" >> ~/.bashrc

$ source ~/.bashrc

安装常用工具(可不安装,但建议安装)

$ sudo apt-get install python-rosinstall python-rosinstall-generator python-wstool build-essential

至此,ROS安装完毕,在终端输入roscore,如果没有问题则说明ROS安装成功。

如果要用于实体机器人需要注意,TX1上是没有默认安装USB转串口的驱动,所以需要安装cp210x.ko驱动,大家先执行以下命令查看内核是否有cp210x驱动。

$ cd /lib/modules/4.4.38-tegra/kernel/drivers/usb/serial

$ ls

如果出现了cp210x.ko的字样,就说明有驱动,直接加载就可以了,没有就可能要去下载。

因为我也是在下载了多次之后才发现这里面有这个驱动模块,所以我并不清楚是我自己下的还是系统自带的,如果大家发现不是系统自带的,大家可以私信我,我会再写一篇文章给大家一个安装cp210x.ko驱动的教程,这个坑也很多。

加载驱动命令如下

$ sudo insmod cp210x.ko

需要注意的是,每次开机都需要加载一次,我也尝试在开机的时候内核启动就把驱动加载,但一直没找到正确的方法,还在努力的尝试中,大家如果知道可以分享一下,我也有一个另类思路,但也没去尝试,大家可以试一试,将开机启动之后的用户权限设置为root权限,这样一开机就是root用户权限,然后再设置一个开机自动输入sudo insmod cp210x.ko命令。应该可以,但不知道会不会有问题。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值