基于NVIDIA Xavier NX(ubuntu20.04)的Optitrack视觉定位 PX4+ros noetic(实物运行记录)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 前言
  • 一:硬件准备
    • 两种界面化显示的方式
      • 无线连接
      • 有线连接
  • 二:软件准备
    • 1:远程登录软件 NoMachine
    • 2:安装ros
    • 3:源码安装mavros(示例的ros版本为noetic)
  • PX4和NX通信
    • 硬件连接
    • 软件配置
    • 连接验证
    • 基于机载电脑利用==optitrack==为PX4提供定位
      • ubuntu机载电脑环境配置


前言

  • 基于NVIDIA Xavier NX(ubuntu20.04)的Optitrack视觉定位 PX4+ros noetic(实 物运行记录)
  • 这里的NVIDIA Xavier Nx使用的瑞泰新时代(北京的)
  • 使用的源码安装mavros
  • NX不支持QGC地面站 因此飞控的调参需要用主机调整

参考资料:参考一 参考二 参考三 参考四 参考五

一:硬件准备

一台主电脑
Nx
网线 (我是没有wifi模块 需要网线联网)
无线网卡(远程连接安有movelt的pc机时需要)
在这里插入图片描述

两种界面化显示的方式

无线连接

不需要显示屏和网线,用主机电脑
通过nomachine 软件,后面会讲解怎么用

有线连接

需要显示屏和网线
nx是HDMI接口,根据显示屏的不同,需要HDMI转DVI或者HDMI转VGA

二:软件准备

1:远程登录软件 NoMachine

(1)Linux系统Nomachine的下载

主机 Linux版的下载地址:https://downloads.nomachine.com/linux/?id=1

在这里插入图片描述

英伟达 NX Linux版的下载地址:https://downloads.nomachine.com/linux/?id=30&distro=Arm

在这里插入图片描述

(2)解压安装包
在所在路径终端输入 解压命令

参考命令(版本号不同,可以用Tab补全):

sudo tar zxvf nomachine_8.1.2_1_x86_64.tar.gz

(3)添加权限

sudo chmod -R 777 NX

(4)下载安装包

转到NX目录 运行nxserver自动完成下载

cd NX
sudo ./nxserver --install

在这里插入图片描述
(5)在linux主机下控制NVIDIA Xavier NX(ubuntu)
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

这里第一次使用,可能会弹出一些窗口,不过不影响,全部next,或对就可以用了。

注意:对于windows控制linux同理

2:安装ros

小鱼一键安装ros代码

wget http://fishros.com/install -O fishros && bash fishros

3:源码安装mavros(示例的ros版本为noetic)

参考:https://blog.csdn.net/jppdss/article/details/128392484

(1)依赖安装

sudo apt-get install python3-catkin-tools python3-rosinstall-generator -y
pip3 install importlib-metadata

在这里插入图片描述

(2)创建mavros的工作空间并初始化,终端运行以下命令:

mkdir -p ~/my_mavros_ws/src
cd ~/my_mavros_ws
catkin init
wstool init src

在这里插入图片描述
在这里插入图片描述
(3)更新获取最新的mavlink和mavros:

在my_mavros_ws目录下获取Mavlink:

rosinstall_generator --rosdistro noetic mavlink | tee /tmp/mavros.rosinstall

解决raw.githubusercontent.com无法访问的问题
在这里插入图片描述

在my_mavros_ws目录下获取mavros:

rosinstall_generator --upstream mavros | tee -a /tmp/mavros.rosinstall

在这里插入图片描述
(4)归并链接,开始准备安装:
第一步

wstool merge -t src /tmp/mavros.rosinstall

在这里插入图片描述
第二步

wstool update -t src -j8

若报错在这里插入图片描述
解决方法:
手动下载源码包,将其放到 my_mavros_ws/src,源码包下载链接源码包https://download.csdn.net/download/jppdss/87326158

第三步

rosdep install --from-paths src --ignore-src -y

(5)安装GeographicLib数据集:
在my_mavros_ws目录下终端运行:

sudo ./src/mavros/mavros/scripts/install_geographiclib_datasets.sh

(6)编译源码
在my_mavros_ws目录下终端运行:

catkin build

(7)添加环境变量

sudo gedit ~/.bashrc

在.bashrc最后加上:

source ~/my_mavros_ws/devel/setup.bash

保存,退出,运行

source ~/.bashrc

PX4和NX通信

硬件连接

Nx硬件接口
在这里插入图片描述

px4硬件接口
在这里插入图片描述

软件配置

(1)飞控参数设置
由于Jetson Xavier NX采用arm架构,QGC官方未推出该版本软件,所以使用Windows或Mac对飞控调参

参数配置如下

MAV_1_CONFIG= TELEM 2

MAV_1_MODE = Onboard
可能一开始只有 MAV_1_CONFIG 这一个参数,将其设置为 TELEM2 后重启飞控即可。

SER_TEL2_BAUD = 921600

EKF2_AID_MASK =24 (即选择选择vision position fusion和vision yaw fusion)

EKF2_HGT_MODE 设置为 Vision,有激光定高的可设为Range sensor
MAV_ODOM_LP设置为1(这个设置之后可以在QGC中Analyse Tools 中的Mavlink控制台查看相应的数据)

详细说明看官方文件:https://docs.px4.io/main/en/advanced_config/tuning_the_ecl_ekf.html

特殊的如果没有下拉菜单,只让你填数字,可以参考
在这里插入图片描述

(2)网卡驱动安装
此处是绿联AC650M,根据商家的教程,显示我ubuntu内核太高。因此不能用他们提供的驱动
【1】

首先无线网卡插上系统应该是识别到了,只不过没有驱动用不了而已。命令行输入ls usb应该可以看到Realtek Semiconductor 802.11ac啥的,就是无线网卡设备

【2】
下载8821驱动(注意下面都是需要网络的,使用网线连接提供网络)

 git clone https://github.com/KwanWaiPang/8821cu.git

【3】
下载完驱动以后,进入文件夹编译

cd 8821cu
make

如果报错,应该是没有安装make和gcc,输入下面的命令

sudo apt-get install make
sudo apt-get install gcc

【4】
编译完成后安装

make install

【5】重启

如果没报错,就可以重启台式机了,然后就能看到无线网络

连接验证

Mavros测试
首先更改连接方式,本人采用Nx的串口2与飞控连接

sudo vim /opt/ros/melodic/share/mavros/launch/px4.launch

修改串口位置以及波特率
串口位置要看你机载电脑说明文档(串口说明部分)

在这里插入图片描述
运行以下指令,若能显示飞控状态信息并能打印mavros信息,则证明Mavros与px4通讯成功。
注意:下面第一条,赋予串口权限,注销或关机后需再次赋予权限

sudo chmod 666 /dev/ttyTHS0		
roslaunch mavros px4.launch

如果此时正常启动,最后会显示mavros的ID号

然后另起终端,打印topic echo mavros消息,验证是否通讯
注意!!!
此时要给你的飞控(pxhawk)插上电池,不然通讯不了。如果只让nx的串口供电为他通讯不了

(1)输入

rostopic list

如果可以显示很多mavros topic名称就k

(2)根据上面命令显示的topic话题名称,随便找几个echo下
比如

rostopic echo mavros/state

显示connection true 就ok

rostopic echo mavros/imu/date

显示当前imu实时数据就ok

基于机载电脑利用optitrack为PX4提供定位

在前面通信成功的基础上,在机载电脑利用optitrack为PX4提供定位

ubuntu机载电脑环境配置

(1)在合适的路径下安装vrpn ,这里演示是在home文件下
使用vrpn将机载电脑与主机(安装Motive的)进行通信

cd ~ 
mkdir testws
cd testws
mkdir src
cd src
catkin_init_workspace
cd ..
catkin_make
git clone git clone https://github.com/clearpathrobotics/vrpn_client_ros.git
sudo apt-get install ros-melodic-vrpn  #这里需要根据对应的ROS版本填写 我是18.04
catkin_make
source devel/setup.bash
roslaunch vrpn_client_ros sample.launch  server:=192.168.1.2 #这里的IP地址是运行Motive主机的地址
#然后另外开启一个终端
rostopic list  #此时正常的话应该可以查看到目标位置信息了

验证

如果你rostopic list可以看见年所见的刚体的名字,然后rostopic echo
一下这个topic,如果可以显示位置信息,就没问题

(2)Mocap->Pixhawk

将optitrack的位置数据通过mavros传送给飞控

【1】运行vrpn_client_node
#这里的IP地址是运行Motive主机的地址,这里运行程序的机载电脑需要和运行Motive主机在一个网段
比如,主机三192.168.100.5,那么机载电脑也需要在192.168.100网段下。

roslaunch vrpn_client_ros sample.launch  server:=192.168.100.2

【2】运行PX4和mavros

roslaunch mavros px4.launch fcu_url:=/dev/ttyUSB0:921600 gcs_url:=udp://@192.168.0.105:14550

【3】运行ros节点,通过mavros,将位置信息传给px4

rosrun topic_tools relay /vrpn_client_node/<rigid_body_name>/pose /mavros/vision_pose/pose
  • fcu_url 连接树莓派和飞控的串口号
  • ls /dev/ttyUSB* 指令查看串口号是否连接
  • 参数 gcs_url:=udp://@192.168.0.119:14550 用来接收 QGroundControl
    数据(同一WIFI路由)
  • MAVROS 直接通过 /mavros/vision_pose/pose 给 PX4发布消息
  • remap从Mocap获取的位置主题 /vrpn_client_node/<rigid_body_name>/pose 成
    /mavros/vision_pose/pose

或者【3】也可以通过阿木实验室坐标转换代码代替
地址:https://github.com/amov-lab/Prometheus
代码在上面代码中的Modules/control/src/px4_pos_estimator.cpp路径下,有详细注释

验证
【1】rostopic echo /mavros/vision_pose/pose 查看是否有数据
【2】打开QGC,查看是否可以把飞控设置为position模式,如果可以就ok

  • 5
    点赞
  • 37
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 9
    评论
NVIDIA Xavier NX是一款强大的嵌入式AI计算模块,可以广泛应用于无人驾驶、工业自动化、智能摄像头等领域。下面是关于NVIDIA Xavier NX产品手册的回答: 产品手册概述了Xavier NX的技术规格、功能特性以及应用场景。首先介绍了Xavier NX的硬件组成,它采用了高性能的NVIDIA Volta GPU和六核心Carmel ARM v8.2 64位CPU,配备了8GB LPDDR4x内存和16GB eMMC闪存。这些硬件配置使得Xavier NX具备了强大的计算能力和存储能力,可以处理高度复杂的机器学习和深度学习任务。 此外,产品手册还详细介绍了Xavier NX的软件支持。它可以运行NVIDIA的JetPack SDK和TensorRT推理引擎,这使得开发者可以轻松构建和部署高效的AI模型。手册对于如何设置和启动Xavier NX提供了详细的指导,还介绍了如何使用TensorRT加速AI推理和深度学习模型的优化技巧。此外,手册还包含了开发者工具和开发环境的介绍,帮助开发者更好地利用Xavier NX进行软件开发和调试。 产品手册还重点强调了Xavier NX在无人驾驶、工业自动化和智能摄像头等领域的应用优势。它通过提供高度可靠性和低功耗的计算能力,为这些领域中的各种复杂任务提供了强力支持。不仅如此,Xavier NX还具备丰富的扩展性,支持多种传感器和接口,可以轻松与其他设备集成。 总的来说,NVIDIA Xavier NX产品手册提供了全面而详细的关于Xavier NX的介绍和应用指南。它不仅让用户了解到Xavier NX的硬件和软件特性,还帮助用户充分利用其强大的AI计算能力,实现在各个领域的应用创新。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

会变身的火娃

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值