PX4与TX2通信以及相关数据的获取
目录
1. PX4硬件接口
2. TELEM1、2接口线序
3. PX4与TX2通信
PX4 IO口定义:
PX4硬件:
4. 通信测试
5. RTPS+ROS
Jetson TX2终端:
pixhawk:
6. 提高IMU数据发布频率
方法一:通过mavros包话题订阅频率
方法二:更改PX4启动文件
7. GPS数据获取
1. PX4硬件接口
文章来源地址https://www.toymoban.com/news/detail-625042.html
2. TELEM1、2接口线序
3. PX4与TX2通信
PX4是TELEM2,飞控地面站(QGroundControl)TELEM2口的波特率设置为921600,TX2中MAVROS中的fcu_url参数设置为/dev/ttyTHS2:921600即可。
PX4 IO口定义:
Serial Port Mapping | PX4 User Guidehttps://docs.px4.io/main/en/hardware/serial_port_mapping.html
PX4硬件:
Pixhawk 4 | PX4 User Guidehttps://docs.px4.io/main/en/flight_controller/pixhawk4.html硬件连接如图所示
PX4通过Telem2与TX2实现通信:
TX2载板为瑞泰新时代(北京)科技有限公司与Nvidia合作的RTSO-9003U底板,用到的是P7口5(UART1_TX)、6(UART1_RX)、19(GND)、20(GND)引脚。
4. 通信测试
TX2终端输入:
roscd mavros
ls
cd launch
sudo vim px4.launch
fcu_url参数设置为/dev/ttyTHS2:921600
新打开一个终端:
rostopic echo /mavros/imu/data
rostopic echo /mavros/state
结果:
...
connected: True
...
5. RTPS+ROS
Jetson TX2终端:
sudo chmod a+rw /dev/ttyTHS2
source ~/px4_ros_com_ros2/install/setup.zsh
micrortps_agent -d /dev/ttyTHS2 -b 921600
pixhawk:
micrortps_client start -d /dev/ttyS2 -b 921600
6. 提高IMU数据发布频率
有两个imu数据,/mavros/imu/data_raw和/mavros/imu/data,前者没有orientation数据,后者有,飞控计算过后的IMU数据。
方法一:通过mavros包话题订阅频率
# 查看话题的发布频率
rostopic hz /mavros/imu/data_raw
# 调整发布频率 /mavros/imu/data_raw 100hz
rosrun mavros mavcmd long 511 105 10000 0 0 0 0 0
# 调整发布频率 /mavros/imu/data 100hz
rosrun mavros mavcmd long 511 31 10000 0 0 0 0 0
如果想要提到更高的频率只需要减小10000
这个参数,这个就是设置时间间隔的现在间隔为10000us,所以是100Hz。
例如:
rosrun mavros mavcmd long 511 31 10000 0 0 0 0 0
方法二:更改PX4启动文件
先把飞控的内存卡取出来,用读卡器插上,然后在根目录下面建立一个etc的目录,然后在目录下面新建一个extras.txt的文件。
extras.txt:
mavlink stream -d /dev/ttyS2 -s ATTITUDE_QUATERNION -r 100
mavlink stream -d /dev/ttyS2 -s HIGHRES_IMU -r 100
这个具体的原理就是配置PX4的开机启动文件,通过设置mavlink发布的速率达到更改mavrosIMU发布频率的目的。
里面的-d 选项后面的是指的mavlink的端口,我用的串口2所以是/dev/ttyS2 ,如果是串口1就是/dev/ttyS1,如果是USB连接的就是 /dev/ttyACM0,-s是发布的消息,-r自然就是发布的速率了。
mavros话题 /mavros/imu/data_raw对应的是HIGHRES_IMU。
mavros话题 /mavros/imu/data对应的是ATTITUDE_QUATERNION。
这个命令可以直接在mavlink控制台里面输入,测试没问题了过后再写在SD卡里面。
然后把下面些内容复制进去保存退出过后,给飞控上电,之后测试频率就OK。
7. GPS数据获取
Tips:
mavro中发布的global_postion和local_positon等相关的话题的数据,都是通过融合GPS数据获取得到的,所以获取到GPS数据是很重要的一步,最好去空旷的室外。其中的/mavros/local_position/pose发布的数据为以GPS上电时刻为原点而建立的NED坐标系的位置数据和四元数数据。(这里不对NED坐标系进行介绍)
只要能够成功建立与PX4飞控的连接,就可以获取到mavros发布的关于imu的数据,但是却不一定能够获取到/mavros/local_position/pose以及其他相关话题的数据。正如前面所说,只有获取到GPS信号才可以,为此需要带着飞控和GPS到比较空旷的室外。然后,通过micro-USB将飞控连接QGC,多等一会。等到左上角搜索到的卫星数目大于等于6之后,便可以关闭QGC,然后尝试运行px4.launch文件,看看能否获取到数据,即
rostopic echo /mavros/local_position/pose
要点就一个,到空旷的室外等!
文章来源:https://www.toymoban.com/news/detail-625042.html
到了这里,关于PX4与TX2通信的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!