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

  • $\begingroup$ What exactly is your problem? What happens if you follow the instructions of the board? (Which board are you using?) $\endgroup$
    – FooTheBar
    Jun 24, 2018 at 14:53
  • $\begingroup$ 1). my problem is I don't know how to control the arm, (very new to the raspberry pi), using the RPi. $\endgroup$
    – ilovejasim
    Jun 25, 2018 at 2:59
  • $\begingroup$ 2). All wiring is correct according to this (image) and also according to this (image) $\endgroup$
    – ilovejasim
    Jun 25, 2018 at 3:13
  • $\begingroup$ 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? $\endgroup$
    – FooTheBar
    Jun 25, 2018 at 5:47
  • $\begingroup$ Adafruit has a tutorial on using this with the RasPi. learn.adafruit.com/… $\endgroup$
    – NomadMaker
    Jun 25, 2018 at 13:52

1 Answer 1


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.

Formulate your control:

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.

Implement your control:

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.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.