An initial reference location is read from the header of the OpenDRIVE definition (/OpenDRIVE/header/geoReference)
The expected format is based on the Proj4 syntax:
+lat_0=<LATITUDE as double> +lon_0=<LONGITUDE as double)
Example (Town01):
<OpenDRIVE>
<header revMajor="1" revMinor="4" name="" version="1" date="2018-10-26T12:17:35" north="2.0479999989271146e+1" south="-3.4888998413085938e+2" east="4.1446086126736287e+2" west="-2.0712774024007370e+1" vendor="VectorZero">
<geoReference><![CDATA[+lat_0=4.9000000000000000e+1 +lon_0=8.0000000000000000e+0]]></geoReference>
</header>
...
While creating the new carla ros bridge some extensions became necessary
within CARLA:
The parent property of an actor via python interface is not yet filled.
Therefore, the parent_id of Actors has to be transferred from the CARLA
server via rpc interface.
In addition, actor attributes are published via python interface.
Changes in detail:
carla/rpc/Actor.h:
- add parent_id field to the Actor class for rpc transport
TheNewCarlaServer.cpp:
- fill the parent_id field with the appropriate value
client/ActorList:
- added GetActor() function to get an actor by id
client/ActorVariant:
- added actor_list optional parameter to Get() and MakeActor() function
which allows to query for the parent actor in case the actor_list is
available
client/ActorAttribute:
- solved problem of independent rpc::ActorAttribute* classes by
introduction of ActorAttributeValueAccess class, to be able to reuse
most of the functions for both ActorAttribueValues and ActorAttributes
ActorBlueprintFunctionLibrary:
- extended actor attributes by attribute 'role_name' having {autopilot,
scenario, ego_vehicle} as recommended values for vehicles or
{front,back,...} for sensors to be able to distiguish the different
actors in a meaningful way when transferring to ROS topic names
- extended vehicle attributes by not-modifiable attribute 'object_type'
to be defined at blueprint creation time to provide ground truth
object classification type
PythonAPI:
- libcarla: provide the actor attributes within python as dictionary
- make use of role_name attribute to provide information required for
ROS bridge to distinguish ego vehicle from others