cob_grasp_generation package from cob_manipulation repocob_collision_monitor cob_grasp_generation cob_lookat_action cob_manipulation cob_manipulation_msgs cob_moveit_bringup cob_moveit_interface cob_obstacle_distance_moveit |
|
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
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.
- Open MeshLab -> File -> Import Mesh … -> select respective mesh
[object_name].dae
fromcob_simulation/cob_gazebo_objects/media/models
- File -> Export Mesh As … -> Save it as
[object_name].stl
withincob_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
- Open the Blender
- Clear the scene by removing all objects: press
a
(select all the objects),Entf
(delete),Enter
(confirm) - Load the object: File -> Import -> STL (.stl) -> select
[object_name].stl
fromcob_manipulatiuon/cob_grasp_generation/files/meshes
(see step (1)) - Load the gripper: File -> Import -> STL (.stl) -> select
[gripper].stl
, e.g.palm.stl
fromcob_common/cob_descriptions/meshes/cob4_gripper
for sdhx (cob4-gripper) - 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
- 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
roslaunch cob_grasp_generation show_grasp_rviz.launch gripper:=[gripper_type]
-
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 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
Package Dependencies
System Dependencies
Dependant Packages
Name | Deps |
---|---|
cob_manipulation |
Launch files
Messages
Services
Plugins
Recent questions tagged cob_grasp_generation at Robotics Stack Exchange
cob_grasp_generation package from cob_manipulation repocob_collision_monitor cob_grasp_generation cob_lookat_action cob_manipulation cob_manipulation_msgs cob_moveit_bringup cob_moveit_interface cob_obstacle_distance_moveit |
|
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
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.
- Open MeshLab -> File -> Import Mesh … -> select respective mesh
[object_name].dae
fromcob_simulation/cob_gazebo_objects/media/models
- File -> Export Mesh As … -> Save it as
[object_name].stl
withincob_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
- Open the Blender
- Clear the scene by removing all objects: press
a
(select all the objects),Entf
(delete),Enter
(confirm) - Load the object: File -> Import -> STL (.stl) -> select
[object_name].stl
fromcob_manipulatiuon/cob_grasp_generation/files/meshes
(see step (1)) - Load the gripper: File -> Import -> STL (.stl) -> select
[gripper].stl
, e.g.palm.stl
fromcob_common/cob_descriptions/meshes/cob4_gripper
for sdhx (cob4-gripper) - 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
- 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
roslaunch cob_grasp_generation show_grasp_rviz.launch gripper:=[gripper_type]
-
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 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
Package Dependencies
System Dependencies
Dependant Packages
Name | Deps |
---|---|
cob_manipulation |