MotionDogs / Lenzhound-dev-pre-release

All active work now moved to Lenzhound-1.x repository. This repo will no longer be maintained.
GNU General Public License v3.0
0 stars 0 forks source link

When slowing down play back mode the motor stops too early #17

Closed jacobbenlewis closed 10 years ago

jacobbenlewis commented 10 years ago

Looks like I spoke too soon on the speed adjustment working perfectly.

I'm not sure at what point this kicks in, but an easy way to notice it is to: -make your calibration points fairly far apart, 10 motor revs or so -in free run mode save one position at one end of travel, and another position at the other end of travel -go into play back mode, leave playback speed centered at 50% -go between the two saved positions and notice that the motor stops before getting to the end of travel

The slower you set playback, the sooner the motor stops

davidsthayer commented 10 years ago

Agreed. It's pretty important that we hit our marks. Thayer, let's keep this in your camp. Can you let me know?

thayerjbirch commented 10 years ago

My unit hasn't been having the same behavior you described. I've been tinkering for a little over an hour now without it seeming to lose steps. I tried the steps you described at 3200, 1600, and 1000 for max velocity in console settings, as well as turning the velocity settings on the encoder to minimum without recreating the issue. That being said I added a minimum value for the velocity cap and I'm hoping that clears up your issues. I'm headed to my other job at the moment, but if the problem persists could you leave your console settings so I can check when I get back? Thanks.

davidsthayer commented 10 years ago

Got your text about pushing more changes. We'll sit tight then for now. Thanks.

jacobbenlewis commented 10 years ago

Interesting. Yes, I thought maybe it was my settings (I still had an accel of 5000 in there from some testing), but after setting them to what I think should be normal it's still doing it. Curious it doesn't happen on your board, I doubt it's hardware related. So probably in the settings.

Max Vel: 1000 - 5000 (tried various settings within this range) Accel: 32 Resolution: 3 Antenna: 0 Channel: 1 PA Level: 0 Data Rate: 0

Don't know what else could affect this. We may need to get together at some point to look it over. Has anyone else out there tried to reproduce this?

davidsthayer commented 10 years ago

Hi Guys. Yes, I noticed it for sure. I believe Thayer had a realization that his code didn't get fully pushed the way he thought and was going to get do another round in the midst of school schedule today.

It's especially noticeable on the slowest settings where it seems that the scaling is just totally out of whack. Having the extremely slow speed is really powerful but the motor stops well short of the intended mark. The error is magnified the slower you go. Interestingly though, if you dial speed back up higher, the recall positions are recovered and seem to function just fine.

squarewave commented 10 years ago

Didn't we try this with full steps and everything worked fine (minus the jittery behavior)? That suggests to me that this is related to skipping steps and not any inherent problem with the algorithm. Also I just don't see how this could be a bug with the logic - the evaluation of whether we've reached our target position or not is entirely speed-agnostic.

jacobbenlewis commented 10 years ago

In my testing this is done with an unloaded motor, no reason I can see that it should be missing steps. Unless they're being sent out too fast which doesn't make a lot of sense since we're trying to go slow. It's also very repeatable. I haven't tried it at different resolutions though.

squarewave commented 10 years ago

There are speeds that are too slow for microsteps. Basically if you tell the motor to just move one eighth of a step and then don't tell it anything else, it just won't move. Microsteps aren't really microsteps, they're just a way of incrementally applying a step so that it's quieter, as I understand it. If you do this process too slowly it seems like the motor "forgets" that it is 1/8th of the way through a step and just starts over.

You should be able to reproduce this by just turning your max velocity down really low and running the thing at full speed in free play. I can reproduce the problem on my end but not with the numbers you provided - you said you were seeing it at 50%? Even when you're at a max speed of 5000? I'm definitely not seeing that here.

squarewave commented 10 years ago

This is all due to issue #10. Possible solutions are reverting that or trying to find a minimum speed.

squarewave commented 10 years ago

Scratch all of what I just said. I think this is due to the sleep stuff.

jacobbenlewis commented 10 years ago

Ha, our board got tired of the slow move so it put itself to sleep. I like it!