- Adding smart (weak) pointers for the major DReyeVR class connections to ensure better pointer validity before dereference. Helps with detecting dangling (freed, but not-null) pointers which happens commonly during map changes and would otherwise crash the replay system.
- Adding PythonAPI startup function (namely a custom
__init__.py
script that is loaded when usingDReyeVR_utils.py
) - Fix bug with shaders not being cooked in package mode
- Fine-tune ego-vehicle mirrors according to vehicle chassis
- Adding threshold for manual takeover of logitech inputs. Logitech wheel actuation follows autopilot otherwise.
- Disabling shadows for wheel face buttons
- Adding autopilot light indicator
- Add face button indicators on the steering wheel
- Revamping
ConfigFile
class rather than a staticReadConfigFile
helper function - Adding Config-file check as part of the tracked DReyeVRData, gives you a warning if your loaded ConfigFile is different from the one that was used during recording (so you can match your replay config with that which was recorded)
- Adding per-vehicle configuration files in
Content/DReyeVR/EgoVehicle
that can be selected via parameters. Allows parameterization of all EgoVehicle components, magic numbers (ex. location of camera, mirrors, engine), sound files, mirror meshes, steering wheel types, and enable/disable these on a highly granular basis - Revamp EgoVehicle input controls to use parent (ACarlaWheeledVehicle) controls and flush
- Disabling (turning invisible) default Carla spectator in map
- Added tutorial for custom EgoVehicle
- Fix bug where other non-ego Autopilto vehicles ignored the EgoVehicle and would routinely crash into it
- Fix bug where some EgoVehicle attributes were missing, notably
"number_of_wheels"
- Update documentation to refer to CarlaUnreal UE4 fork rather than HarpLab fork
- Apply patches for installation of zlib (broken link) and xerces (broken link &
-Dtranscoder=windows
flag) and PythonAPI - Fix crash on BeginPlay when EgoVehicle blueprint is already present in map (before world start)
- Prefer building PythonAPI with
python
rather than Windows built-inpy -3
(good if using conda) but fallback ifpython
is not available
- Update documentation, add developer-centric in-depth documentation
- Adding missing includes for TrafficSign RoadInfoSignal in SignComponent
- Replacing
DReyeVRData.inl
withDReyeVRData.cpp
and corresponding virtual classes - Add GitHub workflow for installing DReyeVR atop Carla and building LibCarla/PythonAPI (not CarlaUE4 which requires UnrealEngine)
- Fix bug where disabling mirrors causes a crash since the BP_model3 blueprint would be broken on construction
- Fix bug where replays would spawn another EgoVehicle/EgoSensor in the world (following the Carla spec) which caused multiple overlapping EgoVehicles to be in the world at once. Now we enforced in the Factory function that they are singletons
- Fix bug with replay interpolation not following our EgoVehicle by ticking the pose reenactment in the Carla tick rather than EgoVehicle::Tick
- Fix bug with spectator being reenacted by Carla, preferring to use our own ASpectator
- Automatically possess spectator pawn when EgoVehicle is destroyed. Can re-spawn EgoVehicle by pressing 1.
- Replace existing
LevelScript
(ADReyeVRLevel
) withGameMode
(ADReyeVRGameMode
). This allows us to not need to carry the (large) map blueprint files (ue4 binary) and we can use the vanilla Carla maps without modification. By default we spawn the EgoVehicle in the first of the recommended Carla locations, but this default behavior can be changed in the PythonAPI. For instance, you can delay spawning the EgoVehicle until via PythonAPI where you can specify the spawn transform. Existing functionality is preserved usingfind_ego_vehicle
andfind_ego_sensor
which spawn the DReyeVR EgoVehicle if it does not exist in the world. - Added
ADReyeVRFactory
as the Carla-esque spawning and registry functionality so theEgoVehicle
andEgoSensor
are spawned with the same "Factory" mechanisms as existing Carla vehicles/sensors/props/etc. - Renamed DReyeVR-specific actors to be addressible in PythonAPI as
"harplab.dreyevr_$X.$id"
such as"harplab.dreyevr_vehicle.model3"
and"harplab.dreyevr_sensor.ego_sensor"
. Avoids conflicts with existing Carla PythonAPI scripts that may filter on"vehicle.*"
. - Moved all blueprint (
.uasset
) content out of the Carla content (which is now entirely untouched, no need to re-update) to a separate Content folder that lies in/Game/Content/DReyeVR/
(renamed to support future DReyeVR blueprint changes without relying on Carla content). - Adding check that SRanipal is within one of our recommended supported versions:
1.3.1.1
,1.3.2.0
, &1.3.3.0
. Also provided links in the documentation to download these versions. Additionally included a workaround for the oldpatch-sranipal
which is now no longer needed. - Added custom
LogDReyeVR
macros (LOG
,LOG_WARN
,LOG_ERROR
) for improved logging with attached file, function, and line number to the message. Done in precompilation to avoid runtime performance overhead. - Improved
make check
to ensure that a 1:1 file correspondence exists between Carla dest and DReyeVR source, and that all files have equal content. - Improved vehicle dash with blinking turn signal and fixed bugs with inconsistent gear indicator.
- Fixed bugs and inconsistencies with replayer media control and special actions such as toggling reverse/turn signals in replay.
- Enabled cooking for
Town06
andTown07
in package/shipping mode. - Updated documentation and config file