-
 

Package Summary

Tags No category tags.
Version 0.7.9
License Apache 2.0
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/ipa320/cob_manipulation.git
VCS Type git
VCS Version kinetic_dev
Last Updated 2024-02-19
Dev Status END-OF-LIFE
CI status Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

Grasp generation for Care-O-bot based on OpenRAVE

Additional Links

Maintainers

  • Felix Messmer

Authors

  • Witalij Siebert
  • Felix Messmer

MANUAL GENERATION OF GRASP TABLE

1. Provide a collision mesh of the target object (as *.stl)

Most likely there already is a collada mesh (*.dae) available in cob_gazebo_objects. Thus you simply have to convert the mesh from *.dae to *.stl using MeshLab for example.

  1. Open MeshLab -> File -> Import Mesh … -> select respective mesh [object_name].dae from cob_simulation/cob_gazebo_objects/media/models
  2. File -> Export Mesh As … -> Save it as [object_name].stl within cob_manipulatiuon/cob_grasp_generation/files/meshes

2. Prepare a new grasp table

You need to provide a *.csv file of the name [gripper_type]_[object_name].csv at cob_manipulation/cob_grasp_generation/files/database/[object_name], where [object_name] is the same as for the collision mesh and [gripper_type] could e.g. be either sdh or sdhx (cob4-gripper). The *.csv file has the following layout (columns):

id object [gripper_joint_0] [gripper_joint_n] direction qw qx qy qz pos-x pos-y pos-z eps_l1 vol_l1  
0 [object_name] [joint_pos_0] [joint_pos_n] [DIRECTION] [qw] [qx] [qy] [qz] [pos-x] [pos-y] [pos-z] [eps_l1] [vol_l1] 0
where id is the grasp_id, object is [object_name], followed by one column for each joint of the gripper specifying the joint configuration of the gripper when grasping the object (with gripper_joint_0 to gripper_joint_n being the gripper’s joint_names), direction can be used to specify e.g. as [TOP SIDE BOTTOM …] grasp, the grasp pose of the gripper reference coordinate system with respect to the object reference coordinate system (with [qw, qx, qy, qz] specifying the orientation as a quaternion and [pos-x, pos-y, pos-z] specifying the position in [mm]), eps_l1 and vol_l1 being grasp metrics e.g. force closure that can be used as grasp quality metric for sorting the grasps.

Notes:

  • each ros specifies another grasps (make sure to increase id accordingly)
  • the quaternion needs to be normalized, i.e. sqrt(qw² + qx² + qy² + qz²)!=1.0 (you might need to increase floating point precision to about 5 decimal digits. e.g. (0.0, 0.707, 0.0, 0.707) will throw an error; use (0.0, 0.707107, 0.0, 0.707107) instead!
  • you can initialize a grasptable by copying from an existing database entry

3. Use blender for generating initial grasp poses easily

  1. Open the Blender
  2. Clear the scene by removing all objects: press a (select all the objects), Entf (delete), Enter (confirm)
  3. Load the object: File -> Import -> STL (.stl) -> select [object_name].stl from cob_manipulatiuon/cob_grasp_generation/files/meshes (see step (1))
  4. Load the gripper: File -> Import -> STL (.stl) -> select [gripper].stl, e.g. palm.stl from cob_common/cob_descriptions/meshes/cob4_gripper for sdhx (cob4-gripper)
  5. Move the gripper to various grasp poses (do not move the object) by either using
    • g+x,g+y,g+z: for translation along x,y,z
    • r+x,r+y,r+z: for rotation around x,y,z
    • enter values directly
  6. Transfer the values from the Blender (position in [m], use the Quaternion RotationMode from the Dropdown menue!) to the grasp table (pos in [mm]!)

4. Visualization of the grasps in rviz

  1. roslaunch cob_grasp_generation show_grasp_rviz.launch gripper:=[gripper_type]
  2. rosrun cob_grasp_generation show_grasps_rviz_client.py (then enter [object_name] and [gripper_type] when prompted)

5. Tune grasps

Optimize the grasp entries in the table by modifying the grasp pose and/or grasp joint config based on the rviz visualization. Add more grasps

CHANGELOG

Changelog for package cob_grasp_generation

0.7.9 (2024-02-19)

0.7.8 (2023-01-04)

0.7.7 (2022-07-29)

0.7.6 (2021-12-23)

  • Merge pull request #150 from fmessmer/fix_pylint fix ci
  • move messages to dedicated package
  • Contributors: Felix Messmer, fmessmer

0.7.5 (2020-12-03)

  • Merge pull request #148 from fmessmer/test_noetic test noetic
  • ROS_PYTHON_VERSION conditional dependency
  • use setuptools instead of distutils
  • Bump CMake version to avoid CMP0048 warning
  • Contributors: Felix Messmer, fmessmer

0.7.4 (2020-03-18)

  • Merge pull request #145 from fmessmer/feature/python3_compatibility [ci_updates] pylint + Python3 compatibility
  • Use six.moves.input for all uses of raw_input/input
  • fix pylint errors
  • python3 compatibility via 2to3
  • Contributors: Felix Messmer, Loy van Beek, fmessmer

0.7.3 (2019-12-04)

0.7.2 (2019-05-20)

0.7.1 (2018-01-07)

  • Merge pull request #134 from ipa320/kinetic_release_candidate Kinetic release candidate
  • Merge pull request #132 from ipa-fxm/kinetic_dev [kinetic] updates from indigo_dev
  • Merge branch 'indigo_dev' of github.com:ipa320/cob_manipulation into kinetic_dev Conflicts: .travis.yml cob_kinematics/ikfast/src/ikfast_lbr.cpp cob_kinematics/ikfast/src/ikfast_ur10.cpp cob_kinematics/ikfast/src/ikfast_ur5.cpp cob_kinematics/package.xml cob_kinematics/ros/bin/genikfast.py cob_kinematics/ros/src/ikfast_plugin.cpp cob_kinematics/ros/src/urdf_openrave.cpp
  • document manual generation of grasp table (#127)
    • document manual generation of grasp table
    • document manual generation of grasp table 2
    • Update README.md
    • Update README.md
  • Merge pull request #126 from ipa-fxm/revive_pick_place separate openrave independent part query_grasp
  • add trivial grasp table for corn_flakes_package
  • add coordinates systems to rviz config
  • resolve side-dependend joint_names and tune grasp-open config
  • tune grasptable
  • fix mimic joints and quaternion normalization
  • add show_grasp_rviz
  • move meshes and kit grasptables
  • more consistent naming
  • separate openrave independent part query_grasp
  • Merge pull request #124 from ipa-fxm/update_maintainer update maintainer
  • update maintainer
  • Merge pull request #120 from ipa-fxm/APACHE_license use license apache 2.0
  • use license apache 2.0
  • Contributors: Felix Messmer, Richard Bormann, ipa-fxm, ipa-rmb-pz, ipa-uhr-mk

0.7.0 (2017-07-31)

0.6.5 (2017-07-31)

  • make pick and grasp more robot-agnostic
  • Contributors: ipa-fxm

0.6.4 (2016-04-01)

0.6.3 (2015-08-31)

0.6.2 (2015-08-29)

  • boost revision
  • migration to package format 2
  • remove trailing whitespaces
  • remove obsolete autogenerated mainpage.dox files
  • sort dependencies
  • review dependencies
  • Contributors: ipa-fxm

0.6.1 (2015-06-17)

  • beautify CMakeLists
  • fixes, hacks and helpers for cob4-pick-place
  • gripper -> gripper_type
  • consider different grippers in cob_grasp_generation
  • rename manipulator in collada description
  • add gripper to action
  • rename environment file
  • renamed grasptables
  • no timestamp
  • new launch file exporting env variable OPENRAVE_DATA
  • add model - and fixes for latest openRAVE and collada compatibility
  • fix trajectory message
  • minor restructuring
  • missing dependency
  • Contributors: ipa-fxm

0.6.0 (2014-09-18)

  • Merge branch 'hydro_dev' into hydro_release_candidate
  • Merge branch 'hydro_dev' into hydro_release_candidate
  • 0.5.1
  • add changelogs
  • Contributors: Florian Weisshardt, ipa-fxm

0.5.2 (2014-08-28)

0.5.1 (2014-03-26)

  • Merge branch 'hydro_dev' into hydro_release_candidate
  • use BIN_DESTINATION
  • beautify install tags and correct PYTHON_DESTINATION
  • update package maintainer
  • Merge branch 'hydro_dev' into hydro_release_candidate
  • install tags
  • catkin_lint and install tags
  • add changelogs
  • move cob_mmcontroller + groovy_updates
  • fix deps
  • pick_place now works with released version of moveit
  • fixes for changed message types
  • catkinized
  • manually remove spreizgriffe
  • removed bottom grasps from grasp tables
  • generating new grasps
  • better grasptable for instanttomatosoup
  • better grasptable for hotpot2
  • better grasptable for hotpot
  • fixes after merge
  • adaptions, fixes and new generation_strategy
  • cleaning up
  • restructuring folders
  • new action_clients
  • combined action_server
  • new actions
  • delete obsolete files
  • new grasp_tables
  • minor fixes
  • additional params in action (threshold,grasp_id,num_grasps) + adaptions + some improvements
  • close fingers a little more so that objects dont slip through
  • fully implemented as class + improvements
  • merge with ws
  • Merge branch 'pick_n_place' of https://github.com/ipa-fmw-ws/cob_manipulation into pick_n_place
  • remove obsolete sleep
  • server now uses class from or_grasp_generation and a threshold
  • added threshold, num_grasps and grasp_id for grasp database
  • start implementation as class
  • remove unused parameter
  • improved show grasp
  • removed some unfeasible grasps manually
  • Removed Salt textures
  • Added service server for showing grasps
  • showgrasp functionality added
  • sort call fixed, hardcoded paths fixed
  • fixed sorting algorithm
  • added hotpo2 to DB
  • added hotpot to DB
  • new DB for salt and tomatosoup
  • pre_joint_config changed
  • removed wrong DBs
  • preshapes set to cylindric only
  • fixing negative zero values
  • Merge branch 'pick_n_place' of github.com:ipa-fxm/cob_manipulation into pick_n_place
  • working on grasp view
  • added grasptable for instanttomatosoup
  • find package_paths using roslib
  • Merge branch 'pick_n_place' of https://github.com/ipa-fmw-ws/cob_manipulation into pick_n_place
  • add new db fruittea
  • Todo added
  • Merge remote-tracking branch 'origin-fxm/pick_n_place' into pick_n_place
  • new structure
  • objects now created dynamically from a mesh
  • objects removed from scene
  • fixed output for action server
  • fixed naming of grasp_generation action
  • removed tmp files
  • added hotpot2
  • new object hotpot and hotpot2
  • saltcube with new preshapes
  • db hotpot added, new preshapes
  • first try with openrave
  • first database for new meshes
  • small changes
  • kinbody for new meshfiles without scale
  • modified to work with the new mesh files now
  • database generated for transformed mesh file
  • objects are now taken from cob_pick_place_action
  • check if db exists for specific object before start planning with openrave
  • output now a grasp list
  • hardcoded paths fixed
  • latest commit
  • created with service call
  • client can use object_id now for service calls
  • moved to src
  • service server call is working now
  • salt xml for openrave
  • salt mesh for testing
  • added scene
  • runs independently now
  • clean up code
  • README file added
  • changed serice files from src to scripts
  • new package for grasp_generation action
  • Contributors: Florian Weisshardt, Jan Fischer, Witalij Siebert, ipa-fxm

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged cob_grasp_generation at Robotics Stack Exchange

Package Summary

Tags No category tags.
Version 0.7.9
License Apache 2.0
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/ipa320/cob_manipulation.git
VCS Type git
VCS Version kinetic_dev
Last Updated 2024-02-19
Dev Status END-OF-LIFE
CI status Continuous Integration : 0 / 0
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

Grasp generation for Care-O-bot based on OpenRAVE

Additional Links

Maintainers

  • Felix Messmer

Authors

  • Witalij Siebert
  • Felix Messmer

MANUAL GENERATION OF GRASP TABLE

1. Provide a collision mesh of the target object (as *.stl)

Most likely there already is a collada mesh (*.dae) available in cob_gazebo_objects. Thus you simply have to convert the mesh from *.dae to *.stl using MeshLab for example.

  1. Open MeshLab -> File -> Import Mesh … -> select respective mesh [object_name].dae from cob_simulation/cob_gazebo_objects/media/models
  2. File -> Export Mesh As … -> Save it as [object_name].stl within cob_manipulatiuon/cob_grasp_generation/files/meshes

2. Prepare a new grasp table

You need to provide a *.csv file of the name [gripper_type]_[object_name].csv at cob_manipulation/cob_grasp_generation/files/database/[object_name], where [object_name] is the same as for the collision mesh and [gripper_type] could e.g. be either sdh or sdhx (cob4-gripper). The *.csv file has the following layout (columns):

id object [gripper_joint_0] [gripper_joint_n] direction qw qx qy qz pos-x pos-y pos-z eps_l1 vol_l1  
0 [object_name] [joint_pos_0] [joint_pos_n] [DIRECTION] [qw] [qx] [qy] [qz] [pos-x] [pos-y] [pos-z] [eps_l1] [vol_l1] 0
where id is the grasp_id, object is [object_name], followed by one column for each joint of the gripper specifying the joint configuration of the gripper when grasping the object (with gripper_joint_0 to gripper_joint_n being the gripper’s joint_names), direction can be used to specify e.g. as [TOP SIDE BOTTOM …] grasp, the grasp pose of the gripper reference coordinate system with respect to the object reference coordinate system (with [qw, qx, qy, qz] specifying the orientation as a quaternion and [pos-x, pos-y, pos-z] specifying the position in [mm]), eps_l1 and vol_l1 being grasp metrics e.g. force closure that can be used as grasp quality metric for sorting the grasps.

Notes:

  • each ros specifies another grasps (make sure to increase id accordingly)
  • the quaternion needs to be normalized, i.e. sqrt(qw² + qx² + qy² + qz²)!=1.0 (you might need to increase floating point precision to about 5 decimal digits. e.g. (0.0, 0.707, 0.0, 0.707) will throw an error; use (0.0, 0.707107, 0.0, 0.707107) instead!
  • you can initialize a grasptable by copying from an existing database entry

3. Use blender for generating initial grasp poses easily

  1. Open the Blender
  2. Clear the scene by removing all objects: press a (select all the objects), Entf (delete), Enter (confirm)
  3. Load the object: File -> Import -> STL (.stl) -> select [object_name].stl from cob_manipulatiuon/cob_grasp_generation/files/meshes (see step (1))
  4. Load the gripper: File -> Import -> STL (.stl) -> select [gripper].stl, e.g. palm.stl from cob_common/cob_descriptions/meshes/cob4_gripper for sdhx (cob4-gripper)
  5. Move the gripper to various grasp poses (do not move the object) by either using
    • g+x,g+y,g+z: for translation along x,y,z
    • r+x,r+y,r+z: for rotation around x,y,z
    • enter values directly
  6. Transfer the values from the Blender (position in [m], use the Quaternion RotationMode from the Dropdown menue!) to the grasp table (pos in [mm]!)

4. Visualization of the grasps in rviz

  1. roslaunch cob_grasp_generation show_grasp_rviz.launch gripper:=[gripper_type]
  2. rosrun cob_grasp_generation show_grasps_rviz_client.py (then enter [object_name] and [gripper_type] when prompted)

5. Tune grasps

Optimize the grasp entries in the table by modifying the grasp pose and/or grasp joint config based on the rviz visualization. Add more grasps

CHANGELOG

Changelog for package cob_grasp_generation

0.7.9 (2024-02-19)

0.7.8 (2023-01-04)

0.7.7 (2022-07-29)

0.7.6 (2021-12-23)

  • Merge pull request #150 from fmessmer/fix_pylint fix ci
  • move messages to dedicated package
  • Contributors: Felix Messmer, fmessmer

0.7.5 (2020-12-03)

  • Merge pull request #148 from fmessmer/test_noetic test noetic
  • ROS_PYTHON_VERSION conditional dependency
  • use setuptools instead of distutils
  • Bump CMake version to avoid CMP0048 warning
  • Contributors: Felix Messmer, fmessmer

0.7.4 (2020-03-18)

  • Merge pull request #145 from fmessmer/feature/python3_compatibility [ci_updates] pylint + Python3 compatibility
  • Use six.moves.input for all uses of raw_input/input
  • fix pylint errors
  • python3 compatibility via 2to3
  • Contributors: Felix Messmer, Loy van Beek, fmessmer

0.7.3 (2019-12-04)

0.7.2 (2019-05-20)

0.7.1 (2018-01-07)

  • Merge pull request #134 from ipa320/kinetic_release_candidate Kinetic release candidate
  • Merge pull request #132 from ipa-fxm/kinetic_dev [kinetic] updates from indigo_dev
  • Merge branch 'indigo_dev' of github.com:ipa320/cob_manipulation into kinetic_dev Conflicts: .travis.yml cob_kinematics/ikfast/src/ikfast_lbr.cpp cob_kinematics/ikfast/src/ikfast_ur10.cpp cob_kinematics/ikfast/src/ikfast_ur5.cpp cob_kinematics/package.xml cob_kinematics/ros/bin/genikfast.py cob_kinematics/ros/src/ikfast_plugin.cpp cob_kinematics/ros/src/urdf_openrave.cpp
  • document manual generation of grasp table (#127)
    • document manual generation of grasp table
    • document manual generation of grasp table 2
    • Update README.md
    • Update README.md
  • Merge pull request #126 from ipa-fxm/revive_pick_place separate openrave independent part query_grasp
  • add trivial grasp table for corn_flakes_package
  • add coordinates systems to rviz config
  • resolve side-dependend joint_names and tune grasp-open config
  • tune grasptable
  • fix mimic joints and quaternion normalization
  • add show_grasp_rviz
  • move meshes and kit grasptables
  • more consistent naming
  • separate openrave independent part query_grasp
  • Merge pull request #124 from ipa-fxm/update_maintainer update maintainer
  • update maintainer
  • Merge pull request #120 from ipa-fxm/APACHE_license use license apache 2.0
  • use license apache 2.0
  • Contributors: Felix Messmer, Richard Bormann, ipa-fxm, ipa-rmb-pz, ipa-uhr-mk

0.7.0 (2017-07-31)

0.6.5 (2017-07-31)

  • make pick and grasp more robot-agnostic
  • Contributors: ipa-fxm

0.6.4 (2016-04-01)

0.6.3 (2015-08-31)

0.6.2 (2015-08-29)

  • boost revision
  • migration to package format 2
  • remove trailing whitespaces
  • remove obsolete autogenerated mainpage.dox files
  • sort dependencies
  • review dependencies
  • Contributors: ipa-fxm

0.6.1 (2015-06-17)

  • beautify CMakeLists
  • fixes, hacks and helpers for cob4-pick-place
  • gripper -> gripper_type
  • consider different grippers in cob_grasp_generation
  • rename manipulator in collada description
  • add gripper to action
  • rename environment file
  • renamed grasptables
  • no timestamp
  • new launch file exporting env variable OPENRAVE_DATA
  • add model - and fixes for latest openRAVE and collada compatibility
  • fix trajectory message
  • minor restructuring
  • missing dependency
  • Contributors: ipa-fxm

0.6.0 (2014-09-18)

  • Merge branch 'hydro_dev' into hydro_release_candidate
  • Merge branch 'hydro_dev' into hydro_release_candidate
  • 0.5.1
  • add changelogs
  • Contributors: Florian Weisshardt, ipa-fxm

0.5.2 (2014-08-28)

0.5.1 (2014-03-26)

  • Merge branch 'hydro_dev' into hydro_release_candidate
  • use BIN_DESTINATION
  • beautify install tags and correct PYTHON_DESTINATION
  • update package maintainer
  • Merge branch 'hydro_dev' into hydro_release_candidate
  • install tags
  • catkin_lint and install tags
  • add changelogs
  • move cob_mmcontroller + groovy_updates
  • fix deps
  • pick_place now works with released version of moveit
  • fixes for changed message types
  • catkinized
  • manually remove spreizgriffe
  • removed bottom grasps from grasp tables
  • generating new grasps
  • better grasptable for instanttomatosoup
  • better grasptable for hotpot2
  • better grasptable for hotpot
  • fixes after merge
  • adaptions, fixes and new generation_strategy
  • cleaning up
  • restructuring folders
  • new action_clients
  • combined action_server
  • new actions
  • delete obsolete files
  • new grasp_tables
  • minor fixes
  • additional params in action (threshold,grasp_id,num_grasps) + adaptions + some improvements
  • close fingers a little more so that objects dont slip through
  • fully implemented as class + improvements
  • merge with ws
  • Merge branch 'pick_n_place' of https://github.com/ipa-fmw-ws/cob_manipulation into pick_n_place
  • remove obsolete sleep
  • server now uses class from or_grasp_generation and a threshold
  • added threshold, num_grasps and grasp_id for grasp database
  • start implementation as class
  • remove unused parameter
  • improved show grasp
  • removed some unfeasible grasps manually
  • Removed Salt textures
  • Added service server for showing grasps
  • showgrasp functionality added
  • sort call fixed, hardcoded paths fixed
  • fixed sorting algorithm
  • added hotpo2 to DB
  • added hotpot to DB
  • new DB for salt and tomatosoup
  • pre_joint_config changed
  • removed wrong DBs
  • preshapes set to cylindric only
  • fixing negative zero values
  • Merge branch 'pick_n_place' of github.com:ipa-fxm/cob_manipulation into pick_n_place
  • working on grasp view
  • added grasptable for instanttomatosoup
  • find package_paths using roslib
  • Merge branch 'pick_n_place' of https://github.com/ipa-fmw-ws/cob_manipulation into pick_n_place
  • add new db fruittea
  • Todo added
  • Merge remote-tracking branch 'origin-fxm/pick_n_place' into pick_n_place
  • new structure
  • objects now created dynamically from a mesh
  • objects removed from scene
  • fixed output for action server
  • fixed naming of grasp_generation action
  • removed tmp files
  • added hotpot2
  • new object hotpot and hotpot2
  • saltcube with new preshapes
  • db hotpot added, new preshapes
  • first try with openrave
  • first database for new meshes
  • small changes
  • kinbody for new meshfiles without scale
  • modified to work with the new mesh files now
  • database generated for transformed mesh file
  • objects are now taken from cob_pick_place_action
  • check if db exists for specific object before start planning with openrave
  • output now a grasp list
  • hardcoded paths fixed
  • latest commit
  • created with service call
  • client can use object_id now for service calls
  • moved to src
  • service server call is working now
  • salt xml for openrave
  • salt mesh for testing
  • added scene
  • runs independently now
  • clean up code
  • README file added
  • changed serice files from src to scripts
  • new package for grasp_generation action
  • Contributors: Florian Weisshardt, Jan Fischer, Witalij Siebert, ipa-fxm

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged cob_grasp_generation at Robotics Stack Exchange