 Hello, I'm Nico, a software engineer from the company called AdaCorp. We have been learning and training tools for the software development, in particular with the Ada and Spark programming. Today I want to talk about the OPEX project that we worked on the last year. OPEX thanks to our open platform for the news vehicle. That's quite a big and ambitious name to say. I will show you what's really behind the OPEX project. To begin with, I will show a short video demo of what the platform is capable of. To give you a little bit of context, what you will see is this car over here that we developed. On top of it, there will be this module, which is an open-end view camera. It's just a microcontroller with a small camera module. The camera will run a line following a door here, and it will drive the data. I will show you how it works. I will show you a quick demo of what the platform is capable of. There are a few mistakes from me on this demo. First, the camera is really low, so it's difficult to have a good view of the track. The next is not a wide angle, so the view is really restricted. But still, it's working quite reliably. As you can see, there's a lot of wobble. I'm a software engineer, but the control engineer, so my TID look was not really well configured. The idea of this project comes from various open vehicle competitions that we saw starting a few years ago. This one is from Audi, so you can see the few little Audi cars that they provide. They provide this car to students, and they ask them to implement autonomous driving features on the body. At the end of the year, they have a small competition between the different teams. This is more like the same principle, this one is like the one from the Kawaoka. There are also initiatives in the open source and some more obvious communities. This one is from NAPI, which is quite interesting. You can actually level the website, you submit a piece of code, and they will put it in the robots and have it run for you, so you can participate from distance. This is a very well-built car, I think. It's a good data meter in San Francisco, I think, every month. And they just gather to play with other cars and these kinds of stuff, so they have a small track, and they try to test the new algorithm for that. So really, the best project is inspired by those competitions. And what we wanted to do is to develop the platform. So you have to develop a video that I showed you. You have to develop the advanced driver assistance system, which will control some of the features of the car, maybe the region of evidence, this kind of thing. And then, we do not need an idea of a pilot. We want to export an interface for obese students to try to actually use that platform to make their own instruments. So why did we do this project? There are two main topics. First is, as I said, as a platform for students, researchers, obese, to use and play with this. And also, from the car company, we use it as a demonstrator to show some of our technologies. And especially at trade shows, where there are a lot of people going around and a lot of booths, which is nice to have an update like this to demonstrate a practical example of what we can do with our teams. So let's look a little bit at the hardware. The requirements of the hardware are mainly those three. So capable of addressing the classical challenge of autonomous vehicles or lay following, collision evidence, and autonomous parking. We want the platform to be affordable. And we want it to be easy to buy or build. So if it's not available in the store, it should be easy to make. The main components of the design are those months when we have a microcontroller on the part of the system. We have a use module to be able to remote control the car when it's not in autonomous life. We have an IEU for a gyroscope accelerator. We have some range installed that can detect objects or obstacles in front and behind the car. So it will give you a descent. Of course, we need some battery and some power control, motors and several motors to control the steering. So one of the main ideas from the design is to use PCV as the frame of the car. I saw that I knew I, somebody tried it, and it didn't do the project to the end. So it was not really finished. So I inspired from this idea, I designed this small wall. What's really nice here is that PCVs, those days, are really cheap to manufacture. And it's really nice to have all the wires from the sensors to the microcontroller. Everything in the PCVs, so you don't have many, many wires on your vehicle. Next design choice is to use 3D printer parts. I'm also inspired by, I don't know if you would know about the OpenSC community, and the guy called Daniel Nore. He's doing a lot of nice vehicles and we're using 3D printing. So some of the parts of the OBS car are made that way. So this is the first prototype. So in the PCVs, you can see here, some 3D printing wheels, we even have the flexible material from the tires and the sensor here. So when we looked at the first prototype, regarding the different requirements for the hardware, it was kind of hard to see the changes because for the bone, and the movement, and that kind of thing. Unfortunately, it was not really easy to buy or build. Not easy to buy because we are software companies and we are not really used to manufacture and distribute this kind of hardware, so it was not really on the plan for us. And it was not easy to build because of all those small components like the microcontroller and the IEU, which you really need some advanced soldering skills to assemble the product. So we had to find the solution. And this is what we came up with. So don't be too excited, okay? We are not making a flight now. The idea here is just to take this off-the-shelf nano drone to show the pretty fly. We take off the mount and we plug this drone on the top. What we get from this is that on the pretty fly, we already have the microcontroller, we already have the IEU, so everything is done for us. What's left on the cart is really easy to assemble. So this is the next version. It's not really the last version. Those wires are not here anymore. It's not being... So as you can see, we have the drone here, the battery, the filter... And so all the hardware for the page was developed with the open source software. So I think it's a nice example of what you can do with open source. So for the PCB, we use the KDAB and for the 3D model, we use the KDAB. The hardware itself is available on GitHub and we use it under the same open hardware basis. So this is quite nice of working. So rendering from the KDAB. Okay, let's switch to the software side now. So this is the overview of the software architecture. So at the heart of the system, we have what we call the shared value and parameter database. The idea that all the sensor values or the system values are stored in this module to be able to give access to the pilot review everything from the system. Including the pilot will write values in here that the advanced driver assistance system will use to control them. So we have some sensors of the position. We plan to have... So SLIN is an algorithm to create a map of your environments. I put a question mark because it's not done yet. And the presentation as well. So as I said after the values of the sensor and the pilot are written to the database the ADAS system will take those values and use that to control them. So now if we have a look at the... This is more like zooming on this area here. So as I said the idea for this project is not really to make the autonomous driving part. But it will allow you guys to make something out of it. And so that's what I try to explain here. So basically we have an interface that we define. You may insert your photo files you will get the data from the sensors the data statutes, etc. And you will send you will send commands to control the data. And this is exactly what I did in the demo that we saw at the beginning. So in this case the apparently camera that I have here is the autopilot. And it's sending commands to the database platform. On the apparently camera you have the computer vision algorithm with the data line the DPI loop, etc. And so this one is running by then but you can use the Raspberry Pi for instance you can keep on the call and use the same communication to control the call virtually any hardware to find the job. So some of the tools that I'm going to use for this project so as I said I work for AIDA part so we use the AIDA and Spark programming languages. Also we do some of the code for the remote control. We have an employee who we wrote the flight controller for this drone so that's part of the code that we will use which is in the part sharing part. We use this project which is a AIDA project that provides a driver for microcontrollers like CN32F4 we are support for the RISC-5 High 5.1 we are so that's for the drivers so the certificate is the flight controller that we mentioned and we also use some of our tools so NetProof is a tool that we run the formal proof analysis on this part with it and we use other tools like NetProof to compute the source coverage on some of the modules. Now the cost of the platform so as I said the reason to change the design was to make it more simple to be in the platform unfortunately the side effect is that the cost is quite big so this is as I said it's really cheap to have made that then manufactured nowadays and you can get 10 of them for $50 or less and that's if you get the most expensive version the other components are all of the shelf parts from the Apollo Robotics Online Store so we have some motors or a few screws and nuts battery etc I think the most expensive in here are the range sensor because they are 13€ and there are 5 of them and then you have the price of a pretty high which is 1.80 but of course you still have the ability to have a nano drone which is pretty cool so in the end we have $380 the difference is that it's quite expensive it's pretty good so now what can you do with it the problem is the most important part so yeah the idea is that this platform is open for everybody to experiment with driving and we try to make it as easy as possible to build if you have access to a 3D printer you should be able to assemble the easy instruction on the interpreter to assemble the department what are the potential improvements so on the hardware side we would really like to have controllers on the motors to be able to know the speed unfortunately this is not really easy to do on such a small I didn't mention that I think it's a 1.80 scale if you are here of course you can change the PCB because I used a crazy flying nano drone but if you want to change the PCB make it compatible with your favorite microcontroller like the TZ as we know on the hardware side on the software side so there are two motors on the board one for each wheel so they are independent and in theory it would be nice to be able to control them independently to do the active differential so giving more power to one wheel to improve the cornering the terminal this is not done yet and the sensor so we have drivers and we have a sensor on board that we actually don't use them so that's it for my presentation we take the question right now what I really want to know is how are you going to change the platform and how are you going to build it why are we using microcontroller instead of doing something more powerful and potentially less expensive like so we use that design because we know the crazy flying nano drone we know this microcontroller as I said the platform is flexible and you have the design fine so it's completely possible to change it very clearly there's no reason other than the platform that we know that's what the the question is what is the ADA ADA's layer does right now right now there's not a lot of stuff in it it was supposed to be it was supposed to implement the auto-braking so when there's a stacker in front brake at home before hitting it and as I said we did not view the sensor yet so that's not in the menu so far we have not that much yet what we do have is a monitor that will stop the car if there's no remotination when you are driving it with the Trimation Bluetooth that you can drive it with your smartphone using this application the NanoDraw so when you lose the connection the ADA will stop the car so the question is why did we use the NanoDraw instead of other boards with the same sensor so I guess the answer is exactly the same as for your question that's the platform that we know we already developed the flight controller for it so we already had all the drivers the software to run it so yeah because there are no better resonance but as I said you can switch for anything so that was on the originally on the drone part so that was as I mentioned the Anthony who did this I think it proved that we have sensor runtime on the some of the different devices so we can use them and that we will use for the radar and if you are interested by this aspect in particular on the ADA platform there is an article about the drone and the software that we developed if you are interested by this aspect in particular I believe so far I don't think any of our doings as I said is not free from our business maybe if for instance the people that make the drone are interested we take most of the parts from the drone maybe there will be interesting I will try to contact a few people like that but really you don't if you too easy to have a PCB I don't know if you already know something like this once you have a design time it's really easy then everything else you can buy on the web store but yeah it will be great for other people the price that I showed you on the website that I use the service that I use you always have to order 10 yeah that's you have at least 50 dollars maybe there are cheaper services