七、键盘控制无人机 ·总(PX4与ROS关系以及仿真控制)

笔记来源于开源项目:基于PX4和ROS的无人机仿真平台

来源于开源项目:GAAS


目录

一、PX4与ROS关系

二、XTDrone源码下载

三、用键盘控制无人机飞行

四、代码解读

 


 

一、PX4与ROS关系

七、键盘控制无人机 ·总(PX4与ROS关系以及仿真控制)_第1张图片
注意各端口(UPD port)
或者看下面的这个图的表示关系!我们一般在offboard模式下通过外部程序完成我们给无人机的任务

七、键盘控制无人机 ·总(PX4与ROS关系以及仿真控制)_第2张图片

二、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

虽然多旋翼飞机提供了速度控制和加速度控制的两种键盘控制方式,但是速度的方便一点,加速度在后面的高级运动规划任务中比较有用。

注意注意,下面这个是键盘控制的方法,不然你可能不会调试飞机,飞起来不会动或者怎么样:

七、键盘控制无人机 ·总(PX4与ROS关系以及仿真控制)_第3张图片

  1. 按 i,(多按几次) 把z方向的速度调试到0.3m/s以上(有没有记得前面有说到过那个pwm控制在0.5到1之间,不能从0开始,我感觉可能和这个有关系)
  2. 按b,切换到offboard模式
  3. 按t,解锁,飞机起飞
  4. 飞机飞到合适的高度后,按s实现飞机的悬停
  5. w/x:控制前进的速度
  6. a/d:控制左右移动的速度
  7. i/,:控制上升下降的速度
  8. j / l:控制偏航的角度(旋转视角)

四、代码解读

这里打开了三个终端,分别打开了

  • indoor1.launch 
  • multirotor_communication.py
  • multirotor_keyboard_control.py

接下来,对三个文件对照比赛开始解读:

 

 

 

 

 

 

 

你可能感兴趣的:(PX4)