{"id":277,"date":"2024-11-17T01:20:11","date_gmt":"2024-11-17T01:20:11","guid":{"rendered":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/f24-teamc6\/?p=277"},"modified":"2024-11-17T22:33:56","modified_gmt":"2024-11-17T22:33:56","slug":"team-status-report-for-11-16-2024","status":"publish","type":"post","link":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/f24-teamc6\/2024\/11\/17\/team-status-report-for-11-16-2024\/","title":{"rendered":"Team Status Report for 11\/16\/2024"},"content":{"rendered":"<p><strong>Significant Risks + Management<\/strong><br \/>\nOne significant risk this week is that we&#8217;ve observed that the readings we receive from our GPS chip without RTK support are far too inaccurate for us to achieve successful autonomous returns. Accordingly we&#8217;ve sought advice from Roboclub given their experience using GPS-RTK for robobuggy. We received a list a short list of hardware we needed and have placed orders already.<\/p>\n<h4><strong>Design Changes<\/strong><\/h4>\n<p>We will no longer be buying\u00a0 a deck, and instead we will be 3d printing one using the printers available in Roboclub.<\/p>\n<h4><strong>Schedule Changes<\/strong><\/h4>\n<p>Core task schedule remains the same. We are likely going to have to dip into the extra testing time we reserved at the end to get through small items such as LiDAR connection and any Bluetooth mishaps.<\/p>\n<p><strong>Progress<\/strong><\/p>\n<p>As of this week our project has reached its MVP of being a <strong><span style=\"font-weight: 400\">fully functional electric skateboard that is controlled by a web application, with the ability to accelerate, decelerate, and reverse at the press of a button. Sharon successfully connected the phone applications backend Bluetooth signals to the software on the skateboard&#8217;s Raspberry Pi.<\/span><\/strong><\/p>\n<p>As we approach the final physical layout for electronics on the skateboard, Jason has began printing out the enclosure we will use to secure them.<\/p>\n<p>Tio is working with on the location and orientation aspects of the skateboard&#8217;s autonomous return features, while Jason has put in many hours focusing on the computer vision aspect.<\/p>\n<div class=\"flex-1 overflow-hidden\">\n<div class=\"h-full\">\n<div class=\"react-scroll-to-bottom--css-mtdbr-79elbk h-full\">\n<div class=\"react-scroll-to-bottom--css-mtdbr-1n7m0yu\">\n<div class=\"flex flex-col text-sm md:pb-9\">\n<article class=\"w-full scroll-mb-[var(--thread-trailing-height,150px)] text-token-text-primary focus-visible:outline-2 focus-visible:outline-offset-[-4px]\" dir=\"auto\">\n<div class=\"m-auto text-base py-[18px] px-3 md:px-4 w-full md:px-5 lg:px-4 xl:px-5\">\n<div class=\"mx-auto flex flex-1 gap-4 text-base md:gap-5 lg:gap-6 md:max-w-3xl lg:max-w-[40rem] xl:max-w-[48rem]\">\n<div class=\"group\/conversation-turn relative flex w-full min-w-0 flex-col agent-turn\">\n<div class=\"flex-col gap-1 md:gap-3\">\n<div class=\"flex max-w-full flex-col flex-grow\">\n<div class=\"min-h-8 text-message flex w-full flex-col items-end gap-2 whitespace-normal break-words [.text-message+&amp;]:mt-5\" dir=\"auto\">\n<div class=\"flex w-full flex-col gap-1 empty:hidden first:pt-[3px]\">\n<div class=\"markdown prose w-full break-words dark:prose-invert light\">\n<p>Sharon worked on integrating the backend Bluetooth signals from the mobile app with the Raspberry Pi on the skateboard. This involved addressing challenges with outdated libraries by utilizing a specific fork of Bleno and implementing a socket-based communication flow, which improved responsiveness and reduced latency for motor control commands. Sharon also worked on refining the GPS accuracy for the \u2018Return to Me\u2019 feature by testing various filtering techniques, including the Kalman filter, to smooth out location inconsistencies. Additionally, Sharon refined the app interface, introducing an emergency stop button requiring a double-tap to activate for added safety and removing the reverse functionality to simplify user interactions.<\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"absolute\">\n<div class=\"flex items-center justify-center\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/article>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"md:pt-0 dark:border-white\/20 md:border-transparent md:dark:border-transparent w-full\">\n<div>\n<div class=\"m-auto text-base px-3 md:px-4 w-full md:px-5 lg:px-4 xl:px-5\">\n<div class=\"mx-auto flex flex-1 gap-4 text-base md:gap-5 lg:gap-6 md:max-w-3xl lg:max-w-[40rem] xl:max-w-[48rem]\">\n<div class=\"flex justify-center\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<p><strong>Verification Testing Plans<\/strong><\/p>\n<p>Speed Test<\/p>\n<ul>\n<li>Measurement: 15 mph \u00b1 1 mph<br \/>\nTest Input: Accelerate and decelerate on varied terrain (flat, inclined), rider weight, and motor load.<br \/>\nTest Output: Speed should remain within 14-16 mph.<br \/>\nRisks: Failure to maintain consistent speed and reach top speed.<\/li>\n<\/ul>\n<p>Battery Efficiency &amp; Range<\/p>\n<ul>\n<li>Measurement: 5 miles \u00b1 0.25 miles per charge.<br \/>\nTest Input: Continuous ride over varied terrain and rider loads (150-240 lbs).<br \/>\nTest Output: Travel 5 miles on a single charge.<br \/>\nRisks: Battery drains too quickly, insufficient power for &#8220;Return to Me&#8221; function.<\/li>\n<\/ul>\n<p>Return to Me Accuracy<\/p>\n<ul>\n<li>Measurement: 80% success rate within 1-meter margin.<br \/>\nTest Input: Recall skateboard over varying distances (5m, 10m, 50m, etc.) with\/without obstacles.<br \/>\nTest Output: Skateboard returned to user and retrieved within 1-meter margin smoothly.<br \/>\nRisks: Pathfinding issues due to GPS\/IMU inaccuracies.<\/li>\n<\/ul>\n<p>Obstacle Detection<\/p>\n<ul>\n<li>Measurement: Detect objects within 100ms, 90% accuracy.<br \/>\nTest Input: Set obstacle course with varied object sizes (rocks, trees, etc.).<br \/>\nTest Output: Skateboard successfully avoids obstacles within design requirements.<br \/>\nRisks: Slow or no detection at all, especially in fast-moving or small obstacles.<\/li>\n<\/ul>\n<p>Latency Test<\/p>\n<ul>\n<li>Measurement: Command response \u2264 100ms.<br \/>\nTest Input: Send commands from web app (accelerate, decelerate, etc.).<br \/>\nTest Output: Response time should be \u2264 100ms.<br \/>\nRisks: Bluetooth disconnects, delayed execution of commands.<\/li>\n<\/ul>\n<p>End-to-End Integration<\/p>\n<ul>\n<li>Measurement: No interruptions in 2+ mile trip.<br \/>\nTest Input: Combine all features, ride continuously for 2 miles.<br \/>\nTest Output: System functions smoothly for the entire trip.<br \/>\nRisks: Loss of connectivity or inconsistency between components<\/li>\n<li>Bluetooth Integration Testing:\n<ul>\n<li>Test Objective: Ensure that the Bluetooth communication between the mobile app and Raspberry Pi is responsive and reliable.<\/li>\n<li>Measurement: Command latency should be \u2264100ms.<\/li>\n<li>Methodology: Use timestamps in app commands and Raspberry Pi responses to calculate round-trip latency. Test commands (e.g., accelerate, decelerate) across different distances (1m, 5m, 10m) to check for consistency.<\/li>\n<li>Anticipated Results: Latency within the design specification, with no more than one disconnect per hour.<\/li>\n<li>Analysis Plan: Compare measured latency and disconnect frequency against benchmarks. If the results exceed acceptable limits, investigate interference or library issues for optimization.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul>\n<li>GPS Accuracy Testing:\n<ul>\n<li>Test Objective: Improve location tracking accuracy to within a 4-meter margin.<\/li>\n<li>Measurement: Distance error in meters between actual and reported locations.<\/li>\n<li>Methodology: Perform controlled outdoor tests using known fixed points as references. Apply filtering techniques like Kalman filters and compare pre- and post-filtered results.<\/li>\n<li>Anticipated Results: Average error \u22644m, with reduced noise in filtered data.<\/li>\n<li>Analysis Plan: Evaluate filtered GPS data for consistency and repeatability across multiple tests. Document limitations and refine filters or hardware configurations as necessary.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Significant Risks + Management One significant risk this week is that we&#8217;ve observed that the readings we receive from our GPS chip without RTK support are far too inaccurate for us to achieve successful autonomous returns. Accordingly we&#8217;ve sought advice from Roboclub given their experience using GPS-RTK for robobuggy. We received a list a short &hellip; <\/p>\n<p class=\"link-more\"><a href=\"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/f24-teamc6\/2024\/11\/17\/team-status-report-for-11-16-2024\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;Team Status Report for 11\/16\/2024&#8221;<\/span><\/a><\/p>\n","protected":false},"author":972,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[12],"tags":[],"_links":{"self":[{"href":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/f24-teamc6\/wp-json\/wp\/v2\/posts\/277"}],"collection":[{"href":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/f24-teamc6\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/f24-teamc6\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/f24-teamc6\/wp-json\/wp\/v2\/users\/972"}],"replies":[{"embeddable":true,"href":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/f24-teamc6\/wp-json\/wp\/v2\/comments?post=277"}],"version-history":[{"count":3,"href":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/f24-teamc6\/wp-json\/wp\/v2\/posts\/277\/revisions"}],"predecessor-version":[{"id":286,"href":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/f24-teamc6\/wp-json\/wp\/v2\/posts\/277\/revisions\/286"}],"wp:attachment":[{"href":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/f24-teamc6\/wp-json\/wp\/v2\/media?parent=277"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/f24-teamc6\/wp-json\/wp\/v2\/categories?post=277"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/f24-teamc6\/wp-json\/wp\/v2\/tags?post=277"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}