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

haf_grasping package from haf_grasping repo

haf_grasping

ROS Distro
jade

Package Summary

Tags No category tags.
Version 1.0.0
License BSD
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/davidfischinger/haf_grasping.git
VCS Type git
VCS Version jade
Last Updated 2023-03-29
Dev Status MAINTAINED
CI status Continuous Integration
Released UNRELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

The haf_grasping package: calculates grasps for a given point cloud using Height Accumulated Features (HAF)

Additional Links

Maintainers

  • David Fischinger

Authors

  • David Fischinger

```

== PACKAGE: haf_grasping == ==========================================================

Author: David Fischinger, Vienna University of Technology Version: 1.0 Date: 15.5.2015

HAF_GRASPING is calculating grasp points for unknown and known objects represented by the surface point cloud data. For scientific foundation see: D. Fischinger, M. Vincze: “Learning Grasps for Unknown Objects in Cluttered Scenes”, IEEE International Conference on Robotics and Automation (ICRA), 2013. [pdf] D. Fischinger, A. Weiss, M. Vincze: “Learning Grasps with Topographic Features”, The International Journal of Robotics Research.

In a first step the point cloud is read from a ROS topic and a heightsgrid is created. For each 14x14 square of the hightsgrid a featurevector is created. Using SVM with an existing model file, it is predicted if the center of the square is a good grasping point. For good grasping points the coordinates and the direction of the approach vectors are published.

DOWNLOAD CODE

git

HOW TO USE HAF_GRASPING - GET STARTED

Start calculation server (does the work), haf_client (small programming incl. class that shows how to use haf_grasping) and a visualization in rviz:

roslaunch haf_grasping haf_grasping_all.launch

Publish the path of a point cloud to calculate grasp points on this object with the gripper approaching direction along the z-axis:

rostopic pub /haf_grasping/input_pcd_rcs_path std_msgs/String “$(rospack find haf_grasping)/data/pcd2.pcd” -1

(Alternatively, publish a point cloud at the ros topic: /haf_grasping/depth_registered/single_cloud/points_in_lcs)

EXPLANATION FOR THE RVIZ VISUALIZATION

RVIZ will now visualize the point cloud with corresponding frame (blue indicates the z-axis). Bigger rectangle: indicates the area where heights can be used for grasp calculation Inner rectangle: defines the area where grasps (grasp centers) are searched. Long red line: indicates the closing direction (for a two finger gripper) Red/green spots: indicate the positions where grasps are really tested for the current gripper roll (ignoring points where no calculation is needed, e.g. no data there) Green bars: indicate where possible grasps were found. The height of the bars indicate an grasp evaluation score (the higher the better) Black arrow: indicates the best grasp position found and the approching direction (for a parallel two finger gripper)

HAF-GRASPING CLIENT - CODE EXPLAINDED

In calc_grasppoints_action_client.cpp we subscribe to a point_cloud topic and start the following callback when a point cloud comes in:

== code start ==

//get goal (input point cloud) for grasp calculation, send it to grasp action server and receive result void CCalcGrasppointsClient::get_grasp_cb(const sensor_msgs::PointCloud2ConstPtr& pc_in) { ROS_INFO(“\nFrom calc_grasppoints_action_client: point cloud received”);

// create the action client
// true causes the client to spin its own thread
actionlib::SimpleActionClient<haf_grasping::CalcGraspPointsServerAction> ac("calc_grasppoints_svm_action_server", true);

ROS_INFO("Waiting for action server to start.");
// wait for the action server to start
ac.waitForServer(); //will wait for infinite time

ROS_INFO("Action server started, sending goal.");
// send a goal to the action
haf_grasping::CalcGraspPointsServerGoal goal;
goal.graspinput.input_pc = *pc_in;

goal.graspinput.grasp_area_center = this->graspsearchcenter;

// set size of grasp search area
goal.graspinput.grasp_area_length_x = this->grasp_search_size_x+14;
goal.graspinput.grasp_area_length_y = this->grasp_search_size_y+14;

// set max grasp calculation time
goal.graspinput.max_calculation_time = this->grasp_calculation_time_max;

//send goal
ac.sendGoal(goal);

//wait for the action to return
bool finished_before_timeout = ac.waitForResult(ros::Duration(50.0));

if (finished_before_timeout)
{
    actionlib::SimpleClientGoalState state = ac.getState();
    boost::shared_ptr<const haf_grasping::CalcGraspPointsServerResult_<std::allocator<void> > > result = ac.getResult();
    ROS_INFO("Result: %s", (*(result)).result.data.c_str());
    ROS_INFO("Action finished: %s",state.toString().c_str());
}

File truncated at 100 lines see the full file

CHANGELOG
No CHANGELOG found.

Wiki Tutorials

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

Recent questions tagged haf_grasping at Robotics Stack Exchange

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

haf_grasping package from haf_grasping repo

haf_grasping

ROS Distro
jade

Package Summary

Tags No category tags.
Version 1.0.0
License BSD
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/davidfischinger/haf_grasping.git
VCS Type git
VCS Version jade
Last Updated 2023-03-29
Dev Status MAINTAINED
CI status Continuous Integration
Released UNRELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

The haf_grasping package: calculates grasps for a given point cloud using Height Accumulated Features (HAF)

Additional Links

Maintainers

  • David Fischinger

Authors

  • David Fischinger

```

== PACKAGE: haf_grasping == ==========================================================

Author: David Fischinger, Vienna University of Technology Version: 1.0 Date: 15.5.2015

HAF_GRASPING is calculating grasp points for unknown and known objects represented by the surface point cloud data. For scientific foundation see: D. Fischinger, M. Vincze: “Learning Grasps for Unknown Objects in Cluttered Scenes”, IEEE International Conference on Robotics and Automation (ICRA), 2013. [pdf] D. Fischinger, A. Weiss, M. Vincze: “Learning Grasps with Topographic Features”, The International Journal of Robotics Research.

In a first step the point cloud is read from a ROS topic and a heightsgrid is created. For each 14x14 square of the hightsgrid a featurevector is created. Using SVM with an existing model file, it is predicted if the center of the square is a good grasping point. For good grasping points the coordinates and the direction of the approach vectors are published.

DOWNLOAD CODE

git

HOW TO USE HAF_GRASPING - GET STARTED

Start calculation server (does the work), haf_client (small programming incl. class that shows how to use haf_grasping) and a visualization in rviz:

roslaunch haf_grasping haf_grasping_all.launch

Publish the path of a point cloud to calculate grasp points on this object with the gripper approaching direction along the z-axis:

rostopic pub /haf_grasping/input_pcd_rcs_path std_msgs/String “$(rospack find haf_grasping)/data/pcd2.pcd” -1

(Alternatively, publish a point cloud at the ros topic: /haf_grasping/depth_registered/single_cloud/points_in_lcs)

EXPLANATION FOR THE RVIZ VISUALIZATION

RVIZ will now visualize the point cloud with corresponding frame (blue indicates the z-axis). Bigger rectangle: indicates the area where heights can be used for grasp calculation Inner rectangle: defines the area where grasps (grasp centers) are searched. Long red line: indicates the closing direction (for a two finger gripper) Red/green spots: indicate the positions where grasps are really tested for the current gripper roll (ignoring points where no calculation is needed, e.g. no data there) Green bars: indicate where possible grasps were found. The height of the bars indicate an grasp evaluation score (the higher the better) Black arrow: indicates the best grasp position found and the approching direction (for a parallel two finger gripper)

HAF-GRASPING CLIENT - CODE EXPLAINDED

In calc_grasppoints_action_client.cpp we subscribe to a point_cloud topic and start the following callback when a point cloud comes in:

== code start ==

//get goal (input point cloud) for grasp calculation, send it to grasp action server and receive result void CCalcGrasppointsClient::get_grasp_cb(const sensor_msgs::PointCloud2ConstPtr& pc_in) { ROS_INFO(“\nFrom calc_grasppoints_action_client: point cloud received”);

// create the action client
// true causes the client to spin its own thread
actionlib::SimpleActionClient<haf_grasping::CalcGraspPointsServerAction> ac("calc_grasppoints_svm_action_server", true);

ROS_INFO("Waiting for action server to start.");
// wait for the action server to start
ac.waitForServer(); //will wait for infinite time

ROS_INFO("Action server started, sending goal.");
// send a goal to the action
haf_grasping::CalcGraspPointsServerGoal goal;
goal.graspinput.input_pc = *pc_in;

goal.graspinput.grasp_area_center = this->graspsearchcenter;

// set size of grasp search area
goal.graspinput.grasp_area_length_x = this->grasp_search_size_x+14;
goal.graspinput.grasp_area_length_y = this->grasp_search_size_y+14;

// set max grasp calculation time
goal.graspinput.max_calculation_time = this->grasp_calculation_time_max;

//send goal
ac.sendGoal(goal);

//wait for the action to return
bool finished_before_timeout = ac.waitForResult(ros::Duration(50.0));

if (finished_before_timeout)
{
    actionlib::SimpleClientGoalState state = ac.getState();
    boost::shared_ptr<const haf_grasping::CalcGraspPointsServerResult_<std::allocator<void> > > result = ac.getResult();
    ROS_INFO("Result: %s", (*(result)).result.data.c_str());
    ROS_INFO("Action finished: %s",state.toString().c_str());
}

File truncated at 100 lines see the full file

CHANGELOG
No CHANGELOG found.

Wiki Tutorials

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

Recent questions tagged haf_grasping at Robotics Stack Exchange

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

haf_grasping package from haf_grasping repo

haf_grasping

ROS Distro
jade

Package Summary

Tags No category tags.
Version 1.0.0
License BSD
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/davidfischinger/haf_grasping.git
VCS Type git
VCS Version jade
Last Updated 2023-03-29
Dev Status MAINTAINED
CI status Continuous Integration
Released UNRELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

The haf_grasping package: calculates grasps for a given point cloud using Height Accumulated Features (HAF)

Additional Links

Maintainers

  • David Fischinger

Authors

  • David Fischinger

```

== PACKAGE: haf_grasping == ==========================================================

Author: David Fischinger, Vienna University of Technology Version: 1.0 Date: 15.5.2015

HAF_GRASPING is calculating grasp points for unknown and known objects represented by the surface point cloud data. For scientific foundation see: D. Fischinger, M. Vincze: “Learning Grasps for Unknown Objects in Cluttered Scenes”, IEEE International Conference on Robotics and Automation (ICRA), 2013. [pdf] D. Fischinger, A. Weiss, M. Vincze: “Learning Grasps with Topographic Features”, The International Journal of Robotics Research.

In a first step the point cloud is read from a ROS topic and a heightsgrid is created. For each 14x14 square of the hightsgrid a featurevector is created. Using SVM with an existing model file, it is predicted if the center of the square is a good grasping point. For good grasping points the coordinates and the direction of the approach vectors are published.

DOWNLOAD CODE

git

HOW TO USE HAF_GRASPING - GET STARTED

Start calculation server (does the work), haf_client (small programming incl. class that shows how to use haf_grasping) and a visualization in rviz:

roslaunch haf_grasping haf_grasping_all.launch

Publish the path of a point cloud to calculate grasp points on this object with the gripper approaching direction along the z-axis:

rostopic pub /haf_grasping/input_pcd_rcs_path std_msgs/String “$(rospack find haf_grasping)/data/pcd2.pcd” -1

(Alternatively, publish a point cloud at the ros topic: /haf_grasping/depth_registered/single_cloud/points_in_lcs)

EXPLANATION FOR THE RVIZ VISUALIZATION

RVIZ will now visualize the point cloud with corresponding frame (blue indicates the z-axis). Bigger rectangle: indicates the area where heights can be used for grasp calculation Inner rectangle: defines the area where grasps (grasp centers) are searched. Long red line: indicates the closing direction (for a two finger gripper) Red/green spots: indicate the positions where grasps are really tested for the current gripper roll (ignoring points where no calculation is needed, e.g. no data there) Green bars: indicate where possible grasps were found. The height of the bars indicate an grasp evaluation score (the higher the better) Black arrow: indicates the best grasp position found and the approching direction (for a parallel two finger gripper)

HAF-GRASPING CLIENT - CODE EXPLAINDED

In calc_grasppoints_action_client.cpp we subscribe to a point_cloud topic and start the following callback when a point cloud comes in:

== code start ==

//get goal (input point cloud) for grasp calculation, send it to grasp action server and receive result void CCalcGrasppointsClient::get_grasp_cb(const sensor_msgs::PointCloud2ConstPtr& pc_in) { ROS_INFO(“\nFrom calc_grasppoints_action_client: point cloud received”);

// create the action client
// true causes the client to spin its own thread
actionlib::SimpleActionClient<haf_grasping::CalcGraspPointsServerAction> ac("calc_grasppoints_svm_action_server", true);

ROS_INFO("Waiting for action server to start.");
// wait for the action server to start
ac.waitForServer(); //will wait for infinite time

ROS_INFO("Action server started, sending goal.");
// send a goal to the action
haf_grasping::CalcGraspPointsServerGoal goal;
goal.graspinput.input_pc = *pc_in;

goal.graspinput.grasp_area_center = this->graspsearchcenter;

// set size of grasp search area
goal.graspinput.grasp_area_length_x = this->grasp_search_size_x+14;
goal.graspinput.grasp_area_length_y = this->grasp_search_size_y+14;

// set max grasp calculation time
goal.graspinput.max_calculation_time = this->grasp_calculation_time_max;

//send goal
ac.sendGoal(goal);

//wait for the action to return
bool finished_before_timeout = ac.waitForResult(ros::Duration(50.0));

if (finished_before_timeout)
{
    actionlib::SimpleClientGoalState state = ac.getState();
    boost::shared_ptr<const haf_grasping::CalcGraspPointsServerResult_<std::allocator<void> > > result = ac.getResult();
    ROS_INFO("Result: %s", (*(result)).result.data.c_str());
    ROS_INFO("Action finished: %s",state.toString().c_str());
}

File truncated at 100 lines see the full file

CHANGELOG
No CHANGELOG found.

Wiki Tutorials

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

Recent questions tagged haf_grasping at Robotics Stack Exchange

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

haf_grasping package from haf_grasping repo

haf_grasping

ROS Distro
jade

Package Summary

Tags No category tags.
Version 1.0.0
License BSD
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/davidfischinger/haf_grasping.git
VCS Type git
VCS Version jade
Last Updated 2023-03-29
Dev Status MAINTAINED
CI status Continuous Integration
Released UNRELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

The haf_grasping package: calculates grasps for a given point cloud using Height Accumulated Features (HAF)

Additional Links

Maintainers

  • David Fischinger

Authors

  • David Fischinger

```

== PACKAGE: haf_grasping == ==========================================================

Author: David Fischinger, Vienna University of Technology Version: 1.0 Date: 15.5.2015

HAF_GRASPING is calculating grasp points for unknown and known objects represented by the surface point cloud data. For scientific foundation see: D. Fischinger, M. Vincze: “Learning Grasps for Unknown Objects in Cluttered Scenes”, IEEE International Conference on Robotics and Automation (ICRA), 2013. [pdf] D. Fischinger, A. Weiss, M. Vincze: “Learning Grasps with Topographic Features”, The International Journal of Robotics Research.

In a first step the point cloud is read from a ROS topic and a heightsgrid is created. For each 14x14 square of the hightsgrid a featurevector is created. Using SVM with an existing model file, it is predicted if the center of the square is a good grasping point. For good grasping points the coordinates and the direction of the approach vectors are published.

DOWNLOAD CODE

git

HOW TO USE HAF_GRASPING - GET STARTED

Start calculation server (does the work), haf_client (small programming incl. class that shows how to use haf_grasping) and a visualization in rviz:

roslaunch haf_grasping haf_grasping_all.launch

Publish the path of a point cloud to calculate grasp points on this object with the gripper approaching direction along the z-axis:

rostopic pub /haf_grasping/input_pcd_rcs_path std_msgs/String “$(rospack find haf_grasping)/data/pcd2.pcd” -1

(Alternatively, publish a point cloud at the ros topic: /haf_grasping/depth_registered/single_cloud/points_in_lcs)

EXPLANATION FOR THE RVIZ VISUALIZATION

RVIZ will now visualize the point cloud with corresponding frame (blue indicates the z-axis). Bigger rectangle: indicates the area where heights can be used for grasp calculation Inner rectangle: defines the area where grasps (grasp centers) are searched. Long red line: indicates the closing direction (for a two finger gripper) Red/green spots: indicate the positions where grasps are really tested for the current gripper roll (ignoring points where no calculation is needed, e.g. no data there) Green bars: indicate where possible grasps were found. The height of the bars indicate an grasp evaluation score (the higher the better) Black arrow: indicates the best grasp position found and the approching direction (for a parallel two finger gripper)

HAF-GRASPING CLIENT - CODE EXPLAINDED

In calc_grasppoints_action_client.cpp we subscribe to a point_cloud topic and start the following callback when a point cloud comes in:

== code start ==

//get goal (input point cloud) for grasp calculation, send it to grasp action server and receive result void CCalcGrasppointsClient::get_grasp_cb(const sensor_msgs::PointCloud2ConstPtr& pc_in) { ROS_INFO(“\nFrom calc_grasppoints_action_client: point cloud received”);

// create the action client
// true causes the client to spin its own thread
actionlib::SimpleActionClient<haf_grasping::CalcGraspPointsServerAction> ac("calc_grasppoints_svm_action_server", true);

ROS_INFO("Waiting for action server to start.");
// wait for the action server to start
ac.waitForServer(); //will wait for infinite time

ROS_INFO("Action server started, sending goal.");
// send a goal to the action
haf_grasping::CalcGraspPointsServerGoal goal;
goal.graspinput.input_pc = *pc_in;

goal.graspinput.grasp_area_center = this->graspsearchcenter;

// set size of grasp search area
goal.graspinput.grasp_area_length_x = this->grasp_search_size_x+14;
goal.graspinput.grasp_area_length_y = this->grasp_search_size_y+14;

// set max grasp calculation time
goal.graspinput.max_calculation_time = this->grasp_calculation_time_max;

//send goal
ac.sendGoal(goal);

//wait for the action to return
bool finished_before_timeout = ac.waitForResult(ros::Duration(50.0));

if (finished_before_timeout)
{
    actionlib::SimpleClientGoalState state = ac.getState();
    boost::shared_ptr<const haf_grasping::CalcGraspPointsServerResult_<std::allocator<void> > > result = ac.getResult();
    ROS_INFO("Result: %s", (*(result)).result.data.c_str());
    ROS_INFO("Action finished: %s",state.toString().c_str());
}

File truncated at 100 lines see the full file

CHANGELOG
No CHANGELOG found.

Wiki Tutorials

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

Recent questions tagged haf_grasping at Robotics Stack Exchange

No version for distro ardent showing jade. Known supported distros are highlighted in the buttons above.
Package symbol

haf_grasping package from haf_grasping repo

haf_grasping

ROS Distro
jade

Package Summary

Tags No category tags.
Version 1.0.0
License BSD
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/davidfischinger/haf_grasping.git
VCS Type git
VCS Version jade
Last Updated 2023-03-29
Dev Status MAINTAINED
CI status Continuous Integration
Released UNRELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

The haf_grasping package: calculates grasps for a given point cloud using Height Accumulated Features (HAF)

Additional Links

Maintainers

  • David Fischinger

Authors

  • David Fischinger

```

== PACKAGE: haf_grasping == ==========================================================

Author: David Fischinger, Vienna University of Technology Version: 1.0 Date: 15.5.2015

HAF_GRASPING is calculating grasp points for unknown and known objects represented by the surface point cloud data. For scientific foundation see: D. Fischinger, M. Vincze: “Learning Grasps for Unknown Objects in Cluttered Scenes”, IEEE International Conference on Robotics and Automation (ICRA), 2013. [pdf] D. Fischinger, A. Weiss, M. Vincze: “Learning Grasps with Topographic Features”, The International Journal of Robotics Research.

In a first step the point cloud is read from a ROS topic and a heightsgrid is created. For each 14x14 square of the hightsgrid a featurevector is created. Using SVM with an existing model file, it is predicted if the center of the square is a good grasping point. For good grasping points the coordinates and the direction of the approach vectors are published.

DOWNLOAD CODE

git

HOW TO USE HAF_GRASPING - GET STARTED

Start calculation server (does the work), haf_client (small programming incl. class that shows how to use haf_grasping) and a visualization in rviz:

roslaunch haf_grasping haf_grasping_all.launch

Publish the path of a point cloud to calculate grasp points on this object with the gripper approaching direction along the z-axis:

rostopic pub /haf_grasping/input_pcd_rcs_path std_msgs/String “$(rospack find haf_grasping)/data/pcd2.pcd” -1

(Alternatively, publish a point cloud at the ros topic: /haf_grasping/depth_registered/single_cloud/points_in_lcs)

EXPLANATION FOR THE RVIZ VISUALIZATION

RVIZ will now visualize the point cloud with corresponding frame (blue indicates the z-axis). Bigger rectangle: indicates the area where heights can be used for grasp calculation Inner rectangle: defines the area where grasps (grasp centers) are searched. Long red line: indicates the closing direction (for a two finger gripper) Red/green spots: indicate the positions where grasps are really tested for the current gripper roll (ignoring points where no calculation is needed, e.g. no data there) Green bars: indicate where possible grasps were found. The height of the bars indicate an grasp evaluation score (the higher the better) Black arrow: indicates the best grasp position found and the approching direction (for a parallel two finger gripper)

HAF-GRASPING CLIENT - CODE EXPLAINDED

In calc_grasppoints_action_client.cpp we subscribe to a point_cloud topic and start the following callback when a point cloud comes in:

== code start ==

//get goal (input point cloud) for grasp calculation, send it to grasp action server and receive result void CCalcGrasppointsClient::get_grasp_cb(const sensor_msgs::PointCloud2ConstPtr& pc_in) { ROS_INFO(“\nFrom calc_grasppoints_action_client: point cloud received”);

// create the action client
// true causes the client to spin its own thread
actionlib::SimpleActionClient<haf_grasping::CalcGraspPointsServerAction> ac("calc_grasppoints_svm_action_server", true);

ROS_INFO("Waiting for action server to start.");
// wait for the action server to start
ac.waitForServer(); //will wait for infinite time

ROS_INFO("Action server started, sending goal.");
// send a goal to the action
haf_grasping::CalcGraspPointsServerGoal goal;
goal.graspinput.input_pc = *pc_in;

goal.graspinput.grasp_area_center = this->graspsearchcenter;

// set size of grasp search area
goal.graspinput.grasp_area_length_x = this->grasp_search_size_x+14;
goal.graspinput.grasp_area_length_y = this->grasp_search_size_y+14;

// set max grasp calculation time
goal.graspinput.max_calculation_time = this->grasp_calculation_time_max;

//send goal
ac.sendGoal(goal);

//wait for the action to return
bool finished_before_timeout = ac.waitForResult(ros::Duration(50.0));

if (finished_before_timeout)
{
    actionlib::SimpleClientGoalState state = ac.getState();
    boost::shared_ptr<const haf_grasping::CalcGraspPointsServerResult_<std::allocator<void> > > result = ac.getResult();
    ROS_INFO("Result: %s", (*(result)).result.data.c_str());
    ROS_INFO("Action finished: %s",state.toString().c_str());
}

File truncated at 100 lines see the full file

CHANGELOG
No CHANGELOG found.

Wiki Tutorials

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

Recent questions tagged haf_grasping at Robotics Stack Exchange

No version for distro bouncy showing jade. Known supported distros are highlighted in the buttons above.
Package symbol

haf_grasping package from haf_grasping repo

haf_grasping

ROS Distro
jade

Package Summary

Tags No category tags.
Version 1.0.0
License BSD
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/davidfischinger/haf_grasping.git
VCS Type git
VCS Version jade
Last Updated 2023-03-29
Dev Status MAINTAINED
CI status Continuous Integration
Released UNRELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

The haf_grasping package: calculates grasps for a given point cloud using Height Accumulated Features (HAF)

Additional Links

Maintainers

  • David Fischinger

Authors

  • David Fischinger

```

== PACKAGE: haf_grasping == ==========================================================

Author: David Fischinger, Vienna University of Technology Version: 1.0 Date: 15.5.2015

HAF_GRASPING is calculating grasp points for unknown and known objects represented by the surface point cloud data. For scientific foundation see: D. Fischinger, M. Vincze: “Learning Grasps for Unknown Objects in Cluttered Scenes”, IEEE International Conference on Robotics and Automation (ICRA), 2013. [pdf] D. Fischinger, A. Weiss, M. Vincze: “Learning Grasps with Topographic Features”, The International Journal of Robotics Research.

In a first step the point cloud is read from a ROS topic and a heightsgrid is created. For each 14x14 square of the hightsgrid a featurevector is created. Using SVM with an existing model file, it is predicted if the center of the square is a good grasping point. For good grasping points the coordinates and the direction of the approach vectors are published.

DOWNLOAD CODE

git

HOW TO USE HAF_GRASPING - GET STARTED

Start calculation server (does the work), haf_client (small programming incl. class that shows how to use haf_grasping) and a visualization in rviz:

roslaunch haf_grasping haf_grasping_all.launch

Publish the path of a point cloud to calculate grasp points on this object with the gripper approaching direction along the z-axis:

rostopic pub /haf_grasping/input_pcd_rcs_path std_msgs/String “$(rospack find haf_grasping)/data/pcd2.pcd” -1

(Alternatively, publish a point cloud at the ros topic: /haf_grasping/depth_registered/single_cloud/points_in_lcs)

EXPLANATION FOR THE RVIZ VISUALIZATION

RVIZ will now visualize the point cloud with corresponding frame (blue indicates the z-axis). Bigger rectangle: indicates the area where heights can be used for grasp calculation Inner rectangle: defines the area where grasps (grasp centers) are searched. Long red line: indicates the closing direction (for a two finger gripper) Red/green spots: indicate the positions where grasps are really tested for the current gripper roll (ignoring points where no calculation is needed, e.g. no data there) Green bars: indicate where possible grasps were found. The height of the bars indicate an grasp evaluation score (the higher the better) Black arrow: indicates the best grasp position found and the approching direction (for a parallel two finger gripper)

HAF-GRASPING CLIENT - CODE EXPLAINDED

In calc_grasppoints_action_client.cpp we subscribe to a point_cloud topic and start the following callback when a point cloud comes in:

== code start ==

//get goal (input point cloud) for grasp calculation, send it to grasp action server and receive result void CCalcGrasppointsClient::get_grasp_cb(const sensor_msgs::PointCloud2ConstPtr& pc_in) { ROS_INFO(“\nFrom calc_grasppoints_action_client: point cloud received”);

// create the action client
// true causes the client to spin its own thread
actionlib::SimpleActionClient<haf_grasping::CalcGraspPointsServerAction> ac("calc_grasppoints_svm_action_server", true);

ROS_INFO("Waiting for action server to start.");
// wait for the action server to start
ac.waitForServer(); //will wait for infinite time

ROS_INFO("Action server started, sending goal.");
// send a goal to the action
haf_grasping::CalcGraspPointsServerGoal goal;
goal.graspinput.input_pc = *pc_in;

goal.graspinput.grasp_area_center = this->graspsearchcenter;

// set size of grasp search area
goal.graspinput.grasp_area_length_x = this->grasp_search_size_x+14;
goal.graspinput.grasp_area_length_y = this->grasp_search_size_y+14;

// set max grasp calculation time
goal.graspinput.max_calculation_time = this->grasp_calculation_time_max;

//send goal
ac.sendGoal(goal);

//wait for the action to return
bool finished_before_timeout = ac.waitForResult(ros::Duration(50.0));

if (finished_before_timeout)
{
    actionlib::SimpleClientGoalState state = ac.getState();
    boost::shared_ptr<const haf_grasping::CalcGraspPointsServerResult_<std::allocator<void> > > result = ac.getResult();
    ROS_INFO("Result: %s", (*(result)).result.data.c_str());
    ROS_INFO("Action finished: %s",state.toString().c_str());
}

File truncated at 100 lines see the full file

CHANGELOG
No CHANGELOG found.

Wiki Tutorials

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

Recent questions tagged haf_grasping at Robotics Stack Exchange

No version for distro crystal showing jade. Known supported distros are highlighted in the buttons above.
Package symbol

haf_grasping package from haf_grasping repo

haf_grasping

ROS Distro
jade

Package Summary

Tags No category tags.
Version 1.0.0
License BSD
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/davidfischinger/haf_grasping.git
VCS Type git
VCS Version jade
Last Updated 2023-03-29
Dev Status MAINTAINED
CI status Continuous Integration
Released UNRELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

The haf_grasping package: calculates grasps for a given point cloud using Height Accumulated Features (HAF)

Additional Links

Maintainers

  • David Fischinger

Authors

  • David Fischinger

```

== PACKAGE: haf_grasping == ==========================================================

Author: David Fischinger, Vienna University of Technology Version: 1.0 Date: 15.5.2015

HAF_GRASPING is calculating grasp points for unknown and known objects represented by the surface point cloud data. For scientific foundation see: D. Fischinger, M. Vincze: “Learning Grasps for Unknown Objects in Cluttered Scenes”, IEEE International Conference on Robotics and Automation (ICRA), 2013. [pdf] D. Fischinger, A. Weiss, M. Vincze: “Learning Grasps with Topographic Features”, The International Journal of Robotics Research.

In a first step the point cloud is read from a ROS topic and a heightsgrid is created. For each 14x14 square of the hightsgrid a featurevector is created. Using SVM with an existing model file, it is predicted if the center of the square is a good grasping point. For good grasping points the coordinates and the direction of the approach vectors are published.

DOWNLOAD CODE

git

HOW TO USE HAF_GRASPING - GET STARTED

Start calculation server (does the work), haf_client (small programming incl. class that shows how to use haf_grasping) and a visualization in rviz:

roslaunch haf_grasping haf_grasping_all.launch

Publish the path of a point cloud to calculate grasp points on this object with the gripper approaching direction along the z-axis:

rostopic pub /haf_grasping/input_pcd_rcs_path std_msgs/String “$(rospack find haf_grasping)/data/pcd2.pcd” -1

(Alternatively, publish a point cloud at the ros topic: /haf_grasping/depth_registered/single_cloud/points_in_lcs)

EXPLANATION FOR THE RVIZ VISUALIZATION

RVIZ will now visualize the point cloud with corresponding frame (blue indicates the z-axis). Bigger rectangle: indicates the area where heights can be used for grasp calculation Inner rectangle: defines the area where grasps (grasp centers) are searched. Long red line: indicates the closing direction (for a two finger gripper) Red/green spots: indicate the positions where grasps are really tested for the current gripper roll (ignoring points where no calculation is needed, e.g. no data there) Green bars: indicate where possible grasps were found. The height of the bars indicate an grasp evaluation score (the higher the better) Black arrow: indicates the best grasp position found and the approching direction (for a parallel two finger gripper)

HAF-GRASPING CLIENT - CODE EXPLAINDED

In calc_grasppoints_action_client.cpp we subscribe to a point_cloud topic and start the following callback when a point cloud comes in:

== code start ==

//get goal (input point cloud) for grasp calculation, send it to grasp action server and receive result void CCalcGrasppointsClient::get_grasp_cb(const sensor_msgs::PointCloud2ConstPtr& pc_in) { ROS_INFO(“\nFrom calc_grasppoints_action_client: point cloud received”);

// create the action client
// true causes the client to spin its own thread
actionlib::SimpleActionClient<haf_grasping::CalcGraspPointsServerAction> ac("calc_grasppoints_svm_action_server", true);

ROS_INFO("Waiting for action server to start.");
// wait for the action server to start
ac.waitForServer(); //will wait for infinite time

ROS_INFO("Action server started, sending goal.");
// send a goal to the action
haf_grasping::CalcGraspPointsServerGoal goal;
goal.graspinput.input_pc = *pc_in;

goal.graspinput.grasp_area_center = this->graspsearchcenter;

// set size of grasp search area
goal.graspinput.grasp_area_length_x = this->grasp_search_size_x+14;
goal.graspinput.grasp_area_length_y = this->grasp_search_size_y+14;

// set max grasp calculation time
goal.graspinput.max_calculation_time = this->grasp_calculation_time_max;

//send goal
ac.sendGoal(goal);

//wait for the action to return
bool finished_before_timeout = ac.waitForResult(ros::Duration(50.0));

if (finished_before_timeout)
{
    actionlib::SimpleClientGoalState state = ac.getState();
    boost::shared_ptr<const haf_grasping::CalcGraspPointsServerResult_<std::allocator<void> > > result = ac.getResult();
    ROS_INFO("Result: %s", (*(result)).result.data.c_str());
    ROS_INFO("Action finished: %s",state.toString().c_str());
}

File truncated at 100 lines see the full file

CHANGELOG
No CHANGELOG found.

Wiki Tutorials

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

Recent questions tagged haf_grasping at Robotics Stack Exchange

No version for distro eloquent showing jade. Known supported distros are highlighted in the buttons above.
Package symbol

haf_grasping package from haf_grasping repo

haf_grasping

ROS Distro
jade

Package Summary

Tags No category tags.
Version 1.0.0
License BSD
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/davidfischinger/haf_grasping.git
VCS Type git
VCS Version jade
Last Updated 2023-03-29
Dev Status MAINTAINED
CI status Continuous Integration
Released UNRELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

The haf_grasping package: calculates grasps for a given point cloud using Height Accumulated Features (HAF)

Additional Links

Maintainers

  • David Fischinger

Authors

  • David Fischinger

```

== PACKAGE: haf_grasping == ==========================================================

Author: David Fischinger, Vienna University of Technology Version: 1.0 Date: 15.5.2015

HAF_GRASPING is calculating grasp points for unknown and known objects represented by the surface point cloud data. For scientific foundation see: D. Fischinger, M. Vincze: “Learning Grasps for Unknown Objects in Cluttered Scenes”, IEEE International Conference on Robotics and Automation (ICRA), 2013. [pdf] D. Fischinger, A. Weiss, M. Vincze: “Learning Grasps with Topographic Features”, The International Journal of Robotics Research.

In a first step the point cloud is read from a ROS topic and a heightsgrid is created. For each 14x14 square of the hightsgrid a featurevector is created. Using SVM with an existing model file, it is predicted if the center of the square is a good grasping point. For good grasping points the coordinates and the direction of the approach vectors are published.

DOWNLOAD CODE

git

HOW TO USE HAF_GRASPING - GET STARTED

Start calculation server (does the work), haf_client (small programming incl. class that shows how to use haf_grasping) and a visualization in rviz:

roslaunch haf_grasping haf_grasping_all.launch

Publish the path of a point cloud to calculate grasp points on this object with the gripper approaching direction along the z-axis:

rostopic pub /haf_grasping/input_pcd_rcs_path std_msgs/String “$(rospack find haf_grasping)/data/pcd2.pcd” -1

(Alternatively, publish a point cloud at the ros topic: /haf_grasping/depth_registered/single_cloud/points_in_lcs)

EXPLANATION FOR THE RVIZ VISUALIZATION

RVIZ will now visualize the point cloud with corresponding frame (blue indicates the z-axis). Bigger rectangle: indicates the area where heights can be used for grasp calculation Inner rectangle: defines the area where grasps (grasp centers) are searched. Long red line: indicates the closing direction (for a two finger gripper) Red/green spots: indicate the positions where grasps are really tested for the current gripper roll (ignoring points where no calculation is needed, e.g. no data there) Green bars: indicate where possible grasps were found. The height of the bars indicate an grasp evaluation score (the higher the better) Black arrow: indicates the best grasp position found and the approching direction (for a parallel two finger gripper)

HAF-GRASPING CLIENT - CODE EXPLAINDED

In calc_grasppoints_action_client.cpp we subscribe to a point_cloud topic and start the following callback when a point cloud comes in:

== code start ==

//get goal (input point cloud) for grasp calculation, send it to grasp action server and receive result void CCalcGrasppointsClient::get_grasp_cb(const sensor_msgs::PointCloud2ConstPtr& pc_in) { ROS_INFO(“\nFrom calc_grasppoints_action_client: point cloud received”);

// create the action client
// true causes the client to spin its own thread
actionlib::SimpleActionClient<haf_grasping::CalcGraspPointsServerAction> ac("calc_grasppoints_svm_action_server", true);

ROS_INFO("Waiting for action server to start.");
// wait for the action server to start
ac.waitForServer(); //will wait for infinite time

ROS_INFO("Action server started, sending goal.");
// send a goal to the action
haf_grasping::CalcGraspPointsServerGoal goal;
goal.graspinput.input_pc = *pc_in;

goal.graspinput.grasp_area_center = this->graspsearchcenter;

// set size of grasp search area
goal.graspinput.grasp_area_length_x = this->grasp_search_size_x+14;
goal.graspinput.grasp_area_length_y = this->grasp_search_size_y+14;

// set max grasp calculation time
goal.graspinput.max_calculation_time = this->grasp_calculation_time_max;

//send goal
ac.sendGoal(goal);

//wait for the action to return
bool finished_before_timeout = ac.waitForResult(ros::Duration(50.0));

if (finished_before_timeout)
{
    actionlib::SimpleClientGoalState state = ac.getState();
    boost::shared_ptr<const haf_grasping::CalcGraspPointsServerResult_<std::allocator<void> > > result = ac.getResult();
    ROS_INFO("Result: %s", (*(result)).result.data.c_str());
    ROS_INFO("Action finished: %s",state.toString().c_str());
}

File truncated at 100 lines see the full file

CHANGELOG
No CHANGELOG found.

Wiki Tutorials

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

Recent questions tagged haf_grasping at Robotics Stack Exchange

No version for distro dashing showing jade. Known supported distros are highlighted in the buttons above.
Package symbol

haf_grasping package from haf_grasping repo

haf_grasping

ROS Distro
jade

Package Summary

Tags No category tags.
Version 1.0.0
License BSD
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/davidfischinger/haf_grasping.git
VCS Type git
VCS Version jade
Last Updated 2023-03-29
Dev Status MAINTAINED
CI status Continuous Integration
Released UNRELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

The haf_grasping package: calculates grasps for a given point cloud using Height Accumulated Features (HAF)

Additional Links

Maintainers

  • David Fischinger

Authors

  • David Fischinger

```

== PACKAGE: haf_grasping == ==========================================================

Author: David Fischinger, Vienna University of Technology Version: 1.0 Date: 15.5.2015

HAF_GRASPING is calculating grasp points for unknown and known objects represented by the surface point cloud data. For scientific foundation see: D. Fischinger, M. Vincze: “Learning Grasps for Unknown Objects in Cluttered Scenes”, IEEE International Conference on Robotics and Automation (ICRA), 2013. [pdf] D. Fischinger, A. Weiss, M. Vincze: “Learning Grasps with Topographic Features”, The International Journal of Robotics Research.

In a first step the point cloud is read from a ROS topic and a heightsgrid is created. For each 14x14 square of the hightsgrid a featurevector is created. Using SVM with an existing model file, it is predicted if the center of the square is a good grasping point. For good grasping points the coordinates and the direction of the approach vectors are published.

DOWNLOAD CODE

git

HOW TO USE HAF_GRASPING - GET STARTED

Start calculation server (does the work), haf_client (small programming incl. class that shows how to use haf_grasping) and a visualization in rviz:

roslaunch haf_grasping haf_grasping_all.launch

Publish the path of a point cloud to calculate grasp points on this object with the gripper approaching direction along the z-axis:

rostopic pub /haf_grasping/input_pcd_rcs_path std_msgs/String “$(rospack find haf_grasping)/data/pcd2.pcd” -1

(Alternatively, publish a point cloud at the ros topic: /haf_grasping/depth_registered/single_cloud/points_in_lcs)

EXPLANATION FOR THE RVIZ VISUALIZATION

RVIZ will now visualize the point cloud with corresponding frame (blue indicates the z-axis). Bigger rectangle: indicates the area where heights can be used for grasp calculation Inner rectangle: defines the area where grasps (grasp centers) are searched. Long red line: indicates the closing direction (for a two finger gripper) Red/green spots: indicate the positions where grasps are really tested for the current gripper roll (ignoring points where no calculation is needed, e.g. no data there) Green bars: indicate where possible grasps were found. The height of the bars indicate an grasp evaluation score (the higher the better) Black arrow: indicates the best grasp position found and the approching direction (for a parallel two finger gripper)

HAF-GRASPING CLIENT - CODE EXPLAINDED

In calc_grasppoints_action_client.cpp we subscribe to a point_cloud topic and start the following callback when a point cloud comes in:

== code start ==

//get goal (input point cloud) for grasp calculation, send it to grasp action server and receive result void CCalcGrasppointsClient::get_grasp_cb(const sensor_msgs::PointCloud2ConstPtr& pc_in) { ROS_INFO(“\nFrom calc_grasppoints_action_client: point cloud received”);

// create the action client
// true causes the client to spin its own thread
actionlib::SimpleActionClient<haf_grasping::CalcGraspPointsServerAction> ac("calc_grasppoints_svm_action_server", true);

ROS_INFO("Waiting for action server to start.");
// wait for the action server to start
ac.waitForServer(); //will wait for infinite time

ROS_INFO("Action server started, sending goal.");
// send a goal to the action
haf_grasping::CalcGraspPointsServerGoal goal;
goal.graspinput.input_pc = *pc_in;

goal.graspinput.grasp_area_center = this->graspsearchcenter;

// set size of grasp search area
goal.graspinput.grasp_area_length_x = this->grasp_search_size_x+14;
goal.graspinput.grasp_area_length_y = this->grasp_search_size_y+14;

// set max grasp calculation time
goal.graspinput.max_calculation_time = this->grasp_calculation_time_max;

//send goal
ac.sendGoal(goal);

//wait for the action to return
bool finished_before_timeout = ac.waitForResult(ros::Duration(50.0));

if (finished_before_timeout)
{
    actionlib::SimpleClientGoalState state = ac.getState();
    boost::shared_ptr<const haf_grasping::CalcGraspPointsServerResult_<std::allocator<void> > > result = ac.getResult();
    ROS_INFO("Result: %s", (*(result)).result.data.c_str());
    ROS_INFO("Action finished: %s",state.toString().c_str());
}

File truncated at 100 lines see the full file

CHANGELOG
No CHANGELOG found.

Wiki Tutorials

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

Recent questions tagged haf_grasping at Robotics Stack Exchange

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

haf_grasping package from haf_grasping repo

haf_grasping

ROS Distro
jade

Package Summary

Tags No category tags.
Version 1.0.0
License BSD
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/davidfischinger/haf_grasping.git
VCS Type git
VCS Version jade
Last Updated 2023-03-29
Dev Status MAINTAINED
CI status Continuous Integration
Released UNRELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

The haf_grasping package: calculates grasps for a given point cloud using Height Accumulated Features (HAF)

Additional Links

Maintainers

  • David Fischinger

Authors

  • David Fischinger

```

== PACKAGE: haf_grasping == ==========================================================

Author: David Fischinger, Vienna University of Technology Version: 1.0 Date: 15.5.2015

HAF_GRASPING is calculating grasp points for unknown and known objects represented by the surface point cloud data. For scientific foundation see: D. Fischinger, M. Vincze: “Learning Grasps for Unknown Objects in Cluttered Scenes”, IEEE International Conference on Robotics and Automation (ICRA), 2013. [pdf] D. Fischinger, A. Weiss, M. Vincze: “Learning Grasps with Topographic Features”, The International Journal of Robotics Research.

In a first step the point cloud is read from a ROS topic and a heightsgrid is created. For each 14x14 square of the hightsgrid a featurevector is created. Using SVM with an existing model file, it is predicted if the center of the square is a good grasping point. For good grasping points the coordinates and the direction of the approach vectors are published.

DOWNLOAD CODE

git

HOW TO USE HAF_GRASPING - GET STARTED

Start calculation server (does the work), haf_client (small programming incl. class that shows how to use haf_grasping) and a visualization in rviz:

roslaunch haf_grasping haf_grasping_all.launch

Publish the path of a point cloud to calculate grasp points on this object with the gripper approaching direction along the z-axis:

rostopic pub /haf_grasping/input_pcd_rcs_path std_msgs/String “$(rospack find haf_grasping)/data/pcd2.pcd” -1

(Alternatively, publish a point cloud at the ros topic: /haf_grasping/depth_registered/single_cloud/points_in_lcs)

EXPLANATION FOR THE RVIZ VISUALIZATION

RVIZ will now visualize the point cloud with corresponding frame (blue indicates the z-axis). Bigger rectangle: indicates the area where heights can be used for grasp calculation Inner rectangle: defines the area where grasps (grasp centers) are searched. Long red line: indicates the closing direction (for a two finger gripper) Red/green spots: indicate the positions where grasps are really tested for the current gripper roll (ignoring points where no calculation is needed, e.g. no data there) Green bars: indicate where possible grasps were found. The height of the bars indicate an grasp evaluation score (the higher the better) Black arrow: indicates the best grasp position found and the approching direction (for a parallel two finger gripper)

HAF-GRASPING CLIENT - CODE EXPLAINDED

In calc_grasppoints_action_client.cpp we subscribe to a point_cloud topic and start the following callback when a point cloud comes in:

== code start ==

//get goal (input point cloud) for grasp calculation, send it to grasp action server and receive result void CCalcGrasppointsClient::get_grasp_cb(const sensor_msgs::PointCloud2ConstPtr& pc_in) { ROS_INFO(“\nFrom calc_grasppoints_action_client: point cloud received”);

// create the action client
// true causes the client to spin its own thread
actionlib::SimpleActionClient<haf_grasping::CalcGraspPointsServerAction> ac("calc_grasppoints_svm_action_server", true);

ROS_INFO("Waiting for action server to start.");
// wait for the action server to start
ac.waitForServer(); //will wait for infinite time

ROS_INFO("Action server started, sending goal.");
// send a goal to the action
haf_grasping::CalcGraspPointsServerGoal goal;
goal.graspinput.input_pc = *pc_in;

goal.graspinput.grasp_area_center = this->graspsearchcenter;

// set size of grasp search area
goal.graspinput.grasp_area_length_x = this->grasp_search_size_x+14;
goal.graspinput.grasp_area_length_y = this->grasp_search_size_y+14;

// set max grasp calculation time
goal.graspinput.max_calculation_time = this->grasp_calculation_time_max;

//send goal
ac.sendGoal(goal);

//wait for the action to return
bool finished_before_timeout = ac.waitForResult(ros::Duration(50.0));

if (finished_before_timeout)
{
    actionlib::SimpleClientGoalState state = ac.getState();
    boost::shared_ptr<const haf_grasping::CalcGraspPointsServerResult_<std::allocator<void> > > result = ac.getResult();
    ROS_INFO("Result: %s", (*(result)).result.data.c_str());
    ROS_INFO("Action finished: %s",state.toString().c_str());
}

File truncated at 100 lines see the full file

CHANGELOG
No CHANGELOG found.

Wiki Tutorials

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

Recent questions tagged haf_grasping at Robotics Stack Exchange

No version for distro foxy showing jade. Known supported distros are highlighted in the buttons above.
Package symbol

haf_grasping package from haf_grasping repo

haf_grasping

ROS Distro
jade

Package Summary

Tags No category tags.
Version 1.0.0
License BSD
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/davidfischinger/haf_grasping.git
VCS Type git
VCS Version jade
Last Updated 2023-03-29
Dev Status MAINTAINED
CI status Continuous Integration
Released UNRELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

The haf_grasping package: calculates grasps for a given point cloud using Height Accumulated Features (HAF)

Additional Links

Maintainers

  • David Fischinger

Authors

  • David Fischinger

```

== PACKAGE: haf_grasping == ==========================================================

Author: David Fischinger, Vienna University of Technology Version: 1.0 Date: 15.5.2015

HAF_GRASPING is calculating grasp points for unknown and known objects represented by the surface point cloud data. For scientific foundation see: D. Fischinger, M. Vincze: “Learning Grasps for Unknown Objects in Cluttered Scenes”, IEEE International Conference on Robotics and Automation (ICRA), 2013. [pdf] D. Fischinger, A. Weiss, M. Vincze: “Learning Grasps with Topographic Features”, The International Journal of Robotics Research.

In a first step the point cloud is read from a ROS topic and a heightsgrid is created. For each 14x14 square of the hightsgrid a featurevector is created. Using SVM with an existing model file, it is predicted if the center of the square is a good grasping point. For good grasping points the coordinates and the direction of the approach vectors are published.

DOWNLOAD CODE

git

HOW TO USE HAF_GRASPING - GET STARTED

Start calculation server (does the work), haf_client (small programming incl. class that shows how to use haf_grasping) and a visualization in rviz:

roslaunch haf_grasping haf_grasping_all.launch

Publish the path of a point cloud to calculate grasp points on this object with the gripper approaching direction along the z-axis:

rostopic pub /haf_grasping/input_pcd_rcs_path std_msgs/String “$(rospack find haf_grasping)/data/pcd2.pcd” -1

(Alternatively, publish a point cloud at the ros topic: /haf_grasping/depth_registered/single_cloud/points_in_lcs)

EXPLANATION FOR THE RVIZ VISUALIZATION

RVIZ will now visualize the point cloud with corresponding frame (blue indicates the z-axis). Bigger rectangle: indicates the area where heights can be used for grasp calculation Inner rectangle: defines the area where grasps (grasp centers) are searched. Long red line: indicates the closing direction (for a two finger gripper) Red/green spots: indicate the positions where grasps are really tested for the current gripper roll (ignoring points where no calculation is needed, e.g. no data there) Green bars: indicate where possible grasps were found. The height of the bars indicate an grasp evaluation score (the higher the better) Black arrow: indicates the best grasp position found and the approching direction (for a parallel two finger gripper)

HAF-GRASPING CLIENT - CODE EXPLAINDED

In calc_grasppoints_action_client.cpp we subscribe to a point_cloud topic and start the following callback when a point cloud comes in:

== code start ==

//get goal (input point cloud) for grasp calculation, send it to grasp action server and receive result void CCalcGrasppointsClient::get_grasp_cb(const sensor_msgs::PointCloud2ConstPtr& pc_in) { ROS_INFO(“\nFrom calc_grasppoints_action_client: point cloud received”);

// create the action client
// true causes the client to spin its own thread
actionlib::SimpleActionClient<haf_grasping::CalcGraspPointsServerAction> ac("calc_grasppoints_svm_action_server", true);

ROS_INFO("Waiting for action server to start.");
// wait for the action server to start
ac.waitForServer(); //will wait for infinite time

ROS_INFO("Action server started, sending goal.");
// send a goal to the action
haf_grasping::CalcGraspPointsServerGoal goal;
goal.graspinput.input_pc = *pc_in;

goal.graspinput.grasp_area_center = this->graspsearchcenter;

// set size of grasp search area
goal.graspinput.grasp_area_length_x = this->grasp_search_size_x+14;
goal.graspinput.grasp_area_length_y = this->grasp_search_size_y+14;

// set max grasp calculation time
goal.graspinput.max_calculation_time = this->grasp_calculation_time_max;

//send goal
ac.sendGoal(goal);

//wait for the action to return
bool finished_before_timeout = ac.waitForResult(ros::Duration(50.0));

if (finished_before_timeout)
{
    actionlib::SimpleClientGoalState state = ac.getState();
    boost::shared_ptr<const haf_grasping::CalcGraspPointsServerResult_<std::allocator<void> > > result = ac.getResult();
    ROS_INFO("Result: %s", (*(result)).result.data.c_str());
    ROS_INFO("Action finished: %s",state.toString().c_str());
}

File truncated at 100 lines see the full file

CHANGELOG
No CHANGELOG found.

Wiki Tutorials

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

Recent questions tagged haf_grasping at Robotics Stack Exchange

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

haf_grasping package from haf_grasping repo

haf_grasping

ROS Distro
jade

Package Summary

Tags No category tags.
Version 1.0.0
License BSD
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/davidfischinger/haf_grasping.git
VCS Type git
VCS Version jade
Last Updated 2023-03-29
Dev Status MAINTAINED
CI status Continuous Integration
Released UNRELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

The haf_grasping package: calculates grasps for a given point cloud using Height Accumulated Features (HAF)

Additional Links

Maintainers

  • David Fischinger

Authors

  • David Fischinger

```

== PACKAGE: haf_grasping == ==========================================================

Author: David Fischinger, Vienna University of Technology Version: 1.0 Date: 15.5.2015

HAF_GRASPING is calculating grasp points for unknown and known objects represented by the surface point cloud data. For scientific foundation see: D. Fischinger, M. Vincze: “Learning Grasps for Unknown Objects in Cluttered Scenes”, IEEE International Conference on Robotics and Automation (ICRA), 2013. [pdf] D. Fischinger, A. Weiss, M. Vincze: “Learning Grasps with Topographic Features”, The International Journal of Robotics Research.

In a first step the point cloud is read from a ROS topic and a heightsgrid is created. For each 14x14 square of the hightsgrid a featurevector is created. Using SVM with an existing model file, it is predicted if the center of the square is a good grasping point. For good grasping points the coordinates and the direction of the approach vectors are published.

DOWNLOAD CODE

git

HOW TO USE HAF_GRASPING - GET STARTED

Start calculation server (does the work), haf_client (small programming incl. class that shows how to use haf_grasping) and a visualization in rviz:

roslaunch haf_grasping haf_grasping_all.launch

Publish the path of a point cloud to calculate grasp points on this object with the gripper approaching direction along the z-axis:

rostopic pub /haf_grasping/input_pcd_rcs_path std_msgs/String “$(rospack find haf_grasping)/data/pcd2.pcd” -1

(Alternatively, publish a point cloud at the ros topic: /haf_grasping/depth_registered/single_cloud/points_in_lcs)

EXPLANATION FOR THE RVIZ VISUALIZATION

RVIZ will now visualize the point cloud with corresponding frame (blue indicates the z-axis). Bigger rectangle: indicates the area where heights can be used for grasp calculation Inner rectangle: defines the area where grasps (grasp centers) are searched. Long red line: indicates the closing direction (for a two finger gripper) Red/green spots: indicate the positions where grasps are really tested for the current gripper roll (ignoring points where no calculation is needed, e.g. no data there) Green bars: indicate where possible grasps were found. The height of the bars indicate an grasp evaluation score (the higher the better) Black arrow: indicates the best grasp position found and the approching direction (for a parallel two finger gripper)

HAF-GRASPING CLIENT - CODE EXPLAINDED

In calc_grasppoints_action_client.cpp we subscribe to a point_cloud topic and start the following callback when a point cloud comes in:

== code start ==

//get goal (input point cloud) for grasp calculation, send it to grasp action server and receive result void CCalcGrasppointsClient::get_grasp_cb(const sensor_msgs::PointCloud2ConstPtr& pc_in) { ROS_INFO(“\nFrom calc_grasppoints_action_client: point cloud received”);

// create the action client
// true causes the client to spin its own thread
actionlib::SimpleActionClient<haf_grasping::CalcGraspPointsServerAction> ac("calc_grasppoints_svm_action_server", true);

ROS_INFO("Waiting for action server to start.");
// wait for the action server to start
ac.waitForServer(); //will wait for infinite time

ROS_INFO("Action server started, sending goal.");
// send a goal to the action
haf_grasping::CalcGraspPointsServerGoal goal;
goal.graspinput.input_pc = *pc_in;

goal.graspinput.grasp_area_center = this->graspsearchcenter;

// set size of grasp search area
goal.graspinput.grasp_area_length_x = this->grasp_search_size_x+14;
goal.graspinput.grasp_area_length_y = this->grasp_search_size_y+14;

// set max grasp calculation time
goal.graspinput.max_calculation_time = this->grasp_calculation_time_max;

//send goal
ac.sendGoal(goal);

//wait for the action to return
bool finished_before_timeout = ac.waitForResult(ros::Duration(50.0));

if (finished_before_timeout)
{
    actionlib::SimpleClientGoalState state = ac.getState();
    boost::shared_ptr<const haf_grasping::CalcGraspPointsServerResult_<std::allocator<void> > > result = ac.getResult();
    ROS_INFO("Result: %s", (*(result)).result.data.c_str());
    ROS_INFO("Action finished: %s",state.toString().c_str());
}

File truncated at 100 lines see the full file

CHANGELOG
No CHANGELOG found.

Wiki Tutorials

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

Recent questions tagged haf_grasping at Robotics Stack Exchange

No version for distro lunar showing jade. Known supported distros are highlighted in the buttons above.
Package symbol

haf_grasping package from haf_grasping repo

haf_grasping

ROS Distro
jade

Package Summary

Tags No category tags.
Version 1.0.0
License BSD
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/davidfischinger/haf_grasping.git
VCS Type git
VCS Version jade
Last Updated 2023-03-29
Dev Status MAINTAINED
CI status Continuous Integration
Released UNRELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

The haf_grasping package: calculates grasps for a given point cloud using Height Accumulated Features (HAF)

Additional Links

Maintainers

  • David Fischinger

Authors

  • David Fischinger

```

== PACKAGE: haf_grasping == ==========================================================

Author: David Fischinger, Vienna University of Technology Version: 1.0 Date: 15.5.2015

HAF_GRASPING is calculating grasp points for unknown and known objects represented by the surface point cloud data. For scientific foundation see: D. Fischinger, M. Vincze: “Learning Grasps for Unknown Objects in Cluttered Scenes”, IEEE International Conference on Robotics and Automation (ICRA), 2013. [pdf] D. Fischinger, A. Weiss, M. Vincze: “Learning Grasps with Topographic Features”, The International Journal of Robotics Research.

In a first step the point cloud is read from a ROS topic and a heightsgrid is created. For each 14x14 square of the hightsgrid a featurevector is created. Using SVM with an existing model file, it is predicted if the center of the square is a good grasping point. For good grasping points the coordinates and the direction of the approach vectors are published.

DOWNLOAD CODE

git

HOW TO USE HAF_GRASPING - GET STARTED

Start calculation server (does the work), haf_client (small programming incl. class that shows how to use haf_grasping) and a visualization in rviz:

roslaunch haf_grasping haf_grasping_all.launch

Publish the path of a point cloud to calculate grasp points on this object with the gripper approaching direction along the z-axis:

rostopic pub /haf_grasping/input_pcd_rcs_path std_msgs/String “$(rospack find haf_grasping)/data/pcd2.pcd” -1

(Alternatively, publish a point cloud at the ros topic: /haf_grasping/depth_registered/single_cloud/points_in_lcs)

EXPLANATION FOR THE RVIZ VISUALIZATION

RVIZ will now visualize the point cloud with corresponding frame (blue indicates the z-axis). Bigger rectangle: indicates the area where heights can be used for grasp calculation Inner rectangle: defines the area where grasps (grasp centers) are searched. Long red line: indicates the closing direction (for a two finger gripper) Red/green spots: indicate the positions where grasps are really tested for the current gripper roll (ignoring points where no calculation is needed, e.g. no data there) Green bars: indicate where possible grasps were found. The height of the bars indicate an grasp evaluation score (the higher the better) Black arrow: indicates the best grasp position found and the approching direction (for a parallel two finger gripper)

HAF-GRASPING CLIENT - CODE EXPLAINDED

In calc_grasppoints_action_client.cpp we subscribe to a point_cloud topic and start the following callback when a point cloud comes in:

== code start ==

//get goal (input point cloud) for grasp calculation, send it to grasp action server and receive result void CCalcGrasppointsClient::get_grasp_cb(const sensor_msgs::PointCloud2ConstPtr& pc_in) { ROS_INFO(“\nFrom calc_grasppoints_action_client: point cloud received”);

// create the action client
// true causes the client to spin its own thread
actionlib::SimpleActionClient<haf_grasping::CalcGraspPointsServerAction> ac("calc_grasppoints_svm_action_server", true);

ROS_INFO("Waiting for action server to start.");
// wait for the action server to start
ac.waitForServer(); //will wait for infinite time

ROS_INFO("Action server started, sending goal.");
// send a goal to the action
haf_grasping::CalcGraspPointsServerGoal goal;
goal.graspinput.input_pc = *pc_in;

goal.graspinput.grasp_area_center = this->graspsearchcenter;

// set size of grasp search area
goal.graspinput.grasp_area_length_x = this->grasp_search_size_x+14;
goal.graspinput.grasp_area_length_y = this->grasp_search_size_y+14;

// set max grasp calculation time
goal.graspinput.max_calculation_time = this->grasp_calculation_time_max;

//send goal
ac.sendGoal(goal);

//wait for the action to return
bool finished_before_timeout = ac.waitForResult(ros::Duration(50.0));

if (finished_before_timeout)
{
    actionlib::SimpleClientGoalState state = ac.getState();
    boost::shared_ptr<const haf_grasping::CalcGraspPointsServerResult_<std::allocator<void> > > result = ac.getResult();
    ROS_INFO("Result: %s", (*(result)).result.data.c_str());
    ROS_INFO("Action finished: %s",state.toString().c_str());
}

File truncated at 100 lines see the full file

CHANGELOG
No CHANGELOG found.

Wiki Tutorials

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

Recent questions tagged haf_grasping at Robotics Stack Exchange

Package symbol

haf_grasping package from haf_grasping repo

haf_grasping

ROS Distro
jade

Package Summary

Tags No category tags.
Version 1.0.0
License BSD
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/davidfischinger/haf_grasping.git
VCS Type git
VCS Version jade
Last Updated 2023-03-29
Dev Status MAINTAINED
CI status Continuous Integration
Released UNRELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

The haf_grasping package: calculates grasps for a given point cloud using Height Accumulated Features (HAF)

Additional Links

Maintainers

  • David Fischinger

Authors

  • David Fischinger

```

== PACKAGE: haf_grasping == ==========================================================

Author: David Fischinger, Vienna University of Technology Version: 1.0 Date: 15.5.2015

HAF_GRASPING is calculating grasp points for unknown and known objects represented by the surface point cloud data. For scientific foundation see: D. Fischinger, M. Vincze: “Learning Grasps for Unknown Objects in Cluttered Scenes”, IEEE International Conference on Robotics and Automation (ICRA), 2013. [pdf] D. Fischinger, A. Weiss, M. Vincze: “Learning Grasps with Topographic Features”, The International Journal of Robotics Research.

In a first step the point cloud is read from a ROS topic and a heightsgrid is created. For each 14x14 square of the hightsgrid a featurevector is created. Using SVM with an existing model file, it is predicted if the center of the square is a good grasping point. For good grasping points the coordinates and the direction of the approach vectors are published.

DOWNLOAD CODE

git

HOW TO USE HAF_GRASPING - GET STARTED

Start calculation server (does the work), haf_client (small programming incl. class that shows how to use haf_grasping) and a visualization in rviz:

roslaunch haf_grasping haf_grasping_all.launch

Publish the path of a point cloud to calculate grasp points on this object with the gripper approaching direction along the z-axis:

rostopic pub /haf_grasping/input_pcd_rcs_path std_msgs/String “$(rospack find haf_grasping)/data/pcd2.pcd” -1

(Alternatively, publish a point cloud at the ros topic: /haf_grasping/depth_registered/single_cloud/points_in_lcs)

EXPLANATION FOR THE RVIZ VISUALIZATION

RVIZ will now visualize the point cloud with corresponding frame (blue indicates the z-axis). Bigger rectangle: indicates the area where heights can be used for grasp calculation Inner rectangle: defines the area where grasps (grasp centers) are searched. Long red line: indicates the closing direction (for a two finger gripper) Red/green spots: indicate the positions where grasps are really tested for the current gripper roll (ignoring points where no calculation is needed, e.g. no data there) Green bars: indicate where possible grasps were found. The height of the bars indicate an grasp evaluation score (the higher the better) Black arrow: indicates the best grasp position found and the approching direction (for a parallel two finger gripper)

HAF-GRASPING CLIENT - CODE EXPLAINDED

In calc_grasppoints_action_client.cpp we subscribe to a point_cloud topic and start the following callback when a point cloud comes in:

== code start ==

//get goal (input point cloud) for grasp calculation, send it to grasp action server and receive result void CCalcGrasppointsClient::get_grasp_cb(const sensor_msgs::PointCloud2ConstPtr& pc_in) { ROS_INFO(“\nFrom calc_grasppoints_action_client: point cloud received”);

// create the action client
// true causes the client to spin its own thread
actionlib::SimpleActionClient<haf_grasping::CalcGraspPointsServerAction> ac("calc_grasppoints_svm_action_server", true);

ROS_INFO("Waiting for action server to start.");
// wait for the action server to start
ac.waitForServer(); //will wait for infinite time

ROS_INFO("Action server started, sending goal.");
// send a goal to the action
haf_grasping::CalcGraspPointsServerGoal goal;
goal.graspinput.input_pc = *pc_in;

goal.graspinput.grasp_area_center = this->graspsearchcenter;

// set size of grasp search area
goal.graspinput.grasp_area_length_x = this->grasp_search_size_x+14;
goal.graspinput.grasp_area_length_y = this->grasp_search_size_y+14;

// set max grasp calculation time
goal.graspinput.max_calculation_time = this->grasp_calculation_time_max;

//send goal
ac.sendGoal(goal);

//wait for the action to return
bool finished_before_timeout = ac.waitForResult(ros::Duration(50.0));

if (finished_before_timeout)
{
    actionlib::SimpleClientGoalState state = ac.getState();
    boost::shared_ptr<const haf_grasping::CalcGraspPointsServerResult_<std::allocator<void> > > result = ac.getResult();
    ROS_INFO("Result: %s", (*(result)).result.data.c_str());
    ROS_INFO("Action finished: %s",state.toString().c_str());
}

File truncated at 100 lines see the full file

CHANGELOG
No CHANGELOG found.

Wiki Tutorials

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

Recent questions tagged haf_grasping at Robotics Stack Exchange

Package symbol

haf_grasping package from haf_grasping repo

haf_grasping

ROS Distro
indigo

Package Summary

Tags No category tags.
Version 1.0.0
License BSD
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/davidfischinger/haf_grasping.git
VCS Type git
VCS Version indigo
Last Updated 2023-03-29
Dev Status MAINTAINED
CI status Continuous Integration
Released UNRELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

The haf_grasping package: calculates grasps for a given point cloud using Height Accumulated Features (HAF)

Additional Links

Maintainers

  • David Fischinger

Authors

  • David Fischinger

```

== PACKAGE: haf_grasping == ==========================================================

Author: David Fischinger, Vienna University of Technology Version: 1.0 Date: 15.5.2015

HAF_GRASPING is calculating grasp points for unknown and known objects represented by the surface point cloud data. For scientific foundation see: D. Fischinger, M. Vincze: “Learning Grasps for Unknown Objects in Cluttered Scenes”, IEEE International Conference on Robotics and Automation (ICRA), 2013. [pdf] D. Fischinger, A. Weiss, M. Vincze: “Learning Grasps with Topographic Features”, The International Journal of Robotics Research.

In a first step the point cloud is read from a ROS topic and a heightsgrid is created. For each 14x14 square of the hightsgrid a featurevector is created. Using SVM with an existing model file, it is predicted if the center of the square is a good grasping point. For good grasping points the coordinates and the direction of the approach vectors are published.

DOWNLOAD CODE

git

HOW TO USE HAF_GRASPING - GET STARTED

Start calculation server (does the work), haf_client (small programming incl. class that shows how to use haf_grasping) and a visualization in rviz:

roslaunch haf_grasping haf_grasping_all.launch

Publish the path of a point cloud to calculate grasp points on this object with the gripper approaching direction along the z-axis:

rostopic pub /haf_grasping/input_pcd_rcs_path std_msgs/String “$(rospack find haf_grasping)/data/pcd2.pcd” -1

(Alternatively, publish a point cloud at the ros topic: /haf_grasping/depth_registered/single_cloud/points_in_lcs)

EXPLANATION FOR THE RVIZ VISUALIZATION

RVIZ will now visualize the point cloud with corresponding frame (blue indicates the z-axis). Bigger rectangle: indicates the area where heights can be used for grasp calculation Inner rectangle: defines the area where grasps (grasp centers) are searched. Long red line: indicates the closing direction (for a two finger gripper) Red/green spots: indicate the positions where grasps are really tested for the current gripper roll (ignoring points where no calculation is needed, e.g. no data there) Green bars: indicate where possible grasps were found. The height of the bars indicate an grasp evaluation score (the higher the better) Black arrow: indicates the best grasp position found and the approching direction (for a parallel two finger gripper)

HAF-GRASPING CLIENT - CODE EXPLAINDED

In calc_grasppoints_action_client.cpp we subscribe to a point_cloud topic and start the following callback when a point cloud comes in:

== code start ==

//get goal (input point cloud) for grasp calculation, send it to grasp action server and receive result void CCalcGrasppointsClient::get_grasp_cb(const sensor_msgs::PointCloud2ConstPtr& pc_in) { ROS_INFO(“\nFrom calc_grasppoints_action_client: point cloud received”);

// create the action client
// true causes the client to spin its own thread
actionlib::SimpleActionClient<haf_grasping::CalcGraspPointsServerAction> ac("calc_grasppoints_svm_action_server", true);

ROS_INFO("Waiting for action server to start.");
// wait for the action server to start
ac.waitForServer(); //will wait for infinite time

ROS_INFO("Action server started, sending goal.");
// send a goal to the action
haf_grasping::CalcGraspPointsServerGoal goal;
goal.graspinput.input_pc = *pc_in;

goal.graspinput.grasp_area_center = this->graspsearchcenter;

// set size of grasp search area
goal.graspinput.grasp_area_length_x = this->grasp_search_size_x+14;
goal.graspinput.grasp_area_length_y = this->grasp_search_size_y+14;

// set max grasp calculation time
goal.graspinput.max_calculation_time = this->grasp_calculation_time_max;

//send goal
ac.sendGoal(goal);

//wait for the action to return
bool finished_before_timeout = ac.waitForResult(ros::Duration(50.0));

if (finished_before_timeout)
{
    actionlib::SimpleClientGoalState state = ac.getState();
    boost::shared_ptr<const haf_grasping::CalcGraspPointsServerResult_<std::allocator<void> > > result = ac.getResult();
    ROS_INFO("Result: %s", (*(result)).result.data.c_str());
    ROS_INFO("Action finished: %s",state.toString().c_str());
}

File truncated at 100 lines see the full file

CHANGELOG
No CHANGELOG found.

Wiki Tutorials

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

Recent questions tagged haf_grasping at Robotics Stack Exchange

No version for distro hydro showing jade. Known supported distros are highlighted in the buttons above.
Package symbol

haf_grasping package from haf_grasping repo

haf_grasping

ROS Distro
jade

Package Summary

Tags No category tags.
Version 1.0.0
License BSD
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/davidfischinger/haf_grasping.git
VCS Type git
VCS Version jade
Last Updated 2023-03-29
Dev Status MAINTAINED
CI status Continuous Integration
Released UNRELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

The haf_grasping package: calculates grasps for a given point cloud using Height Accumulated Features (HAF)

Additional Links

Maintainers

  • David Fischinger

Authors

  • David Fischinger

```

== PACKAGE: haf_grasping == ==========================================================

Author: David Fischinger, Vienna University of Technology Version: 1.0 Date: 15.5.2015

HAF_GRASPING is calculating grasp points for unknown and known objects represented by the surface point cloud data. For scientific foundation see: D. Fischinger, M. Vincze: “Learning Grasps for Unknown Objects in Cluttered Scenes”, IEEE International Conference on Robotics and Automation (ICRA), 2013. [pdf] D. Fischinger, A. Weiss, M. Vincze: “Learning Grasps with Topographic Features”, The International Journal of Robotics Research.

In a first step the point cloud is read from a ROS topic and a heightsgrid is created. For each 14x14 square of the hightsgrid a featurevector is created. Using SVM with an existing model file, it is predicted if the center of the square is a good grasping point. For good grasping points the coordinates and the direction of the approach vectors are published.

DOWNLOAD CODE

git

HOW TO USE HAF_GRASPING - GET STARTED

Start calculation server (does the work), haf_client (small programming incl. class that shows how to use haf_grasping) and a visualization in rviz:

roslaunch haf_grasping haf_grasping_all.launch

Publish the path of a point cloud to calculate grasp points on this object with the gripper approaching direction along the z-axis:

rostopic pub /haf_grasping/input_pcd_rcs_path std_msgs/String “$(rospack find haf_grasping)/data/pcd2.pcd” -1

(Alternatively, publish a point cloud at the ros topic: /haf_grasping/depth_registered/single_cloud/points_in_lcs)

EXPLANATION FOR THE RVIZ VISUALIZATION

RVIZ will now visualize the point cloud with corresponding frame (blue indicates the z-axis). Bigger rectangle: indicates the area where heights can be used for grasp calculation Inner rectangle: defines the area where grasps (grasp centers) are searched. Long red line: indicates the closing direction (for a two finger gripper) Red/green spots: indicate the positions where grasps are really tested for the current gripper roll (ignoring points where no calculation is needed, e.g. no data there) Green bars: indicate where possible grasps were found. The height of the bars indicate an grasp evaluation score (the higher the better) Black arrow: indicates the best grasp position found and the approching direction (for a parallel two finger gripper)

HAF-GRASPING CLIENT - CODE EXPLAINDED

In calc_grasppoints_action_client.cpp we subscribe to a point_cloud topic and start the following callback when a point cloud comes in:

== code start ==

//get goal (input point cloud) for grasp calculation, send it to grasp action server and receive result void CCalcGrasppointsClient::get_grasp_cb(const sensor_msgs::PointCloud2ConstPtr& pc_in) { ROS_INFO(“\nFrom calc_grasppoints_action_client: point cloud received”);

// create the action client
// true causes the client to spin its own thread
actionlib::SimpleActionClient<haf_grasping::CalcGraspPointsServerAction> ac("calc_grasppoints_svm_action_server", true);

ROS_INFO("Waiting for action server to start.");
// wait for the action server to start
ac.waitForServer(); //will wait for infinite time

ROS_INFO("Action server started, sending goal.");
// send a goal to the action
haf_grasping::CalcGraspPointsServerGoal goal;
goal.graspinput.input_pc = *pc_in;

goal.graspinput.grasp_area_center = this->graspsearchcenter;

// set size of grasp search area
goal.graspinput.grasp_area_length_x = this->grasp_search_size_x+14;
goal.graspinput.grasp_area_length_y = this->grasp_search_size_y+14;

// set max grasp calculation time
goal.graspinput.max_calculation_time = this->grasp_calculation_time_max;

//send goal
ac.sendGoal(goal);

//wait for the action to return
bool finished_before_timeout = ac.waitForResult(ros::Duration(50.0));

if (finished_before_timeout)
{
    actionlib::SimpleClientGoalState state = ac.getState();
    boost::shared_ptr<const haf_grasping::CalcGraspPointsServerResult_<std::allocator<void> > > result = ac.getResult();
    ROS_INFO("Result: %s", (*(result)).result.data.c_str());
    ROS_INFO("Action finished: %s",state.toString().c_str());
}

File truncated at 100 lines see the full file

CHANGELOG
No CHANGELOG found.

Wiki Tutorials

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

Recent questions tagged haf_grasping at Robotics Stack Exchange

Package symbol

haf_grasping package from haf_grasping repo

haf_grasping

ROS Distro
kinetic

Package Summary

Tags No category tags.
Version 1.0.0
License BSD
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/davidfischinger/haf_grasping.git
VCS Type git
VCS Version kinetic
Last Updated 2023-03-29
Dev Status MAINTAINED
CI status Continuous Integration
Released UNRELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

The haf_grasping package: calculates grasps for a given point cloud using Height Accumulated Features (HAF)

Additional Links

Maintainers

  • David Fischinger

Authors

  • David Fischinger

```

== PACKAGE: haf_grasping == ==========================================================

Author: David Fischinger, Vienna University of Technology Version: 1.0 Date: 15.5.2015

HAF_GRASPING is calculating grasp points for unknown and known objects represented by the surface point cloud data. For scientific foundation see: D. Fischinger, M. Vincze: “Learning Grasps for Unknown Objects in Cluttered Scenes”, IEEE International Conference on Robotics and Automation (ICRA), 2013. [pdf] D. Fischinger, A. Weiss, M. Vincze: “Learning Grasps with Topographic Features”, The International Journal of Robotics Research.

In a first step the point cloud is read from a ROS topic and a heightsgrid is created. For each 14x14 square of the hightsgrid a featurevector is created. Using SVM with an existing model file, it is predicted if the center of the square is a good grasping point. For good grasping points the coordinates and the direction of the approach vectors are published.

DOWNLOAD CODE

git

HOW TO USE HAF_GRASPING - GET STARTED

Start calculation server (does the work), haf_client (small programming incl. class that shows how to use haf_grasping) and a visualization in rviz:

roslaunch haf_grasping haf_grasping_all.launch

Publish the path of a point cloud to calculate grasp points on this object with the gripper approaching direction along the z-axis:

rostopic pub /haf_grasping/input_pcd_rcs_path std_msgs/String “$(rospack find haf_grasping)/data/pcd2.pcd” -1

(Alternatively, publish a point cloud at the ros topic: /haf_grasping/depth_registered/single_cloud/points_in_lcs)

EXPLANATION FOR THE RVIZ VISUALIZATION

RVIZ will now visualize the point cloud with corresponding frame (blue indicates the z-axis). Bigger rectangle: indicates the area where heights can be used for grasp calculation Inner rectangle: defines the area where grasps (grasp centers) are searched. Long red line: indicates the closing direction (for a two finger gripper) Red/green spots: indicate the positions where grasps are really tested for the current gripper roll (ignoring points where no calculation is needed, e.g. no data there) Green bars: indicate where possible grasps were found. The height of the bars indicate an grasp evaluation score (the higher the better) Black arrow: indicates the best grasp position found and the approching direction (for a parallel two finger gripper)

HAF-GRASPING CLIENT - CODE EXPLAINDED

In calc_grasppoints_action_client.cpp we subscribe to a point_cloud topic and start the following callback when a point cloud comes in:

== code start ==

//get goal (input point cloud) for grasp calculation, send it to grasp action server and receive result void CCalcGrasppointsClient::get_grasp_cb(const sensor_msgs::PointCloud2ConstPtr& pc_in) { ROS_INFO(“\nFrom calc_grasppoints_action_client: point cloud received”);

// create the action client
// true causes the client to spin its own thread
actionlib::SimpleActionClient<haf_grasping::CalcGraspPointsServerAction> ac("calc_grasppoints_svm_action_server", true);

ROS_INFO("Waiting for action server to start.");
// wait for the action server to start
ac.waitForServer(); //will wait for infinite time

ROS_INFO("Action server started, sending goal.");
// send a goal to the action
haf_grasping::CalcGraspPointsServerGoal goal;
goal.graspinput.input_pc = *pc_in;

goal.graspinput.grasp_area_center = this->graspsearchcenter;

// set size of grasp search area
goal.graspinput.grasp_area_length_x = this->grasp_search_size_x+14;
goal.graspinput.grasp_area_length_y = this->grasp_search_size_y+14;

// set max grasp calculation time
goal.graspinput.max_calculation_time = this->grasp_calculation_time_max;

//send goal
ac.sendGoal(goal);

//wait for the action to return
bool finished_before_timeout = ac.waitForResult(ros::Duration(50.0));

if (finished_before_timeout)
{
    actionlib::SimpleClientGoalState state = ac.getState();
    boost::shared_ptr<const haf_grasping::CalcGraspPointsServerResult_<std::allocator<void> > > result = ac.getResult();
    ROS_INFO("Result: %s", (*(result)).result.data.c_str());
    ROS_INFO("Action finished: %s",state.toString().c_str());
}

File truncated at 100 lines see the full file

CHANGELOG
No CHANGELOG found.

Wiki Tutorials

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

Recent questions tagged haf_grasping at Robotics Stack Exchange

Package symbol

haf_grasping package from haf_grasping repo

haf_grasping

ROS Distro
melodic

Package Summary

Tags No category tags.
Version 1.0.0
License BSD
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/davidfischinger/haf_grasping.git
VCS Type git
VCS Version melodic
Last Updated 2023-03-29
Dev Status MAINTAINED
CI status Continuous Integration : 0 / 0
Released UNRELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

The haf_grasping package: calculates grasps for a given point cloud using Height Accumulated Features (HAF)

Additional Links

Maintainers

  • David Fischinger

Authors

  • David Fischinger

```

== PACKAGE: haf_grasping == ==========================================================

Author: David Fischinger, Vienna University of Technology Version: 1.0 Date: 15.5.2015

HAF_GRASPING is calculating grasp points for unknown and known objects represented by the surface point cloud data. For scientific foundation see: D. Fischinger, M. Vincze: “Learning Grasps for Unknown Objects in Cluttered Scenes”, IEEE International Conference on Robotics and Automation (ICRA), 2013. [pdf] D. Fischinger, A. Weiss, M. Vincze: “Learning Grasps with Topographic Features”, The International Journal of Robotics Research.

In a first step the point cloud is read from a ROS topic and a heightsgrid is created. For each 14x14 square of the hightsgrid a featurevector is created. Using SVM with an existing model file, it is predicted if the center of the square is a good grasping point. For good grasping points the coordinates and the direction of the approach vectors are published.

DOWNLOAD CODE

git

HOW TO USE HAF_GRASPING - GET STARTED

Start calculation server (does the work), haf_client (small programming incl. class that shows how to use haf_grasping) and a visualization in rviz:

roslaunch haf_grasping haf_grasping_all.launch

Publish the path of a point cloud to calculate grasp points on this object with the gripper approaching direction along the z-axis:

rostopic pub /haf_grasping/input_pcd_rcs_path std_msgs/String “$(rospack find haf_grasping)/data/pcd2.pcd” -1

(Alternatively, publish a point cloud at the ros topic: /haf_grasping/depth_registered/single_cloud/points_in_lcs)

EXPLANATION FOR THE RVIZ VISUALIZATION

RVIZ will now visualize the point cloud with corresponding frame (blue indicates the z-axis). Bigger rectangle: indicates the area where heights can be used for grasp calculation Inner rectangle: defines the area where grasps (grasp centers) are searched. Long red line: indicates the closing direction (for a two finger gripper) Red/green spots: indicate the positions where grasps are really tested for the current gripper roll (ignoring points where no calculation is needed, e.g. no data there) Green bars: indicate where possible grasps were found. The height of the bars indicate an grasp evaluation score (the higher the better) Black arrow: indicates the best grasp position found and the approching direction (for a parallel two finger gripper)

HAF-GRASPING CLIENT - CODE EXPLAINDED

In calc_grasppoints_action_client.cpp we subscribe to a point_cloud topic and start the following callback when a point cloud comes in:

== code start ==

//get goal (input point cloud) for grasp calculation, send it to grasp action server and receive result void CCalcGrasppointsClient::get_grasp_cb(const sensor_msgs::PointCloud2ConstPtr& pc_in) { ROS_INFO(“\nFrom calc_grasppoints_action_client: point cloud received”);

// create the action client
// true causes the client to spin its own thread
actionlib::SimpleActionClient<haf_grasping::CalcGraspPointsServerAction> ac("calc_grasppoints_svm_action_server", true);

ROS_INFO("Waiting for action server to start.");
// wait for the action server to start
ac.waitForServer(); //will wait for infinite time

ROS_INFO("Action server started, sending goal.");
// send a goal to the action
haf_grasping::CalcGraspPointsServerGoal goal;
goal.graspinput.input_pc = *pc_in;

goal.graspinput.grasp_area_center = this->graspsearchcenter;

// set size of grasp search area
goal.graspinput.grasp_area_length_x = this->grasp_search_size_x+14;
goal.graspinput.grasp_area_length_y = this->grasp_search_size_y+14;

// set max grasp calculation time
goal.graspinput.max_calculation_time = this->grasp_calculation_time_max;

//send goal
ac.sendGoal(goal);

//wait for the action to return
bool finished_before_timeout = ac.waitForResult(ros::Duration(50.0));

if (finished_before_timeout)
{
    actionlib::SimpleClientGoalState state = ac.getState();
    boost::shared_ptr<const haf_grasping::CalcGraspPointsServerResult_<std::allocator<void> > > result = ac.getResult();
    ROS_INFO("Result: %s", (*(result)).result.data.c_str());
    ROS_INFO("Action finished: %s",state.toString().c_str());
}

File truncated at 100 lines see the full file

CHANGELOG
No CHANGELOG found.

Wiki Tutorials

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

Recent questions tagged haf_grasping at Robotics Stack Exchange

Package symbol

haf_grasping package from haf_grasping repo

haf_grasping

ROS Distro
noetic

Package Summary

Tags No category tags.
Version 1.0.0
License BSD
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/davidfischinger/haf_grasping.git
VCS Type git
VCS Version noetic
Last Updated 2023-03-29
Dev Status MAINTAINED
CI status Continuous Integration
Released UNRELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

The haf_grasping package: calculates grasps for a given point cloud using Height Accumulated Features (HAF)

Additional Links

Maintainers

  • David Fischinger

Authors

  • David Fischinger

```

== PACKAGE: haf_grasping == ==========================================================

Author: David Fischinger, Vienna University of Technology Version: 1.0 Date: 15.5.2015

HAF_GRASPING is calculating grasp points for unknown and known objects represented by the surface point cloud data. For scientific foundation see: D. Fischinger, M. Vincze: “Learning Grasps for Unknown Objects in Cluttered Scenes”, IEEE International Conference on Robotics and Automation (ICRA), 2013. [pdf] D. Fischinger, A. Weiss, M. Vincze: “Learning Grasps with Topographic Features”, The International Journal of Robotics Research.

In a first step the point cloud is read from a ROS topic and a heightsgrid is created. For each 14x14 square of the hightsgrid a featurevector is created. Using SVM with an existing model file, it is predicted if the center of the square is a good grasping point. For good grasping points the coordinates and the direction of the approach vectors are published.

DOWNLOAD CODE

git

HOW TO USE HAF_GRASPING - GET STARTED

Start calculation server (does the work), haf_client (small programming incl. class that shows how to use haf_grasping) and a visualization in rviz:

roslaunch haf_grasping haf_grasping_all.launch

Publish the path of a point cloud to calculate grasp points on this object with the gripper approaching direction along the z-axis:

rostopic pub /haf_grasping/input_pcd_rcs_path std_msgs/String “$(rospack find haf_grasping)/data/pcd2.pcd” -1

(Alternatively, publish a point cloud at the ros topic: /haf_grasping/depth_registered/single_cloud/points_in_lcs)

EXPLANATION FOR THE RVIZ VISUALIZATION

RVIZ will now visualize the point cloud with corresponding frame (blue indicates the z-axis). Bigger rectangle: indicates the area where heights can be used for grasp calculation Inner rectangle: defines the area where grasps (grasp centers) are searched. Long red line: indicates the closing direction (for a two finger gripper) Red/green spots: indicate the positions where grasps are really tested for the current gripper roll (ignoring points where no calculation is needed, e.g. no data there) Green bars: indicate where possible grasps were found. The height of the bars indicate an grasp evaluation score (the higher the better) Black arrow: indicates the best grasp position found and the approching direction (for a parallel two finger gripper)

HAF-GRASPING CLIENT - CODE EXPLAINDED

In calc_grasppoints_action_client.cpp we subscribe to a point_cloud topic and start the following callback when a point cloud comes in:

== code start ==

//get goal (input point cloud) for grasp calculation, send it to grasp action server and receive result void CCalcGrasppointsClient::get_grasp_cb(const sensor_msgs::PointCloud2ConstPtr& pc_in) { ROS_INFO(“\nFrom calc_grasppoints_action_client: point cloud received”);

// create the action client
// true causes the client to spin its own thread
actionlib::SimpleActionClient<haf_grasping::CalcGraspPointsServerAction> ac("calc_grasppoints_svm_action_server", true);

ROS_INFO("Waiting for action server to start.");
// wait for the action server to start
ac.waitForServer(); //will wait for infinite time

ROS_INFO("Action server started, sending goal.");
// send a goal to the action
haf_grasping::CalcGraspPointsServerGoal goal;
goal.graspinput.input_pc = *pc_in;

goal.graspinput.grasp_area_center = this->graspsearchcenter;

// set size of grasp search area
goal.graspinput.grasp_area_length_x = this->grasp_search_size_x+14;
goal.graspinput.grasp_area_length_y = this->grasp_search_size_y+14;

// set max grasp calculation time
goal.graspinput.max_calculation_time = this->grasp_calculation_time_max;

//send goal
ac.sendGoal(goal);

//wait for the action to return
bool finished_before_timeout = ac.waitForResult(ros::Duration(50.0));

if (finished_before_timeout)
{
    actionlib::SimpleClientGoalState state = ac.getState();
    boost::shared_ptr<const haf_grasping::CalcGraspPointsServerResult_<std::allocator<void> > > result = ac.getResult();
    ROS_INFO("Result: %s", (*(result)).result.data.c_str());
    ROS_INFO("Action finished: %s",state.toString().c_str());
}

File truncated at 100 lines see the full file

CHANGELOG
No CHANGELOG found.

Wiki Tutorials

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

Recent questions tagged haf_grasping at Robotics Stack Exchange