PDA

View Full Version : The Ultimate Phoenix Thread



tom_chang79
05-15-2008, 01:11 AM
This thread is for all things Phoenix-like Hexapods. It can be Lynxmotion's or your own original style (looking at your direction, Matt Denton, Zenta, and Xan ;))

I've just posted my images of my Phoenix on this site... Now that the mechanical and the electrical is done, time for deving!

tom_chang79
05-21-2008, 10:10 AM
http://forums.trossenrobotics.com/gallery/files/1/5/6/5/img_1741_original.jpg

http://forums.trossenrobotics.com/gallery/files/1/5/6/5/img_1740.jpg

http://forums.trossenrobotics.com/gallery/files/1/5/6/5/img_1739.jpg

http://forums.trossenrobotics.com/gallery/files/1/5/6/5/img_1738.jpg

Alex
05-21-2008, 11:20 AM
very impressive work Tom! What software are you using for this?

Do you have this running? Videos!! I want some videos!!:D

Adrenalynn
05-21-2008, 01:24 PM
Soooo Purdy!

tom_chang79
05-21-2008, 10:37 PM
Thanks! :)

No software yet. I have a modified code generated by Powerpod that was modded to run on the Atom Pro (rather then the Basic Atom) that runs great on my CH3-R. I need to modify it and clean up that code further for the Phoenix... It's a beautiful IK-based program created by Laurent Gay for Lynxmotion. It's a great foundation to start with, regardless of whether you have a Lynxmotion hexapod or not...

One of the things I must do first is I'm still struggling on the mechanical configuration. My own preference before doing software development is to make sure that the mechanical aspect of the bot is "finished" and cleaned up. I'm still struggling to place the power (batteries) in a comfortable location. Currently, I have it strapped to the underside of the hexapod as you can see, and I don't like it cause it takes away clearance. I think I need to raise the ssc-32 slightly by using shorter stand-offs, then reconfigure my side-by-side packs to be a hump pack, with three on the bottom, two on the top. I also ordered some rechargeable 9v (280mAH versions) for the logic, since I used to use two 5XAA-cell packs: one for the logic, one for the servo, which wasn't a problem on the CH3-R with the chassis being so roomy.

One of the most challenging things about the Phoenix is to cram all that electronic and battery pack(s) onto such a cramped space... and doing it elegantly, so that it doesn't detract from the aesthetics...

LinuxGuy
05-22-2008, 02:52 PM
One of the things I must do first is I'm still struggling on the mechanical configuration. My own preference before doing software development is to make sure that the mechanical aspect of the bot is "finished" and cleaned up. I'm still struggling to place the power (batteries) in a comfortable location.
You're doing great work on this, Tom! I love the red tie wraps. :veryhappy: I think they really add to the over all look of this Phoenix. I am sure you will get it all figured out. What batteries are you using? I'd use a pair of [email protected] mAH hour packs just for the servos - one to power each side of the SSC-32. Then use another like pack for the electronics. I don't know if Phoenix has room for this arrangement though.

tom_chang79
05-22-2008, 08:53 PM
Thanks Dale. I purposely chose the red tie wraps to contrast with the black to give it a more "black widow" color scheme...

I've always used a pair of 5-cell AA packs, 2500mAH NiMH Energizers. One for the servo power and one for the electronics. I'm now going to be reconfiguring those packs to be a hump pack and lifting the ssc-32 a little higher away from the lower deck with shorter standoffs (since it's attached to the top deck).

For the logic side, I just recently bought a pair of 280mAH 9V rechargeables... Going to see how those are going.

My experience with the Energizers, steer clear of them. They are really crappy batteries. If you can get them cheap, then use them, but never pay full price for these batteries. The capacity seems over rated, I have never successfully filled it up to 2500mAH capacity during charge, only got them to be about 2000mAH, and they are quite leaky compared to other NiMH that I've used. I've always been able to stuff about 3400mAH to 3600mAH capacity into my 3300mAH sub-C packs... Also, be careful of the charging rate. I think I set mine at 1A charge rate on my LRP Pulsar 2 charger. Tried it starting at 3.0A and one of the packs got dangerously hot... Even at 1.5A charge, it get real hot...

If you're going for NiMH packs, go for the 2/3A cell packs they sell for receivers, or just go all out sub-C cells. I think sub-C cells are the best for the size, price, capacity, weight, and discharge rate...

So my power will now be a 5-cell AA hump pack with a 9V for the logic... More pics hopefully soon! :p

Adrenalynn
05-23-2008, 05:40 PM
I totally agree with you re: the energizers. Way over-rated, imho. Putting them up against identically spec'd "real" cells they don't hold even half the lifespan under high drain application.

I envy your black widow-like 'bot. I have a couple of the "real things" living here in the lab. My favorite critters ever! :)

tom_chang79
05-23-2008, 06:15 PM
Check out Zenta's pics. He has the true black widow (8 legs):

http://forums.trossenrobotics.com/gallery/files/1/5/3/5/oxyopus07.jpg

That has got to be the coolest bot I've ever seen.

I'm happy with just 6 legs but 8 qualifies it to be an arachnida!


But back to the subject of the Phoenix, anyone else here own this bot? I'm currently cleaning up the servo wires again, I was still unhappy with the way I cleaned it up. Now it's much more cleaner then before... I think I"m addicted to cleaning up servo wires, there's always some way to clean it up even better then the previous attempt, at some point I just have to let it go and just play with the darn bot... :p

Adrenalynn
05-23-2008, 07:47 PM
[whistle] Wow, that's gorgeous!!! I should get into legged'bots one of these days.

I know little about the multipods. Could you get away with building a really tiny one using the new[ish] submicro servos (like this: http://www.servocity.com/html/s3113_micro_servo.html ). No problem with cutting the bits myself... Is a 21oz-in servo enough to carry a small battery and an SSC32, as well as its own servo weight?

tom_chang79
05-23-2008, 08:58 PM
I don't know about 21 oz-in, but Innovati seems to get away with micro servos:

YouTube - mini hexapod

When you consider batteries and such with it, I'd go for broke and would use something like these:

http://www3.towerhobbies.com/cgi-bin/wti0001p?&I=LXLN95&P=0

http://www3.towerhobbies.com/cgi-bin/wti0001p?&I=LXLN96&P=0

I believe those two are identical servos. Tower Hobbies servos and equipments are often re-badged Hobbico, and Hobbico items are often re-badge of Hitec Servos...

Both of them have 54-55 oz-in of torque at 4.8V! For micros, I'd look at 4.8V ratings since you want to keep your payload (batteries) to a minimum...

I'm waiting on Lynxmotion to make some micro brackets. It's one of the things on Jim's to-do-list for 2008, I think you'll probably start to see some micro-servo based bots once he releases his brackets...

LinuxGuy
05-23-2008, 09:04 PM
I know little about the multipods. Could you get away with building a really tiny one using the new[ish] submicro servos (like this: http://www.servocity.com/html/s3113_micro_servo.html ). No problem with cutting the bits myself... Is a 21oz-in servo enough to carry a small battery and an SSC32, as well as its own servo weight?
You might have to go with the beefiest micro servos you can find - maybe something like the S3155 (http://www.servocity.com/html/s3155.html) digtal. A micro sized hexapod or octapod would be cool. They remind me of those hexapods in Runaway. I so want to build a multipod one day, but the cost of servos keeps me from starting a project like that.

8-Dale

Adrenalynn
05-23-2008, 11:24 PM
I was kinda hopin' for submicro... Oh well - wait a little longer, I suppose!

tom_chang79
05-31-2008, 10:11 PM
http://forums.trossenrobotics.com/gallery/files/1/5/6/5/phoenix_chassis_angle.jpg

What is the angle Φ?

My GIMP angle tool measure 60 degrees, is this correct?

Zenta
06-01-2008, 01:30 AM
What is the angle Φ?

My GIMP angle tool measure 60 degrees, is this correct?

Hi Tom,

Well I did setup my Phoenix a bit different, see this picture (hope its ok to use your):
http://forums.trossenrobotics.com/gallery/files/1/5/3/5/phoenix_tom_chang_coxa_angle.jpg

I choosed the angle that gave the leg most freedom without crashing into the body.

-Zenta

Sienna
06-01-2008, 09:03 AM
Oh heck, I will just (ab)use the TR image hosting and post it here :P
http://forums.trossenrobotics.com/gallery/files/1/6/8/5/lm_phoenix_dimensions_57404_thumb.jpg (http://forums.trossenrobotics.com/gallery/showimage.php?i=341&c=newimages)

http://forums.trossenrobotics.com/gallery/files/1/6/8/5/lm_phoenix_dimensions_2_475253_thumb.jpg (http://forums.trossenrobotics.com/gallery/showimage.php?i=340&c=newimages)
http://forums.trossenrobotics.com/gallery/files/1/6/8/5/lm_phoenix_dimensions_thumb.jpg (http://forums.trossenrobotics.com/gallery/showimage.php?i=341&c=newimages)

http://forums.trossenrobotics.com/gallery/files/1/6/8/5/lm_phoenix_dimensions_2_thumb.jpg (http://forums.trossenrobotics.com/gallery/showimage.php?i=340&c=newimages)

Adrenalynn
06-01-2008, 10:55 AM
No gurantees that my pixel pitch is the same as yours, but I printed it out and put the digital protractor on it and got 63.74deg

Sienna, if your other pictures contained the angle he's looking for: They're broken for me.

Sienna
06-01-2008, 11:48 AM
There was a brief period where I realized I had uploaded the non-cropped versions. That was only like a couple of minutes though, so I don't see how you got those! If you refresh, you should see them. They are working for me.

Adrenalynn
06-01-2008, 11:59 AM
A control-refresh still shows the bottom two broken, but clicking on 'em works now. Go figger!

Adrenalynn
06-01-2008, 12:01 PM
Oh - I get it. There are two identical (but broken) thumbnails underneath.

tom_chang79
06-01-2008, 05:33 PM
I figured it was 60 degrees. I measured 63 degrees initially with my GIMP angle tool, but I figured it was due to the picture being at a slight angle, so I rounded it to the nearest 10s of degrees...

Zenta, yes, I did mount it at 60 degree for the center for all the servos on four corners. What I'm trying to do right now is given a global coordinate (Xg, Yg, Zg), which is the coordinate with the origin at the center of the body (where the origin is in the picture), I'm transforming that coordinate into each local coordinate (Xl, Yl, Zl) since I have my IK-engine for the legs up.

Once this transformation is done, I just feed all six sets of local coordinate into my IK engine, to make the legs move.

Of course, to make it walk, I can't just directly translate it. Each tripod have to alternate, so each tripod will be alternated. I figured, each tripod will have to move in half-circle motion, with the two sets of tripods 180-degrees out of phase with respect to each other, in order for the body to move forward. But this is an alternating tripod motion, I've also been very interested in the ripple-gait scheme that Matt Denton, and you, Kare, have been using on your hexapods.

The ripple gait scheme makes it look more fluid look, and I ultimately want to have both the tripod and ripple gait scheme in my bot and to be switched at will...


Do you have any tips for me on walking schemes for the ripple gait? The tripod is the most obvious and straight forward, but the ripple gait one perplexes me...

Wingzero01w
06-01-2008, 06:01 PM
Hey Tom,

Would HS-985's be worth getting for the Pheonix (over getting 5645's)? Their fast and have good torque, but i was also thinking of using them with the quadropod i want to make.

tom_chang79
06-01-2008, 06:14 PM
Well, they definitely have a very fast response time, and the torque @ 4.8V is equal to the torque of the 645s at 6.0V. They are definitely good servos. But is it worth that at that price? Are you really concerned with speed? I can see if you are concerned with keeping the cell-count low (4.8V compared to 6.0V).

Take a look at Hobbico's CS-150 servos, the speed isn't there like the 985s but the torque is definitely there for the price...

Wingzero01w
06-01-2008, 06:48 PM
Well those C170 servos are way way too much on my budget (though its basically just a cheaper 5990), and i think ill just go with 5645's.

EDIT: Also, is there any place on the pheonix's legs that won't require that much power? Maybe something a 422 or 475 can handle?

tom_chang79
06-01-2008, 07:25 PM
I would guess probably the hip horizontal servos, the servos that mount directly to the chassis. It's not really carrying any weight and the only time it is working hard is when it is trying to rotate. Although if you do rotate the chassis, it will carry some weight, so long as the chassis is level with the ground, it shouldn't be carrying any weight.

422 is probably way too underpowered, I'd go with at least the 475s for those six servos. I believe the rest of the servos should be a 645mg minimum.

The CS-170 servo is a rebadged servo of the 5955TGs (I belive hitec confirmed that), the only difference being that the CS-170s cannot be programmed using hitec's servo programmer. Which programmer can do it? I have no idea.

Having the angles limited for most cases, shouldn't be a problem. I've seen some of Zenta's video where he makes use of the 180 degrees, but for most cases, it's not necessary...

The 645mgs will do 180 degree right out of the box... unless it was premodified internally with some resistance change to the POT...

Sienna
06-01-2008, 07:47 PM
With the Phoenix's leg design, I think it would be a sin to not allow those 180 degree rotations!

The Hobbicos cannot be programmed by any of the programmers. Now, they do have copper places open on the circuit board (IIRC), so it *might* be possible to hack something, but no guarentees.

Now, if you got the Hobbicos with the intent to Open Servo them or something, then they would work fine :P

Wingzero01w
06-01-2008, 08:09 PM
Well the idea was to get the pheonix hexapod thinking it would allow me to learn about gaits and such and maybe apply what i learn to making a quadropod. But, if this is completely different and irrelevant from the gait a quadropod uses then should i just go along and make the quadropod now?

LinuxGuy
06-01-2008, 09:27 PM
Well the idea was to get the pheonix hexapod thinking it would allow me to learn about gaits and such and maybe apply what i learn to making a quadropod. But, if this is completely different and irrelevant from the gait a quadropod uses then should i just go along and make the quadropod now?
A hexapod, especially the Phoenix, is going to work completely different from a Quadraped. The issues and such are different between the two. If I were you, I would build the one that is most interesting to you. A hexapod would be easier than a quadrapod, depending whether you are going to write your own software or use something created by another individual or company.

What microcontroller are you planning to use?

8-Dale

Wingzero01w
06-01-2008, 09:41 PM
A hexapod, especially the Phoenix, is going to work completely different from a Quadraped. The issues and such are different between the two. If I were you, I would build the one that is most interesting to you. A hexapod would be easier than a quadrapod, depending whether you are going to write your own software or use something created by another individual or company.

What microcontroller are you planning to use?

8-Dale

Well the one i really want to build is the quadrapod but i was planning on using the pheonix leg parts for it. At first i want to use the Atom Pro with SSC, then a custom PIC board i want to make. Thanks for letting me know theres a total difference.

LinuxGuy
06-01-2008, 09:51 PM
With the Phoenix's leg design, I think it would be a sin to not allow those 180 degree rotations!
I've been looking at the leg design.. That single femur bracket seems like it could be a bit flimsy, but I don't know how thick it is. It could be made in a way similar to the ASB-15, in that it could have two of them separated by a single or double channel. It's kind of hard to explain, but it could have a bearing like what is used with the C brackets. It would be easier to do something in 3D CAD and show what I mean. Do you have a drawing of that part of the Phoenix leg?

8-Dale

Adrenalynn
06-01-2008, 09:52 PM
You don't know how to program, and you don't know electronics, so your first project is to design custom PIC application hardware (and presumably the code behind that project)?

LinuxGuy
06-01-2008, 10:00 PM
Well the one i really want to build is the quadrapod but i was planning on using the pheonix leg parts for it. At first i want to use the Atom Pro with SSC, then a custom PIC board i want to make. Thanks for letting me know theres a total difference.
If you have never build a walking robot before (Quad or Hex), it would be better to build up a kit and work with the software available for it to really learn how it works. I'm not sure the Phoenix is the best first walking robot to build.

I'd love to build one too, but I hesitate to go with some thing with such a different leg design for my first build. PowerPod and Atom PRO support aren't even available for Phoenix yet. You could start out with something like a CH3-R, which is one of the best supported of the Lynxmotion hexapod kits, and be sure to get the HS-645 servos for it, which you could use in a Phoenix later. Then you could move on to build the quadrapod you want to build and would already have the servos and most of the other parts you would need. It's a progression. :veryhappy::veryhappy: I really do like the Phoenix leg style, but am not sure I like the single layer femur bracket.

I think this is what I would do to work up to building a Phoenix. Now, if I could just buy the body and leg parts of a CH3-R without any electronics or servos, like the Phoenix is being offered, it would be great. I should ask Jim about that.. :veryhappy::veryhappy:

8-Dale

Wingzero01w
06-01-2008, 10:18 PM
If you have never build a walking robot before (Quad or Hex), it would be better to build up a kit and work with the software available for it to really learn how it works. I'm not sure the Phoenix is the best first walking robot to build.

I'd love to build one too, but I hesitate to go with some thing with such a different leg design for my first build. PowerPod and Atom PRO support aren't even available for Phoenix yet. You could start out with something like a CH3-R, which is one of the best supported of the Lynxmotion hexapod kits, and be sure to get the HS-645 servos for it, which you could use in a Phoenix later. Then you could move on to build the quadrapod you want to build and would already have the servos and most of the other parts you would need. It's a progression. :veryhappy::veryhappy: I really do like the Phoenix leg style, but am not sure I like the single layer femur bracket.

I think this is what I would do to work up to building a Phoenix. Now, if I could just buy the body and leg parts of a CH3-R without any electronics or servos, like the Phoenix is being offered, it would be great. I should ask Jim about that.. :veryhappy::veryhappy:

8-Dale

Thanks, sadly this is going to cost me more by starting with the CH3-R but in the end its all worth it. Yeah, i also need to buy the CH3-R without the servos since i plan on using 5645's with my later quadropod and possibly pheonix. I guess i always like to jump ahead of myself because im always seeing the neat things people do on this forum and would like to be in the ranks of that also. Thanks for the advice, +rep for you! :happy:

Adrenalynn
06-01-2008, 10:27 PM
Just don't get so far ahead of yourself trying to play "keep up with the forumites" that your project fails miserably, you throw a lot of money away, and have nothing but a pile of rubbish to show for it. Designing your own microcontroller/application board is NOT a first electronics project.

LinuxGuy
06-01-2008, 10:30 PM
Thanks, sadly this is going to cost me more by starting with the CH3-R but in the end its all worth it. Yeah, i also need to buy the CH3-R without the servos since i plan on using 5645's with my later quadropod and possibly pheonix.
Consider everything you will learn along the way though. It's an educational experience. I think the learning is the best part of building robots, and most of the time I am just flying by the seat of my pants as I venture into new areas. Did you know that the HS-645 and the HS-5645 are identical except for the electronics? I've got 3 HS-645's that are in W.A.L.T.E.R.'s new arm, and some HS-475's in the last joint and gripper. I'm going to get these converted to Open Servos at some point, which will make them all digital.


I guess i always like to jump ahead of myself because im always seeing the neat things people do on this forum and would like to be in the ranks of that also. Thanks for the advice, +rep for you! :happy:
Thanks. :D Don't feel bad - the same thing is always happening to me. I want to move into so many areas of robotics, but I have to take small steps and build on each thing I learn to take me to the next stage. I really jumped in with both feet when I decided to convert W.A.L.T.E.R. to run Linux and have an arm too. This rebuild of W.A.L.T.E.R. will give me plenty to experiment with and learn with for quite awhile.

8-Dale

Wingzero01w
06-01-2008, 10:46 PM
Thats weird about the 645's and the 5645's. So the 645's are able to achieve same speeds/torque as the 5645's as long it has the addition of a digital board?

And WALTER is definitely one of the cool robots ive seen so far and the plans you have for it are also interesting.

LinuxGuy
06-01-2008, 11:34 PM
Thats weird about the 645's and the 5645's. So the 645's are able to achieve same speeds/torque as the 5645's as long it has the addition of a digital board?
I do not know if this is true or not. I just know the only difference between these two servos is the electronics board. That seems to say the electronics makes a big difference in the torque of the servo.


And WALTER is definitely one of the cool robots ive seen so far and the plans you have for it are also interesting.
Thanks!

It takes me a very long time to make advances due to not being able to aquire parts I need fast enough. I get the job done eventually though. One thing you can be sure of though is that none of my robots will be like anything you have seen before. :happy: :happy:

8-Dale

tom_chang79
06-02-2008, 01:14 AM
Just don't get so far ahead of yourself trying to play "keep up with the forumites" that your project fails miserably, you throw a lot of money away, and have nothing but a pile of rubbish to show for it. Designing your own microcontroller/application board is NOT a first electronics project.

This is very true. Wingzero, I hope you don't feel that you are trying to compete against many of the people here on the forum, it's not a competition. I was the TA for the course:

"Introduction to Microprocessor-based System Design" during my undergrad career. This course covered the topic of given a microcontroller, some memory elements (SRAM, EEPROM, and some misc. components like latches, resistors, capacitors, breadboard, sockets, and etc), you have to design a system.

This course basically handed you a bag of parts and it was up to the students to build a system in the lab while topics like memory mapping, multiplexing, tri-state, and etc. were covered.

This topic was one of the "upper-division" courses in college, which meant that many "lower-division" courses were prerequisites for the course. To truly be successful in the course, the students had to be very strong in many other topics such as data structures, discrete mathematics, introduction to analog circuits, and etc...

After the brutal 10-weeks (we were on a quarter system), the students were expected to have a working micro-controller based board (which was only 85% of the grade) that did something meaningful (the other 15%).

I don't think anyone here is discouraging you, but I think Adrenalynn is just saying don't bite more then you can chew.

There is no shame in buying something that is pre-made. I am able to design micro-controller based systems, but I still would rather buy something that is pre-made for reasons such as: I'm not trying to re-invent the wheel, development cost is high since I'm not planning on mass produce it to sell, and my project isn't to design a system but rather a working robot.

There's nothing wrong with designing your own system if none out there satisfy your needs or if you truly have a specific application and need something better then what's offered out in the market.

I designed and programmed a whole system from the ground up, that plays tetris on the tv for my senior project. It took me 3000 lines of code and probably about $150 worth of parts to do it (buying in small volumes sucks for pricing). Compare that to the sticker price of a Playstation 1 back then, which was $100 bucks. My system was custom an all, but it was only capable of 16 colors, no sound, no disk drive (the program was flashed onto the EEPROM), and a meager 4MHz system. Compare that to the mass-produced Playstation 1, which has specs that will put my custom machine to shame.

Remember, I only did my custom machine because I had a specific application for it. To get my BS Diploma! Buying a Playstation 1 could not have achieved that :wink:

Sienna
06-02-2008, 07:22 AM
I just want to say that the phoenix legs are indeed structurally strong enough to support the bot. The only problem is that if the bearings in the servo are loose, it will wobble a bit.

However, the large overhung load is why Jim recommends metal gear servos I believe.

tom_chang79
06-02-2008, 09:31 AM
I agree. When I initially saw the picture of the prototype kit back in December, I thought that the legs wouldn't hold up either. Now that I have the kit, the 1/8" (0.125") thickness femurs and tibias are plenty strong and does not flex with the expected load.

Are any of you putting a Phoenix together with some torque monster servos? With a set of 5955s, 5990s (:p), or a CS-170? I would love to see a super-buff hexapod!

Sienna
06-02-2008, 12:02 PM
I was thinking about adding a 4th DOF to the legs with the 5990s that are sitting around here... but that would require me to take Amy apart for the rest of the servos :P (which are only 5645s)

LinuxGuy
06-02-2008, 12:04 PM
I was thinking about adding a 4th DOF to the legs with the 5990s that are sitting around here... but that would require me to take Amy apart for the rest of the servos :P (which are only 5645s)
Are you going to do a tutorial on how to build Amy? I seem to be specializing in wheeled robots at the moment, but really want to start a progression towards building an Octapod. :veryhappy:

8-Dale

tom_chang79
06-02-2008, 02:47 PM
check out zenta's (kare's) octopod, it's probably the most beautiful octopod I've seen so far...

LinuxGuy
06-02-2008, 08:43 PM
check out zenta's (kare's) octopod, it's probably the most beautiful octopod I've seen so far...
I've seen pictures of his eight legged thing, and it's very stylish and cool - just like all his robots are. :veryhappy:

I'm going to someday build mine based more according to the true leg angles of the spider. I just haven't picked out a particular spider to model it after yet. Alan (KM6VV) over on the Lynxmotion forums already got the angles of the legs. I don't want to do what everyone else has done for my final eight legged robot. However, I will take small steps to get to where I want to be, perhaps even starting with a tri-pod.

I want to build a hybrid as my ultimate robot - eight legs and four to eight wheels. I've already got an SES based design for an eight legged, four wheel robot. It has fully retractable and independently steerable wheels. :veryhappy:

8-Dale

Wingzero01w
06-02-2008, 10:51 PM
Hey Tom,

I now have it in my head to take things one step at a time "and not bite more than i can chew" :happy:

Quick question regarding the CH3-R:

Well, was it a good kit? Was it easy to control/understand?

Right now im in the Budget to buy some new kits (i have about 900 saved up)and starting to make sure im going to get my moneys worth. Right now i have 2 kits that are really up in the sky for me; they are the robobuilder kit from korea and the CH3-R which will be the starting point for a line of projects. I guess i need a summary on the CH3-R to be a possible tiebreaker between the two.

tom_chang79
06-03-2008, 01:27 AM
The CH3-R kit is a good kit, but if you really want a hexapod and later experiment with a biped, you should consider the Bioloid Comprehensive kit also. Right off the bat, you get 18 servos, a sensor module, and a CM-5 unit, a battery pack, and everything you need to get started...

With the Bioloid Comprehensive kit, you can build yourself a hexapod and a humanoid later on. The AX-12+ are awesome actuators, they are more powerful then the 645s with gobs of more features such as load sensing, temperature sensing, compliance curves, and etc.

I opted for the CH3-R initially because I already had 12 645MGs to start with. These servos were bought for the biped scout kit I bought a couple of years ago. I later learned that the 645s would not cut it for a biped, especially with legs that had the configuration of the scout (you would need a more powerful servo, something like the 5990s for this kind of bot). Since I had 12 645s, all I needed was the chassis and a few more LM brackets to do a hexapod.

The AX-12+ are powerful enough right out of the box to do bipeds. For hexapods, you'll have a more powerful hexapod. Check out videos like "king spider" of the bioloid:

YouTube - Bioloid King Spider

Although it's a bit of a learning curve if you want to program these in C. If you choose the LM route with the Basic Atom/Atom Pro, the compiler is readily available and you can start coding.

You can directly control the AX-12+ like standard servos, except that you're not sending PWM signals (which the SSC-32 takes care of for you), but you send it packets (which the Bioloid software+CM-5 will do for you).

The advantage of a CH3-R or even a Phoenix kit over the Bioloid is that it is aluminum-based chassis. But I've read that there will be a "robo-one" upgrade kit for the Bioloid, which will include aluminum brackets I believe:

YouTube - Robo-One upgrade kit for Bioloid


I guess to sum it up, I really don't know which one to recommend to you. I have both the CH3-R (now a phoenix) and the Bioloid. They both have their ups and downs. I do enjoy the quality and support of LM's products, however, the Bioloid is an excellent value. I guess you can't lose by going either direction...

Wingzero01w
06-03-2008, 07:29 AM
Wow this is hard...

Im really thinking the CH3-R, and since im getting it with 5645's i could use it on alot of future robots since there fairly powerful servos. And i already have the electronics for it also, not to mention theres a whole line of brackets to expand on it + the really cool acryllic for the leg lights :happy::happy:. And afterwards i could upgrade to the pheonix if i choose.

tom_chang79
06-03-2008, 09:00 PM
The CH3-R is definitely a great bot to develop with. Its round chassis makes gaits like rotation/translation a snap. The Phoenix is a little more challenging to work with, since it almost forces you to do an IK solution for movement since the chassis and the legs are mirrored but not round (which would mean each coxa is equally spaced from its neighboring coxa).

What I mean is, to make the CH3-R turn in place, you just have to manipulate each of the coxa in a tripod the same way. For the Phoenix, not all of the coxa can move in the same fashion/rate/speed since the coxa triangle of a tripod does not form a perfect 60-60-60 triangle...

Wingzero01w
06-03-2008, 09:40 PM
I see so the CH3-R is more leaned towards a beginner to multi-legs than the phoenix. Not to mention the CH3-R has alot more payload capacity so it allows more expansions to be placed upon it. The nice thing about this is that the CH3-R wont cost me to much thanks to the Towerhobbies website you gave me awhile back so i get those nice servo deals but sadly, they discontinued the 645's. Im also getting some kind of camera/camcorder (dunno) so i can record videos and post pic's.

tom_chang79
06-04-2008, 12:59 AM
Well, the CH3-R is definitely more expandable since the chassis is larger. The Phoenix is pretty compact so it's really a walking bot and not something you can add a base-rotate kit or something to it. The CH3-R has hole patterns to readily accept the base rotate kit if you want to add to it...

If the 645s are being discontinued, you can go with the Hobbico's or Tower's rebadge of the 645. Generally, Tower's servos are rebadge of the Hobbico's which is a rebadge of Hitec's. The equivalent servo is:

Hobbico's : CS-70MG
Tower's: TS-70MG

Generally speaking, if the Hitec's are the same price as the Hobbico's and Tower's, I'd go for the Hitec's since Hobbico's and Tower's are a rebadge...

LinuxGuy
06-04-2008, 01:04 AM
If the 645s are being discontinued, you can go with the Hobbico's or Tower's rebadge of the 645.
Is there any confirmed data regarding this? Have you checked with Jim Frye over at Lynxmotion about this? He should know whether the 645's are being discontinued or not since they are a good customer of Hitec.

8-Dale

tom_chang79
06-05-2008, 02:40 PM
Even though you quoted me, I'm assuming you are directing the question at Wing.

I hope Hitec doesn't discontinue their 645MGs. It's a solid servo with enough oomph for hexapod applications. Although I do dream of my phoenix having 18xHSR5990TGs ($$$ ouch) ;)

Wingzero01w
06-05-2008, 03:19 PM
Robotguy-

It seems that towerhobbies has fixed the status of the 645, i have no idea why they had it on discontinued a couple of days ago.

And im wondering, is Jim planning on releasing a bigger CH3-R made out of the large servo brackets and servos? I'd LOVE to get one of those in a second.

tom_chang79
06-06-2008, 03:02 PM
Those 805BBs are nice, but I wonder if those gears will hold up with that much torque involved, especially when it comes to a instant stop (from being jammed or bad programming during deving).

But I'm much more of a fan of miniaturization, I'd much rather see a mini CH3-R based on micro servos (used on the 1/18th scale RCs) like the one from Innovati.

Wingzero01w
06-06-2008, 03:58 PM
Im also a fan of miniaturization but for some reason, i think an upscaled CH3-R would just be so awesome especially since it would probably be from lynxmotion. All i need is the chassis though and i would be set to build one in a second =/ . Though, i find my budget is going down very fast due to paintball -.- Paintball = expensive sport.

tom_chang79
06-10-2008, 11:45 PM
Ladies and gents, may I present to you, my Phoenix with my own custom walking code utilizing my own custom IK-engine:

YouTube - Hexapod Phoenix - Walk Demonstration

JonHylands
06-11-2008, 06:40 AM
Very nice...

- Jon

Alex
06-11-2008, 11:08 AM
nice work Tom!

I'm not sure if it's just my crappy monitor though, but the video is really dark. I can barely see your Phoenix (you have a name for it yet?) walking around:(

Matt
06-11-2008, 02:07 PM
Oohhhhhh, me likey the lights :D

DresnerRobotics
06-11-2008, 02:25 PM
Oohhhhhh, me likey the lights :D

Oh Matt, such the sucker for shiny things :P

Me- "Hey Matt, I just taught my J5 to object track and respond in english to vocal commands"

Matt- "What does that have to do with adding a laser?"

:D

I say mount the sidewinder light in the front and make it more "Cylon-ish"

Very nice work Tom.

tom_chang79
06-11-2008, 02:41 PM
Thanks guys! Alex, it's probably not your monitor, it's the video. I was in the living room and had minimal light on when I shot it. Next time, I'm going to shoot the video with more lighting since it's hard to track a dark object in the dark...

Tyberius, originally, I wanted to mount the lights in the front, but the PCB is longer then the chassis is wide in the front, so I'm planning on pairing it up (for symmetry) with another one on the other side of the mini ABB...

I will post more videos of it soon, since I was in such a hurry to shoot my Phoenix. I verified that the X (left and right) and Y (forward and backward) does translate last night by fixing the Y coordinate to be zero and giving X some reasonable value and the thing started to crab walk (which is what I was expecting)...

Alex, I haven't given it any names yet, as I'm not very good at giving things "cool" names. I name my computer at home "AMDX24400+" hehe, very creative isn't it?

My project files reside in a folder called "Walker 6 - Phoenix" but I am planning on eventually giving it a name... For now, "my Phoenix" or "Walker 6 - Phoenix" will do ;)

Adrenalynn
06-12-2008, 11:46 AM
It looks like it's stalking prey. :) Too cool!

darkback2
07-08-2008, 03:23 PM
Ok...I'm going to need serious help. I am currently trying to make a phidgets based hexapod. That is proving itself to be more difficult than it may be worth. I know absolutely nothing about coding. Any ideas on a controller that I can use to control about 20 servos?

If I could do it using Max/Msp that would be great...or even through sending MIDI signals.

DB

darkback2
07-08-2008, 04:08 PM
I just got three of the legs working using the phidgets that I already have. One of mine is none functional. I've got one more coming in the mail today, and will only need two more to make the robot work...provided I get everything to work the way it should. Perhaps in the illustrious words of our president I will simply stay the course.

DB

Adrenalynn
07-08-2008, 05:46 PM
If you decide not to, I see two other options. Well, three, really. The SSC32, the SSC32, and the SSC32. Or I suppose you might consider the SSC32. ;)

DresnerRobotics
07-08-2008, 06:20 PM
Alex, I haven't given it any names yet, as I'm not very good at giving things "cool" names. I name my computer at home "AMDX24400+" hehe, very creative isn't it?

My project files reside in a folder called "Walker 6 - Phoenix" but I am planning on eventually giving it a name... For now, "my Phoenix" or "Walker 6 - Phoenix" will do ;)

Walker- Phoenix Ranger! :D

darkback2
07-09-2008, 01:40 AM
The new phidget 4 got here today. If I only use the three powered servo outputs on each of the phidget 4s, I can power 12 servos. I ordered 2 more phidget 4s. So hopefully I'll be able to have this thing up and running by early next week.

I hate waiting.

DB

darkback2
07-09-2008, 12:17 PM
If you decide not to, I see two other options. Well, three, really. The SSC32, the SSC32, and the SSC32. Or I suppose you might consider the SSC32. ;)

So I've decided to both stay and grow. give me a few weeks to get this thing working using the phidget 4s...then...I'll get an SSC32, and bug you with questions about how to make the darn thing work.

DB

Adrenalynn
07-09-2008, 12:32 PM
I'm certain the phidgets are mighty fine controllers. I don't own any and have less than zero practical experience with them.

First, for full-disclosure, I must say that I'm not a fan of USB generally. It's great as an HID - Human Input Device. Printers, Scanners, Hard drives, etc? Bad idea, imho. And I could go on at length with what I don't like about it... But I won't...

The SSC32 is a stunning piece of hardware to me. 32 channels for such a miniscule amount of money. The interface over serial is as dirt simple as it can possibly get, ditto the command protocol. It's also trivial to make it wireless (something that can't be said for USB). One can literally issue commands to the SSC32 from a dos-prompt/command console if one wants. And can do it from nearly any modern operating system. (Piping to a terminal).

The tradeoff is that it doesn't have the pretty snazzy libraries that the Phidgets come with...

darkback2
07-09-2008, 11:15 PM
I'm waiting for the other two phidgets before I can get the legs on my hexapod working. I decided that instead of doing nothing I should work on making the program that will run all of this, and praying that it works better than the last time.

In the least I hope it does. I mounted an IR sensor on a sweeping servo controller. I'm having all of the data fed into a table in max. I can poll the table to determine where obstacles are. I'm hoping this will make one IR sensor work like many.

Its not as cool as the hexapod by Amos...yet, but I'm hoping to add my own sense of cool.


http://www.youtube.com/watch?v=LtZfuJFFr2M

Hopefully I'll have it walking by late next week. The last two phidget 4s that I need get here on monday, but I will be down in SF for a few days.

YEAH!!! something works!

DB

tom_chang79
07-11-2008, 01:03 AM
Oh sweeeet! That's the crustcrawler's hexapod right? How is it mechanically? Do you like it? I can't wait to see it walk!

darkback2
07-11-2008, 02:08 AM
A big part of me is upset by the fact that I am taking to long to get a kit robot working.

I can't really tell you what I think about this robot yet because I have so little experience with walkers as is.

Putting it together was a bit on the hard side...not because of anything technical...but because my fingers just aren't small enough. There were also some aspects of the instructions that I think should have been explained from the beginning.

A lot of it was frustrating...I had to use tweezers on more than one occasion, and I resorted to using a wet Q-tip to get some of the bolts in place.

All in all though I am pretty excited about my first walking robot. I'm not sure what I can do to make it "mine" as it were. It is a lot of kit, and the pieces all seam so important, I'm not sure where I can insert my "meness"

Here is a video of what I've got going so far. I get the last two phidget 4s in the mail on monday.

I should have more info on the workings of this thing then.

DB


http://www.youtube.com/watch?v=A01t29bg_Fc

tom_chang79
07-11-2008, 02:14 AM
Was there a reason why you went Phigets instead of the SSC-32? Oh, what servos are you using in them? They seem pretty darn fast...

darkback2
07-11-2008, 02:27 AM
Was there a reason why you went Phigets instead of the SSC-32?
This started out as a goal driven project...to make a phidgets based hexapod. I did that for two reasons...At the time I already had 4 phidget servo controllers, and figured I would need 1 more to run all 18 servos...(19 including the sweeping IR sensor)...

Reason number 2 is because I program in a language called MAX/MSP. I simply don't know how to use anything else, and because of dyslexia I have a really hard time even looking at lines of code. They just sort of swim around in front o me.

so I would need a lot of help to use anything other than phidgets, and to be honest its hard to get that kind of help. I've found that most people program for themselves...and if their programs can help someone else then fine...but programming for someone else without getting paid? I understand where people are coming from...


Oh, what servos are you using in them? They seem pretty darn fast...

The servos are the ones that came with the robot. I will probably have to swap out the shoulder lifting servos (up/down) for something stronger because I'm mounting a computer on the robots back. But given that I've already spent about $1000 on this project I'll have to lay low for a while. I'm just hoping the servos will be strong enough for now.

hitech 645MG / 475MG. There is an upgrade kit for using all 645s.

DB

LinuxGuy
07-12-2008, 01:32 PM
Walker- Phoenix Ranger! :D
Phoenix is in Arizona. :P

8-Dale (Positronically yours)

darkback2
07-15-2008, 01:26 AM
At some point I'll probably look back on this and wonder what the heck I was thinking. I got the last two phidget servo controllers today, plugged them in, and got the robot to run through a test of its legs. I think the sony vaio is limiting enough weight wise that it may end up requiring that I upgrade the lift servos. Currently the robot uses Hitech 475 mgs. If I want to try to employ some of the interesting gates, or try to get this thing climbing over obstacles, I will need to upgrade them.

Here is a video of the leg tests that I ran this afternoon.

http://www.youtube.com/watch?v=g7e-kf0J9_Y

The shoulder lift servos employ a linkage, and have to get back into a locked position. With the added weight of the batteries and computer lexi struggled to lock her legs, and collapsed a few times. I'll have to try employing some sort of lean function to get it so that weight is taken of off a leg after it comes down, so that it can fully lock.

DB

tom_chang79
07-15-2008, 02:24 AM
645MGs IMO are the minimum for any 3DOF hexapod, assuming a construction with some payload... The 645MG is almost TWICE the 475, so it's like doubling up a 475 servo at ever joint at half the weight...

645MGs are fairly cheap, I'm using them in my hexapod and they work very well...

darkback2
07-15-2008, 02:58 AM
yeah I figured. I'll haven to wait though. I'm pretty tapped out given that this has required 6 $75 phidget servo controllers on top of the $700 kit.

DB

ScuD
07-15-2008, 04:53 AM
Putting it together was a bit on the hard side...not because of anything technical...but because my fingers just aren't small enough. There were also some aspects of the instructions that I think should have been explained from the beginning.

A lot of it was frustrating...I had to use tweezers on more than one occasion, and I resorted to using a wet Q-tip to get some of the bolts in place.



I have two tools that I found very helpfull in assembling the bioloid kit, which I'm sure could be helpfull for anyone having problems with tiny screws and nuts:
First off, attach a magnet to your screwdrivers. I have a few donut-shaped ones that go over the head of the screwdriver, i keep them all the way to the handle of the screwdriver. It's handy cause you can fish a couple of screws/nuts out of the box, put the amount required on the magnet, and put one on the head ready for screwing into any position.

The other one is a tool of which I don't really know the name... It's something a mini grabbing-hand thingamajig :veryhappy: you hold it like a pen, push the end and 4 spring-steel prongs come out of the tip.
Release the end and the prongs draw back into the body, holding on to whatever's in between.

I'll post some pics tonight if I don't fall asleep at work in the next few hours..

darkback2
07-15-2008, 10:06 AM
I've seen those grabby things. They are pretty cool. The magnet idea is also a good one. I'll have to start scouting around for some donut magnets...donuts (drool dribbles down chin)

DB

ScuD
07-15-2008, 10:25 AM
Here's what I meant for those who couldn't make anything of my explanation:

http://users.pandora.be/svendecock/robot/tools.JPG

Adrenalynn
07-15-2008, 03:12 PM
They're called "flexible spring claws" if I understand what you're referring to. You press the plunger and little claws come out, and when you release, the tension grabs whatever it is?

The KEY to putting in those little nuts is a good selection of Hemostats. Doctor DOES know best. Good enough for microsurgery, good enough for putting together models and robots. ;)

ScuD
07-15-2008, 03:49 PM
Apparently you also need a longer screwdriver than the one i depicted above.

Right now my humanoid is sitting on my desk, missing 7 screws because I don't have a screwdriver that's long enough :genmad::genmad:

ScuD
07-15-2008, 03:50 PM
They're called "flexible spring claws" if I understand what you're referring to. You press the plunger and little claws come out, and when you release, the tension grabs whatever it is?

The KEY to putting in those little nuts is a good selection of Hemostats. Doctor DOES know best. Good enough for microsurgery, good enough for putting together models and robots. ;)

Those hemostats are indeed a great idea.
I should have some laying around, I'll check..

Adrenalynn
07-15-2008, 04:49 PM
I have a Jewelers screwdriver bit kit with an 8" long flex-shaft. It roxxors for that stuff.

ScuD
07-15-2008, 05:01 PM
Yeah ? well i have a pencil! and it writes!
So there!! :p

Ok, time for bed...

Adrenalynn
07-15-2008, 06:02 PM
:p:p:p

darkback2
07-22-2008, 10:18 PM
Ok, this is really sad...I had to add training wheels to my hexapod.

http://www.youtube.com/watch?v=3s4nNAITMNY

DB

darkback2
08-04-2008, 01:23 AM
http://www.youtube.com/watch?v=HKiFIlwXNTE

I haven't had as much time to work on this project because of the book...but I figured today would be a good day to go over what I have accomplished.

Ok...first off, I am really having a hard time with the fact that this is a kit. I can up grade it all I want, and it will still be...just that...a kit. For me the skill is in the creation...so this is hard for me.

I moved the laptop to the center position. This will help with distributing the weight a bit better. I also got the SSC-32 to work, not only is it working, but I can talk to multiple servos at the same time.

I have managed to get a working forward, backward, left turn, and right turn, trigate. I will have to work on a ripple gate, but I'm not sure that will be possible because the servos really aren't strong enough.

I had the shoulder servo on leg number six give out. The copper gear stripped. At first I thought it was the plastic servo horn that gave out, and I was thinking I would have to replace them with the tapped metal ones...no luck. Just a stripped gear. Luckely I had some leftover gears from a couple of servos that caught fire a few days ago.

Now that that problem is solved, I have managed to get the robot to do the trigate while carrying its laptop. The video shows the progress. Oh...

I added Wii control. You have to use the arrow keys, but it works. so I'm happy.

OK...enough.

DB

darkback2
08-05-2008, 01:52 AM
So...I added a minimal amount of automation. The robot basically walks forward scanning, when the IR sensor detects an obstacle, it is supposed to turn a certain number of steps based on where in the field of view the IR sensor was triggered. Then it goes back to forward motion. I also added a switch for the wii, so that I can toggle back and forth between automation and wii control.

I'll try to get some video done tomorrow...

DB

tom_chang79
08-24-2008, 11:59 PM
darkback, I enjoyed your video review on youtube! Great summary of things you have encountered throughout your journey to get your hexapod walking. It seems like you're using a predetermined gaiting routine. Are you planning to implement an IK-based engine underneath the walking gaits? Great choice to go with the SSC-32. It's the best and cheapest servo controller for the feature it packs... 32 servos, serially-driven for under $100. Can't argue with that!

tom_chang79
11-19-2008, 11:47 AM
Anyone see Xan's article in the latest Robot Magazine? The Phoenix with his PEP software finally got some published spotlight! Congrats Xan!

I'm in the process of restoring my Phoenix. It was in pieces since I cannibalized it to restore my CH3-R, then I cannibalized that to make the Biped Scout. Well, I've sold my Scout, so I only have enough SES parts to do a Phoenix, so I'm going back to that route.

One of the things I've added since my last Phoenix build is that I have a 5-cell NiMH Sub-C pack for it. It was a 6-Cell pack for my R/C car, but one of the cells blew out, so I'm salvaging it for robot-use...

Currently, I'm struggling on trying to get back into my coding and figuring out what the heck I was doing 4-5 months ago... I went back and read my notes on IK and coordinate tranformation (matrix inversion and matrix multiplication).

Amazing what a 4-5 month hiatus can do to your brain!

CORRECTION: I should've said "...Zenta's article..." on the first line, not "...Xan's article..." The article does mention this "other" Phoenix owner (which I assumed they were talking about Xan), but PEP and the first Phoenix prototype which Lynxmotion's is based off of is clearly Zenta's (Kare's). My apologies if this has caused any confusion.

Zenta
11-19-2008, 12:41 PM
Hi Tom,

I hope you liked the article about Phoenix and PEP.;)
For information the article was written by Harry Mueller (from Robot Magazine).

You are correct about the last part about Xan's work for the BAP code. Hopefully there will come a second Phoenix article about his code.

Xan
11-21-2008, 05:47 AM
Hi Zenta,

Once again congratulations with your article on your phoenix!


You are correct about the last part about Xan's work for the BAP code. Hopefully there will come a second Phoenix article about his code.

The article does mention this "other" Phoenix owner (which I assumed they were talking about Xan)
How about that… The first time I’m mentioned in a magazine. And I’m “the other Phoenix owner” :sad:

Well I’m in for a second article ;)

Xan

Zenta
11-21-2008, 07:27 AM
Hi Zenta,

Once again congratulations with your article on your phoenix!

Thanks Xan! ;)




How about that… The first time I’m mentioned in a magazine. And I’m “the other Phoenix owner” :sad:

LOL !




Well I’m in for a second article ;)

Yeah lets hope so, you earn it! And hopefully you'll get your name (and maybe a photo) on print too... :D

-Zenta

LinuxGuy
11-24-2008, 01:07 AM
I added Wii control. You have to use the arrow keys, but it works. so I'm happy.
How are you interfacing the Wimote to the computer? It looks like you are using Bluetooth rather than any sort of hacked interface. I bought a Wimote with Nunchuk and an extra Nunchuk to experiment with, but haven't gotten around to doing anything with it. I'm interested in using the Wimote/Nunchuk with a microcontroller board, such as the BeagleBoard or Gumstix Overo, rather than a PC.

8-Dale

Adrenalynn
11-24-2008, 02:08 AM
I talk to the Wiimote/nunchuk over bluetooth. Which is the only way to talk to the Wiimote. The nunchuck can talk over the wire (since it has one) but the Wiimote is bluetooth or nuttin.

Xan
11-24-2008, 02:27 AM
How are you interfacing the Wimote to the computer? It looks like you are using Bluetooth rather than any sort of hacked interface. I bought a Wimote with Nunchuk and an extra Nunchuk to experiment with, but haven't gotten around to doing anything with it. I'm interested in using the Wimote/Nunchuk with a microcontroller board, such as the BeagleBoard or Gumstix Overo, rather than a PC.

The Wii Remote uses the bluetooth HID protocol. Most of embedded Bluetooth solutions don’t support the HID protocol. I’ve searched for a embedded Bluetooth module which allows me to build a connection but without any success. Most chips that I’ve found where client side HID modules that can be used in a mouse or something. I didn’t thought it was so hard since every cheap Bluetooth dongle can connect a HID device.

I hope you will have better luck finding a embedded solution…

Xan

LinuxGuy
11-24-2008, 06:52 AM
I talk to the Wiimote/nunchuk over bluetooth. Which is the only way to talk to the Wiimote. The nunchuck can talk over the wire (since it has one) but the Wiimote is bluetooth or nuttin.
Which BT adapter are you using?

8-Dale

tom_chang79
08-08-2009, 04:33 AM
Holy no activities Batman! Where is everyone?

After a long one-year hiatus, my Phoenix is back in its original glory (almost).

Here's a video that I shot today, it demonstrates my phoenix getting up, walking, rotating, rotating back, and walking back.

I'm playing around with my IK-based autonomous walking code I wrote a year ago, still trying to figure out what the heck I was doing in the code...

Took me several tries, but I finally figured out that those "extraneous" variables were not so "extraneous" after all...

Enjoy!

YouTube - Phoenix Demonstration Walk Rotate Walk Back TIMELAPSE

tom_chang79
08-16-2009, 09:40 PM
My video is finally up!

YouTube - MVI 0167

MSK Mech Commander
11-20-2009, 04:06 PM
I've been trying to mix up the controls on the Phoenix for the PS2 controller but I need a technical reference manual. I can't seem to find the command codes for the PS2 joysticks. Help?:confused:

tom_chang79
05-21-2010, 11:38 AM
Finally, I got the body rotation to work! It now roll-yaw-pitches! I'm doing a bit differently than Xan and Zenta's code, my code does a double transformation, global to local rotation, and than local to global rotation.

I tried to figure out what Xan's code was doing, but I'm afraid I really couldn't understand it that well. Xan's code is beautiful, but I just lack the ability to read other people's code.

I will post some footages of my hexy when I get home. I finished it last night and it was 1:30am :eek: so I had to get some shut-eye...

:D

Chench
05-21-2010, 04:40 PM
Sounds good! So you work out the local rotation the global rotation produces, then do the rotation equations/matrices to local coordinates, and then convert the rotated coordinates back to global?

tom_chang79
05-24-2010, 01:39 AM
Sorry, no videos yet, I don't have my camera at the moment, but will post some when I get my camera back.

Chench:

Not quite. I first do a global transformation on the six vectors (for the six legs). Then, I must do another local to global transformations for the four "corner" legs since those have axis with a fixed offset angle of 60-degrees with respect to the axis of the body.

So I first do:

Gr = Q * Br and solve for Gr, which is the rotated coordinates.

I then subtract it from the original vector, say Er

Er - Gr = Delta from the original position

I then take the delta for the four "corner" legs and do:

Br = Az,a * (Delta of original position) where:

a is ALWAYS equal to +/- 60 degrees (depending on which corner).

After this is done, I feed all six vectors, which is the change of position locally, each with respect to its own axis, and run it through my "IKENGINE" which basically takes local (x,y,z) and converts it to angles (or servo pulses).


I further tested this engine today fixing all three rotation angles to "0" and started to give values to the global. It worked like a charm. The body shifted around while maintaining no roll-yaw-pitch.

I also played around a bit by inputting rotation angles to make the body roll and pitch at the same time.

I think it's now time to add the final component to this engine before moving onto sensors. I need to implement the gaiting. First need to do the tripod, then the ripple, then the wave gait.

My old gaiting sequence relied too much manipulation of lower-level variables (by manipulating local coordinates). I need to implement something that can be done without having to touch those variables...

perhaps:

Delta Position = Original Position - Rotated Position - Gait Variable


Right now, my "Original Position" variable is:

Effector Coordinate (with respect to the origin) + Body Coordinate (with respect to the origin)


Looks like I will need another array of 6 elements for the gait variable so that it can be manipulated on the outside but still included in the "for" loops within the transform routines...

Mechanically, I still need to fire up my CH3-R. My CH3-R has been waiting for base-line kinematics code since that will be my ultimate platform. My phoenix is just too limited on space...

Electrically, I'm trying to get my grubby little hands on some Turnigy BEC (same one that Zenta uses) and some 2S1C Lipo packs. Just the savings in weight is enough reason to transition into LiPo...

Chench
05-26-2010, 10:18 AM
I'm finding it a bit hard to follow the notation you're using, but I think I can see how you're going about it.
If you assume the corner legs are always offset by 60 degrees, will you be able to do body rotations while walking or doing body movements, when the corner legs will be moved away from the 60 degrees position?

tom_chang79
05-31-2010, 11:34 PM
TCIK - My new IK Engine with full body rotation demo video is finally up!

YouTube- TCIK New IK Engine Demonstration

Thank you for all of you who gave me great insight into kinematics!

gonzo
01-04-2011, 12:21 PM
Hi , I'm gonzo.

I just bought a phoenix hexapod, but have some issue in connecting my ATMega 32 to SSC 32
(I use atmel because I'm more familiar with them).

I can't send my command to SSC. I've connected the AVR's TX to SSC RX and connect the ground.
I also has set the baud rate to 9600.

Nothing happened.

Can anyone help me please ( I guess my problem is in the code)

Thanks

tom_chang79
03-22-2011, 11:14 PM
Gonzo,

Sorry for such a late reply, but have you resolved this issue already?

gonzo
03-24-2011, 09:05 AM
Gonzo,

Sorry for such a late reply, but have you resolved this issue already?

No, it's okay Tom.
Anyway I've solved that problem, but guess what .
Here comes the next one. I simply can't make my phoenix doing continuous
body rotation kinematics without disturbing delay. Seems like I need a fast 32-bit
microcontroller to calculate the kinematics instead on typical 8-bit. :tongue:

tom_chang79
03-26-2011, 12:46 AM
No, it's okay Tom.
Anyway I've solved that problem, but guess what .
Here comes the next one. I simply can't make my phoenix doing continuous
body rotation kinematics without disturbing delay. Seems like I need a fast 32-bit
microcontroller to calculate the kinematics instead on typical 8-bit. :tongue:

I wouldn't discount your 8-bit yet, I'm running BAP28 and it's not that fast...

first, hiw are you doing your calculations? I solved the matrices calc to closed form

second, you can move your trig functions to fixed point, i.e. lookup tables to speed things up...

third, for walking and movement, shorten the 'pause' statements a bit to account for the time it takes for the subsequent instructions to be executed... This is probably done through empirical method if the executions of various functions are not known...

gonzo
03-26-2011, 08:29 PM
I wouldn't discount your 8-bit yet, I'm running BAP28 and it's not that fast...

first, hiw are you doing your calculations? I solved the matrices calc to closed form

second, you can move your trig functions to fixed point, i.e. lookup tables to speed things up...

third, for walking and movement, shorten the 'pause' statements a bit to account for the time it takes for the subsequent instructions to be executed... This is probably done through empirical method if the executions of various functions are not known...

1. I solved the kinematics equation and write it into several functions. So I'll call those function
everytime I make movements such as body rotation and walking.

2. Haven't tried LUT, is that really significant compared to calculations?

3. I don't really think that work, the delay still showing up.

I have few questions though:

1. For walking , do you use kinematics function that is call repeatedly or you have a sequence?

2. I did this for continuous rot:
body_rot(xxxx);
delay_ms(xx); // delay in here is to give time for the function above it to be executed.
body_rot(xxxx);
delay_ms(xx);
........
........
body_rot(xxxx);
delay_ms(xx);

note: body_rot is a function with desired angles parameter and contains kinematics calculation
in it. I also call several functions such as ssc32 angles converter and ssc32 servo driver.

It leaves delay everystep. Shorten the delay_ms() doesn't work.

Anyway, thanks for yout response Tom.:)

KurtEck
03-27-2011, 09:09 AM
My guess is that you should be able to get some reasonable response from your hex using an Atmega32. Awhile ago I ported the Phoenix code to an Arduino Mega and had it working pretty well. More details in the thread: http://www.lynxmotion.net/viewtopic.php?f=20&t=6730 This thread has a zip file with the code...

For speed there are lots of tricks to play with this setup.
1) Xan (original developer of Phoenix code) converted from floating point to fixed point with look up tables as part of version 2. Yes there is significant speed ups doing this.

2) One of the bottlenecks on speed is the amount of time it takes to serially send the location of the 18 servos for the next motion. So we have done some stuff to speed this up, which are talked about in the next couple of speedups. One is to use Binary communication to the SSC-32. You can download the firmware from the Lynxmotion site (one marked EGP). It is discussed in thread http://www.lynxmotion.net/viewtopic.php?f=2&t=5953.

3) Use the fasted communication speed you can to the SSC-32. My assumption is your At mega is probably running at 16mhz. The At mega on the SSC-32 is running at 14.7456Mhz so the fastest you can probably work is 38400. Recently the serial output functions for the Basic Atom Pro were fixed, so we now can output at 115200 which helped.

4) Split up Servo Driver into two parts. The first part outputs as much as possible, before you sleep waiting for the previous command to complete. Then after sleep output the commit to the new location. With normal SSC-32, the commit is the <cr>. For Binary move command it is a 3 byte move time.

Some of the above steps may not help out in doing continuous things like rotations and translations as I believe some of these do not sleep between moves. In these cases you may need to instrument your code and find out where the bottle neck is. I often add some HIGH/LOW/Toggle commands of some IO pins for debug purposes and hook up my logic analyzer to time pieces of code. For example awhile ago we found that I was eating up too much time in the DIY XBee code and I needed to speed up this code, such that Zenta could get faster response time.

You may find out that the time is being eaten up on the calculations, and you should spend some more time optimizing here. I have not timed these areas in awhile, but it would be interesting to compare how long it takes on the BAP28 which has 32 bit registers and math but running Basic versus the Atmega with it's 8 bit registers/Math but running in C?

That is all I can think of for now.

Good Luck
Kurt

tom_chang79
03-28-2011, 02:01 AM
I've been pretty lazy on converting my code into fixed point (look up tables) as well :o

But to answer your question, using LUTs and fixed point would prevent you from having to call floating point operations (which are very costly in terms of instruction cycles) and calling out trig functions (or floating point trig functions which is what I use :tongue:) which may take more than 20 cycles to complete execution.

LUTs basically off-loads your processing time and shifts it to be more memory intensive (LUTs occupy chunks of memory depending on how big your LUTs are and how many you have).

So if you have memory to spare, do some LUT and offload the processing. If you don't have memory to spare, you'll have to create functions...

The trade off is, you will lose resolution in your calculations by using small byte tables (0 to 255 scaling) versus say using a floating point system. But in our hobby servo-based systems, what is precision?

I think there are more slop in the electromechanical (servos) than you need to worry about...

Also, your delay issue. For me, the MOST delay you'll have to use is the delay of the transit time of the servo. Not sure if you're using SSC-32 or something, but the SSC-32 has transit time in millisecond which you can define. This is the total time it will take for all servos commanded to reach this point.

Recently, I've been experimenting empirically how to shorten the time... For instance, my "pause" (or in your case delay function) is half of the transit time I commanded... Why? Because by the time the next "move my servo" function is called, the servos has already reached all the positions from the last call since there is a delay in my floating-point-intensive instruction calls... :veryhappy:


Oh yeah, here's an example of it. I shortened the transit time to 100msec, and shortened the "pause" to be transit time divided by 2 (50 msec). It also shows my tripod gaiting which I had to re-implement since my older videos was using a faulty and buggy IK engine which I scrapped and had to completely re-write. It uses the latest updates of the TCIK engine:


http://www.youtube.com/watch?v=2KEHUMUDN84

Xevel
03-28-2011, 02:23 AM
As somebody who as never used an SSC-32, I'm quite interested to know how communication is done to take so long for just a few servos.
With the servo controllers I have used until now, at 115200 baud it would not take more than 15ms to transmit 24 servo positions (16bit/position), and could get down to less than 5ms by using multiple write at once.

This looks counter productive to me complexifying your code with fixed point when the major bottleneck is on communication.

tom_chang79
03-28-2011, 02:57 AM
As somebody who as never used an SSC-32, I'm quite interested to know how communication is done to take so long for just a few servos.
With the servo controllers I have used until now, at 115200 baud it would not take more than 15ms to transmit 24 servo positions (16bit/position), and could get down to less than 5ms by using multiple write at once.

This looks counter productive to me complexifying your code with fixed point when the major bottleneck is on communication.


You raise a good point Xevel, and it's something I've been thinking about too... I think the herky jerky motion that you may be experiencing maybe due to the intentional delay/pause functions that we all implement.

But I have a number that I"m controlling in my code, which is a variable called "ttime." I'm not always scooting my servos as fast as possible. Sometimes, I am slowing it down to give more stable movements. My goal for my hexapod is autonomous, so I the transit time will have to be variable depending on sensor and fuzzy logic that I'm going to implement. The pause statement will have to be a minimum of actual transit time minus the next code execution up to the next servo move call...

:confused:

KurtEck
03-28-2011, 09:21 AM
Hi again,

I am not sure how much I am helping or not. But as one who has played around with helped try to speed up different portions of the phoenix code, I will try to answer some of these things as best I can.

Yes IO to the SSC-32 can be one major bottleneck. With version 2.0 of the phoenix code, you send maybe 8 characters per servo plus maybe 5 characters for time or total of about 149 characters at 38400 baud. This would take about 39ms to output, using the SSC-32 with new binary mode, you output each servo using 3 bytes plus 3 bytes for time so total: 57 bytes and with current Basic Atom Pro IDE we can run at 115200, so using these two together we can send the new position to the SSC-32 in about 1/8th the time or about 5ms. These are a great savings! You may not notice these savings as much when doing normal walking as many of the different gaits have a nominal speed of about 70ms so as long as you can complete the other stuff in about 30ms than everything is happy.

However when doing things like body rotation and translations. To get smooth movement you may want to update the SSC-32 as quickly as possible (IE not necessarily wait for the previous command to complete...).

As for fixed point versus floating point. When Xan was doing this, I believe it speed things up a whole lot. In the thread: http://www.lynxmotion.net/viewtopic.php?f=8&t=4285&p=44248&hilit=fixed+point#p44248 Acidtech (Nathan from Basic Micro) gave a comparison that a floating point multiply or divide takes something like 8000 clocks whereas a fixed point takes about 100. Note: these are on a Bap which has 32 bit math, so I am not sure of the comparison for an Atmega32, but I am pretty sure it would be a significant difference.

Good Luck
Kurt

Xevel
03-28-2011, 10:06 AM
Thanks KurtE.

On the topic of fixed/floating point : my attempts at measuring time taken by various operations on the ATmega 328 (8-bit with hardware multiplier, like the ATmega32) showed that multiplication of two floats takes "only" twice the time it would take with 32 bits integers (153 cycles vs 80 cycles). And when it comes to division, floats take surprisingly less time than 32 bit integers (500 vs 650 cycles).

I hope I'm not too wrong on this, see here the testing protocol and the detailed results: http://svn.assembla.com/svn/XD_DSbot/trunk/Info/tests/Arduino/OperationTime/


When it comes to trigonometric functions, the cost is indeed high(er than LUT): from 1100 cycles for asin to 2800 cycles for acos, with sin and cos around 1700, which at 16Mhz takes 0.1ms.
This does not seem unbarable considering that you don't have a lot of them to do.

tom_chang79
03-31-2011, 03:32 AM
New Vid. Mental notes and To-Do lists are in the description of the video... Here's a copy and paste... Vids in 720p! Yay!

Updated Electro Mechanical (can't stop messing with this part!)

Demos All TCIK functions:

1) Body Shift
2) Body rotations (roll, pitch, yaw)
3) TRIPOD Gait
4) RIPPLE Gait
5) WAVE Gait

The Electro-Mechanical will get a major face-lift soon. Just ordered more parts, some cutting and drilling will be required for this major facelift.

(SOFTWARE)TO DO LIST LEFT:

1) Change to SI units for whole numbers (get away from float types)
2) Implement fixed point for trig functions
3) Refine gait functions (finer resolution for more fluid motion)
4) Migrate/Test same code on CH3-R
5) Calibration of Sensors
6) Navigation Engine
7) Fuzzy Logic

Electro-Mechanical Stuff:

1) Major change to electronic location
2) Clean up wires
3) Battery Bay, integrate switch for VS=VL line to turn off servos during programming
4) Better balanced weight distribution
5) Place sensors in key locations
6) Re-align servos (may have done it sloppy first time around)
7) THREAD LOCK CITY TO LOCK IT DOWN


http://www.youtube.com/watch?v=yD2YChWyxbo

tom_chang79
03-31-2011, 03:42 AM
As somebody who as never used an SSC-32, I'm quite interested to know how communication is done to take so long for just a few servos.
With the servo controllers I have used until now, at 115200 baud it would not take more than 15ms to transmit 24 servo positions (16bit/position), and could get down to less than 5ms by using multiple write at once.

This looks counter productive to me complexifying your code with fixed point when the major bottleneck is on communication.


One thing you also gotta consider is whether the servo will complete its move or not. For instance, the spec for the 645MG is:

SPECS: Speed: 0.24 sec/60° at 4.8V 0.20 sec/60° at 6.0V Torque: 106.93 oz-in at 4.8V (7.7 kg-cm) 133.31 oz-in at 6.0V (9.6 kg-cm) Length: 1.59" (40.6mm) Width: 0.77" (19.8mm) Height: 1.48" (37.8mm) Weight: 2.11oz (60g)

That's 200 msec for 60-degrees of travel. Granted the servo isn't scooting 60 degrees, but this would translate to roughly 3.33msec per degree when operated at 6V.

Now here's a food for thought, a dynamic transit time in the code, based on how much the angle the servos has to travel. Dynamic transit time based on the worst-case servo (since not all 18 servos will be travelling equal degrees).

Anyone have a dynamic transit time implemented? I think it would be really helpful if you want to go for broke but still guarantee the full travel rather than the servo travelling partway then moving onto the next move (which would create some really herky jerky motions I imagine).

Of course, this example only holds true for the 645MG servos. If you're using a faster servo, msec/degree would be quite different...

I just ordered up some Futaba servo horns from LM and I'm planning to experiment with my FAVORITE type of servo that I use in RC cars, the venerable Ace Hobby/Team Associated DS1015. It's on the expensive side, but this thing has plenty of torque for quad/hex/oct pods and it's blazing fast for the money.

I might even dabble with the Turnigy stuff too. I've been reading a few guys on here that keeps mentioning the HV-300, which is a monster of a servo... :)

gonzo
04-12-2011, 10:54 AM
Quacka!!!
Hey guys, I think I've solved the problem about rotation kinematics.
I'll post the video once my camera is fixed.

However, now I'm moving to more serious challenge: BALANCING!!

I've tried some method but the result is quite different with my desired balance gesture.
Anyway, I'm using this as my reference : http://www.micromagicsystems.com/#/balance-gesture/4517267257
That's a quite amazing algorithm. Got a lot of questions to ask but Matt Denton seems to be rarely visiting this forum now.
Anyone has experienced with balancing hexapod??
Thanks

Zenta
04-12-2011, 04:37 PM
Hi Gonzo,

For about 3 years ago I added the balance feature to Xan's Phoenix code. Take a look at these posts:
http://forums.trossenrobotics.com/showpost.php?p=20611&postcount=85
http://www.lynxmotion.net/viewtopic.php?t=4285&postdays=0&postorder=asc&start=106

Quoting myself:

The principle of how it works are quite simple. Just calculate how much each tars of the leg are rotated or translated relative to the center of body. And then add the values all together and divide by 6 and compensate the body (translate and rotate) with these values.

I've done some modifications to the balance code since then, but the method is the same.

tom_chang79
04-12-2011, 10:17 PM
This book helped me alot:

Amazon.com: Theory of Applied Robotics: Kinematics, Dynamics, and Control (2nd Edition) (9781441917492): Reza N. Jazar: Books

The link above is for the second edition, I own the first edition, and this is the only book I needed to code my own IK engine in my hexy...

It's a great resource since it has many example (the submarine example is very applicable to our robots for roll pitch and yaw)...

gonzo
04-12-2011, 11:31 PM
Hi Gonzo,

For about 3 years ago I added the balance feature to Xan's Phoenix code. Take a look at these posts:
http://forums.trossenrobotics.com/showpost.php?p=20611&postcount=85
http://www.lynxmotion.net/viewtopic.php?t=4285&postdays=0&postorder=asc&start=106

Quoting myself:


I've done some modifications to the balance code since then, but the method is the same.

Wohoo.. Zenta!! :veryhappy:
Finally, thanks for the nice answer. I'll be happy to learn your code.
By the way, have you been successful to make your hex walking on rough terrain??
What kind of sensor might be the best suited for this? I saw one of matt video that says he uses
3 DOF gimbal force sensor. But where in the earth I can buy that kind of sensor?.
Most of the force sensor in online store are 1DOF resistor like this: http://www.trossenrobotics.com/store/p/6492--2-Inch-Force-Sensing-Resistor-FSR-.aspx

tician
04-14-2011, 08:58 PM
I suspect that matt was referring to a 3DOF accelerometer or gyroscope mounted in the body. These would give you orientation (relative to the center of the earth) or rotational speed of the body, respectively. Add contact switches or FSRs in the ends of the legs and you will know which legs are making contact with the ground (Lynxmotion (http://www.robotshop.com/lynxmotion-hexapod-foot-sensor-pair.html) makes peg legs with embedded FSRs).

When combining a 3DOF accelerometer with contact switches/FSRs, then two very simple example scenarios spring to mind:
-If there is a small hole, then the ground is below the target position of a leg. This means that when the leg reaches its target position, the switch will not be actuated (and the body may have rotated towards the leg over the hole depending on the gait). To correct/balance, force the leg to go further down until the switch activates and the body rotates back to level (if it rotated).
-If there is a small rise/mound, then the switch will be actuated significantly prior to the leg reaching its target position. Move the leg a little further towards the target position until the body starts to rotate/rise at that leg to confirm that the switch actuation was not a false positive. The leg can then be backed up along its path until the body is level.


Overkill, for a lot of hobbyists, would be putting a full 9DOF IMU or AHRS (3DOF accelerometer, a 3DOF gyroscope, and a 3DOF magnetometer) in the body, and an FSR (or even more accurate load sensor) in each foot. The 9DOF IMU gives you not only greater/more reliable knowledge of the body's orientation, but also potentially assists in navigation (would definitely assist an airborne platform like a quadrotor or airplane, but not sure about a walker). The load sensor in each foot could enable the bot to shift its body so that the weight of the bot is evenly distributed over all of the legs and possibly identify irregularities in the load bearing capacity of the terrain (a leg sinking into mud or peat versus lifting the body when trying to move into rock).

gonzo
04-15-2011, 06:54 AM
I suspect that matt was referring to a 3DOF accelerometer or gyroscope mounted in the body. These would give you orientation (relative to the center of the earth) or rotational speed of the body, respectively. Add contact switches or FSRs in the ends of the legs and you will know which legs are making contact with the ground (Lynxmotion (http://www.robotshop.com/lynxmotion-hexapod-foot-sensor-pair.html) makes peg legs with embedded FSRs).

When combining a 3DOF accelerometer with contact switches/FSRs, then two very simple example scenarios spring to mind:
-If there is a small hole, then the ground is below the target position of a leg. This means that when the leg reaches its target position, the switch will not be actuated (and the body may have rotated towards the leg over the hole depending on the gait). To correct/balance, force the leg to go further down until the switch activates and the body rotates back to level (if it rotated).
-If there is a small rise/mound, then the switch will be actuated significantly prior to the leg reaching its target position. Move the leg a little further towards the target position until the body starts to rotate/rise at that leg to confirm that the switch actuation was not a false positive. The leg can then be backed up along its path until the body is level.


Overkill, for a lot of hobbyists, would be putting a full 9DOF IMU or AHRS (3DOF accelerometer, a 3DOF gyroscope, and a 3DOF magnetometer) in the body, and an FSR (or even more accurate load sensor) in each foot. The 9DOF IMU gives you not only greater/more reliable knowledge of the body's orientation, but also potentially assists in navigation (would definitely assist an airborne platform like a quadrotor or airplane, but not sure about a walker). The load sensor in each foot could enable the bot to shift its body so that the weight of the bot is evenly distributed over all of the legs and possibly identify irregularities in the load bearing capacity of the terrain (a leg sinking into mud or peat versus lifting the body when trying to move into rock).

That's a quite explanation tician!
But wait, I got an idea. Why we don't open a new thread " No-prize Contest: Legged robots walking on uneven terrain"
That would be cool, and I'm 100% will be in.
:D

tom_chang79
04-17-2011, 04:36 PM
My Phoenix is going through a total tear down. Here's a sneak peak. I'm far from finished, but it is progressing...