210 lines
5.4 KiB
Plaintext
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 -->
|
|
|
|
*/
|