The essential aim of this video is to see how openDog needs to react when its feet hit the ground, although I'll be avoiding changing its mechanical structure to make it work. It's very very hard to keep openDog perfectly level 100% of the time when taking steps, which always results in a powerful rigid leg pushing it back hard when it tips and causing stability to be much worse. Also it would be good if it can react to uneaven ground and being pushed about. I'm going to build four of these compliant legs to help prove if their reaction is correct, and then try to apply that to openDog in code using foot sensors to make openDog's legs compliant and have the same reaction, albeit with rigid actuators that cannot be back driven. I'm pretty happy with the initial results in this video, so any future leg projects will probably work in a similar way.
I just got a grant to put together an opendog at my university, is there a good place I could send you an email to ask direct questions or collaboration opportunities?
why avoid mechanical parts? mechanical parts will always be more correct for these sorts of things than circuitry and motors, though only if planned ahead correctly.
The inertial measurement units should hint you about which direction the robot is leaning towards and that should be the the place the legs should move to prevent tipping right? The averaged tilting (between frames) of the body will also tell you how long to stretch each leg to stay leveled. Maybe these should be two different programs collaborating/competing together? One that tries to keep the level and another that tries to step in the direction of movement to keep the center of balance "balanced". Amazing (very complex) project! Cheers!!
Guys seriously, at least give this guy a like on his videos if you cant help him out on patreon, he's genuinely making good frequent videos at high cost, it's not like he's funded by darpa.
So is the current draw too noisy to use? I was always picturing a setup where the motor is never "over driven". A setup where the entire compliance is done in software and the "springiness" is created completely from positive drive with the motor. This seems like it would work in a system like the dog legs because technically the ball screws would never be backdriven. The arduino would detect the increased current of the physical resistance to the leg hitting the ground, drive the motor the other way and then "spring" back. I hope I'm making sense. It sounds good in my head but I'm no robotics engineer.
Great video. I learn so much about the design process from watching your build series. I love how you document all your thought processes and explain why you reach a particular solution AND include your failed solutions too. Thank you!
These legs make me think you should build a robot kangaroo. XD Seriously, watch how they move - it's interesting. Supposedly also the most energy efficient form of land movement in the animal kingdom. (in terms of energy vs distance covered.)
I need to build that spring by software for the eLegs / exoskeleton. It is great to be able to learn with you!! You are having amazing responsibility on future robots that will be built by others using the knowledge you are sharing.
I got all excited that big dog was going to go swiming when i saw "dampENing" in the title. But, as it turns out, James just made a typo. That's ok though, I'd much rather hear about adding damping to big dog's controls. 😁
James, I suggest looking a bit more into the I part of the PID controller. With just Proportional gain you will typically have a steady-state error between your setpoint and actual state (in this case caused by the force of gravity). Integral gain is about automatically eliminating this steady error over time, not increasing the speed of the response as I think you said in this video (that's the job of P). Just be careful to keep the Integral contribution small as it is inherently destabilising, and might need an increase in D to counteract.
When you say that your going to make more legs for a total of 4, and attach them to a frame to test them, I imagine you 3D printing plastic corners, and assembling something out of extruded aluminium. But I liked the balancing piece of wood, in the drop test, so… I think it would be simpler and less time consuming to go to a home improvement store, and have them cut out a rectangle of plywood approximating the size and shape of Open Dog. Then you can just bolt the legs onto the corners, and stack weights on top as needed, where needed.
Might I suggest a potential gait? Perhaps you lift 2 legs at a time. However, rather than diagonal legs at the exact same time, as one leg is coming down to touch the ground, it's diagonal starts to lift up for it's step. As that one starts coming down, the third leg starts coming up and so forth. Not sure if it would be a viable option, and compliance definitely still would be needed, but just as a suggestion
@James Bruton are you using Mach3? Regardless, you need to set up 'Constant Velocity' mode (or it's equivalent in your software). Your cuts are hesitating at the end of each path, which is causing the stuttering you see, especially when it enters an arc move. This can lead to bad surface finish and broken endmills.
hmm, I was expecting the leg to be more stable , but I guess the point is this is in motion, not when it's standing around. It'll be fun to see how you develop this. I'm glad I hadn't started my own physical build yet.
At around 16:10 it started to sound very Boston Dynamicy with the constant clicking. That’s a genuine compliment. You are just one man after all. Great video. I learned a lot 👏
Instead of putting pressure sensors in the feet, have you thought of installing strain gauges on the beam to the feet pad to measure forces. You could even do the same for the side to side actuator
Hi James, This comment isn't related to this video, apologies for that. First, thank you for listening to my suggestion about the teensy 3.6. Its been a major asset to your progress in these builds I see. Second, I recognize now that my suggestion had some super bad timing because they just released a Teensy 4.0 check it out you'll lose your mind.
Accidently built a component of the next generation *ahem companion robotics. Seriously... The motion was far better than the results achieved by the companion industry. Not being childish, but compliance and motion damping is where most androids though realistic looking, fall flat on their faces.
Those are pretty large parts. What nozzle size and settings do you use layer height infill? A significantly smaller part I just printed took 9 hours 20% infill. The large joints would take me days to print. Thanks!
Amazing as always. Just recently I thought about something similiar and wonderd how good current controll would work. And than, boom. Video by James Bruton providing the answer
I keep being amazed at how sophisticated your fabrication skills have become over the years. While I'm sure it still takes a significant amount of time (much more than the montage might suggest to some people), the seemingly effortless way you combine parts that are variously CNC cut, 3D printed and purchased off-the-shelf is really impressive, and gives you a tremendous capability to build pretty much anything you like!
This is just a test to see what sort of reaction I need from openDogs current legs. However if all the joints were compliant then we could just drive the entire robot with forces rather than kinematic positions and so there would be less emphasis on kinematics anyway.
James' amazing videos have inspired me to start a channel of my own called Robotics 101. I am planning on doing build series videos as well as tutorials on CAD, electronics, programming etc. My current project is a 5-Axis Robotic Arm. Please check it out and share with your friends if you're interested.
Why does an actuator need to be backdriveable for current control? I would (naively) assume that you could actuate a non-backdriveable actuator in a back-and-forth pattern and measure or limit current when the actuator is moving against the expected resistance.
Somehow I get the feeling that an analog circuit in this build is needed. Digital just requires too many clock cycles, and I swear it looks like you need tubes. As in vacuum. Think about it. Even if that is way off, analog may help in some instances, I just KNOW it. Anyway, Excelsior.
Have you also considered the idea of a dampener? It'd keep the foot on the ground rather than it potentially springing back up, while also allowing for more springiness. Basically how shocks and springs work on a car, just on a much smaller scale. Though, I'm not sure how this would work with your motor simulated spring.
James, as alway you do a great job. To me I think it is amazon how you figure all this out and explain it via the video to non robotic builder to understand. The creation of these robots is interesting. I look forward to one day we have robots in our home to help us
Noce idea i really love all of your projects and I'm also trying to build a dog robot. But solving problems in my robot let me think that this is not a great solution for your robot...
I'm ignorant when it comes to CNC, so what it the reason the tool paths hog out the entire center of a large hole instead of a circle around leaving a disc? Would the tool throw it out at high velocity?
You know, the dampening in car's suspention is due to oil friction inside the piston. You might just need to "break" the leg's movements with friction based on the speed. Like.. linear disk breaks?
Oil dampers dissipate energy to viscous forces, which means the loss is pretty much proportional to speed. Sliding friction is not quite the same; you typically get sticking (greater force needed to get it to start moving than to keep it moving), and once it is moving the force is pretty much constant, not proportional to the speed. It's also much less consistent over time as the surfaces wear out.
@@Tombsar the wear would not really be a problem such a low force aplication. Also, as the speed is already measured translating it into a linear breaking force would make it constant enough.
I love your designs, but one thing that always bothers me; STOP CUTTING THE ENTIRE CIRCLE OUT WHEN YOU CNC A HOLE IN ALUMINUM! You're wasting time and end mill life cutting excess material. Otherwise keep up the good work ✌️
If it were me, I'd add a second drive to the second support. Something of an off center cam or something of that nature to facilitate forward movement. Essentially the second support that doesn't have a motor on it would be mounted via berrings to an off center cam and would change the angle of the lower leg in relation to the knee joint. Used in conjunction with the lift motor you should be able to get about 20cm of forward or reverse transit per stride judging by the dimensions you gave in the video. And just to throw this out there, this is why I love your channel.
Great video I just wanted to say that you should include a parts list of the motors etc. and the links to where you got them. This would really help me as i am building school projects that are going to use the parts that you do but i cant find them. This will also help for people such as me who wants to build some of your projects. Thanks
ebay has cheap bldc motors from china that are high quality and made by the same factory as the fancy name brand ones james uses that have a 80%-300% markup due to the name brand on the side. same goes for his motor controllers and lots of other needlessly name brand stuff he uses.
I'd pick a project and buy the parts needed for the project in qtys of 50 or so and slowly build up your kit that way with extras left over for future projects
Great video! One way you can offset the weight of the mechanism and take the load off the motor is to implement a bungee or a spring to support the weight. Or even a small air cylinder!
The essential aim of this video is to see how openDog needs to react when its feet hit the ground, although I'll be avoiding changing its mechanical structure to make it work. It's very very hard to keep openDog perfectly level 100% of the time when taking steps, which always results in a powerful rigid leg pushing it back hard when it tips and causing stability to be much worse. Also it would be good if it can react to uneaven ground and being pushed about.
I'm going to build four of these compliant legs to help prove if their reaction is correct, and then try to apply that to openDog in code using foot sensors to make openDog's legs compliant and have the same reaction, albeit with rigid actuators that cannot be back driven.
I'm pretty happy with the initial results in this video, so any future leg projects will probably work in a similar way.
I just got a grant to put together an opendog at my university, is there a good place I could send you an email to ask direct questions or collaboration opportunities?
why avoid mechanical parts? mechanical parts will always be more correct for these sorts of things than circuitry and motors, though only if planned ahead correctly.
the music is annoying. Its not necessary, please stop adding music.
The inertial measurement units should hint you about which direction the robot is leaning towards and that should be the the place the legs should move to prevent tipping right? The averaged tilting (between frames) of the body will also tell you how long to stretch each leg to stay leveled. Maybe these should be two different programs collaborating/competing together? One that tries to keep the level and another that tries to step in the direction of movement to keep the center of balance "balanced". Amazing (very complex) project! Cheers!!
I’m lost as to why you keep messing with these ‘compliant’ legs. You have an issue with balance. How is this going to help?
Guys seriously, at least give this guy a like on his videos if you cant help him out on patreon, he's genuinely making good frequent videos at high cost, it's not like he's funded by darpa.
yet
When he's not building robots and making videos for youtube, he's briefing Agent 007 about the latest gadgets he built in his spare time for Mi7
he is the opensource boston dynamics
It's so crazy that what he can accomplish and will accomplish in the future ... with just one man!
Your channel is perfect right now! No nonsense, all your projects are what 95% of us are here for! Keep up the awesome work!!
thanks!
You’re a bloody genius James !!!
So is the current draw too noisy to use? I was always picturing a setup where the motor is never "over driven". A setup where the entire compliance is done in software and the "springiness" is created completely from positive drive with the motor. This seems like it would work in a system like the dog legs because technically the ball screws would never be backdriven. The arduino would detect the increased current of the physical resistance to the leg hitting the ground, drive the motor the other way and then "spring" back. I hope I'm making sense. It sounds good in my head but I'm no robotics engineer.
Great video. I learn so much about the design process from watching your build series. I love how you document all your thought processes and explain why you reach a particular solution AND include your failed solutions too. Thank you!
These legs make me think you should build a robot kangaroo. XD
Seriously, watch how they move - it's interesting.
Supposedly also the most energy efficient form of land movement in the animal kingdom. (in terms of energy vs distance covered.)
There is even a mechanical version of it designed by someone which can be wore as a boot to travel more efficiently
What a good leggy! Good direction, looking forward to seeing where this goes!
I need to build that spring by software for the eLegs / exoskeleton. It is great to be able to learn with you!! You are having amazing responsibility on future robots that will be built by others using the knowledge you are sharing.
3:47, his face on the wall lines up with the robots's neck
It's so tiny tho, lol :,D
haha was about to comment this.
The expression makes this funnier too xD
It somehow works... a bit like the robot from Saturn 3.
What a movie!
Boston Dynamics should hire you James.
Great video! Just wanted to let you know that brushless is misspelled in the description (bruhsless). Looking forward to future videos!
wow, this auto-stamper is anamazing idea for anoying neighbours!!!
How did you escape from Boston dynamics?
I think one of the robots let him out.
I got all excited that big dog was going to go swiming when i saw "dampENing" in the title. But, as it turns out, James just made a typo. That's ok though, I'd much rather hear about adding damping to big dog's controls. 😁
I fear we are fighting a losing battle with that one. "Dampening" shows up all the time in academic papers.
Interesting concept. Keep up the good work
3:50 ah great placement with the head
I feel nerdy
and i like it
this is a fantastic video!
James, I suggest looking a bit more into the I part of the PID controller. With just Proportional gain you will typically have a steady-state error between your setpoint and actual state (in this case caused by the force of gravity). Integral gain is about automatically eliminating this steady error over time, not increasing the speed of the response as I think you said in this video (that's the job of P). Just be careful to keep the Integral contribution small as it is inherently destabilising, and might need an increase in D to counteract.
My god what an interesting video! Love this!
When you say that your going to make more legs for a total of 4, and attach them to a frame to test them, I imagine you 3D printing plastic corners, and assembling something out of extruded aluminium. But I liked the balancing piece of wood, in the drop test, so… I think it would be simpler and less time consuming to go to a home improvement store, and have them cut out a rectangle of plywood approximating the size and shape of Open Dog. Then you can just bolt the legs onto the corners, and stack weights on top as needed, where needed.
great job looking good
Great!!!!!!!!
Yay finally,thank you sir for your work and sharing it on youtube
Might I suggest a potential gait? Perhaps you lift 2 legs at a time. However, rather than diagonal legs at the exact same time, as one leg is coming down to touch the ground, it's diagonal starts to lift up for it's step. As that one starts coming down, the third leg starts coming up and so forth. Not sure if it would be a viable option, and compliance definitely still would be needed, but just as a suggestion
@James Bruton are you using Mach3? Regardless, you need to set up 'Constant Velocity' mode (or it's equivalent in your software). Your cuts are hesitating at the end of each path, which is causing the stuttering you see, especially when it enters an arc move. This can lead to bad surface finish and broken endmills.
The slower parts is the plunge which it does over 50mm.
Can you show us control algorithms more advanced than PID?
I wish I knew some
@@Tombsar It is specifically MPC that I am interested in, but have only seen theoretical descriptions. I'm looking for a practical example.
hmm, I was expecting the leg to be more stable , but I guess the point is this is in motion, not when it's standing around. It'll be fun to see how you develop this. I'm glad I hadn't started my own physical build yet.
the way the leg complies with the ground as it's stomping is very similar to the early petrol powered boston dynamics dog
At around 16:10 it started to sound very Boston Dynamicy with the constant clicking.
That’s a genuine compliment. You are just one man after all.
Great video. I learned a lot 👏
thanks!
Instead of putting pressure sensors in the feet, have you thought of installing strain gauges on the beam to the feet pad to measure forces. You could even do the same for the side to side actuator
I came here to say the same thing. That's exactly what he needs.
Hi James, This comment isn't related to this video, apologies for that.
First, thank you for listening to my suggestion about the teensy 3.6. Its been a major asset to your progress in these builds I see.
Second, I recognize now that my suggestion had some super bad timing because they just released a Teensy 4.0 check it out you'll lose your mind.
I saw it, thanks!
Awesome !!!
Accidently built a component of the next generation *ahem companion robotics. Seriously... The motion was far better than the results achieved by the companion industry. Not being childish, but compliance and motion damping is where most androids though realistic looking, fall flat on their faces.
Gravity would be dealt with by the I term of the PID, no?
Excelent video, i wanted to make you a question?
Where did you study? And what did you study?
I ask this, because i want to be a robotic enginer
I mostly make it up as I go along...
Those are pretty large parts. What nozzle size and settings do you use layer height infill? A significantly smaller part I just printed took 9 hours 20% infill. The large joints would take me days to print. Thanks!
They are all with 0.5mm nozzles in this one, although I have 1.2mm nozzles that I've used for some parts in the past
Amazing as always. Just recently I thought about something similiar and wonderd how good current controll would work. And than, boom. Video by James Bruton providing the answer
6:15 was that an Ivan Miranda Reverence? o-o xD
I think i watch all your videos haha, can't believe I wasn't already subbed 👍 You totally rock the the socks off these robo jocks!
Hey james, could you do a vídeo on repurposing hoverboards. To make a scooter or e bike......
I keep being amazed at how sophisticated your fabrication skills have become over the years. While I'm sure it still takes a significant amount of time (much more than the montage might suggest to some people), the seemingly effortless way you combine parts that are variously CNC cut, 3D printed and purchased off-the-shelf is really impressive, and gives you a tremendous capability to build pretty much anything you like!
thanks - yes the CNC has helped a lot, there will be more like this!
For the love of god, do you know what you have created!?! do not let the guy who lives above me see this!
Does the new leg mess up the kinematic model
This is just a test to see what sort of reaction I need from openDogs current legs. However if all the joints were compliant then we could just drive the entire robot with forces rather than kinematic positions and so there would be less emphasis on kinematics anyway.
James' amazing videos have inspired me to start a channel of my own called Robotics 101. I am planning on doing build series videos as well as tutorials on CAD, electronics, programming etc. My current project is a 5-Axis Robotic Arm. Please check it out and share with your friends if you're interested.
What if you only used the new leg design on half of open dog ... ie as rear legs ?
I'm not sure!
Also why don't you use ball screws with a larger pitch that are back drivable?
James: spacers
Ivan miranda fans: did I hear SPACERS!?
Why does an actuator need to be backdriveable for current control? I would (naively) assume that you could actuate a non-backdriveable actuator in a back-and-forth pattern and measure or limit current when the actuator is moving against the expected resistance.
[yelling at screen] Stop moistening your movements!
Maybe check disney research lab and their video on motor oscillations?
can we all appreciate the shot at 3:50 where the head on the wall perfectly aligns with the robot?
Springs: nature's PID loops
can you do a video on building a real fully functional Robocop suit
take my brain out and put it into a robot?
This guy is brilliant
thanks!
Please stop saying pid controller. It's P I D hahah
Somehow I get the feeling that an analog circuit in this build is needed. Digital just requires too many clock cycles, and I swear it looks like you need tubes. As in vacuum. Think about it. Even if that is way off, analog may help in some instances, I just KNOW it. Anyway, Excelsior.
Where do you get the extrusion from?
I tried ordering some off Amazon. Bad idea! Would like to know a reliable supplier here in the UK.
What about just another leg on the other end of your test stand
How does spring remember the movement?
Have you also considered the idea of a dampener? It'd keep the foot on the ground rather than it potentially springing back up, while also allowing for more springiness. Basically how shocks and springs work on a car, just on a much smaller scale. Though, I'm not sure how this would work with your motor simulated spring.
Well it's damped in software - that's the whole point of the demo undampened vs dampened
James, as alway you do a great job. To me I think it is amazon how you figure all this out and explain it via the video to non robotic builder to understand. The creation of these robots is interesting. I look forward to one day we have robots in our home to help us
Noce idea i really love all of your projects and I'm also trying to build a dog robot. But solving problems in my robot let me think that this is not a great solution for your robot...
You are great!
Can't imagine, to learn all this all by myself...
It's always a pleasure to watch your videos.
I'm ignorant when it comes to CNC, so what it the reason the tool paths hog out the entire center of a large hole instead of a circle around leaving a disc? Would the tool throw it out at high velocity?
Yes unless you leave it attached with tabs which you need to file off. I chose to do it that way to make a clean hole.
Will it be ready for rading Area 51
I wonder if placing load cells between the motors and their mountings would be enough for such a purpose.
Looks like this would make open dog not have to march to keep balance and move
When You Robocop Ready?
I've got an idea for a project you could do. Why do you build a life size Stargate prop.
Will you have an IMU that overrides the compliance to keep the dog upright? seems like it'd be prone to rolling over if the legs give too much.
Yes potentially
Excellent...
All this with a budget in low 3 digits excluding tools. wow this is impressive :)
Bruton Dynamics
you should build a battle bot
Test with 2 on T frame?
i like your merch shirt
👍👍
I was thinking what if making artificial muscle with 3d printing to simulate the spring so could it work on this case for openDog
Welcome to Brutal.. I mean Bruton Dynamics.
The lower corner will keep going lower
You know, the dampening in car's suspention is due to oil friction inside the piston. You might just need to "break" the leg's movements with friction based on the speed. Like.. linear disk breaks?
Oil dampers dissipate energy to viscous forces, which means the loss is pretty much proportional to speed. Sliding friction is not quite the same; you typically get sticking (greater force needed to get it to start moving than to keep it moving), and once it is moving the force is pretty much constant, not proportional to the speed. It's also much less consistent over time as the surfaces wear out.
@@Tombsar the wear would not really be a problem such a low force aplication. Also, as the speed is already measured translating it into a linear breaking force would make it constant enough.
maybe with a load cell feedback its possible to use the old legs design
interesting !
Amazing
I love your designs, but one thing that always bothers me; STOP CUTTING THE ENTIRE CIRCLE OUT WHEN YOU CNC A HOLE IN ALUMINUM!
You're wasting time and end mill life cutting excess material.
Otherwise keep up the good work ✌️
It's cleaner than leaving tabs for holes that small
good ..
If it were me, I'd add a second drive to the second support. Something of an off center cam or something of that nature to facilitate forward movement. Essentially the second support that doesn't have a motor on it would be mounted via berrings to an off center cam and would change the angle of the lower leg in relation to the knee joint. Used in conjunction with the lift motor you should be able to get about 20cm of forward or reverse transit per stride judging by the dimensions you gave in the video. And just to throw this out there, this is why I love your channel.
I could do, this is just a test for now, we'll see where it takes us
Great video
I just wanted to say that you should include a parts list of the motors etc. and the links to where you got them. This would really help me as i am building school projects that are going to use the parts that you do but i cant find them. This will also help for people such as me who wants to build some of your projects.
Thanks
ebay has cheap bldc motors from china that are high quality and made by the same factory as the fancy name brand ones james uses that have a 80%-300% markup due to the name brand on the side. same goes for his motor controllers and lots of other needlessly name brand stuff he uses.
Hello, I'm looking to start some Arduino projects with my 3d printer can anyone recommend a good starter kit?
I'd pick a project and buy the parts needed for the project in qtys of 50 or so and slowly build up your kit that way with extras left over for future projects
I'm looking forward to this :D
Great job, James! Very interesting to see this type of video. Thanks!
thanks!
Open springbok
Current cool. :)
66th viewer
3:43 😜😱😱😱😱😱😱
Watch spot from Ted
Great video! One way you can offset the weight of the mechanism and take the load off the motor is to implement a bungee or a spring to support the weight. Or even a small air cylinder!
I'm currently building another three legs that will support themselves, so I may we ll do that
Brrraaaazzzzziiiiiiiiilllllllllllll