一台主电脑
Nx
网线 (我是没有wifi模块 需要网线联网)
无线网卡(远程连接安有movelt的pc机时需要)
不需要显示屏和网线,用主机电脑 通过nomachine 软件,后面会讲解怎么用
需要显示屏和网线 nx是HDMI接口,根据显示屏的不同,需要HDMI转DVI或者HDMI转VGA
(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同理
小鱼一键安装ros代码
wget http://fishros.com/install -O fishros && bash fishros
参考: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,源码包下载链接源码包
第三步
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


(1)飞控参数设置
参数配置如下
MAV_1_CONFIG= TELEM 2
MAV_1_MODE = Onboard
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)网卡驱动安装
【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消息,验证是否通讯
(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提供定位
(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主机的地址,
比如,主机三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
或者【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
免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删