在px4中,将iris模型替换为自己想要的无人机模型,并加上D435i深度相机

说明

本仓库旨在在已经安装好的px4的基础上,将其原本的iris模型替换为自己想要的无人机模型,并加上D435i深度相机

仓库地址 链接

环境

ROS: noetic

PX4: 1.13.3

注: 其他版本的原理都是类似的

步骤

Step0 预先准备

安装好px4及相应依赖,可参考或查看附录

运行下列命令,确保px4能够正常运行

roslaunch px4 mavros_posix_sitl.launch  
roslaunch px4 multi_uav_mavros_sitl_sdf.launch 

Step1 备份原模型文件

cd /PATH/to/PX4-Autopilot/Tools/sitl_gazebo/models/iris
cp iris.sdf iris.sdf.bk

Step2 (OPTIONAL)准备好想要替换模型的可视文件

[注]: 这一步可以跳过,用作者改好的模型

[注]: 下面两个方法各有耗时的地方

Method1 仅替换可视文件

这里以stl(其他类型没试过)为例。
通过各种渠道得到模型的stl文件(solidwork可以直接另存为,或者使用sw2urdf插件),保存至irismeshes文件夹下

gedit iris.sdf

找到下列所示的标签,将iris.stl替换为YOURMODEL.stl

<!-- 省略了其他不重要的标签,沿着下面所示的标签一层一层找就行 -->
<model name='iris'>
    <link name='base_link'>
      <visual name='base_link_inertia_visual'>
        <geometry>
          <mesh>
            <scale>1 1 1</scale>
            <uri>model://iris/meshes/YOURMODEL.stl</uri>
          </mesh>
        </geometry>
      </visual>
    </link>
</model>

[注]: 具体sdf文件格式各标签的含义可以参考 官网

相应的,为保持美观,需要调节位置角度与其他部件(比如桨叶)的大小与位置,此处较为耗时

Method2 整体替换
  1. 使用sw2urdf得到sdf文件,注意事项及步骤详细参考附录
  2. 将需要用到的stl文件拷贝进PX4-Autopilot/Tools/sitl_gazebo/models/iris/meshes/
  3. 根据第一步得到的sdf文件,修改PX4-Autopilot/Tools/sitl_gazebo/models/iris/meshes/iris.sdf,由于是用插件得到的,若第一步的配置合理的话,位置、姿态、大小等属性都是完美的,不需要再手动调整,直接粘贴进iris.sdf的对应位置即可

Step3 拷贝

拷贝本仓库下的各文件至指定位置

# D435i model
cp -r /PATH/to/THISRepositories/sdf/D435i /PATH/to/PX4-Autopilot/Tools/sitl_gazebo/models/
# 已经修改完的飞机模型,若跳过了第二步(也可以直接使用step2中你自己改好的)
cp -r /PATH/to/THISRepositories/sdf/iris /PATH/to/PX4-Autopilot/Tools/sitl_gazebo/models/
# launch (包含d435i的启动launch与新模型的启动launch)
cp -r /PATH/to/THISRepositories/launch /PATH/to/PX4-Autopilot/
# user-defined plugin (可任意放置,个人习惯在PX4的一级子目录下,与launch平级)
cp -r /PATH/to/THISRepositories/plugin /PATH/to/PX4-Autopilot/

Step4 导入环境变量

为方便启动,直接在shell启动时导入px4对应的环境变量

gedit ~/.bashrc
# 如果用的时zsh
gedit ~/.zshrc

添加下面内容

## PX4 1.13.3
export PX4_DIR=/PATH/to/PX4-Autopilot
source $PX4_DIR/Tools/setup_gazebo.bash $PX4_DIR $PX4_DIR/build/px4_sitl_default
export ROS_PACKAGE_PATH=$ROS_PACKAGE_PATH:$PX4_DIR
export ROS_PACKAGE_PATH=$ROS_PACKAGE_PATH:$PX4_DIR/Tools/sitl_gazebo
export GAZEBO_PLUGIN_PATH=$GAZEBO_PLUGIN_PATH:$PX4_DIR/plugin # user-defined plugin (看你上面一步里放在哪里了)

Step5 测试相机

roslaunch px4 d435i.launch

Step6 启动无人机模型

roslaunch px4 mavros_posix_sitl_sdf.launch

附录

其他非必要文件说明

  • src/realsense_ros_gazebo: d435i模型及插件源码 参考,plugin文件夹下的插件就是通过这份源码得到
  • src/px4_simple_example: 基于px4gazebo的简单的无人机悬停程序,编译后按下列方式启动
    roslaunch px4_simple_example one_agent_offboard.launch
    
  • src/kun_urdf: 从solidwork中由sw2urdf插件得到的文件

使用sw2urdf得到sdf文件

使用该插件时需要注意 参考

  1. 每个link设为子装配体,确保link坐标系原点/关节轴与子装配体原点重合
  2. 确保所有坐标系/关节轴处于装配体根目录,不要使用任何子装配体/零件中的坐标系/轴
  3. 最后保存的文件夹不要有中文(要作为ros包运行)

否则最后出来的urdf模型可能会散架

得到urdf后,可以使用官方工具将其转换为sdf格式

gz sdf -p YOURMODEL.urdf > YOURMODEL.sdf

启动urdf模型

# 原本为gazebo.launch
roslaunch kun_urdf kun_urdf.launch

启动sdf模型

# 自己加的
roslaunch kun_urdf kun_sdf.launch

px4安装

参考

mavros 安装

sudo apt-get install ros-noetic-mavros ros-noetic-mavros-extras
wget https://raw.githubusercontent.com/mavlink/mavros/master/mavros/scripts/install_geographiclib_datasets.sh
chmod a+x install_geographiclib_datasets.sh
sudo ./install_geographiclib_datasets.sh
  • 21
    点赞
  • 41
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
对于Gazebo教程无人机部分,你可以根据以下步骤进行操作。首先,确保你已经安装了ROS的Gazebo插件。对于Melodic版本,你可以执行以下命令进行安装:sudo apt install ros-melodic-gazebo-*。如果你使用的是Kinetic版本,则执行sudo apt install ros-kinetic-gazebo9-*。这样就可以获取到Gazebo模型。 接下来,你可以根据古月居大神Judez的教程进行仿真。根据你提供的引用,你可以跟随他的教程来模拟无人机。确保你已经按照教程的步骤进行了设置,并且已经获取到了Gazebo模型。如果你遇到了一些问题,例如无人机无法显示在Gazebo或者启动仿真没有反应,你可以尝试修改启动仿真语句。根据你提供的引用的说明,你可以使用以下命令进行启动仿真:roslaunch rotors_gazebo multi_mav_formation.launch mav_name:=firefly world_name:=basic。这样应该可以让无人机飞起来。 如果你在使用Gazebo过程遇到了报错,例如你提供的引用的错误信息,你可以尝试解决这个问题。根据你提供的错误信息,这个错误可能是由于虚拟机设置的问题导致的。你可以尝试检查虚拟机的设置,并根据需要进行一些调整以解决这个问题。 总结起来,如果你想学习Gazebo教程无人机部分,你需要安装ROS的Gazebo插件,并按照教程进行设置和操作。如果遇到问题,你可以尝试修改启动仿真语句或者检查虚拟机的设置以解决问题。<span class="em">1</span><span class="em">2</span><span class="em">3</span><span class="em">4</span>
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值