Asked — Edited

Movement Envelopes? Think Animation.

So I'm looking at the servo automated movement stuff, and thinking to myself; hey Cyberdude, what I would love to have are traditional animation controls such as "ease in" and "ease out" with programmable envelopes. (OK, truth be told, I don't actually call myself Cyberdude.)

In this scenario, I have a "ServoSpeed_Ramp(Port, UP/DOWN, StartSpeed, EndSpeed)" script control or, a graphic interface Control Panel.

The function allows me to speed up and slow down a servo over a fixed unit of time. Of course, not being a programmer, I'm not sure if there are implications with fixed vs. relative motion of the servo, but I'll leave the to the guru.

In theory, This would give smoother incantations of movement that feel more "natural".

I'm sure this could be done through scripting with a math function wrapped around a ServoSpeed() function, but I'm not a strong mathamagition either :)

Edit:

Upon further investigation into animation envelopes, I think we would need another parameter to pass...

"ServoSpeed_Ramp(Port, UP/DOWN, StartSpeed, EndSpeed, Attack)"

Where Attack is a numeric from 1-10 and defines the compression of the ramp. Low number, slow attack, meaning the period of increase or decrease happens quickly, High number means the period is longer, therefore the period of increase or decrease happens more slowly.


ARC Pro

Upgrade to ARC Pro

Experience the transformation – subscribe to Synthiam ARC Pro and watch your robot evolve into a marvel of innovation and intelligence.

#1  

Well YOU dont call yourself cyberdude but WE do!:) ...I think your idea is FANTASTIC(yes iam saying it loud for effect) A smooth ramp up to speed and ramp down for specified servos would be very desirable. Most of us are the piano players...DJ Sures is the song writer! ...I wish/hope to write some basic code for my own specific applications......EZ-SDK (thanks DJ) has given to us! Hes given us the bricks , more like tetras! :) and now we have to build our robots DJ =Barry Manilow " I write the songs(progamming) that make the whole world sing" ...sappy I know but I desire to write the songs and give to the world! :)

#2  

I'd love to see ramping control. I know after speaking off forum with a few other members they have asked this of DJ. There is a video in the video section here where DJ shows how to ramp the PWM duty cycle automatically by using the servo Speed Control. Look here:

www.youtube.com/watch?feature=player_embedded&v=kY8iJ84J4GE

Also I've written in a script different raising or lowering PWM settings with sleep settings with the Sleep function in between to help ramp speed. Or you could use variables in a statement like this:

If (($adcCurrent >($adcSpecified - 20) and $adcCurrent <($adcSpecified + 20))) goto(RotateSlow) Then in the (RotateSlow) you can state the different raising or lowering PWM settings

I've used both and they worked pretty good.

It would be nice to have a function for all this to use on DC motor H-bridges and servos though.