I am very happy with the result. I know… there is a lot to improve… but, having worked practically only with robots moved by tank tracks and DC motors and having very limited knowledge in programming, this project is well outside my comfort zone…
Spent about 3 days trying to figure out how to make it walk and write a functional code. For now the code has no IK implemented.
As I previously worked with Flash to make animations, it was easy for me to find the angles, creating two lines (red and blue) that represent the leg segments and I was able to position them where I wanted and to find the angles I used a drawing of a protractor of angles.
That is well done! There’s really not much out there “ready to go” regarding IK for animal quadruped motion (quite a few papers), so the approach you took got you to a working result. As you’re likely aware, the (current) Phoenix code implemented on the Lynxmotion legged robots uses coordinate systems as opposed to IK. The lower limb seems to be at a very acute angle to the ground, likely requiring quite a bit of torque - might want to straighten it more? If you can work out a system to automatically determine joint angles, you’ll be able to adapt the walking gait, work on turning etc. Given your interest and abilities, wonder if you want to look into jumping on the ROS 2.0 bandwagon?
Next iteration on the code for walking routine will have some improvements. This may be one of them. Lack of time to work more on coding right now.
I have been following the SES V2 Legged Robots thread and that got me a bit interested in ROS 2.0… but my knowledge on this is zero… also, not very familiar with RPi. So, there would be a learning curve. And I don’t have much time to work (due to my job, house, wife, son, real dogs)… so it would take a little longer to start working.
BUT I really dreamed (a few times) about an advanced/more adaptive and slightly larger version of mechDOG (even more inspired by Spot), and that would need RPi + ROS 2.0. Off course it would also need HT1 servos (everything improved, stronger).
Hopefully as Lynxmotion moves towards ROS 2.0, we’ll be creating tutorials etc.
However, as you indicated, it’s quite a learning curve. Arduino is always a great language and looking forward to seeing your progress!
To be honest, I was concerned about this specific movement… because the design of mechDOG is not symmetrical and what that implies in CoG / CoM.
Note that the green tape remains on the tips (remove it and it will be an issue… because of the asymmetrical design, the mass distribution is not well done, and the body tends to tilt to one side, and the rubber tips would cause friction.).
But maybe it can be balanced with IMU.
BUT… it’s working! Not perfect… but working. I’m happy with the result!