The Robot Learns to Run

  Рет қаралды 13,563

JD Robotics

JD Robotics

Күн бұрын

Пікірлер: 50
@daltonjames8556
@daltonjames8556 2 ай бұрын
Imagine the horror of your stewart platform crawling in your room at night like a water bug lol.
@JDRobotics
@JDRobotics 2 ай бұрын
😂😂😂
@tony2shoes982
@tony2shoes982 2 ай бұрын
This is amazing. Great content. Can't wait to see more.
@zactron1997
@zactron1997 2 ай бұрын
Regarding period selection: instead of choosing random real numbers, choose a random natural multiple of the base period (2, 5, 15, etc.). This will ensure all movements are synchronised within the desired timeframe. Finally, regarding the selection of an alternate function: because your solution is defined to be periodic, Fourier proved that any solution will be of the form of a summation of sine waves scaled and shifted across all frequencies. As such, you could simply include more sinusoids at higher frequencies for each DoF.
@JDRobotics
@JDRobotics 2 ай бұрын
Great ideas! Using integer multiples seems obvious looking back now. I had planned on adding more sine waves for each dof but never got around to it. I was toying with the ideas of either having a set number of waves for each dof or having a set number for each solution and control what dof each one corresponds to in the genes.
@revimfadli4666
@revimfadli4666 2 ай бұрын
Ah yes, the equivalent of performing jpeg compression on a large neural network
@mariogomez8149
@mariogomez8149 2 ай бұрын
Very impressive!
@JDRobotics
@JDRobotics 2 ай бұрын
Thanks!
@iznasen
@iznasen 2 ай бұрын
Next step: The Robot Learns to make a partner
@themed_entertainment
@themed_entertainment 2 ай бұрын
Very nicely put together video!
@Roobotics
@Roobotics 2 ай бұрын
put rear-most leg into soft contact with ground, lift front up fully so it pivots up on the rear legs, lower rear to contact frame, drop front. repeat. is basically falling forwards by altering the pivot points. It's not generational learning, but I wonder if it's learned forwards speed can physically surpass that basic movement sequence? (It has to not bind it's gantry while doing it obviously)
@andrewwatts1997
@andrewwatts1997 2 ай бұрын
Nice project ! I think a couple good changes would be, - Add rubber ' feet' the lack of traction seems to be hurting the performance. - perform the tests for more iterations with perhaps a larger population? I'm not sure what your population size was but most videos I watch on these topics have between a 100 and 1000 members and test for 1000 to 10 000 iterations. If you do plan on testing, in simulation, what geometry would be best, you should combine that with finding the optimum gate. As geometry and gate would be linked. This will increase simulation complexity however. If you can perform these simulations on a campus computing system, I would suggest that. Looking forward to your next video on this!
@JDRobotics
@JDRobotics 2 ай бұрын
Thank you! I ended up using a population size of 30 for most of the simulations. Increasing that and the number of generations would be great, but I'll have to improve the code and maybe use a faster computer for that.
@chrisBruner
@chrisBruner 2 ай бұрын
I'd be interested in seeing a tutorial on how you used gazebo. How did you enter your robot, duplicate your robots and simulate your robots?
@JDRobotics
@JDRobotics 2 ай бұрын
Thanks I’ll keep that in mind. In the sim I didn’t actually have multiple robots running in parallel or spawn/despawn new bots. I just ran a solution on the one robot, noted how far it went, then tried the next solution on it. All of the starting, stopping and recording distances was in a ros2 node that would send joint positions to the robot in gazebo. I’ll try to get all the code together and make it public if anyone would be interested in that.
@MusingsAndIdeas
@MusingsAndIdeas 2 ай бұрын
@@JDRoboticsYes please
@JDRobotics
@JDRobotics Ай бұрын
@@MusingsAndIdeasEverything is public now! Join the discord if you have any questions or want to help!
@LoganDeFour-s3f
@LoganDeFour-s3f 2 ай бұрын
This was so cool, very well explained
@joseccastrojr
@joseccastrojr 2 ай бұрын
This video per se, is a masterpiece.
@oluwaferanmi100
@oluwaferanmi100 2 ай бұрын
This is awesome.
@jeffsmith9384
@jeffsmith9384 2 ай бұрын
it needs shoes
@stefanguiton
@stefanguiton 2 ай бұрын
Superb content, great work
@harrysas08
@harrysas08 2 ай бұрын
good job bro also love your content
@june9713
@june9713 2 ай бұрын
It is very simmilar with explanation of evolution.
@harrisonlow
@harrisonlow 2 ай бұрын
Very cool! How did you generate the footage of multiple bots at once? (eg. at around 7:12) I'd be very keen to see how you go if you decide to optimize for geometry as well as gait. I also wonder how modifying the friction between the legs and the ground would affect the speed 🤔 From the footage at the end (eg. 16:33), it looks like there's quite a bit of slipping, though it's difficult to know whether that helps or hinders the movement. Keep it up!
@JDRobotics
@JDRobotics 2 ай бұрын
Thank you! To animate the multiple bots, I had all their joint positions, pose data, generation numbers, and other topics saved to a bag file while the sim ran. Then I had a python script that could get that data and set keyframes for my model in blender (the animation software) Good eye on noticing the slipping. I have rubber feet on the base which makes its friction much higher than the arms. I think it helps on the gaits it found but I agree trying different friction values could be interesting. Maybe having every other arm be grippy or some other combination could have good results.
@harrisonlow
@harrisonlow 2 ай бұрын
@@JDRobotics Very interesting! If you don't mind my asking, how did you go about getting the CAD into blender (presumably with mates intact)?
@JDRobotics
@JDRobotics 2 ай бұрын
@@harrisonlow I don't know of any way to import them with mates. I imported STLs that I used for 3d printing and modeled some of the other components in blender.
@harrisonlow
@harrisonlow 2 ай бұрын
@@JDRobotics Interesting! Cheers for the reply 😊
@sozno4222
@sozno4222 2 ай бұрын
Great video! Really enjoyed this project. Curious what your background is? Did you have much programming experience or previous genetic algo experience before beginning this? How long did this all take you?
@_spartan11796
@_spartan11796 2 ай бұрын
Great video 👍
@hannahnelson4569
@hannahnelson4569 2 ай бұрын
Very cool!
@AnJo888
@AnJo888 2 ай бұрын
Nice project. Rubber pads in the legs contact surface may allow for greater speeds... Shifting the wave form towards the ground may reduce 'no contact' time... Using NEAT to 'punish' unwanted behaviours (long no contact times, wrong movement direction, etc) may generate better solutions...
@ahmedhabib6131
@ahmedhabib6131 2 ай бұрын
Great work! What software did you use for the simulation?
@MrStyles784
@MrStyles784 2 ай бұрын
Perhaps designing a sequence of stages with different constraints on evolution would yield interesting results - for example, if you first ran several generations with the fixed sine wave phase, then took the best offspring as starting points for another several generations in which the phase is allowed to vary, and maybe another factor is locked instead. Different orders of the same constraints could lead to wildly different solutions - it would basically be a genetic algorithm of genetic algorithms, simulating a slowly changing environment... From that last thought, I wonder if the specific constraint changes could also be determined algorithmically in a way that simulates each generation's impact on the environment...
@sheeple906
@sheeple906 2 ай бұрын
I really like the video and how you explained everything really easily. If I wanted to learn how to create a walking robot on my own where would I start?
@JDRobotics
@JDRobotics 2 ай бұрын
Thank you! If you don’t have experience with electronics yet I’d start with an arduino project. There’s a ton of simple projects with great tutorials out there. If you want a bit more challenging project or are interested in my robot specifically, keep an eye on my channel as I’m planning on releasing all the files for this project soon.
@RoyaltyInTraining.
@RoyaltyInTraining. 2 ай бұрын
It would be interesting to see if replacing the basic sine wave with a Fourier series of maybe 5 terms would yield better results. This emulates the nature of real-world gaits well, which are usually periodic and smooth, but not quite sinusoidal.
@JDRobotics
@JDRobotics 2 ай бұрын
Great idea!
@Jkingwalagamer
@Jkingwalagamer 2 ай бұрын
Good video 📸
@MusingsAndIdeas
@MusingsAndIdeas 2 ай бұрын
We did Q Learning
@konstantinbachem9800
@konstantinbachem9800 2 ай бұрын
maybe add sinewaves with difrent frequencies like in a forier transform
@KelvinNishikawa
@KelvinNishikawa 2 ай бұрын
Rather than do a simple sine wave, have you considered using a random noise pattern and then doing an inverse FFT to drive the servos?
@JDRobotics
@JDRobotics 2 ай бұрын
I haven’t. That sounds interesting though I’ll have to look into it more
@Chmm3
@Chmm3 2 ай бұрын
JD Robotics, Such a cool project! I am a fan of genetic algorithms myself, have you taken a look at Real-Coded Genetic Algorithms (RCGAs)? They are similar to Binary-Coded Genetic Algorithms (BCGAs) but use real values in their genes instead of binary. There are a handful of cool crossover events as well that you can do with real values. I don't know if it would have changed the results of your simulations but if you are ever interested it could be fun to see the difference in effectiveness between the two types of genetic algorithms. I had initially brought this up to argue your crossover event. My thought was that representing floating point values with binary could cause crazy values to result when your crossover splits up a mantissa. This is not the case! I worked an example out to myself and it actually results in very reasonable values! I'll keep my comment here though just in case you have not seen RCGAs before! (And it would still be cool to see a comparison between RCGAs and BCGAs on a real bot), I have not done extensive work with comparing BCGAs and RCGAs so I do not know if there will be a difference if applied to the same problem. best, random internet commenter and new subscriber
@JDRobotics
@JDRobotics 2 ай бұрын
Thanks! I actually started off with some sort of real-coded algorithm, I wasn't using any special types of crossover though, and my mutation would just randomize an entire parameter. Switching over to the binary-coded helped, but I also improved other things at the time, so it's hard to say how much. I'll have to look into how RCGAs handle crossover and mutation. I hadn't heard of them before, thanks for letting me know!
@hugorafachofernandes4840
@hugorafachofernandes4840 2 ай бұрын
I think if you increase the number of generations, you will get better results. GA is very sensitive to local minimum and more generations give it the chance to escape from this through mutation.
@ironman5034
@ironman5034 2 ай бұрын
Hey can you share a link to your code, this is perfect for me, i have built a worm/snake like robot that uses only 2 motors for x and y directions i'd like to see some optimum solution to it's motion
@JDRobotics
@JDRobotics Ай бұрын
Everything is on github now!
@darkshadowsx5949
@darkshadowsx5949 2 ай бұрын
take the sticks and table off. or design a robot thats made for walking instead of uselessly tilting a plate.
The Fastest Maze-Solving Competition On Earth
25:22
Veritasium
Рет қаралды 20 МЛН
The moment we stopped understanding AI [AlexNet]
17:38
Welch Labs
Рет қаралды 1,2 МЛН
Osman Kalyoncu Sonu Üzücü Saddest Videos Dream Engine 269 #shorts
00:26
НИКИТА ПОДСТАВИЛ ДЖОНИ 😡
01:00
HOOOTDOGS
Рет қаралды 2,9 МЛН
How to Improve Blender's UI
20:27
Blender
Рет қаралды 38 М.
An Ancient Roman Shipwreck May Explain the Universe
31:15
SciShow
Рет қаралды 4,4 МЛН
These Illusions Fool Almost Everyone
24:55
Veritasium
Рет қаралды 4 МЛН
🇺🇸 DOES YOUR FLAG FAIL?  Grey Grades State Flags!
18:53
CGP Grey
Рет қаралды 11 МЛН
Sympathy for the Machine
26:31
Curious Archive
Рет қаралды 1,8 МЛН
I never understood why too many neutrons cause instability - until now!
17:31
Artificial Life. The battle of clans
19:34
Simulife Hub
Рет қаралды 488 М.
This pattern breaks, but for a good reason | Moser's circle problem
16:13
How do Graphics Cards Work?  Exploring GPU Architecture
28:30
Branch Education
Рет қаралды 714 М.
Osman Kalyoncu Sonu Üzücü Saddest Videos Dream Engine 269 #shorts
00:26