Aquatic Plastic Collection Robot
Over the course of my senior year at WPI, I worked with a team of six to design, manufacture, and program an aquatic robot to identify and collect floating plastic waste along shorelines. At the beginning of the year, I lead the design process to model the frame of the robot from scratch in SolidWorks. Using the complete model, I helped manufacture and assemble the robot, specifically the water-proofing of the pontoons.
Once the base robot was complete, I was in charge of robot localization using the onboard IMU and GPS sensors. I created an Extended Kalman Filter that combined acceleration and orientation data from IMU with position data from the GPS to determine the robot's local pose. We tested our robot in the real world and successfully identified and collected trash. At the end of the year, we wrote and submitted a paper detailing the full year's work. I learned a lot over the course of the year and improved both my techinal and soft skills. This was the largest school project I have had the chance to work on and it took leveraging each teammates knowledge and skills to create the final product.
Robot Maze Exploration
I worked with a small team of three to program a TurtleBot robot to explore and create a map of a maze using SLAM (Simultaneous Localization and Mapping). The robot was programmed using Python and ROS to use a lidar sensor to navigate the maze and avoid obstacles. I implemented our frontier exploration algorithm, A* path planning, and obstacle avoidance procedures. I was able to learn a lot about path planning and the challenges of SLAM for mobile robots while implementing them on this project.
Serial Manipulator Control
Over the course of my time at WPI as an undergraduate and graduate student, I have had the opportunity to employ various robotic concepts on the four degree of freedom arms seen in the videos below. The videos are demonstrations of the first project I worked on sorting colored objects together with a team of three. This course introduced us to forward and inverse kinematics along with trajectory control. We used DH parameters for FK, geometric analysis for IK, and quintic polynomial trajectory control.
Other more applications for these arms have included more advanced robot dynamics and control methods. I worked with a different team of three where we implemented Product of Exponentials FK, Newton-Raphson IK, and LSPB trajectory control. In addition, we utilized the Newton-Euler method for the inverse-dynamics of the robot to measure the forces experienced at the tool-tip.
The most recent use of the serial manipulators was using current-based torque control to position the arm. I was able to move the arm to various positions using control methods such as gravity compensation, robust computed torque, and adaptive control.
Romi Robots
Some of the first robotics projects I worked on at WPI were with small Romi robots. I worked with a team of three to design and build a four-bar mechanism with two different grippers to pick up and place metal pannels. This robot had an ultrasonic and line sensor to navigate a field and place the pannels. Through this project, I was able to expand my SolidWorks skills and taught me important considerations for mechanical design in robotics.
Another project I completed with these Romi robots was a mutli-robot escape room. Each member of the team had a robot with different sensors (camera, IR sensor, IR emitter) and the robots had to work together to share information to escape. The robots were programmed in C++ and communicated through an MQTT server. This project taught me a lot about sensor integration and introduced me to the challenges of multi-robot control.