Add first version of 'message publishing' section
This commit is contained in:
parent
e0e6c4b1af
commit
1c462f5916
1 changed files with 21 additions and 0 deletions
21
doc/ros_2.md
21
doc/ros_2.md
|
@ -187,3 +187,24 @@ sequenceDiagram
|
||||||
end
|
end
|
||||||
Executor->>Subscription: return_message(msg)
|
Executor->>Subscription: return_message(msg)
|
||||||
```
|
```
|
||||||
|
|
||||||
|
### Message publishing
|
||||||
|
|
||||||
|
To publish a message, an object is first allocated and then populated by the `Component` (or equivalent). Then, the message is sent to the `Publisher` through `publish()`. This then passes that on to `rcl`, which itself passes it to `rmw`.
|
||||||
|
|
||||||
|
TODO add inter- vs. intra-process execution flow
|
||||||
|
TODO talk about IntraProcessManager stuff?
|
||||||
|
|
||||||
|
```mermaid
|
||||||
|
sequenceDiagram
|
||||||
|
participant Component
|
||||||
|
participant Publisher
|
||||||
|
participant rcl
|
||||||
|
participant tracetools
|
||||||
|
|
||||||
|
Note over Component: creates a msg
|
||||||
|
Component->>Publisher: publish(msg)
|
||||||
|
Note over Publisher: ...
|
||||||
|
Publisher->>rcl: rcl_publish(rcl_publisher_t, msg)
|
||||||
|
rcl->>rmw: rmw_publisher(rmw_publisher, msg)
|
||||||
|
```
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue