Manuals
=======

.. image:: media/gifs/h1_hello.gif
   :width: 100%
   :class: mbsrounded

The following text contains hyperlinks. Click on them to be redirected to the websites.

- `Unitree Documentation <https://support.unitree.com/home/en/H1_developer>`__ 
- `Isaac Lab documentation <https://isaac-sim.github.io/IsaacLab/>`__   
- `Issac Lab H1 Deployment <https://docs.omniverse.nvidia.com/isaacsim/latest/isaac_lab_tutorials/tutorial_policy_deployment.html?highlight=h1#unitree-h1-humanoid-example>`__

Mobile Apps
===========

- `H1 iOS <https://testflight.apple.com/join/CXXpoTb5>`__
- `H1 Android <https://global-fitness-static.unitree.com/robot/app/Unitree_Explore.apk>`__

Boot Process
============

Hang & Power On
---------------


1. Place H1 on the ground and secure it with a rope tied in a dead knot at H1's shoulder latch.
2. Hang the rope on the clasp of the protective frame to support H1.
3. Raise H1 along with the protective frame to prepare for startup.

.. image:: media/figures/h1_setup_start.png
   :width: 50%
   :align: center

4. Insert two batteries into the battery compartment with the key-forward orientation.
5. Turn the arm inward until it reaches its limit and then lower it vertically.

.. image:: media/gifs/h1_arm_position.gif
   :width: 50%
   :align: center

6. Ensure that the feet are cocked up to their limit.

.. image:: media/figures/h1_feet_up.png
   :width: 50%
   :align: center

7. Maintain the position as depicted in the image below:

.. image:: media/figures/h1_damp_position.png
   :width: 50%
   :align: center

8. Short press and long press both batteries simultaneously to power them up.
9. Wait until you hear the sound indicating that the ankle has reached its limit, and then wait an additional 30 seconds.
10. Press ``L2+B`` to unlock damping, then press ``L2+UP`` to enter ready mode. At this point, the feet will spread out, and the arms will be at the sides of the waist.

.. image:: media/gifs/h1_startup_finish.gif
   :width: 50%
   :align: center


11. Lower the H1 with the protective frame until H1's feet touch the ground and the fuselage remains stable.
12. Press ``R2+X`` again to activate Sport Mode, and H1 will start marching in place. 
13. Press ``START`` to switch to standing mode, then lower the hook and remove the rope.

`H1 Quick Start Video <https://oss-global-cdn.unitree.com/static/H1%E6%95%99%E7%A8%8BEN.mp4>`__

Hang & Power Off
----------------

1. Reattach the rope to the protection hook once H1 remains standing.
2. Raise the hook until there is tension on the rope supporting H1.
3. Press ``L2+B`` to enter damping mode.
4. Simultaneously short press and long press both batteries to power off the double battery simultaneously, completing the shutdown process.

.. attention::

   The H1-2 currently does **not support sitting down**. Do not attempt these actions.



Sit & Power On
--------------

.. note::

   The H1 has a comparatively wide hip structure.  
   
   Ensure the seating surface is wide and stable before performing the sit-down action.

Step 1: Power On  
""""""""""""""""
Place the H1 securely on a chair and install the battery. Adjust the arm and ankle joints to a natural position, then turn the power on.

When the ankle joints reach their mechanical limit and produce an audible click, the initialization sequence is complete.

Step 2: Assisted Stand-Up  
"""""""""""""""""""""""""
Press **L2 + B** on the remote control to switch the robot into **damping mode**, then press **L2 + UP** to command the stand-up motion.

.. Important:: 

   The H1 requires **active assistance while standing up**.  
   
   Use the **rear holding bracket** to support the robot from behind and prevent backward tipping throughout the motion.

Once fully upright and stable, press **R2 + X** to enter **walking mode**.  
After confirming balance, you may gradually release support.

Sit & Power Off
---------------

1. Position the robot in front of the chair.  

2. Press **L2 + LEFT** to initiate the sit-down movement.

3. The robot will step backward and lower into a seated position.  
   Continue holding and supporting the robot using the **rear bracket** to ensure a controlled descent and prevent loss of balance.

After seated, the robot can be powered off or commanded to stand again if needed.

.. note::

   **Emergency Stop:** If the H1 enters an abnormal or unsafe state, press **L2 + B**. The robot will switch to damping mode and lower itself to the ground slowly.



Develop Mode
============

To enter **Develop Mode**, ensure that **H1** is in the **suspension** and **damping state**. Then, press the **L2 + R2** key combination on the remote control simultaneously, and H1 enters the Develop mode.. Once activated:

- Press **L2 + A** → H1 enters **position mode** and assumes a **specific diagnostic posture**.  

.. image:: media/figures/h1_diagnostic_pose.png
   :width: 50%
   :align: center

- Press **L2 + B** → H1 returns to the **damping state**.  

.. image:: media/figures/h1_damp_pose.png
   :width: 50%
   :align: center

This process helps confirm whether **H1** has successfully entered **Develop Mode** and can also be used for **hardware troubleshooting**. Once in **Develop Mode**, you can begin using the **SDK** for development and debugging.

.. note::

   In the current system version, the built-in **motion control program** starts automatically when **H1** is powered on. Even if the remote control is not operated, the system continuously sends periodic instructions with a speed of **0**.  

   If you attempt **SDK-based development** without first entering **Develop Mode**, instruction conflicts may occur, potentially causing **H1 to jitter**.  

   To prevent this, always ensure that **H1** is in **Develop Mode** before using the **SDK** to stop the motion control program from sending commands. You can verify this by pressing **L2 + A**.  

   - If the robot's response does not match the expected behavior shown in the instructional video, press **L2 + R2** multiple times to ensure entry into **Develop Mode**.

Basic Operation
===============

Once The H1 is Powered On and in Sports Mode:

1. Press ``START`` to switch to continuous walking mode
2. Push the left joystick forward to move H1 forward.
3. Press ``START`` again to stop H1 and make it stand in place.
4. Press ``START`` once more to return H1 to continuous walking mode.
5. Push the left joystick back to make H1 walk backward.
6. Push the right stick to the right to rotate H1 in that direction.
7. Push the right stick to the left to rotate H1 in the opposite direction.
8. Press ``B`` to increase the height of the leg lift, and press ``A`` to lower the leg lift.
9. Reattach the rope to the protection hook once H1 remains standing.
10. Raise the hook until there is tension on the rope supporting H1.
11. Press ``L2+B`` to enter damping mode; at this point, you can safely shut down or enter debug mode. 

.. 12. To enter debug mode, press ``L2+R2`` while under suspension.

.. .. image:: media/gifs/h1_debug_mode.gif
..    :width: 50%

.. 13. Press ``L2+B`` again to re-enter damping mode and return H1 to its original position.

Operation Guide
===============

Concept description
```````````````````

The following table describes the different operational modes of the robot:

.. list-table::
   :widths: 20 80
   :header-rows: 1

   * - **Concept**
     - **Description**
   * - **Zero Torque Mode**
     - All motors of the robot stop active motion, and there is no damping feeling when swinging.
   * - **Damping Mode**
     - All motors of the robot stop active motion, but there is a clear damping feeling when swinging. This mode allows the robot to enter **Ready Mode**.
   * - **Seating Mode**
     - The robot will slowly transition into a **seated position** within **5 seconds**.
   * - **Ready Mode**
     - The robot will slowly swing into the **preparatory posture** before entering **Motion Mode**, within **5 seconds**.
   * - **Motion Mode**
     - A mode in which the robot can be controlled to move via a **remote control**.
   * - **Standing Mode**
     - - When the **joystick input is zero**, the robot stops stepping and remains in the **standing state**.  
       - When the **joystick input is non-zero** or the robot is disturbed and cannot maintain balance, it will start taking steps to regain stability.
   * - **Dance Mode**
     - A mode for **whole-body dynamic coordinated dancing**.
   * - **Debug Mode**
     - This mode is used for **low-level development**.  

       - When using the **SDK for development and debugging**, ensure that the robot is in **Debug Mode** to stop the **motion control program** from sending commands.  
       - This prevents **potential command conflicts**.  
       - You can press **L2 + A** to confirm whether the robot has successfully entered **Debug Mode**.


Mode Switch
````````````
.. image:: media/figures/h1_mode_switch.jpg
   :width: 100%

.. attention::

   When entering **Seating Mode**, it is necessary to **press against the robot's back**.  
   When exiting this mode, **push the robot back** to transition out of it.  

   **Note:** The **H1-2** model has only **one diagnostic mode** and **does not support Seating Mode**.

Key Description
```````````````

The following table provides an overview of button commands for different modes:

+-------------------+---------------------+-----------------------------------------------------+
| Mode              | Button              | Description                                         |
+===================+=====================+=====================================================+
|                   | L2 + B              | Enter Damping Mode                                  |
| General           +---------------------+-----------------------------------------------------+
|                   | L2 + R2             | Enter Debug Mode                                    |
+-------------------+---------------------+-----------------------------------------------------+
|                   | L2 + UP             | Enter Ready Mode                                    |
| Damping Mode      +---------------------+-----------------------------------------------------+
|                   | L2 + Y              | Enter Zero Torque Mode                              |
+-------------------+---------------------+-----------------------------------------------------+
|                   | R2 + X              | Enter Motion Mode                                   |
| Motion Mode       +---------------------+-----------------------------------------------------+
|                   | Left Joystick       | Translational velocity command ($v_x, v_y$)         |
|                   |                     |                                                     |
|                   | Right Joystick      | Yaw angular velocity command ($\omega_{yaw}$)       |
|                   |                     |                                                     |
|                   | X                   | Decrease standing height                            |
|                   |                     |                                                     |
|                   | Y                   | Increase standing height                            |
|                   |                     |                                                     |
|                   | A                   | Decrease leg lifting height                         |
|                   |                     |                                                     |
|                   | B                   | Increase leg lifting height                         |
|                   |                     |                                                     |
|                   | START               | Adjust posture, take a few steps in place, then stop|
|                   |                     |                                                     |
|                   | L1 + Y              | Enter Dance Mode and return to Motion Mode          |
|                   |                     |                                                     |
|                   | SELECT + A          | Handshake                                           |
|                   |                     |                                                     |
|                   | SELECT + Y          | Wave Hand                                           |
|                   |                     |                                                     |
|                   | L2 + LEFT           | Sit Down                                            |
+-------------------+---------------------+-----------------------------------------------------+
|                   | L2 + A              | Perform position control for diagnostics            |
| Debug Mode        +---------------------+-----------------------------------------------------+
|                   | L2 + B              | Stop diagnostics, enter Damping State               |
+-------------------+---------------------+-----------------------------------------------------+


.. attention::

   The H1-2 currently does **not support sitting down or dancing**. Do not attempt these actions.
