Hi I'm Sharwin Patil
I'm a 5th year student at Northeastern University studying Computer Science & Engineering with a Minor in Robotics. I'm a software engineer with an interest in robotics software and high-level control systems. I'm passionate about starting interesting projects that involve various skills in the Software, Mechanical, and Electrical fields. In my free time, I build robots for the Northeastern Robotics Club and play water polo.
Phone Number: +1 (925) 389-8466
Email: patil.sha@northeastern.edu
Welcome to my portfolio! This site contains information about my projects and relevant photos. Please see my Resume for a complete overview of my experience.
Robotic Arm Educational Kit
The project's objective is to create a robotic arm education kit for ME3460: Robot Dynamics with Professor Rifat Siphai. The kit will be used to provide hands on learning in the classroom to relating to the kinematics and dynamics of robotic manipulators.
The project involves programming a three-link planar robotic manipulator in C++ using forward and inverse kinematics using self-developed custom libraries.
Additionally, this project earned an PEAK Experience Summit Award for the Spring 2023 semester from Northeastern's Undergraduate Research and Fellowships.
Robotic Arm Educational Kit Technical Details
Educational Kit is entirely designed by us (Sharwin Patil & Ethan Muhlon) as a research project with Professor Rifat Sipahi (r.sipahi@northeastern.edu). This regards the mechanical design, the electrical layout and component selection, and the software design and utility.
The kit is 90% 3D printed and is designed for easy assembly since many kits need to be built by students taking the course. A few COTS parts were used such as GT2 timing belts/pulleys, ball bearings, and dowel shafts.
The electronics layout is simple and the provided breadboard enables students to quickly wire up the system without any soldering required.
The software package is entirely custom and allows user control of the manipulator using forward and inverse kinematics. The interface is simple and designed for students with little to no C++ programming experience.
AGV Motion Planning
(NURobotics VEXU Team)
(NURobotics VEXU Team)
Implemented Odometry to compute a mobile robot's absolute position and orientation (pose) for use in autonomous navigation. Developed C++ code to update the robot's pose from Odometry in real-time, enabling motion-profiling. Designed a motion-planning algorithm to generate robot trajectories from desired pose inputs to follow using Odometry and PID controllers. Utilized multi-threading to include Odometry calls while following a generated path.
AGV Motion Planning Technical Details
Written in PROS, a C++ development designed for VEX robotics systems.
Odometry computation is running in a seperate thread every 10 milliseconds and storing the data in a mutex locked struct for the main thread (motion-planner) to access.
Motion-Planner is a simplified version of pure pursuit with an open-loop design. Trajectories are created and chassis velocities along the path are generated, which are then used to "follow the path". Odometry is used before and after each intermediate trajectory to re-generate trajectories based on the desired final robot pose
All trajectories are generated utilizing hermite splines, a type of quadratic bezier curves
Chess Robot
A Gantry style robot with a claw manipulator and a camera, built to interact with chess pieces and play against a human. Implemented our own custom Stepper Motor library, our own communication protocol between the Rasperry Pi (or computer) and the Arduino, and Computer Vision to read the board state. Designed custom chess pieces and custom parts for the construction of the robot.
A unique challenge we faced was devising an algorithm to reset a chess board after a match in the most optimal (the fastest) method. We attempted an A* Search over the statespace of the board but settled on a Greedy Heuristic Search which was able to finish in polynomial time.
This project was conducted under the NURobotics Club and is now archived as it is finished.
Autonomous Swarm Cleaning Robots
This project was completed as a submission for the RoboTech 2022 Hackathon. Implemented a graphical simulation in Python for a swarm of autonomous aquatic drones tasked with cleaning algal blooms within a body of water utilizing path-finding algorithms such as A* Search and RRT.
Simulation of swarm robots cleaning algal bloom using RRT navigation
IME GUI with an image open that has been modified with the "mosaic" transformation
Image Manipulator and Enhancement Tool
Developed a Java project to apply manipulations and enhancements to images and export them as various file types. Utilized the Model-View-Controller design pattern for improved extendibility and ease of modification. This project was completed for the course CS3500: Object-Oriented Design.
Our application featured layers, image transformations such as sharpening and blurring, programmatic images such as checkerboards and gradients, undo/redo functionality, scripting input for several transformations, and a live-updating output window.