Mechatronic design and development of a non-holonomic omnidirectional mobile robot for automation of primary production

This paper presents the mechatronic system design and development of a four-wheel drive/steer (4WD4S) mobile robot as a non-holonomic omnidirectional robot, MARIO—Mobile Autonomous Robot for Intelligent Operations. An innovative integrated application of CAD/CAM/CAE and RP has been employed for rapid development of the robot chassis and other mechanical parts by using different software tools. Most of the parts were designed by 3D CAD software which allows further CAE analysis including structural and motion analysis. To reduce the manufacturing time and cost, CAM and RP have been used to manufacture the main parts. These master parts are manufactured by workshop machining and 3D printing. Robot Operating System (ROS) alongside Gazebo simulator have been utilized for modelling, simulation, software development and visualization which enabled to develop the optimum embedded system to control the robot. With this integrated approach, a prototype of MARIO has been developed with a reasonably low manufacturing cost and time. *Corresponding author: Mostafa Sharifi, Department of Mechanical Engineering, University of Canterbury, Christchurch, Canterbury, New Zealand E-mail: mostafa.sharifi@pg.canterbury. ac.nz Reviewing editor: Wei Meng, Wuhan University of Technology, China Additional information is available at the end of the article


ABOUT THE AUTHORS
The Mechatronics and Robotics research group, department of mechanical engineering, University of Canterbury has developed some of the world's most unique mechatronics and robotic systems including various mobile robots, advanced sensors and actuators, state-of-art control prototyping systems including dSpace, MatLab, LabView, and ROS. The Laboratory offers students the chance to work on challenging mechatronics research areas including: 3D manufacturing of bio-scaffolds; Bio-instrumentation and control, connecting control systems to human physiology; Autonomous Guided Vehicle for agricultural production automation; Unmanned Arial Vehicle for environmental monitoring; Climbing robots for industrial inspection; Unmanned Underwater Robot for oceanographic exploration and monitoring; Machine vision applications; Novel actuators, smart/active structure.
The research reported in this paper is the first stage of a main research area in this group to apply autonomous mobile robots in the automation of agricultural tasks.

PUBLIC INTEREST STATEMENT
Application of mobile robots from indoor to outdoor usage in industries, agriculture and other sectors has been growing vastly. Primary production in some countries is one of the most important sectors. The success of these countries' economy which is mostly based on the success of primary production industries requires more productivity and efficiency. Employing automation and robotics is one of the best solutions. Small, lightweight mobile robots can cooperate and serve a team of workers in an agricultural environment. Such a robotic system achieves high productivity, lower cost and environmental impacts which will make the production and operations more sustainable. Developing a robotic system as a mobile base platform is required to augment and automate tasks in agriculture. The main aim of this research is to design and develop a mobile robotic prototype for such applications. The design process includes the mechanical, electronics and control system design.

Introduction
Application of mobile robots from indoor to outdoor usage in industries, agriculture and other sectors has been growing vastly. For such applications that are hazardous or hardly accessible, where it can be dangerous or difficult for humans, mobile robots can be the best choices to carry out the tasks. Primary production in New Zealand is one of the most important sectors. The success of New Zealand's economy which is mostly based on the success of primary production industries requires more productivity and efficiency (Bicknell, Ball, Cullen, & Bigsby, 1998). Employing automation and robotics is one of the best solutions.
Common agricultural task that can be automated are including harvesting, weeding, spraying, and transportation. Many research has been done in the development of mobile robotic systems to automate different agricultural tasks for greenhouses (Ko, Ryuh, Kim, Suprem, & Mahalik, 2015;Mehta, Burks, & Dixon, 2008), orchards (Bergerman et al., 2015;Shalal, Low, McCarthy, & Hancock, 2015) and agricultural fields (Noguchi, Will, Reid, & Zhang, 2004;Yang, Noguchi, & Takai, 2016). The existing trend within primary production is to use bigger, heavier vehicles to perform agricultural operations in the shortest possible time. An alternative is to let smaller, light weight mobile robots cooperate and serve a team of workers. Such a robotic system achieves high productivity, lower cost and lower soil compaction which will make the production and operations more sustainable. Therefore, developing a robotic system as a mobile base platform is required to augment and automate tasks in agriculture. The main aim of this research is to design and develop a mobile robotic prototype for such applications. The design process includes the mechanical, electronics and control system design.
Ground mobile robots can be categorized based on the locomotion system into legged, wheeled, tracked and hybrid robots (Bruzzone & Quaglia, 2012). These require different mechanical and control system designs. Wheeled and tracked mobile robots are the most used in field service application. Generally, the locomotion control system of mobile robots can be divided into differential drive system, car-like system and omnidirectional system (Tzafestas, 2013). The existing off-road locomotion systems for mobile robots are mostly based on conventional tracks or wheels with car like or differential drive steering systems. With the current off-road locomotion systems, navigation and mobility in narrow and restricted spaces such as orchards and farms rows would be difficult. An omnidirectional mobile robot could fulfil and provide these abilities very well. Respect to the orientation of the mobile robot, it is capable of moving in any direction which results in significant advantages over conventional platforms in terms of agile mobility.
There are different omnidirectional robot designs which use different wheels such as omni wheels (Blumrich, 1974), mecanum wheels (Ilon, 1975), independent steering wheels (Moore & Flann, 2000) and omnidirectional tracks (Tadakuma et al., 2008). Proper design requires a good understanding of the application and environment that robot should operate. Omni-wheeled or mecanum wheeled systems are limited to use for off-road applications by their design and passive rollers and they need a completely flat surface. The omnidirectional tracked crawler requires a complex mechanical design and is limited to provide a uniform omnidirectional motion. These limitations led us to design our omnidirectional mobile robot based on the idea of independent steering wheels. Wheeled mobile robots are the best known types of mobile robots for field service applications. Example of wheeled mobile robots for field service applications are Seekur, an omnidirectional all-terrain mobile robot developed by Adept Mobile Robotics (n.a); Hortibot, an agricultural robot developed in Institute of Agricultural Engineering at University of Aarhus (RN Jorgensen et al., 2007); Bonirob, an autonomous field robot developed by AMAZONE and Osnabrück University (Ruckelshausen et al., 2009). Our robot has been designed as a four wheels independent steering and driving robot. Such a design allows for the setup of multiple locomotion configurations including car-like steering, spot turn and omnidirectional steering system. This paper presents the mechatronic design and development of MARIO robot from hardware development including the integrated application of CAD/CAE/CAM and RP to electronics and control system design. This paper is organized as follows. In Section 2, mechanical design of the robot including design overview and 3D CAD modelling approach is presented. Section 3 describes the use of CAE for structural analysis of mechanical parts and motion analysis for torque validation of driving and steering mechanisms. In Section 4, RP using 3D printing approach for manufacturing the robot parts is briefly described. Section 5 presents the electronics and software system architecture for the control system of the robot and finally conclusions and future works are provided as the last stage.

Design overview
In regards to the robot mechanical design, several design criteria need to be considered such as body weight and size, manufacturability, manufacturing time and cost. In the initial design process of this robot, it was very important to have a modular system for easy assembly and further maintenance. As a four wheels independent steering/driving mobile robot, development of the wheel module was the most important part of the design. This module includes steering and driving mechanisms. Steering mechanism consists of a servo motor which provides steering torque, a set of gears, bearings and output shaft. All of these parts are placed in a housing. The driving mechanism consists of a DC motor, leg structure, a set of bevel gears, bearings and output shaft which drives the wheel. For this robot, four of these wheel modules attach to the chassis are required to form a 4WD4S mobile robot. This design approach allows initial analysis, tests and validation on one wheel module and Also decreases the production time and cost for all four wheel modules. The chassis structure is very simple and it is built from aluminium box section.

Body design using 3D CAD
All the robot parts have been designed using 3D CAD to enable for further CAM/CAE. For this aim, the educational version of SolidWorks 2014 software has been used to design the 3D model of the robot. SolidWorks is a CAD modelling and CAE software program which runs on Microsoft Windows. This design includes the parts which should be manufactured and also the other parts supplied from off the shelf. In designing the robot's body parts, assemblability with other parts such as motors and servos has been considered. Figure 1(a) shows the exploded view of a wheel module. The assembled wheel module is shown in Figure 1(b). This 3D design allows to study and analyse the mechanical interference between each part as joints and links. Figure 1(c) shows the final assembly of MARIO.

Structural analysis of wheel module
As mentioned earlier, to design and manufacture the wheel module some parts should be 3D printed. The servo housing part which includes all the steering mechanism parts is designed to be 3D printed using engineering plastics. This part is connected to the chassis and also holds the driving mechanism to provide steering. Thus, there would be mechanical stresses on this part caused by the applied loads and forces. To check and validate the structural safety of the 3D printed housing part, CAE analysis has been done using ANSYS 14.5. The finite element model of housing part is composed of 73,304 nodes and 41,965 elements. To run CAE analysis, it was assumed that the maximum applied load on this part is concentrated on the inside surface of servo housing part which holds the output shaft and the flanged bearing. The Applied force is considered 100 N which is a heavy force compare to the total weight of the robot which is about 10 kg. The engineering plastic material Ingeo PLA (Polylactic Acid) was used. Table 1 shows the mechanical properties of PLA.   Figure 2 shows the structural analysis for the housing part including the distribution of von Mises stress and the total deformation. The stress is concentrated on the top side edges of housing part which should be connected to the chassis. With the initial analysis, the maximum stress was 3.56 MPa. To reduce this stress, the design was modified by increasing the thickness of those edges. The resulting maximum stress was reduced to 1.9787 MPa which is shown in Figure 2(a). This modification decreased the maximum stress to 55% of the maximum stress achieved by initial design and test. Figure 2(b) shows the total deformation analysis. The maximum deformation is 0.015 mm which is completely negligible. This type of analysis has been done for other parts to improve the structural stiffness and safety of each part and the assembled robot.

Motion analysis for joint torque validation
Robot motion is provided by 8 joints which are driven by four servo motors for steering joints and four DC motors for driving joints. Torque calculation was done by hand calculation based on the robot weight and total payload. To validate these calculations, a motion analysis has been done using Gazebo Simulator. Gazebo is a robotic simulation tool which has the capability of accurate and efficient dynamical simulation of robots, sensors and objects in a 3D world. It generates realistic sensor feedback and has a robust physics engine to generate interactions between objects, robots and environment (Koenig & Howard, 2006). The 3D CAD design by Solidworks can be imported into Gazebo. This can be done by exporting 3D model as a URDF file and associated STL files. Unified Robot Description Format (URDF) is an XML file format to describe all kinematic and dynamic elements of a robot.
The kinematic chain of the robot generated by URDF file is shown in Figure 3(a). This robot has nine links and eight joints. In URDF terminology multiple links can be connected to one link by joints and defined parent and child links. Steering joints are defined as revolute joint while the driving joints are defined as continuous. This robot definition allows to use Gazebo for dynamic simulation. This robot has eight DOFs in total on robot local frame which provides three DOFs motion (V x , V y , and ω) in the world frame. Figure 3(b) shows the simulated robotic model in the Gazebo environment.

Figure 3. (a) Kinematic chain of MARIO, (b) Gazebo environment and the simulated robot.
As an example, a forward motion and steering are simulated to analyse the response of the driving and steering joints. For the forward motion, all four wheels are driven with the same speed. The test speed was 1 m/s and the steering angle was 90° for the duration of 1.5 s. These tests have been done separately. Figure 4 shows the resulting torque values for these analysis for one servo (Figure 4(a)) and one DC motor (Figure 4(b)). The rated torque for both DC motors and servos are 1 N.m. The acquired torque results are in the range of nominal torques for the servos and DC motors.

3D printing for rapid prototyping
As mentioned in earlier sections, in the design process of this robot it was aimed to develop a robot by considering modularity, manufacturability and assemblability. This will provide easy maintenance and design modification for future design development. Some of the parts including 3D printed parts were made using RP. 3D printing provides an easy solution for early stage prototyping to develop the required parts for the system by decreasing the manufacturing time, cost and inventory expenses. They can be latter on replaced by the parts with proper material for the final product. PLA material was chosen for 3D CAM of the servo housing part using 3D printer. 3D CAM and RP allow to rapidly fabricate these parts. Rostock Max 3D printer and Repetier Software were used for printing these parts. Figure 5 shows the 3D printed parts. The production cost was very low using this 3D printer (about 10 cent per gram). RP using a 3D printer enables to have an initial prototype of the part in a day. It also shows the small flaws and provides the flexibility required to make a trial and error process and adding improvements in the early stage of the design.

Embedded electronics and sensory system
The embedded electronics on this robot is combined of the high level and low level control systems. Low level control system is responsible for communication with the servos, DC motors, and wheel encoders. As a low level controller, Arduino Mega ADK microcontroller is used, due to its relative ease of use, large array of peripherals, wide internet support, and availability of libraries. High level control system includes a computer which runs Robot Operating System-ROS on Ubuntu 14.04 LTS. ROS is an open source robotic middleware which provides libraries and tools to help software developers produce robot programs. It provides hardware abstraction, device drivers, libraries, visualizers, message-passing, package management, and more (Quigley et al., 2009). Figure 6 shows the component diagram of MARIO including high and low level control systems, sensors and driving component.
Sensory data for localization is provided by wheel odometry from the wheel encoders, a nine DOFs Razor IMU and a Swiftnav Piksi RTK GPS unit as well. The IMU provides information about the relative rotation and acceleration of the robot body while the GPS provides absolute position information. A Laser scanning is used for obstacle detection and avoidance during navigation. Three control scenarios have been considered for operation of this robot including, teleoperation, semi-autonomous and fully autonomous control systems. Teleoperation control is done using a PS3 joystick. Figure 7 shows the final assembled prototype of MARIO.

Software system
Developing the software system includes modelling, simulation, and final implementation. Modelling and simulation enable software development, test and validation in a virtual environment. After successful development, software system can be transferred to the physical system. Simulation has been done using Gazebo simulator. Software is developed in ROS and it can be interfaced to the model in Gazebo by gazebo-ros-pkg package. This package provides necessary interfaces to simulate the robot in Gazebo and integrates with ROS using ROS messages, services, and dynamic reconfigure.
A kinematic-based controller was designed based on the kinematics of the system to drive the robot based on the desired input linear and angular velocities for three types of steering including, spot turn, crab steering, and four wheels coordinated steering. This controller controls the desired speed of each of the four driving DC motors and steering servos through inverse kinematics. Rotation and translation of the robot with respect to the world frame is produced as odometry through forward kinematics. The path trajectory control system including the kinematic model-based controller is shown in Figure 8. V d and ψ d are the desired velocity and steering angle of robot base produced by trajectory planner to drive the robot on a given path (x d , y d , and ψ d ). Kinematic model-based controller generates the required velocity and steering angles for the robot based on the desired values and speed feedback. Odometry information are fed back into the system by giving the current speed and angle (V, ψ) and pose of the robot in world frame (xCG, y CG, and ψ). The state estimation system includes an Extended Kalman Filter (EKF) to estimate the robot pose by fusing all the measurements from multiple sensors. For our system, relative displacement in form of X and Y positions in the world frame is provided by wheel odometry and GPS. Orientation information is provided by IMU in the form of absolute orientations (roll pith and yaw) and angular velocities. In a 2D navigation scenario, yaw and Z axis angular velocity are needed to provide orientation information for EKF. Trajectory planner as the main part of the navigation system is achieved by the 2D navigation stack provided by ROS. Navigation stack takes pose information of the robot from the  state estimation system and a goal pose from user input. It will generate a path from the current location of the robot to the goal location by its global planner, it then generates the safe velocity commands sent to the robot base. This system will drive the robot close to the generated path toward the goal point while avoiding obstacles.

Experimental results
The software has been successfully developed, tested and validated for the simulated model in Gazebo. Figure 9 shows MARIO operating in a typical vineyard in Gazebo simulator environment. Rviz is a 3D visualization tool for ROS to visualize the information from different input or output sources available on the system in the form of ROS messages or services. Through this visualization, monitoring and high level control would be possible to navigate the robot in a given map or world frame. Figure 10 shows Rviz and visualized MARIO travelling on a squared trajectory in the vineyard environment. The green line is a predefined square path generated by the global planner. The red dotted line is the real path travelled by the robot based on the state estimator system output. In this case, only one type of steering (four-wheel coordinated steering) as an example was considered. With all these available tools, robot software can be tested and validated. After validation, it can be implemented on the physical system for real task field operation.
To challenge the developed software and the performance of the control and state estimation, and navigation system on the physical robot, an off-road test was conducted to drive the robot on  an open field (Ilam Field, Ilam area, Christchurch, New Zealand) similar to a typical agricultural environment. Navigating MARIO in this open field provides a decent satellites GPS coverage to accurately localize the platform. MARIO was driven on a commanded rectangle path with the size of 25 m by 15 m. Real time sensory data from the IMU, wheel odometry, and the RTK GPS are fused by EKF from ROS robot_localization package to estimate the state of the robot in a 2D world/map frame. Figure 11 shows all the active ROS nodes in this process including the message topics between each node. As it can be seen, ekf_localization node receives and processes IMU data, GPS data, and wheel odometry data from the respected nodes. Ekf_localization node publishes filtered odometry (/odometry/filtered) message topic as the output of the state estimation system. Navigation system (move_ base node) recieves the filtered odometry from the ekf_localization and based on the desired trajectory, it publishes the recuired speed information (/base_ctrlr/cmd_vel) to the robot control node (mario_robot_control). Figure 12 shows the odometry output from ekf_localization for the travelled path visualized by Rviz. The blue graph represents the estimated state of the system for the travelled path and the green line is the reference trajectory for the commanded path.

Conclusion
In this paper, a comprehensive mechatronic design and development procedure of a non-holonomic omnidirectional mobile robot-MARIO has been presented. To achieve this, an integrated application of CAD/CAE/CAM has been performed. This allowed us to develop a mobile robot which meets the design requirements such as modularity, assemblability and manufacturability. By this integrated application, MARIO has been developed successfully with a relatively low cost and time. MARIO has a low weight chassis and parts with adequate stiffness which weighs 10 kg in total. After developing electronics, control and navigation system, it drives stably with the maximum speed of 0.9 m/s. Further research and study would be focused on developing an optimal path trajectory system, vision based localization for GPS-denied environment and navigation system for reliable operation in agricultural environment.