添加在Gazebo中添加PX4新模型

先决条件:Gazebo运行正常,make px4_sitl gazebo指令运行正常。

本文采用了阿木实验的PX4镜像作为环境,感兴趣可以参考此文章:PX4环境搭建

本文将会添加下图所示的模型(其实就是换了个皮肤,但是方法是通用的):

 

一, 添加launch文件

        cd到lauch文件的目录

cd project/volans/Firmware/launch/

将文件learning_posix_sitl.launch添加到该目录下。该launch文件是根据project/volans/Firmware/launch/posix_sitl.launch文件进行的 修改得来的,只是把该文件中的vehicle的值修改为了learning_iris。

    <arg name="vehicle" default="learning_iris"/>

二,添加sdf和config文件

        cd 到models目录

cd project/volans/Firmware/Tools/sitl_gazebo/models/

把文件夹learning_iris添加到该目录下。该文件夹是根据project/volans/Firmware/Tools/sitl_gazebo/models/iris文件夹修改的来的,第一个改动修改了iris文件夹下的.config文件中的该行代码:将iris.sdf修改为了learning_iris.sdf。

  <sdf version='1.4'>learning_iris.sdf</sdf>

 第二个改动,将iris文件夹下的iris.sdf的base_link->visual->mesh->uri属性进行了替换,简单理解就是换了个皮肤。PS:别忘记把base_link.STL文件添加到对应的目录下,不然gazebo启动后就是黑屏的。

  <!-- replace1:base_link.STL -->
  <uri>model://rotors_description/meshes/base_link.STL</uri>

base_link.STL就是第一张图中的红色机架,博主自己画的,大家替换的话,随便找个.stl文件或者.dae文件替换就行,主要还是学习添加新机架的流程。

三,注册新机架

        (这一步非常重要,曾经困扰了我3天,这也是我最想分享给大家的一步。)

        cd命令找到如下目录:

cd project/volans/Firmware/ROMFS/px4fmu_common/init.d-posix/

可以看到该目录下的文件,这些其实是新模型的注册文件。其中10016_learning_iris 就是本次新模型的注册文件。PS:最好是注册文件的后半部分名称和前文中添加在models文件夹下的文件名称以及sdf文件名称保持一致。

10016和learning_iris都代表什么意思呢?可以看PX4官方文档中的解释。

https://docs.px4.io/v1.12/en/concept/system_startup.html 

当你把以上所有步骤都做完后,启动你的launch文件,就可以得到文章一开头的的新机架了,由于本质只是换了个皮肤,所以make px4_sitl gazebo指令带来什么效果,roslaunch px4 learning_posix_sitl.launch带来的效果就是什么。Mavros通讯QGC通讯都是正常的。

roslaunch px4 learning_posix_sitl.launch

四,总结

        主要还是第三步注册机架 ,我在网络上找了好久都没有找到先例,最后还是在PX4官方文档中找到的此处说明,可能很少有人分享变形无人机仿真的相关的内容吧。

        后来在posix_sitl.launch文件中发现这段代码,和注册新模型的路径高度一致,现在想想应该就是注册新模型用的吧。

    <node name="sitl" pkg="px4" type="px4" output="screen" args="$(find px4)/ROMFS/px4fmu_common -s etc/init.d-posix/rcS $(arg px4_command_arg1)" required="true"/>

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值