赞
踩
本仓库旨在在已经安装好的px4
的基础上,将其原本的iris
模型替换为自己想要的无人机模型,并加上D435i
深度相机
仓库地址 链接
ROS: noetic
PX4: 1.13.3
注: 其他版本的原理都是类似的
运行下列命令,确保px4
能够正常运行
roslaunch px4 mavros_posix_sitl.launch
roslaunch px4 multi_uav_mavros_sitl_sdf.launch
cd /PATH/to/PX4-Autopilot/Tools/sitl_gazebo/models/iris
cp iris.sdf iris.sdf.bk
[注]: 这一步可以跳过,用作者改好的模型
[注]: 下面两个方法各有耗时的地方
这里以stl
(其他类型没试过)为例。
通过各种渠道得到模型的stl
文件(solidwork
可以直接另存为,或者使用sw2urdf
插件),保存至iris
的meshes
文件夹下
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
文件格式各标签的含义可以参考 官网
相应的,为保持美观,需要调节位置角度与其他部件(比如桨叶)的大小与位置,此处较为耗时
sw2urdf
得到sdf文件,注意事项及步骤详细参考附录stl
文件拷贝进PX4-Autopilot/Tools/sitl_gazebo/models/iris/meshes/
sdf
文件,修改PX4-Autopilot/Tools/sitl_gazebo/models/iris/meshes/iris.sdf
,由于是用插件得到的,若第一步的配置合理的话,位置、姿态、大小等属性都是完美的,不需要再手动调整,直接粘贴进iris.sdf
的对应位置即可拷贝本仓库下的各文件至指定位置
# 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/
为方便启动,直接在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 (看你上面一步里放在哪里了)
roslaunch px4 d435i.launch
roslaunch px4 mavros_posix_sitl_sdf.launch
src/realsense_ros_gazebo
: d435i
模型及插件源码 参考,plugin
文件夹下的插件就是通过这份源码得到src/px4_simple_example
: 基于px4
和gazebo
的简单的无人机悬停程序,编译后按下列方式启动roslaunch px4_simple_example one_agent_offboard.launch
src/kun_urdf
: 从solidwork
中由sw2urdf
插件得到的文件使用该插件时需要注意 参考:
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
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
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。