Here are some of my software projects! My GitHub repo is okay.. but totally could be better organized! π¨βπ»
While looking into algorithms for navigation and path planning for my robotics interest, I was challenged by my supervisor at the time to explore into the A* path planning algorithm and to develop a quick mock-up to demonstrate and practice the fundamentals of that algorithm.
I wrote a quick Python program to demonstrate the A* path finding algorithm. I did not have time to build a dedicated GUI, so I had to use arrays to store coordinates of blockages, waypoints, as well as using a 2D array to visualize and display the path planning.
Python Code
More Python Code
ROS2 is steadily becoming more industry standard and the shift from ROS to ROS2 is inevitable. I wanted to get a good understanding of ROS2 and played around with some introductory courses as well as intermediate courses in ROS2 principles and basics to better solidify my foundation of ROS.
This included developing more knowledge on Linux operation, automating tasks with shell scripts, and the usage of Gazebo, RViz, and ROS2Doctor for debugging.
This also included understanding the ROS2 structure with topics, actions, services, and interfaces and knowledge on how to develop these various elements including the launch files for them through Python.
Certificate for Basic Foundations for ROS
VSCode IDE & Gazebo
I wrote this program during my internship when our company was struggling to find a service to match employees every week for a quick coffee chat. Other market alternatives were quite expensive for their function, as well as unreliable as it would have duplicate matches and a poor algorithm for matching pairs.
I worked with my supervisor at the time to develop a "Fika Coffee Chat Bot". (Fika being a Swedish coffee tradition) This bot would match, rank, and score pairings. I helped write the UI and backend that handled sending out the emails and processing the matches which were provided by a program we developed in CSV format.
Email Sent to Fellow Employees
Sample Code
Sample Code
For one of my work/side personal projects, I thought it would be fun to interface an IMU chip (MPU6050) to develop a DIY accelerometer to measure, log, and display the acceleration information of the robots at work. I hooked up various components including an ESP8266, IMU, and SD card and designed a 3D Printed enclosure to house the project.
From there, I had to process the data from the IMU stream, and process it accordingly to get accurate results. I initially found a lot of inefficiencies and issues with the code loop, which was causing my poll rate to be at 10Hz. With some optimization, I was able to get the sensor polling rate to 300Hz which allowed for accurate results. I also wrote the code to interface the SD card reader as well as display results on an OLED screen utilizing PlatformIO and the Arduino core.
Hookup & Wiring
Sample Code
Sample Code 2
A typical starter project for Python is a Tic-Tac-Toe game, however it is usually a two-player version or require manual input. A friend challenged me to create a version of Tic-Tac-Toe that had an artificial player to make somewhat rational moves. (No random moves) This project was interesting as it required me to think outside the box and break down the game of tic-tac-toe into the core components. From there, the coding structure was created and a GUI was made with the popular tkinter library. This was a very fun project overall, this was my first attempt at a Python project and it turned out very well.