Master Thesis (2007)
Title: Humanoid robot: Development of a simulation environment of an entertainment humanoid robot

Abstract: This dissertation was developed in collaboration with Robosavvy Ltd and boosted the creation of the Humanoid Robotics Laboratory of IDMEC-Center of Intelligent Systems, at Instituto Superior Técnico. The developments presented include: i) the software development for interfacing the Matlab Real TimeWorkshop Toolbox with the Bioloid humanoid robot servos; ii) the identification of the internal and external dynamic parameter of the humanoid servos and structure, respectively; iii) the dynamics modeling and simulation of the humanoid robot using the SimMechanics and Virtual Reality Toolbox; iv) the deduction of the equations of motion for an underactuated n-link inverted pendulum. The main objective of the Humanoid Robotics Laboratory, for the time being, is to develop a humanoid robot able to make complex motions like walking, running and jumping through real-time feedback control techniques. This dissertation presents a LQR controller for the simulation and control of the humanoid robot doing the handstand on a high bar, by considering it as an underactuated 3-link inverted pendulum.


Communication Protocol by RS232

This protocol allow the user to communicate in real time with the humanoid Bioloid through RS232, making possible the control of the servos AX-12+ (and therefore of the humanoid) in real time, and using for this purpose the software Matlab/Simulink and the solutions Real-Time Workshop and Real-Time Widows Target.

PC and CM5 (the main controller of the humanoid Bioloid located in the back of its torso) communicate to each other trough RS232. The servos are connected trough RS485 to the CM5.

Next figure shows the existing humanoid architecture and the control architecture used. The humanoid controller named CM5 is connected to the controllers of the servos through a RS485 bus. The usual approach to teach the robot is to use a humanoid proprietary software that connects to a PC through the RS232 serial line. The CM5 has however an Atmega128 microcontroller with a bootloader which allows users to change the code and access directly to the servo controller parameters. A small program was developed in the CM5 controller to implement a protocol for transmitting/receiving through the serial port the data from/to the servos.

Note: The servos communicate through asynchronous serial communication with 8 bit, 1 stop bit and no parity.


Servo-CM5 Communication Protocol overview

Since servos are wiling to receive/send package information from/to the CM5, a general overview of the main data instructions sent and receive from the servos and how to set it up such as position, speed and voltage for example are shown here. It is also shown how to change the servos from position mode control to endless turn mode (open-loop velocity control).



Links: AX-12+ (english) manual

Application Example

Application Example (Tested only on Matlab2006a)

A tutorial showing how to build up this protocol with a simple application example consisting in sending a desired position to a servo (Matlab/Simulink-CM5-servo) and reading back at a sample time of 0.01 seconds the current position of that servo (servo-CM5 -Matlab/Simulink).











©2008-2011 Humanoid Robot Lab