-
Notifications
You must be signed in to change notification settings - Fork 854
Closed
Description
ROS 2 Action Plan
At a high level the goal for actions in Crystal is to enable porting moveit and the navigation stack to ROS 2.
Required by Crystal release
- rclpy API for action client and action server
- rclcpp API for action client and action server
- rcl has code for action server and action client that is used by client libraries
- Action server and client support features needed to make it possible to write a bridge with ROS 1
- supports multiple goals simultaneously
- examples repo has action API examples for rclpy and rclcpp
- test_communication tests for cross client library actions
- test_communication tests for cross rmw implementation actions
- CLI
ros2 topic listandros2 service listshould not show action topics by default - Support ROS 1 .action files
- Support .idl files once the IDL pipeline for services and messages is fully functioning
Issues
- Actions rcl#306 rcl api for actions
g1
- Allow generating messages and services in the namespace
actionrosidl#301 Neeed to be able to generate msg and srv c and c++ code in anactionnamespace - Allow generating messages services in an
actionfolder rosidl_typesupport_fastrtps#9 Allow fastrtps typesupport to generate service in action folder - Allow generating messages services in an
actionfolder rosidl_typesupport_opensplice#6 Allow opensplice typesupport to generate services in action - Allow generating messages services in an
actionfolder rosidl_typesupport_connext#11 Allow connext typesupport to generate services in action folder
g2
- Parse .action files rosidl#305 Parse
.actionfiles into intermediate representation
g2.5
- Allow generating messages and services in the module
actionrosidl_python#13 Need to be able to generate msg and srv python code inactionmodule
g2.75
- Service and Message definitions for actions rcl_interfaces#40 Need message and service definitions for parts common to all actions
g3
- Generate C typesupport for Actions rosidl#302 C header files / typesupport for Actions
- Generate C++ typesupport for actions rosidl#303 C++ header files / typesupport for Actions
- Generate python typesupport for Actions rosidl_python#14 Python typesupport object for actions
g4
- IDL 4.2 description for actions rosidl#304 Decide how actions will be represented in IDL 4.2
folder - Change UUID type in action_msgs rcl_interfaces#49 Use unique_identifier_msgs for actions (Change UUID type in action_msgs rcl_interfaces#54 Change UUID type in action msgs rosidl#332 Change UUID type in action msgs rcl#338 )(held for IDL work)
g5
- Generate UUID in C that
rclcan depend on in ROS 2 There is https://github.com/ros-geographic-info/unique_identifier/tree/ros2 , but it depends on boost/rospy/roscpp , will need something with fewer dependencies. - (under consideration) Generate low-level action typesupport API rosidl#314 Generate type support conversion functions for C API
g5.5
- rclcpp API to add something which adds something to the wait set ([rclcpp] Add class Waitable rclcpp#589)
- rclpy API to add something which adds something to the wait set (Python thing that adds things to the wait set rclpy#250)
g6
- rclcpp Action Server implementation
- rclcpp Action Client implementation
g7
- rclpy (Action implementation rclpy#257)
- Action Server implementation
- Action Client implementation
g8
- Test communication with C++ actions across rmw implementations (add Fibonacci test for actions system_tests#316)
- Test communication with python actions accross rmw implementations (Add rclpy action communication tests system_tests#332)
- Test communication with C++ and Python action communications (Add rclpy action communication tests system_tests#332)
g9
- Create tutorial/demo (add to ROS index tutorials?)
Likely not included in Crystal release
Good places for community contribution
- ROS 1 bridge for actions
- CLI
ros2 action - SimpleActionServer and SimpleActionClient APIs in python or c++
Places for Action discussion
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
enhancementNew feature or requestNew feature or request