Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Resuelva los siguientes ejercicios tomados del libro: “Robotics, Vision and Control” del Profesor
Peter Corke de la Universidad Tecnológica de Queensland - Australia, para lo cual deberá instalar
MATLAB 2017 y la librería Robotics Toolbox for MATLAB.mltbx. Asimismo, deberá instalar el
programa COSIMIR de FESTO para validar su proyecto en los brazos robóticos del laboratorio CIM
de la UNHEVAL.
El diseño de un nuevo robot planar pequeño se muestra en la figura, junto con sus dimensiones en
unidades de centímetros.
El robot se muestra en su configuración de ángulo cero, y se indica la dirección del aumento angular
positivo.
Encuentre la posición del actuador final y su orientación cuando los ángulos de las juntas
del robot están dados por los elementos del vector del espacio de trabajo q en unidades de
grados.
Devuelva la coordenada x del actuador final en la variable de espacio de trabajo x en metros,
la coordenada y del actuador final y en metros, y la orientación en grados en la variable de
espacio de trabajo theta.
% Provided variables
q = [30 -20];
% Find the pose of the end-effector and store in the variable T.
T =
% Find the x-coordinate in metres and store in the variable x.
x =
Considere un brazo robótico como se muestra a continuación que tiene una articulación giratoria y
una articulación prismática.
Determine la cinemática inversa para este robot. Las siguientes identidades pueden ser
útiles para usted. Una ecuación de la forma: 𝑎 cos 𝜃 + 𝑏 sin 𝜃 , tiene dos soluciones
dadas por:
𝑐 𝑎
𝜃 = tan−1 − tan−1
√𝑎2 + 𝑏2 − 𝑐2 𝑏
Las dimensiones del robot están dadas por las variables del espacio de trabajo a1 y a2.
Las coordenadas de un punto P1 en el espacio de trabajo planar del robot vienen dadas por
la variable de espacio de trabajo P1. Determine las coordenadas conjuntas
correspondientes requeridas para llegar a este punto y guárdelas en la variable q del espacio
de trabajo como un vector de fila de 2 elementos en las unidades apropiadas (metros si es
distancia, radianes si es ángulo).
Nota: Tenga en cuenta que la imagen muestra el brazo del robot con q1 = 0 y este ángulo se mide
en el sentido contrario a las agujas del reloj.
%% Provided variables
a1 = 0.8; a2 = 0.3;
P1 = [0 1.2];
q2_min = 0.1;
q2_max = 0.9;
Points = [0.5 0.6 0.7 0.8 0.9 1 1.1;
0.5 0.6 0.7 0.8 0.9 1 1.1];
En los ejercicios anteriores se vio cómo determinar la cinemática directa e inversa para un simple
robot de 2 articulaciones. En particular, aprendimos cómo determinar la cinemática inversa del
robot que se muestra a continuación, y para hacerlo tuvimos que encontrar primero su cinemática
de avance. Tenga en cuenta que la imagen muestra el brazo del robot con y este ángulo se mide
en el sentido contrario a las agujas del reloj.
Primero necesitamos codificar las ecuaciones cinemáticas para el robot que se muestra arriba con
las dimensiones a1=0.8 y a2=0.3.
Desarrolle y pruebe el código de MATLAB para la cinemática directa e inversa del robot. Su
solución del ejercicio previo será muy relevante aquí. Una buena forma de probar el código
cinemático es explotar la naturaleza inversa de la cinemática directa e inversa: dado un conjunto
de valores de unión de la articulación, la cinemática hacia adelante proporciona la posición del
actuador final y la cinemática inversa debe dar los valores originales de la articulación.
Ahora sabemos cómo los valores conjuntos de nuestro robot cambian para pasar de pA a pB,
pero ¿cómo varía la posición entre ellos?
Usando las ecuaciones cinemáticas directas, calcule la posición del actuador final para cada
punto a lo largo de la trayectoria conjunta que acaba de calcular. Almacene los valores x de la
trayectoria del actuador final en el vector x, y los valores de y en el vector y.
Si ha tenido las variables x e y calculadas correctamente, puede ver la trayectoria del actuador
final con el comando figure; plot(x, y). ¿El final del robot se mueve en línea recta o en curva?
Para resolver este problema, necesitará calcular la cinemática inversa dos veces, y puede
hacerlo cortando y pegando el código. Puede hacer que su código sea más ordenado y más fácil
de entender si crea una función MATLAB para realizar la cinemática inversa.
%% Provided variables
a1 = 0.8; a2 = 0.3;
pA = [0 2];
pB = [3 0];
% For each position pA and pB determine the corresponding joint angles
% qA and qB using inverse kinematics.
qA =
qB =
% Try using forward kinematics to check that the joint configurations
% Compute a joint interpolated trajectory between qA and qB in fifty
times
% steps over 10 seconds using the jtraj function as discussed previously.
% Store this in the variable qtraj.
qtraj =
% Compute the forward kinematics for every point along the joint
trajectory qtraj.
x =
y =
% If you have correctly computed the end-effector trajectory, you can
visualise it using
% figure; plot(x,y)
% xlabel('x'); ylabel('y'); grid on
Este ejercicio requerirá la cinemática directa e inversa para el robot que se muestra a continuación,
que determinó en el ejercicio anterior. Tenga en cuenta que la imagen muestra el brazo del robot
con q1 = 0 y este ángulo se mide en el sentido contrario a las agujas del reloj.
Calcule la posición del actuador final del robot en cada paso de tiempo. El resultado debe ser
una matriz de 50x2 guardada en la variable P, donde cada fila es la posición x-y en ese paso de
tiempo.
Para cada posición a lo largo de la trayectoria del actuador final, es decir, cada fila de P,
determine los ángulos de articulación correspondientes utilizando la cinemática inversa.
Almacene los valores de la articulación 1 en la columna 1 y los valores de la articulación 2 en la
columna 2 de la variable qtraj.
Si ha calculado correctamente las trayectorias conjuntas, puede visualizar las trayectorias
conjuntas durante 10 segundos con el comando:
t = linspace(0,10,50);
figure; plot(t, q)
Ahora sabemos cómo los valores conjuntos de nuestro robot cambian para pasar de pA a pB, pero
¿cómo varía la posición entre ellos?
% Provided variables
a1 = 0.8; a2 = 0.3;
pA = [0 2];
pB = [3 0];
% Compute the robot end-effector position between point pA to point pB
% using Cartesian interpolation in 50 steps over 10 seconds.
P =
% For each position along the end-effector trajectory determine the
% corresponding joint angles using inverse kinematics. Store the joint 1
% values in column 1 and the joint 2 values in column 2 of the variable
qtraj.
qtraj =
% If you have correctly computed the joint trajectories, you can visualise
these with
% figure; plot(linspace(0,10,50),q)
% xlabel('t'); ylabel('q'); grid on
% Using the forward kinematic equations compute the end-effector position
for
% every point along the joint trajectory you just computed. Store the x
values
% of the end-effector's trajectory in the vector x and the y values in the
vector y.
x =
y =
% If you have correctly computed the end-effector trajectory, you can
visualise it using
% figure; plot(x, y)
% xlabel('x'); ylabel('y'); grid on
Elabore un programa básico para programar una trayectoria lineal utilizando el brazo robótico de
FESTO-MITSUBISHI con el software COSIMIR.