[0001] The present disclosure relates to a method and a corresponding system for controlling
the stability conditions of a machine, such as a construction machine.
[0002] Safety can be considered as one of the most relevant aspects during every working
activity. Among all the possible working scenarios, construction sites can be easily
identified as one of the riskiest fields for several reasons. In fact, working or
construction machines are used in a large variety of tasks and quick motion and/or
sudden changes of motion direction are often required. Moreover, even if not properly
allowed (like in the case of excavators), heavy payloads are continuously loaded and
unloaded, sometimes pushing the machine stability over its limits, thus creating potentially
risky and fatal conditions for the operator. When these conditions occur, the machine
can experience a rollover (i.e. the machine can roll over onto its side or end through
approximately 90° from its main vertical medial plane) and tipping over (the machine
can move more than 90°, close to 180° from its main vertical medial plane) and the
operator safety must be preserved even under these situations in order to prevent
severe or even fatal injuries.
[0003] According to several investigations, it seems that the most relevant number of hazards
while maneuvering a construction machine is related to machine instability conditions,
that can be usually generated if the commands to the machine are given in improper
ways, and/or with wrong equipment or when the machine safety instructions are not
properly followed by the operator.
[0004] In recent years, solutions are proposed addressing the problem of improving the safety
of operators maneuvering construction machines and applying concepts related to the
dynamic and control movement of the robots, for example using the Zero Moment Point
(ZMP) or equivalent approaches. However, these solutions are in some case complicated
and not always very effective since they only provide control systems that passively
report critical conditions, thereby alerting the operator when the machine is going
to reach an unstable condition. However, prior art systems cannot prevent the occurrence
of risky or fatal situation, in case the operator does not notice, or consciously
ignores, the machine warnings.
[0005] It is therefore an object of the invention to obtain an efficient method and system
for controlling the stability of a construction machine that actively acts on preventing
risky situations.
[0006] The object is solved by a method for controlling the stability conditions of a machine
moveable on a ground having at least an operational component, in particular a hydraulic
cylinder, for moving a portion of the machine, and being maneuvered by an operator
through operational commands. The method comprises:
acquiring at least a first sensor signal defining the position of the portion of the
machine;
acquiring at least a second sensor signal defining a variation of the position of
the portion of the machine relative to the ground,
acquiring at least a command signal defining the operational commands of the operator
for actuating the operational component and for transmitting an operational velocity
to said portion of the machine;
determining a stability condition of the machine based on the first sensor signal,
the second sensor signal and the command signal, and
outputting a control signal to control the operational component as a function of
the determined stability condition,
wherein the stability condition is determined by monitoring and estimating both the
static and the dynamic stability conditions of the machine, in particular by monitoring
and estimating the position of the center of gravity and of an index of stability
of the machine, relative to a contact area of the machine with the ground.
[0007] According to another aspect, there is provided a control system for controlling the
stability conditions of a machine moveable on a ground having at least an operational
component, in particular a hydraulic or electric actuator, for moving a portion of
the machine, and being maneuvered by an operator through operational commands, the
system comprising:
at least a first sensor for generating a first sensor signal defining the position
of the portion of the machine;
at least a second sensor for generating a second sensor signal defining a variation
of the position of the portion of the machine relative to the ground; and
a control stability module for receiving the first sensor signal, the second sensor
signal, and at least a command signal defining the operational commands of the operator
for actuating the operational component and for transmitting an operational velocity
to said portion of the machine, the control stability module determining a stability
condition of the machine based on the first sensor signal, the second sensor signal
and the command signal, and outputting a control signal to control the operational
component as a function of the determined stability condition,
wherein the control stability module comprises a static stability module and a dynamic
stability module for monitoring and estimating both the static and the dynamic stability
conditions of the machine, in particular by monitoring and estimating the position
of the center of gravity and of an index of stability of the machine, relative to
a contact area of the machine with the ground.
[0008] In an additional aspect, there is provided a working machine comprising the control
system according to the above-mentioned aspect.
[0009] In a further aspect, there is provided a computer program comprising computer readable
instructions which, when implemented on a computer, causes the computer to carry out
a method according to the above-mentioned aspect.
[0010] In another aspect, there is provided a storage medium comprising the computer program
according to the above-mentioned aspect.
[0011] Other aspects and features are defined in the appended claims.
[0012] Advantageously, the present method and control system can be applied to construction
machines such as hydraulic excavator, electric excavator, wheel loader and compact
truck loader and Industrial vehicle such as forklift, and remote control system that
controls these work machine. In particular, in case the construction machine is a
hydraulic excavator, loader or a generic mobile manipulator, the operational component
can be a control valve. In case the construction machine is an electric excavator,
loader or a generic mobile manipulator, the operational component can be an inverter
or a motor.
[0013] Examples of the present method and control system may avoid instability of construction
machines expected in various different situations, thereby allowing the operation
of construction machines safely and comfortably. In particular, the control method
and control system according to these examples can be applied to construction machines
performing a variety of works, such as excavation, loading and unloading of heavy
objects, etc. Static stability conditions can be prioritized over dynamic stability
conditions, especially for low-speed, low-acceleration, high-load works such as loading
and unloading of heavy objects.
[0014] Advantageously, the control method and control system according to these examples
can dynamically manage the operator input in order to avoid critical conditions that
may evolve in risky rollover accidents. This is particularly relevant when implemented
in mini or mid-size machines, such as excavators, because these machines are usually
more prone to be used in dangerous situations, especially in presence of high joint
accelerations due to critical conditions or large payloads, given the reduced size
of their footprint. Specifically, a general formulation of forces and equilibrium
of moments around the center of gravity (CoG) of the machine is used in order to overcome
an unstable condition for the operator while controlling the machine during his/her
activity.
[0015] Examples of the disclosure will now be described by way of example only with reference
to the accompanying drawings, in which like references refer to like parts, and in
which:
Figure 1 is a flowchart of the control method according to an example;
Figure 2 is a schematic representation of the control system according to an example;
Figure 3 is a representation of the components of the control system according to
an example;
Figure 4 is a detailed representation of the components of the control system according
to an example;
Figures 5A-5B are schematic representations of the velocity scaling processes according
to an example;
Figures 6 is a schematic representation of a working machine according to an example;
Figures 7A-7B are schematic representations of two stability regions according to
two different examples;
Figure 8 is a diagram of the velocity profile function according to an example;
Figures 9A-9B are schematic representations of the variation of the stability region
according to an example; and
Figure 10 is a computer system for implementing the method according to an example.
[0016] A system and a method for controlling the stability conditions of a machine are disclosed.
In the following description, a number of specific details are presented in order
to provide a thorough understanding of the examples of the disclosure. It will be
apparent however to a person skilled in the art that these specific details need not
be employed in order to practice the examples of the disclosure. Conversely, specific
details known to the person skilled in the art are omitted for the purposes of clarity
in presenting the examples.
[0017] Figure 1 illustrates the process steps of the control method 100. The method 100
can be applied to different working machines, such as excavators, loaders, demolition
machines and, generally speaking, to mobile manipulators. It can be used both for
onsite maneuvers and remote operations (like in the case of remotely operated machines).
In other words, the method can be implemented in general machines composed by: a traveling
part, a main rotational joint (machine swing), and a serial arm, as in the case of
conventional excavators. As will be described in more detail below, the working machine
1 comprises at least an operational component 2 in order to move a portion 3 of the
machine 1, such as an arm, a shovel, or a base element.
[0018] The operational component 2 can be any type of actuator , for example hydraulic or
electrical, useful to move a portion 3 of the machine 1. For example, the operational
component 2 can be a hydraulic cylinder or a linear motor for giving an unidirectional
force through a unidirectional stroke. The portion 3 moved by the operational component
2 can be for instance the base of a main body of the machine 1, the arm of the machine
1, the shovel located at the end of the arm, etc...
[0019] The machine 1 is maneuvered by an operator who gives operational commands for actuating
the operational component 2 and thus moving the corresponding portion 3 of the machine
1.
[0020] At step S101, a first sensor signal 4 is acquired using a first sensor 13 configured
to measure the position of the portion 3 of the machine 1. For example, the first
sensor 13 can be a position sensor, such as a potentiometer that is located at said
portion 3. At step S102, a second sensor signal 5 is acquired using a second sensor
14 configured to measure the variation of the position (i.e. the velocity or acceleration)
of the portion 3 of the machine 1 relative to the ground G. For example, the second
sensor 14 can be a force sensor, such as an inertial measurement unit (IMU) that is
also located at said portion 3. The acquisition of a command signal 6 defining the
operational commands of the operator is carried out at step S103. The operational
commands serve to actuate the operational component 2 and transmitting an operational
velocity to the portion 3 of the machine 1. It is noted that the steps S101, S102,
and S103 do not need to be carried out according to this sequence. In fact, a different
sequence can also be conceivable. Alternatively, two or all three steps S101, S102,
and S103 can be carried out at the same time or almost at the same time.
[0021] Based on the first sensor signal 4, the second sensor signal 5 and the command signal
6, the stability condition of the machine 1 is determined at step S104. At step S105,
a control signal 7 is output to control the operational component 2 as a function
of said stability condition. Specifically, if it is determined that the machine 1
fulfils the stability condition, i.e. if it is determined that the machine is not
going to tip over, no control signal 7 different from the operator's command is required.
On the other hand, if it is determined that the machine 1 does not meet the stability
condition, i.e. if it is determined that the machine is going to tip over, the control
signal 7 (different from the operator's command) is generated in order to actively
control the operational component 2 and avoid risky situations due to the lack of
stability conditions.
[0022] In particular, the stability condition is determined by monitoring and estimating
both the static and the dynamic stability conditions of the machine 1, that is by
monitoring and estimating the position of the center of gravity and of an index of
stability of the machine 1, relative to a contact area of the machine 1 with the ground
G. In particular, the static stability condition is affected by the position of the
CoG only and does not consider the effect of velocities or accelerations. When the
projection of CoG falls outside the footprint area of the machine 1, the machine 1
theoretically tips over. On the other hand, the dynamic stability condition is affected
by CoG position but also by velocities and accelerations of the joints. Due to high
accelerations, the machine 1 could fall down even if the CoG is inside the footprint.
The index of dynamic stability (for example computed using the ZMP) takes into account
also the effect of accelerations. If the ZMP projection falls outside the border of
the machine footprint, the machine 1 theoretically will lift up from the ground (that
does not mean that it will tip-over).
[0023] Specifically, the determination of the stability condition is carried out by a velocity
scaling process followed by acceleration scaling process. The velocity is scaled using
information on payload and on the position of CoG relative to the footprint of the
machine. In a machine like an excavator, the method can control and scale the velocity
of at least the arm and the movable base or cabin. Advantageously, the velocity is
set to zero if the position of CoG is approaching a prohibited area (border edge of
the footprint). In particular, the control method (i.e. the algorithm used for carrying
out the method) constantly monitors where the CoG is located relative to the contact
area of the machine (footprint) and also monitors where the index of stability (ZMP)
will go if applying the acceleration provided by the operational commands of the operator.
Based on this prediction, the acceleration can be scaled. In particular, the ZMP is
used as an indication of stability of the machine and is projected on the machine's
footprint. The acceleration is scaled (i.e. decreased) until the ZMP is within a certain
threshold value.
[0024] By combining both static and dynamic stability conditions a large variety of tasks
that can be performed also with conventional construction machines. In particular,
thanks to this control method 100, a complete range of risky conditions can be avoided.
For example, the method can be applied in a first situation in the case of low speed,
low accelerations, high payload, as well as in the case of heavy weights loading and
unloading, for which the contribution of the position of the center of gravity is
more relevant of the contribution of the index of stability of the machine 1. Also,
the method can be applied in a second situation in the case of high speed, high accelerations,
large oscillations, as well as in the case of digging and earthmoving, for which the
evaluation of the index of stability of the machine 1 is the most critical factor
to be considered. In order to guarantee the machine stability in both above-mentioned
situations, both the center of gravity and the index of stability of the machine 1
are used as parameters to actively and dynamically manage the operational commands
on the operational component 2 in order to maintain the required machine stability.
[0025] Figure 2 illustrates a schematic representation of the control system 12. The control
system 12 comprises at least a first sensor 13, for example a potentiometer, for measuring
the position of a component or portion 3 of the machine 1 and at least a second sensor
14, for example an IMU, for measuring a variation of position of a component or portion
3 of the machine 1 relative to the ground G. In addition, the system 12 comprises
a control stability module 15 that receives a first sensor signal 4 originated from
the first sensor 13, a second sensor signal 5 originated from the second sensor 14
and a command signal 6 originated from a joystick 20 or steering element actuated
by an operator. The control stability module 15 is configured to determine a stability
condition of the machine 1 based on the first sensor signal 4, the second sensor signal
5 and the command signal 6, and to output a control signal 7 to control the operational
component 2 as a function of the determined stability condition. In particular, the
control stability module 15 comprises a static stability module 16 and a dynamic stability
module 17 for monitoring and estimating both the static and the dynamic stability
conditions of the machine 1, that is by monitoring and estimating the position of
the center of gravity and of an index of stability of the machine 1, relative to a
contact area of the machine 1 with the ground G.
[0026] Figure 3 describes in more detail the components of the control system 12 and in
particular of the static stability module 16 and the dynamic stability module 17 and
their involvement in the method 100 for controlling the stability of the machine 1.
The first sensor signal 4 (i.e. a signal derived by a potentiometer or by an IMU),
the second sensor signal 5 (i.e. a signal derived by an IMU) and the command signal
6 are received by the static velocity module 16 and are used by a velocity scaling
module 18 to carry out a velocity scaling process and to generate a corrected operational
velocity 21. In particular, the method 100 comprises determining a payload of the
machine 1, wherein monitoring the static stability comprises a velocity scaling process
obtained based on a function using as input values both the payload of the machine
1 and the position of the center of gravity of the machine 1 relative to a contact
area of the machine 1 with the ground G, the method 100 comprising generating the
corrected operational velocity 21 based on said velocity scaled process. For the determination
of the payload, the control system 12 can comprise a dedicated sensor, such as a pressure
sensor.
[0027] In one example, the method 100 comprises calculating a commanded acceleration 23
at an actual time step and defined by the difference of the corrected operational
velocity 21 and an operational velocity 22 as calculated at a previous time step divided
by the time step Ts of the algorithm (i.e. a discrete derivative of the operational
velocity 21), generating a corrected operational acceleration 24, integrating said
corrected operational acceleration 24 and generating an operational velocity 25 to
control the operational component 2. In particular, the dynamic stability module 17
comprises an acceleration scaling module 19 for receiving the commanded acceleration
23 at the actual time step and generating the corrected operational acceleration 24.
It is noted that in this context the time step Ts of the algorithm is intended as
the inverse of the running frequency of said algorithm, i.e. the time interval passed
between two consecutive algorithm iteration steps.
[0028] In one example, estimating the dynamic stability comprises an acceleration scaling
process and the method 100 comprises generating the corrected operational acceleration
24 based on the acceleration scaling process, wherein in particular the acceleration
scaling process is carried out after the velocity scaling process.
[0029] According to an advantageous example, the acceleration scaling comprises a prediction
of a position of a stability index relative to the ground G and specifically relative
to a stability region as will be defined in more detail with reference to the following
figures 7A and 7B. In particular, the stability index can be the zero moment point,
ZMP, of the machine 1. The acceleration scaling module iteratively scales down the
desired acceleration using a prediction of the stability index using a ZMP algorithm.
[0030] Figure 4 describes in more detail the method 100 for controlling the stability of
the machine 1 by combining both the static and dynamic stability conditions. First
of all, the sensors (e.g. potentiometers and/or IMU) are read and the corresponding
sensor signals are received by the control system 12. The sensor readings are used
to reconstruct the state of the machine 1 and to estimate the payload. Based on the
state reconstruction and the payload estimation, the position of the center of gravity
is evaluated and a velocity scale gain is computed. The velocity scaling process is
then carried out taking the operator commands (command signal 6) into account and
the corrected operational velocity 21 is generated. Next, a commanded acceleration
23 is generated by operating the discrete derivative of the corrected operational
velocity 21. Using the operational velocity 22 calculated at a previous time step
and not a velocity directly measured by the sensors serves to avoid any feedback loop
that may cause instabilities and to avoid the system dynamics to influence the algorithm.
Next, the acceleration scaling process is carried out on the commanded acceleration
23 with a ZMP estimation taking the state reconstruction of the machine 1 into account.
Advantageously, the ZMP estimation also uses information related to the payload of
the machine 1. The corrected operational acceleration 2 is then integrated and the
operational velocity 25 is generated to control the actuator (operational component
2).
[0031] It is noted that regarding the velocity scaling process, two different approaches
can be taken into account. These approaches are illustrated in figures 5A and 5B.
According to a first approach (Fig. 5A), the velocity scale is directly carried out
on the operator commands in order to obtain a scaled velocity (i.e. corrected operational
velocity 21). This approach is simple and straightforward. However, in this case also
small velocities would be scaled. According to a second approach (Fig. 5B), a saturation
process is added to the scaling. In particular, scaled maximum velocities are set
as saturation values and the operator commands are used for the saturation process.
In this case, if the velocities commanded by the operator are too small, these are
not scaled. After the saturation step, the maximum scaling is computed in all the
portions 3 of the machine 1 that are taken into account, in particular with respect
to joints, and the same scaling gain is applied to all portions 3 (i.e. joints). This
is useful to ensure that the motion of a component 2 of the machine 1 (for example
the bucket) in the Cartesian space is the same in position but slower in velocity.
[0032] Figure 6 shows a possible construction machine 1 that could benefit from the control
method 100 and the control system 12 of the present disclosure. The machine 1 is an
excavator machine with a base and an articulated arm movable on a ground G. Specifically,
the machine 1 comprises a lower body 26 including the track frame and an upper body
27 including a cabin and a swing cylinder bottom. Also, the machine 1 comprises an
articulated arm composed by a first arm section 28 including a bottom bracket, swing
cylinder rod and boom cylinder bottom, a second arm section 29 including a boom, a
boom cylinder rod and an arm cylinder bottom, and a third arm section 30 including
an arm cylinder rod a bucket link and a bucket cylinder bottom. Finally, the machine
1 comprises an extremity section 31 including a bucket, a bucket cylinder rod and
a bucket arm.
[0033] As mentioned above, the method performs a control action based on the estimation
of both static and dynamic stability conditions, achieved through the monitoring and
the estimation of the position of center of gravity and the index of stability, i.e.
ZMP (mainly related to machine forces/torques and, generally speaking, accelerations).
In order to guarantee the correctness and the effectiveness of the stability control,
it is necessary that the machine state is known. In order to obtain this information,
the machine skeleton and the joints have to be equipped with a set of sensors 13,
14 that acquire position, velocity and acceleration of each link while the machine
1 is moving relative to the ground G. Other than this requirement, the algorithm formulation
is independent on the type and number of sensors installed.
[0034] As a possible set of sensors for the machine state reconstruction, one or more Inertial
Measurement Units (IMU) 14 and/or one or more potentiometers 13 are suitably located
in the machine 1. For example, the potentiometer 13 can be located at the joints of
the machine 1 and the IMU 14 can be located at the movable portions 3 of the machine
1. In this way, joints position can be directly measured by the potentiometers 13,
while velocities and accelerations can be measured by the IMUs 14.
[0035] In figure 6 a possible configuration of IMUs 14 and potentiometers 13 is presented
together with their position on a mini excavator frame. The number of sensors depends
on the selected machine kinematics, and it is directly related to its own degrees
of freedom and moving links. As an example, the considered excavator of figure 6 has
five degrees of freedom (boom swing, boom, arm, bucket, cabin turning), but one of
them (the boom swing) has not been considered for ease of implementation. In addition
to the implement degrees of freedom, the main swing has been considered. So that,
for this machine configuration, three IMU 14 and three potentiometers 13 have been
installed: three IMUs 14 (undercarriage, boom link, arm link), while three potentiometers
13 are placed on the first, on the third and on the fourth joint (boom swing joint
has been considered as static, as previously mentioned).
[0036] Thanks to this sensor architecture, the whole machine state can be reconstructed,
so that joints position, velocity and acceleration can be used as inputs for the designed
algorithm.
[0037] According to one example, the position of the center of gravity is determined within
a stability region 8 defined in the contact area of the machine 1 with the ground
G and wherein said stability region 8 comprises at least a first region 9 and a second
region 10, as shown in figures 7A and 7B. The first region 9 can be contained in the
second region 10, wherein the perimeter of the second region 10 is larger than the
perimeter of the first region 9. Alternatively, the perimeter of the second region
10 can partially coincide with the perimeter of the first region 9. Advantageously,
the first region 9 and the second region 10 have the same shape and the shape can
be a polygonal shape or an elliptical shape. For example, both the first region 9
and the second region 10 can have a rectangular shape, as shown in figure 7A or both
the first region 9 and the second region 10 can have an elliptical shape, as shown
in figure 7B.
[0038] In particular, if the position of the center of gravity is within the first region
9, than the operational component 2 is controlled by the operational commands of the
operator and if the position of the center of gravity is within the second region
10, than the operational velocity is reduced to a scaled velocity and the operational
component 2 is controlled by the control signal 7.
[0039] According to another example, the stability region 8 comprises a third region 11,
the first region 9 and the second region 10 being contained in the third region 11,
wherein if the position of the center of gravity is within the second region 10 and
is approaching the third region 11, than the operational velocity is set to zero.
[0040] As shown in figures 7A and 7B, the third region 11 has the same shape as the first
region 9 and second region 10 and represents the border edge of the stability region
8.
[0041] In order to maintain high performances and without influencing the operator commands
if not strictly required, if the machine state/condition is evaluated as "safe", that
is if the center of gravity falls within the first region 9, the control system 12
does not act on the operator input. In other words, each combination of center of
gravity and ZMP 2D coordinates that falls into this area is considered not critical
and the operational commands of the operator are passed without modifications. On
the other hand, each combination of center of gravity and ZMP 2D coordinates that
falls into the second region 10 ("controlled area") is considered to be managed by
the control algorithm. As regards the third region 11, this is a "prohibited critical
area". Hypothetically, the position of the center of gravity should not ever fall
in this area (in fact the velocity is set to zero when the center of gravity is approaching
the third region 11) while ZMP combinations that fall into this area will be managed
like in the "controlled area".
[0042] It is noted that the configuration of figure 7B can be extremely advantageous compared
to that of figure 7A in case of oscillations of the machine's body, for example when
the arm of the machine (excavator) 1 is stationary and the cabin rotates. In this
case, if the regions have a rectangular shape, by measuring the distance variation
of the center of gravity from the border during the rotation, when the base of the
machines 1 rotates close to the corners, a profile with a discontinuity would be created.
On the other hand, an elliptical or almost circular shape of the regions would ensure
a smoother profile without discontinuities.
[0043] In order to increase the overall system flexibility and adaptation to different machines,
all the variables for describing the aforementioned regions have been considered as
parameters and each of them can be set as a function of payload, safety coefficient,
number of processed samples in a single time step, etc. In the same way, the speed
scaling function can be adapted depending on the specific application, task and machine.
In any case, the operator motion direction is not altered by the algorithm, because
velocities and accelerations are just scaled down and not inverted. Furthermore, the
scaling gain is always lower than 1, thus velocities can be only decreased and not
increased.
[0044] Figure 8 shows an example of the controller area velocity scaling profile function
that can be used in the algorithm. When a risky condition occurs, due to the position
of the center of gravity approaching the third region 11, the operator's velocities
are scaled to zero in the direction of critical position of the center of gravity
before the tip over of the machine. Thanks to an hysteresis mechanism, in this situation
the operator is always able to restore a safe stability condition. It is also important
to note that the algorithm is capable of handling the operation of the mobile base
as well as of the manipulator part.
[0045] As previously mentioned, the algorithm uses the current and predicted measurement
of the center of gravity and ZMP. The center of gravity is defined as the average
location of the weight of the object and can be obtained by the position of each machine
link. On the other hand, the ZMP is defined as the point on the contact surface in
which the sum of the reaction forces does not produce any moment in the horizontal
direction. In this analysis a variation of the standard equation obtained by Kato
and Vukobratovic can been used:

where:
mi corresponds to the mass of the single machine link;
pi corresponds to the center of mass (single machine link);
ṕi corresponds to the acceleration of the center of mass (single machine link).
[0046] The velocity scaling function of figure 8 shows that by increasing the distance of
the center of gravity (GoG) from the border, the CoG falls in the safe area or first
region 9 and no scaling is required. The distance of the CoG from the border being
equal, the CoG passes from the safe area (first region 9) to the controlled area (second
region 10) by increasing the payload. In this case, a velocity scaling is required.
By further increasing the payload, the CoG falls in the prohibited area (third region
11) and no motion is allowed. It is noted that the probability of falling in the prohibited
area increases by increasing the payload and reducing the distance of the CoG from
the border. On the other hand, the probability of falling in the safe area increases
by decreasing the payload and by increasing the distance of the CoG from the border.
[0047] According to another example, the dimension of the stability region 8 can be changed
on real time based on the payload of the machine 1, wherein in particular the surface
of the first region 9 and of the second region 10 can be changed as a function of
the payload. This is shown in figures 9A and 9B, wherein figure 9A shows a condition
with small payload and figure 9B shows a condition with a large payload. It is noted
that the first region 9 (safe area) of figure 9A is bigger than the first region 9
of figure 9B. Also, the prohibited area (third region 11) of figure 9A is smaller
than the third region 11 of figure 9B. For example, based on the presence or absence
of payload in the bucket of the excavator, the stability region 8 and in particular
the surfaces of the respective first, second and third regions 9, 10, 11 are conveniently
changed. In fact, by increasing the payload, the controlled and the prohibited area
become bigger and the operational component 2 can be controlled by the control system
12. In one example, the first and third regions (i.e. the safe area and the prohibited
area) can be changed linearly as a function of the payload (e.g. through a linear
interpolation). On the other hand, the velocity in the second region 10 (controlled
area) can be scaled using a second order function.
[0048] Figure 10 schematically shows a computer system for implementing methods of examples
of the disclosure. In particular, Figure 10 shows an example of a computing device
2000 for example which may be arranged to implement one or more of the examples of
the methods described herein. In examples, the computing device 2000 comprises main
unit 2002. The main unit 2002 may comprise a processor 2004 and a system memory 2006.
In examples, the processor 2004 may comprise a processor core 2008, a cache 2010,
and one or more registers 2012. In examples, the processor core 2008 may comprise
one or more processing cores and may comprise a plurality of cores which may run a
plurality of threads. The processor 2004 may be of any suitable type such as microcontroller,
microprocessor, digital signal processor or a combination of these, although it will
be appreciated that other types of processor may be used.
[0049] In examples, the processor core 2008 may comprise one or more processing units. In
examples, the processor core 2008 comprises one or more of a floating point unit,
an arithmetic unit, a digital signal processing unit, or a combination of these and/or
plurality of other processing units, although it will be appreciated that other processing
units could be used. In examples, the cache 2010 may comprise a plurality of caches
such as a level one cache and a level two cache, although other appropriate cache
arrangements could be used.
[0050] In examples, the processor 2004 comprises a memory controller 2014 operable to allow
communication between the processor 2004 and the system memory 2006 via a memory bus
2016. The memory controller 2014 may be implemented as an integral part of the processor
2004, or it may be implemented as separate component.
[0051] In examples, the system memory 2006 may be of any suitable type such as non-volatile
memory (e.g. flash memory or read only memory), volatile memory (such as random access
memory (RAM)), and/or a combination of volatile and non-volatile memory. In examples,
the system memory 2006 may be arranged to store code for execution by the processor
2004 and/or data related to the execution. For example, the system memory may store
operating system code 2018, application code 2020, and program data 2022. In examples,
the application code 2020 may comprise code to implement one or more of the example
methods described herein, for examples to implement the steps described above with
reference to Figures 1 and 3-5. The application code 2020 may be arranged to cooperate
with the program data 2022 or other media, for example to allow acquiring sensor and
command signals, determining a stability condition and outputting a control signal.
[0052] In examples, the computing device 2000 may have additional features, functionality
or interfaces. For example main unit 2002 may cooperate with one or more peripheral
devices for example to implement the methods described herein. In examples, the computing
device 2000 comprises, as peripheral devices, an output interface 2024, a peripheral
interface 2026, a storage device 2028, and a communication module 2030. In examples,
the computing device comprises an interface bus 2032 arranged to facilitate communication
between the main unit 2002 and the peripheral devices.
[0053] In examples, the output device 2024 may comprise output devices such as a graphical
processing unit (GPU) 2034 and audio output unit 2036 for example arranged to be able
to communicate with external devices such as a display, and/or loudspeaker, via one
or more suitable ports such as audio/video (A/V) port. In examples, the peripheral
interface 2026 may comprise a serial interface 2038, a parallel interface 2040, and
an input/output port(s) 2042 which may be operable to cooperate with the main unit
2002 to allow communication with one or more external input and/or output devices
via the I/O port 2042. For example, the I/O port 2042 may communicate with one or
more input devices such as a keyboard, mouse, touch pad, voice input device, scanner,
imaging capturing device, video camera, and the like, and/or with one or more output
devices such as a 2D printer (e.g. paper printer), or 3D printer, or other suitable
output device. For example, signals may be received via the I/O port 2042 and/or the
communication module 2030. In examples, the storage device may comprise removable
storage media 2044 and/or non-removable storage media 2046. For example, the removable
storage media may be random access memory (RAM), electrically erasable programmable
read only memory (EEPROM), read only memory (ROM) flash memory, or other memory technology,
optical storage media such as compact disc (CD) digital versatile disc (DVD) or other
optical storage media, magnetic storage media such as floppy disc, magnetic tape,
or other magnetic storage media. However, it will be appreciated that any suitable
type of removable storage media could be used. Non-removable storage media 2046 may
comprise a magnetic storage media such as a hard disk drive, or solid state hard drive,
or other suitable media, although it will be appreciated that any suitable non-removable
storage media could be used. The storage device 2028 may allow access by the main
unit 2002 for example to implement the methods described herein.
[0054] In examples, the communication module may comprise a wireless communication module
2048 and a wired communication module 2050. For example, the wireless communication
module may be arranged to communicate wirelessly via a suitable wireless communication
standard for example relating to Wi-Fi, Bluetooth, near field communication, optical
communication (such as infrared), acoustic communication, or via a suitable mobile
telecommunications standard. The wired communication module may allow communication
via a wired or optical link for example by Ethernet or optical cable. However, it
will be appreciated that any suitable communication module could be used.
[0055] Referring to Figures 2 and 3, the control stability module 15, the static stability
module 16, the dynamic stability module 17, the velocity scaling module 18 and acceleration
scaling module 19 may for example be implemented by a control unit. In examples, one
or more of the control stability module 15, the static stability module 16, the dynamic
stability module 17, the velocity scaling module 18 and acceleration scaling module
19 may be implemented by the main unit 2002, although it will be appreciated that
other suitable implementations could be used. In examples, these modules may be implemented
by the main unit 2002 in cooperation with the output device 2024, although it will
be appreciated that other suitable implementations could be used.
[0056] It will be appreciated that in examples of the disclosure, elements of the disclosed
methods may be implemented in a computing device in any suitable manner. For example,
a conventional computing device may be adapted to perform one or more of the methods
described herein by programming/adapting one or more processors of the computing device.
As such, in examples, the programming/adapting may be implemented in the form of a
computer program product comprising computer implementable instructions stored on
a data carrier and/or carried by a signal bearing medium, such as floppy disk, hard
disk, optical disk, solid state drive, flash memory, programmable read only memory
(PROM), random access memory (RAM), or any combination of these or other storage media
or signal bearing medium, or transmitted via a network such as a wireless network,
Ethernet, the internet, or any other combination of these or other networks.
[0057] In other words, in examples, a computer program may comprise computer readable instructions
which, when implemented on a computing device, cause the computing device to carry
out a method according examples of the disclosure. In examples, a storage medium may
comprise the computer program, for example, as mentioned above. It will also be appreciated
that other suitable computer architectures could be used such as those based on one
or more parallel processors. Furthermore, at least some processing may be implemented
on one or more graphical processing units (GPUs). Although computing device 2000 is
described as a general purpose computing device, it will be appreciated that this
could be implemented in any appropriate device, such as mobile phone, smart phone,
camera, video camera, tablet device, server device, with modifications and/or adaptation
if appropriate to the features described above, for example dependent on the desired
functionality and hardware features.
[0058] Although a variety of techniques and examples of such techniques have been described
herein, these are provided by way of example only and many variations and modifications
on such examples will be apparent to the skilled person and fall within the spirit
and scope of the present invention, which is defined by the appended claims and their
equivalents.
Reference Signs
[0059]
- 1
- Machine
- 2
- Operational component
- 3
- Portion of the machine
- 4
- First sensor signal
- 5
- Second sensor signal
- 6
- Command signal
- 7
- Control signal
- 8
- Stability region
- 9
- First region
- 10
- Second region
- 11
- Third region
- 12
- Control system
- 13
- First sensor
- 14
- Second sensor
- 15
- Control stability module
- 16
- Static stability module
- 17
- Dynamic stability module
- 18
- Velocity scaling module
- 19
- Acceleration scaling module
- 20
- Joystick
- 21
- Corrected operational velocity
- 22
- Commanded operational velocity
- 23
- Commanded acceleration
- 24
- Corrected operational acceleration
- 25
- Operational velocity
- 26
- Lower body
- 27
- Upper body
- 28
- First arm section
- 29
- Second arm section
- 30
- Third arm section
- 31
- Extremity section
- 100
- Method
- 2000
- Computing device
- 2002
- Main unit
- 2004
- Processor
- 2006
- System memory
- 2008
- Processor core
- 2010
- Cache
- 2012
- Register
- 2014
- Memory controller
- 2016
- Memory bus
- 2018
- Operating system code
- 2020
- Application code
- 2022
- Program data
- 2024
- Output interface
- 2026
- Peripheral interface
- 2028
- Storage device
- 2030
- Communication module
- 2032
- Interface bus
- 2034
- Graphical processing unit
- 2036
- Audio output unit
- 2038
- Serial interface
- 2040
- Parallel interface
- 2042
- Input/output port
- 2044
- Removable storage media
- 2046
- Non-removable storage media
- 2048
- Wireless communication module
- 2050
- Wired communication module
1. Method (100) for controlling the stability conditions of a machine (1) moveable on
a ground (G) having at least an operational component (2), in particular a hydraulic
cylinder, for moving a portion (3) of the machine (1), and being maneuvered by an
operator through operational commands, the method (100) comprising:
acquiring (S101) at least a first sensor signal (4) defining the position of the portion
of the machine (1);
acquiring (S102) at least a second sensor signal (5) defining a variation of the position
of the portion of the machine (1) relative to the ground (G);
acquiring (S103) at least a command signal (6) defining the operational commands of
the operator for actuating the operational component (2) and for transmitting an operational
velocity to said portion (3) of the machine (1);
determining (S104) a stability condition of the machine (1) based on the first sensor
signal (4), the second sensor signal (5) and the command signal (6), and
outputting (S105) a control signal (7) to control the operational component (2) as
a function of the determined stability condition,
wherein the stability condition is determined by monitoring and estimating both the
static and the dynamic stability conditions of the machine (1), in particular by monitoring
and estimating the position of the center of gravity and of an index of stability
of the machine (1), relative to a contact area of the machine (1) with the ground
(G).
2. The method (100) according to claim 1, further comprising determining a payload of
the machine (1), wherein monitoring the static stability comprises a velocity scaling
process obtained based on a function using as input values both the payload of the
machine (1) and the position of the center of gravity of the machine (1) relative
to a contact area of the machine (1) with the ground (G), the method (100) comprising
generating a corrected operational velocity (21) based on said velocity scaled process.
3. The method (100) according to any one of clams 1 to 2, wherein the position of the
center of gravity is determined within a stability region (8) defined in the contact
area of the machine (1) with the ground (G) and wherein said stability region (8)
comprises at least a first region (9) and a second region (10).
4. The method (100) of claim 3, wherein
a. the first region (9) is contained in the second region (10), the perimeter of the
second region (10) being larger than the perimeter of the first region (9), and wherein
in particular the first region (9) and the second region (10) have a polygonal shape
or an elliptical shape; and/or
b. the dimension of the stability region (8) can be changed on real time based on
the payload of the machine (1), wherein in particular the surface of the first region
(9) and of the second region (10) can be changed as a function of the payload.
5. The method (100) according to any one of claims 3 or 4, wherein if the position of
the center of gravity is within the first region (9), than the operational component
(2) is controlled by the operational commands of the operator and if the position
of the center of gravity is within the second region (10), than the operational velocity
is reduced to a scaled velocity and the operational component (2) is controlled by
the control signal (7).
6. The method (100) according to any one of claims 3 to 5, wherein the stability region
(8) comprises a third region (11), the first region (9) and the second region (10)
being contained in the third region (11) and wherein if the position of the center
of gravity is within the second region (10) and is approaching the third region (11),
than the operational velocity is set to zero.
7. The method (100) according to any one of claims 2 to 6, further comprising calculating
a commanded acceleration (23) at an actual time step and defined by the discrete derivative
of the corrected operational velocity (21, generating a corrected operational acceleration
(24), integrating said corrected operational acceleration (24) and generating an operational
velocity (25) to control the operational component (2).
8. The method (100) according to any one of claims 1 to 7,wherein estimating the dynamic
stability comprises an acceleration scaling process, the method (100) comprising generating
a corrected operational acceleration based on said acceleration scaling process, wherein
in particular the acceleration scaling process is carried out after the velocity scaling
process.
9. The method (100) according to claims 7 or 8, wherein the acceleration scaling comprises
a prediction of a position of a stability index relative to a stability region (8).
10. The method (100) according to any one of claims 1 to 9, wherein the stability index
is the zero moment point, ZMP, of the machine (1).
11. Control system (12) for controlling the stability conditions of a machine (1) moveable
on a ground (G) having at least an operational component (2), in particular a hydraulic
or electric actuator, for moving a portion (3) of the machine (1), and being maneuvered
by an operator through operational commands, the system (12) comprising:
at least a first sensor (13) for generating a first sensor signal (4) defining the
position of the portion of the machine (1);
at least a second sensor (14) for generating a second sensor signal (5) defining a
variation of the position of the portion of the machine (1) relative to the ground
(G); and
a control stability module (15) for receiving the first sensor signal (4), the second
sensor signal (5), and at least a command signal (6) defining the operational commands
of the operator for actuating the operational component (2) and for transmitting an
operational velocity to said portion (3) of the machine (1), the control stability
module (15) determining a stability condition of the machine (1) based on the first
sensor signal (4), the second sensor signal (5) and the command signal (6), and outputting
a control signal (7) to control the operational component (2) as a function of the
determined stability condition,
wherein the control stability module (15) comprises a static stability module (16)
and a dynamic stability module (17) for monitoring and estimating both the static
and the dynamic stability conditions of the machine (1), in particular by monitoring
and estimating the position of the center of gravity and of an index of stability
of the machine (1), relative to a contact area of the machine (1) with the ground
(G).
12. The system (12) of claim 11, wherein the static stability module (16) comprises a
velocity scaling module (18) for receiving the first sensor signal (4), the second
sensor signal (5) and the command signal (6) and for generating a corrected operational
velocity (21) and the dynamic stability module (17) comprises an acceleration scaling
module (19) for receiving a commanded acceleration (23) at an actual time step and
defined by the discrete derivative of the corrected operational velocity (21), generating
a corrected operational acceleration (24), integrating said corrected operational
acceleration (24) and generating a corrected operational velocity (25) to control
the operational component (2).
13. A working machine (1) comprising the control system (12) according to any one of claims
11 to 12.
14. A computer program comprising computer readable instructions which, when implemented
on a computer, causes the computer to carry out a method (100) according to any one
of claims 1 to 10.
15. A storage medium comprising the computer program according to claim 14.