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

### Jetson TX2 GPIO配置与使用方法 对于NVIDIA Jetson TX2平台上的GPIO操作,需注意几个关键点以确保顺利配置和使用。 #### 权限需求 由于硬件访问权限的原因,在导入`Jetson.GPIO`模块时如果遇到错误提示找不到名为`Jetson`的模块,则表明当前环境缺乏必要的执行权限。此时应当切换至超级用户模式来运行Python程序[^1]: ```bash sudo python your_script.py ``` 或者针对Python 3版本: ```bash sudo python3 your_script.py ``` 这一步骤能够有效解决因权限不足而导致无法加载特定库文件的问题。 #### 库安装过程 为了能够在项目中正常使用Jetson GPIO功能,首先得确保已经正确安装了对应的库。推荐通过pip工具来进行快速便捷地安装: ```bash sudo pip install Jetson.GPIO sudo pip3 install Jetson.GPIO ``` 上述命令分别适用于不同版本的Python解释器,根据实际开发环境中所使用的Python版本选择合适的指令执行即可完成库的部署工作[^3]。 #### 基础编程实例 下面给出一段简单的Python代码片段作为示例,展示了如何初始化并控制一个连接到指定编号引脚上的LED灯泡亮灭状态: ```python import time import Jetson.GPIO as GPIO # 设置引脚编号方式采用BCM编码方案 GPIO.setmode(GPIO.BCM) # 设定具体要操控的物理引脚号以及初始输出电平方向 led_pin = 18 # 这里假设使用的是BCM编码下的第18号引脚 GPIO.setup(led_pin, GPIO.OUT, initial=GPIO.LOW) try: while True: print('Turning on LED...') GPIO.output(led_pin, GPIO.HIGH) time.sleep(1) # 让LED保持开启一秒 print('Turning off LED...') GPIO.output(led_pin, GPIO.LOW) time.sleep(1) # 关闭一秒钟后再重复循环 finally: GPIO.cleanup() # 清理释放资源 ``` 该例子不仅说明了基本的操作流程——包括设定引脚的工作模式、改变其逻辑电平等;同时也体现了良好的实践习惯比如最后调用了`cleanup()`函数清理占用的硬件资源[^2]。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值