Caroline’s Status Report for 4/29

This week, I helped with the unit testing for our robot and worked on materials for our final presentation and final poster. The testing plan is as described in the Team Status Report, and we are mainly observing the performance while noting failure cases for possible adjustment in the future. I also laser cut small cylinders to hold the scents for our demo. We need these cylinders to prop up the scented object so that it can be picked up by the ultrasonic sensors.

Caroline’s Status Report for 4/22

The past weeks, I worked on various improvements to the robot including modifying and reprinting the design of top and back panel, integrating two new ultrasonic sensors on the side of the robot to reduce obstacle collisions, and making various adjustments to the scent detection and confirmation logic to improve the accuracy of detection.

With regards to the robot exterior, I redesigned the top of the robot to include cutouts for the LCD screen and newly added neopixel so that all of the wiring is hidden inside the robot and it looks more finished overall. I also added vents to the back of the robot to help with airflow throughout the chamber. Lastly, I drilled two holes on the side of the robot to install the two new side ultrasonic sensors. The two ultrasonic sensors were added to help prevent the robot from running into the scented object, which occurred often while it was scanning. I initially just tried to implement logic that made the robot reverse slightly if it detected a side object during scanning and then continue its scans from the same position. Getting the robot to reverse while preserving the scan angle actually required some significant effort which my team assisted me with in debugging. While testing the obstacle detection, we also decided that it would be valuable to change the logic for obstacle avoidance during random exploration as well due to some issues with the robot getting stuck when facing an obstacle. I changed it so that if the front ultrasonic sensor is triggered, it reverses and then continues to a new random coordinate, and if a side ultrasonic sensor is triggered, it rotates 90 degrees in the opposite direction. Lastly, I changed scent detection and confirmation logic to also take into account readings from the ENS 160 TVOC channel in addition to the Grove ethanol channel. The Grove sensor has had sensitivity issues where the ethanol value will not change at all unless the scent is very close. The ENS 160 TVOC channel is more sensitive to the scents at a farther distance, but is also more prone to random spikes which poses the risk of triggering more false detections. We tested different thresholds and logic for using the two sensors and will continue to tune this if necessary.

In the upcoming week, my main focus will be assisting with the testing of the robot and making any adjustments to the robot according to our observations. We don’t anticipate to make any more major system changes — the main goal is to improve the reliability and accuracy of the scent detection for our demo.

Caroline’s Status Report for 4/8

During the first half of this week, I helped test and refine our robot in preparation for the interim demo. My team tested many different locations to hold the demo and tuned hyper parameters to improve the ability of the robot to track down a scent. After the demo, I switched out the Arduino Uno in our robot to an Arduino Mega. This solved the memory issues we were facing and we are now able to read from multiple sensors at a time. This means that we can now simultaneously measure the ethanol values in addition to CO2, CO, and get temperature and humidity readings. We tested the new sensor array with both incense smoke and isopropyl alcohol and found that these two scents cause all of the sensor channels to rise. This is problematic because it means that we are unable to differentiate scents just by thresholding different sensor channels. Because of this, we are switching to using an ML model to try to distinguish between scents. Moving forwards, I will help with improving this model and testing the robot. Once the classification part is integrated, our project focus is more on improving the existing setup.

In terms of verification and validation, my team has done lots of testing to optimize the robot hyper parameters and testing setup. We have placed the robot in multiple different environments and observed whether or not it detected and track down a scented cotton ball placed in the environment. We discovered that the robot is not able to move on certain uneven surfaces and in rooms where there is strong air conditioning — in these cases, the robot struggled to move or would not move in the correct direction towards the scent. Moving forwards, we will continue adjusting the robot and testing setup to ensure that it can consistently meet the design requirements of being able to track down and correctly identify a scent. We will keep track of metrics such as the time the robot takes to identify a scent and the scent classification accuracy.

Caroline’s Status Report for 4/1

This week I worked on implementing and testing the “targeted search” algorithm for our robot, where it tries to track down the direction of a scent upon detection. Initially, I just used a simple thresholded sensor value to trigger the “targeted search” mode. Once it enters this mode, the robot stops in place and begins sampling the sensor values at different angles of rotation. It then proceeds in the direction at which the maximum sensor value was taken. It confirmed the location of a scent once the sensor value exceeded another, higher threshold. With perfect sensors, this algorithm should work in theory, but we have had to strategize and adjust due to noise and inconsistencies in the sensor readings. We tested different ranges of rotations and looking at the slope of the best fit line to more reliably trigger the search mode and identify the direction of the scented object, but the results are still not very consistent. We will try using a fan in order to amplify the distribution of the scent in preparation for the interim demo. Additionally, I integrated the ultrasonic sensor into the code, so now the robot stops and turns around if it gets too close to an obstacle. Before the interim demo, we need to build a barrier around the arena to prevent the robot from going out of bounds. We will also start testing the sensor sensitivity to paint thinner so that we can demo the robot detecting multiple scents.

Caroline’s Status Report for 3/25

This week, I worked more on robot assembly and assisting with the integration of our different subsystems. I glued the components of the robot together and the motors are finally secure which has improved the accuracy of the robots movement. While working on integration of the sensor and motion systems, I helped test and debug when we ran into problems. We ran a few informal tests with the ENS160 sensor by thresholding the ethanol reading and were successful in getting the robot to stop when alcohol was placed around 6 inches away from the sensor. Initially, our goal with integration was to see if we could let the robot run while sampling and collecting data, but we ran into unexpected issues due to Arduino hardware constraints. Our program was too memory intensive to run on the Arduino, so we were unable to transmit the sensor data wirelessly. I ordered an Arduino Mega and another Grove shield and we will have to replace our old Arduino Uno as soon as the part arrives. In the meantime, we can still collect data through a wired connection, but our priority is more focused on integration and preparing for the interim demo. Potentially we will use a more simple thresholding method for scent detection instead of a classification algorithm for our interim demo, so robust dataset collection is not the number one priority at this stage. We will need to define as soon as possible what we aim to accomplish before the demo and form our plan for next week accordingly. 

Caroline’s Status Report for 3/18

This week, I tested a new method with glue to secure the motors to the robot. This method worked decently during our initial testing, but came undone with more usage. As a more permanent solution, I am looking at some options for tube or u-shaped brackets and will place an order this weekend. I also helped out with testing the motor control code that Aditti set up this week. We ran simple unit tests which would instruct the robot to navigate to a simple series of points such as (0, 0) -> (0, 1) -> (1, 1). Due to slight differences in the motors or other external factors, the robot is not always able to reach the target points. I wrote some additional code that helps the robot correct it’s course if it strays too far off of the intended path. I will continue helping to test the robot motion next week. Dataset generation is also my priority for next week. Now that we have the data pipeline set up and all of the necessary materials, I will start on this as soon as possible.

Caroline’s Status Report for 3/11

Last week, I worked on testing the motors when assembled in the robot chassis. After installing new fasteners for the motors, the range of motion of motors was reduced and the wheels were able to support the robots weight. However, there was still wiggle room which allowed the wheels to become a bit unstable. Because of this, the robot moved somewhat unpredictably when directed to move in a straight line. When testing, the robot often curved slightly to the left which we hypothesize is due to a small, expected miscallibration of the motors as well. Next week, I will try securing the motors with a stronger fastener and test the motion again to determine if further tuning is necessary. I will also help work on the sensor system assembly. One key concern we have is how sensitive the sensors will be when installed inside our robot, and determining the maximum distance at which scents can be detected with our testing setup. After more experimentation with the sensor sensitivity next week, I will determine if any modifications need to be made to the robot to help increase the range at which scents can be detected.

Caroline’s Weekly Status Report 2/25

This week I worked on the design and assembly of the robot chassis and hardware. I made multiple adjustments to the CAD model in order to better accommodate our parts. First, the top piece of the chassis was too thick and inflexible to mold into the desired form factor, so I made adjustments to the front, back, and side plates to accommodate a thinner top panel. Additionally, I measured the dimensions of our motors and added supports to hold the motors and holes in the side panels to fix the axel. When testing out these supports, we found that the motors were not secure enough, so I drafted a new CAD design which ensures that the motors will not be able to move in any direction during operation. I will be laser cutting and testing this design as early as possible so that we can proceed with testing the calibration of the motors in the robot. I am currently behind on the sensor system assembly as one of our sensors has not arrived yet, but I will start working with our current sensors next week and help with the interfacing of these sensors.

Caroline’s Status Report for 2/18

This week, I primarily worked on the robot design and CAD model. I worked with Aditti to scope out the dimensions of the robot and the layout of the internal components. Then, I modeled the parts in Solidworks and created a layout for laser cutting the pieces. I also inspected the parts that arrived for our robot this week and made additional measurements to ensure that our hardware assembly goes smoothly. We now have most of the key parts needed to assemble our robot, and are just waiting on one of the gas sensors and a shield for the Arduino). We are on track to laser cut the pieces and have the main robot chassis assembled by next week. Next week, I will start testing the parts that arrived. In particular, it is important that we verify that the functionality of the motors and their compatibility with the rest of our systems.

This week, I did not have to apply any skills learned from ECE courses as I was mostly focused on robot construction. I learned CAD modeling from previous internships and the introductory mechanical engineering course.

Caroline’s Weekly Status Report for 2/11

This week, I practiced and delivered the proposal presentation for my team. In addition to the presentation, I helped research and organize different parts for our robot so that we can order components as soon as possible and begin testing and assembly. We had to shift a few items on our schedule such as robot assembly because they required specific parts, but we will catch up as soon as possible. Next week, I will help work on the CAD modeling for the robot chassis and also start setting up the Arduino codebase for path planning.