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

A couple of problems related to Teo movements #22

Closed
jgvictores opened this issue Nov 14, 2017 · 9 comments
Closed

A couple of problems related to Teo movements #22

jgvictores opened this issue Nov 14, 2017 · 9 comments

Comments

@jgvictores
Copy link
Member

jgvictores commented Nov 14, 2017

From @rsantos88 on November 14, 2017 17:28

There are a couple of problems related to Teo movements and it can ruin a demonstration (leading to reset it several times... 😓)

  • The first occurs randomly, when the program sends a sequence of movements, for example salute, composed by four movements: lift arm up, axial arm turn in, axial arm turn out, move arm down.
    We can see that this movement is not executed correctly in certain occasions. The arm finishes the movements early, running all at once and not sequentially. This can produce a freeze of all the demo, because the movement has not finished correctly all the sequence. Can it be a problem with checkMotionDone() function? Why does it works well sometime and sometimes not?
  • Other problem observed is, when Teo makes a movement (I would highlight axial movements), sometimes is not finished and the joint starts to shake (like a parkinson). This may take a while (shaking horribly) until the movement finally ends.

I don't know where I can post this problems, because the first can be a software problem, but the second it can be a tunning motors problem ¿? I don't know
I need some ideas to solve it.

Copied from original issue: roboticslab-uc3m/questions-and-answers#34

@jgvictores
Copy link
Member Author

  • The first occurs randomly, when the program sends a sequence of movements, for example salute, composed by four movements: lift arm up, axial arm turn in, axial arm turn out, move arm down.
    We can see that this movement is not executed correctly in certain occasions. The arm finishes the movements early, running all at once and not sequentially. This can produce a freeze of all the demo, because the movement has not finished correctly all the sequence. Can it be a problem with checkCanBus() function? Why does it works well sometime and sometimes not?

@rsantos88 I doubt this is related with checkCanBus(). It should be more related with checkMotionDone and delays. Could you link some example code where this happens?

  • Other problem observed is, when Teo makes a movement (I would highlight axial movements), sometimes is not finished and the joint starts to shake (like a parkinson). This may take a while (shaking horribly) until the movement finally ends.

That definitely looks like a driver tuning issue. Not that it has a simple solution, we're joint-level PID controllers for changing loads with coupled joints and links (a.k.a. complex multi-body dynamics).

@rsantos88
Copy link
Contributor

@rsantos88 I doubt this is related with checkCanBus(). It should be more related with checkMotionDone and delays. Could you link some example code where this happens?

Sorry @jgvictores . It was a mistake. I meant checkMotionDone(). You have examples in teo-self-presentation demo, with salute movement here. This state call to jointsMoveAndWait which makes use of the checkMotionDone() function. Don't be scared if you see that part of the code regarding the left arm has been commented. This is a temporal solution for the problems caused by the change of piece that is being made for the rotation of the left wrist (like this).
Other example, can be in follow-me demostration, with salute movement or the arm swimming. In the arm swimming case, you can see that the arm doesn't finish its movement or it stays frozen for a while until it regains the swinging motion.

@jgvictores
Copy link
Member Author

jgvictores commented Nov 15, 2017

  1. General programming recommendation: I'd recommend introducing a small delay before the checkMotionDone() (as commented somewhere among YARP issues).

  2. Note on movement and sincronization of movements: Note that in the cited functions, velocity (not duration) is set to the same for all joints. This that the joint that has to move less arrives first, the second smallest increment reaches second, and so on.

  3. Note on arm swinging: Note that arm swinging is pretty hackish. Cycle time should be adapted to the velocity. I would not point to it as a reference at all.

  4. Note on GitHub issues: Please point to the specific commit (press y to get it on you URL, it works a bit more as a permanent link than without it).

Please provide feedback after implementing (1) and taking (2) and (3) into account. Thanks!

@rsantos88 rsantos88 self-assigned this Dec 12, 2017
@rsantos88 rsantos88 added the blocked Do not focus on this issue until blocking issue is closed label Dec 12, 2017
@rsantos88
Copy link
Contributor

@jgvictores
Copy link
Member Author

Old issue that was blocking is now https://github.com/roboticslab-uc3m/teo-hardware-issues/issues/2 which has also been closed. Unblocking!

@jgvictores jgvictores removed the blocked Do not focus on this issue until blocking issue is closed label Jan 26, 2018
@rsantos88
Copy link
Contributor

Issue roboticslab-uc3m/teo-hardware-issues#2 was resolved.
This is unblocked now

@rsantos88
Copy link
Contributor

I'm having problems with this:

Other problem observed is, when Teo makes a movement (I would highlight axial movements), sometimes is not finished and the joint starts to shake (like a parkinson). This may take a while (shaking horribly) until the movement finally ends.

ezgif-1-55dbada629

Could you fix it @jmgarciah? 😇

@rsantos88
Copy link
Contributor

General programming recommendation: I'd recommend introducing a small delay before the checkMotionDone() (as commented somewhere among YARP issues).

That point is fixed here and probably it works better now. I've to do more tests.
I am pending of the second point. I've opened a issue https://github.com/roboticslab-uc3m/teo-hardware-issues/issues/14

@rsantos88 rsantos88 added the blocked Do not focus on this issue until blocking issue is closed label Feb 2, 2018
@rsantos88 rsantos88 removed the blocked Do not focus on this issue until blocking issue is closed label Feb 12, 2018
@rsantos88
Copy link
Contributor

No more blocked.
I'll close this issue until the problems reappear again ;)

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

3 participants