Це відео не доступне.
Перепрошуємо.

Machine Learning on Arduino Uno was a Good Idea

Поділитися
Вставка
  • Опубліковано 10 вер 2023
  • More about the project: indystry.cc/ml-robot/
    The journey of teaching a robot to drive autonomously on a race track!
    Tools I use:
    LIDAR: amzn.to/3sFHgwH
    Arduino Uno R4: amzn.to/46plJar
    Breadboard: amzn.to/3Rh1sPZ
    ML book: amzn.to/44Msv8P
    Standing desk: amzn.to/3PAmh7q
    Mouse: amzn.to/3EwTb2C
    Desk lamp: amzn.to/3r7JlRI
    📰More info: indystry.cc/machine-learning-...
    🛠️ Indystry: indystry.cc/
    🤖 OpenRoboticPlatform: openroboticplatform.com/
    📷 Instagram: / nikodembartnik
    ❤ Patreon: / nikodembartnik
    GitHub: github.com/NikodemBartnik/Mac...
    ✉️Business inquiries: nikodem.bartnik@gmail.com
    Subscriber count at the time of upload: 114 418

КОМЕНТАРІ • 154

  • @nikodembartnik
    @nikodembartnik  11 місяців тому +12

    More about the project: indystry.cc/ml-robot/
    Happy making!

    • @blaircox1589
      @blaircox1589 10 місяців тому

      After years of having the equipment laying around, I've finally begun to dive more into creating robots using lidar. So I'm curious, is there really machine learning involved (required) here? Or is it just saying - here are solid obstacles on either side, I need to stay N distance away from it while I travel forward.

    • @1islam1
      @1islam1 10 місяців тому

      @@blaircox1589 ⚠️ God has said in the Quran:
      🔵 { O mankind, worship your Lord, who created you and those before you, that you may become righteous - ( 2:21 )
      🔴 [He] who made for you the earth a bed [spread out] and the sky a ceiling and sent down from the sky, rain and brought forth thereby fruits as provision for you. So do not attribute to Allah equals while you know [that there is nothing similar to Him]. ( 2:22 )
      🔵 And if you are in doubt about what We have sent down upon Our Servant [Muhammad], then produce a surah the like thereof and call upon your witnesses other than Allah, if you should be truthful. ( 2:23 )
      🔴 But if you do not - and you will never be able to - then fear the Fire, whose fuel is men and stones, prepared for the disbelievers.( 2:24 )
      🔵 And give good tidings to those who believe and do righteous deeds that they will have gardens [in Paradise] beneath which rivers flow. Whenever they are provided with a provision of fruit therefrom, they will say, "This is what we were provided with before." And it is given to them in likeness. And they will have therein purified spouses, and they will abide therein eternally. ( 2:25 )
      ⚠️ Quran

    • @jongwonlee4728
      @jongwonlee4728 8 місяців тому

      can you create Tubercle + Toroidal version fan...?

  • @jeffstewart7698
    @jeffstewart7698 11 місяців тому +38

    This is really exceptional work. I love how your thought process is always generating the next possible improvement, and then you just keep pushing to refine your designs.

  • @kevinlind4640
    @kevinlind4640 10 місяців тому +6

    The most intriguing thing about this according to me is realisation that you could work leanly with data sets. Yes, within a certain dataset eg. maze (the square one for example) you want as many laps as possible, but for industrial purposes keeping the the amount of mazes down when you know what kind of mazes the robot will encounter should also avoid bloating the Arduino with unnecessary data.
    Also, truly amazing that you made a robot that could race faster by itself than you could race it manually, just by tweaking the motor speed. That goes to show what machine learning can do in terms of work optimisation, sort of like how the search function on a computer vastly outpaces any human manually searching for a document in an archive room.
    Thank you for making a video that clarifies so much with so little!

  • @sendhan6454
    @sendhan6454 11 місяців тому +34

    Haven't been doing robotics for a while and this is one of the coolest videos. I got recommended.

    • @sorryboss8550
      @sorryboss8550 10 місяців тому

      I’m trying to start bro it’s so cool. I just got my learners kit

    • @bofa722
      @bofa722 7 місяців тому

      ​@@sorryboss8550 where from

    • @sorryboss8550
      @sorryboss8550 7 місяців тому

      @@bofa722 anywhere, got mine from a store near me👍🏽

  • @matthiasneumeister5685
    @matthiasneumeister5685 8 місяців тому

    Well done! This was a very satisfying video to watch. Well explained and I totally understand the thrill of building something that actually works in the end!

  • @fireheadpet2039
    @fireheadpet2039 11 місяців тому

    Great video and content! Love how you bring us through the journey of your experiments and the tidbits of discoveries that is available oit there. BTW, little editing features like the ghosting effect really elevates your game. I must agree with other commenter, some of your voice recording suffers in quality (when in testing area, hard walls). It does not impact my opinion but, you are competing for attention against others. I hope you continue to push this project further. Maybe like an iRobot that travels throughout the house for guard duties or identify any new objects...

  • @TheSelfUnemployed
    @TheSelfUnemployed 11 місяців тому +5

    On an Arduino! I am grabbing a LIDAR module as soon as possible. Thank you for the videos.

  • @patrickjdarrow
    @patrickjdarrow 10 місяців тому +4

    Great project. The reason it was able to handle the increased speed was twofold: 1) the control dynamics were similar enough at both speeds and 2) the sampling rate was high enough that the time delta didn't have an impact on the stateless prediction model.

  • @JeromeDemers
    @JeromeDemers 11 місяців тому +2

    Really like the ghost version when comparing the speed. That was nice. Make a other one and see if you can train to pass slow robots.

  • @scaletownmodels
    @scaletownmodels 10 місяців тому +5

    Very cool. I've been programming for a little over 40 years but I've never had the time / opportunity to delve into machine learning. Closest I've gotten is using AI services for photo processing.
    Now that it can drive itself it would be an interesting progression to give it memory of where it's been, building a map of the course it travels and being able to use that to plot improved trajectories for future loops.
    Just like we're slow when traversing unfamiliar territory but with repeated trips we can anticipate and optimize our course. You should be able to borrow from tech such as CNC path processing which can optimize acceleration / deceleration for curves and apply that to steering. Just an idea.

  • @alexanderyang126
    @alexanderyang126 10 місяців тому

    Fascinating! Thanks for posting this video!

  • @needyourbrainzz7686
    @needyourbrainzz7686 11 місяців тому +1

    Very nice robot and video! ❤

  • @midnight121190
    @midnight121190 11 місяців тому +2

    “I am an algorithm I need more learning and training” ❤ cheers to you!😊

  • @donkorte
    @donkorte 11 місяців тому

    Super cool. Great job!

  • @JohnKlopp
    @JohnKlopp 10 місяців тому

    Awesome work!

  • @StormBurnX
    @StormBurnX 11 місяців тому

    Wonderful work!

  • @todddrumheller6726
    @todddrumheller6726 10 місяців тому

    Great channel, glad I found it.

  • @simonwatz4989
    @simonwatz4989 11 місяців тому

    Interesting and very inspiring! Thanks

  • @CraigHollabaugh
    @CraigHollabaugh 11 місяців тому +3

    This was awesome, congratulations!
    I've used o-rings for tires for 3D printed wheels.

  • @edgar9651
    @edgar9651 11 місяців тому

    Great work. You do already amazing things. And you are young. I wonder what you will do in a year or 5 or 10. Keep going!

  • @aimaker
    @aimaker 7 місяців тому +1

    감사합니다. 열심히 공부해 보겠습니다.

  • @ElioFernandez
    @ElioFernandez 11 місяців тому

    Un crack el Niko! Gracias por compartir tus conocimientos!!! 👏👏👏

  • @gasior529
    @gasior529 10 місяців тому +1

    Great job! It would be great to see this robot learning by itself by reinforcement learning

    • @sumitmamoria
      @sumitmamoria 10 місяців тому

      That is doable. But, a more efficient (and less fun) way of doing it would be to build a simulator. Use RL methods in a sandbox, train the model and load it into the robot and that's it!

  • @sumitmamoria
    @sumitmamoria 10 місяців тому

    Nice Work! It would be interesting to see if one could "simulate" the movements for a rectangular track, instead of training on the actual path. I would guess, it would lead to comparable results. If yes, then the advantage with simulation is that one can design more complex paths without actually building them - making the training process very efficient and robust.

  • @OtakuRealist
    @OtakuRealist 7 місяців тому

    Amazing. I like what you're up to. Keep it up!

  • @herbertkleber5069
    @herbertkleber5069 8 місяців тому +1

    Great work, super cool!

  • @majdthabit4976
    @majdthabit4976 10 місяців тому

    wonderfull thank you for sharing and good luck

  • @benjaminverbeek4232
    @benjaminverbeek4232 10 місяців тому +1

    Super impressive! :o

  • @jusufrrustaj496
    @jusufrrustaj496 9 місяців тому

    Well done!

  • @tvinay9979
    @tvinay9979 8 місяців тому

    Good video for robotic knowledge

  • @calinmoldoveanu6858
    @calinmoldoveanu6858 10 місяців тому

    amazing, very good!!! i like you project.

  • @sarath.p.l8367
    @sarath.p.l8367 10 місяців тому

    Nice Work

  • @spsomnath
    @spsomnath 10 місяців тому

    Love that how it performed

  • @PaulDominguez
    @PaulDominguez 11 місяців тому

    This awesome. I want to learn machine learning more than every

  • @abdullaal-bader46
    @abdullaal-bader46 10 місяців тому

    You are amazing, keep up

  • @jhoo58
    @jhoo58 8 місяців тому +1

    Dude this is so cool!!!

  • @wizrom3046
    @wizrom3046 10 місяців тому

    Yery impressive!
    A fun project. 👍

  • @Engr-Azhar-Iqbal
    @Engr-Azhar-Iqbal 11 місяців тому

    Well done. Highly appreciated from Pakistan.
    Keep it continue.

  • @qbitsday3438
    @qbitsday3438 10 місяців тому

    Excellent !

  • @AndersJackson
    @AndersJackson 10 місяців тому

    You could used ordinary tracking a line on the floor or collition detection to teach the LIDAR to track.
    And you could even use that input while learning. Then you can remove that tracking device. It is not uncommon to use extra input while doing the learning.

  • @frafracho473
    @frafracho473 11 місяців тому +13

    In general I just take inspiration on UA-cam to make my own projects, because it’s not exactly the way I would’ve done it. But for this robot, I would’ve done it exactly the same way if I had the idea, so I’m going to do it anytime soon ! Thank you very much for this cool video, and congratulations, that’s impressive !

    • @nikodembartnik
      @nikodembartnik  11 місяців тому +1

      Huge thanks for a really nice comment!

  • @christophersmith108
    @christophersmith108 11 місяців тому +2

    Watching this, I was shocked to realise that you don’t have a million subscribers. People are missing out!

  • @frankdearr2772
    @frankdearr2772 2 місяці тому

    Great topic, thanks 👍

  • @swapnilwabale2227
    @swapnilwabale2227 11 місяців тому

    Great workfone

  • @nikodembartnik
    @nikodembartnik  11 місяців тому +4

    For all Polish people! I started a new polish YT channel: www.youtube.com/@prosteczesci

  • @Woodrina
    @Woodrina 4 місяці тому +1

    Thank you for helping me ❤❤❤

  • @wszystko321
    @wszystko321 10 місяців тому

    Siemanko. Na wstępie musze powiedziec ze bardzo rzadko pisze komentarze, ale.. Twój filmik a bardziej projekt mnie powalił! =CZAPKI Z GŁÓW= pomyślałem zobacze co to za kolo, bo tak ładnie mówi po angielsku a tu okazuje sie ze jesteś z Polski.. Świetna robota naprawde! Czemu ja nie mam takich właśnie kolegów ;) pozdrawiam Marcin

  • @moroniafrifa614
    @moroniafrifa614 10 місяців тому

    That's really cool

  • @droko9
    @droko9 11 місяців тому +8

    I wonder if you could set up virtual race tracks in something like Unity to collect training data. The benefits would be that you could control it with an actual controller and from first person ( so better precision ), and you could have much larger and more complicated tracks

    • @conorstewart2214
      @conorstewart2214 11 місяців тому +2

      Nvidia have created Isaac Sim for that purpose, it can even generate photorealistic images on the environment for training but just using a distance sensor like this should be easy to implement. It is made for training ML algorithms so can generate the training data and train the AI and can even do things like reinforcement learning, genetic algorithms or similar.

    • @aayush212
      @aayush212 11 місяців тому

      ​@@conorstewart2214That's really great 👍. Is it open to use for free?

    • @user-qw1rx1dq6n
      @user-qw1rx1dq6n 10 місяців тому

      At that point it would be possible to run ppo with a neural network instead

  • @blaxxun75
    @blaxxun75 10 місяців тому

    This is a very cool project! Machine learning on an Arduino! Imagine Teensy or ESP

  • @falconarea
    @falconarea 8 місяців тому

    Very cool project. Perhaps I would have approach the training of the model via software in a simulated environment as it would be way faster to collect data always in the optimal path.

  • @walt1329
    @walt1329 10 місяців тому

    awesome!!!!

  • @syllogistic
    @syllogistic 6 місяців тому

    Im going to try this

  • @rileyellis1623
    @rileyellis1623 9 місяців тому

    New subscriber here! This is a fantastic project. I just came to this video from the one where you raced two of them, very cool stuff. I am working on a similar project using an RP1 LiDAR with a differential drive robot as a learning platform for things such as SLAM. I am not too familiar with ML. Do you have any favorite resources or project ideas to get begin learning?

  • @lsav1085
    @lsav1085 11 місяців тому

    Very impressive

  • @thefreakbt
    @thefreakbt 10 місяців тому

    Loved that you needed algorithm, hehe

  • @MisterkeTube
    @MisterkeTube 10 місяців тому +1

    Would it not be easier / faster to generate the features via simulation rather than you driving by hand? That way you can train on way more tracks (as they can be pseudo-randomly generated) and also have the simulation provide feedback on collisions when driven by the AI model.

  • @caseyjordan9513
    @caseyjordan9513 9 місяців тому

    Very cool. Any thoughts on how youd approach training a model for pan tilt camera object tracking that could out perform standard control algorithms like PID or MPC?
    I know I could use the data from the PID controller to train a model to do the same thing, but i wany the model to be better and feels like the only solution there is some type of deep reinforcement learning using real world setup

  • @bluefire5291
    @bluefire5291 10 місяців тому

    damn that was so cool

  • @dragosbogdan3450
    @dragosbogdan3450 7 місяців тому +1

    Hi. You can make a smart vacuum cleaner with automatic cartographer on sd card?

  • @kalamalahala1
    @kalamalahala1 10 місяців тому

    zajebist kanał stary, oglądałem aż w końcu mnie uderzyło "chwila chwila...ten akcent brzmi bardzo znajomo...XDD"

  • @papa-dt1cv
    @papa-dt1cv 7 місяців тому

    How much please. OK to advise what parts to buy or used parts and where please..eg lidar. Have u tried used vacuum cleaner lidar too?

  • @mehdibmc9508
    @mehdibmc9508 10 місяців тому

    nice bro

  • @emrengineer
    @emrengineer 5 місяців тому

    hello , if I want to measure the density of traffic on a road, what kind of system can I install? i want something low cost and functional. it should be a system that can transmit this density to another device and show the density. i would be very grateful if you help me. lidar sensor is used? which one do you think is advantageous?

  • @user-pi4kn5ip1i
    @user-pi4kn5ip1i 2 місяці тому

    Please can you tell me if the Arduino supports the amount of data from the lidar? because the arduino will have to control the motors according to the lidar data,.Really. I would appreciate your response.

  • @iTechNMaster
    @iTechNMaster 10 місяців тому

    Very very cool

  • @fastyrapz0
    @fastyrapz0 6 місяців тому +1

    Had a look at the RPLidar DataCollector code, what is the purpose of setting the Lidar resolution to 240? Why not set it at 360 degrees?

  • @balakrishnaprabhubn3410
    @balakrishnaprabhubn3410 10 місяців тому

    Heyyy, This is pretty cool.
    Wouldn't adding an RL Algorithm(Maybe Q-Table or a Deep-Q) to this solve the problem of manually having to drive this around?

  • @usatheesh7779
    @usatheesh7779 5 місяців тому

    Is it possible to make the same project with multiple ultrasonic sensors instead of ladar

  • @alexandresutioso7029
    @alexandresutioso7029 11 місяців тому

    Can you make the movement using a servo motor like the fire extinguisher robot in the contest on the Trinity University ?

  • @Z_1Y1_D
    @Z_1Y1_D 10 місяців тому

    hello, can we do it with ultrasonic sensor ?? and if please make video

  • @jeremygeorgia4943
    @jeremygeorgia4943 10 місяців тому

    Can it be made to teach itself? Technically, it has a rangefinder on the top. In the square, for example, it shouldn't be running into the wall, when faced perpendicular to it. Is there a way to have it go through the course at low speed, be aware of when it completes a lap, optimize its path, then gradually increase its speed, as it becomes more confident? That could save a few minutes/hours of manual training, while also making full speed training unnecessary. You could have a routine that varies the amount of left to right distance bias, and after a few runs it could have complete familiarity with the track. Then you might be able to send a command to either hug the inside, outside, or prefer the center, while the robot is moving. Just a thought.

  • @AirtonSilvaTV
    @AirtonSilvaTV 7 місяців тому

    You have a sensor for penalty in case of the error?

  • @OfficialCreater15
    @OfficialCreater15 11 днів тому

    Great Job Brother keep going

  • @666pss
    @666pss 10 місяців тому

    Could you have made a synthetic dataset for this using something like ray tracing on a 2d simulated race track instead of manually training it? I don't know much about lidar so maybe not.

  • @artemygaming4439
    @artemygaming4439 10 місяців тому

    I recommend you making it so it will learn while riding by itself.

  • @michakurek5618
    @michakurek5618 11 місяців тому

    Cool!,
    you mentioned that this is the first time you have used knowledge from the university. What are you currently studying? What kind of specialization?

  • @rahulc0dy
    @rahulc0dy 10 місяців тому

    What are these kind of breadboards called? the smaller ones he is using in the robot. like shown in 00:49 ?

  • @shakhizatnurgaliyev9355
    @shakhizatnurgaliyev9355 11 місяців тому

    cool!

  • @fadyasaad1105
    @fadyasaad1105 11 місяців тому

    Awesome

  • @koandres8314
    @koandres8314 10 місяців тому

    is it possible to replace the track with a room like a warehouse that has several rooms???

  • @sephiroth0733
    @sephiroth0733 5 місяців тому

    AWESOME

  • @dexterchewy
    @dexterchewy 10 місяців тому

    ooo where did you buy your cutting mat?

  • @VARPYGAMER
    @VARPYGAMER 10 місяців тому

    I cam make some suggestions as a 5 year in a row roborace winner.
    Me Personally, i would put a switch on the robot that allows for automatic learning or performing, u can use the distance from the sensor as a valid/invalid logic for keeping the data or trashing it due to a crash (too short of a distance, mean crash), also try to add a preference on the robot as far of lefty or righty robot, doing so in can also navigate maze, and i usually add also a preference for the longer the distance it measure in a direction the bettere it is, but with all of this, to proper race u need to now how to access really low level on arduino or a more powerful mc.
    Anyway if it's your first time, not bad.
    Ps. With lidar won't be common but implement a system to detect when the signal is wrong (like wall to far or too close, or a reflective wall, or sometimes also really pointy corner can cause problems, like if u have an Y too narrow. Usually i do like, of i detec for x time too similar data, do a sweep around and check if Im stuck

  • @axlsaludo
    @axlsaludo 9 місяців тому

    Hey i am just wondering to work with the same project but i am thinking of a maze solving bot. maybe it is a great idea to work on one using arduino with a lidar sensor but i havent got the materials to do it yet. i think it would be good if you work on a video like that

  • @EvilSpyBoy
    @EvilSpyBoy 9 місяців тому

    I really really REALLY want to know how you are controlling the arduino (I am assuming) with your phone interface

  • @micahmock3505
    @micahmock3505 8 місяців тому

    5:09 "I'm not an expert... I'm just learning and experimenting by implementing some machine learning in my projects."

  • @matteorossi5128
    @matteorossi5128 10 місяців тому

    (sorry, I am really interested on what you have used to concert python language to for Arduino and relative description but it is not in your comments, could you please give me a direction, thanks) found it in the link at your comment, thanks

  • @havidfernando5795
    @havidfernando5795 6 місяців тому

    Hello sir, can you share how to convert Python to Arduino library, and how to apply it?

  • @HarpaAI
    @HarpaAI 9 місяців тому

    🎯 Key Takeaways for quick navigation:
    00:00 🤖 *Introduction to the robot and project setup.*
    - Introduction to a small robot with machine learning algorithms running on Arduino Uno.
    - Overview of the project's goal: autonomous navigation on a racetrack.
    - Mention of the steps to be covered in the video, including building the robot, creating a racetrack, data collection, processing, and a final race.
    02:20 🤖 *Building the robot and the racetrack.*
    - Description of the robot's construction using an open robotic platform.
    - Explanation of using simple blocks for the robot's chassis and adding necessary components.
    - Improving traction on robot wheels with TPU tires.
    - Innovative use of cardboard for creating racetrack walls.
    05:01 📊 *Data collection setup.*
    - Installation of a Bluetooth module and an SD card for data collection.
    - Explanation of recording lidar measurements and control labels while driving the robot.
    - Details about the data format and collection process.
    07:10 🧠 *Processing and training the machine learning model.*
    - Discussion of feature selection to reduce data dimensionality.
    - Overview of experimenting with different machine learning classifiers.
    - Mention of using Python libraries for processing and training.
    09:08 🏁 *Testing the robot's autonomous driving capabilities.*
    - Introduction to testing the robot's performance on various racetracks, including square and figure-eight.
    - Highlighting the ability to adapt to new racetracks with additional training.
    - Preparing for a final test on a complex racetrack.
    11:40 🏎️ *Achieving high-speed autonomy.*
    - Surprising results as the robot successfully handles high-speed autonomous driving.
    - Discussion of motor speed settings and PWM signals.
    - Comparison of robot performance between manual control and machine learning algorithms.
    Made with HARPA AI

  • @mr.washbear9747
    @mr.washbear9747 10 місяців тому

    How can I learn to do what you do?

  • @Alien.Of.Mars.
    @Alien.Of.Mars. 6 місяців тому

    How can we use reinforcement learning instead of labelled data set
    is It possible>>>?

    • @clamhammer2463
      @clamhammer2463 5 місяців тому +1

      Of coarse. I would opt for software training though while normalizing the data to what the lidar module outputs. then you can do multiple training sessions in parallel then upload the finished modal to the robot for real world testing.
      If you want to do reinforcement training, you would need in excess of 30,000 - 50,000 revolutions around the track.

  • @jongwonlee4728
    @jongwonlee4728 8 місяців тому

    can you create Tubercle + Toroidal version fan...?

  • @conorstewart2214
    @conorstewart2214 11 місяців тому +1

    If you have access to, or can get an Nvidia GPU then you could train it in a virtual environment and use the virtual environment to gather training data, then you only need to implement the ML model on the arduino.
    Edit: you don’t strictly need an Nvidia GPU and for simple ML like this could probably get away with just using your CPU but Nvidia has a lot of support for ML and robotics.
    Your best bet for really good results is to train it using reinforcement learning in a virtual environment. That way you can change the track much faster too.

    • @aayush212
      @aayush212 11 місяців тому

      Can you explain little bit more how this can be done?

    • @conorstewart2214
      @conorstewart2214 11 місяців тому

      @@aayush212 your best option is to look at "OpenAI Gym" or Nvidia's "Isaac Sim" and "Isaac Gym".

  • @user-of2xl7gn6u
    @user-of2xl7gn6u 10 місяців тому

    Oh no, almost same as my graduation thesis😢
    But I am using GP algorithm so is it ok..?

  • @WawanSetiawan-xn3ke
    @WawanSetiawan-xn3ke 10 місяців тому

    Sukses selalu semoga ilmunya berkah pa. Salam kenal Kami mohon izin ikut nyimak videonya...

  • @chaituhamster1256
    @chaituhamster1256 7 місяців тому

    Your voice reminded me of dani the game developer

  • @mdeeen
    @mdeeen 11 місяців тому

    the final track should be a combination of circular, sharp edges & cross junction...

  • @GolDRoger-ih3rf
    @GolDRoger-ih3rf 10 місяців тому

    🔥🔥🔥

  • @aayush212
    @aayush212 11 місяців тому

    Great project 👍 ❤
    Can we use any simple sensor system for this ? To make it cheap and simple to implement.
    And to all the commentors who are suggesting to train on viral environment and then implement it on robot, no doubt we get the perfect path for driving but how this will react to actual sensor data ?