PX4與TX2通信以及相關(guān)數(shù)據(jù)的獲取
目錄
?1. PX4硬件接口
2. TELEM1、2接口線序
3.??PX4與TX2通信
?PX4 IO口定義:
??PX4硬件:
4. 通信測試
5. RTPS+ROS
Jetson TX2終端:
?pixhawk:
6. 提高IMU數(shù)據(jù)發(fā)布頻率?
方法一:通過mavros包話題訂閱頻率
?方法二:更改PX4啟動文件
7. GPS數(shù)據(jù)獲取
1. PX4硬件接口
?文章來源地址http://www.zghlxwxcb.cn/news/detail-625042.html
2. TELEM1、2接口線序
?
3.??PX4與TX2通信
PX4是TELEM2,飛控地面站(QGroundControl)TELEM2口的波特率設(shè)置為921600,TX2中MAVROS中的fcu_url參數(shù)設(shè)置為/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實(shí)現(xiàn)通信:
?
?TX2載板為瑞泰新時(shí)代(北京)科技有限公司與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參數(shù)設(shè)置為/dev/ttyTHS2:921600
新打開一個(gè)終端:
rostopic echo /mavros/imu/data
rostopic echo /mavros/state
結(jié)果:
...
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數(shù)據(jù)發(fā)布頻率?
有兩個(gè)imu數(shù)據(jù),/mavros/imu/data_raw和/mavros/imu/data,前者沒有orientation數(shù)據(jù),后者有,飛控計(jì)算過后的IMU數(shù)據(jù)。
方法一:通過mavros包話題訂閱頻率
# 查看話題的發(fā)布頻率
rostopic hz /mavros/imu/data_raw
# 調(diào)整發(fā)布頻率 /mavros/imu/data_raw 100hz
rosrun mavros mavcmd long 511 105 10000 0 0 0 0 0
# 調(diào)整發(fā)布頻率 /mavros/imu/data 100hz
rosrun mavros mavcmd long 511 31 10000 0 0 0 0 0
?如果想要提到更高的頻率只需要減小10000
這個(gè)參數(shù),這個(gè)就是設(shè)置時(shí)間間隔的現(xiàn)在間隔為10000us,所以是100Hz。
例如:
rosrun mavros mavcmd long 511 31 10000 0 0 0 0 0
?方法二:更改PX4啟動文件
先把飛控的內(nèi)存卡取出來,用讀卡器插上,然后在根目錄下面建立一個(gè)etc的目錄,然后在目錄下面新建一個(gè)extras.txt的文件。
extras.txt:
mavlink stream -d /dev/ttyS2 -s ATTITUDE_QUATERNION -r 100
mavlink stream -d /dev/ttyS2 -s HIGHRES_IMU -r 100
這個(gè)具體的原理就是配置PX4的開機(jī)啟動文件,通過設(shè)置mavlink發(fā)布的速率達(dá)到更改mavrosIMU發(fā)布頻率的目的。
里面的-d 選項(xiàng)后面的是指的mavlink的端口,我用的串口2所以是/dev/ttyS2 ,如果是串口1就是/dev/ttyS1,如果是USB連接的就是 /dev/ttyACM0,-s是發(fā)布的消息,-r自然就是發(fā)布的速率了。
mavros話題 /mavros/imu/data_raw對應(yīng)的是HIGHRES_IMU。
mavros話題 /mavros/imu/data對應(yīng)的是ATTITUDE_QUATERNION。
這個(gè)命令可以直接在mavlink控制臺里面輸入,測試沒問題了過后再寫在SD卡里面。
然后把下面些內(nèi)容復(fù)制進(jìn)去保存退出過后,給飛控上電,之后測試頻率就OK。
7. GPS數(shù)據(jù)獲取
Tips:
mavro中發(fā)布的global_postion和local_positon等相關(guān)的話題的數(shù)據(jù),都是通過融合GPS數(shù)據(jù)獲取得到的,所以獲取到GPS數(shù)據(jù)是很重要的一步,最好去空曠的室外。其中的/mavros/local_position/pose發(fā)布的數(shù)據(jù)為以GPS上電時(shí)刻為原點(diǎn)而建立的NED坐標(biāo)系的位置數(shù)據(jù)和四元數(shù)數(shù)據(jù)。(這里不對NED坐標(biāo)系進(jìn)行介紹)
只要能夠成功建立與PX4飛控的連接,就可以獲取到mavros發(fā)布的關(guān)于imu的數(shù)據(jù),但是卻不一定能夠獲取到/mavros/local_position/pose以及其他相關(guān)話題的數(shù)據(jù)。正如前面所說,只有獲取到GPS信號才可以,為此需要帶著飛控和GPS到比較空曠的室外。然后,通過micro-USB將飛控連接QGC,多等一會。等到左上角搜索到的衛(wèi)星數(shù)目大于等于6之后,便可以關(guān)閉QGC,然后嘗試運(yùn)行px4.launch文件,看看能否獲取到數(shù)據(jù),即
rostopic echo /mavros/local_position/pose
要點(diǎn)就一個(gè),到空曠的室外等!
文章來源:http://www.zghlxwxcb.cn/news/detail-625042.html
?
到了這里,關(guān)于PX4與TX2通信的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!