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

XTDrone平台下创建自己的world文件并运行

1 创建world文件

1.1 保存world文件

(1)打开gazebo,点击Edit-building editor进入building editor模式。

(2)点击边栏的Wall在白色区域绘制围墙。

(3)搭建好后模型,点击File - Save As对模型进行保存,得到模型sdf文件。

(4)在保存完sdf文件后,若要进一步得到.world文件,点击File - exit building editor退出编辑模式。点击Insert可以加入一些桌子等物体。

(5)然后再点击File - Save world as则可将模型保存成.world格式。这里gazebo可能会卡住,有一个邪修解决方法是先把gazebo页面缩小,然后再点出来,就能卡出来保存文件的框框,然后在名称那里输入自己要保存的文件名称xxx.world直接回车就能保存。

注:这里可以将得到的sdf文件复制到 home/xxx/.gazebo/models/maze文件下,maze是笔者创建的模型名称,可自定义:

然后打开gazebo,点击Insert,在home/xxx/.gazebo/models目录下即可找到保存的模型,再对模型进行一些物体的添加

(6)另外特别注意为了使PX4能够在world中正常运行,需要在生成的.world文件中将<max_step_size> 、<real_time_update_rate>两个参数分别改成0.004与250,如下:

<physicsname='default_physics'default='0'type='ode'><max_step_size>0.004</max_step_size><real_time_factor>1</real_time_factor><real_time_update_rate>250</real_time_update_rate></physics>

1.2 添加天花板

室内场景为了保证无人机不飞出房间,通常需要添加天花板,由于天花板会使得观察屋内不方便(也是可以观察的,就是用鼠标逐渐调节视角),因此可以把天花板的可视化属性关闭,只保留碰撞属性,在iworld文件中添加:

<modelname='ceiling'><linkname='link'><inertial><poseframe=''>000000</pose><mass>100000</mass><inertia><ixx>100000</ixx><ixy>0</ixy><ixz>0</ixz><iyy>100000</iyy><iyz>0</iyz><izz>100000</izz></inertia></inertial><collisionname='collision'><poseframe=''>0000-00</pose><geometry><box><size>3003000.5</size></box></geometry><friction><ode><mu>1</mu><mu2>1</mu2></ode><torsional><ode/></torsional></friction><contact><ode><kp>1e+07</kp><kd>1</kd><min_depth>0.001</min_depth><max_vel>0.1</max_vel></ode></contact><max_contacts>10</max_contacts></collision><self_collide>0</self_collide><enable_wind>0</enable_wind><kinematic>0</kinematic></link><poseframe=''>005000</pose></model>

2 在XTDrone平台下运行

(1)将步骤一得到的world文件放在PX4_Firmware/Tools/sitl_gazebo/worlds目录下。

(2)在PX4_Firmware/launch目录下创建launch文件。
这里有两处需要修改,第一处是自己的world文件名称,第二处是所用到的无人机设备型号

<?xmlversion="1.0"?><launch><!-- MAVROS posix SITL environment launch script --><!-- launches Gazebo environment and 2x: MAVROS, PX4 SITL, and spawns vehicle --><!-- vehicle model and world --><argname="est"default="ekf2"/>## 将这里的xxx.world改为自己的文件名字<argname="world"default="$(findmavlink_sitl_gazebo)/worlds/xxx.world"/><!-- gazebo configs --><argname="gui"default="true"/><argname="debug"default="false"/><argname="verbose"default="false"/><argname="paused"default="false"/><!-- Gazebo sim --><includefile="$(findgazebo_ros)/launch/empty_world.launch"><argname="gui"value="$(arg gui)"/><argname="world_name"value="$(arg world)"/><argname="debug"value="$(arg debug)"/><argname="verbose"value="$(arg verbose)"/><argname="paused"value="$(arg paused)"/></include><!-- iris_0 --><groupns="iris_0"><!-- MAVROS and vehicle configs --><argname="ID"value="0"/><argname="ID_in_group"value="0"/><argname="fcu_url"default="udp://:24540@localhost:34580"/><!-- PX4 SITL and vehicle spawn --><includefile="$(findpx4)/launch/single_vehicle_spawn_xtd.launch"><argname="x"value="0"/><argname="y"value="7.5"/><argname="z"value="0.5"/><argname="R"value="0"/><argname="P"value="0"/><argname="Y"value="0"/><argname="vehicle"value="iris"/>## 这里修改无人机的型号<argname="sdf"value="iris_3d_gpu_lidar"/><argname="mavlink_udp_port"value="18570"/><argname="mavlink_tcp_port"value="4560"/><argname="ID"value="$(arg ID)"/><argname="ID_in_group"value="$(arg ID_in_group)"/></include><!-- MAVROS --><includefile="$(findmavros)/launch/px4.launch"><argname="fcu_url"value="$(arg fcu_url)"/><argname="gcs_url"value=""/><argname="tgt_system"value="$(eval1+ arg('ID'))"/><argname="tgt_component"value="1"/></include></group></launch>

(3)运行以下指令即可成功:

roslaunch px4 xxx.world

3 参考链接

(1)XTDrone官方使用文档

http://www.jsqmd.com/news/437006/

相关文章:

  • 基于YOLO26的5类常见水果检测系统(中英文双版) | 附完整源码与效果演示
  • 高量程电导率TDS盐度测定仪
  • 模块化与组件化:90%的前端开发者都没搞懂的本质区别
  • 人工智能之数字生命-本能动作体系规范(任务/方法/本能方法函数)
  • 书匠策AI:解锁课程论文高效写作的“智慧密钥”
  • 工业防爆小型气象站
  • [特殊字符]书匠策AI:解锁课程论文新境界,让学术写作如行云流水![特殊字符]
  • 自然语言处理 —— 语言资源
  • 智能考试系统核心模块回归测试:从基础数据到业务闭环的深度验证
  • 逻辑回归实战:从原理到不平衡数据优化(含欠拟合/过拟合诊断与召回率提升) - 教程
  • 自然语言处理 —— 简介
  • 止痒去屑洗发水怎么选?2026年热门品牌大盘点,去油去屑洗发水/去屑洗发水/止痒去屑洗发水,止痒去屑洗发水产品排行榜单 - 品牌推荐师
  • 书匠策AI:解锁课程论文新姿势,让学术创作如虎添翼!
  • 用Matlab实现基于LBP的面部表情识别
  • [特殊字符]解锁课程论文新姿势!书匠策AI:你的学术超能力启动站[特殊字符]
  • 全球前11%:奋飞咨询助力金属贸易企业实现Ecovadis评分19分跃升 - 奋飞咨询ecovadis
  • 爱喝咖啡的小姐姐订单发货说明
  • pikachu靶场——Cross-Site Scripting-6 XSS之href和js(Kali系统)
  • HGVE-2023-E006(CVE-2023-5870)
  • vue基于springboot的美食分享推荐管理系统的设计与实现 _io551-vue
  • list
  • 华为AI“做到全球前二” 没那么容易?
  • of vs for
  • 易语言开发从入门到精通:进阶篇·Windows应用程序数据安全与权限管理深度实战·密码加密/解密·数据签名/验签·文件加密/解密·数据库加密·进程/线程安全·网络传输加密·防破解/反调试·企业内部管理
  • DataFocus智能问数深度评测:为什么它是值得推荐的智能问数十大品牌之一?
  • Comate 4.0新年全面焕新!底层重构、七大升级、复杂任务驾驭力跃升
  • 荣耀卖了2600亿,华为是不是 “血亏”?
  • 鸿蒙应用开发:网络与通信
  • 备份usrtoken
  • 6个月免费学习路线图:从Python小白到AI智能体开发高手(收藏版)