Welcome to use the Unitree Z1 robot arm and thank you for your purchase.
This document contains information about the installation and commissioning of the Z1 robot arm, and how to do secondary development based on the API.
Z1 can realize various upper-level control modes such as joint space control, Cartesian space control, etc. It can also realize the low-level control of the underlying joint motors, based on which users can develop their own control algorithms. To achieve the above control relies on the use of the robotic arm SDK. There are currently two ways to control the robotic arm through the robotic arm SDK.
- Code Control You can write C++ programs to call the robotic arm development interface to control the robotic arm.
- Keyboard control The robotic arm can be controlled directly from the keyboard.
The robotic arm SDK also supports physical control and simulation control, where the simulator used for simulation control is Gazebo.
The files about the robotic arm SDK are stored in the z1_sdk.20xx.x.x.zip folder, where 20xx.x.x is the release date of this SDK.
The package contains three sub-files: z1_controller, z1_sdk and z1_ws.
- z1_controller
This folder contains the control implementation part of the robot arm.
- z1_sdk
This folder contains the interface to the control program.
- z1_ws
This folder belongs to a workspace of ROS, where the folder z1_ws/src/z1_ros contains the files related to the ROS simulation model.
As shown in the figure, the robot arm's controller z1_ctrl
issues commands to the robotic arm in gazebo through the ros system during the simulation control. In the physical control, commands are issued to the physical arm via udp, and the arm-related status, such as joint information and end position, is returned to z1_ctrl
in the same way.The robotic arm sdk unitree_arm_sdk
sends the user's control commands to z1_ctrl
via udp, while z1_ctrl
feeds the status information returned by the robot arm to unitree_arm_sdk
via udp, and the user gets the relevant information by reading the relevant structures.
Therefore, because of the above-mentioned relationship between the three, the actual user start-up process should be
-
Start
robotic arm
: If it is physically controlled, check whether the mechanical part is powered on successfully and whether the device bule light is flashing. If it is emulation control, check if theroslaunch z1_gazebo z1.launch
command is started. -
Start
z1_ctrl
-
Start
unitree_arm_sdk