Robotics StackExchange | Archived questions

Starting a ROS ActionClient with QT Signal

How can I start a ROS ActionClient with a QT Signal? I have followed the procedure of Action Servers but I failed to initiate the action client. The code snippets are as follows:

//Initiating Action Server header file:
// Variable decleration
ros::NodeHandle nh_;
actionlib::SimpleActionServer<aps_msgs::PubMarkersAction> as_; 
ros::Publisher marker_array_pub;    

// Starting Action Server from the constructor:
PubMarkersServer::PubMarkersServer(std::string name) :
as_(nh_, name, boost::bind(&PubMarkersServer::executeCB, this, _1), false),
action_name_(name)
{
  as_.start();
  marker_array_pub = nh_.advertise<visualization_msgs::MarkerArray>("marker_array",1);
}

For Initiating Action Client

// Variable declaration in header file:
ros::NodeHandle nh_;
actionlib::SimpleActionClient<aps_msgs::PubMarkersAction> ac;

// Starting Action Client from the constructor:
StepDialog::StepDialog(QWidget *parent) :
    QDialog(parent),
    ui(new Ui::StepDialog)
{
    nh_("APS");
    ac(nh_,"PubMarkersServer", true);
    ac.waitForServer();
    ui->setupUi(this);
}

Application is aborting once I create an object for Action Client through QT Signal. Can any one please help me with this?

I could successfully create an individual ActionClient but I can able to embed into the existing QT application...

Thanks in advance.

Asked by ghkraju on 2017-06-20 04:53:39 UTC

Comments

Answers