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.