#robotics Logs

Dec 14 2015

#robotics Calendar


01:23 maiden a little while.
02:54 anonnumberanon fleshtheworld, do you have a list of parts yet?
02:54 anonnumberanon what kind of AI do you want for that hardware?
03:00 fleshtheworld Working on another proejct. But for my prototype it is going to be really small. Motors (still looking for the best option for small robot), body parts could be anything. Its just a prototype anyways. AI I am not going to worry about it until the body is working fine.
03:01 deshipu why are everyone building humanoids?
03:01 fleshtheworld Im trying to get the body and remote control part done before 2015. AI can be later
03:01 deshipu it's the worst design possible
03:01 fleshtheworld i have a 4 legged robot next in line
03:01 deshipu there is a reason why only one animal on the whole planet uses it
03:02 Jak_o_Shadows It is a very interesting control problem
03:02 deshipu fleshtheworld: start with the 4-legged, it's easier
03:02 fleshtheworld i agree but...
03:03 fleshtheworld we wll see
03:03 deshipu it's still hard, of course
03:06 anonnumberanon why? because of the coolness factor, because of the challenge, because of the fighting competitions involved
03:06 deshipu because they don't really want to build the robot
03:07 deshipu they want to have built it
03:10 anonnumberanon it's okay if fleshtheworld is new and very optimistic, spoiler: that's the best attitude to have
03:13 deshipu of course
03:14 deshipu but replacing a hard problem with insanely hard problem doesn't help
03:17 anonnumberanon by the time he is done figuring out the body and motor we'll probably have a fleet of solutions to help him, like gyro integration, remote controller and sequencing
03:17 anonnumberanon yes it's hard to make a humanoid walk but I'll get it done within a few months from now
03:18 anonnumberanon besides it's kind of the time for a cheap humanoid revolution
03:18 anonnumberanon like Ardupilot happened
03:20 anonnumberanon deshipu, what's your next project? work more on the quadruped
03:20 anonnumberanon ?
03:20 deshipu anonnumberanon: yeah, I'm waiting for the pcb for it
03:21 fleshtheworld i havent looked into gyro but i know a bit about it from al lthe drone / quadcopters out there
03:21 deshipu anonnumberanon: I'm going to put a pi zero on it in place of the pro mini
03:21 deshipu anonnumberanon: then I have some more cpu power and can try some more fancy stuff, like better movement profiles
03:22 deshipu fleshtheworld: I'm not saying you will fail, I'm just saying you are starting from the hard end
03:23 deshipu anonnumberanon: the problem with the "fleet of solutions" is that we don't really have them
03:24 deshipu anonnumberanon: the problem is not yet understood enough to have general solutions
03:25 fleshtheworld its all in the programming and the joints
03:25 anonnumberanon More precisely, there is no open source system to walk a humanoid. Other than that there are thousands that have been made and walk, fight, etc
03:25 deshipu anonnumberanon: each for a very specific robot and very narrow task
03:26 deshipu fleshtheworld: if you say so
03:27 deshipu anonnumberanon: if you mean those japanese fighting robots with feet larger than themselves, then that doesn't really require much programming or stabilization
03:27 fleshtheworld an obvious problem is rigidity in robots
03:27 anonnumberanon Just like there are different models of cars, computers, any products in this world. Sure finding a way to add 10 gyros and running a 150mhz arm chip to a humanoid and let it stand up by itself after a bit of work would be a nice challenge.
03:28 deshipu fleshtheworld: there is a free course on MIT about "underactuated robotics"
03:28 deshipu fleshtheworld: it's highly recommended if you think about this seriously
03:29 anonnumberanon yeah don't waste your time with this class its not like a tutorial you'll have to do your homework and other things, best way to give up early
03:30 Jak_o_Shadows If you're interesting in programming one to work, make a simulator and test it on that
03:31 anonnumberanon hard to simulate a real existing robot though
03:32 Jak_o_Shadows You an do a good attempt
03:32 deshipu anonnumberanon: surely esier than to build it
03:32 deshipu eeasier*
03:33 deshipu argh, can't type, too early
03:33 anonnumberanon deshipu, sure, but if it's useless because it does not apply to your hardware, you're just engaging in a computer programming project aren't you?
03:33 deshipu anonnumberanon: the homework is optional
03:33 deshipu anonnumberanon: and they explain the problems really well
03:34 deshipu anonnumberanon: well, it gives you idea about what is wrong with your hardware and lets you try different things fast
03:34 deshipu anonnumberanon: instead of being stuck in a dead end because you already spent so much money on it
03:37 fleshtheworld What is 'underactuated robotics'. Is that just a fancy term for robots designed to be fluid, adaptive?
03:38 Jak_o_Shadows more DOF's than you can control via actuators?
03:38 anonnumberanon It is a very involved project to make a simulator that will have the following criteria: very fast physics engine, very accurate definitions of how fast the hardware responds and limits for the program based on each of the real life limitations (like gyro data output, servo rotation speed, angles
03:38 anonnumberanon that's just the beginning
03:39 Jak_o_Shadows Start with joint rotation limits & speed, and centre of gravity
03:40 Jak_o_Shadows then move onto joint strengths
03:40 deshipu fleshtheworld: it's a fancy term for robots that have un-actuated degrees of freedom, so you don't have full control about their positions
03:40 deshipu anonnumberanon: why does it have to be fast?
03:40 anonnumberanon deshipu, because gravity happens instantly
03:41 deshipu anonnumberanon: so?
03:41 anonnumberanon so you want everything to be real time for the simulation on gaits to move
03:41 deshipu anonnumberanon: not really, just simulate the gravity as happening instantly in the simulated time
03:41 deshipu anonnumberanon: the calculations can actually take two hours if need be
03:42 Jak_o_Shadows It's not that complicated...
03:42 deshipu anonnumberanon: this is another plus of a simulation -- you can have it slow at first, and optimize later
03:42 anonnumberanon Jak_o_Shadows, have you made a humanoid?
03:42 anonnumberanon and simulator?
03:43 deshipu Jak_o_Shadows: if you do full trajectory optimization on non-simplified model, it actually is that complicated, unfortunately
03:43 Jak_o_Shadows The simulator is not that complicated.
03:43 Jak_o_Shadows THe walking, sure, that is
03:43 deshipu anonnumberanon: the guys doing that underactuated robotics lecture have made a humanoid :)
03:44 deshipu plus, you can always use a ready simulator
03:44 deshipu like gazebo
03:44 deshipu but then you have to learn to use it
03:45 fleshtheworld why are you guys talking about a simulator? is it something you guys are working on or is that what Underactuated Robotics build around?
03:46 fleshtheworld *built around
03:46 deshipu fleshtheworld: well, they've built a lot of simulations in Mathematica
03:46 anonnumberanon fleshtheworld, because your robot will fall down a lot
03:46 anonnumberanon better for pixels to fall down a hundred times than a set of fragile servos with fragile hinges to fall down a hundred times
03:47 fleshtheworld so a simulator to save cost and trouble on real hardware?
03:47 Jak_o_Shadows Plus, it's quicker
03:47 anonnumberanon fleshtheworld, obviously
03:47 Jak_o_Shadows and you can experiment more, and more often
03:47 Jak_o_Shadows fail early, fail often
03:47 deshipu also you can modify your robot's mechanically for free
03:48 fleshtheworld but is Underactuated Robotics build on a simulator? or is that just where the yare testing it?
03:48 deshipu you robot's mechanics
03:48 fleshtheworld but youd have to simulae gravity, etc
03:48 deshipu fleshtheworld: no, it's a university course on the underlying principles
03:48 deshipu fleshtheworld: they derieve the formulas describing the movements and create algorithms solving them, etc.
03:48 anonnumberanon fleshtheworld, it's just math applied to the narrow field of robotics
03:52 fleshtheworld similar to what i was trying to do with AI while developing game
03:52 fleshtheworld but working and all, never had much time to work on it
03:53 fleshtheworld if like to see a video simulation in action, got any links
03:53 fleshtheworld *i'd like
03:54 anonnumberanon https://www.youtube.com/watch?v=pgaEE27nsQw
03:55 anonnumberanon making this solutin work exactly for your specific hardware would be ideal
04:01 anonnumberanon I was thinking of putting a gyro in each foot.
04:02 fleshtheworld nice, so they have already done a lot of work for me. however are they muscles as another factor? how do they plan to tranlate that to a physical robot
04:04 deshipu fleshtheworld: they are imaginary muscles with infinite strength
04:04 fleshtheworld thats basically an AI for moving around
04:04 deshipu and zero weight
04:04 fleshtheworld ^accordind to its body structure
06:05 anonnumberanon the programming style:
06:05 anonnumberanon void function()
06:05 anonnumberanon {
06:05 anonnumberanon /stuff
06:06 anonnumberanon }
06:06 anonnumberanon makes me really sad
06:06 anonnumberanon just do this like a correct programmer:
06:06 anonnumberanon void function(){
06:06 anonnumberanon /stuff
06:06 anonnumberanon }
06:11 deshipu anonnumberanon: ugh
06:12 deshipu anonnumberanon: the correct way is of course: def function(): ;)
06:12 anonnumberanon good luck with gcc ;)
06:13 deshipu in the end it doesn't matter
06:28 liohau_ anonnumberanon: so k&r are bad programmers ? :)
06:29 liohau_ SpeedEvil: here?
06:31 liohau_ well ping me when I can disturb you :)
06:31 anonnumberanon liohau_, I code in the style of the ##C channel who code with K&R and use my way..
06:33 liohau_ no. K&R use newline between function() and the opening {
06:33 anonnumberanon yeah
06:33 anonnumberanon that's not pretty
06:34 liohau_ well that's more readable
06:34 liohau_ (imo)
06:34 anonnumberanon not in my opinion
06:34 liohau_ we are allowed to disagree :P
06:34 anonnumberanon but that's just cause I'm used to the other way
06:34 anonnumberanon let's just agree to disagree
06:34 liohau_ Accepted!
06:45 anonnumberanon deshipu do you know about c++?
06:46 anonnumberanon i downloaded this sketch that has a cpp file in it and it doesnt compile
06:46 anonnumberanon I get many errors of "multiple definition of..."
06:46 anonnumberanon it seems to happen for every single function in the file
06:48 deshipu anonnumberanon: I think I've heard about it once or twice ;)
06:48 deshipu anonnumberanon: "sketch"?
06:48 anonnumberanon yeah arduino sketch
06:49 deshipu anonnumberanon: where did you download it from?
06:49 anonnumberanon http://rcarduino.blogspot.com/2012/10/arduino-serial-servos-20-servos-4-pins.html
06:50 deshipu anonnumberanon: right, you are not supposed to put it in your sketch directory
06:50 deshipu anonnumberanon: put it in your arduino ide's library path
06:51 deshipu anonnumberanon: https://www.arduino.cc/en/Guide/Libraries
06:51 anonnumberanon yesh that's what I did
06:51 anonnumberanon wait let me try again
06:53 anonnumberanon this is what I get: https://ideone.com/VmqYKH
06:55 deshipu are you trying to #include a cpp file?
06:55 deshipu because you should only #include the .h file
06:56 anonnumberanon #include <RCArduinoSerialServosLocal.h>
06:56 anonnumberanon That's all I have in the sketch.
06:56 anonnumberanon the libraries folder has the .ino, .cpp and .h in it
06:58 deshipu it shouldn't have the .ino in it
06:58 anonnumberanon ah
07:00 anonnumberanon Okay now it compiled.
07:01 anonnumberanon I don't know if you're looking at the ino but it is weird, loop() doesn't do anything
07:01 anonnumberanon I don't know what to add in it to change the servo pulses.
07:03 anonnumberanon ah it has stuff in setup()
07:03 anonnumberanon CRCArduinoSerialServos::writeMicroseconds(nChannel,1000+(nChannel*50));
07:04 anonnumberanon maybe put that in loop()..
07:04 deshipu what's wrong with the default library?
07:04 anonnumberanon which one, servo?
07:05 anonnumberanon It doesn't work.
07:06 deshipu I see
07:06 deshipu why not?
07:07 anonnumberanon I don't remember I tried it like weeks ago.
07:07 deshipu because you know, chances are this won't work for exactly the same reason
07:07 anonnumberanon shy?
07:07 anonnumberanon why?
07:07 deshipu I mean, it's not complex or anything, it should work
07:08 deshipu so the reason why the original one doesn't work may still apply to this one
07:08 robotustra morning
07:08 deshipu of course hard to say without actually knowing why
07:10 anonnumberanon which one are you using? http://playground.arduino.cc/Code/MegaServo
07:10 anonnumberanon ? this one?
07:10 deshipu no, the build-in one
07:10 anonnumberanon name?
07:10 deshipu https://www.arduino.cc/en/Reference/Servo
07:11 robotustra that's why I don't like third party code
07:12 anonnumberanon On boards other than the Mega, use of the library disables analogWrite() (PWM) functionality on pins 9 and 10
07:12 anonnumberanon that's shit
07:12 anonnumberanon nothing works
07:12 anonnumberanon iv got arduino pins 9 to 13 used for a wireless chip
07:13 deshipu anonnumberanon: and you use PWM to talk to it?
07:13 jhylands The reason you can't use PWM on those pins is because the servo library is using the associated timer
07:13 anonnumberanon this is stupid that they would use the miso, mosi and sck pins, when those are really needed for other things
07:13 deshipu anonnumberanon: you are talking to your wifi chip through analogWrite()?
07:14 deshipu anonnumberanon: why would you do that?
07:14 anonnumberanon im not doing anything , it's just connected via 9 to 13
07:14 jhylands you can still use the pins
07:14 anonnumberanon if you connect servos to those pins you'll stop getting wireless data...
07:14 deshipu anonnumberanon: then what doesn't work?
07:14 jhylands you just can't use the timer
07:14 deshipu anonnumberanon: then don't connect servos to those pins
07:15 deshipu anonnumberanon: connect them to other pins
07:15 anonnumberanon deshipu, that's what the library calls for
07:15 anonnumberanon most of them amusingly
07:15 deshipu anonnumberanon: not, it's not
07:15 deshipu anonnumberanon: read it again
07:16 jhylands anonnumberanon, the Servo library is using the timer that is associated with running PWM on those pins - it can use servos connected to any pin
07:17 anonnumberanon jhylands, so does that mean the wireless library on those pins won't work?
07:17 jhylands no, those pins can be used for anything that doesn't require a timer
07:17 jhylands what interface are you trying to use on them?
07:18 anonnumberanon you think wireless does not require a timer? it's spi communication
07:18 deshipu from pin names, spi
07:18 anonnumberanon im sure spi uses a timer
07:18 jhylands no, SPI/I2C/UART does not require timers
07:18 jhylands which arduino/chip are you using?
07:18 deshipu anonnumberanon: it doesn't, it uses a dedicated hardware on the chip
07:18 anonnumberanon atmega328
07:18 deshipu anonnumberanon: which is separate from the timers
07:20 anonnumberanon What's your point again? i forgot
07:20 deshipu I forgot too
07:20 jhylands his point (and mine) is that SPI does not require a timer
07:20 deshipu let's drink
07:20 anonnumberanon lol
07:21 anonnumberanon I'll try to see what this serial library for 4017 connects to as far as pins
07:21 anonnumberanon of course the guy who wrote it did not make it obvious...
07:21 anonnumberanon couldn't be that simple
07:22 anonnumberanon made capital letter mistakes in the lib names in the source code
07:22 anonnumberanon it's just all bad work
07:22 jhylands a 4017 is a counter chip, right?
07:22 deshipu it connects to the decade counter chips
07:22 deshipu right
07:22 anonnumberanon jhylands, yes
07:22 anonnumberanon yeah but through which pins i think 13 12 9 10
07:23 deshipu doesn't matter
07:23 anonnumberanon according to the .h
07:24 deshipu I mean, it's trivial to change
07:24 jhylands anonnumberanon, it doesn't look like that uses any SPI logic
07:24 deshipu he even uses the slow-as-hell digitalWrite()
07:24 jhylands it just uses a couple clock pulse pins, which can be anything
07:25 deshipu anonnumberanon: unless you need more than 12 servos, I would recomment to use the build-in library, it works and is well tested
07:25 deshipu better than some random code copy-pasted from the Internet, anyways
07:25 jhylands are you trying to use a 4017 to control servos?
07:25 anonnumberanon yes
07:25 anonnumberanon 2 4017s
07:26 anonnumberanon 1 will do only 10 servos
07:26 jhylands okay, so you do need PWM for that
07:26 deshipu how many do you need?
07:26 jhylands http://diydrones.com/profiles/blogs/drive-10-servos-using-only-2
07:26 anonnumberanon 17 for final result, 10 to actuate both legs right now
07:26 jhylands is that what you're talking about?
07:27 anonnumberanon no this one: http://rcarduino.blogspot.com/2012/10/arduino-serial-servos-20-servos-4-pins.html
07:27 jhylands brb
07:36 jhylands so yeah, you need to run two channels of PWM to do that
07:36 jhylands what else do you want to do with that arduino?
07:43 anonnumberanon so pins 5 and 6 or 3?
07:47 anonnumberanon currently trying to see if i can move pins 9 10 11 to 3 4 5 cause 9 10 11 are used by my NRF24 module
07:48 anonnumberanon guess i need to check in the datasheep which pins the timer1 is associated to
07:49 deshipu baa!
07:49 jhylands yeah, the timer is only associated with 2 pins
07:50 jhylands so you can do SPI in software pretty easily
07:50 anonnumberanon Can you tell me what you are talking about, I'm lost.
07:50 jhylands your radio chip uses SPI for communication with the arduino
07:51 anonnumberanon yes and why would I move the radio instead of moving the decade counters?
07:52 jhylands well, because a 328 only has 3 timers
07:52 jhylands and you need two of them, which limits where you can put those
07:52 anonnumberanon right now im trying to understand what the stupid PWM refers to
07:53 anonnumberanon I can do pwm by myself so i don't know what that hardware pwm is.
07:53 jhylands you can't really do PWM like the hardware does
07:53 anonnumberanon I can do it on 6 digital pins with bit banging with very low error of 10 microseconds.
07:53 Snert hardware is faster too. Less overhead.
07:54 jhylands you're going to use all your CPU to do that
07:54 deshipu then again, servos are 50Hz
07:54 deshipu with 10 of them, it's 500Hz
07:54 deshipu which is nothing
07:55 anonnumberanon jhylands, that may be why it started going to shit when I was hitting 12 pwms by bit banging
07:55 deshipu I think that code you pasted actually bit-bangs it
07:55 jhylands it would be nothing if all you were doing was turning it on and off
07:55 jhylands but you presumably want some resolution on the PWM
07:55 jhylands which means at least 100x that
07:55 deshipu (didn't really read it)
07:56 jhylands and its actually 1000x that, since servos only use 2ms of the 20ms band
07:56 anonnumberanon deshipu, it uses interrupts and hardware timer compare
07:56 anonnumberanon 2400ms jhylands
07:56 deshipu anonnumberanon: right, but not a timer in the pwm mode on the pin
07:56 anonnumberanon that means even with the decade counter I can't even use 10 servos i have to reduce to like 6 or 7
07:56 deshipu anonnumberanon: it just switches the pins on and off in the interrupt
07:57 anonnumberanon deshipu, define the pwm mode
07:57 deshipu anonnumberanon: read the datasheet of the atmega328p, the section on timers
07:57 anonnumberanon That's what I'm doing.
07:57 anonnumberanon lol
07:58 deshipu anonnumberanon: basically a timer may be driving a pin directly, or it may be calling an interrupt
07:58 deshipu anonnumberanon: the former is called pwm mode, because it's often used for pwm
07:58 deshipu and then it's important which timer and which pins you use
07:58 deshipu but the code you linked to uses the timer in the interrupt mode
07:59 deshipu and switches the pins from inside an interrupt
08:00 deshipu which means that it doesn't matter which pins you use
08:01 anonnumberanon yeah that portB bitmask
08:02 anonnumberanon what an asshole for using PORTB
08:03 anonnumberanon pinMode(10,OUTPUT); // clock uses OCR1B and should not be changed
08:04 deshipu ah
08:04 deshipu well, there is no way to do that with Arduino functions
08:05 deshipu too low-level
08:50 jhylands anonnumberanon, I would personally just use one of these: https://www.adafruit.com/products/1411
08:50 jhylands and do one last servo (for 17 total) using the Servo lib
08:51 anonnumberanon not invented here
08:52 jhylands yep
08:52 deshipu that thing is way overpriced
08:52 jhylands it has its own processor
08:53 jhylands so you're just sending position commands over I2C
08:53 deshipu better to get two pro minis and have them listen on i2c bus and use the servo library internally
08:53 deshipu https://bitbucket.org/thesheep/tote/src/tip/i2cslave/
08:53 deshipu like this
08:53 deshipu much cheaper
08:54 deshipu that LED driver is overpriced, because it's made to handle high currents
08:55 anonnumberanon It's a lot more fun to make my own servo driver.
08:55 anonnumberanon Look at all this pain I've had already, it's all great healthy pain.
08:56 deshipu that pain is self-inflicted, you know
08:56 anonnumberanon Of course that comes with engineering.
08:56 deshipu and completely unnecessary
08:56 deshipu a pro mini is $1.5
08:56 jhylands well, you need to decide what you're trying to accomplish
08:57 jhylands are you trying to build a robot, or are you trying to do your own hardware
08:57 jhylands a long time ago, back before AVRs were around, I used PIC 16F84, and there weren't any decent free compilers for them
08:57 anonnumberanon more do my own hardware, the robot is just the light-hearted part to be honest
08:57 jhylands so I wrote my own compiler
08:57 anonnumberanon Must have been fun.
08:57 jhylands but eventually I decided I was spending too much time doing that sort of thing and not actually working on the robot
08:58 jhylands so I bought a commercial C compiler and got back to working on my robot
08:58 jhylands http://www.huv.com/uSeeker/smalltalk/pic.html
08:58 jhylands that was in 1998
09:00 jhylands It was a lot of fun, but I prefer actually working on my robots
09:00 anonnumberanon What part, building/assembly?
09:00 jhylands well, both - I design and build them
09:01 jhylands like Roz, my bioloid walker
09:01 jhylands I'm working on a new chest design for it
09:01 anonnumberanon was it the dinosaur?
09:02 jhylands http://puu.sh/lVdNQ/1f76782e23.png
09:02 jhylands no, that was MicroRaptor
09:03 deshipu dynamixels \o/
09:03 jhylands yeah, they aren't really powerful enough (AX-12's) to do biped walking like I want to do
09:03 jhylands which is why I switched to quads
09:04 deshipu quads are cuter anyways
09:04 deshipu also faster
09:04 jhylands deshipu, did you see the video of Roz walking?
09:04 deshipu no
09:04 jhylands https://www.youtube.com/watch?v=1q4nsocmLWU
09:05 deshipu trot
09:06 jhylands we call it amble (the gait)
09:07 deshipu amble is 4-beat
09:08 deshipu trot is 2-beat
09:08 jhylands that is a 4-beat
09:08 jhylands middle-up/forward-down/mid-down/back-down
09:09 deshipu ah, they are so close together it looks like 2-beat
09:10 deshipu one of these days I will program a gait that you can smoothly change from creep to trot
09:10 jhylands yeah, we will be working on that
09:11 jhylands I think its just a question of using IK to transition from one to the other
09:11 deshipu you don't use IK?
09:11 jhylands yes, I do
09:11 deshipu actually, you don't even need ik for it, just adjustable phase
09:12 deshipu but it's tricky the way I structured my code
09:12 jhylands I'm in the process of re-doing all my code for the robot
09:13 jhylands making it more OO, so we can apply it to multiple robots
09:13 deshipu I have the "move all legs on ground" component separate from "lift a leg and move it forward" part
09:13 jhylands ah, okay
09:13 jhylands for me, that is just the gait
09:13 anonnumberanon deshipu, you should get a gamepad for controlling your spider
09:13 jhylands deshipu, any videos of yours?
09:13 anonnumberanon :)
09:14 deshipu the trick is, if it takes you too long to move a leg and put it forward, then your body tends to move forward faster than the legs, and you... run out of legs, so to speak
09:14 deshipu jhylands: http://tote.rtfd.org
09:14 deshipu jhylands: not the best video, sorry
09:14 jhylands mine are moving forwards and backwards at the same speed
09:14 deshipu anonnumberanon: I have a gamepad for it
09:14 deshipu anonnumberanon: one of the versions has bluetooth connection with the pc
09:15 deshipu jhylands: the backward movement happens constantly in mine
09:15 jhylands in your ripple gait, you mean?
09:15 deshipu jhylands: I guess I will make it pause when any leg is close to its limit
09:15 deshipu jhylands: in both creep and trot
09:16 jhylands btw, mine isn't remote controlled - its running autonomously
09:16 deshipu yeah, I have some of mine that have a distance sensor or switches on the legs
09:17 deshipu and can do obstacle/table edge avoidance
09:17 jhylands I have 3 rangefinders in the head
09:17 deshipu one cool thing about making the robot cheap -- you can build multiple versions
09:17 jhylands it can't do edge detection, but it does to wall/obstacle avoidance
09:17 anonnumberanon jhylands, to be honest my robot is basically all programming since i bought the body for it
09:18 jhylands well, I have about 40-50 AX-12s, so I could build 3 or 4 of them :-)
09:18 deshipu jhylands: I have one where I added wires to the servo motors, and I'm measuring the voltage on the motor to approximate the force
09:18 anonnumberanon so better start out correctly that way the entire project will be worth doing
09:18 deshipu jhylands: that one can not only sense the edge of the table, or being picked up, but even uneven terrain
09:18 anonnumberanon jhylands, have you seen a pic of the body yet?
09:18 jhylands deshipu, nice
09:18 jhylands anonnumberanon, pic of which body?
09:18 anonnumberanon of my robot
09:18 deshipu jhylands: I think dynamixels simply report the force, no?>
09:19 deshipu jhylands: you could use that too
09:19 jhylands deshipu, they do, but it doesn't work well
09:19 jhylands I made some spring-loaded sensor feet at one point
09:19 deshipu well, imagine how it works with cheap 9g servos ;)
09:19 jhylands anonnumberanon, no, I haven't
09:19 deshipu jhylands: by the way, any relation to dhylands?
09:20 jhylands yeah, he's my brother
09:20 deshipu I knew it! :)
09:20 deshipu jhylands: how is that rov with micropython progressing?
09:21 jhylands I put it on hold, working on Roz right now
09:22 deshipu jhylands: btw, if you are looking for cheap and easy to mount sensors for the feet
09:22 deshipu jhylands: I found that the switches used to detect when an sd card has been inserted are perfect
09:22 deshipu because they require quite small force
09:23 jhylands I used a spring, a small magnet, and an analog hall effect sensor
09:24 deshipu neat
09:24 deshipu as a bonus, you can detect sources of magnetism :P
09:25 anonnumberanon jhylands, deshipu https://i.imgur.com/DuqbbCo.jpg
09:25 jhylands https://app.box.com/s/9w7c50s8vnsg9bdhfxvt6q47mo4c1894
09:25 anonnumberanon my bot
09:25 jhylands that's a pic of the foot
09:26 deshipu https://www.youtube.com/watch?v=1I-EeEPEjx8 <-- tote with a distance sensor programmed to follow what's in front of it
09:26 jhylands anonnumberanon, pretty cool
09:27 jhylands deshipu, I'm planning on adding a camera eventually, either an open-mv camera, or an actual webcam with a pi zero
09:28 deshipu jhylands: I'm waiting for a pcb to put pi zero on mine :P
09:28 deshipu got the first tests with servo blaster already, seems feasible
09:28 jhylands cool
09:29 deshipu that of course opens a whole can of worms
09:29 jhylands heh
09:29 deshipu I did one quadruped with a camera already, but it barely could stream it
09:29 jhylands why?
09:29 deshipu it used an atheros MIPS cheap from a wifi router
09:29 jhylands ahh
09:30 deshipu because it was considerably smaller than tote
09:30 jhylands the GPU on the pi is pretty sweet for that sort of thing
09:30 deshipu about half the size
09:30 jhylands I think Roz is a lot bigger than Tote
09:30 deshipu https://cdn.hackaday.io/images/8158041424890406854.jpg
09:30 deshipu the camera is a module from an old laptop
09:31 jhylands neat
09:31 deshipu the servos are 3g
09:31 jhylands without a tail, Roz is about 13" long
09:32 deshipu that plastic cube is around 4cm on the side
09:32 veverak deshipu: hmm, not sure about servo blasters resolution
09:32 deshipu veverak: it sucks
09:32 veverak yep
09:32 veverak :)
09:32 deshipu jhylands: yeah, dynamixels are large
09:33 deshipu veverak: in the worst case I will keep the pro mini as a driver
09:33 anonnumberanon How can I get some sort of indicator how busy my processor is on atmega328?
09:33 anonnumberanon I thought about the temperature sensor.. lol
09:33 deshipu anonnumberanon: that's easy
09:34 deshipu anonnumberanon: it's always 100% busy
09:34 jhylands use a timer to generate a millisecond counter
09:34 veverak deshipu: yeah, that seems as best solution
09:34 adam789654123 is there a way to get output as to when the process is slowing itself down?
09:35 adam789654123 how the process is regulating itself, i mean
09:35 deshipu adam789654123: the process is not regulating itself, you don't have an operating system
09:36 deshipu adam789654123: unless you tell the microcontroller to sleep explicityly, it runs on 100%
09:36 adam789654123 thats the thing
09:36 adam789654123 alot of times its a desire to have processes regulate themselves
09:36 adam789654123 but if they dont then yeah
09:36 deshipu then use something that has an operating system
09:36 deshipu that does it
09:37 adam789654123 cookie cutter answer eh?..... why i oughta......
09:37 adam789654123 woowoowoowoo
09:37 anonnumberanon sleep(3) will do it in linux if yo're using linux computer
09:37 jhylands brb
09:38 anonnumberanon in C
09:40 deshipu adam789654123: there are lightweight operating systems for microcontrollers
09:41 adam789654123 something to consider is that you dont need an OS in order to regulate processes
09:41 adam789654123 depending on the complexity of how you want to regulate them
09:41 adam789654123 you might have something relatively simple in mind
09:42 deshipu adam789654123: then you have a relatively simple operating system
09:42 deshipu adam789654123: the thing that controls your processes is called "operating system"
09:42 deshipu adam789654123: sure, you can write your own, it's still an OS then
09:42 adam789654123 well.... if i go off saying that, then im gonna hit a battery of objections from various types
09:42 veverak :)
09:42 adam789654123 i agree, in the classical sense
09:43 adam789654123 but OS tend to do other things also
09:43 adam789654123 in the modern sense
09:43 veverak adam789654123: why you need to regulate it?
09:43 adam789654123 like memory management
09:43 veverak is main question
09:43 deshipu right, they do, once you have control of the hardware, you tend to want to abstract it all
09:43 adam789654123 if a process gets 100% of the cpu, then you have to wait till its finished to do anything with it
09:44 adam789654123 thats t
09:44 jhylands back
09:44 adam789654123 that the main thing im thinking about veverak
09:45 adam789654123 deshipu: i actually like your definition of OS by the way
09:45 adam789654123 or the very simple, a program that loads programs
09:46 adam789654123 this and something like your definition is sort of the fundamental definition imo
09:46 deshipu adam789654123: have a look at RTOS
09:46 adam789654123 ok
09:46 deshipu https://en.wikipedia.org/wiki/FreeRTOS
09:47 deshipu adam789654123: it more than just loading them
09:47 deshipu adam789654123: it's also managing the resources for them
09:48 deshipu adam789654123: deciding which thread runs when and so on
09:48 adam789654123 yeah....
09:48 adam789654123 this is the way things evolved
09:48 deshipu but if you look at DOS, which arguably is an operating system, you will see that it mostly just loads the binary
09:48 deshipu and provides a bunch for int 21 functions
09:49 deshipu for accessing the hard disk and so on
09:49 deshipu well, s/hard disk/disks/
09:50 adam789654123 yeah
09:50 adam789654123 this is an interesting subject to me
09:50 adam789654123 there is a book that i would like to study one day
09:51 adam789654123 maybe after i finally finish up "The C Programming Language" (note to anonnumberanon)
09:51 adam789654123 who is currently studying that book
09:51 adam789654123 one sec
09:51 adam789654123 ill dig it up
09:51 deshipu is that the one with examples from Lewis Carroll?
09:51 deshipu I liked tha tone
09:51 deshipu I liked that one
09:52 adam789654123 Operating Systems Design Implementation 3rd Edition.pdf
09:52 adam789654123 idk, but its an excellent book on C
09:52 deshipu ah, no, that was "ANSI C"
09:52 adam789654123 also a classic
09:52 adam789654123 this was prior
09:52 adam789654123 ok
09:52 adam789654123 what do you think of ANSI C?
09:52 adam789654123 the book?
09:52 adam789654123 thats a good one eh?
09:52 deshipu it had nice illustrations
09:52 adam789654123 great
09:52 adam789654123 in the above book, they implement an OS
09:52 deshipu from Alice in Wonderland, I think
09:53 adam789654123 oh
09:53 adam789654123 cool
09:53 adam789654123 its a huge tome, like over a thousand pages
09:53 adam789654123 but they actually go through implementing an OS that you can use
09:53 adam789654123 which is pretty fricken awsome imo
09:53 deshipu years later I actually taught myself C from a pocket edition of C guide by O'Reilly
09:54 adam789654123 you can also check out the reviews on Amazon to get an idea of what its about
09:54 deshipu a C lexicon I think
09:54 adam789654123 cool
09:54 adam789654123 i worked about half way through the C book i mentioned
09:54 adam789654123 then a stopped because i found what i was looking for
09:54 deshipu http://shop.oreilly.com/product/9780596004361.do
09:55 adam789654123 but, i want to actually work through the entire thing next time
09:55 deshipu this one has the advantage of being very thin :P
09:55 adam789654123 ill take a looksy
09:55 deshipu it's almost just a listing
09:55 deshipu of all the things
09:57 adam789654123 yeah
09:57 adam789654123 thats great if you know what you want to do
09:57 adam789654123 if your looking for fun programs to practice with, imo, The C Programming Language is a good way to go
09:57 anonnumberanon adam789654123, GWAT? you are not working on finishing K&R ???
09:58 deshipu I think that knowing programming and knowing a particular programming language are two separate things
09:58 adam789654123 no.... i *will* finish working through it
09:58 anonnumberanon spoiler: same here, building hardware got in the way of that
09:58 deshipu easier to learn a language when you already know how to program
09:58 adam789654123 ^
09:58 deshipu but to learn to program, you first need to learn the first language
09:58 adam789654123 some languages are pretty tricky though
09:58 adam789654123 for example, i want to learn haskell
09:59 deshipu yeah, start with python ;)
09:59 jhylands I like python
09:59 adam789654123 i recomend lisp or scheme or C
09:59 veverak haskell is tricky
09:59 adam789654123 but python is a good language
09:59 jhylands Roz is programmed in Python
09:59 adam789654123 it just never got its hooks into me
09:59 veverak it's completely different way of thinking that normal systems :)
09:59 deshipu it has relatively few traps for beginners
10:00 adam789654123 i was never like, wow! i want to learn Python
10:00 veverak *normal languages
10:00 adam789654123 deshipu: i see what you mean
10:00 adam789654123 and i guess i would agree, with what i know about it
10:00 adam789654123 the only issue i have with Python I might call, the "Python shaped head"
10:01 adam789654123 similar to the "Bell shaped head" phenomena
10:01 adam789654123 if you're familiar
10:01 jhylands I'm not
10:02 adam789654123 im looking for a reference
10:03 deshipu I have this problem, when I try to learn a new language and write a project in it
10:03 deshipu I always think "this would be so much easier in Python"
10:03 jhylands I had that problem with Smalltalk, until I started playing with Python
10:03 deshipu it's a bit demotivating
10:03 jhylands I did Smalltalk for 20+ years
10:03 veverak yeah, because python is ment to be "it's easy to do"
10:04 jhylands Python gives me the closest feel to Smalltalk I've seen in any language
10:04 deshipu jhylands: objC?
10:04 veverak but to get it extremely fast and bulletproof from anything... I wish you luck :)
10:04 jhylands no, I really don't like C
10:05 deshipu I quite like C, if only it had a sane import mechanism ;)
10:05 adam789654123 the main idea was that when Bell got broken up into smaller companies to make it more competetive, many of the employees worked as if nothing had changed, so they called in the Bell shaped head, regaurding how you understood the situation
10:06 jhylands I like having a garbage collector, and dynamic typing
10:06 jhylands heh
10:06 adam789654123 so im kind of joking in regaurds to the Python shaped head
10:07 adam789654123 In Python, there is typically one good way to do something, so with the Python shaped head, everything, no matter the language and circumstance, is supposed to work in regaurds to X in the same way that Python does
10:07 adam789654123 jhylands: wow.... Smalltalk eh?
10:07 deshipu adam789654123: there is something in that, I can always tell when a C code was written by a pythonista
10:07 adam789654123 i am *really* interested in Smalltalk
10:07 adam789654123 !!!
10:07 deshipu adam789654123: it's so... elegant
10:08 adam789654123 haha deshipu
10:08 jhylands adam789654123, squeak.org
10:08 adam789654123 yeah... i guess its like a common pattern of understanding deshipu?
10:08 jhylands Smalltalk is awesome
10:08 adam789654123 for example, i like to program in C using functional techniques
10:09 adam789654123 you would probably find my code obfiscated beyond recognition
10:09 deshipu adam789654123: you know, they say that programs are written for people to read, and only incidentally for the computers to execute
10:09 adam789654123 to me though, its beautiful
10:09 veverak functional techniques are cool anyway :)
10:09 adam789654123 :D
10:09 veverak deshipu: !!! :D
10:09 adam789654123 i *love* functional programming
10:09 deshipu adam789654123: it's like reading a novel in a familiar style by an author you like
10:09 adam789654123 sure
10:09 adam789654123 and i agree
10:10 adam789654123 one of the things that i *like* about communicating with people that i disagree with over style, is that it helps me to appreciate how much style is preference
10:10 deshipu adam789654123: have you seen Crockford's talk about coding style?
10:10 adam789654123 at least in my case, i can defend my usage of functional techniques on the grounds of readability
10:11 adam789654123 this is what i love about functional techniques
10:11 adam789654123 i *think* i actually got through to a hardcore python programmer a few days ago about programming in loops vs. using tail recursion
10:11 adam789654123 his argument was in regaurds to optimization, mine was in regaurds to readability
10:12 deshipu optimization is something that the compiler should do :)
10:12 adam789654123 further, tail recursion is easily optimized into loops via writting an interpreter
10:12 adam789654123 badabing..... no more optimization problem
10:12 adam789654123 *and*... you get the increased readability
10:12 veverak :)
10:12 adam789654123 i really think that point sunk it
10:12 jhylands I generally use recursion when I'm iterating over a recursive structure
10:12 deshipu adam789654123: then again, it's easy to take a tail-recursive function and modify it so it's no more tail-recursive, and suddenly you have a huge efficiency impact
10:13 veverak adam789654123: python && optimazation ....
10:13 veverak well
10:13 deshipu veverak: use pypy
10:13 veverak python is not really ment to be the most optimized ever
10:13 deshipu veverak: it does the optimization for you
10:13 veverak except of tools like pypy etc...
10:13 veverak )
10:13 adam789654123 deshipu: you can write a program to do the optimization for you
10:13 deshipu adam789654123: right
10:13 adam789654123 :)
10:14 adam789654123 since the pattern is so simple
10:14 adam789654123 :D
10:14 deshipu provided the function can actually be unrolled
10:14 adam789654123 tail recursion should be easy enough
10:14 adam789654123 other kinds of recursion trickier
10:14 adam789654123 but not impossible
10:14 deshipu but it's easy for a novice to add a single line that breaks it
10:14 adam789654123 and so with loops, no?
10:15 deshipu and I think that a good language should make huge differences in efficiency obvious
10:15 deshipu like, fast operations should be fast to write
10:15 deshipu more expensive operations should *look* more expensive
10:15 adam789654123 idk
10:15 adam789654123 i never thought about it
10:15 adam789654123 but the theory is interesting
10:16 deshipu never put an expensive operation in an operator
10:16 adam789654123 for example, i can start a server with (start-server)
10:16 adam789654123 but should it be inexpensive?
10:16 adam789654123 idk
10:16 deshipu I got that from some old, old book on language design
10:17 deshipu I think it might have been "compiler design" by Aho and Ullman
10:18 adam789654123 i think Paul Grahm hit a home run with the way he values computer time vs. programmer time
10:18 deshipu depends
10:18 deshipu on the use case
10:18 deshipu take the Viking probe ;)
10:18 adam789654123 the use case would be protoyping i suppose
10:18 adam789654123 if you want to make something from scratch, you want to build V1 efficiently
10:18 deshipu write once, run for 50 years
10:19 adam789654123 when you get a good prototype, *then* begin to optimize
10:19 adam789654123 deshipu: yes.... they did write very stable code
10:19 adam789654123 they also probably had a great education in mathematics
10:19 deshipu it actually has OTA updates
10:19 adam789654123 a great education in *finite* mathematics, that is
10:20 deshipu discrete
10:20 adam789654123 yeah...you got me
10:20 adam789654123 :)
10:20 adam789654123 note that classical algebra *was* a very important subject that i think is highly relevant as ever today
10:20 adam789654123 but its not treated as such
10:20 veverak deshipu: I think it's proven that every recursion can be written as loop
10:21 adam789654123 we lose touch with these amazing technologies
10:21 deshipu veverak: sure, otherwise how would computers execute it
10:21 deshipu veverak: the problem is, you need infinite stack space
10:21 deshipu veverak: with tail recursion, you don't
10:21 veverak deshipu: "written as loop", means that it should be written in a way
10:21 veverak that you don't have to keep the stack
10:22 adam789654123 this is the direction i seem to be going into
10:22 deshipu veverak: do you have that proof on hand somewhere?
10:22 veverak deshipu: nope
10:22 veverak :(
10:22 verak got in TODO "find the proof" for a long
10:22 adam789654123 learning about such
10:22 deshipu would be interesting to look at
10:22 adam789654123 more deeply
10:22 adam789654123 this fascinates me
10:22 veverak yeah
10:22 adam789654123 it also regaurds computation in the large
10:22 veverak but it still reduces readabillity
10:23 deshipu also, curious if the proof is actually constructive
10:23 veverak so I prefer to pick recursion/loop based on what seems easier to understand :)
10:23 adam789654123 whatever we have to say about the rules of the way this works, will be foundational to how we reason about computation
10:24 adam789654123 thats *my* thinking on this
10:24 adam789654123 feel free to disagree
10:24 deshipu adam789654123: this is actually very old stuff
10:24 adam789654123 i also dont ever expect the fidelity of my thinking to be 100%
10:25 deshipu adam789654123: it still trickles into "real world" from the math departments
10:25 adam789654123 so is calculus, but that doesnt mean its not amazing!
10:25 adam789654123 I learned geometry from Euclid, over 2 thousand years old, and got my mind blown
10:25 adam789654123 the irony, eh?
10:26 deshipu he was a cult leader :P
10:26 adam789654123 haha....
10:26 adam789654123 ive heard this kind of thing before
10:26 deshipu happens with mind-blowing ideas a lot
10:26 adam789654123 i also think its a bit silly to make Euclid, a math teacher, into a sinister cult leader
10:26 deshipu look at node.js ;)
10:26 adam789654123 because, OMG, he couldnt prove the basis of his axioms
10:27 adam789654123 yet.... the counter arguments *still* require usage of many of those same axioms if you examine them closely
10:28 adam789654123 deshipu: what about node.js?
10:29 deshipu adam789654123: it grew a cult following too
10:29 deshipu in a way
10:29 adam789654123 i like that axiomatic geometry, like arithmetic and its abstraction into algebra can be founded on tangible concepts
10:29 deshipu adam789654123: can it?
10:29 adam789654123 yeah
10:29 deshipu adam789654123: I mean, you can found it on anything
10:29 adam789654123 but you can found it on tangible concepts
10:29 deshipu adam789654123: anything that matches the basic axioms
10:30 adam789654123 thats what is powerful to me
10:30 adam789654123 that its not abstraction
10:30 adam789654123 it has a concrete basis
10:30 deshipu but it is
10:30 adam789654123 this is its value
10:30 adam789654123 the value is the abstraction with a concrete basis
10:30 deshipu a geometric point is pretty abstract
10:30 adam789654123 *not* the abstraction for its own sake
10:30 deshipu no weight, no size
10:30 adam789654123 its not a thing
10:31 deshipu how can it be concrete if it's not a thing?
10:31 adam789654123 a point seems just the result of reasoning about the tangible
10:31 adam789654123 that you can always subdivide parts into more parts
10:31 adam789654123 its just an idea
10:32 deshipu but you can't *actually* subdivide parts infinitely
10:32 adam789654123 the idea is very simple, similar to another always follows
10:32 deshipu it's an abstraction by itself
10:32 adam789654123 which is foundational to the natural number system
10:32 adam789654123 no, experimentally you cant
10:32 adam789654123 but also experimentally, another does not always follow
10:33 deshipu so the whole math thing
10:33 adam789654123 yet its a useful tool to reason with
10:33 deshipu it has more to do with the way we think and see the world
10:33 deshipu than the way the world itself is
10:33 adam789654123 its reasoning concerning simple patterns
10:33 adam789654123 i can agree with that
10:33 adam789654123 although, there is a basis
10:33 deshipu there was a fascinating set of papers
10:33 adam789654123 so mabe half and half
10:34 deshipu on theories about how mathematical thinking might have evolved
10:34 deshipu and how it develops in children
10:34 adam789654123 do you have a link by any chance?
10:34 deshipu let me check
10:34 adam789654123 awsome!
10:34 adam789654123 thanks
10:35 deshipu Grounding Cognition The Role of Perception and Action in Memory, Language, and Thinking - DIANE PECHER.pdf
10:35 deshipu let me look for it
10:35 jhylands Carl Sagan wrote an interesting book a long time ago on the evolution of human intelligence, called "The Dragons of Eden"
10:36 deshipu google says http://severcov.com/v4/19403.pdf
10:37 adam789654123 thanks deshipu and jhylands
10:37 adam789654123 im on the terminal, so ill just save the link for now
10:37 adam789654123 :D
10:38 deshipu jhylands: have you read the Red Queen?
10:39 jhylands I don't think so
10:39 deshipu https://en.wikipedia.org/wiki/Red_Queen_hypothesis
10:39 deshipu in the bug, he actually has more theories
10:39 deshipu one of them is particularly striking
10:40 adam789654123 do you recall?
10:40 deshipu he suggests (without any proff or anytning, just as an interesting idea), that large human brains actually eveolved as a peacock tail of sorts
10:41 deshipu something costly, that shows the health of the owner, which is used for choosing mating partners
10:41 jhylands heh, interesting
10:41 adam789654123 hmmmm.......
10:41 adam789654123 yeah
10:41 deshipu because it doesn't really give immediate evolutionary advantage
10:41 adam789654123 note that my head (the one on my neck) isnt very large
10:41 adam789654123 :p
10:41 deshipu and then it hit me
10:42 deshipu all the things we consider "important" -- knowledge, art, beauty, smarness, etc.
10:42 adam789654123 and just interesting to note, a freind of mine who is particularly smart had a relatively small head
10:42 deshipu I wonder if a peacock would say that we are just talking about our tails
10:42 adam789654123 or has a relatively small head
10:43 deshipu adam789654123: yeah, I meant the funcition, not the size, of course
10:43 adam789654123 just an interesting thing to note
10:43 deshipu function
10:43 adam789654123 its interesting though
10:43 adam789654123 yeah
10:43 jhylands deshipu, I tend to look at the more engineering type things as amazing, which I think are deeper than that
10:43 jhylands wonder for wonder's sake
10:43 adam789654123 how about the intersection?
10:43 deshipu jhylands: termites build amazing things from engineering point of view sometimes, but they don't admire them
10:44 adam789654123 thats sort of where DaVinchi wondered, no?
10:44 jhylands well, we don't know that for sure
10:44 deshipu good point
10:44 jhylands but regardless, for me, to be able to build something and appreciate it is art at its highest form
10:44 adam789654123 i understand the sentiment
10:45 deshipu but what if you admire it just because the evolution made you admire "smart" things, made you be attracted to things done by people with healthy brains?
10:46 jhylands that sort of implies that we only admire things that other people build
10:46 deshipu not necessarily
10:46 adam789654123 and what if the reality of some things will always be influenced by how we think about them?
10:46 deshipu the kind of things they *would* build
10:47 adam789654123 its simply not always a matter of proof, sometimes its a matter of what i would refer to as the spiritual
10:47 jhylands there's probably truth to that, but I think our motivations are much deeper than that
10:47 deshipu note that your ability to admire those design depends heavily on your ability to understand them
10:48 jhylands absolutely
10:48 adam789654123 and the pleasure that we get from understanding them
10:48 deshipu so there is a sort of "connection" with the other human
10:48 jhylands or at least, your understanding of how difficult it is to build them
10:48 deshipu even if it's not actually a human
10:48 adam789654123 or how much simpler it is to intellectually manage in another way, for example
10:48 deshipu you imagine that a human did it in that way
10:49 adam789654123 how much more effecient it makes one intellectually
10:49 jhylands so how did we get from programming language choices to this?
10:50 deshipu sorry, I tend to drift
10:50 adam789654123 because we are human
10:50 adam789654123 :D
10:50 jhylands heh
10:50 adam789654123 i was ridding my bike the other day, and i was thinking, even if i take the same path from one day to the next, i find divergence from the previous days patterns
10:51 adam789654123 i had this appreciation for how chaotic i am
10:51 adam789654123 and then my mind cast to this quote about how humans thrive with ambiguity
10:52 jhylands anyone who has ever worked with real-world sensors has a very good practical understanding of chaos theory
10:52 adam789654123 :)
10:53 adam789654123 i dont, but its on my wishlist
10:53 deshipu jhylands: signal theory
10:53 adam789654123 ahhh.... interesting
10:53 adam789654123 this is a subject that i am *fascinated* about
10:53 deshipu jhylands: I think chaos theory is more about emergence and attractors and such?
10:53 deshipu jhylands: at least the bits that were advertised to me
10:54 adam789654123 connected to this idea of a "transducer"
10:54 jhylands yeah, but the practical result is that things are non-deterministic
10:54 jhylands at small enough scales
10:54 deshipu we just don't know the starting parameters ;)
10:55 adam789654123 ic
10:55 adam789654123 yeah
10:55 deshipu gotta go, sorry
10:55 adam789654123 deshipu: i loved our conversation
10:55 adam789654123 thank you
10:55 adam789654123 :D
10:56 adam789654123 same jhylands
10:56 adam789654123 thanks to all who participated
10:56 adam789654123 :D
10:56 jhylands yeah, its always fun
10:57 jhylands I'm reading deshipu's documentation on IK
10:57 adam789654123 yeah.... and that was *very* fun
10:57 adam789654123 i love these oddball conversations
10:57 adam789654123 where is that?
10:57 jhylands http://tote.readthedocs.org/en/latest/ik.html
10:57 adam789654123 cool
10:57 adam789654123 thanks
10:58 adam789654123 ahhhh.... yeah
10:58 adam789654123 ive perused though this
10:58 adam789654123 though i havent picked it apart yet
11:22 jhylands interesting article - http://techcrunch.com/2015/12/13/the-state-of-robotics-for-2015/
11:46 Snert_ wow...drone registration
11:46 Snert_ People, 13 and older, who purchased drones before Dec. 21, 2015, must register the device by Feb. 19, 2016.
11:47 Snert_ and a 5$ fee :(
11:50 robopal where?
11:50 robopal country/region?
11:52 Snert_ U.S.
11:53 Snert_ https://www.faa.gov/news/press_releases/news_story.cfm?newsId=19856
11:53 Snert_ The normal registration fee is $5, but in an effort to encourage as many people as possible to register quickly, the FAA is waiving this fee for the first 30 days (from Dec. 21, 2015 to Jan 20, 2016).
11:58 robopal hm so everybody has to register?
11:58 robopal either you fly RC plane, or a drone?
11:59 robopal and every 3 years you have to renew the registration? (and repay?)
12:00 robopal I expect something simular to be put forward in europe as well
12:23 anonnumberanon BIG BROTHER IS WATCHING YOU!
12:29 Snert_ Be very glad that somebody did NOT give you a horseradish flavoered candy cane :)
13:21 deshipu Snert_: so now you have to send your 9yo to buy the drone for you?
13:21 Snert_ I read partnets are expected to register it for chillens under 13.
13:21 Snert_ parents
13:22 deshipu bummer
13:22 Snert_ if the drone weighs .55 pounds or more.
13:22 Snert_ so that doesnt leave much wiggleroom
13:22 deshipu well, I don't live in the land of freedom, so who cares :)
13:23 Snert_ we dont either :)
13:23 deshipu good thing you can buy a shotgun at the supermarket though
13:23 Snert_ It's one polite supermarket :)
13:24 akem hey
13:24 deshipu I wonder if you had an obligatory camera on every gun
13:24 deshipu that took a shot when you take a shot
13:24 deshipu and couldn't be erased
13:24 Snert_ I'm sure they have them.
13:25 Snert_ but nobody wants the government's nose that far up their ass.
13:25 deshipu what government?
13:25 jhylands deshipu, I've looked at your robots on your site, and I have to say I am majorly impressed
13:25 deshipu you keep it at home, there is no government looking at your pictures
13:26 deshipu unless, of course, something happens
13:26 Snert_ you said obligatory...as if it was required.
13:26 deshipu right, every gun would have it built-in
13:26 deshipu jhylands: thanks!
13:26 akem i feel like a japanese suddently no matter the length of penis.
13:27 jhylands I've been playing around with the idea of a 3-axis mammal, but really not sure how to structure the legs
13:27 deshipu jhylands: you can do 3 axis one easily, 8 servos
13:27 deshipu jhylands: sorry, 2 axis one
13:27 jhylands yeah, I saw yours, but I want more
13:28 jhylands 3 or maybe even 4 axis
13:28 jhylands I have lots of servos
13:28 deshipu jhylands: I have a three axis in the plans, but low priority
13:29 deshipu jhylands: actually, it's supposed to be a gorilla, not a dog
13:29 deshipu jhylands: with front "legs" longer
13:30 deshipu jhylands: I was thinking about just adjusting the servos on Tote, like this: http://paste.sheep.art.pl/56ba8de2-b1d3-412e-a4eb-2bc2476b1b75
13:30 deshipu (and adding a head on top)
13:32 jhylands what would that buy you?
13:32 deshipu cool looks :)
13:32 jhylands heh
13:32 jhylands https://www.youtube.com/watch?v=MSAmmHjaxR8
13:32 deshipu also, assymetric legs would let me traverse higher obstacles
13:32 jhylands 3-axis mammal
13:34 deshipu but I'm mainly after the looks with that
13:35 deshipu that mammal actually looks quite sturdy, probably needs some servo trimming
13:35 jhylands I'm not sure what good the inner-most servos do
13:37 deshipu they let you rotate
13:37 deshipu not very useful when you go straight
13:37 deshipu but very handy when turning
13:37 deshipu my 8-servo mammal can barely turn
13:38 deshipu using tank-like approach, with the legs slipping
13:38 jhylands this is what I really want: https://www.youtube.com/watch?v=B0qYob_vSgo
13:38 deshipu hmm, doable, although you would need to calculate the IK globally
13:38 deshipu for the whole body
13:38 jhylands yeah
13:39 deshipu I tried that, the math killed me
13:39 jhylands so the real question is, would that be doable with AX-12's?
13:39 deshipu I tried to make a spider-like 2dof per leg
13:39 jhylands I'm using a version of NUKE I ported to Python
13:39 deshipu without slipping
13:40 deshipu moving the whole body so that all legs are on the set spots on the floor plane
13:40 deshipu today I could probably solve it iteratively
13:42 jhylands Pleurobot is also pretty cool
13:42 jhylands https://www.youtube.com/watch?v=lfBWs8lWmv0
13:47 deshipu the inaccuracies from those spine servos really add up :(
13:48 deshipu looking at that animation you posted, I think I could actually be able to do that with that gorilla-like configuration
13:48 jhylands yeah - I think they're using MX-64's or MX-106 in Pleurobot
13:49 jhylands the Cyberdog has pivoting shoulders, which complicate things
13:49 jhylands although it appears they are only moving with 1 DOF in the animation
13:50 deshipu right, so the shoulder servos could do that
13:50 deshipu I don't have a spine servo, but I think that isn't so important
13:51 jhylands it looks like (if you ignored the feet and used posts or balls instead) you could do the front legs with 4 DOF
13:51 deshipu the problem I have with trying this is that it's very little tinkering with hardware (just rotate the servo horns), and a lot of tinkering with software
13:51 jhylands and probably the same with the hind legs
13:51 jhylands Have you ever used AX-12s?
13:51 deshipu no
13:51 deshipu too expensive
13:52 jhylands they have 300 degrees rotation, with 10 bit control
13:52 jhylands which is really nice for this sort of thing
13:52 deshipu speed may be an issue here
13:52 deshipu especially for front legs
13:52 deshipu jhylands: actually, with balls for hands, you can do it with 3dof both for front and hind legs
13:52 jhylands they can rotate 90 degrees in about 1/4 second
13:53 deshipu jhylands: the hind legs would have the parallel linkage mechanism in the knee
13:53 jhylands yeah, I guess you could use that
13:53 jhylands but on the front I would thing the outer shoulder joint should be 2 DOF
13:54 jhylands plus one for the inner shoulder, and one for the elbow
13:54 jhylands that way it could turn easier, I think
13:54 deshipu I think the inner shoulder one takes care of the second dof of the outer shoulder
13:54 deshipu too many joints and IK becomes hell :P
13:55 deshipu better to have one solution
13:55 jhylands yeah
13:56 deshipu I can rearrange the servos on one of my robots and give it a try moving them by hand
13:59 deshipu ok
13:59 deshipu you are right
13:59 deshipu you need 4dof on the front legs
13:59 jhylands yeah
13:59 deshipu to be able to control the angle of the forearm
14:00 deshipu otherwise you don't get that movement where the hand moves forward along the forearm
14:00 deshipu but the forearm would have to move sideways
14:05 jhylands deshipu, something like this: https://app.box.com/s/qzn9anv9ptu1rhty6ktt7fltur4fii4k
14:05 jhylands with the top servo in the pic being the inner shoulder
14:06 deshipu http://paste.sheep.art.pl/b9d2e3c7-8ee5-4f02-9edd-ea64335a2b7b
14:07 deshipu jhylands: I would actually change the order of the two middle servos
14:07 deshipu jhylands: have the second one do the forearm twist
14:08 deshipu primate's arms twist
14:08 jhylands https://app.box.com/s/rnfgn15375c40gm9gf61igqw39izy4na
14:09 deshipu make it vertical
14:09 deshipu so the axis is along the forearm
14:10 jhylands for the third servo?
14:10 deshipu of course IK would be tricky
14:10 deshipu yeah, third from the base
14:11 deshipu I *think* that would look kinda how what we have in our hands
14:11 jhylands yeah, but I'm trying to replicate Cyberdog, not us
14:11 deshipu also, there is a rule for animating
14:11 deshipu that outer joints move before the inner do
14:12 deshipu if you have several possibilities for reaching the same point
14:12 deshipu we prefer to move less of the hand
14:12 jhylands sure
14:12 deshipu which I guess makes sense, for weight and so on
14:12 jhylands actually, I think you're right
14:14 deshipu I wonder if someone did IK with joint priorities
14:14 jhylands if you use matricies, I'm pretty sure 4 dof IK is doable
14:17 deshipu I know how to do kinematics with matrices, but how do you do inverse kinematics?
14:17 deshipu I thought solving this set of equations with sines and cosines in it is non-trivial?
14:18 shipu <-- noob at
14:18 jhylands my brother did an online course about IK with robotic arms
14:18 jhylands and he told me they used matricies to solve it in general
14:19 jhylands the way we tend to do it is a specialization of that, with shortcuts
14:19 deshipu you can solve it iteratively
14:19 deshipu but it's a tad too slow for arduino, I think
14:20 jhylands well, I'm using MicroPython, and I can do a full IK solve for all four legs plus the body in 4ms
14:20 jhylands using the non-matrix form
14:20 mumptai but thats not a avr8 core?
14:20 jhylands no, its a pyboard
14:20 deshipu jhylands: that's a closed form solution, right?
14:20 jhylands 32 bit ARM, 168 MHz
14:20 deshipu mumptai: it may actually be slower, because python :P
14:21 jhylands well, it has floating point in hardware
14:21 jhylands so its actually faster I think
14:21 deshipu jhylands: I mean, you did something similar to what I did, just solved the geometry and came up with a formula?
14:21 mumptai 168MHz .. sounds like stm32f407
14:21 jhylands well, like I said, I'm using NUKE
14:21 jhylands 405 actually
14:21 mumptai also has a fpu ;)
14:21 jhylands https://github.com/JonHylands/roz/blob/master/Nuke.py
14:22 jhylands I'm running on a custom pyboard I designed, but its the same MCU
14:22 jhylands look at https://github.com/JonHylands/roz/blob/master/Nuke.py#L193-L244
14:23 deshipu right, pretty much the same as mine
14:23 jhylands yeah, that was my impression
14:23 deshipu won't work with a different configuration
14:24 jhylands nope
14:26 deshipu then again, coming up with the formula for the new config shouldn't be too hard
14:26 deshipu it's elementary school geometry
14:26 deshipu plus a trick to get rid of the multiple solutions
14:26 deshipu not sure how to handle that
14:27 deshipu for mine, the problem was solved by limited range of servos
14:27 deshipu only one solution in the range
14:27 jhylands yeah
14:27 deshipu unless you put the leg directly under the first servo, that is
14:27 deshipu I wonder what it does then, never checked
14:27 mumptai solve both, select the one that fits the other constrains, or results in minimal joint angle changes
14:28 deshipu mumptai: the problem is, with multiple solutions you won't have a simple formula
14:28 deshipu mumptai: if you are lucky, you will have a formula that gives you parametrized solution
14:28 mumptai you end up with multiple formulae
14:29 deshipu mumptai: not really, you end up with a set of equations
14:29 deshipu mumptai: and every set of parameters that fits the equations is one possible solution
14:33 mumptai yes
19:16 robotustra_ https://habrastorage.org/files/c7e/793/1e1/c7e7931e12144e9a991853def2f6fe7e.gif
19:22 ace4016 lol typical robot
19:29 robotustra_ non typical btw
19:30 robotustra_ usually robot breaks first
20:14 ace4016 lol
20:22 rue_shop2 ?
21:02 anonnumberanon nah jhylands you'll need mx-28 for that
21:02 jhylands anonnumberanon, sorry, for what?
21:18 anonnumberanon nah nothing i was just being a robotis shill
21:19 jhylands well, I love robotis stuff
21:23 anonnumberanon I hate it cause of their prices.
21:24 anonnumberanon But it's great hardware.
21:25 anonnumberanon Have you seen what Trossen Robotics does with them?
21:27 rue_house ?
21:27 robotustra_ https://habrastorage.org/getpro/geektimes/post_images/782/5fd/c53/7825fdc53f68d6f82b03e2d9c7830239.jpg
21:29 rue_house this bad internet connection is getting annoying
21:29 robotustra_ pay more for internet
21:29 robotustra_ it's not cheap thing in canada
21:29 rue_house its fiber optic
21:29 rue_house lots of fallen trees this weekend
21:30 robotustra_ only in canada internet cables goes in air - in former USSR - all commutication are put under ground
21:30 robotustra_ it case of nuclear war
21:31 jhylands I pay a lot for internet in Canada, and it absolutely rocks
21:31 robotustra_ looks like rue live in bushes
21:32 robotustra_ in montreal it's ok too
21:32 jhylands I pay about $100/month and I get 250 down and 20 up
21:32 robotustra_ what provider?
21:32 robotustra_ any limit?
21:33 jhylands Rogers, and no, its unlimited
21:33 robotustra_ toronto?
21:33 jhylands London
21:34 robotustra_ shit
21:34 robotustra_ my internet is worser
21:34 robotustra_ 10/1.5
21:34 robotustra_ for 65
21:34 robotustra_ but unlim also
21:35 robotustra_ 250 - is it optic? we don't have even such speeds in here
21:35 robotustra_ my cable modem can give only 50
21:35 robotustra_ 50 Mb/s
21:38 jhylands no, its cable
21:38 jhylands I just downloaded a game off steam, peak download speed was 33 MB/s
21:40 jhylands http://www.speedtest.net/my-result/4916170746
21:40 robotustra_ I used to have 30Mb/s but I don't need so much
21:40 jhylands that's 33 mega-bytes per second
21:41 robotustra_ speed is usialy measured in megabits
22:02 Hyratel1 wow. Sansa E200-series MP3 player replacement batteries have about 75% higher capacity than OEM
22:04 robotustra_ https://vimeo.com/137531269
23:38 anonnumberanon what the hell im experimenting with my old servo driver made from scratch from last week and i seem to be getting perfect 10 pwms
23:38 anonnumberanon :)
23:41 anonnumberanon Im tempted to tempt the devil and add more to see.