{"id":219,"date":"2019-02-22T02:04:14","date_gmt":"2019-02-22T02:04:14","guid":{"rendered":"http:\/\/mrsdprojects.ri.cmu.edu\/2018teamc\/?page_id=219"},"modified":"2019-02-22T02:47:51","modified_gmt":"2019-02-22T02:47:51","slug":"system-design","status":"publish","type":"page","link":"https:\/\/mrsdprojects.ri.cmu.edu\/2018teamc\/system-design\/","title":{"rendered":"System Design"},"content":{"rendered":"<div style=\"color:black\">\n<span style=\"font-size:32pt\"><u>System Requirements:<\/u><\/span><br \/>\n<br \/>\n<span style=\"font-size:24pt\">Mandatory Performance Requirement<\/span><\/p>\n<ul>\n<li>M.P.1 Will operate at speeds up to 5 m\/s<\/li>\n<li>M.P.2 Will have a positional precision of 2m<\/li>\n<li>M.P.3 Will operate at maximum wind speeds of 5km\/h<\/li>\n<li>M.P.4 Will achieve a detection accuracy of 70%<\/li>\n<li>M.P.5 Will achieve classification accuracy of 80%<\/li>\n<li>M.P.6 Will have a grasp success rate of 30%<\/li>\n<li>M.P.7 Will grasp blocks of 1.5kg<\/li>\n<li>M.P.8 will grasp blocks of 1.2 x 0.2 x 0.2m<\/li>\n<li>M.P.9 Will detect poor grasp with 70% success rate<\/li>\n<li>M.P.10 Will transport blocks with a 70% success rate<\/li>\n<li>M.P.11 Will place blocks with precision of 0.1m<\/li>\n<li>M.P.12 Will assemble wall of 3 layers<\/li>\n<li>M.P.13 Will detect poor placement with a 50% success rate.<\/li>\n<\/ul>\n<p><span style=\"font-size:24pt\">Non Mandatory Performance Requirement<\/span><\/p>\n<ul>\n<li>M.N.1 Will have a manual overwrite safety feature<\/li>\n<li>M.N.2 Will be easy to operate<\/li>\n<\/ul>\n<p>\n<span style=\"font-size:32pt\"><u>Functional Architecture:<\/u><\/span><br \/>\n<img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/mrsdprojects.ri.cmu.edu\/2018teamc\/wp-content\/uploads\/sites\/33\/2019\/02\/Functional_Architecture.png\" alt=\"\" width=\"1016\" height=\"463\" class=\"alignnone size-full wp-image-224\" srcset=\"https:\/\/mrsdprojects.ri.cmu.edu\/2018teamc\/wp-content\/uploads\/sites\/33\/2019\/02\/Functional_Architecture.png 1016w, https:\/\/mrsdprojects.ri.cmu.edu\/2018teamc\/wp-content\/uploads\/sites\/33\/2019\/02\/Functional_Architecture-300x137.png 300w, https:\/\/mrsdprojects.ri.cmu.edu\/2018teamc\/wp-content\/uploads\/sites\/33\/2019\/02\/Functional_Architecture-768x350.png 768w\" sizes=\"auto, (max-width: 1016px) 100vw, 1016px\" \/><\/p>\n<p><span style=\"font-size:24pt\"><u>Cyberphysical Architecture<\/u><\/span><br \/>\n<img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/mrsdprojects.ri.cmu.edu\/2018teamc\/wp-content\/uploads\/sites\/33\/2019\/02\/Final_Cyberphysical-1024x491.png\" alt=\"\" width=\"1024\" height=\"491\" class=\"alignnone size-large wp-image-225\" srcset=\"https:\/\/mrsdprojects.ri.cmu.edu\/2018teamc\/wp-content\/uploads\/sites\/33\/2019\/02\/Final_Cyberphysical-1024x491.png 1024w, https:\/\/mrsdprojects.ri.cmu.edu\/2018teamc\/wp-content\/uploads\/sites\/33\/2019\/02\/Final_Cyberphysical-300x144.png 300w, https:\/\/mrsdprojects.ri.cmu.edu\/2018teamc\/wp-content\/uploads\/sites\/33\/2019\/02\/Final_Cyberphysical-768x368.png 768w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/p>\n<p><span style=\"font-size:32pt\"><u>System Description:<\/u><\/span><br \/>\n<br \/>\n<!-- Put image and description of system here --><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/mrsdprojects.ri.cmu.edu\/2018teamc\/wp-content\/uploads\/sites\/33\/2019\/02\/dronepicking.png\" alt=\"\" width=\"615\" height=\"370\" class=\"alignnone size-full wp-image-249\" srcset=\"https:\/\/mrsdprojects.ri.cmu.edu\/2018teamc\/wp-content\/uploads\/sites\/33\/2019\/02\/dronepicking.png 615w, https:\/\/mrsdprojects.ri.cmu.edu\/2018teamc\/wp-content\/uploads\/sites\/33\/2019\/02\/dronepicking-300x180.png 300w\" sizes=\"auto, (max-width: 615px) 100vw, 615px\" \/><br \/>\nOur system uses a hexacopter platform with manipulator attached to pick up<br \/>\nblocks for construction purposes.<\/p>\n<p><span style=\"font-size:24pt\">1. External Base Station<\/span><\/p>\n<p>The external base-station consists of an workstation (preferably a laptop, because<br \/>\nit is portable), that is capable of sending commands or simple instructions to the<br \/>\nhexcopter platform, and receiving feedback messages. Here, we use the workstation<br \/>\nto analyze to further analyze a structure provided by the user. The workstation<br \/>\nwill work on creating a pick-up routine or schedule based on best order picking and<br \/>\nplacement.<\/p>\n<p><span style=\"font-size:24pt\">2.Perception<\/span><\/p>\n<p><span style=\"font-size:20pt\">2.1 Block Detection<\/span><br \/>\nWe employ a set of algorithms that enable us to detect blocks from both a farther<br \/>\nrange (as a part of scene understanding), as well as at close range. We use basic<br \/>\nobject priors such as colors and depth regions to reduce the search space, and pass<br \/>\nthese regions through a low computation object detection network pretrained to<br \/>\ndetect blocks in simulation and create an initial set of bounding boxes around the<br \/>\nblocks. The goal is to reach within 2m accuracy of the point from where all the<br \/>\nblocks are visible so as to ensure reliable servoing.<\/p>\n<p><span style=\"font-size:20pt\">2.2 Block Identification System<\/span><br \/>\nThe block isolation system, or the pick-best-block algorithm is mainly used to pick<br \/>\nthe best block given a candidate set of bounding boxes. Here, we will use the fusion<br \/>\nof visual information from different sources to pick:<\/p>\n<ul>\n<li>Depth Map estimation (using Stereo camera)<\/li>\n<li>Surface Normal estimation<\/li>\n<li>Grasp Point Visibility<\/li>\n<li>ICP based pose check<\/li>\n<\/ul>\n<p>This information shall ensure we are able to pick the block that is easiest to servo to-<br \/>\nwards. It is important to note, that we reuse the Block Identification algorithm even<br \/>\nafter we have reached the desired pose after servoing, to ensure that the alignment<br \/>\nerror is low.<\/p>\n<p><span style=\"font-size:24pt\">3.Motion Planning and Execution<\/span><\/p>\n<p>Planning and Execution tasks using the hexcopter controller will be categorized<br \/>\nwithin this subsystem. We will be using the PixHawk 2 Cube flight controller to<br \/>\nexecute low level control tasks. Further, we will rely on a GPS sensors for course<br \/>\nlocalization, and to comply with the rules of the challenge, rely on visual methods<br \/>\nfor fine localization. Our planning and control tasks are exectued in three phases:<\/p>\n<p><span style=\"font-size:20pt\">3.1 Waypoint Navigation<\/span><br \/>\nThis set of nodes executes simple waypoint navigation to reach a waypoint. We<br \/>\nwill be using the GPS sensor information with an Extended Kalman Filter of the<br \/>\ncontroller to plan and execute simple point-to-point navigation tasks. The EKF<br \/>\nfunctionality is already implemented in the controller.<\/p>\n<p><span style=\"font-size:20pt\">3.2 Visual Servoing<\/span><br \/>\nVisual Servoing is an important component of our motion planning subsystem. We<br \/>\nwill be using the visual information from the block identification system to servo<br \/>\ntowards blocks to pickup and adjacent to blocks during placement. Our method uses<br \/>\nthe visual information used for block identification. We apply small control inputs<br \/>\nin order to reduce the overall pose error between the current and desired block pose.<\/p>\n<p><span style=\"font-size:20pt\">3.3 Dynamic Contoller<\/span><br \/>\nThe Dynamic Controller is an adaptive control methodology to dynamically han-<br \/>\ndle the combined payload of the block and the manipulator arm at the time of<br \/>\ntransporting the block for placement<\/p>\n<p><span style=\"font-size:24pt\">4.Manipulation<\/span><\/p>\n<p>The Manipulation Subsystem includes all the components responsible for the move-<br \/>\nment and control of the manipulator arm and the end-effector to lift the blocks. We<br \/>\nwill be using an electromagnetic end-effector since, as explained earlier, our blocks<br \/>\nwill include metal patches on the surface. For the low level control of the arm we<br \/>\nwill be using a ARM-32 microcontroller interfaced with ROS-Serial to allow direct<br \/>\ncommunication with the TX2. The manipulator control algorithms will be sim-<br \/>\nple forward kinematics given some point with respect to the current frame of the<br \/>\nplatform.<\/p>\n<p><span style=\"font-size:20pt\">4.1 Grasp Validation<\/span><br \/>\nGrasp and Placement Validation are important aspects of our final system. We<br \/>\nwill be using a contact microphone as a method of ensuring tactile contact with<br \/>\nthe block. For the grasp validation, to ensure we can reliably lift the block we will<br \/>\nutilize a force sensor based method, so that we can apply a certain thrust (within a<br \/>\nthreshold) and check the time to ensure the block has been lifted. We will be relying<br \/>\non visual methods (such as plane continuity) to ensure the blocks has been placed<br \/>\ncorrectly with respect to other blocks in the placement zone.<\/p>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>System Requirements: Mandatory Performance Requirement M.P.1 Will operate at speeds up to 5 m\/s M.P.2 Will have a positional precision of 2m M.P.3 Will operate at maximum wind speeds of 5km\/h M.P.4 Will achieve a detection accuracy of 70% M.P.5 Will achieve classification accuracy of 80% M.P.6 Will have a grasp success rate of 30%<br \/><a class=\"moretag\" href=\"https:\/\/mrsdprojects.ri.cmu.edu\/2018teamc\/system-design\/\">+ Read More<\/a><\/p>\n","protected":false},"author":148,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-219","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/mrsdprojects.ri.cmu.edu\/2018teamc\/wp-json\/wp\/v2\/pages\/219","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mrsdprojects.ri.cmu.edu\/2018teamc\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/mrsdprojects.ri.cmu.edu\/2018teamc\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/mrsdprojects.ri.cmu.edu\/2018teamc\/wp-json\/wp\/v2\/users\/148"}],"replies":[{"embeddable":true,"href":"https:\/\/mrsdprojects.ri.cmu.edu\/2018teamc\/wp-json\/wp\/v2\/comments?post=219"}],"version-history":[{"count":14,"href":"https:\/\/mrsdprojects.ri.cmu.edu\/2018teamc\/wp-json\/wp\/v2\/pages\/219\/revisions"}],"predecessor-version":[{"id":250,"href":"https:\/\/mrsdprojects.ri.cmu.edu\/2018teamc\/wp-json\/wp\/v2\/pages\/219\/revisions\/250"}],"wp:attachment":[{"href":"https:\/\/mrsdprojects.ri.cmu.edu\/2018teamc\/wp-json\/wp\/v2\/media?parent=219"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}