{"id":78,"date":"2017-10-20T13:23:34","date_gmt":"2017-10-20T13:23:34","guid":{"rendered":"http:\/\/mrsdprojects.ri.cmu.edu\/2017teamc\/?page_id=78"},"modified":"2018-05-11T22:32:06","modified_gmt":"2018-05-11T22:32:06","slug":"cyberphysical-architecture","status":"publish","type":"page","link":"https:\/\/mrsdprojects.ri.cmu.edu\/2017teamc\/cyberphysical-architecture\/","title":{"rendered":"CyberPhysical Architecture"},"content":{"rendered":"<p><img loading=\"lazy\" decoding=\"async\" class=\"alignleft size-full wp-image-732 img-responsive\" src=\"http:\/\/mrsdprojects.ri.cmu.edu\/2017teamc\/wp-content\/uploads\/sites\/24\/2018\/05\/Cyberphysical-Architecture.jpg\" alt=\"\" width=\"960\" height=\"720\" \/><\/p>\n<p>&nbsp;<\/p>\n<p><span style=\"font-weight: 400\">The cyber-physical architecture delineates the functions among different subsystems and goes into details of implementation on a higher level. It also explains the decisions taken based on the trade-studies to identify components, algorithms, etc.<\/span><\/p>\n<p><span style=\"font-weight: 400\">Our system has 2 major subsystems (Aerial and User). The aerial subsystem is further divided into 2 key components &#8211; the onboard sensor suit and the onboard computer Jetson TX-2. The user subsystem consists of the pilot with the DJI radio controller and the Epson BT-300 Augmented Reality headset running the FlySense interface. Both the subsystems are interlinked by Wi-Fi communication subsystem to enable transfer of data. <\/span><\/p>\n<p><span style=\"font-weight: 400\">Each of these components are described below:<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Aerial Subsystem<\/span>\n<ol>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">DJI M100 Quadcopter is the platform where all the algorithms are tested. <\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Velodyne VLP-16 LIDAR gives the raw point cloud data for obstacle detection in 3D and 360\u2070.<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">FPV camera gives the frontal view of the quadcopter with a field of view of 80\u2070. <\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">The state estimation is carried out using the onboard IMU and GPS. <\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Onboard computer Jetson TX2 is used for the following functions: <\/span>\n<ul>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Calculate Flight Envelope: The flight envelope is calculated from the received pose estimate and pilot inputs. This is the addressable area around aircraft where aircraft can reach in 5 seconds. This does not include sudden malfunction\/crash.<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Point Cloud filter pipeline: \u00a0The raw point cloud is passed through a series of filters that involve cropping, downsampling and outlier removal. The flight envelope calculated is used to extract out only the relevant data and \u00a0get rid of the extra point cloud data. This is done to reduce required onboard processing.<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Obstacle Classification and Coloring: The filtered point cloud is then used to identify the obstacles in the flight path, classify them into different danger levels based on the maximum possible pilot input and time to impact and color them red\/yellow\/green based on the same. <\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Sound Warnings: Among the obstacles detected, the obstacle with least time to impact is calculated using Newton\u2019s method and used to generate sound warnings. <\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Bird\u2019s eye view: The obstacles detected along with the most dangerous obstacle given by the sound warnings code are combined to generate a bird\u2019s eye view image.<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">The FPV video and BEV combined together and published at one frequency over Wi-Fi to the Epson. <\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Relevant state information of the quadcopter is broadcast over Wi-Fi. <\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Override pilot commands: The pilot commands are modified if the most dangerous obstacle is in the immediate path of the quadcopter. The algorithm publishes linear velocity commands for emergency braking.<\/span><\/li>\n<\/ul>\n<\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">The onboard flight controller receives velocity commands and takes control of the vehicle to avoid collision. <\/span><\/li>\n<\/ol>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">User Subsystem: <\/span>\n<ol>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">The pilot is the heart of our complete system. He provides commands using the DJI Radio Controller and FlySense interface to navigate the quadcopter safely. <\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Pilot inputs are part of all the algorithms in the software stack.<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">The Epson BT-300 headset is used to render FPV video, BEV and HUD based on the sensor information and video received from the onboard computer.<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">The sound warnings are given to the pilot through the headset as beeps.<\/span><\/li>\n<\/ol>\n<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>&nbsp; The cyber-physical architecture delineates the functions among different subsystems and goes into details of implementation on a higher level. It also explains the decisions taken based on the trade-studies to identify components, algorithms, etc. Our system has 2 major subsystems (Aerial and User). The aerial subsystem is further divided into 2 key components &#8211; &#8230; <a href=\"https:\/\/mrsdprojects.ri.cmu.edu\/2017teamc\/cyberphysical-architecture\/\" class=\"more-link text-uppercase small\"><strong>Continue Reading<\/strong> <i class=\"fa fa-angle-double-right\" aria-hidden=\"true\"><\/i><\/a><\/p>\n","protected":false},"author":106,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-78","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/mrsdprojects.ri.cmu.edu\/2017teamc\/wp-json\/wp\/v2\/pages\/78","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mrsdprojects.ri.cmu.edu\/2017teamc\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/mrsdprojects.ri.cmu.edu\/2017teamc\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/mrsdprojects.ri.cmu.edu\/2017teamc\/wp-json\/wp\/v2\/users\/106"}],"replies":[{"embeddable":true,"href":"https:\/\/mrsdprojects.ri.cmu.edu\/2017teamc\/wp-json\/wp\/v2\/comments?post=78"}],"version-history":[{"count":14,"href":"https:\/\/mrsdprojects.ri.cmu.edu\/2017teamc\/wp-json\/wp\/v2\/pages\/78\/revisions"}],"predecessor-version":[{"id":735,"href":"https:\/\/mrsdprojects.ri.cmu.edu\/2017teamc\/wp-json\/wp\/v2\/pages\/78\/revisions\/735"}],"wp:attachment":[{"href":"https:\/\/mrsdprojects.ri.cmu.edu\/2017teamc\/wp-json\/wp\/v2\/media?parent=78"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}