Isaac’s Status Report for 3/28/26
This week I worked on putting the parts of the rover together, as well as starting with path planning. There are still some testing to do for the code, and I hope to begin testing what I have so far in the following week. I am waiting on some parts to arrive to finish building the second rover and hope to begin coordinated movements once we have them.
Jacob’s Status Report for 3/28/26
This week, I worked on vehicle movement. First, I worked with Isaac to assemble (duct tape) a vehicle together. Then I determined which pins on the Raspberry Pi were needed and wired everything up. This also required re-soldering the some of the motor wires back on because they had fallen off.
I hoped to make more progress with movement (moving straight and rotating in place), but initial testing did not go well. One issue was that the each motor rotated at a different speed for a given PWM duty cycle. This prevented the vehicle from moving straight. It wouldn’t be possible to adjust the duty cycle for individual motors because this does not scale well to multiply vehicles. Instead, I implemented a PID on motor encoders to ensure that each wheel rotates the same amount in order to move straight forward.
The other issue with movement is more challenging and likely requires a mechanical (rather than software) fix. The problem is that the caster wheel in the back significantly impacts movement based on its position at any moment, which is effectively random and changes rapidly. We are planning to remove the caster wheel and replace it with a single ball bearing to avoid this problem.
Hopefully, these movement issues are solved next week and I can achieve consistent movement with a single vehicle. Then I can focus on coordinated movement. But before that, I am meeting with the team to work on our demo.
Team Status Report for 3/28/26
Our team started this week by finishing the building of our first vehicle.
Isaac spent some time on building a second, but we are waiting on level shifters before the second is completely done.
Tyler worked more on the UWB systems, getting ready for us to have and use distance measurements during our demo.
Jacob worked on the vehicle movement, using PID on the data from the motor encoders to drive the vehicle in a straight line and rotate by a variable number of degrees.
Overall, we are on track. We are meeting tomorrow (3/29) to make sure everything works together for the demo, with high hopes due to the fact that everything is working individually.
Tyler’s Status Report for 3/28/26
This week, I spent a lot of time de-soldering and re-soldering the uwb boards to put in the new headers that give better connectivity with the pi and the rest of the car.
I also worked on the UWB subsystem some more. I identified many problems and solved most of them, mostly having to do with the sdk I’m using to compile the UWB OS being outdated. I’ve had to introduce some workarounds to enable the I2C subsystem that exists within the actual UWB module on the dev board.
The end of the week was used to use the UWB behavior that is implemented to create our demo system.
Tyler’s Status Report for 3/22/26
This week, I rewrote a lot of the UWB code to use interrupts instead of polling to make sure we get fast response times. Faster response times should lead to more accurate distance results. Due to the complexity of our UWB dev board OS, this took a lot of time, mostly figuring out exactly what needs to be enabled in the config files and what SPI rate can be supported. I didn’t get nearly as much done as I had hoped, as the IMU isn’t yet working. But by refactoring the code I had and making it interrupt-based, I set the ground work to be able to make progress faster in the next few days.
Team Status Report for 3/21/26
This week, we continued to work on implementing and testing individual components, and we are getting closer to building and testing multiple vehicles working together.
Once assembled, we will test and tune basic vehicle movement like turning and driving straight and check the accuracy of motor encoder readings. We also have an algorithm for partitioning space to test once movement is nailed down.
For sensing and object detection, we tested some of the final components. The motor encoders successfully trigger a callbacks on the Raspberry Pi. The Raspberry Pi camera can detect a brightly-colored target using the Python OpenCV library. The next step here is to get everything physically mounted so we can test everything together.
For communication/UWB, the Raspberry Pi can now send commands to the UWB module over UART to enter different modes of operation (transmitting/recieving/ranging).
Overall, we are still on track. It will be important to put at least two vehicles together early next week in order to stay on track.
Isaac’s Status Report for 3/21/26
This week I worked on finishing the coordinate movement of the rovers and space partitioning algorithm. Once we meet this week to put all parts together, we will be able to finalize movements based on tested ratios of the rovers. We are aiming to have two rovers put together that can communicate with each other in the following week, and once we have that we will be able to add their coordination algorithms. Space partitioning is now scalable by recursively partitioning the area, and once we start testing, we will test different sizes and check if it functions correctly. I am on schedule, and I hope to contribute more in the following week as we begin assembling all parts to work cohesively.
Jacob’s Status Report for 3/21/26
This week, I continued work on testing all the individual parts. I tested the motor encoders by setting them over the motor encoder encoder wheel and manually turning it as the encoders still aren’t attached as the frame doesn’t have a good way to attach them.
I also plugged in the Raspberry Pi camera and played around with it. I was able to take pictures and then I was able to have it track an object with some very basic computer vision. We are using OpenCV in Python. Here is an screenshot of it working. The brightly-colored orange target is a 3D-printed thing I had sitting around. On the right is a mask showing all pixels of a target color. On the left is the image with a blue circle around where the Raspberry Pi thinks the target is.

Next week, I would like to work with the team to get at least two vehicles put together and start testing communication/movement with them. So far, all of the parts work individually, but we haven’t attached them all to a vehicle. Once we have that, we can really dive into the distributed aspect of the project.
Team Status Report for 3/14/26
This week, we made progress with the hardware of our design. We successfully powered the motors with the motor driver and the battery, as well as establishing communication between the UWBs. This is a large progress for our project as vehicle movement and inter-agent communication are the major portions. We had issues with the battery power and connecting UWBs with our system, but we were able to work them out within this week which put us on schedule.
This week we are expecting to work on vehicle control. Now that UWBs are functioning, space partitioning and rover movements based on coordinates should be integrated. We are also planning to have the IMUs and the cameras setup, which will hopefully put our project ahead of schedule.
As the interim demo is approaching, our goal is to have at least two rovers communicating and coordinating with each other. With current progress we are hopeful to have more functionalities available by the demo.

