Closed-loop cartesian controller

Hi everybody,
I’d like to purchase a lynx arm in order to perform a simple closed-loop cartesian control. Looking in the arm specifications I haven’t seen nothing about the feedback given by the servos…
Am I missing something or the only way to control that robot is in an open-loop way?
In order to compute the inverse kinematic I need the joint position at the beginning of every sample time!

Can anybody clarify this point? Can I get the position of every joint in some way?

Thanks!

Andrea

Just looking at the logic, either the arm is at the position you sent it to (which your program should remember), or something is wrong with the arm, which you probably can’t correct. There is a lot of talk about servo position feed back, but I haven’t seen anybody actually put it into use.

The objective of every closed loop control system is to “react” to any situation looking what is happening. The problem is that the servo should go where you tell to go but something can happen in the meanwhile…
Think to the gripper, when I command it to grasp something I’d like to know if it’s totally closded (“I’ve missed the object…”) or if it’s open just to grasp the object. Moreover the robot can interact with the ambient and then the real position should be different to the desired position. And again the dynamic of the servo leads to a displacement between the desired position and the actual position since they (as all real motors) don’t reach the commanded position in a zero time.

Lynx does a lot of nice things but IMHO this is a limitation to the diffusion of their good product… :frowning:

There are servos on the market that provide position feedback. Lynxmotion doesn’t make servos. Your limitation is self-imposed since you chose to build with servos that don’t provide feedback.

Agreed, but even then there are a couple of options available to addess the problem. For example you could open the servos and attach wires to the pot so that you could read the value with an a/d input on your controller. A considerably more interesting option would be to use digital servos and create your own controller using the HMI protocol information documented by mr. ribbotson (discussed in a couple threads here on the lm forum) so that you control off the shelf servos using a digital interface. I think the significant question is one of how much money you want to spend on more proprietary and closed end servo based products vs. how much time and work you are willing to invest to stay on a budget with a flexible low cost solution based on more or less standard hobby servos.

At best of my knowledge the servos provided with the L5 and L6 doesn’t give feedback position thus the limitation is imposed by manufacturer and not self-imposed as you say.
Obiouvsly to solve this issue I can chance the servos provided (and buyed) with the arm…
Given that I buy the arm and than substitute the motor (but why should I buy a whole robot to change all his motors???), the servo that provide feedback that you mention are of two kinds: analog and digital.
The analog one give the internal potentiometer position with a voltage proprotional to the shaft position but unfortunately the electronics that comes with the L5 and L6 is unable to acquire 5 or 6 analog signals (another lynx limitation).
Again, I can workaround this by adding and A/D board (actually I don’t know if lynx produce it)…
Aternatively I can use the digital servos but this solution is really more expansive than the analog one.

As you can see, sure it’s possible to use lynx to acquire servos feedback, but the solution is expansive and reqires additional elements.

The limitation that I still see is that if you buy a L5/L6 kit “as is” you can’t close a control loop wich is foundamental for each robotic system.
It’s a pity because the lynx idea of a “low cost” robot is good but they should be litte more than only “toys”.

Yes, I’ve adopted that solution in a robotic hand but I’ve found two drawbacks.

  1. the potentiometer feedback is really noisy (but still usable)
  2. the need of an additional A/D board

Again you are right. One option is to use digital servo but in this way I’ve to change the servos on L5/L6… :frowning:

I understand that there are lots of possible solution to the problem of acquiring the feedback but I thought that a good project like the lynx one foreseen this option in every product…

This is called “begging the question”. You bought a kit with servos that know don’t provide feedback, and you are complaining that they don’t provide feedback. :unamused:

What you should have done is built a custom SES arm using modified OpenServos. Yes, it would be more expensive and require more work, but this is a do-it-yourself hobby as we all know. :slight_smile:

You seem to have the belief that at the Lynx arm price points, all this technology should already be included for free. Wrong, sorry, the state of hobby robotics is not there yet. If you disagree, show me a link to a product that proves otherwise… or stop complaining and get busy modifying your servos. :wink:

Most of what u,v said has been discussed in other threads ,
i think the concencess was, it was to expensive or to much trouble for wht u would gain …inotherwords they found a way around it, since they can make these things walk u should be able to get around ur problem…as far as lynx limitations u could hardly blame Jim , its not his fault the servo industry is 20yrs behind , but hes working hard to catch it up :wink:
,ohhh and a pressure sensor or a push button on ur gripper would let u know if u caught something ,well good luck and happy bottin :exclamation:

A-bot is exactly right. You can criticize me for the Lynx 6 arm not meeting your requirements, but it’s not like we were hiding the specs, or saying it’s something that it’s not. You should have used the Servo Erector Set and made the changes to the servos or the control electronics to get what you want.

Ok, I’m stepping up onto my soap box…

The Lynxmotion arms are not open loop! An open loop arm would be an arm with motors and no method of position feedback. Such an arm would need to be controlled by turning motors on for an “amount of time”, and you would cross your fingers hoping the arm reached the intended position repeatably, which it will not. There is an arm like this you can buy for $30.00, but it’s useless. The servos used in the arms have feedback built in. This is called local feedback. So, yes the microcontroller doesn’t “know” the servos make it into position, but unless there is a problem, you can assume they will.

Stepping down from my soap box…

Now please don’t waste time replying why local closed loop will not work for your application. I do understand this stuff. But calling our educational arms open loop is inaccurate!

Read my first post before answer. I was ask informations. I have bought nothing and I was wondering if L5 or L6 met my specs, and now I know that the answer is defenitevely no.

I have never said that you were hiding something or lieing about robot specs. Please read previous posts.

Sorry, I still don’t agree with you. If the microcontroller doesn’t know where the joints are, it’s hard to implement a cartesian control. Yes, I can cross the fingers and hope that the joints go in the commanded position but this is called open-loop (= without feedback on controlled variables).
I know that servos implement an internal loop, this is very useful at joint level, but not at cartesian level.

I was blaming nobody. I was only asking on feedback from servos. I understand that all of you love this robots but please don’t make it a personal affair!

Please note that my critics on the lynx are to be intended of costructive kind. There are a lot of nice and useful stuff on site, from motor controller to software to everything but I think (in order to make lynx robot a more complete educational platform) that a student must face with the prboblems of a closed-loop system (not only cartesian but also with visual servoing, why not).
I was thinking to buy some robots to employ them in the Robotics Course in my University (i’m a Ph.D and I teach robotics) so I was hoping that they can be useful from a didactical point of view.
I know that several University employs lynx robots but I’m wondering how… Maybe implementing all the modifications needed to acquire feedback.

Bytheway, I still think that the lynx robots are very nice and the idea of small low cost robots is really good and I hope that my observation will lead to an improvement of the products.

Feedback is desirable… no one will disagree on that point . Things are moving in that direction, but it’s going to take time to trickle down to “stock” kits. It’s not a trivial.

It’s not like your the first person to come up with this idea. I know for a fact that Jim is working on large-scale actuators with OpenServo technology, and I would guess that a standard servo solution might be in the pipeline as well.

And there are feedback products currently available, such as the Robotis Dynamixel actuators, but they are proprietary.

Also, I think the reactions that your comments recieved are fair given the statements you made and the manner in which they were presented. Anyway, good luck with your projects.

I think some people answering your post, myself included, may have jumped to some conclusions. I apologize for any inappropriate comments.

I can’t understand why you insist the hobby servo based arms are open loop, when they clearly have feedback, but I’m not going to arm wrestle you over terminology.

We are making some new servos based on gearhead motors and pots for feedback. As designed they will still use a single servo controller that accepts the same pulses as hobby servos, but they could easily use a main controller capable of reading all the pots and provide all the control signals to several H-bridges. I doubt that your comments will lead to an improvement of the servo based arms. To properly implement what you are wanting to do would require a complete redesign. Hobby servos would be abandoned due to cost and the amount of modification required.

I think what you are really wanting is an inexpensive arm built with motors and a feedback method, so you can integrate, build, or teach a control algorithm for it. The fact that this device doesn’t exist, doesn’t necessarily mean our products are in need of improvement.

I’ve been following this interesting discussion.

I don’t see where the problem is about close/open loop.
My understanding is that you could get “real” feed-back if you use digital servos.

With analog servos, you can only rely on the last position. And hope that, that was were the arm was actually positioned.

However, there is nothing that prevents you from changing the The Lynx 6 arm to use digital servos. Except maybe for the micro servos.

It’s not an arm wrestle but only a discussion about science… :wink:
Now I’m not talking about lynx arm but robotics in general.
I agree with you about the fact servos have an internal closed loop that impose to the shaft a certain position. My point is that an upper cartesian control loop needs the joints position to perform IK and direct geometry computation. Taking the commanded position as feedback in insufficient for closing a robust loop. Let me know what you think about it.

Good news! :smiley:

Obiouvsy I don’t know the design details but I was thinking that it would be possible to take the internal pot wires out. In my lab we adopted that solution for a robotic arm several years ago. (graal.dist.unige.it/research … Thand.html). Yes it will be necessary an A/D board but looking at the tons of electronic devices on site I’m pretty sure that something lowcost could be found.

Yes, the hitec are good servos but a little expansive. :frowning:
Do you have something in mind to replace the hobby servos with a commercial component or do you plan to employ the new servos based on gearhead motors you mentioned before?

Maybe my poor english made some misunderstanding. I was only giving you a feedback (oops that word again :open_mouth: ) on your product and on the need of a lab. Thought it could be useful. If it’s ok for you, it’s ok for me.

… a robotic hand… :exclamation:

Yes Amir you are right. The point is that L5/L6 don’t have digital servos.
Bytheway opening the servos you can access to the pot.

Andrea,
I know Jim hate’s my talking about others peoples products, but… Netmedia has a servo controller that does live torque feedback from standard servos (according to them, I’ve got one I haven’t tested yet) of course if you go this route you miss out on all the marvelous advantages of using the best servo controller on the market (the SSC32) and the excellent software developed for these arms using this servo controller. But if feedback is that important you might want to try it.
Jim

Hi,

Cartesian control is for very precise control, where the arm cannot compromise joint oscillation, but only straight line oscillation during feedback. For example to command the arm to insert an entire 10cm needle into a hole. If the joint oscillate (in circular manner), rather than along the line of insertion, the needle will break.

But servo doesn’t oscillate, to be precise, servo oscillation is almost invisible to the eyes. The internal feedback of a hobby servo is good, and fast settling time. Unless you require very precise control, this is not a problem.

Since your concern is just an arm demonstrating simple cartesian path, or even parabolic, etc, as long as it can be defined, I don’t see why an arm can’t do that.

By specifying the start and end position of the insertion is not enough, as the arm does not follow a straight line. One can cheat this by specifying every point along the path; the more points, the more accurate. The amount of intermediate points are limited on your IK computation time.

If your concern is to research on cartesian control system, then you should be able to find budget for better prototype.