1
$\begingroup$

We are building a 6 DOF robotic arm as a college project and we've almost finished the designs. The problem is with the controls. We still havent thought on how to control the arm, as in , software gui interfaces , etc. Any suggestions on this ? Also, is there any simulation software for Simulating and testing robotic arms ?

$\endgroup$

1 Answer 1

1
$\begingroup$

I think Matlab suits your needs. About the control input, once you got the dynamic equation of your manipulator, \begin{equation} M(q) \ddot{q} + C(q, \dot{q})q + G(q) = u \qquad (1) \end{equation}

then you need to specify the input $u$ of the dynamic equation (1). There are many control input algorithms. The simplest one is PID control which specifies the input as the error. \begin{equation} u = K_{p} \tilde{q} + K_{i} \int_0^t{\tilde{q}dt} + K_{d} \frac{d}{dt} \tilde{q} \end{equation}

where $u(t) = [u_{1},..., u_{n}]^{T}$ the input, $\tilde{q}(t) = q(t) - q_{d}(t)$ which represents the error $e(t)$. $q_{d}(t)$ is the desired trajectory and $K_{p}, K_{d}$ and $K_{i}$ are the gain matrices, the proportional, derivative, and integral respectively.

Also, the inverse dynamics and Lyapunov-based design algorithms are good ones. The problem with the last two algorithms is that they require the parameters of the system to be given accurately, so you should start with PID controller. In GUI, you might want the user to specify the desired trajectory whether tracking or regulation trajectories. Also, you might want the user to adjust the Gain of PID.

As a start point, you should implement two arms in Matlab. The kinematic and dynamic equations of two arms are given in the majority of manipulator books. Pick one and try to test the aforementioned algorithms. Start with regulation problem in which the desired trajectory is a constant value and see how well your manipulator approaches the desired trajectory as time approaches infinity. Also, try to plot the errors which are the difference between the current trajectory and the desired one. They must approach zero when time approaches infinity.

$\endgroup$

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