 All right. Thank you very much for joining me. Sorry. I'm late Took a second to find the place. I was right next to it and didn't realize it. So but here I am So I'm Jason Kreidner. I'm employee of Texas instruments, and I'm a co-founder of Beagle board org and a board member at the Beagle board org foundation which is a nonprofit and I want to talk to you today about Educational robotics and why that's critical for all of us here even if what we do has nothing to do with robotics and and really important for the future of Linux Please feel free to interrupt me and ask questions. I'll either repeat the questions or give you the microphone But I do I would love for this to be an interactive session where I actually talk about You know some of your experiences and why you feel this is important As well, or maybe you don't think And a lot of this I've tried to write turn perspective of those who might be a little bit skeptical And hope to address some of the skeptics in the audience and you know who you are, please Don't be afraid to be a target So jobs are being automated The the education really isn't there. That's the real problem set up and Really computing is very much a human endeavor It's a it's it's yes We were we were controlling the machines and we'd like to keep it that way That we're controlling the machines and not the machines controlling us But as we're raising future generations of people they need to understand how these machines Work and they need to understand how the people that create those machines work And that's what I think that thing is a really amazing about Linux itself right because it is the most collaborative software project ever on the face of the earth and That's That's why it's so important because that's why it's so important For robotics to be part of Linux and for Linux to be part of robotics So You know one of those one of those questions, it's like why do I why do I care? about You know getting jobs for the youth Why is that a problem for me personally? If they want to be ignorant and maybe a strong term I But if they if they don't want to do to better let them flip burgers right But that turns out to be a really bad answer Because because ultimately if if if they're not able to do something productive feel valuable in society and Contribute more they're ultimately going to be mooching off of us, right? They're gonna hurt our standard of living they're gonna hurt our happiness and They're gonna be a problem for each and every one of us So it's not okay to just say that you know, it's if if they can go flip burgers and You know pay the basic bills that everything is going to be be happy because They're not it's ultimately going to come come back and drain on you and guess what? That job of flipping burgers. It's going away, too That's not going to be there The robots have already taken over the manufacturing sector There's a lot going on in the political environment today where people are talking about how we're going to get those jobs back Because they went overseas And I think most of you're probably where they didn't not that many really went overseas some did But a whole lot more of them went into robots and when you know There's this trying to do a lot more in higher income places doing a lot more manufacturing higher income places It's like what's that's going to mean is the economics the economics are going to make even more of those jobs be take being taken over by robots Because you know, you don't have to take lunch breaks or smoke breaks And so it's already going on in manufacturing. It's it's dominated the the jobs sector of manufacturing and Now it's going on to service sector jobs and And so those jobs are going to be going away, too to robots So sorry, you're not going to be able to flip burgers because I've already got a robot to do that And that's that's our that's our imminent future That's that's something that's actively happening This is an example of a startup in San Francisco called momentum machines Pull a couple of images here of the burger that they created I think I find this really interesting because they're they're grinding up different meats So that you can have you can actually choose the amount of of bison versus hamburger that you want in the meat And it grinds it it slices the tomatoes it cuts up the pickles it shreds the lettuce and I Thought that was the that's the grease that's the flavor. That's the good part. So he said You know Somebody's gonna get this right right if they don't someone else will right That's like that's something that we've all learned and in our open-source software world and explorations and technology If you don't go and solve this problem, somebody else will so guess what somebody is the there's the economic shift for this and We already have you know those wages for these the service jobs going up They get high enough It's gonna be replaced by machines And it's happening So where what are they going to do? Right if they're not if they're not gonna flip burgers What are they gonna do and? There's there's there's not a lot of sectors So this is this is all that this is us us job data on the right and population growth on the left so the world's Currently growing at about 30% And there's not that many jobs that are actually growing faster than 30% right This is a list of them in the United States If you're supporting wind turbines That's number one growth job in the United States as far as percentage. It's not a huge number of jobs today, but it's growing really fast Guess what that's pretty technical right you're gonna need some some STEM education to go and do that for one It's a robot by the way It's you know very much in that that thing But a lot of this you'll see a lot of service sector jobs around medicine Supporting the population that's growing Keeping it healthy and and growing But there's you know not a tremendous amount of these these jobs Home health so so most of these are are health related with just a handful of exceptions with financial advisors and Operations research analysts and of course some technical jobs, but if you look at in terms of total numbers This is this is the top u.s. Jobs Growth and technical numbers may be hard to see some of these numbers. There's only two of them over $70,000 And there's only three of them. I think over 30 over Or four three or three of them over four sorry four of them over thirty two thousand dollars a year So most of these are low-wage Job growth So there's at around 60 plus there's nurses and Accountants That's the only that's the only that's the first two that go past 60 and then the last two are General and operations managers, so you have to you have probably have to have some sort of experience to go into management You probably have to some have some sort of illustrated skills And down here the highest paid in this list is software development All right, so this this these skills that we have it if you actually want to get paid halfway decently the mark The jobs are going to come from from software There was a nice article and wired recently about how softwares essentially the next blue collar job Right. I mean this this is if you want to get a decent living wage moving forward You're gonna you're gonna have to have programming skills and And it's a lot of the importance for us. It's like, okay, we that's what they need to do That's great. But again, why does this affect me? Why do I care? Yeah, I don't want them to be a burden, but they can go in into to nursing and And other types of health fields. It's not they don't necessarily have to go into STEM. You might think that But it's about our jobs All right, it's about what we do Because, you know, just you know, we're scarce today All right, and that's why we feel the you know, like we're in high demand But the demand for us is not necessarily all that high Because there's there's not necessarily a great understanding of What we create so if we're not actually helping to build the populations Understanding of the technology that's underlying their their life experiences. They simply won't value us So we need to make sure that they're educated so that they know That they should care about things like free and open source software All right, if they don't understand the technology, why would they care that somebody else is locking in behind a vault? They're not gonna care things like privacy and security All right, lots of people building insecure applications, you know, you're getting notifications all the time about your credit card numbers being compromised and turning over all the time and That's if there's not an appreciation for the technology that's underlying to think that happened Nobody's gonna support the investments to actually fix any of that So even though we're scarce that doesn't mean that the demand is really high and there needs to be some demand creation For these skills and so they have to understand the technology And you know, why do they even care about their ability to impact? Technology, right? They see it moving forward all around them But unless they understand what their real capabilities are for being able to address that and what's what what it requires They're simply not gonna be able to make educated choices About where to spend their time and your boss simply won't understand your value So it matters and I Kind of summarized a little bit of this and in my head is the Gandalf effect So, you know, you know Gandalf knows things He knows how to do things that the hobbits don't right Lord the reference Lord the Rings reference for all of you Just hopefully I didn't lose anybody there, but you know So he knows and nobody else does it so it's he can do magic, right? It's amazing things that that the Gandalf can do and sometimes we as an embedded Linux developers and engineers We end up looking like Gandalf and The hobbits simply don't understand our value. I think that that's a pretty lonely life I don't think that's the future that we want to paint for ourselves It's to just be just to be magicians and sorcerers You know, I think we want people to actually understand and appreciate what it is we do and I think for this this I think might touch a little bit of the the Linux audience in general, but maybe not so much here at the embedded embedded Linux conference But a lot of people might have this thought, you know, I have Plenty of challenging algorithms and stuff to do without ever touching hardware. Why do I why do I need hardware? Right, there's plenty of problems to solve and the cloud Another platforms like like mobile phones stuff where the hardware is kind of just a platform and I just just coding to it So why do I so much care about engaging with this dirty hardware stuff? It's good about my burn my fingers. I might you know my cut myself. I don't know That's that maybe that's not so much true here because you guys are embedded But I want you to ask yourself You know, what's the real impact of of what I'm creating, right? Do we need another file system? Do we need another database? You know, what are the do we need another our toss duck? You know, the I think about what the real impact is moving forward about the things that that you're you're creating And recognize that today's hardware is very much a limitation To technology and what we can do, right? We're we're you know tethered to these These devices, you know these computers and these phones and we're limited by I can only interact with one thing At a time so I have hundreds of applications on here But I can only interact with one of them because I have to go through this touchscreen Right, and then I have stuff blowing up at me I don't know why this buzzer is going off, you know, 90% of the time I have to ignore it because Every application has like one way to notify me and it can't figure out what I'm doing, right? It doesn't know I'm currently giving a presentation right now, and I'd be kind of bummed out if my phone rang I so And the hardware is a part of that right it's about if you can create the hardware that interacts with you Where you want when you want right when you walk in the room the light turns on that requires a sensor, right? You know, it's it's simple things But but but you know it requires hardware and we're not just going to get it out of our phones and our computers It's not enough And I'll emphasize this I tried to say this just about every time I talk You know when it comes to open source And and doing things that way Adams are valuable people understand when they buy Something and they hold it in their hands. It's tangible. They understand it had a cost to Manufacture right that somebody actually took some some goods Collected them modify them put them in some condition. They don't necessarily understand that when they have electrons, right? The freely moving that's the expectation Now we we care deeply and want to put value in those electrons because we we understand between us The value of something like Linux Right, but we also understand the value of keeping it free And keeping those electrons moving freely So, you know, when you think of well, why do I want to get my hands dirty and hardware? Just just think about that a little bit, right? So when you want to try to produce value for people They understand the value of atoms and and why You know the This is this is a perspective. I have and I I I'm constantly trying to figure out What it is that kids think today? So for me, this was very this statement was very much true a z80 any prominent speaker We're endless gobs of excitement and entertainment and everything I needed to get excited about programming All right, I mean you can you can build synthesizers and voice Just look at the first time I got some code that I cut and paste and made some voice come out of that speaker Oh my god, it was the best thing ever and That's all I needed to be excited But what kids are going out, you know when I started with computers, you know, I got the ready prompt and I started typing in You know stuff at the command and I wanted to play a game I had to type it in and understand it, right? It's just kids are just experiencing a technology in a totally different way, especially when it comes to computers So their idea of hello world, you know is halo, right? And that's probably ten years old, right? I don't know I mean, you know, we've seen some some Minecraft stuff get fun But that that's not the same like like the games and things they experienced on computer just so amazing And it'd be so hard for them to try to reproduce or under to really improve upon right? They're so intimidating the wall just looks so high to climb over right when I you know used to subscribe to radio electronics, you know you get those circuits out of there and you could put those together and you know You know in a week or two like, you know You just felt like so empowered right and you feel like you could take over the world Computers are not don't look like that to kids. That's something that we have to accept and understand Now there's some great tools out there. I love Arduino I love Blinky LED right because it's it's that it's it can be just eye-opening when somebody says, okay I've given it this instructions and it does exactly what I said it to do right And that's sort of the magic of a microcontroller world right because the only code it's running is the code that you put on it So it's almost back to the old computer days. And so Blinky LED can be very compelling and engaging But is it really empowering enough? Right is you know, I think that we have to look at what the next thing is because Blinky LED is now very pervasive We've had our juino since 2006 It's 11 years later You know, what's the next big on ramp and how do we how do we make that even even bigger? We have some great success with robots today already lots of good proof points what's first robotics and best robotics But and and they're they're kind of proving these these items out right shit because Robots themselves can be different enough from their everyday experiences to be exciting, right? It's not halo, right? It's it's something that I don't see these video games every day right robots or something New right. I maybe see him on TV or see him other places, but I don't have you know maybe you have a Roomba but You know Most for the most part you don't have a lot of robots or you don't recognize the robots in your home like your dishwasher So they're different enough to be exciting and they're simple enough to be accessible Patrick Oh, I just want to echo that I have a video of my 14-year-old son two years ago doing a first robotics competition or build and Video of him saying the day I saw that arm move up and I knew that I made the code do that was the proudest day of my life Thanks for that anecdote that was perfect Yeah, and it's simple enough that they can actually achieve that they can achieve it in you know A couple hours or less right? They can they can wire something up to a board with a driver and a battery and actually write the code to make an arm move And so it's simple enough to be accessible and it's complex enough to invest a lifetime of exploration right there were this the problem space in robotics is extreme and Nobody's been able to solve all the things that we already know robots can do right. We know they can do them But it's a small matter of coding right You know, we're not all we don't all have our flying selfie cams yet Why why not? Bill Didn't sound I just wanted to sort of add a little bit this because you and I typically come at this from a software perspective and robotics encompasses so much more my daughter was into robotics and competed in the international science fair for a number of years but When she finished and went on to college She essentially said I hate programming She's now a mechanical engineer Okay, and when she was when she was The her first job was actually designing the robot arm but she was much more interested in making the mechanics of it work and there's a lot of Stuff within robotics. That's not just mechanics not just Programming so we need to keep that in mind. Yeah, it's certainly a broad field and allows them And I try to start this with a pretty broad From the speaker. I try to start this with a pretty broad perspective, right? That it's you know, we want them to know about Linux So we want them to know about robotics and and that's not just for people that are going into engineering That is the general population. It's like reading writing and arithmetic Linux and robotics And I don't mean that as hyperbole. I think that those are that sort of basic skills and if you go into medical Fields if you go into financial fields These are still areas that impact your life And I think it's just you know be us being the kind of the knowledgeable ones, right? The keeper of the keys that we need to share that with the rest of society Hope I'm not doing too preachy, but I'm gonna try to get get going here Hello, okay, so one of the issues is Having a convenient place to go and buy these drugs. I call them drugs and the best drug Purveyor that I've found is ate a fruit In New York City a Little more freed has done a tremendous amount of good Trying to create a maker community. You buy things for me to fruit you get instructions. It's all free. I highly recommend it even your 8 10 and 12 year olds can go to eat a fruit and figure out what's going on Great great plug and I and I agree with that I would throw the some folks like spark fun and Polo Lou Sort of in that mix, but I think Lee Morris Lee Morris tutorials are particularly fantastic And we need more More support like that. That's an excellent example of somebody helping to solve the problem And anyway, so so robots, you know are We have to see that the kids see technology differently And the robots are great on rep to technology, right? That that it allows them to have that hook that just sitting in front of the computer alone Isn't right and that's that's because there's so many different ways we could think about it I keep coming back to robots is the answer That's the way we get kids into programming and And that's all cool, right, but you'll We're at a Linux conference, right? Are you preaching robots or you're preaching Linux and robots and I Confessing I'm preaching, right? So and it's Linux and robots. It's not okay. It's not enough just to have a little Arduino bot. I think that we need to try to get Linux into that equation and to get it in To get in early So here's a great example one of the easiest on-rope ramps to To robots let go mindstorms So with their latest version of the ev3 So when when they introduced the ev3 They added Linux Why did they add Linux because they realized the value of community? and and and that's and that's why right so They wanted to increase the collaboration space the ability for other people to add value Into the robots and to affect The the the tooling the the security the understanding that comes In and using robots so they did it they saw something. I'm hoping that that we can see Some of those same things So getting those eyes on it, right? See why do you need collaboration, right? You know, I think the shallow bugs and most of us subscribe to the To some of the Eric S. Raymond thoughts and you know The the bugs are shallow when you have enough eyeballs, right? And you care deeply about bugs when you're talking about security these robots are going to you know People are going to be building robots in the hundreds and they're not always going to be super skilled at every single level and not You want them to write their own networking stacks? You want them to to write their own, you know Management of you know in so many different places where where Linux takes takes care of things Probably not right. We want to get eyes on it, right? We want to give them a common code base and we want to try to help to work together to make sure that that that base is Has the eyes on it and that's a place for people to go from And tools like Linux a lot of you do things like configuration management, right? So if you're gonna put hundreds of them out there, you know How do you make sure that all these little controllers that aren't connected? You don't have some secure communication mechanism. How do you make sure that their version controlled? How do you? How do you monitor them? How do you make sure that they're all that they're all right? So and there's there's certainly a There's there's two balancing forces going on here if it's written on a microcontroller. I write it So I understand it. I know that nothing else is going to happen inside my system because all the code that it's running as mine Ignoring the fact that you're calling library functions ignoring the fact that you're calling You're relying on compilers to generate the code that's going on there ignoring so many of those things that you may or may not have some Good reason to trust But you balance that against You're running something Like Linux where you're able to to to build off of the understanding of others And and there is a trade-off But you know, I would I would say that that's very much in the balance and favor of Linux where you have Processes that you can watch those processes. You can look at all the kernel calls and you can explore everything that's going on in the system You have Debuggers that you can run in the system You there's just so many different tools For you to build upon And so many different some of the opportunities for that that I think it it really goes well beyond The did I make it or you know did somebody else and and so many people are building off of Linux? I think it gives you a very well understood starting point so Excuse me. So at the risk of kicking off a buzzword bingo here Isn't IOT and smart homes. I think of them as robots. I mean, they're just not the conventional robots that You seem to be alluding to in this talk here. I mean we're talking about sensors. We're talking about collecting all this data We're talking about security network, I mean wouldn't you I think that we Walk past the speaker. I do think we're talking about the same thing for the most part but when you're talking about from a Technology building block right because you're talking about sensors. You're talking about network connections, right? If it's IOT or smart home, it is all those things But where I'm starting in this presentation is how do you get that hook into the kids? And it's making that object run around Right, so they start with making the object run around and do physically mobile interactions And they realize well, let me just flip that problem over instead of having the robot move around I can turn that into I can build a 3d printer. I can build a laser cutter. I can build a dishwasher I can simply create a door lock I can turn the lights on off. It's it's just a I'm saying that Linux robotics is the entryway into all those skill sets And putting robots first mobile robots first I'm very happy to have the interaction. It's actually great for me because this is this has been all one of the key differences between PCs and cell phones and What's happening in Arduinos and Raspberry Pi's and Beagle boards is it allows computing to go out to the physical world so physical computing is The hook that we that is of interest to kids not sitting there with a gizmo that can only interact with pixels it's making something Sensing something and and actuating something in the physical world and and there's and there is a lot of Amazing and important problems to solve Just in the theoretical algorithm space But but again, we're talking about here is the on ramp, right? So I've been a robotics mentor now for about eight years in the high school robotics programs And when you see these kids Actually make something happen in the physical world That's the difference. I mean the IoT sensors and things of that sort We have lots of sensors on the robot, but sensors are just providing us data. It's not really something that the kid can look at I mean for instance they were really excited we had a new sensor that detect spinning axels and they were excited because They I could actually show them on the cell phone the infrared light that made it work They couldn't see it until I showed it to him on the cell phone And then once they understood that there was a physical thing that was making this counter go up It clicked so hopefully we've said it enough different ways now. It's We're all echoing each other at this point, but I mean then Linux is already there I mean when we talk about smart homes and IoT and Linux is there So it's just it's just about but Linux isn't always the choice to build robots and it's not Necessarily the focus right especially run educational robots. I think that Lego is out ahead of the curve on this first So so the the National Instruments with their their Robo Rio is also out ahead of the curve And I think you'll you know that that relationship between them and Lego is also very noticeable in that that realm But if you if you look at a lot of the tutorials that are out there that a lot of people are getting started to build robots Some of the some of the ones mentioned earlier, which are fantastic tutorials They're very much focused around microcontrollers and do not include Linux in the equation. There are some out there Most of them are very expensive the I think that It's it's it's still not at the the the affordability and accessibility level as microcontroller robotics I think that's the reason why you see so much of the microcontrollers. There's also that that theoretical concept of well I you know, it's not I didn't write the code and see it have the making that direct connection Between I wrote it and it happened. It's a little bit fuzzier when you're writing a C program running on a an operating system As opposed to a C program. It's directly bit banging a register But it's but it's not that much different than trusting your your C standard library or Your compiler tools, right? I think Linux is just one more piece in there that you you need to start with some trust But then the great thing about it is ultimately you can you could get rid of that trust you can look at the source You could understand every last bit of it But I think it's an important abstraction layer that we should have early roboticists using So that they can learn all the rest around us. They learn about Linux command lines. They learn about You know the the the open source processes, right? Not just working on code in a bubble Right, which is what you do when you write a microcontroller program that only runs on your robot, right? They're working in this this bubble I started out saying that you know computing is very much a human endeavor and that's what I want to try to Take these kids out of the idea that it's just them and the robot and put them in the Idea it's them and all the people whose software that's been created You know and that they're building on top of And all that knowledge that they're working with and the robot, right? So it's it's getting that human interaction and understanding about get repose and and you know You know configuration management and all those things that yes, they don't need that to turn the motor But it's there and the concept is there for them to learn when they're ready to move forward I work if it's super quick because I I've tried to Yeah, there's Because they're using Linux there's so many extra things that they understand that they wouldn't understand if they were just Programming on their own in a microcontroller because they're getting exposed to so much more of the software space and That's and that's the critical it doesn't have to get in their way a lot of times it can get in their way And that's what we want to prevent And that that's we'll talk a little bit more about that But you know, it's so important that It is there when they're ready to move forward, but they're not developing in a bubble So there's there's a number of different. I don't know. I'm talking into the microphone there's There's a number of different projects out there today where there's good points of collaboration for you Folks looking at trying to to make advances in the state of open-source software on Linux and robotics Ross is one that really stands out I I sometimes struggle to really you know fully grasp the importance of Ross It's something that that I don't necessarily feel like I need but I'm just not doing things at the scale That that a lot of Ross developers are The it's its most fundamental element from my observation is its ability to pass to do message passing and that's It's not debuffs, right? It's it's you know, it could do message passing between robots and synchronize things between different computers And it includes some concepts of what it's trying to communicate I think that's kind of one of the important parts of the messaging layer. It's in there is because it's it's done You know with With understanding the data type of the information that it's trying to send right so so it understands You know, I'm trying to control a motor. I'm trying to just tell the robot to go to point a to point B So there's some there's some distinguishes. It's just not arbitrary message passing There's a number of great autopilot softwares and and and flight planners and all the things that go around Deploying drones. There's even some some higher level management and simulation pieces related to some of these projects Especially like a drone code is an umbrella project Managed by the Linux Foundation And it includes a number of projects You know underneath it But that but they you know among those autopilots flight planners, but there's there's a lot more going on there RG pilots I find particularly interesting It was actually kind of it led into some of the creation of drone code itself But now I think they I think they've I don't want to get too political, but I think they've split up again Paparazzi is a good one so both so all of these are So drone code RG pilot and paparazzi are all done to run on both microcontrollers and Linux platforms And that's a that's a bit of a mixed bag in my mind But but it's it's it's definitely good that you I mean so they hit you have a common API base and the transitions across Having Linux or or not having Linux So I think they're all interesting projects to get involved in I Mentioned Lego Mindstorms Earlier, I think it's it's it's nice because you for people that don't want to get much into the mechanics You can you buy you know mechanical pieces and just start assembling them fairly quickly and the education that you build there's some good off-ramps from moving moving forward developer of EV3 dev It happens to be here. That's a project that Takes some of the base code that that was released Open source by Lego Mindstorms. It makes it all rebuildable so you can actually create the distros for the the EV3 itself and customize that distro and also target other platforms Like a Beagle bone and raspberry pi good there's also Legios, which I think we're doing Java development to there So if you're a Java guy, I think that one makes them interesting One of the most interesting sensors in the robotics world is the camera That's also for a lot of your IoT stuff. That's super interesting I just bridges so many different categories, but the open CV project is a really great one to get involved in in terms of robotics and advancing robotics, I think I've got a Any a time check seven minutes? Okay The the kernel Iio Interface is probably where a lot of the different things are going to go. There's a lot of room for opportunity In the kernel itself and particularly within the IEO subsystem to improve the state of things for robotics Yeah, I don't think that there's like a standard motor drive or like I think it I think there's a quarter Newly, there's some sort of encoder. I think that we're still we still have some work to put our hardware encoder support for the Wheel feedback and some things like that into the kernel The the kernels really behind in some of these areas relative to where people are coding and I'll talk more about that and Shameless plugs You know the big old on blue project in particular We've got a C library that I'm going to talk a little bit more about here. That's called liberal botics Cape They just kind of abstracts the the kernel in the system Beneath it and there's some some pretty glaring problems within it that I mean it's great from usability standpoint, but I think from a Embedded Linux and what we'd like to be putting out there perspective I think there's some some problems that I would like some contributions from folks in this room to help resolve To really put Linux in its proper place here So you can get some documentation off of a strawson design comm That's the the guy that designed a cape for the beagle bone Provided a library. He's a graduate student at the University of California, San Diego, and he was he's had hundreds of students Utilize this API for creating creating robots So this is pretty recently tested with you know that literally hundreds of robots of very of many different types and shapes and forms and fashions and tracked robots balancing robots flying robots You know from four from four props to eight props Anyway, lots lots of different things. It starts with some simple initialized code The thing I'll point out here is this this goes and just when it initializes some some p-threads So it starts in user space threads and then it maintains a File within the file system the process ID. So if I start up another program I do I could do kill robot essentially it's gonna it's gonna It's it's doing in user space. It's managing who's using this this broad class of peripheral So there's only one application using them I'm hoping that sends some alarms to some people right that that's all big that hardware management is being measured in user space but It is but at least it's managed right so you can have one Robotics cape library user going on a time if they're following the right API And calling initializing and calling cleanup at the end and then there's some additional state management He defines four states in there including an exiting state So that other applications can essentially notify the thing to clean to cleanly shut down And also to to notify it to pause To do so if you essentially your software kills your pause switch And then this is this is when I kind of wanted to highlight He you know, he's creating these these these user space threads And then using them registering a C function callbacks in order to get notification of when the buttons are pressed to make it really great For somebody is designing a robot But is this the you know the right way that you want to do that in the Linux kernels? Is it is it events underneath and just just some things you might want to start to get kind of thinking about But this makes it really easy for the for the roboticist to write a program and see To to adjust their states based on getting the buttons pressed DC motors similarly so instead of just you know saying okay call the PWM CIS FS entries You know, he's doing that here Actually, he's doing he's using some some some basic configuration to CIS FS and then memory maps the peripherals And user space to reduce the latency of the updates And more than that on the the big of on blue For things like the servos and ESC's those electronic speed controls for building quadcopters They typically use three-phase brushless motors and they use some sort So instead of doing that the three phase control on the beagle bone We use what most people do building quadcopters Which is use these electronic speed controllers outside and we send Pulses to essentially say how fast to turn the motors But instead of using hardware these are actually written in a micro control the the implementations are done on microcontroller on the beagle bones There's a couple of hard real-time microcontrollers just dedicated the function of generating these pulses So he's just using shared memory between the two processors to notify the To notify the other processor to generate these pulses at this pattern And it gives them some some flexibility of the different types of Patterns to generate from depending on what you're typing if you're controlling servo motors Which you're telling a motor like the servo motors one that can go from a certain degrees to a certain other degrees back and forth And you control that with a PWM signal and any SC essentially you're using a PDM to control the speed And the motors are directly providing Drive output and one of the nice things about this This this Library implementation and for somebody that's building a robots for the first time is they're all built into example applications so if I want to build a robot I Can simply connect up the motors to the pins and call a C function Not necessarily not call a C function run the application from the command line Providing command line arguments to test motors So I don't even have to create a program in order to test my ability to turn An individual motor at an individual strength or individual direction, right? I could just do that from the Linux command line And of course all the different other possible ways that you could integrate integrate that right? Same thing for things like the quadrature encoder or something so you're able to go and test all the hardware just running these These you know pre-compilates or space applications And that includes other things like reading from the the sensors on on the board right for that for the IMU For the barometer, so those are important sensors for doing things like balancing robots So I think this helps provide a framework for building a lot of different types of robots fairly quickly and easily there's nothing magic in here that keeps it tied to a You know a Beagle platform or anything like that But it also wasn't obvious that there was something else out there that was as easy as a C function call for You know turn turn motor right you know to set DC motor Set set motor right you say which number of the motor or do you say? The float and I mean there's you know, of course, there's Arduino libraries, but they're not I don't think that they're as simple as this And this is just the standard C that you compile with GCC, right? No, no no funky wrappers and It's not in C plus plus. I consider that a bonus And This is where I wanted to try to close with some action because I think I think the the the big message I came in with was like you know we need to have Linux We need we need to have robotics running on Linux And make sure that that education is going across The entire world, but I don't want to that's boiling the ocean. That's you know kind of grandiose, right? So what is something that you can walk away? as an action and Yeah, so I said the okay Get that gut feeling at these microcontroller guys, or you're just gonna go and Screw up the kernel and I mean they're memory mapping things in user space and doing crazy stupid things But you know ultimately they're not going to screw up the kernel, right? There's lieutenants process There's they submit patches that don't work. We're gonna we're gonna clean that stuff up But ultimately they need your help, right? I Don't think it's the right way to do these things and user space, right? I think you guys I think you might be able to see the value of putting the controls The common controls for robotics into the kernel Right and maintaining that I've mentioned all the great things about using Linux right eyeballs right security Coming from those eyeballs, right additional use cases, right? There's just a whole lot more ability to You know to share knowledge when you're putting it into that shared code base So IO needs more sensors You know we need to address people's perceptions in terms of if they see okay These guys if I think they have to write a Linux driver Not only is it more work because they don't understand how to do it which is not that hard to compile a Linux kernel module But you know it's you know it's there's a perception. Okay. What's the API? What's the the build process, right? It's not that hard, but we need to make sure these guys know And it seems adding too much latency, right? They're not sure where to draw the boundary, right? So you want to have a program. That's your robot But what's the what's that boundary into like do I put the balancing system where I have to have that latency between the sensor and the motor? Drive into the kernel and ultimately I don't I don't know the answer to smart people in this room Do at least when we work collaboratively on the problem So, you know that that's something I want to I want to work out, right? So how do we close that loop tightly without having to do transitions between kernel space and user space like ad nauseam? and You know, I think it's a statement of the fairs when you see this I'm really hoping this is not overly political, but What even the Linux Foundation projects are signing up to do things without Linux, right? It's just it's just it's it's it's a it should be a wake-up call for those of us that really want to make a Linux Pervasive, you know, it's why is it not a solution for these things and that should be something. It's a bit of a gut check for us I'm not questioning the decision. You know, it's nothing to do with that. It's just you know What do we what do how do we react to that as a community? So that's my conclusion, I don't know if I saved any I don't think I saved any time Well, we'll have some some demos. I'll kind of show some different things running at the showcase. That's Do we know when the showcases tonight? seven five five to seven so yeah, so come find Beagle board at the showcase and we'll do some some demos and kind of do some show fun stuff But hopefully this talk was informative and motivating. I appreciate your time and good afternoon