├── .gitattributes ├── .github ├── CODEOWNERS ├── config.yml ├── issue_template.md ├── pull_request_template.md └── stale.yml ├── .gitignore ├── .pep8 ├── .readthedocs.yml ├── .travis.yml ├── CHANGELOG.md ├── CMakeLists.txt ├── Co-Simulation └── Sumo │ ├── data │ └── vtypes.json │ ├── examples │ └── town01 │ │ ├── Town01.net.xml │ │ ├── Town01.rou.xml │ │ ├── Town01.sumocfg │ │ ├── carlavtypes.rou.xml │ │ ├── netconvert_options.sumo │ │ └── viewsettings.xml │ ├── requirements.txt │ ├── run_synchronization.py │ ├── sumo_integration │ ├── __init__.py │ ├── bridge_helper.py │ ├── carla_simulation.py │ ├── constants.py │ └── sumo_simulation.py │ └── util │ ├── create_sumo_vtypes.py │ └── sequential_types.py ├── CustomAssets ├── EmptyMap.umap ├── EmptyMap_BuiltData.uasset └── M_Tile.uasset ├── Data ├── .gitignore ├── beijing.landmarks │ ├── 000000.landmark.wkt │ ├── 000001.landmark.wkt │ ├── 000002.landmark.wkt │ ├── 000003.landmark.wkt │ ├── 000004.landmark.wkt │ ├── 000005.landmark.wkt │ ├── 000006.landmark.wkt │ ├── 000007.landmark.wkt │ ├── 000008.landmark.wkt │ ├── 000009.landmark.wkt │ ├── 000010.landmark.wkt │ ├── 000011.landmark.wkt │ ├── 000012.landmark.wkt │ ├── 000013.landmark.wkt │ ├── 000014.landmark.wkt │ ├── 000015.landmark.wkt │ ├── 000016.landmark.wkt │ ├── 000017.landmark.wkt │ ├── 000018.landmark.wkt │ ├── 000019.landmark.wkt │ ├── 000020.landmark.wkt │ ├── 000021.landmark.wkt │ ├── 000022.landmark.wkt │ ├── 000023.landmark.wkt │ ├── 000024.landmark.wkt │ ├── 000025.landmark.wkt │ ├── 000026.landmark.wkt │ ├── 000027.landmark.wkt │ ├── 000028.landmark.wkt │ ├── 000029.landmark.wkt │ ├── 000030.landmark.wkt │ ├── 000031.landmark.wkt │ ├── 000032.landmark.wkt │ ├── 000033.landmark.wkt │ ├── 000034.landmark.wkt │ ├── 000035.landmark.wkt │ ├── 000036.landmark.wkt │ ├── 000037.landmark.wkt │ ├── 000038.landmark.wkt │ ├── 000039.landmark.wkt │ ├── 000040.landmark.wkt │ ├── 000041.landmark.wkt │ ├── 000042.landmark.wkt │ └── 000043.landmark.wkt ├── beijing.net.xml ├── beijing.network.wkt ├── beijing.osm ├── beijing.roadmark.wkt ├── beijing.sidewalk.wkt ├── beijing.sim_bounds ├── beijing.wkt ├── chandni_chowk.jpg ├── chandni_chowk.landmarks │ ├── 000000.landmark.wkt │ ├── 000001.landmark.wkt │ ├── 000002.landmark.wkt │ ├── 000003.landmark.wkt │ ├── 000004.landmark.wkt │ ├── 000005.landmark.wkt │ ├── 000006.landmark.wkt │ ├── 000007.landmark.wkt │ ├── 000008.landmark.wkt │ ├── 000009.landmark.wkt │ ├── 000010.landmark.wkt │ ├── 000011.landmark.wkt │ ├── 000012.landmark.wkt │ ├── 000013.landmark.wkt │ ├── 000014.landmark.wkt │ ├── 000015.landmark.wkt │ └── 000016.landmark.wkt ├── chandni_chowk.net.xml ├── chandni_chowk.network.wkt ├── chandni_chowk.osm ├── chandni_chowk.roadmark.wkt ├── chandni_chowk.sidewalk.wkt ├── chandni_chowk.sim_bounds ├── chandni_chowk.wkt ├── highway.landmarks │ └── 000000.landmark.wkt ├── highway.net.xml ├── highway.network.wkt ├── highway.osm ├── highway.png ├── highway.roadmark.wkt ├── highway.sidewalk.wkt ├── highway.sim_bounds ├── highway.wkt ├── magic.landmarks │ ├── 000000.landmark.wkt │ ├── 000001.landmark.wkt │ ├── 000002.landmark.wkt │ ├── 000003.landmark.wkt │ ├── 000004.landmark.wkt │ └── 000005.landmark.wkt ├── magic.net.xml ├── magic.network.wkt ├── magic.osm ├── magic.png ├── magic.roadmark.wkt ├── magic.sidewalk.wkt ├── magic.sim_bounds ├── magic.wkt ├── meskel_square.landmarks │ ├── 000000.landmark.wkt │ ├── 000001.landmark.wkt │ ├── 000002.landmark.wkt │ ├── 000003.landmark.wkt │ ├── 000004.landmark.wkt │ ├── 000005.landmark.wkt │ ├── 000006.landmark.wkt │ ├── 000007.landmark.wkt │ ├── 000008.landmark.wkt │ ├── 000009.landmark.wkt │ ├── 000010.landmark.wkt │ ├── 000011.landmark.wkt │ ├── 000012.landmark.wkt │ ├── 000013.landmark.wkt │ ├── 000014.landmark.wkt │ ├── 000015.landmark.wkt │ ├── 000016.landmark.wkt │ ├── 000017.landmark.wkt │ ├── 000018.landmark.wkt │ ├── 000019.landmark.wkt │ ├── 000020.landmark.wkt │ ├── 000021.landmark.wkt │ ├── 000022.landmark.wkt │ ├── 000023.landmark.wkt │ ├── 000024.landmark.wkt │ ├── 000025.landmark.wkt │ ├── 000026.landmark.wkt │ ├── 000027.landmark.wkt │ ├── 000028.landmark.wkt │ ├── 000029.landmark.wkt │ ├── 000030.landmark.wkt │ ├── 000031.landmark.wkt │ ├── 000032.landmark.wkt │ ├── 000033.landmark.wkt │ └── 000034.landmark.wkt ├── meskel_square.net.xml ├── meskel_square.network.wkt ├── meskel_square.osm ├── meskel_square.png ├── meskel_square.roadmark.wkt ├── meskel_square.sidewalk.wkt ├── meskel_square.sim_bounds ├── shi_men_er_lu.landmarks │ ├── 000000.landmark.wkt │ ├── 000001.landmark.wkt │ ├── 000002.landmark.wkt │ ├── 000003.landmark.wkt │ ├── 000004.landmark.wkt │ ├── 000005.landmark.wkt │ ├── 000006.landmark.wkt │ ├── 000007.landmark.wkt │ └── 000008.landmark.wkt ├── shi_men_er_lu.net.xml ├── shi_men_er_lu.network.wkt ├── shi_men_er_lu.osm ├── shi_men_er_lu.png ├── shi_men_er_lu.roadmark.wkt ├── shi_men_er_lu.sidewalk.wkt ├── shi_men_er_lu.sim_bounds ├── shi_men_er_lu.wkt ├── shibuya.landmarks │ ├── 000000.landmark.wkt │ ├── 000001.landmark.wkt │ ├── 000002.landmark.wkt │ ├── 000003.landmark.wkt │ ├── 000004.landmark.wkt │ ├── 000005.landmark.wkt │ ├── 000006.landmark.wkt │ ├── 000007.landmark.wkt │ ├── 000008.landmark.wkt │ ├── 000009.landmark.wkt │ ├── 000010.landmark.wkt │ ├── 000011.landmark.wkt │ ├── 000012.landmark.wkt │ ├── 000013.landmark.wkt │ ├── 000014.landmark.wkt │ ├── 000015.landmark.wkt │ └── 000016.landmark.wkt ├── shibuya.net.xml ├── shibuya.network.wkt ├── shibuya.osm ├── shibuya.png ├── shibuya.roadmark.wkt ├── shibuya.sidewalk.wkt ├── shibuya.sim_bounds └── shibuya.wkt ├── Docs ├── adv_recorder.md ├── adv_rendering_options.md ├── adv_synchrony_timestep.md ├── adv_traffic_manager.md ├── bp_library.md ├── build_docker.md ├── build_faq.md ├── build_linux.md ├── build_system.md ├── build_update.md ├── build_windows.md ├── cont_code_of_conduct.md ├── cont_coding_standard.md ├── cont_contribution_guidelines.md ├── cont_doc_standard.md ├── core_actors.md ├── core_concepts.md ├── core_map.md ├── core_sensors.md ├── core_world.md ├── download.md ├── img │ ├── btn │ │ ├── chat.png │ │ ├── dev.png │ │ ├── docs.png │ │ ├── download.png │ │ ├── forum.png │ │ └── web.png │ ├── sensor_radar.png │ └── traffic_manager_diagram.png ├── index.md ├── python_api.md ├── ref_code_recipes.md ├── ref_cpp.md ├── ref_recorder_binary_file_format.md ├── ref_sensors.md ├── ros_installation.md ├── ros_launchs.md ├── ros_msgs.md ├── start_introduction.md ├── start_quickstart.md ├── tuto_A_epic_automotive_materials.md ├── tuto_A_import_assets.md ├── tuto_A_map_creation.md ├── tuto_A_map_customization.md ├── tuto_A_standalone_packages.md ├── tuto_A_vehicle_modelling.md ├── tuto_D_contribute_assets.md ├── tuto_D_create_sensor.md ├── tuto_D_generate_pedestrian_navigation.md ├── tuto_D_make_release.md ├── tuto_G_add_friction_triggers.md ├── tuto_G_control_vehicle_physics.md └── tuto_G_control_walker_skeletons.md ├── Doxyfile ├── Examples └── CppClient │ ├── .gitignore │ ├── Makefile │ ├── README.md │ └── main.cpp ├── Import └── README.md ├── Jenkinsfile ├── LICENSE ├── LibCarla ├── cmake │ ├── CMakeLists.txt │ ├── client │ │ └── CMakeLists.txt │ ├── server │ │ └── CMakeLists.txt │ └── test │ │ └── CMakeLists.txt └── source │ ├── carla │ ├── .gitignore │ ├── AtomicList.h │ ├── AtomicSharedPtr.h │ ├── Buffer.cpp │ ├── Buffer.h │ ├── BufferPool.h │ ├── Debug.h │ ├── Exception.cpp │ ├── Exception.h │ ├── FileSystem.cpp │ ├── FileSystem.h │ ├── Functional.h │ ├── Iterator.h │ ├── ListView.h │ ├── Logging.h │ ├── Memory.h │ ├── MoveHandler.h │ ├── MsgPack.h │ ├── MsgPackAdaptors.h │ ├── NonCopyable.h │ ├── Platform.h │ ├── PythonUtil.h │ ├── RecurrentSharedFuture.h │ ├── Sockets.h │ ├── StopWatch.h │ ├── StringUtil.cpp │ ├── StringUtil.h │ ├── ThreadGroup.h │ ├── ThreadPool.h │ ├── Time.h │ ├── TypeTraits.h │ ├── Version.h.in │ ├── aabb │ │ ├── AABBMap.cpp │ │ └── AABBMap.h │ ├── client │ │ ├── Actor.cpp │ │ ├── Actor.h │ │ ├── ActorAttribute.cpp │ │ ├── ActorAttribute.h │ │ ├── ActorBlueprint.cpp │ │ ├── ActorBlueprint.h │ │ ├── ActorList.cpp │ │ ├── ActorList.h │ │ ├── ActorSnapshot.h │ │ ├── BlueprintLibrary.cpp │ │ ├── BlueprintLibrary.h │ │ ├── Client.h │ │ ├── ClientSideSensor.h │ │ ├── DebugHelper.cpp │ │ ├── DebugHelper.h │ │ ├── GarbageCollectionPolicy.h │ │ ├── Junction.cpp │ │ ├── Junction.h │ │ ├── Landmark.cpp │ │ ├── Landmark.h │ │ ├── LaneInvasionSensor.cpp │ │ ├── LaneInvasionSensor.h │ │ ├── Map.cpp │ │ ├── Map.h │ │ ├── Sensor.h │ │ ├── ServerSideSensor.cpp │ │ ├── ServerSideSensor.h │ │ ├── TimeoutException.cpp │ │ ├── TimeoutException.h │ │ ├── Timestamp.h │ │ ├── TrafficLight.cpp │ │ ├── TrafficLight.h │ │ ├── TrafficSign.h │ │ ├── Vehicle.cpp │ │ ├── Vehicle.h │ │ ├── Walker.cpp │ │ ├── Walker.h │ │ ├── WalkerAIController.cpp │ │ ├── WalkerAIController.h │ │ ├── Waypoint.cpp │ │ ├── Waypoint.h │ │ ├── World.cpp │ │ ├── World.h │ │ ├── WorldSnapshot.h │ │ └── detail │ │ │ ├── ActorFactory.cpp │ │ │ ├── ActorFactory.h │ │ │ ├── ActorState.cpp │ │ │ ├── ActorState.h │ │ │ ├── ActorVariant.cpp │ │ │ ├── ActorVariant.h │ │ │ ├── CachedActorList.h │ │ │ ├── CallbackList.h │ │ │ ├── Client.cpp │ │ │ ├── Client.h │ │ │ ├── Episode.cpp │ │ │ ├── Episode.h │ │ │ ├── EpisodeProxy.cpp │ │ │ ├── EpisodeProxy.h │ │ │ ├── EpisodeState.cpp │ │ │ ├── EpisodeState.h │ │ │ ├── Simulator.cpp │ │ │ ├── Simulator.h │ │ │ ├── WalkerNavigation.cpp │ │ │ └── WalkerNavigation.h │ ├── gamma │ │ ├── .editorconfig │ │ ├── .gitignore │ │ ├── .travis.yml │ │ ├── Agent.cpp │ │ ├── Agent.h │ │ ├── AgentParams.h │ │ ├── ConvexHull.cpp │ │ ├── ConvexHull.h │ │ ├── Definitions.h │ │ ├── GammaParams.cpp │ │ ├── GammaParams.h │ │ ├── KdTree.cpp │ │ ├── KdTree.h │ │ ├── Minkowski.h │ │ ├── Obstacle.cpp │ │ ├── Obstacle.h │ │ ├── RVO.h │ │ ├── RVOSimulator.cpp │ │ ├── RVOSimulator.h │ │ └── Vector2.h │ ├── geom │ │ ├── AABB2D.h │ │ ├── BoundingBox.h │ │ ├── CubicPolynomial.h │ │ ├── GeoLocation.cpp │ │ ├── GeoLocation.h │ │ ├── Location.h │ │ ├── Math.cpp │ │ ├── Math.h │ │ ├── Mesh.cpp │ │ ├── Mesh.h │ │ ├── Rotation.h │ │ ├── Rtree.h │ │ ├── Segment2D.h │ │ ├── Transform.h │ │ ├── Triangle2D.h │ │ ├── Triangulation.cpp │ │ ├── Triangulation.h │ │ ├── Vector2D.h │ │ └── Vector3D.h │ ├── image │ │ ├── BoostGil.h │ │ ├── CityScapesPalette.h │ │ ├── ColorConverter.h │ │ ├── ImageConverter.h │ │ ├── ImageIO.h │ │ ├── ImageIOConfig.h │ │ └── ImageView.h │ ├── nav │ │ ├── Navigation.cpp │ │ ├── Navigation.h │ │ ├── WalkerEvent.cpp │ │ ├── WalkerEvent.h │ │ ├── WalkerManager.cpp │ │ └── WalkerManager.h │ ├── occupancy │ │ ├── OccupancyMap.cpp │ │ └── OccupancyMap.h │ ├── opendrive │ │ ├── OpenDriveParser.cpp │ │ ├── OpenDriveParser.h │ │ └── parser │ │ │ ├── GeoReferenceParser.cpp │ │ │ ├── GeoReferenceParser.h │ │ │ ├── GeometryParser.cpp │ │ │ ├── GeometryParser.h │ │ │ ├── JunctionParser.cpp │ │ │ ├── JunctionParser.h │ │ │ ├── LaneParser.cpp │ │ │ ├── LaneParser.h │ │ │ ├── ObjectParser.cpp │ │ │ ├── ObjectParser.h │ │ │ ├── ProfilesParser.cpp │ │ │ ├── ProfilesParser.h │ │ │ ├── RoadParser.cpp │ │ │ ├── RoadParser.h │ │ │ ├── SignalParser.cpp │ │ │ ├── SignalParser.h │ │ │ ├── TrafficGroupParser.cpp │ │ │ └── TrafficGroupParser.h │ ├── osmlandmarks │ │ ├── OsmLandmarks.cpp │ │ └── OsmLandmarks.h │ ├── pointcloud │ │ ├── PointCloudIO.cpp │ │ └── PointCloudIO.h │ ├── profiler │ │ ├── LifetimeProfiled.cpp │ │ ├── LifetimeProfiled.h │ │ ├── Profiler.cpp │ │ └── Profiler.h │ ├── road │ │ ├── InformationSet.h │ │ ├── Junction.h │ │ ├── Lane.cpp │ │ ├── Lane.h │ │ ├── LaneSection.cpp │ │ ├── LaneSection.h │ │ ├── LaneSectionMap.h │ │ ├── LaneValidity.h │ │ ├── Map.cpp │ │ ├── Map.h │ │ ├── MapBuilder.cpp │ │ ├── MapBuilder.h │ │ ├── MapData.cpp │ │ ├── MapData.h │ │ ├── Object.h │ │ ├── Road.cpp │ │ ├── Road.h │ │ ├── RoadElementSet.h │ │ ├── RoadTypes.h │ │ ├── Signal.h │ │ ├── element │ │ │ ├── Geometry.cpp │ │ │ ├── Geometry.h │ │ │ ├── LaneCrossingCalculator.cpp │ │ │ ├── LaneCrossingCalculator.h │ │ │ ├── LaneMarking.cpp │ │ │ ├── LaneMarking.h │ │ │ ├── RoadInfo.h │ │ │ ├── RoadInfoCrosswalk.h │ │ │ ├── RoadInfoElevation.h │ │ │ ├── RoadInfoGeometry.h │ │ │ ├── RoadInfoIterator.h │ │ │ ├── RoadInfoLaneAccess.h │ │ │ ├── RoadInfoLaneBorder.h │ │ │ ├── RoadInfoLaneHeight.h │ │ │ ├── RoadInfoLaneMaterial.h │ │ │ ├── RoadInfoLaneOffset.h │ │ │ ├── RoadInfoLaneRule.h │ │ │ ├── RoadInfoLaneVisibility.h │ │ │ ├── RoadInfoLaneWidth.h │ │ │ ├── RoadInfoMarkRecord.h │ │ │ ├── RoadInfoMarkTypeLine.h │ │ │ ├── RoadInfoSignal.h │ │ │ ├── RoadInfoSpeed.h │ │ │ ├── RoadInfoVisitor.h │ │ │ ├── Waypoint.cpp │ │ │ └── Waypoint.h │ │ └── object │ │ │ └── RepeatRecord.h │ ├── rpc │ │ ├── Actor.h │ │ ├── ActorAttribute.h │ │ ├── ActorAttributeType.h │ │ ├── ActorDefinition.h │ │ ├── ActorDescription.h │ │ ├── ActorId.h │ │ ├── AttachmentType.h │ │ ├── BoneTransformData.h │ │ ├── Client.h │ │ ├── Color.h │ │ ├── Command.h │ │ ├── CommandResponse.h │ │ ├── DebugShape.h │ │ ├── EpisodeInfo.h │ │ ├── EpisodeSettings.h │ │ ├── GearPhysicsControl.h │ │ ├── Location.h │ │ ├── MapInfo.h │ │ ├── Metadata.h │ │ ├── QualityLevel.h │ │ ├── Response.h │ │ ├── Server.h │ │ ├── String.h │ │ ├── TrafficLightState.h │ │ ├── Transform.h │ │ ├── Vector2D.h │ │ ├── Vector3D.h │ │ ├── VehicleControl.h │ │ ├── VehicleLightState.h │ │ ├── VehiclePhysicsControl.h │ │ ├── WalkerBoneControl.h │ │ ├── WalkerControl.h │ │ ├── WeatherParameters.cpp │ │ ├── WeatherParameters.h │ │ └── WheelPhysicsControl.h │ ├── rss │ │ ├── RssCheck.cpp │ │ ├── RssCheck.h │ │ ├── RssRestrictor.cpp │ │ ├── RssRestrictor.h │ │ ├── RssSensor.cpp │ │ └── RssSensor.h │ ├── segments │ │ ├── SegmentMap.cpp │ │ └── SegmentMap.h │ ├── sensor │ │ ├── CompileTimeTypeMap.h │ │ ├── CompositeSerializer.h │ │ ├── Deserializer.cpp │ │ ├── Deserializer.h │ │ ├── RawData.h │ │ ├── SensorData.h │ │ ├── SensorRegistry.h │ │ ├── data │ │ │ ├── ActorDynamicState.h │ │ │ ├── Array.h │ │ │ ├── CollisionEvent.h │ │ │ ├── Color.h │ │ │ ├── GnssMeasurement.h │ │ │ ├── IMUMeasurement.h │ │ │ ├── Image.h │ │ │ ├── ImageTmpl.h │ │ │ ├── LaneInvasionEvent.cpp │ │ │ ├── LaneInvasionEvent.h │ │ │ ├── LidarMeasurement.h │ │ │ ├── ObstacleDetectionEvent.h │ │ │ ├── RadarMeasurement.h │ │ │ ├── RawEpisodeState.h │ │ │ └── RssResponse.h │ │ └── s11n │ │ │ ├── CollisionEventSerializer.cpp │ │ │ ├── CollisionEventSerializer.h │ │ │ ├── EpisodeStateSerializer.cpp │ │ │ ├── EpisodeStateSerializer.h │ │ │ ├── GnssSerializer.cpp │ │ │ ├── GnssSerializer.h │ │ │ ├── IMUSerializer.cpp │ │ │ ├── IMUSerializer.h │ │ │ ├── ImageSerializer.cpp │ │ │ ├── ImageSerializer.h │ │ │ ├── LidarMeasurement.h │ │ │ ├── LidarSerializer.cpp │ │ │ ├── LidarSerializer.h │ │ │ ├── NoopSerializer.cpp │ │ │ ├── NoopSerializer.h │ │ │ ├── ObstacleDetectionEventSerializer.cpp │ │ │ ├── ObstacleDetectionEventSerializer.h │ │ │ ├── RadarData.h │ │ │ ├── RadarSerializer.cpp │ │ │ ├── RadarSerializer.h │ │ │ ├── SensorHeaderSerializer.cpp │ │ │ └── SensorHeaderSerializer.h │ ├── sidewalk │ │ ├── Sidewalk.cpp │ │ └── Sidewalk.h │ ├── streaming │ │ ├── Client.h │ │ ├── EndPoint.h │ │ ├── Server.h │ │ ├── Stream.h │ │ ├── Token.h │ │ ├── detail │ │ │ ├── Dispatcher.cpp │ │ │ ├── Dispatcher.h │ │ │ ├── MultiStreamState.h │ │ │ ├── Session.h │ │ │ ├── Stream.h │ │ │ ├── StreamState.h │ │ │ ├── StreamStateBase.cpp │ │ │ ├── StreamStateBase.h │ │ │ ├── Token.cpp │ │ │ ├── Token.h │ │ │ ├── Types.h │ │ │ └── tcp │ │ │ │ ├── Client.cpp │ │ │ │ ├── Client.h │ │ │ │ ├── Message.h │ │ │ │ ├── Server.cpp │ │ │ │ ├── Server.h │ │ │ │ ├── ServerSession.cpp │ │ │ │ └── ServerSession.h │ │ └── low_level │ │ │ ├── Client.h │ │ │ └── Server.h │ ├── sumonetwork │ │ ├── SumoNetwork.cpp │ │ └── SumoNetwork.h │ └── trafficmanager │ │ ├── AtomicActorSet.h │ │ ├── AtomicMap.h │ │ ├── BatchControlStage.cpp │ │ ├── BatchControlStage.h │ │ ├── CollisionStage.cpp │ │ ├── CollisionStage.h │ │ ├── InMemoryMap.cpp │ │ ├── InMemoryMap.h │ │ ├── LocalizationStage.cpp │ │ ├── LocalizationStage.h │ │ ├── LocalizationUtils.cpp │ │ ├── LocalizationUtils.h │ │ ├── Messenger.h │ │ ├── MessengerAndDataTypes.h │ │ ├── MotionPlannerStage.cpp │ │ ├── MotionPlannerStage.h │ │ ├── PIDController.cpp │ │ ├── PIDController.h │ │ ├── Parameters.cpp │ │ ├── Parameters.h │ │ ├── PerformanceDiagnostics.cpp │ │ ├── PerformanceDiagnostics.h │ │ ├── PipelineStage.cpp │ │ ├── PipelineStage.h │ │ ├── SimpleWaypoint.cpp │ │ ├── SimpleWaypoint.h │ │ ├── TrafficLightStage.cpp │ │ ├── TrafficLightStage.h │ │ ├── TrafficManager.cpp │ │ ├── TrafficManager.h │ │ ├── TrafficManagerBase.h │ │ ├── TrafficManagerClient.h │ │ ├── TrafficManagerLocal.cpp │ │ ├── TrafficManagerLocal.h │ │ ├── TrafficManagerRemote.cpp │ │ ├── TrafficManagerRemote.h │ │ └── TrafficManagerServer.h │ ├── compiler │ ├── disable-ue4-macros.h │ └── enable-ue4-macros.h │ ├── test │ ├── Buffer.cpp │ ├── Buffer.h │ ├── Random.h │ ├── client │ │ ├── OpenDrive.cpp │ │ ├── OpenDrive.h │ │ ├── test_image.cpp │ │ ├── test_lanenetwork.cpp │ │ ├── test_opendrive.cpp │ │ ├── test_recurrent_shared_future.cpp │ │ ├── test_rpc.cpp │ │ └── test_sumonetwork.cpp │ ├── common │ │ ├── test_buffer.cpp │ │ ├── test_geom.cpp │ │ ├── test_listview.cpp │ │ ├── test_miscellaneous.cpp │ │ ├── test_msgpack.cpp │ │ ├── test_streaming.cpp │ │ └── test_vector3D.cpp │ ├── server │ │ └── test_benchmark_streaming.cpp │ ├── test.cpp │ └── test.h │ └── third-party │ ├── moodycamel │ └── ConcurrentQueue.h │ ├── odrSpiral │ ├── odrSpiral.cpp │ └── odrSpiral.h │ └── pugixml │ ├── LICENSE.md │ ├── pugiconfig.hpp │ ├── pugixml.cpp │ └── pugixml.hpp ├── Makefile ├── PythonAPI ├── .pylintrc ├── carla │ ├── .gitignore │ ├── agents │ │ ├── __init__.py │ │ ├── navigation │ │ │ ├── __init__.py │ │ │ ├── agent.py │ │ │ ├── basic_agent.py │ │ │ ├── controller.py │ │ │ ├── global_route_planner.py │ │ │ ├── global_route_planner_dao.py │ │ │ ├── local_planner.py │ │ │ └── roaming_agent.py │ │ └── tools │ │ │ ├── __init__.py │ │ │ └── misc.py │ ├── requirements.txt │ ├── scene_layout.py │ ├── setup.py │ └── source │ │ ├── carla │ │ ├── __init__.py │ │ └── command.py │ │ └── libcarla │ │ ├── AABB.cpp │ │ ├── Actor.cpp │ │ ├── AdRss.cpp │ │ ├── Blueprint.cpp │ │ ├── Client.cpp │ │ ├── Commands.cpp │ │ ├── Control.cpp │ │ ├── Exception.cpp │ │ ├── Gamma.cpp │ │ ├── Geom.cpp │ │ ├── Map.cpp │ │ ├── Occupancy.cpp │ │ ├── OsmLandmarks.cpp │ │ ├── Segments.cpp │ │ ├── Sensor.cpp │ │ ├── SensorData.cpp │ │ ├── Sidewalk.cpp │ │ ├── Snapshot.cpp │ │ ├── SumoNetwork.cpp │ │ ├── TrafficManager.cpp │ │ ├── Weather.cpp │ │ ├── World.cpp │ │ ├── libcarla.cpp │ │ └── unordered_map_indexing_suite.hpp ├── docs │ ├── actor.yml │ ├── blueprint.yml │ ├── bp_doc_gen.py │ ├── client.yml │ ├── commands.yml │ ├── control.yml │ ├── doc_gen.py │ ├── geom.yml │ ├── map.yml │ ├── requirements.txt │ ├── sensor.yml │ ├── sensor_data.yml │ ├── snapshot.yml │ ├── weather.yml │ └── world.yml ├── examples │ ├── .gitignore │ ├── gamma_crowd.py │ ├── meskel_square_ego_vehicle.py │ ├── plot_avg_speed.py │ ├── plot_jam_factor.py │ ├── requirements.txt │ ├── spawn_imagery.py │ └── spawn_meshes.py ├── test │ ├── requirements.txt │ ├── smoke │ │ ├── __init__.py │ │ ├── test_blueprint.py │ │ ├── test_client.py │ │ ├── test_map.py │ │ ├── test_props_loading.py │ │ ├── test_snapshot.py │ │ ├── test_sync.py │ │ ├── test_world.py │ │ └── unittest.cfg │ └── unit │ │ ├── __init__.py │ │ ├── test_client.py │ │ ├── test_transform.py │ │ ├── test_vehicle.py │ │ └── unittest.cfg └── util │ ├── config.py │ ├── lane_explorer.py │ ├── performance_benchmark.py │ ├── requirements.txt │ ├── test_connection.py │ └── weather.py ├── README.md ├── Scripts ├── download_imagery.py ├── extract_meshes.py └── osm2sumo.sh ├── Unreal └── CarlaUE4 │ ├── .gitignore │ ├── CarlaUE4.png │ ├── CarlaUE4.uproject │ ├── Config │ ├── DefaultEngine.ini │ ├── DefaultGame.ini │ ├── DefaultGameUserSettings.ini │ └── DefaultInput.ini │ ├── Plugins │ ├── Carla │ │ ├── Carla.uplugin │ │ ├── Content │ │ │ ├── Icons │ │ │ │ └── OpenDriveActorIcon.uasset │ │ │ └── PostProcessingMaterials │ │ │ │ ├── .gitignore │ │ │ │ ├── DepthEffectMaterial.uasset │ │ │ │ ├── DepthEffectMaterial_GLSL.uasset │ │ │ │ ├── GTMaterial.uasset │ │ │ │ ├── LensDistortion.uasset │ │ │ │ └── PhysicLensDistortion.uasset │ │ ├── Resources │ │ │ └── Icon128.png │ │ └── Source │ │ │ └── Carla │ │ │ ├── AI │ │ │ ├── AIControllerFactory.cpp │ │ │ ├── AIControllerFactory.h │ │ │ └── WalkerAIController.h │ │ │ ├── Actor │ │ │ ├── ActorAttribute.h │ │ │ ├── ActorBlueprintFunctionLibrary.cpp │ │ │ ├── ActorBlueprintFunctionLibrary.h │ │ │ ├── ActorDefinition.h │ │ │ ├── ActorDescription.h │ │ │ ├── ActorDispatcher.cpp │ │ │ ├── ActorDispatcher.h │ │ │ ├── ActorInfo.h │ │ │ ├── ActorRegistry.cpp │ │ │ ├── ActorRegistry.h │ │ │ ├── ActorSpawnResult.cpp │ │ │ ├── ActorSpawnResult.h │ │ │ ├── ActorView.h │ │ │ ├── CarlaActorFactory.h │ │ │ ├── CarlaActorFactoryBlueprint.h │ │ │ ├── CarlaBlueprintRegistry.cpp │ │ │ ├── CarlaBlueprintRegistry.h │ │ │ ├── PedestrianParameters.h │ │ │ ├── PropParameters.h │ │ │ └── VehicleParameters.h │ │ │ ├── Carla.Build.cs │ │ │ ├── Carla.cpp │ │ │ ├── Carla.h │ │ │ ├── CityMapGenerator.cpp │ │ │ ├── CityMapGenerator.h │ │ │ ├── Commandlet │ │ │ ├── MoveAssetsCommandlet.cpp │ │ │ ├── MoveAssetsCommandlet.h │ │ │ ├── PrepareAssetsForCookingCommandlet.cpp │ │ │ └── PrepareAssetsForCookingCommandlet.h │ │ │ ├── DynamicMesh │ │ │ ├── DynamicMeshActor.cpp │ │ │ ├── DynamicMeshActor.h │ │ │ ├── DynamicMeshDispatcher.cpp │ │ │ └── DynamicMeshDispatcher.h │ │ │ ├── Game │ │ │ ├── CarlaEngine.cpp │ │ │ ├── CarlaEngine.h │ │ │ ├── CarlaEpisode.cpp │ │ │ ├── CarlaEpisode.h │ │ │ ├── CarlaGameInstance.cpp │ │ │ ├── CarlaGameInstance.h │ │ │ ├── CarlaGameModeBase.cpp │ │ │ ├── CarlaGameModeBase.h │ │ │ ├── CarlaHUD.cpp │ │ │ ├── CarlaHUD.h │ │ │ ├── CarlaStaticDelegates.cpp │ │ │ ├── CarlaStaticDelegates.h │ │ │ ├── CarlaStatics.cpp │ │ │ ├── CarlaStatics.h │ │ │ ├── Tagger.cpp │ │ │ ├── Tagger.h │ │ │ ├── TaggerDelegate.cpp │ │ │ └── TaggerDelegate.h │ │ │ ├── MapGen │ │ │ ├── CityAreaDescription.h │ │ │ ├── CityMapDefinitions.h │ │ │ ├── CityMapMeshHolder.cpp │ │ │ ├── CityMapMeshHolder.h │ │ │ ├── CityMapMeshTag.cpp │ │ │ ├── CityMapMeshTag.h │ │ │ ├── DoublyConnectedEdgeList.cpp │ │ │ ├── DoublyConnectedEdgeList.h │ │ │ ├── GraphGenerator.cpp │ │ │ ├── GraphGenerator.h │ │ │ ├── GraphParser.cpp │ │ │ ├── GraphParser.h │ │ │ ├── GraphTypes.cpp │ │ │ ├── GraphTypes.h │ │ │ ├── Position.h │ │ │ ├── RoadMap.cpp │ │ │ ├── RoadMap.h │ │ │ ├── RoadSegmentDescription.h │ │ │ ├── StaticMeshCollection.cpp │ │ │ └── StaticMeshCollection.h │ │ │ ├── OpenDrive │ │ │ ├── OpenDrive.cpp │ │ │ ├── OpenDrive.h │ │ │ ├── OpenDriveActor.cpp │ │ │ ├── OpenDriveActor.h │ │ │ ├── OpenDriveGenerator.cpp │ │ │ ├── OpenDriveGenerator.h │ │ │ ├── OpenDriveMap.cpp │ │ │ └── OpenDriveMap.h │ │ │ ├── Recorder │ │ │ ├── CarlaRecorder.cpp │ │ │ ├── CarlaRecorder.h │ │ │ ├── CarlaRecorderAnimVehicle.cpp │ │ │ ├── CarlaRecorderAnimVehicle.h │ │ │ ├── CarlaRecorderAnimWalker.cpp │ │ │ ├── CarlaRecorderAnimWalker.h │ │ │ ├── CarlaRecorderCollision.cpp │ │ │ ├── CarlaRecorderCollision.h │ │ │ ├── CarlaRecorderEventAdd.cpp │ │ │ ├── CarlaRecorderEventAdd.h │ │ │ ├── CarlaRecorderEventDel.cpp │ │ │ ├── CarlaRecorderEventDel.h │ │ │ ├── CarlaRecorderEventParent.cpp │ │ │ ├── CarlaRecorderEventParent.h │ │ │ ├── CarlaRecorderFrames.cpp │ │ │ ├── CarlaRecorderFrames.h │ │ │ ├── CarlaRecorderHelpers.cpp │ │ │ ├── CarlaRecorderHelpers.h │ │ │ ├── CarlaRecorderInfo.h │ │ │ ├── CarlaRecorderPosition.cpp │ │ │ ├── CarlaRecorderPosition.h │ │ │ ├── CarlaRecorderQuery.cpp │ │ │ ├── CarlaRecorderQuery.h │ │ │ ├── CarlaRecorderState.cpp │ │ │ ├── CarlaRecorderState.h │ │ │ ├── CarlaReplayer.cpp │ │ │ ├── CarlaReplayer.h │ │ │ ├── CarlaReplayerHelper.cpp │ │ │ └── CarlaReplayerHelper.h │ │ │ ├── Sensor │ │ │ ├── AsyncDataStream.h │ │ │ ├── CollisionSensor.cpp │ │ │ ├── CollisionSensor.h │ │ │ ├── DataStream.h │ │ │ ├── DepthCamera.cpp │ │ │ ├── DepthCamera.h │ │ │ ├── GnssSensor.cpp │ │ │ ├── GnssSensor.h │ │ │ ├── InertialMeasurementUnit.cpp │ │ │ ├── InertialMeasurementUnit.h │ │ │ ├── LaneInvasionSensor.cpp │ │ │ ├── LaneInvasionSensor.h │ │ │ ├── LidarDescription.h │ │ │ ├── ObstacleDetectionSensor.cpp │ │ │ ├── ObstacleDetectionSensor.h │ │ │ ├── PixelReader.cpp │ │ │ ├── PixelReader.h │ │ │ ├── Radar.cpp │ │ │ ├── Radar.h │ │ │ ├── RayCastLidar.cpp │ │ │ ├── RayCastLidar.h │ │ │ ├── RssSensor.cpp │ │ │ ├── RssSensor.h │ │ │ ├── SceneCaptureCamera.cpp │ │ │ ├── SceneCaptureCamera.h │ │ │ ├── SceneCaptureSensor.cpp │ │ │ ├── SceneCaptureSensor.h │ │ │ ├── SemanticSegmentationCamera.cpp │ │ │ ├── SemanticSegmentationCamera.h │ │ │ ├── Sensor.cpp │ │ │ ├── Sensor.h │ │ │ ├── SensorFactory.cpp │ │ │ ├── SensorFactory.h │ │ │ ├── ShaderBasedSensor.cpp │ │ │ ├── ShaderBasedSensor.h │ │ │ ├── WorldObserver.cpp │ │ │ └── WorldObserver.h │ │ │ ├── Server │ │ │ ├── CarlaServer.cpp │ │ │ └── CarlaServer.h │ │ │ ├── Settings │ │ │ ├── CarlaSettings.cpp │ │ │ ├── CarlaSettings.h │ │ │ ├── CarlaSettingsDelegate.cpp │ │ │ ├── CarlaSettingsDelegate.h │ │ │ ├── EpisodeSettings.h │ │ │ └── QualityLevelUE.h │ │ │ ├── Traffic │ │ │ ├── RoutePlanner.cpp │ │ │ ├── RoutePlanner.h │ │ │ ├── TrafficLightBase.cpp │ │ │ ├── TrafficLightBase.h │ │ │ ├── TrafficLightState.h │ │ │ ├── TrafficSignBase.cpp │ │ │ └── TrafficSignBase.h │ │ │ ├── Trigger │ │ │ ├── FrictionTrigger.cpp │ │ │ ├── FrictionTrigger.h │ │ │ ├── TriggerFactory.cpp │ │ │ └── TriggerFactory.h │ │ │ ├── Util │ │ │ ├── ActorAttacher.cpp │ │ │ ├── ActorAttacher.h │ │ │ ├── ActorWithRandomEngine.cpp │ │ │ ├── ActorWithRandomEngine.h │ │ │ ├── BoundingBox.h │ │ │ ├── BoundingBoxCalculator.cpp │ │ │ ├── BoundingBoxCalculator.h │ │ │ ├── DebugShapeDrawer.cpp │ │ │ ├── DebugShapeDrawer.h │ │ │ ├── IniFile.h │ │ │ ├── ListView.h │ │ │ ├── NavigationMesh.cpp │ │ │ ├── NavigationMesh.h │ │ │ ├── NonCopyable.h │ │ │ ├── RandomEngine.cpp │ │ │ ├── RandomEngine.h │ │ │ └── ScopedStack.h │ │ │ ├── Vehicle │ │ │ ├── CarlaWheeledVehicle.cpp │ │ │ ├── CarlaWheeledVehicle.h │ │ │ ├── CarlaWheeledVehicleState.h │ │ │ ├── VehicleControl.h │ │ │ ├── VehicleInputPriority.h │ │ │ ├── VehicleLightState.h │ │ │ ├── VehiclePhysicsControl.h │ │ │ ├── VehicleSpawnPoint.h │ │ │ ├── WheelPhysicsControl.h │ │ │ ├── WheeledVehicleAIController.cpp │ │ │ └── WheeledVehicleAIController.h │ │ │ ├── Walker │ │ │ ├── WalkerBoneControl.h │ │ │ ├── WalkerControl.h │ │ │ ├── WalkerController.cpp │ │ │ ├── WalkerController.h │ │ │ └── WalkerSpawnPoint.h │ │ │ └── Weather │ │ │ ├── Weather.cpp │ │ │ ├── Weather.h │ │ │ └── WeatherParameters.h │ └── CarlaExporter │ │ ├── CarlaExporter.uplugin │ │ └── Source │ │ └── CarlaExporter │ │ ├── CarlaExporter.Build.cs │ │ ├── Private │ │ ├── CarlaExporter.cpp │ │ └── CarlaExporterCommands.cpp │ │ └── Public │ │ ├── CarlaExporter.h │ │ └── CarlaExporterCommands.h │ └── Source │ ├── CarlaUE4.Target.cs │ ├── CarlaUE4 │ ├── CarlaUE4.Build.cs │ ├── CarlaUE4.cpp │ └── CarlaUE4.h │ └── CarlaUE4Editor.Target.cs ├── Update.bat ├── Update.sh ├── Util ├── BoostFiles │ ├── rational.hpp │ └── read.hpp ├── BuildTools │ ├── Ad-rss.sh │ ├── BuildCarlaUE4.bat │ ├── BuildCarlaUE4.sh │ ├── BuildLibCarla.bat │ ├── BuildLibCarla.sh │ ├── BuildPythonAPI.bat │ ├── BuildPythonAPI.sh │ ├── BuildUtilsDocker.sh │ ├── Check.sh │ ├── Deploy.bat │ ├── Deploy.sh │ ├── Environment.sh │ ├── Import.py │ ├── Linux.mk │ ├── Linux.mk.help │ ├── Package.bat │ ├── Package.sh │ ├── Prettify.sh │ ├── Setup.bat │ ├── Setup.sh │ ├── Vars.mk │ ├── Windows.mk │ ├── Windows.mk.help │ ├── uncrustify-ue4.cfg │ └── uncrustify.cfg ├── CARLA.sublime-project ├── ContentVersions.txt ├── CreateDebian.sh ├── Docker │ ├── Carla.Dockerfile │ ├── Prerequisites.Dockerfile │ ├── README.md │ ├── Release.Dockerfile │ ├── docker_tools.py │ ├── docker_utils.py │ └── requirements.txt ├── DockerUtils │ ├── .gitignore │ ├── dist │ │ ├── addOBJ.py │ │ ├── build.bat │ │ ├── build.sh │ │ └── get_xodr_crosswalks.py │ └── fbx │ │ ├── CMakeLists.txt │ │ └── src │ │ └── FBX2OBJ.cpp ├── ImportAssets.sh ├── InstallersWin │ ├── install_boost.bat │ ├── install_gtest.bat │ ├── install_libpng.bat │ ├── install_recast.bat │ ├── install_rpclib.bat │ └── install_zlib.bat └── download_from_gdrive.py ├── docs ├── 404.html ├── css │ ├── theme.css │ └── theme_extra.css ├── fonts │ ├── fontawesome-webfont.eot │ ├── fontawesome-webfont.svg │ ├── fontawesome-webfont.ttf │ └── fontawesome-webfont.woff ├── getting_started │ ├── building │ │ └── index.html │ ├── introduction │ │ └── index.html │ └── setting_up │ │ └── index.html ├── img │ ├── beijing.png │ ├── chandni_chowk.png │ ├── cover.png │ ├── favicon.ico │ ├── highway.png │ ├── magic.png │ ├── meskel_square.png │ ├── shi_men_er_lu.png │ └── shibuya.png ├── index.html ├── js │ ├── jquery-2.1.1.min.js │ ├── modernizr-2.8.3.min.js │ └── theme.js ├── references │ ├── python_api │ │ └── index.html │ └── summit_map_library │ │ └── index.html ├── search.html ├── search │ ├── lunr.js │ ├── main.js │ ├── search_index.json │ └── worker.js ├── sitemap.xml ├── sitemap.xml.gz └── tutorials │ ├── loading_and_spawning_maps │ └── index.html │ ├── preparing_maps │ └── index.html │ ├── simulating_traffic │ └── index.html │ └── using_roads_and_sidewalks │ └── index.html ├── mkdocs.yml ├── setup_unreal.sh └── wheel_config.ini /.gitattributes: -------------------------------------------------------------------------------- 1 | * text=auto 2 | -------------------------------------------------------------------------------- /.github/CODEOWNERS: -------------------------------------------------------------------------------- 1 | * @carla-simulator/codeowners-carla 2 | -------------------------------------------------------------------------------- /.github/config.yml: -------------------------------------------------------------------------------- 1 | # Configuration for update-docs - https://github.com/behaviorbot/update-docs 2 | 3 | # Comment to be posted to on PRs that don't update the changelog 4 | updateDocsComment: > 5 | Thanks for opening this pull request! The maintainers of this repository would appreciate it if you would update our **CHANGELOG.md** based on your changes. 6 | 7 | updateDocsWhiteList: 8 | - documentation 9 | 10 | updateDocsTargetFiles: 11 | - CHANGELOG.md 12 | -------------------------------------------------------------------------------- /.github/issue_template.md: -------------------------------------------------------------------------------- 1 | 20 | -------------------------------------------------------------------------------- /.github/pull_request_template.md: -------------------------------------------------------------------------------- 1 | 15 | 16 | #### Description 17 | 18 | 19 | 20 | Fixes # 21 | 22 | #### Where has this been tested? 23 | 24 | * **Platform(s):** ... 25 | * **Python version(s):** ... 26 | * **Unreal Engine version(s):** ... 27 | 28 | #### Possible Drawbacks 29 | 30 | 31 | -------------------------------------------------------------------------------- /.github/stale.yml: -------------------------------------------------------------------------------- 1 | # Number of days of inactivity before an issue becomes stale 2 | daysUntilStale: 60 3 | # Number of days of inactivity before a stale issue is closed 4 | daysUntilClose: 7 5 | # Issues with these labels will never be considered stale 6 | exemptLabels: 7 | - backlog 8 | # Label to use when marking an issue as stale 9 | staleLabel: stale 10 | # Comment to post when marking an issue as stale. Set to `false` to disable 11 | markComment: > 12 | This issue has been automatically marked as stale because it has not had 13 | recent activity. It will be closed if no further activity occurs. Thank you 14 | for your contributions. 15 | # Comment to post when closing a stale issue. Set to `false` to disable 16 | closeComment: false 17 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | Build 2 | Dist 3 | Doxygen 4 | Deprecated/PythonClient/dist 5 | TrafficManager/build 6 | Util/Build 7 | Install 8 | LinuxNoEditor 9 | 10 | /ExportedMaps 11 | /Import/* 12 | !/Import/README.md 13 | 14 | *.VC.db 15 | *.VC.opendb 16 | *.a 17 | *.egg-info 18 | *.kdev4 19 | *.log 20 | *.o 21 | *.pb.cc 22 | *.pb.h 23 | *.pid 24 | *.pri 25 | *.pro 26 | *.py[cod] 27 | *.sln 28 | *.so 29 | *.stackdump 30 | *.sublime-workspace 31 | *.workspace 32 | *CodeCompletionFolders.txt 33 | *CodeLitePreProcessor.txt 34 | .aria2c.input 35 | .codelite 36 | .gdb_history 37 | .gtest 38 | .idea 39 | .tags* 40 | .vs 41 | .vscode 42 | __pycache__ 43 | _benchmarks_results 44 | _images* 45 | _out* 46 | _site 47 | core 48 | profiler.csv 49 | *.swp 50 | *.swo 51 | -------------------------------------------------------------------------------- /.pep8: -------------------------------------------------------------------------------- 1 | [pep8] 2 | max-line-length = 120 3 | -------------------------------------------------------------------------------- /.readthedocs.yml: -------------------------------------------------------------------------------- 1 | # Read the Docs configuration file 2 | # See https://docs.readthedocs.io/en/stable/config-file/v2.html for details 3 | 4 | version: 2 5 | 6 | mkdocs: 7 | configuration: mkdocs.yml 8 | 9 | formats: all 10 | 11 | python: 12 | version: 3.7 13 | install: 14 | - requirements: Docs/requirements.txt 15 | -------------------------------------------------------------------------------- /CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 3.5.1) 2 | project(CARLA) 3 | 4 | include("Build/CMakeLists.txt.in") 5 | 6 | add_subdirectory("LibCarla/cmake") 7 | -------------------------------------------------------------------------------- /Co-Simulation/Sumo/examples/town01/Town01.sumocfg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /Co-Simulation/Sumo/examples/town01/netconvert_options.sumo: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /Co-Simulation/Sumo/requirements.txt: -------------------------------------------------------------------------------- 1 | lxml==4.6.2 2 | -------------------------------------------------------------------------------- /Co-Simulation/Sumo/sumo_integration/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdaCompNUS/summit/1affe14ef7fab006d78266d63e289940ca9d43ac/Co-Simulation/Sumo/sumo_integration/__init__.py -------------------------------------------------------------------------------- /Co-Simulation/Sumo/sumo_integration/constants.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | 3 | # Copyright (c) 2020 Computer Vision Center (CVC) at the Universitat Autonoma de 4 | # Barcelona (UAB). 5 | # 6 | # This work is licensed under the terms of the MIT license. 7 | # For a copy, see . 8 | 9 | """ This module defines constants used for the sumo-carla co-simulation. """ 10 | 11 | # ================================================================================================== 12 | # -- constants ------------------------------------------------------------------------------------- 13 | # ================================================================================================== 14 | 15 | INVALID_ACTOR_ID = -1 16 | SPAWN_OFFSET_Z = 5.0 # meters 17 | -------------------------------------------------------------------------------- /CustomAssets/EmptyMap.umap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdaCompNUS/summit/1affe14ef7fab006d78266d63e289940ca9d43ac/CustomAssets/EmptyMap.umap -------------------------------------------------------------------------------- /CustomAssets/EmptyMap_BuiltData.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdaCompNUS/summit/1affe14ef7fab006d78266d63e289940ca9d43ac/CustomAssets/EmptyMap_BuiltData.uasset -------------------------------------------------------------------------------- /CustomAssets/M_Tile.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdaCompNUS/summit/1affe14ef7fab006d78266d63e289940ca9d43ac/CustomAssets/M_Tile.uasset -------------------------------------------------------------------------------- /Data/.gitignore: -------------------------------------------------------------------------------- 1 | imagery/ 2 | -------------------------------------------------------------------------------- /Data/beijing.landmarks/000000.landmark.wkt: -------------------------------------------------------------------------------- 1 | ((((2563.000000 269.000000)(2549.000000 258.000000)(2528.000000 258.000000)(2515.500000 248.000000)(2506.000000 239.000000)(2498.000000 221.000000)(2498.000000 209.000000)(2479.500000 199.000000)(2429.500000 199.000000)(2431.000000 245.000000)(2459.000000 245.000000)(2459.000000 250.000000)(2459.000000 264.000000)(2465.500000 278.000000)(2478.000000 292.000000)(2493.000000 301.000000)(2513.500000 301.000000)(2527.500000 298.000000)(2528.000000 327.000000)(2564.500000 325.000000)(2563.000000 269.000000)))) -------------------------------------------------------------------------------- /Data/beijing.landmarks/000001.landmark.wkt: -------------------------------------------------------------------------------- 1 | ((((2292.500000 197.000000)(2144.500000 200.000000)(2147.500000 335.000000)(2295.500000 332.000000)(2292.500000 197.000000)))) -------------------------------------------------------------------------------- /Data/beijing.landmarks/000002.landmark.wkt: -------------------------------------------------------------------------------- 1 | ((((2769.000000 203.000000)(2748.000000 201.000000)(2726.000000 206.000000)(2713.000000 224.000000)(2696.000000 241.000000)(2682.000000 249.000000)(2677.500000 269.000000)(2678.500000 291.000000)(2702.500000 277.000000)(2716.000000 302.000000)(2733.500000 318.000000)(2757.000000 327.000000)(2758.000000 351.000000)(2777.500000 347.000000)(2796.500000 337.000000)(2811.500000 322.000000)(2821.500000 305.000000)(2827.000000 283.000000)(2803.000000 285.000000)(2798.000000 261.000000)(2778.500000 242.000000)(2753.500000 231.000000)(2769.000000 203.000000)))) -------------------------------------------------------------------------------- /Data/beijing.landmarks/000003.landmark.wkt: -------------------------------------------------------------------------------- 1 | ((((1134.500000 299.000000)(1114.500000 290.000000)(1096.000000 286.000000)(1075.000000 282.000000)(1054.000000 280.000000)(1053.500000 272.000000)(979.500000 275.000000)(987.000000 348.000000)(1002.000000 392.000000)(1031.500000 445.000000)(1080.500000 463.000000)(1203.500000 456.000000)(1196.000000 372.000000)(1176.000000 370.000000)(1172.500000 353.000000)(1164.500000 334.000000)(1150.500000 315.000000)(1134.500000 299.000000)))) -------------------------------------------------------------------------------- /Data/beijing.landmarks/000004.landmark.wkt: -------------------------------------------------------------------------------- 1 | ((((1593.000000 196.000000)(1581.500000 196.000000)(1581.500000 199.000000)(1581.500000 203.000000)(1593.000000 203.000000)(1593.000000 196.000000)))) -------------------------------------------------------------------------------- /Data/beijing.landmarks/000005.landmark.wkt: -------------------------------------------------------------------------------- 1 | ((((2827.000000 283.000000)(2826.500000 264.000000)(2819.000000 241.000000)(2807.000000 225.000000)(2789.500000 211.000000)(2769.000000 203.000000)(2753.500000 231.000000)(2778.500000 242.000000)(2798.000000 261.000000)(2803.000000 285.000000)(2827.000000 283.000000)))) -------------------------------------------------------------------------------- /Data/beijing.landmarks/000006.landmark.wkt: -------------------------------------------------------------------------------- 1 | ((((1456.000000 -72.000000)(1446.500000 -84.000000)(1432.000000 -103.000000)(1412.000000 -121.000000)(1390.500000 -138.000000)(1380.000000 -138.000000)(1369.500000 -131.000000)(1361.000000 -110.000000)(1353.500000 -84.000000)(1349.500000 -69.000000)(1347.500000 -44.000000)(1349.500000 -33.000000)(1356.000000 -28.000000)(1366.500000 -25.000000)(1391.500000 -30.000000)(1413.500000 -35.000000)(1432.000000 -43.000000)(1446.000000 -49.000000)(1457.000000 -60.000000)(1456.000000 -72.000000)))) -------------------------------------------------------------------------------- /Data/beijing.landmarks/000007.landmark.wkt: -------------------------------------------------------------------------------- 1 | ((((1705.000000 -31.000000)(1655.000000 -31.000000)(1655.000000 27.000000)(1705.000000 27.000000)(1705.000000 -31.000000)))) -------------------------------------------------------------------------------- /Data/beijing.landmarks/000008.landmark.wkt: -------------------------------------------------------------------------------- 1 | ((((1641.000000 -105.000000)(1582.500000 -105.000000)(1582.000000 -59.000000)(1640.500000 -58.000000)(1641.000000 -105.000000)))) -------------------------------------------------------------------------------- /Data/beijing.landmarks/000009.landmark.wkt: -------------------------------------------------------------------------------- 1 | ((((1910.500000 -97.000000)(1939.000000 -98.000000)(1942.000000 12.000000)(1883.000000 13.000000)(1879.500000 -113.000000)(1857.000000 -112.000000)(1860.500000 20.000000)(1871.500000 20.000000)(1871.500000 29.000000)(1955.000000 27.000000)(1955.000000 16.000000)(1965.000000 15.000000)(1962.000000 -105.000000)(1933.000000 -104.000000)(1932.500000 -120.000000)(1910.000000 -119.000000)(1910.500000 -97.000000)))) -------------------------------------------------------------------------------- /Data/beijing.landmarks/000010.landmark.wkt: -------------------------------------------------------------------------------- 1 | ((((2550.500000 -121.000000)(2450.000000 -112.000000)(2456.000000 -22.000000)(2482.000000 -25.000000)(2551.500000 -94.000000)(2550.500000 -121.000000)))) -------------------------------------------------------------------------------- /Data/beijing.landmarks/000011.landmark.wkt: -------------------------------------------------------------------------------- 1 | ((((2382.000000 -94.000000)(2340.000000 -95.000000)(2338.500000 -24.000000)(2380.500000 -23.000000)(2382.000000 -94.000000)))) -------------------------------------------------------------------------------- /Data/beijing.landmarks/000012.landmark.wkt: -------------------------------------------------------------------------------- 1 | ((((2313.500000 -125.000000)(2244.000000 -123.000000)(2245.000000 -82.000000)(2314.500000 -84.000000)(2313.500000 -125.000000)))) -------------------------------------------------------------------------------- /Data/beijing.landmarks/000013.landmark.wkt: -------------------------------------------------------------------------------- 1 | ((((2300.000000 -53.000000)(2231.000000 -52.000000)(2231.000000 -10.000000)(2300.500000 -10.000000)(2300.000000 -53.000000)))) -------------------------------------------------------------------------------- /Data/beijing.landmarks/000014.landmark.wkt: -------------------------------------------------------------------------------- 1 | ((((3016.500000 -69.000000)(2951.000000 -65.000000)(2953.500000 -19.000000)(3019.000000 -22.000000)(3016.500000 -69.000000)))) -------------------------------------------------------------------------------- /Data/beijing.landmarks/000015.landmark.wkt: -------------------------------------------------------------------------------- 1 | ((((2924.000000 -66.000000)(2828.000000 -61.000000)(2830.000000 -26.000000)(2926.000000 -32.000000)(2924.000000 -66.000000)))) -------------------------------------------------------------------------------- /Data/beijing.landmarks/000016.landmark.wkt: -------------------------------------------------------------------------------- 1 | ((((2819.000000 -149.000000)(2672.000000 -143.000000)(2674.000000 -90.000000)(2714.500000 -92.000000)(2715.000000 -83.000000)(2732.000000 -84.000000)(2743.000000 -76.000000)(2763.500000 -44.000000)(2766.000000 3.000000)(2824.000000 1.000000)(2822.500000 -71.000000)(2819.000000 -149.000000)))) -------------------------------------------------------------------------------- /Data/beijing.landmarks/000017.landmark.wkt: -------------------------------------------------------------------------------- 1 | ((((1855.500000 307.000000)(1856.500000 253.000000)(1817.000000 253.000000)(1806.500000 253.000000)(1791.500000 252.000000)(1791.500000 260.000000)(1786.000000 261.000000)(1786.000000 269.000000)(1780.500000 269.000000)(1782.500000 307.000000)(1855.500000 307.000000)))) -------------------------------------------------------------------------------- /Data/beijing.landmarks/000018.landmark.wkt: -------------------------------------------------------------------------------- 1 | ((((1884.500000 228.000000)(1883.000000 187.000000)(1856.500000 188.000000)(1858.000000 229.000000)(1884.500000 228.000000)))) -------------------------------------------------------------------------------- /Data/beijing.landmarks/000019.landmark.wkt: -------------------------------------------------------------------------------- 1 | ((((1886.000000 266.000000)(1870.000000 266.000000)(1870.500000 302.000000)(1886.500000 302.000000)(1886.000000 266.000000)))) -------------------------------------------------------------------------------- /Data/beijing.landmarks/000020.landmark.wkt: -------------------------------------------------------------------------------- 1 | ((((1196.000000 -126.000000)(1072.000000 -121.000000)(1072.000000 -110.000000)(1062.000000 -109.000000)(1063.500000 -18.000000)(1070.500000 -18.000000)(1072.500000 1.000000)(1120.000000 2.000000)(1132.000000 0.000000)(1142.500000 -11.000000)(1143.000000 -23.000000)(1176.000000 -53.000000)(1188.500000 -53.000000)(1198.000000 -67.000000)(1196.000000 -126.000000)))) -------------------------------------------------------------------------------- /Data/beijing.landmarks/000021.landmark.wkt: -------------------------------------------------------------------------------- 1 | ((((2381.500000 189.000000)(2374.500000 182.000000)(2360.000000 181.000000)(2342.000000 182.000000)(2338.500000 211.000000)(2338.500000 315.000000)(2385.000000 316.000000)(2385.500000 237.000000)(2381.500000 189.000000)))) -------------------------------------------------------------------------------- /Data/beijing.landmarks/000022.landmark.wkt: -------------------------------------------------------------------------------- 1 | ((((1952.000000 339.000000)(1949.000000 276.000000)(1943.500000 269.000000)(1923.500000 270.000000)(1920.500000 278.000000)(1923.500000 340.000000)(1952.000000 339.000000)))) -------------------------------------------------------------------------------- /Data/beijing.landmarks/000023.landmark.wkt: -------------------------------------------------------------------------------- 1 | ((((1786.500000 190.000000)(1764.000000 190.000000)(1764.500000 233.000000)(1793.500000 232.000000)(1793.500000 216.000000)(1783.500000 216.000000)(1783.500000 204.000000)(1786.500000 204.000000)(1786.500000 190.000000)))) -------------------------------------------------------------------------------- /Data/beijing.landmarks/000024.landmark.wkt: -------------------------------------------------------------------------------- 1 | ((((2029.500000 207.000000)(1987.500000 209.000000)(1986.500000 194.000000)(1967.000000 195.000000)(1967.500000 210.000000)(1940.000000 211.000000)(1942.000000 247.000000)(1964.000000 246.000000)(1963.500000 238.000000)(1977.500000 237.000000)(1981.500000 320.000000)(2014.500000 318.000000)(2010.000000 228.000000)(2030.500000 227.000000)(2029.500000 207.000000)))) -------------------------------------------------------------------------------- /Data/beijing.landmarks/000025.landmark.wkt: -------------------------------------------------------------------------------- 1 | ((((1821.000000 190.000000)(1796.000000 190.000000)(1796.500000 232.000000)(1821.500000 232.000000)(1821.500000 230.000000)(1821.000000 190.000000)))) -------------------------------------------------------------------------------- /Data/beijing.landmarks/000026.landmark.wkt: -------------------------------------------------------------------------------- 1 | ((((910.500000 244.000000)(830.000000 249.000000)(831.500000 275.000000)(879.000000 272.000000)(882.500000 328.000000)(915.500000 326.000000)(910.500000 244.000000)))) -------------------------------------------------------------------------------- /Data/beijing.landmarks/000027.landmark.wkt: -------------------------------------------------------------------------------- 1 | ((((2906.500000 226.000000)(2905.500000 205.000000)(2913.500000 192.000000)(2941.000000 190.000000)(2939.000000 163.000000)(2897.000000 167.000000)(2875.500000 192.000000)(2877.500000 228.000000)(2906.500000 226.000000)))) -------------------------------------------------------------------------------- /Data/beijing.landmarks/000028.landmark.wkt: -------------------------------------------------------------------------------- 1 | ((((1431.500000 263.000000)(1420.000000 263.000000)(1420.000000 254.000000)(1372.000000 254.000000)(1372.000000 265.000000)(1361.000000 265.000000)(1361.500000 302.000000)(1375.000000 302.000000)(1375.500000 342.000000)(1364.500000 342.000000)(1364.500000 375.000000)(1373.000000 375.000000)(1373.000000 390.000000)(1361.500000 394.000000)(1362.000000 426.000000)(1433.000000 425.000000)(1431.500000 375.000000)(1425.500000 371.000000)(1432.500000 366.000000)(1431.500000 263.000000)))) -------------------------------------------------------------------------------- /Data/beijing.landmarks/000029.landmark.wkt: -------------------------------------------------------------------------------- 1 | ((((1510.500000 259.000000)(1471.500000 260.000000)(1472.000000 303.000000)(1511.000000 303.000000)(1510.500000 259.000000)))) -------------------------------------------------------------------------------- /Data/beijing.landmarks/000030.landmark.wkt: -------------------------------------------------------------------------------- 1 | ((((1609.000000 255.000000)(1565.500000 256.000000)(1565.500000 300.000000)(1609.500000 300.000000)(1609.000000 255.000000)))) -------------------------------------------------------------------------------- /Data/beijing.landmarks/000031.landmark.wkt: -------------------------------------------------------------------------------- 1 | ((((1042.500000 -108.000000)(965.000000 -103.000000)(967.500000 18.000000)(996.000000 18.000000)(997.500000 -81.000000)(1045.500000 -85.000000)(1042.500000 -108.000000)))) -------------------------------------------------------------------------------- /Data/beijing.landmarks/000032.landmark.wkt: -------------------------------------------------------------------------------- 1 | ((((1791.500000 -127.000000)(1758.500000 -126.000000)(1759.500000 -62.000000)(1792.500000 -62.000000)(1791.500000 -127.000000)))) -------------------------------------------------------------------------------- /Data/beijing.landmarks/000033.landmark.wkt: -------------------------------------------------------------------------------- 1 | ((((2203.000000 -118.000000)(2167.000000 -119.000000)(2144.500000 -90.000000)(2167.500000 -71.000000)(2169.500000 -45.000000)(2156.000000 -34.000000)(2159.000000 1.000000)(2203.500000 -23.000000)(2203.000000 -118.000000)))) -------------------------------------------------------------------------------- /Data/beijing.landmarks/000034.landmark.wkt: -------------------------------------------------------------------------------- 1 | ((((2144.000000 -57.000000)(2140.500000 -77.000000)(2123.500000 -93.000000)(2095.500000 -83.000000)(2090.500000 -68.000000)(2107.000000 -22.000000)(2113.000000 -16.000000)(2144.000000 -57.000000)))) -------------------------------------------------------------------------------- /Data/beijing.landmarks/000035.landmark.wkt: -------------------------------------------------------------------------------- 1 | ((((2057.500000 -98.000000)(2040.000000 -92.000000)(2043.500000 -33.000000)(2057.000000 -19.000000)(2068.500000 -17.000000)(2076.000000 -30.000000)(2064.000000 -52.000000)(2069.500000 -66.000000)(2057.500000 -98.000000)))) -------------------------------------------------------------------------------- /Data/beijing.landmarks/000036.landmark.wkt: -------------------------------------------------------------------------------- 1 | ((((2693.000000 -10.000000)(2674.500000 -28.000000)(2668.000000 -21.000000)(2687.000000 -3.000000)(2690.000000 -6.000000)(2693.000000 -10.000000)))) -------------------------------------------------------------------------------- /Data/beijing.landmarks/000037.landmark.wkt: -------------------------------------------------------------------------------- 1 | ((((1724.000000 230.000000)(1668.500000 232.000000)(1669.500000 284.000000)(1689.500000 281.000000)(1707.500000 273.000000)(1721.000000 251.000000)(1724.000000 230.000000)))) -------------------------------------------------------------------------------- /Data/beijing.landmarks/000038.landmark.wkt: -------------------------------------------------------------------------------- 1 | ((((2098.000000 353.000000)(2095.500000 199.000000)(2041.000000 200.000000)(2041.500000 368.000000)(2098.000000 353.000000)))) -------------------------------------------------------------------------------- /Data/beijing.landmarks/000039.landmark.wkt: -------------------------------------------------------------------------------- 1 | ((((2701.500000 146.000000)(2664.000000 186.000000)(2659.000000 199.000000)(2670.000000 208.000000)(2679.000000 197.000000)(2701.500000 187.000000)(2709.000000 180.000000)(2717.000000 161.000000)(2709.500000 154.000000)(2701.500000 146.000000)))) -------------------------------------------------------------------------------- /Data/beijing.landmarks/000040.landmark.wkt: -------------------------------------------------------------------------------- 1 | ((((2583.000000 200.000000)(2579.500000 190.000000)(2571.000000 178.000000)(2540.000000 150.000000)(2503.000000 150.000000)(2503.500000 159.000000)(2504.000000 180.000000)(2531.500000 200.000000)(2546.000000 196.000000)(2571.500000 214.000000)(2583.000000 200.000000)))) -------------------------------------------------------------------------------- /Data/beijing.landmarks/000041.landmark.wkt: -------------------------------------------------------------------------------- 1 | ((((2577.000000 -24.000000)(2573.000000 -28.000000)(2569.500000 -31.000000)(2551.000000 -12.000000)(2559.000000 -5.000000)(2577.000000 -24.000000)))) -------------------------------------------------------------------------------- /Data/beijing.landmarks/000042.landmark.wkt: -------------------------------------------------------------------------------- 1 | ((((2503.500000 159.000000)(2463.000000 161.000000)(2463.500000 185.000000)(2504.500000 183.000000)(2504.000000 180.000000)(2503.500000 159.000000)))) -------------------------------------------------------------------------------- /Data/beijing.landmarks/000043.landmark.wkt: -------------------------------------------------------------------------------- 1 | ((((2463.000000 161.000000)(2462.500000 153.000000)(2442.000000 154.000000)(2443.000000 186.000000)(2463.500000 185.000000)(2463.000000 161.000000)))) -------------------------------------------------------------------------------- /Data/beijing.sim_bounds: -------------------------------------------------------------------------------- 1 | 800,-20 2 | 3200,250 3 | -------------------------------------------------------------------------------- /Data/chandni_chowk.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdaCompNUS/summit/1affe14ef7fab006d78266d63e289940ca9d43ac/Data/chandni_chowk.jpg -------------------------------------------------------------------------------- /Data/chandni_chowk.landmarks/000000.landmark.wkt: -------------------------------------------------------------------------------- 1 | ((((162.750000 951.000000)(159.500000 1000.000000)(194.750000 1002.000000)(198.000000 953.000000)(162.750000 951.000000)))) -------------------------------------------------------------------------------- /Data/chandni_chowk.landmarks/000001.landmark.wkt: -------------------------------------------------------------------------------- 1 | ((((158.000000 918.000000)(154.250000 928.000000)(163.000000 931.000000)(167.000000 921.000000)(158.000000 918.000000)))) -------------------------------------------------------------------------------- /Data/chandni_chowk.landmarks/000002.landmark.wkt: -------------------------------------------------------------------------------- 1 | ((((188.750000 1051.000000)(177.500000 1050.000000)(176.750000 1057.000000)(188.000000 1058.000000)(188.750000 1051.000000)))) -------------------------------------------------------------------------------- /Data/chandni_chowk.landmarks/000003.landmark.wkt: -------------------------------------------------------------------------------- 1 | ((((242.250000 923.000000)(227.250000 922.000000)(226.500000 930.000000)(241.500000 932.000000)(242.250000 923.000000)))) -------------------------------------------------------------------------------- /Data/chandni_chowk.landmarks/000004.landmark.wkt: -------------------------------------------------------------------------------- 1 | ((((232.750000 1002.000000)(234.500000 978.000000)(201.500000 976.000000)(200.000000 1000.000000)(232.750000 1002.000000)))) -------------------------------------------------------------------------------- /Data/chandni_chowk.landmarks/000005.landmark.wkt: -------------------------------------------------------------------------------- 1 | ((((188.500000 925.000000)(177.500000 921.000000)(174.250000 928.000000)(185.500000 933.000000)(188.500000 925.000000)))) -------------------------------------------------------------------------------- /Data/chandni_chowk.landmarks/000006.landmark.wkt: -------------------------------------------------------------------------------- 1 | ((((166.250000 1030.000000)(165.250000 1043.000000)(175.500000 1044.000000)(176.750000 1031.000000)(166.250000 1030.000000)))) -------------------------------------------------------------------------------- /Data/chandni_chowk.landmarks/000007.landmark.wkt: -------------------------------------------------------------------------------- 1 | ((((217.500000 1009.000000)(215.500000 1036.000000)(226.500000 1037.000000)(228.500000 1009.000000)(217.500000 1009.000000)))) -------------------------------------------------------------------------------- /Data/chandni_chowk.landmarks/000008.landmark.wkt: -------------------------------------------------------------------------------- 1 | ((((229.500000 1103.000000)(229.000000 1118.000000)(237.500000 1118.000000)(238.000000 1104.000000)(229.500000 1103.000000)))) -------------------------------------------------------------------------------- /Data/chandni_chowk.landmarks/000009.landmark.wkt: -------------------------------------------------------------------------------- 1 | ((((249.250000 889.000000)(232.000000 883.000000)(228.000000 894.000000)(245.500000 900.000000)(249.250000 889.000000)))) -------------------------------------------------------------------------------- /Data/chandni_chowk.landmarks/000010.landmark.wkt: -------------------------------------------------------------------------------- 1 | ((((226.500000 959.000000)(200.000000 957.000000)(199.250000 972.000000)(226.000000 973.000000)(226.500000 959.000000)))) -------------------------------------------------------------------------------- /Data/chandni_chowk.landmarks/000011.landmark.wkt: -------------------------------------------------------------------------------- 1 | ((((163.750000 1040.000000)(166.000000 1024.000000)(137.000000 1018.000000)(133.750000 1033.000000)(163.750000 1040.000000)))) -------------------------------------------------------------------------------- /Data/chandni_chowk.landmarks/000012.landmark.wkt: -------------------------------------------------------------------------------- 1 | ((((171.250000 883.000000)(148.750000 881.000000)(148.000000 892.000000)(170.500000 894.000000)(171.250000 883.000000)))) -------------------------------------------------------------------------------- /Data/chandni_chowk.landmarks/000013.landmark.wkt: -------------------------------------------------------------------------------- 1 | ((((349.000000 902.000000)(317.750000 900.000000)(316.250000 920.000000)(347.750000 922.000000)(349.000000 902.000000)))) -------------------------------------------------------------------------------- /Data/chandni_chowk.landmarks/000014.landmark.wkt: -------------------------------------------------------------------------------- 1 | ((((331.000000 852.000000)(312.250000 852.000000)(312.000000 872.000000)(331.000000 872.000000)(331.000000 852.000000)))) -------------------------------------------------------------------------------- /Data/chandni_chowk.landmarks/000015.landmark.wkt: -------------------------------------------------------------------------------- 1 | ((((374.750000 929.000000)(359.750000 929.000000)(359.000000 945.000000)(355.250000 945.000000)(354.750000 956.000000)(363.000000 957.000000)(363.250000 948.000000)(374.000000 949.000000)(374.750000 929.000000)))) -------------------------------------------------------------------------------- /Data/chandni_chowk.landmarks/000016.landmark.wkt: -------------------------------------------------------------------------------- 1 | ((((240.000000 950.000000)(239.750000 935.000000)(203.500000 935.000000)(203.750000 950.000000)(240.000000 950.000000)))) -------------------------------------------------------------------------------- /Data/chandni_chowk.sim_bounds: -------------------------------------------------------------------------------- 1 | 260,830 2 | 500,1150 3 | -------------------------------------------------------------------------------- /Data/highway.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdaCompNUS/summit/1affe14ef7fab006d78266d63e289940ca9d43ac/Data/highway.png -------------------------------------------------------------------------------- /Data/highway.sim_bounds: -------------------------------------------------------------------------------- 1 | 0,300 2 | 200,500 3 | -------------------------------------------------------------------------------- /Data/magic.landmarks/000000.landmark.wkt: -------------------------------------------------------------------------------- 1 | ((((98.500000 132.609375)(89.000000 134.375000)(92.000000 150.359375)(78.000000 152.921875)(79.500000 160.796875)(42.500000 167.578125)(49.500000 205.734375)(85.500000 199.093750)(86.500000 204.000000)(98.000000 201.890625)(98.500000 203.609375)(107.000000 202.000000)(97.500000 149.312500)(101.500000 148.578125)(98.500000 132.609375)))) -------------------------------------------------------------------------------- /Data/magic.landmarks/000001.landmark.wkt: -------------------------------------------------------------------------------- 1 | ((((90.500000 272.500000)(88.500000 259.968750)(69.000000 263.500000)(71.000000 276.015625)(90.500000 272.500000)))) -------------------------------------------------------------------------------- /Data/magic.landmarks/000002.landmark.wkt: -------------------------------------------------------------------------------- 1 | ((((111.000000 255.859375)(101.500000 257.640625)(103.000000 265.125000)(98.000000 266.062500)(100.000000 275.375000)(114.000000 272.656250)(111.000000 255.859375)))) -------------------------------------------------------------------------------- /Data/magic.landmarks/000003.landmark.wkt: -------------------------------------------------------------------------------- 1 | ((((109.500000 299.062500)(107.500000 313.796875)(119.000000 315.343750)(119.500000 313.718750)(128.500000 314.921875)(129.500000 306.187500)(120.500000 304.984375)(121.000000 300.609375)(109.500000 299.062500)))) -------------------------------------------------------------------------------- /Data/magic.landmarks/000004.landmark.wkt: -------------------------------------------------------------------------------- 1 | ((((70.500000 317.046875)(60.000000 317.796875)(58.000000 317.984375)(58.000000 322.984375)(33.000000 324.812500)(36.000000 368.281250)(64.000000 366.250000)(62.000000 339.656250)(68.500000 339.203125)(68.000000 335.968750)(72.000000 335.687500)(70.500000 317.046875)))) -------------------------------------------------------------------------------- /Data/magic.landmarks/000005.landmark.wkt: -------------------------------------------------------------------------------- 1 | ((((264.000000 81.062500)(269.500000 92.687500)(274.000000 90.562500)(279.500000 102.281250)(288.500000 98.250000)(283.000000 86.703125)(286.000000 85.484375)(292.000000 99.640625)(305.000000 93.984375)(298.000000 79.203125)(302.000000 77.546875)(307.500000 89.734375)(316.500000 85.656250)(311.000000 73.500000)(317.000000 70.718750)(320.000000 77.703125)(330.500000 73.046875)(327.000000 66.125000)(331.000000 64.375000)(334.500000 71.500000)(344.500000 66.921875)(341.500000 60.515625)(343.500000 59.562500)(347.000000 67.218750)(360.500000 61.234375)(357.000000 53.843750)(358.500000 53.046875)(362.000000 60.156250)(373.500000 54.921875)(370.500000 47.765625)(372.500000 46.718750)(379.000000 60.328125)(392.500000 54.140625)(386.000000 40.046875)(389.500000 38.468750)(395.000000 50.921875)(404.000000 46.890625)(398.500000 34.265625)(402.000000 32.593750)(397.000000 21.218750)(264.000000 81.062500)))) -------------------------------------------------------------------------------- /Data/magic.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdaCompNUS/summit/1affe14ef7fab006d78266d63e289940ca9d43ac/Data/magic.png -------------------------------------------------------------------------------- /Data/magic.sim_bounds: -------------------------------------------------------------------------------- 1 | 80,120 2 | 280,320 3 | -------------------------------------------------------------------------------- /Data/meskel_square.landmarks/000000.landmark.wkt: -------------------------------------------------------------------------------- 1 | ((((525.125000 320.500000)(511.062500 318.000000)(509.750000 325.500000)(496.250000 322.500000)(493.937500 337.500000)(507.500000 338.000000)(506.812500 342.500000)(521.250000 344.500000)(525.125000 320.500000)))) -------------------------------------------------------------------------------- /Data/meskel_square.landmarks/000001.landmark.wkt: -------------------------------------------------------------------------------- 1 | ((((525.187500 217.500000)(510.687500 215.500000)(503.937500 262.000000)(518.437500 264.000000)(525.187500 217.500000)))) -------------------------------------------------------------------------------- /Data/meskel_square.landmarks/000002.landmark.wkt: -------------------------------------------------------------------------------- 1 | ((((246.125000 615.000000)(235.125000 625.500000)(223.937500 635.500000)(224.375000 636.000000)(233.875000 647.000000)(256.812500 627.500000)(246.125000 615.000000)))) -------------------------------------------------------------------------------- /Data/meskel_square.landmarks/000003.landmark.wkt: -------------------------------------------------------------------------------- 1 | ((((253.937500 517.000000)(238.187500 530.500000)(252.000000 546.500000)(267.750000 533.000000)(253.937500 517.000000)))) -------------------------------------------------------------------------------- /Data/meskel_square.landmarks/000004.landmark.wkt: -------------------------------------------------------------------------------- 1 | ((((279.125000 475.000000)(262.375000 490.500000)(260.437500 489.000000)(246.875000 502.000000)(251.187500 506.500000)(249.687500 509.000000)(253.937500 513.500000)(282.937500 486.500000)(279.062500 482.500000)(282.687500 479.000000)(279.125000 475.000000)))) -------------------------------------------------------------------------------- /Data/meskel_square.landmarks/000005.landmark.wkt: -------------------------------------------------------------------------------- 1 | ((((786.250000 106.000000)(766.062500 104.500000)(762.187500 168.500000)(782.375000 169.500000)(786.250000 106.000000)))) -------------------------------------------------------------------------------- /Data/meskel_square.landmarks/000006.landmark.wkt: -------------------------------------------------------------------------------- 1 | ((((592.937500 481.500000)(577.750000 481.500000)(577.687500 495.000000)(574.750000 494.500000)(574.687500 504.500000)(578.187500 504.500000)(578.125000 509.000000)(592.500000 509.500000)(592.562500 504.500000)(596.687500 504.500000)(596.750000 494.500000)(592.875000 494.500000)(592.937500 481.500000)))) -------------------------------------------------------------------------------- /Data/meskel_square.landmarks/000007.landmark.wkt: -------------------------------------------------------------------------------- 1 | ((((545.375000 77.500000)(533.187500 76.500000)(528.625000 112.000000)(540.375000 113.500000)(545.375000 77.500000)))) -------------------------------------------------------------------------------- /Data/meskel_square.landmarks/000008.landmark.wkt: -------------------------------------------------------------------------------- 1 | ((((610.500000 352.500000)(594.062500 350.000000)(591.562500 367.500000)(608.000000 370.000000)(610.500000 352.500000)))) -------------------------------------------------------------------------------- /Data/meskel_square.landmarks/000009.landmark.wkt: -------------------------------------------------------------------------------- 1 | ((((182.477600 620.356506)(188.967010 614.338257)(206.812500 597.000000)(212.062500 592.000000)(200.875000 579.000000)(170.812500 609.000000)(182.477600 620.356506)))) -------------------------------------------------------------------------------- /Data/meskel_square.landmarks/000010.landmark.wkt: -------------------------------------------------------------------------------- 1 | ((((683.125000 364.000000)(665.437500 362.500000)(661.687500 398.000000)(679.437500 400.000000)(683.125000 364.000000)))) -------------------------------------------------------------------------------- /Data/meskel_square.landmarks/000011.landmark.wkt: -------------------------------------------------------------------------------- 1 | ((((412.201111 648.040100)(412.999481 639.155762)(412.999664 639.153625)(412.201111 648.040100)))(((413.700500 611.761902)(394.187500 608.500000)(391.875000 646.500000)(376.250000 641.500000)(366.562500 653.000000)(371.625000 676.500000)(386.125000 689.500000)(390.687500 689.000000)(397.562500 689.000000)(403.125000 687.500000)(407.931732 678.793457)(412.072357 632.713623)(413.700500 611.761902)))) -------------------------------------------------------------------------------- /Data/meskel_square.landmarks/000012.landmark.wkt: -------------------------------------------------------------------------------- 1 | ((((120.875000 323.000000)(149.187500 331.500000)(164.937500 279.500000)(136.750000 272.500000)(120.875000 323.000000)))) -------------------------------------------------------------------------------- /Data/meskel_square.landmarks/000013.landmark.wkt: -------------------------------------------------------------------------------- 1 | ((((133.875000 217.500000)(115.687500 211.500000)(104.500000 251.500000)(122.187500 256.500000)(133.875000 217.500000)))) -------------------------------------------------------------------------------- /Data/meskel_square.landmarks/000014.landmark.wkt: -------------------------------------------------------------------------------- 1 | ((((326.375000 136.000000)(288.187500 135.000000)(287.750000 147.500000)(326.000000 148.500000)(326.375000 136.000000)))) -------------------------------------------------------------------------------- /Data/meskel_square.landmarks/000015.landmark.wkt: -------------------------------------------------------------------------------- 1 | ((((272.000000 44.000000)(275.187500 44.500000)(267.750000 137.000000)(279.187500 138.000000)(286.625000 45.500000)(336.812500 49.500000)(337.875000 37.000000)(273.062500 31.500000)(272.000000 44.000000)))) -------------------------------------------------------------------------------- /Data/meskel_square.landmarks/000016.landmark.wkt: -------------------------------------------------------------------------------- 1 | ((((754.562500 198.000000)(744.187500 193.000000)(739.375000 203.500000)(749.750000 208.500000)(754.562500 198.000000)))) -------------------------------------------------------------------------------- /Data/meskel_square.landmarks/000017.landmark.wkt: -------------------------------------------------------------------------------- 1 | ((((740.562500 225.000000)(731.375000 238.500000)(741.000000 245.000000)(750.187500 231.500000)(740.562500 225.000000)))) -------------------------------------------------------------------------------- /Data/meskel_square.landmarks/000018.landmark.wkt: -------------------------------------------------------------------------------- 1 | ((((771.812500 207.500000)(763.375000 203.500000)(758.500000 213.500000)(766.937500 217.500000)(771.812500 207.500000)))) -------------------------------------------------------------------------------- /Data/meskel_square.landmarks/000019.landmark.wkt: -------------------------------------------------------------------------------- 1 | ((((181.062500 507.000000)(172.312500 517.500000)(194.312500 536.000000)(203.562500 526.500000)(181.062500 507.000000)))) -------------------------------------------------------------------------------- /Data/meskel_square.landmarks/000020.landmark.wkt: -------------------------------------------------------------------------------- 1 | ((((122.875000 637.500000)(115.125000 644.500000)(106.500000 637.500000)(95.875000 647.000000)(109.625000 664.000000)(113.250000 661.500000)(118.250000 657.500000)(123.000000 653.000000)(129.375000 646.500000)(122.875000 637.500000)))) -------------------------------------------------------------------------------- /Data/meskel_square.landmarks/000021.landmark.wkt: -------------------------------------------------------------------------------- 1 | ((((534.122375 378.529083)(536.764587 378.902863)(536.764587 378.902771)(534.122375 378.529083)))(((536.987122 377.419220)(538.625000 366.500000)(545.312500 367.500000)(551.500000 327.000000)(543.250000 326.000000)(541.500000 337.000000)(534.750000 336.000000)(532.812500 349.000000)(530.312500 365.000000)(529.062500 373.500000)(528.592957 376.231750)(536.987122 377.419220)))) -------------------------------------------------------------------------------- /Data/meskel_square.landmarks/000022.landmark.wkt: -------------------------------------------------------------------------------- 1 | ((((530.312500 365.000000)(520.437500 364.000000)(520.687500 359.000000)(519.437500 355.500000)(516.687500 352.500000)(513.125000 350.000000)(507.687500 349.500000)(503.437500 351.500000)(500.937500 353.500000)(499.625000 356.500000)(499.500000 361.000000)(500.875000 365.000000)(504.187500 369.500000)(511.062500 371.500000)(516.562500 372.000000)(522.500000 373.000000)(529.062500 373.500000)(530.312500 365.000000)))) -------------------------------------------------------------------------------- /Data/meskel_square.landmarks/000023.landmark.wkt: -------------------------------------------------------------------------------- 1 | ((((502.937500 278.000000)(498.687500 305.000000)(509.937500 307.000000)(514.125000 280.000000)(502.937500 278.000000)))) -------------------------------------------------------------------------------- /Data/meskel_square.landmarks/000024.landmark.wkt: -------------------------------------------------------------------------------- 1 | ((((392.812500 408.000000)(383.875000 402.500000)(366.687500 416.500000)(362.312500 414.000000)(348.500000 424.000000)(342.000000 435.500000)(333.000000 442.500000)(345.125000 456.000000)(357.312500 435.000000)(362.250000 438.000000)(367.750000 429.000000)(371.000000 430.500000)(375.562500 421.500000)(379.125000 424.000000)(384.312500 415.000000)(387.375000 417.000000)(392.812500 408.000000)))) -------------------------------------------------------------------------------- /Data/meskel_square.landmarks/000025.landmark.wkt: -------------------------------------------------------------------------------- 1 | ((((527.562500 562.000000)(493.875000 528.500000)(488.687500 533.500000)(491.187500 536.000000)(489.250000 538.000000)(518.187500 566.500000)(519.687500 565.000000)(522.062500 567.500000)(527.562500 562.000000)))) -------------------------------------------------------------------------------- /Data/meskel_square.landmarks/000026.landmark.wkt: -------------------------------------------------------------------------------- 1 | ((((546.000000 220.000000)(537.750000 220.500000)(537.937500 249.500000)(546.250000 249.500000)(546.000000 220.000000)))) -------------------------------------------------------------------------------- /Data/meskel_square.landmarks/000027.landmark.wkt: -------------------------------------------------------------------------------- 1 | ((((243.625000 217.500000)(210.062500 228.500000)(218.187500 249.500000)(234.500000 279.500000)(255.750000 269.500000)(240.500000 239.000000)(250.437500 235.000000)(246.625000 225.000000)(243.625000 217.500000)))) -------------------------------------------------------------------------------- /Data/meskel_square.landmarks/000028.landmark.wkt: -------------------------------------------------------------------------------- 1 | ((((801.125000 669.500000)(781.500000 638.500000)(751.375000 657.500000)(771.000000 688.500000)(801.125000 669.500000)))) -------------------------------------------------------------------------------- /Data/meskel_square.landmarks/000029.landmark.wkt: -------------------------------------------------------------------------------- 1 | ((((788.625000 213.500000)(777.125000 207.500000)(772.062500 218.000000)(783.562500 223.500000)(788.625000 213.500000)))) -------------------------------------------------------------------------------- /Data/meskel_square.landmarks/000030.landmark.wkt: -------------------------------------------------------------------------------- 1 | ((((377.477539 487.609314)(365.947449 498.167572)(306.062500 555.000000)(336.500000 581.000000)(365.750000 600.000000)(402.500000 606.500000)(412.312500 602.500000)(422.187500 490.000000)(421.875000 469.500000)(415.000000 461.500000)(404.000000 465.000000)(377.477539 487.609314)))) -------------------------------------------------------------------------------- /Data/meskel_square.landmarks/000031.landmark.wkt: -------------------------------------------------------------------------------- 1 | ((((345.562500 739.500000)(344.187500 717.000000)(295.312500 720.000000)(296.687500 742.500000)(345.562500 739.500000)))) -------------------------------------------------------------------------------- /Data/meskel_square.landmarks/000032.landmark.wkt: -------------------------------------------------------------------------------- 1 | ((((180.625000 683.500000)(196.562500 700.500000)(210.125000 688.000000)(194.250000 670.500000)(180.625000 683.500000)))) -------------------------------------------------------------------------------- /Data/meskel_square.landmarks/000033.landmark.wkt: -------------------------------------------------------------------------------- 1 | ((((159.937500 703.000000)(189.500000 734.000000)(209.312500 715.500000)(179.750000 684.000000)(159.937500 703.000000)))) -------------------------------------------------------------------------------- /Data/meskel_square.landmarks/000034.landmark.wkt: -------------------------------------------------------------------------------- 1 | ((((349.500000 745.500000)(342.562500 746.000000)(343.875000 767.000000)(351.062500 766.500000)(353.187500 794.500000)(375.375000 793.000000)(374.062500 769.500000)(375.437500 765.000000)(376.125000 760.000000)(376.375000 756.500000)(376.125000 752.500000)(375.687500 748.500000)(374.625000 744.500000)(373.187500 740.500000)(371.375000 737.000000)(369.437500 713.000000)(347.250000 714.500000)(349.500000 745.500000)))) -------------------------------------------------------------------------------- /Data/meskel_square.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdaCompNUS/summit/1affe14ef7fab006d78266d63e289940ca9d43ac/Data/meskel_square.png -------------------------------------------------------------------------------- /Data/meskel_square.sim_bounds: -------------------------------------------------------------------------------- 1 | 350,300 2 | 550,500 3 | -------------------------------------------------------------------------------- /Data/shi_men_er_lu.landmarks/000001.landmark.wkt: -------------------------------------------------------------------------------- 1 | ((((728.000000 1675.000000)(717.500000 1679.000000)(718.750000 1695.000000)(728.250000 1710.000000)(726.250000 1725.000000)(731.750000 1742.000000)(745.000000 1739.000000)(740.750000 1723.000000)(749.750000 1721.000000)(748.250000 1713.000000)(740.000000 1714.000000)(733.000000 1692.000000)(741.250000 1689.000000)(739.500000 1682.000000)(731.750000 1684.000000)(728.000000 1675.000000)))) -------------------------------------------------------------------------------- /Data/shi_men_er_lu.landmarks/000002.landmark.wkt: -------------------------------------------------------------------------------- 1 | ((((802.500000 1748.000000)(789.250000 1745.000000)(784.750000 1762.000000)(788.250000 1780.000000)(784.000000 1800.000000)(790.000000 1817.000000)(806.500000 1810.000000)(801.250000 1798.000000)(810.250000 1794.000000)(807.750000 1787.000000)(800.000000 1788.000000)(796.000000 1778.000000)(800.000000 1765.000000)(806.000000 1767.000000)(806.750000 1759.000000)(800.750000 1758.000000)(802.500000 1748.000000)))) -------------------------------------------------------------------------------- /Data/shi_men_er_lu.landmarks/000003.landmark.wkt: -------------------------------------------------------------------------------- 1 | ((((801.500000 1839.000000)(801.500000 1864.000000)(793.750000 1885.000000)(775.000000 1912.000000)(787.000000 1923.000000)(803.000000 1906.000000)(808.000000 1881.000000)(821.000000 1857.000000)(816.250000 1841.000000)(801.500000 1839.000000)))) -------------------------------------------------------------------------------- /Data/shi_men_er_lu.landmarks/000004.landmark.wkt: -------------------------------------------------------------------------------- 1 | ((((952.250000 1979.000000)(938.000000 1984.000000)(941.000000 1990.000000)(926.250000 1996.000000)(931.250000 2011.000000)(940.000000 2007.000000)(945.750000 2005.000000)(947.500000 2009.000000)(962.250000 2003.000000)(952.250000 1979.000000)))) -------------------------------------------------------------------------------- /Data/shi_men_er_lu.landmarks/000005.landmark.wkt: -------------------------------------------------------------------------------- 1 | ((((1009.250000 1984.000000)(995.000000 1989.000000)(997.750000 1996.000000)(983.000000 2001.000000)(988.250000 2016.000000)(1002.500000 2011.000000)(1004.500000 2015.000000)(1019.250000 2009.000000)(1009.250000 1984.000000)))) -------------------------------------------------------------------------------- /Data/shi_men_er_lu.landmarks/000006.landmark.wkt: -------------------------------------------------------------------------------- 1 | ((((1069.500000 1989.000000)(1054.250000 1989.000000)(1054.750000 1996.000000)(1039.000000 1996.000000)(1038.750000 2012.000000)(1054.000000 2011.000000)(1054.500000 2016.000000)(1070.500000 2015.000000)(1069.500000 1989.000000)))) -------------------------------------------------------------------------------- /Data/shi_men_er_lu.landmarks/000007.landmark.wkt: -------------------------------------------------------------------------------- 1 | ((((1109.000000 1964.000000)(1094.250000 1961.000000)(1093.250000 1968.000000)(1078.000000 1965.000000)(1074.750000 1981.000000)(1089.750000 1983.000000)(1089.500000 1987.000000)(1105.250000 1990.000000)(1109.000000 1964.000000)))) -------------------------------------------------------------------------------- /Data/shi_men_er_lu.landmarks/000008.landmark.wkt: -------------------------------------------------------------------------------- 1 | ((((962.250000 2003.000000)(947.500000 2009.000000)(945.750000 2005.000000)(940.000000 2007.000000)(950.750000 2035.000000)(971.750000 2027.000000)(962.250000 2003.000000)))) -------------------------------------------------------------------------------- /Data/shi_men_er_lu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdaCompNUS/summit/1affe14ef7fab006d78266d63e289940ca9d43ac/Data/shi_men_er_lu.png -------------------------------------------------------------------------------- /Data/shi_men_er_lu.sim_bounds: -------------------------------------------------------------------------------- 1 | 850,1700 2 | 1150,2000 3 | -------------------------------------------------------------------------------- /Data/shibuya.landmarks/000000.landmark.wkt: -------------------------------------------------------------------------------- 1 | ((((264.500000 67.000000)(233.000000 53.000000)(223.500000 75.000000)(216.500000 73.000000)(214.500000 81.000000)(209.500000 80.000000)(196.000000 125.000000)(247.500000 137.000000)(255.000000 133.000000)(259.000000 105.000000)(260.500000 95.000000)(264.500000 67.000000)))) -------------------------------------------------------------------------------- /Data/shibuya.landmarks/000001.landmark.wkt: -------------------------------------------------------------------------------- 1 | ((((124.000000 39.000000)(101.000000 35.000000)(90.500000 35.000000)(64.500000 53.000000)(67.000000 65.000000)(68.500000 65.000000)(108.500000 73.000000)(111.500000 70.000000)(123.500000 60.000000)(124.000000 39.000000)))) -------------------------------------------------------------------------------- /Data/shibuya.landmarks/000002.landmark.wkt: -------------------------------------------------------------------------------- 1 | ((((223.000000 162.000000)(160.000000 149.000000)(148.500000 158.000000)(147.500000 179.000000)(169.000000 179.000000)(212.500000 182.000000)(214.500000 170.000000)(221.000000 171.000000)(223.000000 162.000000)))) -------------------------------------------------------------------------------- /Data/shibuya.landmarks/000003.landmark.wkt: -------------------------------------------------------------------------------- 1 | ((((203.500000 40.000000)(161.000000 35.000000)(164.500000 70.000000)(171.500000 78.000000)(204.500000 45.000000)(205.000000 42.000000)(203.500000 40.000000)))) -------------------------------------------------------------------------------- /Data/shibuya.landmarks/000004.landmark.wkt: -------------------------------------------------------------------------------- 1 | ((((205.000000 87.000000)(188.500000 80.000000)(172.500000 97.000000)(171.500000 104.000000)(172.500000 112.000000)(174.000000 119.000000)(194.500000 124.000000)(205.000000 87.000000)))) -------------------------------------------------------------------------------- /Data/shibuya.landmarks/000005.landmark.wkt: -------------------------------------------------------------------------------- 1 | ((((231.000000 49.000000)(224.000000 46.000000)(220.500000 47.000000)(199.500000 67.000000)(216.000000 74.000000)(218.000000 68.000000)(224.000000 71.000000)(232.000000 54.000000)(229.500000 52.000000)(231.000000 49.000000)))) -------------------------------------------------------------------------------- /Data/shibuya.landmarks/000006.landmark.wkt: -------------------------------------------------------------------------------- 1 | ((((139.606979 163.276749)(139.242188 167.651398)(138.908463 174.000000)(141.500000 174.000000)(142.500000 164.000000)(139.606979 163.276749)))) -------------------------------------------------------------------------------- /Data/shibuya.landmarks/000007.landmark.wkt: -------------------------------------------------------------------------------- 1 | ((((153.000000 147.000000)(150.000000 145.000000)(143.000000 151.000000)(145.500000 154.000000)(153.000000 147.000000)))) -------------------------------------------------------------------------------- /Data/shibuya.landmarks/000008.landmark.wkt: -------------------------------------------------------------------------------- 1 | ((((83.500000 151.000000)(69.500000 153.000000)(72.500000 169.000000)(86.500000 167.000000)(83.500000 151.000000)))) -------------------------------------------------------------------------------- /Data/shibuya.landmarks/000009.landmark.wkt: -------------------------------------------------------------------------------- 1 | ((((66.500000 121.000000)(63.500000 121.000000)(65.500000 132.000000)(68.500000 132.000000)(66.500000 121.000000)))) -------------------------------------------------------------------------------- /Data/shibuya.landmarks/000010.landmark.wkt: -------------------------------------------------------------------------------- 1 | ((((114.500000 76.000000)(103.500000 76.000000)(103.000000 80.000000)(114.500000 81.000000)(114.500000 76.000000)))) -------------------------------------------------------------------------------- /Data/shibuya.landmarks/000011.landmark.wkt: -------------------------------------------------------------------------------- 1 | ((((155.000000 78.000000)(156.000000 88.000000)(159.500000 87.000000)(158.500000 78.000000)(157.000000 78.000000)(155.000000 78.000000)))) -------------------------------------------------------------------------------- /Data/shibuya.landmarks/000012.landmark.wkt: -------------------------------------------------------------------------------- 1 | ((((159.000000 109.000000)(160.500000 119.000000)(164.500000 118.000000)(163.000000 108.000000)(159.000000 109.000000)))) -------------------------------------------------------------------------------- /Data/shibuya.landmarks/000013.landmark.wkt: -------------------------------------------------------------------------------- 1 | ((((88.500000 74.000000)(79.000000 72.000000)(78.000000 76.000000)(87.500000 78.000000)(88.500000 74.000000)))) -------------------------------------------------------------------------------- /Data/shibuya.landmarks/000015.landmark.wkt: -------------------------------------------------------------------------------- 1 | ((((56.000000 183.000000)(57.500000 190.000000)(72.000000 189.000000)(87.500000 188.000000)(114.000000 187.000000)(112.500000 175.000000)(97.000000 177.000000)(56.000000 183.000000)))) -------------------------------------------------------------------------------- /Data/shibuya.landmarks/000016.landmark.wkt: -------------------------------------------------------------------------------- 1 | ((((131.500000 50.000000)(129.000000 50.000000)(128.500000 63.000000)(131.500000 63.000000)(131.500000 50.000000)))) -------------------------------------------------------------------------------- /Data/shibuya.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdaCompNUS/summit/1affe14ef7fab006d78266d63e289940ca9d43ac/Data/shibuya.png -------------------------------------------------------------------------------- /Data/shibuya.sim_bounds: -------------------------------------------------------------------------------- 1 | 20,10 2 | 240,300 3 | -------------------------------------------------------------------------------- /Docs/img/btn/chat.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdaCompNUS/summit/1affe14ef7fab006d78266d63e289940ca9d43ac/Docs/img/btn/chat.png -------------------------------------------------------------------------------- /Docs/img/btn/dev.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdaCompNUS/summit/1affe14ef7fab006d78266d63e289940ca9d43ac/Docs/img/btn/dev.png -------------------------------------------------------------------------------- /Docs/img/btn/docs.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdaCompNUS/summit/1affe14ef7fab006d78266d63e289940ca9d43ac/Docs/img/btn/docs.png -------------------------------------------------------------------------------- /Docs/img/btn/download.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdaCompNUS/summit/1affe14ef7fab006d78266d63e289940ca9d43ac/Docs/img/btn/download.png -------------------------------------------------------------------------------- /Docs/img/btn/forum.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdaCompNUS/summit/1affe14ef7fab006d78266d63e289940ca9d43ac/Docs/img/btn/forum.png -------------------------------------------------------------------------------- /Docs/img/btn/web.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdaCompNUS/summit/1affe14ef7fab006d78266d63e289940ca9d43ac/Docs/img/btn/web.png -------------------------------------------------------------------------------- /Docs/img/sensor_radar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdaCompNUS/summit/1affe14ef7fab006d78266d63e289940ca9d43ac/Docs/img/sensor_radar.png -------------------------------------------------------------------------------- /Docs/img/traffic_manager_diagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdaCompNUS/summit/1affe14ef7fab006d78266d63e289940ca9d43ac/Docs/img/traffic_manager_diagram.png -------------------------------------------------------------------------------- /Examples/CppClient/.gitignore: -------------------------------------------------------------------------------- 1 | /ToolChain.cmake 2 | /bin 3 | /build 4 | /libcarla-install 5 | _* 6 | -------------------------------------------------------------------------------- /Import/README.md: -------------------------------------------------------------------------------- 1 | CARLA Simulator 2 | =============== 3 | 4 | Please, place all the packages containing props and maps tom import in this folder. For more information, see topic [Creating standalone asset packages for distribution](https://carla.readthedocs.io/en/latest/asset_packages_for_dist/) 5 | -------------------------------------------------------------------------------- /LibCarla/source/carla/.gitignore: -------------------------------------------------------------------------------- 1 | Version.h 2 | -------------------------------------------------------------------------------- /LibCarla/source/carla/Buffer.cpp: -------------------------------------------------------------------------------- 1 | #include "carla/Buffer.h" 2 | 3 | #include "carla/BufferPool.h" 4 | 5 | namespace carla { 6 | 7 | void Buffer::ReuseThisBuffer() { 8 | auto pool = _parent_pool.lock(); 9 | if (pool != nullptr) { 10 | pool->Push(std::move(*this)); 11 | } 12 | } 13 | 14 | } // namespace carla 15 | -------------------------------------------------------------------------------- /LibCarla/source/carla/Platform.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma 2 | // de Barcelona (UAB). 3 | // 4 | // This work is licensed under the terms of the MIT license. 5 | // For a copy, see . 6 | 7 | #pragma once 8 | 9 | #if defined(_MSC_VER) 10 | # define LIBCARLA_FORCEINLINE __forceinline 11 | # define LIBCARLA_NOINLINE __declspec(noinline) 12 | #elif defined(__clang__) || defined(__GNUC__) 13 | # if defined(NDEBUG) 14 | # define LIBCARLA_FORCEINLINE inline __attribute__((always_inline)) 15 | # else 16 | # define LIBCARLA_FORCEINLINE inline 17 | # endif // NDEBUG 18 | # define LIBCARLA_NOINLINE __attribute__((noinline)) 19 | #else 20 | # warning Compiler not supported. 21 | # define LIBCARLA_NOINLINE 22 | #endif 23 | -------------------------------------------------------------------------------- /LibCarla/source/carla/Sockets.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2020 Computer Vision Center (CVC) at the Universitat Autonoma 2 | // de Barcelona (UAB). 3 | // 4 | // This work is licensed under the terms of the MIT license. 5 | // For a copy, see . 6 | 7 | #pragma once 8 | 9 | #if _WIN32 10 | #include ///< socket 11 | #include 12 | #else 13 | #include ///< socket 14 | #include ///< sockaddr_in 15 | #include ///< getsockname 16 | #include ///< close 17 | #endif 18 | -------------------------------------------------------------------------------- /LibCarla/source/carla/StringUtil.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma 2 | // de Barcelona (UAB). 3 | // 4 | // This work is licensed under the terms of the MIT license. 5 | // For a copy, see . 6 | 7 | #include "carla/StringUtil.h" 8 | 9 | #ifdef _WIN32 10 | # include 11 | #else 12 | # include 13 | #endif // _WIN32 14 | 15 | namespace carla { 16 | 17 | bool StringUtil::Match(const char *str, const char *test) { 18 | #ifdef _WIN32 19 | return PathMatchSpecA(str, test); 20 | #else 21 | return 0 == fnmatch(test, str, 0); 22 | #endif // _WIN32 23 | } 24 | 25 | } // namespace carla 26 | -------------------------------------------------------------------------------- /LibCarla/source/carla/TypeTraits.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma 2 | // de Barcelona (UAB). 3 | // 4 | // This work is licensed under the terms of the MIT license. 5 | // For a copy, see . 6 | 7 | #pragma once 8 | 9 | #include 10 | 11 | namespace carla { 12 | 13 | template 14 | struct are_same; 15 | 16 | template 17 | struct are_same { 18 | static constexpr bool value = std::is_same::value && are_same::value; 19 | }; 20 | 21 | template 22 | struct are_same { 23 | static constexpr bool value = std::is_same::value; 24 | }; 25 | 26 | } // namespace carla 27 | -------------------------------------------------------------------------------- /LibCarla/source/carla/Version.h.in: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma 2 | // de Barcelona (UAB). 3 | // 4 | // This work is licensed under the terms of the MIT license. 5 | // For a copy, see . 6 | 7 | #pragma once 8 | 9 | namespace carla { 10 | 11 | constexpr const char *version() { 12 | return "${CARLA_VERSION}"; 13 | } 14 | 15 | } // namespace carla 16 | -------------------------------------------------------------------------------- /LibCarla/source/carla/aabb/AABBMap.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "carla/geom/AABB2D.h" 4 | #include 5 | #include 6 | #include 7 | #include 8 | 9 | namespace carla { 10 | namespace aabb { 11 | 12 | class AABBMap { 13 | public: 14 | 15 | AABBMap(); 16 | AABBMap(const std::vector& aabbs); 17 | 18 | void Insert(const geom::AABB2D& aabb); 19 | bool Intersects(const geom::AABB2D& aabb) const; 20 | size_t Count() const; 21 | 22 | private: 23 | 24 | typedef boost::geometry::model::d2::point_xy b_point_t; 25 | typedef boost::geometry::model::box b_box_t; 26 | typedef boost::geometry::index::rtree> b_rtree_t; 27 | 28 | b_rtree_t _tree; 29 | }; 30 | 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /LibCarla/source/carla/client/ActorSnapshot.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2019 Computer Vision Center (CVC) at the Universitat Autonoma 2 | // de Barcelona (UAB). 3 | // 4 | // This work is licensed under the terms of the MIT license. 5 | // For a copy, see . 6 | 7 | #pragma once 8 | 9 | #include "carla/geom/Transform.h" 10 | #include "carla/geom/Vector3D.h" 11 | #include "carla/rpc/ActorId.h" 12 | #include "carla/sensor/data/ActorDynamicState.h" 13 | 14 | namespace carla { 15 | namespace client { 16 | 17 | struct ActorSnapshot { 18 | ActorId id = 0u; 19 | geom::Transform transform; 20 | geom::Vector3D velocity; 21 | geom::Vector3D angular_velocity; 22 | geom::Vector3D acceleration; 23 | sensor::data::ActorDynamicState::TypeDependentState state; 24 | }; 25 | 26 | } // namespace client 27 | } // namespace carla 28 | -------------------------------------------------------------------------------- /LibCarla/source/carla/client/ClientSideSensor.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma 2 | // de Barcelona (UAB). 3 | // 4 | // This work is licensed under the terms of the MIT license. 5 | // For a copy, see . 6 | 7 | #pragma once 8 | 9 | #include "carla/client/Sensor.h" 10 | 11 | namespace carla { 12 | namespace client { 13 | 14 | class ClientSideSensor : public Sensor { 15 | public: 16 | 17 | using Sensor::Sensor; 18 | }; 19 | 20 | } // namespace client 21 | } // namespace carla 22 | -------------------------------------------------------------------------------- /LibCarla/source/carla/client/GarbageCollectionPolicy.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma 2 | // de Barcelona (UAB). 3 | // 4 | // This work is licensed under the terms of the MIT license. 5 | // For a copy, see . 6 | 7 | #pragma once 8 | 9 | namespace carla { 10 | namespace client { 11 | 12 | enum class GarbageCollectionPolicy { 13 | Disabled, 14 | Enabled, 15 | Inherit 16 | }; 17 | 18 | } // namespace client 19 | } // namespace carla 20 | -------------------------------------------------------------------------------- /LibCarla/source/carla/client/Junction.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2020 Computer Vision Center (CVC) at the Universitat Autonoma 2 | // de Barcelona (UAB). 3 | // 4 | // This work is licensed under the terms of the MIT license. 5 | // For a copy, see . 6 | 7 | #include "carla/client/Junction.h" 8 | #include "carla/client/Map.h" 9 | #include "carla/road/element/Waypoint.h" 10 | 11 | namespace carla { 12 | namespace client { 13 | 14 | Junction::Junction(SharedPtr parent, const road::Junction *junction) : _parent(parent) { 15 | _bounding_box = junction->GetBoundingBox(); 16 | _id = junction->GetId(); 17 | } 18 | 19 | std::vector, SharedPtr>> Junction::GetWaypoints( 20 | road::Lane::LaneType type) const { 21 | return _parent->GetJunctionWaypoints(GetId(), type); 22 | } 23 | 24 | geom::BoundingBox Junction::GetBoundingBox() const { 25 | return _bounding_box; 26 | } 27 | 28 | } // namespace client 29 | } // namespace carla 30 | -------------------------------------------------------------------------------- /LibCarla/source/carla/client/Sensor.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma 2 | // de Barcelona (UAB). 3 | // 4 | // This work is licensed under the terms of the MIT license. 5 | // For a copy, see . 6 | 7 | #pragma once 8 | 9 | #include "carla/client/Actor.h" 10 | 11 | #include 12 | 13 | namespace carla { 14 | namespace sensor { class SensorData; } 15 | namespace client { 16 | 17 | class Sensor : public Actor { 18 | public: 19 | 20 | using CallbackFunctionType = std::function)>; 21 | 22 | using Actor::Actor; 23 | 24 | /// Register a @a callback to be executed each time a new measurement is 25 | /// received. 26 | virtual void Listen(CallbackFunctionType callback) = 0; 27 | 28 | /// Stop listening for new measurements. 29 | virtual void Stop() = 0; 30 | 31 | /// Return whether this Sensor instance is currently listening to new data. 32 | virtual bool IsListening() const = 0; 33 | }; 34 | 35 | } // namespace client 36 | } // namespace carla 37 | -------------------------------------------------------------------------------- /LibCarla/source/carla/client/TimeoutException.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma 2 | // de Barcelona (UAB). 3 | // 4 | // This work is licensed under the terms of the MIT license. 5 | // For a copy, see . 6 | 7 | #include "carla/client/TimeoutException.h" 8 | 9 | namespace carla { 10 | namespace client { 11 | 12 | using namespace std::string_literals; 13 | 14 | TimeoutException::TimeoutException( 15 | const std::string &endpoint, 16 | time_duration timeout) 17 | : std::runtime_error( 18 | "time-out of "s + std::to_string(timeout.milliseconds()) + 19 | "ms while waiting for the simulator, " 20 | "make sure the simulator is ready and connected to " + endpoint) {} 21 | 22 | } // namespace client 23 | } // namespace carla 24 | -------------------------------------------------------------------------------- /LibCarla/source/carla/client/TimeoutException.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma 2 | // de Barcelona (UAB). 3 | // 4 | // This work is licensed under the terms of the MIT license. 5 | // For a copy, see . 6 | 7 | #pragma once 8 | 9 | #include "carla/Time.h" 10 | 11 | #include 12 | #include 13 | 14 | namespace carla { 15 | namespace client { 16 | 17 | class TimeoutException : public std::runtime_error { 18 | public: 19 | 20 | explicit TimeoutException( 21 | const std::string &endpoint, 22 | time_duration timeout); 23 | }; 24 | 25 | } // namespace client 26 | } // namespace carla 27 | -------------------------------------------------------------------------------- /LibCarla/source/carla/client/TrafficSign.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma 2 | // de Barcelona (UAB). 3 | // 4 | // This work is licensed under the terms of the MIT license. 5 | // For a copy, see . 6 | 7 | #pragma once 8 | 9 | #include "carla/client/Actor.h" 10 | 11 | namespace carla { 12 | namespace client { 13 | 14 | class TrafficSign : public Actor { 15 | public: 16 | 17 | explicit TrafficSign(ActorInitializer init) : Actor(std::move(init)) {} 18 | 19 | const geom::BoundingBox &GetTriggerVolume() const { 20 | return ActorState::GetBoundingBox(); 21 | } 22 | }; 23 | 24 | } // namespace client 25 | } // namespace carla 26 | -------------------------------------------------------------------------------- /LibCarla/source/carla/client/Walker.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma 2 | // de Barcelona (UAB). 3 | // 4 | // This work is licensed under the terms of the MIT license. 5 | // For a copy, see . 6 | 7 | #include "carla/client/Walker.h" 8 | 9 | #include "carla/client/detail/Simulator.h" 10 | 11 | namespace carla { 12 | namespace client { 13 | 14 | void Walker::ApplyControl(const Control &control) { 15 | if (control != _control) { 16 | GetEpisode().Lock()->ApplyControlToWalker(*this, control); 17 | _control = control; 18 | } 19 | } 20 | 21 | void Walker::ApplyControl(const BoneControl &bone_control) { 22 | GetEpisode().Lock()->ApplyBoneControlToWalker(*this, bone_control); 23 | } 24 | 25 | Walker::Control Walker::GetWalkerControl() const { 26 | return GetEpisode().Lock()->GetActorSnapshot(*this).state.walker_control; 27 | } 28 | } // namespace client 29 | } // namespace carla 30 | -------------------------------------------------------------------------------- /LibCarla/source/carla/client/WalkerAIController.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2019 Computer Vision Center (CVC) at the Universitat Autonoma 2 | // de Barcelona (UAB). 3 | // 4 | // This work is licensed under the terms of the MIT license. 5 | // For a copy, see . 6 | 7 | #pragma once 8 | 9 | #include "carla/client/Actor.h" 10 | #include "carla/client/detail/WalkerNavigation.h" 11 | #include "carla/geom/Vector3D.h" 12 | 13 | #include 14 | 15 | namespace carla { 16 | namespace client { 17 | 18 | class WalkerAIController : public Actor { 19 | public: 20 | 21 | explicit WalkerAIController(ActorInitializer init); 22 | 23 | void Start(); 24 | 25 | void Stop(); 26 | 27 | boost::optional GetRandomLocation(); 28 | 29 | void GoToLocation(const carla::geom::Location &destination); 30 | 31 | void SetMaxSpeed(const float max_speed); 32 | }; 33 | 34 | } // namespace client 35 | } // namespace carla 36 | -------------------------------------------------------------------------------- /LibCarla/source/carla/client/detail/ActorVariant.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma 2 | // de Barcelona (UAB). 3 | // 4 | // This work is licensed under the terms of the MIT license. 5 | // For a copy, see . 6 | 7 | #include "carla/client/detail/ActorVariant.h" 8 | 9 | #include "carla/client/detail/ActorFactory.h" 10 | #include "carla/client/ActorList.h" 11 | 12 | namespace carla { 13 | namespace client { 14 | namespace detail { 15 | 16 | void ActorVariant::MakeActor(EpisodeProxy episode) const { 17 | _value = detail::ActorFactory::MakeActor( 18 | episode, 19 | boost::get(std::move(_value)), 20 | GarbageCollectionPolicy::Disabled); 21 | } 22 | 23 | } // namespace detail 24 | } // namespace client 25 | } // namespace carla 26 | -------------------------------------------------------------------------------- /LibCarla/source/carla/gamma/.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*] 4 | end_of_line = lf 5 | indent_size = 4 6 | indent_style = tab 7 | insert_final_newline = true 8 | trim_trailing_whitespace = true 9 | 10 | [*.md] 11 | trim_trailing_whitespace = false 12 | 13 | [*.yml] 14 | indent_size = 2 15 | indent_style = space 16 | -------------------------------------------------------------------------------- /LibCarla/source/carla/gamma/.gitignore: -------------------------------------------------------------------------------- 1 | # Compiled Object files 2 | *.slo 3 | *.lo 4 | *.o 5 | 6 | # Compiled Dynamic libraries 7 | *.so 8 | *.dylib 9 | 10 | # Compiled Static libraries 11 | *.lai 12 | *.la 13 | *.a 14 | -------------------------------------------------------------------------------- /LibCarla/source/carla/gamma/.travis.yml: -------------------------------------------------------------------------------- 1 | --- 2 | sudo: false 3 | language: cpp 4 | compiler: 5 | - clang 6 | - gcc 7 | os: 8 | - linux 9 | - osx 10 | script: 11 | - mkdir _build 12 | - cd _build 13 | - cmake -DCMAKE_CXX_FLAGS="-DRVO_OUTPUT_TIME_AND_POSITIONS=0 -DRVO_SEED_RANDOM_NUMBER_GENERATOR=0" .. 14 | - ctest --extra-verbose --dashboard Experimental . 15 | -------------------------------------------------------------------------------- /LibCarla/source/carla/gamma/ConvexHull.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Author: Yuanfu Luo 3 | */ 4 | 5 | #include 6 | #include "Definitions.h" 7 | #include "RVOSimulator.h" 8 | 9 | namespace RVO { 10 | 11 | // Returns a new list of points representing the convex hull of 12 | // the given set of points. The convex hull excludes collinear points. 13 | // This algorithm runs in O(n log n) time. 14 | std::vector makeConvexHull(const std::vector &points); 15 | 16 | 17 | // Returns the convex hull, assuming that each points[i] <= points[i + 1]. Runs in O(n) time. 18 | std::vector makeConvexHullPresorted(const std::vector &points); 19 | 20 | } 21 | -------------------------------------------------------------------------------- /LibCarla/source/carla/gamma/GammaParams.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * Author: Yuanfu Luo 3 | */ 4 | 5 | #include "GammaParams.h" 6 | 7 | namespace GammaParams{ 8 | bool use_polygon = true; 9 | bool consider_kinematics = true; 10 | bool use_dynamic_resp = true; 11 | bool use_dynamic_att = true; 12 | } 13 | 14 | -------------------------------------------------------------------------------- /LibCarla/source/carla/gamma/GammaParams.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Author: Yuanfu Luo 3 | */ 4 | 5 | #ifndef GAMMA_PARAMS_H_ 6 | #define GAMMA_PARAMS_H_ 7 | 8 | namespace GammaParams{ 9 | extern bool use_polygon; 10 | extern bool consider_kinematics; 11 | extern bool use_dynamic_resp; 12 | extern bool use_dynamic_att; 13 | 14 | const float GAMMA_PI = 3.14159f; 15 | }; 16 | 17 | #endif 18 | -------------------------------------------------------------------------------- /LibCarla/source/carla/geom/AABB2D.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "carla/geom/Vector2D.h" 4 | 5 | namespace carla { 6 | namespace geom { 7 | 8 | class AABB2D { 9 | public: 10 | Vector2D bounds_min; 11 | Vector2D bounds_max; 12 | 13 | AABB2D() = default; 14 | 15 | AABB2D(const Vector2D& bounds_min, const Vector2D bounds_max) 16 | : bounds_min(bounds_min), bounds_max(bounds_max) { } 17 | 18 | bool operator==(const AABB2D& rhs) const { 19 | return (bounds_min == rhs.bounds_min) && (bounds_max == rhs.bounds_max); 20 | } 21 | 22 | bool operator!=(const AABB2D& rhs) const { 23 | return !(*this == rhs); 24 | } 25 | }; 26 | 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /LibCarla/source/carla/geom/Segment2D.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "carla/geom/Vector2D.h" 4 | 5 | namespace carla { 6 | namespace geom { 7 | 8 | class Segment2D { 9 | public: 10 | Vector2D start; 11 | Vector2D end; 12 | 13 | Segment2D() = default; 14 | 15 | Segment2D(const Vector2D& start, const Vector2D end) 16 | : start(start), end(end) { } 17 | 18 | bool operator==(const Segment2D& rhs) const { 19 | return (start == rhs.start) && (end == rhs.end); 20 | } 21 | 22 | bool operator!=(const Segment2D& rhs) const { 23 | return !(*this == rhs); 24 | } 25 | }; 26 | 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /LibCarla/source/carla/geom/Triangle2D.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "carla/geom/Vector2D.h" 4 | 5 | namespace carla { 6 | namespace geom { 7 | 8 | class Triangle2D { 9 | public: 10 | Vector2D v0; 11 | Vector2D v1; 12 | Vector2D v2; 13 | 14 | Triangle2D() = default; 15 | 16 | Triangle2D(const Vector2D &v0, const Vector2D &v1, const Vector2D &v2) 17 | : v0(v0), v1(v1), v2(v2) { } 18 | 19 | bool operator==(const Triangle2D &rhs) const { 20 | return (v0 == rhs.v0) && (v1 == rhs.v1) && (v2 == rhs.v2); 21 | } 22 | 23 | bool operator!=(const Triangle2D &rhs) const { 24 | return !(*this == rhs); 25 | } 26 | 27 | }; 28 | 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /LibCarla/source/carla/geom/Triangulation.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "carla/geom/Vector2D.h" 4 | #include "carla/geom/Triangle2D.h" 5 | #include 6 | 7 | namespace carla { 8 | namespace geom { 9 | 10 | class Triangulation { 11 | 12 | public: 13 | 14 | // Triangulates a given polygon with holes. 15 | // Input polygon and holes can have any winding order. 16 | // Triangulation triangles have clockwise winding order. 17 | static std::vector> Triangulate(const std::vector>& polygon); 18 | 19 | }; 20 | 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /LibCarla/source/carla/image/BoostGil.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma 2 | // de Barcelona (UAB). 3 | // 4 | // This work is licensed under the terms of the MIT license. 5 | // For a copy, see . 6 | 7 | #pragma once 8 | 9 | #if defined(__clang__) 10 | # pragma clang diagnostic push 11 | # pragma clang diagnostic ignored "-Wc++11-narrowing" 12 | # pragma clang diagnostic ignored "-Wunused-parameter" 13 | # pragma clang diagnostic ignored "-Wunused-local-typedef" 14 | #endif 15 | 16 | #include 17 | 18 | #if defined(__clang__) 19 | # pragma clang diagnostic pop 20 | #endif 21 | -------------------------------------------------------------------------------- /LibCarla/source/carla/image/ImageIO.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma 2 | // de Barcelona (UAB). 3 | // 4 | // This work is licensed under the terms of the MIT license. 5 | // For a copy, see . 6 | 7 | #pragma once 8 | 9 | #include "carla/image/ImageIOConfig.h" 10 | 11 | namespace carla { 12 | namespace image { 13 | 14 | class ImageIO { 15 | public: 16 | 17 | template 18 | static void ReadImage(const std::string &in_filename, ImageT &image, IO = IO()) { 19 | IO::read_image(in_filename, image); 20 | } 21 | 22 | template 23 | static std::string WriteView(std::string out_filename, const ViewT &image_view, IO = IO()) { 24 | IO::write_view(out_filename, image_view); 25 | return out_filename; 26 | } 27 | }; 28 | 29 | } // namespace image 30 | } // namespace carla 31 | -------------------------------------------------------------------------------- /LibCarla/source/carla/opendrive/OpenDriveParser.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma 2 | // de Barcelona (UAB). 3 | // 4 | // This work is licensed under the terms of the MIT license. 5 | // For a copy, see . 6 | 7 | #pragma once 8 | 9 | #include "carla/road/Map.h" 10 | 11 | #include 12 | 13 | #include 14 | 15 | namespace carla { 16 | namespace opendrive { 17 | 18 | class OpenDriveParser { 19 | public: 20 | 21 | static boost::optional Load(const std::string &opendrive); 22 | }; 23 | 24 | } // namespace opendrive 25 | } // namespace carla 26 | -------------------------------------------------------------------------------- /LibCarla/source/carla/opendrive/parser/GeoReferenceParser.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma 2 | // de Barcelona (UAB). 3 | // 4 | // This work is licensed under the terms of the MIT license. 5 | // For a copy, see . 6 | 7 | #pragma once 8 | 9 | namespace pugi { 10 | class xml_document; 11 | } // namespace pugi 12 | 13 | namespace carla { 14 | 15 | namespace road { 16 | class MapBuilder; 17 | } // namespace road 18 | 19 | namespace opendrive { 20 | namespace parser { 21 | 22 | class GeoReferenceParser { 23 | public: 24 | 25 | static void Parse( 26 | const pugi::xml_document &xml, 27 | carla::road::MapBuilder &map_builder); 28 | }; 29 | 30 | } // namespace parser 31 | } // namespace opendrive 32 | } // namespace carla 33 | -------------------------------------------------------------------------------- /LibCarla/source/carla/opendrive/parser/GeometryParser.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma 2 | // de Barcelona (UAB). 3 | // 4 | // This work is licensed under the terms of the MIT license. 5 | // For a copy, see . 6 | 7 | #pragma once 8 | 9 | namespace pugi { 10 | class xml_document; 11 | } // namespace pugi 12 | 13 | namespace carla { 14 | 15 | namespace road { 16 | class MapBuilder; 17 | } // namespace road 18 | 19 | namespace opendrive { 20 | namespace parser { 21 | 22 | class GeometryParser { 23 | public: 24 | 25 | static void Parse( 26 | const pugi::xml_document &xml, 27 | carla::road::MapBuilder &map_builder); 28 | 29 | }; 30 | 31 | } // namespace parser 32 | } // namespace opendrive 33 | } // namespace carla 34 | -------------------------------------------------------------------------------- /LibCarla/source/carla/opendrive/parser/JunctionParser.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma 2 | // de Barcelona (UAB). 3 | // 4 | // This work is licensed under the terms of the MIT license. 5 | // For a copy, see . 6 | 7 | #pragma once 8 | 9 | namespace pugi { 10 | class xml_document; 11 | } // namespace pugi 12 | 13 | namespace carla { 14 | 15 | namespace road { 16 | class MapBuilder; 17 | } // namespace road 18 | 19 | namespace opendrive { 20 | namespace parser { 21 | 22 | class JunctionParser { 23 | public: 24 | 25 | static void Parse( 26 | const pugi::xml_document &xml, 27 | carla::road::MapBuilder &map_builder); 28 | 29 | }; 30 | 31 | } // namespace parser 32 | } // namespace opendrive 33 | } // namespace carla 34 | -------------------------------------------------------------------------------- /LibCarla/source/carla/opendrive/parser/LaneParser.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma 2 | // de Barcelona (UAB). 3 | // 4 | // This work is licensed under the terms of the MIT license. 5 | // For a copy, see . 6 | 7 | #pragma once 8 | 9 | namespace pugi { 10 | class xml_document; 11 | } // namespace pugi 12 | 13 | namespace carla { 14 | 15 | namespace road { 16 | class MapBuilder; 17 | } // namespace road 18 | 19 | namespace opendrive { 20 | namespace parser { 21 | 22 | class LaneParser { 23 | public: 24 | 25 | static void Parse( 26 | const pugi::xml_document &xml, 27 | carla::road::MapBuilder &map_builder); 28 | }; 29 | 30 | } // namespace parser 31 | } // namespace opendrive 32 | } // namespace carla 33 | -------------------------------------------------------------------------------- /LibCarla/source/carla/opendrive/parser/ObjectParser.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma 2 | // de Barcelona (UAB). 3 | // 4 | // This work is licensed under the terms of the MIT license. 5 | // For a copy, see . 6 | 7 | #pragma once 8 | 9 | namespace pugi { 10 | class xml_document; 11 | } // namespace pugi 12 | 13 | namespace carla { 14 | 15 | namespace road { 16 | class MapBuilder; 17 | } // namespace road 18 | 19 | namespace opendrive { 20 | namespace parser { 21 | 22 | class ObjectParser { 23 | public: 24 | 25 | static void Parse( 26 | const pugi::xml_document &xml, 27 | carla::road::MapBuilder &map_builder); 28 | }; 29 | 30 | } // namespace parser 31 | } // namespace opendrive 32 | } // namespace carla 33 | -------------------------------------------------------------------------------- /LibCarla/source/carla/opendrive/parser/ProfilesParser.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma 2 | // de Barcelona (UAB). 3 | // 4 | // This work is licensed under the terms of the MIT license. 5 | // For a copy, see . 6 | 7 | #pragma once 8 | 9 | namespace pugi { 10 | class xml_document; 11 | } // namespace pugi 12 | 13 | namespace carla { 14 | 15 | namespace road { 16 | class MapBuilder; 17 | } // namespace road 18 | 19 | namespace opendrive { 20 | namespace parser { 21 | 22 | class ProfilesParser { 23 | public: 24 | 25 | static void Parse( 26 | const pugi::xml_document &xml, 27 | carla::road::MapBuilder &map_builder); 28 | 29 | }; 30 | 31 | } // namespace parser 32 | } // namespace opendrive 33 | } // namespace carla 34 | -------------------------------------------------------------------------------- /LibCarla/source/carla/opendrive/parser/RoadParser.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma 2 | // de Barcelona (UAB). 3 | // 4 | // This work is licensed under the terms of the MIT license. 5 | // For a copy, see . 6 | 7 | #pragma once 8 | 9 | #include 10 | #include 11 | 12 | namespace pugi { 13 | class xml_document; 14 | } // namespace pugi 15 | 16 | namespace carla { 17 | 18 | namespace road { 19 | class MapBuilder; 20 | } // namespace road 21 | 22 | namespace opendrive { 23 | namespace parser { 24 | 25 | class RoadParser { 26 | public: 27 | 28 | static void Parse( 29 | const pugi::xml_document &xml, 30 | carla::road::MapBuilder &map_builder); 31 | }; 32 | 33 | } // namespace parser 34 | } // namespace opendrive 35 | } // namespace carla 36 | -------------------------------------------------------------------------------- /LibCarla/source/carla/opendrive/parser/SignalParser.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma 2 | // de Barcelona (UAB). 3 | // 4 | // This work is licensed under the terms of the MIT license. 5 | // For a copy, see . 6 | 7 | #pragma once 8 | 9 | namespace pugi { 10 | class xml_document; 11 | } // namespace pugi 12 | 13 | namespace carla { 14 | 15 | namespace road { 16 | class MapBuilder; 17 | } // namespace road 18 | 19 | namespace opendrive { 20 | namespace parser { 21 | 22 | class SignalParser { 23 | public: 24 | 25 | static void Parse( 26 | const pugi::xml_document &xml, 27 | carla::road::MapBuilder &map_builder); 28 | }; 29 | 30 | } // namespace parser 31 | } // namespace opendrive 32 | } // namespace carla 33 | -------------------------------------------------------------------------------- /LibCarla/source/carla/opendrive/parser/TrafficGroupParser.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma 2 | // de Barcelona (UAB). 3 | // 4 | // This work is licensed under the terms of the MIT license. 5 | // For a copy, see . 6 | 7 | #pragma once 8 | 9 | namespace pugi { 10 | class xml_document; 11 | } // namespace pugi 12 | 13 | namespace carla { 14 | 15 | namespace road { 16 | class MapBuilder; 17 | } // namespace road 18 | 19 | namespace opendrive { 20 | namespace parser { 21 | 22 | class TrafficGroupParser { 23 | public: 24 | 25 | static void Parse( 26 | const pugi::xml_document &xml, 27 | carla::road::MapBuilder &map_builder); 28 | 29 | }; 30 | 31 | } // namespace parser 32 | } // namespace opendrive 33 | } // namespace carla 34 | -------------------------------------------------------------------------------- /LibCarla/source/carla/osmlandmarks/OsmLandmarks.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | 6 | #include "carla/occupancy/OccupancyMap.h" 7 | 8 | namespace carla { 9 | namespace osmlandmarks { 10 | 11 | class OsmLandmarks { 12 | public: 13 | 14 | static std::vector Load(const std::string& file, const geom::Vector2D& offset = geom::Vector2D(0, 0)); 15 | 16 | private: 17 | 18 | OsmLandmarks() { } 19 | 20 | }; 21 | 22 | } 23 | } 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /LibCarla/source/carla/pointcloud/PointCloudIO.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma 2 | // de Barcelona (UAB). 3 | // 4 | // This work is licensed under the terms of the MIT license. 5 | // For a copy, see . 6 | 7 | #include "carla/pointcloud/PointCloudIO.h" 8 | 9 | #include 10 | 11 | namespace carla { 12 | namespace pointcloud { 13 | 14 | void PointCloudIO::WriteHeader(std::ostream &out, size_t number_of_points) { 15 | out << "ply\n" 16 | "format ascii 1.0\n" 17 | "element vertex " << std::to_string(number_of_points) << "\n" 18 | "property float32 x\n" 19 | "property float32 y\n" 20 | "property float32 z\n" 21 | // "property uchar diffuse_red\n" 22 | // "property uchar diffuse_green\n" 23 | // "property uchar diffuse_blue\n" 24 | "end_header\n"; 25 | out << std::fixed << std::setprecision(4u); 26 | } 27 | 28 | } // namespace pointcloud 29 | } // namespace carla 30 | -------------------------------------------------------------------------------- /LibCarla/source/carla/road/LaneValidity.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2019 Computer Vision Center (CVC) at the Universitat Autonoma 2 | // de Barcelona (UAB). 3 | // 4 | // This work is licensed under the terms of the MIT license. 5 | // For a copy; see . 6 | 7 | #pragma once 8 | 9 | #include "carla/NonCopyable.h" 10 | #include 11 | #include 12 | #include "carla/road/RoadTypes.h" 13 | 14 | namespace carla { 15 | namespace road { 16 | 17 | struct LaneValidity { 18 | public: 19 | 20 | LaneValidity(LaneId from_lane, LaneId to_lane) 21 | : _from_lane(from_lane), _to_lane(to_lane) {} 22 | 23 | road::LaneId _from_lane; 24 | 25 | road::LaneId _to_lane; 26 | 27 | }; 28 | 29 | } // road 30 | } // carla 31 | -------------------------------------------------------------------------------- /LibCarla/source/carla/road/Object.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2019 Computer Vision Center (CVC) at the Universitat Autonoma 2 | // de Barcelona (UAB). 3 | // 4 | // This work is licensed under the terms of the MIT license. 5 | // For a copy, see . 6 | 7 | #pragma once 8 | 9 | #include "carla/NonCopyable.h" 10 | #include "carla/road/RoadTypes.h" 11 | 12 | #include 13 | 14 | namespace carla { 15 | namespace road { 16 | 17 | class Object : private MovableNonCopyable { 18 | public: 19 | 20 | Object() = default; 21 | 22 | private: 23 | 24 | ObjId _id = 0u; 25 | std::string _type; 26 | std::string _name; 27 | double _s = 0.0; 28 | double _t = 0.0; 29 | double _zOffset = 0.0; 30 | double _validLength = 0.0; 31 | std::string _orientation; 32 | double _lenght = 0.0; 33 | double _width = 0.0; 34 | double _hdg = 0.0; 35 | double _pitch = 0.0; 36 | double _roll = 0.0; 37 | }; 38 | 39 | } // road 40 | } // carla 41 | -------------------------------------------------------------------------------- /LibCarla/source/carla/road/RoadTypes.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma 2 | // de Barcelona (UAB). 3 | // 4 | // This work is licensed under the terms of the MIT license. 5 | // For a copy, see . 6 | 7 | #pragma once 8 | 9 | #include 10 | #include 11 | 12 | namespace carla { 13 | namespace road { 14 | 15 | using RoadId = uint32_t; 16 | 17 | using JuncId = int32_t; 18 | 19 | using LaneId = int32_t; 20 | 21 | using SectionId = uint32_t; 22 | 23 | using ObjId = uint32_t; 24 | 25 | using SignId = std::string; 26 | 27 | using ConId = uint32_t; 28 | 29 | } // road 30 | } // carla 31 | -------------------------------------------------------------------------------- /LibCarla/source/carla/road/element/LaneCrossingCalculator.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma 2 | // de Barcelona (UAB). 3 | // 4 | // This work is licensed under the terms of the MIT license. 5 | // For a copy, see . 6 | 7 | #pragma once 8 | 9 | #include "carla/road/element/LaneMarking.h" 10 | 11 | #include 12 | 13 | namespace carla { 14 | namespace geom { class Location; } 15 | namespace road { 16 | 17 | class Map; 18 | 19 | namespace element { 20 | 21 | class LaneCrossingCalculator { 22 | public: 23 | 24 | static std::vector Calculate( 25 | const Map &map, 26 | const geom::Location &origin, 27 | const geom::Location &destination); 28 | }; 29 | 30 | } // namespace element 31 | } // namespace road 32 | } // namespace carla 33 | -------------------------------------------------------------------------------- /LibCarla/source/carla/road/element/RoadInfo.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma 2 | // de Barcelona (UAB). 3 | // 4 | // This work is licensed under the terms of the MIT license. 5 | // For a copy, see . 6 | 7 | #pragma once 8 | 9 | #include "carla/road/element/RoadInfoVisitor.h" 10 | #include "carla/NonCopyable.h" 11 | 12 | #include 13 | #include 14 | #include 15 | 16 | namespace carla { 17 | namespace road { 18 | namespace element { 19 | 20 | class RoadInfo : private NonCopyable { 21 | public: 22 | 23 | virtual ~RoadInfo() = default; 24 | 25 | virtual void AcceptVisitor(RoadInfoVisitor &) = 0; 26 | 27 | /// Distance from road's start location. 28 | double GetDistance() const { 29 | return _s; 30 | } 31 | 32 | protected: 33 | 34 | RoadInfo(double distance = 0.0) : _s(distance) {} 35 | 36 | private: 37 | 38 | double _s; 39 | }; 40 | 41 | } // namespace element 42 | } // namespace road 43 | } // namespace carla 44 | -------------------------------------------------------------------------------- /LibCarla/source/carla/road/element/RoadInfoSpeed.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma 2 | // de Barcelona (UAB). 3 | // 4 | // This work is licensed under the terms of the MIT license. 5 | // For a copy, see . 6 | 7 | #pragma once 8 | 9 | #include "carla/road/element/RoadInfo.h" 10 | 11 | namespace carla { 12 | namespace road { 13 | namespace element { 14 | 15 | class RoadInfoSpeed final : public RoadInfo { 16 | public: 17 | 18 | RoadInfoSpeed(double s, double speed) 19 | : RoadInfo(s), 20 | _speed(speed) {} 21 | 22 | void AcceptVisitor(RoadInfoVisitor &v) final { 23 | v.Visit(*this); 24 | } 25 | 26 | double GetSpeed() const { 27 | return _speed; 28 | } 29 | 30 | private: 31 | 32 | const double _speed; 33 | }; 34 | 35 | } // namespace element 36 | } // namespace road 37 | } // namespace carla 38 | -------------------------------------------------------------------------------- /LibCarla/source/carla/road/element/Waypoint.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma 2 | // de Barcelona (UAB). 3 | // 4 | // This work is licensed under the terms of the MIT license. 5 | // For a copy, see . 6 | 7 | #include "carla/road/element/Waypoint.h" 8 | 9 | #include 10 | 11 | namespace std { 12 | 13 | using WaypointHash = hash; 14 | 15 | WaypointHash::result_type WaypointHash::operator()(const argument_type &waypoint) const { 16 | WaypointHash::result_type seed = 0u; 17 | boost::hash_combine(seed, waypoint.road_id); 18 | boost::hash_combine(seed, waypoint.section_id); 19 | boost::hash_combine(seed, waypoint.lane_id); 20 | boost::hash_combine(seed, static_cast(std::floor(waypoint.s * 200.0))); 21 | return seed; 22 | } 23 | 24 | } // namespace std 25 | -------------------------------------------------------------------------------- /LibCarla/source/carla/road/object/RepeatRecord.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2019 Computer Vision Center (CVC) at the Universitat Autonoma 2 | // de Barcelona (UAB). 3 | // 4 | // This work is licensed under the terms of the MIT license. 5 | // For a copy, see . 6 | 7 | #pragma once 8 | 9 | #include "carla/NonCopyable.h" 10 | #include 11 | #include 12 | #include "carla/road/RoadTypes.h" 13 | 14 | namespace carla { 15 | namespace road { 16 | namespace object { 17 | 18 | class RepeatRecord : private MovableNonCopyable { 19 | public: 20 | 21 | RepeatRecord() {} 22 | 23 | private: 24 | 25 | ObjId _id; 26 | }; 27 | 28 | } // object 29 | } // road 30 | } // carla 31 | -------------------------------------------------------------------------------- /LibCarla/source/carla/rpc/ActorAttributeType.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma 2 | // de Barcelona (UAB). 3 | // 4 | // This work is licensed under the terms of the MIT license. 5 | // For a copy, see . 6 | 7 | #pragma once 8 | 9 | #include 10 | 11 | namespace carla { 12 | namespace rpc { 13 | 14 | enum class ActorAttributeType : uint8_t { 15 | Bool, 16 | Int, 17 | Float, 18 | String, 19 | RGBColor, 20 | 21 | SIZE, 22 | INVALID 23 | }; 24 | 25 | // Serialization of this class is in ActorAttribute.h, to reduce dependencies 26 | // since this file is directly included in UE4 code. 27 | 28 | } // namespace rpc 29 | } // namespace carla 30 | -------------------------------------------------------------------------------- /LibCarla/source/carla/rpc/ActorId.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma 2 | // de Barcelona (UAB). 3 | // 4 | // This work is licensed under the terms of the MIT license. 5 | // For a copy, see . 6 | 7 | #pragma once 8 | 9 | #include 10 | 11 | namespace carla { 12 | namespace rpc { 13 | 14 | using ActorId = uint32_t; 15 | 16 | } // namespace rpc 17 | 18 | using ActorId = rpc::ActorId; 19 | 20 | } // namespace carla 21 | -------------------------------------------------------------------------------- /LibCarla/source/carla/rpc/AttachmentType.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma 2 | // de Barcelona (UAB). 3 | // 4 | // This work is licensed under the terms of the MIT license. 5 | // For a copy, see . 6 | 7 | #pragma once 8 | 9 | #include "carla/MsgPack.h" 10 | 11 | #include 12 | 13 | namespace carla { 14 | namespace rpc { 15 | 16 | enum class AttachmentType : uint8_t { 17 | Rigid, 18 | SpringArm, 19 | 20 | SIZE, 21 | INVALID 22 | }; 23 | 24 | } // namespace rpc 25 | } // namespace carla 26 | 27 | MSGPACK_ADD_ENUM(carla::rpc::AttachmentType); 28 | -------------------------------------------------------------------------------- /LibCarla/source/carla/rpc/BoneTransformData.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2019 Computer Vision Center (CVC) at the Universitat Autonoma 2 | // de Barcelona (UAB). 3 | // 4 | // This work is licensed under the terms of the MIT license. 5 | // For a copy, see . 6 | 7 | #pragma once 8 | 9 | #include "carla/rpc/Transform.h" 10 | 11 | #include 12 | #include 13 | 14 | namespace carla { 15 | namespace rpc { 16 | 17 | using BoneTransformData = std::pair; 18 | 19 | } // namespace rpc 20 | } // namespace carla 21 | -------------------------------------------------------------------------------- /LibCarla/source/carla/rpc/CommandResponse.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma 2 | // de Barcelona (UAB). 3 | // 4 | // This work is licensed under the terms of the MIT license. 5 | // For a copy, see . 6 | 7 | #pragma once 8 | 9 | #include "carla/rpc/ActorId.h" 10 | #include "carla/rpc/Response.h" 11 | 12 | namespace carla { 13 | namespace rpc { 14 | 15 | using CommandResponse = Response; 16 | 17 | } // namespace rpc 18 | } // namespace carla 19 | -------------------------------------------------------------------------------- /LibCarla/source/carla/rpc/EpisodeInfo.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma 2 | // de Barcelona (UAB). 3 | // 4 | // This work is licensed under the terms of the MIT license. 5 | // For a copy, see . 6 | 7 | #pragma once 8 | 9 | #include "carla/MsgPack.h" 10 | #include "carla/streaming/Token.h" 11 | 12 | #include 13 | #include 14 | 15 | namespace carla { 16 | namespace rpc { 17 | 18 | /// @todo Rename, does not represent the episode info anymore. 19 | class EpisodeInfo { 20 | public: 21 | 22 | using id_type = uint64_t; 23 | 24 | id_type id; 25 | 26 | streaming::Token token; 27 | 28 | MSGPACK_DEFINE_ARRAY(id, token); 29 | }; 30 | 31 | } // namespace rpc 32 | } // namespace carla 33 | -------------------------------------------------------------------------------- /LibCarla/source/carla/rpc/Location.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma 2 | // de Barcelona (UAB). 3 | // 4 | // This work is licensed under the terms of the MIT license. 5 | // For a copy, see . 6 | 7 | #pragma once 8 | 9 | #include "carla/geom/Location.h" 10 | 11 | namespace carla { 12 | namespace rpc { 13 | 14 | using Location = geom::Location; 15 | 16 | } // namespace rpc 17 | } // namespace carla 18 | -------------------------------------------------------------------------------- /LibCarla/source/carla/rpc/MapInfo.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma 2 | // de Barcelona (UAB). 3 | // 4 | // This work is licensed under the terms of the MIT license. 5 | // For a copy, see . 6 | 7 | #pragma once 8 | 9 | #include "carla/MsgPack.h" 10 | #include "carla/geom/Transform.h" 11 | 12 | #include 13 | #include 14 | 15 | namespace carla { 16 | namespace rpc { 17 | 18 | class MapInfo { 19 | public: 20 | 21 | std::string name; 22 | 23 | std::string open_drive_file; 24 | 25 | std::vector recommended_spawn_points; 26 | 27 | MSGPACK_DEFINE_ARRAY(name, open_drive_file, recommended_spawn_points); 28 | }; 29 | 30 | } // namespace rpc 31 | } // namespace carla 32 | -------------------------------------------------------------------------------- /LibCarla/source/carla/rpc/Metadata.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2019 Computer Vision Center (CVC) at the Universitat Autonoma 2 | // de Barcelona (UAB). 3 | // 4 | // This work is licensed under the terms of the MIT license. 5 | // For a copy, see . 6 | 7 | #pragma once 8 | 9 | #include "carla/MsgPack.h" 10 | 11 | namespace carla { 12 | namespace rpc { 13 | 14 | /// Metadata of an RPC function call. 15 | class Metadata { 16 | public: 17 | 18 | Metadata() = default; 19 | 20 | static Metadata MakeSync() { 21 | return { false }; 22 | } 23 | 24 | static Metadata MakeAsync() { 25 | return { true }; 26 | } 27 | 28 | bool IsResponseIgnored() const { 29 | return _asynchronous_call; 30 | } 31 | 32 | private: 33 | 34 | Metadata(bool asynchronous_call) : _asynchronous_call(asynchronous_call) {} 35 | 36 | bool _asynchronous_call = false; 37 | 38 | public: 39 | 40 | MSGPACK_DEFINE_ARRAY(_asynchronous_call); 41 | }; 42 | 43 | } // namespace rpc 44 | } // namespace carla 45 | -------------------------------------------------------------------------------- /LibCarla/source/carla/rpc/QualityLevel.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma 2 | // de Barcelona (UAB). 3 | // 4 | // This work is licensed under the terms of the MIT license. 5 | // For a copy, see . 6 | 7 | #pragma once 8 | 9 | #include "carla/MsgPack.h" 10 | 11 | #include 12 | 13 | namespace carla { 14 | namespace rpc { 15 | 16 | enum class QualityLevel : uint8_t { 17 | Low, 18 | // Medium, 19 | // High, 20 | Epic, 21 | 22 | SIZE, 23 | INVALID 24 | }; 25 | 26 | } // namespace rpc 27 | } // namespace carla 28 | 29 | MSGPACK_ADD_ENUM(carla::rpc::QualityLevel); 30 | -------------------------------------------------------------------------------- /LibCarla/source/carla/rpc/String.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma 2 | // de Barcelona (UAB). 3 | // 4 | // This work is licensed under the terms of the MIT license. 5 | // For a copy, see . 6 | 7 | #pragma once 8 | 9 | #include 10 | 11 | #ifdef LIBCARLA_INCLUDED_FROM_UE4 12 | # include "UnrealString.h" 13 | #endif // LIBCARLA_INCLUDED_FROM_UE4 14 | 15 | namespace carla { 16 | namespace rpc { 17 | 18 | #ifdef LIBCARLA_INCLUDED_FROM_UE4 19 | 20 | static inline std::string FromFString(const FString &Str) { 21 | return TCHAR_TO_UTF8(*Str); 22 | } 23 | 24 | static inline FString ToFString(const std::string &str) { 25 | return FString(str.size(), UTF8_TO_TCHAR(str.c_str())); 26 | } 27 | 28 | #endif // LIBCARLA_INCLUDED_FROM_UE4 29 | 30 | } // namespace rpc 31 | } // namespace carla 32 | -------------------------------------------------------------------------------- /LibCarla/source/carla/rpc/TrafficLightState.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma 2 | // de Barcelona (UAB). 3 | // 4 | // This work is licensed under the terms of the MIT license. 5 | // For a copy, see . 6 | 7 | #pragma once 8 | 9 | #include "carla/MsgPack.h" 10 | 11 | #include 12 | 13 | namespace carla { 14 | namespace rpc { 15 | 16 | enum class TrafficLightState : uint8_t { 17 | Red, 18 | Yellow, 19 | Green, 20 | Off, 21 | Unknown, 22 | SIZE 23 | }; 24 | 25 | } // namespace rpc 26 | } // namespace carla 27 | 28 | MSGPACK_ADD_ENUM(carla::rpc::TrafficLightState); 29 | -------------------------------------------------------------------------------- /LibCarla/source/carla/rpc/Transform.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma 2 | // de Barcelona (UAB). 3 | // 4 | // This work is licensed under the terms of the MIT license. 5 | // For a copy, see . 6 | 7 | #pragma once 8 | 9 | #include "carla/geom/Transform.h" 10 | 11 | namespace carla { 12 | namespace rpc { 13 | 14 | using Rotation = geom::Rotation; 15 | 16 | using Transform = geom::Transform; 17 | 18 | } // namespace rpc 19 | } // namespace carla 20 | -------------------------------------------------------------------------------- /LibCarla/source/carla/rpc/Vector2D.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2019 Computer Vision Center (CVC) at the Universitat Autonoma 2 | // de Barcelona (UAB). 3 | // 4 | // This work is licensed under the terms of the MIT license. 5 | // For a copy, see . 6 | 7 | #pragma once 8 | 9 | #include "carla/geom/Vector2D.h" 10 | 11 | namespace carla { 12 | namespace rpc { 13 | 14 | using Vector2D = geom::Vector2D; 15 | 16 | } // namespace rpc 17 | } // namespace carla 18 | -------------------------------------------------------------------------------- /LibCarla/source/carla/rpc/Vector3D.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma 2 | // de Barcelona (UAB). 3 | // 4 | // This work is licensed under the terms of the MIT license. 5 | // For a copy, see . 6 | 7 | #pragma once 8 | 9 | #include "carla/geom/Vector3D.h" 10 | 11 | namespace carla { 12 | namespace rpc { 13 | 14 | using Vector3D = geom::Vector3D; 15 | 16 | } // namespace rpc 17 | } // namespace carla 18 | -------------------------------------------------------------------------------- /LibCarla/source/carla/rss/RssRestrictor.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2019 Intel Corporation 2 | // 3 | // This work is licensed under the terms of the MIT license. 4 | // For a copy, see . 5 | 6 | #pragma once 7 | 8 | #include 9 | 10 | namespace ad_rss { 11 | namespace world { 12 | struct AccelerationRestriction; 13 | struct Velocity; 14 | } // namespace world 15 | } // namespace ad_rss 16 | 17 | namespace carla { 18 | namespace rpc { 19 | class VehicleControl; 20 | class VehiclePhysicsControl; 21 | } // namespace rpc 22 | 23 | namespace rss { 24 | 25 | class RssRestrictor { 26 | public: 27 | 28 | RssRestrictor(); 29 | 30 | ~RssRestrictor(); 31 | 32 | carla::rpc::VehicleControl restrictVehicleControl(const carla::rpc::VehicleControl &vehicleControl, 33 | const ad_rss::world::AccelerationRestriction &restriction, 34 | const ad_rss::world::Velocity &egoVelocity, 35 | const carla::rpc::VehiclePhysicsControl &vehiclePhysics); 36 | 37 | private: 38 | 39 | }; 40 | 41 | } // namespace rss 42 | } // namespace carla 43 | -------------------------------------------------------------------------------- /LibCarla/source/carla/sensor/Deserializer.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma 2 | // de Barcelona (UAB). 3 | // 4 | // This work is licensed under the terms of the MIT license. 5 | // For a copy, see . 6 | 7 | #include "carla/sensor/Deserializer.h" 8 | 9 | #include "carla/sensor/SensorRegistry.h" 10 | 11 | namespace carla { 12 | namespace sensor { 13 | 14 | SharedPtr Deserializer::Deserialize(Buffer &&buffer) { 15 | return SensorRegistry::Deserialize(std::move(buffer)); 16 | } 17 | 18 | } // namespace sensor 19 | } // namespace carla 20 | -------------------------------------------------------------------------------- /LibCarla/source/carla/sensor/Deserializer.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma 2 | // de Barcelona (UAB). 3 | // 4 | // This work is licensed under the terms of the MIT license. 5 | // For a copy, see . 6 | 7 | #pragma once 8 | 9 | #include "carla/Buffer.h" 10 | #include "carla/Memory.h" 11 | 12 | namespace carla { 13 | namespace sensor { 14 | 15 | class SensorData; 16 | 17 | /// Deserializes a Buffer containing data generated by a sensor and creates 18 | /// the appropriate SensorData class that contains the sensor's measurement. 19 | /// 20 | /// This class encapsulates the SensorRegistry to avoid including all the 21 | /// serializers and SensorData classes. 22 | class Deserializer { 23 | public: 24 | 25 | static SharedPtr Deserialize(Buffer &&buffer); 26 | }; 27 | 28 | } // namespace sensor 29 | } // namespace carla 30 | -------------------------------------------------------------------------------- /LibCarla/source/carla/sensor/data/Image.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma 2 | // de Barcelona (UAB). 3 | // 4 | // This work is licensed under the terms of the MIT license. 5 | // For a copy, see . 6 | 7 | #pragma once 8 | 9 | #include "carla/sensor/data/Color.h" 10 | #include "carla/sensor/data/ImageTmpl.h" 11 | 12 | namespace carla { 13 | namespace sensor { 14 | namespace data { 15 | 16 | /// An image of 32-bit BGRA colors. 17 | using Image = ImageTmpl; 18 | 19 | } // namespace data 20 | } // namespace sensor 21 | } // namespace carla 22 | -------------------------------------------------------------------------------- /LibCarla/source/carla/sensor/data/LaneInvasionEvent.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2019 Computer Vision Center (CVC) at the Universitat Autonoma 2 | // de Barcelona (UAB). 3 | // 4 | // This work is licensed under the terms of the MIT license. 5 | // For a copy, see . 6 | 7 | #include "carla/sensor/data/LaneInvasionEvent.h" 8 | 9 | #include "carla/Exception.h" 10 | #include "carla/client/detail/Simulator.h" 11 | 12 | namespace carla { 13 | namespace sensor { 14 | namespace data { 15 | 16 | SharedPtr LaneInvasionEvent::GetActor() const { 17 | auto episode = GetEpisode().Lock(); 18 | auto description = episode->GetActorById(_parent); 19 | if (!description.has_value()) { 20 | throw_exception(std::runtime_error("LaneInvasionEvent: parent already dead")); 21 | } 22 | return episode->MakeActor(*description); 23 | } 24 | 25 | } // namespace data 26 | } // namespace sensor 27 | } // namespace carla 28 | -------------------------------------------------------------------------------- /LibCarla/source/carla/sensor/s11n/CollisionEventSerializer.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma 2 | // de Barcelona (UAB). 3 | // 4 | // This work is licensed under the terms of the MIT license. 5 | // For a copy, see . 6 | 7 | #include "carla/sensor/data/CollisionEvent.h" 8 | #include "carla/sensor/s11n/CollisionEventSerializer.h" 9 | 10 | namespace carla { 11 | namespace sensor { 12 | namespace s11n { 13 | 14 | SharedPtr CollisionEventSerializer::Deserialize(RawData &&data) { 15 | return SharedPtr(new data::CollisionEvent(std::move(data))); 16 | } 17 | 18 | } // namespace s11n 19 | } // namespace sensor 20 | } // namespace carla 21 | -------------------------------------------------------------------------------- /LibCarla/source/carla/sensor/s11n/EpisodeStateSerializer.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma 2 | // de Barcelona (UAB). 3 | // 4 | // This work is licensed under the terms of the MIT license. 5 | // For a copy, see . 6 | 7 | #include "carla/sensor/s11n/EpisodeStateSerializer.h" 8 | 9 | #include "carla/sensor/data/RawEpisodeState.h" 10 | 11 | namespace carla { 12 | namespace sensor { 13 | namespace s11n { 14 | 15 | SharedPtr EpisodeStateSerializer::Deserialize(RawData &&data) { 16 | return SharedPtr(new data::RawEpisodeState{std::move(data)}); 17 | } 18 | 19 | } // namespace s11n 20 | } // namespace sensor 21 | } // namespace carla 22 | -------------------------------------------------------------------------------- /LibCarla/source/carla/sensor/s11n/GnssSerializer.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2019 Computer Vision Center (CVC) at the Universitat Autonoma 2 | // de Barcelona (UAB). 3 | // 4 | // This work is licensed under the terms of the MIT license. 5 | // For a copy, see . 6 | 7 | #include "carla/sensor/s11n/GnssSerializer.h" 8 | 9 | #include "carla/sensor/data/GnssMeasurement.h" 10 | 11 | namespace carla { 12 | namespace sensor { 13 | namespace s11n { 14 | 15 | SharedPtr GnssSerializer::Deserialize(RawData &&data) { 16 | return SharedPtr(new data::GnssMeasurement(std::move(data))); 17 | } 18 | 19 | } // namespace s11n 20 | } // namespace sensor 21 | } // namespace carla 22 | -------------------------------------------------------------------------------- /LibCarla/source/carla/sensor/s11n/IMUSerializer.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2019 Computer Vision Center (CVC) at the Universitat Autonoma 2 | // de Barcelona (UAB). 3 | // 4 | // This work is licensed under the terms of the MIT license. 5 | // For a copy, see . 6 | 7 | #include "carla/sensor/s11n/IMUSerializer.h" 8 | #include "carla/sensor/data/IMUMeasurement.h" 9 | 10 | namespace carla { 11 | namespace sensor { 12 | namespace s11n { 13 | 14 | SharedPtr IMUSerializer::Deserialize(RawData &&data) { 15 | return SharedPtr(new data::IMUMeasurement(std::move(data))); 16 | } 17 | 18 | } // namespace s11n 19 | } // namespace sensor 20 | } // namespace carla 21 | -------------------------------------------------------------------------------- /LibCarla/source/carla/sensor/s11n/ImageSerializer.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma 2 | // de Barcelona (UAB). 3 | // 4 | // This work is licensed under the terms of the MIT license. 5 | // For a copy, see . 6 | 7 | #include "carla/sensor/s11n/ImageSerializer.h" 8 | 9 | #include "carla/sensor/data/Image.h" 10 | 11 | namespace carla { 12 | namespace sensor { 13 | namespace s11n { 14 | 15 | SharedPtr ImageSerializer::Deserialize(RawData &&data) { 16 | auto image = SharedPtr(new data::Image{std::move(data)}); 17 | // Set alpha of each pixel in the buffer to max to make it 100% opaque 18 | for (auto &pixel : *image) { 19 | pixel.a = 255u; 20 | } 21 | return image; 22 | } 23 | 24 | } // namespace s11n 25 | } // namespace sensor 26 | } // namespace carla 27 | -------------------------------------------------------------------------------- /LibCarla/source/carla/sensor/s11n/LidarSerializer.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma 2 | // de Barcelona (UAB). 3 | // 4 | // This work is licensed under the terms of the MIT license. 5 | // For a copy, see . 6 | 7 | #include "carla/sensor/s11n/LidarSerializer.h" 8 | 9 | #include "carla/sensor/data/LidarMeasurement.h" 10 | 11 | namespace carla { 12 | namespace sensor { 13 | namespace s11n { 14 | 15 | SharedPtr LidarSerializer::Deserialize(RawData &&data) { 16 | return SharedPtr( 17 | new data::LidarMeasurement{std::move(data)}); 18 | } 19 | 20 | } // namespace s11n 21 | } // namespace sensor 22 | } // namespace carla 23 | -------------------------------------------------------------------------------- /LibCarla/source/carla/sensor/s11n/NoopSerializer.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma 2 | // de Barcelona (UAB). 3 | // 4 | // This work is licensed under the terms of the MIT license. 5 | // For a copy, see . 6 | 7 | #include "carla/sensor/s11n/NoopSerializer.h" 8 | 9 | #include "carla/Exception.h" 10 | 11 | namespace carla { 12 | namespace sensor { 13 | namespace s11n { 14 | 15 | SharedPtr NoopSerializer::Deserialize(RawData &&) { 16 | throw_exception(std::runtime_error("NoopSerializer: Invalid data received.")); 17 | } 18 | 19 | } // namespace s11n 20 | } // namespace sensor 21 | } // namespace carla 22 | -------------------------------------------------------------------------------- /LibCarla/source/carla/sensor/s11n/NoopSerializer.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma 2 | // de Barcelona (UAB). 3 | // 4 | // This work is licensed under the terms of the MIT license. 5 | // For a copy, see . 6 | 7 | #pragma once 8 | 9 | #include "carla/Memory.h" 10 | #include "carla/sensor/RawData.h" 11 | 12 | #include 13 | #include 14 | 15 | namespace carla { 16 | namespace sensor { 17 | 18 | class SensorData; 19 | 20 | namespace s11n { 21 | 22 | /// Dummy serializer that blocks all the data. Use it as serializer for 23 | /// client-side sensors that do not send any data. 24 | class NoopSerializer { 25 | public: 26 | 27 | [[ noreturn ]] static SharedPtr Deserialize(RawData &&data); 28 | }; 29 | 30 | } // namespace s11n 31 | } // namespace sensor 32 | } // namespace carla 33 | -------------------------------------------------------------------------------- /LibCarla/source/carla/sensor/s11n/ObstacleDetectionEventSerializer.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma 2 | // de Barcelona (UAB). 3 | // 4 | // This work is licensed under the terms of the MIT license. 5 | // For a copy, see . 6 | 7 | #include "carla/sensor/data/ObstacleDetectionEvent.h" 8 | #include "carla/sensor/s11n/ObstacleDetectionEventSerializer.h" 9 | 10 | namespace carla { 11 | namespace sensor { 12 | namespace s11n { 13 | 14 | SharedPtr ObstacleDetectionEventSerializer::Deserialize(RawData &&data) { 15 | return SharedPtr(new data::ObstacleDetectionEvent(std::move(data))); 16 | } 17 | 18 | } // namespace s11n 19 | } // namespace sensor 20 | } // namespace carla 21 | -------------------------------------------------------------------------------- /LibCarla/source/carla/sensor/s11n/RadarSerializer.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2019 Computer Vision Center (CVC) at the Universitat Autonoma 2 | // de Barcelona (UAB). 3 | // 4 | // This work is licensed under the terms of the MIT license. 5 | // For a copy, see . 6 | 7 | #include "carla/sensor/s11n/RadarSerializer.h" 8 | 9 | #include "carla/sensor/data/RadarMeasurement.h" 10 | 11 | namespace carla { 12 | namespace sensor { 13 | namespace s11n { 14 | 15 | SharedPtr RadarSerializer::Deserialize(RawData &&data) { 16 | return SharedPtr( 17 | new data::RadarMeasurement{std::move(data)}); 18 | } 19 | 20 | } // namespace s11n 21 | } // namespace sensor 22 | } // namespace carla 23 | -------------------------------------------------------------------------------- /LibCarla/source/carla/streaming/Token.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma 2 | // de Barcelona (UAB). 3 | // 4 | // This work is licensed under the terms of the MIT license. 5 | // For a copy, see . 6 | 7 | #pragma once 8 | 9 | #include "carla/MsgPack.h" 10 | 11 | #include 12 | 13 | namespace carla { 14 | namespace streaming { 15 | 16 | /// A token that uniquely identify a stream. 17 | class Token { 18 | public: 19 | 20 | std::array data; 21 | 22 | MSGPACK_DEFINE_ARRAY(data); 23 | }; 24 | 25 | } // namespace streaming 26 | } // namespace carla 27 | -------------------------------------------------------------------------------- /LibCarla/source/carla/streaming/detail/Session.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma 2 | // de Barcelona (UAB). 3 | // 4 | // This work is licensed under the terms of the MIT license. 5 | // For a copy, see . 6 | 7 | #pragma once 8 | 9 | #include "carla/streaming/detail/tcp/ServerSession.h" 10 | 11 | namespace carla { 12 | namespace streaming { 13 | namespace detail { 14 | 15 | using Session = tcp::ServerSession; 16 | 17 | } // namespace detail 18 | } // namespace streaming 19 | } // namespace carla 20 | -------------------------------------------------------------------------------- /LibCarla/source/carla/streaming/detail/StreamStateBase.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma 2 | // de Barcelona (UAB). 3 | // 4 | // This work is licensed under the terms of the MIT license. 5 | // For a copy, see . 6 | 7 | #include "carla/streaming/detail/StreamStateBase.h" 8 | 9 | #include "carla/BufferPool.h" 10 | 11 | namespace carla { 12 | namespace streaming { 13 | namespace detail { 14 | 15 | StreamStateBase::StreamStateBase(const token_type &token) 16 | : _token(token), 17 | _buffer_pool(std::make_shared()) {} 18 | 19 | StreamStateBase::~StreamStateBase() = default; 20 | 21 | Buffer StreamStateBase::MakeBuffer() { 22 | return _buffer_pool->Pop(); 23 | } 24 | 25 | } // namespace detail 26 | } // namespace streaming 27 | } // namespace carla 28 | -------------------------------------------------------------------------------- /LibCarla/source/carla/streaming/detail/Types.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma 2 | // de Barcelona (UAB). 3 | // 4 | // This work is licensed under the terms of the MIT license. 5 | // For a copy, see . 6 | 7 | #pragma once 8 | 9 | #include "carla/Buffer.h" 10 | 11 | #include 12 | #include 13 | 14 | namespace carla { 15 | namespace streaming { 16 | namespace detail { 17 | 18 | using stream_id_type = uint32_t; 19 | 20 | using message_size_type = uint32_t; 21 | 22 | static_assert( 23 | std::is_same::value, 24 | "uint type mismatch!"); 25 | 26 | } // namespace detail 27 | } // namespace streaming 28 | } // namespace carla 29 | -------------------------------------------------------------------------------- /LibCarla/source/compiler/enable-ue4-macros.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma 2 | // de Barcelona (UAB). 3 | // 4 | // This work is licensed under the terms of the MIT license. 5 | // For a copy, see . 6 | 7 | #if defined(_MSC_VER) 8 | # pragma warning(pop) 9 | # ifdef UpdateResource 10 | # undef UpdateResource 11 | # endif 12 | #endif 13 | 14 | #if defined(__clang__) 15 | # pragma clang diagnostic pop 16 | #endif 17 | 18 | #pragma pop_macro("check") 19 | #pragma pop_macro("TEXT") 20 | 21 | #undef LIBCARLA_INCLUDED_FROM_UE4 22 | -------------------------------------------------------------------------------- /LibCarla/source/test/client/OpenDrive.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2019 Computer Vision Center (CVC) at the Universitat Autonoma 2 | // de Barcelona (UAB). 3 | // 4 | // This work is licensed under the terms of the MIT license. 5 | // For a copy, see . 6 | 7 | #include "OpenDrive.h" 8 | 9 | #ifndef LIBCARLA_TEST_CONTENT_FOLDER 10 | # error Please define LIBCARLA_TEST_CONTENT_FOLDER. 11 | #endif 12 | 13 | #include 14 | 15 | #include 16 | #include 17 | 18 | namespace util { 19 | 20 | std::vector OpenDrive::GetAvailableFiles() { 21 | return carla::FileSystem::ListFolder( 22 | LIBCARLA_TEST_CONTENT_FOLDER "/OpenDrive/", 23 | "*.xodr"); 24 | } 25 | 26 | std::string OpenDrive::Load(const std::string &filename) { 27 | const std::string opendrive_folder = LIBCARLA_TEST_CONTENT_FOLDER "/OpenDrive/"; 28 | std::ifstream file(opendrive_folder + filename); 29 | return std::string{std::istreambuf_iterator(file), std::istreambuf_iterator()}; 30 | } 31 | 32 | } // namespace util 33 | -------------------------------------------------------------------------------- /LibCarla/source/test/client/OpenDrive.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2019 Computer Vision Center (CVC) at the Universitat Autonoma 2 | // de Barcelona (UAB). 3 | // 4 | // This work is licensed under the terms of the MIT license. 5 | // For a copy, see . 6 | 7 | #pragma once 8 | 9 | #include 10 | #include 11 | 12 | namespace util { 13 | 14 | /// Helper for loading Test OpenDrive files. 15 | class OpenDrive { 16 | public: 17 | 18 | static std::vector GetAvailableFiles(); 19 | 20 | static std::string Load(const std::string &filename); 21 | }; 22 | 23 | } // namespace util 24 | -------------------------------------------------------------------------------- /LibCarla/source/test/client/test_lanenetwork.cpp: -------------------------------------------------------------------------------- 1 | #include "test.h" 2 | 3 | #include 4 | #include 5 | #include 6 | #include 7 | 8 | using namespace carla::lanenetwork; 9 | using namespace boost::filesystem; 10 | 11 | const std::string BASE_PATH = LIBCARLA_TEST_CONTENT_FOLDER "/LaneNetwork/"; 12 | 13 | TEST(lanenetwork, load_lane_network) { 14 | for (directory_iterator it(BASE_PATH); it != directory_iterator(); ++it) { 15 | std::cout << "Loading LaneNetwork from " << it->path().string() << std::endl; 16 | LaneNetwork lane_network = LaneNetwork::Load(it->path().string()); 17 | std::cout << "Nodes = " << lane_network.Nodes().size() 18 | << ", Roads = " << lane_network.Roads().size() 19 | << ", Lanes = " << lane_network.Lanes().size() 20 | << ", LaneConnections = " << lane_network.LaneConnections().size() 21 | << std::endl; 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /LibCarla/source/test/client/test_sumonetwork.cpp: -------------------------------------------------------------------------------- 1 | #include "test.h" 2 | 3 | #include 4 | #include 5 | #include 6 | #include 7 | 8 | using namespace carla::sumonetwork; 9 | using namespace boost::filesystem; 10 | 11 | const std::string BASE_PATH = LIBCARLA_TEST_CONTENT_FOLDER "/SUMO/"; 12 | 13 | TEST(sumonetwork, load_sumo_network) { 14 | for (directory_iterator it(BASE_PATH); it != directory_iterator(); ++it) { 15 | std::cout << "Loading SUMO Network from " << it->path().string() << std::endl; 16 | std::ifstream t(it->path().string()); 17 | std::stringstream buffer; 18 | buffer << t.rdbuf(); 19 | SumoNetwork::Load(buffer.str()); 20 | } 21 | 22 | } 23 | -------------------------------------------------------------------------------- /LibCarla/source/test/common/test_miscellaneous.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma 2 | // de Barcelona (UAB). 3 | // 4 | // This work is licensed under the terms of the MIT license. 5 | // For a copy, see . 6 | 7 | #include "test.h" 8 | 9 | #include 10 | 11 | TEST(miscellaneous, version) { 12 | std::cout << "LibCarla " << carla::version() << std::endl; 13 | } 14 | -------------------------------------------------------------------------------- /LibCarla/source/test/test.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma 2 | // de Barcelona (UAB). 3 | // 4 | // This work is licensed under the terms of the MIT license. 5 | // For a copy, see . 6 | 7 | #ifdef LIBCARLA_NO_EXCEPTIONS 8 | 9 | #include 10 | #include 11 | 12 | #include 13 | 14 | namespace carla { 15 | 16 | void throw_exception(const std::exception &e) { 17 | log_critical("carla::throw_exception:", e.what()); 18 | log_critical("calling std::terminate because exceptions are disabled."); 19 | std::terminate(); 20 | } 21 | 22 | } // namespace carla 23 | 24 | #endif // LIBCARLA_NO_EXCEPTIONS 25 | 26 | #include "Random.h" 27 | 28 | namespace util { 29 | 30 | thread_local std::mt19937_64 Random::_engine((std::random_device())()); 31 | 32 | } // namespace util 33 | -------------------------------------------------------------------------------- /LibCarla/source/test/test.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma 2 | // de Barcelona (UAB). 3 | // 4 | // This work is licensed under the terms of the MIT license. 5 | // For a copy, see . 6 | 7 | #pragma once 8 | 9 | #ifndef NDEBUG 10 | # define LIBCARLA_LOG_LEVEL LIBCARLA_LOG_LEVEL_INFO 11 | #endif // NDEBUG 12 | 13 | #include "test/Buffer.h" 14 | 15 | #include 16 | #include 17 | 18 | #include 19 | 20 | #include 21 | #include 22 | #include 23 | 24 | constexpr uint16_t TESTING_PORT = 0u; 25 | -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- 1 | include Util/BuildTools/Vars.mk 2 | ifeq ($(OS),Windows_NT) 3 | include Util/BuildTools/Windows.mk 4 | else 5 | include Util/BuildTools/Linux.mk 6 | endif 7 | -------------------------------------------------------------------------------- /PythonAPI/.pylintrc: -------------------------------------------------------------------------------- 1 | [MESSAGES CONTROL] 2 | max-line-length=120 3 | [MASTER] 4 | disable=I0011,I0013,E1121,E1126 5 | [TYPECHECK] 6 | ignored-modules=carla,carla.command,libcarla,pygame,numpy,configparser,ConfigParser 7 | -------------------------------------------------------------------------------- /PythonAPI/carla/.gitignore: -------------------------------------------------------------------------------- 1 | *.egg-info 2 | build 3 | dependencies 4 | dist 5 | -------------------------------------------------------------------------------- /PythonAPI/carla/agents/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdaCompNUS/summit/1affe14ef7fab006d78266d63e289940ca9d43ac/PythonAPI/carla/agents/__init__.py -------------------------------------------------------------------------------- /PythonAPI/carla/agents/navigation/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdaCompNUS/summit/1affe14ef7fab006d78266d63e289940ca9d43ac/PythonAPI/carla/agents/navigation/__init__.py -------------------------------------------------------------------------------- /PythonAPI/carla/agents/tools/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdaCompNUS/summit/1affe14ef7fab006d78266d63e289940ca9d43ac/PythonAPI/carla/agents/tools/__init__.py -------------------------------------------------------------------------------- /PythonAPI/carla/requirements.txt: -------------------------------------------------------------------------------- 1 | networkx 2 | numpy 3 | -------------------------------------------------------------------------------- /PythonAPI/carla/source/carla/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2019 Computer Vision Center (CVC) at the Universitat Autonoma de 2 | # Barcelona (UAB). 3 | # 4 | # This work is licensed under the terms of the MIT license. 5 | # For a copy, see . 6 | 7 | # pylint: disable=W0401 8 | from .libcarla import * 9 | -------------------------------------------------------------------------------- /PythonAPI/carla/source/carla/command.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2019 Computer Vision Center (CVC) at the Universitat Autonoma de 2 | # Barcelona (UAB). 3 | # 4 | # This work is licensed under the terms of the MIT license. 5 | # For a copy, see . 6 | 7 | # pylint: disable=W0401 8 | from .libcarla.command import * 9 | -------------------------------------------------------------------------------- /PythonAPI/carla/source/libcarla/AABB.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | 5 | void export_aabb() { 6 | using namespace boost::python; 7 | using namespace carla; 8 | using namespace carla::aabb; 9 | 10 | class_("AABBMap", no_init) 11 | .def(init<>()) 12 | .def(init&>()) 13 | .def("__init__", make_constructor( 14 | +[](const list& aabbs_py) { 15 | std::vector aabbs{ 16 | stl_input_iterator(aabbs_py), 17 | stl_input_iterator()}; 18 | return boost::shared_ptr(new AABBMap(aabbs)); 19 | })) 20 | .def("__len__", &AABBMap::Count) 21 | .def("insert", &AABBMap::Insert) 22 | .def("intersects", &AABBMap::Intersects) 23 | ; 24 | } 25 | -------------------------------------------------------------------------------- /PythonAPI/carla/source/libcarla/Exception.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma 2 | // de Barcelona (UAB). 3 | // 4 | // This work is licensed under the terms of the MIT license. 5 | // For a copy, see . 6 | 7 | #include 8 | #include 9 | 10 | #include 11 | 12 | void translator(const rpc::rpc_error &e) { 13 | std::stringstream ss; 14 | ss << e.what() << " in function " << e.get_function_name(); 15 | /// @todo Supposedly we can extract the error string here as provided by the 16 | /// server with e.get_error().as(), but it gives the wrong 17 | /// string. 18 | PyErr_SetString(PyExc_RuntimeError, ss.str().c_str()); 19 | } 20 | 21 | void export_exception() { 22 | using namespace boost::python; 23 | namespace cc = carla::client; 24 | 25 | register_exception_translator(translator); 26 | } 27 | -------------------------------------------------------------------------------- /PythonAPI/carla/source/libcarla/OsmLandmarks.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | void export_osm_landmark() { 5 | using namespace boost::python; 6 | using namespace carla; 7 | using namespace carla::osmlandmarks; 8 | 9 | class_("OsmLandmarks", no_init) 10 | .def("load", 11 | +[](const std::string& file) { 12 | return OsmLandmarks::Load(file); 13 | }) 14 | .def("load", 15 | +[](const std::string& file, const geom::Vector2D& offset) { 16 | return OsmLandmarks::Load(file, offset); 17 | }) 18 | .staticmethod("load") 19 | ; 20 | } 21 | -------------------------------------------------------------------------------- /PythonAPI/docs/requirements.txt: -------------------------------------------------------------------------------- 1 | pyyaml 2 | -------------------------------------------------------------------------------- /PythonAPI/examples/.gitignore: -------------------------------------------------------------------------------- 1 | cache -------------------------------------------------------------------------------- /PythonAPI/examples/requirements.txt: -------------------------------------------------------------------------------- 1 | future 2 | numpy 3 | pygame 4 | -------------------------------------------------------------------------------- /PythonAPI/test/requirements.txt: -------------------------------------------------------------------------------- 1 | nose2 2 | -------------------------------------------------------------------------------- /PythonAPI/test/smoke/test_blueprint.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2019 Computer Vision Center (CVC) at the Universitat Autonoma de 2 | # Barcelona (UAB). 3 | # 4 | # This work is licensed under the terms of the MIT license. 5 | # For a copy, see . 6 | 7 | import re 8 | 9 | from . import SmokeTest 10 | 11 | 12 | class TestBlueprintLibrary(SmokeTest): 13 | def test_blueprint_ids(self): 14 | library = self.client.get_world().get_blueprint_library() 15 | self.assertTrue([x for x in library]) 16 | self.assertTrue([x for x in library.filter('sensor.*')]) 17 | self.assertTrue([x for x in library.filter('static.*')]) 18 | self.assertTrue([x for x in library.filter('vehicle.*')]) 19 | self.assertTrue([x for x in library.filter('walker.*')]) 20 | rgx = re.compile(r'\S+\.\S+\.\S+') 21 | for bp in library: 22 | self.assertTrue(rgx.match(bp.id)) 23 | rgx = re.compile(r'(vehicle)\.\S+\.\S+') 24 | for bp in library.filter('vehicle.*'): 25 | self.assertTrue(rgx.match(bp.id)) 26 | -------------------------------------------------------------------------------- /PythonAPI/test/smoke/test_client.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2019 Computer Vision Center (CVC) at the Universitat Autonoma de 2 | # Barcelona (UAB). 3 | # 4 | # This work is licensed under the terms of the MIT license. 5 | # For a copy, see . 6 | 7 | 8 | from . import SmokeTest 9 | 10 | 11 | class TestClient(SmokeTest): 12 | def test_version(self): 13 | self.assertEqual(self.client.get_client_version(), self.client.get_server_version()) 14 | -------------------------------------------------------------------------------- /PythonAPI/test/smoke/test_world.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2019 Computer Vision Center (CVC) at the Universitat Autonoma de 2 | # Barcelona (UAB). 3 | # 4 | # This work is licensed under the terms of the MIT license. 5 | # For a copy, see . 6 | 7 | 8 | from . import SmokeTest 9 | 10 | 11 | class TestWorld(SmokeTest): 12 | def test_fixed_delta_seconds(self): 13 | world = self.client.get_world() 14 | settings = world.get_settings() 15 | self.assertFalse(settings.synchronous_mode) 16 | for expected_delta_seconds in [0.1, 0.066667, 0.05, 0.033333, 0.016667, 0.011112]: 17 | settings.fixed_delta_seconds = expected_delta_seconds 18 | world.apply_settings(settings) 19 | for _ in range(0, 20): 20 | delta_seconds = world.wait_for_tick().timestamp.delta_seconds 21 | self.assertAlmostEqual(expected_delta_seconds, delta_seconds) 22 | settings.fixed_delta_seconds = None 23 | world.apply_settings(settings) 24 | -------------------------------------------------------------------------------- /PythonAPI/test/smoke/unittest.cfg: -------------------------------------------------------------------------------- 1 | [unittest] 2 | plugins = nose2.plugins.junitxml 3 | [junit-xml] 4 | path = test-results.xml 5 | -------------------------------------------------------------------------------- /PythonAPI/test/unit/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2019 Computer Vision Center (CVC) at the Universitat Autonoma de 2 | # Barcelona (UAB). 3 | # 4 | # This work is licensed under the terms of the MIT license. 5 | # For a copy, see . 6 | 7 | import glob 8 | import os 9 | import sys 10 | 11 | try: 12 | sys.path.append(glob.glob('../../carla/dist/carla-*%d.%d-%s.egg' % ( 13 | sys.version_info.major, 14 | sys.version_info.minor, 15 | 'win-amd64' if os.name == 'nt' else 'linux-x86_64'))[0]) 16 | except IndexError: 17 | pass 18 | -------------------------------------------------------------------------------- /PythonAPI/test/unit/test_client.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2019 Computer Vision Center (CVC) at the Universitat Autonoma de 2 | # Barcelona (UAB). 3 | # 4 | # This work is licensed under the terms of the MIT license. 5 | # For a copy, see . 6 | 7 | import carla 8 | 9 | import sys 10 | import unittest 11 | 12 | from subprocess import check_output 13 | 14 | 15 | class TestClient(unittest.TestCase): 16 | def test_client_version(self): 17 | c = carla.Client('localhost', 8080) 18 | v = c.get_client_version() 19 | out = check_output(['git', 'describe', '--tags', '--dirty', '--always', ]) 20 | if sys.version_info > (3, 0): 21 | out = out.decode('utf8') 22 | self.assertEqual(str(v), str(out.strip())) 23 | -------------------------------------------------------------------------------- /PythonAPI/test/unit/unittest.cfg: -------------------------------------------------------------------------------- 1 | [unittest] 2 | plugins = nose2.plugins.junitxml 3 | [junit-xml] 4 | path = test-results.xml 5 | -------------------------------------------------------------------------------- /PythonAPI/util/requirements.txt: -------------------------------------------------------------------------------- 1 | numpy 2 | psutil 3 | py-cpuinfo 4 | pygame 5 | python-tr 6 | -------------------------------------------------------------------------------- /Scripts/osm2sumo.sh: -------------------------------------------------------------------------------- 1 | # Example command to convert an OSM network into a SUMO network. 2 | # For left-handed road networks, append the flag --lefthand to the back. 3 | # For lane width, SUMMIT assumes a lane width of 4.0m. 4 | 5 | netconvert --osm-files ../Data/meskel_square.osm -o ../Data/meskel_square.net.xml --proj "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs" --geometry.remove --ramps.guess --edges.join --junctions.join --keep-edges.by-type highway.motorway,highway.motorway_link,highway.trunk,highway.trunk_link,highway.primary,highway.primary_link,highway.secondary,highway.secondary_link,highway.tertiary,highway.tertiary_link,highway.unclassified,highway.residential --no-turnarounds.except-deadend --tls.discard-loaded --tls.discard-simple --default.lanewidth 4.0 6 | -------------------------------------------------------------------------------- /Unreal/CarlaUE4/.gitignore: -------------------------------------------------------------------------------- 1 | Binaries 2 | Build 3 | Debug 4 | DerivedDataCache 5 | Intermediate 6 | Saved 7 | Plugins/Carla/Binaries 8 | Plugins/Carla/Build 9 | Plugins/Carla/CarlaServer 10 | Plugins/Carla/CarlaDependencies 11 | Plugins/Carla/Debug 12 | Plugins/Carla/DerivedDataCache 13 | Plugins/Carla/Intermediate 14 | Plugins/Carla/Saved 15 | 16 | /Content 17 | Config/CarlaSettings.ini 18 | Config/DefaultEditor.ini 19 | 20 | *.code-workspace 21 | .idea 22 | .vscode 23 | CMakeLists.txt 24 | Makefile 25 | -------------------------------------------------------------------------------- /Unreal/CarlaUE4/CarlaUE4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdaCompNUS/summit/1affe14ef7fab006d78266d63e289940ca9d43ac/Unreal/CarlaUE4/CarlaUE4.png -------------------------------------------------------------------------------- /Unreal/CarlaUE4/Config/DefaultGameUserSettings.ini: -------------------------------------------------------------------------------- 1 | [/Script/Engine.GameUserSettings] 2 | FullscreenMode=2 3 | Version=5 4 | -------------------------------------------------------------------------------- /Unreal/CarlaUE4/Plugins/Carla/Carla.uplugin: -------------------------------------------------------------------------------- 1 | { 2 | "FileVersion": 3, 3 | "Version": 1, 4 | "VersionName": "0.9.8", 5 | "FriendlyName": "CARLA", 6 | "Description": "Open-source simulator for autonomous driving research.", 7 | "Category": "Science", 8 | "CreatedBy": "Computer Vision Center (CVC) at the Universitat Autonoma de Barcelona (UAB)", 9 | "CreatedByURL": "http://carla.org", 10 | "DocsURL": "http://carla.readthedocs.io", 11 | "MarketplaceURL": "", 12 | "SupportURL": "https://github.com/carla-simulator/carla/issues", 13 | "CanContainContent": true, 14 | "IsBetaVersion": true, 15 | "Installed": true, 16 | "Modules": [ 17 | { 18 | "Name": "Carla", 19 | "Type": "Runtime", 20 | "LoadingPhase": "PreDefault", 21 | "AdditionalDependencies": [ 22 | "Engine", 23 | "ProceduralMeshComponent" 24 | ] 25 | }, 26 | ], 27 | "Plugins": [ 28 | { 29 | "Name": "PhysXVehicles", 30 | "Enabled": true 31 | }, 32 | { 33 | "Name": "ProceduralMeshComponent", 34 | "Enabled": true 35 | } 36 | ] 37 | } 38 | -------------------------------------------------------------------------------- /Unreal/CarlaUE4/Plugins/Carla/Content/Icons/OpenDriveActorIcon.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdaCompNUS/summit/1affe14ef7fab006d78266d63e289940ca9d43ac/Unreal/CarlaUE4/Plugins/Carla/Content/Icons/OpenDriveActorIcon.uasset -------------------------------------------------------------------------------- /Unreal/CarlaUE4/Plugins/Carla/Content/PostProcessingMaterials/.gitignore: -------------------------------------------------------------------------------- 1 | # These files are changed when doing the "import" command 2 | # due to Unreal's automatic checking/cooking ".uasset" files. 3 | 4 | # This is why we ignore all the shader files in this folder 5 | # since they are rarely changed: 6 | 7 | * 8 | !.gitignore 9 | -------------------------------------------------------------------------------- /Unreal/CarlaUE4/Plugins/Carla/Content/PostProcessingMaterials/DepthEffectMaterial.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdaCompNUS/summit/1affe14ef7fab006d78266d63e289940ca9d43ac/Unreal/CarlaUE4/Plugins/Carla/Content/PostProcessingMaterials/DepthEffectMaterial.uasset -------------------------------------------------------------------------------- /Unreal/CarlaUE4/Plugins/Carla/Content/PostProcessingMaterials/DepthEffectMaterial_GLSL.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdaCompNUS/summit/1affe14ef7fab006d78266d63e289940ca9d43ac/Unreal/CarlaUE4/Plugins/Carla/Content/PostProcessingMaterials/DepthEffectMaterial_GLSL.uasset -------------------------------------------------------------------------------- /Unreal/CarlaUE4/Plugins/Carla/Content/PostProcessingMaterials/GTMaterial.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdaCompNUS/summit/1affe14ef7fab006d78266d63e289940ca9d43ac/Unreal/CarlaUE4/Plugins/Carla/Content/PostProcessingMaterials/GTMaterial.uasset -------------------------------------------------------------------------------- /Unreal/CarlaUE4/Plugins/Carla/Content/PostProcessingMaterials/LensDistortion.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdaCompNUS/summit/1affe14ef7fab006d78266d63e289940ca9d43ac/Unreal/CarlaUE4/Plugins/Carla/Content/PostProcessingMaterials/LensDistortion.uasset -------------------------------------------------------------------------------- /Unreal/CarlaUE4/Plugins/Carla/Content/PostProcessingMaterials/PhysicLensDistortion.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdaCompNUS/summit/1affe14ef7fab006d78266d63e289940ca9d43ac/Unreal/CarlaUE4/Plugins/Carla/Content/PostProcessingMaterials/PhysicLensDistortion.uasset -------------------------------------------------------------------------------- /Unreal/CarlaUE4/Plugins/Carla/Resources/Icon128.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdaCompNUS/summit/1affe14ef7fab006d78266d63e289940ca9d43ac/Unreal/CarlaUE4/Plugins/Carla/Resources/Icon128.png -------------------------------------------------------------------------------- /Unreal/CarlaUE4/Plugins/Carla/Source/Carla/AI/AIControllerFactory.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2019 Computer Vision Center (CVC) at the Universitat Autonoma 2 | // de Barcelona (UAB). 3 | // 4 | // This work is licensed under the terms of the MIT license. 5 | // For a copy, see . 6 | 7 | #pragma once 8 | 9 | #include "Carla/Actor/ActorSpawnResult.h" 10 | #include "Carla/Actor/CarlaActorFactory.h" 11 | 12 | #include "AIControllerFactory.generated.h" 13 | 14 | /// Factory in charge of spawning AI Controllers. 15 | UCLASS() 16 | class CARLA_API AAIControllerFactory final : public ACarlaActorFactory 17 | { 18 | GENERATED_BODY() 19 | 20 | TArray GetDefinitions() final; 21 | 22 | FActorSpawnResult SpawnActor( 23 | const FTransform &SpawnAtTransform, 24 | const FActorDescription &ActorDescription) final; 25 | }; 26 | -------------------------------------------------------------------------------- /Unreal/CarlaUE4/Plugins/Carla/Source/Carla/AI/WalkerAIController.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2019 Computer Vision Center (CVC) at the Universitat Autonoma 2 | // de Barcelona (UAB). 3 | // 4 | // This work is licensed under the terms of the MIT license. 5 | // For a copy, see . 6 | 7 | #pragma once 8 | 9 | #include "GameFramework/Actor.h" 10 | 11 | #include "WalkerAIController.generated.h" 12 | 13 | /// Walker AI Controller representation. This actor does nothing, it's a handle 14 | /// for the actual controller created on the client-side. 15 | UCLASS() 16 | class CARLA_API AWalkerAIController : public AActor 17 | { 18 | GENERATED_BODY() 19 | 20 | public: 21 | 22 | AWalkerAIController(const FObjectInitializer &ObjectInitializer) 23 | : Super(ObjectInitializer) 24 | { 25 | PrimaryActorTick.bCanEverTick = false; 26 | 27 | RootComponent = CreateDefaultSubobject(TEXT("RootComponent")); 28 | RootComponent->bHiddenInGame = true; 29 | } 30 | }; 31 | -------------------------------------------------------------------------------- /Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Actor/ActorInfo.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma 2 | // de Barcelona (UAB). 3 | // 4 | // This work is licensed under the terms of the MIT license. 5 | // For a copy, see . 6 | 7 | #pragma once 8 | 9 | #include "Carla/Actor/ActorDescription.h" 10 | #include "Carla/Game/Tagger.h" 11 | 12 | #include 13 | #include 14 | #include 15 | 16 | /// A view over an actor and its properties. 17 | struct FActorInfo 18 | { 19 | public: 20 | 21 | FActorDescription Description; 22 | 23 | TSet SemanticTags; 24 | 25 | FBoundingBox BoundingBox; 26 | 27 | carla::rpc::Actor SerializedData; 28 | 29 | /// @todo To be used solely by the FWorldObserver. 30 | mutable FVector Velocity = {0.0f, 0.0f, 0.0f}; 31 | }; 32 | -------------------------------------------------------------------------------- /Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Actor/CarlaBlueprintRegistry.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2019 Computer Vision Center (CVC) at the Universitat Autonoma 2 | // de Barcelona (UAB). 3 | // 4 | // This work is licensed under the terms of the MIT license. 5 | // For a copy, see . 6 | 7 | #pragma once 8 | 9 | #include "ActorBlueprintFunctionLibrary.h" 10 | 11 | #include "CarlaBlueprintRegistry.generated.h" 12 | 13 | UCLASS() 14 | class UCarlaBlueprintRegistry : public UBlueprintFunctionLibrary 15 | { 16 | GENERATED_BODY() 17 | 18 | public: 19 | 20 | UFUNCTION(Category = "Carla Blueprint Registry", BlueprintCallable) 21 | static void AddToCarlaBlueprintRegistry(const TArray &PropParametersArray); 22 | 23 | UFUNCTION(Category = "Carla Blueprint Registry", BlueprintCallable) 24 | static void LoadPropDefinitions(TArray &PropParametersArray); 25 | 26 | }; 27 | -------------------------------------------------------------------------------- /Unreal/CarlaUE4/Plugins/Carla/Source/Carla/DynamicMesh/DynamicMeshActor.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "ProceduralMeshComponent.h" 4 | #include "DynamicMeshActor.generated.h" 5 | 6 | UCLASS(hidecategories = (Physics)) 7 | class CARLA_API ADynamicMeshActor : public AActor 8 | { 9 | GENERATED_BODY() 10 | 11 | public: 12 | 13 | UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = "CARLA") 14 | UProceduralMeshComponent* MeshComponent; 15 | 16 | ADynamicMeshActor(const FObjectInitializer& ObjectInitializer); 17 | 18 | void SetMaterial(const FString& Material); 19 | 20 | void SetTriangles(const TArray& Triangles); 21 | 22 | void SetTileMesh(FVector BoundsMin, FVector BoundsMax, const TArray& RawData); 23 | 24 | void SetSemanticSegmentationLabel(uint8 Label); 25 | 26 | private: 27 | 28 | UPROPERTY() 29 | UMaterial* MeshMaterial; 30 | }; 31 | -------------------------------------------------------------------------------- /Unreal/CarlaUE4/Plugins/Carla/Source/Carla/DynamicMesh/DynamicMeshDispatcher.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "DynamicMeshActor.h" 4 | #include "DynamicMeshDispatcher.generated.h" 5 | 6 | UCLASS() 7 | class CARLA_API ADynamicMeshDispatcher : public AActor 8 | { 9 | GENERATED_BODY() 10 | 11 | public: 12 | 13 | uint32 SpawnDynamicMesh(const TArray& Triangles, const FString& Material, uint8_t SemanticSegmentationLabel); 14 | 15 | uint32 SpawnDynamicTileMesh(FVector BoundsMin, FVector BoundsMax, const TArray& Data, uint8_t SemanticSegmentationLabel); 16 | 17 | bool DestroyDynamicMesh(uint32 Id); 18 | 19 | private: 20 | 21 | UFUNCTION() 22 | void OnActorDestroyed(AActor* Actor); 23 | 24 | int32 SpawnId = 0; 25 | 26 | UPROPERTY() 27 | TMap ActorMap; 28 | }; 29 | -------------------------------------------------------------------------------- /Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Game/CarlaGameInstance.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma 2 | // de Barcelona (UAB). 3 | // 4 | // This work is licensed under the terms of the MIT license. 5 | // For a copy, see . 6 | 7 | #include "Carla.h" 8 | #include "Carla/Game/CarlaGameInstance.h" 9 | 10 | #include "Carla/Settings/CarlaSettings.h" 11 | 12 | UCarlaGameInstance::UCarlaGameInstance() { 13 | CarlaSettings = CreateDefaultSubobject(TEXT("CarlaSettings")); 14 | check(CarlaSettings != nullptr); 15 | CarlaSettings->LoadSettings(); 16 | CarlaSettings->LogSettings(); 17 | } 18 | 19 | UCarlaGameInstance::~UCarlaGameInstance() = default; 20 | -------------------------------------------------------------------------------- /Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Game/CarlaStaticDelegates.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma 2 | // de Barcelona (UAB). 3 | // 4 | // This work is licensed under the terms of the MIT license. 5 | // For a copy, see . 6 | 7 | #include "Carla.h" 8 | #include "Carla/Game/CarlaStaticDelegates.h" 9 | 10 | FCarlaStaticDelegates::FOnEpisodeSettingsChange FCarlaStaticDelegates::OnEpisodeSettingsChange; 11 | -------------------------------------------------------------------------------- /Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Game/CarlaStaticDelegates.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma 2 | // de Barcelona (UAB). 3 | // 4 | // This work is licensed under the terms of the MIT license. 5 | // For a copy, see . 6 | 7 | #pragma once 8 | 9 | #include "Carla/Settings/EpisodeSettings.h" 10 | 11 | class CARLA_API FCarlaStaticDelegates 12 | { 13 | public: 14 | 15 | DECLARE_MULTICAST_DELEGATE_OneParam(FOnEpisodeSettingsChange, const FEpisodeSettings &); 16 | static FOnEpisodeSettingsChange OnEpisodeSettingsChange; 17 | }; 18 | -------------------------------------------------------------------------------- /Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Game/TaggerDelegate.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma 2 | // de Barcelona (UAB). 3 | // 4 | // This work is licensed under the terms of the MIT license. 5 | // For a copy, see . 6 | 7 | #include "Carla.h" 8 | #include "TaggerDelegate.h" 9 | 10 | #include "Game/Tagger.h" 11 | 12 | #include "Engine/World.h" 13 | 14 | UTaggerDelegate::UTaggerDelegate() : 15 | ActorSpawnedDelegate(FOnActorSpawned::FDelegate::CreateUObject(this, &UTaggerDelegate::OnActorSpawned)) {} 16 | 17 | void UTaggerDelegate::RegisterSpawnHandler(UWorld *InWorld) 18 | { 19 | InWorld->AddOnActorSpawnedHandler(ActorSpawnedDelegate); 20 | } 21 | 22 | void UTaggerDelegate::OnActorSpawned(AActor* InActor) 23 | { 24 | if (InActor != nullptr) { 25 | ATagger::TagActor(*InActor, bSemanticSegmentationEnabled); 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Game/TaggerDelegate.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma 2 | // de Barcelona (UAB). 3 | // 4 | // This work is licensed under the terms of the MIT license. 5 | // For a copy, see . 6 | 7 | #pragma once 8 | 9 | #include "Engine/World.h" 10 | 11 | #include "TaggerDelegate.generated.h" 12 | 13 | /// Used to tag every actor that is spawned into the world. 14 | UCLASS() 15 | class CARLA_API UTaggerDelegate : public UObject 16 | { 17 | GENERATED_BODY() 18 | 19 | public: 20 | 21 | UTaggerDelegate(); 22 | 23 | void RegisterSpawnHandler(UWorld *World); 24 | 25 | void SetSemanticSegmentationEnabled(bool Enable = true) 26 | { 27 | bSemanticSegmentationEnabled = Enable; 28 | } 29 | 30 | void OnActorSpawned(AActor *Actor); 31 | 32 | private: 33 | 34 | FOnActorSpawned::FDelegate ActorSpawnedDelegate; 35 | 36 | bool bSemanticSegmentationEnabled = false; 37 | }; 38 | -------------------------------------------------------------------------------- /Unreal/CarlaUE4/Plugins/Carla/Source/Carla/MapGen/CityAreaDescription.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma 2 | // de Barcelona (UAB). 3 | // 4 | // This work is licensed under the terms of the MIT license. 5 | // For a copy, see . 6 | 7 | #pragma once 8 | 9 | #include "GraphTypes.h" 10 | 11 | #include 12 | 13 | namespace MapGen { 14 | 15 | class CARLA_API CityAreaDescription : private NonCopyable 16 | { 17 | public: 18 | 19 | explicit CityAreaDescription(const GraphFace &Face) : _face(&Face) {} 20 | 21 | void Add(const GraphNode &Node) { 22 | _nodes.emplace_back(&Node); 23 | } 24 | 25 | const GraphFace &GetFace() const { 26 | return *_face; 27 | } 28 | 29 | const GraphNode &GetNodeAt(size_t i) const { 30 | return *_nodes[i]; 31 | } 32 | 33 | size_t NodeCount() const { 34 | return _nodes.size(); 35 | } 36 | 37 | private: 38 | 39 | const GraphFace *_face; 40 | 41 | std::vector _nodes; 42 | }; 43 | 44 | } // namespace MapGen 45 | -------------------------------------------------------------------------------- /Unreal/CarlaUE4/Plugins/Carla/Source/Carla/MapGen/CityMapDefinitions.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma 2 | // de Barcelona (UAB). 3 | // 4 | // This work is licensed under the terms of the MIT license. 5 | // For a copy, see . 6 | 7 | #pragma once 8 | 9 | namespace MapGen { 10 | 11 | enum class EIntersectionType { 12 | Turn90Deg, 13 | TIntersection, 14 | XIntersection 15 | }; 16 | 17 | } // namespace MapGen 18 | -------------------------------------------------------------------------------- /Unreal/CarlaUE4/Plugins/Carla/Source/Carla/MapGen/CityMapMeshTag.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma 2 | // de Barcelona (UAB). 3 | // 4 | // This work is licensed under the terms of the MIT license. 5 | // For a copy, see . 6 | 7 | #include "Carla.h" 8 | #include "CityMapMeshTag.h" 9 | 10 | #include "Package.h" 11 | 12 | #include 13 | 14 | ECityMapMeshTag CityMapMeshTag::GetBaseMeshTag() 15 | { 16 | return ECityMapMeshTag::RoadTwoLanes_LaneLeft; 17 | } 18 | 19 | uint32 CityMapMeshTag::GetRoadIntersectionSize() 20 | { 21 | return 5u; 22 | } 23 | 24 | FString CityMapMeshTag::ToString(ECityMapMeshTag Tag) 25 | { 26 | const UEnum* ptr = FindObject(ANY_PACKAGE, TEXT("ECityMapMeshTag"), true); 27 | if(!ptr) 28 | return FString("Invalid"); 29 | return ptr->GetNameStringByIndex(static_cast(Tag)); 30 | } 31 | -------------------------------------------------------------------------------- /Unreal/CarlaUE4/Plugins/Carla/Source/Carla/MapGen/GraphGenerator.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma 2 | // de Barcelona (UAB). 3 | // 4 | // This work is licensed under the terms of the MIT license. 5 | // For a copy, see . 6 | 7 | #pragma once 8 | 9 | #include "DoublyConnectedEdgeList.h" 10 | 11 | namespace MapGen { 12 | 13 | /// Random DoublyConnectedEdgeList generator. 14 | class GraphGenerator : private NonCopyable 15 | { 16 | public: 17 | 18 | /// Create a squared DoublyConnectedEdgeList of size @a SizeX times @a SizeY 19 | /// and generate random connections inside using fixed @a Seed. 20 | static TUniquePtr Generate(uint32 SizeX, uint32 SizeY, int32 Seed); 21 | }; 22 | 23 | } // namespace MapGen 24 | -------------------------------------------------------------------------------- /Unreal/CarlaUE4/Plugins/Carla/Source/Carla/MapGen/GraphTypes.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma 2 | // de Barcelona (UAB). 3 | // 4 | // This work is licensed under the terms of the MIT license. 5 | // For a copy, see . 6 | 7 | #include "Carla.h" 8 | #include "GraphTypes.h" 9 | 10 | namespace MapGen { 11 | 12 | #ifdef CARLA_ROAD_GENERATOR_EXTRA_LOG 13 | 14 | template <> uint32 DataIndex<'n'>::NEXT_INDEX = 0u; 15 | template <> uint32 DataIndex<'e'>::NEXT_INDEX = 0u; 16 | template <> uint32 DataIndex<'f'>::NEXT_INDEX = 0u; 17 | 18 | #endif // CARLA_ROAD_GENERATOR_EXTRA_LOG 19 | 20 | } // namespace MapGen 21 | -------------------------------------------------------------------------------- /Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Recorder/CarlaRecorderAnimVehicle.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma 2 | // de Barcelona (UAB). 3 | // 4 | // This work is licensed under the terms of the MIT license. 5 | // For a copy, see . 6 | 7 | #pragma once 8 | 9 | #include 10 | #include 11 | 12 | #pragma pack(push, 1) 13 | struct CarlaRecorderAnimVehicle 14 | { 15 | uint32_t DatabaseId; 16 | float Steering; 17 | float Throttle; 18 | float Brake; 19 | bool bHandbrake; 20 | int32_t Gear; 21 | 22 | void Read(std::ifstream &InFile); 23 | 24 | void Write(std::ofstream &OutFile); 25 | 26 | }; 27 | #pragma pack(pop) 28 | 29 | class CarlaRecorderAnimVehicles 30 | { 31 | public: 32 | 33 | void Add(const CarlaRecorderAnimVehicle &InObj); 34 | 35 | void Clear(void); 36 | 37 | void Write(std::ofstream &OutFile); 38 | 39 | private: 40 | 41 | std::vector Vehicles; 42 | }; 43 | -------------------------------------------------------------------------------- /Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Recorder/CarlaRecorderAnimWalker.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma 2 | // de Barcelona (UAB). 3 | // 4 | // This work is licensed under the terms of the MIT license. 5 | // For a copy, see . 6 | 7 | #pragma once 8 | 9 | #include 10 | #include 11 | 12 | #pragma pack(push, 1) 13 | struct CarlaRecorderAnimWalker 14 | { 15 | uint32_t DatabaseId; 16 | float Speed; 17 | 18 | void Read(std::ifstream &InFile); 19 | 20 | void Write(std::ofstream &OutFile); 21 | 22 | }; 23 | #pragma pack(pop) 24 | 25 | class CarlaRecorderAnimWalkers 26 | { 27 | public: 28 | 29 | void Add(const CarlaRecorderAnimWalker &InObj); 30 | 31 | void Clear(void); 32 | 33 | void Write(std::ofstream &OutFile); 34 | 35 | private: 36 | 37 | std::vector Walkers; 38 | }; 39 | -------------------------------------------------------------------------------- /Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Recorder/CarlaRecorderEventDel.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma 2 | // de Barcelona (UAB). 3 | // 4 | // This work is licensed under the terms of the MIT license. 5 | // For a copy, see . 6 | 7 | #pragma once 8 | 9 | #include 10 | #include 11 | 12 | struct CarlaRecorderEventDel 13 | { 14 | uint32_t DatabaseId; 15 | 16 | void Read(std::ifstream &InFile); 17 | void Write(std::ofstream &OutFile) const; 18 | }; 19 | 20 | class CarlaRecorderEventsDel 21 | { 22 | 23 | public: 24 | void Add(const CarlaRecorderEventDel &Event); 25 | void Clear(void); 26 | void Write(std::ofstream &OutFile); 27 | 28 | private: 29 | std::vector Events; 30 | }; 31 | -------------------------------------------------------------------------------- /Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Recorder/CarlaRecorderEventParent.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma 2 | // de Barcelona (UAB). 3 | // 4 | // This work is licensed under the terms of the MIT license. 5 | // For a copy, see . 6 | 7 | #pragma once 8 | 9 | #include 10 | #include 11 | 12 | struct CarlaRecorderEventParent 13 | { 14 | uint32_t DatabaseId; 15 | uint32_t DatabaseIdParent; 16 | 17 | void Read(std::ifstream &InFile); 18 | void Write(std::ofstream &OutFile) const; 19 | }; 20 | 21 | class CarlaRecorderEventsParent 22 | { 23 | 24 | public: 25 | void Add(const CarlaRecorderEventParent &Event); 26 | void Clear(void); 27 | void Write(std::ofstream &OutFile); 28 | 29 | private: 30 | std::vector Events; 31 | }; 32 | -------------------------------------------------------------------------------- /Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Recorder/CarlaRecorderFrames.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma 2 | // de Barcelona (UAB). 3 | // 4 | // This work is licensed under the terms of the MIT license. 5 | // For a copy, see . 6 | 7 | #pragma once 8 | 9 | #include 10 | 11 | #pragma pack(push, 1) 12 | struct CarlaRecorderFrame 13 | { 14 | uint64_t Id; 15 | double DurationThis; 16 | double Elapsed; 17 | 18 | void Read(std::ifstream &InFile); 19 | 20 | void Write(std::ofstream &OutFile); 21 | 22 | }; 23 | #pragma pack(pop) 24 | 25 | class CarlaRecorderFrames 26 | { 27 | 28 | public: 29 | 30 | CarlaRecorderFrames(void); 31 | void Reset(); 32 | 33 | void SetFrame(double DeltaSeconds); 34 | 35 | void WriteStart(std::ofstream &OutFile); 36 | void WriteEnd(std::ofstream &OutFile); 37 | 38 | private: 39 | 40 | CarlaRecorderFrame Frame; 41 | std::streampos OffsetPreviousFrame; 42 | }; 43 | -------------------------------------------------------------------------------- /Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Recorder/CarlaRecorderInfo.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma 2 | // de Barcelona (UAB). 3 | // 4 | // This work is licensed under the terms of the MIT license. 5 | // For a copy, see . 6 | 7 | #pragma once 8 | 9 | #include "CarlaRecorderHelpers.h" 10 | 11 | #include 12 | #include 13 | 14 | struct CarlaRecorderInfo 15 | { 16 | uint16_t Version; 17 | FString Magic; 18 | std::time_t Date; 19 | FString Mapfile; 20 | 21 | void Read(std::ifstream &File) 22 | { 23 | ReadValue(File, Version); 24 | ReadFString(File, Magic); 25 | ReadValue(File, Date); 26 | ReadFString(File, Mapfile); 27 | } 28 | 29 | void Write(std::ofstream &File) 30 | { 31 | WriteValue(File, Version); 32 | WriteFString(File, Magic); 33 | WriteValue(File, Date); 34 | WriteFString(File, Mapfile); 35 | } 36 | }; 37 | -------------------------------------------------------------------------------- /Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Recorder/CarlaRecorderPosition.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma 2 | // de Barcelona (UAB). 3 | // 4 | // This work is licensed under the terms of the MIT license. 5 | // For a copy, see . 6 | 7 | #pragma once 8 | 9 | #include 10 | #include 11 | 12 | #pragma pack(push, 1) 13 | struct CarlaRecorderPosition 14 | { 15 | uint32_t DatabaseId; 16 | FVector Location; 17 | FVector Rotation; 18 | 19 | void Read(std::ifstream &InFile); 20 | 21 | void Write(std::ofstream &OutFile); 22 | 23 | }; 24 | #pragma pack(pop) 25 | 26 | class CarlaRecorderPositions 27 | { 28 | public: 29 | 30 | void Add(const CarlaRecorderPosition &InObj); 31 | 32 | void Clear(void); 33 | 34 | void Write(std::ofstream &OutFile); 35 | 36 | private: 37 | 38 | std::vector Positions; 39 | }; 40 | -------------------------------------------------------------------------------- /Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Recorder/CarlaRecorderState.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma 2 | // de Barcelona (UAB). 3 | // 4 | // This work is licensed under the terms of the MIT license. 5 | // For a copy, see . 6 | 7 | #pragma once 8 | 9 | #include 10 | 11 | #pragma pack(push, 1) 12 | 13 | struct CarlaRecorderStateTrafficLight 14 | { 15 | uint32_t DatabaseId; 16 | bool IsFrozen; 17 | float ElapsedTime; 18 | char State; 19 | 20 | void Read(std::ifstream &InFile); 21 | 22 | void Write(std::ofstream &OutFile); 23 | 24 | }; 25 | 26 | #pragma pack(pop) 27 | 28 | class CarlaRecorderStates 29 | { 30 | 31 | public: 32 | 33 | void Add(const CarlaRecorderStateTrafficLight &State); 34 | 35 | void Clear(void); 36 | 37 | void Write(std::ofstream &OutFile); 38 | 39 | private: 40 | 41 | std::vector StatesTrafficLights; 42 | }; 43 | -------------------------------------------------------------------------------- /Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Sensor/CollisionSensor.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma 2 | // de Barcelona (UAB). 3 | // 4 | // This work is licensed under the terms of the MIT license. 5 | // For a copy, see . 6 | 7 | #pragma once 8 | 9 | #include "Carla/Actor/ActorDefinition.h" 10 | #include "Carla/Sensor/Sensor.h" 11 | 12 | #include "CollisionSensor.generated.h" 13 | 14 | class UCarlaEpisode; 15 | class UCarlaGameInstance; 16 | 17 | /// A sensor to register collisions. 18 | UCLASS() 19 | class CARLA_API ACollisionSensor : public ASensor 20 | { 21 | GENERATED_BODY() 22 | 23 | public: 24 | 25 | static FActorDefinition GetSensorDefinition(); 26 | 27 | ACollisionSensor(const FObjectInitializer& ObjectInitializer); 28 | 29 | void SetOwner(AActor *NewOwner) override; 30 | 31 | private: 32 | 33 | UFUNCTION() 34 | void OnCollisionEvent( 35 | AActor *Actor, 36 | AActor *OtherActor, 37 | FVector NormalImpulse, 38 | const FHitResult &Hit); 39 | }; 40 | -------------------------------------------------------------------------------- /Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Sensor/DepthCamera.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma 2 | // de Barcelona (UAB). 3 | // 4 | // This work is licensed under the terms of the MIT license. 5 | // For a copy, see . 6 | 7 | #pragma once 8 | 9 | #include "Carla/Sensor/ShaderBasedSensor.h" 10 | 11 | #include "Carla/Actor/ActorDefinition.h" 12 | 13 | #include "DepthCamera.generated.h" 14 | 15 | /// Sensor that produces "depth" images. 16 | UCLASS() 17 | class CARLA_API ADepthCamera : public AShaderBasedSensor 18 | { 19 | GENERATED_BODY() 20 | 21 | public: 22 | 23 | static FActorDefinition GetSensorDefinition(); 24 | 25 | ADepthCamera(const FObjectInitializer &ObjectInitializer); 26 | 27 | protected: 28 | 29 | void Tick(float DeltaTime) override; 30 | }; 31 | -------------------------------------------------------------------------------- /Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Sensor/LaneInvasionSensor.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2019 Intel Labs. 2 | // 3 | // This work is licensed under the terms of the MIT license. 4 | // For a copy, see . 5 | 6 | #include "Carla.h" 7 | #include "Carla/Sensor/LaneInvasionSensor.h" 8 | 9 | FActorDefinition ALaneInvasionSensor::GetSensorDefinition() 10 | { 11 | return UActorBlueprintFunctionLibrary::MakeGenericSensorDefinition(TEXT("other"), TEXT("lane_invasion")); 12 | } 13 | 14 | ALaneInvasionSensor::ALaneInvasionSensor(const FObjectInitializer &ObjectInitializer) 15 | : Super(ObjectInitializer) 16 | { 17 | PrimaryActorTick.bCanEverTick = false; 18 | } 19 | -------------------------------------------------------------------------------- /Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Sensor/LaneInvasionSensor.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2019 Intel Labs. 2 | // 3 | // This work is licensed under the terms of the MIT license. 4 | // For a copy, see . 5 | 6 | #pragma once 7 | 8 | #include "Carla/Sensor/ShaderBasedSensor.h" 9 | 10 | #include "Carla/Actor/ActorDefinition.h" 11 | 12 | #include "LaneInvasionSensor.generated.h" 13 | 14 | /// LaneInvasion sensor representation 15 | /// The actual position calculation is done one client side 16 | UCLASS() 17 | class CARLA_API ALaneInvasionSensor : public ASensor 18 | { 19 | GENERATED_BODY() 20 | 21 | public: 22 | 23 | static FActorDefinition GetSensorDefinition(); 24 | 25 | ALaneInvasionSensor(const FObjectInitializer &ObjectInitializer); 26 | }; 27 | -------------------------------------------------------------------------------- /Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Sensor/RssSensor.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2019 Intel Labs. 2 | // 3 | // This work is licensed under the terms of the MIT license. 4 | // For a copy, see . 5 | 6 | #include "Carla.h" 7 | #include "Carla/Sensor/RssSensor.h" 8 | #include "StaticMeshResources.h" 9 | 10 | FActorDefinition ARssSensor::GetSensorDefinition() 11 | { 12 | return UActorBlueprintFunctionLibrary::MakeGenericSensorDefinition(TEXT("other"), TEXT("rss")); 13 | } 14 | 15 | ARssSensor::ARssSensor(const FObjectInitializer &ObjectInitializer) 16 | : Super(ObjectInitializer) 17 | { 18 | PrimaryActorTick.bCanEverTick = false; 19 | 20 | auto MeshComp = CreateDefaultSubobject(TEXT("RootComponent")); 21 | MeshComp->SetCollisionProfileName(UCollisionProfile::NoCollision_ProfileName); 22 | MeshComp->bHiddenInGame = true; 23 | MeshComp->CastShadow = false; 24 | RootComponent = MeshComp; 25 | } 26 | -------------------------------------------------------------------------------- /Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Sensor/RssSensor.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2019 Intel Labs. 2 | // 3 | // This work is licensed under the terms of the MIT license. 4 | // For a copy, see . 5 | 6 | #pragma once 7 | 8 | #include "Carla/Sensor/ShaderBasedSensor.h" 9 | 10 | #include "Carla/Actor/ActorDefinition.h" 11 | 12 | #include "RssSensor.generated.h" 13 | 14 | /// RSS sensor representation 15 | /// The actual calculation is done one client side 16 | UCLASS() 17 | class CARLA_API ARssSensor : public ASensor 18 | { 19 | GENERATED_BODY() 20 | 21 | public: 22 | 23 | static FActorDefinition GetSensorDefinition(); 24 | 25 | ARssSensor(const FObjectInitializer &ObjectInitializer); 26 | 27 | }; 28 | -------------------------------------------------------------------------------- /Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Sensor/SceneCaptureCamera.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma 2 | // de Barcelona (UAB). 3 | // 4 | // This work is licensed under the terms of the MIT license. 5 | // For a copy, see . 6 | 7 | #include "Carla.h" 8 | #include "Carla/Sensor/SceneCaptureCamera.h" 9 | 10 | FActorDefinition ASceneCaptureCamera::GetSensorDefinition() 11 | { 12 | constexpr bool bEnableModifyingPostProcessEffects = true; 13 | return UActorBlueprintFunctionLibrary::MakeCameraDefinition( 14 | TEXT("rgb"), 15 | bEnableModifyingPostProcessEffects); 16 | } 17 | 18 | ASceneCaptureCamera::ASceneCaptureCamera(const FObjectInitializer &ObjectInitializer) 19 | : Super(ObjectInitializer) 20 | { 21 | AddPostProcessingMaterial( 22 | TEXT("Material'/Carla/PostProcessingMaterials/PhysicLensDistortion.PhysicLensDistortion'")); 23 | } 24 | 25 | void ASceneCaptureCamera::Tick(float DeltaTime) 26 | { 27 | Super::Tick(DeltaTime); 28 | FPixelReader::SendPixelsInRenderThread(*this); 29 | } 30 | -------------------------------------------------------------------------------- /Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Sensor/SceneCaptureCamera.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma 2 | // de Barcelona (UAB). 3 | // 4 | // This work is licensed under the terms of the MIT license. 5 | // For a copy, see . 6 | 7 | #pragma once 8 | 9 | #include "Carla/Actor/ActorDefinition.h" 10 | #include "Carla/Sensor/PixelReader.h" 11 | #include "Carla/Sensor/ShaderBasedSensor.h" 12 | 13 | #include "SceneCaptureCamera.generated.h" 14 | 15 | /// A sensor that captures images from the scene. 16 | UCLASS() 17 | class CARLA_API ASceneCaptureCamera : public AShaderBasedSensor 18 | { 19 | GENERATED_BODY() 20 | 21 | public: 22 | 23 | static FActorDefinition GetSensorDefinition(); 24 | 25 | ASceneCaptureCamera(const FObjectInitializer &ObjectInitializer); 26 | 27 | protected: 28 | 29 | void Tick(float DeltaTime) override; 30 | }; 31 | -------------------------------------------------------------------------------- /Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Sensor/SemanticSegmentationCamera.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma 2 | // de Barcelona (UAB). 3 | // 4 | // This work is licensed under the terms of the MIT license. 5 | // For a copy, see . 6 | 7 | #pragma once 8 | 9 | #include "Carla/Sensor/ShaderBasedSensor.h" 10 | 11 | #include "Carla/Actor/ActorDefinition.h" 12 | 13 | #include "SemanticSegmentationCamera.generated.h" 14 | 15 | /// Sensor that produces "semantic segmentation" images. 16 | UCLASS() 17 | class CARLA_API ASemanticSegmentationCamera : public AShaderBasedSensor 18 | { 19 | GENERATED_BODY() 20 | 21 | public: 22 | 23 | static FActorDefinition GetSensorDefinition(); 24 | 25 | ASemanticSegmentationCamera(const FObjectInitializer &ObjectInitializer); 26 | 27 | protected: 28 | 29 | void Tick(float DeltaTime) override; 30 | }; 31 | -------------------------------------------------------------------------------- /Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Sensor/SensorFactory.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma 2 | // de Barcelona (UAB). 3 | // 4 | // This work is licensed under the terms of the MIT license. 5 | // For a copy, see . 6 | 7 | #pragma once 8 | 9 | #include "Carla/Actor/ActorSpawnResult.h" 10 | #include "Carla/Actor/CarlaActorFactory.h" 11 | 12 | #include "SensorFactory.generated.h" 13 | 14 | /// Factory in charge of spawning sensors. This factory is able to spawn every 15 | /// sensor registered in carla::sensor::SensorRegistry. 16 | UCLASS() 17 | class CARLA_API ASensorFactory : public ACarlaActorFactory 18 | { 19 | GENERATED_BODY() 20 | 21 | /// Retrieve the definitions of all the sensors registered in the 22 | /// SensorRegistry. Sensors must implement a GetSensorDefinition() static 23 | /// method. 24 | TArray GetDefinitions() final; 25 | 26 | FActorSpawnResult SpawnActor( 27 | const FTransform &SpawnAtTransform, 28 | const FActorDescription &ActorDescription) final; 29 | }; 30 | -------------------------------------------------------------------------------- /Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Server/CarlaServer.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma 2 | // de Barcelona (UAB). 3 | // 4 | // This work is licensed under the terms of the MIT license. 5 | // For a copy, see . 6 | 7 | #pragma once 8 | 9 | #include "Carla/Actor/ActorView.h" 10 | #include "Carla/Sensor/DataStream.h" 11 | 12 | #include "CoreMinimal.h" 13 | 14 | class UCarlaEpisode; 15 | 16 | class FCarlaServer 17 | { 18 | public: 19 | 20 | FCarlaServer(); 21 | 22 | ~FCarlaServer(); 23 | 24 | FDataMultiStream Start(uint16_t RPCPort, uint16_t StreamingPort); 25 | 26 | void NotifyBeginEpisode(UCarlaEpisode &Episode); 27 | 28 | void NotifyEndEpisode(); 29 | 30 | void AsyncRun(uint32 NumberOfWorkerThreads); 31 | 32 | void RunSome(uint32 Milliseconds); 33 | 34 | bool TickCueReceived(); 35 | 36 | void Stop(); 37 | 38 | FDataStream OpenStream() const; 39 | 40 | private: 41 | 42 | class FPimpl; 43 | TUniquePtr Pimpl; 44 | }; 45 | -------------------------------------------------------------------------------- /Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Settings/EpisodeSettings.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma 2 | // de Barcelona (UAB). 3 | // 4 | // This work is licensed under the terms of the MIT license. 5 | // For a copy, see . 6 | 7 | #pragma once 8 | 9 | #include "EpisodeSettings.generated.h" 10 | 11 | USTRUCT(BlueprintType) 12 | struct CARLA_API FEpisodeSettings 13 | { 14 | GENERATED_BODY() 15 | 16 | UPROPERTY(EditAnywhere, BlueprintReadWrite) 17 | bool bSynchronousMode = false; 18 | 19 | UPROPERTY(EditAnywhere, BlueprintReadWrite) 20 | bool bNoRenderingMode = false; 21 | 22 | TOptional FixedDeltaSeconds; 23 | }; 24 | -------------------------------------------------------------------------------- /Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Traffic/TrafficLightState.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma 2 | // de Barcelona (UAB). 3 | // 4 | // This work is licensed under the terms of the MIT license. 5 | // For a copy, see . 6 | 7 | #pragma once 8 | 9 | #include "TrafficLightState.generated.h" 10 | 11 | UENUM(BlueprintType) 12 | enum class ETrafficLightState : uint8 { 13 | Red UMETA(DisplayName = "Red"), 14 | Yellow UMETA(DisplayName = "Yellow"), 15 | Green UMETA(DisplayName = "Green") 16 | }; 17 | -------------------------------------------------------------------------------- /Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Traffic/TrafficSignBase.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma 2 | // de Barcelona (UAB). 3 | // 4 | // This work is licensed under the terms of the MIT license. 5 | // For a copy, see . 6 | 7 | #include "Carla.h" 8 | #include "TrafficSignBase.h" 9 | 10 | ATrafficSignBase::ATrafficSignBase(const FObjectInitializer &ObjectInitializer) 11 | : Super(ObjectInitializer) { 12 | PrimaryActorTick.bCanEverTick = false; 13 | 14 | RootComponent = 15 | ObjectInitializer.CreateDefaultSubobject(this, TEXT("SceneRootComponent")); 16 | RootComponent->SetMobility(EComponentMobility::Static); 17 | } 18 | -------------------------------------------------------------------------------- /Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Trigger/TriggerFactory.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2019 Computer Vision Center (CVC) at the Universitat Autonoma 2 | // de Barcelona (UAB). 3 | // 4 | // This work is licensed under the terms of the MIT license. 5 | // For a copy, see . 6 | 7 | #pragma once 8 | 9 | #include "Carla/Actor/ActorSpawnResult.h" 10 | #include "Carla/Actor/CarlaActorFactory.h" 11 | 12 | #include "TriggerFactory.generated.h" 13 | 14 | /// Factory in charge of spawning sensors. This factory is able to spawn every 15 | /// sensor registered in carla::sensor::SensorRegistry. 16 | UCLASS() 17 | class CARLA_API ATriggerFactory : public ACarlaActorFactory 18 | { 19 | GENERATED_BODY() 20 | 21 | /// Retrieve the definitions of all the sensors registered in the 22 | /// SensorRegistry. Sensors must implement a GetSensorDefinition() static 23 | /// method. 24 | TArray GetDefinitions() final; 25 | 26 | FActorSpawnResult SpawnActor( 27 | const FTransform &SpawnAtTransform, 28 | const FActorDescription &ActorDescription) final; 29 | 30 | }; 31 | -------------------------------------------------------------------------------- /Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Util/BoundingBox.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma 2 | // de Barcelona (UAB). 3 | // 4 | // This work is licensed under the terms of the MIT license. 5 | // For a copy, see . 6 | 7 | #pragma once 8 | 9 | #include "BoundingBox.generated.h" 10 | 11 | USTRUCT(BlueprintType) 12 | struct CARLA_API FBoundingBox 13 | { 14 | GENERATED_BODY() 15 | 16 | /// Origin of the bounding box relative to its owner. 17 | UPROPERTY(EditAnywhere, BlueprintReadWrite) 18 | FVector Origin = {0.0f, 0.0f, 0.0f}; 19 | 20 | /// Radii extent of the bounding box. 21 | UPROPERTY(EditAnywhere, BlueprintReadWrite) 22 | FVector Extent = {0.0f, 0.0f, 0.0f}; 23 | }; 24 | -------------------------------------------------------------------------------- /Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Util/BoundingBoxCalculator.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma 2 | // de Barcelona (UAB). 3 | // 4 | // This work is licensed under the terms of the MIT license. 5 | // For a copy, see . 6 | 7 | #pragma once 8 | 9 | #include "Carla/Util/BoundingBox.h" 10 | 11 | #include "Kismet/BlueprintFunctionLibrary.h" 12 | 13 | #include "BoundingBoxCalculator.generated.h" 14 | 15 | class AActor; 16 | 17 | UCLASS() 18 | class CARLA_API UBoundingBoxCalculator : public UBlueprintFunctionLibrary 19 | { 20 | GENERATED_BODY() 21 | 22 | public: 23 | 24 | /// Compute the bounding box of the given Carla actor. 25 | /// 26 | /// @warning If the actor type is not supported a default initialized bounding 27 | /// box is returned. 28 | /// 29 | /// @warning Traffic signs return its trigger box instead. 30 | UFUNCTION(Category = "Carla Actor", BlueprintCallable) 31 | static FBoundingBox GetActorBoundingBox(const AActor *Actor); 32 | }; 33 | -------------------------------------------------------------------------------- /Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Util/DebugShapeDrawer.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma 2 | // de Barcelona (UAB). 3 | // 4 | // This work is licensed under the terms of the MIT license. 5 | // For a copy, see . 6 | 7 | #pragma once 8 | 9 | class UWorld; 10 | 11 | namespace carla { namespace rpc { class DebugShape; }} 12 | 13 | class FDebugShapeDrawer 14 | { 15 | public: 16 | 17 | explicit FDebugShapeDrawer(UWorld &InWorld) : World(InWorld) {} 18 | 19 | void Draw(const carla::rpc::DebugShape &Shape); 20 | 21 | private: 22 | 23 | UWorld &World; 24 | }; 25 | -------------------------------------------------------------------------------- /Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Util/ListView.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma 2 | // de Barcelona (UAB). 3 | // 4 | // This work is licensed under the terms of the MIT license. 5 | // For a copy, see . 6 | 7 | #pragma once 8 | 9 | template 10 | class ListView 11 | { 12 | public: 13 | 14 | using iterator = IT; 15 | 16 | explicit ListView(iterator begin, iterator end) : Begin(begin), End(end) {} 17 | 18 | template 19 | explicit ListView(STL_CONTAINER &StlContainer) : 20 | Begin(iterator(StlContainer.begin())), 21 | End(iterator(StlContainer.end())) {} 22 | 23 | ListView(const ListView &) = default; 24 | ListView &operator=(const ListView &) = delete; 25 | 26 | iterator begin() const { 27 | return Begin; 28 | } 29 | 30 | iterator end() const { 31 | return End; 32 | } 33 | 34 | bool empty() const { 35 | return Begin == End; 36 | } 37 | 38 | private: 39 | 40 | const iterator Begin; 41 | 42 | const iterator End; 43 | }; 44 | -------------------------------------------------------------------------------- /Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Util/NavigationMesh.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2019 Computer Vision Center (CVC) at the Universitat Autonoma 2 | // de Barcelona (UAB). 3 | // 4 | // This work is licensed under the terms of the MIT license. 5 | // For a copy, see . 6 | 7 | #pragma once 8 | 9 | class FNavigationMesh 10 | { 11 | public: 12 | 13 | /// Return the Navigation Mesh Binary associated to @a MapName, or empty if the such 14 | /// file wasn't serialized. 15 | static TArray Load(FString MapName); 16 | }; 17 | -------------------------------------------------------------------------------- /Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Util/NonCopyable.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | class NonCopyable { 4 | public: 5 | 6 | NonCopyable() = default; 7 | 8 | NonCopyable(const NonCopyable &) = delete; 9 | 10 | void operator=(const NonCopyable &) = delete; 11 | }; 12 | -------------------------------------------------------------------------------- /Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Util/ScopedStack.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma 2 | // de Barcelona (UAB). 3 | // 4 | // This work is licensed under the terms of the MIT license. 5 | // For a copy, see . 6 | 7 | #pragma once 8 | 9 | #include 10 | #include 11 | 12 | /// A stack to keep track of nested scopes. 13 | template 14 | class FScopedStack : private std::deque { 15 | using Super = std::deque; 16 | public: 17 | 18 | /// Push this scope into the stack. Automatically pops @a Value when the 19 | /// returned object goes out of the scope. 20 | template 21 | auto PushScope(V &&Value) 22 | { 23 | Super::emplace_back(std::forward(Value)); 24 | T *Pointer = &Super::back(); 25 | auto Deleter = [this](const T *) { Super::pop_back(); }; 26 | return std::unique_ptr(Pointer, Deleter); 27 | } 28 | 29 | using Super::empty; 30 | using Super::size; 31 | using Super::begin; 32 | using Super::end; 33 | }; 34 | -------------------------------------------------------------------------------- /Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Vehicle/CarlaWheeledVehicleState.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma 2 | // de Barcelona (UAB). 3 | // 4 | // This work is licensed under the terms of the MIT license. 5 | // For a copy, see . 6 | 7 | #pragma once 8 | 9 | #include "CarlaWheeledVehicleState.generated.h" 10 | 11 | /// State of a ACarlaWheeledVehicle, to be displayed in editor for debugging 12 | /// purposes. 13 | UENUM(BlueprintType) 14 | enum class ECarlaWheeledVehicleState : uint8 15 | { 16 | AutopilotOff UMETA(DisplayName = "Autopilot Off"), 17 | FreeDriving UMETA(DisplayName = "Free driving"), 18 | FollowingFixedRoute UMETA(DisplayName = "Following fixed route"), 19 | WaitingForRedLight UMETA(DisplayName = "Waiting for red light"), 20 | ObstacleAhead UMETA(DisplayName = "Obstacle ahead"), 21 | UNKNOWN UMETA(DisplayName = "Unknown") 22 | }; 23 | -------------------------------------------------------------------------------- /Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Vehicle/VehicleSpawnPoint.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma 2 | // de Barcelona (UAB). 3 | // 4 | // This work is licensed under the terms of the MIT license. 5 | // For a copy, see . 6 | 7 | #pragma once 8 | 9 | #include "Engine/TargetPoint.h" 10 | #include "VehicleSpawnPoint.generated.h" 11 | 12 | /// Base class for spawner locations for walkers. 13 | UCLASS() 14 | class CARLA_API AVehicleSpawnPoint : public ATargetPoint 15 | { 16 | GENERATED_BODY() 17 | }; 18 | -------------------------------------------------------------------------------- /Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Walker/WalkerBoneControl.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma 2 | // de Barcelona (UAB). 3 | // 4 | // This work is licensed under the terms of the MIT license. 5 | // For a copy, see . 6 | 7 | #pragma once 8 | 9 | #include "WalkerBoneControl.generated.h" 10 | 11 | USTRUCT(BlueprintType) 12 | struct CARLA_API FWalkerBoneControl 13 | { 14 | GENERATED_BODY() 15 | 16 | UPROPERTY(Category = "Walker Bone Control", EditAnywhere, BlueprintReadWrite) 17 | TMap BoneTransforms; 18 | 19 | }; 20 | -------------------------------------------------------------------------------- /Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Walker/WalkerControl.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma 2 | // de Barcelona (UAB). 3 | // 4 | // This work is licensed under the terms of the MIT license. 5 | // For a copy, see . 6 | 7 | #pragma once 8 | 9 | #include "WalkerControl.generated.h" 10 | 11 | USTRUCT(BlueprintType) 12 | struct CARLA_API FWalkerControl 13 | { 14 | GENERATED_BODY() 15 | 16 | UPROPERTY(Category = "Walker Control", EditAnywhere, BlueprintReadWrite) 17 | FVector Direction = {1.0f, 0.0f, 0.0f}; 18 | 19 | UPROPERTY(Category = "Walker Control", EditAnywhere, BlueprintReadWrite) 20 | float Speed = 0.0f; 21 | 22 | UPROPERTY(Category = "Walker Control", EditAnywhere, BlueprintReadWrite) 23 | bool Jump = false; 24 | }; 25 | -------------------------------------------------------------------------------- /Unreal/CarlaUE4/Plugins/CarlaExporter/CarlaExporter.uplugin: -------------------------------------------------------------------------------- 1 | { 2 | "FileVersion": 3, 3 | "Version": 1, 4 | "VersionName": "1.0", 5 | "FriendlyName": "CarlaExporter", 6 | "Description": "Export geometry for using in Recast", 7 | "Category": "Other", 8 | "CreatedBy": "Carla Team", 9 | "CreatedByURL": "", 10 | "DocsURL": "", 11 | "MarketplaceURL": "", 12 | "SupportURL": "", 13 | "CanContainContent": false, 14 | "IsBetaVersion": false, 15 | "Installed": false, 16 | "Modules": [ 17 | { 18 | "Name": "CarlaExporter", 19 | "Type": "Editor", 20 | "LoadingPhase": "Default" 21 | } 22 | ] 23 | } 24 | -------------------------------------------------------------------------------- /Unreal/CarlaUE4/Plugins/CarlaExporter/Source/CarlaExporter/Private/CarlaExporterCommands.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2019 Computer Vision Center (CVC) at the Universitat Autonoma 2 | // de Barcelona (UAB). 3 | // 4 | // This work is licensed under the terms of the MIT license. 5 | // For a copy, see . 6 | 7 | #include "CarlaExporterCommands.h" 8 | 9 | #define LOCTEXT_NAMESPACE "FCarlaExporterModule" 10 | 11 | void FCarlaExporterCommands::RegisterCommands() 12 | { 13 | UI_COMMAND(PluginActionExportAll, "Carla Exporter", "Export all or selected meshes into an .OBJ file to be used by Carla (in /saved/ folder)", EUserInterfaceActionType::Button, FInputGesture()); 14 | } 15 | 16 | #undef LOCTEXT_NAMESPACE 17 | -------------------------------------------------------------------------------- /Unreal/CarlaUE4/Plugins/CarlaExporter/Source/CarlaExporter/Public/CarlaExporter.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2019 Computer Vision Center (CVC) at the Universitat Autonoma 2 | // de Barcelona (UAB). 3 | // 4 | // This work is licensed under the terms of the MIT license. 5 | // For a copy, see . 6 | 7 | #pragma once 8 | 9 | #include "CoreMinimal.h" 10 | #include "Modules/ModuleManager.h" 11 | #include 12 | 13 | class FToolBarBuilder; 14 | class FMenuBuilder; 15 | 16 | class FCarlaExporterModule : public IModuleInterface 17 | { 18 | public: 19 | 20 | /// IModuleInterface implementation 21 | virtual void StartupModule() override; 22 | virtual void ShutdownModule() override; 23 | 24 | /// This function will be bound to Command. 25 | void PluginButtonClicked(); 26 | 27 | private: 28 | 29 | void AddMenuExtension(FMenuBuilder& Builder); 30 | 31 | private: 32 | TSharedPtr PluginCommands; 33 | }; 34 | -------------------------------------------------------------------------------- /Unreal/CarlaUE4/Plugins/CarlaExporter/Source/CarlaExporter/Public/CarlaExporterCommands.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2019 Computer Vision Center (CVC) at the Universitat Autonoma 2 | // de Barcelona (UAB). 3 | // 4 | // This work is licensed under the terms of the MIT license. 5 | // For a copy, see . 6 | 7 | #pragma once 8 | 9 | #include "CoreMinimal.h" 10 | #include "Framework/Commands/Commands.h" 11 | #include "EditorStyleSet.h" 12 | 13 | class FCarlaExporterCommands : public TCommands 14 | { 15 | public: 16 | 17 | FCarlaExporterCommands() 18 | : TCommands( 19 | TEXT("CarlaExporter"), 20 | NSLOCTEXT("Contexts", "CarlaExporter", "CarlaExporter Plugin"), 21 | NAME_None, 22 | FEditorStyle::GetStyleSetName()) 23 | { 24 | } 25 | 26 | // TCommands<> interface 27 | virtual void RegisterCommands() override; 28 | 29 | public: 30 | TSharedPtr< FUICommandInfo > PluginActionExportAll; 31 | }; 32 | -------------------------------------------------------------------------------- /Unreal/CarlaUE4/Source/CarlaUE4.Target.cs: -------------------------------------------------------------------------------- 1 | // Fill out your copyright notice in the Description page of Project Settings. 2 | 3 | using UnrealBuildTool; 4 | using System.Collections.Generic; 5 | 6 | public class CarlaUE4Target : TargetRules 7 | { 8 | public CarlaUE4Target(TargetInfo Target) : base(Target) 9 | { 10 | Type = TargetType.Game; 11 | ExtraModuleNames.Add("CarlaUE4"); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /Unreal/CarlaUE4/Source/CarlaUE4/CarlaUE4.Build.cs: -------------------------------------------------------------------------------- 1 | // Fill out your copyright notice in the Description page of Project Settings. 2 | 3 | using UnrealBuildTool; 4 | 5 | public class CarlaUE4 : ModuleRules 6 | { 7 | public CarlaUE4(ReadOnlyTargetRules Target) : base(Target) 8 | { 9 | PrivatePCHHeaderFile = "CarlaUE4.h"; 10 | 11 | PublicDependencyModuleNames.AddRange(new string[] { "Core", "CoreUObject", "Engine", "InputCore" }); 12 | 13 | if (Target.Type == TargetType.Editor) 14 | { 15 | PublicDependencyModuleNames.AddRange(new string[] { "UnrealEd" }); 16 | } 17 | 18 | PrivateDependencyModuleNames.AddRange(new string[] { }); 19 | 20 | // Uncomment if you are using Slate UI 21 | // PrivateDependencyModuleNames.AddRange(new string[] { "Slate", "SlateCore" }); 22 | 23 | // Uncomment if you are using online features 24 | // PrivateDependencyModuleNames.Add("OnlineSubsystem"); 25 | 26 | // To include OnlineSubsystemSteam, add it to the plugins section in your uproject file with the Enabled attribute set to true 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /Unreal/CarlaUE4/Source/CarlaUE4/CarlaUE4.cpp: -------------------------------------------------------------------------------- 1 | // Fill out your copyright notice in the Description page of Project Settings. 2 | 3 | #include "CarlaUE4.h" 4 | 5 | IMPLEMENT_PRIMARY_GAME_MODULE( FDefaultGameModuleImpl, CarlaUE4, "CarlaUE4" ); 6 | -------------------------------------------------------------------------------- /Unreal/CarlaUE4/Source/CarlaUE4/CarlaUE4.h: -------------------------------------------------------------------------------- 1 | // Fill out your copyright notice in the Description page of Project Settings. 2 | 3 | #pragma once 4 | 5 | #include "Engine.h" 6 | 7 | #include "Util/NonCopyable.h" 8 | -------------------------------------------------------------------------------- /Unreal/CarlaUE4/Source/CarlaUE4Editor.Target.cs: -------------------------------------------------------------------------------- 1 | // Fill out your copyright notice in the Description page of Project Settings. 2 | 3 | using UnrealBuildTool; 4 | using System.Collections.Generic; 5 | 6 | public class CarlaUE4EditorTarget : TargetRules 7 | { 8 | public CarlaUE4EditorTarget(TargetInfo Target) : base(Target) 9 | { 10 | Type = TargetType.Editor; 11 | ExtraModuleNames.Add("CarlaUE4"); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /Util/BuildTools/Environment.sh: -------------------------------------------------------------------------------- 1 | #! /bin/bash 2 | 3 | # Sets the environment for other shell scripts. 4 | 5 | set -e 6 | 7 | CURDIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )/../.." && pwd )" 8 | source $(dirname "$0")/Vars.mk 9 | unset CURDIR 10 | 11 | if [ -n "${CARLA_BUILD_NO_COLOR}" ]; then 12 | 13 | function log { 14 | echo "`basename "$0"`: $1" 15 | } 16 | 17 | function fatal_error { 18 | echo -e >&2 "`basename "$0"`: ERROR: $1" 19 | exit 2 20 | } 21 | 22 | else 23 | 24 | function log { 25 | echo -e "\033[1;35m`basename "$0"`: $1\033[0m" 26 | } 27 | 28 | function fatal_error { 29 | echo -e >&2 "\033[0;31m`basename "$0"`: ERROR: $1\033[0m" 30 | exit 2 31 | } 32 | 33 | fi 34 | 35 | function get_git_repository_version { 36 | git describe --tags --dirty --always 37 | } 38 | 39 | function copy_if_changed { 40 | mkdir -p $(dirname $2) 41 | rsync -cIr --out-format="%n" $1 $2 42 | } 43 | 44 | function move_if_changed { 45 | copy_if_changed $1 $2 46 | rm -f $1 47 | } 48 | 49 | CARLA_BUILD_CONCURRENCY=`nproc --all` 50 | -------------------------------------------------------------------------------- /Util/Docker/Carla.Dockerfile: -------------------------------------------------------------------------------- 1 | FROM carla-prerequisites:latest 2 | 3 | ARG GIT_BRANCH 4 | 5 | USER ue4 6 | 7 | RUN cd /home/ue4 && \ 8 | if [ -z ${GIT_BRANCH+x} ]; then git clone --depth 1 https://github.com/carla-simulator/carla.git; \ 9 | else git clone --depth 1 --branch $GIT_BRANCH https://github.com/carla-simulator/carla.git; fi && \ 10 | cd /home/ue4/carla && \ 11 | ./Update.sh && \ 12 | make CarlaUE4Editor && \ 13 | make PythonAPI && \ 14 | make build.utils && \ 15 | make package && \ 16 | rm -r /home/ue4/carla/Dist 17 | 18 | WORKDIR /home/ue4/carla 19 | -------------------------------------------------------------------------------- /Util/Docker/Release.Dockerfile: -------------------------------------------------------------------------------- 1 | # Make sure drivers are >= 390 2 | # docker run -p 2000-2002:2000-2002 --runtime=nvidia -e NVIDIA_VISIBLE_DEVICES=ID carla:latest ./CarlaUE4.sh 3 | # -carla-rpc-port=2000 -carla-streaming-port=2001 4 | 5 | FROM nvidia/vulkan:1.1.121-cuda-10.1-alpha 6 | 7 | RUN packages='libsdl2-2.0' \ 8 | && apt-get update && apt-get install -y $packages --no-install-recommends \ 9 | && rm -rf /var/lib/apt/lists/* 10 | 11 | RUN useradd -m carla 12 | 13 | COPY --chown=carla:carla . /home/carla 14 | 15 | USER carla 16 | WORKDIR /home/carla 17 | 18 | ENV SDL_VIDEODRIVER=offscreen 19 | 20 | CMD /bin/bash CarlaUE4.sh 21 | -------------------------------------------------------------------------------- /Util/Docker/requirements.txt: -------------------------------------------------------------------------------- 1 | docker 2 | -------------------------------------------------------------------------------- /Util/DockerUtils/.gitignore: -------------------------------------------------------------------------------- 1 | dist/* 2 | 3 | !dist/addOBJ.py 4 | !dist/build.bat 5 | !dist/build.sh 6 | !dist/get_xodr_crosswalks.py 7 | 8 | fbx/build 9 | fbx/dependencies 10 | -------------------------------------------------------------------------------- /Util/DockerUtils/dist/build.bat: -------------------------------------------------------------------------------- 1 | @rem convert FBX to OBJ 2 | FBX2OBJ.exe %1.fbx %1.obj 3 | 4 | @rem parse openDRIVE crosswalks (generate crosswalks.obj) 5 | python get_xodr_crosswalks.py -f %1.xodr 6 | 7 | @rem join both OBJ 8 | python addOBJ.py %1.obj crosswalks.obj 9 | 10 | @rem calculate the BIN file (result is same name .BIN) 11 | RecastBuilder.exe %1.obj 12 | -------------------------------------------------------------------------------- /Util/DockerUtils/dist/build.sh: -------------------------------------------------------------------------------- 1 | # convert FBX to OBJ 2 | chmod +x FBX2OBJ 3 | ./FBX2OBJ "$1.fbx" "$1.obj" 4 | 5 | # parse openDRIVE crosswalks (generate crosswalks.obj) 6 | python get_xodr_crosswalks.py -f "$1.xodr" 7 | 8 | # join both OBJ 9 | python addOBJ.py "$1.obj" crosswalks.obj 10 | 11 | # calculate the BIN file (result is same name .BIN) 12 | chmod +x RecastBuilder 13 | ./RecastBuilder "$1.obj" 14 | -------------------------------------------------------------------------------- /Util/DockerUtils/fbx/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # use: ./build/cmake .. -A x64 2 | # Download from: https://www.autodesk.com/content/dam/autodesk/www/adn/fbx/2020-0-1/fbx202001_fbxsdk_linux.tar.gz 3 | # Dependencies: 4 | # sudo apt-get install libxml2-dev 5 | 6 | cmake_minimum_required(VERSION 2.8.9) 7 | project(FBX2OBJ) 8 | 9 | set(CMAKE_GENERATOR_PLATFORM x64) 10 | 11 | #find_package(LibXml2 REQUIRED) 12 | 13 | # include folders 14 | include_directories(src) 15 | include_directories(dependencies/include) 16 | 17 | # library folders 18 | link_directories(dependencies/lib/gcc/x64/release) 19 | 20 | # sources 21 | file(GLOB SOURCES "src/*.cpp") 22 | add_executable(FBX2OBJ ${SOURCES}) 23 | 24 | # install location 25 | install(TARGETS FBX2OBJ DESTINATION "${CMAKE_CURRENT_SOURCE_DIR}/../dist") 26 | 27 | # libraries to link 28 | target_link_libraries(FBX2OBJ libfbxsdk.so) 29 | target_link_libraries(FBX2OBJ dl) 30 | target_link_libraries(FBX2OBJ z) 31 | target_link_libraries(FBX2OBJ xml2) 32 | -------------------------------------------------------------------------------- /Util/ImportAssets.sh: -------------------------------------------------------------------------------- 1 | #! /bin/bash 2 | 3 | # ============================================================================== 4 | # -- Parse arguments ----------------------------------------------------------- 5 | # ============================================================================== 6 | 7 | DOC_STRING="Unpack and copy over CarlaUE4's Exported Assets" 8 | 9 | USAGE_STRING="Usage: $0 [-h|--help] [-d|--dir] " 10 | 11 | OUTPUT_DIRECTORY="" 12 | 13 | OPTS=`getopt -o h,d:: --long help,dir:: -n 'parse-options' -- "$@"` 14 | 15 | if [ $? != 0 ] ; then echo "$USAGE_STRING" ; exit 2; fi 16 | 17 | eval set -- "$OPTS" 18 | 19 | while true; do 20 | case "$1" in 21 | --dir ) 22 | OUTPUT_DIRECTORY="$2" 23 | shift ;; 24 | -h | --help ) 25 | echo "$DOC_STRING" 26 | echo "$USAGE_STRING" 27 | exit 1 28 | ;; 29 | * ) 30 | break ;; 31 | esac 32 | done 33 | 34 | #Tar.gz the stuff 35 | for filepath in `find Import/ -type f -name "*.tar.gz"`; do 36 | tar --keep-newer-files -xvf ${filepath} 37 | done 38 | 39 | -------------------------------------------------------------------------------- /docs/fonts/fontawesome-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdaCompNUS/summit/1affe14ef7fab006d78266d63e289940ca9d43ac/docs/fonts/fontawesome-webfont.eot -------------------------------------------------------------------------------- /docs/fonts/fontawesome-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdaCompNUS/summit/1affe14ef7fab006d78266d63e289940ca9d43ac/docs/fonts/fontawesome-webfont.ttf -------------------------------------------------------------------------------- /docs/fonts/fontawesome-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdaCompNUS/summit/1affe14ef7fab006d78266d63e289940ca9d43ac/docs/fonts/fontawesome-webfont.woff -------------------------------------------------------------------------------- /docs/img/beijing.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdaCompNUS/summit/1affe14ef7fab006d78266d63e289940ca9d43ac/docs/img/beijing.png -------------------------------------------------------------------------------- /docs/img/chandni_chowk.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdaCompNUS/summit/1affe14ef7fab006d78266d63e289940ca9d43ac/docs/img/chandni_chowk.png -------------------------------------------------------------------------------- /docs/img/cover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdaCompNUS/summit/1affe14ef7fab006d78266d63e289940ca9d43ac/docs/img/cover.png -------------------------------------------------------------------------------- /docs/img/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdaCompNUS/summit/1affe14ef7fab006d78266d63e289940ca9d43ac/docs/img/favicon.ico -------------------------------------------------------------------------------- /docs/img/highway.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdaCompNUS/summit/1affe14ef7fab006d78266d63e289940ca9d43ac/docs/img/highway.png -------------------------------------------------------------------------------- /docs/img/magic.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdaCompNUS/summit/1affe14ef7fab006d78266d63e289940ca9d43ac/docs/img/magic.png -------------------------------------------------------------------------------- /docs/img/meskel_square.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdaCompNUS/summit/1affe14ef7fab006d78266d63e289940ca9d43ac/docs/img/meskel_square.png -------------------------------------------------------------------------------- /docs/img/shi_men_er_lu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdaCompNUS/summit/1affe14ef7fab006d78266d63e289940ca9d43ac/docs/img/shi_men_er_lu.png -------------------------------------------------------------------------------- /docs/img/shibuya.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdaCompNUS/summit/1affe14ef7fab006d78266d63e289940ca9d43ac/docs/img/shibuya.png -------------------------------------------------------------------------------- /docs/sitemap.xml.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdaCompNUS/summit/1affe14ef7fab006d78266d63e289940ca9d43ac/docs/sitemap.xml.gz -------------------------------------------------------------------------------- /setup_unreal.sh: -------------------------------------------------------------------------------- 1 | sudo apt-add-repository "deb http://apt.llvm.org/focal/ llvm-toolchain-focal main" 2 | sudo apt-get install build-essential clang-10 lld-10 g++-7 cmake ninja-build libvulkan1 python3-dev python3-pip python-is-python3 libpng-dev libtiff5-dev libjpeg-dev tzdata sed curl unzip autoconf libtool rsync libxml2-dev git 3 | sudo update-alternatives --install /usr/bin/clang++ clang++ /usr/lib/llvm-10/bin/clang++ 180 && 4 | sudo update-alternatives --install /usr/bin/clang clang /usr/lib/llvm-10/bin/clang 180 5 | 6 | pip3 install --user setuptools 7 | sudo update-alternatives --install /usr/bin/clang++ clang++ /usr/lib/llvm-10/bin/clang++ 180 8 | sudo update-alternatives --install /usr/bin/clang clang /usr/lib/llvm-10/bin/clang 180 9 | 10 | git clone --depth 1 -b 4.26 https://github.com/CarlaUnreal/UnrealEngine.git ~/UnrealEngine_4.26 11 | cd ~/UnrealEngine_4.26 12 | ./Setup.sh && ./GenerateProjectFiles.sh && make 13 | -------------------------------------------------------------------------------- /wheel_config.ini: -------------------------------------------------------------------------------- 1 | [G29 Racing Wheel] 2 | steering_wheel = 0 3 | throttle = 2 4 | brake = 3 5 | reverse = 5 6 | handbrake = 4 7 | --------------------------------------------------------------------------------