Skip to content

Intro

Welcome to the AIRBOT SDK documentation! This documentation also provides a one-pager here.

To quickly run AIRBOT series with SDK:

  1. Install airbot-configure package on the host

    Not applicable to AIBROT Pro

    sudo apt-get install ./airbot-configure_5.1.1-1_all.deb
    

    airbot-configure would install basic udev rules for setting up SocketCAN interfaces and also provides basic tools to bind devices to specific interface names. With airbot-configure installed, AIRBOT Play, AIRBOT Play Lite and AIRBOT Replay would appear as canX in the output of ip link.

  2. Connect to the device via a USB cable and power on the device with the power cable.

    Not applicable to AIBROT Pro

    If the LED is flashing in yellow, AIRBOT has detected loss of zero point reference. Refer to this tutorial for detailed operations.

    Also refer to this manual for available LED light effects and their meanings.

    With airbot-configure installed, AIRBOT Play, AIRBOT Play Lite and AIRBOT Replay would appear as canX in the output of ip link.

  3. Launch the driver server.

    Not applicable to AIBROT Pro

    The driver server (as a docker container) is typically launched via

    # Specify a different version with IMAGE_NAME variable
    # export IMAGE_NAME=registry.cn-shanghai.aliyuncs.com/discover-robotics/airbot_runtime:<version>
    airbot_server -i <INTERFACE> -p <PORT>
    
    The driver server provides all the basic feature for AIRBOT series, include motor servoing, motion planning, collision checks, health checks, sdk servicing.

    • <INTERFACE> is the interface name that could be examined by ip link. By default, connected devices would appear as canX, where X is the index number.
    • <PORT> is the listening port of the gRPC server. In case multiple devices are connected, each device should use a different port.
  4. Install airbot_py pip package

    pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple ./airbot_py-5.1.1-py3-none-any.whl
    
  5. Connect to the server via SDK and perform external control

    By using this SDK, a client is created to connect to the driver server, so that states are obtained and commands are sent.

    For example, running keyboard control example:

    arm_kbd_ctrl
    

    For detailed explanation of key mappings, please refer to the Keyboard Control page.

    Please note that, SDK only serves as a "shell" to connect to the server, and is not responsible for managing the lifetime of the driver. This means multiple SDK client instances can connect to the driver simultaneously, but none of them "owns" the driver. The disconnection of SDK clients does NOT necessarily means the driver should and would shut down.