Code Monkey home page Code Monkey logo

kraby's Introduction

License Documentation Status Travis (.com) PyPI Codacy grade

Kraby

Hexapod robot

Kraby is an hexapod robot. It is an open source development platform for educational purpose. It was designed for a Master 1 project at ENS Paris-Saclay.

You may read documentation at https://kraby.readthedocs.io/

Build the documentation

Install mkdocs then run mkdocs serve.

Install OpenAI environment

pip install gym_kraby --user
python -m gym_kraby.demo

To test servomotors communication with the robot, you may execute python -m gym_kraby.utils.herkulex_socket.

License

This project is under MIT License because we believe in open development. Please see LICENSE file for more details.

kraby's People

Contributors

erdnaxe avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

kraby's Issues

Set endcap stiffness and damping

In urdf_description/src/links/endcap.sdf.j2 the contact parameters are currently:

<contact>
      <lateral_friction value="1.0" /><!-- TODO -->
      <rolling_friction value="1.0" /><!-- TODO -->
      <spinning_friction value="0.3" /><!-- TODO -->
      <stiffness value="3000" /><!-- TODO -->
      <damping value="100" /><!-- TODO -->
</contact>

This may be changed by measuring these values.

where are the source files?

I want to find out source file about reinforcement learning algorithm and try to learn and change something, but I could not find where they are. Would you mind give me some help? Thank you agian!

Limit observation to what is observable in reality

To make observations more realistic, we may

  • Remove the orientation from OneLeg environments,
  • Figure out a way to specify a goal position for OneLeg environments without the extremity absolute position,

Implement "real" environments

gym_kraby:HexapodRealEnv-v0 should command the full real robot and gym_kraby:OneLegRealEnv-v0 should command only one leg of the robot.

To make these environments work, there is a need to

  • Implement and test velocity command on Herkulex servomotors,
  • Set all configuration parameters on Herkulex (such as torque limit),
  • Check servomotor calibration values,
  • Implement Magwick IMU fusion algorithm to get the orientation of the full robot.

Set servomotor joint damping, friction and limits

In urdf_description/src/joints/joint_servomotor.sdf.j2, there is currently:

    <dynamics damping="0" friction="0" /> <!-- TODO -->
    <!-- Herkulex : 361.4°/s i.e. 6.308rad/s, 12kg.cm i.e. 1.18Nm -->
    <limit effort="1.18" velocity="6.308" lower="-1.57" upper="1.57" /> <!-- TODO -->

We may need to add a damping and friction to this joint.
We also need to check that the converted effort and velocity is right.

why there are 7 parameters in function "def resest(self)"?

In the hexapod_bullet_env.py , function" def reset(self) "
What do these parameters mean?
Why there are 7 rather 6 ?
what does the last parameter mean if the first 6 are positions and orientation?
`

Reset body position/orientation

p.resetBasePositionAndOrientation(
self.robot_id,
[0, 0, 0.2],
[0, 0, 0, 1],
)
`

Set PyBullet timestep

For the moment, the simulation timestep is the same as the timestep of the environment. This may diverge the simulation is the timestep is too big.

Sometimes socket.recv does not receive the full message

Traceback (most recent call last):
  File "herkulex_socket.py", line 140, in <module>
    print(h.get_observations())
  File "herkulex_socket.py", line 112, in get_observations
    pos = ret[9] + ((ret[10] & 0x3) << 8)
IndexError: index out of range

This may be fixed by adding a loop on reception.

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.