Getting Started with the UFACTORY xArm 6

#equipment#xarm6#cobot#robotics#collaborative-robot#tutorial

The xArm 6 is the arm students reach for when a project needs code rather than a teach pendant: perception-driven manipulation, a ROS 2 pipeline, or a human–robot interaction study. Everyone who starts on it asks what to learn first, and the answer is the same for everyone, so it lives here.

The order below matters more than the volume. Work through it top to bottom. Steps 1 and 2 are prerequisites for anything hands-on; steps 3 and 4 depend on what your project actually uses. If you only need to teach waypoints and run the gripper, you can stop after step 2.

How to use this

  • Read the safety chapter before you power the arm on. The xArm is light, but it still moves at up to 1 m/s, and a script that sends the wrong target does not hesitate the way a person at a pendant does. Know where the E-stop is and what a collision-detection stop looks like before you run anything.
  • You can practice on the physical robot while you work through the material. If you need access for that, ask me and I will arrange it — hands-on time on the arm is arranged through me, not self-served.
  • Drive it by hand in UFACTORY Studio before you drive it from code. Every SDK call has a Studio equivalent, and seeing the motion once in Studio makes the API much easier to read.
  • Everything below is free, and the SDKs are open source.

1. Hardware and safety

Start here regardless of what your project is about. This is the required first step.

Resource What it is Why bother
xArm 6 setup in under 10 minutes Two-minute video from Generation Robots, a UFACTORY reseller Mounting, first moves, and the Blockly, Python, and ROS 2 options at a glance
xArm User Manual (PDF) UFACTORY’s manual for the arm and control box (1305 models) Safety rules, installation, electrical interfaces, and technical specs
xArm User Manual (online) The same manual as web pages Easier to search and link to a single chapter
X-Arm Robot Downloads UFACTORY USA’s download page Every manual, the arm’s 3D models, and the accessory files in one place

Watch the video first; it shows in two minutes what the manual takes chapters to describe. Then read the manual. Focus on safety, the controller electrical interface, and the technical specifications. The controller I/O chapter is the one people skip and then come back to, because the E-stop, the safeguard inputs, and any external sensor you add all run through it.

2. UFACTORY Studio

Read this after step 1, with the arm in front of you. Studio is UFACTORY’s own interface for the arm: you jog it, teach positions, and build programs in Blockly without writing code.

Resource What it is Why bother
UFACTORY Studio UFACTORY USA’s Studio page What Studio can do, and where to get it
UFACTORY Studio User Manual (online) The full Studio manual Connecting, jogging, teaching points, Blockly programs, and settings
UFACTORY Studio User Manual (PDF) Version 2.6.0 as a single file For reading offline

By the end you should be able to enable the arm, jog it in joint and Cartesian space, set the TCP and payload for the gripper, open and close the gripper, and run a short Blockly program. Also find the collision sensitivity setting and understand why it should not be turned down to stop a program from tripping.

The gripper’s own controls in Studio are covered in its manual: X-Arm Gripper under Accessories below.

3. Programming from code

Relevant if your project controls the arm from a script, a research pipeline, or ROS 2, which on this arm is most projects.

Resource What it is Why bother
xArm Python SDK UFACTORY’s official Python library, with examples The fastest way to move the arm and the gripper from code
UFACTORY API documentation Reference for the Python SDK, Modbus TCP, G-code, and other interfaces Look up exact call names, units, and error codes
xArm Developer Manual (PDF) Communication protocol and controller reference What happens under the SDK, if you need a language it does not cover
xarm_ros2 Official ROS 2 packages, one branch per ROS 2 distro MoveIt 2 planning, Gazebo simulation, and driving the real arm from ROS 2
xarm_ros Official ROS 1 driver Only for older projects that still run ROS 1

Start with the Python SDK examples and run each one on the arm with the speed turned down. Move to xarm_ros2 only when your project needs motion planning, simulation, or other ROS 2 nodes. Pick the branch that matches the ROS 2 distro on your machine, and run every new plan in simulation before you send it to the real arm. Use xarm_ros only if you are extending an existing ROS 1 project; new work goes on ROS 2.

4. Depth camera and vision

Relevant if your project involves the wrist-mounted depth camera: object detection, point clouds, or any vision-guided grasp.

Resource What it is Why bother
Orbbec SDK v2 Orbbec’s SDK, with C/C++ and Python samples Opening the camera, aligning depth to color, and reading frames
OrbbecSDK_ROS2 Orbbec’s ROS 2 wrapper Depth, color, and point cloud as ROS 2 topics next to xarm_ros2
Gemini 330 Series Documentation Orbbec’s setup and tuning guide Depth presets, exposure, and firmware for the Gemini 335

Get a clean depth image in Orbbec’s viewer before you write any code. Then plan for hand–eye calibration: until you know where the camera sits relative to the gripper, a detected object’s position means nothing to the arm. Note that UFACTORY’s own vision examples are written for Intel RealSense cameras, so expect to adapt the camera parts of them for the Gemini 335.

Specs and links for the camera and its mount: Gemini 335 Depth Camera and X-Arm Camera Stand under Accessories below. The stand’s 3D file is the starting point for a hand–eye guess before you calibrate.

Accessories on our xArm 6

These are mounted on or wired to our arm. Each entry lists the maker’s manuals, software, and documentation where they exist.

X-Arm Gripper

UFACTORY

UFACTORY's electric two-finger gripper, the first-generation (G1) model that came before the Gripper G2. It plugs into the arm's tool connector with a single cable that carries both 24 V power and RS-485 communication, so it needs no extra wiring or controller. Opening position and speed are set from UFACTORY Studio, the Python SDK, or ROS 2, and the gripper reports its position back.

  • Working range: 0–84 mm
  • Maximum clamping force: 30 N
  • Weight: 802 g
  • Control: Modbus RTU over RS-485 through the tool connector
ResourceWhat it is
Product pageUFACTORY USA's overview of the gripper
User manual (PDF)Installation, control from UFACTORY Studio and code, Modbus registers, and specs
DownloadsG1 and G2 manuals and 3D files of the gripper, with or without fingers
xArm hardware manualThe arm's tool-end electrical interface the gripper plugs into
Python SDKGripper enable, position, and speed calls alongside the arm API

X-Arm Camera Stand

UFACTORY

A mounting plate that holds a depth camera at the arm's tool flange, beside the gripper, so the camera moves with the tool. UFACTORY designed it for the Intel RealSense D435; on our arm it carries the Orbbec Gemini 335 instead.

  • Mounting plate plus a 2 m USB Type-C cable
  • Designed for the Intel RealSense D435; holds our Gemini 335
ResourceWhat it is
Product pageUFACTORY USA's listing: what is included and how it mounts
Downloads3D file of the camera stand for cell layout and hand–eye setup

Gemini 335 Depth Camera

Orbbec

A stereo depth camera held at the wrist by the X-Arm Camera Stand, so it moves with the gripper and sees the work surface from the tool's point of view. It streams aligned depth and color images over a single USB-C cable and is used for object detection, depth sensing, and vision-guided grasping. It is programmed from a PC through the Orbbec SDK or its ROS 2 wrapper, not from UFACTORY Studio.

  • Stereo depth, optimal range 0.26–3 m
  • Depth up to 1280×800 at 30 fps; color up to 1920×1080 at 30 fps
  • Depth field of view: 90° × 65°
  • Built-in IMU; USB 3.0 Type-C for power and data
ResourceWhat it is
Product pageOrbbec's overview and full specs for the Gemini 335
DatasheetSpecs for the whole Gemini 330 series, the 335 included
DocumentationSetup, firmware, depth settings, and calibration for the 330 series
Orbbec SDK v2The C/C++ and Python SDK to use for the Gemini 335
ROS 2 wrapperPublishes the camera's depth, color, and point cloud as ROS 2 topics

What comes next

Once you have worked through the steps relevant to your project, come see me and we will scope a first task on the actual hardware. Bring a specific thing you want the arm to do; “learn the robot” is not a task and you have already done it by this point.