Mini Robot Dog #4 - Inverse Kinematics
Vložit
- čas přidán 21. 08. 2024
- This is part 4 of my new Mini 3D Printed Robot Dog project.
I've decided to put my Robot Dog, openDog, on hold for now and build a smaller prototype robot dog for testing to see if I can actually make it walk. At some point I'll return to openDog, but I believe my smaller, compliant design will provide an easier route to stability.
This time we're looking at how to calculate and code the Inverse Kinematic model - a mathematical model of the robot's mechanical assembly, which then allows us to position the feet in XYZ Cartesian coordinates, and have the software calculate the three complex join positions in real time to achieve the positions.
CAD and Code for this: github.com/XRo...
Affiliate links - I will get some money of you use them to sign up or buy something:
***************************
Matterhackers 3D printing supplies: www.matterhacke...?aff=7500
Music for your CZcams videos: share.epidemics...
Amazon US: www.amazon.com...
Amazon UK: www.amazon.co....
Amazon FR France: www.amazon.fr/...
Amazon DE Germany: www.amazon.de/...
Amazon ES Spain: www.amazon.es/...
Amazon IT Italy: www.amazon.it/...
***************************
You can also support me on Patreon or buy my Merchandise:
***************************
Patreon: / xrobots
Merchandise: teespring.com/...
***************************
Other socials:
***************************
Instagram: / xrobotsuk
Facebook: / xrobotsuk
Twitter: / xrobotsuk
***************************
CAD and Code for my projects: github.com/XRo...
Huge thanks to my Patrons, without whom my standard of living would drastically decline. Like, inside out-Farm Foods bag decline. Plus a very special shoutout to Lulzbot, Inc who keep me in LulzBot 3D printers and support me via Patreon.
HARDWARE/SOFTWARE
Below you can also find a lot of the typical tools, equipment and supplies used in my projects:
Lulzbot 3D Printers: bit.ly/2Sj6nil
Lincoln Electric Welder: bit.ly/2Rqhqos
CNC Router: bit.ly/2QdsNjt
Ryobi Tools: bit.ly/2RhArcD
Axminster Micro Lathe: bit.ly/2Sj6eeN
3D Printer Filament: bit.ly/2PdcdUu
Soldering Iron: bit.ly/2DrNWDR
Vectric CNC Software: bit.ly/2zxpZqv
Why not join my community, who are mostly made up of actual geniuses. There’s a Facebook group and everything: / 287089964833488
XROBOTS
Former toy designer, current CZcams maker and general robotics, electrical and mechanical engineer, I’m a fan of doing it yourself and innovation by trial and error. My channel is where I share some of my useful and not-so-useful inventions, designs and maker advice. Iron Man is my go-to cosplay, and 3D printing can solve most issues - broken bolts, missing parts, world hunger, you name it.
XRobots is the community around my content where you can get in touch, share tips and advice, and more build FAQs, schematics and designs are also available.
Patrons and CZcams Channel members already have next week's video which is about making the dog walk!
I think you should call him "open puppy"
James, you should check out Kris Temmerman. He works with kinematics too. He just built a heaxapod.
czcams.com/video/VJzLqHmnjOU/video.html
czcams.com/video/tgs7nl6OoKw/video.html
Fantastic robot
really enjoyed how you broke down the math. also very impressive seeing all four feet stay on the ground.
It's as insane as it is impressive to watch a single person go through, step by step, the same line of work that an entire team of people at MIT/Boston Dynamics have done. Mad props to you, sir.
thanks!
Same line of work -- but different level of applied engineering. Cheetah robot is insane.
*SkyNet : heheheheheh*
James, thank you so much for taking the time to walk through the IK solving! That's been a bit of a mystery to me for a while.
Fantastic job James! I love seeing how the math translates in to movement - it's really fascinating!
thats a super satisfying motion and the math is much easier than I would have thought. pretty awesome.
Me: how does he remember this stuff from highschool?
James: I'm going to use a website because I don't remember how.
Me: oh...
Yeah that's pretty much it ^^
Engineering is not always about knowing the formulas but more about the reasoning that leads you to using them
I'm glad you went through the maths and code - I found that particularly interesting
If geometry was like this in school instead of abstract concepts that seemed completely useless, I'd have been more into it back then.
When a teacher has 30+ students in each classroom it's impossible to teach to each students' interests. When I took trig, I took it upon myself to apply it to programming games and figured out 2D translation and rotation with just what I was learning in class. This is why it's important for parents to encourage and support hobbies. Kids who have productive hobbies never ask "when will I use this?"
I feel the same. As an adult, I'm having to use more math than I ever thought I would just owning a home and having to do repairs. If they integrated real world practical math in schools more would be interested in science and math.
Ben Kucenski The question is "how can I use this for my hobby?"
@@stefan9922 I completely agree, teachers could do more to show how it applies to real world examples and how interesting the actual applications of what we learn are. One thing that got me started on the hobby of electronics and robotics with a view of turning it into a career has been films and TV as well as seeing what has already been done by companies such as Boston Dynamics. Most parents have little to no knowledge of these complex fields so why dont teachers who have much more of an insight into them help to promote them to students?
Good robot
Very smooth motion James. Great work there.
the amount of work this guy puts in these stuff is amazing.
I'm always impressed. Thank you for sharing your expertise.
Love how you admit to looking stuff up you don't know or remember. There's nothing wrong with using the vast amounts of information available online to your advantage.
The movement of the robot is looking awesome! Very cool indeed!
Btw, In programming we typically avoid atan(x/y) and use atan2(y,x) instead, to avoid the division by zero that's lurking there and because "The single-argument arctangent function cannot distinguish between diametrically opposite directions".
This is probably the project I’ve been most excited about and have actually been thinking about doing myself, I love that you make these projects open source super awesome move
That looks hella cool when it's moving all the different axes at once! Nice work! It actually moves a lot like Spot Mini, which is obviously cool.
He's gotta make it twerk now.
What an amazing display of CAD an electronics abilities.
It looks so much more fluid excellent work
Great job James! I am impressed by the way you do that! But I woud suggest trying to solve IK problem by using more linear algebra instead of pure trigonometry. It will not only run faster, but once you get a good understanding of it, will be much easier. (although harder to explain in a video). Anyway looking forward to the next video!
This sounds good, can you attach some links.
I dont comment a lot on your videos but I watch them all! So just a little one to tell you how great I think you are and how amazing it is that you take the time to share and explain all what you do! In a word: Thanks!
Inverse kinematics is so amazing its unreal
Beautiful IMU inertial measurement unit.. so tiny! Love that you've put the OS Sonic Controller and all the responsive mechatronics... Love how you pretty much embody exponential progress! My idol...
Wonderful! This project deserves attention from every robotic universities.
As Károly Zsolnai-Fehér says, "what a time to be alive!"
Hah! with all of those degrees of freedom you can imbue that thing with a lot of personality without it even having an actual face
Who needs a face if you have googly eyes!
desertkil googly eyes are mandatory on every project
This is the most FUCKING AMAZING RC project I have seen in forever. Iv'e built quad copter after quad copter, tracked vehicles, and rock crawler, but this is something different! I wan't this this bot, and I want to put FPV on it and take if into the wilderness!
In this video, you start with a hodgepodge of 3d printed parts and electronics, and you end up with something that feels like it's alive and clearly has a personality.
literally a god damned genius watched the whole thing
Love this video! Thank you for "showing your working" in such detail - felt like the older videos in the best possible way. I hope you enjoyed making it
Excellent work as always James!
This is so fantastic James! Congratulations and thanks so much for sharing these videos and the code you are publishing. It will be quite a legacy.
Morning James been watching you since mid hulk buster I never know wot your explaining but I have to give it to you ur very clever keep up the good work while we are in lockdown
I'm really enjoying this OpenHeadcrab series!😁🤖🦀♥️
You just made it look so much easier than what i thought it was... well done !
Seriously!!
You are my robotics teacher
Good job - looking good
I was impressed with your BB-8 droids. This is just WOW.
This is why I came here. Man you are a genius. Wish you could teach some coding for robotics classes.
You should have a look at inverse kinematics and the Jacobian inverse technique, which is exactly what industrial robots use to solve the problem. It might look complicated at first. But as soon as you get to more than two joints and 3D kinematics, it's much more convenient than the trigonometric approach.
Wow this is great content! Thanks for making these
Thanks so much for this. I used your IK code to make my own dog.
Literally made his own version of Spot. Incredible.
This one is starting to look like a winner. Keep it up.
Really cool, and scaling it to different sizes seems pretty simple. If I had the money, I'd love to build a car sized version to ride around on.
The bigger it is the stronger the motors you need. Precision strong motors really aren't cheap. But we can all dream :p
Great job! Congrats!
really good quadruped robot 😎👌
Interesting and most importantly useful video, thanks!
Really cool video! it moves so well
Wow, I am very impressed. Could you please make a video where you will show some things we must have to start building robots like You, and/or the cost of one robot? Also it would be fantastic to know where we can buy all of this engines etc.
Love the code breakedown.
6:06 "which involves some Pythagore's theorem". It's actually one of al-Kashi's formulas, insanely useful btw
Awesome full movements
I'm amazed... again!
This is simply wonderful
Dang I remember the first one you uploaded on this and this is sooooo much more advanced. Dang, great work
You may have done this intentionally for clarity, but for brevity, xx1 = xx1 *-1 can be written as xx1 *= -1, or since you're just seeking to invert it, xx1 = -xx1. The former avoids repeating the variable name, the latter makes the semantic intent clearer.
Great work, I love the mechanics and you are doing a great job explaining how the mathematics work,
The reason why programming often uses radians is because floating point numbers have the most accuracy around 1.0 or -1.0- there is just as much accuracy from 0.0-1.0 as there is from 1.0-infinity. While it shouldn't make a huge difference for your calculations with 32-bit precision floats, the closer you can keep the numbers your using to +/-1.0, the less chance of floating point error/rounding showing up.
Also, working in multiple different scales generally makes your code messier and more prone to errors. It's best to try to choose a system and stick to it for the whole program. If you want to output degrees to the terminal, I'd do the radians-to-degrees conversion inline in the print statement; mixing radians-based and degrees-based variables (even if distinctly named) is just going to clutter things up. Just imagine trying to design a 3D part in CAD and half you measurements are in centimeters and half are in inches!
The robodog projects and open dog are really cool
12:43 - You do the hokey-cokey and you turn around...... I'll get my coat!
16:12 - The motions that are achieved here are great.
Such satisfying movement!
Super impressive James! I can't get over how great the movement is you've achieved; very cool to watch. =] I may have to take on this project one of these days.
Impressive project
Thanks for sharing👍😀
openDog is looking good
Awesome explanation and execution!
That is awesome
This robot is really cool James. Love the videos!
Can you make an open source ventilator? Is that possible?
I genuinely don't know how complex it is but it would be cool if all the makers out there could come together and make various parts or a complete unit and have it all open source.
That's amazing 😲😲
Very cool episode
eres lo más sigue así eres una inspiración para hacer experimentos
You can developed it for jumping....as it goes backward you must increase the electrical energy to give more power and it will be enough for a 3 cm jump.
This if my favorite robot (dog)!
Hi James, As always great to watch your inventions take shape. I am also using the same network chips for my robot mower and was interested in your comment about voltage issues. I don't suppose you could say what decoupling capacitor and smoothing capacitor you are using please?
100uF and 0.1uF, but there are still some occasional issues
Just call it Open Robo-Puppy 😉
All this talk of joints and servos, half expected James to start singing:
Hip servo's connected to the knee servo,
The knee servo's connected to ninjaflex feet,
That's how the robodog moves along.
Progressing nicely. Now only if you add a motor to the waist so it can twist too :-)
You'd probably find your code would be much cleaner in the end if you used matrices to do the kinematics. Great project regardless, keep it up.
Cool moves!
It's really amazing👍
this is really cool
This bot is slightly frightening, sooo smooth... ;-)
I wonder if it could be a cool platform to give it some AI, maybe it could teach itself to walk, jump, obstacles... Maybe a collab on that if it's not your field?
Superb work man! 👍👍👍
appreciatable sir
I want to see it doing the Moonwalk!
Awesome bot!
Seriously good...
I love it , my brain just keep freezing in middle of the video u sir are a genius
It would be so cool if you made a hexapod at this scale and I think the movement will be much simpler. Also it will be nice to have wheels on the legs so the dog can drive and walk depending on the need :)
Nice work. A suggestion: If I were you, I would never shift between RADIAN and DEGREE. Calculate all in radian and ONLY for HUMANS convert it to DEGREE and send it over the serial port. You remember the smashed vehicle on Mars. The fault was, they calculate in both metric and imperial and they screwed up.. 90 degree is Pİ/2 ;)
Yes all the calcs are done in radians
It's legitimately beautiful ❤️❤️❤️
Very good, thank you!
10:35 Looks like a crab now :D
you should build a laser harp! :)
It's cool seeing this progress so fast! Should the end of the triangle be closer to the center of curvature in the foot so the body stays level at 5:00?
A foot comes of the ground at 17:13
@@janhetjoch Its because the servo cant get to where the math is telling it to. Geared down servo has a bit limited motion
Technically yes, but also the feet won't always be perfectly on the ground anyway due to squishy rubber, rough terrain and the fact that the feet aren't circular so some parts will be closer and some further away. And the springs on the joints will help take up any inaccuracies.
OMG. Stop tock. I whan see tha toys in motion !!!!
Maths! Great application and lesson of trig and algebra. Love the video and content. Mahalo for sharing! : )
Is there a particular reason you use the Arduino ide? Why not platformio on vs code?
You explained that really good 👀
Great video :) thanks for sharing
It's all basic math independently, but combining it all... that quickly makes it complicated. Especially when trying to code it as well. I'm assuming you're using some matrix multiplication to take care of the actual moving?
Does momentum make it easier to walk/balance? If you are going fast on a bike, it’s easier to stay upright vs balancing from a standstill. If open dog has momentum behind it, easier to walk vs slowly walking ?
Awesome!