Coder Social home page Coder Social logo

rethinkrobotics / intera_sdk Goto Github PK

View Code? Open in Web Editor NEW
39.0 39.0 63.0 1.83 MB

Software Development Kit and Interface for Rethink Robotics robots

Home Page: http://sdk.rethinkrobotics.com/intera/

License: Apache License 2.0

Shell 1.34% CMake 0.68% Python 97.98%

intera_sdk's People

Contributors

adrianzw avatar asthakukreja avatar forrest-rm avatar iantheengineer avatar ieiuniumlux avatar matthewpeterkelly avatar rethink-mark avatar rethink-rlinsalata avatar shanerozenlevy avatar shiweiwang avatar utq67 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

Watchers

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

intera_sdk's Issues

Using intera_interface with Python3

I'm trying to control the robot from a program that requires python3. Is it possible to use the intera_interface with python3? When I try to import intera_interface my code I get import errors because of course the import statements in intera_interface are not valid in python 3.

What is the best way to work around this?

Camera Example shouldn't close camera on exit

When running RViz in conjunction with the camera example, I would expect to be able to still use the RViz camera after the camera example has exited. Since the camera can be open before the example, I would expect the camera to remain open after the example closes. Can we try to avoid closing the camera on exiting?

Support for Noetic with Sawyer

Hi,

I am unsure if this is the right thread. I notice the Noetic is supported for Intera_SDK. Does this mean the Sawyer can be upgraded to ROS Noetic in the near future? I am curious about the timestamp for such an upgrade if possible.

Navigator Interface using the IO Framework

We need a Navigator interface that properly exposes the signalling from each of the buttons onboard the robot. This is required for the examples, and handy for a basic user interface.

ROS2 Migration as ROS Noetic EOL is 2025

Hi,

I am wodering if there is still plans for the migration to ROS2 and which version of ROS2. My lab is planning to make a decision going forward for the future of the lab space.

-David A.

Lights Interface using the IO Framework

It would be nice to turn off and on each of the lights onboard the robot at will with the SDK interface. Preferably, this would be an intera_interface class.

[feature request] Sawyer w/ reinforcement learning (openai gym)

Hi, I hope someone is taking care of this project :)

Can you please provide a tutorial like this one that explains how to setup ROS Kinetic to run an Openai gym algorithm using Sawyer?

I have evidence that suggests that launching ./intera.sh modifies somehow the settings, therefore the classic tutorials are quite ineffective in this case.

Canny edge detection should not be default

After A/B testing against a handful of users (fellow developers), we got the feedback that the Canny-edge detection is really cool, but shouldn't be the default mode of operation for the camera example. Can we replace the -u flag with a -e flag and name the variable "edge" for Canny edge detection in camera_display.py?

Limb.py interface to work with Sawyer

The intera_interface/limb.py interface needs to function with the Sawyer robot:

  • A user should be able to open a python shell and be able to move Sawyer's arms
  • This interface needs to be robot-agnostic, ie. no hard coding of joint names (should be grabbed from ROS param)
  • Velocity Mode functions should be removed (or disabled), as we dropped support for this mode at the JCB level Velocity mode works just fine :)
  • A good Neutral pose (of joint angles) needs to be decided for Sawyer, uploaded to ROS Param, and fetched when initializing the interface
  • All interface functions should be tested for their expected functionality, and fixed when necessary

Fix gripper_action Server and Examples

These examples need to be updated for Intera:

  • intera_examples/launch/gripper_action_client.launch
  • intera_examples/scripts/gripper_action_client.py
  • intera_interface/scripts/gripper_action_server.py
  • intera_interface/src/gripper_action/gripper_action.py
  • intera_interface/src/gripper_action/__init__.py

Better error handling for Gripper interface

Right now, when the electric gripper is uncalibrated, or jammed, we do not report this as an error state to the user. Gripper() class needs to be update to properly notify the user of error states.

Where does the cartesian XYZ pointing to ?

Hi, I am new to sawyer. I haven't found commentary or docs mentioning the cartesian XYZ direction and the quaternion XYZW in the repo.

Does anyone know where I can find them?
Thanks

ikreq.tip_names.append('right_hand')

Hello, I use ExternalTools/right/PositionKinematicsNode/IKService in cpp. How would I set "tip_names" like in python? What is the default value if "tip_names" is not set? I am a newbie just getting started. Thank you very much for your answers

Cannot control Sawyer gripper's holding force

Hi, I ran the gripper example, but I fould that I could not control its gripping force. The error message is

[ERROR] [WallTime: 1499118804.154082] Cannot find signal 'holding_force_n' in this IO Device.

And after I did rostopic echo /io/end_effector/right_gripper/config, it turned out that there was indeed not a signal named 'holding_force_n'.
What's wrong with it?

P.S. Is there any documentation describing how the gripper is controlled (e.g. force control / position control etc.)?

Support for ROS2?

Hello,

First of all, thank you for all the tools that are provided, these are really helpful!

We would like to migrate our lab's ROS installation to ROS2, and I would appreciate any info on the following:

  1. Is there currently support of ROS2 for the intera packages?
  2. If not, are you planning to migrate the intera_sdk and sawyer_robot repos to ROS2?
  3. What about Noetic, would the intera packages be compatible?
  4. I assume that migrating intera_sdk and sawyer_robot packages to ROS2 is not just a matter of a few simple steps, but if it is could you please give some guidance (or perhaps for migrating to Noetic instead)?

I really appreciate any info you could give me on these.

Many Thanks!

ROS2 migration

Dear all,
I was wondering if there are any plans for migrating the package to ROS2. I am new to the community so I don't know how difficult it is but I am interested in using the capabilities provided by ROS2. So are there any plans for the migration as of now? Is it very complicated to do it?
I really appreciate any help you can provide.

Precise control of pose in sawyer

Hi team,

I noticed that when I give a current absolute pose to the robot using the script go_to_cartesian_pose.py, the robot never reaches that position, there is always a error of 2-3 mm in its position coordinates. Infact, when I give the relative pose of [0,0,0,0,0,0] to the robot, it always move by 1-2 mm in position, which it should not be.

Also when I increment just rotations using -R [0,0,0,0.1,0,0] for 3 times i.e total change of 0.3 radian in roll angle and return back to same pose using -R [0,0,0,-0.1,0,0] for 3 times, the position coordinates change, again which it should not.

Kindly provide support on this matter.

Update Joint Trajectory Client for Sawyer

Currently, the Joint Trajectory Client is very Baxter-centric. Update to use Sawyer-joints and Sawyer-safe poses.

  • intera_sdk/intera_examples/launch/joint_position_joystick.launch
  • intera_sdk/intera_examples/scripts/joint_trajectory_client.py

Likely a SawyerJointTrajectoryClient configuration file would help:

  • Configuration file

minjerk.py coefficient calculation not robust to zero value timestamps

branch: master
commit: 039317d

Sending trajectories to the JTAS with any waypoints who's timestamps are zero, causes the arm to perform an erratic and fast movement and then stop its execution (most likely due to a velocity limit violation). The following runtime warnings are reported in the joint_trajectory_action_server node:

[WARN] [1503994476.373382]: /sdk_velocity_joint_trajectory_action_server_right: Trajectory execution Preempted. Stopping execution.
[INFO] [1503994689.669455]: /sdk_velocity_joint_trajectory_action_server_right: Executing requested joint trajectory
/home/planner/sawyer_ws/src/intera_sdk/intera_interface/src/intera_joint_trajectory_action/minjerk.py:124: RuntimeWarning: invalid value encountered in divide
  v1 = d1 / t1
/home/planner/sawyer_ws/src/intera_sdk/intera_interface/src/intera_joint_trajectory_action/minjerk.py:123: RuntimeWarning: invalid value encountered in divide
  v0 = d0 / t0
/home/planner/sawyer_ws/src/intera_sdk/intera_interface/src/intera_joint_trajectory_action/minjerk.py:128: RuntimeWarning: invalid value encountered in divide
  A=(gx-(x+v*t+(a/2.0)*t*t))/(t*t*t);
/home/planner/sawyer_ws/src/intera_sdk/intera_interface/src/intera_joint_trajectory_action/minjerk.py:129: RuntimeWarning: invalid value encountered in divide
  B=(gv-(v+a*t))/(t*t);
/home/planner/sawyer_ws/src/intera_sdk/intera_interface/src/intera_joint_trajectory_action/minjerk.py:130: RuntimeWarning: invalid value encountered in divide
  C=(ga-a)/t;
[WARN] [1503994700.889902]: /sdk_velocity_joint_trajectory_action_server_right: Trajectory execution Preempted. Stopping execution.
[INFO] [1503994700.999374]: /sdk_velocity_joint_trajectory_action_server_right: Executing requested joint trajectory
[WARN] [1503994717.721683]: /sdk_velocity_joint_trajectory_action_server_right: Trajectory execution Preempted. Stopping execution.
[INFO] [1503994717.923978]: /sdk_velocity_joint_trajectory_action_server_right: Executing requested joint trajectory
[WARN] [1503994739.461399]: /sdk_velocity_joint_trajectory_action_server_right: Trajectory execution Preempted. Stopping execution.
[INFO] [1503994739.669233]: /sdk_velocity_joint_trajectory_action_server_right: Executing requested joint trajectory
/home/planner/sawyer_ws/src/intera_sdk/intera_interface/src/intera_joint_trajectory_action/minjerk.py:124: RuntimeWarning: divide by zero encountered in divide
  v1 = d1 / t1
/home/planner/sawyer_ws/src/intera_sdk/intera_interface/src/intera_joint_trajectory_action/minjerk.py:125: RuntimeWarning: invalid value encountered in multiply
  gv = np.where(np.multiply(v0, v1)>=1e-10, 0.5 * ( v0 + v1 ), np.zeros(k)) # 0 + eps
/home/planner/sawyer_ws/src/intera_sdk/intera_interface/src/intera_joint_trajectory_action/minjerk.py:123: RuntimeWarning: divide by zero encountered in divide
  v0 = d0 / t0
/home/planner/sawyer_ws/src/intera_sdk/intera_interface/src/intera_joint_trajectory_action/minjerk.py:128: RuntimeWarning: divide by zero encountered in divide
  A=(gx-(x+v*t+(a/2.0)*t*t))/(t*t*t);
/home/planner/sawyer_ws/src/intera_sdk/intera_interface/src/intera_joint_trajectory_action/minjerk.py:135: RuntimeWarning: invalid value encountered in subtract
  a3=10*A-4*B+0.5*C;
/home/planner/sawyer_ws/src/intera_sdk/intera_interface/src/intera_joint_trajectory_action/minjerk.py:136: RuntimeWarning: invalid value encountered in add
  a4=(-15*A+7*B-C)/t;
/home/planner/sawyer_ws/src/intera_sdk/intera_interface/src/intera_joint_trajectory_action/minjerk.py:137: RuntimeWarning: invalid value encountered in subtract
  a5=(6*A-3*B+0.5*C)/(t*t);
[WARN] [1503994764.494833]: /sdk_velocity_joint_trajectory_action_server_right: Trajectory execution Preempted. Stopping execution.

I believe this should be dealt with on the SDK side, preventing it from propagating through the controllers and causing this erratic behaviour in the arm.

joint_position_file_playback won't run

Example won't run because there are two definitions for the -l argument to the argparse parser. See here. It's currently defined to be both which limb to use and how many times to loop the playback.

Very minor issue, but should probably be fixed.

Joystick example not functioning

$ rosrun intera_examples joint_position_joystick.py -j xbox,

Feedback is continually printed out to the console. However, button
presses do not appear to do anything.

As soon as the left joystick is moved up, down, left, or right, the script
errors out:

Traceback (most recent call last):
  File
"/home/qagroup/ros_ws/src/intera_sdk/intera_examples/scripts/joint_position_joystick.py",
line 226, in <module>
    main()
  File
"/home/qagroup/ros_ws/src/intera_sdk/intera_examples/scripts/joint_position_joystick.py",
line 221, in main
    map_joystick(joystick, args.limb)
  File
"/home/qagroup/ros_ws/src/intera_sdk/intera_examples/scripts/joint_position_joystick.py",
line 140, in map_joystick
    cmd[0](*cmd[1])
  File
"/home/qagroup/ros_ws/src/intera_sdk/intera_examples/scripts/joint_position_joystick.py",
line 67, in set_j
    cmd[joint] = delta + limb.joint_angle(joint)
AttributeError: 'str' object has no attribute 'joint_angle'

Cameras.set_cognex_strobe() does not work

The method set_cognex_strobe(True) does not work for me. We have a sawyer, have the intera 5.3 firmware on the sawyer PC, and are using the latest git repos. The attached strobe.py.txt is a minimal python2 example. The call times out with this error:

[WARN]: Timed out waiting for command acknowlegment...

The internals call set_signal(), which calls publish_command(), which fails because it finds that no connections exist. I have not figured out what ros topic or service it wants to publish to. The same error occurs whether the camera is streaming or not.

strobe.py.txt

Fix head_action Server and Examples

These examples need to be updated for Intera:

  • intera_examples/launch/head_action_client.launch
  • intera_examples/scripts/head_action_client.py
  • intera_interface/scripts/head_action_server.py
  • intera_interface/src/head_action/head_action.py
  • intera_interface/src/head_action/__init__.py

ping successfully but can not control sawyer robot by wifi

we can control intera sdk by  wifi ,and we change the wifi to ethernet cable,we change our  robot to use "Automatic" addressing, and set other steps , it is successfully.
but when we back to wifi connect , wrong coming, ping robot_hosname.local is successfully, but can not run all of the examples ,such as can not run rosrun intera_examples head_wobbler.py etc. 

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.