Giter Site home page Giter Site logo

Comments (3)

qgallouedec avatar qgallouedec commented on August 16, 2024 1

You can infer it the same way from my previous comment:

Task Position
ee position PandaPickAndPlace [0:3]
PandaStack [0:3]
object position PandaPickAndPlace [0:3]
PandaStack [7:10] for 1, [19:22] for 2
finger width PandaPickAndPlace [6]
PandaStack [6]

from panda-gym.

qgallouedec avatar qgallouedec commented on August 16, 2024

Hi, @Vidharth

Yes, you can manually control the robot by passing your own action into the step() method. Here is a simple example:

import gym
import panda_gym

env = gym.make('PandaPickAndPlace-v1')
env.reset()

env.step([1, 0, 0, 0]) # Go FORWARD
env.step([-1, 0, 0, 0]) # Go BACKWARD
env.step([0, 1, 0, 0]) # Go LEFT
env.step([0, -1, 0, 0]) # Go RIGHT
env.step([0, 0, 1, 0]) # Go UP
env.step([0, 0, -1, 0]) # Go DOWN
env.step([0, 0, 0, 1]) # OPEN fingers
env.step([0, 0, 0, -1]) # CLOSE fingers

Another example, where action depends on the observation:

import gym
import panda_gym

env = gym.make('PandaPush-v1')
obs = env.reset()

# Get specific observations
ee_position = obs['observation'][0:3]
object_position = obs['observation'][7:10]

# Choose action according to object position and end-effector position
action = object_position - ee_position # move in the direction of the object

# Step
obs, reward, done, info = env.step(action)

Each envrionment has its own observation and action space. Read the following for more details.

You should be able to adapt this code to do keyboard-control, if that's what you want to do (using the keyboard module for example).

For PandaReach-v1:

Observation:

  • end-effector position (3 coordinates)
  • end-effector velocity (3 coordinates)

Action:

  • displacement (3 coordinates)

For PandaPush-v1 and PandaSlide-v1:

Observation:

  • end-effector position (3 coordinates)
  • end-effector velocity (3 coordinates)
  • object position (3 coordinates)
  • object rotation (3 coordinates)
  • object linerar velocity (3 coordinates)
  • object angular velocity (3 coordinates)

Action:

  • displacement (3 coordinates)

For PandaPickAndPlace-v1:

Observation:

  • end-effector position (3 coordinates)
  • end-effector velocity (3 coordinates)
  • finger width (1 coordinate)
  • object position (3 coordinates)
  • object rotation (3 coordinates)
  • object linerar velocity (3 coordinates)
  • object angular velocity (3 coordinates)

Action:

  • displacement (3 coordinates)
  • displacement of fingers (1 coordinate)

For PandaStack-v1:

Observation:

  • end-effector position (3 coordinates)
  • end-effector velocity (3 coordinates)
  • finger width (1 coordinate)
  • object 1 position (3 coordinates)
  • object 1 rotation (3 coordinates)
  • object 1 linerar velocity (3 coordinates)
  • object 1 angular velocity (3 coordinates)
  • object 2 position (3 coordinates)
  • object 2 rotation (3 coordinates)
  • object 2 linerar velocity (3 coordinates)
  • object 2 angular velocity (3 coordinates)

Action:

  • displacement (3 coordinates)
  • displacement of fingers (1 coordinate)

EDIT: added finger width in PandaStack

from panda-gym.

cchristofi avatar cchristofi commented on August 16, 2024

Hey @qgallouedec,

If the position of the end-effector is positioned in the observation space at positions [0:3] and for the object at positions [7:10] for tasks PandaPush and PandaSlide, where are the ee-position, object position and finger width in PandaPickAndPlace and PandaStack tasks?

from panda-gym.

Related Issues (20)

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.