Beginner questions regarding building mobile manipulator

Hi all, I am new to the Arduino and forums so I kindly ask for your help with a project.

I'm building a mobile manipulator, currently am in a design phase. Considering that almost anyone who has made any project here is more experienced than I am, I wanted to ask few questions, that would help me finish the design and get to building it.

Crucial informations about the project:

platform will have 2 wheels with DC motors on the front + one wheel on the back to keep the platform stable
3-DOF manipulator, meaning 4 servos (3 for rotations + 1 for the gripper)
lenghts from axis to axis: 80mm, 60mm and 105 from last axis to the end of gripper (3.15', 2.36' and 4.13')
manipulator printed in PLA
mass of every manipulator section excluding servos for rotation: 85g, 52g, 34g (34 includes gripper and it's servo)
max load: 300g
controlled with a gaming pad
Now what I wanted to do is to use Arduino Uno, 2x Motor Shield (connect 4 servos to one shield and 2 dc motors to the other) and a Host Shield with most likely PS3 controller with Bluetooth for control (because libraries are already made for it, Xbox One with Bluetooth is also available).

I think that's all the necessary information, now to questions:

  1. Is this combination of shields even possible to use like that? (Arudino Uno -> Motor shield -> Motor shield -> Host shield)

  2. Would it be possible to run two servo at the same time? Considering servo 1 is assigned to bumper, and servo 2 is assigned to X, will pressing both at the same time result in fluid motion of both servos?

  3. What would be considered a good rotational acceleration on manipulator segments? I've looked over some servos and their rotational speeds vary from 3 to 8 rad/s, though I do not know what kind of rotational acceleration should I assume in order to calculate needed torque.

That's a bit of a lengthy post and I know all of the questions could be answered by building the project but I think it'd better to eliminate any problems while still in the design phase.

Thank you for your time.

Hi Mesiex,

Welcome to the Arduino forum! First off, realize that nobody here has your materials, so we will need more information. Then also realize that building a one armed, three wheeled, rolling and grabbing robot is not a complete beginner’s ideal starting project.

Have you done any of the Examples in the IDE? Particularly the Servo examples? You ask about using two servos at the same time. The only real way to find out, using your shields and power supply, is to hook them up and try it.

Speaking of power supply, you left that out of your crucial information. Servos take a lot of power to start moving, especially if you want four of them to be moving at the same time.

So I would suggest that you tackle your problem in steps: don’t try to design it all from scratch, then build it and robot away. As you add systems to the base, test them with intermediate sketches. That way, when something doesn’t work to your liking, you will know exactly where the problem is.

Thank yuo for your answer.

I do realise that actually building the project would answer all of my questions, but I work on somewhat limited budget and that's why I'm asking those questions.

Ability to move all servos at the same time greatly increases the required torque in comparison to moving each section independently. And knowing such movement is not possible I wouldn't even consider such events in my calculations. That's why I didn't specify any power supply, as it will be determined based on which servos I'll choose and how much power will be needed.

Mesiex:

Ability to move all servos at the same time greatly increases the required torque in comparison to moving each section independently. And knowing such movement is not possible I wouldn’t even consider such events in my calculations. That’s why I didn’t specify any power supply, as it will be determined based on which servos I’ll choose and how much power will be needed.

I don’t think required torque increases. Torque is the measure of rotational force, and is independent in each motor. What increases is the total current if all the servos are moving. It’s certainly possible to move 4 servos. Note, the Arduino will only move one at a time, but if you stagger their movements a little at a time, they will appear to be moving simultaneously.

You can determine the mass and moment arm you want to move, and that leads to the required torque. Remember each motor is independent. Then you can determine (from datasheets) how much current is needed.

Thank yuo for your answer.

I do realise that actually building the project would answer all of my questions, but I work on somewhat limited budget and that’s why I’m asking those questions.

Robot building isn’t cheap. This is one reason why I suggest to do the project in steps. Start with a servo motor, and make it move an arm. The built in example is a very good starting point for this.

I don't think required torque increases. Torque is the measure of rotational force, and is independent in each motor.

I was using equations derived from theory of mechanisms to calculate needed torque on each servo with assumed rotational speeds and accelerations. The difference when moving each segment of the arm separately and in unison is actually quite significant. In the latter the linear acceleration on the last segment (nearest the gripper) is a sum of linear accelerations of previous segments as well as it's own linear acceleration due to the servo moving it. That's why it's inertia is much higher and the needed torque to achieve assumed rotational acceleration also gets bigger.

If the movements were kept seperate then there is no added acceleration from previous segments. The calculated needed torques for assumed rotational accelerations (17.46, 14.96, 10.48 [rad/s^2]) while moving at once are: 0.32, 0.22 and 0.36 [Nm], while for the same accelerations with each segment moving seperately it's only: 0.045, 0.11 and 0.19 [Nm].

That's were my questions about possibility of moving them simultaneously and what is considered good enough rotational acceleration come from.

Don't forget statics. The torque required to hold the arm weight against gravity is usually higher than the torque required for acceleration. Then add friction, which is sometimes higher again.

In calculations I've assumed the worst possible configuration, whole arm parallel to the ground and included forces of gravity as well as inertia and mass of maximum load, which I think should add up to greater forces than statics alone.

Start with the basics.
Buy a servo or two, and build that arm. See if it actually works (remember to downrate those servos by at least a factor of 2, as you're going to apply constant force on them, meaning they have to work constantly) and whether you can actually control that arm.

Same for the cart. Make that work separately.

You'll quickly realise that motor shields are bulky, and there are much more light weight and compact solutions out there! Motor controllers can be had on a small breakout, Arduinos in much smaller form factors.

Two servos can move smoothly together - as long as you program it properly. Not trivial.

Another thing: when you start to buy parts, make sure you also get a nice box for all the parts you bought but in the end didn't use. You're going to need it.