Project Phoenix Excel program + Manual

Hi Tom,

Thanks for the link! And actually I have that book too. :wink:

(but you didnā€™t answer my first Qā€¦ :wink: )

Oh sorry, I thought you were addressing Xan, so I didnā€™t think about it :wink:

I was speaking of the body rotation. For a hexapod like the CH3-R, since the body is round, it is quite easy and very obvious, but for a hexapod that has a rectangular body, the rotation in place was a challenge in my opinion.

I tackled it just as I stated, I didnā€™t bother adding the X-axis after the transformation (not to be confused with the global X-value, since the local Y-value still depended on it).

What that basically did was fix the knee servo to be somewhat constant. The hip-horizontal servos swung accordingly. The hip_horizontal servos at the corners of the body swung at a much smaller angle with the two hip_horizontal servo in the middle to swing the largest angle (just as it does when walking forward)ā€¦

The text book by Jezar is great! I found a whole wealth of information in there. Like all new theories, it takes a while to digest, but once you get over the ā€œI accept this as trueā€ part, it is quite handy!

Whatā€™s new on PEP version 1.09?

Hi,
1.09 is little bugfix from 1.08
In 1.08 you can define coxa offset (60 deg for LM Phoenix).
Actually Iā€™ve found one more little bug in the 1.09 too (the C-T spinbuttons donā€™t work properly for the rear and front leg due to the coxaoffset). Iā€™ve fixed it in the 1.10 ver.

Have not mailed the 1.10 it to Lynxmotion yet.

Hi!

Iā€™ve been working with a major UPDATED version of PEP. To be honest I think this is a little revolution! :laughing:

A screenshot from PEP ver 2.00 beta:

Did you see the difference? :wink:
PEP has direct communication to the SSC32! I think this ability is a great improvement and make it much easier to create some cool sequences. With live control from PEP you get the result at ones, no need to export the project to SEQ every time you want to check if youā€™ve done it right.

Itā€™s also possible to play a sequence directly from PEP.

I do have some bugs to solve. Iā€™m not very good with the VB programming and Iā€™ve tested two methods for communication. Iā€™m testing an ActiveX controll called NETCommOCX (I donā€™t have Visual studio or VB, only Excel, so I donā€™t have MSComm). But Iā€™m struggling with the reading part NETComm.InputData, probably a timing issue :confused: . Iā€™ve also tested a module called modCOMM - Written by: David M. Hitchner. The input/output part works great but Iā€™m experience other problems with that, the spinbuttons seem to be echoed by the serial commands. Iā€™ve made a bad way around it.

I probably need some help from someone with experience of VB and communication with SSC32.

Maybe some beta testers who wants to try. Warning, my code are a complete mess! :wink:

Another screenshot of the setup sheet:

Itā€™s very important to calibrate using SEQ and then fill in all the pwm values from SEQ to make PEP able to calculate the correct pwm value.

Hi Zenta,

Using PEP V1.09LM the step value isnā€™t working properly for me. Although the ā€œAll legs - step valueā€ is set at 1.0 cm, actual movement in my case is between 1.2 and 1.5 cm.

If I start the bot in the home position, the underside of the phoenix is 7.0 cm above the supporting surface. Using PEP, I then lower the body 7 times and the leg diagram indicates the tars is just above the surface with the body resting on it.

However when I import the .CSV file into the SEQ program and step through it, the robot drops more than 1 cm at each step. Measuring the distance from the phoenix bottom to the table I get 7.0 - 5.8 - 4.5 - 3.0 - 1.5 -ground for each step.

Any idea on what may be causing this.

I also sent you a PM regarding version 2.0.

Thanks,
Harry

Hi Harry,

I think this is mostly a calibrating issue. I did just run a test on my LM Phoenix. Started with all legs touching the floor Y = 3.0 cm and did 7 steps (1 cm) moving the body upward and I got about 1 mm failure total.

When I calibrated the servos (max, min and center position) I didnā€™t have any load on the servos. Because of the metal geartrain on the MG645 there will always be a little difference when the servos are loaded.

If you have the center position calibrated properly you should get pretty accurate result when the femur and tibia servos are close to the center position. But youā€™ll get more and more failure when moving the servos further from the center position when the max and min positions are not set properly.

I think I proved that PEP are accurate enough when I mounted a pen to the tars on only one leg for some simple writing. :wink:

Hi Zenta,

ItƃĀ¢Ć¢ā€šĀ¬Ć¢ā€žĀ¢s been a while since IƃĀ¢Ć¢ā€šĀ¬Ć¢ā€žĀ¢ve seen you around here :wink: Glad to have you back!

I donƃĀ¢Ć¢ā€šĀ¬Ć¢ā€žĀ¢t know how you debug your code right now but I got some real headache from VB in excel in the past. I found a free program called Microsoft Script Debugger which allow you to debug much easier because you can place brakepoints.

I donƃĀ¢Ć¢ā€šĀ¬Ć¢ā€žĀ¢t know if this is new for you but Microsoft has released a free edition from VS called Visual Studio Express. It has some limitations but I donƃĀ¢Ć¢ā€šĀ¬Ć¢ā€žĀ¢t know exactly which ones.

IƃĀ¢Ć¢ā€šĀ¬Ć¢ā€žĀ¢m mostly a C# programmer but I did some VB in the past. I canƃĀ¢Ć¢ā€šĀ¬Ć¢ā€žĀ¢t promise to solve the issues but off course IƃĀ¢Ć¢ā€šĀ¬Ć¢ā€žĀ¢m willing to help. Send me a mail with a copy and a description what the exact problem is and where I can find it in the code.

Xan

Hi Xan,

Iā€™ve been away on a two week vacation without any internet! LOL

Thanks for your tip, Iā€™ll try to check it out (when I find time for it ā€¦ :unamused: ). So far Iā€™m using the module called modCOMM and it works OK for me but I canā€™t promise it will for work for everyone. maybe I should send a copy to Jim so that everyone who wants can try it.

Really? Are there still places on earth without internet? :open_mouth: Cool!

Do you use modCOMM for the serial communication or is it a debugging tool? It should not be to hard to open a serial connection with VB. :unamused:

Oh yes! :wink: Far away into the nature/mountains. Plenty of time to study live creatures like ants and other bugs :laughing:

I use it for serial communication. VB in Excel does not include the serial module. Iā€™ll have to try the free VS maybe?

Hi,

Iā€™ve just mailed the new LM PEP ver 2.01 beta version to Jim.

Whatā€™s new on the LM2.01beta PEP sheet:

  1. Live SSC32 control (beta)
  2. Added forward kinematics control for all legs (new spinbuttons, femur and tibia angle)
  3. ā€œSwap RF <-> LFā€ button in the write sequnces section, simply swap the FK values between the right and left front legs, very useful if you wants to make a sequences of Phoenix waving her front legs.
  4. ā€œLock to Readā€ button in the write sequences section, it locks the sequnce nr and the step nr to the read sequnces values. Very useful when you are doing modifications on exsisting sequences.
  5. Setup section. If you want our Phoenix to respond correctly youā€™ll have to calibrate both min and max angle values for each servo, not only the ā€œ1500ā€ center value. PEP calculates the correct pwm value for a given angle value, the same way like SEQ does. The comport and baudrate can also be set here. I think in the future Iā€™ll make a dialog box with preset values for the com setting.

All these threads. :unamused: PEP are also discussed in my Project Phoenix thread:

Beth just informed me she uploaded the v2.02 file and updated the project.

lynxmotion.com/images/html/proj098.htm

Thanks for sharing Zenta! 8)

Thx Zenta for this excellent work!
It shure helps in the understanding of IK, and is an excellent base for my further work.
I have build a hexapod HR3 with parallel legs, and have received today the Phoenix kit, for which I still need some servos (ƃĀ¢Ć¢ā‚¬Å”ƂĀ¬-eaters!).
Which ones does everyone use? The Hitec654MG seems quite popular. I have also tried the digital ones from Hitec, but the high pitched noise they are making when under load is unbearable.
I plan to use the SSC32 on the robot, I have connected it via Xbee to my Laptop, where up to now all the intelligence will be programmed. In C(#) by the way, I do not like BASIC. I will probably use AtMegaxx or LPC21xx for autonomous intelligence on the Robot, I have also used the Servopod from New Micros, but Forth is not for me, seems I donā€™t have the right or better ā€œreversedā€ brain for that.
BTW where are you based in Norway?I did work at Stavanger and also Trondheim.
Regards, Fried

You are welcome! Iā€™m glad you could use and learn from it.

Congratz with the Phoenix kit! The 645MG should be strong enough and I agree about the ā€œdigital noiseā€. I can imagine that 18 digital servos would make alot of noise :angry:

Sounds interesting, are you going to share your code? Would be interesting to see what you came up with. Remember to post some pics and videos in your own thread one time.

I live in Stavanger :wink:

Shure I will share my code as soon as I come up with something usable.
I use the Proteus Dev environment for electronics, it is IMO the best afforble package available today.
For the mechanical part, I have a very old Solidworks(2003)&CosmosMotion(2001) system available, to test some prototipng. It works quite well, but for CosmosMotion, one has to put in the whole IK equation for one joint in one line. I have got it working for a 3 joint leg drawing a straight line, but it is a line of about 400 characters!
Off topic:
I liked Stavanger very much, it is a beautiful :smiley: albeit very expensive :frowning: city!
I work there for EON, Exploration & Production.
BTW i tried to modify the basic data in your sheet for the parallel hexapod. This worked well but for the coxa offset, I tried to input zero but without success.

If you change the coxa offset in the setup sheet youā€™ll have to save the PEP sheet and then load it again to make it work. If you change the coxa offset you also need to clear the ind.sekvenser sheet, the old sequences wonā€™t work if you have changed the coxa offset.

Thx Zenta, all works fine now.
One question though remains:
In your intructions, you tell what servos should be connected to what slot of the SSC32. Thatā€™s understood. But then you have a line with the posision ā€œnormalā€, ā€œdisableā€ or ā€œreverseā€. Where do I save this information? In the SSC32?
Thx, Fried

PEP are supposed to work together with Visual sequencer (SEQ), the generated sequences are played by SEQ. The normal, disable and reverse are refering to Visual sequencers SSC32 configuration.