{"id":238,"date":"2024-12-07T23:11:46","date_gmt":"2024-12-07T23:11:46","guid":{"rendered":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/f24-teama2\/?p=238"},"modified":"2024-12-07T23:15:55","modified_gmt":"2024-12-07T23:15:55","slug":"jimmys-status-report-12-07","status":"publish","type":"post","link":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/f24-teama2\/2024\/12\/07\/jimmys-status-report-12-07\/","title":{"rendered":"Jimmy&#8217;s Status Report 12\/07"},"content":{"rendered":"<p><b>Accomplishments<\/b><\/p>\n<p><span style=\"font-weight: 400\">Over this week, I was able to fully integrate the camera detection pipeline, tracking and kalman filter implementation to make a series of predictions and finally link that to the gantry system. The final result was a system that is able to predict throws from the user on a single axis. I then tried to debug the issue of the 3D depth detection on the Luxonis camera with Gordon, where we eventually deduced that the depth was a no-go for reasons outlined in the team report. We eventually switched gears to using a second camera, which I have prototyped up some code that successfully predicts the horizontal direction of where the ball will land, from a front-facing camera placed behind the gantry system, getting a full-view of the user throwing the ball so that we can use this prediction in-place of the original depth measurement. This uses the same kalman prediction pipeline as the side-view camera and an adjusted detection filter (an addition of MOG background subtraction and also using moments capture rather than contour extraction). Here are the results:<\/span><\/p>\n<p><iframe loading=\"lazy\" width=\"525\" height=\"394\" src=\"https:\/\/www.youtube.com\/embed\/QmOhVdequVo?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen title=\"kalman real time\"><\/iframe><\/p>\n<p><iframe loading=\"lazy\" width=\"525\" height=\"394\" src=\"https:\/\/www.youtube.com\/embed\/HIM8vwJSATI?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen title=\"kalman front view 1\"><\/iframe><\/p>\n<p><iframe loading=\"lazy\" width=\"525\" height=\"394\" src=\"https:\/\/www.youtube.com\/embed\/RW0tsbrT6jc?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen title=\"kalman front view 2\"><\/iframe><\/p>\n<p><b>Schedule<\/b><\/p>\n<p><span style=\"font-weight: 400\">Since we have pivoted to a much easier concept by using a second camera, we are back on schedule and implementation details are fully complete &#8211; we are waiting for the second tripod to arrive so that we can test the full system. What remains is the balance between the poster\/video\/final report submissions with the final integration sprint that needs to be completed in time for the final demo.<\/span><\/p>\n<p>&nbsp;<\/p>\n<p><b>Deliverables<\/b><\/p>\n<p><span style=\"font-weight: 400\">Testing of the final integrated product will need to be completed once the second tripod has arrived. I will also finish up the code that integrates the side-view camera detection\/prediction and the front-view camera detection\/prediction whilst waiting for the tripod. I will also finish up some logic that will only allow for the front-view kalman pipeline to be running when the side-view camera has detected the ball in it\u2019s frame, as to prevent the front-view camera erroneously to begin predicting before the user has even thrown the ball.<\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Accomplishments Over this week, I was able to fully integrate the camera detection pipeline, tracking and kalman filter implementation to make a series of predictions and finally link that to the gantry system. The final result was a system that is able to predict throws from the user on a single axis. I then tried &hellip; <\/p>\n<p class=\"link-more\"><a href=\"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/f24-teama2\/2024\/12\/07\/jimmys-status-report-12-07\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;Jimmy&#8217;s Status Report 12\/07&#8221;<\/span><\/a><\/p>\n","protected":false},"author":938,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[13,4],"tags":[],"_links":{"self":[{"href":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/f24-teama2\/wp-json\/wp\/v2\/posts\/238"}],"collection":[{"href":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/f24-teama2\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/f24-teama2\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/f24-teama2\/wp-json\/wp\/v2\/users\/938"}],"replies":[{"embeddable":true,"href":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/f24-teama2\/wp-json\/wp\/v2\/comments?post=238"}],"version-history":[{"count":2,"href":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/f24-teama2\/wp-json\/wp\/v2\/posts\/238\/revisions"}],"predecessor-version":[{"id":240,"href":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/f24-teama2\/wp-json\/wp\/v2\/posts\/238\/revisions\/240"}],"wp:attachment":[{"href":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/f24-teama2\/wp-json\/wp\/v2\/media?parent=238"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/f24-teama2\/wp-json\/wp\/v2\/categories?post=238"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/f24-teama2\/wp-json\/wp\/v2\/tags?post=238"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}