ROS&Gazebo自定义多旋翼无人机仿真——环境搭建和模型建立

平台:ubuntu 20.04、ROS

概述

在ubuntu平台搭建多旋翼无人机可视化仿真环境,并使用自定义的六旋翼无人机模型,进行SITL仿真。
无人机:自定义六旋翼
固件:APM/PX4

在这里插入图片描述

搭建仿真环境

ros - noetic (18.04为melodic)Gazebo11

参考:添加链接描述

在这里插入图片描述

飞控: APM

参考:APM官网

git clone https://github.com/SwiftGust/ardupilot_gazebo 
cd ardupilot_gazebo
mkdir build
cd build
cmake ..
make -j4
sudo make install

设置环境变量

source /usr/share/gazebo/setup.sh
export GAZEBO_MODEL_PATH=~/ardupilot_gazebo/models:${GAZEBO_MODEL_PATH}
export GAZEBO_MODEL_PATH=~/ardupilot_gazebo/models_gazebo:${GAZEBO_MODEL_PATH}
export GAZEBO_RESOURCE_PATH=~/ardupilot_gazebo/worlds:${GAZEBO_RESOURCE_PATH}
export GAZEBO_PLUGIN_PATH=~/ardupilot_gazebo/build:${GAZEBO_PLUGIN_PATH}

最后得到这两个文件夹
在这里插入图片描述

测试

1、​gazebo --verbose iris_ardupilot.world
2、

cd ~/ardupilot/ArduCopter
../Tools/autotest/sim_vehicle.py -f gazebo-iris --console --map

可以正常打开则说明环境搭建成功。

模型

安装SolidWorks
自己画一个无人机,过程略过

安装SolidWorks的sw_urdf_exporter插件 下载地址
在这里插入图片描述

重点!!!

导出无人机模型得到一个文件夹
包括: config、launch、meshes、textures、urdf、CMakeLists.txt、export.log、package.xml
///
打包压缩到ubuntu系统下。

安装rotors 链接

参考 https://blog.csdn.net/qq_37680545/article/details/123213054

在src文件夹内创建uav_simulator包,将压缩包解压到文件夹里
在这里插入图片描述

cd 到根目录,catkin_make一下。
运行source bash后

roslaunch uav_gazebo gazebo.launch

可以看到模型
在这里插入图片描述

右键uav 选择Edit model

在这里插入图片描述
左上角file–>save as得到一个模型文件夹(包括sdf和config文件)

在这里插入图片描述
将文件夹复制到ardupilot_gazebo/models内

创建仿真世界
在world文件夹新建uav.world文件
将以下内容复制进去(最后一段 uri 可以根据自己的改)

<sdf version="1.6">
  <world name="default">
    <physics type="ode">
      <ode>
        <solver>
          <type>quick</type>
          <iters>100</iters>
          <sor>1.0</sor>
        </solver>
        <constraints>
          <cfm>0.0</cfm>
          <erp>0.9</erp>
          <contact_max_correcting_vel>0.1</contact_max_correcting_vel>
          <contact_surface_layer>0.0</contact_surface_layer>
        </constraints>
      </ode>
      <real_time_update_rate>250</real_time_update_rate>
      <max_step_size>0.0025</max_step_size>
    </physics>

      <include>
      <uri>model://sun</uri>
    </include>

      <model name="ground_plane">
      <static>true</static>
      <link name="link">
        <collision name="collision">
          <geometry>
            <plane>
              <normal>0 0 1</normal>
              <size>5000 5000</size>
            </plane>
          </geometry>
          <surface>
            <friction>
              <ode>
                <mu>1</mu>
                <mu2>1</mu2>
              </ode>
            </friction>
          </surface>
        </collision>
        <visual name="runway">
          <pose>000 0 0.005 0 0 -1.5707</pose>
          <cast_shadows>false</cast_shadows>
          <geometry>
            <plane>
              <normal>0 0 1</normal>
              <size>1829 45</size>
            </plane>
          </geometry>
          <material>
            <script>
              <uri>file://media/materials/scripts/gazebo.material</uri>
              <name>Gazebo/Runway</name>
            </script>
          </material>
        </visual>

        <visual name="grass">
          <pose>0 0 -0.1 0 0 0</pose>
          <cast_shadows>false</cast_shadows>
          <geometry>
            <plane>
              <normal>0 0 1</normal>
              <size>5000 5000</size>
            </plane>
          </geometry>
          <material>
            <script>
              <uri>file://media/materials/scripts/gazebo.material</uri>
              <name>Gazebo/Grass</name>
            </script>
          </material>
        </visual>

      </link>
    </model>
    
    <model name="uav">
      <pose> 0 0 0 0 0 0 </pose>
      <include>
        <uri>model://uav</uri>
         <pose> 0 0 0 0 0 0 </pose>
      </include>
    </model>
  </world>
</sdf>

终端输入

gazebo --verbose uav.world

可以看到
在这里插入图片描述

到这里模型就建立好了,只需要进行一些配置就可以开始仿真,后续过程有时间再更。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值