Skip to content

Commit

Permalink
Included features
Browse files Browse the repository at this point in the history
Signed-off-by: ahcorde <ahcorde@gmail.com>
  • Loading branch information
ahcorde committed May 6, 2020
1 parent 7a3599d commit b3e2965
Show file tree
Hide file tree
Showing 5 changed files with 101 additions and 2 deletions.
5 changes: 5 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,2 +1,7 @@
# rcl
Library to support implementation of language specific ROS Client Libraries.

- [rcl](rcl/README.md)
- [rcl_action](rcl_action/README.md)
- [rcl_lifecycle](rcl_lifecycle/README.md)
- [rcl_yaml_param_parser](rcl_yaml_param_parser/README.md)
49 changes: 49 additions & 0 deletions rcl/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
`rcl` consists of functions and structs (pure C) organized into ROS concepts:

- Nodes
- [rcl/node.h](include/rcl/node.h)
- Publisher
- [rcl/publisher.h](include/rcl/publisher.h)
- Subscription
- [rcl/subscription.h](include/rcl/subscription.h)
- Service Client
- [rcl/client.h](include/rcl/client.h)
- Service Server
- [rcl/service.h](include/rcl/service.h)
- Timer
- [rcl/timer.h](include/rcl/timer.h)

There are some functions for working with "Topics" and "Services":

- A function to validate a topic or service name (not necessarily fully qualified):
- rcl_validate_topic_name()
- [rcl/validate_topic_name.h](include/rcl/validate_topic_name.h)
- A function to expand a topic or service name to a fully qualified name:
- rcl_expand_topic_name()
- [rcl/expand_topic_name.h](include/rcl/expand_topic_name.h)

It also has some machinery that is necessary to wait on and act on these concepts:

- Initialization and shutdown management
- [rcl/init.h](include/rcl/init.h)
- Wait sets for waiting on messages/service requests and responses/timers to be ready
- [rcl/wait.h](include/rcl/wait.h)
- Guard conditions for waking up wait sets asynchronously
- [rcl/guard_condition.h](include/rcl/guard_condition.h)
- Functions for introspecting and getting notified of changes of the ROS graph
- [rcl/graph.h](include/rcl/graph.h)

Further still there are some useful abstractions and utilities:

- Allocator concept, which can be used to control allocation in `rcl_*` functions
- [rcl/allocator.h](include/rcl/allocator.h)
- Concept of ROS Time and access to steady and system wall time
- [rcl/time.h](include/rcl/time.h)
- Error handling functionality (C style)
- [rcl/error_handling.h](include/rcl/error_handling.h)
- Macros
- [rcl/macros.h](include/rcl/macros.h)
- Return code types
- [rcl/types.h](include/rcl/types.h)
- Macros for controlling symbol visibility on the library
- [rcl/visibility_control.h](include/rcl/visibility_control.h)
24 changes: 24 additions & 0 deletions rcl_action/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
`rcl_action` provides a pure C implementation of the ROS concept of an action.

It builds on top of the implementation of topics and services in `rcl`.

`rcl_action` consists of functions and structs for the following ROS action entities:

- Action client
- [rcl_action/action_client.h](include/rcl_action/action_client.h)
- Action server
- [rcl_action/action_server.h](include/rcl_action/action_server.h)
- Goal handle
- [rcl_action/goal_handle.h](include/rcl_action/goal_handle.h)
- Goal state machine
- [rcl_action/goal_state_machine.h](include/rcl_action/goal_state_machine.h)

It also has some machinery that is necessary to wait on and act on these entities:

- Wait sets for waiting on actions clients and action servers to be ready
- [rcl_action/wait.h](include/rcl_action/wait.h)

Some useful abstractions and utilities:

- Return codes and other types
- [rcl_action/types.h](include/rcl_action/types.h)
12 changes: 12 additions & 0 deletions rcl_lifecycle/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
`rcl_lifecycle` provides a pure C implementation of the ROS concept of lifecycle. It builds on top of the implementation of topics and services in `rcl`.

`rcl_lifecycle` consists of functions and structs for the following ROS lifecycle entities:

- Lifecycle states
- Lifecycle transitions
- Lifecycle state machine
- Lifecycle triggers

Some useful abstractions:

Return codes and other types [rcl_lifecycle/data_types.h](include/rcl_lifecycle/data_types.h)
13 changes: 11 additions & 2 deletions rcl_yaml_param_parser/README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,15 @@
**ROS2 rcl YAML paramter parser**

Parse a YAML parameter file and populate the C data structure
Parse a YAML parameter file and populate the C data structure.

- Parser
- [rcl/parser.h](include/rcl/types.h)

Further still there are some useful abstractions and utilities:
- Return code types
- [rcl/types.h](include/rcl/types.h)
- Macros for controlling symbol visibility on the library
- [rcl/visibility_control.h](include/rcl/visibility_control.h)

The data structure params_st will then be used during node initialization

Expand All @@ -24,4 +33,4 @@ NOTE: It only supports canonical int and float types
<field2_name>: <field2_value>
```

This package depends on C libyaml
This package depends on C libyaml.

0 comments on commit b3e2965

Please sign in to comment.