What we've been up to, November 2021

What have we been up to since the last update? It’s been three months, so it’s time to share some of what we’ve made, seen and heard!

SIMAX

In our last update, we mentioned that we started working on porting our new simulation software to SIMAX, which is our Peugeot 308 simulator. Things have been moving along, encountering some bumps along the road, but nothing major.

simax_vhcd.jpg

Currently, we can drive using the real car controls (including gear shift) in the simulated world, which is projected onto the 9 main displays, covering over 270° of field of view. Performance isn’t perfect right now, but we already have plans for that: our scene is very under-optimized, and we have a complete hardware upgrade scheduled next year.

In the meantime, one of the last step to getting everything up and running is mirrors. In a previous article, I talked about mirrors being especially tricky to deal with in a simulator; they have a different view origin and are flipped horizontally. For that last point, I recently found out about output remapping, which allows doing exactly that, so that’s one thing less to worry about.

Automation

I already wrote a whole article about automation, but we’re still actively improving that front, this time focusing on “cluster management”. What we call a cluster is the network of computers actually powering the simulation in nDisplay-based simulator.

Managing a cluster is quite challenging, especially if you want the end-user (i.e. the experimenter) to be able to work with it in the easiest way possible, all the while making sure that everything is properly configured and minimizing risks of human errors.

veyon.png

At the core of our cluster, we use Veyon, which even though isn’t really made for that use case, is a really great tool for it. In its latest release, the tool has full support for CLI, so we leveraged on that to automate all that can be: powering on/off, starting/stopping the simulation, deploying packaged builds, configuring new cluster node (i.e. computers), and so on.

streamdeck.jpg

We even bought some Stream Decks so that each experimenter can configure its own button layout, perfectly optimized for the experiment they’re running. Remembering “which keybind does what” is a thing of the past!

SUaaVE

SUaaVE is still going on, and actually took the major part of our time in the past months. We’re preparing a large experiment, which includes external human-machines interfaces for the autonomous vehicle to better express its intentions.

So there’s been a lot of prototyping, testing, improving, bug-fixing and so on. We’re nearly there!

Rigging

Before getting into Unreal Engine, I knew pretty much nothing about rigging, other than that it existed. But for some reason, I’ve gotten myself into it, as it’s another great skill to have. I’ve taken a couple of vehicles from DMI and rigged them as learning exercises.

In my last example, I tried using Unreal’s new Control Rig plugin, which turned out to be really useful for what I was doing. Not sure if we’ll be using that excavator in the end, but it was fun to create!

PLEV

If you live in a relatively large city, chances are that you’ve encountered Personal Light Electric Vehicle (PLEV). You probably didn’t know, as I, that it was called that way. This somewhat new trend is the focus of one of our next project, called NEWMOB. In it, we’ll mostly focus on electric scooter, which I’ve already talked about it in our last article.

But there are many other vehicles in the PLEV category, that’s why I’ve been toying around with a few of them. I found some 3D models online, rigged them, and made a prototype rider animation blueprint (ABP). We’re actually in a process of creating a single “Rider” ABP for all personal light rides, which includes PLEV, but also bikes. That way, they’ll all share the same features (e.g. look at object) and make scenario creation even easier.

Our new platform really opens up a lot of new doors for us, such as studying those emerging transportation methods. We’re really excited, and we’re just getting started!

DSC

September was the annual time for the Driving Simulation Conference (DSC). I was really looking forward to Epic’s keynote (by Sébastien Lozé), but it was mostly rehashed content from Unreal Build: Automotive 2021, with some Metaverse added on top. So no real news on the Epic front.

If I had only one thing to mention from DSC, it was the new LED wall trend, as shown by Cruden. That technology seem to have a lot of advantages over traditional projector/screen displays, and we’d really like to try that. The price, however, is pretty prohibitive for us.

Virtual Driver

Some quick words about our Virtual Driver, which is getting improvements over time. It now knows how to laterally follow a lead car, i.e. maintain the same trajectory. We’ve also improved its junction crossing goal, so that it has a better slow down phase on approach, and speed up on exit.

vd_reach_sync.png

Another new purely-scenario goal is the “Sync Reach”, which allows scenario designer to ensure that a Virtual Driver will reach a given point in the environment at the same time that another car reaches its own target point. A common use-case is highway insertion, when you want to have traffic cars preventing the ego-vehicle from merging.

Open-source

I’ve contributed to some Unreal-related open-source projects in the past months, so I want to give a quick shout-out to them.

The LabStreamingLayer plugin is now available on the Marketplace! I co-maintain the plugin (with Chadwick Boulay), and it was my first Marketplace product, so that’s a great step.

The SDL2 plugin has a new maintainer (thanks JaydenMaalouf!), which fixed a lot of issues and added some very nice features. I really didn’t do much here, but I want to mention the project nonetheless.

The Git plugin also has a new maintainer in mastercoms, which also greatly improved on the existing plugin. My fork has some work on submodule support (history and diff).

Finally, I cannot fail to mention esmini, without which none of my work would be possible.

Behind the scenes

Before ending this, a few words about some “behind the scenes” work that isn’t shiny, but still important.

I’ve migrated our Passation feature-set to a Subsystem, which was the best way of learning about those. This will allow for cleaner and better future extensions of the whole system.

In the same idea, our own internal settings structure was moved from SaveGame to Project Settings, which is what it should have been in the first place, had I known that was possible.

And to close this post, we’ll hopefully soon get our hands on a Varjo XR-3. I’ve previously mentioned this VR (MR!) headset as one potential game changer for VR in driving simulation, so needless to say I am very excited about working with it. If (when!) that happens, I’ll make sure to give some feedback here.

Written on October 30, 2021