Preprint
Article

This version is not peer-reviewed.

3D Visualization of Articulated Mechanisms: Coupling Their Dynamic and Virtual Models on Example of Driving of the Omnidirectional Mobile Robot

A peer-reviewed article of this preprint also exists.

Submitted:

13 January 2025

Posted:

14 January 2025

You are already at the latest version

Abstract
This paper proposes novel approach to 3D virtual modeling of articulated mechanisms. It follows widespread use of XML for various applications and defines a version of XML specially designed for description of 3D geometric models of articulated bodies. It was shown how the 3D geometric model of a mechanism can be gradually developed using suitable defined elements and stored in corresponding XML file. The developed XML model is processed and using powerful VTK (Visualization Toolkit) library the corresponding virtual model is built and shown on the computer screen. To drive the virtual model the dynamical model of the mechanism is developed using Bond Graph modelling techniques. The models, 3D virtual geometric and dynamic, are created using the corresponding software packages: BonSim3D Visual and BondSim. The models are interconnected by a two-way named pipe. During the simulation of dynamical model, the parameters necessary to drive the virtual model (e.g., the joint displacements) are collected and sent to the virtual model over the pipe. When the virtual model receives a package the computer screen is updated showing the new state of the mechanism. The approach was demonstrated on example of a holonomic omnidirectional mobile robot.
Keywords: 
;  ;  ;  ;  

1. Introduction

With development of 3D CAD technologies, the visualization of processes and systems has become a powerful tool and has been increasingly used in process of the new products and processes design, providing numerous benefits such as shorter development time and smaller costs, the possibility of testing and verification of the functionality before the product production, checking of possible part collisions in space, comparison of different product and process solutions to choose an optimal one, etc.
The idea of remote access to the information of automatic systems and their visual representation appeared with the invention of the Internet. Following [1] the online approaches are proposed for remote control of automatic systems based on synchronous and asynchronous capabilities to control developed 3D models using XML (eXtensible Markup Language) technology. Many researchers have developed simulators with visual programming environments for the development, validation and optimization of various products and processes.
The role of simulators becomes extremely important in robotics as robotic systems are increasingly complex with numerous built-in sensors and complex tasks that the robots have to perform. The design, analysis, performance optimization, and navigation of robots in unstructured environments can greatly simplified using software for modeling and visualization.
In the last couple decades, many researchers have developed different software for simulation and visualization of the robot applications, which have obtained popularity and play important role in solving the engineering problems. Some of the widely used simulators for development of mobile robot applications are Gazebo [2,3] based on Robot Operating System (ROS) [4,5], Rviz—3D visualization tools for ROS [6], Webots [7,8], MORSE [9], CoppeliaSim [10,11], CARLA [12], Raisim [13], MARS (Multi-Agent Robot Simulator, developed in Matlab) [14], CARMEN (the Carnegie Mellon Navigation Toolkit) [15], MoveIt [16], etc.
To choose the right simulator for the development of a specific robot application among the widely developed ones, many investigators offer an overview of the most used 3D robotic simulators and evaluate their properties [17,18,19,20,21]. Some authors pointed out as powerful tools for modelling and visualization of the complex systems the Virtual Reality (VR) [22], Augmented Reality (AR) [23] and Mixed Reality (MR) [24]. Some useful algorithms for modeling and visualization of robots in Matlab are presented in [25].
This paper proposes a novel approach for 3D geometric modeling of articulated mechanisms, based on a version XML [26]. The main idea is to provide connection between such developed virtual model to its dynamic model, created using other software [27]. Two-ways communication between two models has established using named pipe technology.
The proposed approach is applied on an example of mobile robot FESTO Robotino [28]. Generally, the popularity of mobile robots is significantly growing in recent years and attracts the research attention around the world. On other hand, FESTO Robotino is complex enough to be chosen as a representative example. It is characterized by excellent maneuverability achieved using three omnidirectional wheels. As such, it is the subject of many analyzes presented in [29,30,31,32,33,34,35,36]. Generally, the construction of omnidirectional wheels is also given great attention and is the subject of research [37,38,39,40].
The dynamic models for various mobile robots have been developed several decades ago, but due to the complexity of omnidirectional wheels [31,32,33,34,35], the attention of researchers around the world is still focused on dynamic modeling and the design of an appropriate control algorithms for navigation of mobile robots equipped with such wheels [41,42,43].
In this paper, the lateral rolling of the rollers, which the wheels consist of, was taken into account and analyzed. Dynamic model, based on the concept of component model approach, has been created by bond graph technique using program BondSim [27,44].
The virtual 3D model of Robotino is developed in the paper using an XML approach by BondSim3DVisual application. Methodology for development of the virtual model presented here is updated, modified and conceptually different version of one explained in [45]. The proposed markup language is a simplification of general XML scheme found elsewhere [26] and serves as a replacement of a C-type language introduced in BondSim3DVisual [27]. The proposed version was designed for 3D geometric modeling of articulated bodies such as robots, multi finger robot hands, mobile robots, multi legs platforms, cranes and similar objects. Using a DOM (Document Object Model) like approach, an XML document can be represented as a tree of elements. Thus, the structure of 3D geometric model of an articulated mechanisms can be represented as a tree of constitutive elements and attributes in the computer memory. 3D virtual model is generated from XML tree using powerful VTK library [46,47,48].
Between two robot models: the virtual, which works in environment of BondSim3DVisual, and the dynamic model, which runs in BondSim, there exists two-way communication during simulation based on named pipe techniques. After validation in virtual environment, the proposed algorithms could be applied to a real robot. Verification of the robot’s behavior in a virtual scene reduces the need for large experimental work with real robots.
FESTO has implemented similar idea for Robotino using two software packages RobotinoView for driving of the Robotino, and RobotinoSim to visualize robot scene [49,50]. The approach presented in this paper is more general and refers to the development of dynamic and 3D virtual models of any articulated mechanism, not only Robotino. Such models can exchange information with each other in the planned future research on the real physical systems according to the concept of digital twins.
The rest of the paper is organized as follows. The methodology of how to develop a virtual 3D model of articulated mechanism is described in Section 2. The dynamic model of Robotino using bond graphs is developed in Section 3. Simulation results are presented in Section 4. Finally, the last part of the paper gives concluding considerations and proposes for the future work.

2. Virtual 3D Modelling of Articulated Mechanisms

2.1. The Basic Approach

The visualization in 3D space provides representing of three-dimensional objects on the computer screen similarly as we see them in the real scene. In the real scene we have several essential items (Figure 1):
  • Three-dimensional space with objects in it;
  • Sources of the light such as Sun, or light bulbs, enlightening the scene;
  • A person looking at it.
The objects generally are not static, but move over the scene, e.g., a robot hand moves over the scene to grasp a part and moves it to another object to place or insert it there. We analyze their motion in world space OXYZ. We assume that XY plane lies in the plane where objects lie and we look to them along negative Z axis.
To visualize the objects and their movement over the scene, we
  • generate virtual 3D representation of them as 3D geometric objects;
  • generate dynamic model of the entire system in order to simulate their motion;
  • interconnect these two worlds, 3D geometric and dynamical, by suitable means to enable interactions between them.
To achieve this we use two applications, which were developed specifically for this purpose: BondSim3DVirtual, and BondSim [44], as shown in Figure 2.

2.2. Generating Virtual 3D Model

To generate 3D virtual model of an articulated mechanism BondSim3DVisual application was developed using Microsoft Visual C++ language. It is used for construction of the 3D virtual model of a mechanisms and its generation on the computer screen. It uses a special version of Extensible Markup Language (XML). The application uses well known pugixml library [51] to support processing of XML code.
At opening of the application an empty mainframe appears, as shown in Figure 3. It is divided into two parts. On the left side there are two tabbed windows: Tree View and XML Output. The first one serves for construction of Document Object Model (DOM) like XML model tree. Thus, the model is not developed as a conventional XML document, but as DOM like tree. It starts at a root, and suitable elements and attributes are inserted one after other as its branches or leaves. Simultaneously, a corresponding XML document is generated in read-only XML Output window. To see it we simply click its title (Figure 3). The right side of the program frame is used to create a document window containing the virtual 3D objects corresponding to the XML model on the left.
The problems treated by this application are divided in several groups: projects, robots, tools and objects. This division is rather arbitrary and serves to define the roots of the model trees and the directories where their XML documents are stored. The models are stored as XML files, i.e., text files with extension XML.
From modelling and visualization point of view, Robots, Tools and Objects are all treated in the same way. Thus, when we need to develop a new robot model, e.g., 3D model of Robotino using BondSim3DVisual application we need to assign a unique name to the model, which is used as the filename for storing generated XML document in the Robot directory. We may select simply Robotino as the file name. Program starts by creating the robot tree root and adding the attributes as children (Figure 4a). The attribute id represents the robot identifier. It is a machine generated a unique number as shown in Figure 4b. The Name attribute contains Robotino textual value.
The operations on the tree are very simple. Starting from the root we insert elements or attributes by selecting a corresponding node (an element or attribute) by clicking it by mouse and applying Edit menu command, or right clicking it by the mouse. A drop-down menu appears from which an element or attribute can be chosen (Figure 5a) to insert. Another drop-down menu now appears from which a suitable command can be selected either to insert a new item as child, or above, or below of the selected item. The menu disappears and a dialog window appears from which an element or attribute node can be selected (Figure 5b). After selecting and clicking OK, the dialog closes and the selected item appears in the tree. The structure of the virtual model is generated systematically starting at the robot root and adding hierarchically its branches (elements) and leaves (attributes) following the structure of the mechanism we model.
Generating of the scene on the computer display is the responsibility of the computer graphic subsystem, which consists of display hardware, graphics hardware and graphic library. It is possible to program the graphic subsystem directly by use of the corresponding languages such as OpenGL, DirectX, etc. However, many applications use a suitable application library to simplify this task. To that purpose, the BondSim3DVisual uses the VTK, a powerful C++ library [46,47,48].
By applying Create 3D Scene command, the XML model description is processed and the corresponding virtual model frame is created at the right side of the application’s frame windows.

2.3. Modeling Articulated Mechanism

A typical articulated mechanism consists of a base (link 0) and series of body links connected by the joints. To describe mechanism, we use different coordinate frames. Thus, we add to every of body links an orthogonal coordinate system, which is fixed to the particular body link. There are two coordinate systems which are associated with every joint, and having the common origins. One of these frames is fixed to the previous link, and the other to the next link (Figure 6a). The relative position of these frames can be described by a common joint axis and a rotation angle/ translational displacement by which one joint frame displaces with respect to (w.r.t.) the other.
Figure 6a shows simple case of revolute joint. To define the next link coordinate frame defined by the corresponding rotation matrix, we start from the current frame rotation matrix and apply the pre-transforms to transform it to overlap the current joint frame fixed to the current link. These transforms usually consist of the translation which move the origin of the current link frame to the origin of the joint frames and rotation of the translated frames to align with the joint frame, which is fixed to the current frame. Next a drive transform is applied, which typically consists of a rotation or translation of the other joint frame around/along the joint axis. Finally, we apply post-transform, which align the other joint frame with the next link body frame. These transforms can be compactly described by XML tree segment shown in Figure 6b.
Often transforms along the body links are much simpler. Thus, e.g., joint coordinate frame fixed to the previous link can be used simultaneously as the link frame. In that case, pre- and post-transforms are not necessary (they are identity transforms); only the drive transform is needed.
After the rotation matrix of the next link frame is defined by above transforms, we need to describe the geometry of the next link. We may use different geometric elements such as cuboids, cones, cylinders, bodies of revolution e.t.c. for this purpose. All such elements are the children of the next joint, and thus they use as the reference frame the frame of the next body link, which id defined by the link element in Figure 6b. Hence, all of these elements have to follow the link element. Every of these elements have a unique id attribute, which is used to refer to them.
There is a special element—assembly. It is used it to add the geometric elements to it by referring to them by their ids. In this way all of the next body link geometric elements can be referred to as unit by the assembly id attribute. We can also use it to transform position and orientation of added elements w.r.t. the reference frame.
The articulated mechanism’s parts typically have the complex shapes and are usually generated using a 3D CAD software (e.g., SolidWorks, Catia etc.) [51,52], from which they can be exported in the form of STL files. This is the case with many robots including the Robotino. In this way the 3D virtual models of such robots can be reconstructed so that they are very close to the real devices. The main difference is in the color of the robot parts, because they are not defined in STL files; they contain the geometry data only. The corresponding stl files are specified by the part elements.
The final element in the joint segment is the render element. The element is inserted at the same level but below all body elements or assemblies it refers to. It connects geometry of the element or assemblies it refers to with the visualization object (the actor). It also connects to the link frame (the next body frame). Because the geometry does not contain information on the color, it is defined here. The color can be defined by a color name, similarly as in the web browsers (Edge, Google. etc.), or by the red, green or blue (RGB) color indices in range 0.0-1.0. This value is set to the color of the current visualization object.

2.4. Modeling of FESTO’s Omnidirectional Mobile Robot Robotino

The Robotino is an omnidirectional device, which has ability to move over the ground floor in any direction no matter what are the current orientations of theirs wheels (Figure 7). This is mainly result of the special design of the wheels. For version of Robotino studied in this paper, every wheel consists of two groups of three rollers each, which are contained in a wheel holder (supporter) in which they can rotate. The rollers in one group, e.g., the front or back group, are angularly displaced by 60⁰ w.r.t. the other in such a way that (looking at the wheel’s outer circle at the point of contact with the ground) the end of a roller of the first group overlaps the start of the roller of the other group. In this way, during the rotation of a wheel, at every moment one roller is in the contact with the ground floor and rolls over it. The coordinate system shown in the Figure 7a is the world coordinate system in which the device is described. It is displaced in order not to overlap the device. The Robotino consists of chassis and three wheels, which are displaced around the vertical axis by 120⁰. The wheels are driven by DC motors, which are connected to wheel axles by tooted belts and planetary gears. The basic parts of Robotino are shown in Figure 7b.
Figure 8 shows a scheme of Robotino with the local coordinate frames defined. There are three frames with the origins at the wheel centers Ci (i = 1,2,3) and whose xi axes (i = 1,2,3) are directed along the wheel rotation axes. We also added another local frame whose x-axis is directed opposite to x2 axis and serves to orient the Robotino. Their zi and z axes are parallel with the world Z axis; the yi and y axes are created by rotating xi and x axes around zi and z axes for 90⁰ in positive (counter clock wise ccw) sense. The local coordinate frames are fixed to Robotino chassis, and moves jointly with it.
We create a new virtual model of Robotino as explained in Section 2.2 (Figure 4). It generates the corresponding the robot root (Figure 9a).
Next, to enable pushing of the robot over the world frame, we inserted three virtual joints. The first one is inserted as child of the root and other two as the children of the previous ones. The joints have the link elements containing only the simple drivers—the first the prismatic one along the X-axis, the next the prismatic one along the Y-axis, and the third one a revolute around the Z-axis. Note that these joints do not exist in the real device.
Following the last joint’s link element, the chassis, bumper, distance sensors and camera are inserted into the tree by the part elements, and by specifying their id and name attributes. After every of them an assembly element is inserted that is used to properly position the part with respect to the joint reference frame. Next a render element is added to specify the color and generate 3D view of the part.
After all part elements are added, we add a probe. It is used to define a particular point in the robot structure, which we would like to monitor during motion of the Robotino’s 3D model and return its current coordinates back. Here we will put it at the center of the Robotino’s chassis bottom. We may add some other points as well.
Finally, there are additional three joint elements in parallel (Figure 9a). They correspond to the axles on which the wheels are mounted (Figure 8). Their link children define positions and orientations of the corresponding local frame. The object elements define the corresponding omnidirectional wheels that rotate jointly with the axles.
The model of a wheel object is generated similarly as we did for the robot. Only we use New/Object command, and set the names: Wheel_1, Wheel_2, or Wheel_3. The corresponding model tree is shown in Figure 9b. The part element defines a roller supporter. It is added to assembly element and its position and orientation are defined there. Finally, the render element, which refers to the last assembly element, defines its color and generates the 3D view of the supporter. The next six joints correspond to rotation axis of every of six rollers. The structure of the joints’ tree is similar to other joints. They define their axes, geometric shapes, colors and draw their 3D view. This allows modeling of every roller motion separately.
The projects are used to define the work-space where robots, tools and objects are used. Consider a project in Figure 10a, which contains a Robotino robot that is moving over a ground floor constrained by the walls as described by object element.
The geometrical model of ground is shown in Figure 10b. It consists of bottom floor in form of thin cuboid, and the walls also in the form of the cuboids. They are added into the assembly element to properly position them. The render element defines the color of the ground object and generate its 3D view on the screen. The robot specified is a Robotino device. It also contains the base element, which define its position w.r.t. the floor. (The bottom of the Robotino is moved up so that the wheels just touch the ground.)
After the complete XML model of Robotino project is developed we start processing it in order to generate its 3D view. First, the Robotino project is opened using Open-Project command from File menu and Project Robotino is selected. Next, we apply Create 3D scene command from File menu. The processing starts from the project root. When object or robot elements are encountered, the application read the names of the attributes and find the corresponding XML files, load them, and continues processing from their roots until all processing was done. Figure 11a shows the scene generated. To better show the generated Robotino device and the ground, the scene is modified by pressing mouse on the screen near the device and dragging it, and then sizing it up by rotating the mouse wheel (Figure 11b).

3. Development of Dynamic Model of the Robotino by Bond Graphs

3.1. Coordinate Transforms

Figure 12 shows scheme of Robotino’s chassis—the base (see also Figure 8.) with rigidly attached several local coordinate frames. Three of them are local body-fixed frames Cixiyizi (i=1,2,3), whose axes xi are fixed at the corresponding wheel centers Ci (i=1, 2, 3) and drawn through the base’s center C, axes zi are orthogonal to the plane of motion and directed up. Also, there is another Cxyz coordinate frame whose x-axis is directed in camera direction and thus shows the heading of the Robotino.
Hence, due to parallelism of z-axes, the angular velocity expressed in the world and the local coordinate frames are identical:
<!-- MathType@Translator@5@5@MathML2 (no namespace).tdl@MathML 2.0 (no namespace)@ -->
where angle φ is rotation angle of the chassis. In this paper, vectors represented in the global coordinate frame will be denoted by w in the exponent. In vector projections, the capital letters X and Y in the index indicate that the vector components projected onto the axis of the global coordinate frame. In the case of a radius vector of a point, projections onto the axis of the global coordinate frame will be denoted by the capital letters X or Y, with the corresponding point indicated in the index.
The translational part of the base motion w.r.t. the world coordinates is described by components of the center C velocity:
v C w = v C X v C Y 0 .
The orientation of the local coordinate frames w.r.t. the world one is defined by rotation matrices:
R i = cos φ i sin φ i 0 sin φ i cos φ i 0 0 0 1 , ( i = 1 , 2 , 3 ) ,
where φ i is rotation angle given by (Figure 12):
φ 1 = φ + π / 3 ,   φ 2 = φ + π ,   φ 3 = φ π / 3.
Thus, e.g., if velocity vector vi is defined in the local system, its components in the world system is defined by transform:
v i w = R i v i , ( i = 1 , 2 , 3 ) .
Similarly, the components of a vector, e.g., force F i w defined in the world frame can be expressed in the local coordinate frame by the inverse the transformation matrix. Because the matrices (3) are orthogonal, their inverse matrices are simply their transpose R i 1 = R i T . Therefore, it follows:
F i = R i T F i w .
The power defined by scalar product of these quantities in the world system can be evaluated using the above expressions:
F i w T v i w = R i F i R T i v i = F i T R i T R i v i = F i T v i ,
and hence, it is equal to power evaluated by local representation of these variables. We may describe this transform using Bond Graph component Transform in Figure 13a. It is known in Bond Graph literature as its word model. It has two power ports represented by half-arrows. To every of these ports, we assign a pair of effort (force) and flow (velocity) vectors whose scalar product is power transferred by the component. There is another full arrow port, which represent a signal input port. There is no power associated with this port. It serves only to transfer information on the rotation angle into the component.
By opening the component, a document appears (Figure 13b), which has the same title as the component, in this case the Transform, and which serves to define the internal structure of the component model. Note the narrow rectangles along the boundary rectangle of the document. They correspond to the power and signal ports. These are the document ports. To every external port thus, corresponds a document port and vice versa. The document ports are internally connected to other ports by bond lines or bonds for short.
The Transform is an example of a Bond Graph component. Any such a component can be represented in two ways. Looking from the outside it is represented by a common Bond Graph word model consisting of a title and the ports in the form of half- or full-arrow ports. To define its internal structure we open its document, which is bounded by a rectangle and on its outside, there are document ports. To define its structure, we insert into the document other world models whose ports are connected to the document ports by the bond and signal lines. The components are also inter-connected by bond and signal lines. Thus, the model of a component is defined by a Bond Graph. This approach is known as the component approach and it enables generation of complex models as the hierarchies of the models (Damic and Montgomery [44]).
Number of connected bonds defines the dimension of the port. If there are exactly three bonds it does not mean that port is a vectorial one. It is also necessary that every bond on its other side is connected to a one-dimensional port. If on other hand they are connected e.g., to three-dimensional ports, the external component port is a second-order tensorial port. In this study we will deal with 3D (vector) and 1D (scalar) ports.
The transformation from world to the local frames and vice versa by matrices (3) is in Bond Graphs described by transformers TF, which describe the effects of the matrix elements onto the components of velocities and forces vectors given by (5) and (6). Thus, going from the bottom to the upper ports represents the direct transform of velocities from local to world system (5). The 0-junctions represent the summation of transformed quantities. Similarly, the transforms from top to down represent the inverse transform of forces from world to the local frame (6), and 1-junctions describe the corresponding summation of transformed quantities. The nodes represented by dots serve to distribute angle delivered to the transformer internally to the transforms TF. To better understand these transforms the corresponding transformed efforts and flows are superposed on the Figure 13b. We follow the convention that symbols to the left or above of bonds are efforts, and to the right and down of them are flows.

3.2. Dynamics of the Wheels

Figure 14 shows a side view of a wheel. Every wheel is driven by a DC motor over a geared belt and planetary reducer. We describe motion of the wheel w.r.t. the corresponding local coordinate frame Cixiyizi. The angular velocity of rotation of the wheel is ωi and is directed along the xi axis[1].
Assuming that the rolling is without slipping, i.e., the velocity of the temporary contact point Pi is zero, the velocity of the wheel’s center is given by:
v i = v + P i v C i / P i = 0 0 0 + ω i 0 0 × 0 0 R w = 0 R w ω i 0 ,
where Rw is the radius of the wheel.
Note in Figure 14 the components of reaction forces at Pi. Component Fiy is the reaction force opposing slipping of the wheel on the ground during its rotation around xi axis. Similarly, Fix is the reaction of the ground to slipping of the current roller during its rotation due to side moving of the assembly along xi axis. The component Fiz is the reaction due to weight of the complete wheel assembly.
We reduce Fiy component to the center Ci of the wheel (Figure 14). Hence the respective moment w.r.t. point Ci is given by:
M i = 0 0 R w × 0 F y 0 = R w F y 0 0 .
Hence, the rotation to linear motion transform (8) and (9) can be simply modeled by a LinRot component in Figure 15a, consisting of a single transformer TF in Figure 15b. It uses parameter Rw as the transformer arm.
We will also introduce the wheel body-fixed frame xibyibzib (i=1,2,3), which overlaps xiyizi (i=1,2,3) frame when the current roller touches the ground at its greatest diameter point (Figure 14). Thus, the current body-fixed wheel frame is defined w.r.t. the current roller by which the wheel touches the ground. As the roller changes the body-fixed frame changes as well.
We study the rotation of the wheel w.r.t. world frame coordinates XYZ. However, we may study it in the current wheel body-fixed frame as well. In this frame, the temporary contact point Pi moves apparently in the opposite sense.
When the wheel rotates around xi-axis by θi radian, the zib-axis rotates by an angle θ i b . We calculate a helper angle defined by the expression:
θ t e m p = mod θ i , π / 3 .
By mod operator definition this angle lies in the range [0, π/3). Note however, due to θ 0 = π / 3 , when this angle is greater than θ 0 / 2 , the contact point switches to the next roller and the body-fixed frame changes accordingly (Figure 14). Therefore, to properly define angle θ i b between body-fixed zib-axis and zi-axis, we set[2]
θ i b = θ t e m p 0   ?   θ t e m p π / 6   ?   θ t e m p :   θ t e m p π / 3 : θ t e m p π / 6   ?   θ t e m p : θ t e m p π / 3
Every roller by itself can freely rotate about its longitudinal axes (Figure 14). These axes form a plane, which is orthogonal to the wheel rotational axis. In this way in addition to normal rolling of the wheel around its rotational axis xi, the wheel may move sidewise due to rolling of a roller currently in contact with the ground about its longitudinal axis.
We may find the velocity arm rroll from the relationship (Figure 14):
R w cos θ i b = r r o l l + R w r max ,
or
r r o l l = r max R w 1 cos θ i b .
Assuming that the rolling of the roller takes places without the slipping, and applying the right-hand rule to the roller, we obtain:
v i x = r r o l l ω i r o l l .
Thus, the velocity of the wheel center is holonomic, i.e., it does not depend on the direction of the wheel axis.
The model of the roller is shown in Figure 16. Comparing with Figure 15 it can be seen that the rotation is similar to that of the wheel, but with different rolling arm.
After these kinematical considerations, we turn to the dynamics of the wheel. Due its rotational symmetry we assume that the wheel’s mass center coincides with its geometric center Ci. Thus, the motion of the wheel can be decomposed into its translation determined by the motion of its center and rotation around it. Because the wheels are joined to the Robotino’s base and translates with it, we may take into account the translational dynamics of the wheel when analyzing the motion of the chassis. Thus, it is left to analyze here only the rotational dynamics of the wheel.
We apply moment of momentum law for rotation around the wheel’s center Ci. The moment of momentum w.r.t. the local frame xiyizi, (i = 1,2,3) reads:
L C i = I i x ω i 0 0 ,   ( i = 1 , 2 , 3 ) ,
where I i x is moment of the inertia of the wheel w.r.t. xi axis. We transform (14) to the world frame XYZ by pre-multiplying by rotation matrix (3):
L C i w = R i I i x ω i 0 0 = I i x ω i cos φ i I i x ω i sin φ i 0 ,   ( i = 1 , 2 , 3 ) .
Now the moment of momentum law reads:
d L C i w d t = M i w ,
where M i w is applied moment. If we denote the net moment applied to the wheel by Mix we have:
M i = M i x 0 0 ,   ( i = 1 , 2 , 3 ) .
Using (15) and (17) we can write (16) as
d d t R i I i x ω i 0 0 = R i M i x 0 0 .
Figure 17 shows Bond Graph component describing (18). Note, that component RotTFi in RotDyn document is coordinate transform between local xi and world coordinates. Finally, the last component in Figure 17 represents the rotational dynamics of the wheel in the world frame.
At the end we formulate the Bond Graph model of the wheel, which contains all components that we have discussed previously (Figure 18). The integrator serves to find the angle of the wheel rotation in radians, and the function converts the radians into degrees.

3.3. Dynamics of the Chassis

Bond Graph model of the chassis is shown in Figure 19. The model follows the structure of the real device, which contains three drive units represented by components Drive 1 to Drive 3. The drivers develop angular velocities ωi and torques τi, which are applied to the wheels (Figure 18).
Component Dynamics in Figure 19 models the kinematics and dynamics of the chassis motion. We start form relation between velocity of the wheel centers in the local coordinates and world velocity of the chassis center:
v C w = X ˙ C Y ˙ C 0 T ,
where XC and YC are its coordinates in the world frame. This relation reads:
v i + v C / C i = v C i = R i T v C w , ( i = 1 , 2 , 3 ) ,
or
v i x v i y 0 + 0 0 φ ˙ × R 0 0 = cos φ i sin φ i 0 sin φ i cos φ i 0 0 0 1 X ˙ C Y ˙ C 0 , i = 1 , 2 , 3 ,
where R is radius of the chassis, which contains the wheel centers (Figure 12). Expanding the last equation gives:
v i x = X ˙ C cos φ i + Y ˙ C sin φ i v i y R φ ˙ = X ˙ C sin φ i + Y ˙ C cos φ i , ( i = 1 , 2 , 3 ) .
Bond Graph model of the Base Dynamics is shown in Figure 20a. The central role in it plays Equation (21). The three transformers TF describe rotation-to-linear transformation (similar to Figure 15). They also generate the moments of y-axis forces of the wheels acting on the chassis about its Z-axis. The Transform describes the right side of second (21) (Figure 20b). It also transforms the y-axis forces of the wheels acting on the chassis to world frame and apply them to the center of mass of the assembly (see Translation in Figure 20a).
The Side rolling in Figure 20a describes the motion of the wheels due to rotations of the rollers. The velocities of this motion are described by Bond Graph representation in Figure 21a. It generates x-component of the wheel center as defined by the first (21). The roles of the transforms are not only to transform the velocities of the chassis center from world to local frames, but also to transform to world frame the x-axis components of the forces acting at the contact of rollers with the ground (Figure 14), which are transferred by wheels to the chasses. Sum of these forces are transferred through the bottom port into Translation’s upper port (Figure 21b).
The component Translation describes the translational dynamics of the Chassis including the wheels. The inertial element I describes the rotational dynamics of the chassis.
We now return to the model of Chassis in Figure 19. There are three Driver components, one for every wheel, which models the driver units of the Robotino.
Figure 22 shows the structure of the drivers. The drivers consist of DC motors [53] and reducers (belt drives and planetary reducers). The DC motors are modeled using gyrators (Damic and Montgomery [44]) and lossless reducers by simple transformers.
In this model the control of the drivers is provided by common PID controllers. The reference angular velocity follows from (8) and second (21):
ω i = R φ ˙ X ˙ C sin φ i + Y ˙ C cos φ i / R w , ( i = 1 , 2 , 3 )
The reference inputs are generated by the Reference component described in the next Section. There is one point that we have now to take into account. Positive direction of the motor rotation, following the right-hand rule, corresponds to the motor rotation axis directed into the Robotino body (see Figure 7a). On the other hand, the wheels’ axes are parallel to these axes, but they are directed out of the body (See Figure 8). Therefore, the positive directions of angular velocities and torques at the motor’s and driver output’s side are opposite.
This can be taken into account by setting the transformer ratio equal to negative of gear ratio, i.e.,
ω i = k g e a r ω m , τ m = k g e a r τ i
This also implies that the reference input in the feedback loop of Figure 22 should be scaled back by 1 / k g e a r before it is applied.

3.4. Planning of the Motion

The purpose of Reference component is to define path of a plane curve that center C of the Robotino bottom should follow, the direction of its motion, and to generate the control signals for wheels driving. As an example of the curve, we use a (geometric) rose described by the following pair of Cartesian coordinates [54]:
X C r e f = a m p l cos k ϕ cos ϕ Y C r e f = a m p l cos k ϕ sin ϕ .
If parameter k = 3 then (24) describes a rose with three petals of amplitude ampl = 2 m (Figure 23a).
To describe the path shown in the Figure 23a, we define parameter ϕ by:
ϕ = a t + 5 π / 6 ,
where a is a parameter and t denotes the time. Notice that initially XC = 0, YC = 0 and the curve starts in the fourth quadrant with ampl of 2.0 m. To pass over all three petals it needs π radians. Thus, if a = 0.1, it needs approximately 31.4 s for one complete cycle. Differentiating (24) and (25) w.r.t. time we find the expressions for the world velocity components of the Robotino center C along the reference path:
v C X r e f = d X C r e f d t = a m p l a k sin k ϕ cos ϕ cos k ϕ sin ϕ v C Y r e f = d Y C r e f d t = a m p l a k sin k ϕ sin ϕ + cos k ϕ cos ϕ
The direction of the motion is defined by assuming that Chassis axis x is tangential to the reference path at the current position of the Chassis center C (Figure 23b). The corresponding angle φ is given by:
tan φ r e f = v C Y r e f v C X r e f
The reference angular velocity of the chassis we find by differentiating (27) w.r.t. time:
ω r e f = cos 2 φ r e f d d t v C Y r e f v C X r e f = a 2 k 2 sin 2 k ϕ + k 2 + 1 cos 2 k ϕ k 2 sin 2 k ϕ + cos 2 k ϕ .
Now, to find angle φref as continuous function of ϕ, and thus of time t, we may integrate (28) using suitable the initial value, i.e.,
φ r e f = 0 t ω r e f d t
The component Reference (Figure 23c) implements the above functional relationships consisting of the input function (25), the chassis center position (24) and linear (26) and the angular velocity functions (28) and rotation angle (29). The outputs of these functions are forwarded to drivers in Figure 19.

3.5. The Overall Model of Robotino

In the above sections we have discussed Bond Graph models of the basic components the Robotino device consists of. It remains to discuss the Ground over which it moves.
Model of Ground is shown in Figure 24. It models interaction between the wheels and the ground floor at the wheels contact points P1 to P3 (Figure 8). These are modelled simply by three components vP1 to vP3 (Figure 24a) containing three source flows (SF) elements (Figure 24b) that impose zero velocities components of the current connection point in direction of world axes. The corresponding the reaction forces depend on dynamics of the Robotino.
Finally, we describe the basic, the root level, model of Project Robotino consisting of Robotino device running over the ground and connected to a server by an IPC (Inter Process Communication) link in the form of Named Pipe. The model is shown in Figure 25. We will concentrate here on the interactions between the basic components Chassis, Wheel 1 to Wheel 3, and Ground. The IPC we will discuss in the next Section.
In reality the wheels are mounted on the chassis axles that rotate the wheels by means of internal driver units. Thus, the upper-left power ports transmit the driving toques and wheel angular velocities. In addition, there are transverse force-velocity pairs that are transmitted between the wheels and chassis which appear due to rotation of the wheels.
The Ground applies the no-sliding conditions on the wheels at point of the contacts. The other are the signals that transmit input and output information of the components. Many of them are transmitted to the display components (in form of XY plotters) and serve to generated x-y or x-t plots during the simulation.

3.6. Building the Mathematical Model and Solving by BDF

Before we start the simulation, we need to build the mathematical model of hierarchical Bond Graph model of Figure 25. Starting from this root level model, we build first its model in the background. Next, every component it contains are visited, opened in the background and their models generated. Processing then continues by opening the next contained components and generating their models, until the elementary components, which constitutes the branched of Bond Graph model tree, are reached.
The classical Bond Graph method can have nine elementary components: source effort SE and source flow SF, effort 1 and flow 0 branches, resistor R, capacitor C, inertial element I, transformer TF and gyrator GY. To them we may add several input-output signal elements: the input function, the output function of one or more input variables, integrator consisting of one input and one output, and other analog and discrete signal functions, which are not used here [44]. Instead of causality assigned constitutive relations of the elementary components we use their implicit form. Thus, e.g., the constitutive relations of the left flow junction of Figure 20b, and connected to it the transformers, are described by equations:
v C 1 y + f 1 f 2 = 0 , f 1 + v C X sin φ 1 = 0 , f 2 v C Y cos φ 1 = 0.
Similarly, the constitutive relations of the inertial elements in Figure 21b read:
d p X d t F X = 0 , d p Y d t F Y = 0.
In the same way we can generate the other constitutive relations. For the model of Figure 25 we generate thus 28 simple differential equations and 206 algebraic equations. Thus, the mathematical model has form of semi-explicit differential-algebraic equations (DAE) of the form:
x ˙ i y i , i = 1 , , n = 0 , f i x 1 , , x n , y 1 , , y N , t = 0 , i = 1 , , N ,
where, x 1 , , x n are differential variables, and y 1 , , y N are algebraic variables. We define the following column matrices:
x = x 1 , , x n T , z = y 1 , , y n T , f = f 1 , , f N T , y = y 1 , , y N T
Thus, we can write (30) in the matrix form as:
x ˙ z = 0 , f x , y , t = 0 .
Taking time derivation of the last Equation (32) we obtain:
f x x ˙ + f y y ˙ + f t = 0 .
Taking into account first Equation (32), we may write the last equation in the form:
f y y ˙ = f x z + f t .
Thus, if Jacobian matrix f y is invertible, we may express the time-derivate of y as:
y ˙ = f y 1 f x z + f t
Therefore, the second Equation (32) has differentiation index 1, and taken together with the first we obtain that (32) are index 2 DAE (see Brenan et al. [55], p. 39).
Well-known Backward Differentiation Formulas (BDF) emerged as one of the best methods for solving general DAS’s. It was shown in Brenan et al. [55], pp. 54-56, that when applied on model (32) the k-step BDF (k <7) is convergent to order of hk, where h is the current step-size. BondSim uses only one integrator—the general form of Backward Differentiation Formula (BDF), i.e., its variable coefficient form [44], to solve Bond Graph model. In comparison the famous DASSL uses the constant coefficient form of BDF [55]. It is well known that variable coefficient form of BDF is the most stable version of BDF, but it asks for more frequent evaluation of the partial differentiation matrix of DAE system (the Jacobian). This is counterbalanced in BondSim by generating this matrix in sparse analytic form. In addition, the equations of mathematical model of the problem and corresponding expressions of the matrix elements are internally converted into NET assembler form using C++/CLR Microsoft’s language extension, and thus evaluate them efficiently (in DASSL this matrix is evaluated numerically). For details see Damic and Montgomery [44].
Hence, we may conclude that equation of mathematical model can be successfully solved by BDF method if they are independent. This is relatively easy to achieve by applying Bond Graph method as described in [44] and following the structure of the physical system under the study.
To start the simulation process, after mathematical model build was successfully applied, we apply menu command Run. A dialog window opens which is used to input the simulation parameters (simulation time, output interval, maximum step size, absolute and relative errors, etc.). After the OK button was pressed the simulation starts.

3.7. The Named Pipe Communications and Simulation

The named pipe is two-way IPC mechanism, which enables transfer of data between two or more applications on the same computer, or the computers connected in a local net. Any applications can serve both as server and client making two-way communications possible. However, only one application creates the named pipe and is termed the server. The others that connect to the first are called clients.
In this implementation there is one server—BondSim3DVisual, and one client—BondSim implemented on the same computer. After a project is opened on the first one and the scene is created, we create the named pipe using command Open Pipe. After the pipe is created, a message is sent inviting the client to connect to.
To connect to the server, we activate BondSim applications and open the Bond Graph problem corresponding to virtual project we have created in the server. We manipulate the frames of the both applications to make them both visible on the computer screen.
The Bond Graph model contains an IPC component in the form of a ring (or pipe cross-section), (see at the top of Figure 25). It has the input signal port that serves for connection of the signal lines, which transfer data across the pipe to the server, and output port that receive the signal data returned by the pipe. After all IPC ports are connected, we build mathematical model of the BondSim application. If the building of the model is successful, we can start the simulation. Before starting the simulation, we need to connect it to the server using corresponding command under Build menu.
There is one other parameter that need to be defined at the start of simulation. This is the Frame per second (FPS) parameter. The visual screen in BondSim3DVisual is updated by sending data over the pipe at the discrete times. Every pack of data generates a picture displayed on the screen, and is called a frame (following the film’s terminology). How often we need to send data? The human brain can process 10 to 12 FPS received by our eyes as steady pictures; the higher rates are recognized as the motion. Its default value is taken equal to 20.
When a 3D visual server application receives a pack of data, it reads it, transforms and updates the geometry of the mechanism to a new state and then render it to the screen. Repeating these transforms appears as motion of mechanism over the screen.

4. Simulation of Robotino Path Following

We can now simulate the motion of Robotino along the planned path. We build the model first and then start a simulation run using the following parameters: simulation interval 50 s, output interval 0.02 s, maximum time step size 0.02 s, errors 1e-6. Simulations are performed on PC with x64-based processor AMD Ryzen 7 PRO 4750G with Radeon Graphics 3.60 GHz. The total elapsed time was 0.51 s. After that we repeated simulation with the same parameters, and this time we enable communication between dynamic and virtual model. Communication was established using IPC pipe component (Inter Process Communication)—red ring in Figure 25, which enables that the dynamic model can send some information, in our case these are joint angle values to the virtual model thirty times per second. When the dynamic model is connected to the virtual one, the total elapsed time was 46.83 s. After testing behavior of Robotino using these both models, in the future investigation we plan to connect them with real physical robot according to the digital twin concept.
BondSim3DVisual application enables also writing of the mechanism movement over the screen on a video file in format MP4. We start witing by command Start Video, and end by command End Video under File menu. We may read this file with verious applications such as Media Player, Moves & TV, and similar. We uppload this file to You Tube under name Project Robotino where the readers can view it. When video writing is started process is something slower, but still is about 50 s.
Some of generated plots during simulation are depicted in Figure 26. Figure 26a shows trajectory traversed by the center of the Robotino. The data are taken from the virtual side. To check accuracy of the virtual model, owing to established two-way communication between dynamic and virtual side during simulation, the coordinates of the robot center were read from the virtual model and delivered to the dynamic side.
The comparison of the coordinates of the robot center obtained on the virtual and dynamic side during simulation runs is shown in Figure 26b and shows good agreement. Signals picked up from virtual model is delayed for a time required for its reading and delivering from the virtual to dynamic side (Figure 26b).
To verify developed dynamic model and control algorithm we compared coordinates of the robot center and its orientation obtained during simulation with the reference values. Deviations of obtained coordinates of the Robotino center (XC and YC) and its orientation (angle φ in radians) regarding to analytical values, defined by (24) and (29), are depicted in Figure 26c. They are order of several 10-6 m for Xc and less than 2·10-5 m for Yc, and 10-6 rad for angle φ (after initial transient state). That is very good agreement. Note that amplitude of the path is 2.0 m.
Virtual model of Robotino captured at different time instants during simulation is shown in Figure 27.

5. Conclusions

This paper proposes a novel methodology for 3D virtual modeling of the articulated mechanisms that can be driven by signals obtained from other model, for instance from its dynamic model developed using other software package.
Proposed approach uses well-known XML technology which provides systematically development of 3D visual model in form of a tree. But, instead editing of XML document, the operations are applied to the document tree in Tree View pane by inserting or removing the elements or attributes in environment of BondSim3DVisual. Simultaneously with DOM like tree a conventional XML code is also automatically generated and shown in a separate read-only pad.
The methodology explained in the paper has applied on modeling of the holonomic mobile robot (Robotino) equipped with three omnidirectional wheels. The 3D model of Robotino is created using 3D CAD models of robot parts in form of STL files. Virtually driving the articulated model by external signals is provided by developed dynamic model of robot using a separate general-purpose Bond Graph software BondSim. During the development of the dynamic model of the robot, the lateral rolling of the rollers of the robot’s omnidirectional wheels was also taken into account and described in the paper.
The two-way communication between two developed robot models—the dynamic and virtual is established. Both models run during simulation in different software packages and can communicate to each other. The dynamic model sends information to virtual one to drive it, but there is also communication in opposite direction. This means some information can be picked up from the virtual model and delivered to the dynamic (or any other). Thus, some information which can be more easily obtained on the virtual model, can be delivered from virtual to the dynamic side. To verify presented methodology a geometric rose with three petals used as an example of the plane curve that the center of the Robotino should follow.
In future research, it would be interesting to develop a more complex visual model of the environment in which the robot moves and to establish communication between the dynamic, virtual and real, physical robot—the Robotino, equipped with a complex sensor system to optimize its motion.
[1] It is a convention. The real direction depends on design of drivers’ chains. It will be discussed later when dealing with the wheels’ drivers.
[2] Operators “?:” are known as the question operators and represents the inline version of if-then-else construct.

Author Contributions

Conceptualization, V.D. and M.C.H.; state of art and methodology, V.D. and M.C.H.; software, V.D.; validation, V.D. and M.C.H.; formal analysis, V.D. and M.C.H.; investigation, M.C.H.; model developments, V.D. and M.C.H.; data curation, V.D. and M.C.H.; writing—original draft preparation, V.D. and M.C.H.; review and editing, V.D. and M.C.H.; visualization, V.D. and M.C.H.; supervision, V.D. and M.C.H. Both authors have read and agreed to the published version of the manuscript.

Funding

This research was funded by Ministry of Science, Higher education and Youth, Canton Sarajevo.

Data Availability Statement

The data obtained by simulations in this study are available from the corresponding author, up-on reasonable request.

Conflicts of Interest

The authors declare no conflict of interest.

References

  1. Nusser, G.; Bühler, D.; Gruhler, G.; Küchlin, W. Reality-Driven Visualization of Automation Systems via The Internet Based On Java And XML. IFAC Proceedings Volumes 2001, 34, 497–502. [Google Scholar] [CrossRef]
  2. https://gazebosim.org/home (last accessed on 02.11.2024).
  3. Kim, S.; Peavy, M.; Huang, P.-C.; Kim, K. Development of BIM-Integrated Construction Robot Task Planning and Simulation System. Automation in Construction 2021, 127, 103720. [Google Scholar] [CrossRef]
  4. https://www. 11. 2024.
  5. Rajendran, G.; V, U.; O’Brien, B. Unified Robot Task and Motion Planning with Extended Planner Using ROS Simulator. Journal of King Saud University—Computer and Information Sciences, 1319. [Google Scholar] [CrossRef]
  6. http://wiki. 11. 2024.
  7. https://cyberbotics.com/ Webots: robot simulator (cyberbotics.com) (last accessed on 02.11.2024).
  8. Gu, X.; Zhang, A.; Yuan, L.; Xia, Y. Design and Dynamics Simulation of a Triphibious Robot in Webots Environment. In Proceedings of the 2021 IEEE International Conference on Mechatronics and Automation (ICMA); IEEE: Takamatsu, Japan, August 8, 2021; pp. 1268–1273. [Google Scholar]
  9. https://morse-simulator.github.io/ (last accessed on 02.11.2024).
  10. https://www.coppeliarobotics.com/ (last accessed on 02.11.2024).
  11. Bogaerts, B.; Sels, S.; Vanlanduit, S.; Penne, R. Connecting the CoppeliaSim Robotics Simulator to Virtual Reality. SoftwareX 2020, 11, 100426. [Google Scholar] [CrossRef]
  12. https://carla. 11. 2024.
  13. https://raisim.com/ (last accessed on 02.11.2024).
  14. Casini, M.; Garulli, A. MARS: A Matlab Simulator for Mobile Robotics Experiments. IFAC-PapersOnLine 2016, 49, 69–74. [Google Scholar] [CrossRef]
  15. http://carmen.sourceforge.net/intro.html (last accessed on 02.11.2024).
  16. https://moveit.ros.org/ (last accessed on 02.11.2024).
  17. Santos Pessoa de Melo, M.; Gomes da Silva Neto, J.; Jorge Lima da Silva, P.; Natario Teixeira, J.M.X.; Teichrieb, V. Analysis and Comparison of Robotics 3D Simulators. In Proceedings of the 2019 21st Symposium on Virtual and Augmented Reality (SVR); IEEE: Rio de Janeiro, Brazil, October, 2019; pp. 242–251. [Google Scholar]
  18. Coronado, E.; Mastrogiovanni, F.; Indurkhya, B.; Venture, G. Visual Programming Environments for End-User Development of Intelligent and Social Robots, a Systematic Review. Journal of Computer Languages 2020, 58, 100970. [Google Scholar] [CrossRef]
  19. Collins, J.; Chand, S.; Vanderkop, A.; Howard, D. A Review of Physics Simulators for Robotic Applications. IEEE Access 2021, 9, 51416–51431. [Google Scholar] [CrossRef]
  20. Farley, A.; Wang, J.; Marshall, J.A. How to Pick a Mobile Robot Simulator: A Quantitative Comparison of CoppeliaSim, Gazebo, MORSE and Webots with a Focus on Accuracy of Motion. Simulation Modelling Practice and Theory 2022, 120, 102629. [Google Scholar] [CrossRef]
  21. Kaur, P.; Liu, Z.; Shi, W. Simulators for Mobile Social Robots: State-of-the-Art and Challenges. 2022. [Google Scholar] [CrossRef]
  22. Gammieri, L.; Schumann, M.; Pelliccia, L.; Di Gironimo, G.; Klimant, P. Coupling of a Redundant Manipulator with a Virtual Reality Environment to Enhance Human-Robot Cooperation. Procedia CIRP 2017, 62, 618–623. [Google Scholar] [CrossRef]
  23. Ibari, B.; Bouzgou, K.; Ayad, R.; Benchikh, L.; Ahemed-Foitih, Z.; Bennaoum, M. Augmented Reality Environment for the Trajectory Tracking of Mobile Robot. In Proceedings of the 020 1st International Conference on Communications, Control Systems and Signal Processing (CCSSP); IEEE: EL OUED, Algeria, May 2020; pp. 278–281. [Google Scholar]
  24. Wu, M.; Dai, S.-L.; Yang, C. Mixed Reality Enhanced User Interactive Path Planning for Omnidirectional Mobile Robot. Applied Sciences 2020, 10, 1135. [Google Scholar] [CrossRef]
  25. Corke, P. Robotics, Vision and Control: Fundamental Algorithms In MATLAB® Second, Completely Revised, Extended And Updated Edition; Springer Tracts in Advanced Robotics; 2nd ed. 2017.; Springer International Publishing: Imprint: Springer: Cham, 2017; ISBN 978-3-319-54413-7. [Google Scholar]
  26. XML Technology, http://www.w3.org/standards/xml/;/; 2014 last accessed on 02.11.2024).
  27. BondSimulation. Available online: https://www.bondsimulation.com/ (accessed on 02.11.2024).
  28. Robotino Manual, 544305_robotino_deen2.pdf, //www.festo-didactic.com/media/customers/1100.
  29. Klimenda, F.; Cizek, R.; Pisarik, M.; Sterba, J. Stopping the Mobile Robotic Vehicle at a Defined Distance from the Obstacle by Means of an Infrared Distance Sensor. Sensors 2021, 21, 5959. [Google Scholar] [CrossRef] [PubMed]
  30. Castillo, O.; Cortés-Antonio, P.; Melin, P.; Valdez, F. Type-2 Fuzzy Control for Line Following Using Line Detection Images. IFS 2020, 39, 6089–6097. [Google Scholar] [CrossRef]
  31. Tang, Q.; Eberhard, P. Cooperative Search by Combining Simulated and Real Robots in a Swarm under the View of Multibody System Dynamics. Advances in Mechanical Engineering 2013, 5, 284782. [Google Scholar] [CrossRef]
  32. Damic, V.; Cohodar, M.; Omerspahic, A. Dynamic Analysis of an Omni-Directional Mobile Robot. Journal of Trends in the Development of Machinery and Associated Technology 17.
  33. Hadji, N.; Rahmani, A. Observer for an Omnidirectional Mobile Robot. In Proceedings of the Proceedings of the 2010 Spring Simulation Multiconference on—SpringSim ’10; ACM Press: Orlando, Florida, 2010; p. 1. [Google Scholar]
  34. Damic, V.; Cohodar, M.; Muratovic, M. Dynamic Modelling of Mobile Robots Based on Its 3D CAD Model. In DAAAM Proceedings; Katalinic, B., Ed.; DAAAM International Vienna, 2017; Vol. 1, pp. 0144–0149 ISBN 978-3-902734-11-2.
  35. Muratovic, M. Modeling and simulation of mobile robot by Simulink, Faculty of Mechanical Engineering, University of Sarajevo, Master thesis, 2017.
  36. Mercorelli, P.; Voss, T.; Strassberger, D.; Sergiyenko, O.; Lindner, L. A Model Predictive Control in Robotino and Its Implementation Using ROS System. In Proceedings of the 2016 International Conference on Electrical Systems for Aircraft, Railway, Ship Propulsion and Road Vehicles & International Transportation Electrification Conference (ESARS-ITEC); IEEE: Toulouse, France, November, 2016; pp. 1–6. [Google Scholar]
  37. Hijikata, M.; Miyagusuku, R.; Ozaki, K. Wheel Arrangement of Four Omni Wheel Mobile Robot for Compactness. Applied Sciences 2022, 12, 5798. [Google Scholar] [CrossRef]
  38. Tagliavini, L.; Colucci, G.; Botta, A.; Cavallone, P.; Baglieri, L.; Quaglia, G. Wheeled Mobile Robots: State of the Art Overview and Kinematic Comparison Among Three Omnidirectional Locomotion Strategies. J Intell Robot Syst 2022, 106, 57. [Google Scholar] [CrossRef] [PubMed]
  39. Qian, J.; Zi, B.; Wang, D.; Ma, Y.; Zhang, D. The Design and Development of an Omni-Directional Mobile Robot Oriented to an Intelligent Manufacturing System. Sensors 2017, 17, 2073. [Google Scholar] [CrossRef] [PubMed]
  40. Rubies, E.; Palacín, J. Design and FDM/FFF Implementation of a Compact Omnidirectional Wheel for a Mobile Robot and Assessment of ABS and PLA Printing Materials. Robotics 2020, 9, 43. [Google Scholar] [CrossRef]
  41. Manzl, P.; Sereinig, M.; Gerstmayr, J. A Mecanum Wheel Model Based on Orthotropic Friction with Experimental Validation. Mechanism and Machine Theory 2024, 193, 105548. [Google Scholar] [CrossRef]
  42. Crenganiș, M.; Breaz, R.-E.; Racz, S.-G.; Gîrjob, C.-E.; Biriș, C.-M.; Maroșan, A.; Bârsan, A. Fuzzy Logic-Based Driving Decision for an Omnidirectional Mobile Robot Using a Simulink Dynamic Model. Applied Sciences 2024, 14, 3058. [Google Scholar] [CrossRef]
  43. Wang, D.; Gao, Y.; Wei, W.; Yu, Q.; Wei, Y.; Li, W.; Fan, Z. Sliding Mode Observer-Based Model Predictive Tracking Control for Mecanum-Wheeled Mobile Robot. ISA Transactions 2024, 151, 51–61. [Google Scholar] [CrossRef] [PubMed]
  44. Damic, V.; Montgomery, J. Mechatronics by Bond Graphs: An Object-Oriented Approach to Modelling and Simulation; 2nd ed. 2015.; Springer Berlin Heidelberg: Imprint: Springer: Berlin, Heidelberg, 2015; ISBN 978-3-662-49004-4. [Google Scholar]
  45. Damic, V.; Cohodar, M. Multibody System Modeling, Simulation, and 3D Visualization. In Bond Graphs for Modelling, Control and Fault Diagnosis of Engineering Systems; Borutzky, W., Ed.; Springer International Publishing: Cham, 2017; ISBN 978-3-319-47433-5. [Google Scholar]
  46. Schroeder, W.; Martin, K.; Lorensen, B. The Visualization Toolkit: An Object-Oriented Approach to 3D Graphics; Visualize Data in 3D—Medical, Engineering or Scientific, Build Your Own Applications with C++, Tcl, Java or Python, Includes Source Code for VTK (Supports Unix, Windows and Mac), Eds.; 4. ed.; Kitware, Inc: Clifton Park, NY, 2006; ISBN 978-1-930934-19-1. [Google Scholar]
  47. Hanwell, M.D.; Martin, K.M.; Chaudhary, A.; Avila, L.S. The Visualization Toolkit (VTK): Rewriting the Rendering Code for Modern Graphics Cards. SoftwareX 2015, 1–2, 9–12. [Google Scholar] [CrossRef]
  48. The VTK User Guide, Kitware, Inc. https://vtk.org/vtk-users-guide/ (last accessed on 02.11.2024).
  49. Robotino® View—Programming—Robotino®—Services—Festo Didactic (festo-didactic.com) (last accessed on 15.04.2022).
  50. Simulation—Robotino®—Services—Festo Didactic (festo-didactic.com) (last accessed on 15.04.2022).
  51. pugixml 1.11, https://pugixml.org (last accessed 15.11.2020).
  52. www. 10. 2020.
  53. www.drukermotoren.com for (GR42x25), (last accessed on 02.11.2024).
  54. https://en.wikipedia.org/w/index.php?title=Rose_(mathematics)&oldid=808546190 (last accessed on 02.11.2024).
  55. Brenan, K.E.; Campbell, S.L.; Petzold, L.R. Numerical Solution of Initial-Value Problems in Differential-Algebraic Equations; Classics in applied mathematics; Unabridged, corr. republ., New York, 1989.; SIAM: Philadelphia, Pa, 1996; ISBN 978-0-89871-353-4. [Google Scholar]
Figure 1. The components of real scene.
Figure 1. The components of real scene.
Preprints 146046 g001
Figure 2. The programming environment for visualization.
Figure 2. The programming environment for visualization.
Preprints 146046 g002
Figure 3. BondSim3DVisual application’s mainframe.
Figure 3. BondSim3DVisual application’s mainframe.
Preprints 146046 g003
Figure 4. Generated robot root: (a) Tree View; (b) XML Output.
Figure 4. Generated robot root: (a) Tree View; (b) XML Output.
Preprints 146046 g004
Figure 5. (a) The menus for inserting an element or attribute; (b) Dialog window for selection the element which will be inserted into the tree.
Figure 5. (a) The menus for inserting an element or attribute; (b) Dialog window for selection the element which will be inserted into the tree.
Preprints 146046 g005
Figure 6. (a) The coordinate frames associated with connected body links; (b) The XML segment describing the joint’s the next link transform.
Figure 6. (a) The coordinate frames associated with connected body links; (b) The XML segment describing the joint’s the next link transform.
Preprints 146046 g006
Figure 7. Virtual model of: (a) Robotino; (b) its constitutive parts.
Figure 7. Virtual model of: (a) Robotino; (b) its constitutive parts.
Preprints 146046 g007
Figure 8. Scheme of Robotino with world OXYZ and local Cxyz, Cixiyizi (i =1,2,3) coordinate frames.
Figure 8. Scheme of Robotino with world OXYZ and local Cxyz, Cixiyizi (i =1,2,3) coordinate frames.
Preprints 146046 g008
Figure 9. The structure of the Robotino’s 3D model: (a) the basic; (b) of the wheels.
Figure 9. The structure of the Robotino’s 3D model: (a) the basic; (b) of the wheels.
Preprints 146046 g009
Figure 10. The structure of: (a) Project Robotino; (b) Object’s Ground.
Figure 10. The structure of: (a) Project Robotino; (b) Object’s Ground.
Preprints 146046 g010
Figure 11. Generated Robotino project view: (a) Normal; (b) Sized-up.
Figure 11. Generated Robotino project view: (a) Normal; (b) Sized-up.
Preprints 146046 g011
Figure 12. Robotino’s base with the coordinate frames: Cxyz and Cixiyizi (i=1,2,3).
Figure 12. Robotino’s base with the coordinate frames: Cxyz and Cixiyizi (i=1,2,3).
Preprints 146046 g012
Figure 13. Bond Graph representation of direct and invers coordinate transform: (a) The basic level; (b) Its structure.
Figure 13. Bond Graph representation of direct and invers coordinate transform: (a) The basic level; (b) Its structure.
Preprints 146046 g013
Figure 14. The side view of a wheel.
Figure 14. The side view of a wheel.
Preprints 146046 g014
Figure 15. Rotation to linear motion transform: (a) World model; (b) Its internal model.
Figure 15. Rotation to linear motion transform: (a) World model; (b) Its internal model.
Preprints 146046 g015
Figure 16. Model of Roller: (a) The basic level; (b) Its structure; (c) Structure of LinRot.
Figure 16. Model of Roller: (a) The basic level; (b) Its structure; (c) Structure of LinRot.
Preprints 146046 g016
Figure 17. (a) Rotation dynamic of the wheel; (b) Its internal model; (c) Transformation of variables; (d) Rotational dynamics.
Figure 17. (a) Rotation dynamic of the wheel; (b) Its internal model; (c) Transformation of variables; (d) Rotational dynamics.
Preprints 146046 g017
Figure 18. The basic level Bond Graph model of the wheels.
Figure 18. The basic level Bond Graph model of the wheels.
Preprints 146046 g018
Figure 19. Structure of Chassis model.
Figure 19. Structure of Chassis model.
Preprints 146046 g019
Figure 20. Dynamics of the Chassis: (a) Structure of Dynamics model; (b) Structure of Transform.
Figure 20. Dynamics of the Chassis: (a) Structure of Dynamics model; (b) Structure of Transform.
Preprints 146046 g020
Figure 21. (a) Structure of Side rolling; (b) Structure of Translation dynamics.
Figure 21. (a) Structure of Side rolling; (b) Structure of Translation dynamics.
Preprints 146046 g021
Figure 24. Model of: (a) Ground; (b) vP1.
Figure 24. Model of: (a) Ground; (b) vP1.
Preprints 146046 g022
Figure 25. The basic model of Robotino device.
Figure 25. The basic model of Robotino device.
Preprints 146046 g023
Figure 22. Structure of the Driver 1 to Driver 3.
Figure 22. Structure of the Driver 1 to Driver 3.
Preprints 146046 g024
Figure 23. Robotino path: (a) In the form of a rose; (b) The direction of the motion; (c) Reference functions.
Figure 23. Robotino path: (a) In the form of a rose; (b) The direction of the motion; (c) Reference functions.
Preprints 146046 g025
Figure 26. Simulation results: (a) Path traversed; (b) Differences of XC and YC coordinates obtained with the virtual and dynamic models; (c) Differences of XC and YC coordinates obtained with dynamic model w.r.t. referent ones.
Figure 26. Simulation results: (a) Path traversed; (b) Differences of XC and YC coordinates obtained with the virtual and dynamic models; (c) Differences of XC and YC coordinates obtained with dynamic model w.r.t. referent ones.
Preprints 146046 g026
Figure 27. The Robotino in motion: (a) t = 0 s; (b) t = 5 s; (c) t = 15 s; (d) t = 25 s; (e) t = 30 s; (f) t =40 s.
Figure 27. The Robotino in motion: (a) t = 0 s; (b) t = 5 s; (c) t = 15 s; (d) t = 25 s; (e) t = 30 s; (f) t =40 s.
Preprints 146046 g027
Disclaimer/Publisher’s Note: The statements, opinions and data contained in all publications are solely those of the individual author(s) and contributor(s) and not of MDPI and/or the editor(s). MDPI and/or the editor(s) disclaim responsibility for any injury to people or property resulting from any ideas, methods, instructions or products referred to in the content.
Copyright: This open access article is published under a Creative Commons CC BY 4.0 license, which permit the free download, distribution, and reuse, provided that the author and preprint are cited in any reuse.
Prerpints.org logo

Preprints.org is a free preprint server supported by MDPI in Basel, Switzerland.

Subscribe

Disclaimer

Terms of Use

Privacy Policy

Privacy Settings

© 2025 MDPI (Basel, Switzerland) unless otherwise stated