Giter VIP home page Giter VIP logo

gripper_gym's Introduction

CARES Gripper Gym

Python 3.11.4 Pytorch 1.13.1

This repository contains the code used to control and train the grippers (Two-finger and Three-Finger) currently being designed and used in the CARES lab at the The University of Auckland. While being written for this specific system, it also intends to be applicable to many dynamixel servo systems with minor changes to the code.

See the gripper in action, learning to rotate the valve by 90 degrees:

Exploration Phase During Training Final Policy
explore during final

Contents

๐Ÿ“‹ Requirements

The repository was tested using Python 3.11.4 on a machine running Ubuntu 22.04.2 LTS. The repository relies on Pytorch relying on NVIDIA CUDA GPUs. Instructions for enabling CUDA in Pytorch can be found here.

A comprehensive list of dependencies is available in requirements.txt. Ensure that the hardware components for the gripper are turned on and connected to the machine.

๐Ÿ‘ฉโ€๐Ÿซ Getting Started

  1. Clone the repository using git clone.

  2. Run pip3 install -r requirements.txt in the root directory of the package.

  3. Install the two CARES libraries as instructed in CARES Lib and CARES Reinforcement Learning Package.

  4. Create a folder named your_folder_name to store config files. To get started, copy and paste the files in scripts/config_examples into the folder. For a guide on changing configs, see the wiki.

๐Ÿ“– Usage

Consult the repository's wiki for a guide on how to use the package.

โš™๏ธ Hardware Setup

The current setup uses Dynamixel XL-320 servo motors (4 for Two-Finger and 9 for Three-Finger Gripper), which are being controlled using a U2D2. Below is an example of the wiring setup for the three-fingered gripper. This is easily changed for other configurations, with a maximum of 4 daisy chains coming from the U2D2.

BOM

A list of items required to build the grippers can be found in Grippers BOM.

STL files

3D printed parts for both grippers can be found in Two-Finger STL and Three-Finger STL.

Picture of a CAD assembly that shows a rig that is holding a three-fingered gripper with the fingers hanging down

๐Ÿ—ƒ๏ธ Results

You can specify the folder to save results in using the local_results_path argument; otherwise, it defaults to {home_path}/gripper_training. The folder containing the results is named according to the following convention:

{date}_{robot_id}_{environment_type}_{observation_type}_{seed}_{algorithm}

Results are stored using the format as specified by standardised CARES RL format.

gripper_gym's People

Contributors

bethcherie avatar rainingx683 avatar tonycui02 avatar beardyface avatar kvan910 avatar dvalenciar avatar brendan-z avatar retinfai avatar long715 avatar

Stargazers

Shivam Dhakad avatar  avatar

Watchers

Bruce MacDonald avatar  avatar QIAO, Ting avatar Kostas Georgiou avatar

gripper_gym's Issues

rename the package

gripper_envrionment or other suggestion that fits the general naming scheme we will use for specific environments.

Implement - Gripper setup script

A python script that automatically setup new servos during gripper assembly

  • Setup the following for a chain of servos, prompt user to add servo to the daisy chain after each setup
    • ID
    • Baud Rate
    • Shutdown

Docker - Implement Docker Container

Implement a Docker container for ease of use and installation

  • Implementation (an example already exist, contact @rainingx683 for it)
    • Dockerfile for local
    • Pre built docker container on docker hub
  • Documentation on how to use it

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.