Rhoban Team

From Zero to Robot: Rhoban Pipeline for Designing and Prototyping Legged Robots

Grégoire Passault

Rhoban Team
Context

Context

Rhoban Team
Context

Kid-size convergence

Archetype architecture

  • ~20 DoFs
    • Mostly Dynamixel (MX-64 and MX-106)
    • 1 or 2 for the head
    • 3 per arm
    • 6 per leg
  • High reduction servos with spur gears
  • Serial architecture
    • Except for some 4-bar linkages
Rhoban Team
Context

Current team direction





Lower reduction ratios, lower legs mass, parallel architectures

High reduction ratio comes with backlash, less compliance, complex friction models, and high inertia.

New actuators

We want to explore new architectures
Rhoban Team
Context

Current team direction



Reinforcement learning

Impressive results for legged locomotion, still some challenges

  • Full end-to-end vs modular approaches
  • Simulation vs reality gap
We want to explore RL-based locomotion
Rhoban Team
Designing & modeling

Designing & modeling

Rhoban Team
Designing & modeling

CAD software Manufacturing


Typically: Autodesk Inventor, Catia, OnShape, Solidworks, FreeCAD, OpenSCAD...

Robot description Planning & control

Typically: URDF, SDF, MuJoCo, USD, ...

Used with: rigid body libraries (Pinocchio, RBDL, ...), simulation (Gazebo, Webots, MuJoCo, PyBullet ...)

Rhoban Team
Designing & modeling

CAD

OnShape

  • Free for educational purposes
  • Web-based, no installation, can run on low-end hardware
  • Version control, with branches and revisions
  • Collaboration
  • API for automation
  • Many contributions from the community
Rhoban Team
Designing & modeling

Onshape-to-robot

pip install onshape-to-robot
rhoban/onshape-to-robot
onshape-to-robot.readthedocs.io
Rhoban Team
Designing & modeling

Onshape-to-robot

✨ Features ✨
  • Generates URDF or SDF files
    • Transformations
    • Inertial properties
    • Visual and collision meshes
  • Place custom frames
  • Can combine/simplify meshes
  • Generate frames from loops closures
  • Process for pure shape approximation
Future work todo

Native support for MuJoCo format, simplification/automation of collision models, many maintenance/quality-of-life improvements...

📢 Need contributors! 📢

Rhoban Team
Planning & control

Planning & control

Rhoban Team
Planning & control

Locomotion pipeline

Rhoban Team
Planning & control

CoM planning

Re-planned every 25ms
Using 48 timesteps of

The following optimization problem is solved with a sliding horizon:

Rhoban Team
Planning & control

Whole-body IK

Rhoban Team
Planning & control

Analytical IK
Industry 💖

Pros

  • Fast to compute
  • Robust
  • Provide exact solutions
Cons
  • Case-specific
  • Not always possible/feasible
  • Handling constraints can be tricky

Numerical IK
Research 💖

Pros

  • High versatility in tasks specifications
  • Can handle constraints, redundancy or over-constrained systems
Cons
  • Numerical and convergence issues
  • Can be slower
  • Can be tricky to formulate viable tasks
Rhoban Team
Planning & control

Inverse Kinematics (1/2)

Tasks

Tasks are error function we want to minimize . In a numerical approach,
the first-order approximation of this function is .

  • Hard-priority task impose
  • Soft-priority task minimizes
Rhoban Team
Planning & control

Inverse Kinematics (2/2)

Constraints

Joint limits are inequalities: .
Velocity limits are also inequalities: .
Additional constraints can be added, such as self-collisions, loop closures, etc.

Regularization

In the case of a redundant system, regularization can be used. The simplest form is , adding a cost for moving the joints.

Rhoban Team
Planning & control

Problem formulation

The problem described is actually a Quadratic Program (QP):

Need for a high-level API to formulate such problem

Rhoban Team
Planning & control
pip install placo
rhoban/placo
placo.readthedocs.io
Rhoban Team
Planning & control

PlaCo IK Examples


Humanoid robot

  • Sigmaban (20 DoF)
    • CoM task
    • 2x pose task for the feet
    • Axis-align task to look at the ball
    • Soft posture regularization task with joints set to 0
    • Joint position and velocity limits

rhoban/placo-examples humanoid.py
Rhoban Team
Planning & control

PlaCo IK Examples


Quadruped reaching targets

  • Quadruped robot (12 DoF)
  • 3x hard position tasks for legs on the ground
  • Soft position task for the flying leg
  • Soft pose task for the body
  • Hard constraint to keep the CoM in the support polygon

rhoban/placo-examples quadruped_targets.py
Rhoban Team
Planning & control

PlaCo IK Examples

Megabot

  • Quadruped vehicle robot (280kg)
  • 50 DoFs
    • 6 for the floating base
    • 12 actuated DoFs
    • 32 passive DoFs
  • 32 loop-closures constraints enforced at runtime
  • Need an iterative solver for both forward and inverse kinematics

rhoban/placo-examples megabot.py
Rhoban Team
Planning & control

PlaCo IK Examples

Prototyping new robot

  • Kid-Size lower limbs
  • RMD and harmonic drives
  • Parallel architecture (belts, connecting rods ...)
  • Need to iterate quickly on the design
    • Exploring the workspace
    • Run geometrical physical simulations
Rhoban Team
Planning & control

Walk pattern generator

rhoban/placo-examples walk.py

Rhoban Team
Planning & control

Trajectory tracking is very off on the actual robot

  • Pushing actuators to their limits
    • Knee is reaching torque limits (support phase) and velocity limits (flying phases)
  • Lack of feed-forward control
    • Pure feed-back control is not enough to properly track trajectory
  • Unmodeled phenomenons
    • Mainly: friction, backlash, ohmic losses, elasticity, etc.
Rhoban Team
Simulation vs reality gap

Simulation vs reality gap

Rhoban Team
Simulation vs reality gap

RL Standup

  • Good convergence in simulation
  • Some discrepancies in reality
    • Unwanted oscillations
    • Bad modeling of actuator limits
  • Mitigated with randomization, and adjusting the problem formulation

Reducing Sim2Real gap

  • Modeling all delays (communication and filtering),
  • Need proper actuators identification
    • Torque limit, viscous friction, dry friction, controller gain, armature
    • Results were not satisfying
Rhoban Team
Simulation vs reality gap

Better Actuator Model (BAM)

Rhoban Team
Simulation vs reality gap

Future work

  • Using extended friction models in whole-body humanoid simulations
  • Open-sourcing and documenting BAM to the community
  • Investigating effects of ohmic losses, appearing to be significant
rhoban/bam
work in progress
Rhoban Team
Simulation vs reality gap

Questions / discussion

Rhoban Team

- This presentation will cover various topics - My goal is to share with you our recent experiences, results and future work

- Kid size robots have many similarities in their designs

- Other possible architectures - Example, Disney's humanoid droid based on RMD actuators - RL-based control is a game-changer - Designing and building robots is hard (lot of engineering), but it's also the identity of RoboCuppers

<video src="videos/google_soccer.mp4" width="400" controls muted="muted"></video>

- Other possible architectures - Example, Disney's humanoid droid based on RMD actuators - RL-based control is a game-changer - Designing and building robots is hard (lot of engineering), but it's also the identity of RoboCuppers

- Two representations of the robot - The CAD file for manufacturing, and the robot description - All the data are already there in the CAD - Need to keep them in sync

- We started to design new robot: need versatility!

## Static friction experiment <center> <img src="imgs/drive_backdrive_experiment.svg" width="500" /> <br/> <img data-marpit-fragment src="imgs/static_mod.svg" width="500" /> </center> ---

--- header: "Electronics & middleware" # Electronics & middleware --- ## Boards <div class="card m-1"> <div class="card-header"> Main board <span class="badge rounded-pill text-bg-primary">work in progeess</span> </div> <div class="card-body"> <div class="row"> <div class="col-sm-4"> <img src="imgs/dxl_controller.jpg" width="150" /> </div> <div class="col-sm-4"> - Switching to ESP-32 - Ethernet for PC communication - High-end IMU </div> <div class="col-sm-4"> - Supporting CAN buses communication - Adding BMS protection </div> </div> </div> </div> <div class="card m-1"> <div class="card-header"> Feet pressure <span class="badge rounded-pill text-bg-primary">todo</span> </div> <div class="card-body"> <div class="row"> <div class="col-sm-6"> <img src="imgs/sigmaban_foot.png" width="200" /> </div> <div class="col-sm-6"> - Supporting CAN - Improving sampling rate - Supporting up to 6 axises </div> </div> </div> </div>