The Complete Boeing Project

A continuation from Part I below, this quarter brought forth a complete redesign of the Omni robot base. Instead of using the Arduino Mega microcontroller and Kangaroo motion controllers, we have switched over to the Tiva C Series microcontroller from National Instruments. Thus, the architecture of the base is exactly the same as the inverted delta robotic arm that will sit ontop of it - creating a more robust sytem. The goal of this quarter was to build and program three of these robots while making sure throughout the process that the calculated odometry was as accurate as possible. Finally, instead of controlling each robot individually, we were tasked to control them formation style - where the user controls the velocity of a 'pivot' point and the robots move relative to that point.

Boeing Project - Part I

Robots have revolutionized the way manufacturing is done in industry. A couple examples include the 'X-men' robots working at Tesla and the 'KIVA' robots zooming around Amazon's fulfillment centers. The aerospace sector is no different. In this project, originally inspired by Boeing, the goal is to design three robots to work together to take an airplane wing from a crane, transport it to the fuselage of the airplane, and reorient it so that it would be easy for workers to bolt it into place. Last year, a team of MSR students in conjunction with Matt Elwin (the project lead and advisor) built a programmable mecanum wheel vectoring robot from a kit bought at SuperDroid (shown on the left) with the idea to prove the concept on a smaller scale first. However, some issues regarding the mechanical structure, electrical design, safety measures, and hardware components were not solved. Finding solutions for these issues and updating the robot accordingly were the goals for this quarter.

Inverted Pendulum

Nobody can take a controls or dynamics course without encountering the classic inverted pendulum problem. Even if you're not an engineer, you have probably tried to balance a broomstick or dowel on the tip of your finger at some point or other, and might have even been able to keep it up for a minute or two! However, the question remains, how can one reliably balance a pendulum such that it never falls, and can respond to force disturbances? Well, with a robot of course! For my Winter Project, I programmed Sawyer, a robot by Rethink Robotics to do just that! Click here to see a demo and checkout my GitHub README for more info.

DC Motor Control

A must have in many robotics projects, brushed DC motors are a cheap way to make robots 'come to life'. When combined with an encoder or gearhead, it is easy to track the motor's position and speed, and adjust the outputted torque respectively. In this project, I designed a controller to rotate a shaft based on various reference trajectories. Check out the video here to see a demo.

Plinko

Predicting the future might be difficult, but predicting if a Plinko disk will score you a jackpot? Not so much. With the help of Lagrangian Dynamics, it is possible to construct equations describing the motion of an object and simulate it. Then, by tweaking the initial conditions and forces acting on the object, you can alter the way it moves. This is especially helpful in robotics where visualization of how a robot might move in real life is key to its success.

Finger Sniper

From license plate and optical character recognition to self driving cars, computer vision plays a large role in helping robots maneuver their surroundings. But it can also be used for fun and games! In this project, a player uses their finger to shoot a ball as many times as possible while it bounces within the borders of the image. If it is hit, the ball changes color and the player receives a point. Time is short though as the ball shrinks every time it hits a border, and once it gets too small the game is over! To play it yourself, click here and follow the instructions in the README.

KUKA youBot Control

A core part of robotics is the ability to manipulate robots effectively. One awesome example of this can be seen here, in a video by Nigel Stanford, where he makes KUKA robots play musical instruments! On a simpler level, my project uses concepts such as rigid-body motion, forward, velocity, and inverse kinematics, and feedback control to move a KUKA youBot's end effector along a desired path.

Camera Ball Tracker

Nowadays, it is possible for pan/tilt security cameras to be equipped with motion auto-tracking software such as the Hikvision camera shown here. This allows the recording of possibly suspicious events in detail using computer vision techniques. On a simpler level, this project uses color segmentation in the HSV space to isolate the red hue of the ball from the surrounding colors. The centroid of the red blob is then found in the camera frame. Finally, the pan/tilt servos of the camera are automatically adjusted to keep the centroid in the center of the frame. For more info, click here to access the GitHub repo and check out the README.

Path Planning With RRT

An essential part to robot navigation, path planning makes is possible for a robot to move from one location to another while avoiding obstacles. In this project, the focus was on the Rapidly-Exploring Random Tree (RRT) algorithm. Simply put, this algorithm guarantees the rapid exploration of some vector space. As exploration is a crucial element of path planning, it is vital that it should take the least amount of time possible so that there is not much delay between when the robot is commanded to go to a specific position and it actually moving. To look at the source code and Runtime instructions, click here.

Starbax

Need a cup of coffee but don't want to make it? Meet Baxter - a robot created by Rethink Robotics that's ready to serve you! Using computer vision feedback, augmented reality tags, and inverse kinematics, Baxter can make a mean cup of joe using a Keurig, K-cup, and cup. My contribution to this team project was to use image processing to locate and identify these items. Check out the video here for a demo and this README for more info.

Interests

  • Autonomous Robots
  • Embedded Systems
  • Path Planning
  • Robotic Operating System
  • Artificial Intelligence
  • Kinematics
  • Controls
  • Mechatronics
  • 3D Modeling
  • Computer Vision
  • Machine Learning

About

Born in Chicago, Illinois, I grew up with a love for LEGOs and K'nex, building things ranging from ships and cars to even a simple printer! However, it wasn't until I programmed a stopwatch in my Sophomore year of undergrad that I really developed a taste for robotics. My first time working with an Arduino microcontroller, I was instantly hooked after watching the seconds tick away on the four-digit seven-segment display. While at Northwestern, I had the opportunity to broaden my skillset, studying subjects like ROS, Mechatronics, Controls, and Artificial Intelligence. With them, I hope to work in a position involving motion planning of robotic systems and lower level control with microcontrollers. In my spare time, I enjoy reading sci-fi or fantasy novels, and also like to go hiking - the Rocky Mountain National Park and Yellowstone being my personal favorites!

-Swiz


Want to learn more? Check out my LinkedIn profile, download my résumé, or send me an e-mail using the links below.

Contact

Feel free to contact me using the form below if you have any questions, comments, or just want to let me know about opportunities!