#robotics Logs
Jan 17 2022
#robotics Calendar
12:37 AM rue_mohr: so much for early
07:07 AM enleth: 16 hours of trying to get the robot to be a 3D printer ultimately resulted in this: https://matrix.hackerspace.pl/_matrix/media/r0/download/hackerspace.pl/bed032c50d758598a0cd669d4537ab4af15819e4/20220117_082427.jpg https://matrix.hackerspace.pl/_matrix/media/r0/download/hackerspace.pl/ac32fc29e45cdafe99095263022bd27b1a4d391b/20220117_082406.jpg
08:38 AM rue_mohr: layer is too high
08:38 AM rue_mohr: good work getting the wall position worked out tho (bed leveling)
08:56 AM enleth: nah, that was printed horizontally
08:57 AM enleth: VFD on the extruder motor is not controlled by the robot, so we only had rudimentary flow control
09:09 AM rue_mohr: oh
07:01 PM Tom_itx is now known as Tom_L
07:01 PM FLHerne_ is now known as FLHerne
07:21 PM rue_mohr: ok if I sleep now, I wake up for 1am
07:34 PM Tom_L: so what time do you want to wake up?
07:34 PM rue_mohr: 1am
07:34 PM rue_mohr: maybe 2am
07:34 PM Tom_L: why?
07:34 PM rue_mohr: I need to have supper before I go to sleep
07:34 PM rue_mohr: cause then I have enought time to do things and wake up before work
07:34 PM rue_mohr: I hate getting home exhausted and unable to work on my projects
07:34 PM rue_mohr: I'd rather end the day at work like that
07:35 PM rue_mohr: enleth, I wonder if those motor amps are linear-linear
07:35 PM rue_mohr: or switching linear
07:35 PM rue_mohr: if the heatsink is that large, could be full on linear
07:36 PM rue_mohr: hmmm, short of pid, wonder how I simply sync these motors
07:38 PM enleth: rue_mohr: I'm almost certain the H-bridges chop the 600VDC bus voltage and use the motors' winding inductance to smooth out the resulting harmonics carnage
07:38 PM rue_mohr: ok
07:38 PM rue_mohr: not 60Hz chop...
07:38 PM enleth: no, a couple kHz at least
07:38 PM rue_mohr: ok
07:39 PM enleth: I haven't tried recording the motor noise to FFT it, but the sound they make buzzes with high frequencies
07:40 PM rue_mohr: I think all the inputs to my fft code were generated data
07:40 PM enleth: not a typical VFD chirping, but definitely not linear
07:41 PM rue_mohr: I seem to have lots of brushless motor stuff comming up latley
07:41 PM rue_mohr: pardon my keyboard mashing
07:43 PM Tom_L: enleth, for printing how does the software stack layers on that thing? or do you have to do it manually?
07:44 PM Tom_L: after all it wasn't desined for that purpose :)
07:44 PM rue_mohr: it sounded likey they couldn't get the control they actually needed to do it properly
07:44 PM rue_mohr: so it must have been a heck of a hack
07:45 PM enleth: Tom_L: we're using Autodesk Fusion 360 as the CAM, it has a 3D printing mode
07:45 PM Tom_L: i think that was just one layer
07:45 PM Tom_L: ahh
07:45 PM rue_mohr: the nozzel should have been closer to the wall, but
07:45 PM Tom_L: and it has a post for that?
07:45 PM enleth: but we're doing very early testing so far
07:45 PM enleth: Tom_L: yes, there's a KRL postprocessor
07:45 PM rue_mohr: if you cant sync the extruder with the travel, its hard to get it to come out right
07:46 PM enleth: written for KRC4 dialect, we had to "downgrade" it a bunch
07:47 PM rue_mohr: :) and then there is the issue of using a heated build wall :)
07:47 PM enleth: rue_mohr: the robot itself can do all kinds of constant-whatever interpolations, but we need to figure it out, the CAM is too dumb to generate quality code tailored for a robot
07:48 PM rue_mohr: frustrating to have all those front-end software issues
07:48 PM enleth: it's a lot smarter than a typical gcode interpreter, but also a lot harder to program right
07:48 PM rue_mohr: do you know the address range of the dsp card?
07:49 PM rue_mohr: oh its probably in the driver info
07:49 PM rue_mohr: I wonder what the range is
07:49 PM enleth: I don't think you have the right idea of just how fucking complex this thing is at that level
07:49 PM rue_mohr: I suppose it could be a packet port or a register map
07:51 PM Tom_L: krc1?
07:51 PM Tom_L: https://www.robot-forum.com/robotforum/thread/14203-inputs-outputs-in-the-mfc-card-krc1/
07:51 PM enleth: the specific transport mode for the DSPs is a trivial detail, all things considered, and indeed I know it
07:51 PM Tom_L: maybe that shows you something
07:51 PM enleth: nah, that's just the built-in field I/O
07:52 PM Tom_L: k
07:52 PM rue_mohr: enleth, if you have a chance to crack open the control panel, see what address range the dsp card uses for me would ya?
07:52 PM rue_mohr: (in windows)
07:53 PM rue_mohr: I assume its a PNP card
07:53 PM rue_mohr: I suppose the inf file for the driver would tell a tale too
07:54 PM enleth: it's not, and there's no windows driver for it
07:54 PM rue_mohr: but its on a windows computer
07:54 PM rue_mohr: the dsp card...
07:54 PM rue_mohr: ?
07:54 PM enleth: remember when I mentioned VxWorks?
07:54 PM rue_mohr: motors -> amp -> dsp card
07:54 PM rue_mohr: no
07:55 PM Tom_L: i do
07:55 PM Tom_L: but dunno what it was
07:55 PM rue_mohr: so, the dsp isn't a pci card on a plain old PC?
07:55 PM rue_mohr: so...
07:55 PM enleth: it is
07:55 PM rue_mohr: so
07:55 PM enleth: but there's two operating systems running
07:55 PM rue_mohr: ah
07:55 PM enleth: Windows is just the GUI
07:56 PM rue_mohr: and its talking to the other virtual os via a file share?
07:56 PM enleth: I mean, it loads the non-RT drivers and shit and starts up VxWorks, which then takes over the CPU and virtualizes Windows
07:57 PM rue_mohr: so, one computer, running windows and vxworks at the same time
07:57 PM rue_mohr: k
07:57 PM enleth: there's a shared virtual network interface
07:57 PM rue_mohr: yea
07:57 PM rue_mohr: well thats a F******ing mess isn't it
07:57 PM rue_mohr: explains how they get the performance they would need
07:59 PM rue_mohr: damn, I dont know enough about vxworks to keep going
07:59 PM rue_mohr: but
07:59 PM rue_mohr: if you booted linux and used lspci, you could get the card into
07:59 PM rue_mohr: info
07:59 PM rue_mohr: wont ask for that tho
08:00 PM rue_mohr: oh you really have to dig
08:00 PM enleth: as I said before, we decided early on that it's a waste of time to try interfacing proprietary internal stuff on long obsolete snd dying hardware
08:00 PM enleth: I don't even need to probe the card, I have the DSP firmware images
08:00 PM rue_mohr: 04:06.0 Multimedia video controller: Brooktree Corporation Bt878 Video Capture (rev 11)
08:00 PM rue_mohr: Flags: bus master, medium devsel, latency 64, IRQ 11
08:00 PM rue_mohr: Memory at f6fff000 (32-bit, prefetchable) [size=4K]
08:00 PM rue_mohr: Capabilities: [44] Vital Product Data
08:00 PM rue_mohr: Capabilities: [4c] Power Management version 2
08:00 PM rue_mohr: -v gives some info...
08:00 PM enleth: they're loaded on startup
08:01 PM rue_mohr: yea, I'm just interested
08:01 PM rue_mohr: as an alien I have to reverse engineer everything, and the more practise I get the better
08:02 PM rue_mohr: so, how long you recon till you throw out this robot?
08:02 PM rue_mohr: you seem to be sure its a dead end waiting to finish being dead
08:03 PM Tom_L: you ever have one of those?
08:03 PM rue_mohr: :) maybe have it do canned cycles to make things for tourists to buy and enjoy :)
08:03 PM rue_mohr: Tom_L, a buddy has one
08:03 PM Tom_L: working?
08:03 PM rue_mohr: knuckled down as tight as it can to fit in a seacan
08:04 PM rue_mohr: he hasn't been able to build his shop, and after his wife died he kinda lost motivation for everything
08:04 PM Tom_L: you got plenty of room in the kitchen...
08:04 PM rue_mohr: I am still sad, she wouldn't have wanted him to stop
08:05 PM rue_mohr: hah, it would not fit between the floor and the cieling
08:05 PM Tom_L: it could make room for itself
08:05 PM rue_mohr: I think he had to cut out part of the seacan floor to make it fit
08:06 PM rue_mohr: I would value the hardware tho
08:06 PM rue_mohr: not as much the drivers and the software
08:07 PM rue_mohr: but I been more focused on building servos for about 2 years now
08:07 PM enleth: rue_mohr: you misunderstood my intentions - I don't indend to get rid of the robot anytime soon, unless perhaps I manage to get my hands on a newer model with less hours on it - and there are several reasons for it
08:07 PM rue_mohr: so its kinda a current interest
08:08 PM enleth: the arm itself, other than mechanical wear, is a perfectly fine, elegant piece of solid engineering
08:08 PM rue_mohr: enleth, but your plan to keep it going involves a luck windfall
08:08 PM enleth: it's just that particular old generation of the controller that is crap
08:08 PM rue_mohr: yes
08:08 PM rue_mohr: and what are you going to do about it?
08:08 PM enleth: the easy way out of the problem would be getting a newer controller made by KUKA
08:08 PM rue_mohr: right
08:08 PM enleth: and I'm actively looking for one
08:09 PM rue_mohr: right
08:09 PM rue_mohr: I wonder if you can find one that been in a fire
08:09 PM rue_mohr: did they conformal coat the amplifier?
08:09 PM enleth: the harder way out would be to get servo drives powerful enough to do anything useful with this arm and build my own control system based on LinuxCNC
08:09 PM Tom_L: that little one shown on their website is cute :)
08:09 PM enleth: rue_mohr: never ever get anything out of a fire and expect it to work
08:10 PM rue_mohr: did they conformal coat the amplifier?
08:10 PM enleth: it'll stink up the place and fail all the time
08:10 PM rue_mohr: did they conformal coat the amplifier?
08:10 PM enleth: no, and I don't think it would help in a fire if they did
08:10 PM rue_mohr: oh
08:10 PM rue_mohr: the water damage would rule that out then
08:10 PM rue_mohr: haha
08:11 PM rue_mohr: lots of things dont get THAT badly damaged
08:11 PM enleth: honestly, I'd prefer water damage on that piece of equipment over any contact with high temperature and smoke
08:11 PM enleth: anyway, that's neither here nor there
08:11 PM rue_mohr: but if you have any fire, small as you want, anywhere in a building, everyone immediatly throws out EVERYTHING in the builing, damaged or not
08:12 PM rue_mohr: seen it a few times
08:12 PM enleth: well then it's "been in a fire", not been in a fire
08:12 PM rue_mohr: yea, people just throw everything out
08:12 PM enleth: yes, if one like that cropped up, that got neither smoke nor water on it, I'd get it, sure, but that's an oddly specific line of thinking
08:13 PM enleth: when one turns up at a right price for whatever reason, I'm evaluating it for whatever criteria I deem important anyway
08:13 PM rue_mohr: sometimes you have to think like that to get stuff you want
08:13 PM Tom_L: they had a pile of arms at the vo'tech but unfortunately they moved that department to the uni which makes them unaccessable
08:13 PM rue_mohr: I wonder how often bots get retired anyhow
08:14 PM Tom_L: depends how often they get crashed
08:14 PM enleth: and I don't even have to be picky about the controller type - KUKA is serious about backward compatibility, if I had $50k for a modern KRC5 controller, I could hook it up to that 1995 arm and have it running in a few minutes
08:14 PM rue_mohr: oh I'd bet they are more often replaced to get newer versions of windows
08:14 PM Tom_L: so start a go fund me :)
08:15 PM rue_mohr: have you asked kuka about a side-grade package?
08:15 PM enleth: the arms themselves are designed for a lifespan of roughtly 10 years on a factory floor, working 16 or 24 hours a day
08:15 PM enleth: *roughly
08:16 PM enleth: it's normal for controllers to die first and get replaced with never versions, which is why the new ones support old arms
08:16 PM rue_mohr: I wonder how much precision loss that life is ended at
08:16 PM Tom_L: do they use harmonic drives or how is the joint gearing?
08:16 PM enleth: of course they use harmonic drives
08:17 PM rue_mohr: despite the "I'm not gonna design my own damn servo controllers from scratch" aspect, I love this conversation :)
08:17 PM Tom_L: at least it's keepin you awake
08:17 PM rue_mohr: but I promise to be tolerant
08:18 PM rue_mohr: I'm waiting for supper to cook
08:18 PM rue_mohr: I'm operating at about 1/10 brain capacity
08:18 PM Tom_L: don't burn the house down
08:18 PM rue_mohr: other wise I'd be writing two peices of software while having this conversation
08:18 PM rue_mohr: its an autocooker
08:18 PM Tom_L: oh
08:18 PM rue_mohr: I took a cooker and added an auto
08:19 PM rue_mohr: I need to add a bigger auto tho
08:19 PM enleth: rue_mohr: for high precision applications, you order an "Absolute Accuracy" arm from KUKA - they have been selected out of the regular production run for superior build quality and given a thorough set of measurements (deflection under load, static and dynamic, harmonics, geometry corrections, etc.), that is then loaded up into the software to perform corrections on the fly
08:20 PM enleth: those robots are re-checked and re-measured as needed
08:20 PM enleth: for anything else, you don't give a shit if it positions to 0.1mm or 0.3mm
08:20 PM rue_mohr: yea
08:20 PM rue_mohr: the cnc I'm doing I only want 0.1mm
08:21 PM rue_mohr: 48"x96"
08:21 PM rue_mohr: but yea
08:21 PM enleth: it'll wear out and lose accuracy, but that half-a-car the robot is putting in place for welding will fit into a jig anyway
08:21 PM rue_mohr: yea thats crazy strong
08:22 PM rue_mohr: whats it approx reach?
08:22 PM enleth: 3m with no tool
08:22 PM rue_mohr: looks like 4 or 5 feet?
08:22 PM rue_mohr: oh god, its bigger than it looks
08:24 PM enleth: https://www.eurobots.net/media/diagram/det_17_working_envelope_1.jpg
08:24 PM rue_mohr: I suppose I should make it notify me when its done
08:24 PM enleth: A is 3m
08:25 PM rue_mohr: C?
08:25 PM rue_mohr: pretty close to the same it looks
08:25 PM enleth: a bit less, but the actual flange goes past that
08:26 PM rue_mohr: yea it didn't even notice that it bumped the wall did it?
08:26 PM rue_mohr: :)
08:28 PM enleth: nope, no overload alarms
08:30 PM enleth: oh, right, you asked for motor info too - got some nameplate photos
08:30 PM rue_mohr: so, what else is the hackspace like?
08:30 PM rue_mohr: ooooo
08:30 PM rue_mohr: motor data!
08:31 PM enleth: https://x0.at/wUqg.jpg https://x0.at/vJUw.jpg
08:31 PM Tom_L: no rue.. you got nothin in your stash to drive em!
08:31 PM enleth: those are rebranded Siemens servos
08:31 PM rue_mohr: ooo
08:31 PM enleth: I'm pretty sure part numbers check out in Siemens datasheets
08:31 PM rue_mohr: what does seimens suggest driving them with?
08:31 PM rue_mohr: oh interesting
08:32 PM rue_mohr: their not brushless, their just motors
08:32 PM rue_mohr: 600V, 5.7A 3000RPM
08:32 PM enleth: sure they are brushless, even if that's not how they're labeled
08:32 PM enleth: those are 3-phase permanent magnet servos
08:32 PM rue_mohr: yea
08:32 PM enleth: no brushes anywhere in sight
08:33 PM rue_mohr: synchronous ac motors tho
08:33 PM enleth: don't even get me started on the whole BLDC/servo naming thing
08:33 PM rue_mohr: yea, but not low impedence
08:33 PM enleth: which is why I suspect the drive just chops up 600VDC and leaves it up to the motor's impedance to smooth it
08:34 PM rue_mohr: 9.5A 156V, hmm
08:34 PM rue_mohr: that one looks more like what I'd expect
08:34 PM enleth: that's one of the three big ones, for axes 1-3
08:34 PM rue_mohr: hmm 600V, 3000RPM
08:34 PM enleth: it's, well, BIG
08:34 PM enleth: like, too heavy to safely handle kind of big
08:34 PM rue_mohr: 5kv motors :)
08:35 PM rue_mohr: heheh
08:35 PM rue_mohr: :D
08:35 PM rue_mohr: wow they go to a lot of work to avoid the term RPM
08:36 PM rue_mohr: yet they dont avoid /min instead of /sec
08:36 PM enleth: it's german, "RPM" is an english acronym
08:36 PM rue_mohr: ok,
08:38 PM rue_mohr: is that second image one of the mtoors on the elbow?
08:40 PM enleth: https://thumbs.img-sprzedajemy.pl/1000x901c/a5/bb/94/robot-spawalniczy-kuka-kr-1252-krc1-pozostale-dzierzoniow-335798257.jpg
08:41 PM enleth: that photo has a nice view on all six motors
08:41 PM enleth: three big ones: there's one vertically mounted above the base, one on the lower arm joint and one on the upper arm joint
08:41 PM enleth: and three small ones side by side on the upper arm, within the black counterweight
08:42 PM enleth: the first photo is of the smaller ones (you can see the "hot" sticker in it)
08:43 PM enleth: the second photo is the second big motor, lower arm joint
08:45 PM enleth: https://x0.at/Nuz-.jpg
08:48 PM Tom_L: do they 'home' them on startup or how do they know their location on powerup?
08:48 PM rue_mohr: huh, I thought the elbow cluster was larger
08:49 PM enleth: Tom_L: most industrial robots are "mastered", as in zeroed once and then continuously keep track of their position
08:49 PM Tom_L: ok
08:49 PM rue_mohr: I think ABB had the right idea bringing the counterweight down to the bottom
08:50 PM enleth: rue_mohr: this robot has two counterweights
08:50 PM enleth: there's a hydropneumatic one at the bottom (the black tank), and dead weight at the top
08:50 PM rue_mohr: yea
08:50 PM enleth: ABB likes their linkages
08:50 PM rue_mohr: the other one is a cyinder and not a counterwiehgt
08:50 PM enleth: they work, they're also ugly
08:51 PM rue_mohr: what?
08:51 PM enleth: just a personal preference
08:51 PM rue_mohr: http://ruemohr.org/~ircjunk/robots/arm10/p1110089.jpg
08:51 PM rue_mohr: http://ruemohr.org/~ircjunk/robots/arm9/p1060858.jpg
08:51 PM rue_mohr: take it back :P
08:51 PM enleth: rue_mohr: technically speaking, that cylinder is considered a counterweight, because it acts as a counterweight
08:52 PM rue_mohr: its a spring like mine
08:52 PM rue_mohr: where is the srping
08:52 PM rue_mohr: bad choice of image
08:52 PM rue_mohr: http://ruemohr.org/~ircjunk/robots/arm8/p1060646.jpg
08:52 PM rue_mohr: http://ruemohr.org/~ircjunk/robots/arm8/p1060649.jpg
08:53 PM rue_mohr: they just use pressure cylinders instead of springs
08:53 PM rue_mohr: all those robots are counterbalanced
08:53 PM rue_mohr: its cute, you disconnect the mtoors and they kinda take their default stance
08:53 PM * Tom_L doesn't think rue_mohr has an OSHA approved shop
08:53 PM rue_mohr: the tape prevents ringing
08:54 PM enleth: I mean this: https://www.eurobots.net/media/robot/det_235-irb_1400_m94a_used_robot.jpg
08:54 PM enleth: IRB 1400 has this secondary strut/linkage on the back
08:54 PM enleth: ABB likes to use this design
08:54 PM rue_mohr: where is its counterweight...
08:54 PM enleth: KUKA very much doesn't
08:54 PM enleth: it's all on the bottom, with the linkage transferring loads
08:54 PM rue_mohr: just used pressure cylinders instead of springs
08:55 PM rue_mohr: but the lower arm doesn't have to lift the counterweight
08:55 PM rue_mohr: less upper mass
08:55 PM rue_mohr: oh its getting time for a new keyboard
08:55 PM enleth: looking at the specs, I don't think this hinders the robot very much
08:55 PM rue_mohr: where is my icepick
08:55 PM rue_mohr: not if you make your motors larger to compensate
08:56 PM enleth: but it's a good way of eliminating a whole bunch of pinch points and snag/tangle risks
08:56 PM rue_mohr: http://ruemohr.org/~ircjunk/robots/arm5/p1030872.jpg
08:57 PM enleth: the cylinders, springs and linkages on many arm designs close up like shears
08:57 PM rue_mohr: what do you mean pinch points and snag risks?
08:57 PM rue_mohr: ^^
08:57 PM rue_mohr: :)
08:57 PM Tom_L: http://tom-itx.no-ip.biz:81/~webpage/cnc/practice_drawings/Arm_assembly.jpg
08:57 PM rue_mohr: if my arms were not so small I'd use cylinders
08:57 PM Tom_L: heh that was one of my assembly problems
08:58 PM rue_mohr: :)
08:58 PM enleth: it's a tradeoff, but KUKA went for a streamlined, "contained" design very early on
08:58 PM enleth: and it's my personal preference in terms of aesthetics
08:58 PM Tom_L: does that make servicing tougher?
08:59 PM rue_mohr: http://ruemohr.org/~ircjunk/robots/arm6/slide.htm
08:59 PM rue_mohr: arm 6 is still in progress
08:59 PM rue_mohr: my goal is actually backdrivable motors for training
08:59 PM enleth: Tom_L: no, I've had a bunch of things on that arm apart by now and I don't think it was any harder because of that
09:00 PM Tom_L: good design
09:00 PM enleth: Tom_L: in fact, I'd say the clustered up A4-A6 motors make it way easier to service than most ABBs and FANUCs with motors strewn around the whole upper arm
09:00 PM enleth: there's just 3 cardan shafts in the triangular section of the upper arm that transfer power into the wrist
09:01 PM enleth: other than that, there's not much going on *inside* the main castings
09:01 PM rue_mohr: http://ruemohr.org/~ircjunk/robots/arm8/slide.htm
09:02 PM rue_mohr: that was the second in a crazy road of getting carried away building another one
09:06 PM rue_mohr: those 4 little bots really surprised me, still working after like 48 hours continious operation
09:06 PM rue_mohr: never expected that out of them
09:07 PM rue_mohr: sometime I need to throw some IK at them
09:07 PM rue_mohr: heh, see if I can get them to within 1cm :)
09:08 PM rue_mohr: the repeatability is great tho
09:08 PM rue_mohr: one did 16 hours of picking up marbles and dropping them into a race reciever
09:08 PM rue_mohr: off 4 random tracks
09:15 PM enleth: https://www.youtube.com/watch?v=ZHMo_LcdaB0
09:15 PM enleth: that's a nice almost-full-speed test routine video for KR200
09:18 PM enleth: oh, and we actually livestreamed the installation of our robot on its base: https://www.youtube.com/watch?v=atvtm4H-jF8
09:18 PM enleth: long video, skip around to find the fun parts
09:18 PM enleth: gives a sense of scale pretty well
09:19 PM enleth: around 30:00 or so
09:20 PM enleth: at 1:20:00 we start putting it onto the base
09:21 PM enleth: at 2:42:00 it starts moving
10:31 PM Tom_itx is now known as Tom_L
11:30 PM goppo: hi all
11:32 PM goppo: i'm trying to make a high torque gearbox. would it be a good idea to 3d print a harmonic gearbox and use a 1:10 metal gear box on the output?
11:33 PM goppo: my thinking is that most of the torque is exerted near the output of the drivetrain, so it might be a better idea to use metal gears there
11:33 PM goppo: does anyone know if it'd be a good idea?