Robots · Robot arms

KUKA LBR iiwa teleoperation: FRI, impedance modes and torque-sensing data

The iiwa has a torque sensor in every joint and a real-time interface that runs on the robot's network, not yours. Teleoperating it well means choosing the right FRI mode and smoothing what the operator sends.

KUKA LBR iiwa, 7-axis torque-sensing industrial and research arm
AI-generated illustration of the KUKA LBR iiwa. For product photos, see KUKA.
Axes
7, with joint torque sensors in all seven
Payload
7 kg (iiwa 7 R800) or 14 kg (iiwa 14 R820)
Reach
800 mm (iiwa 7) or 820 mm (iiwa 14)
Torque accuracy
±2% of maximum torque, per axis
Protection
IP54; cleanroom (CR) versions available
Mounting
Floor, wall or ceiling (CR versions: floor)
Controller
KUKA Sunrise Cabinet
Real-time interface
Fast Robot Interface (FRI) over UDP

Updated

The KUKA LBR iiwa is a 7-axis arm with joint torque sensors in all seven axes, sold in two sizes: the iiwa 7 R800 (7 kg, 800 mm) and the iiwa 14 R820 (14 kg, 820 mm). KUKA quotes an axis-specific torque accuracy of ±2% of maximum torque on its product page. It runs in factories doing sensitive assembly and in research labs doing contact-rich manipulation, and its medical sibling, the LBR Med, shares the same research software stack. For both audiences, remote operation comes down to the same two questions: which FRI mode to use, and how to keep the operator's commands smooth enough for a torque-controlled arm.

How the iiwa is driven from outside

The iiwa's controller, the KUKA Sunrise Cabinet, runs Sunrise.OS applications. External real-time control goes through the Fast Robot Interface, which the LBR-Stack documentation describes as KUKA's library for commanding the LBR over a UDP connection. Two open-source ROS 2 stacks build on it:

lbr_fri_ros2_stack

The LBR-Stack supports the iiwa 7, iiwa 14, Med 7 and Med 14 on ROS 2 Jazzy, with FRI client versions 1.11 through 1.16 and 2.5 through 2.7 in its test matrix. It provides ros2_control integration, MoveIt configuration, demos and a dual-arm example. On the controller side you install an LBRServer application through Sunrise Workbench, which needs Windows.

kuka_drivers

The kuka_drivers repository covers KUKA's legacy interfaces, iiQKA EAC and Sunrise FRI, alongside an RSI-based driver for KSS and iiQKA.OS2 controllers, on Jazzy with a Humble branch. Its README recommends a real-time kernel for all drivers, since they rely on cyclic real-time communication.

Setup checklist before anyone teleoperates

Network

The LBR-Stack hardware guide connects the PC to the controller's X66 port, whose default address is 172.31.1.147, with the PC on the same subnet (for example 172.31.1.148). The X66 and KONI networks are configured during StationSetup in Sunrise Workbench.

Controller applications

The LBRServer application is added to a Sunrise project and synchronized to the controller from a Windows machine. KUKA's example overlay applications (joint, torque and wrench sine overlays) are a good first test that FRI works before any operator input is involved.

The PC next to the robot

kuka_drivers recommends a real-time kernel and advises against Windows for the client, and the LBR-Stack issue above shows what happens when ros2_control cannot get real-time scheduling. Treat the robot-side PC as part of the robot.

The remote side

Only the operator client crosses the VPN. Cameras, the FRI client and the safety-relevant logic stay on the robot's network.

FRI modes and send periods

An FRI session pairs a control mode on the robot with a command mode on the client. The LBR-Stack demo documentation gives three working combinations:

Position commands

POSITION_CONTROL on the robot, position command mode on the client, a 10 ms send period and a 100 Hz update rate. This is the natural starting point for teleoperation.

Torque commands

JOINT_IMPEDANCE_CONTROL, torque command mode, a 2 ms send period and a 500 Hz update rate. For research controllers that compute joint torques themselves.

Wrench commands

CARTESIAN_IMPEDANCE_CONTROL, wrench command mode, 2 ms and 500 Hz. For applying forces at the end effector.

The advanced demos include an admittance controller that lets you guide the arm by pushing its end effector, and a variant with a remote center of motion, where the arm pivots around a fixed point, a constraint familiar from surgical robotics research. Both run in position mode with a 10 ms send period. Every demo page carries the same instruction: on hardware, always run in T1 mode first.

Smoothing: the iiwa teleoperation lesson

A March 2026 LBR-Stack issue is the clearest illustration of what goes wrong. A user teleoperating an iiwa from a VR device through the joint position command controller saw sudden joint jumps, then a driver crash that disabled the robot. The maintainer closed it as not a driver bug: the jumps were likely caused by the commands being sent. The suggested fixes were to raise the joint position command smoothing time constant (joint_position_tau, 0.04 by default in lbr_system_config.yaml), configure real-time priority for ros2_control, and check the Ethernet cable, which other users had found fixed latency problems.

The pattern for remote operation: the operator's device produces targets at 10 to 30 Hz with network jitter. A PC next to the robot, on the robot's own network, runs the 100 Hz or 500 Hz FRI loop, interpolates between targets, limits velocity and applies smoothing. FRI never crosses the internet, and the operator's device never sends raw targets straight into the joint position controller.

Latency for a remote iiwa operator

Under ~50 ms round trip

Fine insertion and contact work with impedance control are realistic, and the operator can feel their way into a fit by watching the measured torques.

~100 to 200 ms

Pick-and-place and most assembly steps remain workable at reduced speed. For contact, lower the stiffness so a late command becomes a soft push rather than a spike in joint torque.

Above ~250 ms

Switch to supervisory control: the operator selects a target or a recovery action, and the local controller executes it.

Our latency guide covers budgets by task in more detail.

Safety in an industrial cell

KUKA positions the iiwa for direct work alongside people: its joint torque sensors let it detect contact and reduce force and speed. In a production cell, a remote operator works inside that behavior and inside the cell's safety configuration, never around it.

The safety configuration is local

The Sunrise SafetyConfigurations.conf is set up on the controller before any application is installed, and running applications from the smartPAD can require safety maintenance technician rights. A remote operator has neither.

T1 first, always

The LBR-Stack demos say to run every new setup on hardware in T1 mode first. We apply the same rule to teleoperation: T1, with someone at the smartPAD, before anyone operates remotely.

Stops win

Emergency stops, protective devices and the arm's own collision detection act on the controller directly. The remote operator can stop the robot; restarting after a safety stop follows the site's procedure, usually with someone on site confirming the cause.

Hand over at defined points

On a production line, the Sunrise application should pause at a defined state and hand control to the external client for the exception, then resume. Typical exceptions are a part that did not seat, a regrasp, or a fixture that jammed.

More on the remote exception-handling model on our warehouse and factory page.

KUKA data and LeRobot

LeRobot has no KUKA driver, and its third-party robots page lists no KUKA plugin; its ROS 2 bridges (leros2 and lerobot_robot_ros2_zenoh) are the shortest route from lbr_fri_ros2_stack to LeRobot datasets. There is plenty of KUKA data already in LeRobot format to compare against:

IPEC-COMMUNITY/kuka_lerobot

The Open X-Embodiment KUKA iiwa data converted to LeRobot: about 210k episodes and 2.46 million frames at 10 fps, from a single 640×512 camera, with end-effector actions (position, roll-pitch-yaw and gripper). See the dataset.

lerobot/stanford_kuka_multimodal_dataset

The LeRobot port of the data behind "Making Sense of Vision and Touch" (Lee et al.): 3,000 episodes at 20 fps with a 128×128 camera and 7-value joint state and action. The paper is about touch, but the LeRobot schema exposes no force or torque fields.

That last point is the opportunity. The iiwa measures torque in every joint. If contact matters to your task, record the joint torque readings alongside joint positions and cameras, and log the FRI control mode, stiffness and send period for every episode. Datasets that throw away the iiwa's torque signals throw away the reason for using an iiwa.

What a good iiwa operator does

Approaches contact slowly in impedance mode and watches the torque readings, instead of driving in position mode until the arm detects a collision.
Keeps the elbow posture consistent across episodes, as on any 7-axis arm.
Recognizes jumpy motion as a command or network problem and stops, rather than pushing through it.
Respects the payload of the variant in front of them: 7 kg on the iiwa 7, 14 kg on the iiwa 14, counting the tool.
Reports any change in the controller application or FRI settings. A dataset recorded half in position mode and half in impedance mode does not behave like one dataset.

iiwa, Med or iisy?

The LBR Med 7 and Med 14 are the medical versions; the LBR-Stack supports them alongside the iiwa, so research code moves between them. KUKA describes the LBR iisy as the iiwa's smaller sibling, running KUKA's newer iiQKA.OS rather than Sunrise.OS, which means a different driver path (kuka_drivers covers iiQKA). Check which controller and operating system your unit runs before you plan the software, because the teleoperation stack follows from it. If you are choosing between torque-sensing 7-axis arms for a research lab, compare the iiwa with the Franka Research 3, which is built around a 1 kHz FCI.

How RoboPilots runs iiwa teleoperation

The arm, its Sunrise Cabinet and the real-time PC stay on your network. We agree the FRI mode, smoothing and limits with your team and whoever owns the cell's safety, install the operator client on your side of a VPN, and train a dedicated group of operators on your unit and your procedures, starting in T1, before anyone operates live.

One-week trial

A short run sets the baseline: clean episodes per operator hour for research data, or exceptions resolved per shift for a production cell. If latency or the task rules something out, you hear it that week.

Coverage

Shifts across time zones, including US Pacific hours, with your on-site staff handling anything that needs hands in the cell.

Data

Episodes and recoveries labeled by task and outcome, with joint torques and FRI settings recorded, delivered as LeRobot, RLDS or HDF5.

Interfaces, specs and sources

  • FRI (Fast Robot Interface) over UDP
  • lbr_fri_ros2_stack + MoveIt
  • kuka_drivers (ROS 2)
  • Sunrise.OS Java applications
  • Admittance hand guiding
  • LeRobot via ROS 2 bridges

Specs are the maker's published figures, checked on . RoboPilots is not affiliated with KUKA; product names are trademarks of their owners.

Frequently asked questions

How do you teleoperate a KUKA LBR iiwa with ROS 2?
Install the LBRServer application on the Sunrise controller and run lbr_fri_ros2_stack on a real-time PC on the robot's network. The operator's device sends targets to that PC, which smooths them and commands the arm over FRI.
Why does my iiwa jump during teleoperation?
The LBR-Stack maintainer attributes jumps like these to the commands being sent rather than the driver. Increase the joint position smoothing time constant, give ros2_control real-time priority, and check the network cable.
Which FRI mode should I use for teleoperation?
Position control with a 10 ms send period is the usual starting point. Joint or Cartesian impedance with torque or wrench commands at 2 ms suits research controllers that compute torques or forces locally.
Does LeRobot support the KUKA iiwa?
Not directly; there is no KUKA plugin on LeRobot's third-party list. ROS 2 bridges such as leros2 can connect lbr_fri_ros2_stack to LeRobot, and large KUKA datasets already exist in LeRobot format.
What is the difference between the iiwa 7 and iiwa 14?
KUKA rates the iiwa 7 R800 at 7 kg payload and 800 mm reach, and the iiwa 14 R820 at 14 kg and 820 mm. Both have seven axes with joint torque sensors in each.