.. _power_on:

Powering-on
-----------

To power on the B2 robot, press the power button on the battery once, and then press and hold for **3 seconds** to start the robot.

The battery compartment is located on the back of the robot.

Similarly, to turn off the robot, press the power button on the battery once, and then press and hold for **3 seconds** to turn off the robot.

.. note::

   Please be cautious with battery consumption. Continuously monitor the battery levels. If the battery is depleted, the robot will fall.

.. _network_interface:

Network Interface
-----------------

Instructions for interfacing with the robot using **Ubuntu 22.04** and **ROS2 Humble**.

This procedure should be followed **after** successfully setting up and pairing with the B2 robot. Additionally, all of the B2's functionality should be verified through the accompanying app before proceeding.

The **Ethernet port** can be used to establish communication via LAN.

Network Setup
=============

To configure the robot's network for the first time, you need to connect using a **LAN** cable.

To create a static connection on your **PC** (not on the robot), follow these steps in **Ubuntu**:

1. Go to **Settings** → **Network**, then click on the **+** button to create a new connection.
2. In the **IPv4** settings, change the connection type to **Manual**.
3. Set the **Address** to **192.168.123.51** and the **Netmask** to **24**.
4. Click **Save**, then restart your network.

After successfully connecting, check the host's local IP by typing the following command in the host PC's terminal:

.. code-block:: bash

   ifconfig

Now, ping the robot by entering:

.. code-block:: bash

   ping 192.168.123.164

To access the robot via SSH, use the following command:

.. code-block:: bash

   ssh -X unitree@192.168.123.164

The default password is:

.. code-block:: bash

   Unitree0408

IP Addresses
============

.. list-table::
   :header-rows: 1
   :widths: 20 25 15 15

   * - IP Address
     - Device
     - Username
     - Password
   * - 192.168.123.161
     - B2 MCU
     - x
     - x
   * - 192.168.123.162
     - B2 Auxiliary PC 1
     - unitree
     - 123
   * - 192.168.123.163
     - B2 Auxiliary PC 2
     - unitree
     - 123
   * - 192.168.123.164
     - B2 Nvidia Orin NX
     - unitree
     - Unitree0408
   * - 192.168.123.164:8080
     - B2 Webserver MBS
     - admin
     - mybotshop
   * - 192.168.123.170
     - B2 Nvidia Secondary IP
     - unitree
     - Unitree0408
   * - 192.168.123.120
     - Livox Mid360 Front
     - x
     - x
   * - 192.168.123.121
     - Livox Mid360 Rear
     - x
     - x

.. note::
   Sometimes other networks can cause disruptions when connecting to the B2. It is best to have only your connection to the robot active and disable all others.

ROS_DOMAIN_ID
=============

The B2 system uses ROS_DOMAIN_ID 10 for communication. Ensure your host PC is configured with the same domain:

.. code-block:: bash

   export ROS_DOMAIN_ID=10

Add this to your ``.bashrc`` for persistent configuration.

Secondary IP Configuration
==========================

For camera streaming, the robot uses a secondary IP address (192.168.123.170). This is configured via netplan:

.. code-block:: yaml

   network:
     version: 2
     renderer: NetworkManager
     ethernets:
       eth0:
         dhcp4: false
         addresses: [192.168.123.164/24,192.168.123.170/24]
         nameservers:
           addresses: [114.114.114.114,8.8.8.8]
