Robot App Store

image description

Bioloid Control CPPRobot-App Page

App Price:
Relevant Robots:
  • Robotis - Bioloid
Rainer Jäkel
Release Date:
App Version:
App Size:
See all requirements...
Click to download this app.        
App Categories:

Robot App™ Description

This app compilation offers complete control of a Bioloid robot including a 3d visualisation, xml-based robot modelling, a custom scripting language, the capture of robot movement, a custom firmware, different interpolation types and much more!

* Supports both Windows and Linux machines
* Simulation mode (can be used without a robot)
* Supports custom robot configurations (the geometric and kinematic model, frames and collision objects can be configured in a xml file)
* Easy hardware and software configuration via PC (f.e. Ax12-, PID-controller-, timing-parameters, selection of a movement profiles)
* 3d-Visualisation of the robot (OpenGL)
* Forward kinematics (based on Denavit Hartenberg matrices)
* Inverse kinematics (analytic solution for custom humanoid and custom hexapod (see section robots), rudimentary numerical solution (transpose jacobian technique))
* Fast collision checking (Oriented Boundary Boxes)
* Online robot information in custom console (Linux only, needs ncurses)
* Fail-proof (CRC) communication via RS-232
* Scripting language: Complete control of the robot, extendable * Capture (continuous and discrete), load, store and join robot movements
* Play motions with different interpolation types (linear, bezier (and splines) in cartesian and joint space)
* Point-To-Point movement in robot and joint space (can be mixed)
* Command system (f.e. walk, turnright)
* Supports Motion Editor files (thanks to Bullit).

Installation Instructions

Delivered as:

Compile the program (f.e. on Windows platforms with Programmers Notepad 2 and WinAVR) and copy the RobotWrapper.hex file to the robot (see Bioloid User Manual if you don't know how).

You can configure the firmware via the following console commands (from ./main/bioloid):
setrobot 0 x: x is the number of generated interpolation points
setrobot 1 x: x is the pause in milliseconds between the processing of two interpolation points
setrobot 2 x: x is the interpolation type
(0: linear (works good on medium loads), 1: ptp (works good on medium loads), 2: simple (works best on heavy loads, f.e. humanoid, reason: you can use higher baudrates and better interpolation techniques on pc))


Robot App Requirements


C++ compiler
Windows/Linux platform

Bioloid CM-5
Other requirements:

Be able to write C++ code.

Usage Instructions

First Start
Start the 3d-visualisation:
* Linux: Run ./viewer/viewer
* Windows: Run \viewer\viewer.exe

You should see an empty blue window.
Run Program in Simulation Mode
Now we start the main program (in simulation mode, without a robot):
* Linux: Run ./main/bioloid
* Windows: Run \main\bioloid.exe

The default config file config.xml is loaded automatically.
You should see a terminal window.
You can always change between the realtime and simulation mode by typing on/off (enables/disables writing to robot) and ron/roff (enables/disables reading from robot). You should always test new stuff in the simulation mode first!

Type "playshow" and hit return. You should see the humanoid robot performing some actions in the 3d viewer.
Try "help" and check out some commands:
* "l 0 arm": Loads a (previously captured) arm animation stored in the file "arm.xml" into slot 0
* "play 0 1000 0": Plays the animation in slot 0 with a pause of 1000ms between keyframes and interpolation type 0 (linear in joint space)
* "script stand.s": Runs a scripting file which will make the robot stand upright
* "script knees.s": Makes the robot go down to his knees or stand up depending on its current position

If everything works fine you can "quit" and try it with the real robot.

Run Program in Realtime Mode

First, we'll use a simple test configuration in order to test if everything works properly:
* Edit the file config_test.xml and change the value of Software.ComPort to the port the serial adapter is connected to (f.e. /dev/ttyUSB0 or COM1).
* If you don't use 18 Ax12s, edit the file dh_test.xml and:
o Change the attribute len of KinematicChains to the correct amount.
o Remove/add chain objects. You have to edit the name and the id.
o Remove/add box objects. You have to edit the base attribute.

We have to run the main program with our modified config file:
* Linux: Run ./main/bioloid -config config_test.xml
* Windows: Run \main\bioloid.exe -config config_test.xml

If everything works the 3d-viewer should display a number of boxes. Each servo is assigned to exactly one box which should rotate around its z-axis when the servo moves (try moving it by hand).

Now you can test your own config-file (remember changing Software.DH to your DH-file (geometric and kinematic model)) or use one of the predefined config files if you're using the custom humanoid or hexapod build.

Writing to the robot is disabled by default (see Software.WriteToRobot). If you're absolutely sure that everything works properly (and have tested your inverse kinematics implementation in simulation mode) you can enable writing to the robot by typing on in the console.

want to buy ?

Are you a robot-apps developer?

Joining the developer program is easy and FREE!