No version for distro humble showing melodic. Known supported distros are highlighted in the buttons above.

Package Summary

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

Repository Summary

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

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)

File truncated at 100 lines see the full file

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged cob_grasp_generation at Robotics Stack Exchange

No version for distro jazzy showing melodic. Known supported distros are highlighted in the buttons above.

Package Summary

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

Repository Summary

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

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)

File truncated at 100 lines see the full file

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged cob_grasp_generation at Robotics Stack Exchange

No version for distro kilted showing melodic. Known supported distros are highlighted in the buttons above.

Package Summary

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

Repository Summary

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

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)

File truncated at 100 lines see the full file

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged cob_grasp_generation at Robotics Stack Exchange

No version for distro rolling showing melodic. Known supported distros are highlighted in the buttons above.

Package Summary

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

Repository Summary

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

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)

File truncated at 100 lines see the full file

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged cob_grasp_generation at Robotics Stack Exchange

No version for distro github showing melodic. Known supported distros are highlighted in the buttons above.

Package Summary

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

Repository Summary

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

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)

File truncated at 100 lines see the full file

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged cob_grasp_generation at Robotics Stack Exchange

No version for distro galactic showing melodic. Known supported distros are highlighted in the buttons above.

Package Summary

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

Repository Summary

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

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)

File truncated at 100 lines see the full file

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged cob_grasp_generation at Robotics Stack Exchange

No version for distro iron showing melodic. Known supported distros are highlighted in the buttons above.

Package Summary

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

Repository Summary

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

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)

File truncated at 100 lines see the full file

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

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

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)

File truncated at 100 lines see the full file

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

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

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)

File truncated at 100 lines see the full file

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged cob_grasp_generation at Robotics Stack Exchange