Anthony Courchesne

Robotics Machine Learning Software Development



Education

Mila - Research Master (ongoing) GPA: 4.0

McGill - B.S. Computer Science GPA: 3.37

Publications

Outreach

Covid research contribution

Work experience

Projects

3D-printed mechanical arm

Personal project Robotics Raspberry Pi Arch Linux ARM node.js

The goal of the project was to setup a mechanical arm with a very low budget. Using cheap servos and 3D-printed material, I was able to build a 4 DoF mechanical arm. I used a Raspberry Pi 3B with nodejs and nginx to accept controls via HTTP methods. To manually command the arm, I created a simple web page that could be run on an iPad. Ultimately, the arm was not precise enough to be able to complete complex task, so I did not spend time implementing an automatic controller. Nonetheless, the setup cost ~20$ and could be used for simple switch flipping or similar easy tasks that could be automated.

Mechanical arm demo

Occupancy Grid Mapping

School project Robotics ROS Python

For this project we were given a simulation with input from a 2D laser scan of the environment from the robot's perspective. The whole simulation in RVIZ was given and we had to implement an Occupancy Grid Mapping system to generate the map.

Occupancy Grid Mapping demo

Personality Categorization given facial features desciption

School project Computer Vision Feed-forward Neural Network Tensorflow Python

We were tasked to build a software that could predict the gender, the personnality and age group of a user, given a short text bio, oxford feature of faces in their profile picture and non-descriptive ID of page that they liked. We used multiple model (Support Vector Machine, Multi-layer Perceptron, Relational data Graph Convolutional Network) and we were able to get excellent prediction score (user01) for all targets variables

Oxford feature for face analysis

Image analysis - Kaggle competition

School project Machine Learning Convolutional Neural Network Python

Given a dataset of google draw images with added noise, we were tasked to locate and identify the image amongst 31 different categories. After trying a linear support vector machine and a feed-forward neural network, we were able to obtain the best performance using a convolutional neural network achieving an accuracy of 89.2% on the test set (according to Kaggle), placing us at the first place of the class competition.

Multi-agent pathfinding

School project Path Planning Simulation Unity C#

We were asked to create a simulation of a two-storey shopping center with 1 unit wide ramps. Multiple agents are presents and at each iteration, each of them is assigned a random destination in the mall. The challenge was to compute the shortest path by avoiding both randomized static objects (plants) and dynamic obstacles (other shoppers trying to reach their destination). Silver's reservation-based cooperative pathfinding.

cooperative pathfinding demo

Educational Climate Application

Research project Educational React.js

As a research project supervised by N. Cowan (McGill Space Institute), I build an educational web-application using react.js to compute and show the temperature of a planet's surface as a function of the stellar radiation, the planet's albedo and the atmospheric layer's infrared opacity. The most recent version of this project is available at climateapp.ca. For a more extensive description of the application, please consult the instructions.

Climate App demo

PID Controller

School project Robotics ROS C++

The task was to follow implement a PID controller in a given RVIZ simulation. We were given the input from the front laser scanner and we had to make the robot follow the left wall at a fixed distance.

PID Controller demo

Depth from Stereo Disparity

School project Computer Vision Python

Given a pair of stereo-rectified images from the KITTI dataset, I build a program that is able to compute the depth map of the scene. The program first compute the disparity map using block matching along horizontal epipolar lines, which is not a state-of-the-art algorithm, so it could not be used in real-time.

A* implementation & Rapidely Exploring Tree

School project Path Planning Python

As an assignment, we were asked to implement A* to quickly and efficiently compute the shortest path to a randomized target point. As a second assignment, we were asked to complete a similar task using a RRT algorithm.

Obstacle avoidance

School project Simulation Unity C#

The goal was to create a simulation where an agent has to explore 4 rooms on each side of a busy street. Randomly generated pedestrians are trying to cross the road. At each given timestep, a pedestrian can choose to change lane, move a bit within a lane, stop completely or decide to do a few step backward. The agent (while not able to avoid pedestrian from running into him) will try to avoid being in the same lane as a pedestrian while completing his task. Once done, he will reach the goal line on the right.

Obstacle avoidance demo