Hopping Robot with Bidirectional Thrusters
20250121965 ยท 2025-04-17
Inventors
- Song Li (Kowloon, HK)
- Pakpong Chirarattananon (Hung Hom, HK)
- Songnan Bai (Kowloon, HK)
- Runze Ding (Kowloon, HK)
Cpc classification
B64U60/55
PERFORMING OPERATIONS; TRANSPORTING
B64U2201/10
PERFORMING OPERATIONS; TRANSPORTING
International classification
Abstract
A robot which includes an aerial unit having a thruster module; a passive leg mechanism operably coupled with the aerial unit; and a controller module configured to control operation of the aerial unit such that the robot is operable in at least a hopping mode. The thruster module is adapted to provide bidirectional thrusts. The bidirectional thrusters enable the robot to handle increased energy losses from ground impacts and the leg mechanism, accommodating heavier payloads.
Claims
1. A robot, comprising: an aerial unit having a thruster module; a passive leg mechanism operably coupled with the aerial unit; and a controller module configured to control operation of the aerial unit such that the robot is operable in at least a hopping mode; wherein the thruster module is adapted to provide bidirectional thrusts.
2. The robot of claim 1, wherein the aerial unit comprises a quadrotor; the quadrotor comprising the thruster module that further comprises a plurality of rotors, each of the rotors adapted to provide independently the bidirectional thrusts.
3. The robot of claim 2, wherein the quadrotor comprising a plurality of bidirectional motor controllers each connected to and adapted to control a corresponding one of the rotors.
4. The robot of claim 2, wherein each of the rotors has a ratio of thrust coefficients in a reverse direction to a forward direction respectively, which is in the range of 0.36 to 0.56.
5. The robot of claim 1, wherein the hopping mode comprises a descending phase, a stance phase, and an ascending phase of the robot; the thruster module adapted to provide a substantially downward thrust during at least part of the descending phase, and a substantially upward thrust during at least part of the ascending phase.
6. The robot of claim 5, wherein during a hopping cycle, the thruster module is adapted to change its thrust direction twice.
7. The robot of claim 5, wherein the descending phase comprises an unpowered descending sub-phase and a powered descending sub-phase; the ascending phase comprising an unpowered ascending sub-phase and a powered ascending sub-phase; the thruster module adapted to provide the substantially downward thrust during the powered descending sub-phase, and the substantially upward thrust during the powered ascending phase.
8. The robot of claim 1, wherein the passive leg mechanism comprises a telescopic leg arrangement which is spring-loaded with an elastomer module.
9. The robot of claim 8, wherein the telescopic leg arrangement comprises: an upper leg section fixed to the aerial unit; a lower leg section movably connected with the upper leg section via a connection module; and an elastomer module operably coupled between the upper leg section and the lower leg section.
10. The robot of claim 9, wherein the upper leg section comprises two upper legs that are separated apart and extending in parallel; wherein the lower leg section comprise a single lower leg located substantially equidistantly to the two upper legs and adapted to move relative to the upper legs.
11. The robot of claim 10, wherein the connection module comprises an upper bearing module and a lower bearing module which are fixed to the upper legs; the upper bearing module and the lower bearing module coupled to the lower leg such that the lower leg is adapted to move relative to the upper legs in a single direction.
12. The robot of claim 11, wherein the elastomer module comprises a lower mounting hook, an upper mounting hook, and one or more elastomers connected between the lower mounting hook and the upper mounting hook; the lower mounting hook fixedly connected to the lower bearing module; the upper mounting hook fixedly connected to the lower leg.
13. The robot of claim 1, wherein the controller module is configured to predict a landing location of the robot in the hopping mode.
14. The robot of claim 13, wherein the controller module is configured to determine a landing location of the robot for a next hopping cycle based on a landing attitude of the robot for a current hopping cycle.
15. The robot of claim 14, wherein the controller module is adapted to use a trained neural network to calculate the landing attitude based on a predicted landing location and a desired landing location.
16. The robot of claim 1, wherein the controller module comprises a height controller, a high-level position controller, thrust and attitude management, and a low-level attitude controller.
Description
BRIEF DESCRIPTION OF DRAWINGS
[0192] The foregoing and further features of the present invention will be apparent from the following description of preferred embodiments which are provided by way of example only in connection with the accompanying Figs, of which:
[0193]
[0194]
[0195]
[0196]
[0197]
[0198]
[0199]
[0200]
[0201]
[0202]
[0203]
[0204]
[0205]
[0206]
[0207]
[0208]
[0209]
[0210]
[0211]
[0212]
[0213]
[0214]
[0215]
[0216]
[0217]
[0218]
[0219]
[0220]
[0221]
[0222]
[0223]
[0224]
[0225]
[0226]
[0227]
[0228]
[0229]
[0230]
[0231]
[0232]
[0233]
[0234]
[0235]
[0236]
[0237]
[0238]
[0239]
[0240]
[0241]
[0242]
[0243]
[0244]
[0245]
[0246]
[0247]
[0248]
[0249]
[0250]
[0251]
[0252]
[0253]
[0254]
[0255]
[0256]
[0257]
[0258]
[0259] Before any embodiments of the invention are explained in detail, it is to be understood that the invention is not limited in its application to the details of embodiment and the arrangement of components set forth in the following description or illustrated in the following drawings. The invention is capable of other embodiments and of being practiced or of being carried out in various ways. Also, it is to be understood that the phraseology and terminology used herein is for the purpose of description and should not be regarded as limiting.
[0260] In the drawings, like numerals indicate like parts throughout the several embodiments described herein.
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0261] In the claims which follow and in the preceding description of the invention, except where the context requires otherwise due to express language or necessary implication, the word comprise or variations such as comprises or comprising is used in an inclusive sense, i.e. to specify the presence of the stated features but not to preclude the presence or addition of further features in various embodiments of the invention.
[0262] As used herein and in the claims, couple or connect refers to electrical coupling or connection either directly or indirectly via one or more electrical means unless otherwise stated.
[0263] Terms such as horizontal, vertical, upwards, downwards, above, below and similar terms as used herein are for the purpose of describing the invention in its normal in-use orientation and are not intended to limit the invention to any particular orientation.
[0264] The invention generally relates to a robot that includes an aerial unit, a passive leg mechanism operably coupled with the aerial unit, and a controller configured to control operation of the aerial unit such that the robot is operable in, at least, a flight mode and a hopping mode. The following disclosure provides some example embodiments of the robot of the invention.
[0265] In an first embodiment of the invention, there is provided a hybrid hopping-flying robot that augments a micro aerial vehicle with a passive elastic telescopic leg (see
[0266] The passive elastic leg differentiates the hybrid hopping and flying robot in some embodiments of the invention (i.e., referred to as Hopcopter herein) from existing jumping robots, allowing it to achieve unprecedented hopping agility. The absence of stance actuation permits a shorter stance phase, enabling higher jumping frequencies and agility. To demonstrate high hopping agility, a 42-gram Hopcopter prototype is constructed, and the robot's hopping dynamics are identified and characterized. Based on the results, a model-based hopping controller is developed to stabilize the robot during hopping using external feedback. For each hop, the passive telescopic leg absorbs and stores kinetic energy through elastic recoil, while the thrust-based actuation compensates for energy loss and stabilizes attitude and velocity. Experimental results show that the robot can accurately track a reference trajectory, validating the proposed three-dimensional hopping model and showing that the Hopcopter's average hopping speeds approach the theoretical ballistic limit, surpassing state-of-the-art jumping robots including Salto-1P [32]. This distinguishes the proposed approach from those relying on latched elastic actuation, which imposes limitations on continuous hopping and variable jump heights, and from those relying on unlatched series elastic actuation, which require a longer stance time. In flight mode, the robot in some embodiments of the invention functions as a regular micro aerial vehicle, allowing for stable hovering, agile maneuvering, and smooth flight-hopping transitions. Intermittent hops during flight dramatically enhance instantaneous accelerations for rapid and tight turns.
[0267] To attain stable hopping using onboard sensors only, the robot is outfitted with active aerodynamic stabilizers. These surfaces dynamically influence landing attitude, stabilizing hopping speed and attitude without external feedback or vision. The realized hybrid hopping-flying locomotion of Hopcopter offers unprecedented versatility in navigating complex environments. Unlike wheeled aerial vehicles that struggle to negotiate rough terrains [44]-[50], the hopping ability allows the robot to overcome obstacles and traverse uneven surfaces. Compared to flight-capable bipedal and legged robots [51]-[54], the hopping mechanism is far more efficient, requiring less energy for locomotion. By seamlessly integrating flying and jumping, our approach enables synergistic hybrid locomotion, with the flight mechanism facilitating passive jumping and intermittent jumping generating large accelerations for rapid turns when flying. This multimodal locomotion capability has the potential to radically expand the range of environments in which robots can operate effectively and efficiently, from cluttered indoor spaces to rugged outdoor terrains.
Hopcopter Platform in Some Embodiments
[0268] A hybrid hopping and flying robot (or vehicle) according to an embodiment is provided. The hybrid hopping and flying robot is referred to as Hopcopter herein. As shown in
[0269] The design incorporates two key features to simplify the stance phase dynamics. Firstly, the passive leg mechanism 20 (i.e., the telescopic leg), at 22 cm long (from the foot to the CoM of the robot), is over twice the length of the quadcopter 10's 9 cm wheelbase. Secondly, the rubber bands 30 are pre-stretched, enabling the elastic force to overpower the robot 100's weight. These features allow the robot 100 to be treated as a point mass during the stance phase and decouple the dynamics from gravity's orientation as detailed in the subsequent section.
Aerial and Stance Dynamics
[0270] In flight, Hopcopter's dynamics are characterized by propelling torque (roll, pitch, and yaw) and collective thrust, indistinguishable from a regular rotorcraft [55]-[57].
[0271] However, when functioning as a monopedal hopper, the robot is a hybrid dynamical system, with one jumping cycle alternating between the aerial and terrestrial stages, separated by the ground contact [58]-[60]. For modeling purposes, in this work, the movement of the CoM of the hybrid robot in each jumping cycle is divided into two phases: aerial (AP), stance (SP) phases, separated by two key timestamps: landing (t.sub.LD) and takeoff (t.sub.TO) as illustrated in
[0272] Without the ground contact, in the AP, the robot shares the same flight dynamics with a regular quadcopter with six degrees of freedom (DoFs) in the form of rotational and translational motion. Upon landing, under the condition of no slippage between the foot and the ground [58], [59], the attitude and position of the robot are physically coupled. The ground contact acts as a pivot for the body attitude, with the distance to the CoM changing with the leg contraction. The foot collision marks the transition between AP and SP. A comprehensive model consists of two sets of dynamics and the state transitions between them. Inspired by the classical spring-loaded inverted pendulum (SLIP) model [59], [61], the embodiments of the invention propose a simplified yet complete three-dimensional jumping model that captures the dominant effects, suitable for real-time jumping control.
Aerial Phase
[0273] When flying, the robot is modeled as a rigid body with weight mg and inertia tensor I=diag (I.sub.x, I.sub.y, I.sub.z) in a gravity field. The lightweight telescopic leg is abstracted as a thin rod with a preloaded elastomer. The leg axis passes through the CoM of the robot and aligns with the thrust direction of the propellers as schematically illustrated in
[0274] In the aerial phases, the equations of motion are identical to those of a regular multirotor vehicle [55]-[57], [62] and given by
where p=[x, y, z].sup.T denotes the position vector of the CoM of the robot in the inertial frame {x.sub.w, y.sub.w, z.sub.w}. The z axis of the body-fixed frame {x.sub.b, y.sub.b, z.sub.b}, as seen in the inertial frame, represents the thrust direction of the propellers: z.sub.b=Re.sub.3, where RSO(3) is a rotation matrix mapping the body-fixed frame to the inertial frame and e.sub.3=[0,0,1].sup.T is a basis vector. =[.sub.x, .sub.y, .sub.z].sup.T is the body-centric angular velocity. The summation f.sub.i denotes the total thrust magnitude and T.sub.P is the total propelling torque in the body frame. Together f.sub.i and .sub.p are control inputs that can be commanded via distributing the power between the four rotors. In a regular flight regime, aerodynamic drag can be neglected [56], [62].
Landing Transition
[0275] Once landed (timestamp t.sub.LD in
[0276] Based on the measurements from the drop tests (see Materials and Methods section below, and
where ll.sub.0 is the leg contraction and l.sub.P is the pre-stretched length of the elastomer. The friction term accounts for the dissipating energy that results in a hysteresis behavior brought by the loading/downstroke ({dot over (l)}<0) and unloading/upstroke ({dot over (l)}>0) motion (see
[0277] Assuming no slippage (thanks to the pointy foot), the ground contact point can be regarded as a free-to-rotate spherical hinge and the CoM of the robot is restricted to the translation along the leg axis and the rotation about the foot as shown in
Stance Phase and Takeoff Transition
[0278] Unlike existing studies of the three-dimensional SLIP models [58], [63], the complexity of the stance dynamics of the Hopcopter is further reduced owing to the strategic design decision to substantially pre-stretch the elastomer. As detailed in Note S2, when the directions of {dot over (p)}(t.sub.LD) and z.sub.b(t.sub.LD) are largely aligned, the centrifugal acceleration is negligible and the SP is governed by the axial and angular dynamics in the form of two semi-coupled differential equations:
[0279] Given the initial conditions ({dot over (p)}(t.sub.LD) and .sub.LD), the axial dynamics is independent of and dictated by the natural frequency ={square root over (k/m)}. An analytical solution of l(t) and the takeoff timestamp t.sub.TO corresponding to the moment when the elastic force vanishes (l(t.sub.TO)=l.sub.0) are yielded as detailed in Note S3. With the expression of l(t), Equation (7) states that {dot over ()}(t)=l.sub.0.sup.2{dot over ()}(t.sub.LD)/l.sup.2(t). The time integration =.sub.t.sub.
where R(e.sub., ) is a rotation matrix based on the axis-angle representation. Letting z.sub.b(t.sub.TO)=R(t.sub.TO)e.sub.3 be the primary body axis at t.sub.TO, the takeoff velocity {dot over (p)}(t.sub.TO) is obtained by projecting the axial {dot over (l)}(t.sub.TO) and tangential speeds l.sub.0{dot over ()}(t.sub.TO) of the robot at t.sub.TO to the inertial frame. This results in {dot over (p)}(t.sub.TO)={square root over (l.sub.0.sup.2{dot over ()}.sup.2(t.sub.TO)+{dot over (l)}.sup.2(t.sub.TO))} with the direction specified by the angle between z.sub.b(t.sub.TO) and {dot over (p)}(t.sub.TO), .sub.TO=arctan (l.sub.0{dot over ()}(t.sub.TO)/{dot over (l)}(t.sub.TO)). In the vector form, this is given by
[0280] As illustrated in
[0281] With the identified model coefficients ={square root over (k/m)}, f.sub.e/m, and l.sub.p in Table S1) from the drop tests (see Materials and Methods section), the takeoff state of the robot specified by , .sub.TO and {dot over (p)}(t.sub.TO) is predicted according to the landing state (.sub.LD and {dot over (p)}(t.sub.LD)) in
[0282] This forms the basis of the model-based hopping controller.
Model-Based Hopping Controller
[0283] Similar to other spring-mass monopeds, the passive jumping dynamics of the Hopcopter is unstable and lossy. Stabilizing the attitude of the robot in the aerial phase to guarantee an upright landing attitude is insufficient to prevent the horizontal speed from diverging after consecutive jumps [58], [63], [64]. Concomitantly, energy must be injected into the system to compensate for losses in both stance and aerial phases. However, unlike monopedal hoppers with direct leg actuation (e.g., linear hydraulic and hip actuators in [65] or a series-elastic actuator in [32]), the stance phase of the Hopcopter is completely passive. This unique hopping mechanism demands a dedicated control framework.
[0284] The proposed controller for the Hopcopter differs from widely employed policies [32]-[34], [64] based on Raibert's hopping machine [65] and other jumping controllers [34], [36], [38], [58], [63], [66]. The controller according to an embodiment allows the robot to take off in a desired direction in three dimensions. This capacity enables the robot to track trajectories while hopping and facilitates smooth transitions between aerial and terrestrial modes, enabling complex hybrid locomotion. For instance, during high-speed flight, the Hopcopter leverage the ground contact or environment to generate an instantaneous burst of acceleration and hop to decelerate, turn, or acceleratesignificantly improving agility beyond flight alone.
[0285] The control strategy takes advantage of the derived model of the SP dynamics in order to (i) decrease the control effort and (ii) decouple the altitude control problem from the landing control problem as much as practically possible. As a result, the trajectory of the robot in the aerial phase is mostly ballistic and the landing position control is accomplished through the control of the landing attitude z.sub.b (t.sub.LD), in a similar manner to the control of the touchdown angle in [32]. This differs from an existing jumping quadrotor [43], in which the position control is directly implemented during the aerial phase using a flight controller designed for a small rotorcraft. The framework renders the hopping locomotion markedly more efficient than flying. Besides, since the elastic force present in the SP dominates the propelling thrust, the use of the ground reaction force through the elastic leg for position control results in superior jumping agility.
Overview of the Hopping Control Strategy
[0286] Since the hopping motion is cyclic and the aerial phase of the trajectory is primarily ballistic, the embodiments of the invention regulate the landing attitude of the current hopping cycle (indexed k) to yield the desired landing location in the subsequent hop (indexed k+1, as shown in
Landing State Prediction
[0287] The high-level hopping controller loop is executed once per jump cycle. Starting from the apex of cycle k, the total thrust of the Hopcopter is nominally set to zero and the unpowered robot follows a ballistic trajectory as illustrated in
[0288] During the descent, the attitude of the robot is controlled with the collective thrust and angular velocity minimized, allowing the motion to be treated as free fall from an altitude of z(t)l.sub.0.
Altitude Control and Next Landing Location
[0289] Based on the landing setpoint attitude z.sub.b(t.sub.LD)=R(t.sub.LD)e.sub.3 and the computed landing velocity {dot over (p)}(t.sub.LD), the stance phase dynamics (Equation 6 and Equation 7) is integrated forward to produce the liftoff state R(t.sub.TO) and {dot over (p)}(t.sub.TO) using Equation 8 and Equation 9 with (t.sub.LD)=arccos(z.sub.b.sup.T(t.sub.LD){dot over (p)}(t.sub.LD)/|{dot over (p)}(t.sub.LD)|). Immediately after taking off (detected by a significant change in the axial acceleration), the low-level controller (v) (described in Materials and Methods) swiftly re-orients the robot to an upright orientation (z.sub.b=e.sub.3) to minimize the horizontal thrust. Thus, the landing position of cycle k+1 is entirely determined by the lateral component of the liftoff velocity ([e.sub.1, e.sub.2].sup.T{dot over (p)}(t.sub.TO)|.sub.k) and the time the robot spends in the aerial phase. This flight time is varied according to the setpoint altitude as the aerial maneuver is divided into a powered ascent (PA) and an unpowered projectile (PJ) (
where (t.sub.TO)=e.sub.3.sup.T{dot over (p)}(t.sub.TO) is the vertical liftoff speed and z.sub.d denotes the relative hopping altitude. The former case is when the vertical liftoff speed is insufficient for the robot to passively reach the setpoint and the latter is when the jump height without any thrust assistance is already over z.sub.d. During the powered flight phase, the propelling thrust counterbalances the weight and the vehicle retains its upward speed of (t.sub.TO). The rest of the trajectory is a projectile with duration of
in which the first term refers to the rest of the time the robot spends ascending and the latter is free fall. Finally, the landing position for cycle k+1 is iteratively updated as
[0290] The outcomes of Equations 11-15 verify that the touchdown location of the next cycle (k+1) is predominantly determined by the landing attitude z.sub.b (t.sub.LD) of the current cycle.
Landing Attitude Computation and Aerial Trajectory Planning
[0291] From the estimated current landing position p(t.sub.LD)|.sub.k provided by Equation 11, the controller employs Equation 15 to iteratively search for the touchdown attitude that minimizes the predicted position error of the next landing,
under the no-slip condition as constrained by the ground friction coefficient (Note S4)
[0292] Depending on the setpoint of p.sub.d and the current state of the robot, the error can be marginalized to zero or a particular value, which indicates whether the robot is able to reach the desired location in a single or multiple steps.
Thrust and Attitude Manager
[0293] After the landing attitude z.sub.b (t.sub.LD) is determined from Equation 16, it is realized in when the robot is falling by the low-level controller (v). To regulate the jumping altitude, after the liftoff, the robot is quickly reoriented to an upright direction and the collective thrust magnitude is maintained at f.sub.i=mg for t.sub.PA as described by Equation 13. The action injects energy into the system to compensate for any losses. Thereafter, the robot remains upright until the landing location is again predicted by (i) for the next jump cycle.
Planning Strategy for Trajectory Tracking
[0294] Unlike flying robots, which are able to stabilize any control errors continuously, the cyclic nature of the hopping motion only allows the corrective measure to be executed once per cycle. The action to alter the landing attitude when the robot is falling only affects the landing location in the next cycle. Therefore, to track a predefined trajectory, the desired landing location p.sub.d in Equation 16 is chosen to be the desired location of the robot at t.sub.LD|.sub.k+1, under the assumption that t.sub.LD|.sub.k+1t=t.sub.LD+2{square root over (2z.sub.d/g)}. This consideration eliminates the inherent latency, allowing the robot to track a time-varying trajectory more precisely. Still, the complexity of achievable trajectories is intrinsically limited by the hopping frequency.
Hopping Tests and Model Verification
[0295] To validate the identified parameters and the derived dynamic model, a preliminary controlled hopping experiment with the developed controller is performed. As detailed in Materials and Methods, the landing states ({dot over (p)}(t.sub.LD) and .sub.LD) of 130 consecutive jumps were recorded. The experiment employs the devised model to predict the takeoff states in terms of the body rotation and takeoff angle .sub.TO and compares the predictions with the measurements as presented in
[0296] Next, the tracking performance was evaluated using circular and step trajectories. For the circular trajectory, the robot was instructed to hop at a constant altitude (0.60 m) around a circle with a radius of 1.20 m at an average speed of 0.2 ms.sup.1. The step trajectory demands the robot to maintain a jump height of 0.75 m and laterally translate by up to 2 m several times in 40 s. Three repeated trials were conducted for each trajectory. The resultant trajectories are shown in
Hopping Agility
[0297] Next, an experiment is conducted to investigate the relationship between the hopping height and frequency of the robot, and to calculate its hopping agility, defined as the cycle-averaged vertical speed of the robot v=2hf (The definition of hopping agility presented here deviates from that of vertical jumping agility as defined in (31). The latter refers to the vertical climbing speed). The robot is commanded to hop in place for over 60 s using the developed position controller. The test is divided into seven segments, each corresponding to a different hopping height ranging from 0.59 m to 1.63 m. In each segment, the robot hopped at a constant height for at least six cycles (
[0298] As seen in
[0299] The hopping agility is computed as the product of the height and frequency. Due to the short stance time (<45 ms), the Hopcopter achieved a hopping agility of 2.38 m/s when h=1.63 m, which is 30% higher than 1.83 m/s for 1.25 m attained by Salto-1P (with a stance time over 120 ms) [31], [32] and other jumping robots (
Synergistic Hybrid Locomotion for Agile Maneuvers
[0300] Strategically combining hopping and flying can uniquely enhance maneuverability and agility, as the hopping mode can generate bursts of acceleration for flight. By momentarily switching to hopping mode during flight for a single jump, the monopedal robot can generate an instantaneously large acceleration from the ground normal. Using the developed hopping model, the takeoff direction is regulated through the landing attitude. This operation assists the robot in decelerating, accelerating from hover, or turning tightly, providing enhanced agility despite the limited thrust-to-weight ratio (for example 1.2).
[0301] The first maneuver demonstrates the use of elastic leg and ground normal to accelerate and then decelerate the robot in flight. As shown in
[0302] Next, the agility is illustrated through rapid and tight turns. The robot leverages the ground to swiftly change the travel direction by 90 as depicted in
[0303] To further push the agility limit, hybrid jumps on a wall and a tilted surface are realized. Non-horizontal surfaces extend the range of non-slip landing and takeoff angles (Note S4). This effectively raises the achievable lateral acceleration. In the experiment, the robot flies toward a wall at a speed over 4 ms.sup.1. Within 0.54 s or 1.8 m prior to reaching the surface, the attitude controller reorients the robot for landing and the robot touches down on the wall with the tilt (pitch) angle of 570 and landing speed of 3.6 ms.sup.1 (
[0304] The results demonstrate that the jump-flying locomotion enables average and instantaneous lateral accelerations that are remarkable compared to its thrust-to-weight ratio of only 1.2. The Hopcopter can accomplish instantaneous and average accelerations of over 14 g and 1.2 g by using the ground normal and the elastic leg in intermittent jumps. This is notably higher than the reported accelerations of other micro aerial robots with similar or higher thrust-to-weight ratios [56], [57], [67]. The hybrid locomotion is especially advantageous for robots with limited thrust power, such as small and lightweight platforms, as it allows them to perform rapid and tight maneuvers that would otherwise be impossible.
Self-Stabilized Hopping Via Active Aerodynamic Stabilizer
[0305] According to the proposed hopping dynamic model, in hopping, the takeoff velocity of the robot is directly dependent on landing attitude and landing velocity. This implies that to stabilize the robot, a velocity measurement as feedback is necessary. To reduce the robot's dependence on sensors and external measurements, an actuated aerodynamic stabilizer is proposed to interact with the airflow to stabilize the robot. The strategy to enable the robot to hop in place without position or velocity feedback involves the adjustment of the landing angle .sub.LD based on the robot's velocity {dot over (p)} in the falling phase. This is by appropriately balancing the attitude controller with the rotational torque created by the stabilizer.
Aerodynamic Stabilizer
[0306]
Damper-Mediated Stability
[0307] The stabilizers are activated only during the descent while hopping. They use the upward airflow to create a torque that rotates the robot's attitude and reduces the landing angle .sub.TD by making its major axis parallel and opposite to its translational velocity: z.sub.b.fwdarw.{dot over (p)}. In the meantime, the attitude controller applies a propelling torque to make the robot upright z.sub.b.fwdarw.z.sub.w=e.sub.3. As a consequence of the competing efforts, the robot lands with its major axis z.sub.b pointing between the vertical axis and the velocity vector {dot over (p)}(t.sub.LD) (see
[0308] To manifest the damper-assisted stability, Poincar maps are numerically constructed assuming a constant hopping height of 0.5 m. The landing state is chosen as the fixed point of the limit cycle. Under the influence of the attitude controller and the aerodynamic stabilizer, the vectors z.sub.w, z.sub.b, and {dot over (p)}(t.sub.LD) are coplanar. The angle between the landing velocity and the vertical, .sub.z=arccos(z.sub.w.sup.T{dot over (p)}(t.sub.LD)/{dot over (p)}(t.sub.LD)) (see
[0309] The Poincar maps plot .sub.z|.sub.k+1/.sub.z|.sub.k for different .sub.z|.sub.k and |.sub.k at a particular hopping height, where k represents the hopping cycle (
Hopping Stability Test
[0310] To substantiate the insights from the Poincar analysis, three sets of experiments are conducted to evaluate the performance of the hopping robot under each control strategy (attitude control and aerodynamic stabilizer) individually, as well as their combination. For each set of experiments, the robot starts to hop after a drop from about 75 cm. The hopping trajectory is tracked to determine the robot's attitude and velocity in the landing phase.
[0311] When utilizing only the attitude controller (dashed line indicated by controller only), the robot is expected to land consistently in an upright orientation or 0=0, but without any guarantee on the horizontal hopping speed or .sub.z. Experimental results confirm this (
[0312] Relying solely on the stabilizer (the attitude controller was only active in the CP, i.e., when the robot is ascending) is predicted to marginalize the difference between .sub.z and , but not directly reducing .sub.z. Again, experiments validate this (
[0313] In contrast, experiments integrating both the attitude controller and stabilizer yield highly robust hopping as theorized. The robot retains near zero horizontal velocity component and near upright attitude across multiple successive jumps (white dots in
Field Hopping Demonstration
[0314] To further demonstrate the robustness and reliability of the stabilizing strategy, three field tests are conducted in varying environments, including stairs, a corridor, and outdoor terrain. In each test, a human operator commands the desired landing attitude for the controller, though the actual landing posture depends on both the attitude setpoint and aerodynamic stabilizer as previously described. The adjusted desired landing attitude results in a bias that directs the robot to hop toward the prescribed direction. This control scheme allows the Hopcopter to ascend/descend a flight of stairs, navigate the narrow corridor space, and traverse rough terrain. Through these field experiments, it is verified that the active stabilizer enables stable and resilient mobility without requiring vision or additional sensors for velocity feedback.
[0315] As described, the embodiments of the invention provide a hybrid hopping and flying robot (Hopcopter) that combines hopping and flying capabilities to achieve high-performance locomotion. Its passive telescopic leg distinguishes it from existing bio-inspired jumping robots that rely on latched or unlatched elastic actuation as it dispenses the need for a trigger, actuation in stance, or variable mechanical advantage, making it mechanically simpler and more reliable. The thrust-based actuation of the passive telescopic leg allows fine-tuning of jump height and enables the Hopcopter's exceptional hopping agility, surpassing the state-of-the-art jumping robots. The short stance phase enabled by the absence of actuation in the stance phase permits higher hopping frequencies, resulting in its high agility. The robot achieves a maximum velocity of 2.38 m/s at a jump height of 1.63 m, exceeding the highest agility reported in jumping robots (
[0316] The Hopcopter's ability to both fly and hop facilitates rapid changes in flight speed and direction. The robot's jumping ability can be leveraged to mitigate damage from collisions with walls or ground by employing jumping maneuvers. The integration of attitude control and aerodynamic stabilizers establishes the robot's hopping control autonomy. Poincar analysis and experiments show that the attitude controller and aerodynamic stabilizers work together synergistically to stabilize the Hopcopter's hopping dynamics. Without external feedback, the robot achieves over 56 consecutive jumps with near-zero velocity and upright landing-demonstrating the value of integrating attitude control and aerodynamic surfaces.
[0317] Crucially, the passive leg design of Hopcopter could be readily applied to conventional rotorcraft. With simple addition of an elastic leg and control changes, a standard quadcopter could transform into a hopping robot, unlocking new performance frontiers through hybrid locomotion. Overall, the Hopcopter represents an improved platform that transcends the limitations of aerial or terrestrial locomotion alone, demonstrating the potential of integrating flight and hopping capabilities.
Endurance and Power Efficiency
[0318] Unlike the aerial mode, the Hopcopter generates thrust intermittently rather than continuously during the hopping mode. This mode of operation presents an opportunity to substantially extend Hopcopter's operation time while reducing power consumption. To evaluate the endurance, a continuous jumping test is conducted with a fully charged 250-mAh single-cell Li-Ion battery (8.3 g). The robot hops continuously for over 1246 s (20.8 minutes). With a 650-mAh Li-Ion battery (16.8 g), the endurance increases to over 3052 s (50.9 minutes). However, the total mass of the robot (43.1 g) with a high-capacity battery exceeds the maximum takeoff weight for flight (42.0 g). Battery voltages recorded onboard during the tests are shown in
[0319] The lack on a reliable onboard current sensor and the weight limitation render direct measurement of the robot's operational power consumption impractical. Nevertheless, the duty cycle of the motors is used as a metric to compare the flight and terrestrial operations.
[0320] This is because the robot is required to constantly generate Tmg when hovering, whereas it only generates T=mg momentarily after takeoff while hopping. Defining the vehicle-based duty ratio D=(1/T).sub.T(f.sub.i/mg)dt, D=1 is obtained for the benchmark quadcopter flight. In endurance testing, the Hopcopter spends over 85% of time in ballistic and stance phases with minimal thrust for attitude control (f.sub.i<0.11 mg outside the powered phases, see
Materials and Methods
Experimental Setup and Measurements
[0321] The experiments are carried out in a 332.5-m.sup.3 arena with ten motion capture cameras (for example, OptiTrack Prime 13w). The pose measurements are used for both control and ground truth measurements. The high-level controllers, including the hopping and flight controllers, are implemented by Python on the ground computer and executed at 100 Hz. The custom attitude controller is implemented onboard and operated at 1 kHz. The robot and the ground station are communicated through a radio module (for example, Bitcraze Carzyradio PA) via Crazyflie Python API.
Drop Tests for Parameter Identification.
[0322] As the stance phase dynamics captured by Equations 6 and 7 are subject to a few unknown lumped physical parameters, namely ={square root over (k/m)}, f.sub.c/m, and l.sub.p (l.sub.0=22 cm is a design parameter), a drop test is devised to identify these model parameters according to the axial dynamics of the robot (Equation 6) prior to applying the equations to for predicting and controlling the hopping motion.
[0323] The setup of the drop tests is schematically presented in
[0324] Both the gripper and the camera can be controlled by the same computer. The system is schematically illustrated in
[0325] The tests are carried out at three drop heights: 0.68, 0.82 and 0.95 m, with four drops at each height. The altitude of the robot in the free-drop experiments is indicated with twelve reconstructed trajectories as plotted in
[0326] The identified parameters, listed in Table S1, corroborate that the weight of the robot is negligible compared to the force of the pre-stretched elastomer as kl.sub.p/mg10.
Low-Level Control for Flight, Hopping, and Hybrid Maneuvers.
[0327] The same set of equations are applied to determine the rotor commands for flight and when the attitude of the robot during the aerial hopping phase is regulated. To achieve the designated attitude, a proportional-integral-derivative controller [55] is first implemented to compute the required body-centric torque .sub.p,d.
[0328] Depending on the operational demand, the target thrust magnitude T.sub.d can be zero, mg, or a particular value. To evaluate the force allocation between four rotors, f=[f.sub.1, f.sub.2, f.sub.3, f.sub.4].sup.T and a 44 configuration matrix A are defined for power distribution
[0329] To ensure that f.sub.i0 even when T.sub.d=0, the following attitude-priority allocation (similar to [57]) is employed to compute f.
[0330] Despite that the collective thrust generation may not be correctly set to T.sub.d, this assures the torque is correctly generated (.sub.p,d=.sub.p) and minimizes the error of thrust (TT.sub.d) when the desired thrust and torque may cause saturation of motors, especially for the unpowered projectile where T.sub.d is set to zero.
Model Verification.
[0331] The robot is commanded to hop at varying altitude setpoints in the range of 0.5 to 0.7 m and translate laterally in the range of 0 to 1 m per step for over 90 s. The trajectory is recorded. The data are processed to obtain the landing states and takeoff states. The landing and takeoff timestamps are identified from the CoM location. The transition velocities ({dot over (p)}(t.sub.LD), {dot over (p)}(t.sub.TO)) and attitude states (z.sub.b(t.sub.LD), z.sub.b(t.sub.TO)) with respect to the inertial frame are deduced. Since, in practice, these four vectors may not be perfectly coplanar as modeled in
[0332] The averaged value of the objective function in Equation 20 is 0.8, indicating minimal misalignment. After the reprojection on to the rotational plane normal to e.sub., the angles .sub.LD, and .sub.TO for each jump are obtained. From the data of 130 jumps in 90 s, a wide region of the landing state (1.5<{dot over (p)}(t.sub.LD)<3.3 ms.sup.1 and 0<.sub.LD<20) is covered.
Poincar Maps for Hopping Stability Analysis.
[0333] The constructed Poincar maps assume a constant jumping height z.sub.d. Hence, the vertical landing speed at cycle k is determined by (t.sub.LD)={square root over (2gz.sub.d)}. Given the landing attitude |.sub.k and the angle of the landing velocity .sub.z|.sub.k, the landing angle .sub.LD|.sub.k=||.sub.k.sub.z|.sub.k| is calculated under the assumption that vectors z.sub.W, z.sub.b (t.sub.LD)|.sub.k, and {dot over (p)}(t.sub.LD)|.sub.k, are coplanar and orthogonal to the rotational axis e.sub.. The takeoff states, z.sub.b(t.sub.TO).sub.k| and {dot over (p)}(t.sub.TO)|.sub.k, are obtained from Equation 8 and Equation 10. Following takeoff, the robot briefly throttles up in an upright orientation to compensate the energy lost (PA) before entering the ballistic trajectory (PJ). The horizontal velocity remains constant during flight. This implies the horizontal speed at takeoff at cycle k is equal to the horizontal speed at landing at cycle k+1. The vertical landing speeds at cycle k+1 and k are the same as dictated by the jump height z.sub.d. The angle of the landing velocity .sub.z|.sub.k+1 is then the direction of the landing velocity relative to the vertical. This allows to compute .sub.z|.sub.k+1 or .sub.z|.sub.k+1/.sub.z|.sub.k for any .sub.z|.sub.k and |.sub.k, which results in the Poincar maps describes the stability of .sub.z over jumping cycles (
Supplementary Notes
Moment of Inertia (Note S1)
[0334] After landing, the moment of inertia of the robot with respect to the ground contact point is obtained via the parallel axis theorem, taking into consideration the ground as the location of the axis of rotation,
where I.sub.cm=diag(I.sub.x,I.sub.y, I.sub.z). For a micro quadcopter (Bitcraze, Crazyflie 2.1), I.sub.x, I.sub.y, I.sub.z2 g.Math.cm.sup.2, whereas ml.sup.2110.sup.4 g.Math.cm.sup.2 for l.sub.0=0.22 m and m=27 g. That is, thanks to the long leg design, the term ml.sup.2 dominates. Consequently, the robot can be treated as a point mass (instead of a rigid body) when the yaw rotations are minimized.
Simplification of the Stance Dynamics (Note S2)
[0335] When the spring force dominates the weight of the robot, the motion of the robot in stance is described by Equation 5. Treating the non-slip ground contact point as the origin of an auxiliary inertial frame of reference, the position of the CoM is described by the leg vector l(t)z.sub.b. The axial and angular dynamics correspond to the motion of l(t) and z.sub.b(t).
[0336] Starting with the angular motion, the angular rate about z.sub.b upon landing is assumed to be minimized by the attitude controller. The initial angular momentum in the stance phase specified by the angular velocity {dot over ()}(t.sub.LD)e.sub. (perpendicular to z.sub.b as described in Landing Transition) as shown in
[0337] To derive the axial dynamics, {umlaut over (p)} in Equation 5 is expressed using the leg vector as d/dt(l(t)z.sub.b(t)). Since the leg axis z.sub.b(t) evolves according to the angular velocity {dot over ()}(t)e.sub., it follows that d/dt(z.sub.b(t))={dot over ()}(t)e.sub.z.sub.b(t) and Equation 5 becomes
[0338] To extract the axial dynamics, the projection of Equation S3 is taken along z.sub.b.
wherein the term {dot over ()}.sup.2l denotes the centrifugal acceleration brought by the rotation.
[0339] Lastly, the significance of {dot over ()}.sup.2l is considered in comparison to f.sub.e/m. The prototype is fabricated with a large pre-stretched elastic force. As the identified parameters listed in Table S1, f.sub.e/m>kl.sub.p/m=96 ms.sup.2. On the other hand, the upper bound of {dot over ()} can be estimated from the speed of the robot at touch down. For a jump height of h=1 m, |{dot over (p)}|{square root over (2gh)}=4.4 ms.sup.1. If the landing angle .sub.LD is around 200 or less (as evidenced in the experimental results in
Solutions of the Stance Phase Dynamics (Note S3)
[0340] Thanks to the simplification in Note S2, the stance dynamics is separated into axial and angular dynamics. The axial motion is captured by an unforced ordinary linear differential equation. The response of the systems obtained analytically.
[0341] Given the initial condition at landing with t=t.sub.LD as the initial timestamp, obtained is
[0342] During the downstroke ({dot over (l)}<0), the term sgn({dot over (l)}) in Equation 6 is 1, the solution is
with ={square root over (k/m)}. The time when the leg is fully contracted can be found by solving for {dot over (l)}(t.sub.MD)=0. This results in
[0343] This condition becomes the initial state of the next phase, in which the leg recoils ({dot over (l)}>0). The solution of Equation 6 in this time period is
[0344] Then, the takeoff time is found by solving Equation S6 for l(t.sub.TO)=l.sub.0. This yields
[0345] Therefore, the total time spent in the stance phase is
[0346] That is, the maximum stance time is inversely proportional to the square root of the stiffness k. Meanwhile, Equation S11 provides the knowledge required for computing the takeoff velocity. An example plot of l(t) in the entire stance phase is shown in
[0347] As per Equation 7, once l(t) is determined, one can integrate forward the angular dynamics to determine :
in which the expressions for 1(t) are taken from Equations S6 and S9.
Friction Limit (Note S4)
[0348] The derived model describing the SP dynamics hinges on the non-slip assumption. This may not be satisfied in extreme maneuvers when the friction coefficient is low. Since the elastic force (aligned with z.sub.b) dominates the SP dynamics, its vertical component becomes the ground normal and the lateral component should not exceed the friction limit. A slippage can be prevented by restricting the tilt angle of the robot arccos(e.sub.3.Math.z.sub.b) to be lower than tan.sup.1 in the entire stance phase. Since this angle is maximized either at t.sub.LD or t.sub.TO, this requires
as the tilt angle is maximized either at the landing or takeoff.
Measurements of Stance Phase Acceleration (Note S5)
[0349] Due to the motion capture system's limited sample rate (100 Hz) and spatial resolution (1 mm), the timestamps of the touchdown and takeoff events surrounding the short stance phase (t.sub.SP<45 ms, refer to the analysis in Note S3 and
[0350] To begin, the recorded position of the robot is inspected for a short time period before and after a jump and the trajectory is divided into three phases: the stance phase sandwiched by aerial phase characterized as the pre-jump and post-jump periods. The stance time t.sub.SP=t.sub.TOt.sub.LD is conservative assumed 45 ms, but the exact landing and takeoff timestamps are not known.
[0351] The trajectories of the robot before and after the jump ({circumflex over (p)}.sub.LD, {circumflex over (p)}.sub.TO) are assumed to be parametric functions of time, with the robot only subject to a constant vertical acceleration of {circumflex over ({umlaut over (p)})}.sub.LD,TO=a.sub.LD,TOe.sub.3 (nominally g for free fall). Under this assumption, the following expressions can be derived for the position and velocity of the robot:
where v.sub.LD and v.sub.TO are the landing and takeoff velocities to be determined, and
where s.sub.LD and s.sub.TO and the landing and takeoff locations to be determined.
[0352] To account for possible deviations in a.sub.LD and a.sub.TO from g due to attitude and altitude control before landing and after takeoff, unknown parameters ={a.sub.LD, a.sub.TO, v.sub.LD, v.sub.TO, s.sub.LD, s.sub.TO} along with the landing timestamp are simultaneously searched for. This is by conducting the least squares regression of the measured trajectory and the anticipated trajectory of the robot in the aerial phase before and after stance, with the interested periods being short time intervals just before (t.sub.LDt<t<t.sub.LD) and after (t.sub.TO<t<t.sub.TO+t) the stance.
[0353] Assuming the length of the stance phase is t.sub.SP=t.sub.TOt.sub.LD, given a particular length of time window t, the measured trajectories of the robot between t.sub.LDt to t.sub.LD and t.sub.TO to t.sub.TO+t should follows Equations S18 and S19. Based on this principle, t.sub.LD can be estimated by
[0354] where the sums are over the data points from the respective time ranges. t=0.4 s is selected to ensure sufficient data points (80) are included to determine 15 unknowns. Extending t may not lead to an improved fit as the acceleration may not be constant over a prolonged period thanks to the propelling thrust. Once the optimal parameters are determined, the landing and takeoff velocities can be evaluated using Equations S16 and S17. This method allows to compute the velocities without needing to take numerical derivatives, which can be sensitive to noise in the measurements and the choice of low-pass filter cutoff frequency.
[0355]
[0356]
[0357]
TABLE-US-00001 TABLE S1 Identified Parameters of the Hopcopter Parameter Description Value Unit l.sub.o original length of the leg 22.00 cm l.sub.p pre-stretch length of the elastomer 1.97 cm k spring constant of the elastomer 170.06 N/m m mass of the robot 34.8 g .sub.c constant friction 0.45 N
TABLE-US-00002 TABLE S2 Jumping height, frequency and the hopping agility of reported jumping robots Continuous Mass Jump Frequency Hopping Robot jumping (g) height (m) (Hz) agility (m/s) Hopcopter Y 34.8 1.63 0.73 2.38 1.50 0.77 2.31 1.33 0.82 2.18 1.15 0.88 2.02 0.96 0.97 1.86 0.76 1.07 1.63 0.59 1.19 1.40 Salto-1P [32] Y 98 1.25 0.73 1.83 Salto [31] Y 100 1.01 0.87 1.76 EPFL Jumper N 7 1.4 1/4 0.70 [13], [31] Hybrid-Spring N 22.5 32 1/120 0.53 Jumper [19] Inverted Cam Y 169 0.12 1.7 0.41 Jumper [21] Penn Jerboa [34] Y 2419 0.055 3.5 0.39 TAUB [22] N 23 3.35 1/20 0.34 Jollbot [12, 23] N 465 0.184 1/1.44 0.26 MSU Jumper [23] N 23.5 0.87 1/10 0.17 EPFL Jumper N 14.3 0.62 0.13 0.16 (Steerable) [24] Jumping Crawling N 59.4 1.62 1/28 0.12 Robot [25] Flea Robot [23, 26] N 1.1 0.64 1/15 0.09 Frogbot [23, 27] N 1300 0.9 1/30 0.06 Jumpglider [28] N 67.5 1.0 0.03 0.06 Jumping Crawler N 105 0.8 1/30 0.05 [20] Grillo 3 [29] N 22 0.1 0.125 0.03
[0358] In flight mode, the robot functions as a regular micro aerial vehicle, allowing for stable hovering, agile maneuvering. Besides, thanks to the passive leg, the robot can perform a synergistic hybrid jumping and flying locomotion by performing intermittent mid-flight jumps. For instance, during high-speed flight, the robot leverages the ground contact or environment to generate an instantaneous burst of acceleration and hop to decelerate, turn, or acceleratesignificantly improving agility beyond flight alone. Having a jumping leg also improves the endurance of the robot. In jumping mode, the robot generates thrust intermittently rather than continuously during the hopping mode. This mode of operation presents an opportunity to substantially extend robot's operation time and reducing power consumption when the robot is not necessary to keep aloft. Compared with flying, jumping mode can extend the operation time by four-fold.
[0359] To attain stable hopping using onboard sensors only, the robot is outfitted with an active aerodynamic stabilizer as a separate part. The stabilizer influences landing attitude, stabilizing hopping speed and attitude without external feedback or vision. The realized hybrid hopping-flying locomotion of the robot offers unprecedented versatility in navigating complex environments.
[0360] Some embodiments of the invention provide a hybrid hopping and flying robot comprising a micro quadcopter attached to a telescopic leg with an elastic element. The telescopic leg includes upper and lower sections, connected by guide wheel sets to allow vertical translation. Pre-stretched rubber bands are employed as an elastic element (elastomer). The design according to some embodiments of the invention enables the elastic force to dominate gravity and decouple the robot's dynamics from gravity's orientation which simplifies the jumping dynamics and enables a controlled jumping locomotion.
[0361] Some embodiments of the invention provide a model-based hopping controller with ability to control take-off velocity and landing positions of the robot, enabling trajectory tracking and complex hybrid locomotion. The controller may be configured to numerically solve for the landing attitude based on a model of dynamics of the robot during a hop. The controller may be configured to control the landing positions and takeoff velocities of the robot in three dimensions.
[0362] Use of ground reaction force through the elastic leg for efficient position control results in superior jumping agility compared to existing flying robots.
[0363] Various sensors can be carried for environmental detection for the hybrid hopping and flying robot. However, its unique of jumping locomotion enhances the agility of the movement of the robot and boosts its efficiency and prolongs its working time by over four-fold. In addition, thanks to the simple mechanical structure of the telescopic leg, this design can also be installed on conventional quadcopters as an additional component, allowing them to gain jumping locomotion.
[0364] According to the embodiments of the invention, by the combination of hopping and flying capabilities of the robot, mechanical simplicity and power efficiency can be achieved.
[0365] By its hybrid locomotion, the robot transcends the limitations of aerial or terrestrial locomotion alone, allowing it to navigate complex environments with ease and with boosted agility. Its ability to hop and fly enables rapid changes in the moving direction, making it more versatile than traditional aerial robots.
[0366] The passive telescopic leg design of the robot allows it to perform high-performance locomotion without the need for a trigger, actuation in stance, or variable mechanical advantage. This makes it mechanically simpler and more reliable than other bio-inspired jumping robots that rely on latched or unlatched elastic actuation.
[0367] The robot surpasses the state-of-the-art jumping robots, achieving a maximum velocity (jumping agility) of 2.38 m/s at a jump height of 1.63 m. Its thrust-based actuation allows fine-tuning of jump height, and its short stance phase enables higher hopping frequencies, resulting in remarkable agility.
[0368] Unlike aerial mode, the robot generates thrust intermittently during hopping mode, extending its operation time and reducing power consumption. This feature allows the robot to achieve a four-fold increase in endurance compared to benchmark quadcopters, making it more energy-efficient for long-duration tasks.
[0369] The passive leg design of the robot can be easily integrated into conventional rotorcraft, enabling standard quadcopters to transform into hopping robots with simple additions and control changes. This adaptability unlocks new performance frontiers through hybrid locomotion and broadens the potential applications for aerial and terrestrial robots.
[0370] It will also be appreciated that where the methods and systems of the invention are either wholly implemented by computing system or partly implemented by computing systems then any appropriate computing system architecture may be utilized. This will include stand-alone computers, network computers, dedicated or non-dedicated hardware devices. Where the terms computing system and computing device are used, these terms are intended to include (but not limited to) any appropriate arrangement of computer or information processing hardware capable of implementing the function described.
[0371] It will be appreciated by a person skilled in the art that variations and/or modifications may be made to the described and/or illustrated embodiments of the invention to provide other embodiments of the invention. The described/or illustrated embodiments of the invention should therefore be considered in all respects as illustrative, not restrictive. Example optional features of some embodiments of the invention are provided in the summary and the description. Some embodiments of the invention may include one or more of these optional features (some of which are not specifically illustrated in the drawings). Some embodiments of the invention may lack one or more of these optional features (some of which are not specifically illustrated in the drawings).
[0372] Another embodiment of the invention will now be described with reference to
[0373] This showcases the robot's potential for applications such as mobile sensing and mapping in challenging environments.
[0374] Two key technical contributions underpin this advancement in this embodiment. First, bidirectional thrusters [98]-[102] are introduced, enabling the robot to accelerate towards the ground during the descending phase of its hop. This additional actuation mechanism allows the robot to compensate for the increased energy dissipation resulting from heavier payloads, significantly expanding its load-bearing capabilities. Second, a more comprehensive derivation of the stance phase dynamics is presented. Unlike the model introduced above for the robot in
A. Prototype with Bidirectional Thrusters
[0375] The design of the robot in
[0376] The passive leg mechanism 220 is best illustrated in
[0377] The connection module contains an upper connector 241a that is mounted with an upper bearing module 225a, and a lower connector 241b that is mounted with a lower bearing module 225b. Both the upper connector 241a and the lower connector 241b are fixedly connected to the two upper legs 222a, which help maintain the distance between the two upper legs 222a and provide support to the upper bearing module 225a and the lower bearing module 225b. As can be seen in
[0378] The elastomer module is operably coupled between the upper leg section 222 and the lower leg section 224. The elastomer module contains an upper elastomer mounting hook 228 and a lower upper elastomer mounting hook 223. Each of the upper elastomer mounting hook 228 and the lower upper elastomer mounting hook 223 contains a plurality of fingers 228a, 223a, where between a finger 228a of the upper elastomer mounting hook 228 and a corresponding finger 223a of the lower upper elastomer mounting hook 223, an elastomer 243 (e.g., a rubber band) is connected.
[0379] To account for the difference in aerodynamic efficiencies of propellers in the rotors in the forward and reverse configurations, four types of propellers (diameters between 3 to 4 inches) are tested for thrust and torque coefficients in both configurations following the protocols in [104]. The results reveal that the ratio of thrust coefficients in the reverse direction to forward direction, defined as , varies from 0.36 to 0.56. The propeller type with the highest absolute (0.56) was selected.
[0380] As mentioned above the lower leg 224a is constrained to the upper legs 222a via two sets of bearings, constraining the relative movement between the upper leg section 222 and the lower leg section 224 to a single degree of freedom while minimizing the sliding friction. The telescopic motion is spring-loaded with the elastomers 243. In the default state when the leg length is l.sub.0, the elastomers are pre-streched by a length l.sub.p. The leg contraction results in further elongation of the elastomers beyond l.sub.p (
Thrust-based Hopping Strategy
[0381] Unlike previous hopping robots that used inertial motors[96], [105] or leg motors [92], [94], the robot 200 shown in
[0382] In particular, forward (upright) thrust is applied when the robot ascends, immediately after the robot takes off. This powered ascent strategy was similarly adopted in the robot shown in
[0383] The total energy of the robot's system will gradually decrease with each hopping step, due to the energy loss both in the terrestrial and aerial phase. In the terrestrial phase, the energy loss is caused by landing impact on the ground and the viscous dissipation of leg mechanism during stretching and compressing. Consequently, the magnitude of takeoff velocity will be smaller than the landing velocity as a proportion of e. While in the aerial phase, the energy will be lost due to the air drag especially at high translational moving velocity, which means the higher it hops, the more air drag the robot will be undertaken. To compensate for the lost energy in each hopping step, the thrust force generated from propellers is leveraged to inject energy to the robot's system during the aerial phase, as illustrated in
[0384] Next, the enhanced payload capability of the hopping robot in
[0385] For the robot to maintain a continuous jump at height h, it must be actuated to compensate for the energy loss. This is ideally achieved by applying upward (forward) propelling thrust T.sub.f during ascent and downward (reverse) thrust T.sub.r during descent when the robot is in the air as depicted in
independent of h as it cancels out on both sides.
[0386] To determine the maximum payload mass m.sub.p, the maximum forward thrust is considered using the notion of thrust-to-weight ratio =T.sub.f/m.sub.rg. In addition, since the reverse thrust is usually lower than the forward thrust, =T.sub.r/T.sub.f1 is introduced to indicate the performance of the bidirectional thruster. Employing these definitions, (21) becomes:
[0387] To understand the significance of (22), a regular flying robot with an identical thrust-to-weight ratio is considered. In such a case, the maximum payload mass is given by m.sub.p/m.sub.r=1. In comparison, for thrust-based hopping, the thrust-to-weight ratio is effectively amplified by a factor of (1+)/.
[0388] This amplification is influenced by two key factors: and . The energy loss factor is largely determined by the leg efficiency and can be dependent on the hopping height. For instance, previous 35-gram hopping robot with unidirectional thrust (=0) has an estimated of approximately 0.23 for jump heights from 0.68 m to 0.96 m. This implies an amplification factor of approximately 4.4. Theoretically, without considering control constraints, the 35-gram hopper with a thrust limit of 42 gf could carry a payload of up to 150 grams when control is not considered. Therein, the robot was able to hop while carrying a light payload with the total mass m.sub.r+m.sub.p=43 g, slightly over the thrust limit. However, the true payload capability was not analyzed or examined.
[0389] In the later section, it will be experimentally demonstrated that the robot in
[0390] Comparing with other aerial and terrestrial robots with power autonomy [79], [81], [82], [87], [24], [106]-[124] across size scales (
[0391] The dynamics of the hopping robot in
Model of the Flight Dynamics
[0392] Neglecting aerodynamic drag, in the aerial phase, the robot is regarded as a rigid body of mass m=m.sub.r+m.sub.p, indistinguishable from a regular quadrotor. The translational dynamic equation can be written into
where p=[x, y, z].sup.T denotes the position of the robot in the inertial frame, R is the rotation matrix associated with the body frame, e3=[0, 0, 1].sup.T is a basis vector, k{0, 1} indicates the spinning direction of the propellers (k=0 for forward thrust and k=1 for reverse thrust), .sub.i=1.sup.4 fi is the total thrust magnitude, and g is the free-fall acceleration.
[0393] The attitude dynamics in the aerial phase is governed by
where I is the inertial tensor, .sub.b=[.sub.x, .sub.y, .sub.z].sup.T is the body-centric angular velocity, .sub.p is the torque generated by the propellers.
[0394] Given the configuration of the robot with the propeller armlength d, the torque in (24) can be derived as
where I.sub.i indicates the location of the i.sup.th rotor, for example, l.sub.i=d{square root over (2)}[1, 1,0]. M.sub.i is the propeller's induced torque.
[0395] Due to the asymmetric profile of the propeller blades, individual rotor thrust f.sub.i and induced torque M.sub.i are dependent on the operating condition (forward or reverse thrust). Given the same motor commands or spinning rate, the magnitudes of both f.sub.i and M.sub.i are reduced by a factor of and .sub.m, respectively, for reverse operations. This characteristic must be taken into account when the low-level controller determines the motor commands from the desired thrust and torque values.
Air-Ground Transition
[0396] As a hybrid dynamical system, the robot exhibits a discrete dynamic behavior at the air-ground transitions.
[0397] Immediately after landing (timestamp: t.sub.LD), the nonslip pointy foot is considered as a spherical joint. The stationary ground contact point (pivot) can be regarded as the origin of the stance phase model. Defining p.sub.s=[x.sub.s, y.sub.s, z.sub.s].sup.T as the position of the Center of Mass (CoM) from the pivot, the initial position and velocity of the stance phase can be computed from the aerial phase state according
where l.sub.0 is the undeformed leg length. The landing time stamp t.sub.LD can be solved for based on p(t) from (23) and R(t) from (24) using
[0398] For the transition back from stance to aerial phase, the position and translational velocity at takeoff time are continuous and can be written as
with t.sub.TO being the takeoff time. This is when the elastic leg recoils to its original length or
[0399] Meanwhile, the attitude and angular velocity of the robot at takeoff moment can be found as
[0400] The dynamics of p.sub.s depend on the elastic leg mechanism as described below.
[0401] Unlike the previous SLIP-based model for the robot in
[0402] In the following model, the robot is regarded as a point mass rotating around the non-slip ground contact point. The design with a relatively long leg (nominal length: l.sub.0) allows neglecting the moment of inertia of the robot. Consequently, the equation of motion is simplified to
where k.sub.s is the linear stiffness of the elastomer, l=p.sub.s is the instantaneous leg length, and E is a linear damping coefficient.
Validation of the Stance Phase Model
[0403] To validate the stance phase model in (34) and identify relevant physical parameters, the landing and takeoff states of the robot are experimentally collected by dropping the robot from different heights (between 0.42 m and 0.88 m) and orientations. A total of 343 data points are collected (average height: 0.68 m). In this test, the total weight of the robot was 824 g, including a 500-g dummy payload and an enlarged battery. The resultant landing speeds varied from 3 m/s to over 4 m/s as illustrated in
[0404] The trajectory data captured from the motion capture system were processed and encoded. The landing state consists of the landing velocity {dot over (p)}(t.sub.LD) and the body axis R(t.sub.LD)e.sub.3=z.sub.b(t.sub.LD) as present in (26) and (27). Similarly, the takeoff state includes the velocity {dot over (p)}.sub.s(t.sub.TO) from (30) and body attitude z.sub.b(t.sub.TO) or p.sub.s(t.sub.TO)/l.sub.0 from (32). Together, these vectors are visually illustrated in
[0405] Based on the complete stance phase in (34), a Genetic Algorithm is employed to identify unknown parameters: ={l.sub.0, l.sub.p, k.sub.s, }. The objective function is
where w.sub.=2 is a positive weight, .sub.zb() is the Root Mean Square (RMS) angular error of the takeoff body axis (the difference between the experimental measurements and the model predictions based on the landing states), and .sub.v() the RMS error of the takeoff velocity axis.
[0406] To evaluate the accuracy of the model, the pre-diction errors are inspected. The best-fitted parameters result in the average prediction error of 0.9 for the takeoff body axis z.sub.b(t.sub.TO) and 2.0 for the direction of the takeoff velocity {dot over (p)}.sub.s(t.sub.TO), plotted as Complete model in
Compression of Inverse Stance Phase Model for Onboard Control
[0407] With the initial state from (36) and (37), and identified parameters, the 3-DoF stance phase dynamics can be simulated forward to obtain the takeoff state. The inverse map, providing the landing state corresponding to the desired takeoff state, is required for stabilizing and controlling the robot's hopping trajectory.
[0408] One approach to obtain the inverse map is to search for the landing state that results in the desired takeoff state (e.g., shooting methods), requiring the stance phase dynamics to be simulated several times to yield the solution. Unfortunately, simulating the stance phase dynamics forward using (34) on the flight control board is computationally demanding and cannot be achieved at a sufficiently high frequency. For the robot of
Linear Model
[0409] For the robot of
[0410] Based on previous findings for the robot of
Where k.sub.v=2.54 and k.sub.zb=1.69 are empirically determined constants.
[0411] The linear relations in (36) and (37) can be employed to predict the takeoff state ({dot over (p)}.sub.s(t.sub.TO), z.sub.b(t.sub.TO)) from the landing state ({dot over (p)}(t.sub.LD), z.sub.b(t.sub.LD)) without directly applying the full dynamics or (34). The linear model predicts the takeoff velocity direction and body axis with the average angular errors of 3.8 and 1.5, with the error distributions illustrated by boxplots in
Inverse Stance Phase Model with Neural Network Compression
[0412] Here, a neural network is used to construct an inverse map of the complete stance phase model. This is required by the hopping controller as described later. To capture the impact of the term mge.sub.3 in (34) in the model, information on the direction of the takeoff velocity with respect to gravity is incorporated. The network then predicts the required landing attitude. In addition, different payload masses are taken into consideration. This allows the model to be readily implemented for the robot carrying different payloads without retraining. As the NN is designed to function with the hopping controller, it takes a 61 vector as input and produces a 21 output vector. The input contains information on the landing velocity and the desired direction of the takeoff velocity. The network then outputs the body attitude of the robot that would result in the desired direction of the takeoff velocity (this is provided by the hopping controller) for that particular landing velocity.
[0413] More specifically, the input is
where the first element is the landing speed and the second is the angle between the velocity and gravity. Together, they emphasize the relative direction of gravity. The third entry is the takeoff velocity direction and the last is the payload mass.
[0414] The output is defined as
in which the elements are Euler angles rep-resenting the landing attitude (z.sub.b(t.sub.LD)=[cos(.sub.y) sin(.sub.x), sin(.sub.y), cos(.sub.x) cos(.sub.y)].sup.T) that results in the landing velocity in x.sub.N. The angle definitions are visualized in
[0415] 1) Training Data Generation: To train the neural network model, training data from the complete stance phase model is generated first instead of relying on the limited experimental data. The numerical simulation (4th-order Runge-Kutta method) provides a large range of data that uniformly spans the input space, reducing bias in the process.
[0416] To cover a wide range of possible scenarios, the landing state is considered first, which consists of three dimensions of data (landing speed, angle, and payload mass) from the input vector and two from the output (.sub.x, .sub.y), amounting to five independent variables. A specific range is assigned for these five independent elements, within which 15 discrete points are uniformly generated, yielding 155 sets of training data. For the landing speed, the range is from 1 to 5 m/s, corresponding to a hopping height from 0.05 m to 1.28 m. For the angle with respect to the vertical, the range is from 0 to 30. For payload mass, the input varies from 0.5 kg to 1.5 kg. For landing attitude specified by y.sub.N, both Euler angles span a range of 15. These ranges encompass conditions of most low-speed hopping. After the simulation with the complete stance phase model, the remaining elements in x.sub.N are obtained, corresponding to the takeoff velocity. The resultant takeoff speeds vary from 1 m/s to 5 m/s. Remark that the takeoff speed could be as high as the landing speed despite viscous losses when the center of mass of the robot when taking off is lower than at landing. In the end, all eight elements for N=15.sup.5 pairs of input/output vectors are obtained.
[0417] 2) Training of the neural network: a neural network is trained to represent the inverse map of the stance phase based on the generated simulation data, mapping the 61 input x.sub.N to the 21 output y.sub.N. The architecture of the network consists of six fully connected layers structured as 6.fwdarw.64.fwdarw.256.fwdarw.256.fwdarw.32.fwdarw.2, employing rectified linear unit (ReLU) activations. This design incorporates a total of 91,170 parameters, significantly fewer than the 15.sup.5=759, 375 parameters required for a direct lookup table of the inverted dynamics.
[0418] To optimize the neural network's output, a loss function is defined that minimizes the angular discrepancy between the predicted landing attitude vector and the training data, represented by the dot product of the two unit vectors. This loss function is expressed as:
where the index i refers to the i.sup.th set of data. Here z.sub.b.sup.T(y.sub.N(i)) is the landing attitude corresponding to y.sub.N taken from the training data, and {circumflex over (z)}.sub.b(x.sub.N(i)) is the predicted landing attitude based on the output of the network, computed using the current set of hyperparameters. The minimization is over a set of hyperparameters of the entire network.
[0419] The neural network was implemented and trained using PyTorch, employing the Adam optimizer with a learning rate of 0.01. To balance the contributions of different vector ranges to the total loss, batch-wise weighting is applied. The dataset, comprising 155 samples, was randomly shuffled and partitioned into training (80%), validation (10%), and test (10%) sets. To mitigate overfitting, performance on the validation set during training is monitored. Training progressed for 2000 epochs, with convergence monitored using an angle discrepancy metric derived from the loss function. As illustrated in
[0420] To assess the trained network, its performance is evaluated on the test set (75,937 samples). The predicted attitude {circumflex over (z)}.sub.b (t.sub.LD) constructed from the output vector is compared with the ground truth and inspected the angular errors. The results demonstrate that, excluding a few outliers, the errors are consistently below 0.1. This is negligible when compared against the takeoff angular errors computed from the predictions from the complete model and the experimentally collected data (velocity: 4.2, attitude: 2.0,
[0421] Next, the control architecture for stabilizing the attitude and trajectory of the thrust-based hopping robot is presented. The controller leverages the fact that the stance phase is extremely short and passive, meaning no active control is exerted during this phase. This controller is hinged on the reverse map of the stance phase, compressed in to the trained neural network. The key method employed is controlling the landing attitude, which serves as the initial condition for the stance phase. This effectively manipulates the direction of the takeoff attitude, takeoff velocity, and subsequent aerial phase trajectory.
[0422] The controller is divided into four primary components: (i) a height controller, (ii) a high-level position controller, (iii) thrust and attitude management, and (iv) a low-level attitude controller, as illustrated in
[0423] In addition to the use of the NN-compressed reverse stance phase model, the primary distinction from the robot of
Hopping Height Controller
[0424] As indicated by (21), the hopping height is closely related to the amount of energy in the system, which can be regulated through powered ascent and descent during the flight phase. Therefore, the height control strategy involves two main steps: nominal height prediction and height control. First, a method for predicting the nominal hopping height of the next step when the robot is landing is presented. Then, the control strategy is detailed, which adjusts the thrust duration of the robot in the aerial phase. The amount of adjustment is based on the nominal hopping height and the desired hopping height, taking into consideration the payload weight. This ensures the desired hopping height is approximately reached.
[0425] 1) Nominal Hopping height: The nominal hopping height h is estimated based on the current amount of energy of the robot. This serves as a reference value for the hopping height controller to evaluate whether additional energy is required for the robot to reach the desired height h.sub.d. The estimation is carried out cyclically at the moment (t.sub.LD) of the landing of each hop step, based on the recorded apex velocity {dot over (p)}(t.sub.AP) and the descent duration t.sub.LDt.sub.AP (refer to
[0426] In this step, the nominal height is computed assuming the kinetic energy of the robot at landing is subsequently converted to the potential energy, after taking into consideration the loss factor that captures the energy loss in the leg mechanism in the stance phase. This yields
[0427] In the absence of control, will be the maximally feasible hopping height of the robot after it takes off. Furthermore, the conservation of energy also informs us about the speed of the robot when it takes off from
with the nominal height obtained when {dot over (p)}.sub.d(t.sub.TO) is upright.
[0428] 2) Hopping height control: Depending on the nominal hopping height in (42) and the desired height h.sub.d, the height control strategy regulates two key parameters: the duration of powered ascent (t.sub.PAt.sub.TO) and powered descent (t.sub.LDt.sub.PD). The approach varies depending on the payload weight.
[0429] First, (22) is employed to determine the maximum payload mass m.sub.p that is compatible with the unidirectional thrust limit (taking =0 and =0.25), resulting in m.sub.p=(/+1)m.sub.rg=1.54 kg.
[0430] For lighter payload within this limit, only powered ascent is employed, setting t.sub.PD in
[0431] If the nominal hopping height is higher than the desired height (>h.sub.d), the powered ascent is forgone as no additional energy needs to be injected into the system.
[0432] Otherwise, a short burst of powered ascent is applied immediately after takeoff to maximize the power input. The required energy input to achieve the desired height is mg(h.sub.d). Given that the vertical speed of the robot immediately after takeoff is approximately {square root over (2 g)}, the required powered ascent time t.sub.PAt.sub.TO can be approximated from
where T.sub.f is the magnitude of the forward thrust force. Its value depends on the payload mass. To meet the energy condition in (21), T.sub.f should be greater than 77 mg. Concurrently, T.sub.f cannot exceed its maximum limit (m.sub.rg) while leaving some room for torque generation and attitude control.
[0433] For payload exceeding the unidirectional thrust limit of 1.54 kg, both powered ascent and descent are employed. The powered descent was designed to inject more energy into the system. The additional energy needed during the powered descent phase could be evaluated by subtracting the maximum energy that could be replenished during the ascent phase m.sub.rg from the expected energy lost mg in each hop. It follows that when the energy is injected with the maximum reverse thrust T.sub.r=m.sub.rg, the required powered descent distance h.sub.pd can be estimated from:
[0434] Based on the maximum payload mass condition in (22), the payload mass is upper bounded as m.sub.p<((1+)/(1)m.sub.r, such the total mass satisfies m<((1+)/(1)m.sub.r/. Hence, in (46), there are the term m/m.sub.r1<1/ and h.sub.pd<. This means the powered descent distance is shorter than as expected. In practice, T.sub.r is set to be lower than the maximum limit of m.sub.rg in order to maintain sufficient attitude control capability. Therefore, (45) is only approximately valid. Taking a cue from (45), a tuning parameter k.sub.h is introduced to yield h.sub.pd as a function of according to
[0435] Expressing h.sub.pd as e.sub.3.sup.T({circumflex over (p)}(t.sub.PD){circumflex over (p)}(t.sub.LD)), the duration for powered descent t.sub.LDt.sub.PD can also be later computed using (48)-(51). This use of powered descent increases the vertical speed of the robot at landing, pushing the robot closer to the desired height h.sub.d in the subsequent jump.
High-Level Position Control
[0436] Similar to hopping robots capable of continuous jumps such as the robot in
[0437] The high-level position control is performed in three steps: (i) a landing state predictor estimates the current (cycle k) landing state based on the apex position and velocity, (ii) the errors between the desired landing position for cycle k+1 and the current landing position is used to calculate a desired aerial trajectory which is represented by a takeoff velocity, (iii) the landing attitude needed to achieve the takeoff velocity is iteratively estimated.
[0438] The coupling between the landing attitude and the takeoff velocity, which influences the subsequent landing location, complicates the control strategy. The controller must solve for the desired landing attitude iteratively as illustrated by
[0439] Below, an elaboration is firstly provided on how the landing position of the current cycle k is predicted. This is computed once per hop. Then, the position control is detailed. These steps are iteratively executed once per hop. For brevity, the iteration index (.Math.).sup.(i) is omitted from the following equations.
[0440] 1) Landing state prediction: The upcoming landing state, comprising the landing position and velocity is predicted ({circumflex over (p)}(t.sub.LD)|.sub.k, {circumflex over ({dot over (p)})}(t.sub.LD)|.sub.k) once per hopping cycle after the robot reaches the apex during the aerial phase.
[0441] As shown in
where t.sub.AP is the apex timestamp and t.sub.PD marks the start of the powered descent phase. The beginning of the powered descent phase t.sub.PD is empirically obtained when the robot falls to a height h.sub.pd (designated by the height controller in (46)) and is computed from e.sub.3.sup.T({circumflex over (p)}(t.sub.PD)=h.sub.pd. Hence, the time the robot spends in free fall is t.sub.PDt.sub.AP.
[0442] During the powered descent with a reverse thrust T.sub.r, the robot is assumed to be aligned with the desired landing attitude z.sub.b(t.sub.LD)|k. It experiences an additional acceleration of T.sub.r/mz.sub.b. Thus, the estimated landing position {circumflex over (p)}(t.sub.LD) and velocity of the robot {circumflex over ({dot over (p)})}(t.sub.LD) are
where the landing time t.sub.LD is calculated by imposing the flat ground condition e.sub.3.sup.T{circumflex over (p)}(t.sub.LD)|.sub.k=0.
[0443] (2) Desired takeoff velocity: To ensure the robot follows a prescribed hopping trajectory, an iterative lateral position control strategy is implemented based on the predicted landing position of the next hop {circumflex over (p)}(t.sub.LD).sub.k+1. This is then used to compute the required takeoff velocity {circumflex over ({dot over (p)})}(t.sub.TO)|.sub.k that would approximately and subsequently navigate the robot to the desired position {dot over (p)}.sub.d(t.sub.TO)|.sub.k.
[0444] Similar to the strategy mentioned above for the robot in
[0445] Starting from the predicted landing position {circumflex over (p)}(t.sub.LD)|.sub.k and a hypothetical takeoff velocity {dot over (p)}(t.sub.TO)|.sub.k, the landing position {circumflex over (p)}(t.sub.LD)|.sub.k+1 in the next hopping step is estimated by assuming an entirely ballistic trajectory. As the flight phase time is equal to 2e.sub.3.sup.T{dot over (p)}(t.sub.TO)|.sub.k/g, the next landing location is expected to be
which can be re-arranged into
[0446] In this form, an explicit expression of {dot over (p)}(t.sub.TO)|.sub.k is attempted to be found. To do so, {dot over (p)}(t.sub.TO)|.sub.k is expressed in terms of horizontal and vertical components. With the energy equation in (43), one have
[0447] Substituting {dot over (p)}(t.sub.TO)|.sub.k from (53) into (54) yields
where the fact that e.sub.3.sup.T({circumflex over (p)}(t.sub.LD)|.sub.k+1{circumflex over (p)}(t.sub.LD)|.sub.k)=0 (flat ground condition) is applied. The result permits us to solve for the vertical component of {dot over (p)}(t.sub.TO)|.sub.k from
[0448] Then, the horizontal components can be evaluated by projecting (53) along the directions of e.sub.1 and e.sub.2, making use of (56) as
[0449] Together, (56) and (57) provide a full expression of the takeoff velocity as a function of {circumflex over (p)}(t.sub.LD)|.sub.k, which is dependent on z.sub.b(t.sub.LD)|.sub.k through (50).
[0450] 3) Iterative implementation of the position controller: In this final step, the landing attitude z.sup.(i)(t.sub.LD)|.sub.k and the takeoff velocity {dot over (p)}.sup.(i)(t.sub.TO)|.sub.k are iteratively determined which together minimize the landing position error.
[0451] First, after the robot has reached the apex, the landing attitude is initialized to be the vertical: z.sub.b.sup.(0)(t.sub.LD)|.sub.k=e.sub.3. This is used to by (50) and (53) to predict the current {circumflex over (p)}(t.sub.LD)|.sub.k and the next landing positions {circumflex over (p)}(t.sub.LD)|.sub.k+1.
[0452] The landing position at cycle k+1 is highly dependent on the takeoff velocity {dot over (p)}(t.sub.TO)|.sub.k. Hence, {circumflex over (p)}(t.sub.LD)|.sub.k+1 is regarded as the setpoint position and (56) and (57) are used to estimate the required takeoff velocity {dot over (p)}(t.sub.TO)|.sub.k. This is by substituting {circumflex over (p)}(t.sub.LD)|.sub.k+1 in those equations with the reference p.sub.d|.sub.k+1 (if the robot is unable to reach the setpoint in a single hop, an intermediate setpoint is introduced). Once the corresponding value of {dot over (p)}(t.sub.TO)|.sub.k is evaluated, it is used as an input vector x.sub.N for the NN. The output y.sub.N of the network is translated to an auxiliary attitude vector {circumflex over (z)}.sub.b.sup.(i)(t.sub.LD). The outcome is then used to incrementally update the desired landing attitude at step k for the next iteration according to
where w.sub.z=0.5 is an update weight.
[0453] Next, steps 2 and 3 are repeated to recompute the desired takeoff velocity and update the desired landing attitude in an iterative fashion. The process is terminated when z.sub.b.sup.(i)(t.sub.LD)z.sub.b.sup.(i1)(t.sub.LD)<10.sup.4. In practice, this usually takes 3-4 iterations. After the convergence, the final value of z.sub.b (t.sub.LD) is passed on to the attitude controller as elaborated below.
Thrust and Attitude Management Module
[0454] In this step, thrust T and attitude R of the robot in the aerial phase are controlled according to the operational states: unpowered flight, powered descent, and powered ascent, as depicted in
[0455] While hopping, the thrust direction switches twice each cycle when power descent is adopted. In the meantime, the thrust magnitude in the powered ascent and descent is provided by the height controller. Whereas during the unpowered flight phase, the desired thrust is nominally zero, complying with the assumption of ballistic trajectories used for the next landing position estimation in (52).
[0456] To compute the attitude setpoint R.sub.d from the desired body axis z.sub.b, the fact is used that z.sub.b=Re.sub.3 is independent of the yaw angle when the rotation matrix is parameterized by roll , pitch , and yaw angles as R=R.sub.z()R.sub.y()R.sub.x(). Treating as an arbitrary setpoint, the desired roll and pitch rotations can be determined from z.sub.b and according to
[0457] As previously described, the desired attitude while the robot is ascending is z.sub.b=e.sub.3. In contrast, while descending (powered or unpowered), the desired attitude is determined by the landing position controller as the desired landing attitude. The target thrust and attitude are then taken by the low-level attitude controller to produce the motor comments.
D. Low-level Attitude Controller
[0458] Given the desired thrust T.sub.d and attitude setpoint R.sub.d from the thrust and attitude management module, the following controller is employed to regulate the robot's attitude and generate appropriate motor commands.
[0459] The attitude controller aims to correct both attitude and angular rate errors, taking into consideration a possibly large attitude error. Hence, the attitude error is computed as R.sup.TR.sub.d, which represents the rotation between the desired attitude R.sub.d and the current attitude R. This error is then expressed using the angle-axis representation as a vector e.sub. to avoid the singularity issue. The control torque is then calculated as [127]:
where k.sub.p and k.sub.d are control gains and .sub.d is the desired angular rate, calculated by taking the numerical derivative of the desired attitude.
[0460] To obtain the motor commands u=[u.sub.1, u.sub.2, u.sub.3, u.sub.4].sup.T from the control torque r and desired thrust T.sub.d, the following optimization strategy is deployed.
[0461] Here, the matrix A.sub.f,r={A.sub.f, A.sub.r} (for forward and reverse thrust) maps the motor commands to torque.
[0462] Unlike the use of linear mapping and matrix inverse as commonly deployed in quadrotors, the method in (61) is required in this work as the desired thrust value in the aerial phase, particularly in the unpowered phase, is oftentimes small or zero. Computing the motor commands directly from deterministically solving the linear map would result in negative values of u.sub.i's. In such cases, the proposed method would allow the robot to generate thrust slightly higher than the target in order to ensure the motor commands remain positive and the desired control torque is produced.
[0463] To evaluate the performance of the robot, the hopping strategy, and validate the payload carrying ability, several indoor and outdoor experiments are conducted. First, in order to compare the effect of payload weight on the robot's ability to track the trajectory, the trajectory tracking performance of the robot is evaluated with variable payload up to 2 kg. Second, the hopping maneuver is investigated with various payload weights. Third, to demonstrate the agility of the hopping robot while carrying a heavy load, a 90-degree sharp turn experiment is conducted, with a 500-gram payload. Finally, the robot is equipped with an onboard computer and LiDAR sensor as functional payload to perform outdoor hopping experiments, testing the robot both with and without autonomous navigation to showcase its potential for operating in and exploring unknown environments.
Trajectory Tracking
[0464] To validate the hopping performance of the robot and its payload carrying capacity, the trajectory tracking experiments are conducted with payload mass: no payload, 0.5 kg, 1.0 kg, 1.5 kg, and 2.0 kg.
[0465] The reference trajectory was designed as a figure-8 path, confined within a 2.22.2-m area, as illustrated in
[0466] The position and velocity feedback at the apex (p(t.sub.AP), {dot over (p)}(t.sub.AP)) was acquired through the motion capture system (Optitrack Prime 13w) at a frequency of 100 Hz. Additionally, to prevent IMU estimation drift during the robot's free fall (un-powered aerial phase) due to near-zero accelerometer readings, attitude measurements were transmitted to the onboard attitude estimator at a frequency of 10 Hz. The complete stance phase model described previously was employed to predict the landing attitude z.sub.b (t.sub.LD) for each hopping step.
[0467] Without any payload, the robot only used powered ascent with a thrust command of T.sub.f=0.53 m.sub.rg=116 gf, with an averaged powered ascending duration of t.sub.PA=0.15 s as given by the height controller. The tracking results in
[0468] Furthermore, the power consumption during the maneuvers is estimated based on the thrust commands, exploiting the empirical model of propulsion power. Including the power expended by the flight avionics of approximately 0.5 W, an average power consumption of 10.6 W or 7.1 J per hop is yielded. The corresponding power loading is 23.1 g/W. Over the 69-s trajectory, the robot traveled 11.47 m, with an average lateral speed of 0.17 m/s.
[0469] With the increased payload weight (0.5 kg, 1.0 kg, and 1.5 kg) the powered ascent thrust command was set to 0.99 m.sub.rg, 1.39 m.sub.rg, and 2.09 m.sub.rg, respectively. Based on the average duration of powered ascent, the robot consumed, on average, 19.5, 26.1, 43.6 W, or 13.0 to 17.5 and 29.2 J of energy per step. The average power loading of 38.6, 48.1, and 40.3 are higher than the no payload trajectory.
[0470] When carrying a 2-kg payload, nearer to the theoretical payload limit of 2.22 as computed by (22), the robot took advantage of the bidirectional thrusters to realize powered descent. The tuning parameter for the powered descent in (47) was set to k.sub.h=0.8. The average powered ascent and descent durations are 0.27 and 0.19 s. Thanks to the use of power descent, the power loading of 15.9 is approximately half of those of previous experiments accomplished with only powered ascent (see
Leaping with Payload
[0471] As indicated by the complete stance phase model in (34), the influence of the term mge.sub.3, corresponding to the total weight of the platform, on the hopping dynamics becomes increasingly important when the directions of the leg vector (denoted by p.sub.s/p.sub.s) and the gravity (e.sub.3) are misaligned. This occurs in more aggressive jumps with larger steps when the robot's landing attitude z.sub.b deviates significantly from the vertical. Therefore, the inverted complete stance phase model, compressed into the NN controller, should allow the robot to perform large jumps more accurately than the simplified linear model in (36) or an incomplete model used in the robot of
[0472] Thus, to showcase the advantage of the NN-based controller, exploiting the complete stance phase model, a trajectory is designed with a large step and compared hopping performance with that obtained using a controller with the linear model (
[0473] In this experiment, the hopper was commanded to perform a single hop with a step length of 1.0 m at a 0.65 m hopping height. To accomplish this, the lateral speed at the takeoff must reach 1.4 m/s. This was completed when the robot carried a 0.5 kg payload. The experiment was repeated with 1.0 kg and 1.5 kg payloads. Except for the stance phase model, other implementations and parameters for the two control methods were identical, including the high-level position controller, height controller, and low-level attitude controller.
[0474] The resultant trajectories are plotted in
Sharp Turn with Large Steps and Payload
[0475] To further demonstrate the ability to hop with large steps while carrying a heavy payload, a turning maneuver is examined with a 0.62 kg payload (
[0476] Here, the robot started the maneuver by jumping forward with a step size of 2 m and a height of 0.75 m. The robot's landing attitude setpoint was computed such that the next landing position is 2 m away with a 90-degree turn. After that, the previous setpoint was repeated, requiring the robot to rapidly decelerate and suddenly come to a stop by hopping in place. In the experiment, the entire trajectory took 1.76 s, counting from the first to the third hop, resulting in an average horizontal speed of 2.27 m/s as illustrated by
3D Mapping for Wild Environment
[0477] With the ability to carry a payload several times heavier than itself, the robot is able to carry a sensing and computing module to autonomously operate outside the laboratory, eliminating the need for feedback from the motion capture system. This was previously infeasible for the 35-g hopper in
[0478] With the estimates of apex position p(t.sub.AP) and velocity {dot over (p)}(t.sub.AP) required for the landing state prediction in (50)-(51), the robot is able to hop stably outside the laboratory. To validate the effectiveness of the onboard LiDAR odometry, the outdoor hopping experiments are conducted along a hill-side trail (
[0479] In addition to providing the position and velocity feedback for stabilization, the LiDAR also generated a 3D point cloud map in
Autonomous Operation in Outdoor Environment
[0480] Thanks to the point cloud map generated by the LiDAR system, the robot could leverage this sensing capability to hop and navigate autonomously, avoiding collisions, without directly relying on a human operator. To enable autonomous navigation, the sensing and control structure in
[0481] As part of the control subsystem, the autonomous navigation is enabled by the planning algorithm, implemented on the onboard computer as outlined in
[0482] For trajectory planning, a modified version of the kinodynamic A* algorithm is employed, adapted from methods used in aerial robotics [84], [131]. This modified algorithm plans a safe, dynamically feasible path in 3D space while accommodating the planar characteristics of our high-level position controller. Specifically, the start and goal positions used for path searching are at the desired hopping height h.sub.d. In between, the algorithm searches for an obstacle-free path at an altitude near h.sub.d. This is by limiting the vertical acceleration of the generated path to a narrow range (0.1 m/s.sup.2). However, only the horizontal component of the generated trajectory is used by the hopper as p.sub.d|.sub.k+1, whereas h.sub.d is kept constant. This ensures the planner considers obstacles in three dimensions along the trajectory.
[0483] To enhance the efficiency of safety checks, the point cloud data are organized into a k-d tree structure [84], [132]. The planned path is then projected onto the ground and discretized into several landing points, maintaining a constant Euclidean distance between each point. These discrete landing points serve as the desired values p.sub.d(t.sub.LD)|.sub.k for each hopping cycle, which are input into the onboard hopping position controller. The hopping altitude setpoint is separately set to h.sub.d, regardless of the generated trajectory. To account for dynamic obstacles and changes in the environment during exploration, the trajectory is re-planned every five hopping steps by rerunning the planning algorithm. This adaptive approach ensures the robot can navigate safely through changing environments while maintaining its efficient hopping gait.
[0484] To validate the autonomous navigation ability and the effectiveness of the method, the experiment is conducted along a pedestrian path surrounded by trees as seen in
[0485] The robot traveled over 15 m in 73 s (average speed: 0.2 m/s) without colliding with any obstacles. During this period, the robot localized itself with the LiDAR-generated map shown in
[0486] In summary, one can see in the embodiment of
[0487] The enhanced dynamic model, coupled with a neural network-based control strategy, enables robust hopping performance across various tasks. Exploiting the increased payload capacity, a LiDAR sensor and onboard computer are integrated, demonstrating the robot's potential for autonomous navigation in GPS-denied environments. This capability to hop with a thrust-to-weight ratio below one suggests promising applications for insect-scale aerial robots [133]-[135], which often face challenges in carrying sensors and batteries for untethered operations [86], [136].
[0488] Presently, the high-payload hopper displays impressive power loading compared to aerial robots at similar scales [88], indicating that hopping in place is an efficient strategy for loitering at low altitudes. The cost of transport of the robot remains high (over 30) as the demonstrated maneuvers are relatively slow. To enhance transport efficiency, realizing high-speed hopping remains a promising avenue for future research.
[0489] Another prospective direction involves developing a footpad to enable the robot to navigate or hold on to rough terrain[137], which could be invaluable in search and rescue missions. While a footpad might introduce additional energy losses, it represents a strategic trade-off between efficiency and versatility.
[0490] The exemplary embodiments of the present invention are thus fully described. Although the description referred to particular embodiments, it will be clear to one skilled in the art that the present invention may be practiced with variation of these specific details. Hence this invention should not be construed as limited to the embodiments set forth herein.
[0491] While the invention has been illustrated and described in detail in the drawings and foregoing description, the same is to be considered as illustrative and not restrictive in character, it being understood that only exemplary embodiments have been shown and described and do not limit the scope of the invention in any manner. It can be appreciated that any of the features described herein may be used with any embodiment. The illustrative embodiments are not exclusive of each other or of other embodiments not recited herein. Accordingly, the invention also provides embodiments that comprise combinations of one or more of the illustrative embodiments described above. Modifications and variations of the invention as herein set forth can be made without departing from the spirit and scope thereof, and, therefore, only such limitations should be imposed as are indicated by the appended claims.