Giving LEGS their SNAKES Back
Vložit
- čas přidán 2. 10. 2022
- Ad: JLCPCB 3D printing from $1, Get $54 new user coupon from jlcpcb.com/3d-printing?from=J...
Free online Gerber Viewer from jlcpcb.com/RGE
I found video from Akiyuki Brick Channel with a very interesting looking LEGO tentacle assembly. It looks like it has quite a lot of motion, and it only has four motors.
Each motor controls a stage of the machine - driving what is essentially a turntable, but with each motorised part set at 45 degrees.
Based on the combination of each rotary section, the tentacle is able to do some quite interesting motions as it reconfigures itself. There are lots of other really great builds in this channel, so you should check it out.
A similar mechanism has been used in the Rolls-Royce LiftSystem to thrust vector thrust a jet engine, and you can check that article out on Wikipedia.
I’ve built quite a few walking robots, but I really liked the way the tentacle moved, so this made me think about whether I could make robot legs that worked in a similar way, and how easy it would be to control them.
Allen Pan: • giving snakes there le...
Akiyuki Brick: • LEGO Oblique swivel jo...
CAD & Code: github.com/XRobots/Tentacles
You can support me on Patreon or buy my Merchandise:
***************************
Patreon: / xrobots
Merchandise: teespring.com/stores/james-br...
***************************
Affiliate links - I will get some money of you use them to sign up or buy something:
***************************
Matterhackers 3D printing supplies: www.matterhackers.com?aff=7500
Music for your CZcams videos: share.epidemicsound.com/xrobots
***************************
Other socials:
***************************
Instagram: / xrobotsuk
Facebook: / xrobotsuk
Twitter: / xrobotsuk
***************************
CAD and Code for my projects: github.com/XRobots
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:
Filament from: www.3dfuel.com/
Lulzbot 3D Printers: bit.ly/2Sj6nil
Bearings from: simplybearings.co.uk/
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. - Věda a technologie
In the Lego build the segments were symmetrical with angles on both sides, while your segments are straight on one side and tilted the full 45° on the other. Are there pros/cons to each style?
I was wondering if it would be beneficial to use different angles as well like 30/60 instead of just 45/45
Well for one, the Lego one can make itself straight like a pipe. And if you make it longer the Lego one looks like it could wrap back on itself too since it can do +360 degrees.
his version can't go all the way straight it seems...
@@DjSunexx Yes, it's because his has the full 45° on one side as Joel said.
Yes, that seems like a design flaw in this build. Furnace ductwork elbows are similar, letting you rotate the sections to go from straight to a 90-degree bend.
Hey James. I think with that range of motion rather than inverse motion (like a spider) rather try wave motion (like a millipede) as their leg structure is similar. Maybe even have 4 legs a side to balance the length better...
but wave motion is relatively slow... I would rather see more articulated 3 legs on the ground and 3 in the air with the ones in the air moving forward and the ones on the ground moving backwards.
edit: Rewatching the vid he actually did what I typed but in a clunky way due to feet mashing into eachother... optimising the angles of the feet being also slanted backwards to also enable the first motor to lift the feet a little bit.
When you make such amazing projects I don't even mind hearing the same three sponsor messages each video. Without Lulzbot, 3D Fuel and PCBway your projects couldn't exist!
this time it was JLCPCB
The sponsor messages for Lulzbot and 3D Fuel are really short, anyway. It's not like the half-an-hour devoted to the magical abilities of Nord VPN that you get on other channels.
@@katjastrand3955 What does "geg" mean? I'm assuming it's not the Spokane International Airport that you're referring to.
@@anon_y_mousse argh I meant "get" Sponsor.Block
@@katjastrand3955 Ah, okay. I thought it was some new slang. Thanks for clearing that up.
Something I don't see enough people complimenting you on is how all of your devices have a certain "style" to them, in the same way that a carpenter might have a sort of signature style, the functionality-first-yet-charmingly-chunky-as-a-side-effect style you've committed to is really great
Dude, you really did that the hard way.
If you want an easier way to do that, use a pwm breakout board. You can daisy chain the boards using I squared C and each board has 16 pwm servos that it can drive.
The board's only cost like 6 bucks. The boards also have separate input for larger power distribution so you don't have to wire it each individual servo for power either.
As for the walking motion, I highly recommend building a transform equation that describes how each rotary motion translates into XYZ. This will let you specify an XYZ coordinate and calculate the rotary transform to get to there. Then you can design a specific movement equation, and then apply your transform to that and you'll get a new equation for the rotations that need to occur and in what order and speeds to achieve your specific movement.
The cool thing about doing it this way is that you can actually plot the volume of space that your end effector can move in. Then you can draw any arbitrary shape in that volume and your end effector should be able to move along that shape.
It's still inverse kinematics, you're just using rotational spaces instead of linear Cartesian spaces.
I like your funny words magic man
should have said Inter-Integrated Circuit
i dont like the way u said i2c
short forms are short forms for a reason
imagine if all engineers had to communicate using the full names of everything
but somehow u managed to type a short form in full form
what s the point then? u are typing not speaking
I love how "simple" the premise of the video is, inverting their video to give legs their snakes back :) cracked me up
🤣 ikr
Cyclic Coordinate Descent (CCD) is a fairly easy to understand and implement alternative approach to IK which would probably work well with this.
If you don’t care about the distance of thefoot from the robot’s centre line, then you could work up a 2d approximation to the problem for an even easier life. From a 2d point of view the joints would be rotating on an ellipse rather than a circle, but that shouldn’t be too hard to work with.
I'm not familiar with Cyclic Coordinate Descent, so I just googled it. How does it perform compared to say, gradient descent? Last time I needed to solve an IK problem I managed to compute the gradients straightforwardly enough and incremented every joint angle on each computation step, it hadn't occurred to me to try analytically minimising the error on a per joint basis.
It is quick to compute and robust until it isn’t. I worked many years back in an animation shop where we did this using gfx-library fashion homogenous transformation matrices. We also implemented the much more advanced inverse jacobian IK, and as awesome as that looks on paper found that it was an unending headache of edge cases and numerical stability issues with our system. CCD, although apparently relatively naive, was efficient, simple to work with and for most cases as stable as a rock. It does have some issues with singular edge cases but we always found these easy to get around. It is greatly helped by it being simple to draw the matrices as xyz vectors and effectively ‘printf debug’ the algorithm as it is working.
@@Robertc-lv4gs Just wanted to acknowledge you as an individual. I love it when knowledgeable people shows up in the comments, with the weirdest of practical experience regarding extremely niché things.
I'm doing warehouse management and logistics software by day, hobby electronics by night and now I'm diving every single keyword you dropped for the rest of my evening. The likelihood of practical applicability for my life is almost zero, but I'll learn something new today. Thanks!
@@TheNewFaceOfHSP Curiosity is the mother of invention, never say no to a new piece of knoweledge, for if you wont ever have a practical use for it, it can still serve as inspiration.
I feel like the CCD could be coupled and optimized by realizing the movement is really a Fourier series with some 3D components which can be added in. Each joint moves like a pendulum along the radian trigonometry wheel we learned about in school ultimately oscillating back and forth over the course of t = 2pi. Each limb should definitely one third of the oscillation ahead/behind the other along it’s lateral hemisphere. Also when it comes to terrain differences maybe CCD could modify the default oscillation to compensate.
Both of Akiyuki's channels are goldmines for clever and amazing mechanisms! Making them all from Lego is just the cherry on top. I'm excited that more people can get introduced to their work!
I'd be very interested in seeing this project paired with some neural network-optimized walking code, love watching those goofy walking simulations. Awesome work!
I would totally watch a livestream of this thing trying to learn to walk in real time lol
We need a fight to the death between james and allens robots!
what if you used a ring gear with a worm gear driving it. then the joint would be able to go 360 and be resistant to back driving
Honestly I think this has a lot of potential, emulating the way spiders walk would give a lot wider range of motion for each leg and changing the foot design would help a lot
Servo motors would have never even crossed my mind. I would have used steppers and made the job twice as hard lol. As quick as he went through the tentacle construction, I don’t know if I would have ever been able to make anything that simple and elegant. This is a genuinely smart guy.
This is incredible, I saw that same lego video and thought, I'd love to see what Bruton could build using the same principals. Thanks for another great video.
This looks like it was a fun one! The orange gives me the Halloween spider vibe.
I would love to see this project expanded with another joint her leg, a rounded body so the legs don't touch, and an animal tronic face.
James! This was so cool to see. I saw that video of the Legos on Instagram and you took it to a whole other level. I think what you've done is great and appreciate you exploring the possibility of it being something more.
That looks freaky how it moves cover it in fur and chase people around with it at night haha! It is a cool concept
I loooove your channel, I've always loved seeing and making those types of mechanisms with legos, and it's awesome seeing them at a much larger scale!
Hello, I don't know if you have considered using Khalil-Kleinfinger method to work out the kinematic chain ? It's literally been a decade since I've used this, so I maybe a bit rusty and your snake could not adapted to this type of computation, but I remember using it on a Mitsubitshi Arm that looked like a bit like this.
Possibly the least efficient way to make something move. I love it.
I gotta be honest, when I first saw it walking all I saw was a robot moonwalking.
Its great how there is so much inspiration people can get from the akuiki brick channel video. It is literally my favorite video on youtube, so its great to know it inspires other people too.
One thing that might be useful to look at for reference is the variety of atmospheric diving suits that use this same kind of joint in the limbs. I think NASA also developed an experimental version of one for space.
It would be interesting to see how an AI would walk with these legs
Just need a "Giving Snakes their Snake Legs Back" collab with Allen
Hey James. This is an awesome project. I think you will need a homogeneous transformation matrix to do the IK for these legs. Shouldn't be too hard once you get the hang of all the rotation matrices. Good luck!
I feel like two segments like these connected together front to back with some sort of joint would look hilarious, like some sort of giant robot centipede
You absolute mad man. The intro was hilarious did NOT expect that
Dude ur amazing. Pushing out these projects at extreme rates. It would take a team a year to do just one of your prototypes
It weird how much personality this thing has with the movement style
The first thing I thought after I watched the akiyuki video was that you would love it. Crazy how quick it manifested itself
“Giving legs their snakes back!”
True geniuses are hilarious & unhinged.
I do indeed like giving my legs their snakes back
The sloth image is hilariously on-point! Pretty clever use of those servos, and deceptively simple -- I never would have guessed how you did it without the look inside! I feel like there must be potential for this direction having sufficient range of motion, or they wouldn't make hard dive- and spacesuits based around the same idea. The issue may be that all the links have their flat surfaces at 45 degrees to one another, whereas, e.g., the JSF exhaust nozzle has the center section with the ends at 90 degrees to one another.
its weird how i was excited the second i saw him mention akiyuki because these are two very different corners of the internet colliding
Robot hobbling along: Are you proud of me, father?
I love it! I've thought of hacking old tech many times, thanks for proving it. You did a PLA arm, with a couple more segments! Awesome! But here your arms are not walking right. I suggest a redesign with different servo positions that allow the movement by being properly placed as legs.
I love the one design works for 6 legs, but does it? No. Not yet.
@14:36, the end you show the side leg. The movement is just two axis. Rotate bottom 90 °, then spin middle, reverse bottom, then spin middle.
Your legs work. But servos need relocating to do so.
I think. Looks like your ranges are on different xyz than a leg movement. I'd re-blueprint it out.
Try another movement with these, you yourself said they are strong.
Interesting.....
How much can they hold while walking?
More tests with these!
Gotta see more of em! 👍
I would love to see a more advanced version!! Like fixed position motors geared to the moving segments giving a less limited rotation. Lazy susan bearings would work well to connect the segments.
Plot twist: There’s 6 snakes controlling each leg
I think the max servo angle is really holding this project back. I would love to see more iterations on this tho! it is very interesting!
Nice shout out to Akiyuky, he has some amazing Lego builds.
Given that the end effector on each arm is essentially the ending vector of a Fourier series it is possible to obtain a "map" of reachable points, and you can perform inverse kinematics from there! I think it is worth a try.
One method I use to cheat and make a program to visualise the Cartesian space that the end effector can reach without doing complicated inverse kinematics in three dimensions:
- Make the legs origin 0,0
- Implement the forward kinematics of the leg so you have f(angle1,angle2,angle3) = {x,y,z}.
- Iterate over every value of angle1, angle2 and angle3 for whatever granularity you want and write the outputs to a CSV file. Limit this to, at most, 1 degree per step because you'll get 180^3 results.
- Convert the CSV of triplets into a .ply cloud point format. This is something that's easy in python. You can even set the colour of the pixels programmatically to represent the angle of the end effector to the "floor" if you output that in the previous step. You'll get a pretty cloud point file.
- Open it in CloudCompare. Enjoy.
You can even take a subset of the acceptable positions and use it as a lookup for quick inverse kinematics on the platform, or better yet, train a back propagation neural net using it as training data, so it will interpolate to find joint space from input x,y,z demand.
I watched the Alan Pan video and as strange as it is I have no idea what you're talking about most of the time but I still find your videos mesmerising and I'm impressed with your skill and overall knowledge James so keep doing what you're doing and living your best life buddy :)
You have some of the most amazing means of propulsion for your projects.
Could you make a virtual version to make an AI to train it self how to walk in those conditions? After some generations you can just pick the best and put the code in the robot and see how it walks instead of trying to guess how to make it walk (not that making an AÍ for that is easy as well, but it might be a good collab ideia with another channel focused on that!)
I think you can take fusion360 and gazebo to easily make an environment for ai. if James open source the file, I am eager to help you with it
ai is easy as long as u have at least tried to scratch the surface and learn
using it is easy, anyone can make an ai in less than an hour that can predict image, learn to do things
but getting in depth is hard, like theoretical concepts, and maths, the actual work that make breakthroughs and revolutions in ai field
the practical side is easy, the theoretical side is hard, engineers are on the practical side
but in this case, the virtual space is an idealized environment, u can have a good trained ai, but when put into reality, it is very likely to still fail somehow
this is actually the hard part instead of the ai making part, the problems need to be analyzed and narrowed down, then resolved, which might take a lot of time tbh
i don't think you need much as 5 sections at least for a leg, 4 might be enough.
with a group of 3 sections you kinda get a "flex" and "stretch" motion and then with a extra one you can do orientation.
i don't know how you would figure out which section you would use to get the perfect orientation. but for a "pointy" feet like this one it doesn't need to be very accurate.
With just two joints, you could make a really clean arc motion. Then if you put the leg on a sliding rail, I'd reckon you could make a real funky walking machine
I can already see people in these comments who know more about this than I do but I will say that I’m already inspired by seeing it move alone.
When all four motors were running with what seemed to be incrementing speed with each joint I noticed the movement was very familiar. I immediately wondered if it could be described using a Fourier series with some real domain trigonometry.
It would be nice if each leg segment could rotate through 360 degrees and more. Then you could get it to walk something like a millipede
Being able to change the angle of each piece would be insanely difficult, perhaps redundant, but it would be neat to see what sort of ODE/PDE algorithms one could write to make it work.
One more joint and 369 movement on the joints would seem to be the answer. You could use 30 degree angles instead of 45 so you get the same angle at the end. If I remember right I saw that in the same CZcams video you mentioned at the beginning of your video.
You need to have a beveled side on both sides of each segment! Might make the mounting of the drive mechanisms harder, but will give you more freedom of movement and you can completely straighten the leg.
I'm liking this strictly for the title and the Allen Pan reference. The actual video is all bonus!
this is quite an interesting way of making tentical next OCTOPUS robot?
Hi James. I see some biomimetic characters in this project. Take a look at Myriapoda. I’d like to see about 10 legs and an articulated body for turning to manufacture a millipede-like robot and the peristaltic motion their legs generate, which is mesmerising to watch and would make a great video. Thanks.
REJECT ROBOT-SHAPES, RETURN TO SNAKE
If you add one more segment you can work out the motion that you want, plus some of that extra cool snakey movement you're looking for
This is awesome! Can't wait to see the inverse kinematics someday hopefully soon👍
Everybody: “wow I love the 3D printing scenes song” okay… got it, let me take that out 😂
You know what’s better than JLCPCB? PCBWaaayy! Which, as we all know, stands for “Persistently Cool Bots”.
I feel like this is a prime candidate for AI walking training to figure out optimum walk cycles
One thing you could make is add Springs in feet that contact ground so it would make more solid contact
I seem to remember an old design for a hard suit that is a rigid space suit the weather the joints were all 45° circles. I believe they use these so the internal volume of the suit stayed the same no matter how the joints were moved. I’m sure there is a video somewhere of someone wearing it and flexing.
It would be interesting to see this driven by a machine learning model that has learned to walk in simulations. I hope this becomes accessible to amateurs some day.
Having the default position at full extension is usually best avoided. The reason for this is the maths - such a position usually is a ‘singularity’ where you lose one or more degrees of freedom. If it was a linear system (I.e. linear equations to describe how position/orientation of the ‘foot’ depends on your 3 parameters) and you had such a singularity, you’d only get movement in two dimensions. If you’re comfortable solving linear equations, you’d be familiar with ending up with a non-invertible (singular) matrix. However the system is nonlinear (trig, etc) so treating it as a linear system is only approximate. In this case, movement out of this plane is possible, but requires large movement in the servos to move a small distance.
Sometimes this is desirable, as you demonstrated - the difficulty in back-driving your servos you showed is because movement directly up and down is only possible with large rotation of the joints. But it also makes it difficult to raise a foot vertically. Also human legs work this way, but with additional degrees of freedom (hips) to give more control.
Your legs may still have a mode of operation that works better if they stay away from this fully extended setting. Maybe if the robot was a bit crouched?
if the servos had a position readout, you could maybe record it while manually puppeteering the robot- a bit like a stop motion animation. Then you could play those motions back and have walk cycles without any complicated math- basically from forced learning.
I think it would be interesting to see the foot prints this thing would leave behind it--like through sand, for example.
If you added short extendable legs, might you be able to maintain contact with the ground for longer, improve friction, and cope with rougher terrain. I noticed that the linear travel of the robot is rather jerky. Presumably you could tweak the speeds of the servo motors at each stage to smooth out the final travel.
i love how you dont put a snake in the middle for the walk because of how wobble it is
Best music at the end for this robots walking!
such an awesome robot! the waybit walks reminds me a little of a tardigrade
What happens if you reverse the middle segment instead of the last and make each segment progressive longer?
To exactly match the Lego device I suspect you would need at least 360 to 540 degrees of motion on each joint.
Amazing robot 👌🏼
It also looks like its doing a moonwalks which is really cool 🤯👽
One way to think about these multi bearing swivel modules is to see that every two 45 degree connections can behave like a regular joint that can give a 90 degree bend. Along with a 0 degree connection that only rotates the subsequent parts, it takes at least 3 connections to approximate an elbow joint with wrist rotation. So to mimic the joint on the open dog, it would take two 45 degree connections for the elbow, and 2 45 degree connections and one 0 degree connection for the shoulder. So a total of 5 would be a good starting place.
Any interest in adding knurled rubber footpads? i think it would give enough if you made the knurling super dramatic (almost like fingers) and would add the grip you need.
With some slip rings, a version with full 360° coverage of each segment should allow for some more versatile positioning
what are your thoughts on mounting the base plate 90 degrees to the floor and then have the legs arch downward. it seems like you could gain clearance when the legs lift up.
this mechanism should have at least segments for it to touch its own shoulder with its hand in any case
it would also be possible to mount wheels to the feet which's axel can rotate around a point
Those kind of kinematic chain (three roll wrist / hollow wrist) is quite common in industrial robotics. It is used as last 3 joints to enable tool orientation (roll, pitch, yaw) without big change in position (X,Y,Z) so basicaly opposite what You whant to achhive in robot leg.
I realy enjoj Your ideas of trying uncomon solutions!
Keep going! 👍👍👍
Well I cant wait for the exciting entry of this videos: Snakes giving Legs their backs
Imagine a tentacle sticking out of robo dog made of this mechanism.
He's so good at what he does.
A very good start. What do you think of mixing other types of joints? So part of the motion is done with the rotary joints, and then another type of joint does the other part.
an idea that might be easier to get the Walking arc that you are looking for, rather then 45 and 90 degree for the ends of each segment maybe a 45 and 45, or a 60 and 30. that way the leg can be straight, and you can more easily map the arcs of each joint.
I think this is where you would need some A.I. learning so that it could figure out the best and most efficient way of locomotion.
When I was a student in the 90s we had a work-holding thing on the table of a CNC milling machine that consisted of two rotary axes at 45 degrees to one another and the workpiece essentially went in a lathe chuck on the top of these two rotary axes. It called itself a Cybaman, made by Cybamatic. It was crap. I 'solved' its geometry, at least enough to do what I needed, and wrote some software to generate g-code for it. It managed to put my workpiece where I needed it, and get the (laser) cutting tool onto the right place on the workpiece. What a mess it was.
can't wait for you to mount a real snake on your mech 😆
If you want to make the movement more natural looking and smooth, you may need to ditch the servos in favor of encoded brushed motors or some of that nature.
This would be a great way to make a motion control camera arm! Set up a simple GUI with IK, and it could be a really useful tool.
This would make heavy industry in remote undeveloped areas potentially more accessible if it was scaled up maybe 150x
Its amazing what a great design it is
I feel like you’re not taking enough advantage of the second joint on the legs. You could use it to get a sweeping motion that might be more efficient. Take inspiration from how reptiles walk
you could probably spin the robot by lifting up the front and back legs on the side that the robot's spinning towards, and keeping the middle leg on the ground.
There was a hard astronaut suit proposal with this type of articulation. And probally on some diving suits as well.
you can attach imu and allow it to train the optimized walking algoritm of the servos.
Imagine staring too much pipe dream screensaver when this thing enters the room.
I'm surprised I was correct with my guess earlier! I had watched akiyukki's video a couple months ago and your tentacle looked similar!
This would be a nice robot to try and build a digital twin for ML walking. Let the community assemble and build different models that can be test run on the bot @Jabrils. Nice one, could be an interesting kit for kids also
I enjoy the fact I already seen both of the prerequisite videos before this one, similar interests it seems haha