Control robot servos using your body and a Microsoft Kinect
How to add the Kinect Body Control robot skill
- Load the most recent release of ARC (Get ARC).
- Press the Project tab from the top menu bar in ARC.
- Press Add Robot Skill from the button ribbon bar in ARC.
- Choose the Camera category tab.
- 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 the control of your robot's servos by moving the joints of your body, which are detected by a Microsoft XBOX 360 Kinect only. 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 based on the shoulder position. Each joint can be assigned to control servo positions between 1-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=40278Main Window
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 joint values that are detected.
4. Joint Data Output This section shows a numerical representation of the joint values that are detected.
Configuration - General Tab
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
1. Upper Body servo Configuration This section of six servos allows you to set up the servo movement parameters for the upper body, such as servo port, board index, servo configuration, max/min degree limitations, multiple servo control, and inverted direction.
Configuration - Lower Body Tab
1. Lower Body servo Configuration This section of 6 servos allows you to set up the servo movement parameters for the Lower body, such as servo port, board index, servo configuration, max/min degree limitations, 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
Download and install the Kinect SDK (link in the "Required Drivers" section above).
Plug your Kinect sensor into wall power and a USB port on your PC.
Add the Kinect Body Control skill to your ARC project (Project -> Add Skill -> Misc -> Kinect Body Control).
Use the Kinect Body Control Configuration tabs to set up any servos you want to move.
Connect ARC to the servos/robot you want to control.
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.
If you are experiencing servo jitter, try adjusting the Smoothing value in the Configuration General tab.
Video
Requirements
Kinect Compatibility We're unsure what Kinects work with the SDK in Windows due to limited information published by Microsoft (or at least hard-to-find information). There are multiple Kinect versions; the one we use is the Xbox 360 Kinect.Control Commands
There are two control commands for pausing and unpausing 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
@DJ
@DJ, @Richard
It's not forgotten but the scope got bigger and i was waiting to get a alpha version.
I'll look to my code base, and i'll post something during the weekend.
Any news about Kinect V2 support?
https://synthiam.com/Products/Controls/
Depth Sensor (Kinect V1, Kinect V2, Asus): https://synthiam.com/redirect/legacy?table=plugin&id=173
Nice this works
Body control would still be nice
it just needs to be opdated to take kinect20.dll too with kinect10.dll...
From your perspective (the user) it seems a simple change swap kinect10.dll with kinect20.dll and voila!
The reality is different: Kinect 2.0 has a different API, you will need:
All the above is only possible if you have the real stuff (Kinect V2).
I have installed the plugin and installed the right kinect software also. (kinect 1, Windows 10)
The kinect works when I start the Microsoft Kinect software: I can see camera vision and movements.
When I try to use the EZ-robot with kinect plugin, I can connect the EZ-Robot software to the kinect (it's is found by the ez-robot software), but then it ends. No red wire movements or whatever.
I got some info on the plugin-window once, but didn't got that also anymore.
Any help would be nice !
With kind regards,
;-) Arthur
Hi Arthur - did you install the driver specified in the description above? I believe it is 1.8, and the link is included above. What do you mean by "then it ends"? Are you meaning the computer shuts down or ARC crashes? I'll need as much information as you can tell me to help
Also, @ptp made a much better plugin that you can find here: https://synthiam.com/Software/Manual/DepthSensor-15873