Giter Club home page Giter Club logo

robot-arm-rl's Introduction

Robot-Arm-RL

WSU Postgraduate Project Project A & B Reinforcement Learning with Robot Arm

This github directory contains both the Python files to train the RL algorithms (Training) and the Unity projects where different variations of the environments are stored.

Unity Project Structure

Example

robot_subset_joint2_102.mp4

Different Projects

There are so far 4 variations of the Unity project environments used for training the robot (in chronological order of development):

  • ArmRobotOriginal - The original environment with:
    • all 7 joints fully operational
    • Discrete actions (0,1,2)
    • The target spawning space as a sphere around the base
  • ArmRobotSubset - Modified version (corresponding to "robot_subset.py"):
    • Can control where target spawn depending on which joint is active
    • Discrete actions (0,1,2) for 7 joints
  • ArmRobotContinuous - Similar to ArmRobotSubset but with continuous actions:
    • Continuous actions [-1,1] for all 7 joints
    • Target spawn controllable by which joint is active
  • ArmRobotExpanded - Redefined reward function and observation space (still in development)

Joint-Dependent Target Position Spawning

For environments that accept active joints to spawn target, the target spawns in a circle surrounding the center position of the active joint. The orientation of the circle depends on the axis of rotation of the joint (for example, if the active joint rotates horizontally -- around the y-axis -- the circle is orientated in a horizontal plane).

The active joint is defined as the lowest joint that is operational. Any joint above that joint is assumed to be operational, while lower joints are assumed fixed. Joints are ordered from the base to the tip, with joint 0 being the bottom-most joint, and joint 6 being the tip joint (we assume this joint is useless because it only rotates the pincher).

Manual Controls

You can move the robot around manually using the following keyboard commands:

A/D - rotate base joint
S/W - rotate shoulder joint
Q/E - rotate elbow joint
O/P - rotate wrist1
K/L - rotate wrist2
N/M - rotate wrist3
V/B - rotate hand
X - close pincher
Z - open pincher

This is controlled in the Heuristic method of the RobotAgent.cs script of each environment

Presentation Slides

Can be found here...

robot-arm-rl's People

Contributors

napatsaha avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar

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.