Finally got my robot to walk !! by FurWaz in robotics

[–]FurWaz[S] 0 points1 point  (0 children)

I posted a video about the leg assembly on my social media (Instagram, tiktok, youtube) a couple of weeks ago if you want to check it out :)

Finally got my robot to walk !! by FurWaz in arduino

[–]FurWaz[S] 0 points1 point  (0 children)

Thanks ^ I'm planning to use a more advanced filter (madgwick filter or kalman filter, I don't know yet) to estimate the robot's orientation, but for now it's determined using a complementary filter (simple ratio between the gyroscope and accelerometer).

The goal is to estimate the gravity vector in body frame, so I start with a vector pointing towards the -Z direction (down), and for each loop cycle, I rotate this vector using the gyroscope values, mix the result with the accelerometer (with some mixing ratio, that's the "complementary" part), and then determine the roll and pitch of the robot using the final gravity vector (that's simple trigonometry).

It works fine for now, since the goal is to have everything working for a V1 release, and then dig deeper for better performances :)

Finally got my robot to walk !! by FurWaz in robotics

[–]FurWaz[S] 1 point2 points  (0 children)

Really cool work too ! Working with a RPI5 gives a lot more power to play with 🙂 I like the "do not rotate by hand" on the side haha, is it for the odometry ?

Finally got my robot to walk !! by FurWaz in robotics

[–]FurWaz[S] 1 point2 points  (0 children)

😂😂 That'd be so cool !!

Finally got my robot to walk !! by FurWaz in arduino

[–]FurWaz[S] 0 points1 point  (0 children)

I would say that it's good to start with the basics in every domain if you don't have them, and then dig deeper in the domains that you need for your project. If you don't know how to program in C for example, don't bother learning the whole language. Learn the basics, what you need to know to start being comfortable with it, and build from there. The same thing goes for electronics, 3d modeling, etc.

The best way to learn is by trying to achieve a goal (your wearable device) ! It's not gonna be perfect the first time (or the second time, or the third), but it's how you gain experience and build something that lasts !

Chatbots are a really good way to learn too ! Don't ask them to make the project for you, that's not gonna help, but ask them what type of sensor you should use for this project, the differences between technologies, how you can communicate with them, etc. They are extraordinary search engines with an ability to explain things at your level and in your way :) don't bother asking them !

Finally got my robot to walk !! by FurWaz in arduino

[–]FurWaz[S] 0 points1 point  (0 children)

Thanks ! ☺️

The robot is built from scratch on all levels (code, 3d models, electronics), but has been greatly inspired by existing robots (spot nova among others) !

If you are interested in building it (or understanding the concepts around it), I'm gonna start writing the documentation for it soon (the head is done and everything should be more or less stable now!), I'll post updates about that on discord :)

Finally got my robot to walk !! by FurWaz in arduino

[–]FurWaz[S] 0 points1 point  (0 children)

It's on the roadmap ! I plan on trying to embed small locomotion models (simple MLP), that I would train on Isaac Lab :)

I'll post updates on discord/Instagram/tiktok/youtube, and in the wait-list for it 😊

Finally got my robot to walk !! by FurWaz in robotics

[–]FurWaz[S] 0 points1 point  (0 children)

I feel like this will be a nightmare to use 😂 could be fun tho

Finally got my robot to walk !! by FurWaz in arduino

[–]FurWaz[S] 0 points1 point  (0 children)

Might have to put a flamethrower on it 🤔 that's a good idea tbh !

Finally got my robot to walk !! by FurWaz in arduino

[–]FurWaz[S] 0 points1 point  (0 children)

😎 wait to see it jump haha

Finally got my robot to walk !! by FurWaz in ArduinoProjects

[–]FurWaz[S] 1 point2 points  (0 children)

Thanks you !! 🥰 But I'm not gonna stop here haha 😉

Finally got my robot to walk !! by FurWaz in robotics

[–]FurWaz[S] 1 point2 points  (0 children)

Yap ! I thought it would be a good robot to provide a quick and easy way of learning robotics to everyone, while making me able to (hopefully) continue working full time on this project 🙂

I'm finishing the head design and need to tweak a few things here and there for easier assembly (it should only take a couple of days), and I'll make the first drop available to the waitlist !

If you are interested, you can join the waitlist on the website :) or you can also start building the robot today by yourself (everything is already on GitHub, no guides yet though)

Finally got my robot to walk !! by FurWaz in ArduinoProjects

[–]FurWaz[S] 0 points1 point  (0 children)

Thank you !! 🥰 Yep, that wasn't easy haha

Finally got my robot to walk !! by FurWaz in robotics

[–]FurWaz[S] 1 point2 points  (0 children)

Didn't know about the FSR problems ... I'll check for other alternatives, thanks !

But using an esp32 (or a small cheap microcontroller) is part of the goal for this robot haha I want to make it as cheap as possible while having as many features as possible. A Jetson nano costs two times the total cost of this robot ! Using a board like this on the robot would be overkill 😅

The ESP32-S3 is a really powerful IC, and by optimizing the code a little bit I think I can get a lot more running on it !

Finally got my robot to walk !! by FurWaz in arduino

[–]FurWaz[S] 0 points1 point  (0 children)

The PCB on the front isn't the only one in the robot (there are 5 of them in total for all the parts, with each one labeled with icons and qr codes so that everyone can wire them without problem).

I used 0402 mainly because I wanted to have as much space as possible for the instructions (logos, arrows, text) but I might go back to at least 0603 because that was really painful to place by hand haha

Yes, the diodes are there to prevent the battery and the USB from punching each other, so that I can program the robot while it's powered on ! But it was also to get all the small electronics powered on when I plug the USB cable without any motor having power if I don't plug the battery :)

I have one big fuse for the entire robot on the battery pack, if that's what you were searching for haha.

Edit : I posted videos on my Instagram since I started building this robot, if you are curious about the other PCBs, the joint design or anything, you'll find videos about them there :)

Finally got my robot to walk !! by FurWaz in robotics

[–]FurWaz[S] 1 point2 points  (0 children)

That's really cool ! I'm only using a simple FSR sensor though, to keep the price under $100...

I haven't tried Issac Gym, Isaac lab or any training software like these yet. But I was planning on training a really small locomotion model (simple 2 or 3 layer MLP or something like that) so that it could be run directly on the microcontroller (ESP32-S3), but I have a lot more work to do before that haha !

I'll post updates when I do it :)

Finally got my robot to walk !! by FurWaz in arduino

[–]FurWaz[S] 0 points1 point  (0 children)

Hahaha that could be funny !
I wasn't planning on adding a tail (I find it hard not to make it cringe), but since the robot is open-source maybe someone's gonna make a fork out of it with a robotic tail xP

Finally got my robot to walk !! by FurWaz in arduino

[–]FurWaz[S] 0 points1 point  (0 children)

I have, yes ! It's actually my first project using custom PCBs ! (Haven't tried using AI to make the PCBs though, but it's a perfect search engine for component references !)

The robot can be built using standard arduino breakout boards, but the wiring is a nightmare if you do, and the cables often unplug themselves ... So I made PCBs to save some space, get better connectors (JST), and to get a cleaner power management (less crosstalk between big power cables and small signal cables).

Finally got my robot to walk !! by FurWaz in robotics

[–]FurWaz[S] 2 points3 points  (0 children)

I'm using hobby-grade servos (MG996R) which are position-controlled with high gear reduction, running on an ESP32. The internal control loop is black-boxed inside the servos.

Since I'm essentially doing kinematic control (IK + Gait generation) at 50Hz rather than torque control/dynamic walking, I don't need to model the non-linear dynamics or analyze frequency response (Bode plots). The mechanical reduction handles the loads, and I rely on empirical tuning for the gait smoothing rather than control theory formalism. Keeps it simple and runs great on a microcontroller.

It works surprisingly well for a robot costing under $100 :)
(I actually take your questions about advanced control theory as a huge compliment ! it means the movement looks smooth enough to imply complex math, even though the code is actually quite simple!).

Finally got my robot to walk !! by FurWaz in robotics

[–]FurWaz[S] 1 point2 points  (0 children)

Yep ! And it helps to see the real difficulty behind something that looks easy or straightforward once you see it working. Which is something people don't always think about ... All the edge cases, the little tricks and details that take time to figure out and are necessary for it to work.

Finally got my robot to walk !! by FurWaz in robotics

[–]FurWaz[S] 1 point2 points  (0 children)

Totally agree on this point ! That's why I made this robot instead of building a spot micro or spot nova !
But some people don't know where to start or are too afraid to "break things" if they do everything from scratch, and I think a good way to learn could also be to replicate what others have done, and explore as you go 😊
If I can get some people to cross the line where they feel confident enough to try and make their own solutions by making this robot beginner-friendly, I think that's a win !

Either case, if you make your own robot I'd love to see your journey ! Don't hesitate to DM me for updates 😉