One Legged Jumping Robot (Will it work?)
HTML-код
- Опубликовано: 4 мар 2023
- Attend GTC23 conference for free to learn about AI, machine learning and its applications. Use my link to register, to have a chance to win NVIDIA Jetson Orin Developer kit. To participate:
1. Register to GTC23 with my link:
nvda.ws/3Hr9LTS
2. Attend at least one session (for example my session :) )
3. Subscribe to my channel
Also don't forget to attend my session: www.nvidia.com/gtc/session-ca...
I have an idea to build single leg jumping robot with parallel kinematics. I have made a prototype. And now I need your advice.
Special thanks to my special supporter: Benjamin Bacon and Ali Almarzouqi.
Please subscribe. This will help me to develop other projects like this, to bring the bright future closer!
One time donation:
www.paypal.me/Skyentific
If you want to help this channel, please support me on Patreon:
/ skyentific
Instagram: / skyentificinsta
Facebook: / skyentificface
Twitter: / skyentifictweet
#DIY #GTC23 #3dprinted Наука
You really want some springs to push the legs open, even with the weight of the body. The motors should use force to pull the legs together so the body goes down. Then the springs and the motors together will push off when it jumps.
Same thought here! Something like the punch mechanisme of the mantis shrimp.
The joint gets locked. The muscle get tightened. Than the lock opens en the energy reales in an blink of an eye!
There are a ton of physics questions that come to mind, and how the controller will sense balance and know its own position, trigger enough of a "kick" to be able to get off the ground, etc. Just getting it to stay upright for a few seconds sounds like an awesome result, and prototype 1 is coming together nicely. In just a couple iterations we'll have: a bouncing Terminator!
The project is super interesting. Please carry on with this beautiful robot.
FYI the pi3hat will not work with a Jetson. While the connector mechanically fits, the Jetson doesn't have the same number of SPI busses that the rpi has. Also, the client library is currently only for a rpi.
The Orin actually has CAN-FD controllers built which you can connect transceivers to. Unfortunately there are apparently no off the shelf transceiver adapters for the Jetson line that I could find, but that could be an alternate high performance solution you could start with just a breadboard and a transceiver breakout board.
Awesome! Excited for this video
Your explanation about the jump dynamic was actually brilliant
Please continue with this!
Thats super cool!
I like the way You tensioned the belts
Very cool project!
Take a look at Alonso Martinez's robot called Gertie. It's smaller and uses servos to drive it, but the physics should be very similar as it uses a very similar mechanism to jump.
ruclips.net/video/EfnHhDDc-cw/видео.html
hey coder here. I m getting into robotics, and I love your design and mechanical approach. But here s how I would operate if I had to actually make this work (for what it worth). You have 2 options : 1 the algorythm option. You need : Accelerometer, joint orientation (Inverse Ik), and altitude. Then you bring everything to Unity or Unreal. From there, you start simulating based on actual weights. Since you can t predict the actual driving force of the motors, nor the mechanical faults (like slipping belts, motor imprecision, pid results etc) all you can do is to start with some force values, and from there build the algo and then trial and error in real life values. 2 Reinforcement learning. you backdrive all the informations (joint, accelero, and altitude) to unity, run a first AI pass in the sumulator, then move the model to real driven datas from the robot. After a couple of hundred fails, you should start to see something working.
Interesting. I would not worry about the rotation of the body during flight, just make sure that the foot is in the right position when landing to prevent it from falling over. Once the foot has contact with the ground you can adjust the body rotation easily. You should also make the foot extra grippy because you have to transmit the force for the forward jump to the ground horizontally.
I do think it can work, but it will not be an efficient way of locomotion. You might want to recover some of the energy by using electric braking when landing.
That was an amazing idea please continue working on this, I have a couple of pointers regarding the design and control:
> Checkout Berkeley's - SALTO Robot, slightly different scale but it is still a single legged jumping robot that can move around, maybe the leg design and their motor-joint placement can help during further design iterations.
> The control for your robot will obviously be quite tough and your idea of using RL is kinda nice, but given the mechanical elements of the robot such as pullies and belts which might introduce slipping and other elements into the picture a through system-identification must be done before you can start the RL training and also a good amount of domain-randomization can be applied for these kinds of parameters (slip, motor strength and so on..) other than the usual ones like mass, friction, CoM, inertia and others..
> I'd also suggest the addition of at least one binary contact sensor at the bottom (even better if you can replace all three of those white button sized feet with three binary contact sensors) this will help with the training in RL.
> Other things I'm not sure of as I am not familiar with the motor controller and the motors your using but will be needed for RL are: motor angles and motor velocities, IMU data.
> Would also suggest training the RL policy to output relative positions w.r.t the neutral positions of the motor angles which are then passed through a low gain PD controller for generating torque values. ( Learning position control in RL is faster than torque control)
Finally, If you do plan on using RL for control and if you can open-source it in anyway I'd love to contribute to the RL part, being an undergraduate researcher who also works on RL for legged robots this project sounds dope.
I kinda want to try to program this. But I haven't worked with the Developer kit yet. You may need a Gyro/Accelerometer on the robot to get the angle correctly in the air and feed it into a PDI loop for adjusting the moment of inertia a bit more accurately.
Impressive!👍👍
You can replace the complicated joint at the ring plate with an off the shelf spherical bearing/ball joint. Cheaper, simpler, more durable, more compact.
I think the approach you described should work. Very interesting project :)
You just have me an idea for a suspension system when stuck.
interesting project
Add torsion springs to each of the legs to reduce the load on the motors when standing still!
excellent presentation. The device has many applications. came to mind, a ship landing on shaky ground
I like the color scheme of this device.
Hi, frog is jumping not because muscular power used to shoot body. It used to compress energy and keep it in compressed. So as written below, looks like better to use motor to compress springs. And it is possible to compress it due flying
I think you will have a lot of trouble with the motors and pulleys. The force of landing and possibly jumping will probably make the pulleys skip if not make the motor skip. You could maybe help that with tensioning but you can only tension it so far since you are using 3D printed parts and the motor probably doesn’t like too much load on its shaft. You could maybe help it with some form of current control and allowing the motor to be driven by the legs folding, kind of like a person absorbing the impact of a jump using their knees, but that might be difficult to implement.
Very cool. I like the thought about ensuring the force vector will be out of line with the center of mass. Otherwise, you'll need reaction wheels to balance in air - perhaps the motors accelerating to move the legs will have a similar effect.
"perhaps the motors accelerating to move the legs will have a similar effect." I think that's more promising than an unbalanced rotational inertia at jump time; that's because that rotation will be present the entire flight time and the rotation speed/flight time will be essential for a good landing (that is, the robot learns a formula).
The longest jumps in sport's history were all in hitch kicking style - ruclips.net/video/1JcxdeDluNs/видео.html. I think that the speed of the leg "pedaling mid air" combined with the input of some gyro sensors would simplify the feedback for the jumper's attitude during flight - I feel that's a reaction closer to a bio-neural system.
I know tatt clip you mentioned. The leg extended straight out and there was a metal hemisphere on top.
Интересный робот. По идее должен прыгать. Интересно посмотреть на конечный результат) Спасибо за ссылку на полезную конференцию
You could add something similar to rocket landing gear, on the part connecting to the gimble. If it's just a "One Legged Jumping Robot" then you should be able to put something bouncy on the bottom.
I think it’s definitely physically possible to jump at an angle, but I suspect the code is going to have to be really cleaver and you’re going to need to know the exact position of the body (high precision accelerometer) and the joints (encoders) and thus be able to know where the foot is and where it needs to be. I don’t know if you can actuate that quickly, but I’d love to see it!
This may actually be a good candidate for guided learning, or basically letting the robot learn how to control itself with machine learning. I think the Jetson Orin is probably up to the task. Perhaps add a tether and spring up top to prevent damage while it learns and then let it go?
I absolutely think it's possible! You'll definitely need an accelerometer on the body to measure you're rotational speed, and joint encoders (though I'm assuming you have that through the motors).
I think your idea to control your rotational speed using the legs to control you MoI is sound. You might find that you need to relocate some of the mass to the "foot" to increase that effect, though it might cost you so jumping power.
Also, I've seen a lot of comments suggesting springs to help the motors, I 100% agree with this.
Keep it up, don't scrap this one, I want to see it fly! And then fall, gracefully
add springs to assist the motors :)
i think this case is a very ideal situation to add counteracting spring that negates gravity
It will work, but one thing that will make it *much easier* to get working, in addition to an IMU, is force feedback from the legs. I'm not sure if you get that from the encoders and the ESCs, but knowing when the foot has touched the ground will give you a clear signal to go from a flight state, where it's controlling its rotation for a good landing, into a catch state, where it's getting rid of residual horizontal momentum to get into a stable balance.
Good luck sir, the controller will be challenging. You need to have a quick reaction and a good modelling of the physics so that the inertial compensation will work!
I feel like a reaction wheel with a spring system would be lighter and better considering that for any movement, it needs to be lighter. And it may be simpler to program. If you want to be lighter the computing system could be wirelessly connected through a control link. I think the current configuration is too mechanically complex with many potential errors from the amount of parts.
my robotics professor taught me a good lesson: the simplest solution is often the best and that applies in robotics
It seems that you require something like, mmm... reaction wheels? Well, to maintain it's orientation; you know, like those nifty useful stability assist devices in Kerbal Space Program.
Yes, this can help. But reaction wheel should be heavy to work properly. And heavy part for jumping robot is a bad idea. :)
Heavy - or big, reaction torque is related not only on mass, but lever length as well; also: how much power do you absolutely need it to have, actually? :)
Also, this is a delta robot, efficiently, which makes it possible to execute tangential moves with it's effector (foot). Which in turn means that it can add rotation impulse to main body during jump, theoretically :)
i see how it can move forward , backward... but how would you turn left/right?
Wouldnt it better to have a single legged robot with a spring that gets loaded and 2 centrifugal weights (at the top) so you can control all dimensions?
I am pretty sure it can work physically. It can impart a small backwards rotation while going up. Should be pretty straightforward to sim. but i honestly doubt it will have the torque and the speed to make good air. If you could give us joint weights, motor power, torque and reduction numbers we could simulate it. Or just try make it jump straight up first to get a good feel for effective power.
With the current configuration, I think your landing platform is too abrupt - at the very least it'll cause significant strain at the contact points, at the worst it'd cause damage at the joints closest to the bottom. I think you'd want something to distribute the impact along a wider surface. My first thought is a screw-like mechanism that is pressed inward during collision but falls slack at any other point.
it might pay to look into the "gyros" used in self-stabilizing multirotor drones.
Jumping seems the easy part. Landing will be harder. Maybe use an imu in the top. Based on the gyro orientation and acceleration, you can position the foot so it is infront of where the heavy top is headed (based on accelerometer) and level (based om gyro).
I think that jump should be done using spring and the energy can be stored in springs using the motors. Using motors for impact force is flawed. (Just a guess)
I really like the belt tensioners, are they from somewhere?
Unfortunately the modelling of the body and leg movements are not within my expertise to know if the system will work as required, or not - but having progressed with the build so far PLEASE move to the next step to see if the robot can at least jump (pogo) on the spot.
[really liked the movement noises as well - my mind was silently doing the same! 😂]
The ending about decommissioning begs for a follow-up about the Pioneering Spirit ship. A giant catamaran to pick up oil platforms topsides and now also their (metal) support frames. It's absolutely humongous.
I think that jumping in such a robot configuration will be hard problem. What will make it lift off the ground? A sudden simultaneous torque from all the motors? But that will just throw the upper part upwards until it hits the top and then it will fall back. Maybe I'm mistaken about the physics. Sorry if that's the case :)
Your leg needs some mass at the foot. You need to induce a rotation when the bot jumps. The mass only increases as batteries and controller are moved to the platform. How do you size a motor for this application?
not sure I'd call this one legged
it’s definitely more one-footed
3D printing pulleys with smaller teeth (gt2, for example) can work better if printed using smaller nozzle sizes (0.3) (the teeth geometry is closer to what it should be)
12:30 I didn't see how you expect the rotation in mid- aire 🙂
13:48 no so sure ...
14:22 ok this is a interesting approach
-> to get the rotation you have to keep longer time the poser on the opposite site to the requested momentum to made the rotation of the "head"
Note : If you reduce the size of the leg, you will increas the rotation speed, not sure it's the "best" start
I think it could be interesting to test this
It still seems like you probably are exceeding the torque you will need to jump from those belts on the small pulley. Also, it should not be very hard to get a back of the envelope idea of the jumping capacity of the robot by looking at the force to bodyweight ratio of the legs. Now that you have a model and a motor chosen, just do a quick calculation for the force the leg can generate at stall and compare it to other jumpy robots. MIT mini cheetah achieves 1.7:1 force to bodyweight ratio per leg and uses mainly its back two legs to get airborne for its backflips.
Is there a way to see if the subscription to the Nvidia conference via this channel was successful? By the way, are there no graphics cards in the raffle this time?
It's 3 axis delta-robot. It cannot tilt lower platform, only move it parallel to the ground. It might jump, but it will definitely fall over when it lands. You'll need 6 axis in order to tilt platform to jump into specific direction and land at the destination angle. And platform should be larger for such size and weight.
It's not a parallel delta because it doesn't have the 2 legs on each side that force them to be parallelograms, that is what forces the translation only mode of normal deltas constraining the head to be parallel to the base. It will be able to tilt without that.
@@JohnMeacham Then resulting tilt is unpredictable and robot wil definitely fall during landing.
@@TheNamelessOne12357 no because the shoulders are not universal joints, they can only swing in one direction. so you have 2 less degrees of freedom in each. The parallelograms on the arms of a parallel delta are what gives each arm the ability to translate side to side. That is constrained on this design so there can be no translation leading to a fully constrained system again. You effectively trade off translational degrees of freedom for rotational ones.
I think it could work jumping vertically and would work better with some weight reduction. jumping horizontally would probably need some clever code like you said, but I cant see any reason mechanically why it wouldn't work. Also, the small bearings that you pointed out at 7:39 have such a small range of motion that you could experiment with replacing them with some sort of 3d printed compliant mechanism. axial load could still be a problem if they were just replacing the bearings, but they could be printed as an extrusion to use the whole height that the bearings take up, hopefully making them quite stiff and strong axially. I was thinking of something like they showed in this video: ruclips.net/video/rUH3cDmeXC4/видео.html . it might be overcomplicating it but it could help. Good luck!
I know nothing about robotics or math but surely this can all be calculated?
Are there go-to models for this kind of specific movement?
Intuition tells me it would work better with longer legs as there'd be more dampening, which you might need for a longer pause between jumps, but I suppose a lot of that can be incorporated into the motor control with acceleration and deceleration profiles for jumping and landing. There's probably a more ideal ratio for the leg lengths, I feel the top leg should be slightly shorter than the bottom one, I dunno what that ratio would be though maybe 2:3 - 1:2 or somewhere in that sort of vicinity for this weight (I feel like a much lighter robot, would end up with much longer bottom legs than top ones, closer to 3:5 and up as it tries to concentrate it's mass into a more top heavy configuration). All of this is an uneducated guess so if I'm way off pls don't roast me.
Здравствуйте, какой пластик для печати вы используете в моделях?
Как по мне - прыгать будет, но, без падений, только на расстояние половины подошвы. Кинематика с приданием обратного вращения не очевидна. Момент обратного вращения скорей всего будет подавлен моментом прямого вращения обусловленного весом верхней части модели. Возможно смещение центра масс, но тогда момента моторов может не хватить.
Но эксперимент на то и эксперимент чтобы пробовать.
А можно сразу перейти в дельта робот и научить уверенно прыгать его ;)
How high did it jump?
Где вы применяете эти роботы?
This will be fanfreakintastic! Imagine the sound cannons mounted on the bouncy terminator CloneTrooper's, they come bouncing in "Do not resist. You are being liberated! Do not resist! You are being liberated! Do not resist! You are being liberated!" The faceplates fall away and the Trump troopers hope lok step towards the nearest airfields. There the "Liberation Camps" could be established and the Soilent Green can start to be produced from the dissenters. 😁👍
No please continue this project! This is some Boston dynamics level stuff. Actually Boston dynamics started out as "The leg lab" with robots like these 😉
I do not get whole topic on rotation there. If it's going to jump with some movment, then some legs need to jump with more force then others. You are not able to control (modify) the rotation during the flight fase of jump. Because the top seems heavy and bottom light - perhaps you will be able to put the bottom part of robot in proper way just before landing.
Great robot! It works as good as a Russian Special Operation. Don't forget to attach battery to it. Keep up the good work.
Slava Ukraini.
grass hopper robot huh
3 legged leaf spring grass hopper stand with line leg tension like a cross bow
yes stay home, congress goers :)
who would you need to meet anyways, or talk to
try 3d printing the bearing to the axles directly, just coat the surfaces with graphite putty lubricant
bearing without ball bearings, just graphite surfaces bearing
Dear friend, I like your projects but the same thing always happens to me when I finish seeing them, you just do the 3D printing and put it together and then????? .... 90% of your projects I never see them work, which is what happens or I missed the video and didn't see it. If so, I apologize but what is the continuation of this video?
This project requires very sophisticated control protocol. And I was hoping that one of my viewers will help me with this. But unfortunately, nobody was interested enough to help me. I am not really good with software, to do this alone.
Generally, if I see very little interest to the project, I don’t continue with it. Unless it is something extremely interesting for me personally.
@@Skyentific Dear, I'm not a genius, I don't work with Arduino, I make my own boards with Atmel but I can gladly give you a hand, I think you have the ability to make very good projects
I would make a mechanism where high torque is used to store enery in some spings with a trigger mechanism where the stored energy could be released instantly. i think your approach is not going to work. sorry.
I sent you a message on Patreon, Can you pleas reply. Thank you
That's 3 interconnected leggs not one!
But they work like a single one. It has the same degrees of freedom like a single robot dog leg for example
don't think it's works with belts :/
first use it upside down to launch balls
6 Degrees of Freedom state controlled by 3 motors, it won't work.
This ia NOT a single leg robot.
Why?
Super interested to follow along with this 🫡