{"id":193,"date":"2024-11-17T01:05:47","date_gmt":"2024-11-17T01:05:47","guid":{"rendered":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/f24-teama2\/?p=193"},"modified":"2024-11-17T01:09:18","modified_gmt":"2024-11-17T01:09:18","slug":"jimmys-status-report-11-16","status":"publish","type":"post","link":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/f24-teama2\/2024\/11\/17\/jimmys-status-report-11-16\/","title":{"rendered":"Jimmy&#8217;s Status Report 11\/16"},"content":{"rendered":"<p><b>Accomplishments<\/b><\/p>\n<p><span style=\"font-weight: 400\">After experimenting and working with the current kalman filter, I decided to scrap this implementation and work on a new self-implementation of the filter using the numpy library. This yielded really good results, as it allowed me to tune specific parameters that the other model wouldn\u2019t have otherwise. It was able to predict very accurately from visual inspection, although testing will need to be done to make sure that the predictions can be made consistently from different throws and with many variables involved. Also this week Gordon and I together did work on bringing up the OAK-D camera to use on the RPI. There were some issues with the frame rate of the camera, which I aim to resolve using multithreading so that the detection and prediction processing will occur concurrently with pulling in the frames from the camera&#8217;s feed.<\/span><\/p>\n<p><iframe loading=\"lazy\" width=\"525\" height=\"295\" src=\"https:\/\/www.youtube.com\/embed\/4dwdtw_3Q_s?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=\"predict 2\"><\/iframe><\/p>\n<p><b>Schedule<\/b><\/p>\n<p><span style=\"font-weight: 400\">Although I have finished the 2D kalman filter to a very satisfactory level, progress on the 3D kalman filter needs to be done. Things will hopefully be sped up now that Gordon will also be working on onboarding the camera with the RPi so that I can focus all my attention on the algorithmic portion. However, I feel comfortable with the progress that we\u2019re at because the 2D kalman filter can always be used as a fallback incase anything goes wrong with the 3D kalman filter.<\/span><\/p>\n<p>&nbsp;<\/p>\n<p><b>Deliverables<\/b><\/p>\n<p><span style=\"font-weight: 400\">Effort will now be made to transition to the 3D kalman filter. I will need to order the white background sheet and stands so that we can accurately replicate the favourable conditions that was used in the original test video so that our camera system will be able to accurately detect and predict the ball. Once the background has come in, I will be able to start recording videos that can be used for the verification stages of the project (see below).<\/span><\/p>\n<p>&nbsp;<\/p>\n<p><b>Testing for detection pipeline<\/b><\/p>\n<ul>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Setup: 10 different mp4 videos of throws using the same background and similar lighting conditions of the orange ball travelling in a semi-parabola (parabolic trajectory of the throw will range from low to high arcs).\u00a0<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Analyzing: Making sure that percentage of the detections is above 90% (frames ball is detected \/ total frames). This is because any detection rate below will affect the accuracy of the kalman filter<\/span><\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<p><b>Testing for the prediction pipeline (kalman filter)<\/b><\/p>\n<ul>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Same setup as above, using the detection pipeline output<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Analyzing: Making sure that the predicted landing position is not fluctuating and is accurate after 25% of the ball\u2019s flight time. This is important because we need to give accurate measurements quickly to give time for the gantry system to move towards. We also need to make sure that the estimated points do not oscillate to prevent wasted movements by the gantry. Accuracy of the landing position is obvious since we want to catch the ball. The leeway given for inaccuracies is proportional to the radius of the cup to catch the ball with<\/span><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Accomplishments After experimenting and working with the current kalman filter, I decided to scrap this implementation and work on a new self-implementation of the filter using the numpy library. This yielded really good results, as it allowed me to tune specific parameters that the other model wouldn\u2019t have otherwise. It was able to predict very &hellip; <\/p>\n<p class=\"link-more\"><a href=\"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/f24-teama2\/2024\/11\/17\/jimmys-status-report-11-16\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;Jimmy&#8217;s Status Report 11\/16&#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\/193"}],"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=193"}],"version-history":[{"count":3,"href":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/f24-teama2\/wp-json\/wp\/v2\/posts\/193\/revisions"}],"predecessor-version":[{"id":196,"href":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/f24-teama2\/wp-json\/wp\/v2\/posts\/193\/revisions\/196"}],"wp:attachment":[{"href":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/f24-teama2\/wp-json\/wp\/v2\/media?parent=193"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/f24-teama2\/wp-json\/wp\/v2\/categories?post=193"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/f24-teama2\/wp-json\/wp\/v2\/tags?post=193"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}