由于项目需要,最近开始研究通过Xavier运行VINS的方法,使用的传感器是Intel的RealSense, 但是Xavier对RealSense的支持却不怎么好,下面介绍一下躲坑方法,希望众位看官能巧妙避开,直捣黄龙。
1、Xavier环境配置
在配置之前要先确定Xavier的运行版本,我用的JetPack4.2 ,L4T 32.1.0
- 下载Realsense官方的Xavier配置包,方法如下:
$ cd $HOME
$ git clone https://github.com/jetsonhacks/buildLibrealsense2Xavier
$ cd buildLibrealsense2Xavier
2.执行$ ./buildPatchedKernel.sh
这一步的操作是为了给当前系统打补丁,因为Xavier的内核和PC机所用的ubuntu内核不太一样,缺乏依赖文件,所以需要给系统打补丁,打完后会生成一个image文件,这个文件喜欢给Xavier刷机的筒子们肯定不陌生,一定能猜到下一步就是给系统刷机啦!
3.用生成的IMAGE文件给系统刷机
简要说一下刷机步骤:
- 拔掉Xavier电源,将其通过USB连在主机上
- 先按中间的按键不松手,再按离电源灯最近的按键,保持2秒钟,同时松手,然后用lsusb命令查看主机的usb接口有没有NVIDIA的标志,如果出来的话,进入下一步
- Xavier和主机需要在同一局域网下,将生成的image文件放在主机Jetpack的Xavier/Linux_for_Tegra/kernel 目录下,替换并备份原来的image文件
- 最后执行刷机操作$ sudo ./flash.sh -k kernel jetson-xavier mmcblk0p1
这个过程很快就能结束
2.安装librealsense 2前的准备工作
当Xavier重启后,执行
$ cd buildLibrealsense2Xavier
然后执行安装库文件的脚本,对了,在安装前要根据后续的使用调整,库文件的版本,我是想用ROS跑这套系统,要求4.25版本的,所以我是这么改的
- 打开installLibrealsense.sh,找到LIBREALSENSE_VERSION=v2.17.0这一行
- 改成LIBREALSENSE_VERSION=v2.25.0
- 保存即可
然而,如果现在就执行安装命令,虽然也可以通过编译,但是运行程序时会遇到USB 繁忙的问题,丢数据特别严重。
通过Google后,找到了解决方法
1.首先需要给usb驱动再打补丁,可以从这个网站下载,下载完后将其解压缩,得到.patch文件
然后,运行
cd /usr/src/kernel/kernel-4.9/drivers/media/usb/uvc/
patch -p1 < 0001-media-uvc-restrict-urb_num-no-less-than-UVC_URBS.patch
会遇到选择文件的问题,输入uvc_video.c,press Enter就行。
2.下载这个资源后解压缩,
1. Replace xusb_sil_rel_fw_Xavier
1. copy xusb_sil_rel_fw_Xavier to pendrive
2. back up original firmware
mv /lib/firmware/tegra19x_xusb_firmware /lib/firmware/tegra19x_xusb_firmware_ori
3. copy xusb_sil_rel_fw_Xavier to /lib/firmware
cp <WHERE_YOU_MOUNT_PENDRIVE>/xusb_sil_rel_fw_Xavier /lib/firmware/tegra19x_xusb_firmware
4. reboot device
5. The fw timestamp should be:
root@tegra-ubuntu:/sys/class/tegra-firmware/3610000.xhci# cat version
3610000.xhci: Firmware timestamp: 2019-07-16 08:23:26 UTC, Version: 60.05 release
2. Remove all the USB device and confirm that xhci enters ELPG
1. Check "tegra-xusb 3610000.xhci: entering ELPG done" in kernel log
3. Increase falcon clock freq
1. sudo su
2. cd /sys/kernel/debug/bpmp/debug/clk/xusb_falcon
3. echo 1 > state
4. echo 408000000 > rate
5. cat rate ---------> To make sure the rate is 408000000
执行没问题之后
执行下面命令安装
$ ./installLibrealsense.sh
然后就可以接着科研了!
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)