JetsonTX1+Turtlebot+KinectV2配置小结

TX1系统要用14.04,因为ROS要用indigo的,当然16.04用ROS kinetic也可以,估计会有一些麻烦。

TX1配置

1.TX1刷系统可参考NVIDIA的说明:
http://docs.nvidia.com/jetpack-l4t/index.html#developertools/mobile/jetpack/l4t/2.2/jetpack_l4t_install.htm#component_manager
JetPack L4T下载(为了用14.04我用的是JetPack 2.1 for L4T [L4T r23.2]):
https://developer.nvidia.com/embedded/jetpack-archive
刷完其实基本的环境都配置好了,很方便。

2.配置ROS indigo:
http://wiki.ros.org/indigo/Installation/UbuntuARM
可能会由于源的问题装不了,解决方法:1.换源;2.换个网络环境(被校园网给坑了)

3.配置turtlebot:
TX1上配置:http://wiki.ros.org/turtlebot/Tutorials/indigo/Turtlebot%20Installation
对于turtlebot的kobuki底盘,为了使我们的Jetson TX1检测到底盘的ftdi USB接口,我们需要对设备管理器(udev)规则进行转换。这样的话,kobuki底盘就可以通过/dev/kobuki而不是/dev/ttyUSBx进行数据传输,而前者较后者更加可靠。
如果你前面使用的是deb包来安装turtlebot的功能包的话,在终端运行下面的命令完成设备管理器(udev)规则的转换:

> . /opt/ros/indigo/setup.bash
> rosrun kobuki_ftdi create_udev_rules

如果你使用的是源码安装,可以运行下面的命令:

> . ~/turtlebot/devel/setup.bash
> rosrun kobuki_ftdi create_udev_rules

Host上配置:http://wiki.ros.org/turtlebot/Tutorials/indigo/PC%20Installation
http://wiki.ros.org/turtlebot/Tutorials/indigo/Debs%20Installation
分别在Host上和TX1上测试配置正确与否:http://www.ncnynl.com/archives/201609/792.html
然后配置网络:http://wiki.ros.org/turtlebot/Tutorials/indigo/Network%20Configuration
http://www.ncnynl.com/archives/201609/793.html
配置成功就可以在Host远程操作了。

KinectV2配置

首先下载libfreenect2,装一些依赖库

> git clone https://github.com/OpenKinect/libfreenect2.git
> sudo apt-get install libturbojpeg libjpeg-turbo8-dev mesa-common-dev freeglut3-dev libxrandr-dev libxi-dev

然后配置libusb,KinectV2要求的libusb版本要libusb-1.0.20以上,在源中安装的版本是不行的,Kinect会驱动不了!!!
libusb-1.0.21下载地址:https://nchc.dl.sourceforge.net/project/libusb/libusb-1.0/libusb-1.0.21/libusb-1.0.21.tar.bz2
下载下来后,编译安装一下:

> sudo apt-get install libudev-dev
> ./configure
> make
> sudo make install

再安装GLFW3:

> cd libfreenect2/depends
> sh install_ubuntu.sh
> sudo dpkg -i libglfw3*_3.0.4-1_*.deb

接着去编译libfreenect2,如果之前在源中安装过低版本的libusb,记得修改CMakeLists.txt让其能找到高版本的。编译过程中可能会出现静态库动态库的问题,修改CMAKE_CXX_FLAGS,编译选项加上 -fPIC 即可。
然后需要把libfreenect2文件夹下面的rules里面的一个90开头的文件复制到/etc/udev/rules.d/下面
测试一下:

> ./bin/Protonect

在Host上测试倒是没什么问题,在TX1上测试出现了:
failed to open Kinect v2: @12:2 LIBUSB_ERROR_OTHER Other error
failure opening device!
这是TX1对USB3.0支持有点问题,NVIDIA的Jetson论坛上有这个问题:
https://devtalk.nvidia.com/default/topic/919354/jetson-tx1/usb-3-transfer-failures/post/4899105/#4899105
下载个xusb_sil_rel_fw-test.zip
然后解压,再

cp xusb_sil_rel_fw-test /lib/firmware/tegra21x_xusb_firmware

OK搞定。

其他

TX1的供电是DC 19V的,也不知什么原因turtlebot的19V供电口有问题(不知是个例还是?),尝试了用外置19V电池供电,也是不行。最后是用了逆变器将12V转到220V来给TX1供电,临时性解决了这个问题,但续航就很成问题,如有朋友知道其他解决方法望告知,在下不胜感激。
还有给TX1用的USB分线器一定要是3.0的,因为KinectV2不支持2.0

你可能感兴趣的:(笔记)