#robotics Logs

Jan 16 2022

#robotics Calendar

12:18 PM goppo: hi all
12:27 PM goppo: i'm trying to make an electric trebuchet that uses a motor and gears to lift the counter-weight. but what might be a simple way to allow for the release of the counter-weight? one way might be to use a clutch, but reliable clutches tend to be quite pricey. does anyone know of any economical option?
02:45 PM rue_mohr: why is everyone making weapons?
02:45 PM rue_mohr: wait, are you the same one who was making the rail gun?
02:46 PM rue_mohr: why is nobody making a carry-around co2 laser?
03:12 PM Tom_L: we are preparing for a standoff...
03:18 PM rue_mohr: brass or nylon?
03:18 PM rue_mohr: metric or imperial?
03:18 PM rue_mohr: how long?
03:51 PM rue_mohr: https://hackaday.io/project/183026-555-based-serial-adc
03:51 PM rue_mohr: FSM uses a 555 to behave as a DAC that outputs 230kbaud serial
04:00 PM rue_mohr: so, a method for using tachs to roughly synchronize two dc motors
04:25 PM rue_mohr: ok I made up the battery pack for work
04:27 PM rue_mohr: hmm I cant hold the motor on the fast side till the slow motor comes around, I need to hold phase
04:27 PM rue_mohr: I think
04:27 PM rue_mohr: thats too fancy tho, maybe I should just try it
04:28 PM rue_mohr: I suppose it partly depeds on the resolution of the encoder
04:30 PM rue_mohr: question tho, what if the big trak didn't actually use the encoder to keep the motors in sync, what if it just chose one of them and did a count, relying on something mechanical for running staight
05:10 PM rue_mohr: https://twitter.com/sudamin/status/1308276717392334850
05:14 PM Tom_L: it's a toy, the're gonna make it as cheap as humanly possible
05:30 PM rue_mohr: hahaha
05:30 PM rue_mohr: they
05:30 PM rue_mohr: https://www.petervis.com/gallery/Toys_and_Games/bigtrak/bigtrak-motor.html
05:30 PM rue_mohr: they put magnets between the motors to keep them in sync!
05:30 PM rue_mohr: hahahaha
05:30 PM rue_mohr: thats awesome!
05:31 PM rue_mohr: k, thats not an option for me, ok
05:33 PM rue_mohr: odd, they say the encoders are only 30 degrees
05:33 PM rue_mohr: must translate to about 3 degrees of robot turn per tick
05:42 PM rue_mohr: so I'm on my own with that one
06:26 PM polprog_ is now known as polprog
08:43 PM enleth: hi there; is mucking around with old, full-size industrial robots within the scope of this channel?
08:46 PM enleth: the likes of an ex-Volkswagen 1996 vintage KUKA KR200, to be specific
08:58 PM Tom_L: sure but it's hit and miss here
08:58 PM Tom_L: most are focused on the 'toy' stuff
09:00 PM Tom_L: looks like most of them have dropped from #seattlerobotics after the split
09:01 PM Tom_L: you could ask though
09:06 PM rue_mohr: sure
09:06 PM rue_mohr: what are you doing with it?
09:09 PM enleth: rue_mohr: the short version is, I bought one for a literal scrap price, mostly fixed it and set it up at the local hackerspace, for people to learn and play with it
09:09 PM rue_mohr: yup
09:09 PM rue_mohr: does it have a pendant?
09:10 PM enleth: yes, it's a complete set of a robot, controller and pendant, wouldn't buy it otherwise
09:10 PM rue_mohr: some people get them to re-brain
09:11 PM rue_mohr: hows the wear? can it still position within 1mm?
09:13 PM enleth: can't easily re-brain a KRC1-based KUKA - I'm not sure what were they thinking back when they designed it, but it's got a monolithic 18-channel (6x 3phases) servo amplifier with a proprietary control interface; it's a literal example of why servo drives used to be called *amplifiers*, as it expects the raw waveforms to be generated by an ISA DSP board in the control PC
09:14 PM enleth: it positions fine, but has a slight wobble on linear moves that I can't quite figure out yet
09:16 PM rue_mohr: huh
09:16 PM enleth: if I had a KRC2 controller, I could try setting it up with ROS or LinuxCNC, it's got six separate, off-the-shelf servo drives with EtherCAT interfaces
09:17 PM enleth: I guess back in 1993-1995 when they designed KRC1, appropriate drives might not have been available yet, which is why they opted for a horrible in-house solution
09:23 PM enleth: yep, that particular model is pretty much *the* first of the "modern" 6R industrial robots with inline wrist
09:23 PM enleth: https://i.imgur.com/ogbxnqp.jpg
09:24 PM enleth: (holding a bodged together pellet extruder)
09:25 PM enleth: the current high-capacity KUKA robots still share the exact same design
09:27 PM enleth: main castings are a bit more streamlined and modern-looking, specs are definitely incrementally better, but there are no fundamental changes
09:28 PM rue_mohr: nice
09:29 PM rue_mohr: so your currently going for an overkill 3d printer?
09:29 PM enleth: pretty much, yeah - no specific goal in mind, just playing with the concept to see what comes out of it
09:29 PM rue_mohr: cool
09:30 PM enleth: we're cooperating with a local group affiliated with PreciousPlastics.com, it's their extruder and they're fiddling with it right now
09:31 PM enleth: actually, it's a 40kg filament making machine turned sideways, but when you've got a 200kg capacity robot, it might as well be an extruder
09:31 PM Tom_L: heh
09:33 PM enleth: I suppose this is one of the few ways you can make 3D printing directly from pellet actually work
09:33 PM enleth: the main reason it usually doesn't is just the size and weight of the extruder
09:36 PM enleth: plasma cutting is another application I'm going for - initial tests involving lots of zipties, loose wiring and sheer hope were promising but now I need to set aside some time to build a proper CNC torch mount with height adjustment
09:37 PM enleth: ultimately, this is a learning/"research"/goofing around platform, so anything goes as long as people stand back when it runs
09:38 PM Tom_L: 'don't try this at home'
09:39 PM enleth: 'try this at neighbor's home instead'
09:39 PM enleth: so far the safety track record has been good, with just a single wall being a bit worse for wear
09:39 PM Tom_L: :)
09:39 PM enleth: https://i.imgur.com/ucT3Pzi.jpg
09:40 PM Tom_L: just a memory
09:41 PM Tom_L: there was a guy in either seattlerobotics or portland robotics that had an arm in his garage
09:42 PM Tom_L: that was quite some time ago now
09:42 PM enleth: well, there's this guy: http://www.loullingen.lu/projekte/kuka/index.php?language=EN
09:42 PM enleth: he's got the exact same robot and controller models
09:42 PM enleth: bought it about the same time, we helped each other get stuff working
09:43 PM Tom_L: at least you have a little company
09:43 PM enleth: he was definitely quicker to post his shenanigans on the internet
09:43 PM enleth: I just hope we get a KRC2 controller at some point to play with retrofitting the software, as now we're stuck with ancient Win95-based garbage
09:44 PM Tom_L: where's he located?
09:44 PM enleth: I know it can be upgraded to a newer version based on XP Embedded, which is slighly less garbage-y, but good luck finding install media
09:44 PM Tom_L: that face looks familiar
09:44 PM Tom_L: dunno where from though
09:45 PM rue_mohr: haha love the framed wall
09:45 PM enleth: Luxembourg, as far as I know
09:45 PM Tom_L: different guy then
09:46 PM enleth: to be honest, the biggest practical gain from finding other people who own those robots is a possibility that they might have found install files for better software
09:48 PM enleth: another irony is that a huge majority of second-hand KUKA robots come from VW and GM plants, which used to (and still do, I think) order heavily customized controllers and software
09:48 PM enleth: so when you go to buy a KR200 on eBay, chances are you're getting a *V*KR200 with a *V*KRC
09:49 PM enleth: the arm itself, as far as I know, is just a regular KR200 with a "V" added on the nameplate
09:49 PM enleth: the controller, however, is a different story entirely
09:52 PM enleth: custom external connector pinouts, no integrated sensor/effector I/O whatsoever, custom hardware safety circuits that are tailored to assembly line conditions, only Interbus for a fieldbus interface (expensive unobtainium, even second-hand), and worst of all, software that is neutered to the point of being useless for anything other than PLC-controlled closed cycle operation with a fixed
09:52 PM enleth: coordinate system
09:54 PM enleth: it would be cool if the huge surplus of those robots meant that small businesses could buy one and try automating their work on a small scale, but the reality is that barely anyone knows how to properly convert an ex-VW robot into something usable
09:54 PM Tom_L: what type of upgrade are you looking for?
09:55 PM Tom_L: this is undoubtedly for newer equipment but there's a free 'community' version https://www.robotsinarchitecture.org/kuka-prc
09:56 PM enleth: prc is the CAM part of the stack
09:57 PM enleth: the problem is in the robot's internal software
09:57 PM Tom_L: k, i know nothing about them...
09:57 PM Tom_L: i figured that too
09:57 PM Tom_L: 'firmware' per se
09:57 PM enleth: not really, it's actually more similar to what LinuxCNC does
09:59 PM enleth: I'm not 100% sure about the most recent KRC versions, but the KRC1 (1996) and KRC2 (2001) controllers use Windows (95 originally, XPE later) with a very heavily customized VxWorks fork that gets loaded as a Windows driver on startup, then preempts the kernel, turns it into one of its subprocesses and takes over the CPU, relegating Windows to non-realtime tasks
10:00 PM enleth: the end result is akin to LinuxCNC with RTAI
10:01 PM enleth: and the similarities don't end there - the realtime code that runs on VxWorks does path planning and position control, but everything from velocity control down is handled by a pair of DSPs on a custom ISA (later PCI) card, not unlike a Mesa card
10:01 PM enleth: all interfaces between those components are, obviously, bespoke, proprietary and undocumented
10:02 PM Tom_L: of course
10:02 PM rue_mohr: I presume the robot has a microcontroller that takes gcode?
10:02 PM enleth: rue_mohr: oh boy, noooo
10:02 PM enleth: rue_mohr: see above
10:02 PM rue_mohr: darn
10:03 PM Tom_L: it's some type of robotics language
10:03 PM rue_mohr: oh yea, wait you said pci card that manually generates the motor waveforms
10:03 PM enleth: industrial robot controllers have always had a *lot* more smarts than CNC controllers
10:03 PM rue_mohr: trying to remember the brands of the bots we did at school
10:03 PM rue_mohr: one was devilibis
10:03 PM enleth: well, yes, that's what the DSPs do, as it's their job to maintain the velocity and torque PID loops
10:04 PM enleth: and they do it by generating the raw current waveforms for the motors, which then get amplified by the servo drive
10:05 PM enleth: resolver signals go back to those DSPs to close the loop, as well as motor winding current measurements going back from the servo drive, to provide torque feedback
10:05 PM rue_mohr: k
10:05 PM enleth: anyway, the user-facing software is a lot more sophisticated than CNC controllers have been until very recently
10:06 PM rue_mohr: we did two types of bots in school
10:06 PM rue_mohr: no 3
10:06 PM enleth: the native programming language looks kinda like FORTRAN had a back alley shag with Pascal and what came out of this got a few solid hits on the head before it matured
10:06 PM rue_mohr: two were script programmed with a custom lanauge, the other was some kinda pendant thing
10:07 PM enleth: still, it is a proper structured programming language, much moreso than gcode
10:07 PM rue_mohr: what year is it?
10:08 PM rue_mohr: My understanding is that use of punched tape didn't really start to fall off till the mid 80s
10:08 PM rue_mohr: 8-|
10:08 PM enleth: 1996, so it is fully "modern" in a general sense
10:08 PM rue_mohr: k
10:09 PM enleth: I mean, we use Fusion360 with a custom postprocessor to generate the KRL
10:09 PM enleth: and it posts the files onto the robot controller directly over a network share
10:09 PM enleth: it is Windows, after all
10:09 PM rue_mohr: so, there isn't really anything to give the program dynamic values then you mean, just binary flags for plc triggers
10:10 PM rue_mohr: the computer with the servo pci card isn't also the control station?
10:10 PM enleth: yes, it is
10:10 PM rue_mohr: over the network?
10:10 PM enleth: if you install DRP, maybe
10:10 PM enleth: *RDP
10:11 PM rue_mohr: so, the motors/sensors go to a power box, that from there does to a pci card on a PC
10:11 PM enleth: and the PC is actually housed in the same enclosure
10:11 PM rue_mohr: ok
10:11 PM enleth: the pendand display is just the PC display
10:11 PM rue_mohr: headless?
10:12 PM enleth: KUKA software is normally borderless fullscreen but you can minimize it and you just get a normal Win95 desktop
10:12 PM enleth: we ran DOOM on it
10:12 PM rue_mohr: heh
10:13 PM rue_mohr: so, the controller card is generic to kuka robots of that series then...
10:13 PM enleth: in fact, the PC uses an off-the-shelf consumer mainboard with a Celeron
10:13 PM rue_mohr: yea
10:13 PM enleth: the hardware secret sauce is in the DSP card
10:13 PM rue_mohr: yea
10:13 PM rue_mohr: but its probably kuka generic
10:14 PM enleth: there were a bunch of revisions of that card over the years, but, generally, yes
10:14 PM rue_mohr: channels/motors/sensors/axies are probably same as others of its series
10:14 PM rue_mohr: hmm
10:14 PM rue_mohr: I wonder if the card communication is just a pile of registers
10:15 PM rue_mohr: you wouldn't trust windows with anything you need realtime
10:15 PM rue_mohr: have a pic of the dsp card?
10:15 PM enleth: possibly, and I'm pretty sure we could reverse-engineer it, we *are* a hackerspace, we have a whole bunch of people specializing in reverse engineering just about anything
10:15 PM enleth: but we decided pretty early on that it's a waste of time
10:15 PM rue_mohr: hey dont make me sad, I'm way the hell out in the middle of nowhere all alone
10:16 PM enleth: this hardware is no longer made, it's known to die and it's getting harder and harder to replace
10:16 PM rue_mohr: the dsp dies? or the amp?
10:16 PM enleth: the amplifier
10:16 PM rue_mohr: :-S
10:16 PM rue_mohr: what voltage?
10:16 PM rue_mohr: 120? 240? 360?
10:16 PM rue_mohr: 480?
10:16 PM rue_mohr: 575? 600?
10:16 PM enleth: it's a shitty design, I had to fix ours twice by now, Claude (the Luxembourg guy) had to as well
10:17 PM enleth: well, it takes 3-phase 400V and rectifies this directly onto the DC bus, so you get 600VDC or so
10:17 PM enleth: and that goes directly into the output H-birdges
10:17 PM enleth: *bridges
10:18 PM enleth: no galvanic separation, motor windings are live
10:18 PM enleth: this by itself is not the shitty part, it's typical for high power servo drives
10:19 PM enleth: the shitty part is that all six channels (times 3) are on a single ginormous PCB, that is a collosal pain in the ass to get out of the servo drive to fix if anything breaks on it
10:21 PM enleth: it's mounted on a 50x30cm or so heatsink that weighs a figurative ton despite being aluminum, to which the H-bridges are bolted, and then the control wiring for the bridges is *soldered* on
10:22 PM enleth: want to take the PCB off to access solder joints on the underside? have a pleasant afternoon desoldering 60 or so finicky unmarked wires
10:22 PM enleth: and that is the easy part, good luck soldering all of them back in
10:23 PM enleth: so, uh, the long-term goal is to get a KRC2 controller and sell that KRC1 to some poor sod who needs the spare parts to revive his
10:24 PM rue_mohr: yea, 600V H bridge is gonna be an issue
10:25 PM enleth: KR200 can pull 17kW at full acceleration with full load on all axes
10:25 PM rue_mohr: and, if anything goes wrong-wrong on the board with 600V, its usually QUITE messy
10:26 PM enleth: I had one of the bridges short out on startup because I messed up soldering it back in
10:26 PM enleth: as far as H-bridges go, those are truly beefy, but it just exploded anyway
10:27 PM enleth: literally exploded, with a deafening bang and shreds ending up all over the internals of the servo drive
10:27 PM rue_mohr: yea
10:27 PM rue_mohr: I got the remains of a 600V VFD that failed once
10:28 PM rue_mohr: back thru 3 layers of isolation, there were still signal traces randomly blown off
10:28 PM enleth: in all fairness, the bridge was the only destroyed part, it did not manage to take anything down with it
10:29 PM rue_mohr: yup lucky
10:29 PM enleth: but the problems don't end there - for example, the current transducers that measure motor winding current (and thus motor torque) are also known to die
10:29 PM enleth: and - guess what - you need to take the main PCB off to desolder them
10:30 PM rue_mohr: sockets for everyone!
10:30 PM rue_mohr: :)
10:30 PM rue_mohr: the current sensors are off the board by the motors or something eh?
10:30 PM enleth: no, right there on the board
10:30 PM Tom_L: might be a trick fining sockets to handle the current
10:30 PM Tom_L: finding*
10:30 PM enleth: in fact, a dead current transducer was the direct reason I got this robot for an equivalent of 1500EUR instead of the more typical 3000-5000
10:30 PM rue_mohr: hopefully there is fault detection so it doesn't try to ramp up the current to its setpoint
10:31 PM enleth: the output was stuck high, so the software immediately, consistently reported "gearbox torque exceeded on A4" on any attempt to move the robot
10:31 PM rue_mohr: how much current are they running? 30-40A/motor or less?
10:32 PM rue_mohr: is it a solid state current sensor then?
10:32 PM enleth: and the previous owner, who originally bought it from his employer, believed this message
10:32 PM enleth: so he went on a wild goose chase trying to fix a nonexistent mechanical problem
10:33 PM enleth: the transducers are basically transformers that the H-bridge output wiring loops through
10:33 PM enleth: with some active components inside to normalize the output
10:33 PM rue_mohr: yea ok , coil CTs
10:33 PM rue_mohr: or hall
10:33 PM enleth: coils
10:34 PM enleth: anyway, I got the robot, got very suspicious about there being a mechanical problem and swapped motor connections around so that "A4" would in fact be A6, a completely separate drivetrain
10:34 PM rue_mohr: :)
10:34 PM enleth: lo and behold, now A6 that the controller believes to be A4 has a "gearbox" problem
10:35 PM enleth: two used "condition unknown" servo drives and a lot of soldering later, I have one working unit, one working spare and one unit that is very dead and broken
10:36 PM enleth: but I fully expect the working one to quit again for whatever reason at any time
10:37 PM enleth: and this is why reverse engineering it is a fool's errand that we're deliberately not going for
10:38 PM rue_mohr: it might be better to find 3 phase drivers for the motors
10:38 PM rue_mohr: maybe even servodrivers that can accept the resolvers
10:38 PM rue_mohr: 120 or 240V live longer
10:38 PM enleth: that stuff is crazy expensive, even used
10:39 PM rue_mohr: do you have the motor specs?
10:39 PM enleth: I think it's still cheaper to buy a complete, working KRC2 than trying to piece together a makeshift approximation
10:40 PM rue_mohr: still like to see the specs :)
10:40 PM enleth: the freakin' CONNECTORS for the robot cables cost a fortune
10:40 PM enleth: they went for the absolute high end from Harting
10:40 PM rue_mohr: those round military ones?
10:40 PM rue_mohr: with the pins and the threaded throud?
10:40 PM rue_mohr: shroud?
10:41 PM enleth: the resolvers use that one, the power cable for the motors use a rectangual connector with a cam lock
10:41 PM rue_mohr: mmm
10:41 PM enleth: have you ever seen groun power connections on fighter jets? the same Harting series
10:41 PM rue_mohr: old IBM style
10:41 PM enleth: *ground
10:41 PM rue_mohr: huh
10:42 PM rue_mohr: I wonder what would make a good replacement
10:42 PM enleth: https://www.rgbautomatyka.pl/media/catalog/product/a/b/kuka-00-104-743-cable-2-3761.jpg
10:43 PM enleth: that's not the exact same insert configuration, but same shell
10:43 PM rue_mohr: yea
10:43 PM enleth: you could kill someone if you smacked them with the end of that cable
10:44 PM rue_mohr: I suppose 4c twist locks would make a fine connector for light use
10:45 PM rue_mohr: still expensive connectors tho
10:45 PM rue_mohr: oh, range plugs
10:45 PM enleth: anyway, I'm not building a pseudo-KRC, no way that would end up working in any reasonable timeframe
10:45 PM rue_mohr: mhm
10:45 PM rue_mohr: one of the larger hacker spaces broke theirs down and threw it out
10:45 PM rue_mohr: loooong ago
10:46 PM enleth: refitting a KRC2 with a new PC and LinuxCNC, sure, that's doable, especially when you can trivially swap the original PC back in as everything uses EtherCAT
10:47 PM enleth: rue_mohr: AFAIK they were contractually required to do so because that robot was a prototype, KUKA gave it to them to play with for a limited time and take apart
10:47 PM rue_mohr: ah
10:48 PM enleth: it's still one of the best visual references for the internals of a KUKA arm of this size, freeze-frames from that video series helped me fix a bunch of small issues
10:48 PM enleth: theirs was a good few years younger, but again, nothing fundamentally changed in those robots since 1995
10:49 PM enleth: I would not be surprised if 1995 wrists could fit onto current or previous generation arms
10:50 PM enleth: (wrists are easily replaceable in those arms, as they're most prone to damage from crashes)
10:52 PM rue_mohr: https://twitter.com/_Approximated_/status/1481690004808212484
10:52 PM rue_mohr: !!!!
10:54 PM rue_mohr: I'm going to go to bed early and not get any sleep