I hope you all enjoyed the video! Make sure to subscribe so that you don't miss future videos. I am really happy with the result. It might not be perfect but thats fine. Although I think it looks even greater in person :)
@Omen2005 That is not really a simulation. I didn't have one of those. It is purely an animation to explain the walk algorithm. Edit. But the Program I used was Blender
Wow, how old are you? Don't take it the wrong ; what you did is so cool. I have been lecturing university master's students, and they are not capable of doing what you just did at home. I wish I had you as a student. Good job, keep it up!
Absolut überragend! Während andere in deinem Alter mit zocken die Zeit verschwenden programmierst und baust du etwas was viele nach ein paar Jahren Ausbildung nicht gebacken bekommen ! Mein Respekt und weiter so 😁🙌🏻
Great Job! the best pert is when your father "try" (play...) it! usaully a dad buy a robot for his children... here something gos opposite! Really good job and thanks for sharing!
I made sure that the battery can be disconnected and charged using an XT60 connector. Later I also made a Y splitter. This allows me to run the hexapod with the battery connected and power it from my lab power supply :)
Can you please provide an uncut video of the duration in which you made all the connections, I am having a hard time figuring out some things. What is the bigger connector connected to the xt60 connectors? Great work BTW! Keep it up
If you are having trouble figuring out the wiring I would recomend the GitHub page. I have a wiring diagram there :) That big conector you saw is probably my Y-splitter. For the development I wanted to make shure I could power the hexapod with my lab bench supply with the battery connected. If you have any more Issues feel free to send me an Email. I would be happy to help you :). I do have exams at the moment so I might not reply right away.
That's a _really_ cool result you got there! Nice job on explaining the walk, too! I was wondering if you considered using cables/sinews on the legs, and if you did, what made you decide to go with direct servos instead. With robotic hands, for example, people often use a human-like approach with all the motors in the arm, and I was under the impression that that's more than just a space issue. As I understand it, you can get flexibility into it more easily that way (which might make 3D terrain easier, too, idk)
Thanks :) I did actually thought about it. I didn’t go that route for two reasons 1) Complexity: Using cables increases complexity compared to what I did. With more parts it becomes harder to build and more things can break. 2) Space constraints: If I wanted to use cables I deduced that I would have to mount the servos inside the body. Getting the Servos AND Electronics to fit inside the main body would not have been possible. It would have some benefits, especially for 3D terrain, but those are in my opinion not worth the added complexity. Especially for my first Hexapod.
Hello, very good work, you are very good, question about the PCA9685 servo control in which you solder the node, in the first or in the second, when soldering it in the second when connecting to Bluetooth, the first movement of the first three legs is done well, and the other three make the opposite movement, but if I weld it differently, leg 1 does not make movements, can you help me, thank you.
I don't quit understand what you mean. Do you mean which one of the drivers has the solder jumper for the second I2C address soldert? Feel free to send me an Email (sirkuhnhero@posteo.com) with some more information and some images or videos. I would be happy to help you :)
The walk animation was created in Blender. However, I wouldn't call it a simulation. I didn't have anything like that. Maybe something to explore in the future :)
I made sure to assemble the legs with each servo fist being moved to the center position (90 if the servo range is between 0 and 180). Since I also assembled it with each joint having a 90 degree angle I have enough movement in the Servo :)
That's a pretty difficult question. I started with robotics by learning how to interface with servos, steppers and mature sensors like the MPU6050. I can't remember what my first robotics project was but starting simple and learning the basics of programming, interfacing with actuators (motors etc.) and electrical design is probably the best idea. If I had to give a recommendation it would probably be some sort of 4WD Car. You can get full kits that have everything you need for relatively cheap (although buying all the components yourself can be cheaper). Alternatively you can have a look around Instuctables. There are a ton of like minded makers there that upload instructions on doing everything from building 4WD Cars to advanced electronic design. Ultimately you have to find projects you are passionate about ;)
If I dont use the LEDs, do i still need to add the module powering the LEDs? I have bought it, but it is giving output of ~21V, a huge amount of current, that will fry the servos. How do I make it work?
If you can't adjust the output voltage you don't strictly have to use it. I personally like to use a different power supply for my servos and my microcontroller. But you should be able to connect everything to the main buck converter :)
I didn't really do a simulation. I did an animation to explain my walk algorithm. I did briefly look into doing a simulation but that seems like more work than it's worth for me :)
how did you upload all the files in the microcontroller ? do i have to select and opload one by one or i can select alll the fiiles and it will be uploaded ? please tell
You will need to open the Hexapod_code folder with PlatformIO. PlatformIO will handle compiling all of the files into once you tell it to upload to your microcontroller. If you have never used PlatformIO I would recoment doing a very simple project (like a blink sketch) just to get some experience with a simpler project.
I made a simple y splitter between the battery and the power converter. I can unplug the batter and charge it with my lap bemch power supply or alternativly charge it while the Hexapod is running. Hope this helps :)
That sounds awesome. I actually thought about it and did some rough calculations too. It should be possible, but it will take a lot of time and money. Unfortunately I don't have enough of either.
I made sure to have a XT60 connection between the battery and the rest of the system. When I want to charge the battery I can just unplug it an charge it with my lab bench power supply :)
I soldered two male and one female XT60 connector together to create a compact y splitter. For charging I used my labbench power supply (set to 8.4V and 2A). I don't need to worry about balancing since the BMS takes care of that. Alternatively you could also use a constant current power supply (with 8.4 Volt).
Should work. I think I remember having seen some Hexapods using an arduino. I am just a little bit worried that it is not fast enough for the inverse kinematics. I have no idea how unoptimized my code is. But even if the inverse kinematics end up slowing it down, which I don't consider to be likely, it will just walk a bit slower.
Aa far as I remember the issue was the inverse kinematics model. Something about the sin wraping around from 1 to 0, but I honestly can't really remember. Also you should be able to use an esp32. However that will require some changes in code.
Unfortunately I currently can't help you. I am on vacation. But you can write me a Email at sirkuhnhero@posteo.com and I can try to help once I get home :)
I don't think I will do something like this for this version. Making a video takes a LOT of time. However I do have Ideas for a v1.1, basically a very similar design but with a few small upgrades, and I might make a full tutorial for that. If you or other people have any Questions I would be more than happy to help you :)
You can just leave them out if you want to. Simply not use the #define for the LEDs in the header.h file. The Hexapod code will ignore everything that has to do with the LEDs
I think you would only need to change the "DATA_PIN" for the LED strip and the "txBluetooth" & "rxBluetooth" for your bluetooth module in the header.h file. Since the servo driver uses I2C you probably wont need to change that if you use I2C0. You might need to change the channel for each servo depending on where you connect them on the driver (in output.cpp). You will also need to change the platform.ini file. right now it is set up to build for the stm32. I don't know what changes you need exactly but you can create a new PlatformIO project and take a look at the created platformio.ini file. That will be a good template. Just remember that you need to keep the lib_deps definition. Without them it doesn't include the required libraries.
@@SirKuhnhero oh man you ready for a minblowing trick? Next time you copy/paste hit windows + v instead of ctrl+v. Once activate it will store your last 20 copies for pasting. Ctrl+v still will work and paste last thing copied but wnd+v opens a menu.
Great project! Just before i start to print anything, how tight are the tolerances? I have my printed pretty good tuned, so i don't want any part to be "sloppy"
If you have a pretty well tuned printer it shouldn't be an issue. I would recomend printing & building a single leg first. This will also help you find the right fit for the sliprings. For those you can just add a bit of xy compensation to get just the right fit. Hope this helps :)
@@SirKuhnhero Thanks for the answer, I have now printed all the parts :P I still need to wait on some of the hardware. But i saw in you'r "to buy list" there is no Bluetooth module? but in the wiring diagram there seems to be one?
@SirKuhnhero and one more thing, maybe it's only me but when I download the files from Github some of them are only 1 kb in size, like the fusion archive file 🙂 Nice project anyway, I will build one and se for my self
@@Omen2005 Thats because those large files use Github LFS. Sadly the free tier has a bandwith cap for downloads and I reacht that some time ago. Unless this bandwith cap resets you won't be able to download those files. But you can find them on Printables ;)
The render was done in blender. Took some time but I think it paid off :) If you are talking about the simulation directory on GitHub, that was meant to me made in Unity. Although I abandobd that loong ago.
Pretty much only visuals. I did make a geometry nodes setup to get that last animation to work procedurally but that was done after. I did use simulations in Unity to learn about the IK model for the leg. That is the simulation directory on GitHub. I don’t know if it is possible to use blender for such simulations but I will look into that for future robotics projects.
I don't know where you live, so I don't know what modules are available. But any 2s BMS should work fine if it is rated for something like 20A of current. Just make sure it also balances the cells (most should do that though).
When i am uploading code in the stm32 using stlink it is not uploading and showing this error OpenOCD init failed and on devices my stm32 is not being detected so is my stlink npt working properly ??
@@SirKuhnhero how did you upload the upload the code using st-link or FTDI programmer and if you have used an FTDI programmer can tell the exact module
I used both at some point. I don't really know the exact module, but YP-05 is written on the back. It's one of those red boards that you see everywhere. Don't know if that answers your question. Sorry, I can't be of more help.
@@SirKuhnhero i just to need to ask one more question did you flash the bootloader or you always connect the stm32 to that module and then to you pc and then upload it
You should not be soldering to the li-ion cells like that, the heat can damage them, the proper way is to spot weld them. Also just shoving cells together in parallel like that isn’t safe, I hope you at least checked the voltages before you did that. Also if you are just printing out of PLA you should be more careful with heat generating components (motors, voltage converters, heatsinks, etc), PLA softens at only 50-60 C. You also use a lot of hot glue and other semi permanent attachment solutions, that will become very annoying if you need to take it apart again, especially when gluing over bolt heads. If your LEDs draw 60 mA each at max brightness and you have 271 LEDs then that is a total of 16 A at full brightness, you will have to run the LEDs at very low brightness if you want that 5 V converter to survive. Good work though.
Thank you for the input :) You are right. You should not solder directly onto a li-ion cell. However since I got mine from an old e bike battery they still had some nickle strips that where spot welded. When I was soldering to the cell I was actually soldering to those nickle strips. Might have been hard to see. Personally I had no real problems with heat. But I also don't run it for long periods of time. I am also not the biggest fan of hot glue. But I had no real issues so far because everything I need to access regularly is not using hot glue. However I would do something different with the LEDs for the legs. I had to replace a Servo once and it quit annoying. Also you are right about the power consumption of the LEDs. When I first turned it on the buck converter was screaming in pain. However 100% brightness is way to bright anyway. I ended up using it on 1%-3% brightness.
You can find the most important Models on Printables and Instructables. I made shure to combine all the models you need to print for a single leg into one .3mf file. That way it is much more convienient. If you also want every model individually take a look at the GitHub repo. There is also some stuff there that I couldn't upload elsewhere. All that is in the Descriptions. Hope this helps :)