Successful robotics projects lend themselves to interesting videos. Below are videos I’ve made for some of my recent projects.

Autonomous Car Driving in Reno, Nevada

I have written a software stack optimized for self-driving in suburban settings. Originally inspired by the architecture of Baidu's Apollo platform, this video shows my ROS-based system, nicknamed Artemis, driving our Lincoln MKZ in suburban Reno.

Beacon-Based Collision Avoidance

My team worked with a Canadian startup in 2021 and 2022 to demonstrate beacon-based pedestrian collision avoidance. The idea shown in the video below is that a pedestrian's iPhone app broadcasts in real time its owner's position to a server. As it is driving, the autonomous car queries that server to obtain the positions of nearby pedestrians. Using this data enables the car's motion planner to plan safer trajectories in the presence of sensor range limitations and occlusion.

This video shows one of the few tests where I was not the safety driver. Instead, I am the pedestrian running the app on my phone. You can see me walking into the path of the car, which autonomously stops as I walk out from behind a tree.

Automated Vehicle Simulation

There are many capable self-driving car simulators, but our simulation needs have tended not to align with the features provided by current open-source solutions, which focus on 3D worlds. We rarely need such graphics for our projects, but we must be able to accurately simulate vehicle dynamics, planning, and control. Consequently, I wrote a custom vehicle simulator, which uses simple OpenGL-based graphics and an Entity Component System (ECS) architecture that enables flexible simulation of vehicle and pedestrian behaviors. Thanks to its flexibility, we have used this simulator to rapidly prototype and debug controllers (including our current model predictive controller) and planners.

The video below shows a simulated pedestrian (the circle) crossing the path of a self-driving car (the rectangle). The car is following a path that was loaded from an actual drive of the physical Lincoln MKZ. The data for this simulation was generated as part of the beacon-based collision avoidance project described in the previous video.

ROS-based Autonomous Vehicle Visualization

My Artemis platform was initially inspired by Baidu's Apollo framework. However, the Apollo framework moved away from ROS and relied on custom middleware for critical components. One of my goals in developing a self-driving car software stack was to minimize dependencies outside of the ROS ecosystem as much as possible. But my team ran into difficulties with certain parts of ROS almost immediately, particularly around data management and visualization. The video below shows some of the difficulty of using ROS bags with the RVIZ visualizer. To overcome the shortcomings of ROS, I developed tools for data processing and visualization that could successfully deal with the large volume of data generated by a self-driving car.