# Available Nodes

<figure><img src="https://1981574695-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FsmNbOWbT7W8uswCfgHan%2Fuploads%2FNhrG5gNz8o3wtxDl2FGd%2Frbd_graph_2.png?alt=media&#x26;token=46385845-6ff8-417f-b526-af1a2b05d597" alt=""><figcaption><p>Graph of the ROS system</p></figcaption></figure>

The system is split up into 10 nodes:

* **`rbd_gestrec`**:\
  Connects to the gestrec.py script via rosbridge to get the recognized gesture.<br>
* **`rbd_controller`**:\
  Coordinated the control flow between rbd\_gestrec, rbd\_navigation and rbd\_pos\_controller.<br>
* **`rbd_navigation`**:\
  Returns a path corresponding to a gesture.<br>
* **`rbd_lidar`**:\
  Stops the rbd\_pos\_controller if a collision is detected. Filters the Pointcloud.<br>
* **`slam_toolbox`**:\
  Calculates the pose based on a map generated with SLAM<br>
* **`zed2`** nodes:\
  Calculates pose based on stereo camera.<br>
* **`ekf_localization`**:\
  Fuses the IMU data with the ZED2 pose via a Kalman filter into a filtered pose.<br>
* **`rbd_localization`**:\
  Combines the filtered pose and the pose from SLAM into one pose.<br>
* **`rbd_pos_controller`**:\
  Moves the robot to the desired pose.<br>
* **`qre_ros`**:\
  Unitree A1 driver.<br>
