Sean Johnson’s Status Report for 4/4/26

What I Personally Accomplished This Week

This week I focused on demo preparation and hardware refinement. I tuned the SLAM mapping parameters to improve map quality and stability for the demonstration. I assembled the updated chassis with new 3D printed components and secured connections using hot glue to ensure mechanical stability during testing. I also prepared the demo presentation and validated that the navigation operates reliably for the demonstration scenario.

Progress Status

Progress is on track. The navigation system is stable and the hardware assembly is complete with improved mechanical mounting.

Deliverables for Next Week

Next week I will fine tune the mapping and path planning parameters to improve navigation performance. We will also begin integrating computer vision outputs into the navigation system to enable human detection.

Verification:

For LiDAR verification, I am testing scan rate consistency and range accuracy by monitoring the RPLidar A1M8 output on the scan to verify it maintains 5-10 Hz publication frequency and validating distance measurements by placing known obstacles at measured distances to confirm its within 5cm tolerance. Paul and I performed verification testing for physical movement and battery runtime by running movement scripts at different speeds. For battery testing, we ran the complete system doing navigation loops at approximately 1 m/s for over 45 minutes repeatedly, exceeding our 30 minute runtime goal.

Justin Bell Status Report 4/4/2026

The pan-tilt camera is operational and reacts to RPLiDAR detections within 0.3 meters. Upon detection, the camera orients toward the detected angle to determine whether the object is a person. The detection pipeline also evaluates bounding box aspect ratio to classify posture — a ratio greater than 1.0 (wider than tall) flags the person as laying down. This result is broadcast as part of the alarm system. Both pan_tilt.py and the laser TF broadcaster are running on the robot.

Autonomous navigation is partially successful. The Nav2 motor bridge translates cmd_vel Twist messages into left/right wheel commands via differential drive kinematics, driving the VNH5019 motor controllers through lgpio on gpiochip4. Direction is handled by INA/INB pins and speed by PWM duty cycle, with a 0.5-second watchdog that cuts motor output if cmd_vel stops publishing. After adjusting Nav2 parameters to reduce reliance on odometry, the robot has shown improved course-keeping under the new configuration.

Video

Verification:

I performed verification tests for Computer vision, mapping, and basic navigation. Computer vision testing involved taking multiple people, water bottles and backpacks in front of the camera and seeing what the model determined they were. For people, it also was tested on it’s ability to recognize if they were fallen or not. The model worked properly and reliably outside of the case of Paul laying down in a red Oberlin hoodie, where he was occasionally identified as a couch. When a fallen person was identified, I made sure that the audio played properly. We also plan on implementing running detection, and then testing it, which has not been done yet. Similar to the fallen person testing, we simply need to verify that it can detect a person moving rapidly. Mapping testing involved running the robot through an area to be mapped and observing the resulting hard/soft obstacles and comparing them to the actual room layout. This was done in HH 1307 and just outside of it. We found that the higher the concentration of glass and small objects like chair legs, the worse the mapping performed. This was also where we found that ~0.15m/s would lead to the least blurry maps. Basic navigation testing involved taking a point on the map and directing the vehicle to move to it, which was successfull outside of 1307. However, this testing will be expanded by using different locations with less glass and a lower density of small objects. After we perform more mapping and navigation testing and can improve them, we are essentially done and have completed our design and use case requirements.

I also performed lidar testing with sean and Paul. We first moved multiple objects and ourselves around the stationary vehicle, where we found that it could recognize the changes in position, though there was a slight delay. However, when moving, especially in areas with glass, the quality of the distance map decreased, likley due to that delay. If Lidar does not work, then we cannot localize, so it is required for navigation and mapping to ever work.

 

Team status report for 3/28/26

Risk Assessment & Management

The most significant risk currently facing the project is system integration complexity. The robot now combines several independent subsystems: the KR260 vision pipeline, ROS 2 communication bridge, Nav2 navigation stack, Google Cartographer SLAM, and the VNH5019 motor driver, all of which must operate reliably together in real time. A failure or timing issue at any interface point can break the full navigation and detection loop. This risk is being managed through incremental integration testing: each subsystem was validated in isolation through unit testing  before being connected to the stack, and the team is actively debugging edge cases such as the RPLiDAR initialization timing issue that was identified this week. 

A second significant risk is hardware reliability. The RPLiDAR serial timeout failure demonstrated that a single faulty component can halt progress across multiple dependent subsystems. We fixed this by replacing it with a new unit, which restored LiDAR, SLAM, Nav2, and motor control functionality, but a single fragile moving component completely crippling our implementation is a concern. Going forward, the contingency plan is to maintain awareness of which components are single points of failure and, where feasible, have spare units or fallback sensor configurations available before the final demonstration. Looking back, we could have treated the sensor with a bit more care…

A third risk is schedule pressure ahead of the interim demo. The pan-tilt camera integration and full end-to-end validation between the vision and navigation systems are still outstanding. If camera tracking integration takes longer than expected, the contingency is to demonstrate autonomous navigation and human detection independently. The core navigation stack is already functional, and our bluetooth speaker plays the correct audio, so we feel that we will have a strong interim demo even if certain parts are not ready for the final demo.

Design Changes & Their Implications

One notable change to the system design was the addition of bounding box aspect ratio analysis to the pose detection pipeline on the KR260. The original detection approach relied primarily on pose keypoints, but this proved insufficient for reliably identifying persons in a lying-down orientation without generating false positives from partial body detections. The heuristic was refined to combine bounding box size, position within the frame, and aspect ratio to improve classification accuracy. This change was necessary to make the laying-down detection practically usable rather than noisy. The cost is added complexity in the detection pipeline and additional tuning effort, but this is mitigated by the fact that the change is contained entirely within the vision subsystem and does not affect the ROS 2 interface or downstream navigation behavior.

No changes to the high-level requirements or system block diagram have been made. The overall architecture KR260 for vision, Raspberry Pi 5 for compute and motor control, RPLiDAR for mapping, and Nav2 for navigation remains as originally specified.

One minor additional change that will be made is the addition of fillets and thicker joints for our bucket due to how it is mounted. 3D printed structures have vastly different strength depending on which way you stress them.

Paul Wright Status Report 3/28/26

What I Personally Accomplished This Week

This week I focused with Sean on the physical assembly of the chassis.  printed basic mounting components

This week I focused on physical system assembly and integration testing with Sean After he drastically cleaned up the wiring and mounting for the motor drivers, we decided on a new organization of our chassis that would reduce its overall profile, which I then designed and printed. We then worked on the interim demo presentation.

Progress Status

We are on track for a sucessful interim demo and meet our basic needs outside of the actual storage attachment for the vehicle. Our first designed had some points that were too thin with our given filament and lacked fillets.

Deliverables for Next Week

Make a new proper storage attachment for the vehicle

Work with the rest of the group on continual improvement of our overall system between the interim and final demos.

 

Justin Bell Status Report 2/28/2026

Progress Report

The Kria KR260 was pose detection was made and tested .The detection pipeline was extended to include bounding box aspect ratio analysis for laying down detection, with a refined heuristic combining bbox size, position in frame, and aspect ratio to filter out false positives from partial body detections. On the Pi side, a ROS 2 detection bridge node receives these detections and triggers an espeak voice alarm over a Bluetooth JBL Go 4 speaker when a person is detected on the ground, with a cooldown to prevent alarm spamming.

Motor control was brought online using the Pololu VNH5019 dual motor driver, interfaced directly to the Raspberry Pi 5 GPIO with 8 control pins per the standard INA/INB/PWM/EN configuration. The motor power and logic grounds were verified to be correctly referenced through the shared internal ground plane on the driver board. Nav2 was integrated with the motor control stack, enabling the robot to receive and execute navigation goals. Google Cartographer SLAM was also brought up and is partially functional.

The RPLiDAR serial timeout issue was resolved by replacing the hardware with a new unit, after which the LiDAR, Google Cartographer SLAM, Nav2, and motor control all came together into a functioning navigation stack. The robot is now capable of building a map in real time while navigating autonomously with motor control through the VNH5019 driver. Currently active work is focused on integrating the pan-tilt camera mechanism to enable the robot to track detected persons as it navigates, with the PAA5160E1 optical odometry sensor already running and feeding into Cartographer for improved localization accuracy.

Sean Johnson Status Report for 3/28/26

Sean’s Status Report for March 28, 2026

What I Personally Accomplished This Week

This week I focused on physical system assembly and integration testing. I built and organized the chassis, mounting the motor drivers, Raspberry Pi, KR260, and wiring all electrical connections. I worked with the team on testing the integrated navigation stack with the motor control system and debugging issues with the RPLidar initialization timing. I also contributed to planning our interim demo, where we aim to demonstrate functional autonomous navigation with basic computer vision human detection.

Progress Status

Progress is on track for the interim demonstration. The chassis is assembled and ready for testing, and the navigation stack is operational. Integration work continues as planned.

Deliverables for Next Week

Integrate for human detection data from the KR260 and validate end to end communication between vision and navigation systems. Testing of the complete system on the assembled chassis to ensure reliability. 

Team status report for 3/21/26

 

Our current most significant risk is our physical implementation having a cutoff of our camera’s view. It is non-negotiable that our lidar sensor needs to be on top, as if the vehicle obstructs it, any map will be incorrect. Therefore, we need physical supports to hold it up, which will end up obstructing our camera below. Minor camera obstruction is preferable to lidar obstruction because one leads to small blind spots for object recognition, while the other would affect localization and movement. We are currently researching solutions to this problem, with our best idea being that the camera physically moves in a circle around the support of the lidar sensor rather than spinning in place. 

We have delayed the speaker integration until we finalize our movement.

Below is our current vehicle with our basic mountings rather than 3d printed ones.

Paul Wright status report for 3/21/26

What I personally accomplished this week:

Now that we FINALLY have our new batteries and power distribution system, I assembled a basic version of our vehicle with all  of the parts other than the speakers. The mountings were done with cardboard and tape as a basic test of what our final product should be. I also began investigating alternatives to our current pan tilt implementation to avoid as much of the camera’s view being cut off. This is discussed further in our group report.

Progress status:

We have delayed the speaker additions for now because the assembly and movement is a more pressing issue.  We experienced more difficulties in getting properly working movement than expected, and will fix this by working on 3/22/26.

Deliverables for next week:

Learn 3d printing to make better mounting hardware for vehicle

Continue Work on construction of interim demo tests and setup.

Integrate speakers after movement works.

Justin Bell Status Report 3/21/2026

This week I made significant progress on my capstone project across several fronts.

On the perception side, I developed pan-tilt camera code that reacts to LiDAR detentions within 0.3 meters, orienting the camera toward nearby objects to determine whether they are people. I also set up a GitHub repository for the project to keep everything backed up and version-controlled.

On the navigation and hardware side, I continued testing Nav2 and ran additional experiments to evaluate its behavior in real-world conditions. I also swapped out the previous motors for VNH motor drivers and began testing the robot with them for the first time, verifying that the new hardware performs as expected.

Sean Johnson Status Report for 3/21/26

What I Personally Accomplished This Week

This week I focused on validating the navigation with actual robot motion by acquiring and integrating an Elegoo Smart Robot Car as a testing platform. I purchased and assembled the Elegoo chassis to enable immediate testing without waiting for our final mechanical design. The assembly involved mounting components, connecting the TB6612FNG motor driver, and wiring the Arduino UNO for motor control. 

Worked on connecting Nav2’s velocity commands to the Arduino controlled motors. This required writing a ROS2 node that converts Nav2’s /cmd_vel messages into serial commands sent to the Arduino over USB. Testing revealed an issue where Nav2 publishes only angular velocity commands with no forward linear velocity. I traced this to a coordinate frame mismatch between the odometry data and Nav2’s expectations. I also completed the required ethics module assignment. I also worked with the team on soldering connections for the motor driver power lines and sensor wiring, ensuring reliable electrical connections for sustained testing sessions.

Progress Status

Progress remains on track with the project timeline. The Week 7 deliverable for motor integration has been achieved with the Elegoo test platform responding to Nav2 commands.

Deliverables for Next Week 

I will begin implementing the behavioral finite state machine for operational mode transitions and establish the TCP socket receiver on the Raspberry Pi to accept human detection data from the KR260. These deliverables will complete the navigation subsystem and enable full system integration testing in Week 8.