~8 Year Work Review

During regular conversations with friends, family, co-workers I know we have a trend of talking about all the cool projects we have been involved in. These projects could either be from school, work, or our own personal lives. A few days ago I had a chat with a new co-worker regarding all the activities I’ve had the pleasure to partake in while at Quanser. This conversation prompted me to reflect which led to this blog!

To give some context this is a brief history of my professional career… In April of 2016 I graduated from my undergraduate degree from the University of Ottawa, particularly from the department of Mechanical Engineering. When I first started my undergrad journey I had an affinity for automobiles, primarily in vehicle aerodynamics and design. During my transition from 2nd to 3rd years my electrical engineering course was accompanied with a group capstone-like project.

We could design and implement an electromechanical apparatus of our choosing. At this time I also got introduced to the world of quadcopters and quadcopter design. It was also around this time when I ran into the following video:

Quadcopter control by Prof.Raffaello D’Andrea

Another aspect of mechanical engineering which really peaked my interest were the aerodynamic concepts behind flight. Traditionally fixed wing aircraft were the most common way for hobbyist and researchers to experiment with aircraft in a safe manor. We all know our first test… Who could throw a paper airplanes the furthest!

Combining my curiosity with flight and this new concept called the quadcopter I took the opportunity to try this out during my electrical engineering course. By combining an off the shelf ESC (electronic speed controller) an Arduino, Bluetooth receiver, tablet and a lot of patience my team and I attempted to command a quadcopter via a smartphone device. My first successful test was done here:

Tablet turning on and off the motors on a hobby quadcopter

In this clip I was able to test out the start/stop capabilities of the Bluetooth app with the quadcopter.

To also better understand how each propeller worked I also played around with a single DOF device and created a PID controller using an Arduino, IMU, hobby motor, ESC and a lot of trial and error.

Arduino, IMU, ESC and motor test of a single DOF device

This were all fun tests for me because I was able to integrate a lot of the knowledge from university into a side project and test my personal design and coding skills.

Soon after graduation I was left with the question of where to go next career wise. Due to my academic standing I had been pre-admitted to the MEng program at the University of Ottawa. I knew I wanted to obtain a Masters degree however I wanted to make sure it was in an area of focus I personally enjoyed. Instead of jumping into school I joined the workforce in September of 2016 as a Mechanical Engineer for Quanser Consulting Inc.

During my first two years at Quanser I gained a lot of valuable mechanical design skills, primarily in robustness testing and assembly of quadcopters. Around 2018 I was given the opportunity to write a blog summarizing the crash testing result. This was the blog I wrote for Quanser:

Mechanical design blog of Quanser QDrone

It was around this time in 2018 when my responsibilities shifted. While I was still in the mechanical department I was also tasked to make updates to the underlying control software using by the Quanser QDrone. It was also at this time where I improved my familiarity with MATLAB SIMULINK which was the software used to develop the position controller used by the Quanser QDrone.

It was also in September of 2018 when I started my MEng program at the University of Toronto. While I was admitted to the Mechanical and Industrial Engineering program the majority of my time would be spent at the University of Toronto Institute of Aerospace Studies (UTIAS). I was able to both work fulltime while obtaining my Masters Degree. It was also around 2020 where I was able to focus more in software development, both a part of my Masters program and my work responsibilities at Quanser.

Utilizing the Autonomous Driving Toolbox from MATLAB and Quanser’s QCar I developed a lane keeping algorithm. A bird’s eye view image manipulation technique, along with a lane detection algorithm was used to calculate the turning command for the QCar as it drove along a track. If you’re curious of the results from this work you can review my blog:

Using the Autonomous Driving Toolbox for Autonomous Driving

It was also around 2020 when I was able to perform a research project with Prof.Hugh Liu from UTIAS. We focused on adapting a multiagent motion planning algorithm proposed by Dr.Dimitra Panagou from the University of Michigan Ann Arbor Campus, on differential drive mobile robots. The pandemic made it difficult for me to transfer the work to a hardware platform however using ROS 1 and the turtlebot Gazebo simulation a successful implementation was achieved. Video highlighting research results:

ROS 1 multiagent motion planning simulation using the turtlebot in gazebo

If you’re curious of the paper you can find it here:

This paper also highlights the software stack I proposed for the multiagent simulation along with simulation results in MATLAB and the performance results from ROS 1.

Post my Masters degree graduation I’ve also had the opportunity to train professors from universities all around the world! In this blog I highlight my customized training is very important for a successful user experience:

Customized training provided by Quanser

Due to my experience with software design, training experience and experience with University collaborations I got the opportunity to join the the Academic Applications team at Quanser in 2022. The Academic Applications Team is very unique due to all the layers required by the day-to-day tasks. I get to work in:

  • Software development ( Utilizing Python, MATLAB, ROS, C++)
  • Engage with customers for technical training
  • Deliver technical webinars
  • Travel with Regional Sales Managers as the technical expert

My experience as a senior member of the Academic Applications team has allowed me to transfer my knowledge in the form of technical webinars. As an example in 2022 I gave the following technical session on how a user could utilize ROS with the Quanser QCar. The technical webinar can be found here:

Interfacing ROS and Quanser Products

For individuals who like more of a written format I also wrote the following short blog to serve as a precursor to the webinar I gave:

My keen interest with quadcopters also gave me a huge privilege. I was given the opportunity to officially introduce the world to the Quanser QDrone2. An updated version of the Quanser QDrone I had worked with back in 2018. The reveal was given in the form of a technical webinar which can be seen here: 

Intro to QDrone2

This webinar also highlighted some of the Machine Learning work I had done in the past. In the past I utilized the Jetson Inference library with the Jetson nano for some fun image segmentation. I was able to combine this python experience with the Quanser QDrone2 to develop a hybrid application which did object detection during controlled flight!

In 2023 I was given a cool opportunity to manage and support a self-driving competition during the American Controls Conference happening in San Diego California. I always like to take inspiration on what’s been done before and so I took my experience from the DARPA challenges and asked students from 4 different universities to deliver to me the most feature complete map of the virtual environment created by Quanser and then transfer their knowledge to the physical hardware during the actual ACC conference.

As part of my work I helped each team get started with ROS 1 and ROS 2 using the virtual QCar and supported their implementation efforts during the actual competition. The full process was highlighted in the following technical blog!

ACC 2023 summary

Currently I’m working with the Director of Engineering, software , electrical and mechanical teams to develop an autonomous warehouse! My main focus has been to architect the software stack in such a way that students can write a simple python script and allow the autonomous warehouse to deploy the code on each device. This has been a fun challenge because I has been able to utilize my python networking skills (using the FASTAPI) to develop asynchronous/synchronous endpoints in charge of all the tasks required to take a task given by a student and trickle it down to the low level device command. There is a lot more work which has been put into this project, maybe I will turn this into another blog post!

It’s been a long journey and I’m looking forward to seeing what my next ~8 year work review will look like!

If you’d like to take a closer look at the software work I’ve done you can take a look at the following link:

Google drive portfolio

For code related my research project you can always check my Github Repo! https://github.com/jsp20

Leave a comment