{"id":43,"date":"2023-11-19T21:28:53","date_gmt":"2023-11-19T21:28:53","guid":{"rendered":"https:\/\/mrsdprojects.ri.cmu.edu\/2024teama\/?page_id=43"},"modified":"2024-04-05T02:00:11","modified_gmt":"2024-04-05T02:00:11","slug":"system-design","status":"publish","type":"page","link":"https:\/\/mrsdprojects.ri.cmu.edu\/2024teama\/system-design\/","title":{"rendered":"System Design"},"content":{"rendered":"\n<p>Based on our sponsor&#8217;s needs, we have developed the following objectives tree, with key objectives highlighted in yellow:<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"606\" height=\"461\" src=\"https:\/\/mrsdprojects.ri.cmu.edu\/2024teama\/wp-content\/uploads\/sites\/74\/2023\/11\/Screenshot-from-2023-11-19-16-52-13-1.png\" alt=\"\" class=\"wp-image-77\" style=\"width:548px;height:auto\" srcset=\"https:\/\/mrsdprojects.ri.cmu.edu\/2024teama\/wp-content\/uploads\/sites\/74\/2023\/11\/Screenshot-from-2023-11-19-16-52-13-1.png 606w, https:\/\/mrsdprojects.ri.cmu.edu\/2024teama\/wp-content\/uploads\/sites\/74\/2023\/11\/Screenshot-from-2023-11-19-16-52-13-1-300x228.png 300w, https:\/\/mrsdprojects.ri.cmu.edu\/2024teama\/wp-content\/uploads\/sites\/74\/2023\/11\/Screenshot-from-2023-11-19-16-52-13-1-520x396.png 520w, https:\/\/mrsdprojects.ri.cmu.edu\/2024teama\/wp-content\/uploads\/sites\/74\/2023\/11\/Screenshot-from-2023-11-19-16-52-13-1-360x274.png 360w, https:\/\/mrsdprojects.ri.cmu.edu\/2024teama\/wp-content\/uploads\/sites\/74\/2023\/11\/Screenshot-from-2023-11-19-16-52-13-1-250x190.png 250w, https:\/\/mrsdprojects.ri.cmu.edu\/2024teama\/wp-content\/uploads\/sites\/74\/2023\/11\/Screenshot-from-2023-11-19-16-52-13-1-100x76.png 100w\" sizes=\"auto, (max-width: 606px) 100vw, 606px\" \/><\/figure>\n<\/div>\n\n\n<h2 class=\"wp-block-heading\">System Requirements<\/h2>\n\n\n\n<p>In order to achieve our objectives, we have established the following requirements for our project, which are separated into functional\/performance and non-functional:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td class=\"has-text-align-left\" data-align=\"left\"><strong>Functional 1<\/strong><\/td><td><strong><strong>Localize itself within drip pan<\/strong><\/strong><\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\">Perf 1.1<\/td><td>Update localization map with a frequency of 10 Hz<\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\">Perf 1.2<\/td><td>Build localization map with a 1 cm precision<\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\">Perf 1.3<\/td><td>Build localization map with a 5 degree precision<\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\"><strong>Functional 2<\/strong><\/td><td><strong>Sense environment<\/strong><\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\">Perf 2.1<\/td><td>Update planning geometry with a frequency of 10 Hz<\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\">Perf 2.2<\/td><td>Build planning geometry with a 1 cm precision<\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\">Perf 2.3<\/td><td>Build planning geometry with a 5 degree precision<\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\">Perf 2.4<\/td><td>Identify 80% of creosote in pan&#8217;s surface<\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\"><strong>Functional 3<\/strong><\/td><td><strong>Plan movement<\/strong><\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\">Perf 3.1<\/td><td>Update movement plan with a frequency of 1 Hz<\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\">Perf 3.2<\/td><td>Plan movement inside valid zones 100% of the time<\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\"><strong>Functional 4<\/strong><\/td><td><strong>Move itself<\/strong><\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\">Perf 4.1<\/td><td>Stay inside valid zones 100% of the time<\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\">Perf 4.2<\/td><td>Cover the length of the drip pan in less than 1 hour<\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\"><strong>Functional 5<\/strong><\/td><td><strong>Clean creosote<\/strong><\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\">Perf 5.1<\/td><td>Clean creosote from drip pan surface in less than 5 hours<\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\">Perf 5.2<\/td><td>Displace enough creosote to achieve bronze level on 80% of surface<\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\">Perf 5.3<\/td><td>Displace enough creosote to achieve bronze level on 90% of weld area<\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\"><strong>Functional 6<\/strong><\/td><td><strong>Communicate with user<\/strong><\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\">Perf 6.1<\/td><td>System shall send and receive data at a rate of 10 Hz<\/td><\/tr><\/tbody><\/table><figcaption class=\"wp-element-caption\">Functional requirements<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td><strong>NF 1<\/strong><\/td><td><strong>Have at least 2 hours of battery life<\/strong><\/td><\/tr><tr><td><strong>NF 2<\/strong><\/td><td><strong>Have a recharging system<\/strong><\/td><\/tr><tr><td><strong>NF 3<\/strong><\/td><td><strong>Be operable by plant engineer<\/strong><\/td><\/tr><tr><td><strong>NF 4<\/strong><\/td><td><strong>Cost at most $5000<\/strong><\/td><\/tr><tr><td><strong>NF 5<\/strong><\/td><td><strong>Be robust to creosote<\/strong><\/td><\/tr><\/tbody><\/table><figcaption class=\"wp-element-caption\">Non-functional requirements<\/figcaption><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Functional Architecture<\/h2>\n\n\n\n<p>In order to implement the functional requirements described above, the team came up with the following functional architecture:<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1176\" height=\"566\" src=\"https:\/\/mrsdprojects.ri.cmu.edu\/2024teama\/wp-content\/uploads\/sites\/74\/2024\/02\/sa.png\" alt=\"\" class=\"wp-image-171\" \/><\/figure>\n<\/div>\n\n\n<h2 class=\"wp-block-heading\">Cyberphysical Architecture<\/h2>\n\n\n\n<p>Evidently, the functions the system will perform have to be instantiated by physical components. This relationship is captured by the cyberphysical architecture shown below:<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1065\" height=\"598\" src=\"https:\/\/mrsdprojects.ri.cmu.edu\/2024teama\/wp-content\/uploads\/sites\/74\/2024\/02\/ca.png\" alt=\"\" class=\"wp-image-172\" \/><\/figure>\n<\/div>\n\n\n<h2 class=\"wp-block-heading\">System Design Description<\/h2>\n\n\n\n<p>After deliberation, the team came up with many ideas on how to best implement the architectures depicted. Several platforms were considered, including: a roomba-like mobile robot, which was discarded on the grounds that it would be hard to make this robot compact enough to go under some obstacles; and a humanoid robot that would go around the factory cleaning the pans, which was also discarded because of the high complexity of the factory floor. <\/p>\n\n\n\n<p>Finally,  we settled on a simple, yet effective, design: having a robotic arm sit on top of a mobile platform, which in turn is mounted on the drip pan&#8217;s rails. The arm, holding a cleaning end effector, would then pull the accumulated creosote toward the drain. This solution is robust, simple to implement and very effective, as it allows the robot to clean the surface of the pan without having to go under the rails or other objects.<\/p>\n\n\n<div class=\"wp-block-image is-style-default\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1015\" height=\"278\" src=\"https:\/\/mrsdprojects.ri.cmu.edu\/2024teama\/wp-content\/uploads\/sites\/74\/2024\/02\/mockup-1.png\" alt=\"\" class=\"wp-image-176\" \/><figcaption class=\"wp-element-caption\">Top-down sketch of the system on a drip pan<\/figcaption><\/figure>\n<\/div>\n\n\n<p>Considering this platform, our robot is made up of four major subsystems: the robotic arm, the mobile platform, the cleaner end effector and a computer for vision and planning. Details on each subsystem are as follows:<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Robotic Arm<\/h4>\n\n\n\n<p>After considering many options, we decided to use a 6-DoF UFactory arm in our system. It is cheap, efficient and met all our specifications such as maximum weight and torque. It is also ROS-compatible, and can be added to simulations for testing before deployment.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"212\" height=\"312\" src=\"https:\/\/mrsdprojects.ri.cmu.edu\/2024teama\/wp-content\/uploads\/sites\/74\/2024\/02\/ufarm.png\" alt=\"\" class=\"wp-image-178\" style=\"width:185px;height:auto\" \/><figcaption class=\"wp-element-caption\">UFactory arm<\/figcaption><\/figure>\n<\/div>\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"638\" height=\"452\" src=\"https:\/\/mrsdprojects.ri.cmu.edu\/2024teama\/wp-content\/uploads\/sites\/74\/2024\/02\/arm_simulation.png\" alt=\"\" class=\"wp-image-179\" \/><figcaption class=\"wp-element-caption\">Arm in simulation using ROS MoveIt with a CAD model of the drip pan<\/figcaption><\/figure>\n<\/div>\n\n\n<h4 class=\"wp-block-heading\">Mobile Platform<\/h4>\n\n\n\n<p>Since there was no commerical platform that suited our needs, we decided to develop one from scratch. We are currently finalizing a CAD model for it, as shown below.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1362\" height=\"904\" src=\"https:\/\/mrsdprojects.ri.cmu.edu\/2024teama\/wp-content\/uploads\/sites\/74\/2024\/02\/mobility.jpeg\" alt=\"\" class=\"wp-image-180\" style=\"width:608px;height:auto\" \/><figcaption class=\"wp-element-caption\">Technical drawing of the mobile platform<\/figcaption><\/figure>\n<\/div>\n\n\n<h4 class=\"wp-block-heading\">Cleaner End Effector<\/h4>\n\n\n\n<p>One of the biggest problems we found when visiting the factory was that our sponsor had found no effective mechanical tool to displace the creosote. The squeegee they were using oftenhad to be coupled with chemical to aid in the cleaning, which meant losing that part of the creosote. Thus, we had to do some research on which tool to use.<\/p>\n\n\n\n<p>We tested many options &#8211; including commercial squeegees, a heated scraper and even paper towels &#8211; before settling on our final choice: a folded strip of Viton rubber attached to a handle.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"3024\" height=\"4032\" src=\"https:\/\/mrsdprojects.ri.cmu.edu\/2024teama\/wp-content\/uploads\/sites\/74\/2024\/02\/viton.jpg\" alt=\"\" class=\"wp-image-187\" style=\"width:352px;height:auto\" \/><figcaption class=\"wp-element-caption\">Our custom-made Viton squeegee<\/figcaption><\/figure>\n<\/div>\n\n\n<h4 class=\"wp-block-heading\">Perception\/Computing<\/h4>\n\n\n\n<p>Identifying creosote and obstacles can be a very resource-intensive task, so we need an appropriate setup. After considering many options, we settled on using an Nvidia Jetson Tx2 coupled with an Intel RealSense camera for vision, coupled with an LED ring for consistent lighting.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"473\" height=\"321\" src=\"https:\/\/mrsdprojects.ri.cmu.edu\/2024teama\/wp-content\/uploads\/sites\/74\/2024\/02\/tx2.jpg\" alt=\"\" class=\"wp-image-227\" srcset=\"https:\/\/mrsdprojects.ri.cmu.edu\/2024teama\/wp-content\/uploads\/sites\/74\/2024\/02\/tx2.jpg 473w, https:\/\/mrsdprojects.ri.cmu.edu\/2024teama\/wp-content\/uploads\/sites\/74\/2024\/02\/tx2-300x204.jpg 300w, https:\/\/mrsdprojects.ri.cmu.edu\/2024teama\/wp-content\/uploads\/sites\/74\/2024\/02\/tx2-360x244.jpg 360w, https:\/\/mrsdprojects.ri.cmu.edu\/2024teama\/wp-content\/uploads\/sites\/74\/2024\/02\/tx2-250x170.jpg 250w, https:\/\/mrsdprojects.ri.cmu.edu\/2024teama\/wp-content\/uploads\/sites\/74\/2024\/02\/tx2-100x68.jpg 100w\" sizes=\"auto, (max-width: 473px) 100vw, 473px\" \/><figcaption class=\"wp-element-caption\">Jetson Tx2 used for vision<\/figcaption><\/figure>\n<\/div>","protected":false},"excerpt":{"rendered":"<p>Based on our sponsor&#8217;s needs, we have developed the following objectives tree, with key objectives highlighted in yellow: System Requirements In order to achieve our objectives, we have established the following requirements for our project, which are separated into functional\/performance [&hellip;]<\/p>\n","protected":false},"author":341,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-43","page","type-page","status-publish","hentry","clearfix"],"_links":{"self":[{"href":"https:\/\/mrsdprojects.ri.cmu.edu\/2024teama\/wp-json\/wp\/v2\/pages\/43","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mrsdprojects.ri.cmu.edu\/2024teama\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/mrsdprojects.ri.cmu.edu\/2024teama\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/mrsdprojects.ri.cmu.edu\/2024teama\/wp-json\/wp\/v2\/users\/341"}],"replies":[{"embeddable":true,"href":"https:\/\/mrsdprojects.ri.cmu.edu\/2024teama\/wp-json\/wp\/v2\/comments?post=43"}],"version-history":[{"count":15,"href":"https:\/\/mrsdprojects.ri.cmu.edu\/2024teama\/wp-json\/wp\/v2\/pages\/43\/revisions"}],"predecessor-version":[{"id":253,"href":"https:\/\/mrsdprojects.ri.cmu.edu\/2024teama\/wp-json\/wp\/v2\/pages\/43\/revisions\/253"}],"wp:attachment":[{"href":"https:\/\/mrsdprojects.ri.cmu.edu\/2024teama\/wp-json\/wp\/v2\/media?parent=43"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}