GithubHelp home page GithubHelp logo

pollen-robotics / reachy-2019 Goto Github PK

View Code? Open in Web Editor NEW
137.0 20.0 37.0 3.04 MB

Open source interactive robot to explore real-world applications!

Home Page: https://www.pollen-robotics.com

Python 3.20% Jupyter Notebook 96.78% Makefile 0.02% Shell 0.01%

reachy-2019's Introduction

Reachy 2019: Open source interactive robot to explore real-world applications!

⚠️⚠️ This documentation is meant for Reachy 2019. If you have a newer version (Reachy 2021) please refer to the corresponding documentation! ⚠️⚠️

Reachy is a unique open prototyping platform. It makes AI & robotics accessible to researchers, innovation professionals and creatives.

Hello I'm Reachy, presentation video

In this repository, you will find:

  • the software to control and program your Reachy 2019,
  • the 3d models,
  • documentation and examples to get you started.

The software is open-sourced and released under an Apache License v2.0.

Visit pollen-robotics.com to learn more or visit our forum.

Follow @PollenRobotics on Twitter for important announcements.

This project adheres to the Contributor code of conduct. By participating, you are expected to uphold this code. Please report unacceptable behavior to [email protected].

Documentation (WIP)

Installation

  • From Pypi: pip install reachy-2019
  • Or from the source: pip install -e ./software/

reachy-2019's People

Contributors

augustin-crampette avatar dependabot[bot] avatar glannuzel avatar matthieu-lapeyre avatar pierre-rouanet avatar sgriffault avatar simheo avatar simongriffault avatar

Stargazers

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

Watchers

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

reachy-2019's Issues

ModuleNotFoundError: No module named 'pyluos.modules'

Describe the bug
Missing module pyluos.modules when importing reachy in Python.

To Reproduce
Steps to reproduce the behavior:

  1. pip3 install reachy
  2. run python3 from terminal (Python version: 3.8.5)
  3. import reachy or from reachy import parts, Reachy
  4. See error

Expected behavior
Clear import with no error.

Screenshots

Python 3.8.5 (default, Jul 28 2020, 12:59:40) 
[GCC 9.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import reachy

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "$HOME/.local/lib/python3.8/site-packages/reachy/__init__.py", line 11, in <module>
    from .reachy import Reachy  # noqa: F401
  File "$HOME/.local/lib/python3.8/site-packages/reachy/reachy.py", line 9, in <module>
    from .parts import LeftArm, RightArm, Head
  File "$HOME/.local/lib/python3.8/site-packages/reachy/parts/__init__.py", line 10, in <module>
    from .arm import LeftArm, RightArm # noqa
  File "$HOME/.local/lib/python3.8/site-packages/reachy/parts/arm.py", line 13, in <module>
    from .hand import LeftEmptyHand, RightEmptyHand, LeftForceGripper, RightForceGripper, OrbitaWrist
  File "$HOME/.local/lib/python3.8/site-packages/reachy/parts/hand.py", line 15, in <module>
    from .part import ReachyPart
  File "$HOME/.local/lib/python3.8/site-packages/reachy/parts/part.py", line 8, in <module>
    from ..io import IO, luos, ws
  File "$HOME/.local/lib/python3.8/site-packages/reachy/io/luos.py", line 8, in <module>
    from pyluos.modules import DynamixelMotor
ModuleNotFoundError: No module named 'pyluos.modules'
>>>

Environment (please complete the following information):

  • Running on my PC
  • OS: Ubuntu 20.04
  • Python Version 3.8.5

Include various URDF file

We should provide the various URDF file for the different parts ? versions of Reachy so users can import it in Gazebo or other simulators.

Can't get Reachy's arm started

Hello! We just connected Reachy's arm and are trying to interact with it using a raspberry pi. We followed the instructions here and connected the arm to the pi through the USB cable provided.

Here is the code we are running:

from reachy import Reachy, parts

reachy = Reachy(
        left_arm=parts.LeftArm(
        io='/dev/ttyUSB0',
        hand='force_gripper',
    ),
)

reachy.left_arm.shoulder_pitch.compliant = True
reachy.left_arm.shoulder_roll.compliant = True
reachy.left_arm.arm_yaw.compliant = True
reachy.left_arm.elbow_pitch.compliant = True
reachy.left_arm.hand.forearm_yaw.compliant = True
reachy.left_arm.hand.wrist_pitch.compliant = True
reachy.left_arm.hand.wrist_roll.compliant = True

current_arm_position = {
    motor.name: motor.present_position for motor in reachy.left_arm.motors
}

print(current_arm_position)

But we keep getting:

Traceback (most recent call last):
  File "readpos.py", line 6, in <module>
    hand='force_gripper',
  File "/home/pi/dev/reachy/software/reachy/parts/arm.py", line 217, in __init__
    hand=hand)
  File "/home/pi/dev/reachy/software/reachy/parts/arm.py", line 46, in __init__
    ReachyPart.__init__(self, name=f'{side}_arm', io=io)
  File "/home/pi/dev/reachy/software/reachy/parts/part.py", line 34, in __init__
    self.io = luos.SharedLuosIO.with_gate(gate_name, io)
  File "/home/pi/dev/reachy/software/reachy/io/luos.py", line 90, in with_gate
    raise LuosGateNotFoundError(f'Gate "{name}" not found on ports "{port_template}"')
reachy.error.LuosGateNotFoundError: Gate "r_left_arm" not found on ports "/dev/ttyUSB0"

We have enabled I2C and serial communication on the pi through sudo raspi-config.

Is there something obvious we are missing?

Thanks in advance!

Use default parameter for parts

Right now, parts are always created using the same parameter. For instance, a right arm will be created using:

ra = parts.RightArm(luos_port='/dev/ttyUSB*', hand='force_gripper')

Shall we make the luos_port default to '/dev/ttyUSB*'?

Setup Pypi Action

  • Add Action for publishing on Pypi whenever a version is tagged
  • Actually published the version

Add simple goto function for the whole arm

Using goto with inverse kinematics could be simpler if we add a high level function doing the mapping between reachy joints and IK results.

It could be done with a more general goto at the part level taking the list of joints as input such as:
reachy.right_arm.goto([list of motors goal positions], duration, wait,...)

A tool to rename Orbita's modules names automatically

Problem:
When Orbita's modules have not the right names to control it, we need to rename them individually before using it.

Solution:
A tool which rename automatically the gate and the 3 DC motor modules when we start using Orbita.

Wait for first sync with Luos modules

At the moment, after connecting to a Luos gate, we wait 1s to make sure that we received a first state and that our variables are correctly setup.
We should implement a real wait mechanism with a timeout. It will speed up the process and be more reliable.

Error importing pyluos.modules (pyluos version 1.4.1)

Reachy package cannot import pylous.modules. Likely because most recent version of pylous (1.4.1) renamed modules to containers.

To reproduce:

from reachy import parts, Reachy

r = Reachy(
    right_arm=parts.RightArm(io='ws', hand='force_gripper'),
    left_arm=parts.LeftArm(io='ws', hand='force_gripper'),
)

To fix:

Change line 8 in luos.py to:

from pyluos.containers import DynamixelMotor

Improve Grasping

  • Open/Close the gripper should also work on a left hand
  • Close should detect if it manages to grab something
  • Close can block forever if we never reached the desired force, we should timeout in this case

Using fixed delay in Luos gate

Does using a fixed delay in Luos gates improve overall communication?

We could theoretically set a delay of 5-10ms:

gate.delay_ms = 5

Switch repository

  • Archive old repository
  • Rename this repo to remove the -2.0 version

Explain different motors coordinate systems

ATM we have angle limits and offset in "dynamixel" coordinates systems.
Read/Write position are in our modified coordinates systems. We should make all this clearer and documented.

ISO Generation

Setup a proper workflow to generate a working ISO from Scratch.

Can't connect to Reachy using USB2AX

I tried to connect to Reachy using the commands:

from reachy import Reachy, parts
PORT = "/dev/ttypACM0"
reachy = Reachy(
    right_arm=parts.arm.RightArm(
        luos_port=PORT,
        hand='force_gripper',
    ),
)

but I get the error:

Traceback (most recent call last):
  File "move_and_grap.py", line 8, in <module>
    hand='force_gripper',
  File "/home/seb/workspace/reachy/software/reachy/parts/arm.py", line 194, in __init__
    hand=hand)
  File "/home/seb/workspace/reachy/software/reachy/parts/arm.py", line 42, in __init__
    self.luos_io = SharedLuosIO.with_gate(f'r_{side}_arm', luos_port)
  File "/home/seb/workspace/reachy/software/reachy/io/luos.py", line 86, in with_gate
    return cls(port_template)
  File "/home/seb/workspace/reachy/software/reachy/io/luos.py", line 45, in __init__
    io = attempt_luos_connection(luos_port)
  File "/home/seb/workspace/reachy/software/reachy/io/luos.py", line 15, in attempt_luos_connection
    io = LuosIO(port, log_conf='')
  File "/home/seb/.local/lib/python3.6/site-packages/pyluos/robot.py", line 60, in __init__
    *args, **kwargs)
  File "/home/seb/.local/lib/python3.6/site-packages/pyluos/io/__init__.py", line 56, in io_from_host
    raise ValueError('No corresponding IO found (among {}).'.format(discover_hosts))
ValueError: No corresponding IO found (among <function discover_hosts at 0x7fbbb23f4378>).

My versions :

  • Ubuntu 18.04
  • Python 3.6.8
  • reachy package : -e [email protected]:pollen-robotics/reachy.git@d98b292#egg=reachy&subdirectory=software (installed today from github)

The file /dev/ttyACM0 exists when the robot is connected to the computer

Do you have an idea of what's going on ?

Thank you

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.