RoboPhilo: Motion
Creator Conceptual Overview

Conceptual mindmap
of the RoboPhilo Motion Creator
The more we work with the new RoboPhilo humanoid robot, the better we like it. One
significant factor that has us really turned on is the object oriented data
structure used by RoboPhilo and the supplied Motion
Creator software application.
Compared to other humanoid robot kits
currently on the market, RoboPhilo is surprisingly
easy to understand and work with. It's hierarchical
data structure lends itself to creating extensive libraries of reusable poses,
motion sequences, and routines.
The RoboPhilo Motion
Creator application logically separates the motion creation functions into six
distinct tabs that make it easy to understand and work with. The tabs are Configuration, Pose, Routine, Sequence,
Key, and Fine Tuning.

The
six tabs can be seen across the top of the application. For example, the Pose
tab, shown above, allows you to set the position for each servo and save the
resulting pose with a unique name so that it can be reused over and over again
whenever you need it.
Operating globally, the Configuration tab includes default
parameter settings as well as importing and exporting files and downloading to
the RoboPhilo. In actual operation, you set up the
defaults once and then only use this tab when you load or save a file, or
transfer the current file to the robot.

The
RoboPhilo pose definition is, purely and simply, a
set of positions for all the robots servos. The Pose tab does have a 'Play' button and its associated
parameters like speed, mode, steps, and position increment, but those
parameters are only used for test purposes while you are creating or editing a
pose.

This approach is extremely powerful. Other
applications, like Kondo's Heart to Heart 3, tightly associate the movement
parameters like speed to each pose. That style makes it difficult, cumbersome
actually, to easily reuse poses. In contrast, with RoboPhilo you assign each Pose a
unique name, and then add the speed and other parameters during the sequence
creation phase. Reusing an existing pose, even if the intended speed is
considerably different, is as simple as selecting from a pull-down menu.
For example, to begin most movements the robot
will start in a standing position (call that 'Stand"), then move to a more
natural, lower, movement posture ("BaseMove"),
and then begin the required series of movements to walk forward, backward,
left, etc. Once the movements are completed it needs to return to the BaseMove posture and then to the Stand posture. Other
applications require you to go through some contortions to accomplish that, and
you can quickly find yourself loosing track of all the unique motions you've
created. With RoboPhilo, using a pull-down menu you
select the pose you've previously created, and then add the required
parameters, like speed. Poses appear to be infinitely reusable.
Note that the Pose, and other tabs, provides
for three different movement modes: C, E, and W. We'll get into them in detail
in a later post, but for now just understand that you can control whether all
the servos try to move to the commanded positions in a smooth coordinated
fashion or individually as fast as possible.

As
we started to explain above, Sequences
are built as a series of named states. Each individual state combines the
desired pose with the required speed, movement mode, and number of steps. For
example, the 'Move Left' sequence looks like this:

Left
to right: State tag, Statename, Speed, Mode, Steps,
Pose name

The
remaining two tabs allow the user to assign specific routines to individual
keys on RoboPhilo's remote control, and provide for
fine tuning the robot which is fairly similar to setting the 'Home Position' on
other humanoid robot kits.

Another
pleasant, and very welcome, surprise was that the RoboPhilo
Motion Creator file format includes both upper and lower limit settings for
each servo. If setup properly, this functionality will protect the robots
servos from over travel, internal damage, and stalling out. We've seen
quite a few robot builders jam their servos against some unsuspecting
inanimate object. If they are inexperience or don't notice the
problem immediately then the servos tend to overheat and actually burn out
quickly. Again this is a feature that most other robot applications
haven't implemented yet.

Left to Right: Servo tag, Servo name,
Initial position, Offset, ATV adjustment, Upper limit, Lower limit
Look for our RoboPhilo
review in the Winter 2007 issue of Robot Magazine, scheduled to
be on store shelves by Halloween.