Lynxmotion Hexapod II from yesteryear
dwayne
Posts: 3
I have an unfinished hexapod kit that I purchased from Lynxmotion back in '02. I tried their tech support for this request, but the answer I got was that it was so old no one had even heard of what I am looking for. I did a search here on this forum with no luck...
So, what I am looking for is a software program called Hexagression. My kit consisted of a NextStep 2.0 carrier board for my Parallax BS2e chip, and the Hexagression floppy (yes, it came on a 3.5" floppy back then) would give me several modes of pre-programmed walking techniques for the 6 legged robot. Would anyone on this forum recall anything like it and possibly have it to share? I have scoured my house, found all the original documentation and printed emails with Lynxmotion from back then, but no software (the engineer from the old emails has since retired...).
My recourse is to purchase newer electronics but I would really like to exhaust my options on a couple of forums before giving up. Any help is GREATLY appreciated!
So, what I am looking for is a software program called Hexagression. My kit consisted of a NextStep 2.0 carrier board for my Parallax BS2e chip, and the Hexagression floppy (yes, it came on a 3.5" floppy back then) would give me several modes of pre-programmed walking techniques for the 6 legged robot. Would anyone on this forum recall anything like it and possibly have it to share? I have scoured my house, found all the original documentation and printed emails with Lynxmotion from back then, but no software (the engineer from the old emails has since retired...).
My recourse is to purchase newer electronics but I would really like to exhaust my options on a couple of forums before giving up. Any help is GREATLY appreciated!
Comments
The hexapod code I've seen is set up to use a PlayStation 2 controller.
You don't need an expensive servo control board. I've used a QuickStart to control an 18 servo hexapod and I also used a QuickStart to drive 32 servos (for the heck of it). I think a QuickStart would be an inexpensive way to get your bots up and running.
The Propeller Protoboard and the Propeller Project board are a couple of other good options for your robots. I'm using a Propeller Protoboard to control this hexapod.
The Prop can handle computing the IK equations for each of the 18 servos at a 50Hz refresh rate without any trouble.
I case you hadn't guessed by now, I think the Prop makes a great robot controller.
BTW, I heavily modified one of the PS2 objects to use the analog buttons on the PS2 controller. Most of the buttons on a PS2 controller are pressure sensitive but not many PS2 drivers take advantage of this fact.
It's relatively trivial (once you've done it many times before) to add a remote. I wanted to get my IK calculations worked out before adding a remote.
Paul K. has posted working IK code using a PS2 as the controller. I'm not using his code since I wanted to see if I could figure the IK stuff out on my own.
I'm using an 800mAh two cell LiPo from HobbyKing as the battery. I haven't timed how long it lasts since I've only been making short test walks with my hexapod so far.
If you're not using LiPo cells in your Hexapod, you really ought to give them some thought. They have a weight advantage over the other chemistries.
I do not see any of this older code so my choices are to go the hard way, try writing my own code from scratch, or upgrade to more contemporary hardware and have, at least, some code out there to play with to learn. The company (not sure if it is cool to name them...) suggested a botboarduino and associated hardware. Thoughts?
A $25 QuickStart or Propeller Project board would work as a controller. It might be easier to use the Propeller Project board since there's room on it for adding servo connectors. With the QuickStart, you'd need make a connecting board or use one of Jeff's servo boards at PropellerPowered.com.
I have some code that makes it easier to zero out the servos. I'll find it and add it to this thread.
The default centers are stored in the header file. I thought it would be easier to reuse the code with different hexapods if I moved the hexapod specific constants to a header file. You'll need to adjust the constants in the header file so the I/O pins associated with each servo are correct. I started my servos with I/O pin 8.
The program as it is now presents you with two choices:
Pressing "z" will set the pulse lengths of all the servos to 1500 us. Pressing "c" will allow you to adjust the center position of a specific servo.
When you press "c" the program will display the following:
The numbers "{0}[0][8]" indicate it's leg #0, servo #0, I/O pin #8. The servo and pin numbers displayed for each servo while the leg number is only displayed every third servo.
After these sets of numbers the current pulse length is displayed.
To adjust the center position of one of the servos type in the servo number. In this example, I'm adjusting servo #0, so I type "0" followed by the enter key. This is the output from the program after entering the servo number.
I'd suggest using the "*" and "/" keys to adjust your servo position initially and then use "+" and "-" for fine tuning the position. IMO, it's hard to see a difference with a change of just a few microseconds. The "*" and "/" keys add or subtract ten microseconds to/from the pulse length. The "+" and "-" keys change the pulse length by one microsecond.
Here's some sample output:
You'll want to make a note of the final pulse length so you can hard code it into your constants. As instructed by the program, press "x" to stop adjusting the position of the current servo.
This will be the output on exiting:
I found it a lot easier to adjust the centers this way than repeatedly entering different constant values and having to recompile and reload the changed code to see if the new value was correct.
As I mentioned, this program was part of a much larger program. While I removed the other methods, I left the many unused variables and constants. Hopefully these instructions here will be enough to allow others to use this program to find the center positions of their servos.