From Wikipedia, the free encyclopedia

This is the userpage of dllu. I work on robotics. I enjoy programming, 2D vector graphics, 3D graphics, physics, and photography.

  • 2008—2014 Bachelor of Applied Science, Engineering Physics at the University of British Columbia.
  • 2014—2016 Master of Science, Robotics at Carnegie Mellon University.
  • 2016—2020 Software Engineer, 3D mapping at Ouster, a manufacturer of automotive lidar.
  • 2020-2021 Staff Software Engineer, Tempus Ex Machina, a startup
  • 2021-2023 Senior Software Engineer, Tesla
  • 2023-present Software Engineer, Main Street Autonomy

I contribute mostly to articles related to computing, robotics, geometry, and various niche topics, although I sometimes contribute photos to other articles. Please feel free to add things to the articles listed below or post any questions to my talk page.

Articles I've contributed significantly to

Smaller articles I've contributed to

Pittsburgh

Sony a7R, Sony Zeiss Sonnar T* FE 55mm f/1.8 ZA

Organic Molecules Render

Created with Rhinoceros 3D and VRay.

BML Traffic Model

A globally jammed phase with a traffic density of 60%.
A free flowing phase with a traffic density of 28%.
A periodic intermediate phase with a traffic density of 38%.
A disordered intermediate phase with a traffic density of 39%.

Maze generation

30x20 "backtracking" maze generation.
30x20 "prim" maze generation.

Arbitrary selection of other diagrams I've made

Coherent point drift

These were made with the reference implementation of coherent point drift by Myronenko and Song.

Affine point set registration without noise.
Rigid point set registration with noise.
Non-rigid point set registration with noise.

Orbits of the Swinging Atwood's Machine

Type A orbits of the Swinging Atwood's machine.
Type B orbits of the Swinging Atwood's machine.

The following family of diagrams are generated by my C++ code, which can be found at [1].

Orbit with mu = 3 starting from rest.
Orbit with mu = 5 starting from rest.
Orbit with mu = 16 starting from rest.
Orbit with mu = 20 starting from rest.

Monte Carlo localization

I see a door.
I don't see a door.

A robot using Monte Carlo localization to determine its position in a one-dimensional circular corridor containing three doors, using only a sensor that detects whether or not there is a door. The vertical grey bars at the bottom are the locations of the particles which represent the robot's current belief of its position. More particles clustered together means the robot is more likely to be there.

The following family of diagrams are generated by my C++ code, which can be found at [2].

1. Initialization.
2. Sensor update.
3. Resampling.
4. Motion update.
5. Sensor update.
6. Resampling.
7. Motion update.
8. Sensor update.
9. Resampling.

Photography

Current gear

Camera

Lenses

Retired gear