Motion control method and system for autonomous mobile apparatus, autonomous mobile apparatus, and medium
Patent Information
- Application Number
- AU2025230751
- Authority / Receiving Office
- AU · AU
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2025-04-14
- Filing Date
- 2025-06-25
- Publication Date
- 2026-10-29
Smart Images

Figure 00000020_0000 
Figure 00000021_0000 
Figure 00000022_0000
Abstract
Description
[0001] The present disclosure claims the priority to the Chinese patent application with the filling No. 202510458972.3 filed with the Chinese Patent Office on April 14, 2025, and entitled “MOTION CONTROL METHOD AND SYSTEM FOR AUTONOMOUS MOBILE APPARATUS, AUTONOMOUS MOBILE APPARATUS, AND MEDIUM”, the contents of which are incorporated herein by reference in entirety. TECHNICAL FIELD
[0002] The present disclosure relates to an autonomous mobile apparatus, and a motion control method and a motion control system thereof, and in particular, to a motion control method and a motion control system for an autonomous mobile apparatus with a dual-wheel independent drive structure, an autonomous mobile apparatus, and a medium. BACKGROUND ART
[0003] With the popularization of artificial intelligence and robotics technology, autonomous mobile apparatus equipped with automatic navigation and autonomous obstacle avoidance functions have been widely applied in scenarios such as home gardening, security patrol, and industrial logistics. A dual-wheel independent drive structure has become a mainstream configuration due to its simple structure and relatively low manufacturing cost. However, when such devices operate in complex environments, they face core challenges such as drastic load changes, strong demands for motor protection, and high requirements for motion stability, thus urgently requiring more refined control strategies.
[0004] Firstly, most current dual-wheel independent drive control systems lack real-time limitation and protection mechanisms for the operating state of the motor. When a motor on a certain side continuously outputs beyond its limit due to a sudden surge in load, a power-limiting adjustment fails to be triggered in a timely manner, leading to severe motor heating and shortened service life. Secondly, when a motor on a side reaches its power limit, an existing dual-wheel independent drive control system often cannot coordinate a motor on another side to compensate for the posture, thereby causing abnormal motion postures of the device, such as deviation and instability. Finally, a static acceleration curve or a linear control is commonly used in an acceleration and deceleration process, ignoring influencing factors such as the entire machine’ mass, wheel surface friction, and slope changes, which easily leads to sudden jitter or slipping, thereby reducing the operational stability and safety of the autonomous mobile apparatus. SUMMARY
[0005] Technical Issues
[0006] The purpose of the present disclosure is to solve the technical problem that autonomous mobile apparatus with a dual-wheel independent drive structure urgently require more refined control strategies since they face core challenges such as drastic load changes, strong demands for motor protection, and high requirements for motion stability when operating in complex environments, and thus provides a motion control method and a motion control system for an autonomous mobile apparatus, an autonomous mobile apparatus, and a medium.
[0007] Technical Solutions
[0008] To address the deficiencies in the prior art, the present disclosure provides the following technical solutions.
[0009] A motion control method for an autonomous mobile apparatus adopting a dual-wheel independent drive structure, comprising following steps:
[0010] converting an entire machine expected linear velocity and an entire machine expected angular velocity into expected rotational speeds of two sides;
[0011] for each side’s motor, obtaining an expected rotational speed per unit time by performing a constant acceleration smoothing processing on an expected rotational speed, then calculating an expected current based on an error between the expected rotational speed per unit time and a current rotational speed, and then calculating an expected duty cycle based on an error between the expected current and a present current; the unit time being a cycle duration of motor speed updates;
[0012] dynamically adjusting an expected rotational speed per unit time of a motor on a side based on a motor on another side to achieve synchronization of motors on the two sides, in a case where current duty cycles and present currents of the motors on the two sides are greater than or equal to respective rated values; and
[0013] finally outputting expected rotational speeds per unit time and expected duty cycles of the motors on the two sides for respectively controlling respective motors, thereby completing a motion control of a current control cycle.
[0014] Moreover, the disclosure further provides a motion control system for an autonomous mobile apparatus comprising two control groups, each control group comprising a motor and a motor controller.
[0015] The motor controller of each control group controls the motor to implement the steps of the motion control method for the autonomous mobile apparatus as described above.
[0016] The present disclosure further provides an autonomous mobile apparatus. The autonomous mobile apparatus comprises an entire machine controller and the motion control system for the autonomous mobile apparatus described above, and the entire machine controller is communicatively connected to motor controllers of the two control groups in the motion control system of the autonomous mobile apparatus.
[0017] The present disclosure further provides a computer-readable storage medium storing a computer program.
[0018] In response to the computer program being executed by a processor, the processor implements the steps of the motion control method for the autonomous mobile apparatus described above.
[0019] Beneficial effects:
[0020] (1) In the motion control method for the autonomous mobile apparatus of the present disclosure, by real-time monitoring the current rotational speeds and the present currents of the motors on the two sides, and dynamically adjusting the rotational speeds of the motors on the two sides, the maximum output power is limited. Moreover, by using the constant acceleration smoothing processing to calculate the expected rotational speed per unit time, smooth speed changes are ensured. In addition, when the power of a single-side’s motor is limited, the speed ratio is used to adjust the strategy to dynamically coordinate the rotational speeds of the motors on the two sides, thereby maintaining a motion posture. The present disclosure achieves three control objectives: protecting the motors, maintaining the entire machine’s operating posture when the single-side’s motor reaches the rated power, and ensuring smooth acceleration and deceleration of the entire machine.
[0021] (2) In the present disclosure, by updating the expected rotational speed to the expected rotational speed per unit time output in the previous control cycle, the continuity and stability of control commands are ensured, which effectively prevents a speed jump caused by a control cycle switching, thereby further improving the stability and tracking performance of the autonomous mobile apparatus.
[0022] (3) In the present disclosure, by introducing the dynamic Jerk adjustment in the T-type acceleration and deceleration curve to make the acceleration change gradually, sudden changes are greatly reduced in motion control, so that the acceleration and deceleration processes are smoother and more natural. Moreover, the Jerk is dynamically adjusted according to the present current of the motor on this side, which enables the system to adaptively adjust the degree of the acceleration and deceleration according to the actual load of the motor, thereby improving the flexibility and safety of the control system and protecting the motor from overload damage.
[0023] (4) In the present disclosure, the integral limit value is introduced into the speed loop PID to prevent the overshoot or oscillation of the control system caused by the overshoot of the integral term after long-term error accumulation. Moreover, the proportional gain adjustment factor and the integral gain adjustment factor are introduced, so that when the error is large, the proportional gain is dynamically increased to shorten the adjustment time, and when the speed changes drastically, the differential gain is reduced to prevent instability caused by noise amplification. In addition, the anti-shock coefficient is used to mitigate control jitter and mechanical impact caused by sudden speed changes or acceleration and deceleration switching, and the preset power is used to limit the expected current to prevent the motor power from exceeding the limit, thereby achieving efficient and stable motion control in complex motion environments.
[0024] (5) In the present disclosure, the proportional gain adjustment factor and the integral gain adjustment factor are introduced into the current loop PID to accelerate error convergence and improve response speed, and the differential gain adjustment factor and the anti-shock coefficient are introduced to suppress noise and current impact, thereby maintaining stable control. The integral limit value is used to prevent excessive accumulation of the integral term and reduce integral saturation. After the expected current and expected duty cycle are calculated, the power limiting is performed to avoid the motor power exceeding the rated value, thereby achieving a good balance in dynamic response, stability, noise suppression, and motor protection, making the motion control method for the autonomous mobile apparatus suitable for various complex motion control tasks.
[0025] (6) In the present disclosure, when the current duty cycles and the present currents of the motors on the two sides reach or exceed the respective rated values, the dynamic adjustment is performed on the motor of the side based on the motor on another side with a smaller ratio of the expected rotational speed per unit time to the current rotational speed, so as to protect the motors and maintain the motion posture of the autonomous mobile apparatus. Even if the power of a single-side’ motor is limited, the autonomous mobile apparatus is still capable of maintaining a normal straight-line driving or a turning motion. In addition, the present disclosure adopts the multi-layer control logic. Firstly, the current duty cycles are determined, and then the present currents are determined, which enables rapid response and early protection, thereby avoiding a control lag caused by a delay of current detection, and balancing the real-time performance and protectiveness. BRIEF DESCRIPTION OF DRAWINGS
[0026] FIG. 1 is a flowchart of Step 2 of a motion control method for an autonomous mobile apparatus according to an embodiment of present disclosure;
[0027] FIG. 2 is a flowchart of Step 2.3.2 according to an embodiment of the present disclosure; and
[0028] FIG. 3 is a flowchart of Step 3 according to an embodiment of the present disclosure. DETAILED DESCRIPTION OF EMBODIMENTS
[0029] The present disclosure will be further described below with reference to the drawings and exemplary embodiments.
[0030] A motion control method for an autonomous mobile apparatus, where the autonomous mobile apparatus adopts a dual-wheel independent drive structure, includes the following steps.
[0031] In Step 1, an entire machine expected linear velocity and an entire machine expected angular velocity are converted into expected rotational speeds of two sides.
[0032] It should be noted that the above autonomous mobile apparatus conforms to the definition of "robot" specified in GB / T 39405-2020, and may be specifically a personal / home service robot according to the application field. The dual-wheel independent drive structure means that driving wheels on the two sides are driven and controlled by independent motors, respectively. The entire machine expected linear velocity and the entire machine expected angular velocity as described above refer to an expected moving velocity of the autonomous mobile apparatus in a linear direction and an expected rotational velocity of the autonomous mobile apparatus, respectively.
[0033] In Step 2, for each side’s motor, an expected rotational speed per unit time is calculated by performing a constant acceleration smoothing processing on an expected rotational speed described above, then an expected current is calculated based on an error between the expected rotational speed per unit time and a current rotational speed, and then an expected duty cycle is calculated based on an error between the expected current and a present current.
[0034] It should be noted that the above constant acceleration smoothing processing on the above expected rotational speed refers to performing time discretization processing on the expected rotational speed by presetting an acceleration limit value to generate a speed trajectory that meets a constant acceleration constraint. In this embodiment, a T-type acceleration and deceleration curve is used to smooth a change of the rotational speed. In other embodiments, an S-type curve may also be used.
[0035] The above unit time is a cycle duration of motor speed updates. The current rotational speed may be obtained through a real-time measurement by a sensor (such as an encoder). The expected current is a current required to reach the expected rotational speed per unit time. The expected current is calculated based on the error between the expected rotational speed per unit time and the current rotational speed, which means that the error is adjusted through PID or other control algorithms, thereby adjusting the current rotational speed to reach the expected rotational speed per unit time. The expected duty cycle is calculated based on the error between the expected current and the present current, which means that the error is adjusted through PID or other control algorithms, thereby adjusting the present current to reach the expected current. In order to control each motor in the dual-wheel independent drive structure, in this embodiment, a PID-based dual-loop control is used. That is, a speed loop PID is first used to calculate the expected current based on the error between the expected rotational speed per unit time and the current rotational speed, and then a current loop PID is used to calculate the expected duty cycle based on the error between the expected current and the present current. In other embodiments, a sliding mode variable structure control or a fuzzy PID control may also be used.
[0036] In Step 3, in a case where current duty cycles and present currents of the motors on the two sides are greater than or equal to respective rated values, an expected rotational speed per unit time of a motor on a side based on a motor on another side is dynamically adjusted to achieve synchronization of the motors on the two sides.
[0037] Based on the motor on the side, the expected rotational speed per unit time of the motor on another side is dynamically adjusted to achieve synchronization of the motors on the two sides described above, which means that based on a rotational speed ratio of the motor on the side, the expected rotational speed per unit time of the motor on another side is adjusted. The rotational speed ratio is a ratio of the current rotational speed to the expected rotational speed per unit time. Specifically, the adjustment may be performed in stages according to a difference between rotational speed ratios of the two sides. A fixed increment is adjusted for each time, or the expected rotational speed per unit time of the motor on another side is updated to a product of the expected rotational speed per unit time of the motor on another side and the rotational speed ratio of the motor on the side.
[0038] In Step 4, expected rotational speeds per unit time and expected duty cycles of the motors on the two sides are output for respectively controlling respective motors, thereby completing a motion control of a current control cycle.
[0039] In some embodiments, the above Step 1 includes: obtaining the entire machine expected linear velocity and the entire machine expected angular velocity, and converting them into the expected rotational speeds of the two sides according to a wheelbase and a wheel radius.
[0040] The expected rotational speeds of the two sides described above may both be expressed L ' ^exp vexp 2 (for one side) as: - T; , where nexp is an expected rotational speed of a side, Vexp is the entire machine expected linear velocity, &)exp is the entire machine expected angular velocity, L is the wheelbase, and r is the wheel radius.
[0041] In some embodiments, referring to FIG. 1, the above Step 2 includes the following steps.
[0042] In Step 2.1, for each side’s motor, it is determined whether a previous control cycle exists, and if yes, the expected rotational speed is updated to an expected rotational speed per unit time output in the previous control cycle, and then Step 2.2 is performed; otherwise, Step 2.2 is directly performed.
[0043] In Step 2.2, for each side’s motor, the smoothing processing is performed on the expected rotational speed using the T-type acceleration and deceleration curve, so as to obtain the expected rotational speed per unit time.
[0044] In Step 2.3, for each side’s motor, the current rotational speed is collected, and the expected current is calculated based on the error between the expected rotational speed per unit time and the current rotational speed using the speed loop PID.
[0045] In Step 2.4, for each side’s motor, the present current is collected, and the expected duty cycle is calculated based on the error between the expected current and the present current using the current loop PID.
[0046] In some embodiments, the above Step 2.2 includes the following steps.
[0047] In Step 2.2.1, for each side’s motor, a rotational speed difference between the current rotational speed and the expected rotational speed per unit time is compared with a corresponding threshold to determine entering a stage of the T-type acceleration and deceleration curve, and then an acceleration is updated using jerk (the rate of change of acceleration, i.e., jerk of acceleration). The above jerk is a fixed value, or is dynamically adjusted according to the present current of the motor on this side to protect the motor in real time and achieve smooth speed changes. Details are as follows.
[0048] If an absolute value of the rotational speed difference does not exceed the corresponding threshold, a constant speed state is reached, and the acceleration is set to 0.
[0049] If the rotational speed difference is greater than the corresponding threshold, an acceleration state is reached, and the acceleration is updated to a sum of a current acceleration and the jerk of the current control cycle. The sum of the current acceleration and the jerk of the current control cycle is compared with a maximum acceleration, and a smaller value is taken as the acceleration.
[0050] If the rotational speed difference is less than a negative value of the corresponding threshold, a deceleration state is reached, and the acceleration is updated to a difference between the current acceleration and the jerk of the current control cycle (the current acceleration subtracting the jerk of the current control cycle). The difference between the current acceleration and the jerk of the current control cycle is compared with a negative value of the maximum acceleration, and a larger value is taken as the acceleration. The above may be expressed as follows.
[0051] If - , the constant speed state is reached, and fl_().
[0052] If , the acceleration state is reached, and ' ; '.
[0053] If ~ s the deceleration state is reached, and ;; ’ / - . ^.
[0054] Here, An is the rotational speed difference, £ is the threshold of the rotational speed difference, which may be dynamically set according to the system control accuracy (such as encoder resolution); a and Clcurr are the acceleration and the current acceleration respectively, amax is a maximum linear acceleration; and j is the jerk of the current control cycle, and At is the cycle duration of speed updates.
[0055] In Step 2.2.2, for each side’s motor, a theoretical rotational speed at a next moment is calculated as ; . ■ using the current rotational speed, the acceleration, the jerk, and the cycle duration of speed updates, and a weighted sum of the theoretical rotational speed at the next moment and the current rotational speed is performed to obtain a rotational speed at the next moment, as follows:
[0056]
[0057]
[0058] Here, is a smoothing factor, with a value ranging from 0 to 1; when the speed error is large, tends to 1, indicating that the system responds quickly; when the speed error is small, tends to 0, indicating that the system adjusts smoothly to reduce drastic changes; and is an adjustment coefficient for controlling a response sensitivity to speed error changes.
[0059] The rotational speed at the next moment is used as the expected rotational speed per unit time.
[0060] In this embodiment, the theoretical rotational speed at the next moment and the current rotational speed are integrated, and a smooth transition is achieved through a weight coefficient, thereby avoiding the overshoot problem that may be caused by traditional error integration.
[0061] In other embodiments, Step 2.2.2 may also adopt the following method.
[0062] The rotational speed at the next moment is calculated using the acceleration, the current rotational speed, and the cycle duration of speed updates, as follows:
[0063] ”>•’■■■■' = ■ "" “ ! ^1.
[0064] Here, nnext and ncurr are the rotational speed at the next moment and the current rotational speed, respectively.
[0065] The rotational speed at the next moment is used as the expected rotational speed per unit time.
[0066] In some embodiments, in Step 2.2.1, dynamically adjusting the above jerk according to
[0067] the present current of the motor on this side, includes:
[0068] Here, j\nc and jdec are a jerk in an acceleration stage and a jerk in a deceleration stage, respectively; jmin is a minimum jerk, which is not less than a resolution of the jerk; Jbase_inc* jbase dec are a theoretical jerk in the acceleration stage and a theoretical jerk in the deceleration _ stage, respectively; 7curr is the present current of the motor on this side, 7max is a maximum current, which are actually measured according to different motors or drive limits; and is a suppression proportional factor, with a value ranging from 0 to 1, and a larger value indicates higher response sensitivity.
[0069] In the present disclosure, the current parameters are directly correlated with the jerk adjustment, and the proportional suppression is achieved through the suppression proportional factor, thereby avoiding the overshoot or response delay caused by traditional fixed thresholds. Moreover, the minimum jerk is set to prevent jerk oscillation caused by current fluctuations, thereby enhancing the system stability.
[0070] In some embodiments, the above Step 2.3 includes the following steps.
[0071] In Step 2.3.1, for each side’s motor, the current rotational speed is collected.
[0072] In Step 2.3.2, for each side’s motor, the expected current is calculated based on the error between the expected rotational speed per unit time and the current rotational speed using the speed loop PID.
[0073] Specifically, referring to FIG. 2, an integral limit value is introduced into the speed loop PID to limit an integral term, and a proportional gain and a differential gain are dynamically adjusted according to a magnitude and the rate of change of the error between the expected rotational speed per unit time and the current rotational speed. Then, the differential gain is further adjusted according to an acceleration direction. Finally, the error between the expected rotational speed per unit time and the current rotational speed is substituted into the speed loop PID to output the expected current.
[0074] Specifically, the above expected current may be expressed as: ;
[0075] = ''~ c- „•;.
[0076] Here, 70Ut is the expected current, Tfn_p, Knj, and Knd are the proportional gain, the integral gain, and the differential gain of the speed loop PID, respectively, and nn is the difference between the expected rotational speed per unit time and the current rotational speed; Yn is a proportional gain adjustment factor of the speed loop PID, for increasing the proportional gain to improve the response speed when the error is large; nn is a differential gain adjustment factor of the speed loop PID, for reducing the differential gain to suppress noise interference when the rate of change of the error is large; 8n is an anti-shock coefficient of the speed loop PID, with a value ranging from 0.2 to 0.5; is a sign for a trend of change, in this context, positive and negative indicate acceleration and deceleration, respectively; and En is the integral term of the speed loop PID, and En_max is the integral limit value of the speed loop PID.
[0077] In Step 2.3.3, for each side’s motor, the expected current is limited using a preset expected power, and the expected current is updated to a limited expected current. It should be noted that the above preset expected power refers to a pre-set upper power limit value in the motion control of the autonomous mobile apparatus to protect the motors and drive circuits.
[0078] Specifically, for each side’s motor, a limited current is calculated using the preset expected power, an actual voltage, and a redundancy protection coefficient, as follows: p / - „ ex» ‘iimir ~ u i.
[0079] , where Iimn.it is the limited current, a is the redundancy protection coefficient, a G [0.85,0.95], Pexp is the preset expected power, and f / actuai is the actual voltage.
[0080] The expected current is limited using the limited current, and the expected current is updated to the limited expected current.
[0081] In some embodiments, the above Step 2.4 includes the following steps.
[0082] In Step 2.4.1, for each side’s motor, the present current is collected.
[0083] In Step 2.4.2, for each side’s motor, an integral limit value is introduced into the current loop PID to limit an integral term, and a proportional gain, an integral gain, and a differential gain are dynamically adjusted according to a magnitude and the rate of change of the error between the expected current and the present current. Then, the differential gain is further adjusted according to a direction of the sudden current change, and then, the error between the expected current and the present current is substituted into the current loop PID to obtain an output of the current loop PID.
[0084] After limiting the output of the current loop PID using a maximum duty cycle, the expected duty cycle is output.
[0085] The above expected duty cycle may be expressed as: Dout = ^amPCDour~DTnajc>Dmax). ; Dout = K1.P -(1 + Yr le / l) ■ + -(1 + ^- bl) ' E, + Kla
[0086] + ;
[0087] l>’r*mrcrr:.,^^^
[0088] Here, Dout is the expected duty cycle; clamp is a clipping function in a format of clamp (value,min, max), if value exceeds [min, max], a boundary value is returned; DoUt is the output of the current loop PID, Dmax is the maximum duty cycle, K{ p, K[_i, and Kia are the proportional gain, the integral gain, and the differential gain of the current loop PID, respectively, and 6[ is the difference between the expected current and the present current; yi and are a proportional gain adjustment factor and an integral gain adjustment factor of the current loop PID, respectively, for increasing the proportional gain and the integral gain when the error is large; ip is a differential gain adjustment factor of the current loop PID, for reducing the differential gain when the rate of change of the error is large; ip is an anti-shock coefficient of the current loop PID, with a value ranging from 0.2 to 0.5; is a sign for a trend of change, for determining the direction of the sudden current change; Ei is the integral term of the current loop PID, and E[_max is the integral limit value of the current loop PID; and At / is a cycle duration of current updates.
[0089] In some embodiments, referring to FIG. 3, the above Step 3 includes the following steps.
[0090] In Step 3.1, for the motors on the two sides, it is determined whether the current duty cycles are greater than or equal to respective rated values.
[0091] If yes, Step 3.2 is performed; otherwise, it is determined whether the current duty cycles are less than the respective rated values.
[0092] If yes, Step 3.5 is performed; otherwise, it is determined whether a current duty cycle of a motor on a left side is greater than or equal to a rated value.
[0093] If yes, Step 3.3 is performed; otherwise, Step 3.4 is performed.
[0094] In Step 3.2, it is determined whether , ‘7, 'R -- '■ -r, where ncurr L and ExNL are respectively a current rotational speed and an expected rotational speed per unit time of the motor on the left side, ncurr R and ExNR are respectively a current rotational speed and an expected rotational speed per unit time of a motor on the right side.
[0095] If yes, Step 3.3 is performed; otherwise, Step 3.4 is performed.
[0096] In Step 3.3, RxNs is set to be equal to ExNR • rL (^Q, and then Step 4 is performed.
[0097] In Step 3.4, ExNL is set to be equal to ExNL • T R (' ' ' “ ! ' ': ), and then Step 4 is performed.
[0098] In Step 3.5, for the motors on the two sides, it is determined whether the present currents are greater than or equal to respective rated values.
[0099] If yes, Step 3.2 is performed; otherwise, it is determined whether the present currents are less than the respective rated values.
[00100] If yes, Step 4 is performed; otherwise, it is determined whether a present current of the motor on the left side is greater than or equal to a rated value.
[00101] If yes, Step 3.3 is performed; otherwise, Step 3.4 is performed.
[00102] In Step 3, by comparing the rotational speed ratios of the motors on the two sides, a side with a "smaller deviation" is identified, and is used to correct another side, thereby ensuring the symmetry and balance of the motion.
[00103] Moreover, a multi-layer control logic is used. Firstly, the current duty cycles are determined, and then the present currents are determined, which enables rapid response and early protection, thereby avoiding a control lag caused by a delay of current detection, and balancing the real-time performance and protectiveness.
[00104] It should be noted that the rated value refers to a maximum allowable value of the device under normal and safe operation conditions.
[00105] A motion control system for an autonomous mobile apparatus provided in the present disclosure includes two control groups, and each control group includes a motor controller, a motor drive circuit, a motor, a current sampling unit, and a rotational speed sampling unit.
[00106] The motor controller adopts a microcontroller Unit (MCU). The MCU is connected to the motor drive circuit, and the motor drive circuit is connected to the motor. The rotational speed sampling unit adopts an encoder, which is used to detect a position, a rotational speed, and a direction of a motor rotor in real time through mechanical coupling, and its output end is connected to an interface of the motor controller. The current sampling unit adopts a current sampling circuit, and its sampling method may be a shunt resistor method, a Hall sensor method, a current transformer method, or a combination of a Hall sensor and an amplifier, etc.
[00107] It should be noted that the motor controller may also adopt a digital signal processor (DSP) or a field-programmable gate array (FPGA), etc. The motor drive circuit adopts an H-bridge circuit or a full-bridge drive chip, etc.
[00108] An autonomous mobile apparatus provided in the present disclosure includes the above motion control system of the autonomous mobile apparatus and an entire machine controller. The motor controllers of the two control groups interact with the entire machine controller through a CAN bus, so as to obtain the entire machine expected linear velocity and the entire machine expected angular velocity.
[00109] A computer-readable storage medium provided in the present disclosure stores a computer program. The readable storage medium provided in this embodiment includes a non volatile readable storage medium and a volatile readable storage medium. The readable storage medium stores computer-readable instructions, and when the computer-readable instructions are executed by one or more processors, the one or more processors implement the steps of the above motion control method for the autonomous mobile apparatus in the above embodiments.
[00110] A person of ordinary skill in the art can understand that all or part of the processes in the methods of the above embodiments may be completed by instructing relevant hardware through the computer-readable instructions. The above computer-readable instructions may be stored in the non-volatile readable storage medium or the volatile readable storage medium. When the computer-readable instructions are executed, they may include the processes of the embodiments of the above methods. Any memory, storage, database, or other medium used in the various embodiments provided in the present disclosure may include a non-volatile memory and / or a volatile memory. The non-volatile memory may include a read-only memory (ROM), a programmable ROM (PROM), an electrically programmable ROM (EPROM), an electrically erasable programmable ROM (EEPROM), or a flash memory. The volatile memory may include a random access memory (RAM) or an external cache memory. By way of illustration and not limitation, RAM is available in various forms, such as a static RAM (SRAM), a dynamic RAM (DRAM), a synchronous DRAM (SDRAM), a double data rate SDRAM (DDRSDRAM), an enhanced SDRAM (ESDRAM), a Synchlink DRAM (SLDRAM), a Rambus direct RAM (RDRAM), a direct Rambus dynamic RAM (DRDRAM), and a Rambus dynamic RAM (RDRAM), etc.
[00111] Those skilled in the art can clearly understand that in practical applications, the above functions may be allocated to different functional units or modules as needed. That is, the internal structure of the above autonomous mobile apparatus is divided into different functional units or modules to complete all or part of the functions described above.
[00112] The above embodiments are only used to illustrate the technical solutions of the present disclosure, not to limit them. Although the present disclosure is described in detail with reference to the foregoing embodiments, those ordinarily skilled in the art should understand that: they can still modify the technical solutions recorded in the foregoing embodiments, or equivalently replace some of the technical features; and these modifications or replacements do not make the essence of the corresponding technical solutions deviate from the spirit and scope of the technical solutions of the embodiments of the present disclosure, and shall be all included in the protection scope of the present disclosure.
Claims
1. A motion control method for an autonomous mobile apparatus, wherein the autonomous mobile apparatus adopts a dual-wheel independent drive structure, comprising following steps:converting an entire machine expected linear velocity and an entire machine expected angular velocity into expected rotational speeds of two sides;for a motor of each side, obtaining an expected rotational speed per unit time by performing a constant acceleration smoothing processing on an expected rotational speed, then calculating an expected current based on an error between the expected rotational speed per unit time and a current rotational speed, and then calculating an expected duty cycle based on an error between the expected current and a present current, wherein the unit time is a cycle duration of motor speed updates;dynamically adjusting the expected rotational speed per unit time of a motor on a side based on a motor on another side to achieve synchronization of motors on the two sides, in a case where current duty cycles and present currents of the motors on the two sides are greater than or equal to respective rated values; andfinally outputting expected rotational speeds per unit time and expected duty cycles of the motors on the two sides for respectively controlling respective motors, thereby completing a motion control of a current control cycle.
2. The motion control method for the autonomous mobile apparatus according to claim 1, whereinconverting the entire machine expected linear velocity and the entire machine expected angular velocity into the expected rotational speeds of the two sides comprises: obtaining the entire machine expected linear velocity and the entire machine expected angular velocity, and converting the entire machine expected linear velocity and the entire machine expected angular velocity into the expected rotational speeds of the two sides according to a wheelbase and a wheel radius.
3. The motion control method for the autonomous mobile apparatus according to claim 2, wherein the expected rotational speeds of the two sides are expressed as:^expvexp 2nexp = 2nr,where nexp is an expected rotational speed of the side, vexp is the entire machine expected linear velocity, &)exp is the entire machine expected angular velocity, L is the wheelbase, and r is the wheel radius.
4. The motion control method for the autonomous mobile apparatus according to claim 1, wherein before calculating the expected rotational speed per unit time by performingthe constant acceleration smoothing processing on the expected rotational speed, the motion control method for the autonomous mobile apparatus further comprises:for the motor of each side, if a previous control cycle exists, updating the expected rotational speed to an expected rotational speed per unit time output in the previous control cycle.
5. The motion control method for the autonomous mobile apparatus according to any one of claims 1 to 4, wherein obtaining the expected rotational speed per unit time by performing the constant acceleration smoothing processing on the expected rotational speed comprises:for the motor of each side, comparing a rotational speed difference between a current rotational speed and the expected rotational speed per unit time with a corresponding threshold to determine entering a stage of a T-type acceleration and deceleration curve, and updating an acceleration using jerk; and then calculating a rotational speed at a next moment as the expected rotational speed per unit time based on the current rotational speed using the acceleration,wherein the jerk is a rate of change of the acceleration, and the jerk is a fixed value, or the jerk is dynamically adjusted according to the present current of the motor on this side.
6. The motion control method for the autonomous mobile apparatus according to claim 5, whereindynamically adjusting the jerk according to the present current of the motor on this side, is expressed as:;jdec — max (jminijbase_dec(.l — ' ^curr / ^max^,where j\nc and jdcc are a jerk in an acceleration stage and a jerk in a deceleration stage, respectively; jmjn is a minimum jerk, and is not less than a resolution of the jerk;jbase inC\ J'base aec are a theoretical jerk in the acceleration stage and a theoretical jerk __in the deceleration stage, respectively; 7curr is the present current of the motor on this side, 7max is a maximum current; and P is a suppression proportional factor.
7. The motion control method for the autonomous mobile apparatus according to claim 5, whereinfor the motor of each side, comparing the rotational speed difference between the current rotational speed and the expected rotational speed per unit time with thecorresponding threshold to determine entering the stage of the T-type acceleration and deceleration curve, and updating the acceleration using the jerk, comprises:if an absolute value of the rotational speed difference does not exceed the corresponding threshold, reaching a constant speed state, and setting the acceleration to 0;if the rotational speed difference is greater than the corresponding threshold, reaching an acceleration state, and updating the acceleration to a sum of a current acceleration and a jerk of a current control cycle; and comparing the sum of the current acceleration and the jerk of the current control cycle with a maximum acceleration, and taking a smaller value as the acceleration;if the rotational speed difference is less than a negative value of the corresponding threshold, reaching a deceleration state, and updating the acceleration to a difference between the current acceleration and the jerk of the current control cycle; and comparing the difference between the current acceleration and the jerk of the current control cycle with a negative value of the maximum acceleration, and taking a larger value as the acceleration.
8. The motion control method for the autonomous mobile apparatus according to claim 5, wherein calculating the rotational speed at the next moment as the expected rotational speed per unit time based on the current rotational speed using the acceleration comprises:for the motor of each side, calculating a theoretical rotational speed at a next moment using the current rotational speed, the acceleration, the jerk, and the cycle duration of speed updates, and performing a weighted sum of the theoretical rotational speed at the next moment and the current rotational speed to obtain the rotational speed at the next moment as the expected rotational speed per unit time.
9. The motion control method for the autonomous mobile apparatus according to claim 8, whereinthe theoretical rotational speed at the next moment is ;the rotational speed at the next moment is as follows:where is a smoothing factor; and is an adjustment coefficient for controlling a response sensitivity to speed error changes.
10. The motion control method for the autonomous mobile apparatus according to claim 9, wherein calculating the expected current based on the error between the expected rotational speed per unit time and the current rotational speed comprises:for the motor of each side, collecting the current rotational speed;introducing an integral limit value into a speed loop PID to limit an integral term, and dynamically adjusting a proportional gain and a differential gain according to a magnitude and a rate of change of the error between the expected rotational speed per unit time and the current rotational speed; then further adjusting the differential gain according to an acceleration direction, and then substituting the error between the expected rotational speed per unit time and the current rotational speed into the speed loop PID to output the expected current; andlimiting the expected current using a preset expected power, and updating the expected current to a limited expected current.
11. The motion control method for the autonomous mobile apparatus according to claim 10, wherein the expected current is:lout — Kn_p ’ (1 + fn ’ lenl) ' en + En_[ ' En + l^n_dft ^en \ (-t j? •V-"”' It;En ~ max^min(^En + en • En max), —En max)where 70Ut is the expected current, Knp, Knj, and Kn_a are the proportional gain, an integral gain, and the differential gain of the speed loop PID, respectively, and nn is a difference between the expected rotational speed per unit time and the current rotational speed; nn is a proportional gain adjustment factor of the speed loop PID, for increasing the proportional gain to improve a response speed in a case where the error is large; nn is a differential gain adjustment factor of the speed loop PID, for reducing the differential gain to suppress noise interference in a case where the rate of change of the error is large; 8n is an anti-shock coefficient of the speed loop PID; sign is a sign for a trend of change, where positive and negative indicate acceleration and deceleration, respectively; and En is the integral term of the speed loop PID, and En_max is the integral limit value of the speed loop PID.
12. The motion control method for the autonomous mobile apparatus according to claim 11, whereinSn has a value ranging from 0.2 to 0.5.
13. The motion control method for the autonomous mobile apparatus according to claim 10, wherein limiting the expected current using the preset expected power, and updating the expected current to the limited expected current, comprises:for the motor of each side, calculating a limited current using the preset expected power, an actual voltage, and a redundancy protection coefficient, as follows:pI _ -. exp‘limit ~ a 11‘ ;, where lumtt is the limited current, a is the redundancy protectioncoefficient, Pexp is the preset expected power, and f / actuai is the actual voltage; andlimiting the expected current using the limited current, and updating the expected current to the limited expected current.
14. The motion control method for the autonomous mobile apparatus according to claim 13, whereina e [0.85,0.95].
15. The motion control method for the autonomous mobile apparatus according to claim 10, wherein calculating the expected duty cycle based on the error between the expected current and the present current comprises:for the motor of each side, collecting the present current;introducing an integral limit value into a current loop PID to limit an integral term, and dynamically adjusting a proportional gain, an integral gain, and a differential gain according to a magnitude and a rate of change of the error between the expected current and the present current; then, further adjusting the differential gain according to a direction of a sudden current change, and then substituting the error between the expected current and the present current into the current loop PID to obtain an output of the current loop PID; andoutputting the expected duty cycle after limiting the output of the current loop PID using a maximum duty cycle.
16. The motion control method for the autonomous mobile apparatus according to claim 15, whereinthe expected duty cycle is expressed as:DOut = cl^P(.DoUt,-Dmax,Dmax').;Dout = Ki_p -(i + Yr k / D ■ Si + Kij • (1 + ft - |e,|) ■ E, + Kla • (1 - rj.E{ = max^min^E, + el ■ At^Ej max), -E, max) ,where Dout is the expected duty cycle; clamp is a clipping function in a format of ( , , ),if exceeds [ , ], a boundary valueis returned;DoUt is the output of the current loop PID, Dmax is the maximum duty cycle, Ki p, KI t, and K[ d are the proportional gain, the integral gain, and the differential gain of the current loop PID, respectively, and ei is a difference between the expected current and the present current; yi and are a proportional gain adjustment factor and an integral gain adjustment factor of the current loop PID, respectively, for increasing the proportional gain and the integral gain in a case where the error is large; ip is a differential gain adjustment factor of the current loop PID, for reducing the differential gain in a case where the rate of change of the error is large; 8[ is an anti-shock coefficient of the current loop PID, with a value ranging from 0.2 to 0.5; is a sign for a trend of change, for determining the direction of the sudden current change; Ei is the integral term of the current loop PID, and Ei max is the integral limit value of the current loop PID; and 4ti is the cycle duration of current updates.
17. The motion control method for the autonomous mobile apparatus according to claim 5, whereindynamically adjusting the expected rotational speed per unit time of the motor on the side based on the motor on another side to achieve synchronization of the motors on the two sides, in the case where the current duty cycles and the present currents of the motors on the two sides are greater than or equal to the respective rated values, comprises:in Step A1, for the motors on the two sides, determining whether the current duty cycles are greater than or equal to respective rated values;if the current duty cycles are greater than or equal to the respective rated values, perform step A2; otherwise, determining whether the current duty cycles are less than the respective rated values;if the current duty cycles are less than the respective rated values, performing Step A5; otherwise, determining whether a current duty cycle of a motor on a left side is greater than or equal to a rated value;if the current duty cycle of the motor on the left side is greater than or equal to the rated value, performing Step A3; otherwise, performing Step A4;in Step A2, determining whether 'X ^-^--^., ,-^-^ / ^^,where ncurr_L and ExNL are respectively a current rotational speed and an expected rotational speed per unit time of the motor on the left side, ncurr_R and ExNe are respectively a current rotational speed and an expected rotational speed per unit time of a motor on the right side;if yes, performing Step A3; otherwise, performing Step A4;in Step A3, setting ExOb to be equal to ExNL • TL, and then outputting the expected rotational speeds per unit time and the expected duty cyclesof the motorson the twosides for respectively controlling the respective motors, thereby completing the motion control of the current control cycle;in Step A4: setting ExNb to be equal to ExNL • TR, and then outputting the expected rotational speeds per unit time and the expected duty cycles of the motors on the two sides for respectively controlling the respective motors, thereby completing the motion control of the current control cycle;in Step A5, for the motors on the two sides, determining whether the present currents are greater than or equal to respective rated values;if the present currents are greater than or equal to the respective rated values, performing Step A2; otherwise, determining whether the present currents are less than the respective rated values;if the present currents are less than the respective rated values, outputting the expected rotational speeds per unit time and the expected duty cycles of the motors on the two sides for respectively controlling the respective motors, thereby completing the motion control of the current control cycle; otherwise, determining whether a present current of the motor on the left side is greater than or equal to a rated value;if the present current of the motor on the left side is greater than or equal to the rated value, performing Step A3; otherwise, performing Step A4.
18. A motion control system for an autonomous mobile apparatus, comprising two control groups, each control group comprising a motor and a motor controller, whereinthe motor controller of each control group controls the motor to implement the steps of the motion control method for the autonomous mobile apparatus according to any one of claims 1 to 17.
19. An autonomous mobile apparatus, wherein the autonomous mobile apparatus comprises an entire machine controller and the motion control system for the autonomous mobile apparatus according to claim 18, and the entire machine controller is communicatively connected to the motor controllers of the two control groups in the motion control system of the autonomous mobile apparatus.
20. A computer-readable storage medium, storing a computer program, whereinin response to the computer program being executed by a processor, the processor implements the steps of the motion control method for the autonomous mobile apparatus according to any one of claims 1 to 17.