Skip to content(if available)orjump to list(if available)

How can this 6 axis robot have a static accuracy of 0.05 mm? (2021) [video]

franciscop

I've seen in the past a different trick that is adding an IMU[1] to the robot arm. When combining two different types of sensors, it's called Sensor Fusion[2], and it's really common to put together a IMU with GPS and slap a Kalman Filter[3] for very accurate position reading.

The particularly cool thing of this video though is that they could mount the new sensor within the motor itself, making it all a lot more compact.

[1] https://en.wikipedia.org/wiki/Inertial_measurement_unit

[2] https://en.wikipedia.org/wiki/Sensor_fusion

[3] https://en.wikipedia.org/wiki/Kalman_filter

shellfishgene

He goes into detail on the control algorithm of the project on the github. It's rather complicated... https://github.com/adamb314/ServoProject/blob/main/Doc/Theor...

franciscop

wow I didn't know that Github supported MathJax! Also yeah, that's rather amazing/complicated stuff, thanks for pointing it out!

llm_trw

If anyone wants to build this sort of thing the new Raspberry Pie Pico 2 is both orders of magnitude more capable than the chip used here and also around half the price.

It's by far the best value for money for an introductory 32bit ARM/Risk embedded device right now.

5ADBEEF

Be aware, per erratum 9, that you’ll need to include external pull-downs instead of using the internal ones

null

[deleted]

nativeit

It’s relatively old at this point, but I’m still getting excellent performance from the Teensy 4.1. It’s a little more expensive, around $30, but runs Cortex M7 @ 600MHz and includes a generous compliment of I/O and protocols.

15155

The IMRXT1011 is $1.70 when bought in bulk from China from various vendors - it can do most of the things the Teensy has.

A reputable vendor: https://www.lcsc.com/product-detail/Microcontrollers-MCU-MPU...

The IMXRT1064 can be had at $7: https://www.lcsc.com/product-detail/Microcontrollers-MCU-MPU...

analog31

I think it's still king of the hill. I've bought dozens.

chipdart

> (...) the new Raspberry Pie Pico 2 is both orders of magnitude more capable than the chip used here and also around half the price.

That's cool and all but what are the tradeoffs?

moffkalast

Well it's new, it'll take a while for support to stabilize. The Pico 1 took almost a year given that the whole concept of a PIO was new, but this one should get there far sooner.

enginoor

There are larger industrial robots that use secondary encoders to improve "out of the box" accuracy for more demanding tasks. The secondary joint feedback is paired with a kinematic model of the robot structure/mechanics to accurately predict where the robot tool point actually is.

https://electroimpact.com/Products/Robots/AchievingAccuracy

amelius

Of what use are the primary encoders then?

ipsod

It lets you see the position of the motor's shaft. That's used in some motor control algorithms, even if the motor's position isn't exactly the joint's position.

xattt

If I’m not mistaken, one encoder measures the position and force applied by the motor, while the other encoder measure the position of the slack of the business end of the robot.

amelius

Doesn't this youtube project infringe on the patent which this company holds, then?

https://electroimpact.com/Company/PatentFiles/US8989898B2.pd...

imtringued

BLDC motors require electronic commutation. The motor controller must read the current angle of the motor so that it knows which phases U V W to enable via six MOSFETs.

An ESC can cheat by reading out the back EMF but this only works once the motor has started spinning, such as in a drone, but in a robot arm that is supposed to hold its position.

gaze

You can’t judge backlash by how the robot repeats the exact same set of movements over and over. That removes hysteresis from the problem definitionally.

shellfishgene

But they're not the same motions? The second move is to the other side.

acyou

Great, but that robot isn't doing an actual task?

I sort of struggle to see how getting good positioning accuracy from a high backlash system under zero load can have a useful application.

Maybe just lack of imagination on my part.

There is this trend that says make and buy bad hardware, the software will solve it. I haven't noticed that paying off. Tesla using webcams for self driving is an example. Boeing designing their planes and then using faulty attitude sensors is another.

I would be way more impressed if the robot did something useful. My suspicion is that its real world application capabilities are rather limited.

boeinggggg

You have oversimplified the Boeing one: their goal was to create an efficient plane to compete with Airbus without needing the expense and delays of a new type certification.

To do this they needed bigger engines on the same frame, which in turn needed to be mounted further forward affecting flight characteristics and requiring retraining. Retraining would be a sales killer so they hacked on some software systems to attempt to make the plane fly like an older 737.

Then they can just use an iPad training course for pilots to upgrade. The augmentation had to avoid the pilot knowing about (I think) the plane getting stuck in a stall at a too high AoA (this is where my memory might be off...) so the MCAS software uses AoA sensors to nose down based on the detected AoA.

The AoA sensors were never designed to be used for a direct life and death critical use case and sometimes they got stuck or failed. MCAS only used one as an input. If MCAS incorrectly asseses a nose down is required and the pilot follows their 737 training they are having their last day. That plane is going down.

Bascially people were murdered by Boeing so at every stage of this wretched plan they can make more money.

I think you are right but Boeing was more of perhaps the worst possible asshole design, and deserves it's own league.

sokoloff

> If MCAS incorrectly asseses a nose down is required and the pilot follows their 737 training they are having their last day. That plane is going down.

Boeing’s argument is that an MCAS trim runaway is able to be addressed by the (memory item) Trim Runaway checklist and the crew of ET302 correctly used the STAB TRIM CUTOUT on that checklist during their attempt to save the flight. They then undid that action, in order to manually command nose-up trim (also reasonable under the circumstances, though contrary to the checklist), then stopped commanding nose-up trim while leaving the trim runaway checklist item reverted, allowing MCAS to continue the trim runaway that they’d previously correctly stopped by following basic 737 training. Then the flight was lost.

Boeing did wrong here, but their argument was that if a 737 pilot correctly executed the emergency checklist that is drilled into them during initial type training and in recurrent training, they’d be able to overcome that emergency. That falls into at least the probably technically correct category to me.

(The yoke displacement method to disconnect the autopilot was not part of the emergency checklist for stab trim runaway.)

pas

Arguably the problem is that Boeing absolutely and utterly failed to do what they set out to do. After all, if the MCAS failures would present like the usual 737 runaway stabilizer, then the certified pilots would have been able to handle it as such. Since the "runaway MCAS" was a completely new phenomenon (one factor being the absolutely idiotic "on for a few seconds and then off for some" cycle).

And as we know the FAA also was clueless, as they approved Boeing's "safety analysis".

>>> Extensive interviews with people involved with the program, and a review of proprietary documents, show how Boeing originally designed MCAS as a simple solution with a narrow scope, then altered it late in the plane’s development to expand its power and purpose. Still, a safety-analysis led by Boeing concluded there would be little risk in the event of an MCAS failure — in part because of an FAA-approved assumption that pilots would respond to an unexpected activation in a mere three seconds.

And, just to drive whatever point home, on top of all this the FAA completely dropped the ball, because it did not notice that they allowed Boeing to break their own base conditions which in effect invalidated the safety analysis.

>>> As Boeing and the FAA advanced the 737 MAX toward production, they limited the scrutiny and testing of the MCAS design. Then they agreed not to inform pilots about MCAS in manuals, even though Boeing’s safety analysis expected pilots to be the primary backstop in the event the system went haywire.

It's understandable that Boeing wanted to avoid simulator training, but apparently this regulatory discontinuity (ie. either same or different, no in-between, as far as I understand) forced them to concentrate so much on avoiding the need for new type certification that they ended up completely believing their own crazy tale about the two models' sameness, which led to hiding information from pilots.

https://www.seattletimes.com/seattle-news/times-watchdog/the...

zmgsabst

There’s some really negligent stuff, like changing how to disable auto pilot (ie, MCAS) — as the pilots of both crashed planes attempted actions that would have disabled the autopilot on previous models.

boeinggggg

If the pilots know how this sausage is made, it aint a 737 anymore. I think thay is the reason they rolled the dice sadly.

vlovich123

Wasn’t the Boeing issue completely preventable with an inconsequential extra part that cost nothing? Like the short cuts actually worked but they literally went all the way to almost succeeding and snatched defeat from the jaws of victory. (Aside from all the other things they did that also contributed to disaster situations going worse)

boeinggggg

I don't know. Maybe an expert can chime in but I think it is a hard problem because of ice etc. I think the 737Max has the problem where AoA matters more because you can get into a stall you can't get out of.

Whereas maybe before on older planes you get in a stall and you nose down to reduce AoA. You don't need a sensor to know this look at altitude etc.

So now you need perfect ten nines of reliability AoA sensors. Their use case has gone from a data point to mission critical, but the sensor is the same.

leovailati

Regarding applications for robots that have to move very precisely without carrying a load, there are robotic measurement systems: https://en.wikipedia.org/wiki/Coordinate-measuring_machine

shellfishgene

Look at this later videos where he has the servo lift a weight on a long arm.

avodonosov

Eurika! Other videos! Thank you for the idea.

One example of real work: https://www.youtube.com/watch?v=GCHXNcpq3OA

null

[deleted]

imoverclocked

Question for anyone who has used one of these analog measuring devices: the indicator seems to go all the way around before the camera zooms in to read the indicated value. Is this video actually showing the accuracy it is claiming?

lazide

I haven’t watched the whole video, but I’m assuming what they were showing was ‘move x from 0.00 to 10.00’ with the gauge showing the final move was to (actual) 10.05.

Which with how floppy that rig is, is pretty impressive.

Notably though, those gauges do need to be ‘preloaded’ (compressed into their ‘positive’ range) to be able to measure negative direction shifts, and while it looks like that was done, I can’t be 100% sure without analyzing it far more than I want to do right now.

Also, those gauges provide a degree of preload (not much, but some), which might be taking a bunch of slop out of the system and giving overly rosy accuracy numbers.

toxik

I think it’s okay that they use the contract force to remove backlash since they are actually controlling it. In fact, if you could do that well, that’s huge!

lazide

I don't think they could do that sustainably while it's actually doing 'the job' though, correct? It's pretty in the way.

tgsovlerkhgsel

Yes. The sphere at the tip has a certain radius, and the indicator will show zero (again) when the sphere has been deflected by its radius (i.e. the contact point is exactly at the center line). When out of contact, it's essentially telling you that you're missing at least a whole millimeter to the point where you should be.

Often there is a second needle indicating which of these situations you're in, but I assume it's not considered necessary because if you're 1mm off, the situation is (in the contexts in which these devices are used) very obvious.

KeplerBoy

How do 3 axis robots you can buy for 100$ (3D printers) have a static accuracy of 0.05mm?

It's not control theory, but mechanics and steppers.

mmoustafa

It’s the compromise between a gantry vs arm design

KeplerBoy

There are plenty of 3d printers without a complete gantry. The bambulab a1 mini or prusa mini to name just two.

alpaca128

Those two printers are also smaller and not as accurate at high speeds. The A1 Mini's slicer automatically places parts close to the Z axis in an attempt to reduce the issues and it uses input shaping, but given the printer can lift itself off the ground at default speeds that's not a perfect solution either.

There's a reason the larger and faster printers often use the CoreXY design instead.

null

[deleted]

foxglacier

Yes but they're not robot arms so it's not as fascinating. The length of the arm amplifies error so if you made a "mechanics and steppers" arm with the same positional accuracy as a printer, the motors would have to be much more precise or if you geared them down, the backlash extremely low like an industrial robot arm.

KeplerBoy

Sure, there's no free lunch.

maille

I'm curious what would be the best way to replicate an x/y (optionally z) system with 0.05mm or lower accuracy? Without sacrificing speed of course.

sadhorse

Depends on how much power you need (speed times force, acceleration and deceleration...) and how much stiffness you need (can't bend?).

Also depends on how much travel you need. It is easier to get 50 micron accuracy over a total length of 100 micron compared to a total length of 1 meter.

KeplerBoy

Making things lightweight is crucial, because otherwise inertia will make your toolhead deviate from the planned trajectory at any corner.

TacticalCoder

I've always wondered... Why aren't pantographs used more with robots when precision is needed?

It's used to cut precise wood pieces or carve wood or metal etc.

https://en.wikipedia.org/wiki/Pantograph

https://youtu.be/s56J_Rnh_Co

You use the "big" part to drive the "small" one, which gives it great precision.

abecedarius

Feynman brings up some problems with pantographs and precision in https://calteches.library.caltech.edu/1976/1/1960Bottom.pdf (page 6-7). I haven't thought about it myself, though.

whamlastxmas

Pantographs are mostly useful in 2 dimensions and any robot only needing two dimensions can just use rails which will be more accurate

convolvatron

that is a really great encoder trick. I wouldn't have thought it was that good, but it clearly is.

Animats

What their video demonstrates is mostly same-direction repeatability, not absolute static accuracy. They can correct for with backlash at individual motors, but not slop or bend in the linkages.

This uses DC motors. If you use modern 3-phase servomotors, you know more of what the motor is doing.

guenthert

I don't see how the second sensor would improve accuracy (or rather precision). iiuc, the second sensor allows for improved speed. Backlash of the motor (and gears and linkage) could be accounted for using a PID controller, no?

Said that, I'm impressed how precise this rather flimsy looking robot actually is.

elif

I have a hunch that Optimus likewise leans heavily upon inverse kinematic modeling. However not using the paper plate tech.

It would be sick if they use a pure vision ML approach to train a heuristic understanding of its own muscles, instead of these fixed rotary encoders which do not account for material deflection, sensor dislodgement, etc. sort of like meta quest player tracking in the SLAM loop.