I'm trying to decide which is the best control to use when operating three servos. Right now I'm operating them through timing in scripts. It works OK but sometimes they get in the way of each other. Looking through the controls I think there may be a better way to do this.
Here's what I have and what I want to do: I have a main servo that raises and lowers the bubble. The bubble lifter rests at about the midway point on blocks and this is where it stays most of the time. When I want the bubble to lower to it's lowest position I have two smaller servos pull these blocks out from under the bubble lifter so it can go down. I have the two smaller servo control cables spliced together so I only have to use one port on EZB and they move in tandem. Here's a pic and a vid to help:
Now, I see there are different servo controls that may help pull the small support block servos out whenever a command is sent to lower the bubble all the way. Most always scripts will be doing this. Which in my case would be the best to use (if any):
Upgrade to ARC Pro
Become a Synthiam ARC Pro subscriber to unleash the power of easy and powerful robot programming
So you could wrap any servo commands in IFs to check if the servo is safe to move...
I'm at work right now but I'll try and expand later. It makes more sense in my head than it does in the above couple of sentences...
@Rich , I look forward to seeing what you come up with. I'll alway welcome a fresh idea and a little guidance.
@Josh , I think I understand what your suggesting. If I step down or angle the inside of the support block the lifting fork that rests on it will have a cleaner transition as they both slide appart and together. Very nice idea. Thanks!
Good luck to you.
I think scripting it would be the best option (I am biased though since I prefer scripting to the built in controls - once I get hold of Six I may become a huge fan of the Auto Position though).
What I'd do (and have attempted a few times but always get distracted) is list out the conditions of when each part needs to move. I.E.;
If going to low position then blocks need to move out of the way, then lifter needs to drop down then release everything.
If going to neutral position lifter needs to move to correct position then blocks need to move in and then release everything.
If going to high position the blocks can be in either position (you choose), if it's going to high from neutral then you don't want to move the blocks first thus avoiding the possibility of a small drop between the blocks moving and the lifter taking the weight.
But if it's low and moving to high then the blocks can't move until the lifter is beyond the neutral position.
Convert that to an IF nest;
It would mean writing scripts for the movements (you could rewrite the same code over and over rather than controlcommands if you wanted though), but it would do everything in the right order.
The more I try and write this the more I think "that already works, why change it?" though.
I'm still not entirely convinced I've explained how I wanted to, or if it makes sense, or even if it's any better than what's already in place but after trying to write it about 5 times I'm just going to hit reply
Hopefully it's of some use.
The fact that your working so hard to come up with a better way to do this other then what I've already done tells me I'm very close. In the movement scripts I've already witten I'm just useing servo position commands with sleep commands. I like what your suggesting with your IF statments. It has built in safeguards that make sure the support blocks are in the right place at the right time. Very smooth. I need to sit down and try to get this process into a script that will work in my project.
Thanaks for your efffotrs Rich. It's great to have minds like yours and others here that are so sharp and full of great ideas.