#robotics Logs

Apr 13 2017

#robotics Calendar

12:28 AM rue_shop3: !@#$#!@%$%& the 1.75mm filament, has a blob that goes up to 2.15mm, jammed the machine!
12:34 AM orlock: rue_shop3: Remember to clean your teeth they will be full of plastic
04:07 AM gottaname|wurk: anyone knowes if someone managed to pull off building a working tachikoma outside of japan?
04:57 AM deshipu: gottaname|wurk: I have a logicoma
04:57 AM deshipu: gottaname|wurk: if that qualifies
04:58 AM deshipu: but I still need to program it
04:58 AM gottaname|wurk: deshipu, pics?
04:58 AM gottaname|wurk: deshipu, you've heard of the 1/8 crevos tachikoma right?
04:58 AM gottaname|wurk: 1.7k usd is pricey, could be done for way less amirite?
04:58 AM gottaname|wurk: :P
04:59 AM deshipu: https://hackaday.io/project/7168-logicoma-kun
04:59 AM deshipu: it's transparent, because it has the optical camouflage engaged
05:00 AM gottaname|wurk: deshipu, not really big right?
05:00 AM gottaname|wurk: it looks... small.
05:00 AM deshipu: fits on an A4 sheet
05:01 AM gottaname|wurk: yeah, I plan to 3d print the parts, then use standard servos for the legs, steppers for the wheel mode
05:01 AM gottaname|wurk: maybe a 1/10 scale
05:01 AM deshipu: might be a bit heavy
05:03 AM gottaname|wurk: I might be using the tower hobby metal gear ones
05:04 AM gottaname|wurk: can't weigh more than a kilo anyway
05:05 AM gottaname|wurk: I plan to use the ULN2003 steppers
05:05 AM gottaname|wurk: the small ones
05:05 AM gottaname|wurk: larger servos should give a better power to weight ratio
05:07 AM gottaname|wurk: deshipu, I'm thinking of using a 3 point leg than 2 points
05:07 AM gottaname|wurk: https://www.youtube.com/watch?v=RgV6BoCdTcc
05:26 AM Jak_o_Shadows: A friend today was talking about using hydraulics to make a yaw/pitch platform.
05:28 AM Jak_o_Shadows: He started off with 4 actuators. I suggested a stewart platform (got knocked back due to cost). Then I knocked him down to 3 actuators. Then I convinced him to not rest all the weight on the actuators. Then I convinced him only two actuators. Then I got him to consider electric motors
06:49 AM deshipu: gottaname|wurk: that's a lot of servos to power
06:52 AM goppo_ is now known as goppo
07:42 AM jandor_: hi
08:03 AM CppisME: hi
10:41 AM akaWolf1 is now known as akaWolf
10:56 AM branjb: if i have two IMUs mounted on a pole, in different orientations (the offset relation between the two IMUs is unknown), and i get the tilt/roll angle of each at time=T1, then i rotate the pole on the Z axis to a new orientation at T2 and measure the pitch and roll for each IMU, is it then possible to calculate their orientations in relation to each other?
10:57 AM SpeedEvil: Your question is wrong.
10:58 AM SpeedEvil: The measured pitch and roll before and after the move will be the same.
10:58 AM SpeedEvil: For both.
10:58 AM SpeedEvil: If you're measuring just gyro offsets, because they are rigidly fixed on a pole.
10:58 AM rue_house: not is their not aligned
10:59 AM SpeedEvil: Oh - orientations I missed.
10:59 AM SpeedEvil: Sorry
10:59 AM SpeedEvil: If you're measuring just the gyro output, then if you move more than a simple line, you can resolve that into relative pointings.
11:00 AM SpeedEvil: If you add accellerometers, then you have a pretty good additional idea as to where down is.
11:01 AM branjb: maybe another example: if I have one IMU and I read roll: 90*, pitch 0*, and the other reads roll: 0*, pitch: 90*, if I tilt them both forward 90 degrees I will read on imu1: roll 90*, pitch -90* and on imu2 I will read roll -90, pitch 90. Is there a generalized form that I can make that would tell me that they were 90 degrees rotated on the Z axis from each other?
11:01 AM SpeedEvil: However, simply rotating the pole will may not uniquely solve for orientation.
11:01 AM branjb: I am using accel + gyro
11:01 AM SpeedEvil: What are you trying to work out.
11:01 AM SpeedEvil: Are you trying to work out orientation (compass direction) from a vertically positioned pole, rotating around its axis?
11:01 AM branjb: basically trying to work out the Z axis between two planes based on IMUs mounted on each plane
11:01 AM branjb: yeah
11:02 AM SpeedEvil: Because you can't.
11:02 AM branjb: the planes can move in the x, y, and z direction
11:02 AM SpeedEvil: The fact that you know the axis of the pole doesn't actually help you to get the compass heading, unless you had an initial pointing.
11:02 AM rue_house: it takes timmy 10 mins to get into town
11:02 AM rue_house: timmy has to be in town at 9am
11:03 AM rue_house: what time should timmy leave home?
11:03 AM SpeedEvil: The only way to solve this is an external input, this can be a known course and knowledge about the system (a wheeled system will not be drifting at 4mph on concrete)
11:03 AM SpeedEvil: Or magnetometers or something
11:03 AM rue_house: ?
11:03 AM branjb: i don't want compass heading, i want the Z axis offset between imu1 and imu2. it doesn't have to be an instantaneous reading, i can collect data from different orientations at different times
11:04 AM rue_house: if you have two sensors and the same motion, you should be able to work out the relative orientation between the sensros
11:04 AM SpeedEvil: You can't get that, without doing more than rotating the pole
11:04 AM branjb: what else does the pole need to do?
11:04 AM SpeedEvil: IF you take the pole, and rotate it horizontal from being vertical, and then put it back vertical, and rotate it, you can uniquely find the orientations.
11:04 AM branjb: ok
11:05 AM branjb: imagine that i am holding the pole and waving it around making figure eights or something, would that give me enough data?
11:05 AM SpeedEvil: (or really any movement that is not in one axis alone, and is significant.
11:05 AM SpeedEvil: yes
11:06 AM branjb: trying to find a general equation for the relationships is what is tripping me up though. In certain scenarios I can see that it works, but I can't find the relationship
11:06 AM SpeedEvil: https://en.wikipedia.org/wiki/Euler%27s_rotation_theorem
11:07 AM SpeedEvil: I'm not awake enough to properly explain it.
11:07 AM [cube]\ is now known as [cube]
11:07 AM branjb: thanks, i wasn't even really sure what to be looking at
11:08 AM SpeedEvil: The basic idea is to take a rotation vector, and another rotation vector, and find the transform that makes them identical.
11:08 AM branjb: my knowns are: @ T1, IMU1_roll, IMU1_pitch, IMU2_roll, IMU2_pitch. @ T2, it's rotated a bunch, and I know IMU1_roll, IMU1_pitch, IMU2_roll, IMU2_pitch again. I also know that the relationship between the IMUs doesn't change. What I am solving for is the offsets in the x, y, and z direction between IMU1 and IMU2
11:08 AM branjb: ok
11:08 AM SpeedEvil: For example, if this was a 2d rotation problem, you would have two gyro outputs, A and B.
11:08 AM rue_house: or feed them into a nural net and let it figure it all out
11:09 AM SpeedEvil: Your solution to the positioning is simply A-B.
11:09 AM rue_house: its not a 2d problem
11:09 AM rue_house: its 3 2d problems
11:09 AM SpeedEvil: k=A-B, therefore B is always A+k, with k representing how many degrees it's offset
11:09 AM branjb: is this similar? one way I was trying to think of it was that if they were both oriented excactly the same, every movement would give roughly the same reading. then rotate the top IMU by 1 degree on each axis. It's going to be mostly the same, but a little bit off. the more that it rotates, the more that the readings will no longer be the same. So I'm looking for a transform that makes
11:09 AM branjb: the readings the same, and that also contains my offset?
11:09 AM SpeedEvil: It's not 3 2d problems
11:10 AM branjb: cool
11:10 AM rue_house: pretty sure that the 3rd dimention is just 3 2d dimentions
11:10 AM SpeedEvil: Because the outputs of the gyros are not fully independant
11:10 AM rue_house: xy xz yz
11:10 AM SpeedEvil: It is 3 2d problems for accellerometers
11:10 AM rue_house: hmm
11:10 AM SpeedEvil: But see the above caveat on awakeness.
11:10 AM rue_house: if i werent asleep myself i might persue this
11:11 AM rue_house: 8:41
11:11 AM rue_house: I think I'm good till 8:45
11:12 AM SpeedEvil: Also - ##math
11:13 AM rue_house: I'll remember how to do a fire inspection when I get there, right?
12:20 PM anniepoo: branjb
12:21 PM anniepoo: you can't just add euler rotations
12:38 PM branjb: what can i do?
12:38 PM anniepoo: hey
12:38 PM anniepoo: So, take your euler angles
12:38 PM anniepoo: from them get a rotation matric
12:39 PM branjb: ie, R = Rx * Ry * Rz?
12:39 PM branjb: or do i want to break it down into one components matrix at a time?
12:39 PM anniepoo: you can look that up, or just use a matrix math package
12:41 PM anniepoo: when you have the R transform for each one, you invert R2 to make R2i
12:42 PM anniepoo: Now R * R2i is the transform from one gyro's coords to the other
12:42 PM anniepoo: 8cD
12:44 PM branjb: if i'm only targeting the transform from one gyros Z to the other gyros Z, do you think i can break it down into a few general equations? trying to avoid matrix math on a micro
12:47 PM SpeedEvil: 'on a micro' means nothing.
12:48 PM SpeedEvil: 32 bit micros have quite substantial math performance, especially if you're only doing ismple sums on two 3-vectors
12:49 PM anniepoo: you can compute the end R transform offline. It's not going to change
12:50 PM anniepoo: and the end computation is (assuming you're in holonomic coords) 16 multiplies and 12 adds
12:51 PM anniepoo: sorry, homogeneous coordinates, brain getting old
01:01 PM Snert__: Holonomic. Just googled that. Gawd....my mind blew up.
01:03 PM Snert__: don't do big words before the 3rd cup of coffee.
01:18 PM branjb: thanks anniepoo, that puts me down a good path
01:48 PM anniepoo: good
01:48 PM anniepoo: holonomic's a good word for roboticists
01:49 PM anniepoo: think of a classic robot arm. It's motion is holonomic - no matter what the history, if you set the joint values the same the effector ends up in smae position
01:50 PM anniepoo: now think of a car with ackerman steering - if the car's parked with wheels straight ahead the joints are in 'same position' whether the car's parked in Maryland or Boise
01:51 PM anniepoo: to know where the car is, we have to know where it was at some poitn in the past, and the entire history of how it's moved it's joints
01:52 PM anniepoo: now put an obstacle in the reach volume of the arm. Suddenly it becomes a non-holonomic system,
01:53 PM anniepoo: eg if you imagine that colliding with the obstacle causes the arm to stop (a handy mathematical fiction)
01:54 PM Snert__: so when it stops you no longer have any idea where it is. Just where it's been?
01:56 PM Snert__: clearly I'll have to study such sorcery when the time comes.
02:00 PM anniepoo: just that now it depends on where it's been
02:00 PM anniepoo: so we can ask questions like 'can we segment the space into portions that are holonomic within themselves?
02:01 PM anniepoo: if so, we only need to check the motion path when it crosses boundaries
02:02 PM anniepoo: holonomy is a useful way of dividing the world.
02:02 PM anniepoo: eg steel is non holonomic with temperature
02:02 PM anniepoo: 8cD you can harden it
02:08 PM Tom_itx: anything can change state
05:46 PM Snert__ is now known as Snert_
07:09 PM Jak_o_Shadows: I wanna say it's possible.
07:09 PM Jak_o_Shadows: Also, the thing to avoid is some PARTS of matrix math, because they're always expensive. No matter where
07:24 PM iztech_ is now known as iztech
08:22 PM jandor: hi
08:23 PM Jak_o_Shadows: hi
08:24 PM jandor: how goes it?
08:26 PM Jak_o_Shadows: ok
08:26 PM Jak_o_Shadows: Haven't decided what project to work on over easter.
08:35 PM jandor: what are the variants?
08:50 PM Jak_o_Shadows: Alarm clock. Game input panel joystick thing. Hexapod. Miscellaneous 3D printing
08:53 PM jandor: do hexapod!
08:55 PM jandor: *options
08:56 PM Jak_o_Shadows: The main thing with the hexapods is taht the bolts are sitting on a mates desk at work
08:56 PM Jak_o_Shadows: So ok, I could print out the linkages. But...
08:57 PM jandor: I didn't get it
08:57 PM jandor: bolts are sitting ?
08:58 PM Jak_o_Shadows: A friend bought the bolts, but hasn't given them to me yet.
08:58 PM jandor: aha
08:58 PM jandor: okay
09:01 PM Jak_o_Shadows: yeah. Ok. I should probably just print the links
09:03 PM jandor: hey
09:03 PM jandor: I need an opinion
09:04 PM Snert: I have an opinion
09:04 PM jandor: I feel like I need to participate in some project
09:04 PM jandor: but I don't know which
09:04 PM jandor: something githubby and pythonic
09:04 PM jandor: and I hate most of the people
09:04 PM Jak_o_Shadows: Wait. Where you the one talking about gazebo?
09:05 PM jandor: yes, it was me
09:05 PM jandor: I'm absolutely disappointed with it
09:05 PM jandor: further I dig, worse it becomes
09:05 PM Jak_o_Shadows: aha. It alsways seems too much effort
09:06 PM jandor: too much effort with no returns, I'd say
09:07 PM jandor: maybe I'm just too old phychycally )
09:07 PM Snert: well, how old?
09:07 PM jandor: I'm 32, but sometimes like 3 times older )
09:08 PM jandor: "what is that thing? back in my time we didn't ... " and so on
09:08 PM Snert: never too old to screw up!
09:08 PM jandor: haha
09:08 PM jandor: good one
09:08 PM Snert: but seriously....can you do blinky leds and simple arduino projects?
09:09 PM jandor: yep, but why?
09:09 PM Snert: just wondering your general skill level is all.
09:09 PM Snert: hard to suggest a project if ya don't know.
09:09 PM jandor: it's not about the project itself
09:10 PM Jak_o_Shadows: https://github.com/Jak-o-Shadows/stewiegough is my stewart gough platform btw
09:10 PM jandor: it is about teamwork
09:10 PM Snert: I'm not sure I could join anyone else's project.
09:10 PM Jak_o_Shadows: I just uploaded the force calculations bit
09:11 PM Snert: I'm a team player. I'm on Snert's team.
09:11 PM Snert: I do what I do.
09:11 PM jandor: may I criticize your project, Jak?
09:11 PM Jak_o_Shadows: yup
09:11 PM Snert: and if anyone else likes it they're welcome to contribute.
09:12 PM jandor: what you have here is better be splitted into several repos
09:12 PM jandor: do not put binary files to git
09:13 PM jandor: if you want some simple automation you might try our firmware
09:13 PM jandor: I'm curious if somebody could really use it
09:13 PM Jak_o_Shadows: The binary files like some of the matlab stuff, the blender stuff?
09:13 PM jandor: zips, caches
09:14 PM jandor: and tex's out and aux
09:14 PM jandor: and so on
09:14 PM Jak_o_Shadows: Oh, the latex zip? Yeah. Nowadays I would use a .gitignore to cancel taht
09:14 PM Jak_o_Shadows: Wait, I uploaded videos? I can't remember doing that
09:15 PM jandor: I don't see videos
09:15 PM jandor: I see tex's files
09:15 PM jandor: tex source is ok, but intermediate files like aux and out are garbage
09:15 PM Jak_o_Shadows: There are both.
09:15 PM Jak_o_Shadows: TBH, I mostly created this repo to get the files onto another computer
09:16 PM jandor: https://github.com/robotota/arduino-unity
09:16 PM jandor: ok
09:16 PM jandor: why don't use googledrive?
09:17 PM jandor: poor english in arduino-unity
09:17 PM jandor: you're warned )
09:20 PM Jak_o_Shadows: Um. I'm not sure why I didn't use google drive
09:20 PM Jak_o_Shadows: I normally do
09:22 PM jandor: may be just ouf of interest how would git work
09:22 PM jandor: gazebo feels like pure academic community, with almost no connection with outer world
09:23 PM jandor: as annie said, with heavy "not invented here" syndrome
09:23 PM jandor: they host their own instance of stackexchange forum platform
09:24 PM jandor: with almost NO ACCEPTED ANSWERS
09:24 PM jandor: that speaks a lot about the whole thing, isn't it?
09:26 PM Jak_o_Shadows: aha
09:33 PM iztech_ is now known as iztech
11:35 PM iztech_ is now known as iztech