{"id":275,"date":"2024-04-07T03:02:49","date_gmt":"2024-04-07T03:02:49","guid":{"rendered":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s24-teamc5\/?p=275"},"modified":"2024-04-07T03:30:12","modified_gmt":"2024-04-07T03:30:12","slug":"chris-status-report-for-04-06-2024","status":"publish","type":"post","link":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s24-teamc5\/2024\/04\/07\/chris-status-report-for-04-06-2024\/","title":{"rendered":"Chris&#8217; Status Report for 04\/06\/2024"},"content":{"rendered":"<h1>What I did last week<\/h1>\n<p>Wrote script to control and communicate with robotic arm<\/p>\n<p>Worked on kinematics<\/p>\n<h1>What I did this week<\/h1>\n<p>This week I implemented forward kinematics for the arm as well as implemented a simulator that allows us to visualize the arm in the 3D plane.\u00a0 This involves calculating rotation matrices and a lot of hand drawings and geometry to ensure correctness.<\/p>\n<p>I went to Home Depot and bought two 1\/4&#8221; thick MDF boards.\u00a0 There boards are about 2&#8242; x 4&#8242; and we were able to use some wood clamps I had to hold them together, creating a 4&#8242; x 4&#8242; state space.\u00a0 We mounted the robotic arm in the middle and are done with our baseline setup.<\/p>\n<p>Using this setup, I was able to correlate the arm in the simulator with the arm actual arm.\u00a0 This allowed me to verify that axis, angles, and measurements int he simulator align with what we have in reality.<\/p>\n<p>Next steps include transitioning from forward kinematics to inverse kinematics.\u00a0 I believe this transition should be relatively smooth because I have already built the simulator and ensured its correctness.\u00a0 I have already done a lot of the math for the inverse kinematics on paper already as well.<\/p>\n<h1>What I plan to do next week<\/h1>\n<p>Complete inverse kinematics.<\/p>\n<p>Matt has taken over SMA* but run into some bottlenecks.\u00a0 When I am done with kinematics I will transition to code optimization.<\/p>\n<h1>Testing and Validation<\/h1>\n<p>The majority of the work I have done so far has been with regards to the software implementation of our algorithms, the robotic arm control, and the kinematics.<\/p>\n<p>The RRT and A* algorithms are implemented in C but I have created python bindings for them that make it significantly easier to run and test.\u00a0 Because of this we have been able to run these algorithms on different state spaces and check their ability to converge and to find a correct path.\u00a0 Now that we have have created our actual setup we have decided on a state space that is 128 * 128 * 128 voxels (~2 million total).\u00a0 Further testing has showed we must optimize the software implementation more if we want to converge on paths in a reasonable time.\u00a0 The number of iterations needed for RRT to converge increases as we increase the size of the state space.\u00a0 With a 64 * 64 * 64 voxel state space we achieved paths in 10,000 iterations but in the 128 * 128 * 128 state space it requires 100,000 (note that each iteration takes two steps and that not every iteration is successful in adding a node to the RRT graph).\u00a0 This first example completes in roughly 4 minutes while the second example takes about 20 minutes.\u00a0 We must increase the speed of a single iteration significantly.<\/p>\n<p>Testing with regards to the arm controller and the kinematics has been done via a graphical simulator I developed.\u00a0 This simulator allows us to compare the supposed angles of the arm in the state space with the positions they are in in actuality.\u00a0 This testing was completed before the interm demo and was done to ensure the correctness of our implementation.\u00a0 Things appear to be working for now and there are minimal concerns with regards to the speed of these operations.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>What I did last week Wrote script to control and communicate with robotic arm Worked on kinematics What I did this week This week I implemented forward kinematics for the arm as well as implemented a simulator that allows us to visualize the arm in the 3D plane.\u00a0 This involves calculating rotation matrices and a &hellip; <\/p>\n<p class=\"link-more\"><a href=\"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s24-teamc5\/2024\/04\/07\/chris-status-report-for-04-06-2024\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;Chris&#8217; Status Report for 04\/06\/2024&#8221;<\/span><\/a><\/p>\n","protected":false},"author":922,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[8],"tags":[],"_links":{"self":[{"href":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s24-teamc5\/wp-json\/wp\/v2\/posts\/275"}],"collection":[{"href":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s24-teamc5\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s24-teamc5\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s24-teamc5\/wp-json\/wp\/v2\/users\/922"}],"replies":[{"embeddable":true,"href":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s24-teamc5\/wp-json\/wp\/v2\/comments?post=275"}],"version-history":[{"count":3,"href":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s24-teamc5\/wp-json\/wp\/v2\/posts\/275\/revisions"}],"predecessor-version":[{"id":279,"href":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s24-teamc5\/wp-json\/wp\/v2\/posts\/275\/revisions\/279"}],"wp:attachment":[{"href":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s24-teamc5\/wp-json\/wp\/v2\/media?parent=275"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s24-teamc5\/wp-json\/wp\/v2\/categories?post=275"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s24-teamc5\/wp-json\/wp\/v2\/tags?post=275"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}