Git Product home page Git Product logo

airobot's People

Contributors

anthonysimeonov avatar idanshen avatar ju-kreber avatar richardrl avatar taochenshh 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

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

airobot's Issues

Python error while installation

I am facing this error error in airobot setup command: 'python_requires' must be a string containing valid version specifiers; Invalid specifier: '>=2.7.*' while installing. My python version is 3.9.18. Someone please help.

Yumi 14050 support

There is no support for simulation to Yumi IRB 14050 (single arm) robot. Could you make it happen?

Quick question on the CoRL 2020 paper

Hello @anthonysimeonov

Thank you for sharing this code base. I'm excited to use it.

I am looking at your CoRL 2020 paper: https://anthonysimeonov.github.io/rpo-planning-framework/

From running your YuMi code examples in simulation (in this repository here), I see a setup that looks very similar to what's in the paper. Did you use this code base in the CoRL 2020 paper? If so I'm wondering if there is some code accessible for this paper? It doesn't seem listed on the project website nor do I see it on GitHub anywhere. Thanks!

Example with simulated YuMi uses outdated gripper methods

Describe the bug
If you run the simulation example with the YuMi:

python examples/yumi/sim/joint_position_control.py

It seems like there are some outdated methods, as reported later. These happen when calling:

robot.arm.left_arm.eetool.set_pos(0.005)
ar.log_info('Left gripper position: ')
ar.log_info(np.round(robot.arm.left_arm.eetool.get_pos(), 6))
ar.log_info('\n')
time.sleep(3)

The end effector tool robot.arm.left_arm.eetool is calling set_pos. However, from searching the code base (e.g., using GitHub or in vscode) I only see set_pos defined in this class:

class Robotiq2F140Real(EndEffectorTool):
"""
Class for interfacing with Robotiq 2F140 gripper when
it is attached to UR5e arm. Communication with the gripper
is either through ROS over through a TCP/IP socket.
Args:
cfgs (YACS CfgNode): configurations for the gripper.
Attributes:
cfgs (YACS CfgNode): configurations for the gripper.
jnt_names (list): list of joint names of the gripper.
"""

For a special gripper for the UR5 robot (and not for the YuMi). The end effector tool in the examples/yumi/sim/joint_position_control.py script is from this class:

class YumiParallelJawPybullet(SimpleGripperMimicPybullet):
"""
Class for interfacing with the standard Yumi
parallel jaw gripper.
Args:
cfgs (YACS CfgNode): configurations for the gripper
pb_client (BulletClient): pybullet client.
Attributes:
cfgs (YACS CfgNode): configurations for the gripper.
gripper_close_angle (float): position value corresponding to the
fully closed position of the gripper.
gripper_open_angle (float): position value corresponding to the
fully open position of the gripper.
jnt_names (list): names of the gripper joints.
gripper_jnt_ids (list): pybullet joint ids of the gripper joints.
robot_id (int): robot id in Pybullet.
jnt_to_id (dict): mapping from the joint name to joint id.
"""
def __init__(self, cfgs, pb_client):
super(YumiParallelJawPybullet, self).__init__(cfgs=cfgs,
pb_client=pb_client)

and from searching the parent classes, it seems like there is no set_pos anywhere, or get_pos as well.

To Reproduce
Steps to reproduce the behavior:

  1. Create a clean conda environment with Python 3.7. Follow instructions in the current README.
  2. Run python examples/yumi/sim/joint_position_control.py.
  3. The error message is as follows:
Traceback (most recent call last):
  File "examples/yumi/sim/joint_position_control.py", line 54, in <module>
    main()
  File "examples/yumi/sim/joint_position_control.py", line 39, in main
    robot.arm.left_arm.eetool.set_pos(0.005)
AttributeError: 'YumiParallelJawPybullet' object has no attribute 'set_pos'

Even if that line of code is commented out, the get_pos method also does not seem to be defined:

Traceback (most recent call last):
  File "examples/yumi/sim/joint_position_control.py", line 54, in <module>
    main()
  File "examples/yumi/sim/joint_position_control.py", line 41, in main
    ar.log_info(np.round(robot.arm.left_arm.eetool.get_pos(), 6))
AttributeError: 'YumiParallelJawPybullet' object has no attribute 'get_pos'

I was able to get the code to run without errors with these changes:

  • set_pos() --> set_jpos()
  • get_pos() --> get_jpos()

Is this the correct intended behavior?

Expected behavior
I expect to see no errors when running the script.

Desktop (please complete the following information):

  • OS: Ubuntu 18.04
  • Code version: master branch as of commit 57a6b19

Additional context
I'm sure that this is just a matter of updating the API. I just wanted to report this so that the examples all run correctly.

UR10 with 2F140

How can a new robot be added in this existing library? For example, I want to use UR10 with 2f140.
I tried to add the URDF of ur10, but it seems it requires some other changes as well.

2f140 causing segmentation fault

Describe the bug
After installing in python2.7 with virtualenv on Mac OS Sierra, I get the following error on the block_stacking example script:

pybullet build time: Mar 28 2020 16:47:39
Version = 4.1 NVIDIA-10.17.5 355.10.05.45f01
Vendor = NVIDIA Corporation
Renderer = NVIDIA GeForce GT 750M OpenGL Engine
b3Printf: Selected demo: Physics Server
startThreads creating 1 threads.
starting thread 0
started thread 0 
MotionThreadFunc thread started
b3Printf: b3Warning[examples/Importers/ImportURDFDemo/BulletUrdfImporter.cpp,126]:

b3Printf: No inertial data for link, using mass=1, localinertiadiagonal = 1,1,1, identity local inertial frame
b3Printf: b3Warning[examples/Importers/ImportURDFDemo/BulletUrdfImporter.cpp,126]:

b3Printf: ee_link
b3Printf: b3Warning[examples/Importers/ImportURDFDemo/BulletUrdfImporter.cpp,126]:

b3Printf: No inertial data for link, using mass=1, localinertiadiagonal = 1,1,1, identity local inertial frame
b3Printf: b3Warning[examples/Importers/ImportURDFDemo/BulletUrdfImporter.cpp,126]:

b3Printf: base
b3Printf: b3Warning[examples/Importers/ImportURDFDemo/BulletUrdfImporter.cpp,126]:

b3Printf: No inertial data for link, using mass=1, localinertiadiagonal = 1,1,1, identity local inertial frame
b3Printf: b3Warning[examples/Importers/ImportURDFDemo/BulletUrdfImporter.cpp,126]:

b3Printf: tool0
b3Printf: b3Warning[examples/Importers/ImportURDFDemo/BulletUrdfImporter.cpp,126]:

b3Printf: No inertial data for link, using mass=1, localinertiadiagonal = 1,1,1, identity local inertial frame
b3Printf: b3Warning[examples/Importers/ImportURDFDemo/BulletUrdfImporter.cpp,126]:

b3Printf: left_inner_finger_pad
b3Printf: b3Warning[examples/Importers/ImportURDFDemo/BulletUrdfImporter.cpp,126]:

b3Printf: No inertial data for link, using mass=1, localinertiadiagonal = 1,1,1, identity local inertial frame
b3Printf: b3Warning[examples/Importers/ImportURDFDemo/BulletUrdfImporter.cpp,126]:

b3Printf: right_inner_finger_pad
b3Printf: b3Warning[examples/Importers/ImportURDFDemo/BulletUrdfImporter.cpp,126]:

b3Printf: No inertial data for link, using mass=1, localinertiadiagonal = 1,1,1, identity local inertial frame
b3Printf: b3Warning[examples/Importers/ImportURDFDemo/BulletUrdfImporter.cpp,126]:

b3Printf: ee_tip
Fatal Python error: Segmentation fault

Current thread 0x000070000201a000 (most recent call first):
  File "/Users/richard/improbable/airobot_labversion2/src/airobot/ee_tool/robotiq2f140_pybullet.py", line 158 in get_pos
  File "/Users/richard/improbable/airobot_labversion2/src/airobot/ee_tool/robotiq2f140_pybullet.py", line 214 in _set_rest_joints
  File "/Users/richard/improbable/airobot_labversion2/src/airobot/ee_tool/robotiq2f140_pybullet.py", line 207 in _th_mimic_gripper
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/threading.py", line 763 in run
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/threading.py", line 810 in __bootstrap_inner
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/threading.py", line 783 in __bootstrap

Thread 0x00007fffb8ec43c0 (most recent call first):
  File "/Users/richard/improbable/airobot_labversion2/src/airobot/utils/common.py", line 353 in list_class_names
  File "/Users/richard/improbable/airobot_labversion2/src/airobot/sensor/camera/__init__.py", line 6 in <module>
  File "/Users/richard/improbable/airobot_labversion2/src/airobot/__init__.py", line 136 in __init__
  File "block_stacking.py", line 15 in main
  File "block_stacking.py", line 58 in <module>
Segmentation fault: 11

It only errors on "ur5e_2f140" not "ur5e_stick". The end effector is causing problems.

Additionally, when I break into the line right before the error:

File "/Users/richard/improbable/airobot_labversion2/src/airobot/ee_tool/robotiq2f140_pybullet.py", line 158 in get_pos

I can call getJointInfo successfully on the same self.robot_id and jnt_id for which getJointState fails:

self._pb.getJointInfo(self.robot_id, jnt_id)
(Pdb) (12, 'finger_joint', 0, 13, 12, 1, 0.0, 0.0, 0.0, 0.7, 1000.0, 2.0, 'left_outer_knuckle', (-1.0, 0.0, 0.0), (-8.625e-08, -0.030596341699999998, 0.023455000000000004), (0.9119033508710461, 0.0, 0.0, -0.4104050178423233), 11)

So the joint exists, is loaded from the URDF, yet we can't read the state...

Expected behavior
The script should complete the block stacking behavior in pybullet.

Desktop (please complete the following information):
Mac OSX 10.12 Sierra

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.