|
cob_grasp_generation package from cob_manipulation repocob_collision_monitor cob_grasp_generation cob_lookat_action cob_manipulation cob_moveit_bringup cob_moveit_interface cob_obstacle_distance_moveit cob_pick_place_action |
Package Summary
| Tags | No category tags. |
| Version | 0.7.2 |
| 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 | 2019-05-20 |
| Dev Status | MAINTAINED |
| Released | RELEASED |
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.
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
- 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].stlfromcob_manipulatiuon/cob_grasp_generation/files/meshes(see step (1)) - Load the gripper: File -> Import -> STL (.stl) -> select
[gripper].stl, e.g.palm.stlfromcob_common/cob_descriptions/meshes/cob4_gripperfor 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 directly6. 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
Could not convert RST to MD: No such file or directory - pandoc
Wiki Tutorials
Source Tutorials
Package Dependencies
System Dependencies
| Name |
|---|
| python-scipy |
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged cob_grasp_generation at answers.ros.org
|
cob_grasp_generation package from cob_manipulation repocob_collision_monitor cob_grasp_generation cob_kinematics cob_lookat_action cob_manipulation cob_moveit_bringup cob_moveit_interface cob_obstacle_distance_moveit cob_pick_place_action |
Package Summary
| Tags | No category tags. |
| Version | 0.6.6 |
| 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 | indigo_dev |
| Last Updated | 2018-01-07 |
| Dev Status | MAINTAINED |
| Released | RELEASED |
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.
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
- 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].stlfromcob_manipulatiuon/cob_grasp_generation/files/meshes(see step (1)) - Load the gripper: File -> Import -> STL (.stl) -> select
[gripper].stl, e.g.palm.stlfromcob_common/cob_descriptions/meshes/cob4_gripperfor 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 directly6. 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
Could not convert RST to MD: No such file or directory - pandoc
Wiki Tutorials
Source Tutorials
Package Dependencies
System Dependencies
| Name |
|---|
| python-scipy |
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged cob_grasp_generation at answers.ros.org
|
cob_grasp_generation package from cob_manipulation repocob_grasp_generation cob_kinematics cob_lookat_action cob_manipulation cob_moveit_config cob_moveit_interface cob_pick_place_action cob_tactiletools cob_tray_monitor |
Package Summary
| Tags | No category tags. |
| Version | 0.5.1 |
| License | BSD |
| Build type | CATKIN |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/ipa320/cob_manipulation.git |
| VCS Type | git |
| VCS Version | hydro_dev |
| Last Updated | 2014-09-10 |
| Dev Status | MAINTAINED |
| Released | RELEASED |
Package Description
Additional Links
Maintainers
- Felix Messmer
Authors
- Witalij Siebert
- Felix Messmer
GRASP GENERATION
@ToDo-List: - Online grasp generation needs lot of time, so it is necessary to set timeout for planning on a high value, otherweise generation will be returned as failed
Could not convert RST to MD: No such file or directory - pandoc
Wiki Tutorials
Source Tutorials
Package Dependencies
| Deps | Name | |
|---|---|---|
| 2 | rospy | |
| 1 | message_generation | |
| 1 | actionlib | |
| 2 | actionlib_msgs | |
| 2 | std_msgs | |
| 1 | moveit_msgs | |
| 1 | catkin | |
| 1 | message_runtime | |
| 1 | tf | |
| 2 | geometry_msgs |