Я пытаюсь написать SDF-файл для таблицы по хоккею с шайбой, к которой позже будет добавлена модель робота, играющего в аэрохоккей. Модель, которую я начал, имеет большой блок для стола и маленькие прямоугольники для сторон (на данный момент их всего 3). В настоящее время верхняя и правая стороны падают со стола, когда появляются в Беседке. Я не уверен почему. Левая сторона не двигается. Я основал массу сторон на плотности алюминия и объеме каждой боковой части (все в метрах и кг). У меня есть файл SDF в папке .gazebo, который поставляется с ROS 1.0. Любая помощь будет оценена!
<?xml version="1.0" ?>
<sdf version="1.5">
<model name="table_sdf">
<joint name="worldJoint" type="fixed">
<parent link="world"/>
<child link="base_link"/>
</joint>
<pose>0 0 0 0 0 0</pose>
<self_collide>true</self_collide>
<link name="base_link">
<pose>0 0 0 0 0 0</pose>
<inertial>
<mass>1065.54</mass>
<inertia>
<ixx>1</ixx>
<iyy>1</iyy>
<izz>1</izz>
<ixy>0.0</ixy>
<ixz>0.0</ixz>
<iyz>0.0</iyz>
</inertia>
</inertial>
<collision name="tableCollision">
<geometry>
<box>
<size>1.275 2.27 .869</size>
</box>
</geometry>
<surface>
<contact>
<ode>
<max_vel>0</max_vel>
<min_depth>0.001</min_depth>
</ode>
</contact>
</surface>
</collision>
<visual name="tableVisual">
<geometry>
<box>
<size>1.275 2.27 .869</size>
</box>
</geometry>
<material>
<script>
<uri>file://media/materials/scripts/gazebo.material</uri>
<name>Gazebo/Wood</name>
</script>
</material>
</visual>
</link>
<joint name="LLJ" type="fixed">
<pose>-.553805 0 .452 0 0 0</pose>
<parent link="base_link"/>
<child link="left_side"/>
</joint>
<self_collide>true</self_collide>
<link name="left_side">
<pose>-.553805 0 .452 0 0 0</pose>
<inertial>
<mass>1.287</mass>
<inertia>
<ixx>1</ixx>
<iyy>1</iyy>
<izz>1</izz>
<ixy>0.0</ixy>
<ixz>0.0</ixz>
<iyz>0.0</iyz>
</inertia>
</inertial>
<collision name="leftSideCollision">
<geometry>
<box>
<size>.00649 2.0978 .03501</size>
</box>
</geometry>
<surface>
<contact>
<ode>
<max_vel>0</max_vel>
<min_depth>0.001</min_depth>
</ode>
</contact>
</surface>
</collision>
<visual name="leftSideVisual">
<geometry>
<box>
<size>.00649 2.0978 .03501</size>
</box>
</geometry>
<material>
<script>
<uri>file://media/materials/scripts/gazebo.material</uri>
<name>Gazebo/Wood</name>
</script>
</material>
</visual>
</link>
<joint name="RLJ" type="fixed">
<pose>.553805 0 .452 0 0 0</pose>
<parent link="base_link"/>
<child link="right_side"/>
</joint>
<self_collide>true</self_collide>
<link name="right_side">
<pose>.553805 0 .452 0 0 0</pose>
<inertial>
<mass>1.287</mass>
<inertia>
<ixx>1</ixx>
<iyy>1</iyy>
<izz>1</izz>
<ixy>0.0</ixy>
<ixz>0.0</ixz>
<iyz>0.0</iyz>
</inertia>
</inertial>
<collision name="rightSideCollision">
<geometry>
<box>
<size>.00649 2.0978 .03501</size>
</box>
</geometry>
</collision>
<visual name="rightSideVisual">
<geometry>
<box>
<size>.00649 2.0978 .03501</size>
</box>
</geometry>
<surface>
<contact>
<ode>
<max_vel>0</max_vel>
<min_depth>0.001</min_depth>
</ode>
</contact>
</surface>
<material>
<script>
<uri>file://media/materials/scripts/gazebo.material</uri>
<name>Gazebo/Wood</name>
</script>
</material>
</visual>
</link>
<joint name="topJ" type="fixed">
<pose>0 1.05131 .452 0 0 0</pose>
<parent link="base_link"/>
<child link="top_side"/>
</joint>
<self_collide>true</self_collide>
<link name="top_side">
<pose>0 1.05131 .452 0 0 0</pose>
<inertial>
<mass>.666145</mass>
<inertia>
<ixx>1</ixx>
<iyy>1</iyy>
<izz>1</izz>
<ixy>0.0</ixy>
<ixz>0.0</ixz>
<iyz>0.0</iyz>
</inertia>
</inertial>
<collision name="topSideCollision">
<geometry>
<box>
<size>1.085846 .00649 .03501</size>
</box>
</geometry>
</collision>
<visual name="topSideVisual">
<geometry>
<box>
<size>1.085846 .00649 .03501</size>
</box>
</geometry>
<surface>
<contact>
<ode>
<max_vel>0</max_vel>
<min_depth>0.001</min_depth>
</ode>
</contact>
</surface>
<material>
<script>
<uri>file://media/materials/scripts/gazebo.material</uri>
<name>Gazebo/Wood</name>
</script>
</material>
</visual>
</link>
</model>
</sdf>