聲明:本博客僅作個人學習用途
1.
安裝方法參考:https://zhuanlan.zhihu.com/p/91329291
2.
基本操作方法:https://zhuanlan.zhihu.com/p/91420855
開啟gazebo和px4:
roslaunch px4 mavros_posix_sitl.launch
3.
gazebo 模型下載:
參考:https://blog.csdn.net/qq_36170626/article/details/90417359
4.操作
直接打開gazebo方法:
Alt-F2
輸入gazebo
ctrl+M
編輯模式
----------------------------------------------------------------------------------------------
安裝好上面那些之后想讓無人機跑起來的話
下載一些模型:(我是把它下載到/home/jo/software/gaas_model 文件夾下的)
git clone git@github.com:generalized-intelligence/GAAS.git
配置環境
echo "export GAZEBO_MODEL_PATH=${GAZEBO_MODEL_PATH}:(GAAS_PATH)/simulator/models" >> ~/.bashrc
將對應文件復制進去,注意對應自己的安裝路徑
cp -r (GAAS_PATH)/simulator/models/* ~/catkin_ws/src/Firmware/Tools/sitl_gazebo/models/ cp -r (GAAS_PATH)/simulator/worlds/* ~/catkin_ws/src/Firmware/Tools/sitl_gazebo/worlds/ cp -r (GAAS_PATH)/simulator/posix-config/* ~/catkin_ws/src/Firmware/posix-configs/SITL/init/ekf2/
然后就可以用Python代碼控制無人機飛行了
這里為了方便設置一個路徑,在~/.bashrc中寫入
export GAZEBO_COMMAND_PATH="/home/jo/software/gaas_model/GAAS/demo/tutorial_1/1_px4_mavros_offboard_controller"
這里要對應自己的地址
----------------------------------------------------------------
----------------------------------------------------------------------------------------------------------------------------
操作部分:
終端1:
roslaunch px4 mavros_posix_sitl.launch
終端2:
cd ${GAZEBO_COMMAND_PATH} python px4_mavros_run.py
終端3
cd ${GAZEBO_COMMAND_PATH}
python commander.py
無人機就飛起來了,自己可以修改Python代碼控制無人機,終端3這里可以不用commander.py,自己編寫比如寫一個c.py
#c.py from commander import Commander import time # create Commander instance con = Commander() # control the drone to move 1 meter to the right con.move(1,0,0) # wait for 2 seconds time.sleep(2) # control the drone to move 1 meter to the front con.move(0,1,0) # wait for 2 seconds time.sleep(2) # control the drone to move 1 meter to the left con.move(-1,0,0) # wait for 2 seconds time.sleep(2) # control the drone to move 1 meter to the back con.move(0,-1,0) # wait for 2 seconds time.sleep(2) # control the drone to move 1 meter above con.move(0,0,1) # wait for 2 seconds # land con.land()