Go Down

Topic: Robot Millipede (Read 293 times) previous topic - next topic

Baron38

 Hello, I'm new to the community


   I was planning to create a robotic millipede (at least 2' long). I was wondering if it was possible to use around 22 servo nano motors so it can replicate similar movements to the real bug itself. I wanted to make it like outdoors so I can place it on the ground and let it run freely. I've heard of the Arduino Uno r3 (with a motor shield) can operate up to 16 servo motors at the same time but my questions are the following:


1. Would this require at least 2 Arduino connected one to each other to operate for the extra servo motors?
2. What is the maximun movement of the servo motors to replicate a walking sequence
3. Which type of battery would best suit this proyect? My expectations is to make it run for at least 5 hours non stop.
4.If it requires an Ai, which one would be the best for this?


I've considered to use a ultrasonic radar or an actual Arduino camera module for visuals or "eyes" for avoiding obstacles and to record its point of view.



   Any additional help would be gratefull

TheMemberFormerlyKnownAsAWOL

3. One bigger than the device itself can carry.

vinceherman

1. With many servos, it is often easiest to use a dedicated driver for the servos.  Adafruit has such a board.  Since it is I2C and addressable, you can have many boards.  I think it will support almost a thousand servos from a single UNO.

2. I simply do not understand your question.

3. 5 hours for a walker of any sort is a big ask.  And very much of this will depend on your physical design.  Walkers that use servos to lift its own body weight use a lot of power.  May hexapod and quadruped designs fail in this regard.

4. AI is not typically an Arduino thing.  Image processing is not an Arduino thing.   Use the Arduino to control the servos.  Use something else for AI and image processing (RPi)

I would be very interested in your physical design.
Do you see the legs being fixed on each body segment and using servos to move each segment?
Do you see the legs being articulated?  If so, in which movements/degrees of freedom?

Baron38

1. With many servos, it is often easiest to use a dedicated driver for the servos.  Adafruit has such a board.  Since it is I2C and addressable, you can have many boards.  I think it will support almost a thousand servos from a single UNO.

Would the wiring be the same as if it had only one I2C board or would it be different?


2. I simply do not understand your question.

I see the issue, What I meant was the maximun rotation of a servo motor (as in can it turn the full 360 degrees and return to the same position or would it turn only 180 degrees)? So can the walking sequence would look more natural.


3. 5 hours for a walker of any sort is a big ask.  And very much of this will depend on your physical design.  Walkers that use servos to lift its own body weight use a lot of power.  May hexapod and quadruped designs fail in this regard.

I'm currently thinking it the flexing tubing as part of the extra muscle for the servos so the weight would be far less than it normally would. (Less lifting force for the servos to move).


4. AI is not typically an Arduino thing.  Image processing is not an Arduino thing.   Use the Arduino to control the servos.  Use something else for AI and image processing (RPi)

Thanks for the advice.


I would be very interested in your physical design.
Do you see the legs being fixed on each body segment and using servos to move each segment?

I actually see the legs being fixed on each segment with the servos moving, although the challenge would be the coding due to the leg timing and the sequence that would take.


Do you see the legs being articulated?  If so, in which movements/degrees of freedom?

I had in mind the degree movement at least 190 degrees, perhaps the maximun would be 200 degrees. I might need to make some changes to the design since the battery size will alter the weight and thus the movement.

Delta_G

Quote
Quote
Do you see the legs being articulated?  If so, in which movements/degrees of freedom?
I had in mind the degree movement at least 190 degrees, perhaps the maximun would be 200 degrees. I might need to make some changes to the design since the battery size will alter the weight and thus the movement.
That's a lot of joints!!!  200 degrees of freedom?  The human leg only has what 6 or 7.  How many does a real insect leg have?  I looked at a picture of a millipede leg and it has like 5 joints but I'm not sure if all of them move or in what directions. 

Or do you mean that the whole bug will have 200 DOF?  That makes more sense.  Like each leg has 2 DOF and the big has 100 legs?  But that's still just a 2 DOF problem being copied out 200 times.  If you watch a real millipede walk you'll see that each leg is doing the exact same movement just a little behind in the time domain from the one in front of it.  So if you solve the 2 DOF problem for one set of legs then you've got it figured for the whole bot. 
|| | ||| | || | ||  ~Woodstock

Please do not PM with technical questions or comments.  Keep Arduino stuff out on the boards where it belongs.

Baron38

I had in mind the degree movement at least 190 degrees, perhaps the maximun would be 200 degrees. I might need to make some changes to the design since the battery size will alter the weight and thus the movement.


That's a lot of joints!!!  200 degrees of freedom?  The human leg only has what 6 or 7.

That's an interesting fact. The robot needs a little bit of unnatural movement since Its not gonna reach the 1' (one foot) height.


  How many does a real insect leg have?  I looked at a picture of a millipede leg and it has like 5 joints but I'm not sure if all of them move or in what directions.

That's were things get really tricky, they move like this: upward, foward, downward, and backward, in that sequence (this happens in a fraction of a second).
 

Or do you mean that the whole bug will have 200 DOF?  That makes more sense.


I've forgot to calculate that, thanks for reminding me. For that answer its a yes.


  Like each leg has 2 DOF and the big has 100 legs?

I'm not going to add 100 legs, I'll be ok with 16 legs.



  But that's still just a 2 DOF problem being copied out 200 times.  If you watch a real millipede walk you'll see that each leg is doing the exact same movement just a little behind in the time domain from the one in front of it.

I've actually had seen them in my face once, its curious how they move.



 So if you solve the 2 DOF problem for one set of legs then you've got it figured for the whole bot. 

And there is what I was referring about the coding for the servos (timing it right), that's gonna be the challenge. Not just that but verifying that it would replicate the movement.


Delta_G

I'm still confused.  You were being asked how many degrees of freedom your leg has.  Your answers to that have been very confusing.  It shouldn't be.  The leg has

A.  1 joint
B.  2 joints
C.  3 joints
D.  More than three joints. 


Do you know what degrees of freedom mean?  Is that word confusing you? 
|| | ||| | || | ||  ~Woodstock

Please do not PM with technical questions or comments.  Keep Arduino stuff out on the boards where it belongs.

vinceherman

I think there might be confusion over degrees as used to define the range of movement of the servo arm (e.g. 180 degrees) and as used in describing the degrees of freedom
de·gree of free·dom
noun: degree of freedom; plural noun: degrees of freedom
    each of a number of independently variable factors affecting the range of states in which a system may exist, in particular any of the directions in which independent motion can occur.

Baron38

I think there might be confusion over degrees as used to define the range of movement of the servo arm (e.g. 180 degrees) and as used in describing the degrees of freedom
de·gree of free·dom
noun: degree of freedom; plural noun: degrees of freedom
    each of a number of independently variable factors affecting the range of states in which a system may exist, in particular any of the directions in which independent motion can occur.
I think I see were the confusion is, I was referring to each individual servo motor from a leg. The degree of freedom of every single servo motor will be different (example: motor 1, 120 degrees, motor 2, 108 degrees and so forth).  I'm unaware if a servo arm is very simplified or not.

Hopefully I've cleared this. I wasn't aware there was 2 definitions from the same word.

Delta_G

I think I see were the confusion is, I was referring to each individual servo motor from a leg. The degree of freedom of every single servo motor will be different (example: motor 1, 120 degrees, motor 2, 108 degrees and so forth).  I'm unaware if a servo arm is very simplified or not.

Hopefully I've cleared this. I wasn't aware there was 2 definitions from the same word.
There aren't two definitions.   You made the one about how many degrees the joint moves up yourself.  That's not degree of freedom.  That's range of motion. 
|| | ||| | || | ||  ~Woodstock

Please do not PM with technical questions or comments.  Keep Arduino stuff out on the boards where it belongs.

Baron38

There aren't two definitions.   You made the one about how many degrees the joint moves up yourself.  That's not degree of freedom.  That's range of motion. 
Ok, so the misunderstanding was greater than I though. Thanks for clearing that up, I was referring to the range of motion (I didn't knew the proper word for that at the moment). The degree of freedom I definitely haven't thought of it. I'm also considering using 4 servo motors for each leg.

Idahowalker

#11
Oct 12, 2019, 06:12 pm Last Edit: Oct 12, 2019, 06:14 pm by Idahowalker
For something as large as you are trying to do, consider a multi microCOntroller approach. It's done all the time. Example a GPS module or an IMU module each having their own 32 bit on board microController.

You could break the unit int zones, with each zone having a microController. The zone controllers receive their do actions from the main controller or Brain. Each zone controller is programmed with the things they do such as move forward or move backwards, so the zones know what to do. The brain tells the zones what thing-do and when to do the thing-do. So far, as the project has been described I'd use STM32 BluePills for the zones and a DUE or ESP32 for the brain and a CAN buss for communications.

As for power, I'd start with https://smile.amazon.com/gp/product/B06ZYRCPS3/ref=ox_sc_saved_title_3?smid=A646DVGSXYMNH&psc=1

Baron38

For something as large as you are trying to do, consider a multi microCOntroller approach. It's done all the time. Example a GPS module or an IMU module each having their own 32 bit on board microController.

You could break the unit int zones, with each zone having a microController. The zone controllers receive their do actions from the main controller or Brain. Each zone controller is programmed with the things they do such as move forward or move backwards, so the zones know what to do. The brain tells the zones what thing-do and when to do the thing-do. So far, as the project has been described I'd use STM32 BluePills for the zones and a DUE or ESP32 for the brain and a CAN buss for communications.


This is incredibly helpful, Can all of these boards be programed on the Arduino IDE? I'm kind of new to Arduino.

As for power, I'd start with https://smile.amazon.com/gp/product/B06ZYRCPS3/ref=ox_sc_saved_title_3?smid=A646DVGSXYMNH&psc=1
It is interesting but then, Is there any type of cable or component that can distribute the battery power to all of the micro controllers or every single component has to have one battery? With this info I haven't calculated the power comsumption nor if its gonna overload the microcontrollers.

Delta_G

The smart thing to do would be to develop one leg, or one set of legs and the basic code for them.  Once you have that you'll know a lot more about what you'll need in order to replicate that out into more copies for more segments. 

You're kind of putting the cart before the horse here. 
|| | ||| | || | ||  ~Woodstock

Please do not PM with technical questions or comments.  Keep Arduino stuff out on the boards where it belongs.

Go Up