You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Client library concepts that require language-specific features/properties are not implemented in the RCL but instead are implemented in each client library.
112
-
For example, threading models used by “spin” functions will have implementations that are specific to the language of the client library.
112
+
For example, threading models used by "spin" functions will have implementations that are specific to the language of the client library.
Copy file name to clipboardExpand all lines: source/Concepts/Intermediate/About-Executors.rst
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -207,4 +207,4 @@ Further information
207
207
ROS Industrial Conference.
208
208
Virtual event.
209
209
16 December 2020.
210
-
* Daniel Casini, Tobias Blass, Ingo Lütkebohle, and Björn Brandenburg: `“Response-Time Analysis of ROS 2 Processing Chains under Reservation-Based Scheduling”<https://drops.dagstuhl.de/opus/volltexte/2019/10743/pdf/LIPIcs-ECRTS-2019-6.pdf>`_, Proc. of 31st ECRTS 2019, Stuttgart, Germany, July 2019.
210
+
* Daniel Casini, Tobias Blass, Ingo Lütkebohle, and Björn Brandenburg: `"Response-Time Analysis of ROS 2 Processing Chains under Reservation-Based Scheduling"<https://drops.dagstuhl.de/opus/volltexte/2019/10743/pdf/LIPIcs-ECRTS-2019-6.pdf>`_, Proc. of 31st ECRTS 2019, Stuttgart, Germany, July 2019.
Copy file name to clipboardExpand all lines: source/Concepts/Intermediate/About-Quality-of-Service-Settings.rst
+3-3Lines changed: 3 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -58,7 +58,7 @@ The base QoS profile currently includes settings for the following policies:
58
58
59
59
* Liveliness
60
60
61
-
* *Automatic*: the system will consider all of the node’s publishers to be alive for another "lease duration" when any one of its publishers has published a message.
61
+
* *Automatic*: the system will consider all of the node's publishers to be alive for another "lease duration" when any one of its publishers has published a message.
62
62
* *Manual by topic*: the system will consider the publisher to be alive for another "lease duration" if it manually asserts that it is still alive (via a call to the publisher API).
63
63
64
64
* Lease Duration
@@ -103,7 +103,7 @@ The currently defined QoS profiles are:
103
103
104
104
* Sensor data
105
105
106
-
For sensor data, in most cases it’s more important to receive readings in a timely fashion, rather than ensuring that all of them arrive.
106
+
For sensor data, in most cases it's more important to receive readings in a timely fashion, rather than ensuring that all of them arrive.
107
107
That is, developers want the latest samples as soon as they are captured, at the expense of maybe losing some.
108
108
For that reason the sensor data profile uses best effort reliability and a smaller queue size.
109
109
@@ -114,7 +114,7 @@ The currently defined QoS profiles are:
114
114
115
115
* System default
116
116
117
-
This uses the RMW implementation’s default values for all of the policies.
117
+
This uses the RMW implementation's default values for all of the policies.
118
118
Different RMW implementations may have different defaults.
119
119
120
120
`Click here <https://github.com/ros2/rmw/blob/{REPOS_FILE_BRANCH}/rmw/include/rmw/qos_profiles.h>`__ for the specific policies in use for the above profiles.
Copy file name to clipboardExpand all lines: source/Contact.rst
+4-4Lines changed: 4 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -26,11 +26,11 @@ It's better to send all questions to `Robotics Stack Exchange <https://robotics.
26
26
Contributing support
27
27
^^^^^^^^^^^^^^^^^^^^
28
28
29
-
ROS 2 users come from a wide range of technical backgrounds, use a variety of different operating systems, and don’t necessarily have any prior experience with ROS (1 or 2).
29
+
ROS 2 users come from a wide range of technical backgrounds, use a variety of different operating systems, and don't necessarily have any prior experience with ROS (1 or 2).
30
30
So, it's important for users with any amount of experience to contribute support.
31
31
32
-
If you see an issue on `Robotics Stack Exchange <https://robotics.stackexchange.com/>`__ that is similar to something you’ve run into yourself, please consider providing some pointers to what helped in your situation.
33
-
Don’t worry if you aren't sure if your response is correct.
32
+
If you see an issue on `Robotics Stack Exchange <https://robotics.stackexchange.com/>`__ that is similar to something you've run into yourself, please consider providing some pointers to what helped in your situation.
33
+
Don't worry if you aren't sure if your response is correct.
34
34
Simply say so, and other community members will jump in if necessary.
35
35
36
36
Issues
@@ -95,7 +95,7 @@ To start a discussion with other ROS 2 community members, visit the official `RO
95
95
Content on the Discourse should be high-level;
96
96
it's not a place to get *questions* about code answered, but it would be suitable to start a conversation about best practices or improving standards.
97
97
98
-
Discussions about ROS 2 development and plans are happening on the `“Next Generation ROS” Discourse category <https://discourse.ros.org/c/ng-ros>`__.
98
+
Discussions about ROS 2 development and plans are happening on the `"Next Generation ROS" Discourse category <https://discourse.ros.org/c/ng-ros>`__.
99
99
Participating in these discussions is an important way to have a say on how different features of ROS 2 will work and be implemented.
100
100
101
101
The diverse community behind the ROS ecosystem is one of its greatest assets.
Significantly increasing this parameter’s value is an attempt to ensure that the buffer never becomes completely full.
63
+
Significantly increasing this parameter's value is an attempt to ensure that the buffer never becomes completely full.
64
64
However, the value would likely have to be significantly high to hold all data received during the time window of ``ipfrag_time``, assuming every UDP packet lacks one fragment.
65
65
66
66
**Issue:** Sending custom messages with large variable-sized arrays of non-primitive types causes high serialization/deserialization overhead and CPU load.
@@ -102,7 +102,7 @@ Cyclone DDS tuning
102
102
**Issue:** Cyclone DDS is not delivering large messages reliably, despite using reliable settings and transferring over a wired network.
103
103
104
104
This issue should be `addressed soon <https://github.com/eclipse-cyclonedds/cyclonedds/issues/484>`_.
105
-
Until then, we’ve come up with the following solution (debugged using `this test program <https://github.com/jacobperron/pc_pipe>`_):
105
+
Until then, we've come up with the following solution (debugged using `this test program <https://github.com/jacobperron/pc_pipe>`_):
106
106
107
107
**Solution:** Increase the maximum Linux kernel receive buffer size and the minimum socket receive buffer size that Cyclone uses.
108
108
@@ -158,12 +158,12 @@ By tuning ``net.core.rmem_max`` to 4MB in the Linux kernel, the QoS profile can
158
158
This configuration has been proven to reliably deliver messages via SHMEM|UDPv4, and with just UDPv4 on a single machine.
159
159
A multi-machine configuration was also tested with ``rmem_max`` at 4MB and at 20MB (two machines connected with 1Gbps ethernet), with no dropped messages and average message delivery times of 700ms and 371ms, respectively.
160
160
161
-
Without configuring the kernel’s ``rmem_max``, the same Connext QoS profile took up to 12 seconds for the data to be delivered.
161
+
Without configuring the kernel's ``rmem_max``, the same Connext QoS profile took up to 12 seconds for the data to be delivered.
162
162
However, it always at least managed to complete the delivery.
163
163
164
164
**Solution:** Use the `Connext QoS profile <https://github.com/jacobperron/pc_pipe/blob/master/etc/ROS2TEST_QOS_PROFILES.xml>`_ *without* adjusting ``rmem_max``.
165
165
166
-
The ROS2TEST_QOS_PROFILES.xml file was configured using RTI’s documentation on `configuring flow controllers <https://community.rti.com/forum-topic/transfering-large-data-over-dds>`_.
166
+
The ROS2TEST_QOS_PROFILES.xml file was configured using RTI's documentation on `configuring flow controllers <https://community.rti.com/forum-topic/transfering-large-data-over-dds>`_.
167
167
It has slow, medium and fast flow controllers (seen in the Connext QoS profile link).
168
168
169
169
The medium flow controller produced the best results for our case.
Copy file name to clipboardExpand all lines: source/How-To-Guides/Getting-Backtraces-in-ROS-2.rst
+4-4Lines changed: 4 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -134,14 +134,14 @@ For GDB debugging, use it as follows:
134
134
**Why Direct GDB Usage Can Be Tricky**
135
135
136
136
``--prefix`` will execute some bits of code before our ROS 2 command allowing us to insert some information.
137
-
If you attempted to do ``gdb ex run --args ros2 run <pkg> <node>`` as analog to our example in the preliminaries, you’d find that it couldn’t find the ``ros2`` command.
137
+
If you attempted to do ``gdb ex run --args ros2 run <pkg> <node>`` as analog to our example in the preliminaries, you'd find that it couldn't find the ``ros2`` command.
138
138
Additionally, trying to source your workspace within GDB would fail for similar reasons.
139
139
This is because GDB, when launched this way, lacks the environment setup that normally makes the ``ros2`` command available.
140
140
141
141
**Simplifying the Process with --prefix**
142
142
143
143
Rather than having to revert to finding the install path of the executable and typing it all out, we can instead use ``--prefix``.
144
-
This allows us to use the same ``ros2 run`` syntax you’re used to without having to worry about some of the GDB details.
144
+
This allows us to use the same ``ros2 run`` syntax you're used to without having to worry about some of the GDB details.
145
145
146
146
.. code-block:: bash
147
147
@@ -168,7 +168,7 @@ After you obtain a backtrace using GDB, here's how to interpret it:
168
168
169
169
**How to Debug once your Node Crashes**
170
170
171
-
Once your node crashes, you’ll see a prompt like below.
171
+
Once your node crashes, you'll see a prompt like below.
172
172
At this point you can get a backtrace.
173
173
174
174
.. code-block:: bash
@@ -219,7 +219,7 @@ From a Launch File
219
219
Just as in our non-ROS example, we need to setup a GDB session before launching our ROS 2 launch file.
220
220
While we could set this up through the commandline, we can instead make use of the same mechanics that we did in the ``ros2 run`` node example, now using a launch file.
221
221
222
-
In your launch file, find the node that you’re interested in debugging.
222
+
In your launch file, find the node that you're interested in debugging.
223
223
For this section, we assume that your launch file contains only a single node (and potentially other information as well).
224
224
The ``Node`` function used in the ``launch_ros`` package will take in a field prefix taking a list of prefix arguments.
Copy file name to clipboardExpand all lines: source/How-To-Guides/Sync-Vs-Async.rst
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -126,7 +126,7 @@ They can be made from anywhere without running the risk of blocking other ROS an
126
126
An asynchronous client will immediately return ``future``, a value that indicates whether the call and response is finished (not the value of the response itself), after sending a request to a service.
127
127
The returned ``future`` may be queried for a response at any time.
128
128
129
-
Since sending a request doesn’t block anything, a loop can be used to both spin ``rclpy`` and check ``future`` in the same thread, for example:
129
+
Since sending a request doesn't block anything, a loop can be used to both spin ``rclpy`` and check ``future`` in the same thread, for example:
Copy file name to clipboardExpand all lines: source/How-To-Guides/Using-Python-Packages.rst
+3-3Lines changed: 3 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -36,14 +36,14 @@ In a new workspace, you can also quickly install all rosdep keys with:
36
36
37
37
rosdep install -yr ./path/to/your/workspace
38
38
39
-
If there aren’t currently ``rosdep`` keys for the package that you are interested in, it is possible to add them by following the `rosdep key contribution guide`_.
39
+
If there aren't currently ``rosdep`` keys for the package that you are interested in, it is possible to add them by following the `rosdep key contribution guide`_.
40
40
41
41
To learn more about the ``rosdep`` tool and how it works, consult the `rosdep documentation`_.
42
42
43
43
Installing via a package manager
44
44
--------------------------------
45
45
46
-
If you don’t want to make a rosdep key, but the package is available in your system package manager (eg ``apt``), you can install and use the package that way:
46
+
If you don't want to make a rosdep key, but the package is available in your system package manager (eg ``apt``), you can install and use the package that way:
47
47
48
48
.. code-block:: console
49
49
@@ -78,7 +78,7 @@ Then setup your virtual environment:
78
78
# Make a virtual env and activate it
79
79
virtualenv -p python3 ./venv
80
80
source ./venv/bin/activate
81
-
# Make sure that colcon doesn’t try to build the venv
81
+
# Make sure that colcon doesn't try to build the venv
82
82
touch ./venv/COLCON_IGNORE
83
83
84
84
Next, install the Python packages that you want in your virtual environment:
0 commit comments