Analysis of Robotic System Motion in SimMechanics and MATLAB GUI Environment

Robots present considerably complicated electromechanical systems with mutual interactions of robot mechanics and drives, at design of which the mechatronic approach should be taken into consideration. The computer modeling presents such basic tool for mentioned mecha‐ tronic approach. When designing control of a robot, we need to know necessary torque and angle of rotation of each motor, to visualize behavior of the robot, and to obtain mathematical model of each part. Generally, this inverse kinematic task is not solvable analytically and the numerical calculation often entails difficulties. The design of a control law for the drive system is also connected with the need of transfer function derivation and with simulation of dynam‐ ical properties of the robot mechanical system as a whole.


Introduction
Robots present considerably complicated electromechanical systems with mutual interactions of robot mechanics and drives, at design of which the mechatronic approach should be taken into consideration. The computer modeling presents such basic tool for mentioned mechatronic approach. When designing control of a robot, we need to know necessary torque and angle of rotation of each motor, to visualize behavior of the robot, and to obtain mathematical model of each part. Generally, this inverse kinematic task is not solvable analytically and the numerical calculation often entails difficulties. The design of a control law for the drive system is also connected with the need of transfer function derivation and with simulation of dynamical properties of the robot mechanical system as a whole.
The physical modeling in the SimMechanics environment [1] considerably facilitates simulation efforts of complex mechanical systems regardless of their complication by elastic and damping elements and by number of degrees of freedoms. The SimMechanics program scheme having the form of interconnected blocks shows how the physical components with geometric and kinematic relationships of the robot are mutually interconnected. The SimMechanics program enables one to model mechanical systems by bodies and joints, to simulate their motion, to change easily the structure, to optimize system parameters, and to analyze results all within the Simulink environment. This approach does not require cumbersome deriving differential equations of the system and presents an easy and fast way to obtain the dynamic model of the system and saves time and effort.
Several approaches for the robot model development in the SimMechanics environment that appeared in last years are known worldwide, e.g. [3]- [7]. The robot models were developed on basis of the robot configuration. To simplify the development task we have used a special feature announced by The MathWorks in 2003 which integrates SimMechanics with The SolidWorks CAD Assemblies. [2]. Mathworks collaboration with Solidworks Corporation extended the engineering analysis capabilities of SimMechanics by allowing seamless integration of Solidworks CAD Assemblies into the SimMechanics simulation and design environment. This means that the SolidWorks models can be simulated in the Simulink environment in order to analyze forces and torques in mechanical joints, plot accelerations and displacements of each part of the system, to visualize motion of the CAD assembly, while taking into consideration masses of individual objects. This facility is enabled by installing an appropriate plug-in in SimMechanics which imports the 3D CAD model of the full system with bodies, joints, couplings, and masses from the SolidWorks program into the SimMechanics for further work with the model.
The objective of the proposed chapter is to present an application of effective way of the robot mechanics modeling and its dynamic simulation using add-on modules of the MATLAB advanced environment: SimMechanics and Graphical User Interface (GUI) MATLAB.
A complete description of the procedure is presented on example of a SEF-ROBOTER SR 25 type welding robot [1] weighing 480 kg with payload of 25 kg. Calculations were performed in the MATLAB/SimMechanics environment that enables a simple physical modeling of mechanical systems without any necessity of motion equations derivation. After this a 3D CAD model of the robot mechanics was developed using SolidWorks program. This procedure also enables verification of the model-whether it corresponds to the reality and whether it behaves according to the presumptions and requirements. By importing the 3D CAD model into SimMechanics a basic simulation scheme is obtained. After completing it by few blocks the simulation scheme is utilized for analysis in both direct and inverse kinematics tasks. Finally, a GUI model of the robot system has been developed that enables one to perform various virtual experiments and to obtain required outputs: position (angles), forces and torques. The GUI also solves analyzing of the inverse and direct kinematics tasks.

Employed SimMechanics blocks
SimMechanics contains a set of block libraries and special simulation interfaces (Sensor and Actuator blocks) for interconnection of the SimMechanics scheme with the Simulink environment. The SimMechanics blocks present elements enabling to model mechanical systems consisting of rigid bodies connected by joints that represent translational and rotational degrees of freedom. SimMechanics automatically sets up a single absolute inertial reference frame and coordinate system (CS) called World, [9]. For easier interpretation of the following block diagrams, the function of used SimMechanics blocks is shown in Table 1.

Block
Name Description

Bodies Env
The block Machine Environment defines environment for calculation of the scheme. Each SimMechanics model contains one such block that is connected with the block Ground. Except of inputting the precision of calculation and parameters of the environment, the required analysis type can be set up: • Forward Dynamics -based on initial values and forces in the system the program calculates values of positions and speeds.
• Linearization -this mode calculates the system linear model.
• Trimming -finds the machine steady states. The block Weld -means a body without any degree of freedom.

Revolute
The Revolute block from the Joints group represents one degree of freedom (rotation).

Custom Joint
The Custom Joint is developed by the user using so called primitives

3D model of the robot
Development of dynamic model of a robot starts by identifying its parameters: based on technical specifications from the producer and completing them by own measurement of dimensions and distribution of masses depending on form of robot arms. Some missing data were estimated and approximated and the complex geometric forms were replaced by equivalent and simpler ones. Thus we gradually increased the model precision, position of centers of gravity and masses and where not possible, we used approximated data. In every case, the precise identification of model parameters is a laborious and trial-and error process, [2]. Modeling of separate bodies and joints in the SolidWorks is much more advantageous because based on animation in the SolidWorks one can simultaneously verify correctness of kinematics of the mechanical model. The imported model also contains masses of the bodies, centers of inertia, tensors of the inertia and graphics that will be used at visualization. Of course, the forms of the bodies have been simplified but the time responses of such electromechanical system (i.e. the mechanical system completed by the drive subsystem) lie within acceptable boundaries.

Development of the program scheme in SimMechanics
The model in SimMechanics is built in the following steps: 1. Specification of body inertial properties, degrees of freedom, and constraints, along with coordinate systems attached to bodies to measure positions and velocities.

2.
Applying forces/torques and completing the model by sensors and actuators to initiate and record body motions.

3.
Starting the simulation, calling the Simulink solvers to find motions of the system, while maintaining any imposed constraints.

4.
Visualizing the machine while building the model and animation of the running simulation, applying the Graphical User Interface (i.e. using Handle Graphics) or a virtual reality visualization tool.
The 3D CAD model developed in the SolidWorks program is imported into the SimMechanics suitable format using the SimMechanics link that creates a basic mechanic chain completed by system parameters. The program scheme after importing is shown in Fig. 3. For a better relation with the robot parts also sketches of particular bodies are shown. This basic SimMechanics scheme is completed by couplings, joints, sensors, connections and further blocks for the inverse kinematic task. The completed scheme is shown in Fig. 4.

Robot inverse kinematics
In inverse kinematic task the angles of joints (corresponding to angles of rotation of the driving motors) are calculated, [9]. In case of the robot they are necessary for obtaining a required trajectory (position, orientation and trajectory of the effector reference point). Due to nonlinearities of the mechanical system the analytic solution of the inverse kinematic task presents a quite difficult and complex problem, solution of which cannot be usually obtained in a closed mathematic formula. Although the solution with help of SimMechanics considerably facilitates the task, the problems with existence of solution and ambiguity still persist.

Solution of inverse kinematic task
In this case the block Joint Actuator is not connected to the joints because the system is completely and exactly defined by position and orientation of the effector. This assumption enables us to change calculation mode in the block Machine Environment to the "Kinematics". The choice also increases speed of simulation.
Position of the effector is defined in relation to the base point using the constraint Linear Driver (Fig. 5). It defines the distance along each axis of the {x, y, z} coordinate system (the vector basis).
Orientation of the effector is defined by a reference body and the Parallel Constraint of the x eaxis to the x b -axis of the reference body. Defined here are: • Pitch (turning round z b -axis) and • Yaw (round y b -axis).
The y e -axis of the effector runs parallel with y b -axis of the reference body where defined is the: • Roll (turning round the x b -axis).

Completing the program scheme
Position of the vector is defined by the Driving position subsystem (Fig. 5), determining effector coordinates towards its initial (baser) point. Orientation of the coordinate system of the effector terminal point is determined by the Driving angle subsystem. Its outputs are angles of the effector swinging in x-y-z axes in respect of initial conditions. Let's remind that the effector axes (Body 6 in Fig. 3) are in parallel with the reference body axes (Body 2, Fig. 6).

Simulation results
As an example for verification of the model properties an effector trajectory was programmed as a circle in the x-y plane with the period of 2π. In this case, the trajectory is easily described by simple mathematical functions which task is unambiguous and solvable: Its trajectory is shown in Figs. 8 and 9. Final time courses of turning the joints 1-6 obtained from the inverse kinematics scheme are shown in Fig. 10 (from top to bottom the courses belong to joints 6, 5, etc.). Several experiments have shown that the obtained results can be utilized in the forward kinematics.

Forward kinematics and inverse dynamics of the robot
The Forward Kinematics presents a basic problem at robot motion solving. Its result consists of geometric calculation of position of coordinates and orientation of the robot effector towards the basic coordinate system when rotating the joints by certain angles. In the Forward Dynamics mode, the SimMechanics uses the Simulink suite of ordinary differential equation (ODE) solvers to solve the mechanical ODEs (i.e. Newton's equations). The Forward Kinematics Task is simpler than the Inverse Kinematics Task but here, in the paper, it is described in the second place because the calculated values from the previous task can be easily used and verified.

Program scheme for forward kinematics
In this case, controlled are the angles of joints and the position and sensed is orientation of the effector. The blocks Joint Actuator will operate in the mode of kinematic excitation (Motion). The mode of calculation in the block Machine Environment is set to the Inverse Dynamics. The Kinematics mode can be used only in case of closed kinematic chain.
By connecting sensors to particular joints it is possible to determine the torques of the motors which are necessary for performing a defined trajectory of the effector. This scheme can be used also at solution of the system dynamics.
Note: During simulation an abnormal situation can occur: some parts of the block scheme behave abnormally. It is caused by the Joint Sensor block that senses angles of the joints within the range of -180°; 180°. After crossing these values there appears a step change of the sensor output value from one marginal value to the other. This phenomenon can be avoided by employing the unwrap instruction adapting the step change signal into a smooth continuous form.

Simulation results
The trajectory in Fig. 12 calculated by the Forward Kinematic analysis corresponds to the trajectory of the effector from the Inverse Kinematic task presented above. Time responses of the torques in the robot joints 1 -6 that are necessary for development of the effector trajectory are shown by graph in Fig. 13.
Graphs of the torques of the motors (Fig. 13) are as follows: the joints 5 -6 on the top; 4 -3 in the middle; joints 2 -1 at the bottom (the coordinate systems are referred to Fig. 1b).
The torques in Fig. 13 depend strongly on the system parameters -masses, friction in the joints, moments of inertia of the motors. Eventual discrepancies between the simulated time responses and the real system may have their roots just here.  Fig. 14 and Fig. 15.
Using switches in the Mode group the user chooses the required task type: • Forward Kinematics, • Inverse Kinematics, Figure 11. Program scheme -forward kinematics for the analyzed robot • Forward Dynamics, • Inverse Dynamics.

Program in the inverse kinematics mode
In this mode the user defines trajectory of the effector motion. Choices include a possibility of entering position and orientation or eventually their derivations, both by entering mathematical functions into the text boxes Effector rotation and Effector position, including variable of the time, denoted as "t". This way of entering the required trajectory is impractical for the use and here it serves for demonstration purposes only. window there are joint angles that are necessary to generate the prescribed trajectory of the effector in the 3D space.

Program in the forward kinematics mode
In this mode the user defines joint variables as mathematical functions written into the text boxes that are shown in the frame Angles of Joints (Fig. 15). The angles of the joints can be defined by the angle, angular velocity and angular acceleration (a choice there).
Based on given functions the program calculates the trajectory of the effector in the 3D space (shown in the window on the left side of the screen) and time responses of required angles of joints 1 -6 in the graphs on the right side there.

Program in the inverse and direct dynamics mode
SimMechanics can solve the reverse of the forward dynamics problems: instead of starting with given forces/torques and finding the resulting motions, the Inverse Dynamics mode determines the forces/torques needed to produce a given set of motions that you apply to the machine. This mode only works with open topology systems (model diagrams without closed loops).

Conclusion
SimMechanics presents a powerful tool for modeling mechanics of rigid bodies. It is suitable for modeling of dynamics and kinematics of considerably complicated systems with many joints without using any mathematical description. For these advantageous properties it is often used in the first phase of designing robotic systems, esp. due to simplicity of changing parameters and dimensions of particular bodies without necessity to repeat design of new model.
To get a dynamical model for the systems with more complex bodies of various shapes and connections connected through joints it is advantageous to model them in a compactible 3D CAD software and then to import the model from the program into the SimMechanics program. This solution enables us to avoid analytical calculations, esp. in case of the of moment of inertia tensor of an irregular body. The CAD software automatically calculates this tensor and moreover it adds visualization to the developed model.
The described development of the 3D CAD space model of the robot in the SolidWorks program and its import into the SimMechanics facilitates the work at developing the model of robot mechanics. This procedure also reduces a possibility of error occurrence at modeling the system.
A drawback in using the SimMechanics program for simulation consists in solution of collision of bodies and in limitation of angles of joints (what makes difficulties esp. at inverse kinematics task). In the mode of dynamics it is possible to avoid this disadvantage by introducing a feedback with a spring having a high stiffness and damping that is activated after exceeding set boundaries. In the mode of forward kinematics the required value of joint variables can be easily limited. In case of inverse kinematics it is possible to complete the scheme by suitably chosen parallel kinematic chains not allowing any motion out of preset range. Disadvantage of all described solution consists in slower simulation due to the added bodies and blocks.
At present time the developed model serves for further research -forward kinematics, analysis of dynamics and finally -for design of controllers for joint drives. The future research will concern completing the developed graphical user interface by advanced algorithms taking into consideration advanced algorithms of the trajectory design, e.g. curved line with considering obstacles, maximal reachable speed, verification of reachability according to limitation of the particular joints and dimensions of the arms. Within framework of the planned Hardware in the Loop system we plan to interconnect the master computer the SimMechanics program with a real robot of the SF25 type where on the first computer will run the SimMechanics program serving together with Simulink as a generator of controlling signals in the mode of inverse dynamics together with RT-LAB (a real time digital simulation software from Opal Technologies). Through a CAN bus the second computer will control frequency converters (of the SINAMICS CU 320 type from SIE-MENS) supplying electrical drives of the robot.