Jacob’s Status Report for 4/4/26

This week, I worked on preparing for the interim demos. I was working on the movment/PID code, but we were having trouble connecting to the Raspberry Pi’s on CMU WiFi. I also updated the movement code to work with distance values rather than moving for a certain amount of time.

Next week, I will continue to work on movement to ensure it is consistent and reliable. This will require further tuning for PID. When testing, we found that the IR sensor is somewhat sensitive to the surroundings, so I will look into using the ultrasonic sensor for obstacle detection and collision avoidance.

Isaac’s Status Report for 4/4/26

This is week I have been working mainly on the interim demo with my team. Unlike how I was worried before, the demos went a lot better than I expected. Other than that, I am still working on path planning for the rovers. Some comments from the demo discouraged what I have been planning for now, so I am doing some research for other options.
In the following week, I am expecting some ground work for the path planning to be done.

Tyler’s Status Report for 4/4/26

This week, I worked on integrating Jacob’s movement code with the rest of the system, changing the blocking while loops to an update-based system so that UART messages can still be read while the PID is working on the motors.

I also got started on 3D modeling the frame that will enclose all the electronics.  I found a model for our car’s wheels and chassis online and am modelling the enclosure around that model.

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.