Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
<?xml version='1.0'?>
<sdf version='1.4'>
<model name='sjtu_drone'>
<plugin name='simple_drone' filename='libplugin_drone.so'>
<bodyName>base_link</bodyName>
<imuTopic>/drone/imu</imuTopic>
<rollpitchProportionalGain>10.0</rollpitchProportionalGain>
<rollpitchDifferentialGain>5.0</rollpitchDifferentialGain>
<rollpitchLimit>0.5</rollpitchLimit>
<yawProportionalGain>2.0</yawProportionalGain>
<yawDifferentialGain>1.0</yawDifferentialGain>
<yawLimit>1.5</yawLimit>
<velocityXYProportionalGain>5.0</velocityXYProportionalGain>
<velocityXYDifferentialGain>2.3</velocityXYDifferentialGain>
<velocityXYLimit>2</velocityXYLimit>
<velocityZProportionalGain>5.0</velocityZProportionalGain>
<velocityZDifferentialGain>1.0</velocityZDifferentialGain>
<velocityZLimit>-1</velocityZLimit>
<positionXYProportionalGain>1.1</positionXYProportionalGain>
<positionXYDifferentialGain>0.0</positionXYDifferentialGain>
<positionXYIntegralGain>0.0</positionXYIntegralGain>
<positionXYLimit>5</positionXYLimit>
<positionZProportionalGain>1.0</positionZProportionalGain>
<positionZDifferentialGain>0.2</positionZDifferentialGain>
<positionZLimit>-1</positionZLimit>
<maxForce>30</maxForce>
<motionSmallNoise>0.05</motionSmallNoise>
<motionDriftNoise>0.03</motionDriftNoise>
<motionDriftNoiseTime>5.0</motionDriftNoiseTime>
</plugin>
<!-- pose of the quadrotor in the world frame -->
<pose>0 0 0.04 0 0 0</pose>
<link name='base_link'>
<inertial>
<mass>1.477</mass>
<pose>0 0 0 0 0 0</pose>
<inertia>
<ixx>0.1152</ixx>
<ixy>0</ixy>
<ixz>0</ixz>
<iyy>0.1152</iyy>
<iyz>0</iyz>
<izz>0.218</izz>
</inertia>
</inertial>
<visual name='visual'>
<geometry>
<mesh><uri>file://models/sjtu_drone/quadrotor_4.dae</uri></mesh>
</geometry>
</visual>
<collision name='collision'>
<geometry>
<mesh><uri>file://models/sjtu_drone/quadrotor_4.dae</uri></mesh>
</geometry>
</collision>
<gravity>1</gravity>
<sensor name='sensor_imu' type='imu'>
<always_on> 1 </always_on>
<update_rate> 100 </update_rate>
<pose> 0 0 0 0 0 0 </pose>
<plugin name='ros_imu' filename='libplugin_ros_imu.so'>
</plugin>
<imu>
<noise>
<type>gaussian</type>
<rate>
<mean> 0 </mean>
<stddev> 0 </stddev>
</rate>
<accel>
<mean> 0 </mean>
<stddev> 0.00 </stddev>
</accel>
</noise>
</imu>
</sensor>
</link>
<model name="realsense_camera">
<!-- <plugin name="realsense_plugin" filename="librealsense_gazebo_plugin.so"/> -->
<plugin name="realsense_camera" filename="librealsense_gazebo_plugin.so">
<!-- <prefix>realsense_camera</prefix> -->
<depthUpdateRate>60.0</depthUpdateRate>
<colorUpdateRate>60.0</colorUpdateRate>
<infraredUpdateRate>60.0</infraredUpdateRate>
<depthTopicName>depth/color/image_raw</depthTopicName>
<depthCameraInfoTopicName>depth/color/camera_info</depthCameraInfoTopicName>
<colorTopicName>color/image_raw</colorTopicName>
<colorCameraInfoTopicName>color/camera_info</colorCameraInfoTopicName>
<infrared1TopicName>infra1/image_raw</infrared1TopicName>
<infrared1CameraInfoTopicName>infra1/camera_info</infrared1CameraInfoTopicName>
<infrared2TopicName>infra2/image_raw</infrared2TopicName>
<infrared2CameraInfoTopicName>infra2/camera_info</infrared2CameraInfoTopicName>
<!-- <colorOpticalframeName>${color_optical_frame}</colorOpticalframeName>
<depthOpticalframeName>${depth_optical_frame}</depthOpticalframeName>
<infrared1OpticalframeName>${infrared1_optical_frame}</infrared1OpticalframeName>
<infrared2OpticalframeName>${infrared2_optical_frame}</infrared2OpticalframeName> -->
<rangeMinDepth>0.5</rangeMinDepth>
<rangeMaxDepth>10.0</rangeMaxDepth>
<pointCloud>true</pointCloud>
<pointCloudTopicName>depth/color/points</pointCloudTopicName>
<pointCloudCutoff>0.25</pointCloudCutoff>
<pointCloudCutoffMax>9.0</pointCloudCutoffMax>
</plugin>
<pose frame="">0 0 0.0 0 0 0</pose>
<link name="link">
<inertial>
<mass>0.0615752</mass>
<inertia>
<ixx>9.108e-05</ixx>
<ixy>0</ixy>
<ixz>0</ixz>
<iyy>2.51e-06</iyy>
<iyz>0</iyz>
<izz>8.931e-05</izz>
</inertia>
<pose frame=''>0 0 0 0 0 0</pose>
</inertial>
<self_collide>0</self_collide>
<enable_wind>0</enable_wind>
<kinematic>0</kinematic>
<gravity>1</gravity>
<visual name="visual">
<geometry>
<mesh>
<uri>model://realsense_camera/meshes/realsense.dae</uri>
</mesh>
</geometry>
</visual>
<collision name='collision'>
<laser_retro>0</laser_retro>
<max_contacts>10</max_contacts>
<pose frame=''>0 0 0 0 -0 0</pose>
<geometry>
<box>
<size>0.0078 0.130 0.0192</size>
</box>
</geometry>
<surface>
<friction>
<ode>
<mu>1</mu>
<mu2>1</mu2>
<fdir1>0 0 0</fdir1>
<slip1>0</slip1>
<slip2>0</slip2>
</ode>
<torsional>
<coefficient>1</coefficient>
<patch_radius>0</patch_radius>
<surface_radius>0</surface_radius>
<use_patch_radius>1</use_patch_radius>
<ode>
<slip>0</slip>
</ode>
</torsional>
</friction>
<bounce>
<restitution_coefficient>0</restitution_coefficient>
<threshold>1e+06</threshold>
</bounce>
<contact>
<collide_without_contact>0</collide_without_contact>
<collide_without_contact_bitmask>1</collide_without_contact_bitmask>
<collide_bitmask>1</collide_bitmask>
<ode>
<soft_cfm>0</soft_cfm>
<soft_erp>0.2</soft_erp>
<kp>1e+13</kp>
<kd>1</kd>
<max_vel>0.01</max_vel>
<min_depth>0</min_depth>
</ode>
<bullet>
<split_impulse>1</split_impulse>
<split_impulse_penetration_threshold>-0.01</split_impulse_penetration_threshold>
<soft_cfm>0</soft_cfm>
<soft_erp>0.2</soft_erp>
<kp>1e+13</kp>
<kd>1</kd>
</bullet>
</contact>
</surface>
</collision>
<sensor name="color" type="camera">
<pose frame="">0 -0.046 0.004 0 0 0</pose>
<camera name="__default__">
<horizontal_fov>1.047</horizontal_fov>
<image>
<width>640</width>
<height>480</height>
<format>RGB_INT8</format>
</image>
<clip>
<near>0.1</near>
<far>100</far>
</clip>
<noise>
<type>gaussian</type>
<mean>0.0</mean>
<stddev>0.007</stddev>
</noise>
</camera>
<always_on>1</always_on>
<update_rate>60</update_rate>
<visualize>1</visualize>
</sensor>
<sensor name="ired1" type="camera">
<pose frame="">0 -0.06 0.004 0 0 0</pose>
<camera name="__default__">
<horizontal_fov>1.047</horizontal_fov>
<image>
<width>640</width>
<height>480</height>
<format>L_INT8</format>
</image>
<clip>
<near>0.1</near>
<far>100</far>
</clip>
<noise>
<type>gaussian</type>
<mean>0.0</mean>
<stddev>0.007</stddev>
</noise>
</camera>
<always_on>1</always_on>
<update_rate>60</update_rate>
<visualize>0</visualize>
</sensor>
<sensor name="ired2" type="camera">
<pose frame="">0 0.01 0.004 0 0 0</pose>
<camera name="__default__">
<horizontal_fov>1.047</horizontal_fov>
<image>
<width>640</width>
<height>480</height>
<format>L_INT8</format>
</image>
<clip>
<near>0.1</near>
<far>100</far>
</clip>
<noise>
<type>gaussian</type>
<mean>0.0</mean>
<stddev>0.007</stddev>
</noise>
</camera>
<always_on>1</always_on>
<update_rate>60</update_rate>
<visualize>0</visualize>
</sensor>
<sensor name="depth" type="depth">
<pose frame="">0 -0.03 0.004 0 0 0</pose>
<camera name="__default__">
<horizontal_fov>1.047</horizontal_fov>
<image>
<width>640</width>
<height>480</height>
</image>
<clip>
<near>0.1</near>
<far>100</far>
</clip>
<noise>
<type>gaussian</type>
<mean>0.0</mean>
<stddev>0.007</stddev>
</noise>
</camera>
<always_on>1</always_on>
<update_rate>60</update_rate>
<visualize>0</visualize>
</sensor>
</link>
</model>
<joint name="joint_00" type="revolute">
<child>realsense_camera::link</child>
<parent>sjtu_drone::base_link</parent>
<axis>
<xyz>0 0 0.2</xyz>
<limit>
<upper>0</upper>
<lower>0</lower>
</limit>
</axis>
</joint>
</model>
</sdf>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment