/advanced_grasping/perception
#
Caution
This documentation page has been auto-generated.
It may be missing some details.
/advanced_grasping/perception
Quick Facts
- Category
- Message type
pal_bt_grasping_msgs/Perception
Look for an object and add it to the MoveIt! planning scene (part of the Advanced Grasping pipeline).
See Overview of the Advanced Grasping pipeline for details and tutorials.
Quick snippets#
$ rostopic pub /advanced_grasping/perception/goal pal_bt_grasping_msgs/PerceptionActionGoal # press Tab to complete the message prototype
This action is not available in ROS2.
How to use in your code#
#!/usr/bin/env python
import rospy
import actionlib
from pal_bt_grasping_msgs.msg import *
if __name__ == "__main__":
client = actionlib.SimpleActionClient("/advanced_grasping/perception", pal_bt_grasping_msgs.msg.PerceptionAction)
client.wait_for_server()
# check the pal_bt_grasping_msgs/PerceptionGoal message
# definition for the possible goal parameters
goal = pal_bt_grasping_msgs.msg.PerceptionGoal(param1=..., param2=...)
client.send_goal(goal)
client.wait_for_result()
rospy.loginfo("Action returned: %s" % client.get_result())
#include <ros/ros.h>
#include <actionlib/client/simple_action_client.h>
#include <actionlib/client/terminal_state.h>
#include <pal_bt_grasping_msgs/PerceptionAction.h>
int main (int argc, char **argv)
{
ros::init(argc, argv, "advanced_grasping_perception_action_client");
// create the action client
// true causes the client to spin its own thread
actionlib::SimpleActionClient<:pal_bt_grasping_msgs::PerceptionAction> ac("/advanced_grasping/perception", 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
pal_bt_grasping_msgs::PerceptionGoal goal;
// check the pal_bt_grasping_msgs/PerceptionGoal message
// definition for the possible goal parameters
// goal.... = ...;
ac.sendGoal(goal);
//wait for the action to return
bool finished_before_timeout = ac.waitForResult(ros::Duration(30.0));
if (finished_before_timeout)
{
actionlib::SimpleClientGoalState state = ac.getState();
ROS_INFO("Action finished: %s",state.toString().c_str());
}
else
{
ROS_INFO("Action did not finish before the time out.");
ac.cancelGoal();
}
return 0;
}
This action is not available in ROS2.