Don't Fix It In Software

Video thumbnail (Frame 0) Video thumbnail (Frame 2049) Video thumbnail (Frame 2388) Video thumbnail (Frame 3244) Video thumbnail (Frame 5561) Video thumbnail (Frame 6075) Video thumbnail (Frame 6595) Video thumbnail (Frame 7862) Video thumbnail (Frame 8325) Video thumbnail (Frame 9024) Video thumbnail (Frame 9460) Video thumbnail (Frame 10576) Video thumbnail (Frame 11569) Video thumbnail (Frame 12209) Video thumbnail (Frame 12928) Video thumbnail (Frame 15267) Video thumbnail (Frame 15614) Video thumbnail (Frame 16305) Video thumbnail (Frame 16700) Video thumbnail (Frame 20216) Video thumbnail (Frame 21455)
Video in TIB AV-Portal: Don't Fix It In Software

Formal Metadata

Don't Fix It In Software
Title of Series
CC Attribution 3.0 Unported:
You are free to use, adapt and copy, distribute and transmit the work or content in adapted or unchanged form for any legal purpose as long as the work is attributed to the author in the manner specified by the author or licensor.
Release Date

Content Metadata

Subject Area
Katy Levinson - Don't Fix It In Software At Defcon 17 when a speaker didn't show a bottle of vodka was offered to whoever gave an impromptu talk. Somebody went up and talked about his robot project. He mentioned that it didn't normally drive straight, and talked about all the software solutions he had tried to fix this. I was reasonably intoxicated and wound up shouting at him over the crowd that it did not drive straight because of his drive base design, and not his software. This led to questions, which eventually led to a rant about all of the dumb things people who are brilliant at in software do wrong in hardware, and then try to fix using more software. Sadly a scoundrel absconded with my vodka, but a goon took me aside, said the information was great, and told me to submit it as a full talk. Now I am. This talk will cover material assuming the average audience member is a relatively intelligent coder with a high-school physics/math background and has seen linear algebra / calculus before. The intent is to navigate people new to robotics around many lessons my teams and I learned the "hard way," and to give them all the words to look up in wikipedia to help bridge the gap between amateur and novice professional robotics. It will not cover why your Arduino doesn't work when you plugged your USB tx into your RS232 tx. Katy Levinson Katy worked as the Software Lead on the Lunar Micro Rover project at NASA Ames. This work earned her Best Team Lead for the Ames Robotics Academy. The portions of her work done while completing her Bachelor's in Computer Science at Worcester Polytechnic Institute won her WPI's Honorable Mention for her Major Qualifying Project. She has been a team member for four competitive seasons of FIRST Robotics, mentored an additional one, helped found five more and mentored them through a full competitive season, earning her a Recognition Award from the Worcester Public Schools and a Team Mentorship Award from the Washington State FLL for her work mentoring students. She co-founded a robotics science camp at 16. She is now a software engineer at Google and a director at the Hacker Dojo, a hackerspace in Mountain View, California.
Presentation of a group Software Robotics Rectangle
Digital photography Execution unit Information security Maß <Mathematik>
Word Robotics Authorization Electronic mailing list Figurate number Metropolitan area network
Email Slide rule Boss Corporation Computer font Multiplication sign Software Robotics Bit Right angle Hacker (term) Computer font Arc (geometry)
Robotics Physicist Forcing (mathematics) Moment <Mathematik> Moment <Mathematik> Physicalism Hydraulic motor Food energy Force Arc (geometry)
Point (geometry) Curve Forcing (mathematics) Moment <Mathematik> Total S.A. Line (geometry) Function (mathematics) Power (physics) Power (physics) Robotics Green's function Function (mathematics) Moment <Mathematik> Freeware Bounded variation
Point (geometry) Digital photography Robotics Multiplication sign Maxima and minima Function (mathematics) Line (geometry) Power (physics)
Point (geometry) Curve Smoothing Surface Moment <Mathematik> Spiral Bit Power (physics) Green's function Moment <Mathematik> Hydraulic motor Hill differential equation Force
Metre Slide rule Greatest element Thread (computing) Software Robotics Internetworking Computer hardware Physicalism Object (grammar) Series (mathematics) Physical system
Multiplication sign
Thread (computing) Forcing (mathematics) Programmable read-only memory Virtual machine Arrow of time Disk read-and-write head
Digital photography Fluid statics Friction Forcing (mathematics) Object (grammar)
Point (geometry) Group action Multiplication sign Programmable read-only memory Set (mathematics) Shape (magazine) Robotics Different (Kate Ryan album) Metropolitan area network Data type Default (computer science) Default (computer science) Online help Stress (mechanics) Multilateration Rectangle Shape (magazine) Wave packet Plane (geometry) Exterior algebra Nachlauf <Strömungsmechanik> Angle Order (biology) Video game Object (grammar)
Personal identification number Default (computer science) Group action Vector space Angle State of matter Direction (geometry) Chemical equation
so hi everyone my name is Katie Levinson and this presentation is called don't fix it in soft layer and you may be asking what happened what's happening here and the long and short of it is that just said I I got I got drunk and mouthed off at Def Con 17 and and you know something someone showed up a longer story is it somebody showed up when I speaker didn't show up and said you know entertain the crowd and and you know and he was whining about how his robot didn't work in software and it didn't work and he was going to use software to fix it and the problem was basically that his that he said it didn't drive straight and I'm finally like what's the ratio of your drive base and he's like you know are you driving the rectangle with the fat side forward or the skinny side forward and he says the fat side and like if you look at the nice spot wrecked I would live a laser pointer this means I'm in charge if you look at the fat rectangle if you imagine wheels on the end of this as you go like as you as you go forward at all you're basically leavering against yourself to walk down and it's not really magical that you're getting out of alignment and if you if you want to only go straight you know you drive it with the skinny side of your rectangle forward and then enjoy figuring out how to turn but you know so this is this is a situation as I you know and this goes on more questions that I wind up doing this this very
academic intelligent rant which I'm I'm really sure probably look more like that
but the long the short of it is afterwards security comes and takes me aside and this this makes me nervous because I don't have the best history
with authority figures but you know it says why don't you do that this is a talk and I was pretty excited because you know the bottle of vodka man offered and unfortunately some scoundrel
absconded with my vodka I'm really proud I got to use those words it's like my vocab words of the day and and but now thankfully someone else would give me vodka props to you dude haha but along the short of it is now are coming up and I'm going to do this big list of all the ways in which I all the things i wish someone had told me before i started building robots competitively and professionally at the very least i can
show you some pretty pictures I do photography and so most of these slides are pretty pictures I'm really that boring it's just there's some pretty pictures for you to look at all right my
best qualification is the experience of doing stuff wrong as I'm sure you know all def con speakers are only admitted if they are exceptionally qualified so that that's how that's how things are these are qualifications I'm probably more likely to put on my resume just want to like say right now thanks to originate I just started with them like a little bit ago and they're totally like yeah you can do this talk that's basically self-humiliation you could do it in RNA they all printed me an awesome hoodie which I unfortunately left on the floor because I plan ahead but they are awesome and if you are sick of your boss's consider applying yeah so basically if you have a question just like ask and if we run out of time i'll have to ignore you and you can email me but I'd like just to be you know casual and interactive as much as possible was what no no this was this was def con 17 where I went up and like oh that sounds terrible we should do something about that guys Q&A afterwards all right all right so the outline we're going through some good ideas we got some bad ideas and we're going to go through some things that people generally just don't think through the whole way so starting right off with the good ideas let's go
through physics torque is angular force if you were to take a wrench and apply some force to a bolt in a nice in a nice you know arc that is torque speed is how fast you do it physicists will get snobby and tell me that I'm not saying this correctly I don't care this is just a working definition for us idiots okay
first item is pulse width modulation reavy ated to pwm sometimes you want your robot to be going at a speed somewhere between zero and interacts people frequently decide that the way to do that is to just feed less energy into the motors and that's a bad idea you really should not be doing that motors
do not output power linearly they you can see this straight line is actually is that is the the the force output you can see on the when it hits the side with a torque that's called a stall torque that's where it's not with you at all where it hits the the the x axis that is called the free running speed where there's nothing on it at all and you know that the variations come in between there you can see the power that is output in total on the curve line and and you'll notice that like it is not the same at all points so you actually want to put it where it's getting I'm sorry guys over there I'm going to laser this one and try to describe as best as possible but I apologize in advance you want to put it you know somewhere near the top so you get out as much power as possible and less inefficiencies all right so basically you want to pick a
good point on that curve and stick with it as much as possible gear your gear everything you know how fast you want the robot to go so take the motor at the torque and power output you want and just gear it so that the wheels actually turn at approximately the speed you're looking for um and the question is you know oh sorry nope we're looking now
this is an oscilloscope looking at a PWM output and so you can see that basically the line goes up and down it's about one-third down two-thirds up so if you do this insanely fast to humans it looks like the motor is just running at a slower speed and so if there if the line is up two-thirds of the time it's going two-thirds of its max speed and this is a real way you control speed on robots without totally messing up your power output and the question is you know how
do you pick the point that you run this square wave at and the important thing
to remember is that climbing takes force unless you're going to be constantly operating on a perfectly smooth surface you're going to need a little bit extra boost to get over whatever you happen to run into and what happens very often is
that people they put themselves right at this total peak and then they have to go up a hill so now they're moving slower so now they get pushed down this side of the curve they're out putting less speed is coming out as torque now the motors are sufficient so they can shove further down the curve and furthered on the curb further down the curve and just wailing in place and really not getting anywhere so you want to optimally pick a place a little bit over towards the speed side is so if you hit a bump you don't wind in this horrible downward spiral of getting nothing done at all and the expected terrain will change approximately where on the speed side of the curve you want to set your running point generally speaking yeah I hope I'm going into okay speed this is
uh you can see at the bottom these things here I'm going to like I feel I can be a total dick here these things at the bottom these r pw m's usually do this as a hardware object you buy them the internet sells them they're like a hundred bucks they are cheaper if you like fire but like you know a good trustworthy like I would feel comfortable putting this on my robot and it will probably not be the thing that catches fire about a hundred bucks this guy removed all the cooling systems because he likes fire that's his prerogative you do get to at least see the insides of them which is interesting to some people alright next item
I I really shouldn't have to have a whole series of slides on this but software people think threads are just kind of magic it's like I've applied both to this problem and now all my physics are solved and it's like no people major in this and it's kind of complicated so but once over lightly
this is a bolt this is not a bolt
every time you call this a bolt I die a little inside and I need to drink this is a screw the end is pointy you don't have to drill a hole first when you put it in you don't put a nut on the end so I don't know what this chicks problem is but you don't need to put a nut on the end of this also the bolts need to have
something on the other end of hold them on you either thread the piece of metal or wood or whatever that you're putting them into are you putting nut on the end this is wrong you're just going to rip
the head off the bolt here you see the arrows imply the force you're going to rip off the head of the bolt you're going to rip the the twirly okay the threat yeah we we are extremely technical around here you're going to rip the threads off the screw if you do this don't do this okay this is also wrong this is a machine that does nothing but bend your screws and by screws I mean bolts alright this is going to get a lot interesting really fast all right this is wrong this is also wrong in this one you are not bending your bolt but you're going to share it because you're using the bolt as the major pieces that keeps it together and they weren't actually in the same way that you know you're bought the head you'll just hear these things in half there like zinc plated like they're really not made for this okay don't do this this is also wrong this is
a it's miller lite dude
this is right okay this is how you do it the bulb is actually not the object that is holding the pieces of metal together but both is the object that holds the pieces together enough for static friction to take over and actually do your major holding force like it's like you don't like that the force should not be physically in the bolts of forces in the fact that that static I'm just going to repeat myself you got it okay all
right next this is a puppy because we're changing ideas and people say I talk too fast so I just put puppies and kittens and those things in whenever we have to transition ideas I hope you guys are cool with that puppies are awesome though so i really hope you are next
item drivetrain ratio ok we're going to consider the the places where the wheel fur hears from the four-wheel drive out here because we're simple okay so assume that the points where the wheels touch the ground or points you make them into a shape um if it's a square then you're you know you can go forward and turn you know if you if you want it to be super agile you know you have the big like crazy angle thing or you drive the rectangle with the short side forward if you just want it to go straight almost all the time this is not terribly complicated but a lot of people are just like I'm making a robot I'm gonna put some wheels on supply would you know so think about this when you're setting up your stuff okay the other thing that people default to is a car though ed know all of you who drives though that cars aren't actually like particularly nimble objects they need to let's just like trying to turn a bicycle they need to go forward in order to turn also making the wheels swivel properly is a pain in the ass so unless you have a good reason for this this is probably not the default that you want to go to even though it's what you see most often in your daily life tank is actually a pretty good default just put the wheels down the side put them all forward to go forward put these guys forward and these guys backwards to turn turns on a dime pretty clean you'll scuff up everything if you care about that because basically the whole art of it turning is it doing little micro hops so and in particular if you have large tank treads and that you previously had rug in your house some people will do like two wheels tank driven and then casters or Omni wheels on the front as a slightly less brutal alternative that that will that will save your carpets significantly but no guarantees man Omni wheels unless you have a good reason you should just buy these so many people want to make them I warned you so they're happy with the resistance they permit like some people will do like they will have a set of wheels going this way on the robot and then a set of wheels going this way on the robot and what you can do is by driving different sets of wheels independently you get a robot that goes this way and goes this way without turning cute trick terrible lateral traction for pretty obvious reasons this
thing in the middle here is an omni wheel I'm gonna i I'm sorry I the speakers in the way I really can't even see that when I'm so sorry guys um but yeah this thing towards the middle is an omni wheel and as you can see it's a yo dawg i heard you like wheel so i put some wheels on your wheels these little black things are free-floating so this is this is why you can have the wheels go opposite ways of each other and not have anything actually fight this is also the transition side towards vector drives which are these things with like the miniature hair hair curler rolling pin things you'll notice these are at an angle which means that this wheel when you turn it most people when you turn it they just want to go forward this wheel wants to go forward and also in the direction of the little hair curlers and so when you look at this if you put four
of them on there like default state is that they all have a directional they all have two directions that they're pushing a few balance them right you actually now have a like full