{"id":29,"date":"2022-11-19T16:25:10","date_gmt":"2022-11-19T16:25:10","guid":{"rendered":"https:\/\/mrsdprojects.ri.cmu.edu\/2023teamf\/?page_id=29"},"modified":"2023-09-04T14:44:06","modified_gmt":"2023-09-04T14:44:06","slug":"system-design","status":"publish","type":"page","link":"https:\/\/mrsdprojects.ri.cmu.edu\/2023teamf\/index\/system-design\/","title":{"rendered":"System Design Old"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\">System Requirements<\/h2>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td>Functional Requirements<\/td><td>Performance Requirements<\/td><td>Justification\/Assumption<\/td><\/tr><tr><td><strong>Receive commands from the user:<\/strong> preset speech primitives\/handheld interface<\/td><td> Word-error rate &lt;=10%<br><br>Latency for control commands &lt;5s<\/td><td>Robot should understand what the user wants it to do<\/td><\/tr><tr><td><strong>Perform basic (pre-defined) social engagement <\/strong>with user<\/td><td>Fallback rate: &lt;20%<\/td><td>User chats with the robot<\/td><\/tr><tr><td><strong>Localize <\/strong>itself in the environment<\/td><td>Error threshold: &lt;25 cms<\/td><td>Real-time visual data and precomputed map available<\/td><\/tr><tr><td><strong>Plan and navigate<\/strong> through the pre-mapped environment<\/td><td>Plan global path to desired location within 2 minutes<br><br>Navigate at a speed of 0.4 m\/s&nbsp;<\/td><td>Assuming latency in receiving user input, obstacle detection, path planning, and goal location is 20m away from the robot.<\/td><\/tr><tr><td><strong>Autonomously avoid obstacles <\/strong>in the environment<\/td><td>Avoids 80% of the obstacles in range<\/td><td>Assuming objects lying in the FoV of visual sensors<\/td><\/tr><tr><td><strong>Detect objects<\/strong> for grasping<\/td><td>mAP &gt;= 80% for 10 object categories (e.g bottle, remote, medicines etc)<\/td><td>Predefined class of objects are placed in expected and appropriate lighting.<\/td><\/tr><tr><td><strong>Manipulate predefined objects to\/from planar surfaces<\/strong> at known locations in the environment<\/td><td>Greater than 70% successful picks and places<\/td><td>Manipulation algorithms are tuned beforehand for our set of objects.<\/td><\/tr><tr><td><strong>Allow <\/strong>approved <strong>operators to teleoperate <\/strong>the robot<\/td><td>Communication latency &lt;5s<\/td><td>Assuming connection initialization and transmission delays and command interpretation time.<\/td><\/tr><tr><td><strong>Provide user with robot metrics and video feed <\/strong>of the robot on a handheld interface<\/td><td>Latency: &lt;2s<br>Resolution&gt; 720p<\/td><td>Robot should provide a real-time experience to the user<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Objectives Tree<\/h2>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"615\" src=\"https:\/\/mrsdprojects.ri.cmu.edu\/2023teamf\/wp-content\/uploads\/sites\/70\/2023\/02\/Objectives-Tree-1024x615.png\" alt=\"\" class=\"wp-image-185\" srcset=\"https:\/\/mrsdprojects.ri.cmu.edu\/2023teamf\/wp-content\/uploads\/sites\/70\/2023\/02\/Objectives-Tree-1024x615.png 1024w, https:\/\/mrsdprojects.ri.cmu.edu\/2023teamf\/wp-content\/uploads\/sites\/70\/2023\/02\/Objectives-Tree-300x180.png 300w, https:\/\/mrsdprojects.ri.cmu.edu\/2023teamf\/wp-content\/uploads\/sites\/70\/2023\/02\/Objectives-Tree-768x461.png 768w, https:\/\/mrsdprojects.ri.cmu.edu\/2023teamf\/wp-content\/uploads\/sites\/70\/2023\/02\/Objectives-Tree.png 1098w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Functional Architecture<\/h2>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"642\" src=\"https:\/\/mrsdprojects.ri.cmu.edu\/2023teamf\/wp-content\/uploads\/sites\/70\/2022\/11\/Screenshot-2022-11-19-at-1.06.21-PM-1024x642.png\" alt=\"\" class=\"wp-image-81\" srcset=\"https:\/\/mrsdprojects.ri.cmu.edu\/2023teamf\/wp-content\/uploads\/sites\/70\/2022\/11\/Screenshot-2022-11-19-at-1.06.21-PM-1024x642.png 1024w, https:\/\/mrsdprojects.ri.cmu.edu\/2023teamf\/wp-content\/uploads\/sites\/70\/2022\/11\/Screenshot-2022-11-19-at-1.06.21-PM-300x188.png 300w, https:\/\/mrsdprojects.ri.cmu.edu\/2023teamf\/wp-content\/uploads\/sites\/70\/2022\/11\/Screenshot-2022-11-19-at-1.06.21-PM-768x481.png 768w, https:\/\/mrsdprojects.ri.cmu.edu\/2023teamf\/wp-content\/uploads\/sites\/70\/2022\/11\/Screenshot-2022-11-19-at-1.06.21-PM-1536x962.png 1536w, https:\/\/mrsdprojects.ri.cmu.edu\/2023teamf\/wp-content\/uploads\/sites\/70\/2022\/11\/Screenshot-2022-11-19-at-1.06.21-PM-2048x1283.png 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Mobility<\/h2>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"642\" src=\"https:\/\/mrsdprojects.ri.cmu.edu\/2023teamf\/wp-content\/uploads\/sites\/70\/2022\/11\/Screenshot-2022-11-19-at-1.09.26-PM-1024x642.png\" alt=\"\" class=\"wp-image-82\" srcset=\"https:\/\/mrsdprojects.ri.cmu.edu\/2023teamf\/wp-content\/uploads\/sites\/70\/2022\/11\/Screenshot-2022-11-19-at-1.09.26-PM-1024x642.png 1024w, https:\/\/mrsdprojects.ri.cmu.edu\/2023teamf\/wp-content\/uploads\/sites\/70\/2022\/11\/Screenshot-2022-11-19-at-1.09.26-PM-300x188.png 300w, https:\/\/mrsdprojects.ri.cmu.edu\/2023teamf\/wp-content\/uploads\/sites\/70\/2022\/11\/Screenshot-2022-11-19-at-1.09.26-PM-768x481.png 768w, https:\/\/mrsdprojects.ri.cmu.edu\/2023teamf\/wp-content\/uploads\/sites\/70\/2022\/11\/Screenshot-2022-11-19-at-1.09.26-PM-1536x962.png 1536w, https:\/\/mrsdprojects.ri.cmu.edu\/2023teamf\/wp-content\/uploads\/sites\/70\/2022\/11\/Screenshot-2022-11-19-at-1.09.26-PM-2048x1283.png 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Human-interaction Stack<\/h2>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"642\" src=\"https:\/\/mrsdprojects.ri.cmu.edu\/2023teamf\/wp-content\/uploads\/sites\/70\/2022\/11\/Screenshot-2022-11-19-at-1.10.10-PM-1024x642.png\" alt=\"\" class=\"wp-image-83\" srcset=\"https:\/\/mrsdprojects.ri.cmu.edu\/2023teamf\/wp-content\/uploads\/sites\/70\/2022\/11\/Screenshot-2022-11-19-at-1.10.10-PM-1024x642.png 1024w, https:\/\/mrsdprojects.ri.cmu.edu\/2023teamf\/wp-content\/uploads\/sites\/70\/2022\/11\/Screenshot-2022-11-19-at-1.10.10-PM-300x188.png 300w, https:\/\/mrsdprojects.ri.cmu.edu\/2023teamf\/wp-content\/uploads\/sites\/70\/2022\/11\/Screenshot-2022-11-19-at-1.10.10-PM-768x481.png 768w, https:\/\/mrsdprojects.ri.cmu.edu\/2023teamf\/wp-content\/uploads\/sites\/70\/2022\/11\/Screenshot-2022-11-19-at-1.10.10-PM-1536x962.png 1536w, https:\/\/mrsdprojects.ri.cmu.edu\/2023teamf\/wp-content\/uploads\/sites\/70\/2022\/11\/Screenshot-2022-11-19-at-1.10.10-PM-2048x1283.png 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Healthcare Analysis Stack<\/h2>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"642\" src=\"https:\/\/mrsdprojects.ri.cmu.edu\/2023teamf\/wp-content\/uploads\/sites\/70\/2022\/11\/Screenshot-2022-11-19-at-1.09.58-PM-1024x642.png\" alt=\"\" class=\"wp-image-84\" srcset=\"https:\/\/mrsdprojects.ri.cmu.edu\/2023teamf\/wp-content\/uploads\/sites\/70\/2022\/11\/Screenshot-2022-11-19-at-1.09.58-PM-1024x642.png 1024w, https:\/\/mrsdprojects.ri.cmu.edu\/2023teamf\/wp-content\/uploads\/sites\/70\/2022\/11\/Screenshot-2022-11-19-at-1.09.58-PM-300x188.png 300w, https:\/\/mrsdprojects.ri.cmu.edu\/2023teamf\/wp-content\/uploads\/sites\/70\/2022\/11\/Screenshot-2022-11-19-at-1.09.58-PM-768x481.png 768w, https:\/\/mrsdprojects.ri.cmu.edu\/2023teamf\/wp-content\/uploads\/sites\/70\/2022\/11\/Screenshot-2022-11-19-at-1.09.58-PM-1536x962.png 1536w, https:\/\/mrsdprojects.ri.cmu.edu\/2023teamf\/wp-content\/uploads\/sites\/70\/2022\/11\/Screenshot-2022-11-19-at-1.09.58-PM-2048x1283.png 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Cyberphysical Architecture<\/h2>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"697\" src=\"https:\/\/mrsdprojects.ri.cmu.edu\/2023teamf\/wp-content\/uploads\/sites\/70\/2023\/02\/CPA-1024x697.png\" alt=\"\" class=\"wp-image-186\" srcset=\"https:\/\/mrsdprojects.ri.cmu.edu\/2023teamf\/wp-content\/uploads\/sites\/70\/2023\/02\/CPA-1024x697.png 1024w, https:\/\/mrsdprojects.ri.cmu.edu\/2023teamf\/wp-content\/uploads\/sites\/70\/2023\/02\/CPA-300x204.png 300w, https:\/\/mrsdprojects.ri.cmu.edu\/2023teamf\/wp-content\/uploads\/sites\/70\/2023\/02\/CPA-768x523.png 768w, https:\/\/mrsdprojects.ri.cmu.edu\/2023teamf\/wp-content\/uploads\/sites\/70\/2023\/02\/CPA-1536x1046.png 1536w, https:\/\/mrsdprojects.ri.cmu.edu\/2023teamf\/wp-content\/uploads\/sites\/70\/2023\/02\/CPA.png 1567w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">System Design<\/h2>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/mrsdprojects.ri.cmu.edu\/2023teamf\/wp-content\/uploads\/sites\/70\/2023\/05\/system-.png\" alt=\"\" class=\"wp-image-344\" width=\"528\" height=\"470\" srcset=\"https:\/\/mrsdprojects.ri.cmu.edu\/2023teamf\/wp-content\/uploads\/sites\/70\/2023\/05\/system-.png 782w, https:\/\/mrsdprojects.ri.cmu.edu\/2023teamf\/wp-content\/uploads\/sites\/70\/2023\/05\/system--300x267.png 300w, https:\/\/mrsdprojects.ri.cmu.edu\/2023teamf\/wp-content\/uploads\/sites\/70\/2023\/05\/system--768x684.png 768w\" sizes=\"auto, (max-width: 528px) 100vw, 528px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading has-medium-font-size\">Technical<\/h2>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"474\" src=\"https:\/\/mrsdprojects.ri.cmu.edu\/2023teamf\/wp-content\/uploads\/sites\/70\/2023\/02\/WhatsApp-Image-2023-02-23-at-12.20.23-AM-1024x474.jpeg\" alt=\"\" class=\"wp-image-230\" srcset=\"https:\/\/mrsdprojects.ri.cmu.edu\/2023teamf\/wp-content\/uploads\/sites\/70\/2023\/02\/WhatsApp-Image-2023-02-23-at-12.20.23-AM-1024x474.jpeg 1024w, https:\/\/mrsdprojects.ri.cmu.edu\/2023teamf\/wp-content\/uploads\/sites\/70\/2023\/02\/WhatsApp-Image-2023-02-23-at-12.20.23-AM-300x139.jpeg 300w, https:\/\/mrsdprojects.ri.cmu.edu\/2023teamf\/wp-content\/uploads\/sites\/70\/2023\/02\/WhatsApp-Image-2023-02-23-at-12.20.23-AM-768x356.jpeg 768w, https:\/\/mrsdprojects.ri.cmu.edu\/2023teamf\/wp-content\/uploads\/sites\/70\/2023\/02\/WhatsApp-Image-2023-02-23-at-12.20.23-AM.jpeg 1423w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading has-medium-font-size\">User Standpoint<\/h2>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"445\" src=\"https:\/\/mrsdprojects.ri.cmu.edu\/2023teamf\/wp-content\/uploads\/sites\/70\/2023\/02\/Functional-Architecture-System-Design-1024x445.png\" alt=\"\" class=\"wp-image-231\" srcset=\"https:\/\/mrsdprojects.ri.cmu.edu\/2023teamf\/wp-content\/uploads\/sites\/70\/2023\/02\/Functional-Architecture-System-Design-1024x445.png 1024w, https:\/\/mrsdprojects.ri.cmu.edu\/2023teamf\/wp-content\/uploads\/sites\/70\/2023\/02\/Functional-Architecture-System-Design-300x130.png 300w, https:\/\/mrsdprojects.ri.cmu.edu\/2023teamf\/wp-content\/uploads\/sites\/70\/2023\/02\/Functional-Architecture-System-Design-768x334.png 768w, https:\/\/mrsdprojects.ri.cmu.edu\/2023teamf\/wp-content\/uploads\/sites\/70\/2023\/02\/Functional-Architecture-System-Design-1536x668.png 1536w, https:\/\/mrsdprojects.ri.cmu.edu\/2023teamf\/wp-content\/uploads\/sites\/70\/2023\/02\/Functional-Architecture-System-Design-2048x891.png 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>The system works as follows:<\/p>\n\n\n\n<p><strong>Voice-based tasks:<\/strong><\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>The user (patient) gives a voice command input like &#8220;Hey Alfred!&#8221;.<\/li>\n\n\n\n<li>Alfred starts listening.<\/li>\n\n\n\n<li> User says &#8220;Get me that bottle of water.&#8221;<\/li>\n\n\n\n<li>Alfred understands that this is a pick-and-place task and it needs to traverse to a set location to fetch the requested item.<\/li>\n\n\n\n<li>Alfred navigates while taking care of not colliding with the obstacles in the environment.<\/li>\n\n\n\n<li>Alfred reaches the table on which the object of interest is kept, positions itself in a way that its arm can extend to grab the bottle.<\/li>\n\n\n\n<li>Alfred lifts and extends its arm, grabs the bottle, retracts the arm, stows it, and proceeds safely back to the user without colliding with any other obstacle.<\/li>\n\n\n\n<li>Alfred places the bottle next to the user on the table.<\/li>\n<\/ol>\n\n\n\n<p><strong>Family teleop:<\/strong><\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Family gets on a video call with the user (patient) via the screen on top of Alfred. <\/li>\n\n\n\n<li>Family requests control to the robot.<\/li>\n\n\n\n<li>User approves it.<\/li>\n\n\n\n<li>Family teleoperates the robot, draws the blanket on top of the user, checks out the surroundings, and feels closer to the user.<\/li>\n<\/ol>\n\n\n\n<h2 class=\"wp-block-heading\">HRI<\/h2>\n\n\n\n<p class=\"has-medium-font-size\"><strong>Speech Recognition<\/strong><\/p>\n\n\n\n<p>We had initially used whisper C++ for recognizing user&#8217;s speech input. Wakewords like &#8220;Hey Alfred!&#8221; make it possible for the robot to identify when it needs to start listening for commands from the user. Based on the input, the pipeline decides which act to perform using its list of task-templates. However, due to heavy constraints on the compute on our robot, we have shifted to the google cloud speech API.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"323\" src=\"https:\/\/mrsdprojects.ri.cmu.edu\/2023teamf\/wp-content\/uploads\/sites\/70\/2023\/02\/TS-Speech-1024x323.png\" alt=\"\" class=\"wp-image-235\" srcset=\"https:\/\/mrsdprojects.ri.cmu.edu\/2023teamf\/wp-content\/uploads\/sites\/70\/2023\/02\/TS-Speech-1024x323.png 1024w, https:\/\/mrsdprojects.ri.cmu.edu\/2023teamf\/wp-content\/uploads\/sites\/70\/2023\/02\/TS-Speech-300x95.png 300w, https:\/\/mrsdprojects.ri.cmu.edu\/2023teamf\/wp-content\/uploads\/sites\/70\/2023\/02\/TS-Speech-768x242.png 768w, https:\/\/mrsdprojects.ri.cmu.edu\/2023teamf\/wp-content\/uploads\/sites\/70\/2023\/02\/TS-Speech.png 1434w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"has-medium-font-size\"><strong>Video Calling API<\/strong><\/p>\n\n\n\n<p>We use Agora for our video call functionality. The video feed shows up on the tablet mounted atop the robot. The feed you get can be observed under Teleoperation below.<\/p>\n\n\n\n<p class=\"has-medium-font-size\"><strong>Teleoperation<\/strong><\/p>\n\n\n\n<p>The app takes in input from the user through the mobile application&#8217;s UI. This input is pushed in the form of commands onto Firebase. The robot reads these commands and performs the functions requested by the user (In our case, the family back home). Our UI can be seen in the image below:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"813\" height=\"664\" src=\"https:\/\/mrsdprojects.ri.cmu.edu\/2023teamf\/wp-content\/uploads\/sites\/70\/2023\/02\/UI.png\" alt=\"\" class=\"wp-image-236\" srcset=\"https:\/\/mrsdprojects.ri.cmu.edu\/2023teamf\/wp-content\/uploads\/sites\/70\/2023\/02\/UI.png 813w, https:\/\/mrsdprojects.ri.cmu.edu\/2023teamf\/wp-content\/uploads\/sites\/70\/2023\/02\/UI-300x245.png 300w, https:\/\/mrsdprojects.ri.cmu.edu\/2023teamf\/wp-content\/uploads\/sites\/70\/2023\/02\/UI-768x627.png 768w\" sizes=\"auto, (max-width: 813px) 100vw, 813px\" \/><\/figure>\n\n\n\n<p class=\"has-medium-font-size\"><strong>Non-verbal feedback<\/strong><\/p>\n\n\n\n<p>We have eyes on the robot that provide non-verbal feedback. We intend to integrate this with a head-rotation that allows the robot to look in the direction of where the voice is coming from. We have gone through several iterations of the design. The current design is below:<\/p>\n\n\n\n<p>V2.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/mrsdprojects.ri.cmu.edu\/2023teamf\/wp-content\/uploads\/sites\/70\/2023\/05\/image.png\" alt=\"\" class=\"wp-image-348\" width=\"612\" height=\"257\" srcset=\"https:\/\/mrsdprojects.ri.cmu.edu\/2023teamf\/wp-content\/uploads\/sites\/70\/2023\/05\/image.png 775w, https:\/\/mrsdprojects.ri.cmu.edu\/2023teamf\/wp-content\/uploads\/sites\/70\/2023\/05\/image-300x126.png 300w, https:\/\/mrsdprojects.ri.cmu.edu\/2023teamf\/wp-content\/uploads\/sites\/70\/2023\/05\/image-768x322.png 768w\" sizes=\"auto, (max-width: 612px) 100vw, 612px\" \/><\/figure>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"258\" height=\"260\" src=\"https:\/\/mrsdprojects.ri.cmu.edu\/2023teamf\/wp-content\/uploads\/sites\/70\/2023\/02\/eyessystem.png\" alt=\"\" class=\"wp-image-237\" srcset=\"https:\/\/mrsdprojects.ri.cmu.edu\/2023teamf\/wp-content\/uploads\/sites\/70\/2023\/02\/eyessystem.png 258w, https:\/\/mrsdprojects.ri.cmu.edu\/2023teamf\/wp-content\/uploads\/sites\/70\/2023\/02\/eyessystem-150x150.png 150w, https:\/\/mrsdprojects.ri.cmu.edu\/2023teamf\/wp-content\/uploads\/sites\/70\/2023\/02\/eyessystem-174x174.png 174w\" sizes=\"auto, (max-width: 258px) 100vw, 258px\" \/><\/figure>\n<\/div>\n\n\n<p>To check out the visual implementation of the subsystems below, you might want to go through this blog <a href=\"https:\/\/mrsdprojects.ri.cmu.edu\/2023teamf\/index\/system-implementation\/\">here<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Navigation<\/h2>\n\n\n\n<p>The navigation stack in our system is crucial to two functionalities:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>To reach the desired location to perform the pick-and-place manipulation tasks.<\/li>\n\n\n\n<li>To perform the function desired by the teleoperation input from the user.<\/li>\n<\/ol>\n\n\n\n<h2 class=\"wp-block-heading has-medium-font-size\">Perception<\/h2>\n\n\n\n<p>We pre-map the environment and feed that as reference for our robot to understand the environment it&#8217;s supposed to navigate in. For identifying obstacles in the periphery and localizing the robot during navigation, we use the LiDaR mounted atop the robot base. <\/p>\n\n\n\n<p class=\"has-medium-font-size\"><strong>Planning and Controls<\/strong><\/p>\n\n\n\n<p>Once the localization is achieved, the global planner plans the trajectory of the robot to its destination. En route to the destination point, the local planner DWA corrects any errors in trajectory and also avoids obstacles. We tune the parameters for the AI makerspace.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"606\" src=\"https:\/\/mrsdprojects.ri.cmu.edu\/2023teamf\/wp-content\/uploads\/sites\/70\/2023\/02\/2DMapNav-1024x606.png\" alt=\"\" class=\"wp-image-246\" srcset=\"https:\/\/mrsdprojects.ri.cmu.edu\/2023teamf\/wp-content\/uploads\/sites\/70\/2023\/02\/2DMapNav-1024x606.png 1024w, https:\/\/mrsdprojects.ri.cmu.edu\/2023teamf\/wp-content\/uploads\/sites\/70\/2023\/02\/2DMapNav-300x177.png 300w, https:\/\/mrsdprojects.ri.cmu.edu\/2023teamf\/wp-content\/uploads\/sites\/70\/2023\/02\/2DMapNav-768x454.png 768w, https:\/\/mrsdprojects.ri.cmu.edu\/2023teamf\/wp-content\/uploads\/sites\/70\/2023\/02\/2DMapNav-1536x908.png 1536w, https:\/\/mrsdprojects.ri.cmu.edu\/2023teamf\/wp-content\/uploads\/sites\/70\/2023\/02\/2DMapNav.png 1642w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Manipulation<\/h2>\n\n\n\n<p>The manipulation stack in our system is crucial to two functionalities:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>To perform the pick-and-place manipulation tasks.<\/li>\n\n\n\n<li>To perform the function desired by the teleoperation input from the user.<\/li>\n<\/ol>\n\n\n\n<p class=\"has-medium-font-size\"><strong>Perception<\/strong><\/p>\n\n\n\n<p>For detecting object of interest in the environment, we use YoloV8. It generates bounding boxes around objects as shown below:<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"357\" height=\"640\" src=\"https:\/\/mrsdprojects.ri.cmu.edu\/2023teamf\/wp-content\/uploads\/sites\/70\/2023\/02\/Yolo.png\" alt=\"\" class=\"wp-image-238\" srcset=\"https:\/\/mrsdprojects.ri.cmu.edu\/2023teamf\/wp-content\/uploads\/sites\/70\/2023\/02\/Yolo.png 357w, https:\/\/mrsdprojects.ri.cmu.edu\/2023teamf\/wp-content\/uploads\/sites\/70\/2023\/02\/Yolo-167x300.png 167w\" sizes=\"auto, (max-width: 357px) 100vw, 357px\" \/><\/figure>\n<\/div>\n\n\n<p>We use this info to generate a precise grasp pose using GraspNet. This is done so that the end-effector knows how to execute the grasping task. You can see an implementation of multiple grasps on multiple objects in the image below:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"939\" height=\"518\" src=\"https:\/\/mrsdprojects.ri.cmu.edu\/2023teamf\/wp-content\/uploads\/sites\/70\/2023\/02\/GraspNet-1.png\" alt=\"\" class=\"wp-image-239\" srcset=\"https:\/\/mrsdprojects.ri.cmu.edu\/2023teamf\/wp-content\/uploads\/sites\/70\/2023\/02\/GraspNet-1.png 939w, https:\/\/mrsdprojects.ri.cmu.edu\/2023teamf\/wp-content\/uploads\/sites\/70\/2023\/02\/GraspNet-1-300x165.png 300w, https:\/\/mrsdprojects.ri.cmu.edu\/2023teamf\/wp-content\/uploads\/sites\/70\/2023\/02\/GraspNet-1-768x424.png 768w\" sizes=\"auto, (max-width: 939px) 100vw, 939px\" \/><\/figure>\n\n\n\n<p class=\"has-medium-font-size\"><strong>Planning and Controls<\/strong><\/p>\n\n\n\n<p>Prior to grasping, we automatically orient the robot such that the object is graspable. This is done using a visual serving algorithm that uses several closed-loop controllers, tightly coupled with a vision based probabilistic estimator to align the robot with the object of interest.<\/p>\n\n\n\n<p>Once we know the robot is, where the object is, and how we&#8217;re supposed to grasp it, the system uses a go-to-planner in which the 3D coordinates are fed in as an input so that the planner can proceed in a single-joint trajectory to reach the object of interest. The object is lifted to avoid drag along the surface. The placing pipeline uses contact sensing in order to place the object of interest on a table.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"563\" height=\"1024\" src=\"https:\/\/mrsdprojects.ri.cmu.edu\/2023teamf\/wp-content\/uploads\/sites\/70\/2023\/02\/Arm-lift-563x1024.png\" alt=\"\" class=\"wp-image-241\" srcset=\"https:\/\/mrsdprojects.ri.cmu.edu\/2023teamf\/wp-content\/uploads\/sites\/70\/2023\/02\/Arm-lift-563x1024.png 563w, https:\/\/mrsdprojects.ri.cmu.edu\/2023teamf\/wp-content\/uploads\/sites\/70\/2023\/02\/Arm-lift-165x300.png 165w, https:\/\/mrsdprojects.ri.cmu.edu\/2023teamf\/wp-content\/uploads\/sites\/70\/2023\/02\/Arm-lift.png 572w\" sizes=\"auto, (max-width: 563px) 100vw, 563px\" \/><\/figure>\n<\/div>","protected":false},"excerpt":{"rendered":"<p>System Requirements Functional Requirements Performance Requirements Justification\/Assumption Receive commands from the user: preset speech primitives\/handheld interface Word-error rate &lt;=10% Latency for control commands &lt;5s Robot should understand what the user wants it to do Perform basic (pre-defined) social engagement with user Fallback rate: &lt;20% User chats with the robot Localize itself in the environment Error&hellip;&nbsp;<a href=\"https:\/\/mrsdprojects.ri.cmu.edu\/2023teamf\/index\/system-design\/\" rel=\"bookmark\">Read More &raquo;<span class=\"screen-reader-text\">System Design Old<\/span><\/a><\/p>\n","protected":false},"author":324,"featured_media":0,"parent":15,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"neve_meta_sidebar":"","neve_meta_container":"","neve_meta_enable_content_width":"","neve_meta_content_width":0,"neve_meta_title_alignment":"","neve_meta_author_avatar":"","neve_post_elements_order":"","neve_meta_disable_header":"","neve_meta_disable_footer":"","neve_meta_disable_title":"","footnotes":""},"class_list":["post-29","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/mrsdprojects.ri.cmu.edu\/2023teamf\/wp-json\/wp\/v2\/pages\/29","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mrsdprojects.ri.cmu.edu\/2023teamf\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/mrsdprojects.ri.cmu.edu\/2023teamf\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/mrsdprojects.ri.cmu.edu\/2023teamf\/wp-json\/wp\/v2\/users\/324"}],"replies":[{"embeddable":true,"href":"https:\/\/mrsdprojects.ri.cmu.edu\/2023teamf\/wp-json\/wp\/v2\/comments?post=29"}],"version-history":[{"count":15,"href":"https:\/\/mrsdprojects.ri.cmu.edu\/2023teamf\/wp-json\/wp\/v2\/pages\/29\/revisions"}],"predecessor-version":[{"id":685,"href":"https:\/\/mrsdprojects.ri.cmu.edu\/2023teamf\/wp-json\/wp\/v2\/pages\/29\/revisions\/685"}],"up":[{"embeddable":true,"href":"https:\/\/mrsdprojects.ri.cmu.edu\/2023teamf\/wp-json\/wp\/v2\/pages\/15"}],"wp:attachment":[{"href":"https:\/\/mrsdprojects.ri.cmu.edu\/2023teamf\/wp-json\/wp\/v2\/media?parent=29"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}