Update 1: Complete project now hosted on google code: https://code.google.com/p/mcbmini/
A motor control scheme was developed to address the very specific needs and demands of the research robots that are developed and used by the Personal Robots group at the Media Lab.
MCBMini V4 is now finished (see header image) and is actively being used for multiple new and old robots within the Personal Robots Group. See manual for more specs here: MCBMiniV4Manual.pdf
The development of robots that should have the ability to display rich expressiveness as well dexterity and movement in human-like ways requires an advanced motor control scheme that fulfills a certain set of requirements. A few of the important specifications for motor control of robots that are developed in the Personal Robots group at the Media Lab are listed as follows:
- High update rate: For the robot to move in a compelling and human-like way, the behavior system needs to be able to stream updated target positions for the motors at a decent update rate. The motor boards need to be able to dynamically adapt to a rapid stream of changing target positions as well as possibly compensate by interpolation or filtering for slow update rates resulting from communication lag.
- High density: Robots that are intended to display social characteristics usually have rigid constraints on their structure imposed by aesthetics. These constraints usually don’t leave a lot of extra space for bulky motor controllers. Robots of this type therefore require high density controllers that can control multiple motors while taking up as little space as possible. A distributed architecture might be useful in this regard as it might be hard to fit all of the motor controllers in one big space but there might be smaller spaces available distributed around the robot.
- Scalability: Incremental design is a process of trying out a possible solution to a particular problem and individually evaluating the result through incremental prototyping. This process is particularly useful for designing robots and it requires a scalable motor control system as the number of motors is not a static quantity but can change through the design process. The motor control scheme needs to address this by offering an easy way to add or remove motors.
- Safe operation: Sociable robots are essentially designed to interact with people and therefore need to operate safely. Safety can be interpreted in several different ways, the normal operation of the robot needs to be safe for humans and that involves acceleration and velocity limits for joints as well as monitoring of motor currents and responding in a safe way to unexpected values. All failure modes of the robot need to be safe for humans so that if anything goes wrong, the robot will not cause harm. Lastly these robots are usually expensive machines and difficult to repair so the motor control needs to make sure that the robot doesn’t do harm to itself.
- Transparency: The design of complicated robotic systems usually involves a great deal of debugging. When implementing and testing out new systems, much of the development time goes into trying to understand the source of possibly erroneous behaviors of the system. It is very important that every stage of the robotic system be as transparent as possible, that is to say that communication of signals can be monitored by the designer at every stage so they can determine the origins of the error.
- Minimal wiring: Sociable robots usually have a very dense network of relatively low-powered motors. These motors are placed in various locations all over the robot and can be hard to access and especially tricky to trace wires to. The motor control scheme must be implemented so that it requires minimal wiring and an easy way to switch motors or boards out if they become unusable through wear-and-tear.
For the specific needs of the MeBot project, I decided to build motor controllers that were very modular. The system operates in a master/slave mode where there is one central node that arbitrates all communication between the motorserver (a computer that controls the robot) and the actual motor control modules. The modules are all connected to a bus that provides motor power, logic power and data.
- Sigurdur Orn Adalgeirsson. Mebot, a Robotic Platform for Socially Embodied Telepresence. Master’s thesis, MIT, 2009.