Skip to content

Commit

Permalink
Additional README sections
Browse files Browse the repository at this point in the history
Signed-off-by: Andrea Sorbini <asorbini@rti.com>
  • Loading branch information
asorbini committed Apr 29, 2021
1 parent 4720d77 commit 62a3d16
Showing 1 changed file with 39 additions and 7 deletions.
46 changes: 39 additions & 7 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -35,9 +35,11 @@ For any questions or direct feedback, feel free to reach out to robotics@rti.com
- [RMW_CONNEXT_UDP_INTERFACE](#rmw_connext_udp_interface)
- [RMW_CONNEXT_USE_DEFAULT_PUBLISH_MODE](#rmw_connext_use_default_publish_mode)
- [DDS Quality of Service Configuration](#dds-quality-of-service-configuration)
- [Customize QoS via XML](#customize-qos-via-xml)
- [Customize DomainParticipant QoS](#customize-domainparticipant-qos)
- [Customize DataWriter and DataReader QoS](#customize-datawriter-and-datareader-qos)
- [Customizing QoS via XML](#customizing-qos-via-xml)
- [Loading Custom QoS Profiles](#loading-custom-qos-profiles)
- [DomainParticipant QoS](#domainparticipant-qos)
- [DataWriter and DataReader QoS](#datawriter-and-datareader-qos)
- [Configuring QoS Using Only XML Files](#configuring-qos-using-only-xml-files)
- [Built-in ROS 2 QoS Profiles](#built-in-ros-2-qos-profiles)
- [DDS Entities Created by the RMW Layer](#dds-entities-created-by-the-rmw-layer)
- [DomainParticipantFactory](#domainparticipantfactory)
Expand Down Expand Up @@ -715,7 +717,7 @@ QoS configuration applicable to `rmw_connextdds`.
Since RTI Connext DDS Micro does not support external QoS configuration, most of
these customizations are not yet available to users of `rmw_connextddsmicro`.

### Customize QoS via XML
### Customizing QoS via XML

`rmw_connextdds` supports the specification of most of its initialization parameters,
[including Quality of Service configuration](https://community.rti.com/static/documentation/connext-dds/6.0.1/doc/manuals/connext_dds/html_files/RTI_ConnextDDS_CoreLibraries_UsersManual/index.htm#UsersManual/XMLConfiguration.htm),
Expand Down Expand Up @@ -869,7 +871,11 @@ Connext 6.x).

You might also be interested in learning more about [topic filters](https://community.rti.com/static/documentation/connext-dds/6.0.1/doc/manuals/connext_dds/html_files/RTI_ConnextDDS_CoreLibraries_UsersManual/index.htm#UsersManual/Topic_Filters.htm), and [how to overwrite default QoS values](https://community.rti.com/static/documentation/connext-dds/6.0.1/doc/manuals/connext_dds/html_files/RTI_ConnextDDS_CoreLibraries_UsersManual/index.htm#UsersManual/Overwriting_Default_QoS_Values.htm?Highlight=is_default_qos).

### Customize DomainParticipant QoS
### Loading Custom QoS Profiles

TODO

### DomainParticipant QoS

`rmw_connextdds` will create a single DomainParticipant for each ROS context, which
will be shared by all Nodes associated with that context (typically all Nodes created
Expand Down Expand Up @@ -903,7 +909,7 @@ in [ros2_qos_profiles.xml](rmw_connextdds/resource/xml/ros2_qos_profiles.xml),
for example, `ros2::rmw_connextdds.base_participant`. See [Built-in ROS 2 QoS Profiles](#built-in-ros-2-qos-profiles) for more information about these QoS profiles
and how to use them.

### Customize DataWriter and DataReader QoS
### DataWriter and DataReader QoS

`rmw_connextdds` will include the topic name when querying for the default QoS values
used by a new DDS endpoint. This allows users to take advantage of [topic filters](https://community.rti.com/static/documentation/connext-dds/6.0.1/doc/manuals/connext_dds/html_files/RTI_ConnextDDS_CoreLibraries_UsersManual/index.htm#UsersManual/Topic_Filters.htm)
Expand Down Expand Up @@ -981,6 +987,28 @@ about some useful QoS profiles contained in file [ros2_qos_profiles.xml](rmw_con
endpoints and to replicate several of the QoS optimizations applied by
`rmw_connextdds`.

### Configuring QoS Using Only XML Files

If you want to completely disable all QoS customizations applied by
`rmw_connextdds` in code, and rely on QoS configurations specified in
XML files, you should set the following envirionment variable:

- [`RMW_CONNEXT_PARTICIPANT_QOS_OVERRIDE_POLICY=never`](#rmw_connext_participant_qos_override_policy)
- [`RMW_CONNEXT_ENDPOINT_QOS_OVERRIDE_POLICY=never`](#rmw_connext_endpoint_qos_override_policy)
- [`RMW_CONNEXT_DISABLE_LARGE_DATA_OPTIMIZATIONS=y`](#rmw_connext_disable_large_data_optimizations)
- [`RMW_CONNEXT_USE_DEFAULT_PUBLISH_MODE=y`](#rmw_connext_use_default_publish_mode)

For example:

```sh
RMW_IMPLEMENTATION=rmw_connextdds \
RMW_CONNEXT_PARTICIPANT_QOS_OVERRIDE_POLICY=never \
RMW_CONNEXT_ENDPOINT_QOS_OVERRIDE_POLICY=never \
RMW_CONNEXT_DISABLE_LARGE_DATA_OPTIMIZATIONS=y \
RMW_CONNEXT_USE_DEFAULT_PUBLISH_MODE=y \
ros2 run demo_nodes_cpp talker
```

### Built-in ROS 2 QoS Profiles

#### ros2_qos_profiles.xml
Expand Down Expand Up @@ -1163,6 +1191,10 @@ discovery.
This is achieved by increasing the period at which Heartbeats are sent by the
built-in DDS discovery writers.

#### USER_QOS_PROFILES.example.xml

TODO

## DDS Entities Created by the RMW Layer

When an application uses the ROS 2 API to perform operations such as initializing
Expand Down Expand Up @@ -1630,7 +1662,7 @@ will perform the following operations:
- This operation is only available in `rmw_connextdds`, and it allows for "topic filters"
to be taken into consideration when determining the default QoS.
- Since XML-based configuration is not available with RTI Connext DDS Micro,
`rmw_connextddsmicro` will fall back to [`DDS_Subscriber_get_default_datawriter_qos()`]().
`rmw_connextddsmicro` will fall back to [`DDS_Subscriber_get_default_datareader_qos()`](https://community.rti.com/static/documentation/connext-micro/3.0.3/doc/api_c/html/group__DDSSubscriberModule.html#gab34681872803713ab97a63be91794fbd).
- In the case of `rmw_connextdds`:
- Based on [`RMW_CONNEXT_ENDPOINT_QOS_OVERRIDE_POLICY`](#rmw_connext_endpoint_qos_override_policy),
apply the ROS 2 QoS profile on top of the default QoS policy, and overwrite
Expand Down

0 comments on commit 62a3d16

Please sign in to comment.