(ENG) Visual Logic Robot Programming
(ENG) Visual Logic Robot Programming
Visual Logic
Robot Programming
1st Edition published date :
Publisher
: Dongbu Robot Co., Ltd
Address
: 11th Fl Bucheon Techno Prk Bldg, 401, Yakdae-dong, Wonmi-gu, Bucheon-si, Gyeonggi-do, S Korea
Customer Inquiry : 032-329-5551
FAX
: 032-329-5569
No portion of this purblication may be reproduced or transmitted in any form without prior written authorization
from Dongbu Robot Co., Ltd.
Dongbu Robot Co.,Ltd All rights reserved
Contents
03
PA RT
Firmware
PART
01
Chapter 01
Chapter 02
Controller
Outline --------------------------------------------------------DRC Battery Installation Method ------------------------DRC Connection Method ---------------------------------DRC Interface ------------------------------------------------DRC Register Protocol -------------------------------------Using DRC Functions ---------------------------------------DRC Standard Test -----------------------------------------Servo Motor -------------------------------------------------Light Sensor --------------------------------------------------Sound Sensor ----------------------------------------------Distance Sensr (Analog, Digital) ------------------------Gyro Sensor --------------------------------------------------
Chapter 03
Parts List
Hovis Lite Structure Diagram -----------------------------Hovis Lite Parts List ------------------------------------------
Chapter 04
Assembly Diagram
Humanoid Assembly Diagram ---------------------------Using Humanoid DRC Functions -------------------------
PA RT
PART
03
Firmware
PART
02
Chapter 01
DR-SIM --------------------------------------------------------
Chapter 02
Chapter 03
Move -----------------------------------------------------------
Chapter 04
Motor ----------------------------------------------------------
Chapter 05
Chapter 06
Chapter 07
Light -----------------------------------------------------------
Chapter 08
Sound2 --------------------------------------------------------
Chapter 09
Digital ----------------------------------------------------------
Chapter 10
Analog --------------------------------------------------------
Chapter 11
Chapter 12
Acc -------------------------------------------------------------
Sound1--------------------------------------------------------
Firmware
PA RT
03
PA RT
PART
03
Firmware
PA RT
01
Introduction
PA RT
Introduction
01
PART
01
PA RT
01
Introduction
Hovis Lite Introduction
Related Site
10
Download Program/Manual :
www.hovis.co.kr/guide
www.dongburobot.com
English
Customer support
www.dongburobot.com
Quick Menu
For Service
For Services
Archives
Archives
PA
PA RT
Controller
01
Overview
PART
PART
DRC Controller is the main component and brain of the Hovis Lite. Controller has variety of connectors and interfaces including 6 servo motor ports, 2 PSD sensor ports, Gyro sensor, and ZigBee interface. Light sensor and the sound sensor in builtin to the controller. DR-Visual Logic program is a visual robot programming language that uses DRC functions to program
the robot. Various sensors and 1~32 motors can be programmed and tested.
Motor
Distance sensor
Gyro sensor
Battery
Sound sensor
light sensor
CPU
ATMega 128
Size, Weight
Operating Voltage
Serial Speed
Consumed Current
Interface
External I/O
Internal I/O
11
PA RT
Controller
01
PART
Battery
To supply power to the DRC, connect the battery to controller by the power connector found at bottom.
Battery Charging
Battery can be charged directly using the battery cable and the adapter. Another charging method is to connect the adapter
to the adapter connector found at top of the controller. Battery installed on the controller will start to charge automatically
when the adapter is connected to the controller.
Low Battery
Blink
12
PA
PA RT
Controller
01
DRC Connection
PART
PART
Motor
Distance sensor
Gyro sensor
Battery
Sound sensor
light sensor
Motor Connection
There are five ports around the controller
4 ZigBee Connection
Open the controller cover and install internally.
5 IR Receiver Connection
1 port, used for receiving remote control signal.
6 Download Connection
Ear phone Jack connection used to downolad program
from PC to the robot.
13
PA RT
Controller
01
DRC Interface
PART
PART
DRC controller has Input/Output buttons and LEDs at the front and motor and sensor ports at the back. Interface buttons at
the front are used to give input commands the LEDs are used to verify data output.
Main Button
Navi Key
LED
Sensor
14
Name
Short Cut
Mode
Run Task
Ok
Confirm
(Left)
Battery Level
Check Mode
(Up)
Autonomous Movement
Mode
(Right)
(Down)
Motor ID Scan
Servo
HerkuleX Running
Program
EXEC
Task Running
TX
Data Transmit
RX
Data Receive
Spare
User Defined
Power
Power
Cds
Light Sensor
PA
PA RT
Controller
01
Register
PART
PART
DRC has a registers which contains current controller state, settings, and various sensor related data.
For example, number of motors connected to the robot and their ID, error status, and current error codes are all part of current controller state. Controller settings include such data as Min/Max input voltage, Ack Policy, and etc. Sensor readings
such as luminosity detected by the light sensor and location of the detected sound are part of sensor data.
Controller register is divided into (Non-Volatile, EEPROM) register and (Volatile, RAM) register. Non-Volatile registers retain
data even when the power has been turned off and contain basic sestup values pertaining to the controller operation. Values in the Non-Volatile registers are copied to Volatile registers as soon as the power is turned on. Volatile registers contain
controller settings, state, and sensor values. Data in the Volatile registers have direct effect on the operation of the controller.
Knowing the content of the the registers and how the content changes allow the user to write more refined robot motion
progam using DR-Visual program. Knowledge about registers also help the user to read the the controller status and to
change the operatonal settings, making robot operation more convenient.
Protocol
Protocol is a predefined format or rules for commands that are given to read or write to registers. Protocol is defined not only
for read/write commands but also for other commands such as run commands for running saved tasks or sounds , reboot
command for rebooting the controller, and host of other commands.
Communication between the PC and the controller use such predefined protocols to send and receive packets. DR-SIM and
DR-Visual prgrams provided by Dongbu Robot were also created using such protocols. User should become familiar with
the protocols in order to controll the DRC using their custom made programs.
Refer to DRC Regisers and Protocols section in the manual for more information.
15
PA RT
Controller
01
DRC Funcitons
PART
1 Program Overview
PART
: User defined prgram that can be modified using the Task Editor (DR-Visual Logic).
At the time of release, basic humanoid Task Program is defined. Program can be modified by the user.
2 Operating Method
Basic functions in the firmware will start to operate when power is turned on and Navi key pressed. Pressing the Mode
button will run the saved task. From running a basic task, press the Navi key and OK after the task to select which mode to go into
2 Navi click
3 Ok click
4 Robot control
test
16
PA
PA RT
Controller
01
DRC Functions
PART
PART
Main Button
Navi Key
(Firmware)
Navi Key
Mode
Mode Change
Start Task
For standard Task, Mode
mode)
OK
Confirm button
(L)
Navi key
(Up)
Test
Method : (Up)
Button
Wired/Wireless
(Down)
Motor ID Scan
(L)
(Basic Task
for Humanoid)
Description
(Up)
(R)
(Down)
Check Mode
Autonomous Mode
Mode
(L)
(Up)
itself.
Mode
(R)
(Down)
on sound input.
Servo
HerkuleX running
Program
DR-SIM/Visual Logic
running
EXEC
Mode chage/Task
TX
Data Transmit
RX
Data Receive
Spare
User Defined
LED Blink
Error
LED_Power
Power
Power level
Sensor
CdS
Light Sensor
Light sensor
LED_mode
17
PA RT
Controller
01
PARTbasic tests through the test mode even when the robot is not assembled. Proceed with the moDRC is capable of running
tor and sensor test by turning on the power and pressing the (up) button. Sensor test is performed by checking the motor
response from the motors ID1 and 2 attached to left and right. Tests can be performed for motor, light sensor, sound sensor,
PART
Light sensor and sound sensor tests are done by menu and OK as they are built in to the controller
For PSD, Acc/Gyro, pressing the (down) button will check to see if only one of the sensor is connected. Test will proceed if only one sensor is connected and stop if more than one sensor is connected.
1 Motor
(L) : left motor will move, (R) right motor will move, (Up) both motors will move .
(Menu) : Light sensor in operation, Both motors will move when Cds blocked
Cliff detection
Both motors will turn in same direction. Farther the object, faster the motor movement
Movement will slow when object comes closer
opposite direction.
Collision avoidance after wall/object detection
6 Acc
: (Up)
Connect Acc/Gyro
Motors stopped when the controller angle is same as when the robot is standing straight.
Motor speed will vary depending on the angle. The greater the angle faster the movement.
7 Gyro
: (Up)
Connect Acc/Gyro
18
PA
PA RT
Controller
01
Motor
Motor
1
Battery
Test Process
Turn on power, Press (Up) button to enter Test Mode
Press Navi Key (L) button.
Motors are operating without error if they worked according to the directions above, Results of all following tests will be
shown by how the two motors behave. Do not disconnect the motors and continue on with sensor tests.
19
PA RT
Controller
01
Motor
Motor
PART
2
5
1
Battery
1 Connect Battery
2 Turn on the power
3 Connect left motor : Make sue to connect Motor ID 1. ( Other motors will not operate.)
4 Connect right motor : Make sure to connect Motor ID 2 .( Other motors will not work.)
This test simulates robot arms grabbing the air when the light disappears.
Test Process
Turn on power, Press (Up) button to enter Test Mode
Cover the Cds window with hand.
Light sensor is operating without error if the motors turned accordingly.End light sensor test.
20
PA
PA RT
Controller
01
Motor
Motor
2
Clap clap
Clap clap
1
Battery
1 Connect Battery
2 Turn on the power
3 Connect left motor : Make sure to connect Motor ID 1 .( Other motors will not operate)
4 Connect right motor : Make sure to connect
Test Process
Turn on power, Press (Up) button to enter Test Mode .
Press (OK) button.
Clap from left side.
Clap from right side.
Sound sensor is operating without error if the motors turned accordingly. End sound sensor test.
21
PA RT
Controller
01
Motor
Motor
PART
3
5
1
Battery
psd sensor
1 Connect Battery
2 Turn on the power
3 Connect left motor : Make sure to connect Motor ID 1 .( Other motors will not operate)
4 Connect right motor : Make sure to connect
Test Process
Turn on power, Press (Up) button to enter Test Mode.
Connect the PSD line and press (Down) button.
Move your had or an object away from the sensor to the distance > 10cm .
* PSD Digital has only On/Off mode with certain distance as a base of measure.
PSD Digital Sensor is operating without error if the motors turned accordingly. End PSD Digital Sensor test.
22
PA
PA RT
Controller
01
Motor
Motor
1
Battery
psd sensor
1 Connect Battery
2 Turn on the power
3 Connect left motor : Make sure to connect Motor ID 1 .( Other motors will not operate)
4 Connect right motor : Make sure to connect
Test Process
Turn on power, press (Up) button to enter Test Mode. Connect PSD line and press (Down)button.
PSD Digital Sensor in operation.
23
PA RT
Controller
01
Motor
PART
Gyro sensor
1
Battery
1 Connect Battery
2 Turon on power
3 Connect left motor : Make sure to connect Motor ID 1 .( Other motors will not operate)
4 Connect right motor : Make sure to connect
5 Connect Acc/Gyro Sensor : Open the controller cover and connect the Acc/Gyro Sensor.
Test Process : ACC
Turn power on and press (Up) button to enter Test Mode. Connect Acc/Gyro and press (Down) button.
Acc sensor is in operation.
Motors stopped when the controller angle is same as when it is attached to the robot standing up straight.
Tilt the controller slowly.
Speed of the motor will vary with the angle of the tilt. Greater the angle the faster
Acc/Gyro sensor is operating without error if the motors tunred accordingly. End Acc/Gyro sensor test. Both the Acc and
Gyro sensor is on a single chip board.
24
PA RT
Material
01
1
2
3
4
5
6
7 Controller DRC
8 Gyro Sensor : Adjusts position while walking
9 ZigBee : Communications Module
10 Battery
11 Remote Control
25
PA RT
Material
01
26
PA RT
Material
01
Main
PART
PART
Bolt
&
Nut
&
Harness
27
PA RT
Material
01
Joint
Etc
28
PART
PA RT
Assemble
01
PART
PARTrobot are released with an ID number on each motor. When assembling the robot, make sure the
Servo motors in our humanoid
servos are assembled at the right location by referring to the ID placement diagram.
Robot will not operate properly when servo motors are placed incorrectly. Motor ID numbers are based on 20 axis robot.
Motors numbered 16~19 have the last ID numbers as they dummy motors and replacements.
Wiring is the most difficult part in assembling the robot. Please read the manual carefully to fully grasp the wiring concept and try
assembling one at a time. Refer to the humanoid robot assembly diagram for wiring details.
29
PA RT
Assemble
01
PART
Assembly sequence is as follows Left Arm, Right Arm, Waist, Right Leg, Left Leg, Head, Controller, Battery
30
PA RT
Assemble
01
Entering Task
Robot Operation
Assembly midpoint check
mode
Mode
(Down)
Mode
(L)
Mode
(Up)
Autonomous Mode
sponse in 5s
Mode
Remote Control Mode
(R)
31
PA RT
Assemble
01
Program Download
PART
HerkuleX connection
DR-SIM/
Data Transmit
Data Receive
User Defined
Error
32
Motion of LED
Declared LED
Servo
Program
EXEC
TX
RX
Spare
All LED blinks
PA RT
Assemble
01
Robot Motion
PART
PART
Mode
(L)
When green RX LED comes on, press (L) or (R) button to select item to check.
(L) : Motor check mode
- Selects each individual motor and checks connection status and assembly.
- Red TX LED comes on when motor check mode entered.
- When Green LED on selected motor comes on, motor turns to center position (512). Rest of
the motors go into Torque Off state when LED goes off.
- Press (Up) & (Down) to select the motor ID( 0~15). Check the conntection status and location
of the motors.
First selected ID is 0(Right Shoulder).
Check Mode
Mode
(Up)
Autonomous Mode
- Robot will be able to avoid obstacles if PSD sensor is installed in the ADC prot 1.
- If robot detects an obstacle, it will randomly select one of the following movements;
backward & left turn, left turn, back roll & left turn,
- backward roll & left turn is only possible if the robot detects an obstacle after moving
at least 10 steps forward.
- If an obstacle cannot be avoided even after making umber of left turs, robot will try
backeward & left turn.
- If acceleration sensor is installed, robot will get back up after falling.
- If robot detects a fall, it will stop current motion and switch to getting up mode.
33
PA RT
Assemble
01
Robot Motion
PART
PART
Mode
-> (R) -> OK, enter remote control model
- Controls the robot by remote control. Remote control receiver must be installed for this mode
to function.
- Up : Forward
- Down : Backward
- L : Left turn
Remote Control
Mode
- R : Right turn
- OK : Stop
- 1 : Roll forward
- 2 : Roll backward
- 3 : Push-up
- 4 : Boxing
- 5 : forward get up(Acceleration sensor must be installed, Only possible from supine position)
- 6 : backward get up(Acceleration sensor must be installed, Only possible from prone position)
If the sound was detected once from the left and once from the right, robot will wave the left
arm first and then the right arm.
- Three sounds detected : Robot will turn to the direction of the sound and walk 10 steps
forward. If the sound was from the left, robot will turn left and then walk forward.
Sound detection may not work 100% all the time due to background noise, echo
from the wall, and other environmental factors. Robot will detect loud and short
sounds like hand clapping more easily.
34
PART
PART
PART
35
PA RT
05
02
PART
PART
36
PART
PART
PART
PART 02
DR-Visual Logic
Programming
37
PA RT
05
02
DR-SIM Introduction
DR-SIM, also called motion editorPART
is an easy to use robot motion editing software tool. In addition to motion creation, editing,
and capturing actual robot motion, DR-SIM supports powerful simulation function that allows the user to simulate the motion
prior to applying it to the robot. DR-SIM also incorporates timeline feature similar to the ones found in video editing software.
Timeline allows the user to create motion based on time and to add multimedia effect to the motion by adding LED lighting
effect and sound in the timeline.
System requirement
Minimum Intel Pentium 800 Mhz
Windows XP, Windows Vista, Windows 7
Minimum 256 MB RAM
Hard Disk Space 300 MB required
USB Port
Macintosh(under development)
38
Follow Instructions
PA RT
02
PART
PART
0 1 Installation File
Click on installation file.
Click
39
Click
0 4 Confirm installation
Click Next button.
Click
0 5 Start installation
Starting installation. Wait untill the installation bar
ends.
40
0 6 Confirm installation
Click Close button
Software installation complete.
Click
41
Hello DR-SIM
First example of creating motion. Use DR-SIM tor create simple motion and run the motion simulation.
Connect to the robot and download the created motion file and then check the motion being applied by the robot.
0 0 Run program
Click on DR-SIM icon and run the program.
0 1 Full Screen
DR-SIM Full Screen.
Timeline is in the middle and motion editior at
botom. Motion is usually created or edited using
the timeline and 3D motion window.
2 Click
0 2 Basic Posture
Insert the basic posture in the robot motion
starting point or in the first frame.
1 Click
42
0 3 3D Window
Click
0 4 Motion Edit
1 Click
2 Drag
Click
43
Click
0 7 Connecting to Robot
2 Click
3 Click
1 Click
Use the USB to Serial converter cable to connect the robot to the USB port of PC or notebook
computer. Click Connect icon to make the
connection. Check the Com port if the connection does not occur. Click Torque On button
and try moving the robot arm or the leg by hand.
Torque is on if the robot does not move. Click on
Robot Play button and robot will move following the created motion,
This ends the first lesson on creating robot motion and play.
44
1 Click
2 Click
45
User Interface
Instructions
Connect Robot
Short Cut
Mini Timeline
Timeline
3D Motion Window
Face LED
Sound
46
Motor Setup
Window
Help
Click Help on the menu bar to popup the help window. We recommend reading the Help files prior to using the DR-SIM
program. ( Click Help > ClickIndex > Click Timeline on left menu
Tutorial
Creating Simple Motion : Explanation about sample motion creation.
Check our website for more motion samples.
47
Download
Edited motions are saved as a file. Saved motions files can be batch downloaded to the DRC controller (Existing files in the
DRC will be deleted). Downloaded files are ginve a number according to the order of download which then can be loaded
and used by DR-Visual Logic(Task Editor).
1 Click
2 Click
save
cancle
Click
0 1 Robot Control
With the robot and DR-SIM connected, click on
Robot Control icon.
48
2 Click
1 Click
0 4 Motion List
Left window shows the list of motions in the selected folder. Place the cursor on the list and click
the download icon.
1 Click
2 Click
0 5 Download
Robot motions will be downloaded one at a time.
49
50
0 1 New File
File > Click on New File.
Click
51
0 3 First Frame
2 Click
1 Click
Click
52
0 5 Enlarging Robot.
Robot in the edit window can be enlarged.
Click on an empty space and use the mouse
wheel to zoome in or out.
To change the angle, press and hold the right
mouse button and drag. To change the robot position, press shift + press and hold right
mouse button and drag.
1 Drag
2 Alt+Drag
Click
53
54
0 8 - 2 USB port
Connection to the PCs with Serial Port in the
back can made using the serial cable but connection
to notebook computers without the serial port
requires USB to Serial converter.
0 8 - 3 Connecting to Robot
Connect the RS232c audio jack to the robot.
0 8 - 4 Robot Port
Looking at top of the DRC controller, you will find
serial port connecting to the PC, head side servo
motor port, and power port.
Photo shows all three ports connected.
Click
55
0 9 Environment Setup
Environment Setup window shows DR-SIM
version, robot selection, and Communications
setting.
1 0 Robot Selection
Click
Click
1 2 Connecting
Click on the Connect icon.
Click
1 3 Connection
1 Click
56
2 Click
1 5 - 1 Capture
Click Capture button.
Click
2 Click
1 Click
57
1 6 - 1 Different Motion
Manually make a different motion .
1 6 - 2 Capture
Capture.
Click
1 7 Check Motion
Compare the manually made motion with the
motion in the 3D motion window.
58
1 8 Capturing
Click
2 0 Delay Value
Robot may make a suden movement if there is
a large motion difference between the first and
the second motion key frame. To prevent such a
sudden movement, there is a way slow down the
first motion.
Click bottom of the frame and drag to the right
with left mouse button pressed. Such an action
will show up as photo on the left and Delay value
will be created.
1 Click
2 Drag
59
2 1 Screen Play
Click
2 2 Play
Progress line shows the motion being played
progressing on the time frame.
2 3 Play On Robot
Click
2 4 Robot Motion
Left photo shows the motion created in 3D motion
window. middle and right photos show captured
motions.When played, motions will be played
consecutively.
60
PA RT
02
Installation
PART
PART
System Requirements
Minimum Intel Pentium 800 Mhz
Windows XP, Windows 7
Minimum 256 MB RAM
Hard disk space 300 MB required
USB Port
Macintosh (Under Development)
61
0 1 Installation File
Click on the installation file.
Click
62
Click
0 4 Confirm Installation
Click Next button.
Click
0 5 Start Installation
Starting installation. Wait for the progress bar to
end.
63
0 6 Finish Installation
Click Close button
Program installation complete.
Click
64
0 1 Assign Variable
Operating the robot is same as operating the
robot servo motor. Value has to be assigned so
that servo will be able to operate.
Click Data > Variable module
Click
0 2 Start
Drag
0 3 Start Programming
When the module and the Start Point is docked
properly, module will become active and change
color as seen in the photo to the left.
This means programming has started.
65
0 4 Entire Program
Photo to the left shows the entire progam
lowering the robot arm by moving the motor.
0 5 Viewing C-Like
Click
Click the C-like tab near the top right and task
programming window will open as shown in the
photo to the left. This is the task window of the
entire program. Codes are very similar to the C
language structure so studying the codes will
help the user become familiar with the C
language structure. Cursor will jump follwing the
clicked module, making it easy to see the
module changing to text.
0 6 Variable Setup
This section allows the servo motor to operate on
its own. Select Constant as the Variable Type. In
properties, set constant value as 96.
When 96(0x60) is entered in the servo TorgControl
register, servo becomes ready to operate. This
value is sent to the torque value of the next
moduel through the output connector.
Click
66
2 Select
3 Select
1 Click
4 Input
0 9 Delay
This section delays the motor for 1s before starting.
1 Click
2 Input
67
1 Click
2 Select
3 Input
4 Input
5 Input
1 1 Delay
1 Click
2 Input
1 Click
2 Select
3 Input
4 Input
5 Input
68
1 Click
2 Click
3 Click
1 3 Download
Compile after programming done
to robot
Run.
Download
1 4 Robot Motion
Right arm will lower to the side from horizontally
stretched out position.
69
User Interface
Instruction Manual
Shortcut
Module Tab
Connerctor
Module Window
Pin Switch
Ctrl + Wheel
Minimap
Conversion Window
Propety Window
Remote control
1 Mini Map: Controlled by dragging, shows current position even in lengthy program, jump to any position.
2 Wheel Up/Down : Screen zoom in/out
3 Pin Switch : Shows pin names of the current module, disappears whenc clicked again.
4 Conversion Window : From Graphic to Text. Converts graphic programming source to text source, Similar to C language structure.
70
Help
From the menu, click Tools > Help, Help window will popup as shown belw. We recommend users to read the Help files prior
to using the DR-Visual Logic. (Click: Help > Index > Timeline
Outline
Module Window
Organization
Module
Connector
Practise
Screen Organization
Menu bar
Icon bar
Remote Control
Mini Map
Module Window
71
Programming Module
DR-Visual Logic is comprised of follwing modules.
Module Pack contains all programming modules required to create a program. Each module is supported by the DRC controller
function. Description: location of each part on humanoid robot and short description of the corresponding module.
Module
Pack
Picture
Module
Description
Move
Motor
Motion
LED
Sound
Sensor
Touch
Light
Distance
Dynamics
IRRciever
Measures distance
Dynamics, Measures acceleration
and angular speed.
Communi
cation
Button
72
Module
Pack
Picture
Module
Operator
Description
Operator
Data
Variable
Loop
While
Switch
Flow
Wait
Delay
Continue
Break
73
From the top. module icons represent Motion, Sensor, Communicaiton, and Data .
74
Loop
Loop module commands repeat of certain section. Loop with For statement would repeat certain number of times whereas Loop with Forever
statement would repeat infinite times.
While
While module requires certain condition to be met
before proceeding to the next step. It is a loop
stateement with attached condition.
Switch
Switch module is similar to if-else statement. If the
condition is True, it will perform the top task and
if the condition is false it will perform the bottom
task.
75
Wait
If input condition is True, halt program execution
and wait. Program execution will continue if the
the condition becomes False.
76
Connector
Help Balloon
Over
Connecting Connectors
To input the output value of the front module into
the input value of the following module, use the
mouse to drag and connect. Connecting line will
appear as shown in the left photo.
Drag
77
78
Property WIndow
Modules have their own properties and thses propeties must be given a value for program to work. UI in property window
includes list popup, radio button, number setting, and etc. Refer to the Help file for details on properties for each module,
property values, and limits.
Property Window
When motor module is clicked, property window
shows up on right side of the window. Motor has
speed and position control properties. To control
the position, select Position in Mode selector. To
control speed, select Velocity. Position, Motor
ID, Time values are adjusted in the detailed
settings below the Mode Selector.
79
Compile/Download
Once the programming is complete, it is compiled, downloaded to the robot and run. Downloader is a large icon located at
bottom left side of the programming window. More specific commands are found in the tools menu.
Downloader Icon
Downloader icon has three commands.
Compile command on the left, download
command on the right, and play command in
the middle shown by arrow like icon.
Tools Menu
Tools menu contains more specific related
commands.
Compile : Comile edited task..
Download : Download compiled task file.
Run : Run downloaded Task file.
Stop : Stops running the program.
Run to breakpoint : Program will run to
designated breakpoint and stop.
Stop Debug: Stops debugging process
Run in single steps : Runs program by module.
80
PA RT
02
Module
Pack
Module
Example
Move module loads the robot motion saved in the DRC controller and applies it to the program. Robot
Move
motion can be loaded by the number, and if required, names can be checked from DR-SIM. This
program will repeat running the motion creatd by DR-SIM on the robot indefinitely. This is a relatively
complicated program useful for reliability test or for demostration purposes.
Motion
Motor
LED
This program will turn on/off the LED by pressing the button on DRC Controller.
Sound
This progam will output sound when input from remote control buttons(#1~8) is received.
Sound sensors are located inside the DRC on both sides. This program will make the robot respond to
the left clap by lifting the left arm and to the right clap by lifting the right arm (Sample # 2). Robot may
have difficulty distinquishing the direction of the clap when there is lots of background noise. It may
Sound Sensor respond by lifting both arms to a single clap from one direction or respond erratically. More refined
programming is required to make the robot to respond more reliably regardless of the background
noise. Refining the program by forcing a DELAY after registering the first sound so that it will not receive
anymore sound input will increase the reliability.
Sensor
This program makes the motor respond to the external luminosity. When luminosity deLight
creases, robot will lift up the left arm ( Covering the CDS sensor at back of the controller will
decrease the luminosity and robot will respond by lifting the left arm).
PSD Digital(Distance Sensor) : This program makes the robot walk backwards, turn right,
Distance
Dynamics
Communi
cation
IRRciever
Button
Accerlateration : This program makes the robot stand if it falls forward, makes the robot
stand if it falls backward.
This program assigns different sound notes to the remote control buttons 1~8 and makes
the DRC controller play the sound.Buttons1~8 matches Do~Si. (With Sound)
LED at back of the DRC respond to the press of a button on DRC (with LED)
81
PA RT
02
PARTcan be checked from DR-SIM. This program will repeat running the motion creatd
by the number, and if required, names
by DR-SIM on the robot indefinitely. This is a relatively complicated program useful for reliability test or for demostration
purposes.
* Motions and Motion numbers used in this example are not same as the provided basic motion. This example assumes
motion was created by DR-SIM and downloaded to the DRC. To download motion go to www.hovis.co.kr/guide
0 1 Assign Variable
Operating the robot is same as operating the robot servo motor. Value has to be assigned so that
servo will be able to operate.
Click Data > Variable module.
Click
0 2 Start
Drag
0 3 Start Programming
When the module and the Start Point is docked
properly, module will become active and change
color as seen in the photo to the left.
This means programming has started.
82
PA RT
0 4 Entire Program
DR-Visual Logic Programming
02
PART
PART
0 5 Viewing C-Like
Click
Click the C-like tab near the top right and task
programming window will open as shown in the
photo to the left. This is the task window of the
entire program. Codes are very similar to the C
language structure so studying the codes will
help the user become familiar with the C language structure. Cursor will jump follwing the
clicked module, making it easy to see the module changing to text.
0 6 Variable Setup
2 Select
1 Click
3 Input
83
PA RT
02
1
2
PART
PART
0 8 Motion Ready
2
3
4
0 9 Delay
84
PA RT
02
PART
PART
1 1 Motion Movement
Click
85
PA RT
02
3
PART
4 Drag
PART
1 3 Wait
Wait untill the motion ends.
Go to the begining and repeat when motion
ends.
1 Click
2 Click
3 Click
86
PA RT
1 5 Robot Motion
DR-Visual Logic Programming
02
PART
PART
87
PA RT
02
Motor Description
Motor module has two types of oerating modes. Positions control mode and Speed control model.
PART
88
PA RT
02
PART
PART
89
PA RT
02
0 1 Assign Variable
Operating the robot is same as operating the
robot servo motor. Value has to be assigned so
that servo will be able to operate.
Click
0 2 Start
Click and drag the connecting line located at left
side of the module to the Start Point and dock.
Drag
0 3 Start Programming
When the module and the Start Point is docked
properly, module will become active and change
color as seen in the photo to the left.
This means programming has started.
90
PA RT
0 4 Entire Program
DR-Visual Logic Programming
02
PART
PART
0 5 Viewing C-Like
Click
Click the C-like tab near the top right and task
programming window will open as shown in the
photo to the left. This is the task window of the
entire program. Codes are very similar to the C
language structure so studying the codes will
help the user become familiar with the C language
structure. Cursor will jump follwing the clicked
module, making it easy to see the module
changing to text
91
PA RT
02
PART
PART
0 6 Variable Setup
2 Select
1 Click
3 Input
92
PA RT
02
2
1
3
PART
PART
2
3
4
2
1
93
PA RT
02
2
1
3
PART
PART
2
1
3
4
2
1
3
94
PA RT
1 3 Delay
DR-Visual Logic Programming
02
Delay 1.5 s.
PART
PART
2
3
95
PA RT
1 6 Delay
DR-Visual Logic Programming
02
Delay 1s.
PART
PART
3
45
96
PA RT
1 9 Delay
DR-Visual Logic Programming
02
Delay 1s.
PART
PART
1
2
2
3
4
97
PA RT
2 2 Delay
DR-Visual Logic Programming
02
Delay 0.3s.
Short delay as dance has started.
PART
PART
2
3
2
3
98
PA RT
02
PART
PART
2
3
4
2 6 Delay
Delay 0.3s.
Short delay as dance has started.
99
PA RT
02
PART
2
3
PART 4
2
3
4
2
3
4
100
PA RT
3 1 Delay
DR-Visual Logic Programming
02
Delay 0.3s.
Short delay as dance has started.
PART
PART
End Wave.
1
2
3
End Wave.
Select Motion > Motor.
Select Mode : Position .
Set Position : 343.
Set Motor ID : 2.
Set Time : 40 . Motor will turn to set angle in
0.448s.
101
PA RT
02
2
3
PART
PART
End Wave.
Select Motion > Motor.
Select Mode : Position .
Set Position : 512.
Set Motor ID : 4.
Set Time : 40 . Motor will turn to set angle in
0.448s.
3 5 Delay
Delay 0.3s.
Short delay as dance has started.
2
3
102
PA RT
02
PART
PART
2
3
3 8 Delay
Delay 0.5s
103
PA RT
02
PART
PART
4 1 Delay
Delay 0.2s .
2
3
104
PA RT
02
PART
PART
4 4 Delay
Delay 0.2s .
1 Click
2 Click
3 Click
105
PA RT
4 6 Robot Motion
DR-Visual Logic Programming
02
PART
PART
106
PA RT
02
16 = 24
Hexadecimal
Binary
0
0 0 0 0
Right
Button
EX)
Right
Down
Left
2
0 0 1 0
0
0 0 0 0
4
0 1 0 0
Down
Up
Ok
Mode
0
0 0 0 0
8
1 0 0 0
h
h
Button
DRC has 6 buttons and pressed button is expressed by a 1 Byte. 1 Byte is made up of 8 Bits so 1Byte is able to carry 8
1s and 0s. 6 bits are required to express pressed (1) and released (0) status of 6 DRC buttons. As shown in the diagram
above, each button is matched with a single bit. Pressed button is expressed in 1s and 0s and it is shown in hexadecimal
format at bottom right side of the button module. Pressed right; button has value of 00100000 or 20h when converted to
hexadecimal format (h refers to hexadecimal). Pressed down button has value or 00001000 or 08h in hexadecimal format.
For something more complicated, pressed up+down button has value of 00001100 or 0Ch in hexadecimal format.
107
PA RT
02
PART
0
1
2
3
4
5
6
7
B G R
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
1
PART
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
True = 1 , False = 0
Blue
False : 0
True : 4
Green False : 0
True : 2
Red
False : 0
True : 1
led( )
led( 4 X Blue + 2 X Green + 1 X Red )
LED
DRC has seven LEDs but only three can be controlled by the task mode. Three bits are required to express on/off status of
the three LEDs; Red, Green, Blue. As shown in the diagram above, each LED (Red, Green Blue) is matched with a bit in an
ascending order from the lowest bit of the byte to the highest. LED lights up when the LED value is used as an input of the
LED module. All LEDs are turned off when the input value is 0(00000000) and they are turned on when the input value is
7(00000111). Blue in binary format is 4, Green 2, and Red 1. When on/off state of each individual LED is determined by the
value (true, false) of the variables Blue, Green, and Red, it is possible to control the LEDs by their variable names using 4 x
Blue + 2 x Green + 1 x Red as the input of the LED module. For example, when Blue and Green is true and Red false, it
becomes 4 x Blue + 2 x Green + 1 x Red = 6. 6 in binary format is 00000110. Green and Blue LED will light up when this
value is used as an input of the LED module.
Use the basic principals from above to program the Buttons and LEDs.
108
PA RT
0 1 Assign Variable
DR-Visual Logic Programming
02
PART
PARTClick
0 2 Start
Click and drag the connecting line located at left
side of the module to the Start Point and dock.
Drag
0 3 Start Programming
When the module and the Start Point is docked
properly, module will become active and change
color as seen in the photo to the left.
This means programming has started.
109
PA RT
0 4 Entire Program
DR-Visual Logic Programming
02
PART
PART
0 5 Viewing C-Like
Click
110
Click the C-like tab near the top right and task
programming window will open as shown in the
photo to the left. This is the task window of the
entire program. Codes are very similar to the C
language structure so studying the codes will
help the user become familiar with the C language
structure. Cursor will jump follwing the clicked
module, making it easy to see the module
changing to text.
PA RT
0 6 Initialize as False
DR-Visual Logic Programming
02
1 Click
2 Select
PART
PART
3 Select
4 Select
0 7 Red Variable
111
PA RT
0 8 Green Variable
DR-Visual Logic Programming
02
1
PART
PART
0 9 Blue Variable
2
1
1 0 BtnEnd Variable
2
1
112
PA RT
1 1 Assign Variable
DR-Visual Logic Programming
02
PART
PART
1 2 Loop
Forever infinite repetition.
1 3 Up Button
2
1
113
PA RT
1 4 BtnEnd
DR-Visual Logic Programming
02
PART
PART
1 5 ! Operator
2
1
3
Select Data > Operator module.
Select Operartor Type : Logic.
Select Logical Operator : ! .
1 6 And Operator
2
1
114
PA RT
1 7 Up Button Pressed
DR-Visual Logic Programming
02
PART
PART
1 8 If Switch
Runs the upper part when True.
1 9 Red Output
Copy and paste Red variable from front.
115
PA RT
2 0 ! Operator
DR-Visual Logic Programming
02
PART
PART
2 1 Red Input
When Red variable value is true it becomes false
and vice versa. Changed value is saved.
2 2 True Setup
116
PA RT
2 3 BtnEnd to True
DR-Visual Logic Programming
02
PART
PART
2 4 Red LED
Red LED will light when up button is pressed
once and go off when it is pressed once more.
2 5 Right Button
When Right is pressed.
117
PA RT
2 6 Green LED
DR-Visual Logic Programming
02
PART
PART
2 7 Down Button
When down button is pressed.
2 8 Blue LED
Blue LED will light when right button is pressed once
and go off when it is pressed once more.
118
PA RT
2 9 LED Value
DR-Visual Logic Programming
02
PART
PART
3
4
3 0 Blue
( 4 x Blue + 2 x Green + 1 x Red )
Copy the Blue variable from front.
3 1 Multiplication
119
PA RT
02
3 2 Constant 2
DR-Visual Logic Programming
PART
PART
3 3 Green
( 4 x Blue + 2 x Green + 1 x Red )
Copy the Green variable from front.
3 4 Multiplication
120
PA RT
02
3 5 Addition
DR-Visual Logic Programming
PART
PART
3 6 Red
( 4 x Blue + 2 x Green + 1 x Red )
Copy Red variable from front.
3 7 Addition
121
PA RT
3 8 LED
DR-Visual Logic Programming
02
PART
PART
122
PA RT
4 1 BtnEnd is True
DR-Visual Logic Programming
02
PART
PART
4 2 && Operator
2
3
4 3 If Conditional Statement
Run if just released button state is True.
123
PA RT
4 4 False Value
DR-Visual Logic Programming
02
PART
PART
124
1 Click
PA
RT
02
PART
PART
Red
4 8 Robot Motion
Green
Up button: Red
Right button: Green
Down button: Blue
LEDs will light up when pressed and go off when
pressed once more.
Blue
125
PA RT
02
0 1 Assign Variable
Operating the robot is same as operating the
robot servo motor. Value has to be assigned so
that servo will be able to operate.
Click Data > Variable module.
Click
0 2 Start
Drag
0 3 Start Programming
When the module and the Start Point is docked
properly, module will become active and
change color as seen in the photo to the left.
This means programming has started.
126
PA RT
0 4 Entire Program
DR-Visual Logic Programming
02
PART
PART
0 5 Viewing C-Like
Click the C-like tab near the top right and task
programming window will open as shown in the
photo to the left. This is the task window of the
entire program. Codes are very similar to the C
language structure so studying the codes will
help the user become familiar with the C language
structure. Cursor will jump follwing the clicked
module, making it easy to see the module changing
to text.
Click
0 6 Setup Constant
2
1
127
PA RT
2 Select
02
PART
3 Select
PART
1 Click
4 Input
2
1
3
4
5
2
1
3
4
128
PA RT
02
1
3
PART
PART
2
1
3
4
2
1
3
4
129
PA RT
1 3 Delay
DR-Visual Logic Programming
02
1
PART
PART
1 4 Loop
2
1
1 5 Light Sensor
2
1
3
130
PA RT
02
PART
PART
3
4
3
4
1
131
1 Click
PA
RT
DR-Visual
Programming
1 8 Download
2 ClickLogic
3 Click
02
PART
PART
1 9 Robot Motion
Robot is at attention posture under the bright light.
Robot will lift the right arm when the controller
cds is covered.
Robot will lower the arm when the cds is uncovered.
132
PA RT
02
0 1 Assign Variable
Operating the robot is same as operating the robot
servo motor. Value has to be assigned so that
servo will be able to operate.
Click Data > Variable module.
Click
0 2 Start
Drag
0 3 Start Programming
When the module and the Start Point is docked
properly, module will become active and
change color as seen in the photo to the left.
This means programming has started..
133
PA RT
0 4 Entire Program
DR-Visual Logic Programming
02
PART
0 5 Viewing C-Like
PART
Click
Click the C-like tab near the top right and task
programming window will open as shown in the
photo to the left. This is the task window of the
entire program. Codes are very similar to the C
language structure so studying the codes will
help the user become familiar with the C language
structure. Cursor will jump follwing the clicked
module, making it easy to see the module
changing to text.
0 6 Setup Constant
2 Select
1 Click
3 Input
134
PA RT
02
vos.
1
2
PART
PART
2
1
3
4
5
135
PA RT
02
2
PART
3
PART
1
2
3
2
3
136
PA RT
1 3 Delay
DR-Visual Logic Programming
This section makes the robot wait untill the robot
02
PART
PART
1 4 Loop
1 5 Sound Sensor
2
3
137
PA RT
02
PART
PART
2
3
4
5
2
3
4
5
1
138
PA RT
02
1 9 Sound Sensor
DR-Visual Logic Programming
PART
PART
2
3
2
3
4
139
PA RT
02
PART
4
PART
1 Click
2 Click
3 Click
140
PA RT
2 4 Robot Motion
DR-Visual Logic Programming
robot will lift the left arm with left side clap and
02
PART
PART
Clap clap
Clap clap
141
PA RT
02
0 1 Variable Setup
Click
0 2 Start
Drag
0 3 Start Programming
When the module and the Start Point is docked
properly, module will become active and change
color as seen in the photo to the left.This means
programming has started..
142
PA RT
0 4 Entire Program
DR-Visual Logic Programming
02
PART
PART
0 5 Viewing C-Like
Click
Click the C-like tab near the top right and task
programming window will open as shown in the
photo to the left. This is the task window of the
entire program. Codes are very similar to the C
language structure so studying the codes will
help the user become familiar with the C language
structure. Cursor will jump follwing the clicked
module, making it easy to see the module
changing to text.
0 6 Setup Constant
2 Select
1 Click
3 Input
143
PA RT
02
1
2
3
2
1
3
4
5
144
PA RT
02
2
PART
PART
1
2
3
2
3
145
PA RT
1 3 Delay
DR-Visual Logic Programming
This section makes the robot wait untill the robot
02
1 4 Loop
2
1
1 5 Sound Sensor
2
3
146
PA RT
02
PART
PART
2
3
1 8 Delay
147
PA RT
02
2 0 Delay
Add Delay to prevent any other motion after returning to attention posture.
When 1.5s Delay value is added. Robot will not
move or register sound during the delay. Robot
will respond to sound again after the Delay.
2 1 Continue
Return to the beginning of the loop after 1.5s Delay.
148
PA RT
2 2 Summary
DR-Visual Logic Programming
02
PART
PART
3
Select Sensor > Sound Sensor module.
Compare : < .
Value : -1 . Respond when smaller than -1.
149
PA RT
02
2 6 Delay
Whle the arm is moving, other arm may start to
move or the moving arm may respond again to
the background noise. Delay is added to prevent
such occurences while the arm is in motion.
No other motion is allowed during the 0.5s of
Delay except for the right arm.
1
3
150
PA RT
02
2 8 Delay
DR-Visual Logic Programming
PART
PART
1 Click
2 Click
3 Click
151
PA RT
3 1 Robot Motion
DR-Visual Logic Programming
robot will lift the left arm with left side clap and
02
Clap clap
Clap clap
152
PA RT
02
Digital DistancePART
Sensor
PART Example Step by Step
Example Description
Analog sensor is capable of detecting the actual distance from an object whereas digital sensor uses specific distance as
a reference to judge how far or near it is from the reference distance. Robots with wheels use the sensor for cliff detection
more often than for object avoidance and humanoid robots with moving legs use the sensor for object avoidance rather than
for cliff detection. This example will use the sensor for object detection and avoidance. Compare the program and the result
with the analog sensor program. When the robot nears the wall, it will move backwards, change direction and move forward
again. This example requires digital distance sensor to be installed at ADC port #1 (left).
0 1 Assign Variable
Operating the robot is same as operating the robot
servo motor. Value has to be assigned so that
servo will be able to operate.
Click
0 2 Start
Click and drag the connecting line located at left
side of the module to the Start Point and dock
Drag
0 3 Start Programming
When the module and the Start Point is docked
properly, module will become active and change
color as seen in the photo to the left.This means
programming has started..
153
PA RT
0 4 Entire Program
DR-Visual Logic Programming
02
PART
PART
0 5 Viewing C-Like
Click
Click the C-like tab near the top right and task
programming window will open as shown in the
photo to the left. This is the task window of the
entire program. Codes are very similar to the C
language structure so studying the codes will
help the user become familiar with the C
language structure. Cursor will jump follwing the
clicked module, making it easy to see the module
changing to text.
0 6 Setup Constant
2 Select
1 Click
3 Input
154
PA RT
02
1
2
PART
PART
0 8 Motion Ready
2
3
4
0 9 Delay
155
PA RT
1 0 Loop
DR-Visual Logic Programming
02
PART
PART
2
3
1 2 If Conditional Statement
Proceed if True, go to next conditional statement if
False.
156
PA RT
1 3 Forward
DR-Visual Logic Programming
02
PART
PART
2
3
1
1 5 Wait
Wait untill the motion ends.
Go to the begining and repeat when motion
ends.
157
PA RT
02
2
3
1
PART
PART
1 7 If Conditional Statement
Run statement within True if less than 10cm from the
wall.
1 8 For Loop
1
2
3
4
5
158
PA RT
1 9 Walk Backwards
DR-Visual Logic Programming
#1is a walk backwards motion.
02
PART
PART
2 0 Check Motion
Use Playing Motion to check the robot motion.
When the motion ends, return to the start of the
For statement.
159
PA RT
2 2 Right Turn
DR-Visual Logic Programming
02
PART
PART
2 3 Entire Program
Program make the robot walk froward when the
distance to the wall is greater than 10cm . If the
distance is less than 10cm, robot will repeat the
backward and right turn motion according to the For
statement and avoid the obstacle.
1 Click
160
2 Click
3 Click
PA RT
2 5 Robot Motion
DR-Visual Logic Programming
02
PART
PART
10cm
161
PA RT
02
0 1 Assign Variable
Operating the robot is same as operating the robot
servo motor. Value has to be assigned so that
servo will be able to operate.
Click
0 2 Start
Drag
0 3 Start Programming
When the module and the Start Point is docked
properly, module will become active and change
color as seen in the photo to the left.This means
programming has started..
162
PA RT
0 4 Entire Progam
DR-Visual Logic Programming
02
PART
PART
0 5 Viewing C-Like
Click
Click the C-like tab near the top right and task
programming window will open as shown in the
photo to the left. This is the task window of the
entire program. Codes are very similar to the C
language structure so studying the codes will
help the user become familiar with the C language
structure. Cursor will jump follwing the clicked
module, making it easy to see the module
changing to text.
0 6 Setup Constant
2 Select
1 Click
3 Input
163
PA RT
02
1
2
PART
PART
0 8 Motion Ready
2
3
4
0 9 Delay
164
PA RT
1 0 Loop
DR-Visual Logic Programming
02
PART
PART
4
5
1 2 If Conditional Statement
Proceed if True or go to the next conditional
statement if False.
165
PA RT
1 3 Forward
DR-Visual Logic Programming
02
PART
PART
2
3
4
5
1 5 If Conditional Statement
Run statement within True if less than 20cm from the
obstacle.
166
PA RT
1 6 Left Turn
DR-Visual Logic Programming
02
PART
PART
2
3
167
PA RT
1 9 Wait
DR-Visual Logic Programming
02
PART
PART
1 Click
2 Click
3 Click
2 1 Robot Motion
Robot will walk forward and then make a left turn if it
detects an obstacle within 20cm distance.
20cm
168
PA RT
02
When the robot is in prone position (lying face down), Z axis - acclerates and its value is approximately - 4096.
When the robot is in supine position ( lying on the back ), Z axix + accelerates and its value is approximately 4096. ( 4096 is approximately 1g force of gravity value. )
169
PA RT
0 1 Assign Variable
DR-Visual Logic Programming
02
Operating the robot is same as operating the robot servo motor. Value has to be assigned so that
servo will be able to operate.
PART Click
PART
0 2 Start
Click and drag the connecting line located at left
side of the module to the Start Point and dock
Drag
0 3 Start Programming
When the module and the Start Point is docked
properly, module will become active and change
color as seen in the photo to the left.This means
programming has started..
170
PA RT
02
0 4 Entire Program
DR-Visual Logic Programming
Entire program using the accleration sensor to
make the robot stand after falling.
PART
PART
0 5 View C-Like
Click
Click the C-like tab near the top right and task
programming window will open as shown in the
photo to the left. This is the task window of the
entire program. Codes are very similar to the C
language structure so studying the codes will
help the user become familiar with the C language
structure. Cursor will jump follwing the clicked
module, making it easy to see the module
changing to text.
0 6 Setup Constant
2 Select
1 Click
3 Input
171
PA RT
02
1
PART
4
PART
0 8 Loop
Select Flow > Loop module.
Select Condition: Forever.
Infinite loop.
2
3
3
172
PA RT
1 0 If Conditional Statement
DR-Visual Logic Programming
02
PART
PART
2
3
4
1 2 Delay
Set delay to 1.5s to prevent next step from staring
before Motion Ready ends.
173
PA RT
02
PART
PART
2
3
1 5 If Conditional Statement
Robot gets up if True.
174
PA RT
1 6 Motion Ready
DR-Visual Logic Programming
02
1
PART
PART
3
4
1 7 Delay
Set delay to 1.5s to prevent next step from staring
before Motion Ready ends.
175
PA RT
1 9 Getting Back Up
DR-Visual Logic Programming
02
PART
PART
2 1 Wait
Wait untill the motion ends.
Go to the begining and repeat when motion
ends.
176
PA RT
2 2 Entire Program
DR-Visual Logic Programming
02
PART
PART
1 Click
2 Click
3 Click
177
PA RT
2
2 4 Robot Motion
DR-Visual Logic
Programming
02
PART
PART
178
PA RT
02
179
Channel setting
Bothe
the Remote control channel and DRC channel is user selectable but selected channel in DRC must match
PA RT
the remote controller channel in order for DRC to receive data from the remote control. Remote control channel
02
can be selected by pressing 1~0 number + OK button simultaneously. DRC channel is selected by changing the
RmcChannel value in MPSU Ram Data. RmcChannel values corresponding to remote control numbers are as follows.
PART
PART
180
RmcChannel Value
0+OK
97(0x61)
1+OK
98(0x62)
2+OK
99(0x63)
3+OK
100(0x64)
4+OK
101(0x65)
5+OK
102(0x66)
6+OK
103(0x67)
7+OK
104(0x68)
8+OK
105(0x69)
9+OK
106(0x6A)
Example Description
This
PAexample
RT associates remote control number button to a music note and outputs Do,Re,...Do (1~8) notes.
02
Note pictch is dependent on the value of the Note Pitch in Motion > Sound module. DRC controller has total of 38 pitches
from 0~37 and it is able to ouptut total of 3 octaves.
PART
PART
0 0 Sound Property Window
Select Motion > Sound module.
Mode has Melody & Note. Melody selects and
plays one of the saved edited notes.
Note Mode is selected to use the 36 note pitches.
Refer to the table below
Note Pitch from 0~37 can be selected. Note
pitches comprise total of of 3 octaves.
Note Length refers to the beat. Thirty-second
note to the whole note can be selected.
Refer to the table below
Note Pitch
No.
Note
NA
No.
10
11
12
Note
Do
Do#
Re
Re#
Mi
Fa
Fa#
Sol
Sol#
La
La#
Si
No.
13
14
15
16
17
18
19
20
21
22
23
24
Note
Do
Do#
Re
Re#
Mi
Fa
Fa#
Sol
Sol#
La
La#
Si
No.
25
26
27
28
29
30
31
32
33
34
35
36
37
Note
Do
Do#
Re
Re#
Mi
Fa
Fa#
Sol
Sol#
La
La#
Si
Do
181
Note Length
PA RT
No.
Raw
Data
12
18
24
36
48
72
96
144
192
(ms)
38.4
76.8
115.2
153.6
230.4
307.2
460.8
614.4
921.6
1228.8
Note
32
note
16
note
16 dot
PART
8
note
8 dot
note
4
note
4 dot
note
2
note
2 dot
note
Whole
note
02
PART
note
0 1 Assign Variable
Select Data > Variable module.
Click
0 2 Start
Drag
0 3 Start Programming
When the module and the Start Point is docked
properly, module will become active and change
color as seen in the photo to the left.This means
programming has started..
182
PA RT
0 4 Entire Program
DR-Visual Logic Programming
02
PART
PART
0 5 Viewing C-Like
Click
Click the C-like tab near the top right and task
programming window will open as shown in the
photo to the left. This is the task window of the
entire program. Codes are very similar to the C
language structure so studying the codes will
help the user become familiar with the C language
structure. Cursor will jump follwing the clicked
module, making it easy to see the module
changing to text.
183
PA RT
02
PART
PART
0 6 Setup Constant
1 Click
2 Select
3 Input
184
PA RT
02
0 7 Variable Name
DR-Visual Logic Programming
2
1
PART
PART
0 9 Setup ! operator
! converts true / false value to opposite. Output
value of IRReceive module is converted to opposite
value and used as input value of the while
statement.
185
PA RT
1 0 While Loop
DR-Visual Logic Programming
02
PART
PART
2
1
2
1
186
PA RT
02
PART
PART
1 4 IF Conditional Statement
Run if True.
1 5 Save Do Note
As explanined previously, Note Pitch ( 3 octaves )
number 25 referst to Do note.
Change the Scale value to Do
Select Data>Variable module.
Select Type : Contant
Select Constant Type: int.
Set Constant Value : 25 . 25 refers to Do.
187
PA RT
1 6 scale
DR-Visual Logic Programming
02
PART
PART
2
If rmcRecieved value is True, it denotes one of the
remote control button (1~8) was pressed.
2
1
188
PA RT
1 9 1 -> Do Note
DR-Visual Logic Programming
02
PART
PART
2 0 2 -> Re Note
Program saves note Re in the scale when reomote
control button 2 is pressed.
Scale = No 27 is Re note.
2 1 3 -> Mi Note
Program saves note Mi in the scale when reomote
control button 3 is pressed.
Scale = No 29 is Mi note.
189
PA RT
2 2 4 -> Fa note
DR-Visual Logic Programming
02
PART
PART
2 4 6 -> Ra Note
Program saves note Ra in the scale when reomote
control button 6 is pressed.
Scale = No 34 is Ra note .
190
PA RT
2 5 7 -> Si Note
DR-Visual Logic Programming
02
PART
PART
2 6 8-> Do Note
Program saves note Do in the scale when reomote
control button 8 is pressed.
Scale = No 37 is Do note .
3
4
191
PA RT
02
PART
PART
2 9 Comparison Operator ==
Select Data > Operator module
Select Operator Type : Compare .
Select Compare Operator: == .
rmcReceived = = refers to true ,
shows rmcReceived is equal to true .
192
PA RT
02
PART
PART
3 2 Sound Play
1
2
3 3 BuzzTime
1
2
3
193
PA RT
3 4 Wait
DR-Visual Logic Programming
02
PART
PART
1 Click
2 Click
3 Click
194
PA RT
02
3 7 Robot Motion
DR-Visual Logic Programming
Press Remote control buttons(1~8) to play notes.
End task by pressing the power button for more
than 1s.
PART
PART
Click
Click
195
PART
Apendix
PART
PART
196
PART
Apendix
PART
PART
197
PART
Apendix
PART
PART
Appendix
198
PART
Apendix
Address
Address refers to the register address. In order to read/write to the register, packet must contain the relevant
register address.
Default
Factor default values. Rollback command is used to the change the cotents of the Non-Volatile regsters back
to factory default values.
Valid Range
Valid data range register can have. Error will occur when the data is being copied to the the Volatile register if the
input data exceeds valid rage and the data will be turncated to fit within the valid range of the volatile register.
RW
RO(Read Only) refers to registers where data can only be read from but not written to. Error will occur if an attempt is made to write to the RO registers. RO Registers contain such data as the controller model number,
firmware version, and sensor data. RW registers can be read from and written to.
e(Reg_Name) : Refers to Reg_Name of Non-Volatile Register(EEP Register)
r(Reg_Name) : Refers to Reg_Name of Volatile Register(RAM Register).
199
Addr
Type
Bytes
Default
Valid Range
RW
Comments
Model No1
0x05
RO
Model No2
0x54
RO
Version1
0x01
RO
Version2
0x22
RO
Baud Rate
0x10
Refer 08page
RW
Special Function
0x00
0x00~0xF3
RW
Reserved
0x00
ID
0xFD
0x00~0xFD
RW
Ack Policy
0x01
0x00~0x02
RW
0x03
0x00~0x7F
RW
10
0x7F
0x00~0x7F
RW
11
0x01
0x00~0x01
RW
12
Min. Voltage
0x5F
0x00~0xFE
RW
13
Max. Voltage
0x88
0x00~0xFE
RW
14
Max.Temperature
0xDF
0x00~0xFE
RW
15
Remocon Channel
0x61
0x61~0x6A
RW
16
0x04
0x00~0xFE
RW
17
0x50
0x00~0xFE
RW
18
0xBB
0x00~0xFE
RW
19
0x0138
0x0000 ~
0x7FFF
RW
Temperature/Voltage Error
Detection Period
(0x0138 : About 500ms)
21
Packet Garbage
Check Period
0x007D
0x0000
~0x7FFF
RW
Firmware version
Address 0-6 contains basic controller and communications data . Address 7-22 contains controller function data. Data
in address 7-22 are copied to Volatile register when the controller is rebooted.
200
Addr
Type
Bytes
Valid Range
RW
Comments
ID
0x00~0xFD
RW
Ack Policy
0x00~0x02
RW
0x00~0x7F
RW
0x00~0x7F
RW
0x00~0x01
RW
Min. Voltage
0x00~0xFE
RW
Max. Voltage
0x00~0xFE
RW
Max. Temperature
0x00~0xFE
RW
Remocon Channel
0x61~0x6A
RW
0x00~0xFE
RW
10
0x00~0xFE
RW
11
0x00~0xFE
RW
12
0x0000~0x7FFF
RW
14
0x0000~0x7FFF
RW
16
Status Error
0x00~0x7F
RW
17
Refer to 52 page
RW
22
LED Control
0x00~0x07
RW
23
0x00~0xFF
RW
24
Connected Program
0~3
RW
25
Zigbee Channel
11~26
RW
26
Zigbee PANID
0x0000~0xFFFF
RW
28
Zigbee SADDR
0x0000~0xFFFF
RW
Zigbee ID
30
Zigbee DSTADDR
0x0000~0xFFFF
RW
Matching Zigbee ID
32
Zigbee ACKREQ
0~2
RW
33
Zigbee BACKOFF
0~2
RW
34
Servo Count
0~32
RO
35
Servo ID[0]~[32]
33
0x00~0xFE
RO
201
202
Addr
Type
Bytes
Valid Range
RW
Comments
68
Playing Motion
0x00~0x01
RO
69
Playing Task
0, 1, 3
RO
70
Charger Connected
0~1
RO
71
Buzzer Scale
0x00~0x25
RO
Buzzer ptich
72
Buzzer Time
0~192
RO
73
Button Status
0x00~0x3F
RO
Button Status
74
Remocon Length
0~240
RO
75
Remocon Data
0x00~0x1D,0xFE
RO
76
0x00~0xFE
RO
77
Temperature Value
0x00~0xFE
RO
78
0x00~0xFE
RO
79
0~2
RO
80
0~2
RO
81
0x0000~0xFFFF
RO
83
0x0000~0xFFFF
RO
85
ACC/GYRO Connected
0~1
RO
86
ACC X Value
-4096~4095
RO
88
ACC Y Value
-4096~4095
RO
90
ACC Z Value
-4096~4095
RO
92
GYRO X Value
-32768~32767
RO
94
GYRO Y Value
-32768~32767
RO
96
GYRO Z Value
-32768~32767
RO
98
0~250
RO
99
Sound Direction
-2~2
RO
100
Reserved
101
Tick
0~60000
RO
103
DRT-HWW1 Connected
0~1
RO
104
DRC-004TO Connected
0~1
RO
105
Reserved
106
64
0x00~0x80 * 64
RO
170
Servo Position[0]~[31]
64
0x0000~0x7FFF
RO
234
0x00~0x80
RO
235
0x00~0x7F
RO
236
0x00~0x80
RO
237
0x00~0x7F
RO
Reserved
Baud Rate
Register Value
57,600
34
115,200
16
200,000
250,000
400,000
500,000
666,667
203
Bit
Value
Mode
0x01
0x02
0x04
Reserved
0x08
Reserved
0x10
Reserved
0x20
Reserved
0x40
Reserved
0x80
Reserved
* Custom Sensor Mode: This mode is for using custom sensors with
DRC-005T. DRC-005T has 4pin sensor ports on each side which can
normally be used with only limited type of sensors. However, by using
custom sensor mode, it is possible to connect other type of sensors to
these ports providing sensors use 5V input power. Ports on each side
can accept 1 analog and 1 digital sensor for total of 4 custom sensors (2
digital and 2 analog). Analog sensor values r(ADC Port 1 Sensor Value)
and r(ADC Port 2 Sensor Value) are expressed in 10 bits (0~1023), digital
sensor values r(ADC Port 1 Sensor Type) and r(ADC Port 2 Sensor Type)
are expressed by 0~1. Sensor port pin map is as shown in the photo.
* TTL Communication Mode: PC and DRC-005T uses RS-232C 5~10V communications level. However, it is
possible to control the DRC-005T like a PC using 3.3V TTL level instead of RS-232C level by setting the DRC-005T communication mode to TTL communication mode. Zigbee connection pin is used to communicate with DRC-005T using TTL
level. Zigbee connection pin is as shown below.
204
Torque Off Policy(EEP Register Address #9, RAM Register Address #2)
Determines whether to release(off) the torque to the connected servo motors when error is detected.
(r(Torque Off Policy) & r(Status Error)) is True, all connected servo motors will have the torque released(off). Servos with
torque off will not be able to move.
r(Status Error) Error state has to be cancelled first to turn the motors back to Torque On state.
& is a Bitwise AND operator.When peforming A & B operation, binary representation of A & B are compared and the
result is shown as 1 only if both A and B has 1 in the binary format. Exampe) 00101110 & 10110110 = 00100110
Alarm LED Policy(EEP Register Address #10, RAM Register Address #3)
Determines whether to blink warning LED when error detected.
(r(Alarm LED Policy) & r(Status Error)) is True, TX, RX, Spare LED on controller will blink and the warning LED blinkd perid
is determined by the r(LED Blink Period).
Original function of the TX, RX, Spare LED will be ignored while the LEDs are blinking error warning.
r(Status Error) has to be cancelled first in order for TX, RX, Spare LED to return to their normal function.
Status Check Policy(EEP Register Address #11, RAM Register Address #4)
Determines whether controller should continuouisly read the current servo position. When r(Status Check Policy) is set at 1,
Controller will continuously read the current servo position and servo status and update the r(Servo Status Error & Status
Detail[0]~[31]) and r(Servo Position[0]~[31]). Controller will not perform the update if r(Status Check Policy) is set at 0.
205
Servo Ack Wait Tick(EEP Register Address #16, RAM Register Address #9)
Wait to receive Servo Ack after sending cut request to the servo connected to the DRC. No reply received judgment is
made if Servo Ack is not received by the DRC within the prescribed time based on the estimated size of the Servo Ack,
Servo Ack wait Tick refers to the wait time for the shortest Servo Ack (9 byte) with the wait time increasing as the length of
the Servo Ack increases. 1 tick is equal to 1.6ms and the default value is 0x04 (approximately 6.4ms).
Zigbee Ack Wait Tick (EEP Register Address #17, RAM Register Address #10)
Maximum waiting time for receiving reply packet (ACK Packet) from the Zugbee module connected to DRC. It the return
packet (ACK Packet) is not received within the maximum waiting time, it is assumed no reply will be received. 1tick = 1.6ms,
Default value is 0x50( 128ms).
LED Blink Period(EEP Register Address #18, RAM Register Address #11)
Alarm LED blink rate when LED blinks according to the r(Alarm LED Policy) when error detected. LED will be on for r(LED
Blink Period) and off for r(LED Blink Period) with continous repetition. 1tick = 1.6ms., Default value is 0xBB(Appx 300ms).
ADC Fault Check Period(EEP Register Address #19, RAM Register Address #12)
Input voltage and temerature check period. If input voltage and the temeratrure exceeds maximum limit for longer than
r(ADC Fault Check Period), it is assumed that error has occured. 1tick= 1.6ms, Default value is 0x0138( 500ms).
Packet Garbage Check Period(EEP Register Address #21, RAM Register Address #14)
Incomplete or garbage packet check period. If incomplete packet is received or if complete packet is not received within
r(Packet Garbage Check Period), incomplete packet will be deleted and #2 bit Invaild Pacekt will be selectd in r(Status
Error) . Depending on where the packet was coming from, 0x41(Zigbee module incomplete reply packet)or 0x51(Servo
incomplete reply packet), or 0x61(PC incomplete request packet) will be added to r(Error Codes[0]~[4]).
206
Bit
Value
Type
0x01
0x02
0x04
Invalid Packet
0x08
Servo Missing
0x10
0x20
0x40
0x80
Reserved
Bit
Value
LED
0x01
TX(Red)
0x02
RX(Green)
0x04
Spare(Blue)
207
208
Value
Pitch
Value
Pitch
Value
Pitch
Value
Pitch
rest
10
3Ra
20
4Sol
30
5Fa
3Do
11
3Ra#
21
4Sol#
31
5Fa#
3Re#
12
3Si
22
4Ra
32
5Sol
3Re
13
4Do
23
4Ra#
33
5Sol#
3Re#
14
4Do#
24
4Si
34
5Ra
3Mi
15
4Re
25
5Do
35
5Ra#
3Fa
16
4Re#
26
5Do#
36
5Si
3Fa#
17
4Mi
27
5Re
37
6Do
3Sol
18
4Fa
28
5Re#
3Sol#
19
4Fa#
29
5Mi
209
Bit
Value
Button
0x01
Mode
0x02
OK
0x04
Up
0x08
Down
0x10
Left
0x20
Right
210
Hovis remote control keymap is as shown in the picture to the left. IR Receive module data values correspond
to numbers in the left key.
For example, if the top left power button is pressed, Data 0 is received by the DRC. Robot can be programmed
to take certain action when ever the power button is pressed by setting the Data to 0 in the IR RECEIVE module
and connecting to Switch module input.
Bothe the Remote control channel and DRC channel is user selectable but selected channel in DRC must match
the remote controller channel in order for DRC to receive data from the remote control. Remote control channel
can be selected by pressing 1~0 number + OK button simultaneously. DRC channel is selected by changing the
RmcChannel value in MPSU Ram Data. RmcChannel values corresponding to remote control numbers are as follows.
97(0x61)
1+OK
98(0x62)
2+OK
99(0x63)
3+OK
100(0x64)
4+OK
101(0x65)
5+OK
102(0x66)
6+OK
103(0x67)
7+OK
104(0x68)
8+OK
105(0x69)
9+OK
106(0x6A)
211
212
213
214
215
PART
Apendix
Protocol Format
PART
Overview
Packet controlling the DRC is divided into Request packet used when communicating from PC to DRC and reply packet
Ack Packet from DRC to PC.
Setup
Commuications settings are as follows.
Baud Rate : 57,600 / 115,200 / 0.2M / 0.25M / 0.4M / 0.5M / 0.667M
Data Bit : 8
Stop Bit : 1
Parity : None
Flow Control : None
Communication speed of the Com port attached to the PC or USB to Serial Cable maybe limited by the hardware or the
driver. Check the Baud Rate if there is problem in communication. Default DRC factory value is 115,200bps.
Packet Structure
Item
Header
Packet Size
pID
value
0xFF
0xFF
7~223
0~0xFE
bytes
CMD
Check
Sum1
Check
Sum2
Optional
Data
Refer to details
MAX 216
1. Header(2 Byte)
Beginning of the packet. Composed of 2 bytes 0xFF & 0xFF.
2. Packet Size(1Byte)
Total byte size of the packet from Header to the Optional Data. Maximum Packet Size is 223. Packet Size exceeding 223
bytes will cause error.
3. pID(1Byte)
ID of the DRC to be controlled. Care is required When pID is 254(0xFE), as all DRC rceiving the packet becomes control
target. pID larger than 254 will cause error.
To distinguis from register r(ID), ID within the packet will be shows as pID.
216
4. CMD(1Byte)
In the request packet, CMD refers to command to be peformed by DRC. In the reply packet, CMD refers to the command
received by the DRC.There are total of 14 commands in the request packet and 13 in the reply packet. To distinguish the
reply packet CMD from the CMD in the request packet, 0x40 Bitwise OR operation is performed on the request packet CMD.
For example, 0x51 is the reply packet CMD to the request packet EEP_WRITE(0x11) CMD. Refer to the Command Set in page
20 for complete CMD list and page 22 to view detailed description of each CMD.
There are also 9 types of request packets that can be relayed to the servos connected to the DRC. DRC will check the
request packets before relaying them to the servo motors and once reply is received from the servos, it will be relayed to
the PC. Refer to the servo manual for more information on servo request and reply packets.
6. Optional Data(0~216Byte)
Optional data that changes according to the CMD type. Refer to the detailed command description in page 22 for more
information on Optional Data.
217
Command Set
List of commands that go in the CMD section of the protocol. There are 14 types of CMDs in the (Request Packet) and
13 types of CMDs in the reply packet (ACK Packet). When Request Packet is sent from the PC to DRC, DRC will perform
the task requested in the received packet and send the result or status back to the PC in the form of ACK Packet. Refer
to the pag 22 to view more detailed information on Request Packet & ACK packet forms and formats.
218
Name
Cmd
Remark
EEP_WRITE
0x11
EEP_READ
0x12
RAM_WRITE
0x13
RAM_READ
0x14
CON_CHECK
0x15
PLAY_MOTION
0x16
PLAY_TASK
0x17
PLAY_BUZZ
0x18
STAT
0x19
ROLLBACK
0x1A
REBOOT
0x1B
Request reboot
ZIGBEE
0x1C
REMOCON
0x1D
SERVO_FW_
UPDATE
0x1E
Cmd
Remark
EEP_WRITE
0x51
EEP_READ
0x52
RAM_WRITE
0x53
RAM_READ
0x54
CON_CHECK
0x55
PLAY_MOTION
0x56
PLAY_TASK
0x57
PLAY_BUZZ
0x58
STAT
0x59
ROLLBACK
0x5A
REBOOT
0x5B
ZIGBEE
0x5C
REMOCON
No reply packet.
SERVO_FW_
UPDATE
0x5E
219
Packet
Size
pID
CMD
Data[0]
Data[1]
Data[2]
Data[Length+1]
Value
7+2+Length
0~0xFE
0x11
Address
Length
EEP Data[0]
EEP
Data[Length-1]
Change Length number or values from EEP Register Address. Optional Data contains Address, Length, and Length number
of data. Optional Datal length is (2+Length) byte. Total Packet size is standard 7byte + (2+Length)byte = (9+Length) byte.
When DRC receives this particular packet, Values in Non-Volatile register address from Address to (Address+Length-1)
are changed from EEP Data[0] to EEP Data[Length-1].
Any changes made to the Non-Volatile memory does not have direct affect on the operation of the DRC. Values changed
by the EEP_WRITE will be copied to the Volatile register when the DRC is rebooted by the REBOOT CMD or when the power
is turned off and back on.
Example
Request Packet to change the e(Alarm LED Policy) of the DRC with r(ID)253 to 0x3
Item
Value
Header
0xFF
0xFF
Packet
Size
pID
CMD
CS1
CS2
Data[0]
Data[1]
Data[2]
0x0A(10)
0xFD
0x11
0xD2
0x2C
0x0A
0x01
0x3F
220
Packet
Size
pID
CMD
Data[0]
Data[1]
Value
7+2
r(ID)
0x51
r(Status Error)
r(Error Codes[0])
Send reply packet with r(Status Error) & r(Error Codes[0]) values included. With Optional Data length fixed at 2 bytes, total
Packet size is fixed at 9 bytes. pID contins the r(ID) of the replying DRC, CMD becomes 0x51 by applying 0x40 Bitwise OR
operation to the Request Packet CMD 0x11.
Reply Condition
EEP_WRITE reply is sent only when r(ACK Policy) is 2(Reply to all packets). Exception to this rule is when pID of the request
packet is 254(Broadcasting ID), in which case reply is not sent even if r(ACK Policy) is 2.
Example
Reply Packet after receiving request packet to change the e(Alarm LED Policy) of the DRC with r(ID)253 to 0x3
Item
Value
Header
0xFF
0xFF
Packet
Size
pID
CMD
CS1
CS2
Data[0]
Data[1]
0x09(9)
0xFD
0x51
0xA4
0x5A
0x00
0x00
Send current status and most recent error code.Both are 0x00 as there is no error.
221
Packet
Size
pID
CMD
Data[0]
Data[1]
Value
7+2
0~0xFE
0x12
Address
Length
Read Length number of values from EEP Register Address . Optional Data contains Address, Length, and Length number
of data. Optional Datal length is (2+Length) byte. Total Packet size is standard 7bytes + (2+Length)byte = (9+Length) byte.
When DRC receives this packet, values from Non-Volatile register address from Address to (Address+Length-1) are sent
by the reply packet.
Example
Request packet to read e(Min Voltage), e(Max Voltage), e(Max Temperature) values from DRC with r(ID) 253
Item
Value
Header
0xFF
0xFF
Packet
Size
pID
CMD
CS1
CS2
Data[0]
Data[1]
0x09(9)
0xFD
0x12
0xE8
0x16
0x0C
0x03
222
Packet Size
pID
CMD
Data[0]
Data[1]
Value
7+2+Length+2
r(ID)
0x52
Address
Length
Item
Data[2]
Data[Length+1]
Data[Length+2]
Data[Length+3]
Value
EEP Data[0]
EEP
Data[Length-1]
r(Status Error)
r(Error Codes[0])
Values in the Non-Volatile register address from Address to (Address+Length-1) are sent contained in EEP Data[0]to EEP
Data[Length-1]. r(Status Error) & r(Error Codes[0]) values are sent as well. Address, Length, Length number of values,
and r(Status Error) & r(Error Codes[0]) are contained in the Optional Data. Optional Data length is (2+Length+2) bytes. Total
packet size is standard 7 bytes + (4+Length) = (11+Length) bytes. pID contins the r(ID) of the replying DRC, CMD becomes
0x52 by applying 0x40 Bitwise OR operation to the Request Packet CMD 0x12.
Reply Condition
EEP_READ reply is sent when r(ACK Policy) is 1(Reply to only Read command), 2(Reply to all packets).Exception to this
rule is when pID of the request packet is 254(Broadcasting ID), in which case reply is not sent.
Example
Reply to Request packet to read e(Min Voltage), e(Max Voltage), e(Max Temperature) values from DRC with r(ID) 253
Item
Value
Header
0xFF
0xFF
Packet
Size
pID
CMD
CS1
CS2
Data[0]
Data[1]
0x0E(14)
0xFD
0x52
0xA6
0x58
0x0C
0x03
Item
Data[2]
Data[3]
Data[4]
Data[5]
Data[6]
Value
0x5F
0x88
0xDF
0x00
0x00
Send 3 bytes of data from Address 12 contained in Data[2]~Data[4]. e(Min Voltage) in Data[2], e(Max Voltage)in Data[3] ,
e(Max Temperature) in Data[4]. Send current status and the most recent error code contained in Data[5] and Data[6]. When
there is no error, both Data[5] and [6] contain 0x00.
223
Packet
Size
pID
CMD
Data[0]
Data[1]
Data[2]
Data[Length+1]
Value
7+2+Length
0~0xFE
0x13
Address
Length
RAM
Data[0]
RAM
Data[Length-1]
Change Length number or values from RAM Register Address. Optional Data contains Address, Length, and Length number of data. Optional Datal length is (2+Length) byte. Total Packet size is standard 7byte + (2+Length)byte = (9+Length)
byte. When DRC receives this particular packet, Values in Volatile register address from Address to (Address+Length-1)
are changed from RAM Data[0] to RAM Data[Length-1].
Example
Request Packet to change the r(Status Error) & r(Error Codes[0]~[4]) of the DRC with r(ID)253 to 0x00
item
Value
Packet
Size
pID
CMD
CS1
CS2
Data[0]
Data[1]
0x0F(15)
0xFD
0x13
0xF6
0x08
0x10
0x06
Header
0xFF
0xFF
item
Data[2]
Data[3]
Data[4]
Data[5]
Data[6]
Data[7]
Value
0x00
0x00
0x00
0x00
0x00
0x00
r(Status Error) address is 16, As 6 bytes of data after the address has to be changed. Address is 16, Length is 6, and RAM
Data[0]~RAM Data[5] is 0x00. Total Packet Size is (9+Length)= 15. Check Sum1 & Check Sum2 are calculated according
to the formaula in page 19.
Both r(Status Error) & r(Error Codes[0]~[4]) are R/W registers but because registers contain current MPSU status, values
cannot be changed arbitrarily .The choice of values for these 6 byte registers are to use current values or to change them
all to 0x00. If any other values are used Invalid Packet(#2 bit) will be selected in r(Status Error) and 0x73(r(Status Error)
and Invalid write command will be added to r(Error Codes[0]~[4]).
224
Packet
Size
pID
CMD
Data[0]
Data[1]
Value
7+2
r(ID)
0x14
r(Status Error)
r(Error
Codes[0])
Send reply packet with r(Status Error) & r(Error Codes[0]) values included. With Optional Data length fixed at 2 bytes, total
Packet size is fixed at 9 bytes. pID contins the r(ID) of the replying DRC, CMD becomes 0x53 by applying 0x40 Bitwise OR
operation to the Request Packet CMD 0x13.
Reply Condition
RAM_WRITE reply is sent only when r(ACK Policy) is 2(Reply to all packets). Exception to this rule is when pID of the request
packet is 254(Broadcasting ID), in which case reply is not sent even if r(ACK Policy) is 2.
Example
Reply to Request Packet to change the r(Status Error) & r(Error Codes[0]~[4]) of the DRC with r(ID)253 to 0x00
item
Value
Header
0xFF
0xFF
Packet
Size
pID
CMD
CS1
CS2
Data[0]
Data[1]
0x09(9)
0xFD
0x53
0xA6
0x58
0x00
0x00
Send current status and most recent error code.Both are 0x00 as there is no error.
225
Packet
Size
pID
CMD
Data[0]
Data[1]
Value
7+2
0~0xFE
0x14
Address
Length
Read Length number of values from RAM Register Address . Optional Data contains Address, Length, and Length number
of data. Optional Datal length is (2+Length) byte. Total Packet size is standard 7bytes + (2+Length)byte = (9+Length) byte.
When DRC receives this packet, values from Volatile register address from Address to (Address+Length-1) are sent by the
reply packet.
Example
Request packet to read e(Min Voltage), e(Max Voltage), e(Max Temperature) values from DRC with r(ID) 253
Item
Value
Header
0xFF
0xFF
Packet
Size
pID
CMD
CS1
CS2
Data[0]
Data[1]
0x09(9)
0xFD
0x14
0xE6
0x18
0x05
0x03
226
Packet Size
pID
CMD
Data[0]
Data[1]
Value
7+2+Length+2
r(ID)
0x54
Address
Length
Item
Data[2]
Data[Length+1]
Data[Length+2]
Data[Length+3]
Value
RAM Data[0]
RAM
Data[Length-1]
r(Status Error)
r(Error Codes[0])
Values in the Volatile register address from Address to (Address+Length-1) are sent contained in RAM Data[0]to RAM
Data[Length-1]. r(Status Error) & r(Error Codes[0]) values are sent as well. Address, Length, Length number of values,
and r(Status Error) & r(Error Codes[0]) are contained in the Optional Data. Optional Data length is (2+Length+2) bytes. Total
packet size is standard 7 bytes + (4+Length) = (11+Length) bytes. pID contins the r(ID) of the replying DRC, CMD becomes
0x54 by applying 0x40 Bitwise OR operation to the Request Packet CMD 0x14.
RAM_READ reply is sent when r(ACK Policy) is 1(Reply to only Read command), 2(Reply to all packets).Exception to this
rule is when pID of the request packet is 254(Broadcasting ID), in which case reply is not sent.
Example
Reply to Request packet to read r(Min Voltage), r(Max Voltage), r(Max Temperature) values from DRC with r(ID) 253
Item
Value
Header
0xFF
0xFF
Packet
Size
pID
CMD
CS1
CS2
Data[0]
Data[1]
0x09(9)
0xFD
0x54
0xA8
0x56
0x05
0x03
Item
Data[2]
Data[3]
Data[4]
Data[5]
Data[6]
Value
0x5F
0x88
0xDF
0x00
0x00
Send 3 bytes of data from Address 5 contained in Data[2]~Data[4]. r(Min Voltage) in Data[2], r(Max Voltage)in Data[3] ,
r(Max Temperature) in Data[4]. Send current status and the most recent error code contained in Data[5] and Data[6]. When
there is no error, both Data[5] and [6] cotnain 0x00.
227
Packet Size
pID
CMD
Data[0]
Data[1]
Data[Length]
Value
7+1+Length
0~0xFE
0x15
Length
ID[0]
ID[Length-1]
Checks to see if servos with ID of ID[0]~ID[Length-1] are connected to the DRC. Optional Data contains Length, Length
number of ID. Optional Data length is (1+Length) bytes. Total Packet size is standard 7bytes + (1+Length)byte = (8+Length)
byte. When DRC receives this packet, It initiates communication with the serovs with ID[0] to ID[Length-1]. Total number of
sucessfully contacted servos and their IDs are sent back by the ACK packet.
When Length is 0, all IDs from 0~253 are scanned.
Example
Request packet to check if servos with ID 0, 1, 2, 3, 4 are connected to DRC with r(ID) 253
Item
Value
Header
0xFF
0xFF
Packet
Size
pID
CMD
CS1
CS2
Data[0]
0x0D(13)
0xFD
0x15
0xE4
0x1A
0x05
Item
Data[1]
Data[2]
Data[3]
Data[4]
Data[5]
Value
0x00
0x01
0x02
0x03
0x04
There are 5 servos, therefor Length is 5. ID of the servos 0, 1, 2, 3, 4 are in Data[1] to Data[5]..Packet Size (8+Length) =
13. Check Sum1 & Check Sum2 are calculated according to the formaula in page 19.
228
Packet Size
pID
CMD
Data[0]
Value
7+1+Length+2
r(ID)
0x55
Length
Item
Data[1]
Data[Length]
Data[Length+1]
Data[Length+2]
Value
ID[0]
ID[Length-1]
r(Status Error)
r(Error Codes[0])
After performing ID scan, number of sucessfully scanned servos are entered in Length, ID values entered in ID[0] to
ID[Length-1] and sent back using reply packet together with r(Status Error) & r(Error Codes[0]) values. Address, Length,
Length number of values, and r(Status Error) & r(Error Codes[0]) are contained in the Optional Data. Optional Data length
is (1+Length+2) bytes. Total packet size is standard 7 bytes + (3+Length) = (10+Length) bytes. pID contins the r(ID) of the
replying DRC, CMD becomes 0x55 by applying 0x40 Bitwise OR operation to the Request Packet CMD 0x15.
Reply Condition
CON_CHECK reply is sent when r(ACK Policy) is 1(Reply to only Read command), 2(Reply to all packets).Exception to this
rule is when pID of the request packet is 254(Broadcasting ID), in which case reply is not sent.
Example
Request packet to check if servos with ID 0, 1, 2, 3, 4 are connected to DRC with r(ID) 253. Reply packet whenscan
result shows only ID 0,1,2 are connected.
Item
Value
Header
0xFF
0xFF
Packet
Size
pID
CMD
CS1
CS2
Data[0]
0x0D(13)
0xFD
0x55
0xA4
0x5A
0x03
Item
Data[1]
Data[2]
Data[3]
Data[4]
Data[5]
Value
0x00
0x01
0x02
0x00
0x00
ID scan result shows only ID 0, 1, 2 are connected. Data[0] showing Length is 3 and IDs are entered sequentially in
Data[1]~Data[3]. Send current status and the most recent error code contained in Data[4] and Data[5]. When there is no
error, both Data[4] and [5] cotnain 0x00. Packet Size (10+Length)=13
229
Packet Size
pID
CMD
Data[0]
Data[1]
Value
7+2
0~0xFE
0x16
Motion No.
When DR-SIM is used to save motion in DRC, saved motion receives a number between 0 to 127. PLAY_MOTION packet
runs the saved motion in DRC, Motion No. refers to the saved motion number. Motion Ready Flag decides whether to take
motion ready posture. When packet is sent with Motion Ready Flag set to 1, first frame of the motion will be played slowly.
Damage to the motor or fall due to sudden movent can be prevented by sening a packet with Motion Ready Flag set to 1
and then another packet with Flag set to 0 little later. Also, current motion will stop if packet is sent with motion No. 254(0xFE).
See below for arrangement of the motion with Motion No. & Motion Ready Flag
Motion No
Motion
0~127
Run Motion
0~127
254
0~1
Stop Motion
Example
Request packet to run Motion No 1 in DRC with r(ID) 253
Item
Value
Header
0xFF
0xFF
Packet
Size
pID
CMD
CS1
CS2
Data[0]
Data[1]
Data[1]
0x09(9)
0xFD
0x16
0xE2
0x1C
0x01
0x00
0x00
As motion being run is No.1, Motion No. is set to 1, Motion Ready Flag set to 0.
Request packet to run first frame of Motion No 2 in DRC with r(ID) 253
Item
Value
Header
0xFF
0xFF
Packet
Size
pID
CMD
CS1
CS2
Data[0]
Data[1]
0x09(9)
0xFD
0x16
0xE0
0x1E
0x02
0x01
As motion being run is No.2, Motion No. is set to 2, Motion Ready Flag set to 1.
230
Packet Size
pID
CMD
Data[0]
Data[1]
Value
7+2
r(ID)
0x56
r(Status Error)
r(Error Codes[0])
Send reply packet with r(Status Error) & r(Error Codes[0]) values included. With Optional Data length fixed at 2 bytes, total
Packet size is fixed at 9 bytes. pID contins the r(ID) of the replying DRC, CMD becomes 0x56 by applying 0x40 Bitwise OR
operation to the Request Packet CMD 0x16.
Reply Condition
PLAY_MOTION reply is sent when r(ACK Policy) is 2(Reply to all packets).Exception to this rule is when pID of the request
packet is 254(Broadcasting ID), in which case reply is not sent.
Example
Reply to request packet to run Motion No 2 in DRC with r(ID) 253
Item
Value
Header
0xFF
0xFF
Packet
Size
pID
CMD
CS1
CS2
Data[0]
Data[1]
0x09(9)
0xFD
0x56
0xA2
0x5C
0x00
0x00
Send current status and most recent error code.Both are 0x00 as there is no error.
231
Packet Size
pID
CMD
Data[0]
Value
7+1
0~0xFE
0x17
Instruction
Use DR-Visual Logic to run the Task saved in DRC. Depending oh the instruction, PLAY_TASK is divided into 4 commands
which perfom different function according to the Instruction.
When Instruction is 0, runs the Task in normal mode.
When Instruction is 1, runs Task in debugging mode.
When Instruction is 2, rusn the fisrt stop of the Task and stops. This Instruction has meaning only when in debugging mode.
When Instruction is 254, stops Task. Task stops regardless of whether its in normal or debugging mode.
Example
Request packet to run Task saved in DRC with r(ID) 253
Item
Value
Header
0xFF
0xFF
Packet
Size
pID
CMD
CS1
CS2
Data[0]
0x08(8)
0xFD
0x17
0xE2
0x1C
0x00
Header
0xFF
0xFF
Packet
Size
pID
CMD
CS1
CS2
Data[0]
0x08(8)
0xFD
0x17
0xE2
0x1C
0x01
Header
0xFF
0xFF
Packet
Size
pID
CMD
CS1
CS2
Data[0]
0x08(8)
0xFD
0x17
0xE0
0x1E
0x02
232
Packet Size
pID
CMD
Data[0]
Data[1]
Data[2]
Data[3]
Value
7+4
r(ID)
0x57
Program
Counter L
Program Counter H
r(Status Error)
r(Error Codes[0])
Packet Size
pID
CMD
Data[0]
Data[1]
Value
7+2
r(ID)
0x57
r(Status Error)
r(Error Codes[0])
Depending on the Instruction, PLAY_TASK replay packet is divided into two types.
Debugging reply packet shows which section of the task is running in 2 bytes by using Progam Counter L and Program
counter H. This information is used to find out which code is currently running when debugging Task in DR-Visual Logic.
Debuggin reply packet also includes r(Status Error) & r(Error Codes[0]) values. As Optional Data length is fixed at 4 bytes,
total packet size is 11 bytes. pID contins the r(ID) of the replying DRC, CMD becomes 0x57 by applying 0x40 Bitwise OR
operation to the Request Packet CMD 0x17.
Status reply packet includes r(Status Error) & r(Error Codes[0]) values. As Optional Data length is fixed at 2 bytes, total
packet size is fixed at 9 bytes. Debugging reply packet is used in circumstances related to debugging and status reply
packet in other circumstances. Refer to below to view the type of reply packet being sent depnding on the Instruction &
circumstances.
Instruction
Sucess
Fail
Status
Status
Debugging
Status
Debugging
Status
254
Status
Status
Instruction 0 (Task Running) and Instruction 254 (Task stop) are replied with status reply packet. Debuggin related instructions
such as Instruction 1 ( Run Task in debuggin mode) and Instruction 2 ( Run one step ) are replied with debugging reply
packet. However, under the circustances when requested command cannot be performed as when Instruction 1 is sent
while the Task is running or Instruction 2 is sent when Task is not running, reply will be with status reply packet.
233
Reply Condition
Status reply packet is sent when r(ACK Policy) is 2(Reply to all packets).Exception to this rule is when pID of the request
packet is 254(Broadcasting ID), in which case reply is not sent.
Debuggin reply packet is sent when r(ACK Policy) is 1(Reply to only Read command), 2(Reply to all packets).Exception to
this rule is when pID of the request packet is 254(Broadcasting ID), in which case reply is not sent.
Example
Reply to request packet to run Task saved in DRC with r(ID) 253
Item
Value
Header
0xFF
0xFF
Packet
Size
pID
CMD
CS1
CS2
Data[0]
Data[1]
0x09(9)
0xFD
0x57
0xA2
0x5C
0x00
0x00
As request packet Instruction is 0, reply with current status and most recent error code. There is no error. both Data [0] &
[1] wil have 0x00 values.
Reply to request packet to run Task saved in DRC with r(ID) 253 in debugging mode.
Item
Value
Header
0xFF
0xFF
Packet
Size
pID
CMD
CS1
CS2
Data[0]
Data[1]
Data[2]
Data[3]
0x0B(11)
0xFD
0x57
0xAA
0x54
0x0B
0x00
0x00
0x00
As request packet instruction is 1, reply with degugging reply packet. Current program counter location is saved in Data[0]
& Data[1]. Current location after starting debugging process is 0x000B. Current status and recent error code is saved in
Data[2] & Data[3].
Request to run one step of Task when DRC with r(ID) 253 is in debuggin mode.
Item
Value
Header
0xFF
0xFF
Packet
Size
pID
CMD
CS1
CS2
Data[0]
Data[1]
0x0B(11)
0xFD
0x57
0x86
0x78
0x26
0x00
Data[2]
Data[3]
0x00
0x00
As request packet instruction is 2, reply with degugging reply packet. Current program counter location saved in Data[0] &
Data[1] is showing 0x0026. Current status and recent error code is saved in Data[2] & Data[3].
234
Packet Size
pID
CMD
Data[0]
Data[1]
Value
7+2
0~0xFE
0x18
Reserved
Buzz No.
Run Buzzer saved in DRC. Buzzer can have number between 1 to 63, Send request packet with Buzzer number in Data[1]
Buzz No. Enter 0 in Data[0] as this space is Reserved for other data.
Example
Request packet to run Buzzer No. 5 in DRC with r(ID) 253.
Item
Value
Header
0xFF
0xFF
Packet
Size
pID
CMD
CS1
CS2
Data[0]
Data[1]
0x09(9)
0xFD
0x18
0xE8
0x16
0x00
0x05
Packet Size
pID
CMD
Data[0]
Data[1]
Value
7+2
r(ID)
0x58
r(Status
Error)
r(Error Codes[0])
Send reply packet with r(Status Error) & r(Error Codes[0]) values included. With Optional Data length fixed at 2 bytes, total
Packet size is fixed at 9 bytes. pID contins the r(ID) of the replying DRC, CMD becomes 0x58 by applying 0x40 Bitwise OR
operation to the Request Packet CMD 0x18.
Reply Condition
PLAY_ Buzz reply is sent when r(ACK Policy) is 2(Reply to all packets).Exception to this rule is when pID of the request
packet is 254(Broadcasting ID), in which case reply is not sent.
235
Example
Reply to request packet to run Buzzer No. 5 in DRC with r(ID) 253.
Item
Value
Header
0xFF
0xFF
Packet
Size
pID
CMD
CS1
CS2
Data[0]
Data[1]
0x09(9)
0xFD
0x58
0xAC
0x52
0x00
0x00
Send current status and most recent error code.Both are 0x00 as there is no error.
236
Packet Size
pID
CMD
Value
7+2
0~0xFE
0x18
Request current status of DRC. DRC sends reply packet with r(Status Error) & r(Error Codes[0]) values included.
Example
Request packet to DRC with r(ID) 253 to perform STAT command.
Item
Value
Header
0xFF
0xFF
Packet
Size
pID
CMD
CS1
CS2
0x07(7)
0xFD
0x19
0xE2
0x1C
Packet Size
pID
CMD
Data[0]
Data[1]
Value
7+2
r(ID)
0x59
r(Status Error)
r(Error Codes[0])
Send reply packet with r(Status Error) & r(Error Codes[0]) values included. With Optional Data length fixed at 2 bytes, total Packet size is fixed at 9
bytes. pID contins the r(ID) of the replying DRC, CMD becomes 0x59 by applying 0x40 Bitwise OR operation to the Request Packet CMD 0x19.
Reply Condition
Reply is sent to STAT request regardless of r(ACK Policy). Reply is sent even if the pID of request packet is 254(Broadcasting ID).
Exampe
Reply to request packet to DRC with r(ID) 253 to perform STAT command.
Item
Value
Header
0xFF
0xFF
Packet
Size
pID
CMD
CS1
CS2
Data[0]
Data[1]
0x09(9)
0xFD
0x59
0xAC
0x52
0x00
0x00
Send current status and most recent error code.Both are 0x00 as there is no error.
237
Packet Size
pID
CMD
Data[0]
Data[1]
Value
7+2
0~0xFE
0x1A
ID Skip
Baud Skip
Initialize Non-Volatile register using the factory default values saved in DRC. Initialized Non-Volatile will affect the operation
after DRC has been rebooted or power turned off and back on. ID Skip and Baud Skip in Data[0] & Data[1] determines
whether e(ID) & e(Baud Rate) will be exempt from initialization.When ID Skip is 1, e(ID) will not be initialized and when Baud
Skip is 1, e(Baud Rate) will not be initialized.
Example
Request packet to DRC r(ID) 253 to initialize Non-Volatile registers except for e(ID).
Item
Value
Header
0xFF
0xFF
Packet
Size
pID
CMD
CS1
CS2
Data[0]
Data[1]
0x09(9)
0xFD
0x1A
0xEE
0x10
0x01
0x00
Request packet will initialize the register with an exception of e(ID). ID Skip is 1, Baud Skip is 0.
Request packet to DRC r(ID) 253 to initialize register with exceoption on e(ID) & e(Baud Rate).
Item
Value
Header
0xFF
0xFF
Packet
Size
pID
CMD
CS1
CS2
Data[0]
Data[1]
0x09(9)
0xFD
0x1A
0xEE
0x10
0x01
0x01
Request packet will initialize the register with exception of e(ID) & e(Baud Rate). ID Skip is 1, Baud Skip is 1.
238
Packet Size
pID
CMD
Data[0]
Data[1]
Value
7+2
r(ID)
0x5A
r(Status Error)
r(Error Codes[0])
Send reply packet with r(Status Error) & r(Error Codes[0]) values included. With Optional Data length fixed at 2 bytes, total
Packet size is fixed at 9 bytes. pID contins the r(ID) of the replying DRC, CMD becomes 0x5A by applying 0x40 Bitwise OR
operation to the Request Packet CMD 0x1A.
Reply Condition
ROLLBACK reply is sent when r(ACK Policy) is 2(Reply to all packets).Exception to this rule is when pID of the request
packet is 254(Broadcasting ID), in which case reply is not sent.
Example
Reply to request packet to DRC r(ID) 253 to initialize Non-Volatile registers except for e(ID).
Item
Value
Header
0xFF
0xFF
Packet
Size
pID
CMD
CS1
CS2
Data[0]
Data[1]
0x09(9)
0xFD
0x5A
0xAE
0x50
0x00
0x00
Send current status and most recent error code.Both are 0x00 as there is no error.
239
Packet Size
pID
CMD
Value
0~0xFE
0x1B
Request packet to DRC requesting SW reset. When DRC receives this packet, it will reset itself and start initial booting sequence.
Example
Request packet with REBOOT
Packetcommand to DRC with r(ID) 253.
Item
Value
Header
0xFF
0xFF
Size
0x07(7)
pID
CMD
CS1
CS2
0xFD
0x1B
0xE0
0x1E
Packet Size
pID
CMD
Data[0]
Data[1]
7+2
r(ID)
0x5B
r(Status Error)
r(Error Codes[0])
Value
Send reply packet with r(Status Error) & r(Error Codes[0]) values included. With Optional Data length fixed at 2 bytes, total
Packet size is fixed at 9 bytes. pID contains the r(ID) of the replying DRC, CMD becomes 0x5B by applying 0x40 Bitwise
OR operation to the Request Packet CMD 0x1B.
Reply Condition
REBOOT reply is sent when r(ACK Policy) is 2(Reply to all packets).Exception to this rule is when pID of the request packet
is 254(Broadcasting ID), in which case reply is not sent.
Example
Reply to request packet Packet
with REBOOT command to DRC with r(ID) 253.
Item
Value
Header
0xFF
0xFF
Size
0x09(9)
pID
CMD
CS1
CS2
Data[0]
Data[1]
0xFD
0x5B
0xAE
0x50
0x00
0x00
Send current status and most recent error code. Both are 0x00 as there is no error.
240
Packet Size
pID
CMD
Data[0]
Value
7+1
0~0xFE
0x1C
Instruction
Request packet with commands related to conrolling the Zigbee module attached to DRC. Depending oh the instruction,
ZIGBEE is divided into 6 commands which perfom different function according to the Instruction.
There are 5 types (total 8 bytes) of Zigbee related registers in the Volatile register map, r(Zigbee PANID), r(Zigbee SADDR),
r(Zigbee DSTADDR), r(Zigbee ACKREQ), r(Zigbee BACKOFF). Each register corresponds to the property values saved in
the Zigbee module. Communication using Zigbee cannot be wired and wireless at the same time.
When Instruction is 0, Zigbee module property values are read to the Volatile register.
When Instruction is 1, Property values in Volatile register are replaced with property values in Zigbee module .
When Instruction is 2, Proerty values in Zigbee module are intialized to factory default values.
When Instruction is 3, Zigbee module is reset.
When Instruction is 4, Change to wired communication mode ( Using connection cable and COM PORT ).
Instruction is 5, Change to wireless communication mode (Wireless communication using Zigbee).
Example
Request packet to read Zigbee property values from DRC with r(ID) 253.
Item
Value
Header
0xFF
0xFF
Packet
Size
pID
CMD
CS1
CS2
Data[0]
0x08(8)
0xFD
0x1C
0xE8
0x16
0x00
241
Request packet to change the Zigbee module values to factory value from DRC with r(ID) 253.
Item
Value
Header
0xFF
0xFF
Packet
Size
pID
CMD
CS1
CS2
Data[0]
0x08(8)
0xFD
0x1C
0xEA
0x14
0x02
Request packet to change the DRC with r(ID) 253 to wireless communication mode.
Item
Value
Header
0xFF
0xFF
Packet
Size
pID
CMD
CS1
CS2
Data[0]
0x08(8)
0xFD
0x1C
0xEC
0x12
0x05
Packet Size
pID
CMD
Data[0]
Data[1]
Data[2]
Value
7+3
r(ID)
0x5C
Success
r(Status Error)
r(Error Codes[0])
ZIGBEE reply packet carries value of Success field in Data[0]. Success field in reply packet shows whether the command
sent by the request packet was successfully carried out. Success value is 1 when the Zigbee coomand was successful,
value is 0 if the command failed due to communication error or because Zigbee module was not installed. r(Status Error)
& r(Error Codes[0]) values are included in the Optional Data. As Optional Data size is fixed at 3 bytes, total Packet Size is
10 bytes. pID conatins the r(ID) of the replying DRC, CMD becomes 0x5C by applying 0x40 Bitwise OR operation to the
Request Packet CMD 0x1C.
Reply Condition
CON_CHECK reply is sent when r(ACK Policy) is 1(Reply to only Read command), 2(Reply to all packets).Exception to this
rule is when pID of the request packet is 254(Broadcasting ID), in which case reply is not sent.
Example
Reply to request packet to read Zigbee prperty values from DRC with r(ID) 253 (Zibee installed).
Item
Value
Header
0xFF
0xFF
Packet
Size
pID
CMD
CS1
CS2
Data[0]
Data[1]
Data[2]
0x0A(10)
0xFD
0x5C
0xAA
0x54
0x01
0x00
0x00
Success value is 1 since Zigbee was installed and communication was successful.
242
Example
Reply to request packet to initialize Zigbee to factory defalut values from DRC with r(ID) 253 (Zigbee installed).
Item
Value
Header
0xFF
0xFF
Packet
Size
pID
CMD
CS1
CS2
Data[0]
Data[1]
Data[2]
0x0A(10)
0xFD
0x5C
0xAA
0x54
0x01
0x00
0x00
Header
0xFF
0xFF
Packet
Size
pID
CMD
CS1
CS2
Data[0]
Data[1]
Data[2]
0x0A(10)
0xFD
0x5C
0xAA
0x54
0x00
0x00
0x00
243
Packet Size
pID
CMD
Data[0]
Data[1]
Data[2]
Value
7+3
0~0xFE
0x1D
Channel
Length
Data
IR remote control can be used to send control commands when IR receiver is attached to DRC. However, when IR remote
control is not available or when in wireless communication mode using Zigbee, request packet with REMOCON command
can be used control the DRC. Remote control Channel(0x61~0x6A) goes in Data[0], remote control button press Length
(0~240, 1= 125ms) in Data [1], and remote control button key data in Data[2]. When DRC receives remote control value,
Channel is compared with r(Remocon Channel). If they are found to match, r(Remocon Length) & r(Remocon Data) values
are changed to Length & Data for 250ms. r(Remocon Length) & r(Remocon Data) values are changed back to 0 & 254
after 250ms. When using REMOCON request packet, it is recommended to increase the Length value by 1 every 125ms.
Example
Request packet notifying all DRC(Broadcasting) button 0x21 using channel 0x61has been presse for 1s
Item
Value
Header
0xFF
0xFF
Packet
Size
pID
CMD
CS1
CS2
Data[0]
Data[1]
Data[2]
0x0A(10)
0xFE
0x1D
0xA0
0x5E
0x61
0x08
0x21
pID is 0xFE since packet is being sent to all DRCs. Since channel is 0x61, Data[0] value is 0x61.Since 1unit=125ms, 1s = 8
units. Data[1] has value of 8 and Data [2] has remote control key value of 0x21.
244
Packet Size
pID
CMD
Value
0~0xFE
0x1Z
Request packed used to update the servo (Firmware) connected to DRC. Since servo firmware update rquires special
protocol, SERVO_FW_UPDATE request packet has to be sent to enter special update mode. While in special update mode,
there is no communication between the PC and the DRC and unit behaves as if PC and the servos are connected directly.
Example
Request packet to change the DRS with r(ID) 253 to servo firmware update mode.
Item
Value
Header
0xFF
0xFF
Packet
Size
pID
CMD
CS1
CS2
0x09(9)
0xFD
0x1E
0xE4
0x1A
Packet Size
pID
CMD
Data[0]
Data[1]
7+2
0x5E
r(Status Error)
r(Error Codes[0])
0xA0
r(ID)
Send reply packet with r(Status Error) & r(Error Codes[0]) values included. With Optional Data length fixed at 2 bytes, total Packet size is fixed at 9 bytes.
pID contains the r(ID) of the replying DRC, CMD becomes 0x5E by applying 0x40 Bitwise OR operation to the Request Packet CMD 0x1E.
Reply Condition
SERVO_FW_UPDATE reply is sent when r(ACK Policy) is 2(Reply to all packets).Exception to this rule is when pID of the
request packet is 254(Broadcasting ID), in which case reply is not sent.
Example
Reply to request packet to change the DRS with r(ID) 253 to servo firmware update mode.
Item
Value
Header
0xFF
0xFF
Packet
Size
pID
CMD
CS1
CS2
Data[0]
Data[1]
0x09(9)
0xFD
0x5E
0xAA
0x54
0x00
0x00
Send current status and most recent error code. Both are 0x00 as there is no error.
245
PART
Apendix
246
Decimal
HEX
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
0
1
2
3
4
5
6
7
8
9
A
B
C
D
E
F
10
11
12
13
14
15
16
17
18
19
1A
1B
1C
1D
1E
1F
20
21
22
23
24
25
26
27
28
29
2A
2B
2C
2D
2E
2F
30
31
32
33
34
35
36
37
38
39
3A
3B
3C
3D
3E
3F
VIN
0.000
0.074
0.148
0.221
0.295
0.369
0.443
0.516
0.590
0.664
0.738
0.812
0.885
0.959
1.033
1.107
1.181
1.254
1.328
1.402
1.476
1.549
1.623
1.697
1.771
1.845
1.918
1.992
2.066
2.140
2.214
2.287
2.361
2.435
2.509
2.582
2.656
2.730
2.804
2.878
2.951
3.025
3.099
3.173
3.247
3.320
3.394
3.468
3.542
3.615
3.689
3.763
3.837
3.911
3.984
4.058
4.132
4.206
4.280
4.353
4.427
4.501
4.575
4.648
ADC
Decimal
HEX
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
40
41
42
43
44
45
46
47
48
49
4A
4B
4C
4D
4E
4F
50
51
52
53
54
55
56
57
58
59
5A
5B
5C
5D
5E
5F
60
61
62
63
64
65
66
67
68
69
6A
6B
6C
6D
6E
6F
70
71
72
73
74
75
76
77
78
79
7A
7B
7C
7D
7E
7F
PART
VIN
4.722
4.796
4.870
4.944
5.017
5.091
5.165
5.239
5.313
5.386
5.460
5.534
5.608
5.681
5.755
5.829
5.903
5.977
6.050
6.124
6.198
6.272
6.345
6.419
6.493
6.567
6.641
6.714
6.788
6.862
6.936
7.010
7.083
7.157
7.231
7.305
7.378
7.452
7.526
7.600
7.674
7.747
7.821
7.895
7.969
8.043
8.116
8.190
8.264
8.338
8.411
8.485
8.559
8.633
8.707
8.780
8.854
8.928
9.002
9.076
9.149
9.223
9.297
9.371
ADC
Decimal
HEX
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
80
81
82
83
84
85
86
87
88
89
8A
8B
8C
8D
8E
8F
90
91
92
93
94
95
96
97
98
99
9A
9B
9C
9D
9E
9F
A0
A1
A2
A3
A4
A5
A6
A7
A8
A9
AA
AB
AC
AD
AE
AF
B0
B1
B2
B3
B4
B5
B6
B7
B8
B9
BA
BB
BC
BD
BE
BF
VIN
9.444
9.518
9.592
9.666
9.740
9.813
9.887
9.961
10.035
10.109
10.182
10.256
10.330
10.404
10.477
10.551
10.625
10.699
10.773
10.846
10.920
10.994
11.068
11.141
11.215
11.289
11.363
11.437
11.510
11.584
11.658
11.732
11.806
11.879
11.953
12.027
12.101
12.174
12.248
12.322
12.396
12.470
12.543
12.617
12.691
12.765
12.839
12.912
12.986
13.060
13.134
13.207
13.281
13.355
13.429
13.503
13.576
13.650
13.724
13.798
13.872
13.945
14.019
14.093
ADC
Decimal
HEX
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
C0
C1
C2
C3
C4
C5
C6
C7
C8
C9
CA
CB
CC
CD
CE
CF
D0
D1
D2
D3
D4
D5
D6
D7
D8
D9
DA
DB
DC
DD
DE
DF
E0
E1
E2
E3
E4
E5
E6
E7
E8
E9
EA
EB
EC
ED
EE
EF
F0
F1
F2
F3
F4
F5
F6
F7
F8
F9
FA
FB
FC
FD
FE
FF
VIN
14.167
14.240
14.314
14.388
14.462
14.536
14.609
14.683
14.757
14.831
14.905
14.978
15.052
15.126
15.200
15.273
15.347
15.421
15.495
15.569
15.642
15.716
15.790
15.864
15.938
16.011
16.085
16.159
16.233
16.306
16.380
16.454
16.528
16.602
16.675
16.749
16.823
16.897
16.970
17.044
17.118
17.192
17.266
17.339
17.413
17.487
17.561
17.635
17.708
17.782
17.856
17.930
18.003
18.077
18.151
18.225
18.299
18.372
18.446
18.520
18.594
18.668
18.741
18.815
HEX
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
0
1
2
3
4
5
6
7
8
9
A
B
C
D
E
F
10
11
12
13
14
15
16
17
18
19
1A
1B
1C
1D
1E
1F
20
21
22
23
24
25
26
27
28
29
2A
2B
2C
2D
2E
2F
30
31
32
33
34
35
36
37
38
39
3A
3B
3C
3D
3E
3F
63
3F
VIN
ADC
Decimal
HEX
-80.57
-72.89
-64.26
-58.84
-54.80
-51.55
-48.81
-46.43
-44.32
-42.41
-40.68
-39.08
-37.59
-36.20
-34.89
-33.66
-32.49
-31.37
-30.31
-29.29
-28.31
-27.36
-26.45
-25.57
-24.72
-23.89
-23.09
-22.31
-21.54
-20.80
-20.08
-19.37
-18.68
-18.00
-17.34
-16.69
-16.05
-15.42
-14.81
-14.20
-13.61
-13.02
-12.45
-11.88
-11.32
-10.76
-10.22
-9.68
-9.15
-8.62
-8.10
-7.59
-7.08
-6.58
-6.08
-5.59
-5.10
-4.62
-4.14
-3.66
-3.19
-2.72
-2.26
-1.80
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
40
41
42
43
44
45
46
47
48
49
4A
4B
4C
4D
4E
4F
50
51
52
53
54
55
56
57
58
59
5A
5B
5C
5D
5E
5F
60
61
62
63
64
65
66
67
68
69
6A
6B
6C
6D
6E
6F
70
71
72
73
74
75
76
77
78
79
7A
7B
7C
7D
7E
7F
4.648
127
7F
VIN
ADC
Decimal
HEX
-1.34
-0.89
-0.44
0.01
0.46
0.90
1.34
1.78
2.21
2.64
3.07
3.50
3.93
4.35
4.77
5.19
5.61
6.03
6.45
6.86
7.27
7.68
8.09
8.50
8.91
9.32
9.72
10.13
10.53
10.94
11.34
11.74
12.14
12.55
12.95
13.35
13.75
14.15
14.54
14.94
15.34
15.74
16.14
16.54
16.94
17.34
17.74
18.13
18.53
18.93
19.33
19.73
20.13
20.54
20.94
21.34
21.74
22.15
22.55
22.96
23.36
23.77
24.18
24.59
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
80
81
82
83
84
85
86
87
88
89
8A
8B
8C
8D
8E
8F
90
91
92
93
94
95
96
97
98
99
9A
9B
9C
9D
9E
9F
A0
A1
A2
A3
A4
A5
A6
A7
A8
A9
AA
AB
AC
AD
AE
AF
B0
B1
B2
B3
B4
B5
B6
B7
B8
B9
BA
BB
BC
BD
BE
BF
9.371
191
BF
VIN
ADC
VIN
Decimal
HEX
25.00
25.41
25.82
26.24
26.65
27.07
27.49
27.91
28.33
28.75
29.18
29.60
30.03
30.46
30.89
31.32
31.76
32.20
32.64
33.08
33.52
33.97
34.42
34.87
35.33
35.78
36.24
36.71
37.17
37.64
38.11
38.59
39.07
39.55
40.04
40.53
41.02
41.52
42.02
42.52
43.03
43.55
44.07
44.59
45.12
45.65
46.19
46.74
47.29
47.84
48.40
48.97
49.54
50.12
50.71
51.30
51.90
52.51
53.13
53.75
54.38
55.02
55.67
56.33
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
C0
C1
C2
C3
C4
C5
C6
C7
C8
C9
CA
CB
CC
CD
CE
CF
D0
D1
D2
D3
D4
D5
D6
D7
D8
D9
DA
DB
DC
DD
DE
DF
E0
E1
E2
E3
E4
E5
E6
E7
E8
E9
EA
EB
EC
ED
EE
EF
F0
F1
F2
F3
F4
F5
F6
F7
F8
F9
FA
FB
FC
FD
FE
FF
56.99
57.67
58.36
59.05
59.76
60.48
61.21
61.96
62.71
63.48
64.27
65.06
65.88
66.71
67.55
68.41
69.29
70.19
71.11
72.05
73.01
74.00
75.01
76.04
77.10
78.19
79.31
80.46
81.65
82.87
84.13
85.44
86.78
88.17
89.62
91.12
92.67
94.29
95.98
97.75
99.59
101.53
103.57
105.71
107.98
110.38
112.93
115.65
118.57
121.72
125.12
128.83
132.89
137.38
142.40
148.06
154.56
162.13
171.18
182.34
196.72
216.58
247.46
310.08
14.093
255
FF
18.815
247
Invalid Packet
248
Error Code
Description
0x01
0x02
0x03
0x11
0x12
0x21
0x22
0x23
0x31
0x32
0x33
0x34
0x41
0x42
0x43
0x44
0x45
0x46
0x47
0x51
0x52
0x53
0x54
0x55
0x56
0x57
0x58
0x59
0x5A
0x61
0x62
0x63
0x64
0x65
0x66
0x67
0x68
0x69
0x71
0x72
0x73
0x74
0x75
0x76
0x77
0x78
0x79
Error Code
Description
0x81
0x82
0x83
0x84
0x85
0x91
0x92
0x93
0x94
0x95
0x96
0x97
0x98
0x99
0x9A
0x9B
0xA1
0xA2
0xA3
0xA4
0xA5
0xA6
0xA7
0xB1
0xB2
249
PA RT
Apendix
Useful Info
Troubleshooting
PART
Firmware Update
Example Explanation
PART
Click
250
Useful Info
PA RT
Apendix
Checks robot to see if it was assembled correctly/exactly and makes adjustment if necessary. If the robot was not
assembled correctly, it may cause error or unwanted movement.
Click Robot Control in DR-SIM to adjust the position of the robot motors.
0 1 Connect
Connect to robot.
Click Connect.
Click
Click
0 2 Robot Control
Turn on power.
Click Torque On.
Calibration is done in Robot Control.
Click Robot Control.
Click
0 3 Posture Adjustment
Click
251
PA RT
Useful Info
Apendix
PART
PART
252
PA RT
Useful Info
Apendix
PART
PART
Check the robot to view the adjustments being made and click Apply when the correct setting is achieved.
Press Apply to save the adjustment to the robot. Robot will show adjusted values when connected.
253
Useful Info
Checks robot to see if it was assembled correctly/exactly and makes adjustment if necessary. If the robot was not
assembled
PA RT correctly, it may cause error or unwanted movement.
Click
Robot Control in DR-SIM to adjust the position of the robot motors.
Apendix
PART
01
PART
02
View the robot directely from the front and adjust
the leg balance.
* Square boxes apply to 18 axis and 20 axis robots.
<Before>
254
<After>
PA RT
Useful Info
03
Make adjustments so that both feet are flat on the
ground.
Apendix
PART
PART
04
View the robot from the side and adjust the vertical
angle.
<Before>
<After>
255
PA RT
Useful Info
05
View the robot from the top and adjust the arms
to form straight line.
Apendix
PART
PART
06
Adjust the waist and head for 20 Axis robot.
07
Make further necessary adjustments and end the
calibration.
256
PA RT
Apendix
Useful Info
Changing the Motor ID
PART
PART
Since DRC identifies each motor by the motor ID number, it is important to place each motor in correct position according to
the ID when assembling the robot. However, if the motor was incorrectly positioned or if the robot is being reassembled from
16 axis to 18 or 20 axis robot, motor ID change will be necessary.
Make sure to change the motor ID prior to reassembling the robot from 16 axis to 18 or 20 axis.
Follow the steps below to change the motor ID if the motors were positioned incorrectly during the assembly.
ex) Position of the motors ID 9 and 10 were switched.
ID 9 ID100 (Motor ID 20 to 254 are spare ID.)
ID 10 ID 9
ID 100 ID 10
Example shown below uses HerkuleX Manager program to change the motor ID 253 to ID 15.
(HerkuleX Manager prgogram can be downloaded from Dongbu Robot website.)
http://www.dongburobot.com/jsp/cms/view.jsp?code=100122
01
Click
ID
257
PA RT
Apendix
Useful Info
02
ID
PART
PART
03
Enter desired value in Servo ID ( value is 15 in this
example ) and then click Setup. Motor ID scan will
run automatically when Setup is clicked.
04
2
1
05
Disconnect and reconnect power on motor. Then
run ID SCAN through HerkuleX Manager to varify
the ID of motor.
258
PA RT
Useful Info
Apendix
PART
PART
259
PA RT
Useful Info
Apendix
PART
PART
260
PA RT
Useful Info
Apendix
PART
PART
261