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

Gazebo仿真PX4+3D激光雷达的搭建

Gazebo仿真无人机+3D激光雷达的搭建

系统要求:Ubuntu22、24及以上版本。

  1. 以PX4开源工程为基础,先参考官方文档 https://docs.px4.io/main/en/sim_gazebo_gz/ 搭建基本的Gazebo+无人机仿真,注意安装Gazebo而非老版本Gazebo classic。跑通make px4_sitl gz_x500_lidar_2d
  2. 以gz_x500_lidar_2d工程为模板实现无人机+3D激光雷达。

实现步骤

  1. 路径ROMFS/px4fmu_common/init.d-posix/airframes下添加编译目标:复制一个4001_gz_x500重命名为4022_gz_x500_mid360
  2. 路径Tools/simulation/gz/models下,复制x500_lidar_2d文件夹,重命名为x500_mid360,修改无人机和添加的LiDAR属性,uri指3D模型文件,上传资源可下载:https://download.csdn.net/download/CSUzhangpeike/93073753?spm=1001.2014.3001.5503
<?xml version="1.0" encoding="UTF-8"?><sdfversion='1.9'><modelname='x500_mid360'><includemerge='true'><uri>x500</uri></include><includemerge='true'><!-- <uri>https://fuel.gazebosim.org/1.0/OpenRobotics/models/Lidar 2d v2</uri> --><uri>model://mid360</uri><pose>0 0 .35 0 0 0</pose></include><jointname="LidarJoint"type="fixed"><parent>base_link</parent><child>link</child><poserelative_to="base_link">0 0 0 0 0 0</pose></joint></model></sdf>
  1. 同上路径,复制lidar_2d_v2文件夹到同一路径下,重命名为mid360,与步骤2中LiDAR的uri保持一致。修改其下的model.sdf,model name\3D模型\scan即扫描参数,
<?xml version="1.0"?><sdfversion="1.6"><modelname="mid360"><linkname="link"><pose>0 0 0 0 0 0</pose><inertial><pose>0 0 0.0435 0 0 0</pose><mass>0.37</mass><inertia><ixx>0.00034437749999999994</ixx><ixy>0</ixy><ixz>0</ixz><iyy>0.00034437749999999994</iyy><iyz>0</iyz><izz>0.00022199999999999998</izz></inertia></inertial><collisionname="collision_base"><pose>0 0 0.0205 0 0 0</pose><geometry><box><size>0.06 0.06 0.041</size></box></geometry></collision><collisionname="collision_mid"><pose>0 0 0.055 0 0 0</pose><geometry><cylinder><radius>0.025</radius><length>0.028</length></cylinder></geometry></collision><collisionname="collision_top"><pose>0 0 0.078 0 0 0</pose><geometry><box><size>0.056 0.056 0.018</size></box></geometry></collision><visualname="visual"><geometry><mesh><!-- 3D模型 --><uri>model://mid360/meshes/livox_mid360.dae</uri></mesh></geometry></visual><sensorname="mid360"type="gpu_lidar"><gz_frame_id>link</gz_frame_id><pose>0 0 0.055 0 0 0</pose><ray><scan><horizontal><samples>1000</samples><resolution>1</resolution><min_angle>-3.14159265356195</min_angle><max_angle>3.14159265356195</max_angle></horizontal><vertical><samples>32</samples><resolution>1</resolution><min_angle>-0.126012666</min_angle><max_angle>0.963769999</max_angle></vertical></scan><range><min>0.1</min><max>70</max><resolution>0.01</resolution></range><noise><type>gaussian</type><mean>0.0</mean><stddev>0.001</stddev></noise></ray><always_on>1</always_on><update_rate>10</update_rate><visualize>true</visualize><topic>mid360_lidar</topic></sensor></link></model></sdf>

编译与测试

# 一般编译makepx4_sitl gz_x500_mid360# 设置仿真环境模型makepx4_sitl gz_x500_mid360PX4_GZ_WORLD=forest

下一篇,介绍如何将Gazebo产生的传感器数据转为ROS2消息,并跑通激光雷达SLAM,也叫激光里程计LiDAR Inertial Odometry。
跑通激光里程计

http://www.cnnetsun.cn/news/3186007.html

相关文章:

  • 扫描电子显微镜(SEM):EBIC/EBAC成像的基本原理、技术及应用案例
  • HAL_Delay 为什么不能在中断里调?
  • KMX62与PIC18F45K22在嵌入式运动控制中的优化应用
  • 什么是*Bash* *循环*的正确用法?
  • 模板基础与 SFINAE
  • git的分支介绍
  • MyBatisPlus--简介+入门案例
  • ExpRL: Exploratory RL for LLM Mid-Training——用于LLM中期训练的探索性强化学习
  • EB Garamond 12:让16世纪经典字体在数字时代重获新生
  • 选IP广播时该参考哪些通用标准来判断其专业性?
  • 如何快速转换塞尔达传说:旷野之息存档 - Switch与WiiU存档互通终极指南
  • 2026物业退场监管升级背景下的数智化应对策略
  • 2026河南省高考招生之友+录取统计(物理组+历史组)
  • 抖音动态监控助手:5分钟实现博主实时追踪与直播提醒
  • 扫码点单小程序制作流程详解:附2026阿里开发者社区好评率最高的3款点单小程序制作工具
  • Spring4Shell漏洞深度剖析:从数据绑定到RCE的完整攻击链复现
  • 乌鲁木齐公考师资实力榜:李想、成章等本土名师全面评测
  • 2026大数据工程师转型大模型全攻略|薪资翻倍+零基础可转+落地路径
  • ICM-42605与PIC18F67K40实现高精度运动追踪方案
  • 【Java踩坑笔记】26_toString里打印对象?小心无限递归栈溢出
  • 校园体育器材管理系统
  • Aura:俄罗斯大神打造的免费白噪音神器,把森林搬进你的Windows桌面!
  • AI项目交付完就结束了?不,真正值钱的是后面的事
  • Claude Code Auto memory 的审计与编辑机制,为什么普通 markdown 才是最可靠的工程记忆
  • 手写 MCP Server 控制文件系统:50 行代码让 AI 学会读写文件
  • 【Java转AI实战】第3讲:流式输出——LLM的“分页查询“,附生产级SSE踩坑实录
  • 告别数据分析小白!okbiye AI写作,一键搞定论文数据实证分析
  • 踩坑十多款AIGC检测工具后,我给实验室搭了套全本地的论文内容自查系统
  • Dify_搭建智能销售 Agent 工作流
  • 第38篇:数据组织(一):数据所有者的角色与责任