{"id":955,"date":"2023-09-04T23:49:49","date_gmt":"2023-09-04T23:49:49","guid":{"rendered":"https:\/\/mrsdprojects.ri.cmu.edu\/2023teamf\/?page_id=955"},"modified":"2023-11-25T05:07:30","modified_gmt":"2023-11-25T05:07:30","slug":"system-implementation","status":"publish","type":"page","link":"https:\/\/mrsdprojects.ri.cmu.edu\/2023teamf\/system\/system-implementation\/","title":{"rendered":"System Implementation"},"content":{"rendered":"\n<p>The overall system comprises the Stretch RE1 mobile manipulator as the primary robot. For HRI capabilities, an external microphone is mounted on the base of the robot. Additionally, an iPad is mounted on the head of the robot for displaying the robot\u2019s face. Our overall software architecture comprises several different subsystems operating in tandem, coordinated by 4 different layers of finite- state machines. Level 1: A high-level mission planner coordinates the global status of tasks that are executed. Level 2: Each subsystem has its own local FSM that is used to execute sub-tasks. Level 3: Our manipulation subsystem has several complex algorithms that require their own FSMs executing within Level 2 FSMs. Level 4: All of our subsystems are orchestrated by action servers which are based on a low-level FSM.<\/p>\n\n\n\n<p>Our major subsystems are described below:<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h2 class=\"wp-block-heading\">Mission Planner<\/h2>\n\n\n\n<p>The Mission Planner subsystem enables the integration of the three primary subsystems of our robot: HRI, Navigation, and Manipulation. The Mission Planner manages the current state of the system through a finite state machine (FSM). This FSM triggers different sub-systems of the robot to be activated and perform their part in the larger task. Additionally, all the perception-related computation was performed on a remote GPU device, called the Brain. For low-level robot control, we have developed our own wrapper around the Stretch RE1\u2019s low-level controller, called Alfred Driver. The various architectures governing the Mission Planner\u2019s decision-making and the Brain \/ Alfred Driver\u2019s work are shown in Figures 1 and 2.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"506\" src=\"http:\/\/mrsdprojects.ri.cmu.edu\/2023teamf\/wp-content\/uploads\/sites\/70\/2023\/09\/mission_planner-1024x506.png\" alt=\"\" class=\"wp-image-960\" srcset=\"https:\/\/mrsdprojects.ri.cmu.edu\/2023teamf\/wp-content\/uploads\/sites\/70\/2023\/09\/mission_planner-1024x506.png 1024w, https:\/\/mrsdprojects.ri.cmu.edu\/2023teamf\/wp-content\/uploads\/sites\/70\/2023\/09\/mission_planner-300x148.png 300w, https:\/\/mrsdprojects.ri.cmu.edu\/2023teamf\/wp-content\/uploads\/sites\/70\/2023\/09\/mission_planner-768x379.png 768w, https:\/\/mrsdprojects.ri.cmu.edu\/2023teamf\/wp-content\/uploads\/sites\/70\/2023\/09\/mission_planner-1536x759.png 1536w, https:\/\/mrsdprojects.ri.cmu.edu\/2023teamf\/wp-content\/uploads\/sites\/70\/2023\/09\/mission_planner-2048x1011.png 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\"><strong>Fig. 1: Mission Planner Architecture<\/strong><\/figcaption><\/figure>\n<\/div>\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"561\" src=\"https:\/\/mrsdprojects.ri.cmu.edu\/2023teamf\/wp-content\/uploads\/sites\/70\/2023\/09\/brain_driver-1-1024x561.png\" alt=\"\" class=\"wp-image-961\" style=\"width:655px;height:359px\" srcset=\"https:\/\/mrsdprojects.ri.cmu.edu\/2023teamf\/wp-content\/uploads\/sites\/70\/2023\/09\/brain_driver-1-1024x561.png 1024w, https:\/\/mrsdprojects.ri.cmu.edu\/2023teamf\/wp-content\/uploads\/sites\/70\/2023\/09\/brain_driver-1-300x164.png 300w, https:\/\/mrsdprojects.ri.cmu.edu\/2023teamf\/wp-content\/uploads\/sites\/70\/2023\/09\/brain_driver-1-768x421.png 768w, https:\/\/mrsdprojects.ri.cmu.edu\/2023teamf\/wp-content\/uploads\/sites\/70\/2023\/09\/brain_driver-1-1536x842.png 1536w, https:\/\/mrsdprojects.ri.cmu.edu\/2023teamf\/wp-content\/uploads\/sites\/70\/2023\/09\/brain_driver-1.png 1992w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\"><strong>Fig. 2: Alfred driver and Alfred brain architecture<\/strong><\/figcaption><\/figure>\n<\/div>\n\n\n<p>We use a single script in order to launch our entire robot in a coordinated manner. When launched, our custom software automatically ensures robot calibration, runs system checks to ensure all sensors are operating nominally, and ensures that all ROS nodes are running nominally before the robot is ready to receive commands.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h2 class=\"wp-block-heading\">Human-Robot Interaction<\/h2>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"941\" height=\"674\" src=\"https:\/\/mrsdprojects.ri.cmu.edu\/2023teamf\/wp-content\/uploads\/sites\/70\/2023\/09\/hri_new.png\" alt=\"\" class=\"wp-image-964\" style=\"width:509px;height:365px\" srcset=\"https:\/\/mrsdprojects.ri.cmu.edu\/2023teamf\/wp-content\/uploads\/sites\/70\/2023\/09\/hri_new.png 941w, https:\/\/mrsdprojects.ri.cmu.edu\/2023teamf\/wp-content\/uploads\/sites\/70\/2023\/09\/hri_new-300x215.png 300w, https:\/\/mrsdprojects.ri.cmu.edu\/2023teamf\/wp-content\/uploads\/sites\/70\/2023\/09\/hri_new-768x550.png 768w\" sizes=\"auto, (max-width: 941px) 100vw, 941px\" \/><figcaption class=\"wp-element-caption\"><strong>Fig. 3: HRI subsystem architecture <\/strong><\/figcaption><\/figure>\n<\/div>\n\n\n<p>The above figure shows the HRI subsystem architecture in a flowchart. The Human-Robot Interaction subsystem (HRI) enables the <strong>Speech Engagement<\/strong> and <strong>Telepresence capabilities<\/strong> of the robot. The Speech Engagement subsystem was implemented with Picovoice for trigger word detection, Google Cloud\u2019s speech-to-text API for speech parsing, and DeepMind\u2019s Neural2 API for life-like voice synthesis. Additionally, ChatGPT was integrated into the HRI subsystem to handle social engagement requests. The trigger-word detector is always running in the background. When the user says the trigger word, the speech-parsing API is activated. The user\u2019s subsequent speech is then parsed and the mission planner activates the respective subsystem to perform the desired task. If the user\u2019s request is identified as a pick-and-place command, the mission planner performs task allocation to appropriately identify the desired object to be placed. If the user\u2019s request is identified as a social-engagement command, the mission planner offloads the task to ChatGPT to generate a response. Finally, the robot gives feedback to the user through a speech command which appropriately addresses the user\u2019s request.<\/p>\n\n\n\n<p>[Add cropped video of HRI part with help from atharva]@apusalka<\/p>\n\n\n\n<p> The HRI subsystem\u2019s telepresence capabilities include teleoperation using a handheld interface UI and video-calling implemented with the Agora API. For enabling wireless communication for video calling and teleoperation, the Firebase cloud service is used. Additionally, an iPad is mounted on the robot\u2019s head to display the robot\u2019s face, as well as a video-calling screen. The HRI subsystem\u2019s functioning can be observed in figures below.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"439\" src=\"http:\/\/mrsdprojects.ri.cmu.edu\/2023teamf\/wp-content\/uploads\/sites\/70\/2023\/02\/Eyes-1024x439.png\" alt=\"\" class=\"wp-image-204\" style=\"width:-420px;height:-179px\" srcset=\"https:\/\/mrsdprojects.ri.cmu.edu\/2023teamf\/wp-content\/uploads\/sites\/70\/2023\/02\/Eyes-1024x439.png 1024w, https:\/\/mrsdprojects.ri.cmu.edu\/2023teamf\/wp-content\/uploads\/sites\/70\/2023\/02\/Eyes-300x129.png 300w, https:\/\/mrsdprojects.ri.cmu.edu\/2023teamf\/wp-content\/uploads\/sites\/70\/2023\/02\/Eyes-768x329.png 768w, https:\/\/mrsdprojects.ri.cmu.edu\/2023teamf\/wp-content\/uploads\/sites\/70\/2023\/02\/Eyes.png 1249w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\"><strong>Fig. 4: Multiple iterations of design for interactive eyes of Alfred<\/strong><\/figcaption><\/figure>\n<\/div>\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"813\" height=\"664\" src=\"http:\/\/mrsdprojects.ri.cmu.edu\/2023teamf\/wp-content\/uploads\/sites\/70\/2023\/02\/UI.png\" alt=\"\" class=\"wp-image-236\" style=\"width:-276px;height:-224px\" 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\" \/><figcaption class=\"wp-element-caption\"><strong>Fig. 5: Video calling feature<\/strong><\/figcaption><\/figure>\n<\/div>\n\n\n<p class=\"has-text-align-center\"><kbd><img decoding=\"async\" width=\"304px;\" height=\"540px;\" src=\"https:\/\/lh6.googleusercontent.com\/9dXtBt0criLBQqjzITBdZwlpvIqep43PTZ5jjnuj005uJuj4hZfEOIzfysHItiOGcVAa0kM0rB3H42840EtKTIXr05GXouQPsrJ6fMKNs8eT_mzxTstSJ79hFU_Lq5vpJvw4LDQJwKC5QobvkdAd710L8w=s2048\"><\/kbd>  <\/p>\n\n\n\n<p class=\"has-text-align-center\"><strong>Fig. 6: Teleoperation test<\/strong><\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h2 class=\"wp-block-heading\">Navigation<\/h2>\n\n\n\n<p>The navigation subsystem is responsible for moving the robot in the operating environment from an initial location to the desired location of the object, and back to the initial location (where the object is to be placed). It is implemented in Python and C++ using the ROS Noetic platform. At a high level, the navigation subsystem performs functions such as Mapping, Localization, Motion Planning, Dynamic Obstacle Avoidance, Controls, and Actuation. The overall architecture of the navigation subsystem is shown below.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"267\" src=\"http:\/\/mrsdprojects.ri.cmu.edu\/2023teamf\/wp-content\/uploads\/sites\/70\/2023\/09\/Navigation-1024x267.png\" alt=\"\" class=\"wp-image-965\" srcset=\"https:\/\/mrsdprojects.ri.cmu.edu\/2023teamf\/wp-content\/uploads\/sites\/70\/2023\/09\/Navigation-1024x267.png 1024w, https:\/\/mrsdprojects.ri.cmu.edu\/2023teamf\/wp-content\/uploads\/sites\/70\/2023\/09\/Navigation-300x78.png 300w, https:\/\/mrsdprojects.ri.cmu.edu\/2023teamf\/wp-content\/uploads\/sites\/70\/2023\/09\/Navigation-768x200.png 768w, https:\/\/mrsdprojects.ri.cmu.edu\/2023teamf\/wp-content\/uploads\/sites\/70\/2023\/09\/Navigation-1536x401.png 1536w, https:\/\/mrsdprojects.ri.cmu.edu\/2023teamf\/wp-content\/uploads\/sites\/70\/2023\/09\/Navigation.png 1882w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\"><strong>Fig. 7: Navigation subsystem architecture<\/strong><\/figcaption><\/figure>\n<\/div>\n\n\n<p>The development of the navigation subsystem started with the generation of a 2D map of the AI Maker Space (test environment). This was generated using SLAM with the help of the gmapping package in ROS. Given that the position of the Stretch RE1\u2019s 2D Lidar is at knee-height, several static objects in the environment, such as tables, were not included in the initial map generated. In order to prevent the robot from planning paths through these regions, the 2D map was manually edited using a software called GIMP. Specifically, regions, where the robot should not traverse, were marked as unknown regions (grey color) in the map of Fig 8.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"471\" src=\"https:\/\/mrsdprojects.ri.cmu.edu\/2023teamf\/wp-content\/uploads\/sites\/70\/2023\/09\/ai_ms_combined-1024x471.png\" alt=\"\" class=\"wp-image-966\" style=\"width:767px;height:353px\" srcset=\"https:\/\/mrsdprojects.ri.cmu.edu\/2023teamf\/wp-content\/uploads\/sites\/70\/2023\/09\/ai_ms_combined-1024x471.png 1024w, https:\/\/mrsdprojects.ri.cmu.edu\/2023teamf\/wp-content\/uploads\/sites\/70\/2023\/09\/ai_ms_combined-300x138.png 300w, https:\/\/mrsdprojects.ri.cmu.edu\/2023teamf\/wp-content\/uploads\/sites\/70\/2023\/09\/ai_ms_combined-768x353.png 768w, https:\/\/mrsdprojects.ri.cmu.edu\/2023teamf\/wp-content\/uploads\/sites\/70\/2023\/09\/ai_ms_combined-1536x706.png 1536w, https:\/\/mrsdprojects.ri.cmu.edu\/2023teamf\/wp-content\/uploads\/sites\/70\/2023\/09\/ai_ms_combined.png 1734w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\"><strong>Fig. 8: Figure showing map of AI makerspace and Alfred avoiding obstacles<\/strong><\/figcaption><\/figure>\n<\/div>\n\n\n<p>For localization, we used the Adaptive Monte Carlo Localization algorithm, implemented in the amcl package in ROS Noetic. This algorithm would use the robot\u2019s real-time odometry and lidar data for the prediction and update steps, respectively. For robot path planning and controls, the movebase ROS library was used. We used Dijkstra\u2019s algorithm (Navfn ROS) for global path planning and the Dynamic Window Approach (DWA) algorithm for local path planning and controls. While these planners usually generated feasible paths through the test environment, there were times when the robot would struggle to navigate around an obstacle. In these situations, the robot would trigger its recovery behaviors. The recovery behaviors used by our navigation subsystem were Clear Costmap Recovery, Rotate Recovery, and Moveback Recovery. The Moveback Recovery behavior is a custom plugin developed by the team that commands the robot to move back by a set distance and replan a path, in cases where the other two recovery behaviors fail. Additionally, we extensively tuned ROS parameters in Costmap, Planner, and AMCL packages to optimize the robot\u2019s performance in the test environment. An image depicting the robot avoiding obstacles during navigation is shown in Figure 8.<\/p>\n\n\n\n<p><strong>3D Navigation<\/strong>: Besides 2D map-based navigation, we also implemented Real-Time Appearance-Based Mapping (RTAB Map). It is a graph-based SLAM approach based on an incremental appearance-based loop closure detector. Fig. 9 shows a 3D map created after running this SLAM approach in a simulation environment. This approach is less susceptible to navigation across thin objects in comparison to 2d navigation since it uses additional modality (RGBD camera) to create a map instead of just a 2D LiDAR. We didn&#8217;t deploy this approach for spring validation demonstration due to time constraints and test time problems.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"547\" height=\"420\" src=\"https:\/\/mrsdprojects.ri.cmu.edu\/2023teamf\/wp-content\/uploads\/sites\/70\/2023\/09\/RTAB-Map.png\" alt=\"\" class=\"wp-image-971\" style=\"width:579px;height:445px\" srcset=\"https:\/\/mrsdprojects.ri.cmu.edu\/2023teamf\/wp-content\/uploads\/sites\/70\/2023\/09\/RTAB-Map.png 547w, https:\/\/mrsdprojects.ri.cmu.edu\/2023teamf\/wp-content\/uploads\/sites\/70\/2023\/09\/RTAB-Map-300x230.png 300w\" sizes=\"auto, (max-width: 547px) 100vw, 547px\" \/><figcaption class=\"wp-element-caption\"><strong>Fig. 9: 3D map created using RTAB-Map algorithm in simulation<\/strong><\/figcaption><\/figure>\n<\/div>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h2 class=\"wp-block-heading\">Manipulation<\/h2>\n\n\n\n<p>The goal of the manipulation subsystem is to successfully pick the desired object and place at the desired destination once the navigation is completed. Our manipulation subsystem handles both pick as well as place requests. Once a pick request is issued to the subsystem, we execute tasks in sequence as described in our architecture in Figure 10.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"643\" src=\"https:\/\/mrsdprojects.ri.cmu.edu\/2023teamf\/wp-content\/uploads\/sites\/70\/2023\/09\/manipulation_arch-1024x643.png\" alt=\"\" class=\"wp-image-972\" style=\"width:750px;height:471px\" srcset=\"https:\/\/mrsdprojects.ri.cmu.edu\/2023teamf\/wp-content\/uploads\/sites\/70\/2023\/09\/manipulation_arch-1024x643.png 1024w, https:\/\/mrsdprojects.ri.cmu.edu\/2023teamf\/wp-content\/uploads\/sites\/70\/2023\/09\/manipulation_arch-300x188.png 300w, https:\/\/mrsdprojects.ri.cmu.edu\/2023teamf\/wp-content\/uploads\/sites\/70\/2023\/09\/manipulation_arch-768x482.png 768w, https:\/\/mrsdprojects.ri.cmu.edu\/2023teamf\/wp-content\/uploads\/sites\/70\/2023\/09\/manipulation_arch-1536x965.png 1536w, https:\/\/mrsdprojects.ri.cmu.edu\/2023teamf\/wp-content\/uploads\/sites\/70\/2023\/09\/manipulation_arch-2048x1286.png 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\"><strong>Fig. 10: Manipulation subsystem architecture and Visual Servoing Algorithm<\/strong><\/figcaption><\/figure>\n<\/div>\n\n\n<p>The detailed working of manipulation subsystem can be defined in the following steps.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Visual Servoing:<\/strong> The visual servoing algorithm is responsible for finding the object of interest in the environment and automatically aligning the robot to a graspable position. Each part of the algorithm involves three steps: a) <strong>Scanning:<\/strong> Using the head camera assembly (Intel RealSense D435i) on the robot, we pan the camera across the environment while parallelly detecting all objects in the environment using the Yolov8 object detector. Using this, we estimate a ground truth location of each object in the world frame and employ a Maximum Likelihood Estimator (MLE) based on a weighted probability score that decays in a hyperbolic fashion with respect to the distance of the object from the camera. This helps filter out all objects that are improbable (such as bottles on the ceiling\/floor, etc.). The perception capabilities can be seen in Figure 12. b)<strong>Visual Alignment:<\/strong> Once we estimate the location of the object, we perform a sequence of closedloop control steps that uses visual feedback in order to align the robot within a maximum graspable distance threshold. This allows the object to be within the workspace of the robot manipulation. c)<strong> Recovery:<\/strong> We employ several recovery schemes in order to ensure that the robot doesn\u2019t reach an irrecoverable state. These schemes are described in Figure 10.<\/li>\n<\/ul>\n\n\n\n<p>[Add visual servoing video here] @pvenkat2<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Grasp Generation:<\/strong> We developed three methods for grasp generation, namely <a href=\"https:\/\/graspnet.net\/\">GraspNet<\/a>, <a href=\"https:\/\/github.com\/dougsm\/ggcnn\">GGCNN<\/a>, and Median Grasp. We primarily use the GraspNet algorithm in order to pick a location on the object to grasp. GraspNet is a model trained on a large-scale database of objects and grasps. We obtain a 6D grasp from point clouds observed from the camera focused on the object of interest. However, since we have constraints on the graspable region due to the design of the end-effector, we developed our own heuristics that allow us to generate grasps feasible by our robot. We use the Median Grasp strategy as a fallback in case GraspNet does not produce high-quality grasps. Median Grasp takes in the point cloud of the object and returns the median point in the object as the grasp location. Figure 12 shows these results.<\/li>\n\n\n\n<li><strong>Plane Detection:<\/strong> We employ a plane detection algorithm based on the RANSAC scheme in order to estimate the plane from which an object is picked. We use this in order to estimate the height at which the object is grasped from the table. This is useful as it gives us an estimate of the clearance<br>required for placing the object on a surface.<\/li>\n\n\n\n<li><strong>Motion Planning and Control:<\/strong> Our current system employs a basic control pipeline that does not consider obstacles within the workspace of the manipulator. We execute Cartesian motions that reduce the probability of collisions.<\/li>\n\n\n\n<li><strong>Grasp Success Validation:<\/strong> To verify if the grasp is successful, we additionally trained a logistic regression model which classifies &#8216;success&#8217; or &#8216;fail&#8217; based on the gripping effort. We collected a small dataset of diverse objects and gripping configurations and trained a model based on it.<\/li>\n<\/ul>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"447\" src=\"https:\/\/mrsdprojects.ri.cmu.edu\/2023teamf\/wp-content\/uploads\/sites\/70\/2023\/09\/man_perception-1024x447.png\" alt=\"\" class=\"wp-image-973\" style=\"width:722px;height:315px\" srcset=\"https:\/\/mrsdprojects.ri.cmu.edu\/2023teamf\/wp-content\/uploads\/sites\/70\/2023\/09\/man_perception-1024x447.png 1024w, https:\/\/mrsdprojects.ri.cmu.edu\/2023teamf\/wp-content\/uploads\/sites\/70\/2023\/09\/man_perception-300x131.png 300w, https:\/\/mrsdprojects.ri.cmu.edu\/2023teamf\/wp-content\/uploads\/sites\/70\/2023\/09\/man_perception-768x335.png 768w, https:\/\/mrsdprojects.ri.cmu.edu\/2023teamf\/wp-content\/uploads\/sites\/70\/2023\/09\/man_perception.png 1347w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\"><strong>Figure 12: Perception capabilities<\/strong><\/figcaption><\/figure>\n<\/div>\n\n\n<div class=\"wp-block-group alignfull has-background-color has-white-color has-black-background-color has-text-color has-background has-link-color wp-elements-08f980d435ed52a830c1510cee9c657a\" style=\"min-height:40vh;margin-top:0;margin-bottom:0;padding-top:var(--wp--preset--spacing--60);padding-right:var(--wp--preset--spacing--40);padding-bottom:var(--wp--preset--spacing--60);padding-left:var(--wp--preset--spacing--40)\"><div class=\"wp-block-group__inner-container is-layout-constrained wp-container-core-group-is-layout-27c39f3e wp-block-group-is-layout-constrained\">\n<div class=\"wp-block-columns alignwide has-small-font-size is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<div class=\"wp-block-group\"><div class=\"wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained\">\n<p class=\"has-text-align-center has-nv-site-bg-color has-text-color\">Location<\/p>\n<\/div><\/div>\n\n\n\n<div class=\"wp-block-group\"><div class=\"wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained\">\n<div class=\"wp-block-group\"><div class=\"wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained\">\n<div class=\"wp-block-group\"><div class=\"wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained\">\n<div class=\"wp-block-group\"><div class=\"wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained\">\n<p class=\"has-text-align-center has-nv-site-bg-color has-text-color has-small-font-size\">5000 Forbes Avenue<br>Robotics Institute<br>Pittsburgh, PA<br>USA<\/p>\n<\/div><\/div>\n<\/div><\/div>\n<\/div><\/div>\n<\/div><\/div>\n\n\n\n<div style=\"height:24px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<p class=\"has-text-align-center has-nv-site-bg-color has-text-color\">Pages<\/p>\n\n\n\n<div class=\"wp-block-group\"><div class=\"wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained\">\n<p class=\"has-text-align-center has-nv-site-bg-color has-text-color has-small-font-size\"><a href=\"https:\/\/mrsdprojects.ri.cmu.edu\/2023teamf\/about-us\">About Us<br><\/a><a href=\"https:\/\/mrsdprojects.ri.cmu.edu\/2023teamf\/system\">System<\/a><br><a href=\"https:\/\/mrsdprojects.ri.cmu.edu\/2023teamf\/media\">Media<\/a><br><a href=\"https:\/\/mrsdprojects.ri.cmu.edu\/2023teamf\/documents\">Documents<\/a><\/p>\n<\/div><\/div>\n\n\n\n<div style=\"height:24px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<p class=\"has-text-align-center has-nv-site-bg-color has-text-color\">Follow Us<\/p>\n\n\n\n<div class=\"wp-block-group is-vertical is-content-justification-center is-layout-flex wp-container-core-group-is-layout-bdd043ae wp-block-group-is-layout-flex\">\n<p class=\"has-small-font-size\"><a href=\"https:\/\/www.youtube.com\/channel\/UCQDt2lo--mx3kdyK8CauVxQ\" target=\"_blank\" rel=\"noreferrer noopener\">YouTube<\/a><\/p>\n\n\n\n<p class=\"has-small-font-size\"><a href=\"https:\/\/twitter.com\/auxiliorobotics\" target=\"_blank\" rel=\"noreferrer noopener\">Twitter<\/a><\/p>\n\n\n\n<p class=\"has-small-font-size\"><a href=\"https:\/\/github.com\/Auxilio-Robotics\/\" target=\"_blank\" rel=\"noreferrer noopener\">GitHub<\/a><\/p>\n<\/div>\n\n\n\n<div style=\"height:24px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n<\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-group alignwide is-content-justification-center is-layout-flex wp-container-core-group-is-layout-5590e8cb wp-block-group-is-layout-flex\">\n<p class=\"has-text-align-center has-small-font-size\">The Robotics Institute is part of the School of Computer Science  at Carnegie Mellon University<\/p>\n<\/div>\n<\/div><\/div>\n","protected":false},"excerpt":{"rendered":"<p>The overall system comprises the Stretch RE1 mobile manipulator as the primary robot. For HRI capabilities, an external microphone is mounted on the base of the robot. Additionally, an iPad is mounted on the head of the robot for displaying the robot\u2019s face. Our overall software architecture comprises several different subsystems operating in tandem, coordinated&hellip;&nbsp;<a href=\"https:\/\/mrsdprojects.ri.cmu.edu\/2023teamf\/system\/system-implementation\/\" rel=\"bookmark\">Read More &raquo;<span class=\"screen-reader-text\">System Implementation<\/span><\/a><\/p>\n","protected":false},"author":303,"featured_media":0,"parent":92,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"neve_meta_sidebar":"","neve_meta_container":"","neve_meta_enable_content_width":"off","neve_meta_content_width":100,"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-955","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/mrsdprojects.ri.cmu.edu\/2023teamf\/wp-json\/wp\/v2\/pages\/955","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\/303"}],"replies":[{"embeddable":true,"href":"https:\/\/mrsdprojects.ri.cmu.edu\/2023teamf\/wp-json\/wp\/v2\/comments?post=955"}],"version-history":[{"count":9,"href":"https:\/\/mrsdprojects.ri.cmu.edu\/2023teamf\/wp-json\/wp\/v2\/pages\/955\/revisions"}],"predecessor-version":[{"id":1201,"href":"https:\/\/mrsdprojects.ri.cmu.edu\/2023teamf\/wp-json\/wp\/v2\/pages\/955\/revisions\/1201"}],"up":[{"embeddable":true,"href":"https:\/\/mrsdprojects.ri.cmu.edu\/2023teamf\/wp-json\/wp\/v2\/pages\/92"}],"wp:attachment":[{"href":"https:\/\/mrsdprojects.ri.cmu.edu\/2023teamf\/wp-json\/wp\/v2\/media?parent=955"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}