Comments (6)
@miguelprada thanks for pointing it out. I think the purpose of that last example was to bring up that issue with the concept of rostopic+exact://
, which I thought would be addressed by the next line:
Considering the third case, itโs not clear if the
/
should be respected or if additional syntax is required to support partitions in the case of โexactโ topic names.
Perhaps it should just be made clearer that this last case is intentionally problematic.
from design.
I understand this issue needs to be addressed, but since the /
is not valid in topic names, I think presenting the first option can lead to confusion. Let me propose a rephrase of that section.
from design.
From what I understand in the linked spec, DDS topics don't exclude a forward slash. AFAIS, it only has a special meaning within the SQL Extension of rti.
With that in mind, you could imagine a ROS2 independent DDS topic with a forward slash. If you want to subscribe to such a topic, you may not be able to apply the same topic rules as for ROS2.
But I have to do some more research on that.
from design.
DDS topics only allow alphanumeric and underscores (and must not start with a number) according to the spec:
In DDS, topic names are restricted by these restrictions:
From DDS 1.4 specification, or the RTI documentation:
TOPICNAME - A topic name is an identifier for a topic, and is defined as any series of characters 'a', ..., 'z', 'A', ..., 'Z', '0', ..., '9', '_' but may not start with a digit. Note: that the DDS specification has a known typo, where it says - are allowed, but the RTI documentation correctly lists _ as allowed.
Additionally, DDS - or more precisely the underlying RTPS protocol - has a hard limit on topic names of 256 characters, so an additional goal is to minimize the number of extra characters used when mapping from ROS to DDS names. See The Real-time Publish-Subscribe Protocol (RTPS) DDS Interoperability Wire Protocol Specification, Table 9.12 for more details.
-- http://design.ros2.org/articles/topic_and_service_names.html#dds-topic-names
@Karsten1987 What makes you think forward slash is allowed in a topic name? It might be allowed by the implementation, but we have to go by the specification since we're not tied to one implementation.
from design.
I totally agree with what you said. We will comply to the specification, however, as you already mentioned, the implementations may be relaxed on these and you technically could end up with one forward slash in a DDS topic. If so, the question would be if we excluded that topic from being available in ROS.
If we decide to not allow the forward slash, then I like the proposed rephrasing of this PR.
from design.
I see what you mean, we can let the user pass a /
into a DDS topic name by using "exact", and if the implementation doesn't allow it, let it raise. Basically "exact" would circumvent all of our checking.
from design.
Related Issues (20)
- Multirobot support HOT 9
- Middleware alternatives to DDS HOT 4
- fix login by using new GitHub methods HOT 1
- Changes between ROS 1 and ROS 2 design doc is out of date HOT 1
- Add support for fully qualified names in message defnitions
- Add design document on configuring QoS at startup time HOT 4
- Add support for preemption in actions HOT 39
- Update XML schema definition for launch files HOT 2
- Add [ros2 node kill <node_name>] and [ros2 node kill --all] (similar to [rosnode kill] from ros1) HOT 23
- Article numbering is not clear HOT 3
- Topic name constraints discrepancy HOT 9
- Documentation linter HOT 5
- zero-copy: shared memory using external mapped buffer HOT 3
- is intra-process communication meta-message transfered via DDS? HOT 4
- Logging Design Document
- Update Launch XML Schema HOT 3
- can we add a "date written" to the design docs? HOT 2
- Map char[N] to str in Python
- Why must field names of messages and services be lowercase? HOT 4
- how you configured opentcs nena ros2 adapter to your agv? HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. ๐๐๐
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google โค๏ธ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from design.