声明:本博客仅作个人学习用途
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()