{"id":252,"date":"2024-04-28T03:21:57","date_gmt":"2024-04-28T03:21:57","guid":{"rendered":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s24-teamc1\/?p=252"},"modified":"2024-04-28T03:21:57","modified_gmt":"2024-04-28T03:21:57","slug":"team-status-report-for-04-27","status":"publish","type":"post","link":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s24-teamc1\/2024\/04\/28\/team-status-report-for-04-27\/","title":{"rendered":"Team Status Report for 04\/27"},"content":{"rendered":"<p><b>Schedule<\/b><\/p>\n<p><span style=\"font-weight: 400\">Now that we are in the final stretch, we need to test the full system, and continue working on our tasks that involve drawing the properly accurate rectangular red segments and fine tuning the frequency of our data sending\/receiving now that we are not limited by it. We are working to improve the UI so that it is actually instructive and intuitive on demo day. Besides the technical improvements we need to make on our project, we need to start working on our presentation materials which include the final video, poster, and the written report.<\/span><\/p>\n<p><b>Risks &amp; Challenges<\/b><\/p>\n<p><span style=\"font-weight: 400\">We currently have a little work left to accurately reflect the dirty and clean space on the AR side. The bounding boxes do not perfectly align yet, so we are still tuning the values within our AR app to ensure that the camera view matches the response on the iPhone\u2019s app. Erin and Harshul are working to tune these parameters, and Nathalie is working on final touches with the UI. We still have a couple final tests to run, and we need to mount the active illumination to the system. However, we don\u2019t anticipate any of these tasks to be blocking. <\/span><\/p>\n<p><b>Validation:\u00a0<\/b><\/p>\n<ol>\n<li><span style=\"text-decoration: underline\">Line Tracking Test<\/span><br \/>\nUsing masking take, create a straight, one meter long zig-zag section of four 90\u00b0 bends which are each half a meter long. Using four 8.5&#8243;x11&#8243; US Letter papers, print out a curved line section of the same width as the masking tape, and assemble to create a contiguous line. Then drive the vacuum over the line and verify that the drawn line tracks the reference lines with smooth connectivity and no deviations of perpendicular distance by more than 5cm.<br \/>\n<span style=\"text-decoration: underline\">Results<\/span>: Verified that we are able to track a range of motions from straight to sharp curves. Instead of mocking this on paper, we used TechSpark\u2019s robot tracking tape path, which had a similar geometry to what was outlined in the test<\/li>\n<li><span style=\"text-decoration: underline\">Technical Requirements Tracking Test<\/span><br \/>\n<span style=\"font-weight: 400\">In our design report, we outlined a 5cm radius for the vacuum head\u2019s suction. Upon setting that radius for the SCNLine, we should see that the lines drawn encompass the length of the vacuum head.\u00a0<\/span><span style=\"font-weight: 400\">Additionally, we also outlined a 0.5s latency requirement for the tracking motion. To test this, we move in a straight line for two meters and verify that upon stopping, the entire motion is captured on the AR application within 0.5 seconds and accurately reflects the movement.<br \/>\n<\/span><span style=\"font-weight: 400\"><span style=\"text-decoration: underline\">Results<\/span>:\u00a0<\/span><span style=\"font-weight: 400\">Tracking is in real time and the line drawn is continuous with no stuttering. This test informed our decision to move to SCNLine rather than our previous naive implementation of segmented cylinders.\u00a0<\/span><\/li>\n<li><span style=\"text-decoration: underline\">Plane Projection Verification<\/span><br \/>\n<span style=\"font-weight: 400\">We will draw an offset at 5cm plus the radius of the SCNLine from the floor plane. Then we will place the phone such that the camera is touching the floor and positioned perpendicular to it. Upon visual inspection, none of the drawn shape should touch or extend past this test plane.<br \/>\n<\/span><span style=\"font-weight: 400\"><span style=\"text-decoration: underline\">Results<\/span>: V<\/span><span style=\"font-weight: 400\">erified that this projection method works. It is reliable even after changing from a hit-test to a plane projection<\/span><\/li>\n<li><span style=\"font-weight: 400\"><span style=\"text-decoration: underline\">BLE Connection<\/span>:<br \/>\n<\/span><span style=\"font-size: 1rem\">Try to send dirty\/clean messages thirty times. Find delay between each test. Consider the summary statistics of this data which we collect. Assuming the standard deviation is not large, we can focus more on the mean value. We hope for the mean value to be around 0.1s, which gives us fps=10. This may not be achievable given the constraints of BLE, but with these tests, we will be able to determine what our system can achieve<br \/>\n<span style=\"text-decoration: underline\">Results<\/span>: We ran tests and collected over two hundred different sample latency values. We have achieved the desired 0.1s latency. The bottleneck has now become the camera&#8217;s frame rate, which is 30fps.<\/span><\/li>\n<li><span style=\"font-weight: 400\"><span style=\"text-decoration: underline\">Dirt Detection<\/span><br \/>\nTake ten photos each of: 1) Clean floor, 2)\u00a0<\/span><span style=\"font-weight: 400\">Unclean floor, sparse dirt, and 3)\u00a0Unclean floor, heavy dirt.\u00a0<\/span><span style=\"font-weight: 400\">Assert that the dirt detection module classifies all ten images of the clean floor as \u201cclean\u201d, and all twenty images of the unclean floor as \u201cdirty\u201d. If this is not met, we will need to further tune the thresholds of the dirt detection al<\/span><span style=\"font-size: 1rem\">gorithm.<br \/>\n<span style=\"text-decoration: underline\">Results<\/span>: After running our script on two different algorithms, we achieved the following results. Based on these values, we have chosen the second script.\u00a0<\/span><\/p>\n<table>\n<tbody>\n<tr>\n<td><b>FPV<\/b><\/td>\n<td><span style=\"font-weight: 400\">81.82%<\/span><\/td>\n<td><span style=\"font-weight: 400\">0.00%<\/span><\/td>\n<\/tr>\n<tr>\n<td><b>FNV<\/b><\/td>\n<td><span style=\"font-weight: 400\">0.00%<\/span><\/td>\n<td><span style=\"font-weight: 400\">9.52%<\/span><\/td>\n<\/tr>\n<tr>\n<td><b>ACC<\/b><\/td>\n<td><span style=\"font-weight: 400\">71.88%<\/span><\/td>\n<td><span style=\"font-weight: 400\">93.75%<\/span><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/li>\n<li><span style=\"font-weight: 400\"><span style=\"text-decoration: underline\">Camera Bounding Box Test<\/span><br \/>\nSet up the vacuum system on a table in TechSpark and create little red rods to delimit borders of its field of vision. By accurately determining these parameters, we refined the precise cropping and granularity in our image capturing.<br \/>\n<\/span><span style=\"text-decoration: underline\">Results<\/span>: We have now determined the correct parameters to use when cropping the camera field of view in our dirt detection algorithm.<\/li>\n<li><span style=\"font-weight: 400\"><span style=\"text-decoration: underline\">Jetson Mounting Tests <\/span><br \/>\nNote that these tests were very prototype focused. We created cardboard cut outs with a knife to identify shape and stiffness requirements. We then cut the pieces out of both acrylic and plywood and tested to make sure that there was enough give in the components to be able to still function modularly. We tested our components using tape, hot glue and epoxy for mounting. The tape was flimsy and too vulnerable for jostling our main mount. We opted for hot glue and\/or epoxy for mounting fixed components. The initial testing we did with the first mount iterations found that the wheels jostled the mount so we fabricated standoffs to account for this.<br \/>\n<span style=\"text-decoration: underline\">Results<\/span>:\u00a0Camera configuration cropping and resolution was initially too narrow. We implemented design changes and updated the camera configuration to capture a bounding box more appropriately sized with the width of the vacuum.<\/span><\/li>\n<li><span style=\"text-decoration: underline\"><span style=\"font-weight: 400\">Camera Mounting<br \/>\n<\/span><\/span><span style=\"font-weight: 400\">Tested various camera angle configurations against the amount of dirt captured to identify optimal mounting orientation.<br \/>\n<\/span><span style=\"text-decoration: underline\"><span style=\"font-weight: 400\">Results<\/span><\/span><span style=\"font-weight: 400\">: We used\u00a0<\/span><span style=\"font-weight: 400\">this test to select our final mounting orientation for the Jetson camera.<br \/>\n<img decoding=\"async\" loading=\"lazy\" class=\"alignnone size-full wp-image-254\" src=\"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s24-teamc1\/wp-content\/uploads\/sites\/285\/2024\/04\/Screenshot-2024-04-27-at-11.16.43\u202fPM.png\" alt=\"\" width=\"597\" height=\"369\" srcset=\"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s24-teamc1\/wp-content\/uploads\/sites\/285\/2024\/04\/Screenshot-2024-04-27-at-11.16.43\u202fPM.png 597w, http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s24-teamc1\/wp-content\/uploads\/sites\/285\/2024\/04\/Screenshot-2024-04-27-at-11.16.43\u202fPM-300x185.png 300w\" sizes=\"(max-width: 597px) 100vw, 597px\" \/><br \/>\n<\/span><\/li>\n<li><span style=\"text-decoration: underline\">Battery Life Test<\/span><br \/>\n<span style=\"font-weight: 400\">We start the Jetson from a full charge, and run the entire end-to-end system for five minutes. After the five minutes are up, we check the charge on the Jetson. A charge depletion of less than 2.08% would indicate a successful output.<br \/>\n<span style=\"text-decoration: underline\">Results<\/span>: Over a span of thirty minutes, the power bank battery was only depleted around 10% (across four independent trials). This satisfies our requirements for battery life.\u00a0<\/span><\/li>\n<\/ol>\n","protected":false},"excerpt":{"rendered":"<p>Schedule Now that we are in the final stretch, we need to test the full system, and continue working on our tasks that involve drawing the properly accurate rectangular red segments and fine tuning the frequency of our data sending\/receiving now that we are not limited by it. We are working to improve the UI &hellip; <\/p>\n<p class=\"link-more\"><a href=\"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s24-teamc1\/2024\/04\/28\/team-status-report-for-04-27\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;Team Status Report for 04\/27&#8221;<\/span><\/a><\/p>\n","protected":false},"author":887,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[3],"tags":[],"_links":{"self":[{"href":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s24-teamc1\/wp-json\/wp\/v2\/posts\/252"}],"collection":[{"href":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s24-teamc1\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s24-teamc1\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s24-teamc1\/wp-json\/wp\/v2\/users\/887"}],"replies":[{"embeddable":true,"href":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s24-teamc1\/wp-json\/wp\/v2\/comments?post=252"}],"version-history":[{"count":2,"href":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s24-teamc1\/wp-json\/wp\/v2\/posts\/252\/revisions"}],"predecessor-version":[{"id":255,"href":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s24-teamc1\/wp-json\/wp\/v2\/posts\/252\/revisions\/255"}],"wp:attachment":[{"href":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s24-teamc1\/wp-json\/wp\/v2\/media?parent=252"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s24-teamc1\/wp-json\/wp\/v2\/categories?post=252"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s24-teamc1\/wp-json\/wp\/v2\/tags?post=252"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}