Package rst.dynamics

In the field of physics, the study of the causes of motion and changes in motion is dynamics. In other words the study of forces and why objects are in motion. Dynamics includes the study of the effect of torques on motion.

Messages

digraph message_graph { fontname="Arial"; fontsize=11; stylesheet="../_static/graphs.css"; node [fontsize=11,fontname="Arial"] edge [fontsize=11,fontname="Arial"] "13" [label=<<TABLE BORDER="0"><TR><TD COLSPAN="2" HREF="../generated/stable/package-rst-dynamics.html#rst.dynamics.JointTorquesCollection" TITLE="Structure rst.dynamics.JointTorquesCollection" TARGET="_parent"><TABLE BORDER="0"><TR><TD ALIGN="right"><IMG SRC="../_static/message.svg"></IMG></TD><TD ALIGN="left">JointTorquesCollection</TD></TR></TABLE></TD></TR><TR><TD ALIGN="left" HREF="../generated/stable/package-rst-dynamics.html#rst.dynamics.JointTorques" TITLE="Structure rst.dynamics.JointTorques" TARGET="_parent">JointTorques</TD><TD ALIGN="left" HREF="../generated/stable/package-rst-dynamics.html#rst.dynamics.JointTorquesCollection.element" TITLE="Field rst.dynamics.JointTorquesCollection.element" TARGET="_parent" PORT="element">element</TD></TR></TABLE>>,shape=box,style=filled,fillcolor="white"]; "14" [label=<<TABLE BORDER="0"><TR><TD COLSPAN="2" HREF="../generated/stable/package-rst-dynamics.html#rst.dynamics.JointTorques" TITLE="Structure rst.dynamics.JointTorques" TARGET="_parent"><TABLE BORDER="0"><TR><TD ALIGN="right"><IMG SRC="../_static/message.svg"></IMG></TD><TD ALIGN="left">JointTorques</TD></TR></TABLE></TD></TR><TR><TD ALIGN="left" HREF="../generated/stable/package-__rosetta-FLOAT32.html#FLOAT32" TITLE="Fundamental FLOAT32" TARGET="_parent">FLOAT32</TD><TD ALIGN="left" HREF="../generated/stable/package-rst-dynamics.html#rst.dynamics.JointTorques.torques" TITLE="Field rst.dynamics.JointTorques.torques" TARGET="_parent" PORT="torques">torques</TD></TR></TABLE>>,shape=box,style=filled,fillcolor="white"]; "12" [label=<<TABLE BORDER="0"><TR><TD COLSPAN="2" HREF="../generated/stable/package-rst-dynamics.html#rst.dynamics.TorquesCollection" TITLE="Structure rst.dynamics.TorquesCollection" TARGET="_parent"><TABLE BORDER="0"><TR><TD ALIGN="right"><IMG SRC="../_static/message.svg"></IMG></TD><TD ALIGN="left">TorquesCollection</TD></TR></TABLE></TD></TR><TR><TD ALIGN="left" HREF="../generated/stable/package-rst-dynamics.html#rst.dynamics.Torques" TITLE="Structure rst.dynamics.Torques" TARGET="_parent">Torques</TD><TD ALIGN="left" HREF="../generated/stable/package-rst-dynamics.html#rst.dynamics.TorquesCollection.element" TITLE="Field rst.dynamics.TorquesCollection.element" TARGET="_parent" PORT="element">element</TD></TR></TABLE>>,shape=box,style=filled,fillcolor="white"]; "10" [label=<<TABLE BORDER="0"><TR><TD COLSPAN="2" HREF="../generated/stable/package-rst-dynamics.html#rst.dynamics.PressuresCollection" TITLE="Structure rst.dynamics.PressuresCollection" TARGET="_parent"><TABLE BORDER="0"><TR><TD ALIGN="right"><IMG SRC="../_static/message.svg"></IMG></TD><TD ALIGN="left">PressuresCollection</TD></TR></TABLE></TD></TR><TR><TD ALIGN="left" HREF="../generated/stable/package-rst-dynamics.html#rst.dynamics.Pressures" TITLE="Structure rst.dynamics.Pressures" TARGET="_parent">Pressures</TD><TD ALIGN="left" HREF="../generated/stable/package-rst-dynamics.html#rst.dynamics.PressuresCollection.element" TITLE="Field rst.dynamics.PressuresCollection.element" TARGET="_parent" PORT="element">element</TD></TR></TABLE>>,shape=box,style=filled,fillcolor="white"]; "11" [label=<<TABLE BORDER="0"><TR><TD COLSPAN="2" HREF="../generated/stable/package-rst-dynamics.html#rst.dynamics.Pressures" TITLE="Structure rst.dynamics.Pressures" TARGET="_parent"><TABLE BORDER="0"><TR><TD ALIGN="right"><IMG SRC="../_static/message.svg"></IMG></TD><TD ALIGN="left">Pressures</TD></TR></TABLE></TD></TR><TR><TD ALIGN="left" HREF="../generated/stable/package-__rosetta-FLOAT64.html#FLOAT64" TITLE="Fundamental FLOAT64" TARGET="_parent">FLOAT64</TD><TD ALIGN="left" HREF="../generated/stable/package-rst-dynamics.html#rst.dynamics.Pressures.pressures" TITLE="Field rst.dynamics.Pressures.pressures" TARGET="_parent" PORT="pressures">pressures</TD></TR></TABLE>>,shape=box,style=filled,fillcolor="white"]; "7" [label=<<TABLE BORDER="0"><TR><TD COLSPAN="2" HREF="../generated/stable/package-rst-dynamics.html#rst.dynamics.WrenchCollection" TITLE="Structure rst.dynamics.WrenchCollection" TARGET="_parent"><TABLE BORDER="0"><TR><TD ALIGN="right"><IMG SRC="../_static/message.svg"></IMG></TD><TD ALIGN="left">WrenchCollection</TD></TR></TABLE></TD></TR><TR><TD ALIGN="left" HREF="../generated/stable/package-rst-dynamics.html#rst.dynamics.Wrench" TITLE="Structure rst.dynamics.Wrench" TARGET="_parent">Wrench</TD><TD ALIGN="left" HREF="../generated/stable/package-rst-dynamics.html#rst.dynamics.WrenchCollection.element" TITLE="Field rst.dynamics.WrenchCollection.element" TARGET="_parent" PORT="element">element</TD></TR></TABLE>>,shape=box,style=filled,fillcolor="white"]; "8" [label=<<TABLE BORDER="0"><TR><TD COLSPAN="2" HREF="../generated/stable/package-rst-dynamics.html#rst.dynamics.Wrench" TITLE="Structure rst.dynamics.Wrench" TARGET="_parent"><TABLE BORDER="0"><TR><TD ALIGN="right"><IMG SRC="../_static/message.svg"></IMG></TD><TD ALIGN="left">Wrench</TD></TR></TABLE></TD></TR><TR><TD ALIGN="left" HREF="../generated/stable/package-rst-dynamics.html#rst.dynamics.Forces" TITLE="Structure rst.dynamics.Forces" TARGET="_parent">Forces</TD><TD ALIGN="left" HREF="../generated/stable/package-rst-dynamics.html#rst.dynamics.Wrench.forces" TITLE="Field rst.dynamics.Wrench.forces" TARGET="_parent" PORT="forces">forces</TD></TR><TR><TD ALIGN="left" HREF="../generated/stable/package-rst-dynamics.html#rst.dynamics.Torques" TITLE="Structure rst.dynamics.Torques" TARGET="_parent">Torques</TD><TD ALIGN="left" HREF="../generated/stable/package-rst-dynamics.html#rst.dynamics.Wrench.torques" TITLE="Field rst.dynamics.Wrench.torques" TARGET="_parent" PORT="torques">torques</TD></TR></TABLE>>,shape=box,style=filled,fillcolor="white"]; "9" [label=<<TABLE BORDER="0"><TR><TD COLSPAN="2" HREF="../generated/stable/package-rst-dynamics.html#rst.dynamics.Torques" TITLE="Structure rst.dynamics.Torques" TARGET="_parent"><TABLE BORDER="0"><TR><TD ALIGN="right"><IMG SRC="../_static/message.svg"></IMG></TD><TD ALIGN="left">Torques</TD></TR></TABLE></TD></TR><TR><TD ALIGN="left" HREF="../generated/stable/package-__rosetta-FLOAT32.html#FLOAT32" TITLE="Fundamental FLOAT32" TARGET="_parent">FLOAT32</TD><TD ALIGN="left" HREF="../generated/stable/package-rst-dynamics.html#rst.dynamics.Torques.a" TITLE="Field rst.dynamics.Torques.a" TARGET="_parent" PORT="a">a</TD></TR><TR><TD ALIGN="left" HREF="../generated/stable/package-__rosetta-FLOAT32.html#FLOAT32" TITLE="Fundamental FLOAT32" TARGET="_parent">FLOAT32</TD><TD ALIGN="left" HREF="../generated/stable/package-rst-dynamics.html#rst.dynamics.Torques.b" TITLE="Field rst.dynamics.Torques.b" TARGET="_parent" PORT="b">b</TD></TR><TR><TD ALIGN="left" HREF="../generated/stable/package-__rosetta-FLOAT32.html#FLOAT32" TITLE="Fundamental FLOAT32" TARGET="_parent">FLOAT32</TD><TD ALIGN="left" HREF="../generated/stable/package-rst-dynamics.html#rst.dynamics.Torques.c" TITLE="Field rst.dynamics.Torques.c" TARGET="_parent" PORT="c">c</TD></TR></TABLE>>,shape=box,style=filled,fillcolor="white"]; "5" [label=<<TABLE BORDER="0"><TR><TD COLSPAN="2" HREF="../generated/stable/package-rst-dynamics.html#rst.dynamics.ForcesCollection" TITLE="Structure rst.dynamics.ForcesCollection" TARGET="_parent"><TABLE BORDER="0"><TR><TD ALIGN="right"><IMG SRC="../_static/message.svg"></IMG></TD><TD ALIGN="left">ForcesCollection</TD></TR></TABLE></TD></TR><TR><TD ALIGN="left" HREF="../generated/stable/package-rst-dynamics.html#rst.dynamics.Forces" TITLE="Structure rst.dynamics.Forces" TARGET="_parent">Forces</TD><TD ALIGN="left" HREF="../generated/stable/package-rst-dynamics.html#rst.dynamics.ForcesCollection.element" TITLE="Field rst.dynamics.ForcesCollection.element" TARGET="_parent" PORT="element">element</TD></TR></TABLE>>,shape=box,style=filled,fillcolor="white"]; "6" [label=<<TABLE BORDER="0"><TR><TD COLSPAN="2" HREF="../generated/stable/package-rst-dynamics.html#rst.dynamics.Forces" TITLE="Structure rst.dynamics.Forces" TARGET="_parent"><TABLE BORDER="0"><TR><TD ALIGN="right"><IMG SRC="../_static/message.svg"></IMG></TD><TD ALIGN="left">Forces</TD></TR></TABLE></TD></TR><TR><TD ALIGN="left" HREF="../generated/stable/package-__rosetta-FLOAT32.html#FLOAT32" TITLE="Fundamental FLOAT32" TARGET="_parent">FLOAT32</TD><TD ALIGN="left" HREF="../generated/stable/package-rst-dynamics.html#rst.dynamics.Forces.x" TITLE="Field rst.dynamics.Forces.x" TARGET="_parent" PORT="x">x</TD></TR><TR><TD ALIGN="left" HREF="../generated/stable/package-__rosetta-FLOAT32.html#FLOAT32" TITLE="Fundamental FLOAT32" TARGET="_parent">FLOAT32</TD><TD ALIGN="left" HREF="../generated/stable/package-rst-dynamics.html#rst.dynamics.Forces.y" TITLE="Field rst.dynamics.Forces.y" TARGET="_parent" PORT="y">y</TD></TR><TR><TD ALIGN="left" HREF="../generated/stable/package-__rosetta-FLOAT32.html#FLOAT32" TITLE="Fundamental FLOAT32" TARGET="_parent">FLOAT32</TD><TD ALIGN="left" HREF="../generated/stable/package-rst-dynamics.html#rst.dynamics.Forces.z" TITLE="Field rst.dynamics.Forces.z" TARGET="_parent" PORT="z">z</TD></TR></TABLE>>,shape=box,style=filled,fillcolor="white"]; "3" [label=<<TABLE BORDER="0"><TR><TD COLSPAN="2" HREF="../generated/stable/package-rst-dynamics.html#rst.dynamics.MotorCurrentsCollection" TITLE="Structure rst.dynamics.MotorCurrentsCollection" TARGET="_parent"><TABLE BORDER="0"><TR><TD ALIGN="right"><IMG SRC="../_static/message.svg"></IMG></TD><TD ALIGN="left">MotorCurrentsCollection</TD></TR></TABLE></TD></TR><TR><TD ALIGN="left" HREF="../generated/stable/package-rst-dynamics.html#rst.dynamics.MotorCurrents" TITLE="Structure rst.dynamics.MotorCurrents" TARGET="_parent">MotorCurrents</TD><TD ALIGN="left" HREF="../generated/stable/package-rst-dynamics.html#rst.dynamics.MotorCurrentsCollection.element" TITLE="Field rst.dynamics.MotorCurrentsCollection.element" TARGET="_parent" PORT="element">element</TD></TR></TABLE>>,shape=box,style=filled,fillcolor="white"]; "4" [label=<<TABLE BORDER="0"><TR><TD COLSPAN="2" HREF="../generated/stable/package-rst-dynamics.html#rst.dynamics.MotorCurrents" TITLE="Structure rst.dynamics.MotorCurrents" TARGET="_parent"><TABLE BORDER="0"><TR><TD ALIGN="right"><IMG SRC="../_static/message.svg"></IMG></TD><TD ALIGN="left">MotorCurrents</TD></TR></TABLE></TD></TR><TR><TD ALIGN="left" HREF="../generated/stable/package-__rosetta-FLOAT32.html#FLOAT32" TITLE="Fundamental FLOAT32" TARGET="_parent">FLOAT32</TD><TD ALIGN="left" HREF="../generated/stable/package-rst-dynamics.html#rst.dynamics.MotorCurrents.currents" TITLE="Field rst.dynamics.MotorCurrents.currents" TARGET="_parent" PORT="currents">currents</TD></TR></TABLE>>,shape=box,style=filled,fillcolor="white"]; "1" [label=<<TABLE BORDER="0"><TR><TD COLSPAN="2" HREF="../generated/stable/package-rst-dynamics.html#rst.dynamics.JointImpedanceCollection" TITLE="Structure rst.dynamics.JointImpedanceCollection" TARGET="_parent"><TABLE BORDER="0"><TR><TD ALIGN="right"><IMG SRC="../_static/message.svg"></IMG></TD><TD ALIGN="left">JointImpedanceCollection</TD></TR></TABLE></TD></TR><TR><TD ALIGN="left" HREF="../generated/stable/package-rst-dynamics.html#rst.dynamics.JointImpedance" TITLE="Structure rst.dynamics.JointImpedance" TARGET="_parent">JointImpedance</TD><TD ALIGN="left" HREF="../generated/stable/package-rst-dynamics.html#rst.dynamics.JointImpedanceCollection.element" TITLE="Field rst.dynamics.JointImpedanceCollection.element" TARGET="_parent" PORT="element">element</TD></TR></TABLE>>,shape=box,style=filled,fillcolor="white"]; "2" [label=<<TABLE BORDER="0"><TR><TD COLSPAN="2" HREF="../generated/stable/package-rst-dynamics.html#rst.dynamics.JointImpedance" TITLE="Structure rst.dynamics.JointImpedance" TARGET="_parent"><TABLE BORDER="0"><TR><TD ALIGN="right"><IMG SRC="../_static/message.svg"></IMG></TD><TD ALIGN="left">JointImpedance</TD></TR></TABLE></TD></TR><TR><TD ALIGN="left" HREF="../generated/stable/package-__rosetta-FLOAT32.html#FLOAT32" TITLE="Fundamental FLOAT32" TARGET="_parent">FLOAT32</TD><TD ALIGN="left" HREF="../generated/stable/package-rst-dynamics.html#rst.dynamics.JointImpedance.stiffness" TITLE="Field rst.dynamics.JointImpedance.stiffness" TARGET="_parent" PORT="stiffness">stiffness</TD></TR><TR><TD ALIGN="left" HREF="../generated/stable/package-__rosetta-FLOAT32.html#FLOAT32" TITLE="Fundamental FLOAT32" TARGET="_parent">FLOAT32</TD><TD ALIGN="left" HREF="../generated/stable/package-rst-dynamics.html#rst.dynamics.JointImpedance.damping" TITLE="Field rst.dynamics.JointImpedance.damping" TARGET="_parent" PORT="damping">damping</TD></TR></TABLE>>,shape=box,style=filled,fillcolor="white"]; "13":element -> "14" []; "12":element -> "9" []; "10":element -> "11" []; "7":element -> "8" []; "8":torques -> "9" []; "8":forces -> "6" []; "5":element -> "6" []; "3":element -> "4" []; "1":element -> "2" []; }

Message JointImpedanceCollection

class rst.dynamics.JointImpedanceCollection

Collection of JointImpedance instances.

Auto-generated.

element
Type:array of rst.dynamics.JointImpedance

The individual elements of the collection.

Constraints regarding the empty collection, sorting, duplicated entries etc. are use case specific.

Download this file

message JointImpedanceCollection {

    /**
     * The individual elements of the collection.
     *
     * Constraints regarding the empty collection, sorting, duplicated
     * entries etc. are use case specific.
     */
    repeated JointImpedance element = 1;

}

Message MotorCurrentsCollection

class rst.dynamics.MotorCurrentsCollection

Collection of MotorCurrents instances.

Auto-generated.

element
Type:array of rst.dynamics.MotorCurrents

The individual elements of the collection.

Constraints regarding the empty collection, sorting, duplicated entries etc. are use case specific.

Download this file

message MotorCurrentsCollection {

    /**
     * The individual elements of the collection.
     *
     * Constraints regarding the empty collection, sorting, duplicated
     * entries etc. are use case specific.
     */
    repeated MotorCurrents element = 1;

}

Message ForcesCollection

class rst.dynamics.ForcesCollection

Collection of Forces instances.

Auto-generated.

element
Type:array of rst.dynamics.Forces

The individual elements of the collection.

Constraints regarding the empty collection, sorting, duplicated entries etc. are use case specific.

Download this file

message ForcesCollection {

    /**
     * The individual elements of the collection.
     *
     * Constraints regarding the empty collection, sorting, duplicated
     * entries etc. are use case specific.
     */
    repeated Forces element = 1;

}

Message WrenchCollection

class rst.dynamics.WrenchCollection

Collection of Wrench instances.

Auto-generated.

element
Type:array of rst.dynamics.Wrench

The individual elements of the collection.

Constraints regarding the empty collection, sorting, duplicated entries etc. are use case specific.

Download this file

message WrenchCollection {

    /**
     * The individual elements of the collection.
     *
     * Constraints regarding the empty collection, sorting, duplicated
     * entries etc. are use case specific.
     */
    repeated Wrench element = 1;

}

Message PressuresCollection

class rst.dynamics.PressuresCollection

Collection of Pressures instances.

Auto-generated.

element
Type:array of rst.dynamics.Pressures

The individual elements of the collection.

Constraints regarding the empty collection, sorting, duplicated entries etc. are use case specific.

Download this file

message PressuresCollection {

    /**
     * The individual elements of the collection.
     *
     * Constraints regarding the empty collection, sorting, duplicated
     * entries etc. are use case specific.
     */
    repeated Pressures element = 1;

}

Message TorquesCollection

class rst.dynamics.TorquesCollection

Collection of Torques instances.

Auto-generated.

element
Type:array of rst.dynamics.Torques

The individual elements of the collection.

Constraints regarding the empty collection, sorting, duplicated entries etc. are use case specific.

Download this file

message TorquesCollection {

    /**
     * The individual elements of the collection.
     *
     * Constraints regarding the empty collection, sorting, duplicated
     * entries etc. are use case specific.
     */
    repeated Torques element = 1;

}

Message JointTorquesCollection

class rst.dynamics.JointTorquesCollection

Collection of JointTorques instances.

Auto-generated.

element
Type:array of rst.dynamics.JointTorques

The individual elements of the collection.

Constraints regarding the empty collection, sorting, duplicated entries etc. are use case specific.

Download this file

message JointTorquesCollection {

    /**
     * The individual elements of the collection.
     *
     * Constraints regarding the empty collection, sorting, duplicated
     * entries etc. are use case specific.
     */
    repeated JointTorques element = 1;

}

Message JointImpedance

class rst.dynamics.JointImpedance

Constraint: len(.stiffness) == len(.damping)

Stiffness and damping values of multiple joints.

Code author: Christian Emmerich <cemmeric@techfak.uni-bielefeld.de>

Todo

what is SI unit of rotatory damping?

@create_collection

stiffness
Type:array of FLOAT32

Unit: TODO

Stiffness values of multiple joints.

(Same joints and same order as damping)

damping
Type:array of FLOAT32

Damping values of multiple joints

(Same joints and same order as stiffness) @unit(newton-meter / rad)

Download this file

message JointImpedance {

    /**
     * Stiffness values of multiple joints.
     *
     * (Same joints and same order as @ref .damping)
     */
    // @unit(TODO)
    repeated float stiffness = 1;

    /**
     * Damping values of multiple joints
     *
     * (Same joints and same order as @ref .stiffness)
     */
    // @unit(newton-meter / rad)
    repeated float damping = 2;

}

Message MotorCurrents

class rst.dynamics.MotorCurrents

Represents measurements of motor currents for a robot’s joints.

Code author: Michael Wojtynek <mwojtynek@cor-lab.uni-bielefeld.de>

@create_collection

currents
Type:array of FLOAT32

Unit: ampere

motor currents of the robot’s drives

Download this file

message MotorCurrents {

    /**
     * motor currents of the robot's drives
     */
    // @unit(ampere)
    repeated float currents = 1 [packed=true];

}

Message Wrench

class rst.dynamics.Wrench

Interaction force, composed of Cartesian translational forces and Cartesian rotational forces.

Code author: Arne Nordmann <anordman@cor-lab.uni-bielefeld.de>

@create_collection

forces
Type:rst.dynamics.Forces

3-dimensional translatory forces.

torques
Type:rst.dynamics.Torques

3-dimensional rotatory forces (moment).

Download this file

message Wrench {

    /**
     * 3-dimensional translatory forces.
     */
    required Forces forces = 1;

    /**
     * 3-dimensional rotatory forces (moment).
     */
    required Torques torques = 2;

}

Message Forces

class rst.dynamics.Forces

Cartesian 3-dimensional translatory force.

Code author: Arne Nordmann <anordman@cor-lab.uni-bielefeld.de>

@create_collection

x
Type:FLOAT32

Unit: newton

Translatory force along the x axis.

y
Type:FLOAT32

Unit: newton

Translatory force along the y axis.

z
Type:FLOAT32

Unit: newton

Translatory force along the z axis.

Download this file

message Forces {

    /**
     * Translatory force along the x axis.
     */
    // @unit(newton)
    required float x = 1;

    /**
     * Translatory force along the y axis.
     */
    // @unit(newton)
    required float y = 2;

    /**
     * Translatory force along the z axis.
     */
    // @unit(newton)
    required float z = 3;

}

Message Pressures

class rst.dynamics.Pressures

A sequence of pressure measurements (e.g. in pneumatic systems).

Code author: Arne Nordmann <anordman@techfak.uni-bielefeld.de>

@create_collection

pressures
Type:array of FLOAT64

Unit: pascal

Download this file

message Pressures {

    // @unit(pascal)
    repeated double pressures = 1;

}

Message Torques

class rst.dynamics.Torques

Cartesian 3-dimensional rotational force (moment).

To specify torques in joint space, use JointTorques instead.

Code author: Arne Nordmann <anordman@techfak.uni-bielefeld.de>

Todo

can we be more specific about the axes here?

@create_collection

a
Type:FLOAT32

Unit: newton-meter

Torque around the x axis.

b
Type:FLOAT32

Unit: newton-meter

Torque around the y axis.

c
Type:FLOAT32

Unit: newton-meter

Torque around the z axis.

Download this file

message Torques {

    /**
     * Torque around the x axis.
     */
    // @unit(newton-meter)
    required float a = 1;

    /**
     * Torque around the y axis.
     */
    // @unit(newton-meter)
    required float b = 2;

    /**
     * Torque around the z axis.
     */
    // @unit(newton-meter)
    required float c = 3;

}

Message JointTorques

class rst.dynamics.JointTorques

A sequence of joint torques of multiple joints.

Code author: Arne Nordmann <anordman@cor-lab.uni-bielefeld.de>

@create_collection

torques
Type:array of FLOAT32

Unit: newton-meter

List of torques with one value per joint. Order is important and represents the joints of the described system.

Download this file

message JointTorques {

    /**
     * List of torques with one value per joint. Order is important and
     * represents the joints of the described system.
     */
    // @unit(newton-meter)
    repeated float torques = 1 [packed=true];

}