Ask Your Question
0

mbed action lib kinetic

asked 2021-03-01 16:43:05 -0500

Unproductive gravatar image

updated 2021-03-01 17:26:39 -0500

Hi All

The tutorial for action lib has these includes at the top:

   1 #include <ros/ros.h>
   2 #include <actionlib/server/simple_action_server.h>
   3 #include <actionlib_tutorials/FibonacciAction.h>

I am trying to implement the tutorial on action lib on an mbed (nucleo F401RE)

There is a implementation of a ROS libarary on the mbed "ros_lib_kinetic".

in the directory tree of that library is "actionlib" and action_lib tutorials.

The tutorial-specific FibonacciAction.h is in the correct directory. However, there does not appear to be "actionlib/server/simple_action_server.h" as listed in the includes of the tutorial.

If there is no simple_action_server.h, how do you implement the tutorial on an mbed?

Thanks for your help.

Kind regards

Matt

edit retag flag offensive close merge delete

1 Answer

Sort by ยป oldest newest most voted
1

answered 2021-03-02 02:49:48 -0500

gvdhoorn gravatar image

updated 2021-03-02 02:52:54 -0500

If there is no simple_action_server.h, how do you implement the tutorial on an mbed?

Unfortunately, you don't.

The tutorial you link to targets the roscpp variant of ROS 1, the things you're trying to use target rosserial. Those are two very different client libraries, and without someone porting actionlib to be compatible with rosserial, you cannot use it directly

The tutorial-specific FibonacciAction.h is in the correct directory. However, there does not appear to be "actionlib/server/simple_action_server.h" as listed in the includes of the tutorial.

FibonacciAction.h is a header which most likely contains the goal/message definition. That's part of what's needed to use actionlib, but not enough.

There are various related Q&As here on ROS Answers about using actionlib with rosserial. I'm not aware of what the state-of-the-art is here, so you might want to try and find those (tip: use Google and append site:answers.ros.org to your query).

The various rosserial issue trackers (Github) may also have information.


Edit: there is a way to implement an Action server without actionlib, as in essence, it's "just" a set of topics and a state machine. I'm not aware of someone having implemented that in a generically reusable way for rosserial though.

edit flag offensive delete link more

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools

1 follower

Stats

Asked: 2021-03-01 16:43:05 -0500

Seen: 44 times

Last updated: Mar 02