Ardupilot之Mavros實現Ros節點控制(一)

Ardupilot之Mavros實現Ros節點控制

這部分ros發佈的命令話題參考的是PX4固件最基本的Offboard_node節點,命令發佈後,能夠連接並解鎖,但是無法起飛,這裏應該是poses發佈出去的位置有問題,這裏下一步需要繼續理解一下。
整個過程有點長,我分成兩部分下,先寫環境配置相關的,下一篇寫如何運行。

Mavros安裝

ROS與Mavlink的通信需要通過Mavros,首先進行Mavros的安裝。我這裏採用二進制簡單的安裝。參考官網:https://ardupilot.org/dev/docs/ros-install.html#installing-mavros
裝Mavros

sudo apt-get install ros-kinetic-mavros ros-kinetic-mavros-extras

裝依賴

wget https://raw.githubusercontent.com/mavlink/mavros/master/mavros/scripts/install_geographiclib_datasets.sh
chmod a+x install_geographiclib_datasets.sh
./install_geographiclib_datasets.sh

裝rqt

sudo apt-get install ros-kinetic-rqt ros-kinetic-rqt-common-plugins ros-kinetic-rqt-robot-plugins

測試Mavros

//APM
roslaunch mavros apm.launch
//PX4
roslaunch mavros px4.launch

如果未連接硬件的話,會報如下錯誤,正常現象:

[FATAL] [1585652051.956903253]: FCU: DeviceError:serial:open: No such file or directory
================================================================================REQUIRED process [mavros-1] has died!
process has finished cleanly
log file: /home/myz/.ros/log/0cbdfa56-7335-11ea-9dc7-68071588544b/mavros-1*.log
Initiating shutdown!
================================================================================

在這裏插入圖片描述

修改Mavros

Ros的運行,也是參考官網內容:
https://ardupilot.org/dev/docs/ros-sitl.html
因爲模擬仿真,所以要將默認串口進行修改:
這一步是將apm.launch複製到launch中,方便修改。

mkdir launch
cd launch
roscp mavros apm.launch apm.launch

修改:

gedit apm.launch

把default中的串口改成如下:

udp://127.0.0.1:14551@14555

在這裏插入圖片描述

運行Mavros

首先運行Ardupilot的SITL仿真

sim_vehicle.py -v ArduCopter -f gazebo-iris  -m --mav10 --map --console -I0

然後運行Gazebo的模擬仿真

gazebo --verbose worlds/iris_arducopter_runway.world

然後進入launch,運行apm.launch

roslaunch apm.launch

成功會進入一個類似roscore的進程,提示飛機類型及相關信息後,表示連接成功。

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章