Simulating the kinematic inverse solution of a six-degree-of-freedom Stewart parallel robot based on Matlab

?About the author: A Matlab simulation developer who loves scientific research. He cultivates his mind and improves his technology simultaneously. For cooperation on MATLAB projects, please send a private message.

Personal homepage: Matlab Research Studio

Personal credo: Investigate things to gain knowledge.

For more complete Matlab code and simulation customization content, click

Intelligent optimization algorithm Neural network prediction Radar communication Wireless sensor Power system

Signal processing Image processing Path planning Cellular automaton Drone

Content introduction

In the fields of modern industry and science, the development of robot technology has made great progress, providing many conveniences for production and research. Among them, the six-degree-of-freedom Stewart parallel robot is a robot system widely used in various fields. It has the characteristics of high precision, high stiffness and high reliability, and is widely used in fields such as flight simulators, surgical robots and motion simulations.

However, to enable the Stewart parallel robot to achieve complex motion tasks, we need to understand its inverse kinematics solution. The inverse kinematics solution refers to calculating the angle and length of each joint based on the position and attitude of the robot’s end effector. This is very important for controlling the movement of the robot because it helps us determine the range of motion and working space of each joint of the robot.

To understand the inverse kinematics solution of the six-degree-of-freedom Stewart parallel robot, we first need to understand its structure and working principle. The Stewart parallel robot consists of a fixed base and a movable platform. Six actuators are installed on the platform. Each actuator consists of a servo motor and a ball joint mechanism. This structure allows the robot to move in six degrees of freedom, including translation and rotation.

In order to calculate the inverse kinematics solution of the robot, we need to use some mathematical models and algorithms. Among the most common methods are the use of forward kinematic equations and the Jacobian matrix. The forward kinematics equation can relate the joint angle and length to the position and attitude of the end effector, while the Jacobian matrix can help us calculate the impact of changes in joint angle and length on the position and attitude of the end effector.

In practical applications, we usually use numerical methods to solve the inverse kinematic solutions. These methods include Newton-Raphson method, Jacobi transpose method, Jacobi pseudo-inverse method, etc. These methods can gradually approximate the real solution through iterative calculations, thereby obtaining the joint angles and lengths of the robot.

However, the inverse kinematics solution of the six-degree-of-freedom Stewart parallel robot is not a simple problem. Due to the structural complexity of the robot and the nonlinearity of the kinematic equations, the solution process can be very complex and time-consuming. Therefore, researchers have been working hard to find more efficient and accurate algorithms to solve this problem.

To sum up, the inverse kinematics solution of the six-degree-of-freedom Stewart parallel robot is a complex and critical problem. It is crucial for robot motion control and path planning. Although there are still some challenges and difficulties, with the continuous advancement of technology and in-depth research, I believe we can find better solutions and promote the development and application of robotic technology.

Part of the code

clc</code><code>clear all</code><code>close all</code><code>tic</code><code>%------------ ----------Bit of initial position---------------------------------- ---</code><code>XP = 0; % The initial position coordinate of the moving platform relative to the static platform</code><code>YP = 0;</code><code>ZP = 857.5562;</code> <code>%----------------------Mobile platform bits---------------- ---------------------</code><code>X =0; % Coordinates of movement relative to the initial position</code><code>Y =0; </code><code>Z = 0;</code><code>ROLL = 0; % The state of a relatively static platform</code><code>PITCH =0;</code><code>YAW = 0 ;</code><code>P = [ ------------------Basic dimensions of the platform---------------------------------- ------</code><code>?</code><code>br2 = TransM * bR2 + P;</code><code>?</code><code>LenL6 = norm(L6) ;</code><code>toc % Display calculation time</code><code>%-------------------------Draw 3D diagram --------------------------------------------------</code><code>h= gca; % Delete the original figure to prevent the new figure from overlapping with the old figure</code><code>delete(h);</code><code>figure(1); % Turn on hold on</code><code>hold on;</code><code>view([1,1,1]); % Set the viewing angle of the 3D diagram</code><code>axis equal; % XYZ axis display ratio Equal</code><code>plot3( [0,300], [0,0],[0,0],'-b', 'LineWidth', 1 );% Draw the X-axis in the picture for easy observation</code><code>plot3( 300, 0, 0, '>b' );</code><code>plot3( [0,0],[0,300], [0,0], '-r', 'LineWidth', 1 );% Draw the Y-axis in the figure for easy observation</code><code>plot3( 0,300, 0, '>r' );</code><code>plot3( [0,0 ], [0,0], [0,300], '-k', 'LineWidth', 1 );% Draw the Z axis in the picture for easy observation</code><code>plot3( 0, 0, 300, '>k' );</code><code>PBx0 = TransM * [ 0; 0; 0 ] + P;</code><code>PBx1 = TransM * [ 0 + 100; 0; 0 ] + P; </code><code>PBy0 = TransM * [ 0;0; 0 ] + P;</code><code>PBy1 = TransM * [ 0; 0 + 100; 0] + P;</code><code>PBz0 = TransM * [ 0; 0;0] + P;</code><code>PBz1 = TransM * [ 0; 0;0 + 100 ] + P;</code><code>plot3( [PBx0( 1),PBx1(1)], [PBx0(2),PBx1(2)], [PBx0(3),PBx1(3)], '-g', 'LineWidth', 1 );% draw in the picture Output the X axis for easy observation</code><code>plot3( [PBy0(1),PBy1(1)], [PBy0(2),PBy1(2)], [PBy0(3),PBy1(3)] , '-r', 'LineWidth', 1 );% Draw the Y-axis in the picture for easy observation</code><code>plot3( [PBz0(1),PBz1(1)], [PBz0(2) ,PBz1(2)], [PBz0(3),PBz1(3)], '-k', 'LineWidth', 1 );% Draw the Z-axis in the picture for easy observation</code><code>% Use red tiles for the moving platform and blue tiles for the static platform</code><code>patch( [Br1(1),Br2(1),Br3(1),Br4(1),Br5(1) ,Br6(1)], [Br1(2),Br2(2),Br3(2),Br4(2),Br5(2),Br6(2)], [Br1(3),Br2(3), Br3(3),Br4(3),Br5(3),Br6(3)], 'c' );</code><code>patch( [br1(1),br2(1),br3(1) ,br4(1),br5(1),br6(1)], [br1(2),br2(2),br3(2),br4(2),br5(2),br6(2)], [ br1(3),br2(3),br3(3),br4(3),br5(3),br6(3)], 'y');</code><code>plot3( br1(1), br1(2),br1(3), '.m', 'MarkerSize', 30); % Draw the 6 hinge points on the moving platform</code><code>plot3( br2(1),br2(2 ),br2(3), '.m', 'MarkerSize', 30);</code><code>plot3( br3(1),br3(2),br3(3), '.m', 'MarkerSize ', 30);</code><code>plot3( br4(1),br4(2),br4(3), '.m', 'MarkerSize', 30);</code><code>plot3( br5(1),br5(2),br5(3), '.m', 'MarkerSize', 30);</code><code>plot3( br6(1),br6(2),br6(3) , '.m', 'MarkerSize', 30);</code><code>plot3( P(1), P(2), P(3), '.k', 'MarkerSize',10); % Draw the center of the circle of the moving and static platforms for easy observation</code><code>plot3( 0, 0, 0, '.k', 'MarkerSize',10);</code><code>plot3( [br1( 1),Br1(1)], [br1(2),Br1(2)], [br1(3),Br1(3)], '-k', 'LineWidth', 2 ); % dynamic and static platforms hinge point connection, that is, connecting rod</code><code>plot3( [br2(1),Br2(1)], [br2(2),Br2(2)], [br2(3),Br2( 3)], '-k', 'LineWidth', 2 );</code><code>plot3( [br3(1),Br3(1)], [br3(2),Br3(2)], [ br3(3),Br3(3)], '-k', 'LineWidth', 2 );</code><code>plot3( [br4(1),Br4(1)], [br4(2), Br4(2)], [br4(3),Br4(3)], '-k', 'LineWidth', 2 );</code><code>plot3( [br5(1),Br5(1)] , [br5(2),Br5(2)], [br5(3),Br5(3)], '-k', 'LineWidth', 2 );</code><code>plot3( [br6(1 ),Br6(1)], [br6(2),Br6(2)], [br6(3),Br6(3)], '-k', 'LineWidth', 2 );</code><code>%-------------------------Set some formats of 3D images for easy observation-------------- -------</code><code>xlim([ -1000,1000 ]); % X-axis fixed display range</code><code>ylim([ -1000,1000 ]);% Y-axis Fixed display range</code><code>zlim([ 0,1500 ]); % Z-axis fixed display range</code><code>xlabel('X-axis / mm');% X-axis label</code><code>ylabel('Y-axis / mm');% Y-axis label</code><code>zlabel('Z-axis / mm');% Z-axis label</code><code>str = ['LenL1 = ',num2str(LenL1)];% Display the length of each connecting rod on the picture, in mm</code><code>text(-400,300,1500,[str,' mm']); </code><code>str = ['LenL2 = ',num2str(LenL2)];</code><code>text(-400,300,1400,[str,' mm']);</code><code>str = ['LenL3 = ',num2str(LenL3)];</code><code>text(-400,300,1300,[str,' mm']);</code><code>str = ['LenL4 = ',num2str(LenL4)];</code><code>text(-400,300,1200,[str,' mm']);</code><code>str = ['LenL5 = ',num2str(LenL5 )];</code><code>text(-400,300,1100,[str,' mm']);</code><code>str = ['LenL6 = ',num2str(LenL6)];</code><code>text(-400,300,1000,[str,' mm']);</code><code>text( Br1(1), Br1(2)-50,'1' );% on the static platform Next to the hinge point, the serial number of the connecting rod is displayed</code><code>text( Br2(1) + 50, Br2(2)-50,'2' );</code><code>text( Br3(1 ) + 50, Br3(2)-50,'3' );</code><code>text( Br4(1) + 50, Br4(2) + 50,'4' );</code><code>text( Br5(1) + 50, Br5(2) + 50,'5' );</code><code>text( Br6(1)-50, Br6(2)-50,'6' ); 

Operation results

References

[1] Liu Dejun, Wang Juan, Wang Shiying, et al. Solution of forward kinematics of six-degree-of-freedom parallel robot based on BP algorithm [J]. Combined Machine Tools and Automated Processing Technology, 2006(1):4.DOI:10.3969/j.issn .1001-2265.2006.01.011.

[2] Pan Fangwei, Duan Zhishan, He Lile, et al. Kinematics analysis of a new six-degree-of-freedom parallel robot based on genetic algorithm [J]. Mechanical Science and Technology, 2007, 26(6):5.DOI:10.3321/j .issn:1003-8728.2007.06.022.

Some theories are quoted from online literature. If there is any infringement, please contact the blogger to delete it
Follow me to receive massive matlab e-books and mathematical modeling materials

Complete code and data acquisition via private message and real customization of paper data simulation

1 Improvements and applications of various intelligent optimization algorithms
Production scheduling, economic scheduling, assembly line scheduling, charging optimization, workshop scheduling, departure optimization, reservoir scheduling, three-dimensional packing, logistics location selection, cargo space optimization, bus scheduling optimization, charging pile layout optimization, workshop layout optimization, Container ship stowage optimization, water pump combination optimization, medical resource allocation optimization, facility layout optimization, visible area base station and drone site selection optimization
2 Machine learning and deep learning
Convolutional neural network (CNN), LSTM, support vector machine (SVM), least squares support vector machine (LSSVM), extreme learning machine (ELM), kernel extreme learning machine (KELM), BP, RBF, width Learning, DBN, RF, RBF, DELM, XGBOOST, TCN realize wind power prediction, photovoltaic prediction, battery life prediction, radiation source identification, traffic flow prediction, load prediction, stock price prediction, PM2.5 concentration prediction, battery health status prediction, water body Optical parameter inversion, NLOS signal identification, accurate subway parking prediction, transformer fault diagnosis
2. Image processing
Image recognition, image segmentation, image detection, image hiding, image registration, image splicing, image fusion, image enhancement, image compressed sensing
3 Path planning
Traveling salesman problem (TSP), vehicle routing problem (VRP, MVRP, CVRP, VRPTW, etc.), UAV three-dimensional path planning, UAV collaboration, UAV formation, robot path planning, raster map path planning , multimodal transportation problems, vehicle collaborative UAV path planning, antenna linear array distribution optimization, workshop layout optimization
4 UAV applications
UAV path planning, UAV control, UAV formation, UAV collaboration, UAV task allocation, and online optimization of UAV safe communication trajectories
5 Wireless sensor positioning and layout
Sensor deployment optimization, communication protocol optimization, routing optimization, target positioning optimization, Dv-Hop positioning optimization, Leach protocol optimization, WSN coverage optimization, multicast optimization, RSSI positioning optimization
6 Signal processing
Signal recognition, signal encryption, signal denoising, signal enhancement, radar signal processing, signal watermark embedding and extraction, EMG signal, EEG signal, signal timing optimization
7 Power system aspects
Microgrid optimization, reactive power optimization, distribution network reconstruction, energy storage configuration
8 Cellular Automata
Traffic flow, crowd evacuation, virus spread, crystal growth
9 Radar aspect
Kalman filter tracking, track correlation, track fusion