Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

vinMoov wrong servo direction #71

Closed
hairygael opened this issue May 4, 2017 · 13 comments
Closed

vinMoov wrong servo direction #71

hairygael opened this issue May 4, 2017 · 13 comments
Assignees

Comments

@hairygael
Copy link
Contributor

hairygael commented May 4, 2017

VinMoov is great and I really love that stuff!!!
It will GREATLY help a lot of people to see what issues they might have with their robot calibrations.
But to drive them in the correct direction, vinmoov has to be correct. Here are the things that should be corrected:
-vinMoov jaw is moving opposite than real InMoov (but maybe this is related to the current issue with mouthControl. Real InMoov Jaw doesn't work properly)
-vinMoov rotHead turns opposite direction than the real InMoov.
-vinMoov RightHandWrist is turning opposite and not set at correct angle. LeftHandWrist is not set at correct angle.
-vinMoov lowStomach is turning opposite and more than real InMoov. (hard to define, but it's almost twice as much)
My version of MRL is 1.0.2142, using InMoov repo.
Let me know what you require to get the best results. Pictures to compare?

@Calamity01
Copy link
Member

Calamity01 commented May 6, 2017 via email

@hairygael
Copy link
Contributor Author

From Calamity on post MyRobotLab/InMoov/issues/54#

_no, that line is just a linker so I could make your way of mapping servo to work with vinMoov. I eventually want to remove that line

Better work on how the joint is define
a few line before that line, you will see

rotationMask = ... the value -1 or 1 define the orientation of the rotation (clockwise or counterclockwise)
angle = define the initial position of the part (rotation of the 3d model in his local world)

playing with those two value is better in the long term_
###################

Okay thanks that makes sense.
Has it been modified already?
node = new Node("RWrist");
rotationMask = Vector3f.UNIT_Y.mult(-1);

node = new Node("LWrist");
rotationMask = Vector3f.UNIT_Y.mult(1);

@hairygael
Copy link
Contributor Author

node = new Node("RWrist");
rotationMask = Vector3f.UNIT_Y.mult(-1);

So I tried to modify (-1) to (1) but that is not what I desire as result. This affects the initial angle, which means the right wrist is opposite positionned at start of VinMoov.
What I try to achieve is that when it rotates, instead of going anti clock it goes clock wise.

@supertick
Copy link
Contributor

I need more information.
First, what script are we talking about ? If we are talking about the "service" script, which i think would be appropriate, currently, it does not even start the virtual InMoov.

So, lets start with that - should the very important, official, auto-tested, Service Script (https://raw.githubusercontent.com/MyRobotLab/pyrobotlab/develop/service/InMoov.py) automatically start virtual InMoov ... my vote yes...

If we all agree on that, then we can discuss what else should automatically start, or details of progressively starting other parts.

After we start from the same place, we can discuss and easily observe the same problems.
We will all be on the "same page".

@moz4r
Copy link
Contributor

moz4r commented Oct 21, 2017

I think we are talking about full script from inmoov repo. who just launches lot of standardized mrl core services / optional skeleton parts / and virtual inmoov by default. Because that some people use.
Inmoov full script is just "start all mrl" and keep personal config safe. MRL core services are the basics.
Write a second full script that launch mrl core services, why not, we all love write code. If it is needed we will do the job.
But inmoov repo is this one that needs to be auto tested and set as service script ?
Other subject, inmoov service really need to evolve after manticore release, we definitely need to use shared core for lot of customized hardware declensions / remote adapter etc.. . #101
And keep default hardware configuration as main option to make things easier for new people.
Write multiple same things is a nonsense and time waster ( except for learn things, it is great ) , customize is needed. this will go through a revamp of the inmoov swinggui / other things .
That is just my point of view.
Next release after Manticore will be a great release :)
At this time is wrist still use the wrong direction ? If yes we will fix it asap.

@moz4r
Copy link
Contributor

moz4r commented Oct 23, 2017

Service script Inmoov.py updated to launch virtual Inmoov

@hairygael
Copy link
Contributor Author

hairygael commented Oct 24, 2017 via email

@hairygael
Copy link
Contributor Author

hairygael commented Oct 24, 2017 via email

@supertick
Copy link
Contributor

Thanks Anthony & Gael,
After manticore is released, develop branch will very quickly change. One of the largest changes on the horizon, is myrobotlab will use "maven" to build instead of "ant", and this will allow us to remove most of the "repo". After this is working, upgrading components such as opencv, javacv, & openni which have previously been so difficult will be as easy as changing a number in a text file (goodtimes).

While this upcoming change is very desired it means a lot of fundamental changes to mrl. What do we have verify things work the same as before with all these changes ? Auto-magic elves and service scripts ! This is the only real way of preserving stability and workiness with such limited resources.

So, this is the reason why I'm interested in service scripts testing all the parts we want to keep stable. It's the automated tests which will keep our ship stable as we roll into uncharted areas. Anything we add to the service scripts is tested every build.

There is a lot of great ideas & work in the batch files & "building" scripts. Perhaps more parts of those can be incorporated into the service scripts too. We all want worky, and if its tested all the time the more likely it will be worky.

@moz4r - thanks virtual inmoov starts now in the service script. ...goodtimes...

@moz4r
Copy link
Contributor

moz4r commented Oct 24, 2017

Understand and agree with the roadmap !

I can set inmoov repo script "Auto-magic elves friendly" and call it from Inmoov service script ( full ).
Good / Bad idea ?

In all cases it will be very useful to auto test it...

Other thing about duplicates,
I think we don’t need that anymore:
https://github.com/MyRobotLab/inmoov/tree/develop/InMoov/testScripts

But we can use this unique reference place after fusion :
https://github.com/MyRobotLab/pyrobotlab/blob/master/service/InMoovHand.py
https://github.com/MyRobotLab/pyrobotlab/blob/master/service/InMoovHead.py
https://github.com/MyRobotLab/pyrobotlab/blob/master/service/InMoovArm.py
https://github.com/MyRobotLab/pyrobotlab/blob/master/service/InMoovTorso.py
https://github.com/MyRobotLab/pyrobotlab/blob/master/service/InMoovEyelids.py

Because that is used for documentations

@supertick
Copy link
Contributor

I can set inmoov repo script "Auto-magic elves friendly" and call it from Inmoov service script ( full ).
Good / Bad idea ?

Sorry, I don't understand moz4r ... auto-testing elves are very rigid but reliable. They will look at "all" the services, and expect a pyrobotlab/service/{serviceName}.py to test. If stuffs can be virtualized, potentially quite a lot of stuffs can be tested within the script. For example, I have found some services explode on serialization when they run and "do something useful" .. which is different from when the script only starts them. Testing a service in use is much better than just testing the starting of a service.

Copies of scripts are not as desirable and normalized code, because at some point "one of the copies" will be wrong. I'm not interested in "configurable" auto-elves to test scripts outside of /service/ directory, because I got it setup where its all automatic (the price to pay for rigid yet reliable auto-testers).

The pyrobotlab/service/scripts are (or will be) hooked up to "examples" .. so documentation in the scripts is very useful, even if auto-elves don't read it.

@Calamity01
Copy link
Member

Calamity01 commented Oct 24, 2017 via email

@supertick
Copy link
Contributor

This is a very old ticket ...
Closing unless there is some servo currently in "real" inmoov that is backwards
I cannot tell, so others with real InMoov would need to verify.

Closing if no activity....

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants