Slow moves seem rough

Support for your Robot Army Starter Kit.

Slow moves seem rough

Postby Arizona_Clark » Wed Nov 26, 2014 5:03 pm

I really like my robot, and I think it will really fit into the "purpose" that I have lined up for it. (It's going to be an "animatronics" as part of a "display" -- when I get a "round tuit".)

Playing with my just-completed robot for a few minutes, I was struck by how rough/jerky slow speed movements are.

I can think of at least four possible causes, but would appreciate a few comments:
1) It's just something wrong with my robot.
2) It's an artifact of the D/A converters (i.e., low resolution).
3) It's an artifact of how the software generates slow movements.
4) It's an artifact of the servos used.

I doubt that it's 1, as it seems to affect all three servos. As for 4, my experience with analog servos is that they are usually as good as the control voltage. I'm thinking 2 and/or 3, though I've neither looked at the source code yet nor put my oscilloscope on the servo control voltages.

In the aforementioned display, the robot will need to display increasing levels of "excitement" based on "user" actions. Building my own "brain" with higher res/higher speed is certainly a possibility.

I'm posting rather than e-mailing Mark directly, as I suspect that other users may have a similar question.
Arizona_Clark
 
Posts: 4
Joined: Wed Nov 26, 2014 11:59 am

Re: Slow moves seem rough

Postby maehem » Tue Dec 02, 2014 3:03 pm

Clark,

It's mostly number 3 in your theories about why its jerky. Arduino servo library only supports integer degrees for positions even though the servo itself could have much finer resolution. So what you are seeing is the servo jumping in increments of degrees (of which there are only about 60 degrees of movement for how we directly drove the servos). We looked at writing our own servo library but that turned into a large can of worms considering that it would mess with the whole internal stack of timers that the Arduino uses. It's wishful thinking but it would be great if the Arduino code wizards would develop a version of the servo library that used floating point values for the angle.

That said, the robot is designed for an aesthetic use in our art installation and those one-degree jerky movements are essentially not noticeable when we use them. A future design might use steppers or a 3:1 gear reduction that would let us use the full 180 degrees of servo movement.
User avatar
maehem
Site Admin
 
Posts: 19
Joined: Thu Sep 13, 2012 10:50 pm
Location: Las Vegas, NV

Re: Slow moves seem rough

Postby Arizona_Clark » Tue Dec 02, 2014 8:53 pm

Mark,

OK. Thanks for the response!

I'm planning on mounting a small translucent owl on top, and part of the display that I have in mind will have said owl "snoring" -- basically very small movements, in step with slight brightening. When certain outside events happen, the owl will get progressively more excited, until another certain external event happens, at which time it will "calm down" and eventually go back to "sleep", over maybe a 30 second period. Due to the nature of the external inputs, I'll need to have at least 21 "waking" levels of "excitement", though since (for other reasons) I'm planning on replacing the Robot's LED with a "NeoPixel", I can likely differentiate at least some levels simply by how the light behaves. I may be able to design the movements so that it's not that noticeable.
Arizona_Clark
 
Posts: 4
Joined: Wed Nov 26, 2014 11:59 am


Return to Robot Army Starter Kit

Who is online

Users browsing this forum: No registered users and 1 guest

cron