Open access peer-reviewed chapter

3D Printed Walking Robot Based on a Minimalist Approach

By Ivan Chavdarov

Submitted: September 28th 2020Reviewed: March 19th 2021Published: April 27th 2021

DOI: 10.5772/intechopen.97335

Downloaded: 132

Abstract

3D printing technology enables the design and testing of highly complex robot prototypes and joints. Here an original idea for a walking robot is presented, based on a minimalist approach. Although the robot has a simple mechanical structure using only 2 motors, it can walk, turn around its central axis and climb high obstacles. The simple design ensures higher reliability in terms of mechanics and control. A design principle is suggested, which minimizes power consumption during climbing. The kinematics and static conditions for overcoming an obstacle are analyzed and the movements of the robot are simulated. A 3D-printed prototype of the robot is created. It is used for experiments to test the efficiency of different materials and shapes for the robot’s feet when climbing. The results are ranked and compared with the efficiency of other walking robots.

Keywords

  • Walking robot
  • Robot design
  • Overcoming an obstacle
  • 3D print
  • Minimalist approach

1. Introduction

Walking robots are designed to move in an environment with multiple and diverse obstacles [1]. For that reason they need to do complex coordinated motions, which require a complex mechanical structure and advanced control system with multiple sensors [2]. Mobile robots, created to conduct rescue operations or inspection tasks in an urban environment, often face problems when they need to climb stairs [3]. As opposed to wheel robots, walking robots have a more complex design, more motors and are slower [1, 3]. Often, they have more degrees of freedom and use special algorithms. The advantage is that the robot can do complex movements [1, 4]. However, this comes at the price of more components in the design. Hence, the disadvantages:

  • the complex structure is expensive

  • maintenance is difficult

  • it is more difficult to be controlled

  • the probability that a fault occurs increases with the number of components

  • the higher number of motors means more energy is consumed and the total mass of the robot increases.

The following questions arise: What would be the simplest walking robot design that can effectively overcome obstacles? What would be the minimal number of degrees of freedom for such a robot? Can a simple control system work when overcoming different types of obstacles? How can 3D printing technology bring additional advantages in the development of robots, based on minimalist approach?

The stability of a walking robot is a major issue, because it defines the conditions under which it will not lose balance. There are two types of stability - static and dynamic. Static walking means that the robot can be stopped at any moment during the gait cycle without losing balance. Dynamic walking means that additional internal movements and algorithms are needed to sustain balance.

Two-legged robots usually have dynamic stability and a relatively large number of degrees of freedom [5, 6, 7]. They can go around or climb obstacles, but need a complex control system and consume a lot of energy. Their reliability is lower, due to the large number of electrical and mechanical components. There are experimental two-legged robots which can sustain static balance.

Alternative design solutions with a minimum number of mechanical elements [8] and nature-inspired robots are being sought [9]. In [10] is presented an ultra-light, inexpensive two-legged robot “SLIDER” with a design of the leg without a knee. This non-anthropomorphic design with straight legs reduces the weight of the legs significantly, while maintaining the same functionality as anthropomorphic legs. The robot has 8 degrees of freedom, four for each leg.

The four-legged 3D printed robot presented in [9] is 3D printed with PLA (polylactic acid). It has a simple design and can walk without any form of software or controller. The robot consists of a rectangular body and four legs, each with a degree of freedom that rotates and raises the leg. At the end of each of the legs is mounted a rubber foot to improve traction. Although there are only 4 degrees of freedom, the robot realizes a gait which is similar to the gaits used by walking primates and cattle (grazing animals).

In [8] is presented a robot with one motor and several clutches. By sequential action of the clutches, the proposed robot can rotate in different directions and can walk. It can be combined with other identical modules to build more complex reconfigurable robots.

Walking mechanisms that do not need motors are studied [11, 12]. However, their passive movement is realized only on slopes and is difficult to control.

3D printing technology is used to create and test the qualities of prototypes of walking robots [9, 10, 13, 14]. Conventional materials such as PLA [9] and ABS (Acrylonitrile Butadiene Styrene) [13] are most commonly used. In [14] a methodology for 3D printing of hermetic soft drives with built-in air couplings is proposed. Two materials are used, hard and flexible, and printing is done with a printer with two extruders. Additive manufacturing is evolving and finds more and more applications in robotics. In [15] the main focus is on developing a methodology for creating a 3D printed, low-budget robotic arm with six degrees of freedom that can be used with an external artificial intelligence system. In [16] is used a custom 3D printer and CAD model of a structure for a specialized device, which consists of two-layer micro actuators driven by hydrogels.

Maintaining stability when moving [17, 18] and overcoming obstacles [2, 19] are also important issues that have been studied in recent years.

For these reasons, here it will be discussed the design of a new 3D printed model of a walking robot, based on a minimalist approach [20, 21]. Mies van der Rohe’s motto “Less is more” reflects the approach to the robot’s design. Using only two motors, the robot can walk forward and backward, rotate 360 deg. around itself and overcome obstacles including climbing stairs.

Advertisement

2. Simple mechanical design

It is well known that a robot needs at least 6 degrees of freedom to reach any point in its workspace with any orientation. 3 for changing the position and 3 for realizing the random orientation. Since the walking robot moves on a surface, it can be concluded that 3 degrees of freedom are enough - X, Y axis and orientation. After all there are examples of mobile robots with two motors that achieve satisfactory results 1. A new simple design of a two-motored robot, called “Big Foot”, is suggested.

The robot’s body is made up of a round base {1} and a platform {2} in which all the main elements are located. The platform is mounted in the center of the circular base, and the two bodies can rotate relative to each other around the vertical axis R1 (see Figure 1). The movement around R1 is realized by means of a controlled motor {6}. The stator of this motor is fixed on the platform {2}, and the rotor is connected by means of a reducer to the base {1}. The motor {7} is located in the platform {2} and drives the shaft {8} by means of a gear mechanism. This shaft performs the second important rotation R2, which is perpendicular to R1. Two arms {3} are fixed to the shaft {8}, and two feet {4} are mounted at the ends of the arms. For proper walking, the feet {4} and the round base {1} need to move with a constant orientation with respect to each other. To achieve this, a gear mechanism {5} is used, which has a gear ratio of 1. It consists of 3 gears with the same module and number of teeth which are mounted in the arm {3} (Figur 1) The 3D printed model is powered by a rechargeable battery, and the control is carried out remotely via Bluetooth communication with a PC or a smartphone. Different variants of the control software are developed using sensors of different types. Video with the robots movements is available from: Video 1.

Figure 1.

Structure of the big foot robot and a picture of the 3D printed prototype.

The key elements for walking are the body {2}, arms {3} and feet {4}. This is the basic structure of the robot. While walking, the body and feet remain parallel Figure 2.

Figure 2.

The mechanism for maintaining a parallel movement between the body and the feet. a) Fixed body {2}. b) Fixed feet {4}.

Initially the body {2} is fixed (Figure 2a). The arm {3} is rotating and thanks to the gears z1, z2, z3 the feet are moving parallel to the fixed body before reaching the ground. Afterwards, the feet {4} are fixed (Figure 2b), the arm {3} is rotating and this time the body {2} is in motion, remaining parallel to the feet. The trajectories can be seen in the following videos: Video 2 and Video 3.

The trajectory of any edge point of gear z2 is interesting. The trajectory resembles a heart and is called the cardioid - a type of cycloid. It can be followed in the animation: Video 4.

The rotation mechanism is presented in Figure 3. Here the gear motor {6} works in a mode where the rotor is fixed and the body rotates as the stator operates. Thus the robot can rotate to any angle without any of the wires tangling up.

Figure 3.

Rotating mechanism.

Walking on flat terrain is accomplished by repeating between two phases:

Phase 1 – the two feet {4} are acting as supports. The motor {6} by means of the shaft {8} drives the arms {3}, which rotate around point A. The body of the robot is moved, where all its points move along the trajectories of arcs of a circle with radius RAB=AB¯=L3and angle φB=αmaxαmin. The body of the robot travels forward with one step S (Figure 4).

Figure 4.

Phase of support steps.

To simplify the theoretical model, it is assumed that the mass of all moving parts during this phase is concentrated at point C1. The coordinates of this point (mass center) are given in Figure 4. When designing the robot, it is aimed to keep the center of gravity C1 as low as possible. This increases the stability of the robot.

The horizontal movement of the robot’s body is evaluated by:

Xc1=XB=XA+L3cosα,E1

XA is the horizontal coordinate of point A with respect to a fixed coordinate system, and α = α(t) is the current angle of rotation of the unit {3} with length L3with respect to the horizon. The vertical displacement of point C1 is determined by:

Yc1=YBhc1=YA+L3sinαhc1.E2

Where YB is the vertical coordinate of point B, hc1 is the vertical distance to the center of mass at point C1. The height hc1 does not change during movement. The robot moves at low speed and therefore the inertial forces are not taken into account. The torques at points A and B are determined by:

MA1=L3cosα+dG1,E3
MB1=dG1,E4

G1 = m1gis the robot’s body weight, and gis the Earth’s gravitational acceleration.

After differentiating (1) and (2) is obtained the velocity of the robot:

Vx=ẊC1=α̇L3sinα=ωL3sinαVy=ẎC1=α̇L3cosα=ωL3cosαE5

Here ω is the angular velocity of the arms {3}. From (5) the magnitude and velocity of a point from the robot’s body can be determined. This phase ends when the round base {1} reaches the ground. Then the body stops moving and a second phase beggins.

Phase 2 - The robot body is stationary, the arms {3} rotate about an axis at point B, the feet {4} are moving. The mass of the moving parts is less than the mass of the robot’s body. It is assumed that it is concentrated at point B. During this phase, the robot does not move and therefore its speed is zero. The feet move progressively along a trajectory, which is an arc of a circle. The torques at points A and B are determined by:

MA2=0,E6
MB2=L3G2cosα,E7

G2 = m2gis the mass of the moving elements in this phase. The loading in the shafts is cyclic, with shaft A being more loaded (see formulas (3), (4), (6) and (7). During the transition from phase 1 to phase 2 and vice versa, shock loads occur in the construction of the robot, which are not taken into account.

Advertisement

3. Determining the basic dimensions

When walking on a relatively flat ground the robot switches between two phases where the contact area with the ground is large. Movement is balanced and reliable. In Figure 5 are presented the basic dimensions of the 3D printed prototype. Five lengths (L1-L5; Figure 3) and their proportions determine the qualities of the robot and its capability to walk and overcome obstacles.

Figure 5.

Basic dimensions of the 3D printed prototype.

Obviously, the larger the model, the higher the obstacles that it can overcome. Therefore, the height of the obstacle ho should be compared with the height—HRand the length—BRof the robot. Thus, different designs of one robot and even a variety of different robots can be objectively compared.

A dimensionless coefficient is suggested with the help of which the scale of a robot and an obstacle can be compared:

Kro=hoHRBR.E8

HR and BR are dimensions according to Figure 5. The coefficient usually assumes positive values less than one. Kro > 1 only for climbing and jumping robots.

In order for the robot to move, it is necessary for the body and its feet to reach the ground. This is only possible under certain conditions for the sizes L2, L3 and L4. The conditions are set by the inequalities:

L2L3+L4L4L2+L3E9

Dimensions L1and L5are important for increasing the robot’s stability, but their excessive increase reduces the maneuverability of the robot and increases its overall dimensions.

From Figure 6 can be determined the step S, at which the robot moves

Figure 6.

Scheme for determining the geometric parameters for walking on flat terrain.

S=2L32L2L42E10

Maximum lift height of the body hBmax

hBmax=L3L2+L4E11

Maximum lift height of the feet hSmax

hSmax=L2+L3L4E12

During the phase of support feet (phase 1) the arm is rotated at an angle φB:

φB=2artanS2L2L4E13

Accordingly, in phase 2, the arm {3} rotates at an angle φs=2πφB.

When attacking an obstacle with the robot’s body, the height of the obstacle h0 must be less than the maximum possible lifting of the robot body (h0<hBmax). When attacking with the feet {4} the maximum height of the obstacle h0 is determined in a similar way ℎo<ℎSmax.

After differentiating formula (10) with respect to L2 and knowing the values of lengths L3and L4, is obtained

dSdL2=2L2L4L32L22+2L4L2+L42,L32L22+2L4L2+L42>0E14

which shows that when L2 = L4, the function has an extreme, in this case it is a maximum (Figure 7).

Figure 7.

Graph of the function for changing the step S(L2).

In the specific example when the length of the link L2 = 17 [mm] the robot will move with maximum step S and as fast as possible under equal other conditions. In this case, the body and feet of the robot are raised to the same height hBmax = hSmax. The driving mechanisms and the battery are located in the body of the robot, therefore the displaced masses in the two phases differ significantly. From the point of view of energy saving, it is more profitable to lift the body less, but this in turn leads to a reduction in velocity of the robot. An approach is applied in which the potential energy in the two phases of movement on flat terrain is equated.

The energy needed to lift the body during phase 1 is:

Ep1=m1ghBmaxE15

The energy that the motor delivers in order to move the feet during phase 2 is:

Ep2=m2ghSmaxE16

The equalized energies are as follows

Ep1=Ep2m1hBmax=m2hSmaxE17

From (17) and geometrical considerations from Figure 6, the following system is obtained

m1hBmax=m2hSmaxhBmax+hSmax=2L3E18

From (18), the height at which the body is lifted when the maximum potential energies, for the two phases are equalized, is as follows

hBmax=2L3m2m1+m2E19

The weights of the 3D printed prototype are distributed in the two masses, respectively m1 = 245 [g] and m2 = 30 [g]. The maximum lifting height of the body hBmax = 12[mm] is obtained. At L3 = 55 [mm] all parameters of the prototype are determined. These proportions of the lengths of the links not only improve the loading of the links and improve the distribution of energy in the two phases of movement on flat terrain, but also have a positive effect on overcoming high obstacles.

Advertisement

4. Passive adaptation to obstacles

When overcoming obstacles with height hb < h0 < hS, there are two ways to attack the obstacle: with the body (the round base {1} Figure 1) or with the feet.

If the height of the obstacle h0 is greater than the maximum lift of the body hBmax, the robot cannot climb on it during phase 1. In practice, it turns out that the robot can adapt to the obstacle and climb it by attacking it with the feet. It does not need special sensors and control algorithms. This process is illustrated in Figure 8. The robot body (round base) collides with the vertical section of the obstacle. Then there is a sliding of the feet on the horizontal terrain and the body is sliding on the vertical obstacle, the arm {3} performs a planer movement. It can be determined the instantaneous center of velocities of the arm {3} by taking into account the motion of points A and B from it. With respect to the absolute coordinate system, the instantaneous center of velocities of the link AB has coordinates:

Figure 8.

Instantaneous velocity center and adaptive movements in case of collision between the robot’s body and the obstacle.

XQ=XBL3sinαYQ=L3cosαE20

In this situation, the instantaneous velocity center of the arm jumps from point A0to point Q1and starts to move along an arc of a circle (Figure 8). The circle has radius L3and center [−XB,0] and its equation excluding the angle α, is derived from (20):

XQ+XB2+YQ2=L32E21

The relative instantaneous velocity center with respect to the coordinate system [A0,X′,Y′], and connected to the arm AB, is defined by the system of equations

XQ=L3sin2αYQ=L3sinαcosαXQ=L32cos2α+1YQ=L32sin2αE22

The relative trajectory of the instantaneous velocity center is also an arc of a circle, and its equation is derived from (22) after excluding α:

XQL322+YQ2=L322E23

Trajectory (TMCa) is an arc from the red circle, which is described according to the absolute coordinate system OXY. Trajectory (TMCr) is an arc from the blue circle, which is described with respect to the relative coordinate system, connected with the moving arm AB. In this situation the arms perform a planar movement and the body and feet of the robot are moving along X and Y axes respectively. When the body touches the ground, the instantaneous velocity center switches again and jumps to point B1. The feet begin to rotate and attack the obstacle. Video of the described passive adaptation is available from Video 5.

Advertisement

5. Overcoming obstacles

From the reasoning made so far, it can be seen that depending on the height of the obstacle, it is possible to overcome it when attacking with the body or to adapt to it and attack it with the feet. If the height of the obstacle h0 is less than the maximum height reached by the feet hSmax, several scenarios are possible:

  • Overcoming the obstacle

  • Rolling over of the robot

  • Repeated sliding of the robot’s feet and body on the obstacle, during which it cannot climb.

Figure 9 illustrates 5 stages when climbing an obstacle which differ in the elements of contact between the robot, the obstacle and the terrain.

  1. The feet are in contact with the obstacle and the round base with the ground. Because of the rotation of the arm {3} sliding starts between the base and the ground or between the feet and the obstacle. At this stage, it is good to ensure good traction between the feet and the obstacle, which will allow the robot to pull itself towards it.

  2. The first stage ends when the feet are simultaneously in contact with both the obstacle and the terrain. The arm {3} rotates and moves the robot body. In this case, the feet are usually stationary, but for high obstacles, it is possible slipping to occur.

  3. The round base of the robot has reached the obstacle. Due to the movement of the arm {3} a situation is reached in which the base is in contact with the obstacle and the feet in contact with the ground. The robot performs a planer movement in which there is sliding of the feet, the base or both on the terrain and the obstacle.

  4. A configuration is reached in which the round base is in contact with both the terrain and the obstacle. The arms {3} rotate and they move the feet.

  5. The center of gravity of the robot changes, shifting towards the obstacle. Depending on the height of the obstacle, the shape and the materials of the base, the masses of the links and the feet, it is possible to rotate point C around the edge of the obstacle in order to overcome the obstacle.

Figure 9.

Five consecutive stages when climbing an obstacle.

These stages are described in detail in [20, 21], where simulations and results of various experiments are presented.

Advertisement

6. Results from experiments with the 3D printed model

Although the 3D printed model is only a prototype, it can be used for experiments and useful conclusions can be drawn. 3D printing enables us to easily create and adjust prototypes. Already known key advantages of this technology are:

  • Opportunity to create very complex external and internal areas

  • Opportunity to create components with different density and internal infill structure

  • Mixing multiple materials with different characteristics in the production of the same element (only with multi material printers).

Different versions of Big Foot were created. The first prototype used shafts with small diameters and with very small diameters and the transmission of torque is achieved by friction forces (Figure 10 above). This leads to higher tension on the joints in the shafts and they have a tendency to slip.

Figure 10.

Structural changes to big foot.

In the second prototype (Figure 10 below) some of the problems are solved. The feet shape is improved to secure better traction when overcoming obstacles. To avoid the shafts slipping, their diameter and contact surface is increased. A pin coupling is used (Figure 10, pos. 7), which is much more reliable, but leads to stress concentration. An innovative and patented coupling is successfully applied for the joint at point A, where the tension is highest [22] (Figure 10 pos. 8a). It combines reliability of the contour joints with low levels of stress concentration. This coupling has the advantage to fix the foot to the shaft with constant orientation, which is important for the proper functioning of the walking mechanism. The shape changes gradually from a reuleaux triangle to a circle. Such objects can be drawn using CAD products and can afterwards be 3D printed. The elements are held by a screw joint. To increase the max obstacle height, the shapes of the feet and the body’s base (Figure 10 pos. 9–10) are changed. The front jigged areas increase the traction and “pull” the robot, while the back edges are rounded which aids the “sliding”. As there is no limit for the complexity of the 3D printed feet, the components can resemble nature more closely.

Figure 11 shows an analogy between a walrus and Big Foot when climbing. The movements share many common characteristics. A comparison with a walrus was chosen because, like the animal, the robot pulls its heavy body on the obstacle with the help of sharp elements in its feet. Unlike perhaps all known animals, Big Foot can rotate its base and arms more than 360 degrees.

Figure 11.

3D printed feet with a complex shape, inspired by nature.

By increasing the width of the feet and the area of the round base the robot can walk on soft terrain (sand, snow, marsh) more easily.

Over 100 experiments for overcoming a higher obstacle were conducted. The same prototype was used, where only the feet {4} and the round base {1} were replaced. They were 3D printed and had different shapes. Two materials were used: PLA (Polylactic acid - most popular for 3D printing) and the flexible FIlaFLEX. The highest obstacle of 43 [mm] which was overcome can be seen here: Video 6; A detailed description of the results is available in [21]. After adding a “tail” to improve the balance of Big Foot, the maximum height was increased to 52 [mm]: Video 7; which corresponds to a coefficient Kro = 0.41, see formula 8.

Experiments to overcome an obstacle with a maximum height are made with various mobile robots. Based on literary sources, [21, 23] their respective Kro-indexes are defined and given in Table 1.

RobotHeight [mm]Length [mm]Maximum height of the obstacle [mm]КroindexNumber of motors
1. MSRox2908301000.202
2. NAO640160700.2225
3. Big Foot88182520.412
4.Transformable-wheeled leg robot1803901200.453
5. Micro rover – Spacecat [23]2002001000.58

Table 1.

Kroindices of different mobile robots.

Using information from the literature, the coefficient Kro can be determined for different mobile robots in Table 1. From the considered examples, it is seen that the highest value Kro = 0.41 is associated with the Transformable-wheeled leg robot [21]. The Big Foot robot proposed in the present study has higher values of the Kro index compared to the mobile robot [20] and the humanoid robot NAO. It can be noted that Big Foot manages to overcome this height by using only one of its two motors, while all other robots use several motors.

Advertisement

7. Conclusion

An original design of a 3D printed walking robot based on minimalistic approach is presented. This idea is intended to inspire the design of useful robot structures in the future.

It is considered a design principle and determination of the proportions of the links, based on minimizing the energy during walking.

The kinematics of the robot are analyzed and the key stages for walking on flat terrain and climbing obstacles are given.

The principles of movement are considered and the robot’s ability to adapt to obstacles due to the mechanical structure is highlighted. An algorithm is shown for calculating the change in the instantaneous velocity center of one link while the robot is adapting. This is a practical example of applying kinematic methods in robotics.

The main dependences for determining the torque loading of the motor when walking are given. The results of a study of the static conditions for overcoming an obstacle and experiments with a 3D printed model are discussed. Detailed studies and simulations are given in [20, 21]. 3D printing gives new opportunities to create unconventional structures, which can change the way robots are designed.

The results of experiments with different materials and shapes for the feet and the base of the robot are discussed. Thus is detected the maximum height of the obstacle that can be overcome. After additional design changes, this height is increased to 52 [mm]. An index Krois proposed which relates the robot’s dimensions with the height of the obstacle it can overcome.

The results for overcoming an obstacle by different types of robots are ranked using the proposed index.

It is not easy to give definitive answers to the questions posed in the introduction. However, from the analysis of the literature and the results of this study it can be noted that:

If the number of degrees of freedom is less than two, the walking robot cannot be controlled to bypass obstacles. The idea proposed in [8] is debatable whether it can be characterized by one degree of freedom as it also uses controllable couplings. In addition, it is possible to realize the movements only sequentially.

The presented 3D printed model shows that it is possible to overcome obstacles by using a simple control system without sensors and feedback.

3D printing technology facilitates the creation of prototypes of the developed robots. It allows easy realization of links with complex shapes and connections between them.

Advertisement

Acknowledgments

These research findings are supported by the National Scientific Research Fund, Project N ДН17/10-12.12.2017.

Advertisement

Thanks

The author is grateful to his colleagues and in particular to PhD Bozhidar Naidenov for their help in creating the prototype, conducting the experiments and supporting this work.

Advertisement

Other declarations

All graphics and video material used are created by the author.

Video materials

All video materials referenced in the text are available at: https://bit.ly/3xSfT0K.

© 2021 The Author(s). Licensee IntechOpen. This chapter is distributed under the terms of the Creative Commons Attribution 3.0 License, which permits unrestricted use, distribution, and reproduction in any medium, provided the original work is properly cited.

How to cite and reference

Link to this chapter Copy to clipboard

Cite this chapter Copy to clipboard

Ivan Chavdarov (April 27th 2021). 3D Printed Walking Robot Based on a Minimalist Approach, Collaborative and Humanoid Robots, Jesús Hamilton Ortiz and Ramana Kumar Vinjamuri, IntechOpen, DOI: 10.5772/intechopen.97335. Available from:

chapter statistics

132total chapter downloads

More statistics for editors and authors

Login to your personal dashboard for more detailed statistics on your publications.

Access personal reporting

Related Content

This Book

Next chapter

Communication and Interaction between Humanoid Robots and Humans

By Arbnor Pajaziti, Xhevahir Bajrami and Gazmend Pula

Related Book

First chapter

Wireless Communications Challenges to Flying Ad Hoc Networks (FANET)

By Miguel Itallo B. Azevedo, Carlos Coutinho, Eylon Martins Toda, Tassio Costa Carvalho and José Jailton

We are IntechOpen, the world's leading publisher of Open Access books. Built by scientists, for scientists. Our readership spans scientists, professors, researchers, librarians, and students, as well as business professionals. We share our knowledge and peer-reveiwed research papers with libraries, scientific and engineering societies, and also work with corporate R&D departments and government entities.

More About Us