笔记来源于开源项目:基于PX4和ROS的无人机仿真平台
来源于开源项目:GAAS
目录
一、PX4与ROS关系
注意各端口(UPD port)
或者看下面的这个图的表示关系!我们一般在offboard模式下通过外部程序完成我们给无人机的任务
二、XTDrone源码下载
XTDrone是一个开源项目,目前支持多旋翼飞行器(multirotor)、固定翼飞行器(plane)、可垂直起降固定翼飞行器(vtol)以及车辆(rover)四个大类机型,multirotor下有iris、solo和typhoon_h480三个机型,vtol下有tailsitter、quadplane和tiltrotor三个机型,plane和rover没有下属机型。
git clone https://gitee.com/robin_shaun/XTDrone.git
cd XTDrone
cp sitl_config/init.d-posix/rcS ~/PX4_Firmware/ROMFS/px4fmu_common/init.d-posix/
cp sitl_config/worlds/* ~/PX4_Firmware/Tools/sitl_gazebo/worlds/
cp -r sitl_config/models/* ~/.gazebo/models/
cp sitl_config/launch/* ~/PX4_Firmware/launch/
#下面这一条是我自己加上去的,我认为是需要的(在后面的程序中)
cp sitl_config/models/* ~/PX4_Firmware/Tools/sitl_gazebo/models/
三、用键盘控制无人机飞行
one terminal:(启动gazebo,出现了场景和飞机)
cd ~/PX4_Firmware
roslaunch px4 indoor1.launch
second terminal:(启动通信脚本,iris代表子机型,0代表飞机的编号,与0号iris建立通信)
cd ~/XTDrone/communication/
python multirotor_communication.py iris 0
third terminal:(启动键盘控制脚本,iris代表机型,1代表飞机的个数,vel代表速度控制)
cd ~/XTDrone/control/
python multirotor_keyboard_control.py iris 1 vel
虽然多旋翼飞机提供了速度控制和加速度控制的两种键盘控制方式,但是速度的方便一点,加速度在后面的高级运动规划任务中比较有用。
注意注意,下面这个是键盘控制的方法,不然你可能不会调试飞机,飞起来不会动或者怎么样:
- 按 i,(多按几次) 把z方向的速度调试到0.3m/s以上(有没有记得前面有说到过那个pwm控制在0.5到1之间,不能从0开始,我感觉可能和这个有关系)
- 按b,切换到offboard模式
- 按t,解锁,飞机起飞
- 飞机飞到合适的高度后,按s实现飞机的悬停
- w/x:控制前进的速度
- a/d:控制左右移动的速度
- i/,:控制上升下降的速度
- j / l:控制偏航的角度(旋转视角)
四、代码解读
这里打开了三个终端,分别打开了
- indoor1.launch
- multirotor_communication.py
- multirotor_keyboard_control.py
接下来,对三个文件对照比赛开始解读: