Yet Another Open Source Quadruped Robot Dog
HTML-код
- Опубликовано: 11 ноя 2024
- In this video I'm giving a very high level introduction to my latest project: An open source robot dog using capstan drive, rolling contact joints and compliant mechanisms.
Please feel free to ask questions and if you want to read more about this project check out my website at Wilsonfabricat...
This is AMAZING! What a cool design, can't wait to see the rest of the build! Will be cool to see how its range of motion compares to standard bearing-jointed robots once complete, I bet it'll be considerably more life-like. Hopefully the kinematics aren't tooooo much more difficult, I admit that was something I was just pretending wasn't a problem until I got there 😅
Me too haha. I had thought about pinning the hip at (0,0) on a coordinate plane, moving the foot to every point on the grid it can reach then recording the angle of each joint at those points. That way instead of doing complicated math to calculate the foot position I can just give it a position like (0,-25) to lower the foot/raise the body. And to move forwards I would draw a square on the coordinate grid, lift the foot up, move it forwards, set it down and drag it back. All points on the same X axis keep the foot at the same height, and with a load cell in the foot and a 6 axis IMU in the body I should be able to adapt the target point to keep the dog level during terrain changes. But there's probably a reason no one does it this way....
@@WilsonFabrication this is very cool check out the biomechanics on the knee of a flea
DC drive is very surprising. The ODrive brushless system most quad dogs use have very fluid motion, can sense force feedback, and can behave like springs if they're programmed for it. This will act more like giant servos. I can imagine some crazy shaking so you may need something fancier than PID to make it smooth.
I'm also concerned about this choice. I decided on the DC motors so early into the design of this dog before I really understood why most people do not use them and I would not be surprised if I swap them out for BLDC eventually, but for now i'm committed to trying to get these to work. The joint is easier to back drive than I expected, and I can implement controls for motor current, joint speed, joint acceleration and have inputs for additional sensors on each joint so I think I'll get something to work
Did James Bruton use ODrive systems in his robot dog? From memory, I thought he just used DC motors and they worked well.
@@Here_is_Waldo He used ODrive. The bot can be pushed down like a dampened spring. its very fluid. But dc drive doesn't cost several hundred a joint so its a fair trade off
I'm happy to see that I wasn't the only person inspired by BT and others' capstan and rolling contact videos. It's neat stuff!
As more of a cat person i wonder when people will start making robot cats with ultra flexible spines
Not sure how you’d design liquid in fusion 360 🤔
@@dinoscheidt Going to need nitinol.
They aren't controllable. They do what they want.
I've heard cats domesticated themselves so maybe we'll have to wait for the robot takeover so they can design themselves
I would actually love to see a cat robot, their flexibility is unmatched. If we could replicate this in a robot, it could be capable of a lot
Omg this is the lightest looking design i have ever seen for a robot dog
Very cool concept. Is it back driveable though? If you look at James Bruton's designs for a robot dogs and look at his experience with the Sonic Robot you'll see that if the actuator is not compliant you get a lot of problems. Rigid robots have to calculate everything perfectly, and the world has to conform to the model the robot has. If your actuator is off by a couple of degrees, if the surface is not as your robots expects it to be, you instantly get instability and really high shock loads.
In general, the mindset for most robot dogs and their actuators is not "This leg needs to be here. So let's move it here." but instead, "This leg needs to apply a force with this vector, so let's move it like this.".
For I2C comms, you can also use something called dI2C or differential I2C.
Cable lengths of up to 10m at 1Mbaud until you need to start decreasing it
Thanks for the tip! I've never heard of that before so i'll have to check it out. For now I went with the P82B715DR which has a claimed maximum run of 50m but I doubt it would actually reach that far in practice
This really does look like a dog. Love the choices for joints and DC motors, I am interested in bipeds and exo suits and the cost of bldc+odrive combination is a killer.
Having an IMU at eacht join is a great idea, the machine could have a kinesthetic map of its own body. Great work, hope to see it keep going!
Awesome!!! I feel that it's a great learning project which is also following the trend for breakthroughs against 1500 others in the same field. Let's say that 1.5 billion people do the same job which involves 5 tasks, digging root and soil, cutting weeds and old plants, sprinking seeds and spot-placing biopesticides like chilli, irrigation with a tube, auger and core tube for soil amendment, automating those jobs cheaply and efficiently would be a simpler robot that the dog, but it would save 90% of organic food tasks adn make chemical food more expensive and address an 11 trillion dollar market, 22 times bigger than aerospace industry or semiconductor.
Roughly 1 lb of force per 1$ spent on a motor is pretty impressive. I've also been looking for a way to mess around with these joints, so I look forward to seeing how this project goes!
Nice design and informative content! Please share more!
Literally one of the wildest things I've seen on youtube. Now I need to learn ROS.
Really nice!! My two cents, if you need a material for the joints ligaments that does not stretch over time, try carbon fiber tow glued with silicone caulk (100% silicone).
A lot of old people recovering from hip replacements never recover enough strength to walk again. Two critical joints do most of the work and the rest can be unpowered and moved by the patient (if you want to make an assistive device). The knee does most of the work involved in walking and standing upright under your own weight. The front-back motion of the hip joint is also important for standing and most critical for getting up from a seated position.
This concept is genius and I'm excited to see more strings-based robots in the future.
the bot looks excellent, really good flexability as well.
A man after my own heart! I cannot wait to see where this goes!
Great looking project. Excited to see it develop. 👍😃
Literally 2 days ago I watched Aaed Musa's video, related it to Breaking Tap's video, and had the exact same idea. It was, however, a mere 30 second idea. Best of luck as you pour a bit more effort into the idea than I did.
it'll be interesting to see how well those rolling contact joints work!
incredible light design, love the biomimicry. Using DC motors would make your impedence control harder but still doable, I would make sure backdriveability is adequate by making the reduction low or by other means. Backdriveability is one of the key features for it to be able to walk.
Very exciting to see a different approach. Liked, subscribed, and looking forward to seeing more.
Cool project! Really like the marrying of capstan drive and rolling contact joints! One note about using i2c with long cables together with DC-motors. Have built an AUV with that setup and it was a nightmare interference wise. We ended up switching out all sensors to ones with SPI or serial communication. Soon we will switch to BLDC motors aswell. Im sure i2c cost us a year of troubleshooting. Just a headsup. We also tried various ”booster” boards to no luck. Hope you suceed with the project, really like the mechanical principles 👍
That is definitely something I am worried about. I went with i2c because it was simple and really the only communication protocol I had previous experience with but this will probably be an issue that I'll have to fight with too. I plan on using shielded wiring either from a USB, ethernet or picking up some shielded twisted pair from amazon
Exciting stuff! Looking forward to seeing this progress
if you want to test a leg, you can pin it under a table, ie ground. sacales.foot.leg.hip. table.somethign large on top a person , then all you gotta do is make sure it doesnt slip and you can check the push force, ... minus leg weight x3
There is the ODrive Micro on Crowdsupply that might be good for motor control. Also James Bruton has built a few quadrupeds, I suggest looking at his work. Good luck!
Incredible work! Add a speaker and a remote microphone and you have a tesla competitor!
This is fantastic! Very cool design
I saw this on reddit! great work!
GO WILSON!!! Great looking CAD. I would say, looks like your off to a great start!!!
I like what I see please make more videos!
Really cool project, I have subscribed
The biggest things I see going against this brushed DC design are speed and strength to weight ratio. As other commentors have suggested, you can get sensitive PID loops to simulate fluid motion. However, getting the machine to react in time will be a joke. It took a second to fully extend the leg under no load? You need it to extend fully in under half a second at full load for anything useful. The reaction time and strength of the motors and electronics is going to be critical for success with complex balancing algorithms. If you need cheap electric motors and PCBs, just make your own... if you can't simply earn the money in the same amount of time.
BLDC motors aren't too expensive especially if you buy knockoffs from Aliexpress, its the controllers and compact gear sets that turned me away (for now.....). Honestly I started designing this before I had done any real research into quadrupeds and why the quasi direct drive is preferred. I still think I can get it to work with a combination of sensor feedback and careful tuning but you're right the better long term route will be to swap to BLDC
The design is great. Capstan and cables 🤤
Putting the gear section on each side of the rolling joint is better than only in the center for twisting stiffness
Surprisingly the knee joint is very stiff in twisting. The combination of the high tension cord, fenced in joint and the gear face really lock it down. The weakest degree of motion is bending the knee to the side. Having the high tension cord further away from the center line of the joint helps keep it rigid to side bending forces
if you feel like it, in hackaday there's drivers for the BLDC motors, which are open source and should be able to make your own
I am interested in trying out BLDC, but the bigger issue for me is price. The DC motors are significantly cheaper even with the custom motor controller, and I would really like to make this project as low-barrier-to-entry financially as possible
Wow waiting to see more!! Subscribed!
Fuck this is awesome. Your hobby is definitely impressive
All i gotta say is im subscribed
This is awesome! I think the primary benefit of modern QDD actuators is how torque transparent and backdriveable they are. This is typically important for lifelike dynamic stability.
But the capstan might be torque transparent enough to let the dc gearmotors work? That would be awesome if so. Either way this is awesome.
It will be interesting to find out. This is my first time playing around with any kind of robotics so I have nothing to base off of but the capstan + planetary gear motors are way easier to back drive than I expected. When the motors are turned off the joint won't droop like you would expect a real animal joint to but I don't have to fight it to bend it closed. The motor controller board has a current sensor on it so im hoping I can get a rough torque control from that
@@WilsonFabrication Ooh that kinda flexibility is great news. Good luck!
Impressive job, keep it up. Not something I would design and build but for research purposes, awesome. Personally, I like my machines to be simple because these small machines can't have redundancies so what's the point in complexity? Ruins the reliability. If Ros is complex or requires Linux then thats too much for most people. Practicality and ease of use have to be a priority or the advancement of robotics will be out of reach for the lay person. We want to control robots, not the other way around. Has to be simple to configure so the end user has control
Subbed. Eager to see where this is going ^^
Interesting, im excited to see more
Planning on using rl for stability and dynamic walking gait? Be sure to match your CAD design and URDF file as close to reality as possible
awesome project
WOW nice work
Looking forward to more updates! happy to see someone trying a rolling knee joint.
one of the most compact and versatile dogs i seen out there, good use of the brushed motor, but how will compliance change due to it? will the springiness be lost due to planetary gears or it works too?
Dont know yet, the joints are surprisingly easy to back drive but they sure don’t go limp when powers off. There’s a lot that I don’t know yet and I’m hoping I can work around any issues the motors cause
Arduino is all about the ecosystem and easy programming but the hardware is just a regular microcontroller. You should consider a more bare metal mcu approach for cost and responsiveness when the control side stablizes.
Definitely on the horizon. Testing is ongoing and were already seeing the limitations of the 328 chip. Will probably go towards teensy or esp32 line of chip, mostly for their higher clock speeds. I would like to keep the parts used on the PCB either JLCPCB basic components or easy to get through hole components while keeping the BOM as cheap as possible so that limits my options
Nice! I have a feeling you might figure out why small dc motors don't work well... but hey, here's hoping you're onto something, who knows?
I didn't hate the idea, just that he called it "eye two see"
Nice, looking forward to more videos, have you thought about a simulation of walking? Using RL?
Will there be a way for the final robot to stand up on its own in case it has been overthrown on its side or back?
Usually that is just done by moving its legs in specific ways.
@@conorstewart2214 i have seen one example where it could do so due to the joints being able to rotate 360°. I would think that you need to angle at least slightly the extremeties otherwise if you have not that 360°. Do you have by chance any vid on an example as i can't picture it.
edit:grammar
one of the major drawbacks of using planetary geared dc motors is that it will be very hard or impossible to make the joints backdrivable
Looks like a very fun and challenging project to work on, do you have any plans on how to implement compliance in the leg? A mechanically rigid system will need lot's of sensing and control to compensate for the uncertainty of the real world. Since you are using 2 motors per joint it might be worth using the antagonistically with an elastic tendo to so that you could tune the stiffness of the joint in a similar way to muscles.
BTW, your website is geo-locked to the us which makes it slightly inconvenient to access and might loose you some traffic to the project.
Thanks for the heads up! I self host the site so I typically keep it pretty locked down but I've opened it up a bit
This is awesome!
well played sir.
If i could ask for anything i'd ask you to spend more time on individual parts of the design and explain what you think of your design choices and how you might change those choices if you had more money or time...
Thanks for the feedback! I think I’ll do exactly that in the next video
Looks really nice, can't wait to see more!
Thanks! Video editing somehow takes more work than the CAD design so it might be a bit but I'm trying to knock it out
Pi5 just to start is ok, later on consider nvidia orin nx. Stay Away from I2C,instead use w5500 and use cat6 ethernet cables, each mcu can have its own ip and port or go towards CAN. Also what are your plans for battery?
Thanks for the tips! I hadn't heard of w5500 before and that actually looks like a great solution. I will probably go to CAN and swap the arduino for an esp32 to handle the extra data processing that CAN brings. For the battery so far I have been using a 20v Dewalt battery pack but in the long run I plan on using two LiFePo motorcycle batteries in series. They're crazy light weight and pack a lot of power for their size, should give plenty of runtime while keeping weight down. Plus I can get a deal on them through my old shop
GORGEOUS 😍
He gave it paws
How much noise do the DC motors make?
A lot, I honestly do not like how noisy they are but its hard to find anything in my price range that fits all my wants. The majority of the noise is from the PWM control so maybe thats something I can tune in the future but for now I will live with the noise
Why I2C and not CAN Bus?
Please add a version with wheels.
You should consider CAN bus over i2C , as CAN is better dealing with noise
Already in the works! Making the move to CAN also necessitated a more powerful microcontroller so a lot of work has gone into redesigning the motor controller boards. Overall should be a huge upgrade
What's i two c? Is that the same as i squared c?
I2C, even with buffering is so not the right choice for this - RS485 or CAN would be much more robust, and probably simpler to implement & debug
I agree, I went with I2c because its already integrated into the arduino but I have known for a while now that it was the wrong choice. I will be switching to CAN soon (new boards being designed now) but to do that I will also be switching to ESP32-C3's as the microcontroller. going from 16mhz to 160mhz processor will me a huge upgrade for PID and allow me to use a more resource heavy communication protocol.
Thanks for the comment by the way, I have been watching your videos for a very long time so its really cool to see you leave a comment
Good luck with ros2, its a huge clunker. I'm actually writing a custom system right now because it was actually easier than dealing with Ros2. Open source jank and techdebt is crazy with that project.
Good to know, I'm still going to give it a shot for its path planning and SLAM features but I may have to hand code the gates and walking functionality
Excellent
Wait you need to boost i2c?? I am doing a robot with 3 foot i2c runs right now, is that not going to work?
I2c was designed and is still only rated for something like 10cm, and so many comments on this video have been about how unreliable i2c is. The booster works but I’m actually ditching it for CANbus in the next revision. If it works for you I say keep it but if you start getting communication errors look into a booster board, adafruit makes a good one
Inquiry: What does the Rolling Contact Joint give in larger robotic applications? I subbed, good job :)
Good question, I'll cover this more in the next video but in short: closer to anatomically correct motion and increased "gear" ratio. Compared to a bearing joint, this joint travels a further distance to reach the same angle, which in practice gives it a greater mechanical advantage. This allows me to use a lower gear ratio motor which keeps the backdrive torque low
I'm not sure how I feel about having previously watched the two prerequisite videos he mentioned
Nicely done! You mentioned it's open source. Do you have a Github? Or are files available?
Thanks! I just uploaded the current leg CAD model to my website for download, you can find it in the link below. This is very much a work in progress and changes are made often, so if you're looking to build a leg I would wait a bit. As for code and PCB I am working on documentation right now and will hopefully have that on my site and github shortly
wilsonfabrication.com/open-source-robot-dog/
Liked and subbed!!!
What program did you use for to do this 3d model?
all the design work for the joints was in Fusion360, renders too. The PCB's were designed in Kicad which is able to output a STEP file which I then used to design around. Fusion has a free for hobby use version and its the more intuitive CAD program compared to Solidworks, I've heard good things about Onshape though so might be worth giving that a try too
@@WilsonFabrication thank you
I would go with CAN rather than I2C. Good luck anyway!
I’m been working with robotics for long time and using ROS
I recommend you not to use a RPi 5, it would be better an NVIDiA Orin nano or for a good performance Orin AGX
If you wan to add vision and fusion sensor data, and AI , AGX is the way to go
BTW your website is down
Thanks for the tips! I'll use the RPI to start since I have it on hand but I will definetly look into getting one of the other boards you recommended. Also website should be open now, it was geo locked to only US IP addresses but I opened it up
😢 sadly I can’t see your web site still
Blocked for UK or European IPs
Black Mirror robot dogs soon huh
awesome!
I would use can bus
I hope picking I2C will not choke project with limited throughput and latency. AFAIK robodog actuators usually are connected via CANbus which is better with both regards. If you want your poor mans fieldbus to be simple and on a budget, you could also make it with RS422/485
I've redesigned the motor controller boards to use an esp32 and CANbus. Massive upgrade, I2c really was a limitation
@@WilsonFabrication good
are you going to ditch brushed DC motors for BLDCs too while you are at it?
Would you be open to joining our AGI humanoid constructobot team? Stock equity available.
thiết kế rất đẹp....
This is actually pretty impressive dude. I definitely want to follow this more closely
😭😭😭😭what am I seeing, this design has so many flaws... but even these minor details about flaws... this is in the end pretty cool
Cool
Subbed!
yeah i2c booster is a solution but why not just serial, board clutter is my main concern,. althopugh they look good
I2c is what I was most familiar with so it can be hard to plan communication with a standard you don't understand as well. There will be 16 joints in total and it made more sense to me to use a BUS to communicate rather than a direct serial connection. But I will likely have to swap out the I2c soon so maybe its time I learn serial
@@WilsonFabrication your bot is already crazy good, i'm sure you can figure out everything you need
bro is weaponized adhd
you need to plan for water and dust protection of your pcbs early on don't forget it
Honestly hadn't thought about that yet. Might use something like the spray people use to waterproof ESC's on rc cars
@@WilsonFabrication look up ip ratings it’s explains the containment rules basically you’ll need the air openings in the bottom and in a way water can’t flow around the casing and in
very good thanks
There are plenty of ROS2 tutorials on here.
you maybe forgot cooling for raspberry pie , raspberry pi requires a fan to work properly
Honestly hadn't thought of cooling until I read your comment. For this V1 Pi board I will add a heatsink but in later revisions I will absolutely add a fan
first time in my life Ive heard anyone say i-two-c
let me join you.
🦾
Why these pics in between?? unitree go1 with machine gun - wtf??? Dwayne Johnson - what has he to do with such a project? I don't understand such a senseless clip cutting
I'm sorry but your design makes no sense, especially these motors, they are not capable of fast enough acceleration (because of rotor inertia) which is required for legged robots as you have to change direction of rotation couple times a second even for a simple gait.
Make it able to swim.
4:17 if you go to the science - so stop using parts of your body and other stupid things for measurements ☝😌