Java/IoT3Mobility: add planar dimensions to SensorObject#558
Conversation
…sorObject Signed-off-by: Mathieu LEFEBVRE <mathieu1.lefebvre@orange.com>
- heading has been renamed into bearing to more accurately describe the speed vector direction. - orientation has been added to represent the physical orientation of the object (equivalent to its heading). The footprint is now calculated based on this value. Signed-off-by: Mathieu LEFEBVRE <mathieu1.lefebvre@orange.com>
Signed-off-by: Mathieu LEFEBVRE <mathieu1.lefebvre@orange.com>
… and v2.1.1 Note: orientation is voluntarily not set for the pedestrian object. Signed-off-by: Mathieu LEFEBVRE <mathieu1.lefebvre@orange.com>
Signed-off-by: Mathieu LEFEBVRE <mathieu1.lefebvre@orange.com>
|
Tests (Thanks for the help) seem OK: Raw CPM v1.2.1: CpmEnvelope121[type=cpm, origin=self, version=1.2.1, sourceUuid=uuid, timestamp=1783598293674, message=CpmMessage121[protocolVersion=2, stationId=123456, generationDeltaTime=27306, managementContainer=ManagementContainer[stationType=15, referencePosition=ReferencePosition[latitude=486251520, longitude=22403490, altitude=0], confidence=ManagementConfidence[positionConfidenceEllipse=PositionConfidenceEllipse[semiMajorConfidence=4095, semiMinorConfidence=4095, semiMajorOrientation=3601], altitude=15]], stationDataContainer=StationDataContainer[originatingVehicleContainer=null, originatingRsuContainer=OriginatingRsuContainer[region=123, intersectionReferenceId=123, roadSegmentReferenceId=123]], sensorInformationContainer=SensorInformationContainer[sensorInformation=[SensorInformation[sensorId=123, type=4, detectionArea=DetectionArea[vehicleSensor=null, stationarySensorRadial=null, stationarySensorPolygon=null, stationarySensorCircular=AreaCircular[nodeCenterPoint=Offset[x=0, y=0, z=0], radius=200], stationarySensorEllipse=null, stationarySensorRectangle=null]]]], perceivedObjectContainer=PerceivedObjectContainer[perceivedObjects=[PerceivedObject[objectId=15, timeOfMeasurement=0, xDistance=-1803, yDistance=198, xSpeed=0, ySpeed=0, objectAge=1500, confidence=PerceivedObjectConfidence[xDistance=4095, yDistance=4095, xSpeed=0, ySpeed=0, object=15, zDistance=null, zSpeed=null, xAcceleration=null, yAcceleration=null, zAcceleration=null, rollAngle=null, pitchAngle=null, yawAngle=null, rollRate=null, pitchRate=null, yawRate=null, rollAcceleration=null, pitchAcceleration=null, yawAcceleration=null, planarObjectDimension1=null, planarObjectDimension2=null, verticalObjectDimension=null, longitudinalLanePosition=null], zDistance=null, zSpeed=null, xAcceleration=null, yAcceleration=null, zAcceleration=null, rollAngle=null, pitchAngle=null, yawAngle=null, rollRate=null, pitchRate=null, yawRate=null, rollAcceleration=null, pitchAcceleration=null, yawAcceleration=null, lowerTriangularCorrelationMatrixColumns=null, planarObjectDimension1=10, planarObjectDimension2=10, verticalObjectDimension=20, objectRefPoint=null, sensorIdList=[123], dynamicStatus=null, classification=[ObjectClassification[objectClass=ObjectClass[vehicle=null, singleVru=ObjectClassVru[pedestrian=1, bicyclist=null, motorcylist=null, animal=null], vruGroup=null, other=null], confidence=100]], matchedPosition=null], PerceivedObject[objectId=34, timeOfMeasurement=0, xDistance=1493, yDistance=91, xSpeed=0, ySpeed=0, objectAge=1500, confidence=PerceivedObjectConfidence[xDistance=4095, yDistance=4095, xSpeed=0, ySpeed=0, object=15, zDistance=null, zSpeed=null, xAcceleration=null, yAcceleration=null, zAcceleration=null, rollAngle=null, pitchAngle=null, yawAngle=null, rollRate=null, pitchRate=null, yawRate=null, rollAcceleration=null, pitchAcceleration=null, yawAcceleration=null, planarObjectDimension1=null, planarObjectDimension2=null, verticalObjectDimension=null, longitudinalLanePosition=null], zDistance=null, zSpeed=null, xAcceleration=null, yAcceleration=null, zAcceleration=null, rollAngle=null, pitchAngle=null, yawAngle=120, rollRate=null, pitchRate=null, yawRate=null, rollAcceleration=null, pitchAcceleration=null, yawAcceleration=null, lowerTriangularCorrelationMatrixColumns=null, planarObjectDimension1=20, planarObjectDimension2=10, verticalObjectDimension=15, objectRefPoint=null, sensorIdList=[123], dynamicStatus=null, classification=[ObjectClassification[objectClass=ObjectClass[vehicle=null, singleVru=ObjectClassVru[pedestrian=null, bicyclist=1, motorcylist=null, animal=null], vruGroup=null, other=null], confidence=100]], matchedPosition=null]]], freeSpaceAddendumContainer=null]] Sending CPM v2.1.1: CpmEnvelope211[messageType=cpm, sourceUuid=uuid, timestamp=1783598364176, version=2.1.1, objectIdRotationCount=null, message=CpmMessage211[protocolVersion=2, stationId=123456, managementContainer=ManagementContainer[referenceTime=710683164176, referencePosition=ReferencePosition[latitude=486251520, longitude=22403490, positionConfidenceEllipse=PositionConfidenceEllipse[semiMajor=4095, semiMinor=4095, semiMajorOrientation=3601], altitude=Altitude[value=0, confidence=15]], segmentationInfo=null, messageRateRange=null], originatingVehicleContainer=null, originatingRsuContainer=OriginatingRsuContainer[mapReferences=[MapReference[roadSegment=RoadSegment[id=123, region=123], intersection=null]]], sensorInformationContainer=SensorInformationContainer[sensorInformation=[SensorInformation[sensorId=123, sensorType=4, perceptionRegionShape=Shape[rectangular=null, circular=Circular[radius=200, shapeReferencePoint=CartesianPosition3d[xCoordinate=0, yCoordinate=0, zCoordinate=null], height=null], polygonal=null, elliptical=null, radial=null, radialShapes=null], perceptionRegionConfidence=100, shadowingApplies=true]]], perceptionRegionContainer=null, perceivedObjectContainer=PerceivedObjectContainer[perceivedObjects=[PerceivedObject[measurementDeltaTime=0, position=CartesianPosition3dWithConfidence[xCoordinate=CartesianCoordinateWithConfidence[value=-1798, confidence=100], yCoordinate=CartesianCoordinateWithConfidence[value=203, confidence=100], zCoordinate=null], objectId=15, velocity=null, acceleration=null, angles=null, zAngularVelocity=null, lowerTriangularCorrelationMatrices=null, objectDimensionZ=ObjectDimension[value=20, confidence=1], objectDimensionY=ObjectDimension[value=10, confidence=1], objectDimensionX=ObjectDimension[value=10, confidence=1], objectAge=1500, objectPerceptionQuality=null, sensorIdList=[123], classification=[ObjectClassification[objectClass=ObjectClass[vehicle=null, vru=ObjectClassVru[pedestrian=1, bicyclistAndLightVruVehicle=null, motorcylist=null, animal=null], group=null, other=null], confidence=100]], mapPosition=null], PerceivedObject[measurementDeltaTime=0, position=CartesianPosition3dWithConfidence[xCoordinate=CartesianCoordinateWithConfidence[value=1497, confidence=100], yCoordinate=CartesianCoordinateWithConfidence[value=107, confidence=100], zCoordinate=null], objectId=34, velocity=null, acceleration=null, angles=EulerAngles[zAngle=Angle[value=120, confidence=1], yAngle=Angle[value=0, confidence=1], xAngle=Angle[value=0, confidence=1]], zAngularVelocity=null, lowerTriangularCorrelationMatrices=null, objectDimensionZ=ObjectDimension[value=15, confidence=1], objectDimensionY=ObjectDimension[value=10, confidence=1], objectDimensionX=ObjectDimension[value=20, confidence=1], objectAge=1500, objectPerceptionQuality=null, sensorIdList=[123], classification=[ObjectClassification[objectClass=ObjectClass[vehicle=null, vru=ObjectClassVru[pedestrian=null, bicyclistAndLightVruVehicle=1, motorcylist=null, animal=null], group=null, other=null], confidence=100]], mapPosition=null]]]]] Raw CPM v2.1.1: CpmEnvelope211[messageType=cpm, sourceUuid=uuid, timestamp=1783598364176, version=2.1.1, objectIdRotationCount=null, message=CpmMessage211[protocolVersion=2, stationId=123456, managementContainer=ManagementContainer[referenceTime=710683164176, referencePosition=ReferencePosition[latitude=486251520, longitude=22403490, positionConfidenceEllipse=PositionConfidenceEllipse[semiMajor=4095, semiMinor=4095, semiMajorOrientation=3601], altitude=Altitude[value=0, confidence=15]], segmentationInfo=null, messageRateRange=null], originatingVehicleContainer=null, originatingRsuContainer=OriginatingRsuContainer[mapReferences=[MapReference[roadSegment=RoadSegment[id=123, region=123], intersection=null]]], sensorInformationContainer=SensorInformationContainer[sensorInformation=[SensorInformation[sensorId=123, sensorType=4, perceptionRegionShape=Shape[rectangular=null, circular=Circular[radius=200, shapeReferencePoint=CartesianPosition3d[xCoordinate=0, yCoordinate=0, zCoordinate=null], height=null], polygonal=null, elliptical=null, radial=null, radialShapes=null], perceptionRegionConfidence=100, shadowingApplies=true]]], perceptionRegionContainer=null, perceivedObjectContainer=PerceivedObjectContainer[perceivedObjects=[PerceivedObject[measurementDeltaTime=0, position=CartesianPosition3dWithConfidence[xCoordinate=CartesianCoordinateWithConfidence[value=-1798, confidence=100], yCoordinate=CartesianCoordinateWithConfidence[value=203, confidence=100], zCoordinate=null], objectId=15, velocity=null, acceleration=null, angles=null, zAngularVelocity=null, lowerTriangularCorrelationMatrices=null, objectDimensionZ=ObjectDimension[value=20, confidence=1], objectDimensionY=ObjectDimension[value=10, confidence=1], objectDimensionX=ObjectDimension[value=10, confidence=1], objectAge=1500, objectPerceptionQuality=null, sensorIdList=[123], classification=[ObjectClassification[objectClass=ObjectClass[vehicle=null, vru=ObjectClassVru[pedestrian=1, bicyclistAndLightVruVehicle=null, motorcylist=null, animal=null], group=null, other=null], confidence=100]], mapPosition=null], PerceivedObject[measurementDeltaTime=0, position=CartesianPosition3dWithConfidence[xCoordinate=CartesianCoordinateWithConfidence[value=1497, confidence=100], yCoordinate=CartesianCoordinateWithConfidence[value=107, confidence=100], zCoordinate=null], objectId=34, velocity=null, acceleration=null, angles=EulerAngles[zAngle=Angle[value=120, confidence=1], yAngle=Angle[value=0, confidence=1], xAngle=Angle[value=0, confidence=1]], zAngularVelocity=null, lowerTriangularCorrelationMatrices=null, objectDimensionZ=ObjectDimension[value=15, confidence=1], objectDimensionY=ObjectDimension[value=10, confidence=1], objectDimensionX=ObjectDimension[value=20, confidence=1], objectAge=1500, objectPerceptionQuality=null, sensorIdList=[123], classification=[ObjectClassification[objectClass=ObjectClass[vehicle=null, vru=ObjectClassVru[pedestrian=null, bicyclistAndLightVruVehicle=1, motorcylist=null, animal=null], group=null, other=null], confidence=100]], mapPosition=null]]]]] |
All looking as expected! |
No, thanks to you ;) |
What's new
Planar dimensions (width and length + derived footprint) have been added to the SensorObject (abstraction of CPM's Perceived Object).
Close #554
What to do
After reviewing code changes:
Iot3MobilityExampleclass in theexamplesmodule, and set appropriate values for the following fields:sensorObjectUpdate(...)part of theroadSensorCallback(...):startSendingMessages()method:Iot3MobilityExamplefor a few seconds.Iot3MobilityExamplefor a few seconds.Expected results
SensorObjects):SensorObjects):Note1: one sensor object has a NULL footprint in each test voluntarily, because no orientation has been provided.
Note2: it is normal if source_uuid, station_id and timestamps differ in your test.