element14 Community
element14 Community
    Register Log In
  • Site
  • Search
  • Log In Register
  • Community Hub
    Community Hub
    • What's New on element14
    • Feedback and Support
    • Benefits of Membership
    • Personal Blogs
    • Members Area
    • Achievement Levels
  • Learn
    Learn
    • Ask an Expert
    • eBooks
    • element14 presents
    • Learning Center
    • Tech Spotlight
    • STEM Academy
    • Webinars, Training and Events
    • Learning Groups
  • Technologies
    Technologies
    • 3D Printing
    • FPGA
    • Industrial Automation
    • Internet of Things
    • Power & Energy
    • Sensors
    • Technology Groups
  • Challenges & Projects
    Challenges & Projects
    • Design Challenges
    • element14 presents Projects
    • Project14
    • Arduino Projects
    • Raspberry Pi Projects
    • Project Groups
  • Products
    Products
    • Arduino
    • Avnet & Tria Boards Community
    • Dev Tools
    • Manufacturers
    • Multicomp Pro
    • Product Groups
    • Raspberry Pi
    • RoadTests & Reviews
  • About Us
  • Store
    Store
    • Visit Your Store
    • Choose another store...
      • Europe
      •  Austria (German)
      •  Belgium (Dutch, French)
      •  Bulgaria (Bulgarian)
      •  Czech Republic (Czech)
      •  Denmark (Danish)
      •  Estonia (Estonian)
      •  Finland (Finnish)
      •  France (French)
      •  Germany (German)
      •  Hungary (Hungarian)
      •  Ireland
      •  Israel
      •  Italy (Italian)
      •  Latvia (Latvian)
      •  
      •  Lithuania (Lithuanian)
      •  Netherlands (Dutch)
      •  Norway (Norwegian)
      •  Poland (Polish)
      •  Portugal (Portuguese)
      •  Romania (Romanian)
      •  Russia (Russian)
      •  Slovakia (Slovak)
      •  Slovenia (Slovenian)
      •  Spain (Spanish)
      •  Sweden (Swedish)
      •  Switzerland(German, French)
      •  Turkey (Turkish)
      •  United Kingdom
      • Asia Pacific
      •  Australia
      •  China
      •  Hong Kong
      •  India
      • Japan
      •  Korea (Korean)
      •  Malaysia
      •  New Zealand
      •  Philippines
      •  Singapore
      •  Taiwan
      •  Thailand (Thai)
      • Vietnam
      • Americas
      •  Brazil (Portuguese)
      •  Canada
      •  Mexico (Spanish)
      •  United States
      Can't find the country/region you're looking for? Visit our export site or find a local distributor.
  • Translate
  • Profile
  • Settings
Personal Blogs
  • Community Hub
  • More
Personal Blogs
Legacy Personal Blogs QuadABot #2 : Now With Four Legs (Almost)
  • Blog
  • Documents
  • Mentions
  • Sub-Groups
  • Tags
  • More
  • Cancel
  • New
  • Share
  • More
  • Cancel
Group Actions
  • Group RSS
  • More
  • Cancel
Engagement
  • Author Author: dubbie
  • Date Created: 17 Feb 2020 5:39 PM Date Created
  • Views 884 views
  • Likes 4 likes
  • Comments 7 comments
  • quadabot
  • four legs
Related
Recommended

QuadABot #2 : Now With Four Legs (Almost)

dubbie
dubbie
17 Feb 2020

I have now 3D printed the four shoulder mounts and leg parts (well, 3 legs anyway - somehow I forgot to print the fourth leg) and mounted them altogether. I had overlooked the problem that when the shoulder 3D parts are mounted on the opposite sides that they need to be mirror images rather than being exactly the same. Still, this didn't take long to fix in TinkerCAD as it has a mirror feature and then I just printed two mirror image shoulder parts. The legs do not need a mirror part as they are symmetrical. Below is the fully assembled chassis with four shoulder parts and 4 leg motors but only 3 legs. I'll print out the missing leg soon and then the first version of the assembly will be correct. See video below.

 

You don't have permission to edit metadata of this video.
Edit media
x
image
Upload Preview
image

 

I have produced an initial programme for the Arduino but it isn't really suitable for controlling the 8 servo motors so I will work on that next. Hopefully in the not too distant future I will have some sort of walking chassis, or at least, some leg movements that look vaguely viable.

 

I have already identified that the flat boy plate needs to be more of a rectangle than a square and is probably too small for the shoulders and legs. My 3D printer can only produce parts slightly larger than the 80 mm original size but it might be enough. Otherwise I might have to try and make the flat body part out of some other material or maybe two or more parts fixed together.

 

Dubbie

  • Sign in to reply

Top Comments

  • three-phase
    three-phase over 5 years ago +3
    Good to see the progress, will be great to see some movement out of it. Kind regards
  • neilk
    neilk over 5 years ago +3
    Hi Dubbie Most impressive - I've never tried to handle that many servos!! Looking forward to seeing your results from the look-up table. Neil
  • dubbie
    dubbie over 5 years ago in reply to neilk +3
    Yes, I'm looking forward to seeing the results of the lookup table. I have been watching the movements of the servos on the Cute Hero robots ( CuteABot #1 : Coupling Two CuteHero Robots ) and they definitely…
  • dubbie
    dubbie over 5 years ago in reply to genebren

    Gene,

     

    I've not heard of the filtering of the commands before, sounds interesting. I'm thinking of using constant PWM signals to the motors as at some positions the weight is too much for the micro servos static friction and it collapses when not powered. The drawback is the power needed for 8 servos. I'm thinking of connecting directly to my power supply during this testing phases to try and avoid any battery related problems until I have a working version.

     

    Dubbie

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • More
    • Cancel
  • genebren
    genebren over 5 years ago in reply to dubbie

    Dubbie,

     

    I have used a couple of different approaches to smooth servo movements.  The two that have worked best for me are as follows (both of these would work well with your table of moves - which I really like):

    1. Run all new position commands through a low pass filter, using the last commanded position.  The filter must be in a loop (or pinged by a timer), so that a series of small moves are sent to the servo.  This approach is very useful when you want to smooth out the sharp edges of a commanded move, as this effectively ramps the start and stop of the movement, but when implemented correctly (filter serviced neither too slowly or quickly).
    2. With each move, calculated a step size (difference between current position and commanded position), then again in a loop or by a timer, output command pulses that change the position by a step size at a time, until you reach the commanded position.  Again timing is very important so you don't end up turning a very jerky large step making a series of very jerky small steps.  Ideally, I try to time how long it takes to command a servo between the two extremes of the movement range (skew time).  Then use a timer interval that is several times smaller than this skew time.  Depending on the resolution of my servo command, I have limited the minimal steps size, so I don't waste time output the same commanded position.

     

    Note:  These approaches work best when you are constantly sending out PWM signals to the servos (I use timers to constantly refresh my PWM signals).

     

    Best of luck!

     

    Gene

    • Cancel
    • Vote Up +2 Vote Down
    • Sign in to reply
    • More
    • Cancel
  • dubbie
    dubbie over 5 years ago in reply to neilk

    Yes, I'm looking forward to seeing the results of the lookup table. I have been watching the movements of the servos on the Cute Hero robots (CuteABot #1 : Coupling Two CuteHero Robots ) and they definitely have very smooth movements so it must be possible with these micro servo motors as I have wondered whether their resolution is sufficient to even allow smooth movements. I'm going to start with lookup tables but I thinking there is some trigonometric equation that can also be used, something like COSH or SINH. I have used it in the past and it worked but I just cannot remember what It was or find it in my old documents.

     

    Dubbie

    • Cancel
    • Vote Up +3 Vote Down
    • Sign in to reply
    • More
    • Cancel
  • neilk
    neilk over 5 years ago

    Hi Dubbie

     

    Most impressive - I've never tried to handle that many servos!! Looking forward to seeing your results from the look-up table.

     

    Neil

    • Cancel
    • Vote Up +3 Vote Down
    • Sign in to reply
    • More
    • Cancel
  • dubbie
    dubbie over 5 years ago in reply to three-phase

    Yes, movement will be good. I am thinking of using a lookup table to hold the movements so that I will be able to cycle through the table simultaneously controlling all eight motors. Then I will be able to put the 'gait' into the lookup table and see how different movements work. In my head it sounds easy but I am thinking that getting the optimum values for the lookup table will be tricky. I might need to find some way of visualising the numbers of taking a visual diagram (such as an amended sine wave or similar and then working out the numbers. I can always use an external number for amplification to vary the amplitude of the strides.

     

    Dubbie

    • Cancel
    • Vote Up +2 Vote Down
    • Sign in to reply
    • More
    • Cancel
>
element14 Community

element14 is the first online community specifically for engineers. Connect with your peers and get expert answers to your questions.

  • Members
  • Learn
  • Technologies
  • Challenges & Projects
  • Products
  • Store
  • About Us
  • Feedback & Support
  • FAQs
  • Terms of Use
  • Privacy Policy
  • Legal and Copyright Notices
  • Sitemap
  • Cookies

An Avnet Company © 2026 Premier Farnell Limited. All Rights Reserved.

Premier Farnell Ltd, registered in England and Wales (no 00876412), registered office: Farnell House, Forge Lane, Leeds LS12 2NE.

ICP 备案号 10220084.

Follow element14

  • X
  • Facebook
  • linkedin
  • YouTube