Shop OBEX P1 Docs P2 Docs Learn Events
Starting Octabot project using a Propeller — Parallax Forums

Starting Octabot project using a Propeller

linuxgeeklinuxgeek Posts: 45
edited 2006-09-16 07:51 in Propeller 1
I am just starting this project. If anyone is interested, all the information I have is on my website in the Robotics secttion. I will be using a PRC with Propeller for the controller. This robot will be able to roll on wheels as well as walk on 8 legs at will. I have desiigned two bases for this robot - round octabot and a longer one that is more or less like a hexapod with 2 additional legs.
.

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
I can handle complexity.. It's the SIMPLE things that confound me.
The Dynaplex Network
http://www.thedynaplex.org

Comments

  • GadgetmanGadgetman Posts: 2,436
    edited 2006-09-01 07:58
    Sounds like a fun project.

    Why 'octa' instead of 'hexa' ?
    Does the addition of two more legs give that much better stability to justify the extra weight and power drain?
    (Not to mention the complexity of programming efficient strides.)

    How autonomous will it be?
    (Being able to take decisions on leg-placement as it walks along a plotted course, being able to detour from the course to avoid obstacles, or being able to plot its own best course based on start and finish points)

    Wish I had the time to tinker with one...

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Don't visit my new website...
  • linuxgeeklinuxgeek Posts: 45
    edited 2006-09-01 16:39
    Gadgetman said...
    Sounds like a fun project.

    Why 'octa' instead of 'hexa' ?

    Does the addition of two more legs give that much better stability to justify the extra weight and power drain?
    (Not to mention the complexity of programming efficient strides.)

    For me, the issue is not so much stability, although I am hoping this will be improved over a hexapod, but of flexibility. My Octopod will be able to do some very intere4sting things, such as walk like a hexapod on just 6 of 8 legs while using the other two legs to do 'special' things. smile.gif And there is the issue of just being different from the usual walkers. My Octapod will also have a 4 wheel drive, with independent steering of each wheel, subsystem for use on level terrain where climbing is not required..
    Gadgetman said...
    How autonomous will it be?
    (Being able to take decisions on leg-placement as it walks along a plotted course, being able to detour from the course to avoid obstacles, or being able to plot its own best course based on start and finish points)

    Well, with the Propeller Chip controlling everything, I see pretty unlimited possibilities for autonomy. smile.gif Let me see, one Cog for the wheeled subsystem and related sensors such as wheel encoders. Another Cog to handle the walking subsystem, another Cog to handle all video input, another Cog to handle the object avoidence system, another Cog to handle running a multi-jointed arm with gripper.. That's just 5 Cogs, leaving me one for heavy mathentatical comutation and 2 more spares fpr whatever else I might want to do. smile.gif There will also be GPS, accelerometer, and two compasses tp be handled so that might be anither Cog. I believe this would allow for a very autonomous robot.

    There are so many ways sensor inputt, motion, object detection, video, etc can be dealt with when one has 8 Cogs to play with.. smile.gif The legs on my Octapod are designed such that I can place stuff at each joint, which gives me much flexibility in what I can do with iit.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    I can handle complexity.. It's the SIMPLE things that confound me.
    The Dynaplex Network
    http://www.thedynaplex.org

    Post Edited (linuxgeek) : 9/1/2006 4:43:48 PM GMT
  • GadgetmanGadgetman Posts: 2,436
    edited 2006-09-04 10:32
    I don't think one COG is enough for the walking subsystem.

    Try splitting it into two, one doing the low-level work(actually pushing data to the servo controllers), and the other plotting where it should walk.

    Stick sensors on the tip of the legs, one to detect the ground(it may not be even, after all, or there may be a hole), and one on the front edge to detect obstacles. (maybe even on all sides, if you want to be fancy)
    The COG which handles the low-level movement can then choose to continue the leg's motion(lower it until it reaches ground, stop early if there's a rise, put it down ealier or lift it up over an obstacle), without disrupting the course-plotting.
    Or if need be, halt altogether and alert the system if needed.
    (and do it much quicker than if one COG did it all.)

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Don't visit my new website...
  • linuxgeeklinuxgeek Posts: 45
    edited 2006-09-04 10:59
    Gadgetman said...
    I don't think one COG is enough for the walking subsystem.

    Try splitting it into two, one doing the low-level work(actually pushing data to the servo controllers), and the other plotting where it should walk.

    That second Cog is under the heading of heavy mathematecal processes. smile.gif
    Gadgetman said...
    Stick sensors on the tip of the legs, one to detect the ground(it may not be even, after all, or there may be a hole), and one on the front edge to detect obstacles.

    I will have the flexibility to be able to put sensorsn (or other stuff) at every joint if I want to. I have some interesting ideas for things to put at the joints.
    Gadgetman said...
    (maybe even on all sides, if you want to be fancy)
    The COG which handles the low-level movement can then choose to continue the leg's motion(lower it until it reaches ground, stop early if there's a rise, put it down ealier or lift it up over an obstacle), without disrupting the course-plotting.

    I see the possibility of comparing where each of the other legs are setting in relation to where one leg is going to detect possible holes, precipices, etc. I will definitely have a lot of room for experimentation. With eight legs. the robot won't necessarily need all of them down at any given time.
    Gadgetman said...
    Or if need be, halt altogether and alert the system if needed.
    (and do it much quicker than if one COG did it all.)

    At any rate, I think most, if not all, the stuff I want to do with my Octapod can be handled by a single Propeller. If not, I can always add another, as inexpensive as they are. smile.gif

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    I can handle complexity.. It's the SIMPLE things that confound me.
    The Dynaplex Network - Home of The Octabot Project
    http://www.thedynaplex.org
  • GadgetmanGadgetman Posts: 2,436
    edited 2006-09-04 11:46
    Just wish I had the cash to build one, myself...
    (Walkers are so much more fun than wheeled or tracked systems)

    As you only need 3 legs on the ground at any time(assuming a decent spread), you have a lot of redundancy when it comes to stability.

    I would still suggest that you plan for inter-Propeller communications already from the beginning, as that is the kind of stuff that can be difficult to add later.
    (Find the 'narrowest' process-interfaces, which are easier to push serially, and make certain they can be moved outside later)

    Cool idea:
    With pointy enough legs, and the possiblilty of tilting the legs, there's no reason it shouldn't be able to scale brick walls...

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Don't visit my new website...
  • linuxgeeklinuxgeek Posts: 45
    edited 2006-09-04 15:17
    Gadgetman said...
    Just wish I had the cash to build one, myself...
    (Walkers are so much more fun than wheeled or tracked systems)

    That's one reason I decided to build one for my second robot. The first one, which I should be able to start construction on this week, will be my development platform and also have wheels and legs. I don't have a lot of money for things such as this, but am doing it a bit at a time. It will probably take me at least a year, and probably longer, to complete my long Octapod. I am doing all of this on a fixed income. I'll complete the 4WD system first, but I think I have planned it out pretty well..
    Gadgetman said...
    As you only need 3 legs on the ground at any time(assuming a decent spread), you have a lot of redundancy when it comes to stability.

    Right now I am leaning towards a 6" span between joints, and the front legs will be more special, perhaps being 4DOF with a short last segment. This would allow me to do some interesting things.
    Gadgetman said...
    I would still suggest that you plan for inter-Propeller communications already from the beginning, as that is the kind of stuff that can be difficult to add later. (Find the 'narrowest' process-interfaces, which are easier to push serially, and make certain they can be moved outside later)

    I have been reading a lot about sensors, the bandwidth requirements, etc. I like the way I2C is setup to work, and I am selecting sensors that can communicate with it when I can find them, such as the SRF08 and SRF10 ultrasonics and HM55B compass.
    Gadgetman said...
    Cool idea:
    With pointy enough legs, and the possiblilty of tilting the legs, there's no reason it shouldn't be able to scale brick walls...

    Have you been reading my mind? This could be dangerous.. smile.gif I don't think I will have to tilt the legs in order to climb - the two front side legs will come out from the body at a 45 degree angle. I really would like to have this robot be able to climb standard stairs and such. See below:

    long_octapod_base.jpg

    I am already considering adding a gripper to two of the front legs, which would be able to switch out with the end leg segment. I think I have figured out how to do the switch and make it work. I am just wondering about the added load on those legs, having to carry around a gripper, though.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    I can handle complexity.. It's the SIMPLE things that confound me.
    The Dynaplex Network - Home of The Octabot Project
    http://www.thedynaplex.org
  • GadgetmanGadgetman Posts: 2,436
    edited 2006-09-04 18:33
    Build the grippers with joints in the middle so that they can take the shape of a diamond, then squeeze them flat when you need to use them as legs. That should only add ONE servo or actuator/leg, and shouldn't add too much weight, either, particularly if you place the servo in the body and use 'tendons'.
    (wires to pull on the limbs)
    It probably won't be able to lift as much as a dedicated arm/claw, but unless you need it to lug around heavy objects...

    I2C maybe a good choice for 'advanced' sensors, but for simple touch, stick in a couple of Parallell-in-serial-out shift registers, and just clock them in.

    What will you be constructing the legs out of?
    I once built a small walker using paper and a laminator. Drew the pieces on paper, laminated and cut them out... Unfortunately, I could never manage to fasten the 'Muscle-wire' threads properly, so it got binned a long time ago.

    Yes, I'm totally mad...

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Don't visit my new website...
  • linuxgeeklinuxgeek Posts: 45
    edited 2006-09-04 19:57
    Gadgetman said...
    Build the grippers with joints in the middle so that they can take the shape of a diamond, then squeeze them flat when you need to use them as legs. That should only add ONE servo or actuator/leg, and shouldn't add too much weight, either, particularly if you place the servo in the body and use 'tendons'.
    (wires to pull on the limbs)
    It probably won't be able to lift as much as a dedicated arm/claw, but unless you need it to lug around heavy objects...

    Hmmm, interesting. However, I don't think something like this will work for my Octapod. The entire body will be built using Lynxmotion's Servo Erector Set components. I know this limits what I can do to some extent, but I can use all off the shelf parts that can be easily replaced if necessary and it's easy to change things around as needed.
    Gadgetman said...
    I2C maybe a good choice for 'advanced' sensors, but for simple touch, stick in a couple of Parallell-in-serial-out shift registers, and just clock them in.

    I will definitely consider this method for this type of sensor. If I do use I2C, I will need a multi-master configuration if I add more controllers. I will eventually add a Linux based controller to be the super master controller, but that will probably not happen for a long time. I'll be using IR and Ultrasonic sensors as well, plus one Thermal Array to detect warm bodies and probably at least one camera.

    This is a major construction project with many things to be learned and done as I go - which is a very big part of the reason I am doing this.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    I can handle complexity.. It's the SIMPLE things that confound me.
    The Dynaplex Network - Home of The Octabot Project
    http://www.thedynaplex.org
  • LawsonLawson Posts: 870
    edited 2006-09-05 05:23
    Just curious, have you considered mounting the wheels of your 4wd system on the end of four of the Octobot's legs?··This would give those·four legs nice grippy tips.· Also,·wheel tipped legs should simplify the·4wd system allowing the legs to supply the rotation needed·for steering.·

    My 10 bits

    MaRRt'e
  • GadgetmanGadgetman Posts: 2,436
    edited 2006-09-05 08:42
    I don't think it's a good idea...


    First off, the outermost part of the leg must be able to rotate, to steer the wheels, second, it'll add a whole lot of weight to the legs, third, it'll make it difficult to mount sensors to the tip of the legs, and fourth, it'll increase power-consumption(assuming servos or steppers to drive the wheels) as you need to apply power to the wheel-motors to keep them locked while walking.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Don't visit my new website...
  • linuxgeeklinuxgeek Posts: 45
    edited 2006-09-05 10:52
    Lawson said...
    Just curious, have you considered mounting the wheels of your 4wd system on the end of four of the Octobot's legs? This would give those four legs nice grippy tips. Also, wheel tipped legs should simplify the 4wd system allowing the legs to supply the rotation needed for steering.

    I considered it, but decided it would not work for what I want to do. I think it is much better (for this robot anyway) to keep the walking and wheeled subsystems separate. I want to be able to retract the legs, at least most of them, when switching to wheeled mode, and vice versa when switching into wheeled drive.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    I can handle complexity.. It's the SIMPLE things that confound me.
    The Dynaplex Network - Home of The Octabot Project
    http://www.thedynaplex.org
  • linuxgeeklinuxgeek Posts: 45
    edited 2006-09-05 11:02
    Gadgetman said...
    I don't think it's a good idea...


    First off, the outermost part of the leg must be able to rotate, to steer the wheels, second, it'll add a whole lot of weight to the legs, third, it'll make it difficult to mount sensors to the tip of the legs, and fourth, it'll increase power-consumption(assuming servos or steppers to drive the wheels) as you need to apply power to the wheel-motors to keep them locked while walking.

    Yes, I'll be using standard continuous motion servos, at least to start with, for the wheeled drive. Hmmm, this is making me consider whether I really should put a gripper at the end of the two front legs or not. It will be quite awhile before I get to the point where I am ready for any work with grippers, so I don't need to decide on this right now.

    Putting wheels on 4 of the legs would just not be workable for what I want to do anyway. My wheeled drive will be all independent steering for all 4 wheels - 2 servos per wheel, one to steer the wheel and the other for the wheel itself.

    For now, I just want to get the robot built and able to move using either motion system, and it will probably take me at least a year to get all the legs built. It will roll long before it can walk.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    I can handle complexity.. It's the SIMPLE things that confound me.
    The Dynaplex Network - Home of The Octabot Project
    http://www.thedynaplex.org
  • LawsonLawson Posts: 870
    edited 2006-09-07 15:33
    Lawson said...
    Just curious, have you considered mounting the wheels of your 4wd system on the end of four of the Octobot's legs? This would give those four legs nice grippy tips. Also, wheel tipped legs should simplify the 4wd system allowing the legs to supply the rotation needed for steering.

    I considered it, but decided it would not work for what I want to do. I think it is much better (for this robot anyway) to keep the walking and wheeled subsystems separate. I want to be able to retract the legs, at least most of them, when switching to wheeled mode, and vice versa when switching into wheeled drive.
  • linuxgeeklinuxgeek Posts: 45
    edited 2006-09-07 15:57
    Lawson said...
    First off wheel tipped legs would NOT require an extra rotary joint at the tip of a "standard" 3-dof leg. The legs pre-existing shoulder rotate joint usually has plenty of rotation to steer with. (understandably this is not likely to be enough steering to spin in place or slew sidways, but should be enough for high speed movement)

    Putting my wheels at the end of legs would add more weight, since each wheel will add two servos (one for the wheel and one for full steering). Maybe I will try it anyway just to see what happens. That's what all this is about anyway - experimentation.
    Lawson said...
    Second, who cares if the tip of the leg is heavier? The legs already have to be strong enough to lift the whole body of the robot. Since electric motors work just as well in reverse the legs will be strong enough to lift a motor and wheel.

    I am already planning to use HS645MG servos for the Hip Vertical and Knee joints, so hopefully that will be enough lifting power for what I want to do. If my leg design works out, each leg will have a 12" maximum reach.
    Lawson said...
    Third, agreed it will complicate the mounting of sensors on the tip of the wheeld legs. It is still very possable to mount sensors though. Proximity sensors can simply be moved up the leg a bit, and contact sensors can be made to sense the reaction forces on the wheels instead of direct contact.

    I am actually more concerned that I have flexibility in adding sensors. With the long reach these legs will have, I am planning to have at least an IR distance sensor at each ankle and perhaps an untrasonic as well. It will be quite awhile before this robot walks though because it is going to be expensvie to build the legs for it - it could take me two months just to get the parts for a single leg. I hope to have the wheeled base completed by the end of this year.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    I can handle complexity.. It's the SIMPLE things that confound me.
    The Dynaplex Network - Home of The Octabot Project
    http://www.thedynaplex.org
  • linuxgeeklinuxgeek Posts: 45
    edited 2006-09-16 03:31
    I have been majorly occupied with robot design these past weeks. I've got a completed design for a couple of hybrid robots - a Wheeled Hexapod and a Wheeled Octapod. Both also have grippers on their two front legs. I will eventually have a Propeller as the main controller for these two bots as they just about scream for the Propeller's power and multitasking capabilties.

    Here are some pictures of the Wheeled Hexapod I will start building soon:

    Front:
    short-wheeled-hexapod-front.jpg

    Side:
    short-wheeled-hexapod-side.jpg

    Top:
    short-wheeled-hexapod-top.jpg

    This robot can run wheeled or walk. All four wheels are independently steerable, can be lowered, and are retractable so they are up under the body out of the way. The legs need not be extended in order for the wheels to partially retract, since they can be lowered to a point where the legs will pick the robot off the ground. After the legs are holding the robot steady, the wheels can be fully retracted out of the way. The front two legs will have small grippers in place of the foot pads. Each leg has a total of 6" of reach and 3DOF of movement. Technically, the front two legs have 4DOF of movement. The body is a little over 9" wide. I am already planning to use HS-645MG servos in at least the Hip Vertical and Knee joints of all the legs

    I also have an Wheeled Octabot design with the same basic specifications, except for having two additional legs.

    8-Dale

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    I can handle complexity.. It's the SIMPLE things that confound me.
    The Dynaplex Network - Home of The Octabot Project
    http://www.thedynaplex.org

    Post Edited (linuxgeek) : 9/17/2006 12:39:13 AM GMT
  • The CaptainThe Captain Posts: 60
    edited 2006-09-16 05:05
    I recoginize those pieces, did you d/l those from Lynxmotion?
  • linuxgeeklinuxgeek Posts: 45
    edited 2006-09-16 07:51
    The Captain said...
    I recoginize those pieces, did you d/l those from Lynxmotion?

    Yes, of course. [noparse]:D[/noparse] They are all Servo Erector Set parts.

    8-Dale

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    I can handle complexity.. It's the SIMPLE things that confound me.
    The Dynaplex Network - Home of The Octabot Project
    http://www.thedynaplex.org
Sign In or Register to comment.