Team Status Report for 12/10

For our final week, our team spent all of our time robustifying our system as much as possible for our demo. Prithu worked on putting the finishing touches on the planner and addressed any remaining issues with collision checking and failure modes. Omkar and Saral worked on fixing some issues with pallet pick-up and drop-off reliability as well as a hardware bug caused by the power draw of the electromagnet. We spent a fair bit of time running tests to make sure everything would run smoothly for the demo. We also planned out a rough presentation that we can use to describe various parts of our project/system in detail and filmed demo videos.

Prithu’s Status Report for 12/10

I spent the final week of our project robustifying the planner as much as possible to get ready for our demo on Monday. I experimented with what to do when the planner is unable to find a path for one (or a few) of the robots. No planner is perfect and this is always a possibility. One option I tried was to sample start points within a certain radius of the robot and try planning from those samples until a plan is found. This puts more of a burden on our controller. Unfortunately, this wasn’t able to work properly. The final (and much cleaner) solution was to reassign that robot’s task to a different one if it was not able to find a plan. This sacrifices a bit of efficiency for robustness but is fine since it’s rare for a path to be uncomputable. I also made some small bug fixes to the dynamic collision checking and post-dropoff motions. Finally, I worked with Saral and Omkar to plan our final demo and film a few videos that we can show as a backup in case something goes wrong on Monday.

Prithu’s Status Report for 12/3

This past week I worked on putting the final touches on the planner code. The task planner heuristic was modified to better assign pallets to the robots that are closest to them. I also worked on some bug fixes related to static collision checks with non-moving robots. As a team we spent a lot of time working together on getting ready for the final presentation and demo as well as performing final integration tests/fixes.

Prithu’s Status Report for 11/19

As a team, this past week our overarching goal was to get multiple robots operating on the field simultaneously. To accomplish this, several modifications needed to be made to the planner.  These included: fixing the planner heuristics for a more optimal path, restricting the buffer for the robot’s approach angle to the pallet on pickup, modifying the collision checker to be more efficient, and updating the robot collision radius. We also added the robot’s functionality to process several pallet pick-up rounds for situations where there are more pallets than robots on the field.

Team Status Report for 11/12

(Disclaimer: This was a quieter week for capstone progress due to our hands being tied with a lot of other classes that had major deadlines due around this time. )

As a team, we demoed a version of our project to the TAs and professors. In this version we had one robot driving from an arbitrary start point to a pallet, picking it up, and navigating to a goal point to drop off the pallet. Through getting ready for the demo we were able to discover some bugs related to the planner, and controller software which we are going to address tomorrow (Sunday).

Prithu’s Status Report for 11/5

This past week we met on Saturday to work on getting the robot to properly follow a path from the path planner, pick up, and drop off the pallet. Through this process, I found several bugs that needed to be addressed. 1) The collision checking being performed was extremely inefficient and was causing the planner to take much longer than expected. 2) The planner did not have the ability to turn counter-clockwise. 3) A straight-line runway was needed as the robot was approaching the pallet to prevent it from turning too close to it and bumping. 4) New costs were assigned to differentiate between turning and going straight and encourage the robot to drive in a straight line rather than turn. All of these bugs were fixed and implemented for the demo on Monday.

Prithu’s Status Report for 10/29

This past week, most of my work was around the integration of the motion planner into the rest of the system. Since the motion planner was written in C++ for efficiency I had to use the Pybind11 library to allow Python to call the planner functions. The entire team also met this week to work on integrating all parts of the system together (CV, controller, planner) and were able to get the robot moving. We had some issues with the controller and planner related to path following and turn radius constraints that we are going to work on fixing when we meet again tomorrow.

Prithu’s Status Report for 10/21

This past week (before fall break) I was away in New York to attend an event with CMU Leadership. Most of my time was dedicated to writing portions of the Design Report. Specifically, I focused on sections related to the motion planner and the use-case/design requirements. I know there were some concerns regarding the clarity of our explanation of the planning algorithms so my top priority was to have the information presented in an easy-to-understand in-depth way. In addition to working on this document, I also started the process of integrating the planner (C++) with the rest of the codebase (Python) using a library called Pybind11 which allows you to call C++ functions from Python.

Team Status Report for 10/8

This week, our team split off and worked on the various parts of the software for the robots. Saral worked on the CV bring-up: specifically the localizer for the robots and pallets. He was able to get the fiducial recognition working so that we can differentiate between pallet types. Omkar worked on getting the feedforward and feedback controller for the robot working so that it can follow a path given positions and timesteps. Prithu worked on the motion and task planner which takes in the robot, pallet, and goal positions, and returns position/time paths for the robots to follow.

We plan on meeting Monday to integrate the code together and run a test of the full system.