Electronic device able to receive commands.

In ALMemory, actuator values contain the last command sent to the actuator.

Blocking Method

Like normal method calls, simple calls are blocking - The next instruction will be executed after the end of the previous call. All calls can raise an exception and should be encapsulated in a try-catch block. Calls can have return values.

Further details: Blocking and non-blocking calls.


In ALMotion, Body is the group gathering all joints of the robot.

Further details: “Body”, chains and joint names. See also: Whole Body Motion.


A broker is an executable and a server that can listen to remote commands on IP and port.

Further details: Broker.


In ALMotion, a chain is a group of joints.

Further details: “Body”, chains and joint names.

Center Of Mass.
Degrees of freedom

Degrees of freedom (DOF) are the set of independent displacements and/or rotations that specify completely the displaced or deformed position and orientation of the body or system.

See also: joint.

Device Communication Manager

The DCM is the NAO software module, part of the NAOqi system, that is in charge of the communication with all electronic devices in the robot (boards, sensors, actuators...) except the sound (in or out) and the camera. It manages the main communication line: the USB link with the ChestBoard. But there is also an I2C link with devices in the robot head. Thus, the DCM is the link between the “upper level” software (others modules) and the “lower level” software (soft in electronic boards).

Further details: What is the DCM.


Effectors are points allowing to control position by Cartesian methods. There are 6 effectors: “Head” , “LArm”, “LLeg”, “RLeg”, “RArm”, “Torso”.

Further details: Cartesian control.


One of the 3 spatial references used by ALMotion. This is average of the two feet positions projected around a vertical z axis. This space is useful, because the x axis is always forwards, so provides a natural ego-centric reference.

Further details: Spaces.


One of the 3 spatial references used by ALMotion. This is attached to NAO’s torso reference, so moves with NAO as he walks and changes orientation as he leans. This space is useful when you have very local tasks, that make sense in the orientation of the torso frame.

Further details: Spaces.


One of the 3 spatial references used by ALMotion. This is a fixed origin that is never altered. It is left behind when NAO walks, and will be different in z rotation after NAO has turned. This space is useful for calculations which require an external, absolute frame of reference.

Further details: Spaces.


Hardness (named as stiffness in the Motion module) of the joint. The value is from 0.0 to 1.0, 0 means 0% and 1 means 100% (full power). In the motorboard, this percentage is directly applied to the max current. Setting the hardness to 0.5 means that the electric current limitation is reduced to 50%.

Further details: jointHardness (Hardness/Actuator). See also: Stiffness.

Initial Pose
NAO Initial position
Pose Init
StandInit posture

Specific stable posture with: kneeAngle = 40.0 deg and torsoAngle = wideAngle = 0.0 deg.

A good starting point for most of the motion animations.

Available in Choregraphe Pose library panel. Can also be reached using ALRobotPosture or using directly ALMotion joint control (see Joint control Tutorial: The Pose Init).


The LIRC program used by the ALInfrared module to record IR (Infra Red) remote controls.

See also: LIRC.


Point of articulation, connection that allow motion. In ALMotion, all Degrees Of Freedom except hands are called joints.

Further details: “Body”, chains and joint names. See also: DOF.


LIRC (Linux Infrared Remote Control).

Further details:

Non-blocking Method

By using the post object of a proxy, a task is created in a parallel thread. This enables you to do other work at the same time (e.g. walking while talking). Each post call generates a task id. You can use this task id to check if a task is running, or wait until the task is finished.

See also: blocking method.

Further details: Blocking and non-blocking calls.


Combination of position and orientation of a body in a coordinate system. For example, position and orientation of the robot related to FRAME_WORLD.

Caution: not to be confused with posture.


A Position6D is a vector of 6 dimensions composed of 3 translations (in meters) and 3 rotation (in radians).

See also: Transform.

Further details: libalmath Overview.


A configuration of the robot body, generally involving all joints.

Useful postures are available in Choregraphe Pose library panel. or can be reached using ALRobotPosture or using directly ALMotion joint control (see Joint control Tutorial: The Pose Init).

See Also: Predefined postures.

SE3 Interpolation

SE3 Interpolation is used for all interpolations that are defined in Cartesian Space.

Further details: SE3 Interpolation


A position in the robot’s workspace where one or more joints no longer represent independent controlling variables.

Mathematically, a Jacobian mathematical matrix formulation can be used to relate the motion in joint space to the motion in Cartesian space. The singularity occurs when the inverse Jacobian becomes singular (determinant = 0).


ALMotion uses 3 different spatial references: FRAME_TORSO, FRAME_WORLD and FRAME_ROBOT.

Further details: Spaces.


The stiffness of the joint is equivalent to a torque limitation into the motors. If the joint stiffness is set to 0.0, the joint controller do nothing and the joint is free. Else with a value at 1.0 the joint is allowed to use full torque power to reach a given position.

Further details: Stiffness control. See also: Hardness.

Support polygon
For a rigid object in contact with a fixed environment and acted upon by gravity in the vertical direction, its support polygon is a horizontal region over which the center of mass must lie to achieve static stability. For example, for an object resting on a horizontal surface (e.g. a table), the support polygon is the convex hull of its “footprint” on the table.

Way to describe a solid in space. It is composed of a rotation matrix and a translation.

See also: Position6D.

Further details: libalmath Overview.

Whole Body Motion
Whole Body Motion is a Generalized Inverse Kinematics which deals with Cartesian and joint control, balance, redundancy and task priority.