ROBOTS FOR EDUCATION
Robotic systems as learning platforms need to be well designed and rugged enough to withstand semester after semester of constant use and abuse. The supporting software and methodology have to be simple enough to be grasped by beginners and their instructors, who are often also new to robotics. Yet, at the same time, they have to deliver meaningful learning while motivating and exciting students to learn more.
The Innovati robot system was specifically designed for education, especially technical high schools, colleges and research institutes, but it has also seen a broad adoption by individuals and hobbyists. According to Hans Pao, the Innovati founder and CEO, “Our vision was to provide a smooth path for newcomers to learn and grow from the simplest robot configurations up through complex humanoids using the same core concepts, hardware, and software.”
In earlier Robot issues, Innovati users described their experience with the Mini- Hexapodinno and the Innobot configurations. We now wanted to take a look at the total Innovati system and their topof- the-line Robotinno humanoid.
EXPANDABLE & EXTENSIBLE
Centered on the BASIC Commander single board computer, the Innovati system offers a wide range of peripherals and modules, including an LCD screen, keypad, joystick, I/O expansion, ultrasonic, gyro, compass, acceleration and other modules along with servo and motor drivers. The Education Board experimenter’s breadboard option allows quick prototyping and proof of concept.
While the system itself is completely self-contained and doesn’t require other software to operate, many non-technical people have designed unique robotic creations combining the Innovati system with open-source applications such as the popular Processing language project developed at MIT. It’s proven to be extremely popular with artists who want to add animation, interaction and movement to their projects without having to become robot experts in the process.
Unlike a lot of humanoid robot kits that use old-style RS-232 serial interfaces or RS-232 to USB converters, the Robotinno system uses an onboard USB port to handle PC communication and downloads. This makes it much more convenient and trouble-free, since almost all of the PCs sold today lack direct RS-232 connection support, and using converters has always been a hit-or-miss proposition.
Two Innovati CmdBUS connectors configured in parallel come with the Robotinno to interface with user modules, and more can be attached if required. A program- reset button on the board can be used to interrupt execution as necessary. Keep in mind that this is an educational system, and priority has been given to ease of access. In a competition application, users will probably want to cover or secure the reset button so that it can’t be accidentally pressed during operation.
One handy feature is a jumper for the control-board power source that enables the user to power the board either from the same source as the servos or to isolate them. Each of the Robotinno’s 16 servos is assigned an ID number used by programs to control their position. The ID assignments were apparently determined by ease of cable routing and may be a little difficult to remember, so I recommend that you print out the servo ID position chart for easy reference. It is possible to reassign the servo IDs, but doing so would make the configuration unique, and it would not be as easy to exchange programs.
The initial installation process was quite straightforward and trouble- free. The user documentation that came with the review unit included a well thought out and easy to understand, 224-page reference manual written clearly in English. In a few minutes, we were able to run the supplied installation program, run the InnoWorkshop Setup Wizard, follow the step-by-step instructions and get the InnoWorkshop Environment up and running successfully. Taking care not to power up the robot until instructed, we connected the supplied USB cable to the robot’s mini-USB connector and plugged it into the PC. Windows immediately recognized the new device and automatically launched the driver installation program.
ANIMATING MOTION FRAME BY FRAME
InnoWorkshop uses the Motion Editor mode to adjust each servo’s position for a pose referred to as a “frame.” Think of these as animation “frames” in a movie. When the Motion Editor is initially opened, it automatically downloads a servo manager program to the robot’s SC16 controller to handle communication. It takes only a second and shows an error message if there is any difficulty communicating with the robot.
Since the same universal Innovati system provides a consistent learning experience for students across a wide range of configurations, a selection box appears showing each of the supported robots. Its important to choose the Robotinno configuration to take advantage of the built-in servo-range protection that’s designed to prevent you from accidentally driving the servos out of their operating range (which could damage them or cause them to burn out).
Motion frames (poses) are assigned a frame ID. Within each frame, the user adjusts the servos to the desired positions using scroll bars or by entering a numeric value from 800 to 2,200 in the servo box. Frames can be saved to the PC or directly to non-volatile memory on the control board. We highly recommend that users save a copy to the PC for later editing and reuse. Users have to be careful to change frame IDs when creating new frames or the old frame will be overwritten.
Once a few frames have been created, it’s easy to connect and execute them using a InnoBasic program. Here’s a simple example using a “Do” loop with three frames:
Peripheral mySC16 As ServoRunnerA @ 0
Dim I As Byte
For I = 0 to I
MySC16.loadframe (I) ‘load the frame
MySC16.RunAllServo() ‘perform the frame
Pause 500 ‘delay
This is the robotic equivalent of a “Hello world” program-a first step to demonstrate that the robot is working and give new users and students a positive feeling of success that will encourage them to try more complex programs.
Drawing on our knowledge of the BASIC programming language and with a few quick searches in the supplied reference manual, we were able to create our own programs, including using the Innovati ultrasonic module to scan the area in front of the robot and then have it amble around the room avoiding objects in its path.
To provide the speed necessary for smooth robot operation, InnoBasic is a compiler system rather than the more common BASIC interpreter implementations. This allows it to respond to real-time events and creates a more realistic humanoid movement. Using the Build button, programs are checked for syntax and procedural errors and then compiled and downloaded to the robot. Relevant error messages are displayed-a learning benefit in an educational context.
Servo position variations introduced during the manufacturing and assembly process can be compensated for using Offset Values. Typically, this will only have to be done during the initial assembly or when a servo is repaired or replaced. The function can, however, also be useful to adjust for minor variations as the servo positions shift because of gear wear after extensive use.
ONE SIZE DOESN’T FIT ALL
No one robot or robot platform will satisfy everyone, so it’s best to understand the features and limitations of every product. The Innovati Robotinno and the overall Innovati system is well positioned to meet the needs of beginners, students, educators, researchers and experimenters. At the same time, it doesn’t have the “flash” or dramatic appeal of a Gundam-style robot, and it lacks sophisticated graphic programming and simulation applications. These gaps, which we believe are not significant to its target user base, will no doubt be filled by industrious users as the robot’s popularity spreads. We’re confident that Innovati would welcome and encourage that type of user support. They are also very receptive to user feedback and suggestions.
Words by Lem Fugitt