{"id":495,"date":"2022-12-09T07:18:47","date_gmt":"2022-12-09T07:18:47","guid":{"rendered":"https:\/\/mrsdprojects.ri.cmu.edu\/2022teamf\/?p=495"},"modified":"2022-12-09T07:28:35","modified_gmt":"2022-12-09T07:28:35","slug":"progress-review-8","status":"publish","type":"post","link":"https:\/\/mrsdprojects.ri.cmu.edu\/2022teamf\/2022\/12\/09\/progress-review-8\/","title":{"rendered":"Progress Review 8"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\">GUI<\/h2>\n\n\n\n<ul class=\"wp-block-list\"><li>Mission control GUI implemented with PyQT5<\/li><li>Displays:<ul><li>Agent status: active, battery, feedback frequency, IP<\/li><li>Task allocator visualization<\/li><li>High-level system metrics: # active agents, # tasks completed, # victims found<\/li><li>Mission timer<\/li><li>User controls: start, stop, homing<\/li><\/ul><\/li><li>Integrating with system<ul><li>Changed architecture of task allocator to be wrapped in new MissionCommander object<\/li><li>Getting battery, feedback frequency<\/li><li>Challenging figuring out PyQt GUI design quirks<\/li><\/ul><\/li><\/ul>\n\n\n\n<p class=\"has-text-align-center\"><img decoding=\"async\" width=\"494px;\" height=\"419px;\" src=\"https:\/\/lh6.googleusercontent.com\/gsCHeUD2uG87Ff79LeMMKdbHWEdr5e3cCAPIm_KUcKjQ3tQy7UA2OWmcQuhNASw6yWe0gKr8RguvJV2CGtzRIDkgdWfAY_IiApE11crVZIazoq33azZDu6dq94-ftPP9lA54PbdpOrb-XoitfPcHWjZ6Dzoi3Vbsa97-XWZ-LsabNfXle2Yls6Nc5sCucHu1\"><\/p>\n\n\n\n<p><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Perception<\/h2>\n\n\n\n<ul class=\"wp-block-list\"><li><strong>Goal of the subsystem <\/strong>: Detect victims (dummied as apriltags) and report relative pose to the server for localisation<\/li><li>Runs on every robot in the fleet!<\/li><li>Able to detect apriltags at &lt; 4m distance<\/li><li>Challenges:<ul><li>Latency of image capture with sufficient resolution ~ 1sec<\/li><li>Mass deployment of software (like all our other software) isn&#8217;t possible in the fleet because of camera calibration<\/li><li>Associating apriltag detections with our dynamic pose graph! Perception x MrSLAM subsystem!<\/li><\/ul><\/li><\/ul>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"484\" src=\"https:\/\/mrsdprojects.ri.cmu.edu\/2022teamf\/wp-content\/uploads\/sites\/59\/2022\/12\/Screenshot-2022-12-09-at-2.21.57-AM-1024x484.png\" alt=\"\" class=\"wp-image-498\" srcset=\"https:\/\/mrsdprojects.ri.cmu.edu\/2022teamf\/wp-content\/uploads\/sites\/59\/2022\/12\/Screenshot-2022-12-09-at-2.21.57-AM-1024x484.png 1024w, https:\/\/mrsdprojects.ri.cmu.edu\/2022teamf\/wp-content\/uploads\/sites\/59\/2022\/12\/Screenshot-2022-12-09-at-2.21.57-AM-300x142.png 300w, https:\/\/mrsdprojects.ri.cmu.edu\/2022teamf\/wp-content\/uploads\/sites\/59\/2022\/12\/Screenshot-2022-12-09-at-2.21.57-AM-768x363.png 768w, https:\/\/mrsdprojects.ri.cmu.edu\/2022teamf\/wp-content\/uploads\/sites\/59\/2022\/12\/Screenshot-2022-12-09-at-2.21.57-AM.png 1298w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">MRSLAM<\/h2>\n\n\n\n<ul class=\"wp-block-list\"><li>Initial research on how to extend slam_toolbox to be able to do multi-robot SLAM<\/li><li>Understanding slam_toolbox codebase and open issues<\/li><\/ul>\n\n\n\n<ul class=\"wp-block-list\"><li>Working prototype in Gazebo sim<ul><li>Added capability of multiple lasers<\/li><li>Since robots will start in same room, they will know relative initial positions<\/li><li>Build single pose-graph for all agents<\/li><li>Visualization of built graph + constraints<\/li><li>Loop closure tests look successful<\/li><\/ul><\/li><\/ul>\n\n\n\n<p class=\"has-text-align-center\"><img decoding=\"async\" width=\"404px;\" height=\"227px;\" src=\"https:\/\/lh6.googleusercontent.com\/UC6Wdc4RNddolrgI_fcvmFgZtCVmKvNGJRDS4cBPMArtus1Xpv-tyNGJLhp2K6MsE1iBxyaOrj7LZamJr0-tuaN6uT7_Cz6OZeeja-_uOFtWtY_ii-qcYMdEDFSV2M9FeJ4I1DG4q-QarYHbyTUvhmJrAQ8JJuc7nc7YnWHvN5Fk089JQshNY_5EN5mZjXJL\"><\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"347\" src=\"https:\/\/mrsdprojects.ri.cmu.edu\/2022teamf\/wp-content\/uploads\/sites\/59\/2022\/12\/Screenshot-2022-12-09-at-2.24.14-AM-1024x347.png\" alt=\"\" class=\"wp-image-499\" srcset=\"https:\/\/mrsdprojects.ri.cmu.edu\/2022teamf\/wp-content\/uploads\/sites\/59\/2022\/12\/Screenshot-2022-12-09-at-2.24.14-AM-1024x347.png 1024w, https:\/\/mrsdprojects.ri.cmu.edu\/2022teamf\/wp-content\/uploads\/sites\/59\/2022\/12\/Screenshot-2022-12-09-at-2.24.14-AM-300x102.png 300w, https:\/\/mrsdprojects.ri.cmu.edu\/2022teamf\/wp-content\/uploads\/sites\/59\/2022\/12\/Screenshot-2022-12-09-at-2.24.14-AM-768x260.png 768w, https:\/\/mrsdprojects.ri.cmu.edu\/2022teamf\/wp-content\/uploads\/sites\/59\/2022\/12\/Screenshot-2022-12-09-at-2.24.14-AM-1536x521.png 1536w, https:\/\/mrsdprojects.ri.cmu.edu\/2022teamf\/wp-content\/uploads\/sites\/59\/2022\/12\/Screenshot-2022-12-09-at-2.24.14-AM-2048x694.png 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Navigation<\/h2>\n\n\n\n<p>Lazy Traffic Controller<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Our new centralised multi-robot controller<\/li><li>Converts 2D paths into feasible collision free velocities for each robot in the fleet<\/li><li>Lazy:<ul><li>Each robot has a narrow neighbourhood used for collision detection<\/li><li>Avoid collision checking unless something detected in this neighbourhood<\/li><li>Collision avoidance with velocity obstacles<\/li><\/ul><\/li><li>Traffic:<ul><li>Couple preferred velocities with attractive and repulsive forces to adopt swarm behaviours<\/li><\/ul><\/li><li>Controller:<ul><li>Generates velocities for the robots to execute!<\/li><\/ul><\/li><\/ul>\n\n\n\n<ul class=\"wp-block-list\"><li>Initial research into velocity obstacles<ul><li>Model khepera robots as discs<\/li><li>Transform these discs to the velocity space for each robot : this is a velocity obstacle<\/li><li>Choose feasible velocities for each robot outside these velocity obstacles closest to the preferred velocities<\/li><\/ul><\/li><\/ul>\n\n\n\n<p class=\"has-text-align-center\"><img decoding=\"async\" width=\"695px;\" height=\"365px;\" src=\"https:\/\/lh5.googleusercontent.com\/BmqPuwRfT89uFxPtlaylqQTLHNkiilsaSfUUPHEjsLyhjd647ysnNA6D-CcZo7CtEzr7DNQ6P3R82iW5Ka0WOJvrwDQPQt4z28-CGpkKKDDYXC8yCXPaIJs1P5X9z_OoIU12XEgw18Dnav8spWnqBzjsmr5n0Z5MvNmeBWdOaXLdZGqHo7pqyw165Ru9FSge\"><\/p>\n\n\n\n<p class=\"has-text-align-center\"><img decoding=\"async\" src=\"https:\/\/lh5.googleusercontent.com\/0A8P8QJsua4KiZ2gQWbWmxHJ7aY6_7pgv8aGMWIlbJpfDTFe_SSzilylVPPNeATXsNyhPJRUMGiKNyOznE0bBlCtBrckeOhajhUaKag9xx66Mtw7WE-RSeULJMbN74zcJkFvMWLbjzajLo9fbjiCRCI2cF4znMi1DT1f9wYLnzRPzSsxxF8wYVUVjqoAHkDO\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p>GUI Mission control GUI implemented with PyQT5 Displays: Agent status: active, battery, feedback frequency, IP Task allocator visualization High-level system metrics: # active agents, # tasks completed, # victims found Mission timer User controls: start, stop, homing Integrating with system Changed architecture of task allocator to be wrapped in new MissionCommander object Getting battery, feedback<br \/><a class=\"moretag\" href=\"https:\/\/mrsdprojects.ri.cmu.edu\/2022teamf\/2022\/12\/09\/progress-review-8\/\">+ Read More<\/a><\/p>\n","protected":false},"author":276,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[5],"tags":[],"class_list":["post-495","post","type-post","status-publish","format-standard","hentry","category-progress"],"_links":{"self":[{"href":"https:\/\/mrsdprojects.ri.cmu.edu\/2022teamf\/wp-json\/wp\/v2\/posts\/495","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mrsdprojects.ri.cmu.edu\/2022teamf\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/mrsdprojects.ri.cmu.edu\/2022teamf\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/mrsdprojects.ri.cmu.edu\/2022teamf\/wp-json\/wp\/v2\/users\/276"}],"replies":[{"embeddable":true,"href":"https:\/\/mrsdprojects.ri.cmu.edu\/2022teamf\/wp-json\/wp\/v2\/comments?post=495"}],"version-history":[{"count":3,"href":"https:\/\/mrsdprojects.ri.cmu.edu\/2022teamf\/wp-json\/wp\/v2\/posts\/495\/revisions"}],"predecessor-version":[{"id":500,"href":"https:\/\/mrsdprojects.ri.cmu.edu\/2022teamf\/wp-json\/wp\/v2\/posts\/495\/revisions\/500"}],"wp:attachment":[{"href":"https:\/\/mrsdprojects.ri.cmu.edu\/2022teamf\/wp-json\/wp\/v2\/media?parent=495"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mrsdprojects.ri.cmu.edu\/2022teamf\/wp-json\/wp\/v2\/categories?post=495"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mrsdprojects.ri.cmu.edu\/2022teamf\/wp-json\/wp\/v2\/tags?post=495"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}