Indexing 'fkine' matrix problem

조회 수: 16 (최근 30일)
Caio Lorenzo Iriarte Salles
Caio Lorenzo Iriarte Salles 2023년 10월 30일
답변: SAI SRUJAN 2023년 11월 9일
I have the following code for getting a robot (x,y,z) position when running an app in AppDesigner:
addpath('C:\Program Files\MATLAB\R2023b\toolbox\rvctools');
startup_rvc;
% Links of robot
l1=0.290; l2=0.270; l3=0.070; l4=0.302; l5=0.072;
L(1)=Link([0 l1 0 -pi/2]);
L(2)=Link([0 0 l2 0]);
L(3)=Link([0 0 l3 -pi/2]);
L(4)=Link([0 l4 0 pi/2]);
L(5)=Link([0 0 0 -pi/2]);
L(6)=Link([0 l5 0 0]);
% Creation of robot
app.irb120 = SerialLink(L,'name','Robot P3', ...
'offset',[0 -pi/2 0 0 0 pi],'tool',transl(0,0,0.16));
app.q_act = [0 0 0 0 -pi/2 0];
T = app.irb120.fkine(app.q_act)
app.pos_x = T(1,4);
app.pos_y = T(2,4);
app.pos_z = T(3,4);
When I execute that, I obtain an error for the line 'app.pos_x = T(1,4);' that says:
!Error using irb120_app/robot
!Index in position 2 exceeds array bounds. Index must not exceed 1.
How could I get the last column of the T matrix and then have the position of the robot's tool?

답변 (1개)

SAI SRUJAN
SAI SRUJAN 2023년 11월 9일
Hi Caio,
I understand that you are facing an issue getting the last column of 'T' matrix.
The error you are encountering occurs because you are trying to access an element that exceeds the array bounds. To extract the position of the robot's tool, you need to access the last column of the matrix 'T'.
To fix the error and obtain the position, you can modify the code as follows:
app.pos_x = T(1, end);
app.pos_y = T(2, end);
app.pos_z = T(3, end);
By using 'end' instead of a specific column index, you can access the last column of the matrix, which contains the position of the robot's tool in the x, y, and z coordinates.
You can refer to the following MATLAB answer which discusses another approach to resolve the issue. This resource provides a comprehensive solution and explanation for the similar issue of indexing the ‘fkine’ matrix, allowing you to gain valuable insights on how to proceed effectively.
I hope this helps.

카테고리

Help CenterFile Exchange에서 Robotics에 대해 자세히 알아보기

제품


릴리스

R2023b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by