EZB Connections icon EZB Connections Add and manage up to 255 EZ-B I/O controller connections in ARC, select COM/IP ports or device addresses to connect or remove devices. Try it →
 
Thumbnail

Kinect Body Control

by Microsoft

Control robot servos with Microsoft Xbox 360 Kinect body tracking; map joints to upper/lower body servos with smoothing and pause control.

Requires ARC v12 (Updated 4/24/2026)
Compatible with: Compatible with Microsoft Windows 10 or 11 Windows

How to add the Kinect Body Control robot skill

  1. Load the most recent release of ARC (Get ARC).
  2. Press the Project tab from the top menu bar in ARC.
  3. Press Add Robot Skill from the button ribbon bar in ARC.
  4. Choose the Camera category tab.
  5. Press the Kinect Body Control icon to add the robot skill to your project.

Don't have a robot yet?

Follow the Getting Started Guide to build a robot and use the Kinect Body Control robot skill.


How to use the Kinect Body Control robot skill

This Skill enables you to control your robot's servos by moving the joints of your body, which are detected only by a Microsoft XBOX 360 Kinect. Servos can be assigned to each joint using the Settings window. Degrees to move the servos are automatically calculated for joints about the connecting joint. For example, the wrist position in degrees is calculated based on the elbow position. The elbow position, in degrees, is calculated from the shoulder position. Each joint can be assigned to control servo positions between 1 and 180 degrees of your robot.

Required Drivers

The SDK 1.8 can be installed from here, as you will need the libraries it includes: https://www.microsoft.com/en-ca/download/details.aspx?id=40278

Main Window

User-inserted image

1. Pause Checkbox When this is checked, no servos will move.

2. Sitting Position Checkbox When this is checked, only the Upper Body servos will be activated, and the lower body will not be detected. As a result, the lower body servos will not be active.

3. Kinect Body Joint Visualization This section shows a visual representation of the detected joint values.

4. Joint Data Output This section shows a numerical representation of the detected joint values.

Configuration - General Tab

User-inserted image

1. Smoothing Value Drop-down This drop-down adjusts the smoothing value for servo movement. As the smoothing value increases, it removes the servo jitter. However, more servo delay will be introduced as the smoothing value increases.

Configuration - Upper Body Tab

User-inserted image

1. Upper Body servo Configuration This section of six servos allows you to configure servo movement parameters for the upper body, including servo port, board index, servo configuration, max/min degree limits, multiple-servo control, and inverted direction.

Configuration - Lower Body Tab

User-inserted image

1. Lower Body servo Configuration This section of 6 servos allows you to configure the servo movement parameters for the Lower body, including servo port, board index, servo configuration, max/min degree limits, multiple-servo control, and inverted direction.

*Note: The Lower Body will not be detected when the Sitting Position checkbox is enabled (in the Main Window).

How to Use Kinect Body Control

  1. Download and install the Kinect SDK (link in the "Required Drivers" section above).

  2. Plug your Kinect sensor into the wall power and a USB port on your PC.

  3. Add the Kinect Body Control skill to your ARC project (Project -> Add Skill -> Misc -> Kinect Body Control).

  4. Use the Kinect Body Control Configuration tabs to set up any servos you want to move.

  5. Connect ARC to the servos/robot you want to control.

  6. Ensure your body is at least 3 feet from the Kinect sensor to be detected (the ideal distance is 6 feet) and start moving around.

  7. If you are experiencing servo jitter, try adjusting the Smoothing value in the Configuration General tab.

Video

Requirements

Kinect Compatibility We're unsure which Kinects work with the SDK on Windows due to limited information published by Microsoft (or at least information that's hard to find). There are multiple Kinect versions; the one we use is the Xbox 360 Kinect.

Control Commands

There are two control commands to pause and unpause the Skill.

  • "PauseOn" will check the pause checkbox
  • "PauseOff" will uncheck the pause checkbox

Work In Progress

  • The servos for legs have not been implemented yet
  • The shoulder rotation servos have not been implemented yet

ARC Pro

Upgrade to ARC Pro

Unleash your robot's full potential with the cutting-edge features and intuitive programming offered by Synthiam ARC Pro.

Author Avatar
PRO
USA
#33  

how did this thread get here it is from Dec, 2019

Author Avatar
PRO
Synthiam
LinkedIn Thingiverse Twitter YouTube GitHub
#34  

It’s not a thread. It’s a robot skill and it was updated. You responded to an update for a robot skill.

Author Avatar
PRO
USA
#35  

got it, thanks Dj

Author Avatar
PRO
USA
#36  

I did the Kinect Body Control earlier

wee remote -  xboz 360

more tomorrow :-)

EzAng

Author Avatar
PRO
Canada
Twitter
#37  

I am trying to teach my humanoid to use this but struggling. The shoulder rotary doesn't seem to work, the hands show up but can't link to servo, The lower body is labeled shoulder elbow same as upper body.

User-inserted image

Author Avatar
PRO
Synthiam
LinkedIn Thingiverse Twitter YouTube GitHub
#38  

Doesn't seem like those are developed...

User-inserted image

Author Avatar
PRO
USA
#40   — Edited

works great, thanks