So hear me out. What if over the summer I code a neural network & machine learning algorithm for next years game. Do you guys think that would be a good idea? Do yall think it would be better than human drivers or even work? Do yall think its even possible? I mean I know the basics of how a neural network works and decides what to do but do yall think it would be feasible or that the brain would even be able to run it? I feel like if I could get it to work properly it might be better than human drivers. Do yall think I should even try it, if so any advice on how I could make it work properly with the brain still able to run it?
Sounds like you’re interested in VEX AI!
I have heard of many people using neural networks for autonomous. Though I have not seen them In actual competitions. It has been talked about extensively in other threads.
It can be a fun experiment for autonomous, though for most cases simple PID and odometry works better. I don’t believe it would be very viable for driver control. There are just too many variables to consider. Neural networks are powerful, but not more powerful than a good driver.
You should do it, I have no clue how you would, but it would be fun
Ima start coding it now ill report back in about a week with my progress and if I’ve given up yet.
I personally believe that with enough training the neural network may be able to beat even the best drivers. For example in chess not even Magnus Carlson( The current highest ranked chess player in the world) cant even beat the chess AI on lichess when turned to the highest level. Now while driving a VEX robot & chess are 2 different things I still believe that a well made & well made neural network could beat even the best drivers. However I also believe that a neural network powerful enough to do so may require more processing power than the VEX V5 brain has.
Chess and driving a robot cannot be further apart. Chess works well for neural networks because the AI does not need to look at much to decide the next move. It is simply pieces, their locations, and where they should be moved. A driver however has to pay attention to 4 different robots moving around completely independently and respond to each of them. The amount of inputs a neural network would need to properly drive is beyond current VexV5 capabilities.
Ima start by seeing if I can even code one that just drives towards certain colors.
THATS WHAT IM SAYING MAN. now I just have to figure out how to code it.
The main problems are going to be gathering enough information, and having the processing power to process it. It’s simply not feasible for a full nueral network controller robot in normal vex.
Vex AI has the solutions to these problems. You can use advanced sensor like a depth camera and have access to more computing power through a Jetson Nano. This is a great idea for vex AI, but I don’t see anyway to make this work in normal highschool vex.
Here’s a typical VEX AI match in worlds…
half of the time the robots are not moving, and most of the time i am not even sure if the robots bothered to see what’s their opponents doing (and react to it accordingly).
Yeah my main concern is just the brain not having enough processing power to run it or if I can optimizing it enough to have the brain able to run it. I do hope that I can optimize it enough for the brain to be able to run it but that may not be possible while having the neural network powerful enough to actualy react to its environment intelligently. It might not be possible but thats what im going to try to find out if I can evel learn how to code a neural network with blocks because I dont know how to code C++.
I mainly meant using it against human drivers in like VEX V5 competitions as kind of a hypothetical and something I’m going to try to do. Also im not really interested in VEX AI because thats AI v AI but i want to see if I can make one that can win AI v Driver.
ai takes a lot of processing power. luckily, they have a kit with just that much extra power.
Just note… that is not legal for the regular V5RC competition.
One thing that I would say is, chess, while it may not seem true, is incredibly simple. (At least for a computer) there is a finite amount of moves, and the game ends. For driving a vex robot, the same can not be said, there is a finite amount of actions you can do, but the series of them changes your outcome heavily. I caution you, this will be very, very hard. But I congratulate you for trying a incredible task, Good luck!
I coded something that should be able to chase certain colors. But since I’m trying to code a neural network; how does a neuron in a neural network even process the input information & decide the output? I know like, when a neuron sends out its output it sends it to all neurons in the next layer via connections & then on each of the connections the output of the neuron is multiplied by the weight of the connection, but could anybody explain what happens after that?
I am now beginning to realize how difficult this is going to be and the fact that I will probably need thousands of variables for this.
You will need more than thousands. AlphaZero has more than 64 million parameters. If you truly want a neural network capable of high-level driving, you will most likely need hundreds of thousands of parameters and thousands of inputs. I don’t believe that block code is powerful enough to accomplish this.
It could possibly be done with python using external libraries, but would most likely have to be done with c++ or rust. As other people on this thread have said, even the best Vex AI teams using extremely complex models cannot compete against simple driving. I’m not trying to discourage you from using AI in VexV5. Plenty of teams have experimented with neural networks for autonomous, and have reported it to be a fun experience.
If you want to learn more about neural networks, I would recommend the book Neural Networks from Scratch in Python: https://nnfs.io/