#robotics | Logs for 2016-05-06

Back
[09:22:23] <rue_house> cats are 3 state, in, out or oIuNt
[09:25:00] <deshipu> strandbeests are not actually walking
[09:25:34] <deshipu> it's just a wheeled vehicle with the wheels camouflaged into a cool-looking mechanism
[09:25:55] <deshipu> the thing is, it's as bad (or worse) on uneven terrain as a wheeled vehicle
[09:32:30] <rue_house> :) and what are you gonna say about 3 servo hexapods
[09:33:54] <deshipu> there is a difference between walking and crawling
[09:34:48] <deshipu> then main difference is that when you walk, your feet tend to stay in place once placed on ground, and don't get dragged
[09:35:41] <deshipu> as soon as you rely on dragging the feet and differences in friction, you are going to have problems on surfaces with uneven friction
[09:38:57] <rue_house> :)
[09:42:26] <deshipu> physics is a bitch
[09:49:31] <veverak> and bitchers are ment to be fucked
[09:49:52] <veverak> *bitches
[09:56:39] <SpeedEvil> I want a walking shed.
[09:56:48] <SpeedEvil> But that is annoyingly hard :)
[09:58:06] <deshipu> a breaking-down shed is much easier
[10:00:02] <veverak> good part is
[10:00:19] <veverak> I managed to pick projects for two course related to my 'hacking' projects
[10:00:21] <veverak> <#
[10:00:23] <veverak> <3
[10:04:03] <SpeedEvil> deshipu: a break-dancing shed is even harder
[10:57:33] <deshipu> https://www.youtube.com/watch?v=ub6mA2m3rq4
[12:37:41] <jason__> I started making this crappy aluminum frame: http://bit.ly/1T2HemF but the entire thing can shear left and right by a significant amount. I'm not very mechanically inclined. What am I missing? Would lock washers fix it? I don't have the tools to make the cuts super precise :\
[12:39:21] <jason__> (Those are machine screws)
[15:04:46] <SpeedEvil> jason__: Does not load
[15:16:25] <deshipu> jason__: struts
[15:16:46] <deshipu> you are missing struts
[15:48:14] <jason__> deshipu, is that the only option? I think it will interfere with the way I plan to mount it
[15:48:34] <deshipu> no idea without seeing the image
[15:49:15] <jason__> http://imgur.com/w8rTgTL
[15:50:41] <deshipu> you could use two screws in each
[15:50:48] <deshipu> that would help somewhat
[15:50:58] <deshipu> or triangle-like corners with 3 screws each
[15:51:25] <jason__> yeah someone pointed that out but I think I didn't leave any room for extra screws
[15:52:02] <jason__> That would have been the way to go I think
[15:52:44] <deshipu> well, maybe next time
[15:53:19] <jason__> I thought about just putting some kind of glue in all the corners -_-
[16:02:01] <deshipu> I'm not a fan of glue, makes things hard to adjust or replace
[16:03:36] <jason__> The good thing is I wouldn't need to buy more aluminum. I had like two inches of material left over after cutting all the pieces for that.
[16:04:06] <jason__> (I was sort of proud of that before I got all the holes/screws in it -_-)
[16:05:38] <deshipu> say, how will it be loaded?
[16:05:45] <deshipu> what directions will forces work?
[16:06:33] <jason__> Well, it actually has nothing to do with robotics. It's a laptop stand :P.
[16:07:46] <jason__> so there will be a laptop sitting on top of it, and the entire thing will be angled downward at nearly a 45 degree angle
[16:08:36] <jason__> and the pieces in the middle will have holes to attach it to something
[16:08:46] <deshipu> I see, so no forces orthogonal to the screws
[16:08:53] <deshipu> glue sounds good then
[16:09:24] <jason__> Yeah I mean honestly I could probably use it like it is now, I just wouldn't be thrilled about it
[16:09:54] <jason__> I made it fit my laptop pretty precisely, so having it in there kind of makes the whole thing rigid.
[16:10:18] <veverak> hmm
[16:10:26] <veverak> was thinking about hot to prepare project for other people
[16:10:31] <veverak> I mean, i use raspbi in the robot
[16:10:44] <veverak> and don't want the way that I server .img of some distro to just install and use the robot
[16:11:06] <veverak> ansible may be good option I was thinking lately...
[16:11:30] <veverak> "install whatever distro you like and use ansible to prepare the enviroment, project was tested on raspbian and fedora arm..."
[16:11:59] <jason__> ansible may be overkill
[16:12:49] <veverak> jason__: any universal alternative how to prepare enviroment on as wide range of linux distros as possible?
[16:13:06] <deshipu> every time I hear "overkill" in relation to computer software, I can't help but twitch
[16:13:18] <deshipu> it's not like the extra features are consting you
[16:13:31] <veverak> ansible can do this easily, got a lot of documentation and gives me a lot of flexibility and space to manuver
[16:13:34] <deshipu> just use the good tool, you might even need the extra features eventually
[16:13:36] <veverak> can't really se the "overkilling"
[16:13:38] <veverak> ;)
[16:13:52] <veverak> overkill is when tool needs more care that is it's usefulness
[16:14:02] <veverak> given that I can't really find proper alternative this is not the case
[16:14:14] <deshipu> it's like those people who copy-paste chunks of code into their programs because "they don't want any dependencies"
[16:14:26] <deshipu> veverak: there is always puppet ;)
[16:14:29] <deshipu> veverak: or chef
[16:14:42] <deshipu> veverak: or a million other configuration management solutions
[16:14:44] <veverak> deshipu: puppet needs standalone server afaik
[16:14:49] <jason__> how complex is the configuration?
[16:15:00] <veverak> ansible can be done in a way: "install ansible, git clone, ansibple-playbook ...., enjoy"
[16:15:49] <veverak> jason__: I need to make sure that ntp is properly configured, ssh is properly configured, swap is disabled, required packages are installed, repo with robot app is installed and entire ROS is installed
[16:16:02] <jason__> I think by far the most common thing you see in projects online is "run this apt-get install, git clone, make/cmake"
[16:16:05] <veverak> and camera/i2c enable
[16:16:11] <deshipu> veverak: don't forget to disable the serial console too
[16:16:22] <veverak> deshipu: why to disable serial console?
[16:16:24] <veverak> :)
[16:16:32] <deshipu> veverak: to use the serial to talk to other stuff
[16:16:40] <veverak> yay
[16:16:59] <veverak> deshipu: I actually plan to let it be, attach esp8266 and it with ap mode and code that allows you control it
[16:17:04] <deshipu> jason__: sadlly, the most common thing you see is "curl ... | sudo bash"
[16:17:11] <veverak> you know, you go with your robot somewhere and something messes app
[16:17:25] <veverak> jason__: yeah, that doesn't sound good to me :0
[16:17:30] <deshipu> veverak: I'd say that wifi dongle and ssh work better there
[16:18:00] <veverak> deshipu: I want that esp to give you console acces on wifi to via serial, which got boot line
[16:18:08] <veverak> and one pin will be connected to mosfet that powers raspi
[16:18:16] <veverak> so you can reboot it and see log :)
[16:18:18] <deshipu> nice
[16:18:22] <veverak> in case raspbis ssh fails
[16:18:32] <veverak> but, this is still under heavy R&D
[16:18:34] <veverak> :D
[16:18:45] <veverak> given that I have tons of things to do, I sort of wait when micropython will be good enough for this
[16:18:47] <veverak> O:)
[16:19:02] <veverak> btw: curl ... | sudo bash is horrible
[16:19:18] <veverak> with ansible I can prepare different playbooks and give simple tutorial that explains what are they for
[16:19:28] <veverak> and maybe have sensible setup to support multiple distros
[16:20:41] <deshipu> veverak: btw, micropython for esp8266 has a stable release
[16:21:00] <deshipu> veverak: even has a repl in a browser over websocket
[16:21:14] <veverak> awesome
[16:21:25] <deshipu> and lets you upload files through that too
[16:21:26] <veverak> deshipu: is it possible to disable anything to esp serial on boot?
[16:21:28] <veverak> :)
[16:21:36] <veverak> aka silent boot of sort?
[16:21:47] <veverak> I mean
[16:21:50] <deshipu> no, the bootloader is hardcoded and it always prints some stuff
[16:22:01] <veverak> what I want to do, may be something that someone else will do
[16:22:12] <veverak> so I sort of hope that by the time I need it I can just use something :D
[16:22:14] <veverak> deshipu: yeah
[16:22:27] <veverak> so I am still at point that I want to use second tx/rx pair that esp got eventually
[16:22:37] <deshipu> it only has tx
[16:22:38] <deshipu> no rx
[16:22:46] <veverak> oh, yeah, but you know what I main :)
[16:22:48] <deshipu> and I think that tx is mirrored at boot time anyways
[16:23:06] <veverak> it is?
[16:23:08] <veverak> damn it
[16:23:14] <deshipu> not sure
[16:23:26] <deshipu> you'd need to test :)
[16:23:32] <deshipu> it's on gpio2
[16:25:09] <veverak> k
[16:25:40] <veverak> I can eventually prepare something that blocks communication with raspbi until esp setups one print to HIGH
[16:25:42] <veverak> maybe
[16:29:05] <deshipu> just a transistor connected to one of the esp's pins
[16:29:43] <deshipu> should be easy
[16:29:57] <veverak> yep
[16:30:42] <veverak> deshipu: hoping I can attach it on http://www.ebay.com/itm/DIY-Proto-Hat-Shield-for-Raspberry-Pi-2-B-A-Raspberry-Pi-3-Model-B-/222070300147?hash=item33b46bddf3:g:WhwAAOSwxp9W~Lcl
[16:30:45] <veverak> or something like that
[16:31:20] <deshipu> sounds good
[16:31:53] <deshipu> I finally got the 8 servos to work on the esp8266 with micropython for the Pony Bot
[16:32:08] <veverak> awesome!
[16:32:09] <veverak> :
[16:32:11] <veverak> :D
[16:32:14] <deshipu> hopefully I will make it walk over the weekend
[16:33:42] <veverak> nah
[16:33:51] <veverak> month of exams
[16:33:57] <veverak> and than maybe finally time for more hacking :)
[16:34:14] <deshipu> I'm home alone for a week
[16:34:26] <veverak> deshipu: anyway, for one course, We write C++ library for colission detection
[16:35:14] <veverak> (you insert mesh of triangle, it let's you move those meshes in space, and runs algorithm to create optimized structure from the list of triangles, which can be YAML exported/imported)
[16:35:46] <veverak> and checks collision, also allows you to plan movement for each mesh and check if it collides like "if I move mesh X to point Y in 5 sec, will there by any collision?"
[16:36:07] <deshipu> can you do that with higher-dimensional simplexes too?
[16:36:14] <veverak> maybe?
[16:36:16] <veverak> :D
[16:36:35] <deshipu> like 3-simplex?
[16:37:04] <veverak> well
[16:37:14] <veverak> it works surface againts surface somehow
[16:37:19] <veverak> or, practically :)
[16:37:21] <veverak> so yeah
[16:37:23] <veverak> and no
[16:37:51] <deshipu> so 3-simplex would be volume against volume
[16:37:54] <veverak> reminds me that I wanted to write note that I want to make non-surface only detection
[16:38:23] <veverak> deshipu: if you would get 3-simplex, and put another one into it
[16:38:26] <veverak> withou touching surfaces
[16:38:32] <veverak> it will detect it as "non colission"
[16:38:34] <veverak> :)
[16:38:43] <deshipu> bummer
[16:38:50] <veverak> repairable
[16:38:53] <veverak> or, doable
[16:39:04] <veverak> not enough time for that now and given use case it's not something I hurry on
[16:39:08] <deshipu> well, everything is doable
[16:39:17] <deshipu> in the worst case you just iterate all possibilities ;)
[16:39:25] <veverak> lol :)
[16:39:35] <veverak> deshipu: do you know AABB tree?
[16:40:03] <deshipu> I vaguely remember something like that, but don't remember the details
[16:40:05] <veverak> it creates tree from list of triangles
[16:40:46] <veverak> in a way, that each leaf represents one simple polygon (Triangle in mine case)
[16:41:09] <veverak> and each node, is smallest boundary box for it's children
[16:41:49] <veverak> than, wjen you make colission detection, you start detectiong colission from roots of the trees, at start you compare boxes, if they collide, you continue down in tree
[16:41:55] <veverak> if they don't you stop and there is not colission
[16:41:58] <veverak> quite nice
[16:42:15] <veverak> (except we used spheres instead of boxes and algorithm for making the tree is n^3 now )
[16:42:52] <deshipu> cool
[16:42:57] <veverak> yeap, cool :)
[16:42:59] <deshipu> I used quad trees for something similar
[16:43:02] <deshipu> but on a grid
[16:43:04] <veverak> not sure it will win in efeciency, but cool
[16:43:35] <veverak> + it can parse STL files :)
[16:43:52] <veverak> idea is that I want to use it in my quadruped robot for movement algorithm
[16:44:09] <veverak> to detect that robot won't cross it's legs, and with sensors insert something eventually into "world tree"
[16:44:09] <deshipu> won't you need 3d at some point?
[16:44:14] <veverak> it's 3d all the time
[16:44:16] <veverak> :D
[16:44:39] <veverak> deshipu: anyway, thanks to the fact that c++ boost can detect intersection of 3D primitives, it's was not so painfull
[16:44:55] <deshipu> it's simple linear algebra anyways
[16:45:01] <deshipu> detecting intersections
[16:45:04] <veverak> well
[16:45:06] <veverak> depends
[16:45:08] <veverak> :)
[16:45:16] <veverak> sphere - sphere was easy
[16:45:18] <deshipu> just solve an equation
[16:45:36] <veverak> sphere - triangle -> select parent of triangle (which is sphere) and use this, wait until it iwll be triangle-triangle)
[16:45:46] <veverak> adn triangle - triangle in 3d is somehow complicated
[16:45:53] <veverak> not the basic version, but effecient one
[16:46:03] <deshipu> you just look for a common point
[16:46:04] <veverak> anyway, I called bullshit on this one and used boost function for that
[16:46:35] <veverak> deshipu: afaik, you find line where planes of triangles intersects, there you find in which intervals on that line the triangles itnersects the line
[16:46:39] <veverak> and you decide
[16:46:41] <veverak> OR
[16:47:03] <veverak> you run 6 detection 'line vs triangle in 3d' (ray detection algorithms, well developed)
[16:47:05] <deshipu> a tringle is just 3 unequalities
[16:47:14] <veverak> and other ways I found
[16:47:22] <deshipu> just find if the six unequalities together have a solution
[16:47:26] <deshipu> that is non-empty
[16:47:50] <veverak> deshipu: anyway, idea is that I run the code on my laptop/server , let it handle STL model of quadruped robot and wait
[16:47:54] <veverak> (n^3 will take a while)
[16:48:15] <veverak> wait till optimalized structure is done, export it to yaml and use on raspi on the robot <3
[16:48:17] <veverak> :)
[16:49:05] <veverak> deshipu: anyway, these math calculations will be critical
[16:49:23] <veverak> given that ARM cpu of raspbi doesn't handle sin/cos well as far as I know :
[16:49:25] <veverak> :)
[16:50:24] <veverak> but, given the fact that algorithm should check colission of triangles ONLY when their boundary sphere intersects
[16:50:33] <veverak> which given use case shoudln't happen a lot, it should be OK
[16:53:45] <deshipu> veverak: won't the tree have to change as the legs move?
[16:53:48] <veverak> practically, colission should happend only when two legs touch each other, I suppose when this happens, only 6-8 trinalges will actually collide at worst
[16:53:51] <veverak> deshipu: nope :)
[16:54:04] <veverak> deshipu: but solving this gave as some problems the solve
[16:54:20] <deshipu> there are some dynamic aabb tree algorithms out there
[16:54:24] <veverak> 1. it's the reason I won't use boundary box, but boundary sphere
[16:54:57] <veverak> (sphere doesn't really care about rotation, but only about pos)
[16:55:09] <deshipu> ok, so the sphere for the whole leg contains all possible positions of that leg?
[16:55:30] <veverak> 2. when detecting colission, coords of spheres/triangles will by on the fly recalculated given rotation/colission of things above it
[16:55:38] <veverak> entire tree got three types of nodes:
[16:55:43] <veverak> mesh/sphere/triangle
[16:56:17] <veverak> meshes are special nodes which tell you how tree under it should be rotated/moved in detecting colission
[16:56:59] <veverak> so, when I go trough the tree, I carry "actual pos/rot modification" with me, and on meeting meshes I update those modificators accordingly
[17:00:37] <veverak> deshipu: unfortunate side effect is that no "sphere type node" is allowed to be root of mesh node for now
[17:00:39] <veverak> :)
[17:01:24] <deshipu> you mean parent
[17:01:37] <deshipu> root can be only one
[17:02:20] <veverak> yeah, sorry
[17:02:35] <veverak> deshipu: not really
[17:02:49] <veverak> root is top node of actually used tree in some representations
[17:02:53] <deshipu> as long as we are talking about trees
[17:02:59] <veverak> or...
[17:03:01] <akkad> so I want to make a tethered bot for underwater, fall to bottom, roll towards something based on camera and hook it, then just pull it out.
[17:03:13] <deshipu> akkad: cool
[17:03:14] <veverak> well, I am sometimes confused about namings, so I can be wrong on this one :)
[17:03:34] <deshipu> veverak: root is the highlander of trees
[17:03:53] <veverak> anyway
[17:03:56] <akkad> I have a 50' underwater camera. just need to dive in and figure out what I need to do to start
[17:03:56] <veverak> making this in C++ is fun
[17:03:58] <veverak> ;)
[17:04:11] <deshipu> akkad: keep us updated!
[17:06:38] <veverak> deshipu: and second project:
[17:06:52] <veverak> finding out parameters for walking algorithm using genetic algorithsm
[17:06:54] <veverak> :))))
[17:10:13] <akkad> well I've already been filming the SF bay floor bottom. and filling youtube.
[17:10:24] <akkad> tired of seeing cell phones and not being able to grab them :P
[17:11:45] <deshipu> I wonder if just dragging a strong magnet on a line over the bottom would work
[17:15:16] <dd_> @akkad: or you could use a vacuum suction to stick to the object
[17:15:48] <veverak> deshipu: btw: as for the detecting not only surface
[17:16:00] <veverak> I would need to change all triangles into 3-simplexes with same center
[17:16:19] <veverak> and use information about direction of the triangle
[17:17:07] <veverak> triangles with surface going 'other way that global center", are +1, triangles with surface going towards the gloval center are -1
[17:18:17] <veverak> than I need for each 3-simplexes that collides with another 3-simplex count score based on those +1/-1
[17:18:37] <veverak> if result score is positive -> collision
[17:18:41] <veverak> otherwise not
[17:18:48] <veverak> but, this would make all much more complex :)
[17:19:05] <veverak> and I am not sure it's 100% correct and there may be more effective solutions
[17:21:27] <veverak> well, yeah, and triangles itself are always +1
[17:22:35] <deshipu> don't worry about it
[17:22:42] <deshipu> it was just a random thing
[17:23:28] <veverak> sometimes it may make sense :)
[17:23:39] <veverak> so I am interested abbout it, but for my usecase it's not relevant
[19:00:28] <z64555> veverak: did you check out some of the game magazines/collections? collision detection is a thing there, too
[19:01:11] <veverak> yep a bit
[19:01:25] <veverak> buuuut not as much as I would like to and project needs to be finished soon
[19:01:43] <z64555> I think most of them use a hierarchal algorithm that start off with the basic sphere collision then work their way down to individual vertices
[19:01:57] <veverak> yep
[19:01:59] <veverak> that's what I do
[19:02:01] <veverak> :D
[19:02:11] <veverak> +-
[19:02:13] <veverak> gn now!
[19:02:19] <z64555> g'night, best of luck
[21:28:27] <anonnumberanon> THis movie. Robot World...
[22:57:39] <z64555> yeah? what about it
[23:01:59] <anonnumberanon> it's weird
[23:02:01] <anonnumberanon> just finished it
[23:02:09] <anonnumberanon> kinda good to kill time
[23:02:46] <anonnumberanon> How did you fix your internet?
[23:04:59] <z64555> I got a new one
[23:05:30] <z64555> this ISP doesn't charge me for overages, but does throttle me after I go over the monthly limit
[23:05:40] <z64555> which I couldn't give a hoot
[23:06:31] <z64555> freenode still gives me trouble, my net-fu isn't strong enough to find out why just yet
[23:15:21] <anonnumberanon> I pay for a server rental five dollars a month. On that I run an irc client. Then I connect to that server and to the client, from any and all my computers. The server I rent never has any connection problems but the connections I hook up to with my computer often do.
[23:21:21] <z64555> it's a conspiracy against home PCs!
[23:21:23] <z64555> D:
[23:21:41] <anonnumberanon> ^++
[23:22:12] <joga> shell irc 4 lyfe
[23:22:51] <DagoRed> word
[23:22:57] <DagoRed> weechat is amazing.
[23:30:15] <anonnumberanon> lol piece of junk https://www.youtube.com/watch?v=JenJEQxVlSM
[23:30:57] <Jak_o_Shadows> Pidgin