
.. warning::
   ROS 2 Foxy Fitzroy reached end-of-life in June 2023. We recommend upgrading to ROS 2 Humble for continued support.

Sensors
-------

The B2W platform includes multiple sensor systems.

Livox Mid360 LiDAR
^^^^^^^^^^^^^^^^^^

The robot is equipped with front and rear Livox Mid360 LiDAR units.

**Network Configuration:**

- Front LiDAR: 192.168.123.120
- Rear LiDAR: 192.168.123.121

**Topics:**

.. list-table::
   :header-rows: 1
   :widths: 40 30

   * - Topic
     - Type
   * - /livox/front/lidar
     - sensor_msgs/PointCloud2
   * - /livox/rear/lidar
     - sensor_msgs/PointCloud2
   * - /livox/front/imu
     - sensor_msgs/Imu
   * - /livox/rear/imu
     - sensor_msgs/Imu

Intel RealSense D435i
^^^^^^^^^^^^^^^^^^^^^

Depth camera for close-range perception.

**Topics:**

.. list-table::
   :header-rows: 1
   :widths: 40 30

   * - Topic
     - Type
   * - /camera/color/image_raw
     - sensor_msgs/Image
   * - /camera/depth/image_rect_raw
     - sensor_msgs/Image
   * - /camera/depth/color/points
     - sensor_msgs/PointCloud2
   * - /camera/imu
     - sensor_msgs/Imu

Launch camera node:

.. code-block:: bash

   ros2 launch realsense2_camera rs_launch.py

Dynamixel Servos
^^^^^^^^^^^^^^^^

Pan-tilt camera mount using Dynamixel servos.

**Configuration:**

- Servo 0 (Pan): Range 1150-3200, Default 2170
- Servo 1 (Tilt): Range 230-900, Default 565

**Control Topics:**

.. code-block:: bash

   # Set pan position
   ros2 topic pub --once /dynamixel/servo_0/command \
     std_msgs/msg/Float64 "data: 2170"

   # Set tilt position
   ros2 topic pub --once /dynamixel/servo_1/command \
     std_msgs/msg/Float64 "data: 565"

Robot State
^^^^^^^^^^^

**Joint States:**

.. code-block:: bash

   ros2 topic echo /b2_unit_001/joint_states

**IMU Data:**

.. code-block:: bash

   ros2 topic echo /b2_unit_001/imu
