Wednesday, December 15, 2010

[KTX] Great Humanoid Robot! ~Introduction to KTX~


The robot was designed to offer an entertaining, low-cost alternative to high-end robotics, while stylishly combining the latest in sleek design and cutting-edge robotics engineering.
The KT-X is the first low-cost bi-pedal robot platform of its kind to be offered in the U.S. that (a) can be controlled using a standard wireless PS2 game pad controller, (b) is easy to use and (c) offers endless hours of entertainment.

Specification
  • Height:  13.5 in
  • Width:  6 in
  • Depth:  2.5 in
  • Weight:  2.9 lbs  (KTX standard model)
  • Degrees of Freedom:  17 Total (KTX standard model)
  • Servo:  17 x VS-S092J (KTX standard model)
  • Sensors:   Each servo has an embedded sensor for detecting the servo's position in real time. Gyro sensor and Accelerometer sensor can be added as option.
  • Main Control Board: VSRC003 HV
  • Charger:  AC100V charger
  • Communication with PC:   RS232C (115kbps) or USB
  • External I/F:  Playstation 2 Style Wireless Gamepad Remote
  • Software:  RobovieMaker2:  The KT-X comes with the easy to use "RobovieMaker" programming software. The software is easily installable to a standard windows based PC, and can be uploaded to the robot via serial connection (also provided).

Ther are 4 different models:
 

$1,395
The KT-X Lite is the perfect robot for first time robotics builders. This robot utilizes 13 servo motors (degrees of freedom) and offers all of the plug and play features available in the higher end KT-X models. Upgrades are not available.  You can upgrade the robot by simply buying some other parts...

$1,695
The KT-X Superbot is the flagship humanoid robot of KumoTek Robotics. This robot boasts 17 degrees of freedom, a powerful 60MHz microcontroller and comes with a remote control (domestic customers only). Upgrades to the KT-X Gladiator model are available.
 
$1,895
The KT-X Gladiator is the higher end KT-X model, boasting a whopping 19 degrees of freedom, which allows the robot to pivot, or yaw on the hip axis. The KT-X Gladiator offers the most realistic motions within the KumoTek humanoid line.
$5,500
The KT-X Gladiator Pro is the top-of-the-line hobby/entertainment robot within the KumoTek line. The PRO series offers an amazing 19 degrees of freedom and extremely high torque servo motors. The Gladiator PRO can lift objects and even carry other robots on its back. You can find this robot currently on display at the Museum of Science and Industry in Chicago.

<!> All KTX robots do NOT comes with Gyro/Accelerometer Sensors!!! Please buy a expansion boards.

Related Posts 
User Manual

Tutorials

Software


Sample Project

Friday, December 10, 2010

[Tutorial] MP3 Player Expansion Board for KTX Robots





Overview

This MP3 player board is one of the expansion boards for KTX robots.  By using this MP3 player board, you can play mp3 format audio files from your robot.
The audio data will be stored in mini SD card and it will be inserted into the board.  You can store audio data a lot more than the CPU board can support.  Just create your audio file and store them in the SD card.

Requirements:
  •   RobovieMaker2 ver6 or later
  •  CPU board firmware 1.00(11) or later

You can download high quality video here
 



Wednesday, December 8, 2010

[Tutorial] Calibrating Servo Motors



In this video, I'm showing some basic steps for calibrating the servo motors.

The robot used in the tutorial is regular KTX-PC, but the steps apply to the all KTX robots.

Please look at the video and get familiar with the steps to calibrate!

You can download raw video file from here.

Tuesday, December 7, 2010

[KTX-PC] Serial Communication

1         Overview

The CPU board, VS-RC003, on the KTX robots has Serial Communication feature, which allows user to operate your robot by your own software by sending commands to read and write its memory space.

2         Setting up CPU Board

2.1       Preparing RM2 and Firmware

Following items are required for this serial communication feature.
-          RobovieMaker2 version 1.0.0.9 or later
-          CPU board firmware version 13 or later
To check your version of RM2, go to “Help -> About RobovieMaker2”.
To check your version of Firmware, go to “Project preference -> CPU preferences”
If your version of the software or the firmware is too old, please download and install the latest version.

2.2       Changing setting of the CPU board

To activate serial communication on the CPU board, it is required to change the setting of CN6 or CN7.
First, start RM2 and establish connection, then click on “Project preference -> CPU preference”.   On the new window comes up, you will find “Serial Setting”.  Please change the communication type of the port you are using to “Command Port”.  It will not allow you to set both CN6 and CN7 to “command port”.
After changing the settings, click on “Apply” and transfer the preference to CPU board.

2.3       Specification of the Serial communication Port

If you are connecting external micro controller board to the CPU board, you will need to at least connect TXD, RXD, and GND. 

Cable Color
CN6 (Game Controller Port)
CN7 (Expansion board connector port)
P1
Brown
P0.8/TXD1
P0.0/TXD0
P2
Red
P0.9/RXD1
P0.0/TXD0   
P0.1/RXD0 + P0.25/AD0.4/Aout
P3
Orange
P0.5/MISO0
P0.1/RXD0 + P0.25/AD0.4/Aout
Reset
P4
Yellow
P0.6/MOSI0/CAP0.2
P0.14/EINT1/SDA1
P5
Green
P0.7
P0.2/SCL0
P6
Blue
P0.4/SCK0/CAP0.1
P0.3/SDA0
P7
Purple
VBATTD
VBATTD
P8
Grey
+5V
+5V
P9
White
+3.3V
+3.3V
P10
Black
GND
GND

2.4       Port Setting

Following is the setting of Serial communication port
  • Baud rate:  115200bps
  •  Data bit:  8
  •  Parity: NONE
  •  Stop Bit: 1

3         Setting up VS-IX003

For KTX-Lite, KTX-17, and KTX-Gladiator, you will need an expansion board, VS-IX003, to operate serial communication. 
If you are using KTX-PC series, the robot already have an embedded Serial communication board on the I/O board.   Therefore, there is no additional device required for serial communication on KTX-PC.

3.1       Installing Driver

3.2       Connecting VS-IX003

4         Communication Protocol

Basically, you will write and read 1 byte of data in the memory space inside CPU board.
Variable number 64 to 127 is the space for user defined variables.  Please do not overwrite other memory spaces, unless you know what you are doing.

You can download PDF version of this memory map here.

 

4.1       Character, Prompt, and Sending command

The message used in the communication is 1 byte.  After sending the message, the CPU board will echo back the command you have sent.  The prompt character is “#”.  To process the sent command, you will send 2 byte message, CR+LF (‘\r\n’ or 0x0A, 0x0D).

4.2         Values and Endian

The value (numbers) inside the communication message is always written in hexadecimal.   It is not case sensitive.  Please describe the representation of characters in minimum of 1 byte (2 characters). 
Additionally, Memory map in the CPU board follows the little endian.  Since each variable defined in the CPU board uses 2 bytes, you will first write lower byte and then write upper byte.  For example, if you are writing “0x1234” and “0x5678” into consecutive variables, you will send the command in the order of “0x34, 0x12, 0x78, 0x56”.
Moreover, if you receive 2 byte of data, “0xABCD”, the correct reading will be “0xCDAB”.

4.3        Writing values into Memory

The command to write the value to specific address of memory is given below.
w XXXXXX YY ZZ…\r\n
Write commands always begin with the symbol “w”. 
“XXXXXX” represents the address to write to, written in 6 digits hexadecimal. 
“YY” and “ZZ” are the data you will be writing, and you can separate each 1byte of value by space.  If you are sending series of values, make sure that there is one or more space between the 1 byte values. 
After sending the data, send “\r\n” to process the command.     

4.4         Reading values from Memory

The command to read the values from specific address of memory is given below.
r XXXXXX YY\r\n
Read commands always begin with the symbol “r”. 
“XXXXXX” represents the address to write to, written in 6 digits hexadecimal. 
“YY” is the value to specify the size of the data you will be reading. 
After sending the data, send “\r\n” to process the command.     
Once the command is processed, you will receive a message from CPU board.
# XXXXXX ZZ ZZ….
“#” is a prompt, and “XXXXXX” is the address and “ZZ ZZ….” Is the data you got from CPU board.
Example:
Send r 2009ea 05
Return #2009ea 00 00 00 00 00

4.5       Address of Memory Map

The relation between the address we will use in the communication message and the numbering of the variables are following.
Fist, the starting address of the memory map of the variables is “200800”.
The memory map has 256 variable spaces of 0 ~ 255 and one variable space is signed 2 bytes.  Therefore, the size of the memory space is 256 x 2 = 512 byte.
The address corresponding to the variable in memory map can be calculated as “200800 + [variable number]”.
For example, the address of the user definable variable space #119 (hexadecimal number of 119 is 77) is “200800 + 77 x 2 = 2008ee”.
To write the value, “0x3d10”, into the variable #119, you will send the write command, “w 2008ee 10 3d\r\n”.  Also, to read the variable #132 (Gyro sensor value for x coordinate), you will send command, “r 200908 00 00\r\n”

5         Controlling Robot by Serial Communication

This section will describe how to operate a robot through serial communication by simulating game controller inputs.
This approach will overwrites the values of the memory map of the game controller input (variable number of 241, 244 ~ 247).

5.1       Setting up RM2 and Starting up Robot

First, please transfer any remote operation map into your robot.  You can use sample remote operation map or your own operation map.  The motion data assigned to the map can be any motion data you have.  Also, please set the “mode switch” to the mode you assigned your operation map.  Make sure that the USB cable is unplugged, and then, start your robot.

5.2       Starting and Stopping Serial Communication 

First, to start serial communication, you write “0x000” in the address “0x2009e0” (variable number 240).  Once you configure the communication port to serial communication, the command sent from remote controller will be ignored.
To end serial communication, you will write “0x0001”. 
w 2009e0 00 00\r\n         :               start serial communication
w 2009e0 01 00\r\n         :               Stop serial communication and return its control
Due to endianness, the upper byte and lower byte are reversed.

5.3       Turning ON/OFF Servo Motors

To turning on and off servo motors, you will write into the address “0x2009f6” (variable number 251). 
w 2009f6 01 00\r\n          :               servo motor on
w 2009f6 00 00\r\n          :               servo motor off

5.4       Simulating Remote Control Inputs

To simulate remote control button inputs, you will write into the address “0x2009e2” (variable number 241).
[Upper byte]
0
0
0
0
0
0
0
0
Left
Down
Right
Up
Start
R3
L3
Select

[Lower byte]
0
0
0
0
0
0
0
0
Square
Cross
Circle
Triangle
R1
L1
R2
L2

w 2009e2 10 00\r\n         :               Triangle button is activated
w 2009e2 04 10\r\n         :               L1 and Up button is activated
Once you write a value in the address, it will save the value until you write another value in it.  Therefore, please write “0x000” to the address when you finish the motion.

5.5       Analog Stick Inputs

To simulate analog stick inputs, you will write in the address “0x2009e8” ~ “0x2009ee” (variable number 244 ~ 247).  The value can be the range from -128 to 127 (0xff80 ~ 0x007f). 

5.6       Getting Status of Operation Map

You can retrieve the status of the operation map by reading following addresses.
Address “0x2009f0”        :               Map number of current operation map (0 ~ 3)
Address “0x2009f4”        :               Status of analog stick (0 = disabled, 1 = enabled)
Address “0x2009fa”        :               Status of the motion playing (0 is idling, 1 is playing)

5.7       Example Play Motion Command

w 2009e0 00 00\r\n             :               Take over the control for serial communication
w 2009f6 01 00\r\n              :               Turning on the servo motors
w 2009e2 10 00\r\n             :               Simulate triangle button input ON
w 2009e2 10 00\r\n             :               Simulate triangle button input OFF
w 2009e0 01 00\r\n             :               Return the control

Monday, December 6, 2010

[KTX-PC] Make your KTX-PC Walk!





If you havn't look at the User Manual, please go through the document and get familiar with the robot before you start this lesson!!!!
 KTX-PC User Manual

For RobovieMaker2 Software, you can also look at the User Manual for RM2.
RM2 User Manual


0         Preparation

0.1       Read KTX-PC User Manual

0.2       Prepare Equipment and Tools

·         Personal Computer running Windows XP (Vista and 7 works also, but not recommended)
·         Mini USB cable
·         2 Batteries and battery charger

0.3       Charge battery

Make sure you have two fully charged batteries which came with your KTX-PC.

0.4       RobovieMaker2

We will use a software called “RobovieMaker2” to program the servo controller board, VSRC003, on KTX-PC.  Make sure that you get current version of RM2, currently version 9 and 10 supports KTX-PC.  You can find detailed instruction for the installation in RobovieMaker2 User Manual.
RobovieMaker2_Inst_eng_010_.zip

1         Download Robot Project file

KTX-PC RobotProject
There are two types of KTX-PC, KTX-PC and KTX-PC Pro.  Pro has 18 metal servo and supports powerful motions.  Do not use Project file made for Pro on any regular KTX robots.

Place the Project file in your workspace directory and unzip the file.  Then, copy the unzipped robot project files into your working directory for this lesson.
Following is example of workspace folder structure.
My Document + KTX + KTX-PC + PICO820 + Drivers
                                     +                +                  + Manuals
                                     +                +                   
                                     +                + Manuals
                                     +                + RobotProject
                                     +                + Tutorials + Lesson1 + RobotProject                  
                                     +                                    + Lesson2       
                                     +                                    + Lesson3          
                                     +                                                         
                                     + RobovieMaker2 Ver10         

2         Connecting Robot to your PC

2.1       Connect Mini USB Cable

Connect mini USB cable came with your KTX-PC to the servo controller.  You can find the connecter next left shoulder of the robot.  Then connect the other side of the cable to your PC’s USB port.

2.2       Open Robot Project File

Go to your workspace folder where the robot project files are stored and double click the file named “Robovie-PC.rpj”.  RobovieMaker2 will automatically start and it will open the robot project file.  You will see the following window application on your display.

If it asks for creating new project file, select “No”.
<!> Make sure that your sample robot project file is unzipped.  If not, then it will generate project initializing error. 

2.3       Establish Connection

By pressing “Line” button, you can establish a connection to the servo control board.
If it’s successful, “status window” will show up and tell you about current status of the control board.

3         Initial Position Setup

Before running motion files, you have to configure the robot for initial position. This part briefly explains the setup.   Please look at the RM3 User Manual for detailed instruction.

3.1       Un-check the all check boxes next to the sliders

Un-checking the check box will disable control from the software.

3.2       Connecting Batteries

Connect fully charged batteries to your Robot.  Make sure that the PC power switch is off (toward inside is off), then turn on (“-” sign is ON) the power button on your robot. 
The status window will show the blue bar which indicates your voltage applied to your control board.

3.3       Set initial position

3.3.1       Activate servo motor

Activate one of the slider (try “MOTOR CN5-3” or  “MOTOR CN5-4”) by checking the checkbox.  Then click on the power button.

It will power up one of your servo moter.  Try moving the slidbar you activated, it will move the servo moter.

3.3.2       Set the servo motor to its initial position

Set the servo motor position to the initial position by clicking “up” and “down” button on the slider.  The initial position is described in following picture.

3.3.3       Deactivate the servo

Deactivate the servo by un-checking the checkbox you activated.

3.3.4       Do step 3.3.1 to 3.3.3 for all the servo motors


3.4       Loading the initial position to the Control board

3.4.1       Calibrate

Press “Calibrate” button and load the position to the control board.
If it asks for confirmation, select “yes” and “ok”.
<!> Make sure to hold the robot while sending the data.  The robot might lose its power while the transferring the data.

3.4.2       Transfer

Then press “Transfer” button to transfer the data to the control board.
It will opens up a window.
Click on “Transfer the preference to CPU”.  If it asks confirmation, select “yes” or “ok”.

<!> Make sure to hold the robot while sending the data.  The robot might lose its power while the transferring the data.

3.5       Turn off the servo motors

Now your Robot is ready for programming.  While programming your robot, it’s better to keep your servo motors turned off.  Please turn off the servo motors by releasing power button on the software.
If the servo motors does not power off, you might not have connection to the control board properly.  Try connecting the board again and press power button, then release the power button.
Make sure all the servo is powered off and turn off the power (“o” sign indicates off) switch on the robot.
You can check on the status bar to make sure the power is not applied to the board any more.

4         Loading Motion File onto Robot

4.1       Auto Demonstration

4.1.1       Create new Auto Demonstration

Press “Transfer” button, it will open up a data transfer window.
Then select Mode switch “Zero” and click “New” button.
It will ask for Mode switch preference, select “Auto demonstration” then press “OK”.

4.1.2       Set preferences of Auto demonstration


4.1.3       Activated Motion

Activated motion is always executed prior to the auto demonstrations so that the robot does not start from unknown state of the position.  Select “default_sitting.txt” as activated motion.

4.1.4       Add Motions

Add a motion called “standing_up.txt” by clicking on “Add the motion to the list” button.  Because we selected default “sitting.txt” as an activated motion, the robot will start from the “sitting down” pose.  Therefore, we chose a motion “standing up” for the 1st motion to be executed.
Now we can add a motion “walk_foward.txt”.
Last motion to add will be the motion “sitting_down.txt”.  We assign this motion at the end of demonstration so that we can turn off the power after the demonstration without holding the robot.

4.1.5       Set Motion Loop

Set the number of motion loop of “warlk_forward.txt” to “4” by clicking “Increment” or “Decrement” button.    
4 means that the robot moves 4 steps forward in this motion file.

4.1.6       Set File name and save the auto demonstration

Enter file name and save it.  Then press “close” button.

4.1.7        Transfer the auto demonstration

Make sure that the created demonstration appears on the window.
Press “transfer” button and close the window.

4.2       Let’s Play the Auto Demonstration!

4.2.1       Power up the robot

Turn on the power switch on your robot, and press “reset” button on the servo control board.
The robot will stand up and start walking 4 steps forward, then sits down.

5         Extras

5.1       Open existing motion file

Go to “file” on menu tab of RM2 and select “open”.  It will ask for the file to open, go to your workspace where copied SampleRobotProject is and select “walk_forward.txt”. 
When you modifying a motion file, make sure save your original before start modifying.