Collective Perception Service implementation #249
Replies: 3 comments
-
Hi @sodevel, thanks for considering contributing your work upstream, an effort I rarely see, unfortunately! Are there any ETSI plans for a CPM update with 32-bit identifiers? Maybe @kenog has some information about this topic? |
Beta Was this translation helpful? Give feedback.
-
Hi @sodevel, hi @riebl, We could therefore go with 16-bit ObjectIds as this seems to be ETSI's plan. But this could be a problem since in Artery, the StationIds are 32-bit and randomly chosen if I remember correctly. Maybe it would be possible to restrict the range of the RNG to 16 bit? Not sure if that is feasible. Best regards |
Beta Was this translation helpful? Give feedback.
-
The difficulty is, that a sending entity must identify identical objects it has received by CPMs and its own sensors. Although the Artery sensor model is perfect and it should be possible to calculate the absolute position of an object from data received by CPM (maybe with some rounding error), each entity detects objects at a different point in time. Therefor, the positions will be off a bit and some kind of tracing needs to be done to identify identical objects. Because this is not that easy and was quite off-topic for my work, we used the fact that we have an unique identifier for each entity and violate the specification in two points:
The CP Service itself and the patching of the message format are enabled by a CMake option, so the sources do not need to be modified in the repository. The changed ID assignment approach is currently fixed but it shouldn't be to hard to enable this only by e.g. a Please see #251 for further details and discussion. |
Beta Was this translation helpful? Give feedback.
-
As part of my master thesis, i have written a Collective Perception Service implementation for Artery, it is based on ETSI TR 103 562 v2.1.1. The implementation features all three Generation Rules (excluding the special case for person and animal objects) and most of the Redundancy Mitigation Rules. I am interested to integrate the implementation into the upstream project.
The implementation has a catch though, it requires a small modification of the Collective Perception Message format. Instead of using an 8 bit identifier, the Perceived Object Container uses a 32 bit identifier for the contained objects. Together with the Artery modification to assign the OMNeT++ node id as station id instead of a random number, this simplifies the identification of objects accross different vehicles. Actually, this results in perfect identification, hence all confidence based Redundancy Mitigation Rules are pointless and have been skipped.
Basically, the implementation is comprised of 3 parts:
Some things should be cleaned up and optimized, but i don't want to invest a lot of work if this doesn't has a chance to get integrated. So my question is, what would be the best approach to get this started? Right now i have two feature branches, one covers 1. and is only 20 commits, these should be retained to simplify the integration for my former university. The other branch contains the rest and has 170 commits, i don't see any other chance to simplify this but squashing this in one commit.
Beta Was this translation helpful? Give feedback.
All reactions