Skip to content

Modular walking robots with distributed computation, or a simple robotic arm, seamlessly bring robots to life with just a URDF! Built for maximum flexibility, ease of use, and source-code customization.

License

Notifications You must be signed in to change notification settings

2lian/Motion-Stack

Repository files navigation

Motion Stack

lvl4 whole body movement

ubuntu ros python mit

rtb doit Tests Passing :)

Modular walking robots with distributed computation, or a simple robotic arm, seamlessly bring robots to life with just a URDF! Built for maximum flexibility, ease of use, and source-code customization.

Guides:

Access the complete documentation at: https://motion-stack.deditoolbox.fr/.

Features


  • Modular, any limb anywhere on the robot
  • Distributed, any process anywhere on the network
  • Hardware agnostic, processes adapt to real-time robot characteristic
  • Inverse Kinematics (3Dof and above)
  • Multi-limb synchronization
  • URDF parser
  • Customizable actuators interface (overload the source-code with what you need)
  • Flexible launch system
  • Documented example of Moonbot Zero

Upcomming Features


  • Multi-limb-motor synchronization (in rework for agnostic system, lvl3 will be deleted)
  • Custom trajectories (in development)
  • High level Pyhton API, API sends ros messages for you to any system

Ros2 Structure Overview


The current basic structure can be interpreted as the following tree:

|                       levels
|   00    |     01      |     02   |   03   |    04   |    05   |
| Motor X -- Joint 0 -- |
| Motor X -- Joint 1 -- +- IK 0 -- Leg 0 -- |
| Motor X -- Joint 2 -- |                   |
|                                           |
| Motor X -- Joint 0 -- |                   |
| Motor X -- Joint 1 -- +- IK 1 -- Leg 1 -- +-  Mover  -- Gait
| Motor X -- Joint 2 -- |                   |
|                                           |
|                                   ...  -- |

The power of this structure lies in its modularity. Packages responsible for a level can be swapped in/out for other packages responsible for the same level.

For example:

|                       levels
|      00       |    01   |   02  |   03  |   04   |  05   |
| ---------------------packages----------------------------
|               |             motion stack
| ---------------------------------------------------------
|   rviz basic  |
| ---------------------------------------------------------
| dynamixel...  |
| ---------------------------------------------------------
| Maxon motr... |

All robots are different. You can easily overload relevant parts of the code and use it like an API in which you inject your custom code. Examples and tools are provided for this purpose. This way, you do not need to create a new, complex ROS2 node to adapt to the quirks of your robot—just change what you need directly.

|                       levels
|      00       |    01   |   02  |   03  |   04   |  05   |
| ---------------------packages----------------------------
|               |             motion stack
| ---------------------------------------------------------
| Overload for my robot   |                        |  Overload for my robot
| ---------------------------------------------------------

Code:

Deprecated Code:

About

Modular walking robots with distributed computation, or a simple robotic arm, seamlessly bring robots to life with just a URDF! Built for maximum flexibility, ease of use, and source-code customization.

Topics

Resources

License

Stars

Watchers

Forks

Languages