162 lines
4.7 KiB
XML
162 lines
4.7 KiB
XML
<?xml version="1.0" ?>
|
|
<!--
|
|
Simple Drone Model for Ignition Fortress
|
|
Uses velocity control for simple simulation
|
|
-->
|
|
<sdf version="1.8">
|
|
<model name="drone">
|
|
<pose>0 0 5 0 0 0</pose>
|
|
|
|
<!-- Main body -->
|
|
<link name="base_link">
|
|
<inertial>
|
|
<mass>1.0</mass>
|
|
<inertia>
|
|
<ixx>0.029125</ixx>
|
|
<ixy>0</ixy>
|
|
<ixz>0</ixz>
|
|
<iyy>0.029125</iyy>
|
|
<iyz>0</iyz>
|
|
<izz>0.055225</izz>
|
|
</inertia>
|
|
</inertial>
|
|
|
|
<collision name="body_collision">
|
|
<geometry>
|
|
<box>
|
|
<size>0.3 0.3 0.1</size>
|
|
</box>
|
|
</geometry>
|
|
</collision>
|
|
|
|
<visual name="body_visual">
|
|
<geometry>
|
|
<box>
|
|
<size>0.3 0.3 0.1</size>
|
|
</box>
|
|
</geometry>
|
|
<material>
|
|
<ambient>0.8 0.1 0.1 1</ambient>
|
|
<diffuse>0.9 0.2 0.2 1</diffuse>
|
|
<specular>0.2 0.2 0.2 1</specular>
|
|
</material>
|
|
</visual>
|
|
|
|
<!-- Arms -->
|
|
<visual name="arm_fl">
|
|
<pose>0.12 0.12 0 0 0 0.785</pose>
|
|
<geometry>
|
|
<box><size>0.2 0.02 0.02</size></box>
|
|
</geometry>
|
|
<material>
|
|
<ambient>0.2 0.2 0.2 1</ambient>
|
|
<diffuse>0.3 0.3 0.3 1</diffuse>
|
|
</material>
|
|
</visual>
|
|
<visual name="arm_fr">
|
|
<pose>0.12 -0.12 0 0 0 -0.785</pose>
|
|
<geometry>
|
|
<box><size>0.2 0.02 0.02</size></box>
|
|
</geometry>
|
|
<material>
|
|
<ambient>0.2 0.2 0.2 1</ambient>
|
|
<diffuse>0.3 0.3 0.3 1</diffuse>
|
|
</material>
|
|
</visual>
|
|
<visual name="arm_bl">
|
|
<pose>-0.12 0.12 0 0 0 -0.785</pose>
|
|
<geometry>
|
|
<box><size>0.2 0.02 0.02</size></box>
|
|
</geometry>
|
|
<material>
|
|
<ambient>0.2 0.2 0.2 1</ambient>
|
|
<diffuse>0.3 0.3 0.3 1</diffuse>
|
|
</material>
|
|
</visual>
|
|
<visual name="arm_br">
|
|
<pose>-0.12 -0.12 0 0 0 0.785</pose>
|
|
<geometry>
|
|
<box><size>0.2 0.02 0.02</size></box>
|
|
</geometry>
|
|
<material>
|
|
<ambient>0.2 0.2 0.2 1</ambient>
|
|
<diffuse>0.3 0.3 0.3 1</diffuse>
|
|
</material>
|
|
</visual>
|
|
|
|
<!-- Rotors (visual only) -->
|
|
<visual name="rotor_fl">
|
|
<pose>0.17 0.17 0.05 0 0 0</pose>
|
|
<geometry>
|
|
<cylinder><radius>0.08</radius><length>0.01</length></cylinder>
|
|
</geometry>
|
|
<material>
|
|
<ambient>0.1 0.1 0.1 1</ambient>
|
|
<diffuse>0.2 0.2 0.2 1</diffuse>
|
|
</material>
|
|
</visual>
|
|
<visual name="rotor_fr">
|
|
<pose>0.17 -0.17 0.05 0 0 0</pose>
|
|
<geometry>
|
|
<cylinder><radius>0.08</radius><length>0.01</length></cylinder>
|
|
</geometry>
|
|
<material>
|
|
<ambient>0.1 0.1 0.1 1</ambient>
|
|
<diffuse>0.2 0.2 0.2 1</diffuse>
|
|
</material>
|
|
</visual>
|
|
<visual name="rotor_bl">
|
|
<pose>-0.17 0.17 0.05 0 0 0</pose>
|
|
<geometry>
|
|
<cylinder><radius>0.08</radius><length>0.01</length></cylinder>
|
|
</geometry>
|
|
<material>
|
|
<ambient>0.1 0.1 0.1 1</ambient>
|
|
<diffuse>0.2 0.2 0.2 1</diffuse>
|
|
</material>
|
|
</visual>
|
|
<visual name="rotor_br">
|
|
<pose>-0.17 -0.17 0.05 0 0 0</pose>
|
|
<geometry>
|
|
<cylinder><radius>0.08</radius><length>0.01</length></cylinder>
|
|
</geometry>
|
|
<material>
|
|
<ambient>0.1 0.1 0.1 1</ambient>
|
|
<diffuse>0.2 0.2 0.2 1</diffuse>
|
|
</material>
|
|
</visual>
|
|
|
|
<!-- IMU Sensor -->
|
|
<sensor name="imu_sensor" type="imu">
|
|
<always_on>true</always_on>
|
|
<update_rate>100</update_rate>
|
|
<topic>/drone/imu</topic>
|
|
</sensor>
|
|
</link>
|
|
|
|
<!-- Ignition Fortress compatible plugins -->
|
|
|
|
<!-- Apply velocity from /drone/cmd_vel topic -->
|
|
<plugin filename="libignition-gazebo-apply-link-wrench-system.so"
|
|
name="ignition::gazebo::systems::ApplyLinkWrench"/>
|
|
|
|
<!-- Odometry Publisher -->
|
|
<plugin filename="libignition-gazebo-odometry-publisher-system.so"
|
|
name="ignition::gazebo::systems::OdometryPublisher">
|
|
<odom_frame>odom</odom_frame>
|
|
<robot_base_frame>base_link</robot_base_frame>
|
|
<odom_topic>/model/drone/odometry</odom_topic>
|
|
<odom_publish_frequency>50</odom_publish_frequency>
|
|
</plugin>
|
|
|
|
<!-- Pose Publisher -->
|
|
<plugin filename="libignition-gazebo-pose-publisher-system.so"
|
|
name="ignition::gazebo::systems::PosePublisher">
|
|
<publish_model_pose>true</publish_model_pose>
|
|
<publish_link_pose>false</publish_link_pose>
|
|
<update_frequency>50</update_frequency>
|
|
</plugin>
|
|
|
|
</model>
|
|
</sdf>
|