#robotics Logs
Sep 20 2017
#robotics Calendar
01:40 AM rue_house: ok, so in C, for floats and doubles, -0 IS different from 0
01:45 AM mrdata: hmm..
01:46 AM mrdata: usually if you want to tests whether floats and doubles are equal, you have a tolerance
01:46 AM mrdata: abs(a - b) < threshold
01:48 AM * mrdata naps
05:06 AM nikio_: hello : )
05:06 AM nikio_: im currently designing a robot so im going to join this channel
05:14 AM nikio_: are there any standards regarding working with robot arms in terms of which software is used for it?
05:16 AM SpeedEvil: Broadly, no.
05:17 AM SpeedEvil: What do you mean by standards.
05:17 AM SpeedEvil: Do you mean commonly used software?
05:17 AM SpeedEvil: http://www.ros.org/ is an example
05:21 AM nikio_: SpeedEvil, yes thats what I ment.
05:22 AM nikio_: here someone gave a nice broad answer, not sure how accurate it is: https://www.quora.com/What-programming-language-is-used-to-control-industrial-robots
05:22 AM nikio_: you think ROS is useful in the case of steering robot arms?
05:22 AM SpeedEvil: Yeah - it really depends what you mean by robot. For simple things, it can be easier to ignore existing frameworks as you don't need to get up to speed on the framework.
05:23 AM nikio_: SpeedEvil, a robotarm that will be used to pick up metallic pads to mount on equipment used on boats. the pads will weigh about 30 kg or sometimes more
05:23 AM SpeedEvil: Robot arms are not particularly simple, when you consider that you generally want more than just to be able to set the joint angles (which is)
05:24 AM nikio_: right now its hard manual work done by workers
05:24 AM SpeedEvil: Converting from robot joint coordinates to real-world coordinates, excluisions, ...
05:24 AM nikio_: but its always the same type of movements
05:24 AM SpeedEvil: If it is _precisely_ the same motion each time, you can just skip it, and use recordings of manual actuations of the robot.
05:24 AM SpeedEvil: perhaps sped up.
05:25 AM SpeedEvil: But, if you need to add vision or some flexibility in where it goes it gets much more complex, and ROS or some similar framework is useful.
05:26 AM nikio_: https://drive.google.com/file/d/0B9-Xm6KHQ_gZa3lJQlJxREtMUXM/view?usp=sharing
05:26 AM nikio_: this is a concept of a robot
05:27 AM nikio_: but the work it does is what im talking about
05:27 AM nikio_: we might make something similar to it
05:28 AM nikio_: those tracks will spin so it can replace all of them
05:28 AM nikio_: and it will go around to do the same for the other tracks
05:32 AM nikio_: did you see it SpeedEvil ?
05:32 AM nikio_: its a short 10 sec vid showing how it might look
05:37 AM SpeedEvil: for some reason not loading
05:37 AM SpeedEvil: I suspect internet issues
05:43 AM nikio_: kk
05:45 AM nikio_: 2 bad
05:47 AM nikio_: SpeedEvil, https://i.imgur.com/H6Hu05v.jpg
05:47 AM nikio_: here you can see a screenshot of the vid
05:47 AM nikio_: you can see the pads that need replacing, and a conceptual robot
05:48 AM SpeedEvil: That is a very, very, very large and expensive robot. I would be astonished if it was under a million dollars.
05:48 AM nikio_: SpeedEvil, the white thing is the robot
05:48 AM SpeedEvil: If you are meaning the blue thing, it's unclear
05:48 AM SpeedEvil: oh
05:48 AM nikio_: the large things with tracks is the equipment
05:48 AM nikio_: and the tracks are covered with the metallic pads
05:48 AM nikio_: they need to be replaced sometimes
05:49 AM SpeedEvil: The person is solely for scale, and they would not usually be in the safety enclosure I assume?
05:49 AM nikio_: the robot arm is to the right of the man, its small and white
05:49 AM deshipu: it all comes down to what pecision, speed and lift is needed
05:49 AM nikio_: SpeedEvil, yes its just a conceptual drawing
05:49 AM nikio_: but we are considering making a safety enclosure around it when the robot is working
05:50 AM nikio_: the man would prolly notbe there ; )
05:50 AM SpeedEvil: Are the pads on the chain, how do they attach, what is the tollerance of where they are placed, how can they be picked up, ...
05:50 AM nikio_: they are in the white boxes to the right
05:50 AM nikio_: which will be brought there
05:50 AM nikio_: but all we care about is getting them from the same level near the box to the tracks
05:50 AM nikio_: thats our focus from now
05:51 AM nikio_: and then mounting them ofcourse
05:51 AM nikio_: mounting is done with a pin going trough the side of the pads
05:53 AM nikio_: the tolerance is small, they have to be fitted onto the tracks, the pads have circular openings in the middle which fit exactly onto the track
05:53 AM nikio_: and then a pin goes through and screwed tight
05:58 AM nikio_: there are 72 pads on each track, and as you can see 4 such tracks
05:59 AM nikio_: I am very new to the field of robotics, so im still a bit disoriented
06:12 AM SpeedEvil: A simple device to hold most of the weight while someone works on it might be enormously easier
06:17 AM nikio_: SpeedEvil, the movement isnt that hard for a robot either is it?
06:17 AM nikio_: once you have one properlydesigned robot you dont need people at all
06:17 AM nikio_: which is cheaper
06:18 AM SpeedEvil: Getting something moved to an approximate position is much easier than actually fitting something to tight tollerances.
06:18 AM SpeedEvil: especially if the precise positions of the things may vary
06:19 AM nikio_: SpeedEvil, yes. thats why we are here : ) to solve the precise positioning problem
06:20 AM nikio_: which robotarm should i buy?
06:21 AM SpeedEvil: I have no idea, look at the various vendors of industrial robot arms. This is more a 'build your own robot' channel,
06:23 AM SpeedEvil: If you don't know the problems with assembling stuff by robot, you can get very mislead as to the feasibility, so be very careful about saying you can do something, if you are facing penalties if you in fact can't get it reliable.
06:27 AM nikio_: SpeedEvil, thats ok. no penalties. But if we can get something promising to work it could grow into something big. The client asked us to try and find out what is possible.
06:27 AM nikio_: i am finding a lot of ROS articles on controlling robot arms and also on precise movement possibilities
06:27 AM nikio_: I guess ROS is the way to go
06:28 AM SpeedEvil: It's a way to go - most vendors of commercial robot arms have their own custom solutions, some of which may suit.
06:28 AM SpeedEvil: It's possible some of them may be more-or-less turnkey.
06:51 AM nikio_: SpeedEvil, well this arm will be used for proof of concept.. what are some good robot arms or prices for this ?
06:52 AM SpeedEvil: Never looked at actual purchasable arms of this class, as way, way outside my budget.
09:36 AM rue_house: industrial robot arms are a dime a dozen if your in the right place
09:36 AM rue_house: usually areas where auto maufacturers are dieing
10:38 AM SpeedEvil: The arm may be very cheap, maintaining it and getting it reliably working in a production environment without spares...
01:24 PM peepsalot: i'm wondering how much torque i can transmit with a o-ring / pulley setup. i guess i need to figure out the coeff of friction between the o-ring and the pulley
01:27 PM peepsalot: er, sheaves i suppose
02:13 PM r0b0tdude: hi, I used to eb in a robotics club in high school + took robotics 1 and have taken a variety on unrelated technology based classes (I'm a 3rd year in university). I recently applied to a teaching job teaching robotics to elementary aged kids
02:13 PM r0b0tdude: be*
02:13 PM r0b0tdude: I'm an engineering/technology education major. (it's not a double major, just a teaching degree with a focus on technology)
02:14 PM r0b0tdude: any ways to prepare? I've got a phone interview tomorrow for it after they saw my resume
02:40 PM Snert_: saying you're really interested in ROS might look good. ROS stands for Robot Operating System.
02:41 PM Snert_: a quick google should get ya throo an interview.
02:42 PM r0b0tdude: thanks for the reply Snert_, I remember using the program Robo-Ki (not sure if thats how you spell it, and had a blast). I'm googling around and this stuff is amazing
02:44 PM jason__: do you have any idea on what your curriculum would be?
02:46 PM r0b0tdude: nope. The job posting just said "STEM instructor (robotics, science, and math)" and went on to say "training will be ongoing, background in computer programming a plus, age group is elementary school aged children."
02:47 PM jason__: I think it's really hard to teach kids legitimate robotics. You can sort of show them robots and get them playing with/interested in them, but I'm not sure what you can do beyond that.
02:48 PM r0b0tdude: Im guessing ill probably be teaching them scratch and whatnot
02:52 PM jason__: I think ROS is probably too advanced for elementary age
02:52 PM jason__: so yeah, I would think more like Scratch/Lego Mindstorm stuff
02:53 PM jason__: and maybe have some project ideas in mind
03:01 PM Snert_: the point of ROS was for the job interview. A buzz word.
03:02 PM Snert_: which the interviewers prolly haven't heard of anyways...but c'est la vie
03:05 PM i-make-robots: i would start them on scratch, autonauts, factorio, and meccano or mindstorms.
03:08 PM i-make-robots: under 4 I would do lego and minecraft. my nephew is a minecraft addict, but is getting into autonauts.
03:08 PM Snert_: minecraft is HUGE in our district
04:16 PM i-make-robots: autonauts uses scratch to program robots that move on a plane. I would love to see scratch programming of NPCs in minecraft.
04:16 PM i-make-robots: also autonauts is free atm.
06:01 PM i-make-robots: anyone here familiar with color light sensors?
06:02 PM i-make-robots: I need a sensor for a single RGB light value. should return a 24 bit value. SPI or I2C at 5v is ideal.
06:02 PM i-make-robots: mounting breakout board would be nice.
07:13 PM deshipu: TCS34725?
07:13 PM deshipu: or maybe APDS9960
07:16 PM rue_house: :| 7 packages in the mail!
07:22 PM rue_house: mmmm goodies
07:37 PM Tom_L: feel better now?
08:58 PM DagoRed: I need to get back into FPGA's again.
09:36 PM rue_bed: DagoRed, take me with you
09:37 PM rue_bed: xilix?
09:37 PM DagoRed: I've messed with those, they're nice professionally by stupidly expensive.
09:37 PM rue_bed: a...
09:37 PM DagoRed: Altaris witht he Cyclone series most likely.
09:37 PM rue_bed: k
09:38 PM rue_bed: what programmer do I need?
09:38 PM DagoRed: Even smaller ones are appealing. The main thing I want to do is use an ARM controller to mimic a USB device to do something on a FPGA and return it to the host.
09:39 PM DagoRed: Prep work for playing with AI. But I probably won't find the time go that far.
09:39 PM DagoRed: Programmer for FPGA's are... well they boot load at start..
09:39 PM orlock: rue_bed: goddamn this ESP is still possessed
09:39 PM rue_bed: jtag? any jtag? something speficic?
09:39 PM orlock: DagoRed: you know flea86, right?
09:39 PM rue_bed: orlock, hmm
09:40 PM DagoRed: https://www.sparkfun.com/products/11953
09:40 PM DagoRed: flea86? No....
09:40 PM rue_bed: just woke up, waiting for the left and right worlds to align
09:40 PM orlock: rue_bed: i can set up any combination of UDP clients and servers, they all work, EXCEPT for the combination i want to use
09:40 PM orlock: DagoRed: he makes fpga boards in arduino/rpi formats
09:40 PM DagoRed: orlock: ESP as in... servo or speed controller?
09:40 PM rue_bed: orlock, I got the w5500 demo working
09:40 PM DagoRed: Ahh, that's cool.
09:40 PM orlock: DagoRed: ESP8266 = i'm using them as a simple wifi/serial bridge
09:41 PM rue_bed: and today, the enj2860's arrived
09:41 PM orlock: rue_bed: ahh, nice
09:41 PM DagoRed: Makes sense orlock. To bad they are overall garbage IMO but can work in a pinch. Any reason you bipassed using xbee's?
09:41 PM rue_bed: 7 packages in the mail!
09:42 PM rue_bed: xbee is obsolete... aka never took off
09:42 PM rue_bed: used for power meters
09:43 PM DagoRed: I liked digi's stuff in the wireless. I thought it did take off in that limited space of home automation.
09:43 PM orlock: DagoRed: yeah, the price. and honestly, this problem is driving me batshit
09:44 PM orlock: It's only not working with a specific combination of AP and client, which is the combination i want to use
09:44 PM orlock: if i change the client or server hardware, it works
09:44 PM DagoRed: that's strange as hell
09:45 PM orlock: ESP - GL.inet doesnt work
09:45 PM orlock: ESP - 1900ACS works
09:45 PM orlock: same OS on the GL.inet and the 1900ACS
09:45 PM orlock: same code on the ESP
09:46 PM orlock: only the AP hardware changed
09:46 PM DagoRed: OH!!! Did you make sure you can support older and smaller frame sizes?
09:46 PM rue_bed: orlock, what is it that its not doing?
09:46 PM orlock: i can ping, they associate, they just done send UDP packets
09:46 PM orlock: UDP packets dont get to the UDP listener
09:46 PM DagoRed: MTU settings or something down those lines.
09:46 PM rue_bed: port numbers?
09:47 PM rue_bed: I know the chips cant take packets out of order
09:47 PM orlock: DagoRed: i'm sending 1, or maybe 2 byte data packets
09:47 PM DagoRed: It's not the ports. It's literally frame sizes. On newer hardware or cheaper but optimized hardware the firmware settings allow for larger frame sizes to try and max out throughput. The old frame sizes stayed that way for 10 base networks and old Intel devices.
09:47 PM orlock: DagoRed: I can change the AP, and it sends
09:48 PM orlock: so the ESP sends fine
09:48 PM orlock: But it will not send to a pocket router, or another ESP
09:48 PM rue_bed: orlock, try putting dummy data in the packats to build them up more?
09:48 PM DagoRed: orlock: doesn't matter, it's a network setting. With the frame sizes large they add padding. The ESP can't handle the padding of the larger frame sizes.
09:48 PM orlock: I can change to a "big router" running the same OS (different chips)
09:48 PM rue_bed: pack with an extra 16 bytes or so?
09:49 PM DagoRed: rue_bed: some may get frame sizes in the megabyte range I think. I'm not a networking expert but I've been bit by this.
09:49 PM orlock: DagoRed: Hmm. network setting as in something negotiated between the AP and cliient? you mean MTu or something else?
09:49 PM rue_bed: ?
09:49 PM DagoRed: orlock: BINGO!
09:49 PM rue_bed: the largest payload should be like 1500 bytes, no?
09:49 PM rue_bed: MTU?
09:49 PM DagoRed: It's the annoying layer 2 stuff that normally works on defaults.
09:50 PM orlock: 62 byte packets
09:50 PM rue_bed: isn't MTU always 1500?
09:50 PM DagoRed: .wik MTU
09:50 PM mpiii: [WIKIPEDIA] MTU | "MTU may refer to:..." | https://en.wikipedia.org/wiki/MTU
09:50 PM orlock: rue_bed: unless its 9000 or unless its less than 1500
09:50 PM rue_bed: eth0 Link encap:Ethernet HWaddr f0:de:f1:d6:68:63
09:50 PM rue_bed: inet addr:192.168.8.238 Bcast:192.168.8.255 Mask:255.255.255.0
09:50 PM rue_bed: inet6 addr: fe80::f2de:f1ff:fed6:6863/64 Scope:Link
09:50 PM rue_bed: UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
09:50 PM rue_bed: yea, 1500 typ
09:51 PM DagoRed: .wik maximum transmission unit
09:51 PM mpiii: [WIKIPEDIA] Maximum transmission unit | "In computer networking, the maximum transmission unit (MTU) is the size of the largest network layer protocol data unit that can be communicated in a single network transaction. Fixed MTU parameters usually appear in association with a communications interface or standard. Some systems may decide MTU..." | https://en.wikipedia.org/wiki/Maximum_transmission_unit
09:51 PM orlock: DagoRed: 62 byte frames
09:51 PM orlock: http://en.crypt.net.au/GODDAMNWTFESP.pcap
09:51 PM orlock: theres an example of it sending and working
09:51 PM orlock: if i change the SSID to connect to a pocket router, no change apart from that, the data doesnt get to pocket router
09:52 PM orlock: YET i can create the same network packets from a laptop, and the pocket router receives them
09:52 PM DagoRed: weird
09:52 PM rue_house: so someone is 'fixing' something
09:52 PM orlock: i do networking/sysadmin for a job
09:52 PM orlock: microcontrollers are for fun
09:52 PM orlock: and yes, this is driving me fucking nuts
09:52 PM rue_house: the packaets d not send from a esp properly./
09:52 PM DagoRed: right I remember orlock.
09:52 PM rue_house: ?
09:53 PM orlock: rue_house: It's dependant on the AP they connect to!
09:53 PM orlock: And it seems like the universe hates me, as the only devices it wont send to
09:53 PM orlock: are the ones small enough to fit on my robot
09:53 PM rue_house: so, you have worked out that esp-> esp dosn't work, correct?
09:53 PM orlock: thats the only thing they seem to have in common
09:53 PM DagoRed: rue_house: the issue is the layer 2 stuff. The wireless has a good connection and the firmware can handle sending packages showing layer 3 functionality with different hardware.
09:53 PM orlock: rue_house: ESP is small enough to fit on the robot so does not work
09:54 PM orlock: I can ping them too.
09:54 PM DagoRed: rue_house: OSI model layer 2 is where the timeing of frames, size of frames, etc... that's where the issue has to be happening.
09:54 PM orlock: and get a response
09:54 PM DagoRed: .wik OSI model
09:54 PM mpiii: [WIKIPEDIA] OSI model | "The Open Systems Interconnection model (OSI model) is a conceptual model that characterizes and standardizes the communication functions of a telecommunication or computing system without regard to their underlying internal structure and technology. Its goal is the interoperability of diverse communication..." | https://en.wikipedia.org/wiki/OSI_model
09:54 PM rue_house: ok, so if you go from esp->PC and tear apart everything about the packets you get, is it as expected?
09:54 PM orlock: http://en.crypt.net.au/GODDAMNWTFESP.pcap - Seems fine.
09:55 PM DagoRed: That's a good question, did you wire shark this setup orlock?
09:55 PM * DagoRed has no idea what that file format is.
09:55 PM rue_house: while doing that, do a network dump, watch what it sends, compare with esp->esp to see if the packets being sent look different when doing esp->esp
09:55 PM orlock: That link, is the .pcap network dump
09:56 PM orlock: rue_house: When it doesnt work, i don't see any packets to dump.
09:56 PM orlock: ICMP yes, but not UDP
09:56 PM orlock: DagoRed: thats a standard pcap file from tcpdump
09:56 PM orlock: should be associated with wireshark by default?
09:57 PM DagoRed: I don't think I have wireshark installed here right now.
09:59 PM DagoRed: installing wireshark now
10:03 PM orlock: Oly thing i don't recognise is a few bbytes of trailing zero's
10:03 PM orlock: Fuck, i might just bring in another AP
10:03 PM orlock: have them both as clients of that
10:04 PM orlock: or run it on the worl wlan
10:04 PM orlock: work vlan
10:04 PM DagoRed: hmm.
10:05 PM DagoRed: orlock: that might be the cause. Those trailing zero's maybe the padding I was speaking of.
10:16 PM orlock: DagoRed: Well , you've given me a better place to look than anybody else, heh.
10:16 PM DagoRed: Sorry.
10:17 PM DagoRed: I wish it was "tweak this code" instead of messing with router firmware or esp firmware.
10:17 PM orlock: DagoRed: I'll probably try connecting one of the AP's to the network here as a client
10:17 PM orlock: and see if it makes any different to whether the WRT router is running as an AP or not
10:17 PM DagoRed: cool, snipe the packet data from a ping and compare it. Then work with packets, etc..
10:17 PM DagoRed: makes sense.
10:18 PM orlock: Net step will be just using somebody elses ESP code
10:18 PM orlock: theres wireless serial bridge code out there, but it's TCP
10:18 PM DagoRed: That should be easy to convert.
10:19 PM orlock: yeah, it doesnt really matter the protocol
10:19 PM DagoRed: Since TCP is just the ack response to a packet. Remove that check and you should get UDP.
10:19 PM orlock: i was only using UDP forlower latency
10:19 PM orlock: The functions are slightly differnt
10:19 PM DagoRed: I could see that.
10:20 PM orlock: I might hassle the ESP channel about these extra bytes in the meantime
10:21 PM orlock: actually
10:21 PM orlock: lunch now
10:21 PM DagoRed: nice
10:21 PM DagoRed: it's bed time in my part.
10:21 PM orlock: cheers, 'night
10:21 PM orlock: thanks for the inspiration
10:22 PM DagoRed: no problem, it was luck I remembered.