motion_stack package

Motion Stack package.

Subpackages

Submodules

motion_stack.high_level_louis module

This gives example of a high level node using the motion stack API

Warning

To make this example as easy as possible, async/await is heavily used. This is unusual, you do not need and even, should not use async/await with Ros2. The motion stack uses generic Future and callback, async/await style is not required for the motion stack.

In this example every time await, is used (on a ros2 Future, or python awaitable), the code pauses until the awaitable finishes, however it does not block the ros2 executor. Basically, this await sleeps/waits without blocking ros2 operations (incomming/outgoing messages).

async/await is easier to read, however much more reliable and performant code is possible using ros2 future+callback and especially timers.

class motion_stack.high_level_louis.TutoNode[source]

Bases: Node

LIMBS = [3, 201]

Type:    list

list of limbs number that are controlled

main()[source]
async joints_ready()[source]

Returns once all joints are ready

async ik_ready()[source]

Returns once all ik are ready

angles_to_zero()[source]

sends all joints to 0.0

Return type:

Coroutine

angles_to_test(test_angle)[source]

sends all joints to 0.0

Return type:

Coroutine

delta_ee(delta_pose)[source]
Return type:

Coroutine

Parameters:

delta_pose (Pose)

startup()[source]

Execute once at startup

exec_loop()[source]

Regularly executes the syncers

motion_stack.high_level_louis.main(*args)[source]