Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Backend overhaul #111

Merged
merged 23 commits into from
Jun 3, 2023
Merged

Backend overhaul #111

merged 23 commits into from
Jun 3, 2023

Conversation

GustavoSilvera
Copy link
Collaborator

@GustavoSilvera GustavoSilvera commented May 7, 2023

This is a large PR that includes various (mostly-backend) fixes and improvements. Listed in order of importance:

  1. Add support for multiple EgoVehicle types (ex. more than just the Tesla Model 3). Currently include also a Jeep, a Mustang, and a Vespa for example, as well as a tutorial on how to add your own.
  2. Adding smart(ish) pointer management for all the major pointer connections between the major DReyeVR classes to help protect against eager garbage collection, object ownership, & dangling pointers (fixes a bug where replaying a recording that switches maps would crash the game bc dangling pointers to the original map were dereferenced; now this is more safely handled and pointers can be checked for validity before dereference).
  3. Revamping the custom configuration/parameter file class to use a new ConfigFile class that is more flexible and lends itself better to splitting the parameters between general DReyeVR things and specific-vehicle params (like where the camera goes in each particular vehicle mesh). Also adds a recording/replay correctness warning by comparing the loaded config files with those that were used at the time of recording.
  4. Adding steering wheel face buttons using DReyeVR custom actor API. These are lightweight (non-recorded) and helpful for user feedback visualization.
  5. Adding logic for (physical) steering wheel to follow vehicle wheels (ex. during autopilot) and with a user-tunable threshold for manual takeover.
  6. Fixed a bug where the custom shaders were not being cooked in package mode, resulting in only RGB camera mode.
  7. Added minor PythonAPI fixes and a __init__.py startup script to ideally better load the DReyeVR files into the python path.
@GustavoSilvera GustavoSilvera added bug Something isn't working documentation Improvements or additions to documentation enhancement New feature or request labels May 7, 2023
@GustavoSilvera GustavoSilvera self-assigned this May 7, 2023
@@ -0,0 +1,28 @@
import os, sys, glob
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this is a great idea and why doesn't carla do it already

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not sure, I only recently realized we could do this and it makes the PYTHONPATH stuff a lot easier.

Copy link
Contributor

@ajdroid ajdroid left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I recommend naming the Docs/EgoVehicle.md file to be something like New/CustomEgo

README.md Outdated
- See [`Signs.md`](Docs/Signs.md) to add custom in-world directional signs and spawn them
- See [`LODs.md`](Docs/LODs.md) to learn about LOD modes for tuning your VR experience
<!-- - See [`SetupVR.md`](Docs/SetupVR.md) to learn how to quickly and minimally set up VR with Carla -->
- See [`Docs/Tutorials/`](Docs/Tutorials/) to view several DReyeVR tutorials
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Let's give a little preview:

See Docs/Tutorials/ to view several DReyeVR tutorials to view several DReyeVR tutorials such as customizing the EgoVehicle, using our CustomActor API and others.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copy link
Contributor

@ajdroid ajdroid left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good to me -- excellent work here @GustavoSilvera !

@ajdroid ajdroid merged commit c9e3f20 into main Jun 3, 2023
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working documentation Improvements or additions to documentation enhancement New feature or request
2 participants