This week we sit down with Chris Anderson, former editor of Wired magazine and now CEO of the drone company 3DR. He is also the creator of two online communities powered by open source code - DIY Drones and DIY Robocars, where hobbyists and enthusiasts have learned to build autonomous vehicles and perfect the software that controls them.
Chris is the author of the New York Times bestselling books The Long Tail and Free as well as Makers: The New Industrial Revolution.
He is lso the CEO of 3DR, founder of the Linux Foundation's Dronecode Project, and founder of the DIY Drones and DIY Robocars communities, including the ArduPilot autopilot project.
Not surprisingly, he also created something called GeekDad.
If you want to get involved, you can learn how to build your own Donkey Car racer here.
Chris Anderson You know, community building is really simple like, you know, have a reason, you know, have a place, if you do it in person have a place and time, and then have code that's good enough to show that it could work, but bad enough that everyone wants to make it work better. [Ben laughs]
Ben Popper Couchbase is a SQL friendly multi cloud to edge no SQL database, architected on top of an open source foundation. Join them at Connect.Online, their two day virtual technical conference for developers that has over 60 deep dive sessions, where you can learn about Couchbase, hone your application development skills, and network with peers and tech experts. Ready to develop your path? Register for Connect today and learn more at couchbase.com/developyourpath.
BP Hello, everybody. And welcome back to the Stack Overflow Podcast. I am Ben Popper, along with my lovely co-hosts, Paul and Sara. Good morning, y'all.
Sara Chipps Morning, Ben. Morning, Paul.
Paul Ford Hello!
BP Hi. Hi. Hi. Hi. So we have a great guest on with us today. Chris Anderson, formerly editor at Wired and now CEO of 3DR, a very cool drone company. And today we're going to talk a little bit about community and code, which I think is something pretty close to Stack Overflow's heart. Those are two things we focus on a lot. Chris, welcome to the show.
CA Thanks. Great to be hanging with you again in a new context.
BP Yes, Chris and I met at South by Southwest 2013 when he was getting into drones, and I was getting into drones. And eventually that led me to leave journalism for Communications at DJI and that led me over here to Stack Overflow for content and communication. So both formally media now tech folks.
PF I just came up with an extremely weak Chris Anderson joke, which I'd like to workshop here. Can we, can we do it?
BP Yeah, let's hear it.
PF How is our guests like an Irish Wolfhound?
PF He has a long tail.
PF Ahhhh! For people who don't know, [Ben laughs] a foundational texts of our digital world, which was simply called The Long Tail.
CA Yes, it's a, it was a, started as an article that I wrote in Wired, and then turned into a book and is now I'm pleased to say a term of art in the industry.
PF It is, I used it earlier today in a meeting, I was just like, ''Well, you know, this is our Long Tail content. And the idea being that there's stuff sticks around on the internet and continues to add value.''
CA It's one of those concepts that was initially received as being both head slappingly obvious and entirely wrong. And you know, any good idea should should be polarizing that respect.
PF So this is different than long tail, or maybe not like, I'm curious to sort of draw those parts of your world together. What are you doing today? Like, what is this new thing?
CA Well, we won't have a hard time connecting it all to Long Tail, because basically, the Long Tail is the spirit appendage of the internet. But you know, the notion that, you know, democratizing technology, making technology accessible to more people, being more inclusive, but who gets in it, you know, it's obviously the story of podcasts. It's a story of you know, YouTube, it's the story of the internet. And it's a story of the communities that I've created both DIY drones on on autonomous vehicle, aircraft, and DIY robo-cars, about autonomous cars. So my day job is I run 3DR, which is a drone company that has gone from parts and technology for developers and hobbyists, to commercial products, to consumer products, and then, you know, commercial products. And now we basically run a process for the FAA to try to make these things legal. And, and, and, you know, unbelievably, I've gone from kind of pirate to participant, you know, sort of, you know, coming up with the, you know, things that, you know, aircraft that weren't regulated and couldn't be regulated to basically writing the regulations for, for the future of aircraft. So that's, that's my day job.
SC I have a drone question. So I really, I really love open source drones, I've played with them a lot. I always tell people that are learning to code, especially kids between the age of like 12 and 17, to get their hands on a drone, because there's just something that they love about it. One time me and some high schoolers coded a whole bunch of drones to dance to the Night Rider theme song, which as you--
PF [Paul hums Night Rider theme song] Okay, okay.
SC There's a video on it on the internet somewhere. But I always wonder what is the difference between, you know, like the open source, like the parrot drone, and what our government uses, like, I imagine they're more sturdy. But besides that, what are you looking at when you're looking at something that is approved by the FAA?
CA Yeah, so just a little bit of history on this. So while I was the editor of Wired, I started to community about drones, but it's largely to for the exact same reasons Sara, that you said, which is that I've got five kids trying to get them interested in science and technology. I thought robots might be cool. They didn't think robots were that cool, because they've seen Transformers. And you know, we're not going to get anywhere close to that. And so I thought when we flying robots would be cooler. And we just kind of hacked it together into something together with Lego Mindstorms on the on the dining room table, and it kind of almost worked. It flew, but not fully autonomously. And, you know, they still didn't think that was cool. But I thought it was amazing and started the community. And we started writing the code. And you know, it was all open source, of course. And of course, those days, this is 2007, drones were military industrial stuff, you know, you didn't have the parrots. I think actually, would very soon, like 2009 was the first parrot drone, AR drone. But that wasn't open source. There's an API, which you were using, but the the core code wasn't open source. So we decided to build it on like Arduino, and all that sort of thing and really make it open source. And today, you have two kinds of drones, to answer your question, on the military side, you have the ones that fly really high and long. And those would be things like predators and leapers and global hawks, etc. And then you have the small ones that are so called tactical drones that the that the military would use. And those are, those that just in the last few months, the army has settled on our drones, I mean, our code rather, I started a formal consortium called Drone Code, which has a code base called PX4, that is the standard for small military drones is based on our code, based on our communications protocol based on our ground station. So and you know, what do they what do they look like? They look kind of like a parrot drone. They're a little bit more robust, but they're open source, you know, they have an open source interface. And you know, they're not as cheap as a parrot drone. But they cost a few thousand dollars. And so yeah, we won.
Yeah, what? How much research did it take to make your own drones,
BP But that's a pretty amazing story that you're telling that you went from, yeah, trying to get your kids interested in, you know, science and technology. And then, you know, forum online, just for hobbyists and enthusiasts to hang out. And then you all decided to create code together. And now that has come to the point where it's being used by our military.
CA It is! I mean, obviously, I didn't do like anything other than start the community and, you know, wrote the first terrible code. And this is, my general sense is that, you know, community building is really simple, like, you know, have a reason, you know, have a place, if you do it in person haven't placed and time, and then have code that's good enough to be, to show that could work, but bad enough that everyone wants to make it work better. [Ben laughs] So basically, basically a super broken MVP, where anybody who's good at coding, the code will say, well, that's that was a stupid way to implement it, let me just fix it for you. And that flywheel fixing then turns into really good code, right?
PF This is a complicated part of open source and open standards what we're talking about, because like, you've got one hand drone enthusiasts who I'm assuming are like classic tech nerds, you know, we're going to do a lot of things, we're going to change the world, perhaps slightly anarchist route, and then the Department of Defense on the other side, saying ''great systems and protocols for drones, we really need those.'' And you've got a community in the middle. How did that play out? That sounds complicated.
CA Well, yeah, I mean, so the good news is that, you know, robotics in general, is super multidisciplinary. So there's like mechanics and electrical and computer science and physics and all this kind of stuff. We also had a lot of people who weren't actually that interested in the code, but just wanted to use the drone just wanted a drone that they could they could use. So you had sort of like, you know, the radio control hobbyists on one side, and then you have the robotics people on the other side, and everybody was ignorant about something. You know, some people would say, Well, look, I'm, you know, I don't know a lot about about mechanical elements, but I'm really good at circuit board design, other people would say, I know a lot about circuit board design, but nothing about motors, or I don't know nothing about batteries, or I don't know anything about mechanical vibrations, or I don't know anything about how to fly. And so you know, the beauty of this is that everybody was coming to it, both with their own expertise, and incredible ignorance about everything else. So everybody could learn. It wasn't like you had some people who knew everything, and who sort of intimidated everybody else. In a sense, nobody knew anything in this domain. And so we were all learning together. So how did we get to military stuff? Well, it took about 15 years, you know, then it was classic, classic Gandhi, you know, first they ignore you, then they laugh at you, then they fight you, then you've won.
PF Then the military standardizes you drone protocol. [Paul & Sara laugh] That's definitely the fourth thing Gandhi said. [Ben laughs] The fundamental thing you're saying, right, is whoever shows up to do the work has the impact.
CA Yeah, and you know, initially, we did not set out to do military. Matter of fact, we explicitly, because, because drones were already military things, we spent a lot of time sort of demilitarizing them. You know, our whole point was that was that, you know, people thought of drones as being weapons and we want to change the meaning of the word and making you know, and I think successfully today, people think of drones as things you know, like toys you buy in Walmart, or, or cameras and things like that. So that was job one. And then job two was to, you know, when you're trying to win open source developers over one of the early concerns that would be weaponized, that their code would be used, you know, for for ill. And so initially, we actually had some pretty strict rules about you know, weaponizing drones. Today doesn't really matter what our rules are, because it's open source code, people do what they want. You know, what happened is that, you know, we very successfully build drones then DJI, you know, build even better drones, frankly. And it turns out, people just would rather have something that just works than something that's open and hackable, or at least most people would. So you know, commercially, we found that, you know, the open source drones, were always gonna be minority share a little bit like, you know, like, like Linux versus, versus Windows in the early days. And it was only really when the military started freaking out about China, and banned DJI drones. And you know, the Huawei, TikTok, sort of, you know, backlash, that they went looking for an alternative, it turns out, the open source is super trustworthy, because it's transparent and open, and it worked really well, etc. So, weirdly, the military became the biggest sort of driver. When I say military, I also mean the government and non military uses and all that. But, you know, basically, government use of open source drones became the biggest sort of validator of our approach and may in fact, drive demand for these things across the board over the next decade.
PF Really, for a decade plus, I mean, the Department of Defense has published excellent guidelines on like working with and dealing with open source code, like some of the best you can find like it's, it's actually open source and Defensive, have really been aligned for a long, long time. It's kind of an awkward conversation. But it's a it's an important one, like they contribute, there's stuff on GitHub, like, it's a big part of our world.
SC Paul, is this at all similar to the dystopian future that you imagined when you were saying the Department of Defense has excellent guidelines in open source code?
PF Well, you know, frankly, actually, it is because even in the early days, like the Richard Stallman days of, you know, GNU getting founded, he was really clear. And I mean, you know, I don't think you could find someone for all the other qualities that happened around the Free Software Foundation, like, who was more explicitly anti-imperialist, anti a lot of things. But the Free Software Foundation always was really explicit that it was about open code, not about sort of who the customer was, and didn't try to control that. And this conversation emerges from time to time. For me, it's just sort of like, this is a pattern that happens as things succeed in open source, they get more and more users. And you know, it's funny, because you're talking about Linux. And now we have Microsoft subsystem for Linux inside of windows, like we're, we're in a world that is absolutely unimaginable. But if you make essentially free tools that people can use and distribute, they're going to find their niche, and they're going to use them. So it's not all drones for you all day anymore when you're on to other autonomous things. Right?
CA Well, yeah. So we sort of solved what I solved the drone issue, which is to say that the now the code works really well, it's super reliable. Now there's a huge community now that's adding to it and you know, enhancing autonomy and different cameras and payloads and internet radios and things like that. But you know, from a kind of a raw technology perspective, you know, the the low hanging fruit of like, ''how do I make these things work'' is kind of done. So intellectually, I went for the next, you know, my day job is sort of, you know, incorporating that into mainstream, you know, use. My night job, My hobby is basically doing the same thing with cars, self driving cars, and you know, once again, put the letters DIY in front, so it's DIY robo cars. And, you know, once again, wanted to make it you know, cheap, easy, fun, accessible. And thing about cars, just like drones, we made them small and open and you know, and cheap. With cars, we made them small, open and cheap. So think of like a take like an RC car, like about a foot, two feet long. You take out the RC, throw in a Raspberry Pi camera, you know, maybe a Jetson nano, something like that, and then have them race autonomously.
PF What's the Jetson nano is that? The Nvidia?
CA Yeah, yeah, the Nvidia is sort of the Raspberry Pi form factor, but it's Nvidia CUDA cores, etc. They have an Xavier, and you know, coming out with other ones. So basically--
PF So that's your, your machine learning Raspberry Pi?
CA It's the machine learning Raspberry Pi. Exactly. So so you know, they would think that cars will be easier than drones, because cars are a 2d problem. And drones are a 3d problem. But they're actually harder for two reasons. One is, the drones have one huge advantage outside, which is GPS, they know where they are. So the cars are driving, we're typically racing indoors, they, they have to, you know, there's no GPS indoors, they have to use cameras to figure out, you know, where the track is where the other cars are. And that means computer vision, of course, but also deep learning to and then, you know, deep learning in real time, which is, you know, you know, 60 frames a second, on a sub hundred dollar board, which is, you know, non trivial. So that's become sort of really interesting from a technical perspective. And so that brings us into computer vision, deep learning AI, and the kind of the cutting edge of cloud and embedded computing, which is fun again.
PF I like that this is your your night job. Everybody needs a night job.
BP So in 2035, National Highway Safety Transportation will come to you and say, ''Can we borrow that and put it in all the driverless cars? It's open right and it's safe?''
SC I'm so ready. [Ben laughs]
CA It is, it is. And interestingly, you know, during you know, we were doing all these races in person. And it's super fun, we have them every month, now we're doing them virtually in a simulator, because of COVID. And so actually, we have a practice run, if you go to DIY robocars.com. And you'll see a list to our meetups, and we now run a simulator. So unity based simulator, once again, now people can participate without a car, you know, it's just it's all simulated, they just run the code on their on their local laptop, they can sit, they can participate from around the world, many of our teams are from Asia, you know, and it's simply a matter of, of logging on to the server, your car shows up in the in the simulator, the you know, the simulator that generates synthetic camera frames, if you will. And your local code then interprets those and turns them back into sort of simulated commands to the you know, to the throttle and the steering and your racing head to head with other cars. Algorithm versus algorithm, free, cheap fun. Anybody can do it. I think we have winners that were 12 years old. And we have winners that are in their 70s.
PF Oh my God, this looks fun! Fun as hell.
SC Yeah, I know! There goes my weekend and next three years.
PF Alright, so get someone started. What do I do?
CA So, so if you want to do it virtually it's really simple. So DIY robo cars is the community and then there's a several projects within them. You know, all the big tech companies have one, like Nvidia has something called Jet Race or Jet bot. Google's done this with the Google IO conference. But the one I would recommend is that you start with something called Donkey Car. Donkey cCr is a neural networks. So it's end to end neural network, can run on Raspberry Pi or a Jetson nano, without giving away too much I would suggest that you wait for news from Nvidia about even cheaper, better, than Jetson nano, the Jetson Nano is $99 but they're really pushing hard on this edge compute thing.
PF We're living in Nvidia's world right now really, it's really something to get adjusted to.
CA But it will work on a Raspberry Pi, you know, three or four. And you basically if you just follow the tutorials, but you can you could actually buy the cars you know, already made. Amazon, by the way has one as well called Deep Racer, you can buy it on it, you know, Amazon eight, you know, they built into the AWS stack. So this is kind of a thing. You know, I think if you want to spend clicking on Amazon buying stuff, you know, Deep Racer would be fine. If you want to actually build a properly which I think is more fun, go to Donkey Car calm, it'll show you just you get a standard RC car from Amazon. Yeah, you stick a you know, Raspberry Pi in there. And then you just run the code. And what you're going to be doing is what's called behavioral cloning. Let's say you draw a track on your in your backyard, we use tape, you know, you can use chalk, whatever. And then you just manually drive around the tracks during it yourself, you know, two or three times, meanwhile, it's recording both the what the camera sees, and also your inputs. So now you have a correlation between you know, here's, here's what the camera sees, here's what how it should drive, you send it up to the cloud, and then it builds and then it trains against that. And then you didn't download a model, which is an inference layer, and then you run that model on your car. Now it drives itself.
PF There's a point, my brain just kind of goes like, ''Oh, well, that's probably the future programming, like, you know, we're gonna we're gonna drive a little car around and then it will know.'' Do you see that pattern? Or am I just being too futuristic?
CA Too futuristic. A couple problems. First of all, you know, it now knows that track but doesn't know every track, any track different lighting conditions? And the answer is no. So there are other techniques that would allow you to do it better. So I talked earlier about the simulator. So right now it's kind of you know, you drive around the track, it takes a little bit now have one training set, you set up the cloud to get back, you know, a model, but you know, what you'd probably like to do is lots of variations of tracks and kind of lighting, etc. And so the great thing about the simulator is that you can now run thousands and thousands of variations, you can try different tracks, different lighting, different competing cars, etc. Now you get a much more robust training set. And now you can use something called reinforcement learning. And so with reinforcement learning, so before we were talking about behavioral cloning, which is you show it what it should do. With reinforcement learning, you give it some criteria, like stay on the track, you know, we'll reward you for staying on the track, if you go off the track will punish you. And that allows you to have a much more robust model, which could be used on maybe any track, it's only possible to train in a simulator, because it's so time consuming running thousands of iterations. But now we have a simulator. So we're seeing reinforcement learning cars are now becoming the winners and most of our races.
SC Yeah, that's great. One thing I've observed and I don't know, so I've gotten involved in FIRST Robotics a bit. And one thing I've observed about hardware programming and just these open source hardware environments, is it really attracts a group of people that is very unlike what you see often in software, and it ends up being a pretty diverse crowd. And you know, you don't, you're not walking into long men's room line at an open source conference. Do you see that in your groups as well?
CA Totally. I know exactly what you're saying. And you know, I used to go to the first events as well. So the great thing about physical programming and physical, you know, objects like, like robots is that, you know, there's something for everybody, there's the mechanical bits for people who really into the cars, you find you can do that. There's the electric, you know, electronics bit. So people really into the, you know, the sensors, boards, there's the computer science bits. And then actually, in FIRST robotics is, you know, there's also the notion of teams and competition, but some of the FIRST Robotics elements is actually are actually manually done. So you have the notion of drivers, and you know, it from a gender perspective, they tend to be quite balanced. You know, typically what you get is a division of labor, you know, somebody is going to, the nerd is going to do the programming, the kid who like loves burning sauder is going to do the electronics, the ones that good with screwdrivers, do the mechanics, and you know, the ones who are like, you know, super athlete competing types, and maybe it will be the driver, and it is super collaborative, and and fun.
SC Yeah, the first time I went, and I saw all the different kids excited about programming, I had to like, go in the bathroom and cry. These poor kids, like this judge ladies here, she's just crying in the bathroom. [Sara laughs] She'll be out soon. So it's great. But yeah, it's really, it's really inspiring to see that stuff. And I always get really excited for this next generation seeing that.
PF You were crying because you're inspired or because you saw a lifetime of disappointment ahead of them? [Sara laughs]
SC A little bit of both, it was a mix.
CA I'm just gonna say, one of the one of the challenges we had with FIRST, and you may find that as well is that, you know, there's the manual element. And then there's the autonomous element. And the autonomous element requires sensors, and programming, etc. It turns out, it was really hard to get the kids to really do autonomy right. So like, what they would do is they would program their like robot to like, go forward, 10 seconds turn, right 10 seconds, a lot of this kind of, you know, pre baked behavior, rather than, you know, go forward until your sensor detects a wall. And then, you know, you interpret that and, and so we found that the true autonomy, the kids and I speak, probably for my own kids are pretty lazy. If you give them a choice between sort of, you know, pre baking some procedure versus actually, you know, really pulling sensors and writing PIDs, that they'll go for the pre baking. Did you find that as well?
SC Yeah, I did. That's funny that you say that I saw a lot of because for those of you who don't know, in FIRST competitions, usually a team has maybe like 10 seconds or X number of seconds in the beginning to do an autonomous section, then it moves to them controlling their devices. And yeah, I saw a lot of phoning it in, I saw a lot of robots that like move five steps forward, and then the left and then grabbed at nothing. [Sara laughs]
PF Well, I mean, I think kids are just incredibly good at traversing a graph in their head and going like, ''I want to do nothing and get the most fun in result,'' right. And it's just, you get to tell them like, ''no, this is a wonderful lesson for you, you're going to have to do something that's kind of excruciating, complicated over and over again.''
CA This comes full circle, because DJI that we were talking about is the drone maker has now gotten into autonomous cars as well, they have something called Robo Master. I think that Robo Master competition. It's huge in China. And they now have this vehicle, small, you know, kind of Robo car sized one. And they have two versions, one of them has a gun, like literally shoots these like little pellets on top. And then you battle when they have to autonomously sort of seek out the other tanks, if you will, and fire these pellets at them. And then the other one has this like arm, this gripper thing. And it's just like, you know, it's like, like, Sara, you were saying with the parrots. Now you have DJI is the same thing. It's got an SDK, it's got a mobile app, you can program it, it's actually huge in China right now it's like basically bigger than FIRST. And it's a little expensive, I think, they, you know, the vehicle, but it's got you know, computer vision, deep learning, you know, that works just like a drone with wheels, and also these Omni wheels. So it can go sideways, forward, you know, any direction, super cool.
PF Play this out a little bit for us. So you get involved in drones. And you know, it's the mid 2000s. And now there's government standardization efforts. And drones are really kind of part of culture. You can buy them in Target. And now we're early days on autonomous self driving fun cars, like where do you think this is headed? Is that the same path? Is this going to stay kind of like a learning playing thing? Or like where in your brain are we gonna go?
CA Cars are, they carry people. I mean, we generally try to stay away from carrying people. So the drones don't carry people. So no one's ever been killed. It's safe, because no one's flying on board.
PF You can sleep at night, as a result. It's really good.
CA Exactly, you know, cars almost by definition, you know, should be it should be caring people. And the reason we did this was I mean, look, the question is when you've got like a, you know, Wei mo and a Tesla, what, what do we possibly doing here that could be adding, you know, adding to the corpus of knowledge out there? And the answer is that the history of car innovation has always been through racing, you know, you know, Lamont, you know, Grand Prix, you know, formula, you know, Formula One, all that stuff, and till we got to self driving cars. And you know, by and large, these car companies are not racing and not racing autonomously, and they're not doing it for a number of reasons. Number one, it would be embarrassing to crash, you know, they're trying not to crash. These cars are expensive, and they're basically focusing on safety rather than performance. And we thought, well, you know, why don't we focus on performance rather than safety because we have really small cars and crashing is part of the fun. So we believe that we're actually innovating in an area that the self driving cars are not, which is super agile, nimble, you know, aggressive driving, as opposed to safe and conservative driving. And as a result, we may find techniques to be safe by being nimble. In other words, you know, when you're about to crash, there's two ways around it, you can just slam on the brakes, or you can sort of, you know, definitely dodge and get around it as you would in a racing context. And that's, that's kind of what we're focused on. And may that may have utility for full size cars in the future. The important thing that was that we not build companies out of this one, instead of what we build is people. And you know, so if you want to become a self driving car engineer, you can either go to Carnegie Mellon, or Stanford and you know, get a PhD, or you can, you know, go to donkeycar.com and start the simulator and you're gonna learn and so I think what we're doing is we're growing a much bigger, you know, population of people who have something to contribute to this industry, I mean, ultimately get jobs in this industry.
BP So Chris, usually, at the end of the episode, I read out a lifeboat badge, which is somebody who came in and answered your question that had a negative score on Stack Overflow, got it up to a positive score, and helped to spread some knowledge. But I figured this week, we'll just think a little special. So I just put DIY drones into the Stack Exchange search and I came with a couple of good ones here. There's electrical engineering, ''I want to make a UAV but inspired by the guys at DIY drones.'' There's an Arduino thing here, ''Arduino serial timeout of her shovel rights'' but the most important one is from our gardening and landscaping Stack Exchange ''how to properly seed bomb a particular area with drones.'' So if you're interested in planting from the air, we've got some some ideas here on our gardening Stack Exchange.
CA By the way, it is possible though, there's a lot of tree replanting happening right now with drones. The seed bombs are a thing.
BP Yeah, seed bombs are the thing. reforestation. Alright, I'm Ben Popper, Director of Content here at Stack Overflow. You can always find me @BenPopper on Twitter.
SC I'm Sara Chipps, Director of Community here at Stack Overflow. You can find me at @SaraJo on GitHub. And check out my friend Jeff's Kickstarter. It's bitly.com/bookskickstarter.
PF I'm Paul Ford, friend of Stack Overflow. You can find me at my company Postlight.com Check us out.
CA And I'm Chris Anderson. This has been a lot of fun. The best way to follow us at DIY Robocars is DIYrobocars.com or go straight to donkeycar.com and build your own.
BP Very cool, we'll put it in the show notes.