# controlling 6-axis robotic arm with raspberry pi, what instructions can do this?

I have been trying to build a robotic arm using a PCA9685 servo controller, a 6-axis robotic arm, and a raspberry pi model b+. I wired them all together accordingly but I have no idea how to actually control the arm through the raspberry pi. I know python but don't know the instructions to move the arm. can anyone help with this?

thank you

• What exactly is your problem? What happens if you follow the instructions of the board? (Which board are you using?) – FooTheBar Jun 24 '18 at 14:53
• 1). my problem is I don't know how to control the arm, (very new to the raspberry pi), using the RPi. – ilovejasim Jun 25 '18 at 2:59
• 2). All wiring is correct according to this (image) and also according to this (image) – ilovejasim Jun 25 '18 at 3:13
• What do you mean by "control the arm"? Do you need a synchronized movements, Inverse kinematics (computing which joint angles you need to reach a pose), Force-control, maximal velocity control? – FooTheBar Jun 25 '18 at 5:47
• Adafruit has a tutorial on using this with the RasPi. learn.adafruit.com/… – NomadMaker Jun 25 '18 at 13:52

Any robotics project has the following basic components:

1. Sensors
2. Actuators
3. Brains (RPi)

If you could list these out it would be easier to answer, but to put it crudely:

Get data:

Get some sort of position data of your arm from a sensor. This
data could be an angle of the arm, in the simplest case, or it could be
a higher dimensional state vector consisting of mutliple angles,
angular velocities etc. in the case of multi link manipulators.


Any sort of robotic system needs a control law to drive the system's
state to where you want it to be i.e. move the arm where you want it to
go. For this you can use a variety of control methods ranging from
linear (PID), optimal (LQR), robust (SMC, H_inf), nonlinear (Feedback
Linearisation), intelligent (fuzzy, neural) and adaptive control.
However keep in mind that theory and practice are vastly different.


After formulating your control law, and making sure it actually does
what its supposed to (by simulation), you need to translate the
mathematical equations and laws to code, in any language of your
choice, so that the brains can run it.


This is pretty much all you need to do (please correct me if I'm missign something), and I wont get into the implementation aspects of it too much but here's some things to keep in mind:

1. Multi link robots are highly nonlinear systems, and the "right way" to control them is either to linearise the system, or to use nonlinear control (http://journals.sagepub.com/doi/10.1177/027836498500400205). However I believe that in practical use, PID works fine almost always and although this is not the right way to do it, if you just want something that works..

2. Sensors are noisy, and you will never get any good clean data, so knowledge about filters is a really useful thing to have, but again you can get away with using libraries made by other people.

3. Theoretical tuning methods never work, as your dynamic model is almost always far off from the real thing. So use heurestic methods, and there are a lot of these for PID.