gazebo与PX4联合仿真

自主无人机定义


gazebo与PX4联合仿真_第1张图片

功能框架

gazebo与PX4联合仿真_第2张图片

开发流程

gazebo与PX4联合仿真_第3张图片
gazebo与PX4联合仿真_第4张图片

项目代码框架

gazebo与PX4联合仿真_第5张图片
项目流程
gazebo与PX4联合仿真_第6张图片
gazebo与PX4联合仿真_第7张图片
gazebo的文件类型
gazebo与PX4联合仿真_第8张图片
仿真的类型

⮚ SITL 全称为Software in the loop,即软件在换仿真。

仿真首先分为软件在环仿真(SITL)和硬件在环仿真(HITL)。目前来看,软件在环仿真更简单实现及方便。我博士就读的课题组就是专门做导弹的半实物仿真的,个人认为硬件在环仿真需要加上转台才能真正意义发
挥出作用,不然只是在Pixhawk板子上跑仿真环境,毫无指导意义。

软件在环仿真一共是有jMAVSim、Gazebo、AirSim这三种。jMAVSim是一个轻量级的仿真器,目前只支持四旋翼仿真。AirSim我不太清楚,没有使用过,这里就不评价了。Gazebo是我们今
天的主角,支持旋翼、固定翼、倾转、小车等,是所有仿真器里支持平台最多的,也能支持多个无人机的仿真,在各个仿真器比较的表格里。
gazebo与PX4联合仿真_第9张图片

⮚ Flight stack代表飞控即PX4,Simulator代表仿真器(如Gazebo)。所有仿真器与PX4的通讯都是
通过MAVLink消息来进行的,SITL使用simulator模块中的simulator_mavlink.cpp来处理这些消息,而HITL是使用mavlink模块中的mavlink_receiver.
cpp来处理这些消息。梳理一下这里的消息流向:

⮚ PX4到仿真器。PX4给仿真器只会发送一个HIL_ACTUATOR_CONTROLS的MAVLink消息,熟悉PX4的应该知道这个对应的uORB消息是
actuator_outputs.msg,也就是姿态控制器最后的输出控制量。这里也就意味着,混控是在仿真器中进行的,仿真器中也包含电机的模型。
⮚ 仿真器到PX4。仿真器的作用就是模拟真实飞行,即模拟计算出真实飞行时的传感器状态,包括GPS,IMU等,将这些信息发送给飞控后,再由飞控中的估计模块计算出飞机状态量。
⮚ 外部到PX4。这里的外部就比如地面站QGC(可以外接遥控器),Mavros,Dronecode SDK等,这里也就可以模拟我们平时控制飞机的方式。
gazebo与PX4联合仿真_第10张图片

启动gazebo仿真

切换到对应的固件文件夹(注意每个人的文件夹是不一样的)
cd ~/src/Firmware
make px4_sitl_default gazebo

设置终端环境,因为需要终端ROS的包存在那个路径下,相当于我们Windows系统的添加环境变量。
在这里插入图片描述
运行仿真
roslaunch px4 posix_sitl.launch
运行 Mavros
roslaunch mavros px4.launch fcu_url:=“udp://:[email protected]:14557”
udp为UDP通信的端口,一个无人机默认端口
运行之后可以启动QGC地面站,自己可以查看各种传感器的数据,我以IMU为类
rostopic echo /mavros/imu/data
其他传感器数据可以使用rostopic list查看

你可能感兴趣的:(无人机设计开发,ROS,机器人,无人机)