Build Your Own Arduino Neural Network Robot - Complete How-To!
Vložit
- čas přidán 27. 07. 2019
- I posted this series to the Make channel 2 years ago. Here I compiled the 3 parts together and posted them here. If you have already seen it there, feel free to skip! Timestamps below to skip between parts.
Skip ahead
Part 1: Prototype and Design - 00:30
Part 2: Soldering and Assembly - 08:33
Part 3: Arduino Firmware and Neural Networks - 22:55
#NeuralNetwork #Arduino #TBT
Support my Free Open Source Projects by becoming joining the Patreon! - bit.ly/seanpatreon
GitHub: github.com/IdleHandsProject/m...
HackADay.io: hackaday.io/idlehandsdev
Instructables: www.instructables.com/member/...
PCBWay Affiliate Link(Get $5): bit.ly/2yvyB26
Some Tools(Amazon Affiliate):
Soldering Iron Hakko FX888D - amzn.to/2inegFS
ESD Safe Tweezers - amzn.to/2x7r4mj
Rework Station - amzn.to/2xRFZFJ
Power Supply - amzn.to/2yUD0fM
Oscilloscope - amzn.to/2xQVJnt
3D Printer - ban.ggood.vip/70s5
Tech Instagram: / idlehandsdev
Website: Idlehandsdev.com
Twitter: / idlehandsdev
Instrumentals Produced By Chuki
/ chukimusic
Camera: Canon T2i
Camera 2: Canon S120
Lens 1: Sigma 30mm Art F1.4
Lens 2: Rokinon 14mm F2.8
Mic 1: Rode Videomic Pro
Mic 2: Rode SmartLav+ - Věda a technologie
I really enjoyed the series back then, thanks for posting it compiled!
Thanks!
@@SeanHodgins
How many synthetic neurons does your robot's computer attempt to model?
I think you are natural born teacher. The one that students will remember forever. Wish you good luck with your passions!
This was an absolute joy to watch. Seriously, thank you!!
Thank you so much!! I have been so confused about how to do machine learning on Arduino. You just cleared a lot of things to me. Thank you again.
What you do is what i want to be and be able to do with my life. U are an inspiration. Its amazing man.
Glad you shared it after all. Cheers!
neural nets and arduino i never thought they were compatable you taught me something new and i am so grateful to you thanks a bunch
Your content is simply LIT. Keep up the awesome work!
Thanks for taking the time to do this.
We missed your sweet projects♡
Thank you, working on being more consistent with my projects. It has been a busy year!
Thanks for this. I really enjoy your stuff. The little detail about the solder wicking and keeping the flux apart is also a great tip. Its important for me to say this so Here I go.. You have made it so I can become a better maker and understand what others are doing, which seems like always ahead of everyone else. As we all move in the same direction we all have a common path to follow because of you and others. Thank You.
The tips you give while working are really helpful! Thanks for your work..
showing the loss on that tiny screen makes my day. Good job.
Thanks
I watched the series Good job I will subscribe!
Quite an interesting project! If I understood it correctly, you could have pre-trained on your computer and then uploaded the network to the Arduino, since the training set is predefined.
Arduino neural network training looks so cool!
WOW! THIS IS exactly what i want to do with a drone. I am SO looking forward to this, i'm pretty ok with understanding how arduino and i2c and spi communication works but haven't done any interfacing with more powerful chips :D
👏👏👏👏👏👏 Nice.
This is what I have been looking for in a long period.
Awesome! Thanks for sharing!!
very well-made video. I am starting to learn ML on embedded platform but haven't had a project in mind
I liked how everytime you did "ARDUINO BASED
NEURAL
NETWORK
ROBOT"
Hi Sean! Good to see you back at it. Also great work on the “bleeding” machines you built with/for Mark Rober!
I spent most of the video trying to figure out how you would implement a machine learning algorithm on this chip to accomplish something with the inputs of the light sensors.
It looks like this is an implementation of a SVM, support vector machine. Is that correct? The fact that you’re giving it edge/max cases to have it figure out what should happen in between feels like that’s what happening.
This isn't an SVM. They are mostly used for classification and isolating data and they make a hard boundary edge that means its either inside the boundary, or outside the boundary. Black or White, 0 or 1. In this example we have a fluid change so the motors output can vary from 0 to 1, instead of being a hard 0 or 1. I may have created a bit of confusion when I use the term extremes, but its not the same as providing data points on the boundary of an SVM to train it better. Its giving a set of basic instructions that have to work, and from there the NN will fill in the blanks of whats missing.
First video of yours I’ve ever watched and I’m so impressed I was very into electronics and programming when starting when I was in 6th grade until sophomore year of high school when unfortunately I let drugs take a hold of my life and drag me away from what I realized my true passion was and I am now getting back into it at 20 years old and I’m starting with a project that would of been a bit out of my reach when I was at my prime and this video truly helped me understand what has changed and reminded me how straight forward this can be if you just keep a level head it’s all rather straight forward and hoping to make the leap from hand soldered protoboards to custom made pcbs and solder paste. I taught other kids electronics in high school and your teaching styler is so perfect
Thank you. this was a really enjoyable video. Good job
Great work. Amazing. Keep up the good work.
fun project, great video!
Awesome project bro!
Thanks for the video!!
My god i love you man thanks for sharing you make me want to start my own channel
So you've written an algorithm and made neural network learn its behavior. Nice
That was an awesome tutorial! Thank you so much.
You're very welcome!
I love your channel ty for the cool stuff
Thanks! You inspire me !
Nice video!! Thanks for all the stuff you have shared!
You are very hard-working, best wishes from spain!
Hello, Really nice work.
I am currently student in a french engineering school for a formation in A.I. and I'm currently working in group on a autonomous drone (DJI TELLO EDU).
We particularly don't understand how to apply neural network (with Python language) to control its navigation.
The objectives is to approach to a mobile platform (like a military airplane or helicopter landing on an aircraft carrier) by using its own camera.
Without Neural Network, we managed to approach and to align the drone to the objective. But, that is not really stable when it's going more and more closed to the objective. We think that using PID controller or Neural Network may help. We think that the inputs are :
- Center point of the objective ==> useful for vertically (up/down) and radially (clockwise/ccw) aligning the drone to the camera
- Length difference between two vertical lines ==> for lateral translation (left or right) [ex : if left vertical line is shorter that the opposite one, then translate left)
- Mean of the lengths of these two vertical lines ==> for axial translation (forward/backward) [ex : if the length is short then go forward]
I hope you see what I mean. I currently don't find explicit document and example of python script. Do you have suggestions? Thank you :)
Great video!
Thank you!
Well done!
Very good video 👍
Welcome back!
super cool. loved it
Thanks!
I really like that snap You do
Nice video, thanks! Which software do you use to mold it?
Great work! Just subscribed.
Please get your workbench lighted up.
Thank you for the video
very inspiring
Great Video, I am just getting started with robotics, been trying to figure out which is best for a multi-function robot, Arduino or Raspberry
Hi!! It's really good what you've done in the video. I have a doubt, if you do not bother yourself to answer... The layers of the neural network is made of kind of metal? How the "metal" (or whatever other material) connects between each other?
Incredible Chanel
So this could be (in theory) adapted for 4 ultrasonic sensors on a car, where 2 are facing forward and two diagonally left and right forward.. just to avoid walls 🤔🙀
I like that content! I'm fully new to NN
How about modifying the code to have your robot become light seeking - chasing the flashlight 🔦. Great video by the way !
I'm only 10 seconds in but I just had an old school Weezie Waiter video flashback. I'm about to go back and watch the rest of the video hoping you punch an Eagle.
please, make more content about machine learning/deep learning on end devices, it's really interesting!
It is one of my main areas of interest! I will try and come up with more hardware related ML stuff.
@@SeanHodgins i think that one interesting use of ml and dl, is sensor fusion
@@tomasallegrini2503 I love the idea, I've had something kicking around in my head about that topic for a long time. But it would be a big expensive project. I'm working on it though.
I don't understand why you would want the Arduino to train it but this is very entertaining
Hi! Interesting video. Would the robot need to be retrained after switching it OFF? Does it save to the EEPROM?
Manually implemented back propagation on an Arduino.... And purposely (nearly) overfitting the model... For the purpose of not having to map your own input / output.
I am not sure whether to laugh, or cry... This an ultimate lazy use of technology... and it works really well.
Awesome video, this was great to watch.
what is communicating with you in the geocaching render?
Thank you for this great channel
This is nuts
Sean Hodgins: check out this Arduino neural net robot tutorial...
The Terminator : My CPU is a neural-net processor; a learning computer. The more contact I have with humans, the more I learn.
i was thinking making the same robot but training a bit different and couldn't do. what i was trying to do was something like this: get light from sensors and do completely random stuff with motors. then if it caused sum of light to go down keep doing it with randomness added ( mutation ). if it caused to rise sum of light just don't do it another time. couldn't make it work because as you guess i'm pretty new to neural network. my problem was that it couldn't learn anything, just was doing random stuff all the time. i couldn't compare new light readings and start learning with it because it was now trying to figure out what to do in that light conditions. i tried to stop motion while getting new readings and training but now it was just stopped and sometimes moved. can you help me make something like it? i want to make it walk continuously and also learn as it goes.
You should update this using the new edge computing devices that can run Tensor Flow lite.
A voice activated robot that doesn't need any cloud services.
Not a bad idea. I want to make a simple and small RPi robot, and I think you can use TensorFlow on RPi.
Is there a good series of videos that explain the process of making your own board like in this video? For beginners
I was working on one for my other channel, but i decided to redo it, as i didnt film it in an easy way to edit.
Just look up eagle or kicad tutorials.
Eagle is free as long as its personal use, kicad is free for both, i prefer eagle though, as it has a link with fusion360, and if you want to build stuff like cases and parts around your board, its the way to go.
good project
@SeanHodgins Drones, try to make drones move as an organised swarm, yest capable of individual decision making, for example going through an obstacle course....that would be interesting
Hey Sean...what CAD software do you use?
Where can i learn how to create a electronic design.. like ive watched videos and even taken a course but tbh i have no clue for example where to put resistors or even how tf to use a capacitor
Great video! But please look after your posture, that chair and laptop combination didn't look too good :D
Thanks...
I don't understand how the robot was trained when all you did was let it sit there on the desk in the same amount of light. Was the nn just looking for an error below a certain point so it can safely assume the correct light level? Please explain if you can
The robot was given extremes in the programming, example, If a lot of light on the left sensor, make the left motor go full speed - If a lot of light on the top sensor, make both motors spin backwards. With a small set of instructions like this, the neural network will "fill in the gaps" and allow different behaviours that were not given in the program, like 30% light on top sensor and 45% light on the right sensor will make it drive backwards and to the left. We never entered that into the program, but it knew how to do it because of the training data.
@@SeanHodgins oh I see! This is a fairly new concept to me, especially on an Arduino board, thank you for explaining; that actually made a lot of sense! Keep up this content, please!!
I'd be interested to see it trained on datasets that involve examples of actually trying to move away from your light using certain thresholds until it succeeds. I think that's what most of us were expecting when we watched for 40 mins lol. This is cool though. It'd be even more interesting to see it do both. You could reuse most of the code to do that after the first stage of training that generates control mechanisms. Maybe even a third one where it has to reach an end goal without getting hit, and then use the model from all of them to optimize all of it.
At that point turn on a laser machine to torture it and see what happens. Pray to roko's basilisk for forgiveness afterwards. It's basically one of it's children.
@@steve_jabz What do you mean by certain thresholds? Not sure that sounds like a neural network. Do you have an example? While I agree that would be cool, are you sure you're not thinking of genetic algorithms? You can use them in combination with neural networks, but most neural networks require a set of data prior like what I've shown here. You're just mapping a set of values to another set of values. You could also be thinking of cognitive systems, much different than neural networks, much cooler though. You would have to assign it some type of reward system, whether negative or positive to make it not want to be in the light. Both of these would be very difficult on an Arduino.
@@SeanHodgins actually, this is where I was confused (I think). I think it would be really beneficial if you could make a video explaining the two, and their differences/advantages. I think this is a common place that people (like me) get confused! Thanks again for the reply x2!!
I have the Meccano robot and I have a Intel neural network chip how would I modify it to make it a neural network robot. It is already assembled now but I wanna make it a robot that can do human tasks a lot of them.
How do you make the Meccanoid robot a neural robot that can learn everything.
Would it be possible to make it learn on the go? Like, reward it if it reduces the sum of all the sensor readings, and let it tweak the weights on each loop to try to figure out how to avoid light while moving around, without explicitly being told what to do with the motors for each situation?
Possible? Totally. But its a lot more complicated, and not necessarily a NN. I would love to make something like that. I'm working on a robot where you can place servos in random locations with different length and shaped "legs" that will just learn to walk forward without programming any specific motion. That will be similar to what you describe. The reward is how much its able to move forward each time it does a walk sequence.
Good Job !!! Brazilian here !!
I LIKE IT
did you cnc that knife you have on the table? great stuff by the way. you have talent
No haven't made any knives yet. I plan to make one at some point!
This can be used in stealth missions to avoid enemy spot light
I'm glad you posted this. I always thought it funny how Make constantly pushed Open Source/ share everything/ patent nothing philosophy while copyrighting and trademarking everything. I still liked it a lot, but they were hypocrital with intelectual property. In the end, they were owned by investors, not true believers. A lot of their stuff is now lost or hidden which is sad.
This is interesting you have given the robot the behaviour of a roach. Can you program this on most Arduino micro controllers?
Are you from Canada, where do you buy your parts? Subbed!
Yeah Canadian here. I get my parts mostly from Digikey.
@@SeanHodgins Just moved here and have been looking where to buy stuff, been traumatize by chinese stuff that dont come after waiting for months. Thank you buddy, hope to see more projects on your channel.
neural networks are kind of overkill for that, but might be useful for more complex projects
Can you help to humanoid robotics and the main doubt is about the neural network board is microprocessor or microcontroller help me to suggest me
If my hands are really shakey how am I supposed to work with Surface mounted stuff
It just looks like a curve is defined and then plotted and then used like a lookup table so interpolation can be used to pulse the motor speed. Maybe I'm missing something.
You're right. The key points are defined by the code, then the machine calculates the curve data. It is hindered to a point by the limited capabilities of the microcontroller. It becomes more complex and detailed in more powerful hardware and more complex systems
this reminds me of PID control
hey did you know there's plugins for visual studio code that make arduino dev possible there, it's a really good environment! it's called platformio it's really good :D
ESD is insidious. It can cause damage not immediately apparent, but will reduce the lifespan of the afflicted part.
True, but pretty much all of my old arduinos/pis/microcontrollers are still working, so while it can happen, its just not that scary.
OMG with the snapping...
Is there an advantage to building a neural network versus just hardcoding simple wheel turn behaviors based on the light inputs? For low of a complexity level I can't imagine there's much of a benefit.
No, this is for demonstration and learning purposes. Instead let’s imagine you want to avoid specific wavelengths of light more than others, and maybe want to go towards other wavelengths. Also some wavelengths can be too intense and some not intense enough. Also lets make it omnidirectional with a third wheel and motor. Now trying to program that would be super hard and/or impossible, where as using a neural network would make it feasible.
What programming language you used to made this robot
How can I obtain this purple triangle development board?
you can make orders on own designs of a board for a invention??? man thats amazing
Yes PCBs are so cheap now!
what's the point of training it if it isn't actually moving and getting any sort of feedback?
Hello can anybody help me understand the concept of Neural Network on Obstacle Avoidance robot
Hey, why don't you try making a DIY - Sophia ?? (That lady bot from Hanson Robotics) ??
I need one help, can you tell any useful software for making a model for the project. That software should tell me, this action will work, this action will not work, like that. But that model will be a motion model, not a picture like model.
ros.org
czcams.com/video/9U6GDonGFHw/video.html
Hey Sean! I absolutely loved this video as it has expanded my eagerness to learn more about robotics and how they can work with Artificial Intelligence to create a more efficient world. Im a second year electrical engineering student and have been trying to think of project ideas that I can work on to expand my knowledge of electronics and artificial intelligence. Apart from this awesome project did you have any other project ideas in mind for future videos?
love the vid but the process for soldering could have been simplified by a unhealthy amount of reflow flux and some leaded solder
👍
hey man, great.....
Man, we all understand you are so cute 😀, more interesting to watch on electronic 😎
nice