GithubHelp home page GithubHelp logo

jenniferbuehler / grasp-execution-pkgs Goto Github PK

View Code? Open in Web Editor NEW
34.0 8.0 17.0 134 KB

Package(s) to execute a grasp incl. execution in Gazebo

License: BSD 3-Clause "New" or "Revised" License

C++ 89.92% CMake 10.08%

grasp-execution-pkgs's People

Contributors

jenniferbuehler 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

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

grasp-execution-pkgs's Issues

Improvement / workaround: MoveIt! collision checking in-between trajectory keyframes

The MoveIt! motion planner only does collision checking at key frames (which is certainly intended due to performance reasons). If there is a collision in-between key frames, it is not detected. Therefore, in some instances, the arm may still collide with objects.

The probably easiest way to fix this is to check each trajectory by refining it to key-frames at very small intervals, then do the collision checking again, and only accept the trajectory if there are no collisions. If there are collisions, re-compute a new trajectory.

Until this fix is done, a way to detect such a "faulty" trajectory is to enable the display of the trajectory path in RViz and visually check for possible collisions. If one is found, then abort execution and try again.

Constantly failed of part 3 in the Automated grasping tutorial

Hi, Jennifer it's me again:)

I was following your awesome tutorial performing grasp action with jaco.

I have successfully done the first two parts, but I got some problem when following part 3. I tried like 7 or 8 times, although I have "/jaco/grasp_execution/grasp: Action finished. Result = success: 1" and "Grasp action finished: SUCCEEDED". But every time the jaco hand could not grasp the cube tight enough, and the cube would fall when performing the home action.

Please tell me if you need other information generated in this process.

Thanks in advance!

Grasped object cannot be picked up

Hi Jennifer :)

First of all I want to say thank you so much for such amazing works that you've got here, it really helps me a lot for my research. So I follow you grasp execution with move it tutorial, and I already got to the point where I call the grasp_cube_test node and the jaco arm was able to grasp the cube. I already attached the cube to the robot in moveit, but when I tried to lift it just by several cm, the cube just fell down. I tried to enable do_surface in the cube planner, but still it didn't solve my problem. Is there any config in the grasping function that I can change in order to solve this matter? Thank you

Grasping the cube gives error

Running the following command in the tutorial
roslaunch grasp_execution test_grasp.launch object_name:=cube1 robot_namespace:=jaco
gives the following error

[simple_grasp_action_client-1] process has died [pid 21351, exit code -6, cmd /home/cogrobo/catkin_ws/devel/lib/grasp_execution/simple_grasp_action_client __name:=simple_grasp_action_client __log:=/home/cogrobo/.ros/log/a9f3d39c-4f13-11e8-918b-74c63bfadf8b/simple_grasp_action_client-1.log].
log file: /home/cogrobo/.ros/log/a9f3d39c-4f13-11e8-918b-74c63bfadf8b/simple_grasp_action_client-1*.log

and is unable to attach the cube to arm. What is the reason behind it?
I ran the tutorial with grasp_fix

Error: Only support 1 axis

I install this package according to Installation and after successful compilation, I continue to run the grasp demo according to Grasping with Jaco in Gazebo, but when I input
roslaunch grasp_execution_jaco_tutorial jaco_on_table_gazebo_objects_controlled.launch
or
roslaunch grasp_execution_jaco_tutorial jaco_on_table_gazebo_objects_controlled.launch load_grasp_fix:=true
there comes an error

[FATAL] [1522491539.404222264, 0.096000000]: Only support 1 axis

Why is it? How can I solve it? Thank you.

On Melodic: boost mutex exception on program exit

When terminating programs (even as simple as a ROS client to execute a grasp), on Melodic the following error message happens:

terminate called after throwing an instance of 'boost::exception_detail::clone_impl<boost::exception_detail::error_info_injector<boost::lock_error> >' what(): boost: mutex lock failed in pthread_mutex_lock: Invalid argument

This will need to be investigated. So far, the problem only arises at program exit.

Cannot save result to file for automatic grasping

Hi Jennifer:
I am trying to follow the tutorial at https://github.com/JenniferBuehler/grasp-execution-pkgs/wiki/Automated-grasping-tutorial#part-2-grasp-from-file. When I am generating a grasp, I follow the commands in the tutorial. But although it seems that the eigen planning is done, I have not result saved to file. I got this message:

[ INFO] [1507775609.003429447]: Current Step: 70000 - EigenGraspPlanner.cpp, 1066
[ INFO] [1507775609.003439659]: Energy: 51.6533 - EigenGraspPlanner.cpp, 1154
[ INFO] [1507775609.003448782]: Planning complete!! - EigenGraspPlanner.cpp, 173
[ INFO] [1507775609.066206204]: === EigenGraspPlanner complete === - EigenGraspPlanner.cpp, 1052
[ INFO] [1507775609.066227874]: Planning done. - EigenGraspPlanner.cpp, 375
MoveDOF failsafe hit
MoveDOF failsafe hit
MoveDOF failsafe hit
[ INFO] [1507775609.144367963]: Saving result world files in ~/Desktop/111/ - GraspItServices.cpp, 396
Open finger loops: 500 Hand: jaco_robot
[ INFO] [1507775609.944596416]: INFO - EigenGraspPlanner: quickOpen() returned false. The hand may have been completely opened (quickOpen() is a Graspit! hack with no alternative so far, as auto-grasp requires collision-free state) - EigenGraspPlanner.cpp, 504
[ WARN] [1507775609.944627487]: Could not correctly open hand with auto-grasp, the pre-grasp state may not be ideal. - EigenGraspPlanner.cpp, 530
Open finger loops: 500 Hand: jaco_robot
[ INFO] [1507775609.952631532]: INFO - EigenGraspPlanner: quickOpen() returned false. The hand may have been completely opened (quickOpen() is a Graspit! hack with no alternative so far, as auto-grasp requires collision-free state) - EigenGraspPlanner.cpp, 504
[ WARN] [1507775609.952644249]: Could not correctly open hand with auto-grasp, the pre-grasp state may not be ideal. - EigenGraspPlanner.cpp, 530
Open finger loops: 501 Hand: jaco_robot
[ INFO] [1507775609.969428569]: INFO - EigenGraspPlanner: quickOpen() returned false. The hand may have been completely opened (quickOpen() is a Graspit! hack with no alternative so far, as auto-grasp requires collision-free state) - EigenGraspPlanner.cpp, 504
[ WARN] [1507775609.969451907]: Could not correctly open hand with auto-grasp, the pre-grasp state may not be ideal. - EigenGraspPlanner.cpp, 530
[ INFO] [1507775609.969475377]: Generating result grasp messages... - GraspItServices.cpp, 406
[ INFO] [1507775609.969509999]: Planning done. - GraspItServices.cpp, 419

On the other terminal, it says that

[ INFO] [1507775609.969608758]: Successfully finished grasp planning. Have 3 resulting grasps. - grasp_planning_eg_planner_client.cpp, 233

So I assume there should be 3 files saved locally. But I don't have any.

Have you had this problem before? Why the result is not saved?

Also, when I am loading the robot, I always got this error:

No normalization data found; using factors of 1.0
Read 1 eigengrasps from EG file
Using eigengrasps from file: eigen/eigen.xml
Loaded virtual contacts from file virtual/contacts.vgr
[ INFO] [1507775570.236099580]: Loaded robot /home/shen/1111/src/graspit-pkgs/jaco_graspit_sample/models/robots/jaco_robot/jaco_robot.xml - GraspItSceneManager.cpp, 579
GCOL: model not found
GCOL: model not found
GCOL: model not found
GCOL: model not found

Is this relavant to the issue I have?

Thank you so much for your tutorial!

Possible to add multiple arms?

Hi, I have a requirement to add 2 arms in the gazebo with the exact implementation as mentioned in "Grasping with Jaco in Gazebo", could you please help me to know if I shall simulate this with multiple arms?

Thanks in advance

Question: Automated grasping

In Automated grasping tutorial is shown a way of executing grasps that are pre-computed and saved on a file. My question is if it is possible to use my own without using GraspIt, or if needed, if there is a possible way of providing GraspIt the coordinates of the grasp that was selected in order to GraspIt generate the .msg file needed.

Thank you

Improvement: Force-feedback for determining when grasp has happened

At the moment, a grasp is detected to have been finalized when the fingers are not moving any more. This should be sufficient in most cases and is good enough for testing purposes.
However it is possible that the grasp is actually not yet finalized, and the execution then goes on to lift the object, which is not held yet. For example, the Gazebo grasp plugin may "lag behind" a little with its attachment, due to its nature of establishing a grasp only after contacts have existed for a little while. Then, when the execution proceeds, the object slips out of the grip.
This doesn't happen very often though.

A "dirty" hack would be to send out a ROS message from the gazebo plugin to signal the grasp to be finished. However this is essentially a force feedback task, so it should be properly wrapped into such, so that it can be handled by the grasp execution on a general level supporting all sorts of force-feedback mechanisms.

Placing an object based on world frame after picking it up

Thanks for the great package. I am trying to figure out how to plan the place operation using your script, SimpleAutomatedGraspExecution. In particular, once an object has been grasped, I would like to plan the placement based on the world frame since the objects were originally spawned with the world frame in mind. However, when using the world frame to specify a target pose, the planAndExecuteMotion method is unable to calculate a plan. Are there any approaches you can suggest to allow planning a precise placement of the object on the table according to the world frame? Thanks!

Cannot execute grasp action

Hi Jennifer:
I am executing the jaco grasp using the example grasps by following the tutorial here at https://github.com/JenniferBuehler/grasp-execution-pkgs/wiki/Automated-grasping-tutorial#step-2-execute-the-grasp.

I have done roslaunch grasp_execution_jaco_tutorial jaco_on_table_gazebo_complete.launch load_grasp_fix:=true and roslaunch grasp_execution_jaco_tutorial simple_automated_grasp_execution.launch run_type:=2 grasp_filename:=rospack find jaco_graspit_sample/example_grasps/Grasp_1.msg in 2 terminals. The arm moves towards the table. However, after the arm is on the table and about to grasp, the program crashes.

Error msg in jaco_on_table_gazebo_complete:

[ INFO] [1507779977.419191018, 7.594000000]: TrajectoryActionServer: Execution of trajectory finished. Success=1
[ INFO] [1507779977.419523036, 7.594000000]: /jaco/grasp_execution/grasp: received new goal.
[ INFO] [1507779977.419636442, 7.594000000]: /jaco/grasp_execution/grasp: Goal accepted.
[ INFO] [1507779977.419662189, 7.594000000]: Sending grasp control goal.
[ INFO] [1507779977.419833261, 7.595000000]: /jaco/grasp_execution/grasp_control: received new goal.
[ INFO] [1507779977.419859274, 7.595000000]: SimpleGraspControlServer: Waiting to obtain the current state of the gripper...
[ INFO] [1507779977.419879867, 7.595000000]: ArmJointStateSubscriber: Waiting...
[ INFO] [1507779977.521061019, 7.696000000]: ArmJointStateSubscriber: Waiting...
[ INFO] [1507779977.623371622, 7.797000000]: SimpleGraspControlServer: Obtained most recent joint state.
[ERROR] [1507779977.623408376, 7.797000000]: Could not obtain indices of the arm joints in joint state
[ERROR] [1507779977.623424460, 7.797000000]: SimpleGraspControlServer: Not all gripper joints specified in target state.
[ERROR] [1507779977.623442224, 7.797000000]: /jaco/grasp_execution/grasp_control: Goal cannot be accepted
[ERROR] [1507779977.623745983, 7.798000000]: Action failed.
[ INFO] [1507779977.623778668, 7.798000000]: /jaco/grasp_execution/grasp: Action finished. Result = success: 0
execution_time: 0.000000000

Error msg in simple_automated_grasp_execution:

[ INFO] [1507779973.980043542, 4.157000000]: ###### Reaching #######
[ INFO] [1507779974.233671475, 4.411000000]: Planning trajectory...
[ INFO] [1507779974.273721201, 4.451000000]: Now sending joint trajectory goal
[ INFO] [1507779977.419398715, 7.594000000]: Joint trajectory action finished: SUCCEEDED
[ INFO] [1507779977.419418741, 7.594000000]: ###### Grasping #######
[ERROR] [1507779977.623891774, 7.798000000]: Could not execute grasp action: ABORTED
[ERROR] [1507779977.623911990, 7.798000000]: Could not grasp cube1
[ERROR] [1507779977.623929766, 7.798000000]: Failed to run automated grasp execution

It seems something is wrong with the grasping?

Thank you so much!

Launch file missing for cubes

When I run the following command
roslaunch grasp_execution_jaco_tutorial spawn_and_reach_test_cube.launch

I received the following msg.
[spawn_and_reach_test_cube.launch] is neither a launch file in package [grasp_execution_jaco_tutorial] nor is [grasp_execution_jaco_tutorial] a launch file name
The traceback for the exception was written to the log file

I also could not find the launch file. Am I missing something?

Error on palm link

Hi
I am getting this error
can Someone help me out

[Msg] Loading grasp-fix plugin
[Msg] GazeboGraspFix: Using disable_collisions_on_attach 0
[Msg] GazeboGraspFix: Using update rate 4
[Msg] GazeboGraspFix: Using max_grip_count 8
[Msg] GazeboGraspFix: Using grip_count_threshold 4
[Msg] GazeboGraspFix: Using release_tolerance 0.005
Error [Element.cc:914] Missing element description for [palm_link]
[Err] [GazeboGraspFix.cpp:202] ERROR: GazeboGraspFix: Cannot use a GazeboGraspFix arm because not all of <arm_name>, <palm_link> and <gripper_link> elements specified in URDF/SDF. Skipping.
[Err] [GazeboGraspFix.cpp:261] ERROR: GazeboGraspFix: Cannot use a GazeboGraspFix because no arms were configured successfully. Plugin will not work.

Grasp with UR

Hello

I need to use the grasp execution package to grasp an object with an UR Robot.
Is this package generic for any robot or is it only valid with Jaco Arm

Thank you

Question: regarding placement of cube after grasping

Hi Jennifer,

I am trying to place the cube after the Jaco grasps it. While I can get it to place the object on a specific area of the table (hand-crafted grasp), I would like to maintain the original orientation of the cube. Is there a way to specify a constraint on the EEF's orientation so that the fingers face downward before ungrasping? Thanks!

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.