Pololu Maestro 24 channel: Need suggestions

Hi guys,

I own a a Pololu Maestro 24 channel servo controller that I want to get some more functionality into. I am currently using it in a miniature humanoid biped with 16+ servos. It basically just takes servo position data over UART and moves servos to the requested positions. This is my plan:

I would like the Maestro to be my robot’s low hardware controller. It would interface to a higher level embedded PC via a high speed serial link and take commands to execute ‘motions’. These actions a basically lists of servo positions or ‘gaits’ that would make my biped walk to do stuff. I also need it to take input from a couple of sensors (gyro, accel) for dynamic adjustment of motions.

Here are my questions:

  1. can anyone with some advanced knowledge of the pololu scripting language tell me if you think this can be done?
  2. is there a way to reprogram the on board PIC?

thanks for the input guys.

Hello, klims.

The Maestro’s scripting language can be used to store a preprogrammed ‘gait’ or sequence of movements on the Maestro. You can use the Sequencer feature of the Maestro Control Center to easily do this. The script would contain a subroutine for each different gait you want. The subroutines can be started or stopped later using serial commands (only one subroutine can run at a time).

What kind of outputs do your sensors have? If they are analog signals between 0 and 5 V then they will work fine with the Maestro. You can write a script to read their values and do something with it or you can have your computer read their values via the Get Position serial command.

Your embedded PC is going to be way more powerful than the Maestro, so I would not use Maestro scripting at all and just control all the servos and read all the sensors using serial commands from the PC. Is there a particular reason why you want to use the Maestro’s internal scripting?

–David

Hi Dave,

Thanks for your input.

You say that only one subroutine can be run at a time. Does running a a sequence or gait count as a subroutine?
What I need to be able to do is run a sequence of frames (gait) while constantly polling the sensors for feedback that will be used to adjust the frame about to be played in real time. Maybe an example would help:

What you are seeing is my robot’s HOME frame being played over and over again (every 50 ms) but the HOME frame is being slightly adjusted based on sensor readings to stabilize the bot. Does this make sense? If the robot was doing a walk sequence it would need to play about 15 key frames while constantly grabbing sensor data and adjusting at the same time.

My current sensors are I2C but I could easily get analogue versions if need be.

Yes an embedded PC is far more powerful, but I don’t want to waste CPU time dealing with playing gaits. I want a layer of abstraction between my robot brain and robot body, if that makes sense. I have had to recode my gaits far too often because I have decided to change hardware. It’s a pain. I want to get it right and leave it.

The reason I chose the Maestro initially was because I wasn’t happy with the accuracy of servo control when running the servos straight from my microcontroller. Now that I’m planning another upgrade I’m hoping to make use of some of the parts I already own.

thanks.