jhu-lcsr-forks / rtt_ros_integration

Orocos-ROS integration libraries and tools
1 stars 2 forks source link

rtt_actionlib: implement actionlib support #1

Closed jbohren closed 11 years ago

jbohren commented 11 years ago

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

konradb3 commented 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 ?

jbohren commented 11 years ago

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.

jbohren commented 11 years ago

See C++ user-end API example here: https://github.com/jhu-lcsr-forks/rtt_ros_integration/blob/cdcba4b60579d4d123807cee040e4b3965e04a7f/rtt_actionlib/README.md#usage

jbohren commented 11 years ago

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

jbohren commented 11 years ago

Closing this since it's been implmented, it still needs rosunit unit tests, though, which will be required in another ticket.