jenniferbuehler / grasp-execution-pkgs Goto Github PK
View Code? Open in Web Editor NEWPackage(s) to execute a grasp incl. execution in Gazebo
License: BSD 3-Clause "New" or "Revised" License
Package(s) to execute a grasp incl. execution in Gazebo
License: BSD 3-Clause "New" or "Revised" License
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.
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!
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
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
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.
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.
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!
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
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
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.
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!
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!
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?
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.
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
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!
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.