AirSim-1-系统架构
video: https://mp.weixin.qq.com/mp/readtemplate?t=pages/video_player_tmpl&action=mpvideo&auto=0&vid=wxv_3034520431850110977在做无人系统开发时,仿真器是一种非常有效的开发工具,常用的仿真器有flightgear、jsbsim、gazebo、airsim等,其中airsim是由微软开源的一款基于UE/Unreal3D游戏引擎的仿真插件,具有非常逼真的3D渲染效果,在基于视觉的无人系统模型训练和测试中被广泛使用。虽然微软的研发团队已经停止继续更新airsim的开源版本,但是作为持续迭代了6年的开源项目,目前的状态已经比较完善,基本的功能框架都已经齐备,无论是作为一个开源项目本身学习还是基于它做二次开发都非常有价值。这个系列的文章我们分享一下AirSim代码框架,给一些希望二次开发的同学一些参考。AirSim作为一个基于游戏引擎的插件,用于机器人的仿真,其核心是使用游戏引擎的3D渲染能力结合自定义的物理引擎并定义方便外部调用的API,其代码框架如下图所示:由代码框图可以发现AirSim使用RPCLIB作为各个模块间数据交互的组件,实现模块去耦合和跨语言跨系统的组件通信。AirLib是AirSim的核心库,其主要实现了以下功能:
Vechile的运动学和动力学模型,驱动UE或者Unreal3D引擎中的3D模型,按照期望的运动学和动力学规则运动
传感器的模型,气压计、IMU、gps、磁罗盘等传感器模型
Vechile控制器的实现或者接口,AirSim支持采用ardupolit和px4作为无人系统的控制器,驱动仿真环境进行HITL或者SITL的仿真,同时AirSim也内置一个简易的控制器,simple_flight,用于简易的控制模拟
AirSim具有非常丰富的用户接口,方便用户调用,AirSim的API都采用RPCLIB进行数据交互,因此可以很方便的提供C++和Python两种语言的接口,同时支持ROS和ROS2,用户可以根据需要选择自己的开发环境。
往期分享:
AcmeGCS-22-垂起实机飞行
PX4-20-支持新的控制器硬件
ArduPilot-2-系统架构
AcmeGCS-21-集群多窗口显示
这里会不定期更新一些我整理的无人机相关知识,如果对您有帮助,欢迎关注转发分享。
页:
[1]