Closed jbohren closed 11 years ago
I have taken a look at design document in rtt_actionlib, Document suggest that actionserver will be implemented as RTT service i thing that will be difficult to realize because actionlib class is templeated by action-type. Do you have an idea how make that without knowing all action-types at compile time ?
I'm not planning on doing any crazy code generation like I do for rosservice (see rtt_roscomm) so there are two things you need to do for actions. All of the type-aware things like constructing the ports happens at compilation, but the actionlib service simply creates ros connection policies by calling the rostopic service underneath for each port defined on the provided service listed in the first argument.
See C++ user-end API example here: https://github.com/jhu-lcsr-forks/rtt_ros_integration/blob/cdcba4b60579d4d123807cee040e4b3965e04a7f/rtt_actionlib/README.md#usage
I've got a full example running here: https://github.com/jhu-lcsr/rtt_ros_examples/tree/master/rtt_actionlib_examples And the core library is still here: https://github.com/jhu-lcsr-forks/rtt_ros_integration/tree/hydro-devel/rtt_actionlib
Closing this since it's been implmented, it still needs rosunit unit tests, though, which will be required in another ticket.
See preliminary implementation by @konradb3: https://github.com/RCPRG-ros-pkg/orocos_tools/tree/master/oro_action_server/include
See necessary changes in actionlib upstream: https://github.com/ros/actionlib/pull/11
See design sketch here: https://github.com/jhu-lcsr-forks/rtt_ros_integration/tree/hydro-devel/rtt_actionlib