{"id":100,"date":"2024-03-09T01:57:43","date_gmt":"2024-03-09T01:57:43","guid":{"rendered":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s24-teamc1\/?p=100"},"modified":"2024-03-10T04:37:43","modified_gmt":"2024-03-10T04:37:43","slug":"harshuls-status-report-for-3-9","status":"publish","type":"post","link":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s24-teamc1\/2024\/03\/09\/harshuls-status-report-for-3-9\/","title":{"rendered":"Harshul&#8217;s Status Report for 3\/9"},"content":{"rendered":"<p><span style=\"font-weight: 400\">This week I spent the majority of my time working on the design report and working with the ARKit applications on the iPhone. In the report I primarily focused on the intro, the system architecture, the design trade studies and the section on the implementation details for object placement and the software implementation.The work on the architecture section involved refining the architecture work from the design presentation and clearly identifying subsystems and components that allow for easier quantification of progress and tasks as well as clearly defining subsystem boundaries and functionalities for system integration. We\u2019d discussed tradeoffs in our component selection but the testing and research we had done was now quantified in the trade studies by creating comparison matrices with weighted metrics to quantitatively demonstrate the rationale behind our component selection as well as performing a tradeoff analysis on whether to purchase or custom fabricate certain components. Below is an example of one of the trade studies with a 1-10 likert scale\u00a0 and weights that sum to 1.0.<\/span><\/p>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"alignnone wp-image-103 size-full\" src=\"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s24-teamc1\/wp-content\/uploads\/sites\/285\/2024\/03\/Screenshot-2024-03-09-at-8.56.19-PM.png\" alt=\"\" width=\"1412\" height=\"564\" srcset=\"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s24-teamc1\/wp-content\/uploads\/sites\/285\/2024\/03\/Screenshot-2024-03-09-at-8.56.19-PM.png 1412w, http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s24-teamc1\/wp-content\/uploads\/sites\/285\/2024\/03\/Screenshot-2024-03-09-at-8.56.19-PM-300x120.png 300w, http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s24-teamc1\/wp-content\/uploads\/sites\/285\/2024\/03\/Screenshot-2024-03-09-at-8.56.19-PM-768x307.png 768w, http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s24-teamc1\/wp-content\/uploads\/sites\/285\/2024\/03\/Screenshot-2024-03-09-at-8.56.19-PM-1024x409.png 1024w\" sizes=\"(max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px\" \/><\/p>\n<p><span style=\"font-weight: 400\">With respect to implementation details I ran an ARKit world tracking session as a baseline to test whether we can save existing map information and reload that data to avoid having to localize from scratch every time. This feature would enable us to map out the space initially to improve overall accuracy. The second feature that this app tested was the ability to place an object anchored to a specific point in the world, this tests the ability for the user to place an input as well as the ability for the ARKit API to anchor an object to a specific coordinate in the world map and be able to dynamically store and reload this without needing to re-localize from scratch. From here we plan on integrating this with the subsequent plane detection feature outlined in the next subsection as well as test mapping a full texture to a plane in the map instead of just placing an object into the world. As shown in the below images:<\/span><\/p>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"alignnone wp-image-102 size-large\" src=\"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s24-teamc1\/wp-content\/uploads\/sites\/285\/2024\/03\/Screenshot-2024-03-09-at-8.56.08-PM-583x1024.png\" alt=\"\" width=\"525\" height=\"922\" srcset=\"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s24-teamc1\/wp-content\/uploads\/sites\/285\/2024\/03\/Screenshot-2024-03-09-at-8.56.08-PM-583x1024.png 583w, http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s24-teamc1\/wp-content\/uploads\/sites\/285\/2024\/03\/Screenshot-2024-03-09-at-8.56.08-PM-171x300.png 171w, http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s24-teamc1\/wp-content\/uploads\/sites\/285\/2024\/03\/Screenshot-2024-03-09-at-8.56.08-PM-768x1349.png 768w, http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s24-teamc1\/wp-content\/uploads\/sites\/285\/2024\/03\/Screenshot-2024-03-09-at-8.56.08-PM.png 978w\" sizes=\"(max-width: 525px) 100vw, 525px\" \/><img decoding=\"async\" loading=\"lazy\" class=\"alignnone wp-image-101 size-large\" src=\"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s24-teamc1\/wp-content\/uploads\/sites\/285\/2024\/03\/Screenshot-2024-03-09-at-8.56.01-PM-457x1024.png\" alt=\"\" width=\"457\" height=\"1024\" srcset=\"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s24-teamc1\/wp-content\/uploads\/sites\/285\/2024\/03\/Screenshot-2024-03-09-at-8.56.01-PM-457x1024.png 457w, http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s24-teamc1\/wp-content\/uploads\/sites\/285\/2024\/03\/Screenshot-2024-03-09-at-8.56.01-PM-134x300.png 134w, http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s24-teamc1\/wp-content\/uploads\/sites\/285\/2024\/03\/Screenshot-2024-03-09-at-8.56.01-PM-768x1723.png 768w, http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s24-teamc1\/wp-content\/uploads\/sites\/285\/2024\/03\/Screenshot-2024-03-09-at-8.56.01-PM.png 790w\" sizes=\"(max-width: 457px) 100vw, 457px\" \/><\/p>\n<p><span style=\"font-weight: 400\">This was a key proof of concept in our ability to map and localize to the environment and combining this approach with Nathalie\u2019s work on plane detection will be a key next step. Additionally this work on mapping allowed me to assist in coming up with the test metric for mapping for coverage. Researching options and using existing knowledge of the API I outlined the use of the <\/span><a href=\"https:\/\/developer.apple.com\/documentation\/arkit\/arplaneanchor\/3950858-planeextent\"><span style=\"font-weight: 400\">planeExtent<\/span><\/a><span style=\"font-weight: 400\"> to extract the dimensions of a plane as well as the ability to compute point to point measurements of distance in AR to outline the mapping coverage test to ensure the dimensional error and drift error on the planes are within the bounds specified by our requirements.\u00a0<\/span><\/p>\n<p>&nbsp;<\/p>\n<p><span style=\"font-weight: 400\">With respect to timelines things are on track, certain component orders have been moved around on the gaant chart, but AR development is going well. The key next steps are to now take our proof of concept applications and start integrating them into a unified app that can localize, select a floor plane and then mesh a projected texture onto that plane .<\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>This week I spent the majority of my time working on the design report and working with the ARKit applications on the iPhone. In the report I primarily focused on the intro, the system architecture, the design trade studies and the section on the implementation details for object placement and the software implementation.The work on &hellip; <\/p>\n<p class=\"link-more\"><a href=\"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s24-teamc1\/2024\/03\/09\/harshuls-status-report-for-3-9\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;Harshul&#8217;s Status Report for 3\/9&#8221;<\/span><\/a><\/p>\n","protected":false},"author":852,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[5],"tags":[],"_links":{"self":[{"href":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s24-teamc1\/wp-json\/wp\/v2\/posts\/100"}],"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\/852"}],"replies":[{"embeddable":true,"href":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s24-teamc1\/wp-json\/wp\/v2\/comments?post=100"}],"version-history":[{"count":1,"href":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s24-teamc1\/wp-json\/wp\/v2\/posts\/100\/revisions"}],"predecessor-version":[{"id":104,"href":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s24-teamc1\/wp-json\/wp\/v2\/posts\/100\/revisions\/104"}],"wp:attachment":[{"href":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s24-teamc1\/wp-json\/wp\/v2\/media?parent=100"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s24-teamc1\/wp-json\/wp\/v2\/categories?post=100"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s24-teamc1\/wp-json\/wp\/v2\/tags?post=100"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}