top of page

SOFT ROBOTICS SOFTWARE

Updated December 2022

Reinforcement Learning Toolkit for Soft Robotics

By Moritz A. Graule, Thomas P McCarthy, & Dr. Clark Teeple

SoMoGym
 

SoMoGym (SoftMotion Gym) is an open-source framework that builds on SoMo.  SoMoGym facilitates the training and testing of soft robot control policies on complex tasks in which robots interact with their environments, frequently making and breaking contact. We provide a set of standard benchmark tasks, spanning challenges of manipulation, locomotion, and navigation in environments both with and without obstacles.


Interested users are also invited to look at the documentation below to learn more or try out our code in the colab linked below.

        SoMoGym Github Repo




SoMo

SoMo (SoftMotion) is a framework to facilitate the simulation of continuum manipulator (CM) motion in pybullet. In SoMo, continuum manipulators are approximated as a series of rigid links connected by spring-loaded joints. SoMo makes it easy to create URDFs of such approximated manipulators and load them into pybullet's rigid body simulator. With SoMo, environments with various continuum manipulators, such as hands with soft fingers (xxx links), or snakes, can be created and controlled with only a few lines of code.

        SoMo Github Repo
 

SoMo-RL

SoMo-RL is an open-source toolkit for developing and  evaluating control policies for soft robots. Using the SoMo simulation framework and SoMoGym library, SoMo-RL permits experiments on, e.g., the effects of varying control and robot design parameters, and enables the use of RL for such systems. SoMo-RL builds off the functionality of SoMoGym, providing a straightforward system for training RL policies on SoMoGym environments, managing experiments at scale, and analyzing RL results. In SoMo-RL, experiments are highly customizable, allowing for complete modification of learning hyperparameters and environment parameters through a single configuration file.

        SoMo-RL Github Repo

Documentatio SomoGym
Pen Spinning

Pen Spinner

* The details of how to create a run_config.yaml file, and its examples per environment, are explained in the SomoGym Github Repo.

Description

This environment consists of 5 fingers manipulating a pen. The goal is to coordinate the five fingers to move appropriately by applying forces to the pen so that this can be placed in the goal position highlighted in green.
 

Arguments

env = gym.make("PenSpinner-v0", run_config=run_config, ...)


 

Planar Reaching

Planar Reaching

PlanarReaching.gif

* The details of how to create a run_config.yaml file, and its examples per environment, are explained in the SomoGym Github Repo.

Description

This environment consists of 5 fingers manipulating a pen. The goal is to coordinate the five fingers to move appropriately by applying torques to the pen so that this can be placed in the goal position highlighted in green.
 

Arguments

env = gym.make("PenSpinner-v0", run_config=run_config, ...)


 

Planar Reaching wit Obstacle

Planar Reaching with Obstacle

PlanarReachingObstacle.gif

* The details of how to create a run_config.yaml file, and its examples per environment, are explained in the SomoGym Github Repo.

Description

This environment consists of 5 fingers manipulating a pen. The goal is to coordinate the five fingers to move appropriately by applying torques to the pen so that this can be placed in the goal position highlighted in green.
 

Arguments

env = gym.make("PenSpinner-v0", run_config=run_config, ...)


 

Block Pushing

Block Pushing

PlanarBlockPushing.gif

* The details of how to create a run_config.yaml file, and its examples per environment, are explained in the SomoGym Github Repo.

Description

This environment consists of 5 fingers manipulating a pen. The goal is to coordinate the five fingers to move appropriately by applying torques to the pen so that this can be placed in the goal position highlighted in green.
 

Arguments

env = gym.make("PenSpinner-v0", run_config=run_config, ...)


 

Antipodal Gripping

Antipodal Gripper

AntipodalGripper.gif

* The details of how to create a run_config.yaml file, and its examples per environment, are explained in the SomoGym Github Repo.

Description

This environment consists of 5 fingers manipulating a pen. The goal is to coordinate the five fingers to move appropriately by applying torques to the pen so that this can be placed in the goal position highlighted in green.
 

Arguments

env = gym.make("PenSpinner-v0", run_config=run_config, ...)


 

Snake

Snake

SnakeLocomotionDiscrete.gif

* The details of how to create a run_config.yaml file, and its examples per environment, are explained in the SomoGym Github Repo.

Description

This environment consists of 5 fingers manipulating a pen. The goal is to coordinate the five fingers to move appropriately by applying torques to the pen so that this can be placed in the goal position highlighted in green.
 

Arguments

env = gym.make("PenSpinner-v0", run_config=run_config, ...)


 

Hand Manipulation

In-Hand Manipulation

InHandManipulation.gif

* The details of how to create a run_config.yaml file, and its examples per environment, are explained in the SomoGym Github Repo.

Description

This environment consists of 5 fingers manipulating a pen. The goal is to coordinate the five fingers to move appropriately by applying torques to the pen so that this can be placed in the goal position highlighted in green.
 

Arguments

env = gym.make("PenSpinner-v0", run_config=run_config, ...)


 

Inverted Hand Manipulation

Inverted In-Hand Manipulation

InHandManipulationInverted.gif

* The details of how to create a run_config.yaml file, and its examples per environment, are explained in the SomoGym Github Repo.

Description

This environment consists of 5 fingers manipulating a pen. The goal is to coordinate the five fingers to move appropriately by applying torques to the pen so that this can be placed in the goal position highlighted in green.
 

Arguments

env = gym.make("PenSpinner-v0", run_config=run_config, ...)


 

Disclaimer
This software is provided “as is”, without warranty of any kind, express or implied, including but not limited to the warranties of merchantability, fitness for a particular purpose and noninfringement. In no event shall the authors or copyright holders be liable for any claim, damage or other liability, whether in an action of contract, tort or otherwise, arising from, out of or in connection with this software or the use or other dealings in the software. Non-commercial use only.

bottom of page