This is a hexapod I've been working on for a while. It's a kit from Paul K. The hexapod uses HobyKing HXT900 servos. I was able to get the robot to successfully walk autonomously in a figure 8 pattern with all three legs on a side pointing the same direction (straight out). When I moved the corner legs so their starting positions were 60 degree from their neighboring legs, my IK code didn't work correctly. The hip angle of the leg is one of the parameters in the IK equation. I must of something in my equation incorrect since the equally spaced angle version of my code makes the robot dance in place.
There exists perfectly good IK code for this hexapod, but I've always wanted to see if I could figure the IK equations out on my own so I haven't used the other code yet. It seems like there are only a few hours a day that my brain works well enough to make some sense of the equations involved so I haven't yet fixed my IK code to deal with this 60 problem.
Paul K. sent gave me this hexapod hardware. Paul K. makes all sorts of cool stuff and I assume was looking for some feedback about a hexapod kit he was considering selling. Paul had seen my Popsicle stick hexapod (inspired by OddBot's "Chopsticks"). While my Popsicle stick robot was woefully under powered, I guess it showed Paul I was interested enough in hexapods that I'd probably complete his kit.
As Bajdi mentioned on his Bafdupod 996R page, finding regulators to power all those servos can be a problem. I'm presently using a pair of Dimension Engineering regulators. I use one regulator for three legs of the robot.
I've fond some other regulators that seem to work well and cost a lot less on ebay. I may switch to use these other regulators if they don't weight much more than the DE version.
I have a really cool four joystick remote from Paul K. I plan to use with this robot. I want to get the kinks out of my IK algorithms before I make the robot remote controlled so I'll likely wait a bit before adding an XBee for the remote.
I had previously planned to use Nordic nRF24L01+ module as a remote, but Paul's remote is made for the XBee and it doesn't have enough spare I/O pins to control a nRF24L01+ SPI interface.
Hopefully I'll have this robot walking again soon.
Update: 15 September 2014
I'm rewriting the program controlling the hexapod. I decided to use the equations posted by Aniss1001 in this new program. All my previous IK equations were ones I derived myself and I'm not completely sure they were correct.
I added a video testing the new equations. The robot appears to be walking correctly. I'll probably change the stance of the robot to place less torque on the servos. As the robot walks now, there's a lot of jitter but I think some of it will be reduced if I place less strain on the power supply.
I hope to add some better (and more interesting than the ones posted so far) soon.
Update: 25 September 2014
The new video shows the robot being controlled remotely. While the remote I'm using is really cool, the amount of control I presently have over the robot is very limited. I can kind of control the speed of the robot and I can also control the direction the robot travels.
I'm using a Q4 remote control made expressly for controlling hexapods by Quantum Robotic Inc.. The Q4 was part of a successful Kickstarter project.
Paul Krasinski who had previously given me the hexapod kit also gave me a Q4 remote. The Q4 is pretty darn cool.
The Q4 uses a Propeller microcontroller so I've been writing my own software for the remote. Writing the remote's software was harder than I had thought it would be. Trying to come up with an intuitive menu system for all these buttons and switches while displaying the output on a 2 line LCD as been a challenge. Right now, I'm not having the remote do anything complicated. It just packs the joystick data into a pack similar to that used by the PlayStation 2 controller and transmits the data to the robot.
As you can see near the end of the latest video, I still have some bugs in the code.
I may be having interference from the new switching regulators I'm using. I'll need to add some code to stop the hexapod if new transmissions aren't being received. I don't want the robot to just continue walking if no new commands are coming in.
I recently changed the coordinate system I use to keep track of position and angles. I had been using a xyz system with the x-axis pointing out from the robot's right side with the y-axis pointing out the front of the robot. The z-axis was positive above the robot.
After reading trough one of the navigation papers bdk6 posted, I decided to switch to the "NED" system. NED stands for North, East, Down.
One benefit from using NED is it's much easier to convert between a navigation heading with north being zero degrees and the direction the robot should travel.
I feel like my time spent programming this robot is now being spent more productively since I can use the same code written for this robot with my larger "Halloween Hex". I just use separate header files for the two robot. The header files include data about the center positions of the servos and the length of the robot's limbs and body.
Hopefully, I can come up with some fun way for these two hexapods to interact with one other.