TRON 1 Arm Expansion Kit SDK

TRON 1 Arm Expansion Kit2026/1/14

1. Overview

The Mobile Manipulation Extension Kit SDK documentation is primarily intended for users who have purchased the TRON1 robot and the Mobile Manipulation Extension Kit. It serves as a reference for quickly deploying whole-body motion control algorithms for the bipedal robot with a robotic arm.

2. Simulation and Real Device Debugging

2.1 Set up the Development Environment

  • Install ROS Noetic: We recommend setting up a ROS Noetic-based algorithm Development Environment on the Ubuntu 20.04 operating system. ROS provides a series of tools and libraries, such as core libraries, communication libraries, and simulation tools (e.g., Gazebo), which greatly facilitate the development, testing, and deployment of robot algorithms. These resources provide users with a rich and complete algorithm Development Environment.
    • For the installation of ROS Noetic, please refer to the document:Ubuntu install of ROS Noetic, and choose "ros-noetic-desktop-full" for installation.
    • After the installation of ROS Noetic is completed, enter the following Shell commands in the Bash end point to install the libraries required by the Development Environment:
sudo apt-get update
sudo apt install ros-noetic-urdf \
                 ros-noetic-kdl-parser \
                 ros-noetic-urdf-parser-plugin \
                 ros-noetic-hardware-interface \
                 ros-noetic-controller-manager \
                 ros-noetic-controller-interface \
                 ros-noetic-robot-state-* \
                 ros-noetic-joint-state-* \
                 ros-noetic-controller-manager-msgs \
                 ros-noetic-control-msgs \
                 ros-noetic-ros-control \
                 ros-noetic-gazebo-* \
                 ros-noetic-rqt-gui \
                 ros-noetic-rqt-controller-manager \
                 ros-noetic-plotjuggler* \
                 ros-noetic-joy-teleop ros-noetic-joy \
                 cmake build-essential libpcl-dev libeigen3-dev libopencv-dev libmatio-dev \
                 python3-pip libboost-all-dev libtbb-dev liburdfdom-dev liborocos-kdl-dev libspdlog-dev -y

2.2 Simulation Deployment

  • Open a Bash end point
  • Download simulation deployment code and virtual remote control node
git clone https://github.com/limxdynamics/tron1-rl-deploy-arm.git
git clone https://github.com/limxdynamics/robot-joystick.git
  • Compile the project
# If you have Conda installed, please temporarily deactivate the Conda environment
# as Conda may interfere with the ROS environment setup
conda deactivate
cd ~/tron1-rl-deploy-arm
catkin_make install
  • Run the emulator
source install/setup.bash
export ROBOT_TYPE=SF_TRON1A
#Depending on the robot type, if using a wheel-legged model, change to “export ROBOT_TYPE=WF_TRON1A”
export IS_SIM=1   # Enable simulation mode
roslaunch robot_hw pointfoot_hw_sim.launch
  • Open a new command prompt window, run the virtual remote control, move the mouse to its upper toolbar, right-click, and select "Always on Top"
./robot-joystick/robot-joystick

图片

  • Control the robot in the simulation environment. The normal effect is as follows. If the robot fails to stand up or falls, click on the gazebo window and press Ctrl+Shift+R to reset its posture (using Ctrl+R will cause the ros time to reset, making the robotic arm uncontrollable).
  • Remote control buttons:

    • Keyboard ↑ ↓ Control forward and backward movement, keyboard ← → Control left and right movement (only for the feet)
    • Numeric Keypad 4 6 controls left/right turn, Numeric Keypad 8 5 controls the ascent/descent of the fuselage height.
    • Keyboard W A S D controls the four-directional movement of the robotic arm, and keyboard I J K L controls the four-directional rotation of the robotic arm.
  • **Precautions **: When switching between resetting the robot and controlling the remote controller, you need to click on the window you want to control with the mouse (if you want to reset the robot, click anywhere on the gazebo window; if you want to control the remote controller, click anywhere on the remote controller panel), otherwise the command will not respond.

2.3 Real Device Deployment

🎈Prerequisites:

  • The robot and the robotic arm, as well as the robotic arm and the gripper, have all been connected to the power and communication cables.

**Precautions **:

  • Communication between the robot and the robotic arm: The communication port of the robotic arm needs to be plugged into the USB2 interface.
  • Currently, the whole-body control algorithm only supports robotic arm firmware version 2.9.0, and other robotic arm firmware versions are not supported.

2.3.1 Switch the robot to developer mode

Power on the robot and the robotic arm separately. After the robot enters the idle state (the robot's indicator light shows a steady blue light), simultaneously press the buttons on the remote control R1 + Left. At this time, the main body of the robot will automatically restart and switch the robot to developer mode (the robot's indicator light changes from a steady blue light to a steady green light). In this mode, users can deploy the whole-body control algorithm of the Arm Expansion Kit. The mode settings will not become invalid after power-off, and the robot will still be in developer mode after being restarted. The list of buttons on the remote control for switching working modes is as follows:

Button
Mode
Instructions
R1+Left
Developer Mode
Deploying the whole-body control algorithm enables simultaneous operation of the robot and the robotic arm.
R1+Right
Remote Control Mode
Run pre-installed control algorithms to achieve smooth walking on complex terrains, such as going up and down stairs, crossing obstacles, etc.

2.3.2 Environment Configuration

2.3.2.1 Connect the robot

  • Please use a personal computer to connect to the robot's Wi-Fi, whose name format is usually "TRON1_01", and the Wi-Fi password is:12345678.

图片

  • Enter http://10.192.1.2:8080 in the browser to access the "Robot Information Page" and view robot information. As shown in the figure below, the SN (Serial Number) displayed on the page is PF_TRON1A_075, where PF_TRON1A is the robot model type.

🥛
The robot's main control firmware version must be 3.1.7 or higher to support loading the robotic arm for full-body control. If it is an old main control firmware version, please upgrade to the latest firmware version before deploying on the real machine.

图片

2.3.2.2 Environment Configuration

Copy the compiled install folder from the simulation deployment repository to the robot (password: 123456) via scp

scp -r install/ guest@10.192.1.2:/home/guest/
ssh guest@10.192.1.2 # SSH into the robot's computer
# password: 123456
source ~/install/setup.bash
airbot_read_params
# If all motor parameters can be read properly, then the environment has been set up successfully.

2.3.3 Mechanical Arm Zero Calibration

  • Absolute zero calibration (not required to run under normal circumstances)
ssh guest@10.192.1.2 # SSH into the robot's computer
# password:123456
source ~/install/setup.bash
airbot_absolute_set_zero

Rotate the J1 joint of the robotic arm clockwise to the limit, press Enter, hold the last three joints of the robotic arm at the zero position throughout the process, the robotic arm will automatically move the first three joints to the zero position, wait for the end point to display that zeroing is completed and exit the program to finish.

🎨
Absolute zero calibration is only performed under the following conditions; under normal circumstances, regular zero calibration suffices:

  • The robotic arm refreshes the firmware version.
  • When the robotic arm loses its zero point, the light signal of the robotic arm will flash yellow.
  • Regular zero calibration (must be run every time the power is turned on)
ssh guest@10.192.1.2 # SSH into the robot's computer
# password:123456
source ~/install/setup.bash
airbot_set_zero
  • Move all joints of the robotic arm to the zero position, press Enter, wait for the end point to display that zeroing is completed, then zeroing is successful.

图片

2.3.4 Run Controller

  • Import environment variables and start the program
ssh guest@10.192.1.2 #  SSH into the robot's computer
# password: 123456
source ~/install/setup.bash
export ROBOT_TYPE=WF_TRON1A 
# The configuration must correspond to robot's model. Set it to “export ROBOT_TYPE=SF_TRON1A” for the footed version.
export IS_SIM=0  # Activate physical robot mode.
roslaunch robot_hw pointfoot_hw.launch
  • Remote control buttons:
    • L1+△ Please return to the ready state first and then stand up. When standing up, please use your hands to support the body until you are fully upright.
    • L1+□ Close the control program, ** and it will directly power off. You need to hold the side handle of the fuselage, and after closing the program, manually move it to a squatting position. **

3. Remote Control Operation Instructions

3.1 Remote Control Operation

3.1.1 Definition of Remote Control Operation Buttons

图片

  • Left joystick, the robot moves forward, backward, left, and right.

  • The right joystick, when moved left or right, controls the rotation direction of the robot, and when moved up or down, controls the height of the robot's chassis.

  • Directional keys control the end position.

    • Up: The end moves horizontally forward (positive x-axis direction)
    • Down: The end moves horizontally backward (negative x-axis direction)
    • Left: The end moves horizontally to the right (positive y-axis direction)
    • Right: The end moves horizontally to the left (negative y-axis direction)
    • L2+ Up: The end moves vertically upward (positive z-axis)
    • L2+Down: The end moves vertically downward (negative z-axis direction)
  • Δ O X □, controls the rotation of the end.

    • X: Increase the rotation angle of the end pitch axis.
    • Δ: Decrease the rotation angle of the end pitch axis.
    • O: Increase the rotation angle of the yaw axis.
    • □: Reduce the rotation angle of the yaw axis.
    • L2+O: Increase the rotation angle of the roll axis.
    • L2+□: Decrease the rotation angle of the roll axis.
  • R1 controls the opening and closing of the gripper. Press to open the gripper, release to close it.