Copyright (c) 2017, Stack Of Tasks development team
...
...
@@ -32,33 +32,37 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
/**
\mainpage
\section sec_intro Introduction
This package provides a link between the Stack-Of-Tasks framework and roscontrol.
It assumes that a robot has a
<a href="https://github.com/ros-controls/ros_control/search?q=hardware_interface&unscoped_q=hardware_interface">hardware_interface</a> provided by roscontrol.
It also assumes that the robot has a Device class specialized for the robot.
For instance in the passive walker yoyoman available <a href="https://github.com/Gepetto/yoyoman01_robot">here</a>, this device is
This package provides a link between the Stack-Of-Tasks framework and
provided by roscontrol. It also assumes that the robot has a Device class
specialized for the robot. For instance in the passive walker yoyoman available
<a href="https://github.com/Gepetto/yoyoman01_robot">here</a>, this device is
provided in the directory sot-yoyoman01.
In general a wrapper is needed to make this Device class usable in the robot itself, or in a simulator (Gazebo, or OpenHRP).
When an abstract interface is provided, which is the case with ros-control, a yaml file is sufficient to do the wrapping.
For two working examples you can have a look to the <a href="https://github.com/stack-of-tasks/talos_metapkg_ros_control_sot">package for the Talos robot</a>,
The interaction between the controller manager and the robot hardware is done
through a hardware interface exposing double which are either publishing sensor
information or control values.
information or control values.
The abstract interface is allowing to have a normalized way to interact with
the robot hardware.
...
...
@@ -134,8 +139,8 @@ maps of doubles are used.
The maps provide sensor information and the value of the control computed by
the SoT.
The size of double vector and the map key are computed automatically depending on the number of sensors and actuators provided
by the robot_hardware_interface.
The size of double vector and the map key are computed automatically depending
on the number of sensors and actuators provided by the robot_hardware_interface.
\section section_yamlfile Setting the YAML file.
...
...
@@ -145,12 +150,11 @@ All the parameters regarding the SoT inside roscontrol are in the namespace
/sot_controller
\endcode
\subsection subsection_setsot Setting the SoT dynamic library which contains the robot device.
\subsection subsection_setsot Setting the SoT dynamic library which contains the
robot device.
In order to control a robot, an appropriate YAML file need to be written such as:
\code{.sh}
sot_robot_param.yaml
\endcode
In order to control a robot, an appropriate YAML file need to be written such
as: \code{.sh} sot_robot_param.yaml \endcode
If its SoT device entity is located inside the following dynamic library:
\code{.sh}
...
...
@@ -163,40 +167,41 @@ Then inside the file sot_robot_param.yaml
\endcode
\subsection subsec_spec_act_state Specifying the actuated state vector
To map the joints from the URDF model to the SoT actuated state vector, it is simply done by giving the ordered list of the joints name in the URDF model.