BIOLOID Comprehensive

Robots of 18 DOF can be built with Comprehensive Kit including the contents in Beginner Kit, and it provides 26 examples of robots.

Learning the principle of robot building

You can build up 26 example robots with Bioloid Comprehensive Kit and learn the principle of robot building.

From a simple barrier bar of 1 DOF to a spider or a humanoid of 18 DOF, it is possible to build the robot and edit the example programs. It will help increasing your understanding for robot programming.

You can also create your one and only robot by designing, assembling and programming it by yourself.

As shown in BIOLOID learning material, CM-5 is supposed to support existing BIOLOID software (Behavior Control Program, Motion Editor etc). Therefore, if you want to use RoboPlus software in CM-5, you need to change the firmware into other firmware which supports Roboplus. However, if you change the firmware, you would no longer be able to use the existing Bioloid software.

The new-upgraded RoboPlus is an integrated programming software which can control Robotis products.
Therefore, CM-5 based robots can be controlled by programming with RoboPlus.
The usage is as below.

Select the port connected to the controller.
Users must set manually the port connected to the controller. Finish other programs and continue the process since the controller cannot be recognized in case the port is in use. Select the port connected to the controller and press “Find” button.

Turn the power of the controller off and on.
To find the controller, the controller to be restored must be turned off and on.

Check the controller information.
When the controller is found, the information of current controller and the firmware to download are appeared. Check the model name whether the controller is connected by the user or not. (The version of controller information is for Boot Loader, not for firmware.)

Start the firmware installation again.
Press “Next” button to start firmware restoration. Please be careful not to interrupt the connection or turn the power off until it is completed.

Check the controller firmware re-installation result.

Executing above procedure, CM-5 can be programmed with RoboPlus. Try to make the best robot with upgraded RoboPlus.

To move a robot when it is not connected with SMPS, you have to use a battery. If the battery is discharged, please use by charging it according to following procedures.

Connect SMSPS to CM-5.

Turn on the CM-5 Power and press the U button

Note While the CM-5 is being charged, the power LED blinks. The speed of blinking shows how much it is left before finishing the charging. It will be more faster as it completes the charging. Once the charging is done, it will blink for every 2 seconds.

Double click an empty line or press Enter, In the Select Control window, select the controller to use, then press the OK button.

Generating Start Program.

Select Start Program from the Select Instruction Type window, Start Program will be automatically generated in RoboPlus Task.

Input Endless Loop command

To print the numbers on the screen endlessly, use the Endless Loop command(Create a command line).
Double click or press Enter on an empty line between { and } of Start Program to invoke the Select Instruction Type window. Select Loop > Endless Loop(while(1)) from the list.

Input Load command

Use Load command to input a Print command, which is needed to print numbers on the screen.
Insert Execute > Load (Assignment value) into an empty line between { and } of Endless Loop.

Load 1 into Print

Choose the left parameter ( ? ) among the Load parameters(Explanation on the parameter).
The left parameter receives input from the right parameter.
Double click the left parameter ( ? ), or press Enter key after clicking it once to invoke the Select Parameter Window.
Select Controller > Print then press OK.

Select Constant Numbers > Number > 1 for the right parameter ( ? ) in the same way.

When both parameters of the Load command have been set, it should look like below.

Load 2 into Print with Line

Select } under Print command (at the end of the endless loop section), and add new lines by pressing the Space key. Repeat Steps 5 and 6 to input the Load command and to input Controller > Print with Line and 2. The final task code is shown below.

Download Task Code

Execute Task Code

To see the output of the program, you must open the Program Output Monitor BEFORE executing the program.
There are three ways to open the Program Output Monitor.

Click on the View Print of Program in the Download Program window

Click on the View Print of Program button in TOOLS.

Press F5 or click on View Print of Program (V) menu under Program (P).

Executing the Program

When you turn on the controller, the LED will blink, showing it is in standby mode.
Press the MODE button to move it to PLAY, then press START to execute the downloaded task code.
You should see “1” and “2” being printed on the Program Output Monitor.

Execute Task Code

Objective for this tutorial is to build an attacking duck which attacks approaching objects. Please refer to 2-2-11 Attacking Duck of the assembly manual and complete the hardware.

Caution Do not approach your face near the robot when the power is on. You may get injured by the robot.

The attacking patterns of the duck are as follows.

If any object is not detected, the robot gets ready to attack by locating ID[1] joint in the middle and folding ID[2] ~ ID[3] joints.

If objects are detected on the left and the right side, the robot turns to the direction where objects are detected by moving ID[1] joint.

If objects are detected at the front, the robot unfolds ID[2] ~ ID[3] joints for attack.

It goes back to the status of “2” above.

Write Task Code

Enter the basic value of the motor’s moving speed and Call initial behavior.

If an object is detected from the left side of the robot, turn the beak left.
If an object is detected by the left distance sensor of AX-S1, the location value (present location value of the ID[1] joint + 20) is entered as the goal position to turn left. However, to prevent from turning too much, it is written to move only if the present location value is less than 812.

If an object is detected from the right side of the robot, turn the beak right.
If an object is detected by the right distance sensor of AX-S1, the location value (present location value of the ID[1] joint -20) is entered as the goal position to turn right. However, to prevent from turning too much, it is written to move only if the present location value is greater than 212.

Attack if an object is detected at the front
If an object is detected by the central distance sensor of AX-S1, the robot attacks by calling “Attack with beak.”

Make Initial Behavior
Move the beak in the center by inputting proper goal position value(512) into ID[1] joint, and then call “Attack with Beak” once to make initial behavior.

Make Attack Behavior
Make behaviors such as attack behaviors and raising head (ready behavior) by inputting proper goal position values into ID[2], ID[3] joints, and program “Behavior Wating(7)” function which can stop the behavior control program processing shortly until each behavior is completed.

Objective for this tutorial is to build an intellectual car which runs and avoids obstacles. Please refer to 2-2-9 Obstacle Detection Car of the assembly manual and complete the hardware.

The behavior patterns of the obstacle detection car pursuant to obstacle detection in each direction are as follows.

Left

Front

Right

Behavior Pattern

-

-

-

Forward

O

-

-

Turn Right

-

O

-

Backward

O

O

-

Turn Right

-

-

O

Turn Left

O

-

O

Forward

-

O

O

Turn Left

O

O

O

Stop

The mode of the robot is changed to wheel mode (infinite spinning mode) to use AX-12+ as the wheels of the obstacle detection car.
Using RoboPlus Manager, set both the CW location limit value and the CCW location limit value of AX-12+ to 0.

Write Task Code

Save the basic value of the motor’s moving speed as the variable

Use the standard value of the object detection and the object detection existence to judge object detection. To do so, set the object detection standard value.

Make Stop / Forward / Backward / Turn Right / Turn Left Motions. Each motor’s moving speed is set by adding moving speed value which is the set speed value at the beginning and CW:0 and CCW:0 which represent directions.

Download Task Code

Execute Task Code

Objective for this tutorial is to make a walking droid which walks forward in normal situation and avoids obstacles.
Since the walking droid uses various postures when it performs such as walking, avoiding obstacles, etc., it is convenient to use by saving the postures as motions.

The following table represents the behavior patterns of the walking droid pursuant to surroundings and motion status.

Status

Behavior

Initially executed

Stay in basic posture

No obstacles

Walking forward

Obstacles Found

Stop and walking backward

After walking backward

Changing direction to the left

Obstacles found even if turned left

Changing direction to the left

Besides duplicated motions, 4 motions must be made as below, and the robot can avoid obstacles while walking.

Stop

Walking forward

Walking backward

Changing direction to the left

Make Motions

Enter the name on the page 1 to make “Stop” motion, and then add steps.

The joint values of ID 1, 2, 3, 4 are set to 512. The values are applied to the robot if the rightward arrow is pressed, and the set posture can be checked. (This is the method that users enter the joint values directly.)

Adjust the executing time. It is set to 0.072 second which is the fastest time.

Enter the name on the page 12 to make “Walking Forward” motion, and then add steps.

Turn off torques of all joints by pressing torque-off button. You can see all the joint values are set to “OFF.”

The posture of robot are set by users. The following picture shows the walking posture of the walking droid.

As shown above, if the posture of robot is set and the “Torque-on” button is pressed, the present joint values of the robot are entered automatically to the posture of robot. The currently entered robot’s joints can be read as steps’ posture if the leftward arrow button is pressed(This is the method that users read the joint values from the robot).

Repeating the procedure from number 5, add “Walking Forward” posture to each step. If the posture addition is completed, adjust the stop time and the execution time properly.

If the motion execution button is pressed, the steps of present page are executed sequentially. Check if the robot is operating well.

Using the same method so far, add “Walking Backward” on the page 13 and “Turn Left” on the page 15.

Download Motion File

Execute Motions

To use this motion after saving the motions written on RoboPlus Motion in CM-5, the motions of CM-5 must be executed in the task code. Using the two parameters, the motions of robots can be executed.

“Load” command must be used to execute the motions. If the “Load” command is selected, two parameter are created. In one parameter on the left, Motion Page in Controller -> Motion is selected, and in the other parameter on the right, the motion page number which includes desired motions is entered.
If the task code is written as below and downloaded and executed in CM-5, the saved motions are executed on the page 5.

Executing Asynchronous Motions

It is a motion control method which makes robots do the next work without checking motion status of the robots. It is suitable for beginners because understanding the code is very intuitive. However, it may not be controlled as desired since duplicate execution can happen during the motion execution.

Executing Synchronous Motions

It is a motion control method which make robots do the next work after completing the execution by checking the motion status of the robots. It is suitable for intermediate-level users because the concept of Multi-Task is needed. In the case of infinite repetition motions, the task code must be written well since it may wait continuously when the motion status is checked.

Infinite Repetition Motions

It is effective to make regularly-repeated motions such as walking as an infinite repetition motion.

Write Task Code

Call “Ready” when it is executed for the first time.

Call “Forward” if there is no obstacle.

If an object is detected by Central Distance Sensor, Stop and walk backward,and then turn left.

Even though it turns left, if an object is detected by Central Distance Sensor, it turns left until no object is detected.

Write a function which executes the motion on the page 1 where the “Ready” motion is saved. To wait until the motion is complete after execution, Call the function “WaitMotion.”

Write a function which executes the motion on the page 12 where the “Forward” motion is saved. To wait until the motion is complete after execution, Call the function “WaitMotion.”

Write a function which executes the motion on the page 13 where the “Backward” motion is saved. To wait until the motion is complete after execution, Call the function “WaitMotion.”

Write a function which executes the motion on the page 15 where the “TurnLeft” motion is saved. To wait until the motion is complete after execution, Call the function “WaitMotion.”

Check the parameter value of the motion status, and write a function which waits while the motion is operating.

Execute Task Code

After adding turn-right motion to previously built Walking Droid, let us try wireless control(Zigbee Communication) using RC-100.
Referring to Building Walking Droid 1 - Making Motion, you can make the right-turn motion additionally on the page 4 of the motion.
For Zigbee communication, CM-5 and RC-100 are equipped with ZIG-100 module. (Please refer to the explanation pages on CM-5 and RC-100.)

Write Task Code

Based on previously written task code in Building Walking Droid 2 - Task Code:

Wait until the new wireless data is coming in, and if the data is coming in, it is saved in the received data variable.

In the received data, only the values regarding U / D / L / R keys in RC-100 are sorted by & Bit Calculation.

Compose the conditional sentences to perform forward / backward / turn left / turn right pursuant to the pressed buttons among all buttons. RC-Call “Ready” at the moment of releasing the pressed button of RC-100.

Write a function which executes the motion on the page 14 where the “TurnRight” motion is saved. To wait until the motion is complete after execution, call the function “WaitMotion.”

In case that (CONT IF) comes after existing (AND), it is changed to &&.

In case that (CONT IF) comes after existing (OR), it is changed to ||.

RoboPlus Task

Behavior Control Program 1.0

Endless Loop (while(1)) ( Click here to see more information on the “Endless Loop.” )

It is the same as the code repeating the execution of certain blocks unconditionally using Label and JUMP.

RoboPlus Task

Behavior Control Program 1.0

Loop While (while(Condition)) ( Click here to see more information on the “Loop While.” )
It is the same as the code repeating the execution of certain blocks using Label and JUMP, depending on conditions.

RoboPlus Task

Behavior Control Program 1.0

Loop For (for) ( Click here to see more information on the “Loop For.” )
It is the same as the code repeating the execution of certain blocks only designated times using variables.

RoboPlus Task

Behavior Control Program 1.0

Break Loop (break) ( Click here to see more information on the “Break Loop.” )

It is used equally as the code jumping to the next label of repeated sentences.

RoboPlus Task

Behavior Control Program 1.0

Wait While (Conditional Repeat without Execution Paragraph) ( Click here to see more information on “Wait While.” )

In case the condition is “True”, it is used equally as the code jumping to its own label.

Lately added concept : it is not included in existing Behavior Control Program 1.0.

Make/Call Function ( Click here to see more information on “Make/Call Function”. )

The function is the same as the sub-routine composed of existing Label and RETURN.
In RoboPlus Task, the function must be located outside of the block where is owned by Start Program (the block tied with { AND }).

Video

The following robots have less than 4 joints and the robots can be built with Beginner kit or Comprehensive Kit. Please refer to the assembly manual for Bioloid Beginner Kit and Comprehensive kit about how to assemble.

If you want to use RoboPlus program for CM-5 (the controller used for Bioloid Beginner/Comprehensive Kits), you must update the firmware. Please refer to Firmware Update of RoboPlus Manager on how to update firmware.

Download

Connect the controller before downloading the task code.
To download the task code, the controller must be connected to the PC(Please refer to controller information for information on how to connect the controller to the PC).

Select the correct COM port (if you know) or else use the “Automatic Search” function to easily find out the appropriate port. .

If RoboPlus Task is unable to find a controller, the following error message will be shown.

Check if the controller is connected to the PC. (See controller information on how to connect the controller.)

Check if the controller is turned on.

Check if the correct communication port was chosen.

Select the download menu.

If the program has an error, you must find the error and correct it. (See “rule check error messages”)

Download the program.

If the downloading fails, it will automatically try again from the beginning.

Execute the task code and your robot will move.
Turn on the controller and execute the downloaded task code(Please refer to each controller information to learn how to execute the task code).

Video

[Beginner Level]

The following robots have joints less than 4. The robots can be built with Beginner kit or Comprehensive Kit. Please refer to the assembly manuals for Bioloid Beginner Kit and Comprehensive kit about how to assemble.

Robot

Description

1. Crossing Gate

Download Assembly Check Task CodeDownload Task CodeDownload VideoDynamixel Setting: AX-12+ ID[1]: Joint Mode- When U button on CM-5 is pressed, the gate will be opened.- When D button on CM-5 is pressed, the gate will be closed.

2. Universal Gauge

Download Assembly Check Task CodeDownload Task CodeDownload VideoDynamixel Setting: AX-12+ ID[2]: Joint Mode- When U button on CM-5 is pressed, the speed of gauge will be increased.- When D button on CM-5 is pressed, the speed of gauge will be decreased.

3. Sound Lever Meter

Download Assembly Check Task CodeDownload Task CodeDownload VideoDynamixel Setting: AX-12+ ID[1]: Joint Mode, AX-S1 ID[100]- The gauge will move according to the sound volumes detected.- The sound level can be measured because the gauge makes move more when the sound is getting louder.

4. Crocodile Mouth

Download Assembly Check Task CodeDownload Task CodeDownload VideoDynamixel Setting: AX-12+ ID[3]: Joint Mode, AX-S1 ID[100]- The mouth will be opened when the sensor detects an object.- The mouth will be opened, if there is an object in the mouth.- It will play a melody if no object is detected for 10 sec.

Download Assembly Check Task CodeDownload Task CodeDownload VideoDynamixel Setting: AX-12+ ID[1, 2]: Joint Mode, AX-S1 ID[100]- If an object is detected from a sensor, the barrier bar will be open vertically.- If an object is detected from a sensor and the barrier bar is pushed ahead at the same time, the bar will be open horizontally.- The barrier bar will be closed, if no objects are detected.

7. Melody Car

Download Assembly Check Task CodeDownload Task CodeDownload VideoDynamixel Setting: AX-12+ ID[1, 2, 3, 4]: Wheel Mode, AX-S1 ID[100]- It will move forward some distance with melody, when L button is pressed.- It will move backward some distance with melody, when R button is pressed.- It will turn right with melody, when U button is pressed.- It will turn left with melody, when D button is pressed.

8. Robot Arm

Download Assembly Check Task CodeDownload Task CodeDownload VideoDynamixel Setting: AX-12+ ID[1, 2, 3]: Wheel Mode- It will rotate its arms rightward, if you press the R button on CM-5.- It will rotate it arms leftward, if you press the L button on CM-5.- It will stretch its elbows, if you press the U button on CM-5.- It will bend over its elbows, if you press the D button on CM-5.- It will stretch its wrists, if you press the start button and U button at the same time.- It will bend over its wrists, if you press the start button and D button at the same time.

Download Assembly Check Task CodeDownload Task CodeDownload VideoDynamixel Setting: AX-12+ ID[1, 2, 3, 4]: Joint Mode, AX-S1 ID[100]- If you put on your hands ahead of its head, it will bow.- If you put on your hands on the right side of its head, it will lift up its right hand.- If you put on your hands on the left side of its head, it will lift up its left hand.

11. Attacking Duck

Download Assembly Check Task CodeDownload Task CodeDownload VideoDynamixel Setting: AX-12+ ID[1, 2, 3]: Joint Mode, AX-S1 ID[100]- If you try to touch on its head with hands, it will attack using its beak.- If you touch on the right side of its head, it turns its head right.- If you touch on the left side of its head, it turns its head left.

Download Assembly Check Task CodeDownload Task CodeDownload VideoDynamixel Setting: AX-12+ ID[1, 2, 3, 4]: Joint Mode, AX-S1 ID[100]- It will bow, if you put your hands in front of its head.- It will clap as much times as your clapping sounds are heard.

Download Assembly Check Task CodeDownload Task CodeDownload Motion FileDownload VideoDynamixel SettingAX-12+ ID[1, 2, 3, 4, 5, 6]: Joint ModeAX-S1 ID[100]- In bright place, it will blossom out and move slowly as if it is dancing.- In dark place, it will close up its petals into a bud.

4. Fawn

Download Assembly Check Task CodeDownload Task CodeDownload Motion FileDownload VideoDynamixel SettingAX-12+ ID[1, 2, 3, 4, 5, 6, 7, 8]: Joint ModeAX-S1 ID[100]- The Fawn will sit down and look around, when there are no changes.- If you put on an object ahead of its face, it will keep following the objects.

Download Assembly Check Task CodeDownload Task CodeDownload Motion FileDownload VideoDynamixel SettingAX-12+ ID[1, 2, 3, 4, 5, 6, 7, 8]: Joint ModeAX-S1 ID[100]- It will attack if it detects an object ahead of its head during walking.- It will pretend to being dead, if it detects an object upper of its head during walking.

Download Assembly Check Task CodeDownload Task CodeDownload Motion FileDownload VideoDynamixel SettingAX-12+ ID[1, 2, 3, 4, 5, 6, 7, 8]: Joint ModeAX-S1 ID[100]- Operate the battle droid after installing obstacles on the walking path.- It will attack obstacles with its both arms during its walking.- When the battle droid is fallen down, it will stand up by itself, if you clap out for more than 3 times.

[Advanced Level]

The following robots has joints less than 18. The robots can be built with Bioloid Comprehensive Kit. Using Beginner Kit, if you purchase the frame set and 14 additional AX-12+, you can build the robots as below. Please refer to the assembly manual for Bioloid Comprehensive Kit.

Download Assembly Check Task CodeDownload Task CodeDownload Motion FileDownload VideoDynamixel SettingAX-12+ ID[1, 4 ~ 17]: Joint ModeAX-S1 ID[100]- Operate the puppy after installing obstacles on the driving path.- Please check if it moves avoiding the obstacles if a sound is heard.- It will act cute if you touch its lips.- It will fall asleep if there are no changes for some time.

3. King Spider

Download Assembly Check Task CodeDownload Task CodeDownload Motion FileDownload VideoDynamixel SettingAX-12+ ID[1 ~ 18]: Joint ModeAX-S1 ID[100]- It will move avoiding the obstacles on its walking path.- It will attack if an object is detected near ahead.- It will shrink back, if an object approaches from above.- It will fall sleep if there are no changes for some time.

4. Humanoid

Download Assembly Check Task CodeDownload Task CodeDownload Motion FileDownload VideoDynamixel SettingAX-12+ ID[1 ~ 18]: Joint ModeAX-S1 ID[100]- If you clap after pressing the start button on CM-5, it will dance.- If you clap after pressing the U button on CM-5, it will clap as you do, and if an object is detected ahead, it will bow.- If you press the L button on CM-5, it will take an attacking pose, and start to attack when an object is detected.- If you press the D button on CM-5, it will walk avoiding the obstacles by itself.- When the robot is lying down, if you clap for more than 3 times, it will stand up.

Dynamixels used as robot actuators possess many functions. This section explains how to change the dynamixel’s settings.

Changing the ID

Select the port the controller is connected to.

Click “Connect”.

A list of connected dynamixels is shown on the left. Click on the dynamixel you wish to change the ID of.

Click on the ID row in the Control Table.

Click on the ID List combo box to see a list of possible ID’s. Select the ID, then click Apply.

To use in RoboPlus Motion and RoboPlus Task, the ID must be within the following ranges.

The Dynamixel’s ID must be between 0 and 25.

The ID for AX-S1 should be set between 100 and 109.

Changing the Movement Mode

The dynamixel can operate in 2 different modes.

Wheel Mode : Rotates 360 degrees like a regular motor.

Joint Mode : Moves at a set angle with normal servo motors.

The mode can be changed using RoboPlus Manager. Once the mode is set, it will be maintained, even when turned off.

Select the port the controller is connected to.

Click “Connect”.

A list of connected Dynamixels is shown on the left. Click on the Dynamixel you wish to change the mode of. Then, click on the CW/CCW Angle Limit line in the Control Table.

To set to Wheel Mode, change the CW/CCW Angle Limit value to “0.” Or, simply click on the “Wheel Mode” button.

To set to Joint Mode again, set the CW/CCW Angle Limit value to any number other than “0”. The initial values for Joint Mode are “0” for CW Angle Limit, and “1023” for CCW Angle Limit.

Troubleshooting

If you cannot find the dynamixel you are looking for using RoboPlus Manager, try the following :

Connect just 1 Dynamixel and check if there are any duplicate IDs. If you see a Dynamixel on the left even though only 1 Dynamixel is connected, there is a high probability of a duplicate ID. Change the ID immediately.

If you are unable to find any Dynamixels as in the image below, click on “Dynamixel Search”. If the communication speed is not set to 1Mbps, the “Dynamixel Search” function automatically resets the controller’s communication speed to 1Mbps to enable it to be recognized.

If the problem persists, your dynamixel may need repair. Please contact the service department of the company you purchased from.

ZIGBee

ZIG-100/110 uses ZIGBee for wireless communication. ZIGBee, like Bluetooth, is the communication technology commonly used in Personal Area Network (PAN). The communication quality of ZIGBee is better than that of IR, so it allows many users to control their robots without interferences.

Caution Please note that not all products include a zigbee module and may need to be purchased separately.

Controller & ZIGBee

OLLO and Bioloid both use the RC-100, which uses IR communication method. To upgrade to the Zigbee communication method, you must purchase the ZIG-110 set separately. The ZIG-110 set includes one Zig-100 module, which is attached to the RC-100, and one Zig-110 module which is attached to the Controller.

Note The modules in a single Zigbee set have been preconfigured to communicate with each other. Therefore, a module from one set may not work with a module from another set. Please be careful not to mix them up.