1 Introduction

The world population is steadily increasing, and more food supplies are needed. At the same time, increasing agricultural activity leads to the waste and exploitation of irrigation water, fertilizer and other agrochemical products, and impedes sustainability and profit of the farmers [1]. The urgent need to increase intensive food production while using less land and water in the next years will unavoidably have substantial social, economic, and environmental repercussions as agriculture practice now occupies the majority of the world’s territory. Therefore, it is crucial to find methods and technologies to reduce such costs by raising agricultural production and profits while simultaneously protecting the environment. [2].

The employment of new technologies and techniques in agricultural operations has captured the interest of the engineering research community among the many scientific and technical problems resulting from the pursuit of the Sustainable Development Goals (SDGs) agenda [3]. In fact, these technologies are suitable for the precision agriculture paradigm, which seeks to boost the long-term profitability of agricultural production by using specialised machines and equipment. Profitability and productivity as a result are increased, whereas usage of water, agrochemicals, and pollutants is minimised [4]. In particular, SDG2 - Zero Hunger, SDG6 - Clean Water and Sanitation, SDG12 - Responsible Consumption and Production, SDG13 - Climate Action, and SDG15 - Life on Land are addressed in the PA scenario.

Robots in agriculture appear to be a viable choice in the context of precision agriculture since they allow repeated labour to be completed without sacrificing precision throughout the working day [5, 6]. In robotics research, this kind of application is becoming more and more common, and a range of robots are already on the market [7]. The autonomous performance of such robots would enable continuous field management as well as increased productivity and efficiency since information about the environment can be gathered autonomously and the robot can then carry out its task accordingly [8].

Except for a few small-scale prototypes used only for monitoring, almost all robotic solutions for agriculture are focused on flat fields or fields devoid of significant steep and impervious terrain. Significant agricultural production areas in Italy are located in hilly or mountainous terrain, especially when orchards, olive groves, and vineyards are taken into account [9]. Due to the effects of climate change, which may compel people to relocate to higher zones in order to meet their needs for temperature and preserve product quality, this incidence may increase in the future [10]. Robotic platforms must therefore overcome and navigate a variety of difficulties. For instance, traction issues, wheel slippage, tight manoeuvring spaces, instabilities caused by uneven terrain and varying slopes, poor GPS signal reception, and the need for specialised awareness (location, terrain, environment) systems and architectures must be addressed. Additionally, tasks in steep terrain are completed by hand or with small and compact vehicles, putting the driver in danger [11]. With a mean incidence of more than 4 accidents per 100k working hours for the latter, overturning incidents are almost exclusively found in hilly or mountainous areas of Italy. Of these, field activities make up 68%. The use of autonomous and teleoperated systems could minimise or eliminate these risks. It is also crucial to bear in mind that orchard and vineyard activities frequently require repeated tasks and the physical, non-ergonomic transport of even substantial loads. This presents a potential issue that will need to be addressed quickly, along with the population’s ageing and the ensuing shortage of qualified workers.

As a solution to this problem, the authors developed the novel UGV Agri.Q (Fig. 1) [12,13,14]. The rover is specifically designed for use in vineyards where precision agriculture applications are being used. It can operate in an unstructured environment on uneven terrain and, if necessary, work in conjunction with drones. It is equipped with various tools and sensors to carry out particular tasks, such as field mapping and crop monitoring. It can also interact with the environment, for example by collecting soil, leaf, and grape samples, with the help of a redundant 7 DOF collaborative robot arm. Additionally, it has a 2 DOF photovoltaic (PV) panel that has the ability to self-orient to ensure a safe and consistently flat drone landing platform on steep incline or even to maximise the absorption of solar energy during the auto charging phase. Furthermore, the robot manipulation workspace can be dynamically adjusted to different tasks and scenarios since the robotic arm is fixed to such a orientable platform.

Fig. 1
figure 1

Agri.Q in a vineyard in Castagnito, part of the Roero historical region in the south of the Italian region Piedmont

This work reports the energy balance test done on the robot and proposes and in depth analysis of the traction sub-system of Agri.Q in order to develop a proper traction allocation strategy to improve navigation through hilly or mountain crops. Heavy and off-road vehicles operate in demanding and frequently harsh work situations. Such vehicles are equipped with enhanced traction solutions to help them deal with severe road conditions. Multiple driven axles, varying degrees of differential locking, and electronic traction control are all part of these systems, which enable the vehicle to handle harsher terrains.

In the next section, the robot Agri.Q is described focusing on its locomotion units and control architecture. In Sect. 3 some experimental tests about Agri.Q power consumption and production are carried out and discussed. Then in Sect. 4 a dynamic model of the robot is proposed where particular care has been given to the tyre contact forces and the transmission model. After that, in Sect. 5, the previously developed model is used to analyse how the robot behaves regarding its traction and handling behaviour.

2 Overview of the Agri.Q prototype

As anticipated before, Agri.Q is an articulated mobile robot composed of two modules, namely the front module F and the back moduleFootnote 1B. Each module mounts two driving units composed of two wheels (\(W_{\sim \sim B}\) is the rearmost, \(W_{\sim \sim F}\) is the one in the front) by means of a passive revolute joint in \(C_{\sim \sim }\). As a result, each module is an independent skid-steered part. The back module is connected to the front one through the yaw revolute joint \(J_\delta\), the articulation mechanism with a revolute joint in \(A_0\), and the roll revolute joint \(J_{\alpha _B}\). Above the central chassis P, two PV panels (not shown in the figure) are mounted in such a way that they can rotate about the roll revolute joint \(J_{\alpha _{Panel}}\).

Figure 2a depicts a schematic view of Agri.Q in a generic configuration. The driving units are free to rotate about the revolute joint in \(C_{\sim \sim }\) that links them to their module defining the rotation angle \(\Theta _{\sim \sim }\). This feature improves the transversely of rough terrain. The revolute joint \(J_{\alpha _B}\) guarantees better wheel-ground contact too: it enables a relative roll rotation \(\alpha _B\) between the rear module and the central chassis in order to accommodate ground irregularities (Fig. 2b). By combining these passive motions, it is possible to guarantee the contact of the wheels with the ground even on very rough terrain, allowing the robot load to be evenly distributed among its multiple contact points to avoid excessive soil compaction. The two motions also let the robot surpass or climb some obstacles.

Fig. 2
figure 2

Agri.Q functional schemes

Figure 2c illustrates the robot motions in the xy plane. Each module is rotated about the \({{\hat{{\textbf {z}}}}}_{{O}}\) axis of the heading angle \(\psi _\sim\). The joint \(J_\delta\), enables the relative yaw motion between the two modules, acting as a steering joint of the whole robot. Hence, it is possible to define the relative yaw angle (or steering angle) as \(\delta = \psi _F - \psi _B\).

The front module can be pitched by an angle \(\gamma\) by means of the lever mechanism composed of the lever \(BA_0E\) and the linear actuator DE. The same mechanism also imposes the pitch motion to the central chassis and the PV panels, as shown in Fig. 3. Such a joint is driven by a DC motor. By employing the joint \(J_{\alpha _{Panel}}\) to roll the PV panels of an angle \(\alpha _{Panel}\) about \({{\hat{{\textbf {x}}}}}_{{P}}\) (Fig. 4) together with the pitch motion \(\gamma\), it is possible to control the panels surface attitude. Hence, it is possible to achieve the two desired panels functions: they can be oriented to face the Sun to maximise the energy collection, but they can also be oriented to provide an always level landing surface for UGVs.

Fig. 3
figure 3

Functional diagram of Agri.Q PV panel pitch motion in relevant poses with respect to the nominal one. Top, a self-levelling PV surface in slight descends. Centre, a self-levelling landing surface in the maximum slope incline. Bottom, the maximum PV panels tilt angle to maximise Sun rays collection

Fig. 4
figure 4

Functional diagram of Agri.Q PV panels roll motion

To summarise, Agri.Q has two active joints and six passive joints. Namely, the active joints (excluding the locomotion units) are:

  • the mechanism with a pivot point in \(A_0\) that defines the pitch angle \(\gamma\) driven by the action of the linear actuator DE;

  • the panels roll joint \(J_{\alpha _{Panel}}\) actuated by a DC motor;

whereas the passive joints are:

  • the relative yaw joint \(J_\delta\);

  • the rear module roll joint \(J_{\alpha _{B}}\);

  • the four revolute joints in \(C_{\sim \sim }\) that enables the rotation \(\Theta _{\sim \sim }\) of the driving unit rocker;

2.1 Locomotion units

Agri.Q design has been influenced by its agricultural use, and as a result, an eight-wheel architecture with each pair supported by a rocker has been developed. As with a track system, this method allows the normal forces acting on the ground to be distributed over a larger contact surface. As a consequence, the vehicle is prevented from sinking or becoming stuck in soft ground, and soil compaction is reduced too. Nonetheless, the overall traction efficiency is comparable to that of a four-wheeled rover. Furthermore, the consequences of track slippage whereas turning, which can accentuate soil erosion and landslips on sloping soils exposed to wind and rain, are greatly reduced [15,16,17,18,19,20].

Fig. 5
figure 5

Rocker mechanism facing an obstacle

As another advantage, since the rocker can passively rotate about the module, it can act as a filter in response to the vibrations and oscillations imposed by the ground obstacles and irregularities. Figure 5a depicts how the locomotion unit can face an obstacle of height \(\Delta z_{W_{\sim \sim F}}\) and how such motion is reduced when transmitted to the module, i.e. the vertical displacement \(\Delta z_{C_{\sim \sim }}\) of the rocker passive joint, and hence of the entire vehicle, is reduced. Such behaviour is completely driven by the passive rocker geometry. By design, the rocker points \(W_{\sim \sim F}\), \(C_{\sim \sim }\), and \(W_{\sim \sim B}\) form an isosceles triangle where the distance \(\overline{W_{\sim \sim F}W_{\sim \sim B}}\) is the locomotion unit wheelbase \(i_x\), and its opposing angle \(\beta _W\) is chosen to be \(120^{\circ }\) as a compromise between robot height, wheelbase length, and wheel radius. Therefore, the length \(l_{rocker}\) is

$$\begin{aligned} l_{rocker} = \frac{i_x}{2\cos 30^\circ } = \frac{2i_x}{2\sqrt{3}} = i_x/\sqrt{3} \end{aligned}$$
(1)

while climbing an obstacle of height \(\Delta z_{W_{\sim \sim F}}\), the whole locomotion unit rotate of an angle \(\Theta _{\sim \sim }\) about the rear wheel centre \(W_{\sim \sim B}\). Hence

$$\begin{aligned} \Delta z_{W_{\sim \sim F}} = i_x \sin \Theta _{\sim \sim } \end{aligned}$$
(2)

and

$$\begin{aligned} \Delta z_{C_{\sim \sim }} = l_{rocker}\sin (\Theta _{\sim \sim } + \pi /6) - l_{rocker}\sin (\pi /6) \end{aligned}$$
(3)

by combining Eq.(1) with Eq.(3)

$$\begin{aligned} \Delta z_{C_{\sim \sim }} = \frac{\sqrt{3}i_x \sin \left( \Theta _{\sim \sim } + \frac{\pi }{6} \right) }{3} - \frac{\sqrt{3}i_x}{6} \end{aligned}$$
(4)

and then by substituting Eq.(2) in Eq.(4) it is possible to obtain the relation between the two vertical displacements

$$\begin{aligned} \Delta z_{C_{\sim \sim }} = i_x \left( \frac{\sqrt{3} \sin \left( \arcsin \left( \frac{\Delta z_{W_{\sim \sim F}}}{i_x}\right) + \frac{\pi }{6} \right) }{3} - \frac{\sqrt{3}}{6} \right) \end{aligned}$$
(5)

The relation between the two displacements is also shown in Fig. 5b, where the two quantities have been normalized about the locomotion unit wheelbase \(i_x\). As said before, the vertical displacement \(\Delta z_{C_{\sim \sim }}\) is notably reduced compared to the wheel motion. When the ratio \(\Delta z_{W_{\sim \sim F}}/i_x\) reaches the value of \(\sin (\pi /3)\), the rocker has rotated of \(60^{\circ }\), therefore the front wheel is exactly above the rear one.

Figure 6 goes into more detail about the functional design of the locomotion units. Each unit features two wheels, \(W_{\sim \sim F}\) and \(W_{\sim \sim B}\), of radius \(r_W\) connected to a rocker that can freely rotates about the passive joint \(C_{\sim \sim }\) that links the subsystem to the corresponding module. A gear-motor \(M_{\sim \sim }\), located within the module and co-axial with the joint \(C_{\sim \sim }\), drives a roller chain transmission that links a motor sprocket with radius \(r_{P1}\) with two wheel sprockets of radius \(r_{P2}\). A chain tensioner is fixed to the rocker to ensure enough chain tension. Consequently, the locomotion unit is defined by two transmission ratios that can be combined to define the transmission ratio of the whole subsystem. First, the gear-motor has its own transmission ratio \(\tau _{M\sim }\) that may be different for the modules but the same for the two sides of each module. Then, the chain drive defines a second transmission ratio \(\tau _{C\sim }\). Therefore, the transmission ratio of the whole locomotion unit \(\tau _{\sim }\) can be defined as follows

$$\begin{aligned} \tau _\sim = \tau _{M \sim } \tau _{C \sim } = \tau _{M \sim } \frac{r_{P2}}{r_{P1}} = \frac{\omega _{M \sim \sim }}{\omega _{P1 \sim \sim }}\frac{\omega _{P1 \sim \sim }}{\omega _{W \sim \sim \sim }} = \frac{\omega _{M \sim \sim }}{\omega _{W \sim \sim \sim }} \end{aligned}$$
(6)

where \(\omega _{M \sim \sim }\) and \(\omega _{W \sim \sim \sim }\) are the angular speed of the motor sprocket and the angular speed of the wheels.

Fig. 6
figure 6

Locomotion unit chain drive functional scheme

By design, the front and rear locomotion units are not equal. The employed motors are the same, but both the gearbox and the chain drive have different transmission ratios (Table 1). Moreover, the rear motors are wired in such a way that they can only spin in the same direction and at the same speed. On top of that, each rear wheel comes with a freewheel clutch that disconnects the wheel from the transmission when it rotates faster than the driveshaft or when it spins backwards. As a result, the rear module is not skid-steered, thus its motors could be activated only if the front module requires additional traction power (e.g., climbing a hard slope, facing an obstacle, or negotiating extremely tight curves) but not produce a yaw moment in the back. In all other cases, the rear wheels disengage from the locomotion unit transmission to avoid unnecessary power losses.

Table 1 Locomotion unit parameters

At last, a DC motor, NDP 120/522 made by Transtecno, with the following characteristics had been selected to drive each locomotion unit

  • Continuous duty cycle (defined as S1) nominal power \(P_{nom,S1} = 120\,\hbox {W}\)

  • Short time duty cycle (defined as S2) nominal power \(P_{nom,S2} = 160\,\hbox {W}\)

  • Continuous duty cycle (S1) nominal torque \(T_{nom,S1} = 0.38\,\hbox {N}\,\hbox {m}\)

  • Short time duty cycle (S2) nominal torque \(T_{nom,S2} = 0.55\,\hbox {N}\,\hbox {m}\)

  • Maximum torque \(T_{max} = 1.10\,\hbox {N}\,\hbox {m}\)

  • Continuous duty cycle (S1) nominal angular speed \(\omega _{nom,S1} = 315\,\hbox {rad}\,\hbox {s}^{-1}\)

  • Maximum angular speed \(\omega _{max}= 350\,\hbox {rad}\,\hbox {s}^{-1}\)

2.2 Control Architecture

In order to control the robot motion the user or the autonomous navigation system defines the reference longitudinal speed \(v_{F,ref}\) and the front module yaw rate reference value \({\dot{\psi }}_{F,ref}\). These variables are then combined in a mapping algorithm to compute the corresponding front traction motor reference angular velocity. Therefore, in order to let the robot motors follow the reference signals, a closed-loop velocity control architecture is defined. As shown at the top and bottom of Fig. 7, the front traction motors reference speed \(\omega _{M\sim \sim ,ref}\) is compared with the actual motor speed \(\omega _{M\sim \sim ,meas}\) measured by its quadrature encoder. The error, i.e., the difference between the reference value and the measured one, is then fed to a PID controller \(C_{M\sim \sim }\). By design, the controller generates a torque reference value \(T_{\sim \sim ,ref}\) required to compensate for the velocity error. After that, the \(\mu\)-controller generates a PWM signal whose duty-cycle is a linear function of the torque, then the PWM signal is conditioned to obtain an analog reference voltage \(V^T_{M\sim \sim ,ref}\) proportional to the reference torque. At last, this voltage is sent to the motor driver that acts as a closed-loop torque controller based on the reference value and the measured current. In simpler terms, the front traction motors are driven by a controller composed of an external velocity closed-loop and an internal torque closed-loop. The two front motor reference torque \(T_{MFL,ref}\) and \(T_{MFR,ref}\) are also sent to a block defined as Traction Allocation Control Strategy that is responsible of defining the rear traction motor reference torques \(T_{MBL,ref}\) and \(T_{MBR,ref}\) based on the front motor torques. The two torque signals are treated similarly to the front ones being conditioned to become a reference voltage \(V^T_{MB\sim ,ref}\) to driver the corresponding motor driver torque controller. The figure shows the most general architecture where the two rear motors could receive different references, yet, the actual implementation forces that the two motors receive always the same reference. Moreover, it is important that the rear motors are torque controlled, otherwise, it could be possible that interference between front and rear module controllers may occur if both of them are controlled with a velocity reference. By controlling the rear motors torque, they can adjust their speed to the one dictated by the front ones.

Fig. 7
figure 7

Traction allocation control block diagram

Traction allocation control is a rather novel method that may be applied to most over-actuated systems. In essence, a higher-level controller defines the generalised forces required to achieve the desired behaviour, then a dedicated low level controller, specific to the actual platform, produces such required generalised forces based on the available actuator. This approach allows the high level controller to be independent from the actual vehicle and thus to be reusable across other mobile platforms.

The most typical approach to traction allocation in vehicles with all-wheel-drive capabilities is to manage the locking of the vehicle differentials (either inter-wheel differentials or inter-axle differentials). By varying the differentials state between the open and locked configurations, it is possible to manage how the torque is distributed among axles and wheels. Specifically, torque is distributed to achieve a trade-off between steerability and traction by managing wheel slip employing different strategies, e.g., in [21,22,23] the front/back traction distribution is controlled to improve cornering. With the introduction of ABS and independently controlled brakes first [24,25,26], and later independent axle or wheel actuation [27, 28], traction control allocation strategies defined as torque vectoring were further developed to improve vehicle performance, in particular to enhance vehicle handling and prevent wheel slip. With the spread of electric vehicles, especially vehicles with independent wheel-motors, research about the topic has become even more popular [29,30,31,32,33]. As an example, Sforza et al. [34] reported in their review article several publications regarding various torque allocation strategies for different passenger car architectures.

While Agri.Q front traction motors are required to define both the longitudinal and lateral behaviour of the robot, the rear traction motors can be activated on demand to improve robot performance. Ideally, Agri.Q could behave similarly to an electric vehicle with four independent traction motors; however, the implemented electrical architecture dictates that the rear motors can only receive the same reference torque signal. This means that the back module cannot produce any rear yaw moment, but it can just push the front module. Even if this condition limits the potential of implementing a dedicated yaw motion controller, the simpler architecture allows implementing less complex yet functional traction allocation strategies. This means that in order to steer the robot, the front module must impose and maintain a \(\delta\) steering angle by applying different torques to its traction motors in a similar fashion of differential-steered vehicles. At the same time, however, the front module also produces some or all of the propulsive force depending on how the rear motors are used. Alternatively, the robot can be seen as a car-like vehicle with front steering and traction on all axles where, however, the \(\delta\) steering angle is not implemented directly but managed indirectly by the rotation of the front module relative to the rear module. Therefore, it is interesting to develop a traction allocation strategy that allows distributing the propulsive effort (i.e., the forces required for the longitudinal motion) between the two modules given the constraint that only the front module is able to steer the whole robot.

As a first approach, it has been implemented a traction allocation strategy that set a front-back wheel torque distribution based on the value of a traction allocation ratio \(k_{TA}\) defined as

$$\begin{aligned} k_{TA} = \frac{\overline{T_{WF}}}{\overline{T_{WF}} + \overline{T_{WB}}} \end{aligned}$$
(7)

where \(\overline{T_{W\sim }}\) is the average torque of all wheels part of the module \(\sim\)

$$\begin{aligned} \overline{T_{W\sim }} = \frac{T_{W\sim LF}+T_{W\sim LB}+T_{W\sim RF}+T_{W\sim RB}}{4} \end{aligned}$$
(8)

When the traction allocation ratio \(k_{TA}\) is 1 then only the front motors are used, when it is 0.5 the torque is equally distributed between the front and back wheels, while \(k_{TA} = 0\) only the rear module is powered. However, two important notes must be made. First, the distribution ratio does not consider any longitudinal or lateral load transfer; thus, the ratio is theoretically correct only in steady state. Nevertheless, its value is still considered valid during transients. Second, when \(k_{TA} = 0\), Agri.Q can be seen as a car-like vehicle where the rear motors are responsible for the longitudinal characteristic whereas the front motors are only dedicated to steering (the average front torque is zero). Although this is an interesting behaviour, it is not considered for the first integration of a traction allocation control for many reasons. For example, the free-wheel mechanism in the rear locomotion units does not allow them to go in reverse without the intervention of the front motors. Furthermore, the mass distribution and the transmission ratio clearly favour a vehicle that can exert most of its tractive effort at the front.

Considering that the torques of the front motors are defined by the desired longitudinal velocity \(v_{F,ref}\) and the desired yaw rate \({\dot{\psi }}_{F,ref}\), the contribution of the rear motors can be calculated if a value of \(k_{TA}\) is set.

$$\begin{aligned} \overline{T_{WB}} = \frac{1-k_{TA}}{k_{TA}}\overline{T_{WF}} \end{aligned}$$
(9)

then, since all traction motor control procedures are done at the motor level, it becomes

$$\begin{aligned} \overline{T_{MB}} = \frac{\tau _F}{\tau _B}\frac{1-k_{TA}}{k_{TA}}\overline{T_{MF}} \end{aligned}$$
(10)

where \(\overline{T_{M\sim }}\) is the mean traction motors torque of the module \(\sim\). Finally, considering that the rear motors are set up in such a way that they exert the same torque, the average torque corresponds to the torque of one of the two motors, therefore

$$\begin{aligned} T_{MBL} = T_{MBR} = \overline{T_{MB}} = \frac{\tau _F}{\tau _B}\frac{1-k_{TA}}{k_{TA}}\overline{T_{MF}} \end{aligned}$$
(11)

By substituting to \(T_{MB\sim }\) and \(\overline{T_{MF}}\) the same value in Eq. 11, it is possible to compute a significant value of \(k_{TA}\), that is \(k^*_{TA} = 0.62\). With this particular value of distribution ratio, the traction motor effort is equally distributed among front and back, or, in other terms, the rear motor traction torque is equal to the average of the front motor torques. This particular condition is interesting because with this distribution ratio it is possible to saturate all traction motors at the same time drastically affecting the robot performance. However, \(\overline{T_{MF}}\) saturates only if both front motors are saturated, thus this event generally can occur only when going straight on a very steep slope (it also defines the maximum inclination that can be climbed). It is less frequent that all motors saturate at the same time while turning because when the front motor at the outer side of the turn saturates, the front motor on the other side drops its torque to keep turning at the same yaw rate, thus the front torque average drops too and consequently the rear motors follow. However, on some occasions (e.g., during extreme manoeuvres), the timing of the torque drops may be too slow to avoid sequential saturation of the motors.

3 Agri.Q energy balance tests

Due to its nature, it is of particular interest to evaluate the energy expenditure of Agri.Q required to perform its activities and how well the PV panels can contribute to enhance its autonomy. Therefore, this section summarises and comments the experimental results collected in [12, 14] about Agri.Q power flows and energy balance.

Agri.Q mounts two custom power sensors that monitor power flows from the PV panels to the battery and from the battery to the rest of the robot. Moreover, the traction motor drivers provide a measure of the current adsorbed by each traction motor, thus, by computing the corresponding torque and measuring the angular speed, it is possible to compute also the power required by the traction sub-system.

To assess Agri.Q power balance in various scenarios, a total of 8 tests were done. In the first test, the robot was left idle in an open field for around 5 min with its PV panels parallel to the ground, recharging itself. The PV panels were angled in the second test scenario to maximize solar energy gathering when the system was still idle. The sky was clear and no shadow was created on the solar panel for both of these experiments demonstrating two alternative approaches to the robot recharging technique. In the remaining tests, Agri.Q was in motion with its PV panels held parallel to the ground and the sun exposition was not optimised. In the first two tests, it travelled along a straight path on a paved road for approximately \(300\,\hbox {m}\) using only its front locomotion units (run 1) or all its traction motors (run 2). The robot then drove down a short straight section on a grassy field, first activating only its front motors (run 3) and then in AWD mode (run 4). To complete the tests, Agri.Q was programmed to perform circular trajectories in AWD mode on a paved surface (run 5) and on grass (run 6). All runs in AWD mode were performed with a distribution ratio of \(k_{TA} = 0.62\). All tests were carried out on 12 \(\hbox {May}^{th}\) 2021 in Torino, Italy.

Figure 8 shows the data provided by Solcast [35] in terms of reference solar power incident on the PV panels during the whole day and the two time frames when the tests were performed, where “Idle Tests” indicates the two done when Agri.Q is stationary, while the “Navigation Tests” are the runs from 1 to 6.

Fig. 8
figure 8

Daily nominal solar power incident on the panels surface on May 12th 2021 in Torino, Italy, and test time frames

The detail of the two idle tests while Agri.Q was static and the battery was recharging is shown in Figure,9. First, Agri.Q was positioned idle in a flat area with good solar exposure and no shadows casting on it. Its PV panels were kept parallel to the ground while recharging for about 5 min. After that, the PV panels were manually orientated perpendicular to the sun (Zenith = \(29^{\circ }\), Azimuth = \(151^{\circ }\)) manually and left idle for 5 min. As expected, in a head-to-head comparison, Agri.Q generates roughly 9.8% more power from the sun exposure when the panels are angled to optimize incident solar irradiance than when the panels are kept horizontal. Furthermore, the generated power is lower in both situations than the projected nominal trend, but the differences are relatively small: the horizontal panels produce 19% less power than the estimated power, while the oriented panels generate 13% less power. Part of this small variation is because Solcast data are collected from satellites and, therefore, do not exactly represent the conditions at the test spot. Also, PV panels attitude was manually set, thus it is possible that the actual PV panels inclination was slightly off from the optimal orientation. In addition, sensor noise and transient variations in lighting conditions are to blame for the occasional peaks in the collected data.

Fig. 9
figure 9

Collected PV power while idle in different configurations

Likewise, Fig. 10 represents how the panels behave whenever the robot is moving but not actively attempting to recharge. Consequently, in all subsequent test runs, the PV panels were held parallel to the ground and Agri.Q was driven independently of the sun exposure, trying to replicate plausible manoeuvres. Because the first two runs were done in partial or complete shade, the average resultant collected power is about \(150\,\hbox {W}\) noticeably lower than in the two prior scenarios with full sun exposure (about 230 - \(250\,\hbox {W}\)). In some occasions, when driven in areas shadowed by surrounding buildings, the collected power dropped at \(0\,\hbox {W}\). Instead, Runs 3 and 4 took place in an open grass field with direct sun exposure; thus, the gathered power is similar to that of the horizontal panel when idling. In particular, in run 3 it is possible to see an initial transition from a completed shaded area (corresponding to the initial low PV power) to the open field, where the PV panel always generated at least \(200\,\hbox {W}\). Similarly, run 4 started on the open field and Agri.Q was able to collect significant power, then it transitioned to a shaded area and the PV power dropped accordingly. As the latter two tests were conducted in regions overshadowed by nearby structures, the amount of solar energy captured was nearly zero. In these two runs, and while overshadowed in the other runs, PV power was mainly due to reflected light and not due to direct incident solar exposure, therefore the power that the robot could generate was always significantly lower than the cases when sunrays directly shine on the panel. Also, as expected, any of these runs could match the power collected by PV panel while properly oriented to be perpendicular to the Sun.

Fig. 10
figure 10

Collected PV power during the navigation tests. Run 1: FWD on a paved surface; Run 2: AWD on a paved surface; Run 3: FWD on a flat grass field; Run 4: AWD on a flat grass field; Run 5: AWD circular trajectory on a paved surface; Run 6: AWD circular trajectory on a flat grass field

To better assess the autonomy of the Agri.Q robot, the power required by the robot to complete its tasks was compared with the solar power gathered by its PV panels. This comparison is depicted in Fig. 11 for the two tests done with the stationary robot. Agri.Q used roughly \(74\,\hbox {W}\) of power to run its electronics when idle, with the single board computer, the microcontroller, and the motor drivers being the most energy-intensive components. With both horizontal and angled panels, the collected PV power is substantially higher than the idle one. The average collected power with the PV panels parallel to the ground was approximately three times higher than the idle power, whereas the oriented PV panels generated on average 3.3 times more power than required. Consequently, it is clear that the robot can effectively recharge its battery with decent sun exposure while idling.

Fig. 11
figure 11

Idling Agri.Q power balance

Solar exposure is not optimal when the robot is moving (runs 1–6); therefore, solar power was never enough to recharge the robot, but it can significantly minimise battery drain, as illustrated in Fig. 12. For example, the power required to drive down a straight path on a paved road with only the front motors (run 1 in Fig. 12) was nearly identical to the power generated by the panels during the same test run, even if they were partially or totally in shadow in some occasion (i.e., when the PV power is zero). The results of Run 2 simply indicate that increasing the necessary power by activating all locomotion units increases the required power. However, the proposed strategy, whereby rear-wheel-drive power is a function of front-wheel drive power, results in a minimal increase in adsorbed power since little effort is required to negotiate a straight paved path. Although Runs 3 and 4 had better solar exposure, the power required to negotiate the grass field was also higher. Because the panels were shadowed for the final two tests (runs 5 and 6), the data concerning the power balance comparison are meaningless. However, the power necessary to guide the robot on a paved surface is roughly comparable to driving on a straight path on grass, and the power required to follow a circular course on grass is considerably more. In general, a well-known behaviour of this type of robot architecture is seen, which is vulnerable to severe lateral wheel slippage when following curved paths.

Fig. 12
figure 12

Navigation tests power balance. Run 1: FWD on a paved surface; Run 2: AWD on a paved surface; Run 3: FWD on a flat grass field; Run 4: AWD on a flat grass field; Run 5: AWD circular trajectory on a paved surface; Run 6: AWD circular trajectory on a flat grass field

Although the previously reported tests lasted relatively short time, it is possible to roughly estimate how long Agri.Q could work before draining its battery. On average, on flat ground, Agri.Q requires about 300 \(\hbox {W}\), thus, considering its \(56\,\hbox {A}\,\hbox {h}\) battery with its nominal voltage of \(25.2\,\hbox {V}\), it can be estimated that Agri.Q could last approximately 4.7 h without using PV panels to reduce battery drain. Considering instead the case when the PV panels are active is less straightforward since the PV collected power is very variable throughout the day; however, it can be estimated that the PV panels could almost double the robot autonomy, reaching about 9 h of activities.

The data obtained show that on a sunny day with a clear sky, Agri.Q can sustain itself with a well-planned schedule of operations. The panels can replenish the battery if the robot is left inactive with adequate sun exposure. The recharging rate is improved even further by optimizing the solar panels orientation to enhance the gathering of direct solar irradiation. Although the PV panels are insufficient to completely balance the needed power while the robot moves, they contribute significantly to reducing battery drain, even if the sun is not actively tracked. As a result, by carefully planning Agri.Q tasks in a day, the robot endurance may be greatly increased. The panels orientation, for example, might be continually changed to maximize solar energy gathering in line with its activity. Furthermore, the time near the solar irradiance peak might be used to undertake an optimal recharging phase while Agri.Q is idle. Further gains might be made by reducing the power usage of the robot and partially redesigning its electrical architecture. Some components may be replaced with low-power equivalents, components could be put into power-saving mode when idle, or the power distribution system might be modified to minimise inefficiency and heat losses, for example.

4 Agri.Q modelling

To better comprehend how Agri.Q or robots with a similar architecture behave it is convenient to develop a dynamic model to investigate some aspects of its locomotion units and the traction allocation strategy. Therefore, previous research focused on developing dynamic models of increasing complexity with the goal of understanding the actual behaviour of robots with such an architecture. In [36] it has been proposed a planar dynamic model of an articulated wheeled mobile robot with wheels slippage. The system dynamic equations were derived using the Newton-Euler technique, and a very basic ground-wheel contact force model was built to reflect wheel dynamics. The model parameters that guide the system’s longitudinal and lateral dynamics were estimated by experimental identification done on a small articulated robot. In [37] a more sophisticated dynamic 3D model was developed with the intent of better characterising contact forces. In addition, the paper reported an experimental campaign to identify the Agri.Q parameters required to model it.

To address the limitation of the latter dynamic models, for example, among the others, the simplification of the small roll and pitch rotations and the neglected rotation of the rockers about their passive pivot, a multibody model of Agri.Q has been created employing ADAMS by MSC, a modelling and simulation software for multibody systems. The model is based on the Agri.Q available CAD, where all joints and constraints have been defined accordingly. By doing so, the simulation software can easily handle the previously neglected phenomena. Another improvement from the previous analytic model is the modelling of realistic locomotion units, in particular, how the motor drivers handle current saturation. This allows for more realistic simulations since Agri.Q motors tend to saturate during tight turns, as it is shown later. All model parameters are those that were used and experimentally identified in [37].

4.1 Tyre contact forces

In modelling the dynamics of wheeled vehicles, the contact forces caused by the wheel-ground interaction are crucial. In most studies on wheel slip and skid, Pacejka’s Magic Formula [38] is employed to represent such forces. The Magic Formula tyre model is an experimental model whose parameters are identified experimentally. Unfortunately, identifying the required experimental coefficients may be challenging due to the nature of the actual tests required to obtain them and their number. Although in the automotive field there are some datasets available for some generic tyres, data on bicycle tyres, like the ones mounted on Agri.Q, are scarce. Furthermore, among the few experimental studies on bicycle tyre characterisation, the longitudinal behaviour of the tyre is completely neglected, and the assumption made by Maier et al. in [39] of using the dataset of a 120/70 ZR17 motorbike tyre to represent the longitudinal behaviour is shared among most studies. Dressel and Rahman [40] and Doria et al. [41] are the two works in which most of the tyres were characterised on asphalt in terms of the effects of side slip and camber angle. Both studies found quite similar side-slip coefficients, while the camber angle ones differ a bit. As said before, for the longitudinal characteristics, the hypothesis of using motorbike tyre data is adopted, like in other works. More recently, Dressel and Sadauckas [42] conducted a characterisation of four modern mountain bike tyres studying the effect of side slip, camber, void ratio of the tyre knobs, and tyre pressure.

In the following, a simpler, yet effective, custom contact model is described. Regardless of its simplicity compared to Pacejka’s Magic Formula, the proposed tyre-ground contact model takes into account the following phenomena:

  • the longitudinal force imposed on the ground by the tyre as a result of wheel rotation. In particular, this force component is proportional to the tyre-ground relative velocity at the contact area centre;

  • the tyre lateral force proportional to its lateral velocity; this phenomenon is particularly significant for Agri.Q and other articulated robots with similar architecture;

  • the vertical elastic force proportional to the tyre vertical deformation;

  • A torque opposed to the rotation direction is produced by a rolling resistance described as a nonsymmetric distribution of pressure inside the contact region; this phenomenon is formalised as a displacement in the longitudinal direction of the forces application point.

Fig. 13
figure 13

Tyre-ground contact model

Referring to Fig. 13, the considered force components are computed as

$$\begin{aligned} {^{\{\sim \}}{\textbf{F}}_\star } = \begin{bmatrix} F_{l,\star } \\ F_{t,\star } \\ F_{n,\star } \end{bmatrix} =\begin{bmatrix} k_l \left( r_W \omega _\star - {\dot{p}}_{x,\star } \right) \\ -k_t {\dot{p}}_{y,\star } \\ k_n \left( r_W - r_\star \right) \end{bmatrix} \end{aligned}$$
(12)

where

  • the subscript \(\star\) identifies each wheel of the articulated robot equivalently to the previously introduced subscript \(W\sim \sim \sim\), specifying which module of the robot (front and back, F and B), which side of the module (right and left, R and L), and which wheel within the rocker (front and back, F and B);

  • \(k_n\), \(k_t\) and \(k_l\) are the vertical, transversal and longitudinal tyre stiffness respectively; such parameters must be identified and strictly depend on the contact condition;

  • \(r_\star\) is the actual wheel radius, depending on the load applied on the \(\star\) wheel;

  • \({\dot{p}}_{x,\star }\) and \({\dot{p}}_{y,\star }\) are the longitudinal and transversal velocity components; Despite the fact that their values are dependent on wheel attitude, they were assumed to be identical to those of the wheel connection point to the rocker (i.e., the wheel hub), which is a reasonable assumption for small roll angles \(\alpha _\sim\);

  • \(\omega _\star\) is the wheel angular rate; such value is directly related to the respective motor velocity \(\omega _{M \sim \sim }\) and, later on, it is described as a function of the locomotion unit transmission.

Given the importance of tyre-ground contact in motion dynamics, the model was given a contact force saturation effect analogous to the Coulomb classic friction model. In particular, considering the force component of each wheel lying on the ground plane \({F_{h,\star }=\sqrt{F_{l,\star }+F_{t,\star }}}\), the forces exerted on the wheel-ground contact were changed as follows

$$\begin{aligned} F_{h,\star } > \mu _s F_{n,\star } \Rightarrow \left\{ \begin{array}{l} F_{l,\star }^* = \mu _d F_{n,\star } \frac{F_{l,\star }}{F_{h,\star }} \\ F_{t,\star }^* = \mu _d F_{n,\star } \frac{F_{t,\star }}{F_{h,\star }} \end{array} \right. \end{aligned}$$
(13)

Also, the displacement of the force application point in relation to the wheel rolling resistance is represented by the parameter \(u_W\). As is well known, the length of such a contact is a function of the contact characteristics, particularly the wheel radius \(r_W\) and rolling resistance coefficient.

4.2 Transmission model

The transmission power flow is critical for the modelling of mobile robots with a large number of wheels, since the number of sliding tyre-soil contacts has a significant impact on their dynamic behaviour. The power flow model is graphically shown in Fig. 14 and was used to achieve this goal.

$$\begin{aligned} T_{M\sim \sim } - T_{C \sim \sim } \frac{1}{\tau _\sim \eta } = \left( J_M + J_W\frac{1}{\tau _\sim ^2 \eta } \right) {\dot{\omega }}_{M\sim \sim } \end{aligned}$$
(14)

where

  • \(T_{M\sim \sim }\) is the torque exerted by the motor of the module \(\sim\) at the side \(\sim\);

  • \(T_C\sim \sim\) is the torque corresponding to the contact forces of both wheels of the same locomotion unit; for the four motors it is:

    $$\begin{aligned} T_{C FR}&= r_W \left( F_{l,FRF} + F_{l,FRB} \right) \nonumber \\&\quad + u_W \left( F_{n,FRF} + F_{n,FRB} \right) \end{aligned}$$
    (15)
    $$\begin{aligned} T_{C FL}&= r_W \left( F_{l,FLF} + F_{l,FLB} \right) \nonumber \\&\quad + u_W \left( F_{n,FLF} + F_{n,FLB} \right) \end{aligned}$$
    (16)
    $$\begin{aligned} T_{C BR}&= r_W \left( F_{l,BRF} + F_{l,BRB} \right) \nonumber \\&\quad + u_W \left( F_{n,BRF} + F_{n,BRB} \right) \end{aligned}$$
    (17)
    $$\begin{aligned} T_{C BL}&= r_W \left( F_{l,BLF} + F_{l,BLB} \right) \nonumber \\&\quad + u_W \left( F_{n,BLF} + F_{n,BLB} \right) \end{aligned}$$
    (18)
  • \(\tau _\sim\) is the reduction ratio of the transmission of the module considering the gearbox and the drive chain. In particular, \(\tau _F = 47.64\) and \(\tau _B = 28.93\);

  • \(J_M\) and \(J_W\), respectively, are the inertial parameters of the motor rotor and of the attached wheels;

  • \(\eta\) is the efficiency (\(<1\)) of the transmission; this parameter assumes different meanings for direct and reverse power flows:

    $$\begin{aligned} \begin{aligned}&T_{M\sim \sim } \omega _{M\sim \sim } \ge 0 \Rightarrow \eta = \eta _d \\&T_{M\sim \sim } \omega _{M\sim \sim } < 0 \Rightarrow \eta = \dfrac{1}{\eta _r} \end{aligned} \end{aligned}$$
    (19)

    with \(\eta _d\) efficiency of the transmission when the power flows from the motor to the wheels, and \(\eta _r\) efficiency when the motor acts as a brake; such distinction is important because the difference among the values of \(\eta _d\) and \(\eta _r\) might be significant when the transmission ratio \(\tau _\sim \ll 1\). In particular, the efficiency parameters have been assumed \(\eta _d = 0.6\) and \(\eta _r = 0.35\) based on the implemented locomotion unit transmission.

  • \({\dot{\omega }}_{M\sim \sim } = \ddot{\vartheta }_{M\sim \sim }\) is the motor angular acceleration.

Fig. 14
figure 14

Transmission power flow diagram

The model of the traction sub-system also includes modelling the torque saturation that occurs as a result of an overcurrent protection procedure performed by the motor drivers. Specifically, a motor can deliver more torque than the nominal torque for a time inversely proportional to the torque delivered up to a maximum of 2 s for the maximum torque value. After this time, the torque is saturated at the nominal value.

5 Traction and Handling Analysis

It is essential for the Agri.Q robot to be able to navigate rough terrain with ease. To conduct a detailed analysis of the manoeuvrability and traction system of the rover, the multibody model described previously was used with the parameter experimentally identified in [37]. In particular, a series of simulations of circular trajectories of different curvatures \(\rho _F\) and at different longitudinal speeds \(v_F\) on a flat ground were performed with the aim of mapping the robot’s steady state behaviour during these manoeuvres. All these tests were repeated as the traction allocation ratio \(k_{TA}\) varied in order to assess the effect. The results of the simulations are analysed below, paying particular attention to the required torques, manoeuvrability, and the forces exchanged on the ground.

5.1 Torque Analysis

Figure 15 shows the trend of the torque of the inner front motor on the inner side of the curve, that of the outer front motor, the average of the two and their difference as the longitudinal speed \(v_F\) and the curvature of the trajectory \(\rho _F\) vary when \(k_{TA} = 1\). A few considerations can be drawn from these four torque maps. In particular, it can be seen that the tractive effort is strongly unbalanced against the front outboard motor, while the inboard motor is slightly negative under certain conditions (the area within the red dotted border) despite the average torque required to perform the desired trajectory is always almost constant (it varies between \(0.37\,\hbox {N}\,\hbox {m}\) and \(0.41\,\hbox {N}\,\hbox {m}\)). Furthermore, the curve corresponding to the nominal torque value of \(0.55\,\hbox {N}\,\hbox {m}\) is highlighted in red in the map dedicated to the external motor curve. Above this value, the traction motor cannot continuously deliver the required torque. Therefore most of the trajectories represented by the map are unfeasible except for a short period in the order of a few minutes if not seconds for torques close to the maximum torque value of \(1.1\,\hbox {N}\,\hbox {m}\).

Fig. 15
figure 15

Mapping of the motor torques at steady state circular manoeuvring with \(k_{TA} = 1\). The top left plot is the torque map of the front motor at the inner side of the turn, the top right is the front outer motor torque map, the bottom left shows the mean front torque and the bottom right shows the difference between the two front torques. The red dotted line highlights the zero torque value, whereas the solid red line highlights the motor nominal torque of \(0.55\,\hbox {N}\,\hbox {m}\)

Finally, note that in the upper right-hand corner of the various maps (with the exception of the engine inside curve), which corresponds to the tightest and fastest manoeuvres, there is a slight reduction in torque values. As will be shown later on, this phenomenon is due to the saturation of all or most of the contact forces between the wheels and the ground due to significant lateral slippage.

Figure 16 shows the mapping of the two front drive torques as a function of \(v_F\) and \(\rho _F\) but varying the value of \(k_{TA}\). In particular, simulations for \(k_{TA} = \left[ 0.8, 0.6, 0.4\right]\) are shown. Observing the torque behaviour of the external motor, it can be seen that as the value of \(k_{TA}\) decreases, the torque required for a given manoeuvre decreases. Furthermore, the boundary defined by the motor’s nominal torque shifts, allowing more demanding manoeuvres to be performed without exceeding the limit. In particular, it is observed that for \(k_{TA} = 0.4\) it is possible to achieve almost any combination of \(v_F\) and \(\rho _F\) without exceeding the nominal torque value (Fig. 16f). The cost of this traction allocation strategy is observed in the torque maps for the internal motor. As \(k_{TA}\) decreases, the space defined by the combinations of \(v_F\) and \(\rho _F\) where the motor brakes, or in other words when the motor generates negative torques, increases. However, due to the efficiency of the transmission when the motor brakes (\(\eta = 1/\eta _r\)), the magnitude of the motor torque actually required to brake is significantly small.

Fig. 16
figure 16

Mapping of the internal and external motor torques at steady state circular manoeuvring with different traction allocation ratio \(k_{TA}\) at each row (the rear motors contribution increase at each row). The red dotted line highlights the zero torque value, whereas the solid red line highlights the motor nominal torque of \(0.55\,\hbox {N}\,\hbox {m}\)

The other obvious effect of decreasing \(k_{TA}\) is an increase in the torque of the rear motors, as can be seen in Fig. 17. Only when \(k_{TA} = 0.4\) (Fig. 17c) the rear torque is high enough to reach the nominal value of \(0.55\,\hbox {N}\,\hbox {m}\) even if the increase is relatively limited and affects only a small portion of possible manoeuvres. In all other cases, the rear torque is well below the nominal threshold since its value is proportional to the average front motors torque which is generally low.

Fig. 17
figure 17

Mapping of the rear motors torques at steady state circular manoeuvring with different traction allocation ratio \(k_{TA}\). The solid red line highlights the motor nominal torque of \(0.55\,\hbox {N}\,\hbox {m}\)

Although it is not shown explicitly, the above maps also tell how much power is required to make the desired trajectory. The more torque and speed required, the more power is needed.

5.2 Manoeuvrability Analysis

Previous studies carried out on Agri.Q or robots with a similar architecture (that is, an articulated robot made of skid steering modules with more than one axle per module) showed that these kinds of vehicles show a clear understeering behaviour [36, 37, 43]. As shown previously, this behaviour is emphasised by the torque required to perform tighter turns at a relatively high speed. To perform such manoeuvres, the front external motor has to generate a torque that may be well beyond the nominal torque value; thus, some turns can be achieved only for a very limited amount of time.

Figure 18 depicts how the relative yaw angle \(\delta\) behaves as a function of \(v_F\) and \(\rho _F\) at different values of \(k_{TA}\) and also how it compares with the same angle \(\delta _{kin}\) computed by means of a simple kinematic model. When \(k_{TA}\) is above 0.8 the robot always shows the understeering behaviour, since the measured angle \(\delta\) is always less than the kinematic one. Such a difference becomes more evident when the curvature \(\rho _F\) increases. By reducing the ratio \(k_{TA}\) and, therefore, by increasing the contribution of the rear module to the tractive effort, the understeering behaviour is partially compensated for when the expected steering angle is below \(15^{\circ }\). However, for a higher steering angle, the robot behaves like an oversteering vehicle (i.e., the measured angle \(\delta\) becomes larger than the expected kinematic one). The unexpected behaviour at the top right corner of Fig. 18c is probably a numerical effect of the simulation due to the modelling of the constrain that represents the mechanical stop limiting \(\vert \delta \vert\) to \(44^{\circ }\). In these cases, the constraint produces a reaction force large enough to bounce back the rear module resulting in a lower \(\delta\) and a very large understeering. Since this phenomenon only occurs when \(k_{TA} = 0.6\) it will be investigated more deeply in the future to better asses the motivations behind it.

Fig. 18
figure 18

Mapping of the relative measured yaw angle \(\delta\) at steady state circular manoeuvring defined by the kinematic hitch angle \(\delta _{kin}\) with different traction allocation ratio \(k_{TA}\). The solid red line highlights the motor nominal torque of \(0.55\,\hbox {N}\,\hbox {m}\)

Moreover, Fig. 18 shows more clearly the effect of torque saturation on robot handling. The robot can only reach the manoeuvring space below the red curve representing the nominal torque value, while the remaining manoeuvres can be done for a very short period of time. As shown before, by decreasing \(k_{TA}\), it is possible to increase the achievable manoeuvre space. Thus, when \(k_{TA} = 0.4\) (Fig. 18d) is almost possible to cover all the space, whereas in the other cases the understeering behaviour is accentuated by the torque limitations.

5.3 Contact Forces Analysis

It is of significant interest to analyse the contact forces between the wheels of Agri.Q and the ground. The normal forces support the weight of the rover in line with its mass distribution, so the four front wheels support about 60% of the total weight (112 kg) while the rear wheels support the remaining 40%. When the rover is not moving, the normal load acting on each wheel of the same module is the same, but when the robot moves such load distribution changes. Due to its relatively low acceleration and the height of its centre of gravity relatively close to the ground, typical load transfers that occur in common vehicles due to longitudinal and lateral accelerations are of limited magnitude. More significant are the effects due to the free rotation of the rocker that makes up the frame of the locomotion units. Due to longitudinal and lateral ground forces, rocker tilting torques are generated that lead to an increase in normal force on one rocker wheel and a decrease on the other. In turn, this effect allows more force to be transmitted to the ground, with the wheel experiencing an increase in normal force due to the tilting torque and conversely a decrease in the magnitude of the transmissible forces for the other wheel.

For example, in Fig. 19, it can be observed a top view of Agri.Q turning left under various conditions. Solid circles represent the maximum magnitude of the contact forces lying on the ground plane (i.e., its radius is equal to \(\mu _s F_{n,\star }\)) but also the normal force acting on the wheel since they are proportional. The dashed circles instead represent the magnitude of the force \(F^*_{h,\star } = \mu _d F_{n,\star }\) when the tyre saturates due to large wheel slip. \(F_{h,\star }\), \(F_{l,\star }\), and \(F_{t,\star }\) are represented by the black, red, and blue vectors respectively. In Fig. 19a it can be noted how the normal forces in the front right rocker are considerably different between the two tyres. In this case, the quite large traction torque produces positive longitudinal contact force whose effect on the rocker is a tilting torque that lifts the front wheel and loads even more the rear one. In this particular case, \(F_{n,FRB}\) is about 2.25 times larger than \(F_{n,FRF}\). Figure 19b depicts an even extreme situation where \(F_{n,FRF}\) is so low that the tyre saturates due to a large lateral slip. The same figure also shows the opposite effect on the front left rocker. In this case, the braking longitudinal forces produce a tilting torque that lifts the rear wheel and loads the front one. Turning on the rear motors leads to interesting effects, as Fig. 19c shows. As for the front accelerating rocker, both rear rockers are affected by a tilting torque that shifts the normal load distribution to the rear tyres. However, the load transfer is significantly less for the rear module. It is much more interesting to observe the effect due to the mutual interaction of the two modules. The added tractive force of the rear results in the front module as a force along the direction that joins the two centres of the modules. Therefore, this force, in the reference system \(\{F\}\), has both a longitudinal and a transverse component. While the former produces a contribution to traction, the latter has the effect of compensating for the lateral forces on the front wheels and at the same time increasing the lateral forces on the rear wheels, even considerably for very tight curves. This effect leads to a situation where the rear tyres of the front module can easily saturate due to the lateral slip, thus most of the tractive effort is done by the respective front tyres. Similarly, the effect of the net forces of the front module produces a force acting on the rear module that increases the lateral forces of the front tyres while reducing the lateral forces of the rear ones.

Fig. 19
figure 19

Top view of Agri.Q turning left in various conditions. The solid circles represent the maximum magnitude of the contact forces lying on the ground plane equal to \(\mu _s F_{n,\star }\) but also the normal force acting on the wheel since they are proportional. The dashed circles represent instead the magnitude of the force \(F^*_{h,\star } = \mu _d F_{n,\star }\) when the tyre saturates due to a large wheel slip. \(F_{h,\star }\), \(F_{l,\star }\), and \(F_{t,\star }\) are represented by the black, red, and blue vectors respectively

6 Conclusions

This paper presented a detailed analysis of the Agri.Q robot to assess whether it can be considered a valid tool for a more sustainable agriculture using precision farming paradigms. In the first part, the energy consumption and production of the robot was evaluated. In the second part, attention was paid to the robot traction system and handling capabilities.

The power balance tests conducted with Agri.Q proved that on a sunny day with a clear sky, Agri.Q can sustain itself with a well-planned schedule of operations. The panel can recharge the battery if the robot is left inactive with adequate sun exposure. The recharging rate is improved even further by optimizing the solar panel orientation to enhance the gathering of direct solar irradiation. Although the PV panel are insufficient to completely balance the needed power while the robot moves, they contribute significantly to reducing battery drain, even if the sun is not actively tracked. As a result, by carefully planning Agri.Q tasks in a day, the robot endurance may be greatly increased. Future implementations of the robot will reduce energy consumption by improving the robot’s power supply system and its other subsystems.

The in-depth analysis of the traction subsystem showed instead that to improve the robot handling and manoeuvrability, in particular when demanding trajectories are required, a proper torque allocation between the front and rear motors can be beneficial if not mandatory despite increasing the overall power consumption. The conducted simulations have proved and expanded previous results on similar robotic architectures that suffer from considerable understeering behaviour due to significant lateral wheel slip while turning. Although Agri.Q possesses some useful features for an agricultural scenario (e.g. reduced soil compaction, passive suspension that filters out irregularities, ability to climb over obstacles, traction distributed over several wheels), the analysis conducted highlighted some limitations of the proposed architecture (e.g. understeer, motors saturation and unbalanced distribution of normal load during steering). However, most of these problems can be solved by revising some design choices (i.e., revising the traction motors and gear ratios currently in use) and/or by implementing a proper torque vectoring strategy in which the rear module is also a differential platform. Improving the drive sub-system greatly benefits manoeuvrability but also the energy balance.

Nevertheless, the rover proved to be a valuable first step for approaching agriculture in a more sustainable way and a solid foundation for future implementation of the precision agriculture paradigm and its potential to advance the Sustainable Development Goals.