6.4200: Robotics, Science, and Systems 

Course Description

🔍 Real-World Applications: Sensing, kinematics, dynamics, state estimation, computer vision, perception, learning, control, motion planning, and embedded system development.

🚗 Innovate: Design and implement advanced algorithms on powerful robotic platforms for agile autonomous navigation and real-time interaction with the physical world.

📣 Communicate: Engage in extensive written and oral communication exercises to articulate your groundbreaking ideas.

Wall Following and Safety Controller

Our group tested each of our wall following algorithms, created in simulation, on the physical platform. After tuning and debugging, our group submitted my wall-following algorithm. I am particularly proud of my ability to collect data using Rosbags and analyze it using Matlab. This is detailed in section 3.1 of our report. I conducted step responses and anaylzed the overshoot, settling time, and steady state error. We also created a safety controller as a tool to stop the robot before any collisions.

Skills Used: ROS, Matlab, Control Theory, Linear Algebra, Python

Lab_3__Wall_Follower_Lab_Report.pdf

I authored sections 2.2, 2.3, 3.1, and 5.2


Copy of Lab 3: Wall Follower Briefing

Lab Briefing

Cone Detection Via Color Segmentation, Object Detection via SIFT and Template Matching, Locating the cone via Homography Transformation, Controller for Parking and Line Following

Our group experimented with several types of object detection algorithms, learned how to transform a pixel from an image to a real world plane using homography, developed a parking controller to park the robot in front of an orange cone, and extended the parking controller into a line following controller. I developed the parking controller. The car is modeled as a bicycle and a pure pursuit approach gurantees the car parks within a set distance from the orange cone, and is facing the cone straight on. Then, we reused my parking controller to create a line following protocal on orange tape.

Skills Used: ROS, Control Theory, Linear Algebra, Python, Data Collection

Copy of Lab 4 Visual Servoing

Monte Carlo Localization

We resolve robotic localization by implementing Monte Carlo Localization (aka MCL or particle filter). We define our motion model based on odometry information. The motion model, f, takes as arguments the old particle pose, x_kprior, as well as the current odometry data,  Δx,  and returns a new pose, x_k, with the odometry "applied" to the old poses.

We use the sensor model, p(z_k|x_k, m) to define how likely the sensor is to record a given sensor reading z_k from a hypothesis position x_k in a known, static map m at time k. We use this likelihood to "prune" the particles as the motion model tries to spread them out. Particles are kept if the sensor reading is consistent with the map from the point of view of that particle. 

We impliment the particle filter by

Skills Used: Probabilistic Robotics, ROS, Linear Algebra, Python, Data Collection

Lab_5__Localization.pdf

I authored sections 3 and 5.2.

Copy of Lab 5: Localization

Path Planning using occupancy grid, sampling, localization and pure pursuit

Now that we are able to localize the car, it is time to learn how to drive. We impliment two core parts of autonomous operation: planning and control. In other words, given a destination, we determine the path to the destination and proceed to drive along the path.

Our approach is split into three parts:

Part A: Plan trajectories in a known occupancy grid map from the car’s current position to a goal pose using either a sampling-based motion planning method.

Part B: Program the car to follow a predefined trajectory in a known occupancy grid map using the particle filter and pure pursuit control.

Part C: Combine the above two goals to enable real-time path planning and execution in the simple racecar_simulator. For this part, we also localize the car by running the particle filter and obtaining an estimate of our odometry rather than using the ground-truth pose. Finally, we deploy the integrated system on the physical racecar!

Skills Used: Probabilistic Robotics, Matlab, ROS, Control Theory, Linear Algebra, Python, Data Collection, 

Lab_6__Path_Planning.pdf

I authored sections 2.2 and 5.2

Copy of Lab 6: Path Planning

Final Challenge

The 2023 final challenge consisted of two parts:


Highlights of our approach. 

Our team was recognized for combining multiple HSV masks in order to accurately identify the Mini-City road. This machine learning approach enabled us to confidently discern the road under all sorts of lighting conditions, camera qualities, and tape cleanliness. We tuned our road detector prior to our trials on competition day.

Skills Used: Machine Learning, Probabilistic Robotics, ROS, Linear Algebra, Python, Data Collection

Copy of RSS Final Challenge: Final Briefing