You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
981 lines
29 KiB
981 lines
29 KiB
<?xml version="1.0" encoding="UTF-8"?>
|
|
<!-- DO NOT EDIT: Generated from standard_vtol.sdf.jinja -->
|
|
<sdf version='1.5'>
|
|
<model name='tiltrotor'>
|
|
<pose>0 0 0.246 0 0 0</pose>
|
|
<link name='base_link'>
|
|
<pose>0 0 0 0 0 0</pose>
|
|
<inertial>
|
|
<pose>0 0 0 0 0 0</pose>
|
|
<mass>5</mass>
|
|
<inertia>
|
|
<ixx>0.197563</ixx>
|
|
<ixy>0</ixy>
|
|
<ixz>0</ixz>
|
|
<iyy>0.1458929</iyy>
|
|
<iyz>0</iyz>
|
|
<izz>0.1477</izz>
|
|
</inertia>
|
|
</inertial>
|
|
<collision name='base_link_collision'>
|
|
<pose>-0.01 0 -0.08 0 0 0</pose>
|
|
<geometry>
|
|
<box>
|
|
<size>0.55 2.144 0.05</size>
|
|
</box>
|
|
</geometry>
|
|
<surface>
|
|
<contact>
|
|
<ode>
|
|
<kp>100000</kp>
|
|
<kd>1.0</kd>
|
|
<max_vel>0.1</max_vel>
|
|
<min_depth>0.001</min_depth>
|
|
</ode>
|
|
</contact>
|
|
<friction>
|
|
<ode />
|
|
</friction>
|
|
</surface>
|
|
</collision>
|
|
<visual name='base_link_visual'>
|
|
<pose>0.53 -1.072 -0.1 1.5707963268 0 3.1415926536</pose>
|
|
<geometry>
|
|
<mesh>
|
|
<scale>0.001 0.001 0.001</scale>
|
|
<uri>model://standard_vtol/meshes/x8_wing.dae</uri>
|
|
</mesh>
|
|
</geometry>
|
|
<material> <!-- DarkGrey-->
|
|
<ambient>0.175 0.175 0.175 1.0</ambient>
|
|
<diffuse>0.175 0.175 0.175 1.0</diffuse>
|
|
</material>
|
|
</visual>
|
|
<visual name='left_motor_column'>
|
|
<pose>0 0.35 0.01 0 0 0</pose>
|
|
<geometry>
|
|
<box>
|
|
<size>0.74 0.03 0.03</size>
|
|
</box>
|
|
</geometry>
|
|
<material> <!-- DarkGrey-->
|
|
<ambient>0.175 0.175 0.175 1.0</ambient>
|
|
<diffuse>0.175 0.175 0.175 1.0</diffuse>
|
|
</material>
|
|
</visual>
|
|
<visual name='right_motor_column'>
|
|
<pose>0 -0.35 0.01 0 0 0</pose>
|
|
<geometry>
|
|
<box>
|
|
<size>0.74 0.03 0.03</size>
|
|
</box>
|
|
</geometry>
|
|
<material> <!-- DarkGrey-->
|
|
<ambient>0.175 0.175 0.175 1.0</ambient>
|
|
<diffuse>0.175 0.175 0.175 1.0</diffuse>
|
|
</material>
|
|
</visual>
|
|
<visual name='motor_1'>
|
|
<pose>-0.35 -0.35 0.045 0 0 0</pose>
|
|
<geometry>
|
|
<cylinder>
|
|
<length>0.035</length>
|
|
<radius>0.02</radius>
|
|
</cylinder>
|
|
</geometry>
|
|
<material>
|
|
<ambient>.175 .175 .175 1.0</ambient>
|
|
<diffuse>.175 .175 .175 1.0</diffuse>
|
|
</material>
|
|
</visual>
|
|
<visual name='motor_3'>
|
|
<pose>-0.35 0.35 0.045 0 0 0</pose>
|
|
<geometry>
|
|
<cylinder>
|
|
<length>0.035</length>
|
|
<radius>0.02</radius>
|
|
</cylinder>
|
|
</geometry>
|
|
<material>
|
|
<ambient>.175 .175 .175 1.0</ambient>
|
|
<diffuse>.175 .175 .175 1.0</diffuse>
|
|
</material>
|
|
</visual>
|
|
<gravity>1</gravity>
|
|
<velocity_decay />
|
|
<self_collide>0</self_collide>
|
|
|
|
<sensor name="imu_sensor" type="imu">
|
|
<gz_frame_id>base_link</gz_frame_id>
|
|
<always_on>1</always_on>
|
|
<update_rate>250</update_rate>
|
|
<imu>
|
|
<angular_velocity>
|
|
<x>
|
|
<noise type="gaussian">
|
|
<mean>0</mean>
|
|
<stddev>0.0003394</stddev>
|
|
<dynamic_bias_stddev>3.8785e-05</dynamic_bias_stddev>
|
|
<dynamic_bias_correlation_time>1000</dynamic_bias_correlation_time>
|
|
</noise>
|
|
</x>
|
|
<y>
|
|
<noise type="gaussian">
|
|
<mean>0</mean>
|
|
<stddev>0.0003394</stddev>
|
|
<dynamic_bias_stddev>3.8785e-05</dynamic_bias_stddev>
|
|
<dynamic_bias_correlation_time>1000</dynamic_bias_correlation_time>
|
|
</noise>
|
|
</y>
|
|
<z>
|
|
<noise type="gaussian">
|
|
<mean>0</mean>
|
|
<stddev>0.0003394</stddev>
|
|
<dynamic_bias_stddev>3.8785e-05</dynamic_bias_stddev>
|
|
<dynamic_bias_correlation_time>1000</dynamic_bias_correlation_time>
|
|
</noise>
|
|
</z>
|
|
</angular_velocity>
|
|
<linear_acceleration>
|
|
<x>
|
|
<noise type="gaussian">
|
|
<mean>0</mean>
|
|
<stddev>0.004</stddev>
|
|
<dynamic_bias_stddev>0.006</dynamic_bias_stddev>
|
|
<dynamic_bias_correlation_time>300</dynamic_bias_correlation_time>
|
|
</noise>
|
|
</x>
|
|
<y>
|
|
<noise type="gaussian">
|
|
<mean>0</mean>
|
|
<stddev>0.004</stddev>
|
|
<dynamic_bias_stddev>0.006</dynamic_bias_stddev>
|
|
<dynamic_bias_correlation_time>300</dynamic_bias_correlation_time>
|
|
</noise>
|
|
</y>
|
|
<z>
|
|
<noise type="gaussian">
|
|
<mean>0</mean>
|
|
<stddev>0.004</stddev>
|
|
<dynamic_bias_stddev>0.006</dynamic_bias_stddev>
|
|
<dynamic_bias_correlation_time>300</dynamic_bias_correlation_time>
|
|
</noise>
|
|
</z>
|
|
</linear_acceleration>
|
|
</imu>
|
|
</sensor>
|
|
<sensor name="air_pressure_sensor" type="air_pressure">
|
|
<gz_frame_id>base_link</gz_frame_id>
|
|
<always_on>1</always_on>
|
|
<update_rate>50</update_rate>
|
|
<air_pressure>
|
|
<pressure>
|
|
<noise type="gaussian">
|
|
<mean>0</mean>
|
|
<stddev>0.01</stddev>
|
|
</noise>
|
|
</pressure>
|
|
</air_pressure>
|
|
</sensor>
|
|
<sensor name="magnetometer_sensor" type="magnetometer">
|
|
<gz_frame_id>base_link</gz_frame_id>
|
|
<always_on>1</always_on>
|
|
<update_rate>100</update_rate>
|
|
<magnetometer>
|
|
<!-- TODO: update to fix units and coordinate system when we move past Harmonic -->
|
|
<!-- See https://github.com/gazebosim/gz-sim/pull/2460 -->
|
|
<!-- 3mgauss RMS: NOTE: noise is in tesla but sensor reports data in gauss -->
|
|
<!-- Noise modeled after IIS2MDC -->
|
|
<x>
|
|
<noise type="gaussian">
|
|
<stddev>0.0001</stddev>
|
|
</noise>
|
|
</x>
|
|
<y>
|
|
<noise type="gaussian">
|
|
<stddev>0.0001</stddev>
|
|
</noise>
|
|
</y>
|
|
<z>
|
|
<noise type="gaussian">
|
|
<stddev>0.0001</stddev>
|
|
</noise>
|
|
</z>
|
|
</magnetometer>
|
|
</sensor>
|
|
<sensor name="navsat_sensor" type="navsat">
|
|
<gz_frame_id>base_link</gz_frame_id>
|
|
<always_on>1</always_on>
|
|
<update_rate>30</update_rate>
|
|
</sensor>
|
|
</link>
|
|
|
|
<include merge="true">
|
|
<uri>model://airspeed</uri>
|
|
<pose>0. 0. 0. 0. 0. 0.</pose>
|
|
</include>
|
|
<joint name='airspeed_joint' type='fixed'>
|
|
<parent>base_link</parent>
|
|
<child>airspeed_link</child>
|
|
<pose relative_to="base_link">-0 0 0 0 0 0</pose>
|
|
</joint>
|
|
|
|
<link name='motor_0'>
|
|
<pose>0.35 -0.35 0.045 0 0 0</pose>
|
|
<inertial>
|
|
<pose>0 0 0 0 0 0</pose>
|
|
<mass>0.05</mass>
|
|
<inertia>
|
|
<ixx>0.0166704</ixx>
|
|
<ixy>0</ixy>
|
|
<ixz>0</ixz>
|
|
<iyy>0.0166704</iyy>
|
|
<iyz>0</iyz>
|
|
<izz>0.0167604</izz>
|
|
</inertia>
|
|
</inertial>
|
|
<collision name='motor_0_collision'>
|
|
<pose>0 0 0 0 0 0</pose>
|
|
<geometry>
|
|
<cylinder>
|
|
<length>0.035</length>
|
|
<radius>0.02</radius>
|
|
</cylinder>
|
|
</geometry>
|
|
<surface>
|
|
<contact>
|
|
<ode />
|
|
</contact>
|
|
<friction>
|
|
<ode />
|
|
</friction>
|
|
</surface>
|
|
</collision>
|
|
<visual name='motor_0_visual'>
|
|
<pose>0 0 0 0 0 0</pose>
|
|
<geometry>
|
|
<cylinder>
|
|
<length>0.035</length>
|
|
<radius>0.02</radius>
|
|
</cylinder>
|
|
</geometry>
|
|
<material>
|
|
<ambient>0.175 0.175 0.175 1.0</ambient>
|
|
<diffuse>0.175 0.175 0.175 1.0</diffuse>
|
|
</material>
|
|
</visual>
|
|
<gravity>1</gravity>
|
|
<velocity_decay />
|
|
<self_collide>0</self_collide>
|
|
</link>
|
|
|
|
<joint name='motor_0_joint' type='revolute'>
|
|
<child>motor_0</child>
|
|
<parent>base_link</parent>
|
|
<axis>
|
|
<xyz>0 1 0</xyz>
|
|
<limit>
|
|
<lower>0.</lower>
|
|
<upper>1.57</upper>
|
|
</limit>
|
|
<dynamics>
|
|
<friction>1.0</friction>
|
|
<spring_reference>0</spring_reference>
|
|
<spring_stiffness>0</spring_stiffness>
|
|
</dynamics>
|
|
<use_parent_model_frame>1</use_parent_model_frame>
|
|
</axis>
|
|
</joint>
|
|
|
|
<link name='rotor_0'>
|
|
<pose>0.35 -0.35 0.07 0 0 0</pose>
|
|
<inertial>
|
|
<pose>0 0 0 0 0 0</pose>
|
|
<mass>0.005</mass>
|
|
<inertia>
|
|
<ixx>9.75e-07</ixx>
|
|
<ixy>0</ixy>
|
|
<ixz>0</ixz>
|
|
<iyy>0.000166704</iyy>
|
|
<iyz>0</iyz>
|
|
<izz>0.000167604</izz>
|
|
</inertia>
|
|
</inertial>
|
|
<collision name='rotor_0_collision'>
|
|
<pose>0 0 0 0 0 0</pose>
|
|
<geometry>
|
|
<cylinder>
|
|
<length>0.005</length>
|
|
<radius>0.1</radius>
|
|
</cylinder>
|
|
</geometry>
|
|
<surface>
|
|
<contact>
|
|
<ode />
|
|
</contact>
|
|
<friction>
|
|
<ode />
|
|
</friction>
|
|
</surface>
|
|
</collision>
|
|
<visual name='rotor_0_visual'>
|
|
<pose>0 0 0 0 0 0</pose>
|
|
<geometry>
|
|
<mesh>
|
|
<scale>1 1 1</scale>
|
|
<uri>model://standard_vtol/meshes/iris_prop_ccw.dae</uri>
|
|
</mesh>
|
|
</geometry>
|
|
<material> <!-- Blue -->
|
|
<ambient>0 0 1 1.0</ambient>
|
|
<diffuse>0 0 1 1.0</diffuse>
|
|
</material>
|
|
</visual>
|
|
<gravity>1</gravity>
|
|
<velocity_decay />
|
|
<self_collide>0</self_collide>
|
|
</link>
|
|
<joint name='rotor_0_joint' type='revolute'>
|
|
<child>rotor_0</child>
|
|
<parent>motor_0</parent>
|
|
<axis>
|
|
<xyz>0 0 1</xyz>
|
|
<limit>
|
|
<lower>-1e+16</lower>
|
|
<upper>1e+16</upper>
|
|
</limit>
|
|
<dynamics>
|
|
<spring_reference>0</spring_reference>
|
|
<spring_stiffness>0</spring_stiffness>
|
|
</dynamics>
|
|
<use_parent_model_frame>1</use_parent_model_frame>
|
|
</axis>
|
|
</joint>
|
|
|
|
<link name='rotor_1'>
|
|
<pose>-0.35 0.35 0.07 0 0 0</pose>
|
|
<inertial>
|
|
<pose>0 0 0 0 0 0</pose>
|
|
<mass>0.005</mass>
|
|
<inertia>
|
|
<ixx>9.75e-07</ixx>
|
|
<ixy>0</ixy>
|
|
<ixz>0</ixz>
|
|
<iyy>0.000166704</iyy>
|
|
<iyz>0</iyz>
|
|
<izz>0.000167604</izz>
|
|
</inertia>
|
|
</inertial>
|
|
<collision name='rotor_1_collision'>
|
|
<pose>0 0 0 0 0 0</pose>
|
|
<geometry>
|
|
<cylinder>
|
|
<length>0.005</length>
|
|
<radius>0.1</radius>
|
|
</cylinder>
|
|
</geometry>
|
|
<surface>
|
|
<contact>
|
|
<ode />
|
|
</contact>
|
|
<friction>
|
|
<ode />
|
|
</friction>
|
|
</surface>
|
|
</collision>
|
|
<visual name='rotor_1_visual'>
|
|
<pose>0 0 0 0 0 0</pose>
|
|
<geometry>
|
|
<mesh>
|
|
<scale>1 1 1</scale>
|
|
<uri>model://standard_vtol/meshes/iris_prop_ccw.dae</uri>
|
|
</mesh>
|
|
</geometry>
|
|
<material> <!-- Blue -->
|
|
<ambient>0 0 1 1.0</ambient>
|
|
<diffuse>0 0 1 1.0</diffuse>
|
|
</material>
|
|
</visual>
|
|
<gravity>1</gravity>
|
|
<velocity_decay />
|
|
<self_collide>0</self_collide>
|
|
</link>
|
|
<joint name='rotor_1_joint' type='revolute'>
|
|
<child>rotor_1</child>
|
|
<parent>base_link</parent>
|
|
<axis>
|
|
<xyz>0 0 1</xyz>
|
|
<limit>
|
|
<lower>-1e+16</lower>
|
|
<upper>1e+16</upper>
|
|
</limit>
|
|
<dynamics>
|
|
<spring_reference>0</spring_reference>
|
|
<spring_stiffness>0</spring_stiffness>
|
|
</dynamics>
|
|
<use_parent_model_frame>1</use_parent_model_frame>
|
|
</axis>
|
|
</joint>
|
|
|
|
<link name='motor_2'>
|
|
<pose>0.35 0.35 0.045 0 0 0</pose>
|
|
<inertial>
|
|
<pose>0 0 0 0 0 0</pose>
|
|
<mass>0.05</mass>
|
|
<inertia>
|
|
<ixx>0.0166704</ixx>
|
|
<ixy>0</ixy>
|
|
<ixz>0</ixz>
|
|
<iyy>0.0166704</iyy>
|
|
<iyz>0</iyz>
|
|
<izz>0.0167604</izz>
|
|
</inertia>
|
|
</inertial>
|
|
<collision name='motor_2_collision'>
|
|
<pose>0 0 0 0 0 0</pose>
|
|
<geometry>
|
|
<cylinder>
|
|
<length>0.035</length>
|
|
<radius>0.02</radius>
|
|
</cylinder>
|
|
</geometry>
|
|
<surface>
|
|
<contact>
|
|
<ode />
|
|
</contact>
|
|
<friction>
|
|
<ode />
|
|
</friction>
|
|
</surface>
|
|
</collision>
|
|
<visual name='motor_2_visual'>
|
|
<pose>0 0 0 0 0 0</pose>
|
|
<geometry>
|
|
<cylinder>
|
|
<length>0.035</length>
|
|
<radius>0.02</radius>
|
|
</cylinder>
|
|
</geometry>
|
|
<material>
|
|
<ambient>0.175 0.175 0.175 1.0</ambient>
|
|
<diffuse>0.175 0.175 0.175 1.0</diffuse>
|
|
</material>
|
|
</visual>
|
|
<gravity>1</gravity>
|
|
<velocity_decay />
|
|
<self_collide>0</self_collide>
|
|
</link>
|
|
|
|
<joint name='motor_2_joint' type='revolute'>
|
|
<child>motor_2</child>
|
|
<parent>base_link</parent>
|
|
<axis>
|
|
<xyz>0 1 0</xyz>
|
|
<limit>
|
|
<lower>0.</lower>
|
|
<upper>1.57</upper>
|
|
</limit>
|
|
<dynamics>
|
|
<friction>1.0</friction>
|
|
<spring_reference>0</spring_reference>
|
|
<spring_stiffness>0</spring_stiffness>
|
|
</dynamics>
|
|
<use_parent_model_frame>1</use_parent_model_frame>
|
|
</axis>
|
|
</joint>
|
|
|
|
<link name='rotor_2'>
|
|
<pose>0.35 0.35 0.07 0 0 0</pose>
|
|
<inertial>
|
|
<pose>0 0 0 0 0 0</pose>
|
|
<mass>0.005</mass>
|
|
<inertia>
|
|
<ixx>9.75e-07</ixx>
|
|
<ixy>0</ixy>
|
|
<ixz>0</ixz>
|
|
<iyy>0.000166704</iyy>
|
|
<iyz>0</iyz>
|
|
<izz>0.000167604</izz>
|
|
</inertia>
|
|
</inertial>
|
|
<collision name='rotor_2_collision'>
|
|
<pose>0 0 0 0 0 0</pose>
|
|
<geometry>
|
|
<cylinder>
|
|
<length>0.005</length>
|
|
<radius>0.1</radius>
|
|
</cylinder>
|
|
</geometry>
|
|
<surface>
|
|
<contact>
|
|
<ode />
|
|
</contact>
|
|
<friction>
|
|
<ode />
|
|
</friction>
|
|
</surface>
|
|
</collision>
|
|
<visual name='rotor_2_visual'>
|
|
<pose>0 0 0 0 0 0</pose>
|
|
<geometry>
|
|
<mesh>
|
|
<scale>1 1 1</scale>
|
|
<uri>model://standard_vtol/meshes/iris_prop_cw.dae</uri>
|
|
</mesh>
|
|
</geometry>
|
|
<material> <!-- DarkGrey-->
|
|
<ambient>0.175 0.175 0.175 1.0</ambient>
|
|
<diffuse>0.175 0.175 0.175 1.0</diffuse>
|
|
</material>
|
|
</visual>
|
|
<gravity>1</gravity>
|
|
<velocity_decay />
|
|
<self_collide>0</self_collide>
|
|
</link>
|
|
<joint name='rotor_2_joint' type='revolute'>
|
|
<child>rotor_2</child>
|
|
<parent>motor_2</parent>
|
|
<axis>
|
|
<xyz>0 0 1</xyz>
|
|
<limit>
|
|
<lower>-1e+16</lower>
|
|
<upper>1e+16</upper>
|
|
</limit>
|
|
<dynamics>
|
|
<spring_reference>0</spring_reference>
|
|
<spring_stiffness>0</spring_stiffness>
|
|
</dynamics>
|
|
<use_parent_model_frame>1</use_parent_model_frame>
|
|
</axis>
|
|
</joint>
|
|
|
|
<link name='rotor_3'>
|
|
<pose>-0.35 -0.35 0.07 0 0 0</pose>
|
|
<inertial>
|
|
<pose>0 0 0 0 0 0</pose>
|
|
<mass>0.005</mass>
|
|
<inertia>
|
|
<ixx>9.75e-07</ixx>
|
|
<ixy>0</ixy>
|
|
<ixz>0</ixz>
|
|
<iyy>0.000166704</iyy>
|
|
<iyz>0</iyz>
|
|
<izz>0.000167604</izz>
|
|
</inertia>
|
|
</inertial>
|
|
<collision name='rotor_3_collision'>
|
|
<pose>0 0 0 0 0 0</pose>
|
|
<geometry>
|
|
<cylinder>
|
|
<length>0.005</length>
|
|
<radius>0.1</radius>
|
|
</cylinder>
|
|
</geometry>
|
|
<surface>
|
|
<contact>
|
|
<ode />
|
|
</contact>
|
|
<friction>
|
|
<ode />
|
|
</friction>
|
|
</surface>
|
|
</collision>
|
|
<visual name='rotor_3_visual'>
|
|
<pose>0 0 0 0 0 0</pose>
|
|
<geometry>
|
|
<mesh>
|
|
<scale>1 1 1</scale>
|
|
<uri>model://standard_vtol/meshes/iris_prop_cw.dae</uri>
|
|
</mesh>
|
|
</geometry>
|
|
<material> <!-- DarkGrey-->
|
|
<ambient>0.175 0.175 0.175 1.0</ambient>
|
|
<diffuse>0.175 0.175 0.175 1.0</diffuse>
|
|
</material>
|
|
</visual>
|
|
<gravity>1</gravity>
|
|
<velocity_decay />
|
|
<self_collide>0</self_collide>
|
|
</link>
|
|
<joint name='rotor_3_joint' type='revolute'>
|
|
<child>rotor_3</child>
|
|
<parent>base_link</parent>
|
|
<axis>
|
|
<xyz>0 0 1</xyz>
|
|
<limit>
|
|
<lower>-1e+16</lower>
|
|
<upper>1e+16</upper>
|
|
</limit>
|
|
<dynamics>
|
|
<spring_reference>0</spring_reference>
|
|
<spring_stiffness>0</spring_stiffness>
|
|
</dynamics>
|
|
<use_parent_model_frame>1</use_parent_model_frame>
|
|
</axis>
|
|
</joint>
|
|
|
|
<link name="left_elevon">
|
|
<inertial>
|
|
<mass>0.00000001</mass>
|
|
<inertia>
|
|
<ixx>0.000001</ixx>
|
|
<ixy>0.0</ixy>
|
|
<iyy>0.000001</iyy>
|
|
<ixz>0.0</ixz>
|
|
<iyz>0.0</iyz>
|
|
<izz>0.000001</izz>
|
|
</inertia>
|
|
<pose>0 0.3 0 0.00 0 0.0</pose>
|
|
</inertial>
|
|
<visual name='left_elevon_visual'>
|
|
<pose>-0.105 0.004 -0.034 1.5707963268 0 3.1415926536</pose>
|
|
<geometry>
|
|
<mesh>
|
|
<scale>0.001 0.001 0.001</scale>
|
|
<uri>model://standard_vtol/meshes/x8_elevon_left.dae</uri>
|
|
</mesh>
|
|
</geometry>
|
|
<material> <!-- Blue -->
|
|
<ambient>0 0 1 1.0</ambient>
|
|
<diffuse>0 0 1 1.0</diffuse>
|
|
</material>
|
|
</visual>
|
|
</link>
|
|
<link name="right_elevon">
|
|
<inertial>
|
|
<mass>0.00000001</mass>
|
|
<inertia>
|
|
<ixx>0.000001</ixx>
|
|
<ixy>0.0</ixy>
|
|
<iyy>0.000001</iyy>
|
|
<ixz>0.0</ixz>
|
|
<iyz>0.0</iyz>
|
|
<izz>0.000001</izz>
|
|
</inertia>
|
|
<pose>0 -0.6 0 0.00 0 0.0</pose>
|
|
</inertial>
|
|
<visual name='right_elevon_visual'>
|
|
<pose>0.281 -1.032 -0.034 1.5707963268 0 3.1415926536</pose>
|
|
<geometry>
|
|
<mesh>
|
|
<scale>0.001 0.001 0.001</scale>
|
|
<uri>model://standard_vtol/meshes/x8_elevon_right.dae</uri>
|
|
</mesh>
|
|
</geometry>
|
|
<material> <!-- Blue -->
|
|
<ambient>0 0 1 1.0</ambient>
|
|
<diffuse>0 0 1 1.0</diffuse>
|
|
</material>
|
|
</visual>
|
|
</link>
|
|
<link name="elevator">
|
|
<inertial>
|
|
<mass>0.00000001</mass>
|
|
<inertia>
|
|
<ixx>0.000001</ixx>
|
|
<ixy>0.0</ixy>
|
|
<iyy>0.000001</iyy>
|
|
<ixz>0.0</ixz>
|
|
<iyz>0.0</iyz>
|
|
<izz>0.000001</izz>
|
|
</inertia>
|
|
<pose> -0.5 0 0 0.00 0 0.0</pose>
|
|
</inertial>
|
|
</link>
|
|
<link name="rudder">
|
|
<inertial>
|
|
<mass>0.00000001</mass>
|
|
<inertia>
|
|
<ixx>0.000001</ixx>
|
|
<ixy>0.0</ixy>
|
|
<iyy>0.000001</iyy>
|
|
<ixz>0.0</ixz>
|
|
<iyz>0.0</iyz>
|
|
<izz>0.000001</izz>
|
|
</inertia>
|
|
<pose>-0.5 0 0.05 0 0 0 </pose>
|
|
</inertial>
|
|
</link>
|
|
<joint name='left_elevon_joint' type='revolute'>
|
|
<parent>base_link</parent>
|
|
<child>left_elevon</child>
|
|
<pose>-0.18 0.6 -0.005 0 0 0.265</pose>
|
|
<axis>
|
|
<xyz>0 1 0</xyz>
|
|
<limit>
|
|
<lower>-0.78</lower>
|
|
<upper>0.78</upper>
|
|
</limit>
|
|
<dynamics>
|
|
<damping>1.000</damping>
|
|
</dynamics>
|
|
</axis>
|
|
<physics>
|
|
<ode>
|
|
<implicit_spring_damper>1</implicit_spring_damper>
|
|
</ode>
|
|
</physics>
|
|
</joint>
|
|
<joint name='right_elevon_joint' type='revolute'>
|
|
<parent>base_link</parent>
|
|
<child>right_elevon</child>
|
|
<pose>-0.18 -0.6 -0.005 0 0 -0.265</pose>
|
|
<axis>
|
|
<xyz>0 1 0</xyz>
|
|
<limit>
|
|
<lower>-0.78</lower>
|
|
<upper>0.78</upper>
|
|
</limit>
|
|
<dynamics>
|
|
<damping>1.000</damping>
|
|
</dynamics>
|
|
</axis>
|
|
<physics>
|
|
<ode>
|
|
<implicit_spring_damper>1</implicit_spring_damper>
|
|
</ode>
|
|
</physics>
|
|
</joint>
|
|
<joint name='elevator_joint' type='revolute'>
|
|
<parent>base_link</parent>
|
|
<child>elevator</child>
|
|
<pose> -0.5 0 0 0 0 0</pose>
|
|
<axis>
|
|
<xyz>0 1 0</xyz>
|
|
<limit>
|
|
<lower>-0.78</lower>
|
|
<upper>0.78</upper>
|
|
</limit>
|
|
<dynamics>
|
|
<damping>1.000</damping>
|
|
</dynamics>
|
|
</axis>
|
|
<physics>
|
|
<ode>
|
|
<implicit_spring_damper>1</implicit_spring_damper>
|
|
</ode>
|
|
</physics>
|
|
</joint>
|
|
<joint name='rudder_joint' type='revolute'>
|
|
<parent>base_link</parent>
|
|
<child>rudder</child>
|
|
<pose>-0.5 0 0.05 0.00 0 0.0</pose>
|
|
<axis>
|
|
<xyz>1 0 0</xyz>
|
|
<limit>
|
|
<!-- -30/+30 deg. -->
|
|
<lower>-0.01</lower>
|
|
<upper>0.01</upper>
|
|
</limit>
|
|
<dynamics>
|
|
<damping>1.000</damping>
|
|
</dynamics>
|
|
</axis>
|
|
<physics>
|
|
<ode>
|
|
<implicit_spring_damper>1</implicit_spring_damper>
|
|
</ode>
|
|
</physics>
|
|
</joint>
|
|
<plugin filename="gz-sim-lift-drag-system" name="gz::sim::systems::LiftDrag">
|
|
<a0>0.05984281113</a0>
|
|
<cla>4.752798721</cla>
|
|
<cda>0.6417112299</cda>
|
|
<cma>0.0</cma>
|
|
<alpha_stall>0.3391428111</alpha_stall>
|
|
<cla_stall>-3.85</cla_stall>
|
|
<cda_stall>-0.9233984055</cda_stall>
|
|
<cma_stall>0</cma_stall>
|
|
<cp>-0.05 0.3 0.05</cp>
|
|
<area>0.5</area>
|
|
<air_density>1.2041</air_density>
|
|
<forward>1 0 0</forward>
|
|
<upward>0 0 1</upward>
|
|
<link_name>base_link</link_name>
|
|
<control_joint_name>
|
|
left_elevon_joint
|
|
</control_joint_name>
|
|
<control_joint_rad_to_cl>-1.0</control_joint_rad_to_cl>
|
|
</plugin>
|
|
<plugin
|
|
filename="gz-sim-joint-position-controller-system"
|
|
name="gz::sim::systems::JointPositionController">
|
|
<joint_name>left_elevon_joint</joint_name>
|
|
<sub_topic>servo_0</sub_topic>
|
|
</plugin>
|
|
<plugin filename="gz-sim-lift-drag-system" name="gz::sim::systems::LiftDrag">
|
|
<a0>0.05984281113</a0>
|
|
<cla>4.752798721</cla>
|
|
<cda>0.6417112299</cda>
|
|
<cma>0.0</cma>
|
|
<alpha_stall>0.3391428111</alpha_stall>
|
|
<cla_stall>-3.85</cla_stall>
|
|
<cda_stall>-0.9233984055</cda_stall>
|
|
<cma_stall>0</cma_stall>
|
|
<cp>-0.05 -0.3 0.05</cp>
|
|
<area>0.5</area>
|
|
<air_density>1.2041</air_density>
|
|
<forward>1 0 0</forward>
|
|
<upward>0 0 1</upward>
|
|
<link_name>base_link</link_name>
|
|
<control_joint_name>
|
|
right_elevon_joint
|
|
</control_joint_name>
|
|
<control_joint_rad_to_cl>-1.0</control_joint_rad_to_cl>
|
|
</plugin>
|
|
<plugin
|
|
filename="gz-sim-joint-position-controller-system"
|
|
name="gz::sim::systems::JointPositionController">
|
|
<joint_name>right_elevon_joint</joint_name>
|
|
<sub_topic>servo_1</sub_topic>
|
|
</plugin>
|
|
<plugin filename="gz-sim-lift-drag-system" name="gz::sim::systems::LiftDrag">
|
|
<a0>-0.2</a0>
|
|
<cla>4.752798721</cla>
|
|
<cda>0.6417112299</cda>
|
|
<cma>0.0</cma>
|
|
<alpha_stall>0.3391428111</alpha_stall>
|
|
<cla_stall>-3.85</cla_stall>
|
|
<cda_stall>-0.9233984055</cda_stall>
|
|
<cma_stall>0</cma_stall>
|
|
<cp>-0.5 0 0</cp>
|
|
<area>0.01</area>
|
|
<air_density>1.2041</air_density>
|
|
<forward>1 0 0</forward>
|
|
<upward>0 0 1</upward>
|
|
<link_name>base_link</link_name>
|
|
<control_joint_name>
|
|
elevator_joint
|
|
</control_joint_name>
|
|
<control_joint_rad_to_cl>-12.0</control_joint_rad_to_cl>
|
|
</plugin>
|
|
<plugin
|
|
filename="gz-sim-joint-position-controller-system"
|
|
name="gz::sim::systems::JointPositionController">
|
|
<joint_name>elevator_joint</joint_name>
|
|
<sub_topic>servo_2</sub_topic>
|
|
</plugin>
|
|
<plugin filename="gz-sim-lift-drag-system" name="gz::sim::systems::LiftDrag">
|
|
<a0>0.0</a0>
|
|
<cla>4.752798721</cla>
|
|
<cda>0.6417112299</cda>
|
|
<cma>0.0</cma>
|
|
<alpha_stall>0.3391428111</alpha_stall>
|
|
<cla_stall>-3.85</cla_stall>
|
|
<cda_stall>-0.9233984055</cda_stall>
|
|
<cma_stall>0</cma_stall>
|
|
<cp>-0.5 0 0.05</cp>
|
|
<area>0.02</area>
|
|
<air_density>1.2041</air_density>
|
|
<forward>1 0 0</forward>
|
|
<upward>0 1 0</upward>
|
|
<link_name>base_link</link_name>
|
|
<!-- <control_joint_name>
|
|
rudder_joint
|
|
</control_joint_name> -->
|
|
</plugin>
|
|
<!-- <plugin
|
|
filename="gz-sim-joint-position-controller-system"
|
|
name="gz::sim::systems::JointPositionController">
|
|
<joint_name>rudder_joint</joint_name>
|
|
<sub_topic>servo_5</sub_topic>
|
|
</plugin> -->
|
|
<plugin filename="gz-sim-multicopter-motor-model-system"
|
|
name="gz::sim::systems::MulticopterMotorModel">
|
|
<jointName>rotor_0_joint</jointName>
|
|
<linkName>rotor_0</linkName>
|
|
<turningDirection>ccw</turningDirection>
|
|
<timeConstantUp>0.0125</timeConstantUp>
|
|
<timeConstantDown>0.025</timeConstantDown>
|
|
<maxRotVelocity>1500</maxRotVelocity>
|
|
<motorConstant>2e-05</motorConstant>
|
|
<momentConstant>0.06</momentConstant>
|
|
<commandSubTopic>command/motor_speed</commandSubTopic>
|
|
<motorNumber>0</motorNumber>
|
|
<rotorDragCoefficient>0.0000806428</rotorDragCoefficient>
|
|
<rollingMomentCoefficient>1e-06</rollingMomentCoefficient>
|
|
<rotorVelocitySlowdownSim>20</rotorVelocitySlowdownSim>
|
|
<motorType>velocity</motorType>
|
|
</plugin>
|
|
<plugin
|
|
filename="gz-sim-joint-position-controller-system"
|
|
name="gz::sim::systems::JointPositionController">
|
|
<joint_name>motor_0_joint</joint_name>
|
|
<sub_topic>servo_3</sub_topic>
|
|
<p_gain>100</p_gain>
|
|
<i_gain>0</i_gain>
|
|
<d_gain>0</d_gain>
|
|
<i_max>0.0</i_max>
|
|
<i_min>0.0</i_min>
|
|
<cmd_max>2</cmd_max>
|
|
<cmd_min>-2</cmd_min>
|
|
<err_max>0.2</err_max>
|
|
</plugin>
|
|
<plugin filename="gz-sim-multicopter-motor-model-system"
|
|
name="gz::sim::systems::MulticopterMotorModel">
|
|
<jointName>rotor_1_joint</jointName>
|
|
<linkName>rotor_1</linkName>
|
|
<turningDirection>ccw</turningDirection>
|
|
<timeConstantUp>0.0125</timeConstantUp>
|
|
<timeConstantDown>0.025</timeConstantDown>
|
|
<maxRotVelocity>1500</maxRotVelocity>
|
|
<motorConstant>2e-05</motorConstant>
|
|
<momentConstant>0.06</momentConstant>
|
|
<commandSubTopic>command/motor_speed</commandSubTopic>
|
|
<motorNumber>1</motorNumber>
|
|
<rotorDragCoefficient>0.0000806428</rotorDragCoefficient>
|
|
<rollingMomentCoefficient>1e-06</rollingMomentCoefficient>
|
|
<rotorVelocitySlowdownSim>20</rotorVelocitySlowdownSim>
|
|
<motorType>velocity</motorType>
|
|
</plugin>
|
|
<plugin filename="gz-sim-multicopter-motor-model-system"
|
|
name="gz::sim::systems::MulticopterMotorModel">
|
|
<jointName>rotor_2_joint</jointName>
|
|
<linkName>rotor_2</linkName>
|
|
<turningDirection>cw</turningDirection>
|
|
<timeConstantUp>0.0125</timeConstantUp>
|
|
<timeConstantDown>0.025</timeConstantDown>
|
|
<maxRotVelocity>1500</maxRotVelocity>
|
|
<motorConstant>2e-05</motorConstant>
|
|
<momentConstant>0.06</momentConstant>
|
|
<commandSubTopic>command/motor_speed</commandSubTopic>
|
|
<motorNumber>2</motorNumber>
|
|
<rotorDragCoefficient>0.0000806428</rotorDragCoefficient>
|
|
<rollingMomentCoefficient>1e-06</rollingMomentCoefficient>
|
|
<rotorVelocitySlowdownSim>20</rotorVelocitySlowdownSim>
|
|
<motorType>velocity</motorType>
|
|
</plugin>
|
|
<plugin
|
|
filename="gz-sim-joint-position-controller-system"
|
|
name="gz::sim::systems::JointPositionController">
|
|
<joint_name>motor_2_joint</joint_name>
|
|
<sub_topic>servo_4</sub_topic>
|
|
<p_gain>100</p_gain>
|
|
<i_gain>0</i_gain>
|
|
<d_gain>0</d_gain>
|
|
<i_max>0.0</i_max>
|
|
<i_min>0.0</i_min>
|
|
<cmd_max>2</cmd_max>
|
|
<cmd_min>-2</cmd_min>
|
|
<err_max>0.2</err_max>
|
|
</plugin>
|
|
<plugin filename="gz-sim-multicopter-motor-model-system"
|
|
name="gz::sim::systems::MulticopterMotorModel">
|
|
<jointName>rotor_3_joint</jointName>
|
|
<linkName>rotor_3</linkName>
|
|
<turningDirection>cw</turningDirection>
|
|
<timeConstantUp>0.0125</timeConstantUp>
|
|
<timeConstantDown>0.025</timeConstantDown>
|
|
<maxRotVelocity>1500</maxRotVelocity>
|
|
<motorConstant>2e-05</motorConstant>
|
|
<momentConstant>0.06</momentConstant>
|
|
<commandSubTopic>command/motor_speed</commandSubTopic>
|
|
<motorNumber>3</motorNumber>
|
|
<rotorDragCoefficient>0.0000806428</rotorDragCoefficient>
|
|
<rollingMomentCoefficient>1e-06</rollingMomentCoefficient>
|
|
<rotorVelocitySlowdownSim>20</rotorVelocitySlowdownSim>
|
|
<motorType>velocity</motorType>
|
|
</plugin>
|
|
<static>0</static>
|
|
</model>
|
|
</sdf>
|
|
|