当前位置: 首页 > news >正文

ROS1(20.04 noetic) + PX4 + AirSim

博客地址:https://www.cnblogs.com/zylyehuo/

参考视频: 保姆级教程~手把手教你实现 ROS2 + PX4 + AirSim 联动

博主使用的版本配置如下:

  • ROS: 20.04 noetic 【echo $ROS_DISTRO】
  • PX4: v1.13.2 【git describe --tags】
  • AirSim: 1.7.0 【找到\Unreal\Plugins\AirSim这个目录,进入后,打开AirSim.uplugin文件查看版本】

PX4 开发环境搭建

  • MAVROS + QGC + PX4

参考链接: PX4 仿真环境开发整理

参考链接: Linux系统 ubuntu20.04 无人机 PX4 开发环境搭建

遇到报错参考链接: make px4_sitl_default gazebo出错

遇到报错参考链接: Gazebo终端显示[Err] [InsertModelWidget.cc:403] Missing model.config for model

遇到报错参考链接: px4 运行mavros仿真

AirSim 仿真平台搭建

  • UE4 + AirSim

参考链接: 在Ubuntu系统中搭建Unreal4和AirSim环境

安装 Micro-XRCE-DDS-Agent

参考链接: Installing the Agent standalone

  • 安装指令
$ git clone https://github.com/eProsima/Micro-XRCE-DDS-Client.git$ cd Micro-XRCE-DDS-Client$ mkdir build && cd build$ cmake ..$ make -j8$ sudo make install$ sudo ldconfig /usr/local/lib/$ MicroXRCEAgent --help

安装 ROS

参考链接: 小鱼的一键安装系列

wget http://fishros.com/install -O fishros && . fishros

参考链接: ubuntu20.04下载和使用Airsim的ros包

遇到报错参考链接: 解决Ubuntu系统下ROS包找不到问题:环境配置与路径检查详解

AirSim 配置文件修改

settings.json

{"SettingsVersion": 1.2,"SimMode": "Multirotor","ClockType": "SteppableClock","Vehicles": {"PX4": {"VehicleType": "PX4Multirotor","UseSerial": false,"LockStep": true,"UseTcp": true,"TcpPort": 4560,"ControlPortLocal": 14030,"ControlPortRemote": 14280,"ControlIp": "remote","LocalHostIp": "192.168.1.5","Cameras": {"CameraDepth": {"CaptureSettings": [{"ImageType": 2,"Width": 800,"Height": 600,"FOV_Degrees": 120,"AutoExposureSpeed": 100,"AutoExposureBias": 0,"AutoExposureMaxBrightness": 0.64,"AutoExposureMinBrightness": 0.03,"MotionBlurAmount": 0,"TargetGamma": 1.0,"ProjectionMode": "","OrthoWidth": 5.12}],"NoiseSettings": [{"Enabled": false,"ImageType": 0,"RandContrib": 0.2,"RandSpeed": 100000.0,"RandSize": 500.0,"RandDensity": 2,"HorzWaveContrib":0.03,"HorzWaveStrength": 0.08,"HorzWaveVertSize": 1.0,"HorzWaveScreenSize": 1.0,"HorzNoiseLinesContrib": 1.0,"HorzNoiseLinesDensityY": 0.01,"HorzNoiseLinesDensityXY": 0.5,"HorzDistortionContrib": 1.0,"HorzDistortionStrength": 0.002}],"Gimbal": {"Stabilization": 0,"Pitch": 0, "Roll": 0, "Yaw": 0},"X": 0, "Y": 0, "Z": -1,"Pitch": 0, "Roll": 0, "Yaw": 0,"UnrealEngine": {"PixelFormatOverride": [{"ImageType": 0,"PixelFormat": 0}]}},"CameraImage": {"CaptureSettings": [{"ImageType": 0,"Width": 800,"Height": 600,"FOV_Degrees": 120,"AutoExposureSpeed": 100,"AutoExposureBias": 0,"AutoExposureMaxBrightness": 0.64,"AutoExposureMinBrightness": 0.03,"MotionBlurAmount": 0,"TargetGamma": 1.0,"ProjectionMode": "","OrthoWidth": 5.12}],"X": 0, "Y": 0, "Z": -1,"Pitch": 0, "Roll": 0, "Yaw": 0}},"Sensors":{"Magnetometer": {"SensorType": 4,"Enabled": true},"Barometer":{"SensorType": 1,"Enabled": true,"PressureFactorSigma": 0.0001825},"Imu": {"SensorType": 2,"Enabled" : true,"AngularRandomWalk": 0.3,"GyroBiasStabilityTau": 500,"GyroBiasStability": 4.6,"VelocityRandomWalk": 0.24,"AccelBiasStabilityTau": 800,"AccelBiasStability": 36},"Gps": {"SensorType": 3,"Enabled" : true,"EphTimeConstant": 0.9,"EpvTimeConstant": 0.9,"EphInitial": 25,"EpvInitial": 25,"EphFinal": 0.1,"EpvFinal": 0.1,"EphMin3d": 3,"EphMin2d": 4,"UpdateLatency": 0.2,"UpdateFrequency": 50,"StartupDelay": 1},"Lidar": {"SensorType": 6,"Enabled": true,"NumberOfChannels": 16,"RotationsPerSecond": 10,"PointsPerSecond": 100000,"X": 0, "Y": 0, "Z": -1,"Roll": 0, "Pitch": 0, "Yaw": 0,"VerticalFOVUpper": 10,"VerticalFOVLower": -10,"HorizontalFOVStart": -20,"HorizontalFOVEnd": 20,"DrawDebugPoints": true,"DataFrame": "SensorLocalFrame"},"DistanceDown": {"SensorType": 5,"Enabled" : true,"MinDistance": 0.1,"MaxDistance": 40,"X": 0, "Y": 0, "Z": -0.5,"Yaw": 0, "Pitch": -90, "Roll": 0,"DrawDebugPoints": true,"ExternalController": true}},"Parameters": {"NAV_RCL_ACT": 0,"NAV_DLL_ACT": 0,"COM_OBS_AVOID": 0}}}
}
http://www.sczhlp.com/news/915.html

相关文章:

  • 扩散模型-PPDM-95 - jack
  • 5.5 减少过程调用
  • spring springmvc springboot的区别
  • 13N90-ASEMI太阳能逆变器专用13N90
  • 基于Matlab的无人机地面固定目标稳定跟踪
  • 在Go语言微服务中实现服务监控
  • readv() writev()
  • Spring 中的 BeanFactory 和 ApplicationContext
  • Umi 约定式路由解析
  • SFUD库应用教程:串行SPI Flash驱动开发的最佳实践
  • 【刷题笔记】Peaks
  • spring security
  • required关键字和特性的区别
  • 详细介绍:理想不再“追星”华为。
  • C++小白修仙记_LeetCode刷题_1.两数之和
  • synchronized底层实现是什么 lock底层是什么 有什么区别
  • iOS 性能监控 苹果手机后台运行与能耗采样实战指南
  • pygame小游戏打飞机_1展示窗口
  • 个人版Navicat17 Lite版本安装教程(附安装包)2025最新版详细图文安装教程
  • Fluent许可状态监控工具
  • 链上充值监听与自动划转资金流程实现 - fox
  • 如何缓解Petya和WannaCrypt等快速网络攻击 | MSRC博客
  • 基于Amazon Translate的深度学习教材自动翻译系统
  • AI视频自动剪辑大师 v5.0 绿色版
  • 文件完整性校验工具 CHK 5.51 绿色中文版
  • 2025年7月26日,工信部人才交流中心 CUUG - PGCP/PGCM认证考试完成!
  • 2025.7.28暑假集训第一次普及组训练总结
  • 入职—员工体验的关键时刻,看AI Agent如何将体验值、效率值双双拉满
  • 寻疗智慧 IOT 数字健康服务平台
  • 铭芯科技共享轮椅租赁系统