Select Minor Projects

Mechatronics Engineering Course Projects

Mobile Robotics

For our lab on path planning, we implemented PRM and A* algorithms. We were able to generate a roadmap, and plan to different waypoints. Testing in simulation using Gazebo and (I believe) the real world.

Along with our Sensor Fusion course, the Mobile Robotics course covered state estimation, with methods such as KF/EKF and particle filters.

Sensor Fusion

For our final Sensor Fusion project of the term, my group developed a system to control a LIDAR and 3D camera to monitor a workspace, detect humans, and halt operation if needed. The system ensures that each direction was scanned in a timely manner to detect intrusions. Testing in simulation with Gazebo.

Points in directions to be checked

3D camera data, and subsampling

Digital Controls

The final project of our Digital Controls course involved designing a controller to control the position of a ball on a beam, where the beam could be tilted by moving a motor. The full project ultimately involved modelling, model identification, controller design, and translation to a digital controller.

Multivariable Control

The final project of our Multivariable Controls course involved controlling a 2D robotic arm with modelling errors and process noise to touch several points along a square. If I recall correctly, it was implemented with linearization, an EKF, and LQR control.

edX Online Course Projects

Dynamics and Control – Quadrotor Control

This project involved generating a trajectory for a quadrotor given waypoints, as well as control signals. The controllers needed to be tuned to achieve a maximum cumulative error in any dimension.

Animation/Simulation

This course covered topics on simulation, such as integration strategies, collision detection, physics, and constraints.

Software Development – Capstone Course

The capstone course involved the development of a query engine. This involved the reading of data on courses and rooms at UBC, parsing queries, providing results, and (not yet done) creating a web interface.

I enjoyed the testing aspect of development, which ranged from creating tests to cover hidden implementations, meeting code coverage requirements, and more.