Skip to content

Commit f11b05e

Browse files
committed
Added some docs
1 parent 4632038 commit f11b05e

File tree

3 files changed

+94
-0
lines changed

3 files changed

+94
-0
lines changed

index.rst

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
========================
2+
Controllers
3+
========================
4+
5+
`GitHub Repository <https://github.com/ros-controls/ros2_controllers>`_
6+
7+
Nomenclature
8+
-------------
9+
The ros2_control framework uses namespaces to sort controller according to the type of command interface they are using.
10+
The controllers are using `common hardware interface definitions`_.
11+
The controllers' namespaces are commanding the following command interface types:
12+
13+
- ``position_controllers``: ``hardware_interface::HW_IF_POSITION``
14+
- ``velocity_controller``: ``hardware_interface::HW_IF_VELOCITY``
15+
- ``effort_controllers``: ``hardware_interface::HW_IF_EFFORT``
16+
- ...
17+
18+
19+
Controllers
20+
--------------
21+
22+
The following standard controllers are implemented:
23+
24+
- `Joint Trajectory Controller <joint_trajectory_controller/docs/index.rst>`_ - provided a list of waypoints or target point defined with position, velocity and acceleration, the controller interpolates joint trajectories through it.
25+
- ... <the list is not complete> ...
26+
27+
28+
29+
30+
.. _common hardware interface definitions: https://github.com/ros-controls/ros2_control/blob/master/hardware_interface/include/hardware_interface/types/hardware_interface_type_values.hpp
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
# joint_trajectory_controllers package
2+
3+
The package implements controllers to interpolate joint's trajectory.
4+
5+
For detailed documentation check the `docs` folder or [ros2_control documentation](https://ros-controls.github.io/control.ros.org/).
Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
=================================
2+
Joint Trajectory Controller(s)
3+
=================================
4+
5+
The controller expects at least position feedback from the hardware.
6+
Joint velocities and accelerations are optional.
7+
Currently the controller does not internal integrate velocity from acceleration and position from velocity.
8+
Therefore if the hardware provides only acceleration or velocity states they have to be integrated in the hardware-interface implementation ot velocitiy and position to use this controllers.
9+
10+
The controller types are placed into namespaces according to their command types for the hardware (see `general introduction into controllers <../../index.rst>`_).
11+
12+
The following version of the Joint Trajectory Controller are available mapping the following interfaces:
13+
14+
- position_controllers::JointTrajectoryController
15+
- Input: position, [velocity, [acceleration]]
16+
- Output: position
17+
- position_velocity_controllers::JointTrajectoryController
18+
- Input: position, [velocity, [acceleration]]
19+
- Output: position and velocity
20+
- position_velocityy_acceleration_controllers::JointTrajectoryController
21+
- Input: position, [velocity, [acceleration]]
22+
- Output: position, velocity and acceleration
23+
.. - velocity_controllers::JointTrajectoryController
24+
.. - Input: position, [velocity, [acceleration]]
25+
.. - Output: velocity
26+
.. TODO(anyone): would it be possible to output velocty and acceleration?
27+
.. (to have an vel_acc_controllers)
28+
.. - effort_controllers::JointTrajectoryController
29+
.. - Input: position, [velocity, [acceleration]]
30+
.. - Output: effort
31+
32+
The controller uses `common hardware interface definitions`_.
33+
34+
(*Not implemented yet*) When using a pure ``velocity`` or ``effort`` controllers a command is generated using the desired state and state error using a velocity feedforward term puls a corrective PID term.
35+
36+
A yaml file for joint trajectory controllers looks something like:
37+
38+
1. Position-control hardware interface:
39+
40+
.. code-block:: yaml
41+
42+
head_controller:
43+
type: "position_controllers/JointTrajectoryController"
44+
joints:
45+
- head_1_joint
46+
- head_2_joint
47+
48+
constraints:
49+
goal_time: 0.6
50+
stopped_velocity_tolerance: 0.02
51+
head_1_joint: {trajectory: 0.05, goal: 0.02}
52+
head_2_joint: {trajectory: 0.05, goal: 0.02}
53+
stop_trajectory_duration: 0.5
54+
state_publish_rate: 25
55+
56+
57+
2. Position-control hardware interface:
58+
59+
.. code-block:: yaml

0 commit comments

Comments
 (0)