Parasol Lab Projects
ROS2
ROS 2 (Robot Operating System 2) is a flexible framework designed to aid the development of robotic applications. Currently I am learning ROS2 through CLI tool. Concepts I have learned include nodes (the fundamental building block), topics (allows nodes to exchange messages through a publisher/subscriber format), services (a simpler communication method using request/response format), params, actions, underlay/overlay, launching files, and how to write everything I mentioned above.
On the right is a pdf version of my OneNote that I use to take ROS2 notes.
Gazebo
Gazebo provides a realistic simulation environment that includes physics, lighting, and sensor data. On the left is a video of me learning Gazebo, where I create a waffle_pi turtlebot3 model within a house environment. I enable teleoporate, and can control the waffle_pi robot to move around in the environment, ultimately finding the trash can. I use rqt to see what the robot is actually seeing.
OpenCV
OpenCV (Open Source Computer Vision Library) is an open-source computer vision and machine learning software library. It has a wide range of applications, including image and video processing, object detection, face recognition, motion tracking, and more. Currently I am using OpenCV to do environment object detection and object distance calculation, and the ultimate goal is to create a functionality to apply to real robots to easily detect obstacles.
Algorithms
Algorithms are super important in robotics research. Currently, algorithms that I’ve learned include A star, Dijkstra’s, and Rapidly-exploring Random Trees (RRT), constraint-based search (CBS), Probabilistic Roadmap Method (PRM), Simultaneous Localization and Mapping (SLAM) and many more algorithms.
Unity Tutorials
roll-a-ball is a Unity tutorial project where users can learn to use the Unity Editor and its built-in capabilities to set up a simple game environment, learn to write some custom scripts, and learn to create a game functionality.
I created custom UI, implemented the game functionality, and added new features on top of the original tutorial (collecting red cubes leads to failure). I familarized myself with Unity Editor (especially writing C# code), and learned how to add/edit assets.