-
-
Save chapulina/976d15070d9f41ef90973a2607431c13 to your computer and use it in GitHub Desktop.
vehicle_caster_SDF1.7
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?xml version="1.0" ?> | |
<!-- | |
Try inserting a model: | |
ign service -s /world/empty/create \ | |
--reqtype ignition.msgs.EntityFactory \ | |
--reptype ignition.msgs.Boolean \ | |
--timeout 300 \ | |
--req 'sdf: '\ | |
'"<?xml version=\"1.0\" ?>'\ | |
'<sdf version=\"1.6\">'\ | |
'<model name=\"spawned_model\">'\ | |
'<link name=\"link\">'\ | |
'<visual name=\"visual\">'\ | |
'<geometry><sphere><radius>1.0</radius></sphere></geometry>'\ | |
'</visual>'\ | |
'<collision name=\"visual\">'\ | |
'<geometry><sphere><radius>1.0</radius></sphere></geometry>'\ | |
'</collision>'\ | |
'</link>'\ | |
'</model>'\ | |
'</sdf>" '\ | |
'pose: {position: {z: 10}} '\ | |
'name: "new_name" '\ | |
'allow_renaming: true' | |
Then try deleting it: | |
ign service -s /world/empty/remove \ | |
--reqtype ignition.msgs.Entity \ | |
--reptype ignition.msgs.Boolean \ | |
--timeout 300 \ | |
--req 'name: "new_name" type: MODEL' | |
Try inserting a light: | |
ign service -s /world/empty/create --reqtype ignition.msgs.EntityFactory --reptype ignition.msgs.Boolean --timeout 300 --req 'sdf: '\ | |
'"<?xml version=\"1.0\" ?>'\ | |
'<sdf version=\"1.6\">'\ | |
'<light name=\"spawned_light\" type=\"directional\">'\ | |
'<pose>0 0 10 0.1 1.0 0</pose>'\ | |
'</light>'\ | |
'</sdf>"' | |
Then try deleting it: | |
ign service -s /world/empty/remove \ | |
--reqtype ignition.msgs.Entity \ | |
--reptype ignition.msgs.Boolean \ | |
--timeout 300 \ | |
--req 'name: "spawned_light" type: LIGHT' | |
--> | |
<sdf version="1.6"> | |
<world name="empty"> | |
<physics name="1ms" type="ignored"> | |
<max_step_size>0.001</max_step_size> | |
<real_time_factor>1.0</real_time_factor> | |
</physics> | |
<plugin | |
filename="libignition-gazebo-physics-system.so" | |
name="ignition::gazebo::systems::Physics"> | |
</plugin> | |
<plugin | |
filename="libignition-gazebo-user-commands-system.so" | |
name="ignition::gazebo::systems::UserCommands"> | |
</plugin> | |
<plugin | |
filename="libignition-gazebo-scene-broadcaster-system.so" | |
name="ignition::gazebo::systems::SceneBroadcaster"> | |
</plugin> | |
<plugin | |
filename="libignition-gazebo-contact-system.so" | |
name="ignition::gazebo::systems::Contact"> | |
</plugin> | |
<gui fullscreen="0"> | |
<!-- 3D scene --> | |
<plugin filename="GzScene3D" name="3D View"> | |
<ignition-gui> | |
<title>3D View</title> | |
<property type="bool" key="showTitleBar">false</property> | |
<property type="string" key="state">docked</property> | |
</ignition-gui> | |
<engine>ogre2</engine> | |
<scene>scene</scene> | |
<ambient_light>0.4 0.4 0.4</ambient_light> | |
<background_color>0.8 0.8 0.8</background_color> | |
</plugin> | |
<!-- World control --> | |
<plugin filename="WorldControl" name="World control"> | |
<ignition-gui> | |
<title>World control</title> | |
<property type="bool" key="showTitleBar">false</property> | |
<property type="bool" key="resizable">false</property> | |
<property type="double" key="height">72</property> | |
<property type="double" key="width">121</property> | |
<property type="double" key="z">1</property> | |
<property type="string" key="state">floating</property> | |
<anchors target="3D View"> | |
<line own="left" target="left"/> | |
<line own="bottom" target="bottom"/> | |
</anchors> | |
</ignition-gui> | |
<play_pause>true</play_pause> | |
<step>true</step> | |
<start_paused>true</start_paused> | |
<service>/world/empty/control</service> | |
<stats_topic>/world/empty/stats</stats_topic> | |
</plugin> | |
<!-- World statistics --> | |
<plugin filename="WorldStats" name="World stats"> | |
<ignition-gui> | |
<title>World stats</title> | |
<property type="bool" key="showTitleBar">false</property> | |
<property type="bool" key="resizable">false</property> | |
<property type="double" key="height">110</property> | |
<property type="double" key="width">290</property> | |
<property type="double" key="z">1</property> | |
<property type="string" key="state">floating</property> | |
<anchors target="3D View"> | |
<line own="right" target="right"/> | |
<line own="bottom" target="bottom"/> | |
</anchors> | |
</ignition-gui> | |
<sim_time>true</sim_time> | |
<real_time>true</real_time> | |
<real_time_factor>true</real_time_factor> | |
<iterations>true</iterations> | |
<topic>/world/empty/stats</topic> | |
</plugin> | |
<!-- Entity tree --> | |
<plugin filename="EntityTree" name="Entity tree"> | |
</plugin> | |
</gui> | |
<light type="directional" name="sun"> | |
<cast_shadows>true</cast_shadows> | |
<pose>0 0 10 0 0 0</pose> | |
<diffuse>0.8 0.8 0.8 1</diffuse> | |
<specular>0.2 0.2 0.2 1</specular> | |
<attenuation> | |
<range>1000</range> | |
<constant>0.9</constant> | |
<linear>0.01</linear> | |
<quadratic>0.001</quadratic> | |
</attenuation> | |
<direction>-0.5 0.1 -0.9</direction> | |
</light> | |
<model name="ground_plane"> | |
<static>true</static> | |
<link name="link"> | |
<collision name="collision"> | |
<geometry> | |
<plane> | |
<normal>0 0 1</normal> | |
</plane> | |
</geometry> | |
</collision> | |
<visual name="visual"> | |
<geometry> | |
<plane> | |
<normal>0 0 1</normal> | |
<size>100 100</size> | |
</plane> | |
</geometry> | |
<material> | |
<ambient>0.8 0.8 0.8 1</ambient> | |
<diffuse>0.8 0.8 0.8 1</diffuse> | |
<specular>0.8 0.8 0.8 1</specular> | |
</material> | |
</visual> | |
</link> | |
</model> | |
<model name='vehicle_blue' canonical_link='chassis'> | |
<!--pose relative_to="">0 0 0 0 0 0</pose--> <!--the pose is relative to the world by default--> | |
<link name='chassis'> <!--todo add canonical link, remove pose--> | |
<pose relative_to='__model__'>0.5 0 0.4 0 0 0</pose> <!--question: we can't refer to world due to scope--> | |
<inertial> <!--inertial properties of the link mass, inertia matix--> | |
<mass>1.14395</mass> | |
<inertia> | |
<ixx>0.126164</ixx> | |
<ixy>0</ixy> | |
<ixz>0</ixz> | |
<iyy>0.416519</iyy> | |
<iyz>0</iyz> | |
<izz>0.481014</izz> | |
</inertia> | |
</inertial> | |
<visual name='visual'> | |
<geometry> | |
<box> | |
<size>2.0 1 0.5</size> <!--question: this size is in meter--> | |
</box> | |
</geometry> | |
<!--let's add color to our link--> | |
<material> | |
<ambient>0.0 0.0 1.0 1</ambient> | |
<diffuse>0.0 0.0 1.0 1</diffuse> | |
<specular>0.0 0.0 1.0 1</specular> | |
</material> | |
</visual> | |
<collision name='collision'> <!--todo: describe why we need the collision--> | |
<geometry> | |
<box> | |
<size>2.0 1 0.5</size> | |
</box> | |
</geometry> | |
</collision> | |
</link> | |
<!--let's build the left wheel--> | |
<link name='left_wheel'> <!--todo: change the inertia matrix--> | |
<pose relative_to='chassis'>-0.5 0.6 0 -1.5707 0 0</pose> <!--angles are in radian--> | |
<inertial> | |
<mass>2</mass> | |
<inertia> | |
<ixx>0.145833</ixx> | |
<ixy>0</ixy> | |
<ixz>0</ixz> | |
<iyy>0.145833</iyy> | |
<iyz>0</iyz> | |
<izz>0.125</izz> | |
</inertia> | |
</inertial> | |
<visual name='visual'> | |
<geometry> | |
<cylinder> | |
<radius>0.4</radius> <!--todo edit the collision too--> | |
<length>0.2</length> | |
</cylinder> | |
</geometry> | |
<material> | |
<ambient>1.0 0.0 0.0 1</ambient> | |
<diffuse>1.0 0.0 0.0 1</diffuse> | |
<specular>1.0 0.0 0.0 1</specular> | |
</material> | |
</visual> | |
<collision name='collision'> | |
<geometry> | |
<cylinder> | |
<radius>0.4</radius> | |
<length>0.2</length> | |
</cylinder> | |
</geometry> | |
</collision> | |
</link> | |
<!--copy and paste for right wheel but change position--> | |
<link name='right_wheel'> <!--todo: change the inertia matrix--> | |
<pose relative_to="chassis">-0.5 -0.6 0 -1.5707 0 0</pose> <!--angles are in radian--> | |
<inertial> | |
<mass>2</mass> | |
<inertia> | |
<ixx>0.145833</ixx> | |
<ixy>0</ixy> | |
<ixz>0</ixz> | |
<iyy>0.145833</iyy> | |
<iyz>0</iyz> | |
<izz>0.125</izz> | |
</inertia> | |
</inertial> | |
<visual name='visual'> | |
<geometry> | |
<cylinder> | |
<radius>0.4</radius> | |
<length>0.2</length> | |
</cylinder> | |
</geometry> | |
<material> | |
<ambient>1.0 0.0 0.0 1</ambient> | |
<diffuse>1.0 0.0 0.0 1</diffuse> | |
<specular>1.0 0.0 0.0 1</specular> | |
</material> | |
</visual> | |
<collision name='collision'> | |
<geometry> | |
<cylinder> | |
<radius>0.4</radius> | |
<length>0.2</length> | |
</cylinder> | |
</geometry> | |
</collision> | |
</link> | |
<!--caster wheel--> | |
<link name='caster'> | |
<pose relative_to='F'/> <!--todo: define a frame and use in the visual and collision--> | |
<inertial> | |
<mass>1</mass> | |
<inertia> | |
<ixx>0.1</ixx> | |
<ixy>0</ixy> | |
<ixz>0</ixz> | |
<iyy>0.1</iyy> | |
<iyz>0</iyz> | |
<izz>0.1</izz> | |
</inertia> | |
</inertial> | |
<visual name='visual'> | |
<geometry> | |
<sphere> | |
<radius>0.2</radius> | |
</sphere> | |
</geometry> | |
<material> | |
<ambient>0.0 1 0.0 1</ambient> | |
<diffuse>0.0 1 0.0 1 1</diffuse> | |
<specular>0.0 1 0.0 1</specular> | |
</material> | |
</visual> | |
<collision name='collision'> | |
<geometry> | |
<sphere> | |
<radius>0.2</radius> | |
</sphere> | |
</geometry> | |
</collision> | |
</link> | |
<frame name="F" attached_to='chassis'> | |
<pose>0.8 0 -0.2 0 0 0</pose> | |
</frame> | |
<!--connecting these links together using joints--> | |
<joint name='left_wheel_joint' type='revolute'> | |
<pose relative_to='left_wheel'/> | |
<parent>chassis</parent> | |
<child>left_wheel</child> | |
<axis> | |
<xyz expressed_in='__model__'>0 1 0</xyz> | |
<limit> | |
<lower>-1.79769e+308</lower> | |
<upper>1.79769e+308</upper> | |
</limit> | |
</axis> | |
</joint> | |
<joint name='right_wheel_joint' type='revolute'> | |
<pose relative_to='right_wheel'/> | |
<parent>chassis</parent> | |
<child>right_wheel</child> | |
<axis> | |
<xyz expressed_in='__model__'>0 1 0</xyz> | |
<limit> | |
<lower>-1.79769e+308</lower> | |
<upper>1.79769e+308</upper> | |
</limit> | |
</axis> | |
</joint> | |
<!--different type of joints ball joint--> <!--defult value is the child--> | |
<joint name='caster_wheel' type='ball'> | |
<parent>chassis</parent> | |
<child>caster</child> | |
</joint> | |
</model> | |
</world> | |
</sdf> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment