Team Status Report for 04/25/2026

Up to this point, we have already completed our product as we have assembled the components together and did extensive tests to ensure that the robot works as intended. The only thing that can jeopardize our success would be some unexpected failures on the demo day. For example, there may be accidents where people unintentionally damage the robot, causing the wires to disconnect or the basket to fall. However, we plan to keep the robot in a safe corner when it’s not operating and closely track it while it is moving. We also have backup videos to show the audience. The other risk would be unexpected behaviors due to some edge cases in the crowded environment on the demo day. However, we did our best to extensively test all kinds of scenarios, which we will specify in the additional section.

We made a small change to the physical assembly of the robot. Previously, we planned to have one pipe attached to the robot base to support the basket, but when we actually assemble it, we found that the basket does not seem stable and balanced when there is only one pipe to support it. Therefore, we instead used two pipes front and back to support the basket, which made the basket much more stable, as seen below. We didn’t make any system change on the software side.

Since we are on schedule and successfully completed our product before the final week, we did not make any change to our schedule.

Additional section of testing:

We conducted both unit tests on full system validation tests (Table 1) and individual subsystems (Table 2) to experimentally evaluate the SafeFollow system. The unit tests covered YOLO-based person detection, bounding box stability, stereo depth estimation, PID motor control, ultrasonic sensing, and communication stability. These tests verified that each subsystem meets its design requirements under controlled scenarios such as hallway tracking, multi-person environments, and varying lighting conditions. The system-level validation tests evaluated integrated performance across key metrics including detection accuracy, frame rate, following distance, obstacle response time, person re-acquisition, and achievable following speed under realistic scenarios.

From the test results, several important findings were observed. The system performs reliably in perception accuracy, smooth following, and obstacle detection, indicating that the vision pipeline and safety mechanisms are well designed. However, failures and partial passes revealed limitations in following distance, re-acquisition time, and maximum speed. In particular, we are using linear speed control commands in our PID control modules, with a mapping from [0, 255] to [0, 0.5] m/s, which constrains the achievable speed range. Additionally, although the robot provides a PID speed control command (ID 2) in its JSON instruction set to manually set a reserved maximum speed parameter, the robot base does not respond to this command, further limiting speed performance. Following distance errors occur during sharp turns or obstacle avoidance, suggesting insufficient responsiveness in dynamic scenarios, while re-acquisition delays are caused by the need for full scanning in worst-case conditions.

Based on these findings, we made several design improvements. We further tuned the PID controller to improve responsiveness and reduce lag, incorporated ultrasonic sensing as a safety override for obstacle handling, and refined the interaction between perception and control to improve stability in edge cases. We also adjusted system expectations by prioritizing stable and safe operation over achieving higher speed, given the hardware constraints. These changes improve robustness and ensure the system better meets real-world usage requirements.

Xinyu Li’s Status Report for 04/25/2026

This week I focused on final preparation and full system integration. We completed the hardware integration, bringing together the Raspberry Pi, camera, ultrasonic sensors, and robot base into a single working system. I worked on assembling the sensing components onto a breadboard and connecting them to the Raspberry Pi to ensure stable operation for the final demo setup. This required verifying wiring, signal reliability, and making sure all sensors could be read consistently within the control loop.

On the testing side, I conducted validation trials of the integrated system, focusing on key metrics such as following distance and maximum speed. I measured how well the robot maintains the target distance during motion and evaluated its responsiveness under different speeds. Based on these results, we further tuned the PID controller to improve reaction speed and reduce lag in following behavior. The system now responds more quickly to changes in user position while remaining stable.

My progress is on schedule, as these tasks align with our final integration and validation phase. Next week, I plan to continue refining the system and perform more comprehensive testing to ensure reliability and consistency before the final demo.

Wuyang Li’s Status Report for 04/25/2026

This week, I completed our group final presentation with Xinyu. Also, we collected the pipes we ordered from the receiving office, and worked together to assemble the robot, attaching the pipe to the robot base, basket to the pipe, and fixing the raspberry pi and breadboard on the robot base. After all, we successfully built the robot that has around 1m height for the convenience of putting/grabbing stuffs in the basket just as what our use case requirement specifies. We also ran some more walking trials to test out some edge cases to ensure that the robot remains safe from collisions and has expected behaviors. Finally, we recorded some videos to showcase the robot following a person. At this point, our project is pretty much done.

I am currently on schedule, as this week is supposed to be me working together with Xinyu to complete some final refinements and final edge testing of the product, which we successfully did. I’m glad that we are able to get the product done before the final week, so that we can use the remaining time to work on final video and demo.

Next week, We will be doing our final demo, so we should prepare the demo materials and plan for how we want to showcase our product. Also, we will make the final video and complete the final report by the deadlines next week.

Xinyu Li’s Status Report for 04/18/2026

This week, Xinyu focused heavily on end-to-end integration and testing of the system on the Raspberry Pi. He worked on combining multiple components, including PID-based motor control, vision-based bounding box detection, stereo depth estimation, and ultrasonic distance sensing to design a more complete path-following behavior. In particular, he integrated these signals into a unified control loop where the robot adjusts its motion based on estimated user position and distance while also reacting to nearby obstacles. A significant portion of time was spent testing the system under real conditions on the resource-constrained Raspberry Pi, identifying performance bottlenecks and ensuring that the perception and control modules can run together reliably.

During testing, Xinyu evaluated how different components interact, such as how depth estimation and bounding box tracking affect PID stability, and how ultrasonic signals should override motion commands for safety. He also experimented with different parameter settings to improve responsiveness and reduce oscillations in motion. Overall, the system is functioning at a basic level, but still requires further tuning to achieve consistent and stable behavior. Progress is on schedule, and next week he plans to continue refining control parameters and conducting more extensive real-world testing.

Additional section: New tools, knowledge, and learning strategies

During this stage, Xinyu needed to learn more about real-time system integration and control under constrained hardware. This included gaining a deeper understanding of PID control tuning in a robotics context, how to fuse multiple sensing modalities such as vision and ultrasonic sensors, and how to manage performance trade-offs on the Raspberry Pi. He also became more familiar with debugging system-level issues where perception and control interact, rather than isolated modules.

To acquire this knowledge, Xinyu primarily used informal learning strategies. He read documentation and online resources related to PID control and embedded vision systems, explored GitHub repositories and forum discussions to understand common implementation patterns, and watched tutorial videos for practical insights. In addition, he relied heavily on iterative experimentation, repeatedly testing the system, adjusting parameters, and observing behavior to build an intuitive understanding of how different components interact in real time.

Team Status Report for 04/18/2026

Up to this point, we have finished all of our major subsystems including person tracking through yolo model, obstacle detection and avoidance through ultrasonic sensors, and the integration of them. Therefore, the only risk right now is whether we can successfully assemble the robot to make it robust and easy to use, as described by our use case requirements. We ordered multiple components last week for the assembly of the robot, and although most have arrived, the major component, pipes, has yet to arrive. Therefore, the risk would be whether those pipes are reliable enough for us to finish building a robust robot as planned. To mitigate the risk, we tried to plan ahead what may not go as expected since there is only little time left before final demo, and we may need to order anything that we may need soon. We decided that one risk was the previously ordered pipes would be too long and we don’t have the proper tools to cut them, so we ordered two backup pipes that are shorter (~0.6m) but can still reach around 1m height after counting the height of the robot base. They will also arrive next week, leaving us plenty of time to assemble.

We didn’t make any change to our system, as everything goes as intended. We were able to do exactly what we planned in our system: a yolo model for person following, and an obstacle avoidance using three ultrasonic sensors. The only minor change was that we initially planned to use serial connection to connect raspberry pi with the robot base and enable their communication, but we figured that the serial connection somehow did not work. Therefore, we switched to http communication: we let the raspberry pi to connect to the robot’s hotspot, and send motor control commands through http requests. This turns out to work well and resolves the serial connection problem.

Overall, we are perfectly on schedule as we have finished the implementation of all major subsystems and finished the integration as planned. We hope to continue our work and assemble the robot next week to prepare for the final demo.

Wuyang Li’s Status Report for 04/18/2026

This week, I received the breadboard kit and completed the integration of the ultrasonic sensors by using a breadboard to connect them to the raspberry pi through pin connections. I also wrote tests to ensure that all three ultrasonic sensors (front, left, right) can work together to correctly detect the distance of obstacles. I also wrote the integration code to integrate the obstacle detection and person tracking through yolo model together with Xinyu, and we wrote software tests and performed actual human tests to verify that they generally work as intended. Therefore, up to this point, we have all of our major subsystems working.

Our progress is on schedule, as we are supposed to generally complete the integration this week and perform tests to ensure that they work as intended together as a group, which is what we have done. Next week, we will finish the final assembly of the entire robot including the 1m high pipe to ensure that the basket is easy to reach, and we will glue the basket and the ultrasonic sensors to finish the final product. We will also perform some final edge tests to ensure that robot functions as intended even in the edge cases.

Additional section: As I worked on the project, there are quite a lot of things that I previously didn’t understand. For example, I didn’t know how to connect ultrasonic sensors to raspberry pi before, so I did some research, mainly through reading online raspberry pi documentation and watching youtube videos, and I figured out that we needed a small circuit to connect the pins of ultrasonic sensors to the raspberry pi pins (raspberry pi has 40 pins, which I also didn’t know what each pin does before). Therefore, I bought a breadboard kit for building this circuit, and I followed the documentation and video, as well as a figure of raspberry pi 5 pinout, to successfully make the sensors work. Another example was I didn’t know how to send motor commands to the robot base before. I assumed that it can only be done through serial connection, but once I found that it did not work properly, I read the UGV02 documentation into more depth, and found that http communication through hotspot also works. Overall, I learned lots of new things as I worked on the project, and I was able to accomplish this through research, reading documentations and watching past examples through youtube videos.

Xinyu Li’s Status Report for 04/11/2026

This week, Xinyu was unable to attend class due to family matters, which slightly impacted overall progress and put his individual tasks slightly behind schedule. Despite this, he continued working on the vision pipeline, with a focus on improving its stability and robustness under real deployment conditions on the Raspberry Pi. In particular, he implemented fallback mechanisms such as dynamically adjusting input image resolution to balance detection accuracy and frame rate, as well as adapting the update frequency of bounding boxes so that the system can maintain smoother tracking when full detection cannot be performed at every frame. He also explored how these adaptive strategies interact with tracking logic to maintain consistent user identification under constrained compute.

Due to the reduced availability this week, progress is slightly behind schedule. However, the work done on improving system robustness is valuable for later integration and testing. Next week, Xinyu plans to dedicate more time to the project, focusing on completing integration with the control pipeline and conducting end-to-end testing on hardware to recover the schedule.

Additional section: New tools, knowledge, and learning strategies

During this phase of the project, Xinyu needed to learn several new tools and concepts related to embedded vision deployment and system integration. This included understanding how to optimize deep learning inference on resource-constrained devices like the Raspberry Pi, working with camera drivers and system-level configurations, and tuning parameters for real-time performance such as resolution scaling and frame scheduling. He also gained experience with stereo vision processing, including generating and interpreting disparity maps for depth estimation.

To acquire this knowledge, Xinyu primarily used informal learning strategies. He referred to official documentation for libraries such as OpenCV and YOLO, read technical discussions on forums and GitHub issues to resolve compatibility and performance problems, and watched online tutorials to better understand deployment workflows. In addition, he relied heavily on iterative experimentation, testing different configurations and observing system behavior to develop a practical understanding of performance trade-offs and system limitations.

Wuyang Li’s Status Report for 04/04/2026

This week, I completed three interim demo sessions with Xinyu, showing our current progress of completed vision pipeline and motor controller subsystems. Also, since we currently lack the batteries to proceed to the testing of our integration of vision pipeline and the motor controller subsystem, I continued to write more extensive local software tests to test whether the motor controller code performs logically in different states (Emergency stop / Following / Searching). Hopefully, these tests would ensure that we would experience less bugs in integration.

We are a bit behind our schedule due to the lack of batteries. However, the batteries will arrive by next Monday, which will enable us to work on the integration by then. To recover for this issue, we are both writing more local tests to ensure that our integration step goes more smoothly. We will also try to get the integration step before Spring Carnival next week, ensuring that we get it done before we go on the vacation. Our deliverable for next week is therefore going to be an integrated system of the vision pipeline and the motor controller system. Hopefully, our robot could move as expected in basic scenarios driven by the vision pipeline.

Additional section: As mentioned above, I already wrote and ran extensive tests on my motor controller subsystem to verify its logic. Also, I already did some basic manual tests weeks ago when our batteries were previously working, where I verified that manually outputting the Json commands output like I have now can actually drive the robots to move in the expected ways. Later, I will add more tests on top of what I currently have to verify that the emergency stop logic (ultrasonic sensor system) works as intended in even edge cases. I’ll also write tests after integration of the vision pipeline and the motor controller subsystem.

Team Status Report for 04/04/2026

This week, we focused on preparing for the interim demo, including creating slides and recording demonstration videos for both the vision pipeline and system behavior. We worked together to ensure the presentation clearly shows the current progress of the system and highlights key components such as perception and control. In addition, we collaboratively developed and tested the JSON command interface used to control the robot, which is an important step toward integrating the software pipeline with the robot base.

We also attempted to perform more extensive hardware testing, including evaluating the robot’s speed and responsiveness. However, testing was limited due to the robot battery running out, which prevented us from completing all planned experiments. As a result, we are slightly behind schedule on hardware validation. Despite this, we believe the delay is manageable and plan to continue testing early next week once the battery issue is resolved, allowing us to quickly catch up on integration and performance evaluation.

Additional section: For validation of the overall system, we are planning end-to-end tests where the robot follows a user in realistic indoor environments. These tests will evaluate whether the system meets key use-case requirements such as maintaining a safe following distance, responding to obstacles, and operating smoothly in multi-person scenarios. We will measure following distance over time, observe whether the robot can correctly track the intended user, and verify that the emergency stop logic works reliably when obstacles are detected. In addition, we will test system behavior under edge cases such as occlusion or sudden direction changes. The results will be analyzed by comparing measured performance, such as distance error and response time, against our design requirements. These tests ensure that the integrated system behaves as intended and meets the overall project goals.

Xinyu Li’s Status Report for 04/04/2026

This week I mainly focused on preparing for the interim demo, especially on the vision side. I recorded videos to demonstrate the current vision pipeline and its performance, and worked on designing a color frequency analysis method to help distinguish the target user across different bounding boxes. This is intended to improve person identification in multi-person scenarios by adding an additional signal beyond detection and tracking. I also trained our vision model using both our homegrown dataset and the COCO dataset, and evaluated it on a COCO test split to obtain baseline accuracy results for person detection.

In addition, we attempted to test the robot’s motion behavior, including speed and responsiveness, but encountered issues with the battery running out during testing. This limited the amount of hardware validation we could complete this week. As a result, my progress is slightly behind schedule. However, we believe this delay is manageable and plan to make up for it by continuing testing and integration early next week once the hardware is fully operational again.

Additional section: For verification of my vision and perception subsystem, I have started evaluating both detection accuracy and runtime performance. I trained the model on our homegrown dataset and the COCO dataset, and evaluated it on a COCO test set to obtain baseline accuracy metrics such as detection confidence and qualitative correctness. In addition, I plan to measure frame rate (FPS) on the Raspberry Pi under different input resolutions to verify that the system meets the real-time requirement. For the color-based person identification component, I will compare consistency of predicted identities across frames in multi-person scenarios. The results will be analyzed by checking whether detection accuracy remains high and whether the system maintains stable tracking at or near the required frame rate. These tests directly verify that the perception pipeline satisfies both accuracy and real-time constraints.