kdl_parser/urdf/mainpage.dox

210 lines
5.4 KiB
Plaintext

/**
\mainpage
\htmlinclude manifest.html
\b robot_model is ...
<!--
In addition to providing an overview of your package,
this is the section where the specification and design/architecture
should be detailed. While the original specification may be done on the
wiki, it should be transferred here once your package starts to take shape.
You can then link to this documentation page from the Wiki.
-->
\li RobotModel is a class containing robot model data structure.
\li Below is an example Robot Description Describing a Parent Link "P", a Child Link "C", and a Joint "J"
\li OLD URDF:
@verbatim
<link name="C">
<inertial>
<mass value="10"/>
<origin xyz="0 0 0" rpy="0 0 0"/>
<inertia ixx="1" ixy="0" ixz="0" iyy="1" iyz="0" izz="1"/>
</inertial>
<visual>
<origin xyz="0 0 0" rpy="0 0 0"/>
<geometry>
<box size="1 1 1"/>
</geometry>
</visual>
<collision>
<origin xyz="0 0 0" rpy="0 0 0"/>
<geometry>
<box size="1.01 1.01 1.01"/>
</geometry>
</collision>
<parent name="P"/> <!-- name of the parent link. in new RobotModel, this is in <link><joint>, not here -->
<!-- <origin> is the transform from parent Link to this Joint in parent Link frame -->
<origin xyz="0 0 0" rpy="0 0 0"/> <!-- in new RobotModel, this is in <joint><parent>, not here -->
<joint name="J" type="revolute">
<!-- joint properties -->
<axis xyz="0 1 0"/>
<joint_properties damping="1" friction="0"/>
<limit min="0" max="1" effort="1000" velocity="1"/>
<!-- OPTIONAL: transform from this Joint in child Link frame to child Link (equivalent to <child> in new RobotModel) -->
<anchor xyz="0 0 0"/>
</joint>
</link>
@endverbatim
\li NEW URDF XML that corresponds to the current RobotModel data structure:
@verbatim
<joint name="J" type="revolute">
<dynamics damping="1" friction="0"/>
<limit lower="0.9" upper="2.1" effort="1000" velocity="1"/>
<safety_controller soft_lower_limit="0.7" soft_upper_limit="2.1" k_position="1" k_velocity="1" />
<calibration reference_position="0.7" />
<mimic joint="J100" offset="0" multiplier="0.7" />
<!-- origin: origin of the joint in the parent frame -->
<!-- child link frame is the joint frame -->
<!-- axis is in the joint frame -->
<origin xyz="0 0 0" rpy="0 0 0"/>
<axis xyz="0 1 0"/>
<parent link="P"/>
<child link="C"/>
</joint>
<link name="C">
<inertial>
<mass value="10"/>
<origin xyz="0 0 0" rpy="0 0 0"/>
<inertia ixx="1" ixy="0" ixz="0" iyy="1" iyz="0" izz="1"/>
</inertial>
<visual>
<origin xyz="0 0 0" rpy="0 0 0"/>
<geometry>
<box size="1 1 1"/>
</geometry>
<material name="Green"/>
</visual>
<collision>
<origin xyz="0 0 0" rpy="0 0 0"/>
<geometry>
<box size="1.01 1.01 1.01"/>
</geometry>
<contact_coefficient mu="0" resitution="0" k_p="0" k_d="0" />
</collision>
</link>
<material name="Green">
<texture filename="...texture file..." />
<!--color rgb="255 255 255" /-->
</material>
@endverbatim
\section codeapi Code API
<!--
Provide links to specific auto-generated API documentation within your
package that is of particular interest to a reader. Doxygen will
document pretty much every part of your code, so do your best here to
point the reader to the actual API.
If your codebase is fairly large or has different sets of APIs, you
should use the doxygen 'group' tag to keep these APIs together. For
example, the roscpp documentation has 'libros' group.
-->
\section rosapi ROS API
<!--
Names are very important in ROS because they can be remapped on the
command-line, so it is VERY IMPORTANT THAT YOU LIST NAMES AS THEY
APPEAR IN THE CODE. You should list names of every topic, service and
parameter used in your code. There is a template below that you can
use to document each node separately.
List of nodes:
- \b node_name1
- \b node_name2
-->
<!-- START: copy from here to 'END' for each node
<hr>
\subsection node_name node_name
node_name does (provide a basic description of your node)
\subsubsection Usage
\verbatim
$ node_type1 [standard ROS args]
\endverbatim
\par Example
\verbatim
$ node_type1
\endverbatim
\subsubsection topics ROS topics
Subscribes to:
- \b "in": [std_msgs/FooType] description of in
Publishes to:
- \b "out": [std_msgs/FooType] description of out
\subsubsection parameters ROS parameters
Reads the following parameters from the parameter server
- \b "~param_name" : \b [type] description of param_name
- \b "~my_param" : \b [string] description of my_param
Sets the following parameters on the parameter server
- \b "~param_name" : \b [type] description of param_name
\subsubsection services ROS services
- \b "foo_service": [std_srvs/FooType] description of foo_service
END: copy for each node -->
<!-- START: Uncomment if you have any command-line tools
\section commandline Command-line tools
This section is a catch-all for any additional tools that your package
provides or uses that may be of use to the reader. For example:
- tools/scripts (e.g. rospack, roscd)
- roslaunch .launch files
- xmlparam files
\subsection script_name script_name
Description of what this script/file does.
\subsubsection Usage
\verbatim
$ ./script_name [args]
\endverbatim
\par Example
\verbatim
$ ./script_name foo bar
\endverbatim
END: Command-Line Tools Section -->
*/