Robotic system and kinematic control method for wheeled chassis
Patent Information
- Application Number
- CN202611240159.X
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2026-08-14
- Publication Date
- 2026-09-25
AI Technical Summary
这种方式导致算法不可复用,当机器人底盘进行物理重构时,需要完全重写运动学解算器,导致软件维护成本高
[0008]本申请实施例首先将驱动轮建模为通用运动学模型,该通用运动学模型通过运动学方程表征底盘上的多个驱动轮的速度和转向角与底盘的速度和多个驱动轮的安装位置之间的关系,由于该运动学方程与底盘的构型无关,无需预设驱动轮总数、安装位置和转向能力,故能包容任意构型的底盘。在此基础上,通过配置文件输入当前底盘的驱动轮总数、各轮安装位置及转向能力标识,并将通用模型实例化为与各驱动轮一一对应的运动学实例,使抽象方程动态适配具体物理构型。在接收到底盘控制指令后,将各运动学实例绑定的安装位置和底盘的期望速度代入对应的运动学实例计算得到各驱动轮的目标速度和目标转向角,并依据转向能力标识差异化地生成控制指令,对具备主动转向自由度的驱动轮,生成速度控制指令和转向角控制指令,对不具备主动转向自由度的驱动轮仅生成速度控制指令。上述方案使驱动轮的控制算法无需因底盘重构而修改,仅需更新配置文件即可完成适配,从而降低了软件维护代码。
Smart Images

Figure CN122808720A_ABST
Abstract
Description
Technical Field
[0001] One or more embodiments of this application relate to the field of embodied intelligence technology, and more particularly to a kinematic control method for a robot system and a wheeled chassis. Background Technology
[0002] In the field of wheeled mobile robots, chassis kinematic modeling is the core algorithm for converting the desired chassis control commands from the upper layer into the actual rotational speeds and steering angles of each drive wheel. However, chassis with different topologies use different numbers and / or types of drive wheels, resulting in different kinematic constraints. Related technologies require developers to write dedicated kinematic solvers for different chassis configurations. This approach leads to non-reusable algorithms; when the robot chassis undergoes physical reconstruction, the kinematic solver needs to be completely rewritten, resulting in high software maintenance costs. Summary of the Invention
[0003] In view of the above, one or more embodiments of this application provide the following technical solutions: According to a first aspect of one or more embodiments of this application, a kinematic control method for a wheeled chassis is provided, the method comprising: A preset general kinematic model is obtained, which characterizes the relationship between the speed and steering angle of multiple drive wheels on the chassis and the speed of the chassis and the mounting position of the multiple drive wheels through kinematic equations independent of the chassis configuration; Obtain the configuration file, which contains the total number of the plurality of drive wheels, the mounting position of the plurality of drive wheels on the chassis, and the steering capability identifier of the plurality of drive wheels. The steering capability identifier is used to characterize whether the drive wheels have active steering freedom. Based on the total number and installation position of the multiple drive wheels included in the configuration file, the general kinematic model is instantiated into kinematic instances corresponding to each of the multiple drive wheels, and each kinematic instance is bound to the installation position and steering capability identifier of the drive wheel; Receive chassis control commands, wherein the chassis control commands include the desired speed of the chassis; Substitute the installation position and the desired speed bound to each kinematic instance into the corresponding kinematic instance to calculate the target speed and target steering angle for each drive wheel; If the steering capability identifier bound to any kinematic instance indicates that the corresponding drive wheel has active steering degree of freedom, a speed control command for the drive wheel is generated based on the target speed of the drive wheel, and a steering angle control command for the drive wheel is generated based on the target steering angle of the drive wheel. If the steering capability identifier of any kinematic instance indicates that the corresponding drive wheel does not have active steering freedom, a speed control command is generated based on the target speed of the drive wheel.
[0004] According to a second aspect of one or more embodiments of this application, a robot system is provided, the robot system comprising: A chassis, on which multiple drive wheels are mounted; A configuration module is used to store configuration files, which include the total number of the plurality of drive wheels, the mounting positions of the plurality of drive wheels on the chassis, and the steering capability identifiers of the plurality of drive wheels. The steering capability identifiers are used to characterize whether the drive wheels have active steering freedom. A kinematic controller, wherein a universal kinematic model is pre-installed, the universal kinematic model characterizing the relationship between the speed and steering angle of multiple drive wheels on the chassis and the speed of the chassis and the mounting positions of the multiple drive wheels through kinematic equations independent of the chassis configuration; the kinematic controller is used for: Based on the total number and installation position of the multiple drive wheels included in the configuration file, the general kinematic model is instantiated into kinematic instances corresponding to each of the multiple drive wheels, and each kinematic instance is bound to the installation position and steering capability identifier of the drive wheel; Receive chassis control commands, wherein the chassis control commands include the desired speed of the chassis; Substitute the installation position and the desired speed bound to each kinematic instance into the corresponding kinematic instance to calculate the target speed and target steering angle for each drive wheel; If the steering capability identifier bound to any kinematic instance indicates that the corresponding drive wheel has active steering degree of freedom, a speed control command for the drive wheel is generated based on the target speed of the drive wheel, and a steering angle control command for the drive wheel is generated based on the target steering angle of the drive wheel. If the steering capability identifier of any kinematic instance indicates that the corresponding drive wheel does not have active steering degree of freedom, a speed control command corresponding to the drive wheel is generated based on the target speed of the drive wheel. Multiple drive nodes, each drive node being connected to one of the drive wheels, are used to receive control commands issued by the kinematic controller and drive the corresponding drive wheel to move according to the control commands.
[0005] According to a third aspect of one or more embodiments of this application, an electronic device is provided, comprising: a processor; a memory for storing processor-executable instructions; wherein the processor implements the steps of the method of one or more embodiments of this application by executing the executable instructions.
[0006] According to a fourth aspect of one or more embodiments of this application, a computer-readable storage medium is provided having computer instructions stored thereon that, when executed by a processor, implement the steps of the method described in the first aspect of one or more embodiments of this application.
[0007] According to a fifth aspect of one or more embodiments of this application, a computer program product is provided, comprising a computer program / instructions that, when executed by a processor, implement the steps of the method described in the first aspect of one or more embodiments of this application.
[0008] This embodiment first models the drive wheels as a general kinematic model. This general kinematic model characterizes the relationship between the speed and steering angle of multiple drive wheels on the chassis and the speed of the chassis and the installation positions of the multiple drive wheels through kinematic equations. Since the kinematic equations are independent of the chassis configuration, there is no need to preset the total number of drive wheels, installation positions, and steering capabilities, thus it can accommodate chassis of any configuration. Based on this, the total number of drive wheels, the installation positions of each wheel, and the steering capability identifier of the current chassis are input through a configuration file, and the general model is instantiated into kinematic instances corresponding to each drive wheel, so that the abstract equations dynamically adapt to the specific physical configuration. After receiving the chassis control command, the installation positions bound to each kinematic instance and the desired speed of the chassis are substituted into the corresponding kinematic instance to calculate the target speed and target steering angle of each drive wheel, and control commands are generated differently according to the steering capability identifier. For drive wheels with active steering freedom, speed control commands and steering angle control commands are generated, and for drive wheels without active steering freedom, only speed control commands are generated. The above solution eliminates the need to modify the drive wheel control algorithm due to chassis reconstruction; adaptation can be completed simply by updating the configuration file, thereby reducing the amount of software maintenance code. Attached Figure Description
[0009] Figure 1 This is a schematic diagram of a robot system in related technologies.
[0010] Figure 2 This is an exemplary embodiment of a general control flowchart.
[0011] Figure 3 This is a flowchart of a kinematic control method for a wheeled chassis provided in an exemplary embodiment.
[0012] Figure 4This is a schematic diagram of the structure of a device provided in an exemplary embodiment. Detailed Implementation
[0013] To enable those skilled in the art to better understand the technical solutions in this application, the technical solutions in the embodiments of this application will be clearly and completely described below with reference to the accompanying drawings. Obviously, the described embodiments are only some embodiments of this application, and not all embodiments. Based on the embodiments of this application, all other embodiments obtained by those skilled in the art without creative effort should fall within the scope of protection of this application.
[0014] In the field of wheeled mobile robots, chassis kinematic modeling is the core algorithm that converts upper-level chassis control commands into the actual rotational speed and steering angle of each drive wheel. Typically, the upper-level planning module generates chassis control commands based on environmental perception information and task objectives. These chassis control commands cannot directly drive physical actuators and need to be converted into specific control quantities that can be executed by each drive wheel on the chassis through a kinematic model in order to control the speed and steering angle of each drive wheel.
[0015] In related technologies, developers need to derive and write a dedicated kinematics algorithm for each chassis configuration. Taking a differential drive chassis as an example, its kinematic model assumes that the chassis only has two degrees of freedom: forward movement and rotation, and no lateral movement capability. The algorithm outputs only the speed commands for the left and right drive wheels, and its output control quantity does not include the steering angle. For a four-wheel independent steering and independent drive chassis, the algorithm needs to simultaneously output the drive speed commands for all four drive wheels and the steering angle control commands for all four drive wheels. When the chassis configuration changes, such as from a four-wheel rectangular layout to a three-wheel triangular layout, or from a differential drive chassis to a four-wheel independent steering and drive chassis, the original solution algorithm cannot be reused. It is necessary to rewrite the kinematics solver, and even redesign the overall architecture of the control software, resulting in high software maintenance costs.
[0016] Based on this, this application breaks away from the traditional approach of using purely mathematical kinematic models as the sole basis for control, and proposes a general control scheme that decouples the core kinematic algorithm from the specific chassis configuration. The technical solution of this application will be described in detail below with reference to the accompanying drawings. Figure 1 The hardware architecture of a robot system according to this application is shown, such as Figure 1As shown, the robot system includes a chassis 101, a configuration module, a kinematic controller, and multiple drive nodes 106. The configuration module and the kinematic controller are deployed in the robot system's computing platform 103. The configuration module stores configuration files. The kinematic controller is communicatively connected to both the configuration module and the drive nodes 106. The kinematic controller can read the configuration file from the configuration module, perform kinematic calculations based on the parameters in the configuration file, generate control commands for each drive wheel 102 based on the calculation results, and send the generated control commands to each drive node 106. Multiple drive wheels 102 are mounted on the chassis 101, and each drive wheel 102 corresponds one-to-one with a drive node 106. The drive nodes 106 receive control commands and drive the corresponding drive wheel 102 according to the control commands.
[0017] Furthermore, the robot system may also include sensors (not shown), a robotic arm 104, and an end effector 105. Sensors, mounted on the chassis 101 or the robotic arm 104, may include vision sensors, LiDAR, inertial measurement units, etc., and are used to continuously collect environmental perception data and its own motion state data during robot system operation. Vision sensors and LiDAR can be used for obstacle detection and environmental modeling, while the inertial measurement unit can be used to detect the attitude and motion state of the chassis 101. The perception data collected by the sensors can be transmitted via bus to the robot system's computing platform 103 for path planning and decision-making by the upper-level planning module. The upper-level planning module can generate chassis control commands based on the perception data and send them to the kinematic controller. After receiving the chassis control commands, the kinematic controller can perform kinematic calculations based on the parameters in the configuration file read from the configuration module, generating control commands (such as speed control commands and steering angle control commands) for each drive wheel and sending them to the corresponding drive nodes 106. The drive nodes 106 can drive the corresponding drive wheels 102 according to the control commands, enabling the chassis 101 to move to the target working position at the desired speed. After the chassis 101 reaches the target working position, it can control the robotic arm 104 and the end effector 105 to perform the operation task. Sensors can continuously provide visual guidance or force feedback information during the operation task performed by the robotic arm 104 and the end effector 105 to assist in completing precise operations. The technical solution of this application is illustrated below based on the above architecture.
[0018] The chassis 101 is the basic load-bearing structure of the robot system, supporting the kinematic controller, configuration module, drive node 106, and optional functional modules such as the robotic arm 104, end effector 105, and sensors. The chassis 101 is equipped with multiple drive wheels 102. The number of these drive wheels 102 can be configured according to load capacity, terrain adaptability, and motion flexibility requirements. For example, a four-wheel rectangular layout can be used for stability and steering flexibility, a three-wheel triangular layout for lightweight and low cost, and a six-wheel layout for heavy load capacity or obstacle crossing performance. The installation position of each drive wheel 102 can be predetermined by the chassis design drawings and recorded in the form of coordinates of each drive wheel 102 in a preset coordinate system (such as the chassis body coordinate system or the world coordinate system). The drive wheels 102 can include differential wheels, Mecanum wheels, independent steering wheels, etc. Different types of drive wheels 102 differ in their kinematic characteristics. For example, differential wheels and Mecanum wheels can only roll around their own horizontal axis and do not have the ability to actively change direction, while independent steering wheels have the steering freedom to actively rotate around a vertical axis and can independently adjust their direction of travel. Drive wheels 102 can be designed to be detachable to facilitate physical reconstruction according to task requirements, such as changing the wheel type or adjusting the installation position.
[0019] The total number of drive wheels 102 on the chassis 101, the mounting position of each drive wheel 102 on the chassis 101, and the steering capability identifier of each drive wheel 102 can be recorded in a configuration file. The configuration file is an external data file independent of the program code, and its format can adopt a lightweight structured data format, such as YAML or JSON. The configuration file can organize information according to the following structure: first, define the total number N of drive wheels 102, and then define the information of the first to Nth drive wheels 102 in a list format. The information of each drive wheel 102 includes its coordinates in a preset coordinate system and its steering capability identifier. Furthermore, the information of the drive wheel 102 can also include its wheel diameter parameter. The steering capability identifier can be a Boolean field; for example, when the field is true, it indicates that the corresponding drive wheel 102 has an active steering degree of freedom, and when the field is false, it indicates that the corresponding drive wheel 102 does not have an active steering degree of freedom.
[0020] Initially, the configuration file can be a template file without specific values. This template file predefines the structure and data type of each field, such as the total number of drive wheels, the installation position of each drive wheel, and the steering capability identifier of each drive wheel. The robot system user can determine the total number of drive wheels 102, the installation position of each drive wheel 102 in a preset coordinate system, and the steering capability corresponding to the type of each drive wheel 102 based on the actual configuration of the current chassis 101. This data is then written to a file according to the format required by the template file, thereby generating a configuration file suitable for the current chassis configuration. When the robot system starts, the kinematics controller can read this configuration file, load the parameters such as the total number of drive wheels 102, installation position, and steering capability identifier into a cache, and bind these parameters to each kinematic instance. In subsequent control cycles, the kinematics controller can directly read parameters from the cache to perform kinematic calculations without repeatedly accessing the configuration file, thus avoiding the impact of frequent file input / output operations on control real-time performance. The data in the cache can be persistently maintained during normal operation of the robot system until the robot system restarts or receives a parameter reload command.
[0021] When the chassis 101 undergoes physical reconstruction, such as changing the type of drive wheels 102, adjusting the mounting position of drive wheels 102, or increasing or decreasing the number of drive wheels 102, the configuration file can be updated accordingly. In some embodiments, the parameters in the configuration file can be modified after the robot system is stopped, and then the robot system can be restarted. After restarting, the robot system can read the updated configuration file, reload the parameters into the cache, and re-instantiate each kinematic instance. In other embodiments, the status of the configuration file can be monitored in real time through a file monitoring service during normal operation of the robot system. After detecting that the configuration file has been modified, the robot system suspends receiving new chassis control commands, and after confirming that the current control cycle is completed, it rereads the configuration file and updates the parameters in the cache, re-instantiates each kinematic instance according to the read parameters, and resumes receiving chassis control commands. In both of the above update methods, the kinematic controller can verify the validity of the updated configuration file, such as checking whether the total number of drive wheels 102 is a positive integer greater than or equal to 2, whether the mounting position of each drive wheel 102 is within a reasonable physical range, and whether the steering capability identifier is a valid Boolean value, to ensure that the updated parameters can be correctly parsed and executed.
[0022] Because the configuration file exists independently of the kinematic controller's program code and is stored in a plain text structured data format, the configuration file itself is independent of the programming language, compilation environment, and specific chassis configuration. Users can independently write and modify the configuration file based solely on the chassis design drawings, without understanding the implementation details of the kinematic control algorithm. This separation of configuration and code design offers high flexibility and maintainability in practical engineering deployments.
[0023] The configuration file can be read by the kinematic controller. The kinematic controller can be a kinematic control program running on an application-specific integrated circuit (ASIC), a field-programmable gate array (FPGA), a digital signal processor (DSP), an embedded microcontroller, or a general-purpose processor. The kinematic controller can run on a computing platform 103, which can be an in-vehicle computer, an industrial personal computer, or an embedded motherboard. The kinematic controller has a pre-built general kinematic model, which is an abstract mathematical description independent of the chassis 101 configuration. The term "independent of chassis 101 configuration" means that the kinematic equations of this general kinematic model express only a general mapping relationship. Given the mounting position of any drive wheel 102 and the desired speed of the chassis 101 as a whole, the desired speed and steering angle of the drive wheel 102 at that mounting position can be calculated using this equation. In other words, this general kinematic model is applicable to various chassis 101 configurations, such as three-wheeled chassis, four-wheeled chassis, differential wheels, and independent steering wheels; the only difference lies in the specific parameter values substituted into the kinematic equations.
[0024] In some embodiments, the velocity of the chassis 101 includes linear velocity and angular velocity. Further, the linear velocity of the chassis 101 includes the linear velocity of the chassis 101 in a first direction and the linear velocity of the chassis 101 in a second direction, wherein the first direction is perpendicular to the second direction. Based on this, the general kinematic model can be expressed by the following kinematic equations: (Formula 1); in, This represents the installation coordinates of the i-th drive wheel 102 in the preset coordinate system. When the preset coordinate system is the chassis body coordinate system, the origin of the coordinate system is the geometric center of the chassis 101. This represents the linear velocity of chassis 101 in the x-direction (usually the forward direction, i.e., the first direction mentioned above) of the preset coordinate system. This represents the linear velocity of chassis 101 in the y-direction (perpendicular to the x-direction, usually the lateral direction, i.e., the second direction mentioned above) within the preset coordinate system. This indicates the angular velocity of chassis 101. This represents the steering angle of the i-th drive wheel 102. This represents the speed of the i-th drive wheel 102.
[0025] Taking a four-wheel independent drive steering chassis as an example, the installation coordinates of the four drive wheels are W1(+0.225, +0.165), W2(+0.225, -0.165), W3(-0.225, +0.165), and W4(-0.225, -0.165). When the chassis receives a chassis control command ( , , When W1 is used as an example, substitute it into the general formula: , , but , .
[0026] It is understood that the above formulas are merely illustrative and not intended to limit this application. In other examples, the mounting position of the drive wheel can be determined using coordinates other than those described above. It can also be represented using polar coordinates. It means that, among them, Let be the distance between the i-th drive wheel and the geometric center of chassis 101. Let be the azimuth angle of the i-th drive wheel.
[0027] The establishment of the aforementioned universal kinematic model does not rely on manual derivation and simplification of kinematic constraints for a specific chassis configuration. Its establishment process is based on the fundamental principles of rigid body kinematics. Specifically, the entire chassis 101 can be considered as a rigid body, and each drive wheel 102 as a point fixed to this rigid body. According to the fundamental laws of rigid body kinematics, the velocity of any point on a rigid body is equal to the vector sum of the velocity of the reference point of the rigid body and the linear velocity caused by the angular velocity of the rigid body. Based on this, a universal mapping relationship between the velocity vector at any installation position of the drive wheel 102 and the velocity of the chassis 101 can be derived. This mapping relationship holds true for various wheeled chassis configurations. Since this derivation process does not involve any assumptions about the number, type, or installation layout of the drive wheels, the resulting kinematic equations are universal. Once this universal kinematic model is pre-installed in the kinematic controller, it remains unchanged in all subsequent control cycles, without requiring modification or recompilation due to changes in the chassis 101 configuration. When the configuration of chassis 101 changes, only the parameters in the configuration file need to be updated. After reading the new parameters, the kinematic controller substitutes the new parameters into the general model for calculation. The general kinematic model itself does not need to be modified, thus avoiding the problem in related technologies that require re-deriving kinematic formulas and rewriting algorithm code due to changes in chassis configuration. This improves the stability and reusability of the kinematic controller's software code and reduces software maintenance costs.
[0028] After the general kinematic model is pre-loaded into the kinematic controller, the kinematic controller can instantiate the general kinematic model into multiple kinematic instances corresponding to each drive wheel 102, based on the total number and installation position of the drive wheels 102 contained in the configuration file. Specifically, the kinematic controller can read the total number N of drive wheels 102 in the configuration file and dynamically create N sets of data structures in the memory of the computing platform 103, with each set of data structures corresponding to one drive wheel 102. The kinematic controller can write the installation position and steering capability identifier of each drive wheel 102 in the configuration file into the corresponding data structure to complete the parameter binding. Taking a four-wheel rectangular chassis 101 as an example, the configuration file can record that the total number of drive wheels 102 is 4, and sequentially record the installation coordinates and steering capability identifiers of the four drive wheels 102. After reading the configuration file, the kinematic controller can create four kinematic instances in memory. The first kinematic instance is bound to the installation coordinates and steering capability identifier of the first drive wheel 102, the second kinematic instance is bound to the installation coordinates and steering capability identifier of the second drive wheel 102, and so on.
[0029] In this way, although each kinematic instance shares the same set of mathematical forms of kinematic equations, because they are bound to different installation coordinates and steering capability identifiers, the target velocity and target steering angle calculated after substituting them into the equations can be different. This accurately reflects the speed differences that each drive wheel 102 should exhibit under the same chassis motion state due to different installation positions. The above instantiation process can be completed automatically when the robot system starts, and can also be re-executed after the configuration file is updated, so that the general kinematic model can dynamically adapt to any physical configuration of the chassis 101 at runtime without modifying the code.
[0030] After each kinematic instance is created and its parameters are bound, the kinematic controller can wait to receive chassis control commands. These commands can be generated by the upper-level planning module based on environmental perception information and task objectives, and then sent to the kinematic controller via a communication interface. The chassis control commands may include the desired speed of the chassis 101, which can include the desired linear velocity in the forward direction, the desired linear velocity in the lateral direction, and the desired angular velocity. The upper-level planning module can be a software module running on the same computing platform 103, or it can be an external device communicating with the computing platform 103. The issuance of chassis control commands can be periodic, such as continuously issued at fixed time intervals, or non-periodic, such as issued only when the speed changes.
[0031] After receiving the chassis control command, the kinematic controller can substitute the installation position bound to each kinematic instance and the desired speed of the chassis in the chassis control command into the corresponding kinematic instance to calculate the target speed and target steering angle corresponding to each drive wheel 102. Specifically, each kinematic instance can call the same kinematic equation during runtime, substituting the bound installation coordinates and desired speed into the kinematic equation for calculation. Taking the above-mentioned four-wheel rectangular layout chassis 101 as an example, assuming the installation coordinates of the four drive wheels 102 are as follows... , , and When the kinematic controller receives the desired velocity... At that time, the first kinematic instance will and Substituting into the kinematic equations, the target velocity and target steering angle corresponding to the first drive wheel 102 are calculated; the second kinematic instance will... and Substituting into the same kinematic equation, the target velocity and target steering angle corresponding to the second drive wheel 102 are calculated; and so on.
[0032] In some embodiments, the kinematic equations may have a unique solution only when the target speed is within a specified speed range, and not when the target speed is outside the specified speed range. For example, when the kinematic equations are expressed as the arctangent function in Formula 1 above, the kinematic equations do not have a unique solution when the target speed is greater than 0 and less than a preset speed threshold, but have a unique solution when the target speed is equal to 0 or not less than the preset speed threshold. When the kinematic equations do not have a unique solution, a definite steering angle cannot be given. If kinematic calculations are still performed under this condition, the calculation result will be an unpredictable random value or an invalid value, which may cause the steering angle control command to jump, causing unnecessary rotation of the drive wheel 102.
[0033] Therefore, in this embodiment of the application, before substituting the installation position and desired speed bound to each kinematic instance into the corresponding kinematic instance in each cycle, it can first determine whether the target speed of the current cycle is within the specified speed range. If so, the installation position and desired speed bound to each kinematic instance are directly substituted into the corresponding kinematic instance to calculate the target speed and target steering angle of each drive wheel 102 in the current cycle. If not, the steering angle control command of multiple drive wheels 102 in the previous cycle is directly determined as the steering angle control command of the corresponding drive wheel 102 in the current cycle, and the speed control command of the corresponding drive wheel 102 in the current cycle is determined as the zero-speed control command, wherein the zero-speed control command is used to control the speed of the drive wheel to 0.
[0034] In some embodiments, the desired speed of the chassis 101 includes a first linear velocity of the chassis 101 in a first direction, a second linear velocity of the chassis 101 in a second direction, and a sum of angular velocities of the chassis 101. Based on this, if all three conditions are simultaneously met—the first linear velocity being less than a preset linear velocity threshold, the second linear velocity being less than a preset linear velocity threshold, and the angular velocity being less than a preset angular velocity threshold—then the target speed for the current cycle is determined to be within the specified speed range. If at least one of the above three conditions is not met, the target speed for the current cycle is determined to be outside the specified speed range.
[0035] The above-mentioned judgment mechanism solves the problem of random jumps in steering angle control commands caused by the lack of a unique solution in the kinematic equations, eliminates the oscillation phenomenon of steering angle commands near zero speed, improves the numerical stability and reliability of the control system, and at the same time reduces unnecessary large movements or even chattering of the steering motor, thereby improving system reliability and hardware lifespan.
[0036] In addition to using the steering angle control command from the previous cycle, if the target speed of the current cycle is outside the specified speed range, the steering angle of the drive wheel 102 can be pre-aligned (e.g., the drive wheel 102 can be turned to the forward direction of the chassis 101), or other methods can be used to handle the situation where the target speed is outside the specified speed range.
[0037] Due to the differences in mechanical characteristics among the different drive wheels 102, some drive wheels 102 possess active steering freedom, meaning their direction of travel can be independently adjusted via a steering motor, while others do not. For example, differential wheels or Mecanum wheels can only roll around their own horizontal axis and cannot actively change their orientation. Therefore, the target steering angle calculated by the kinematic example only has physical meaning for drive wheels 102 with active steering freedom and can be sent to the steering actuator for execution. However, for drive wheels 102 without active steering freedom, the target steering angle is merely a mathematical quantity that cannot be physically realized. If the target steering angle is sent to a drive node 106 with only rolling freedom, that drive node 106 will not be able to recognize or execute the command, and may even trigger abnormal behavior. Based on this, before generating control commands for each drive wheel 102, the kinematic controller can read the steering capability identifier bound to each kinematic instance from the configuration file, determine whether the corresponding drive wheel 102 has active steering freedom based on the read steering capability identifier, and thus generate corresponding control commands for drive wheels 102 with different characteristics.
[0038] Specifically, if the steering capability identifier bound to the kinematic instance indicates that the corresponding drive wheel 102 has an active steering degree of freedom, the kinematic controller can generate a speed control command based on the target speed corresponding to the drive wheel 102, and a steering angle control command based on the target steering angle corresponding to the drive wheel 102. The speed control command includes the desired rotational speed information of the drive wheel 102, and the steering angle control command includes the desired steering angle information of the drive wheel 102. The kinematic controller can send the speed control command and the steering angle control command to the drive node 106 of the corresponding drive wheel 102, respectively. The drive node 106 may include a drive motor and a steering motor, used to control the speed and steering angle of the drive wheel 102, respectively, so that the drive wheel 102 moves at the target speed and target steering angle while possessing steering capability. If the steering capability identifier bound to the kinematic instance indicates that the corresponding drive wheel 102 does not have an active steering degree of freedom, the kinematic controller only generates a speed control command based on the target speed corresponding to the drive wheel 102 and sends the speed control command to the drive node 106 of the corresponding drive wheel 102, without generating a steering angle control command. The drive motor in drive node 106 can control drive wheel 102 to move at the target speed according to the instruction.
[0039] Through the aforementioned judgment logic, the kinematic controller can simultaneously adapt to both steering-capable and non-steering drive wheels 102 within the same algorithm framework, achieving effective control of hybrid chassis configurations. For example, for a four-wheel independent steering and independent drive chassis, the kinematic controller generates speed control commands and steering angle control commands for all four drive wheels 102; for a differential drive chassis, the kinematic controller generates only speed control commands for two drive wheels 102, without generating steering angle control commands; for a hybrid chassis configuration containing both types of wheels, the kinematic controller generates both commands for some drive wheels 102 and only speed control commands for the other part of the drive wheels 102, thereby achieving differentiated and precise control.
[0040] It should be noted that in related technologies, the steering angle variable is only introduced into the algorithm when the hardware possesses steering capability, and the steering angle parameter is only included in the control algorithm for the drive wheels. Following this design principle, the kinematic algorithm for a differential drive chassis does not include the steering angle, while the kinematic algorithm for a four-wheel independent steering chassis must include it. This leads to strong coupling between the kinematic algorithm and the chassis hardware configuration, meaning that changes in the chassis configuration alter the set of variables involved in the algorithm, necessitating a rewrite of the algorithm. This application adopts a different design approach. In this application, regardless of whether the drive wheels possess active steering degrees of freedom, the kinematic controller calculates the target speed and target steering angle for all drive wheels during the calculation phase. Only when generating control commands does it determine whether to issue the target steering angle as a steering angle control command by reading the steering capability identifier. This method decouples physical calculation from hardware adaptation, making the kinematic algorithm independent of the hardware configuration, thus achieving algorithm generalization without sacrificing computational accuracy.
[0041] Upon receiving control commands, the kinematic controller can send control commands for each drive wheel 102 to the corresponding drive node 106, so that the drive node 106 drives the corresponding drive wheel 102 to move according to the control commands. For drive wheels 102 with active steering freedom, the control commands sent by the kinematic controller to the corresponding drive node 106 include both speed control commands and steering angle control commands. After receiving the above two commands, the drive node 106 controls the speed and steering angle of the drive wheel 102 respectively, so that the drive wheel 102 moves at the target speed in the direction indicated by the target steering angle. For drive wheels 102 without active steering freedom, the control commands sent by the kinematic controller to the corresponding drive node 106 only include speed control commands and do not include steering angle control commands. After receiving the speed control command, the drive node 106 controls the drive wheel 102 to move at the target speed, and the direction of travel of the drive wheel 102 is determined by its fixed installation orientation.
[0042] Taking a chassis 101 with four drive wheels 102 as an example, if all four drive wheels 102 have active steering degrees of freedom, the kinematic controller sends speed control commands and steering angle control commands to the four drive nodes 106 respectively, and each drive wheel 102 can independently adjust its direction of travel while rolling. If none of the four drive wheels 102 have active steering degrees of freedom, the kinematic controller only sends speed control commands to the four drive nodes 106 respectively, and the four drive wheels 102 roll only at their respective target speeds, with their direction of travel determined by their respective fixed installation orientation. If some of the four drive wheels 102 have steering capabilities and some do not, the kinematic controller sends both types of commands to the drive wheels 102 with steering capabilities, and only sends speed control commands to the drive wheels 102 without steering capabilities, thus achieving differentiated control of each drive wheel 102 in a hybrid configuration.
[0043] In some embodiments, when the difference between the current steering angle and the target steering angle of the drive wheel 102 is large, the steering motor needs to rotate a large angle to reach the target position, resulting in a long steering response time. However, the motion effect achieved by the drive wheel 102 rolling forward in a certain direction is approximately the same as that achieved by rolling backward in the opposite direction. Utilizing this principle, when the difference between the target steering angle and the current steering angle is too large, the drive speed can be reversed, so that the steering motor only needs to rotate a small angle to achieve the equivalent motion effect, thereby shortening the steering response time. Specifically, after generating the steering angle control command, the current steering angle feedback of the drive wheel can be obtained, and the difference between the target steering angle and the current steering angle feedback can be determined. The current steering angle feedback represents the actual steering angle of the drive wheel 102 at the current moment, which can be measured by an angle sensor (such as a potentiometer, magnetic encoder, or photoelectric encoder) located at the steering joint of the drive wheel 102.
[0044] If the difference does not exceed the preset steering angle threshold, it means that the deviation between the current steering angle and the target steering angle is small, and the path to directly rotate to the target angle along the current direction is short. Therefore, a speed control command can be generated to control the drive wheel to move at the target speed, and a steering angle control command can be generated to control the drive wheel to turn at the target steering angle.
[0045] Furthermore, if the difference exceeds a preset steering angle threshold, it indicates a large deviation between the current steering angle and the target steering angle. The path to the target angle by directly turning in the current direction is too long, and a shorter path may exist. Therefore, the target steering angle can be adjusted. The adjusted target steering angle is the angle after offsetting the target steering angle by a preset angle in the direction that reduces the difference. Then, a speed control command can be generated to control the drive wheel to move at the opposite phase of the target speed, and a steering angle control command can be generated to control the drive wheel to turn at the adjusted target steering angle.
[0046] The steering angle threshold can be set to a value greater than 0° and less than 180° according to actual needs (such as 85°, 90°, 120°, 135°, etc.). A smaller steering angle threshold can reduce the risk of frequent changes in drive direction.
[0047] In some embodiments, the adjusted target steering angle can be denoted as: (Formula 2); in, The target steering angle before adjustment. This is the adjusted target steering angle. The plus or minus sign is determined by the direction that minimizes the actual steering travel; that is, the adjusted target steering angle should cause the steering motor to rotate from the current steering angle feedback value to... The stroke is less than the rotation to The itinerary.
[0048] The speed of the drive wheels can be reversed according to the following formula: (Formula 3) in, Indicates the velocity before inversion. This indicates the speed after phase inversion.
[0049] In a numerical embodiment, assuming the current steering angle feedback is 0 degrees, the kinematic controller calculates the target steering angle. The target steering angle is 170 degrees, and the steering angle threshold is set to 90 degrees. The difference between the target steering angle of 170 degrees and the current steering angle feedback of 0 degrees is 170 degrees, which exceeds the 90-degree threshold. If a steering angle control command of 170 degrees is directly issued, the steering motor needs to rotate 170 degrees to reach the target position. Therefore, according to the above formula, subtracting 180 degrees from 170 degrees yields the adjusted target steering angle. The angle is set to -10 degrees, meaning the steering motor only needs to rotate 10 degrees to reach the adjusted target orientation, minimizing the actual steering travel. Furthermore, the speed of the drive wheels is reversed; that is, the drive wheels 102 roll in the opposite direction of the original target speed at the -10-degree angle. Although both the steering angle and drive speed have changed, the actual movement of the drive wheels 102 is identical to rolling forward at the original target steering angle of 170 degrees, while the steering motor's rotational travel is reduced from 170 degrees to 10 degrees. Through these adjustments, the steering motor can reach the target orientation with a shorter rotational travel in each control cycle, avoiding the problem of taking detours during large-angle steering and improving the chassis's smoothness and dynamic response performance.
[0050] Figure 2 The overall control flow diagram of this application is shown, which includes the following steps: Step S101: After the robot system starts, the kinematics controller reads the configuration file, which contains the total number of drive wheels 102, the mounting position of each drive wheel 102 on the chassis 101, and the steering capability identifier of each drive wheel 102. Based on the total number and mounting position of the drive wheels 102 in the configuration file, the kinematics controller instantiates the preset general kinematic model into kinematic instances corresponding to each drive wheel 102. Each kinematic instance is bound to the mounting position and steering capability identifier of the corresponding drive wheel 102.
[0051] Step S102: After the control cycle begins, the kinematic controller receives the chassis control command issued by the upper planning module. The chassis control command includes the desired linear velocity and desired angular velocity of the chassis 101.
[0052] Step S103: The kinematic controller performs state monitoring to determine whether the target velocity of the current cycle is within the specified velocity range. Specifically, the kinematic controller determines whether the desired linear velocity is less than a preset linear velocity threshold and whether the desired angular velocity is less than a preset angular velocity threshold. If yes, the target velocity is determined to be outside the specified velocity range, and step S104 is executed; otherwise, the target velocity is determined to be within the specified velocity range, and step S105 is executed.
[0053] Step S104: When the target speed is outside the specified speed range, the kinematic equation does not have a unique solution, triggering the zero-speed interception mechanism: The kinematic controller determines the steering angle control command of each drive wheel 102 in the previous cycle as the steering angle control command of the current cycle, and determines the speed control command of each drive wheel 102 in the current cycle as the zero-speed control command, and then jumps to step S109.
[0054] Step S105: When the target speed is within the specified speed range, the kinematic equation has a unique solution. The kinematic controller substitutes the installation position bound to each kinematic instance and the expected speed of the current cycle into the corresponding kinematic instance, calls the general kinematic equation for adaptive solution, and calculates the target speed and target steering angle corresponding to each drive wheel 102.
[0055] Step S106: The kinematic controller acquires the current steering angle feedback of each drive wheel 102, determines the difference between the target steering angle and the current steering angle feedback, and thus determines whether path reconstruction is required. If the difference does not exceed a preset steering angle threshold, then step S107 is executed; otherwise, step S108 is executed.
[0056] Step S107: Keep the original solution results, use the target steering angle as the steering angle control command, and use the target speed as the speed control command.
[0057] Step S108: Perform path reconstruction: Adjust the target steering angle. The adjusted target steering angle is the angle after offsetting the target steering angle by a preset angle along the direction that reduces the difference. At the same time, reverse the drive speed to shorten the actual rotational stroke of the steering motor. For drive wheels 102 that do not have active steering freedom, the kinematic controller only generates speed control commands based on the target speed and does not perform path reconstruction related to the steering angle.
[0058] Step S109: The kinematic controller enters the physical execution phase and reads the steering capability identifier bound to each kinematic instance. If the steering capability identifier indicates that the corresponding drive wheel 102 has an active steering degree of freedom, the kinematic controller sends the target velocity and target steering angle obtained after path reconstruction as control commands to the corresponding drive node 106; if the steering capability identifier indicates that the corresponding drive wheel 102 does not have an active steering degree of freedom, the kinematic controller only sends the target velocity obtained after path reconstruction as a control command to the corresponding drive node 106. The drive node 106 drives the corresponding drive wheel 102 to move according to the received control commands.
[0059] Step S110: The kinematic controller obtains feedback information from the drive wheel 102, waits to enter the next control cycle, and returns to step S102.
[0060] This application has the following technical effects: (1) The algorithm is highly reusable. One algorithm can adapt to various chassis with arbitrary configurations. The kinematic equations with the installation position of each drive wheel as the only geometric parameter do not need to be rewritten for different numbers of wheels or installation layouts. Only the configuration file needs to be modified to adapt to any independent steering chassis with 2 wheels, 3 wheels, 4 wheels, 6 wheels, etc. The software has a high reusability rate and effectively reduces development and maintenance costs.
[0061] (2) It can eliminate zero-speed singularity. By detecting whether the target speed is outside the specified speed range, and using the steering angle of the previous cycle when the detection result is yes, it eliminates the problem of random change of steering angle caused by the kinematic equation not having a unique solution, reduces unnecessary chattering loss of steering motor, and improves the robustness and hardware reliability of the control system.
[0062] (3) Steering path optimization. By judging the difference between the current steering angle feedback and the target steering angle, the steering strategy with a shorter path is automatically selected, which can reduce the steering travel by up to half, effectively shortening the response time of the chassis when the direction of movement changes abruptly, and improving the dynamic performance and smoothness of the chassis.
[0063] (4) Configuration file driven, making engineering implementation convenient and efficient. The geometric parameters of the drive wheels are entirely provided by the external configuration file. After the chassis configuration is changed, only the installation position parameters need to be updated. There is no need to recompile or modify the algorithm code, which makes engineering implementation highly efficient and especially suitable for rapid prototyping and scientific research iteration scenarios.
[0064] like Figure 3 As shown, this application also provides a kinematic control method for a wheeled chassis, the method comprising: Step S201: Obtain a preset general kinematic model, which characterizes the relationship between the speed and steering angle of multiple drive wheels on the chassis and the speed of the chassis and the installation position of the multiple drive wheels through kinematic equations independent of the chassis configuration; Step S202: Obtain the configuration file, which contains the total number of the plurality of drive wheels, the mounting position of the plurality of drive wheels on the chassis, and the steering capability identifier of the plurality of drive wheels. The steering capability identifier is used to characterize whether the drive wheels have active steering freedom. Step S203: Based on the total number and installation position of the plurality of drive wheels included in the configuration file, the general kinematic model is instantiated into kinematic instances corresponding to each of the plurality of drive wheels, and each kinematic instance is bound to the installation position and steering capability identifier of the drive wheel; Step S204: Receive chassis control command, wherein the chassis control command includes the desired speed of the chassis; Step S205: Substitute the installation position and the desired speed of each kinematic instance into the corresponding kinematic instance to calculate the target speed and target steering angle of each drive wheel; Step S206: If the steering capability identifier bound to any kinematic instance indicates that the corresponding drive wheel has active steering freedom, generate a speed control command for the drive wheel based on the target speed of the drive wheel, and generate a steering angle control command for the drive wheel based on the target steering angle of the drive wheel. Step S207: If the steering capability identifier bound to any kinematic instance indicates that the corresponding drive wheel does not have active steering degree of freedom, generate a speed control command for the drive wheel based on the target speed corresponding to the drive wheel.
[0065] For detailed implementation of the above method embodiments, please refer to the embodiments of the aforementioned robot system, which will not be repeated here.
[0066] Figure 4 This is a schematic structural diagram of a device provided in an exemplary embodiment. For example... Figure 4 As shown, device 300 mainly consists of a communication interface 301, a user interface 302, a processor 303, and a data storage 304. These components are interconnected and communicate with each other via a system bus, network, or other connection mechanism 305. The communication interface 301 enables device 300 to communicate with other devices, access networks, and transmission networks via analog or digital modulation. For example, the communication interface 301 may include a chipset and antenna for wireless communication with a radio access network or access point. Furthermore, the communication interface 301 can be a wired interface such as Ethernet, Token Ring, or a USB port, or a wireless interface such as Wi-Fi, Bluetooth, Global Positioning System (GPS), or a wide-area wireless interface (e.g., WiMAX or LTE). Of course, the communication interface 301 can also support other forms of physical layer interfaces and standard or proprietary communication protocols. The communication interface 301 may also include multiple physical communication interfaces, such as Wi-Fi, Bluetooth, and wide-area wireless interfaces.
[0067] User interface 302 includes receiving user input and providing output to the user. Therefore, user interface 302 may include input components such as a keypad, keyboard, touch-sensitive or presence-sensitive panel, computer mouse, trackball, joystick, microphone, still camera, and video camera, and output components such as a display screen (which may be combined with a touch-sensitive panel), CRT, LCD, LED, display using DLP technology, printer, and other similar devices known or developed in the future. User interface 302 may also generate auditory output via speakers, speaker jacks, audio output ports, audio output devices, headphones, and other similar devices known or developed in the future. In some embodiments, user interface 302 may include software, circuitry, or other forms of logic capable of transmitting and receiving data from external user input / output devices. Additionally or alternatively, device 300 may support remote access from other devices via communication interface 301 or another physical interface (not shown). User interface 302 may be configured to receive user input, the position and movement of which may be indicated by indicators or cursors described herein. User interface 302 may also be configured as a display device for rendering or displaying text fragments.
[0068] Processor 303 may include one or more general-purpose processors and / or special-purpose processors.
[0069] Data storage 304 may include one or more volatile and / or non-volatile storage components and may be integrated wholly or partially with processor 303. Data storage 304 may include removable and non-removable components.
[0070] Processor 303 is capable of executing program instructions 309 (e.g., compiled or uncompiled program logic and / or machine code) stored in data storage 304 to implement the various functions described herein. Data storage 304 may comprise a non-transitory computer-readable medium on which program instructions are stored, which, when executed by device 300, enable device 300 to perform any methods, processes, or functions disclosed in this application and / or the accompanying drawings. Execution of program instructions 309 by processor 303 may result in processor 303 using data 306.
[0071] For example, program instructions 309 may include an operating system 311 (e.g., an operating system kernel, device drivers, and / or other modules) installed on device 300 and one or more applications 310 (e.g., a browser, social application, or game application). Similarly, data 306 may include operating system data 308 and application data 307. Operating system data 308 is primarily accessible to the operating system 311, while application data 307 is primarily accessible to one or more applications 310. Application data 307 may reside in a file system visible or hidden from the user of device 300.
[0072] Application 310 can communicate with operating system 311 through one or more application programming interfaces (APIs). These APIs help application 310 read and / or write application data 307, transmit or receive information via communication interface 301, receive or display information on user interface 302, etc.
[0073] In some terminology, application 310 may be simply referred to as "app". Furthermore, application 310 can be downloaded to device 300 through one or more online app stores or app markets. However, applications can also be installed on device 300 in other ways, such as through a web browser or a physical interface on device 300 (e.g., a USB port).
[0074] Based on the same concept as the methods described above, this application also provides an electronic device, including: a processor; a memory for storing processor-executable instructions; wherein the processor implements the steps of the method as described in any of the above embodiments by executing the executable instructions.
[0075] Based on the same concept as the methods described above, this application also provides a computer-readable storage medium having computer instructions stored thereon that, when executed by a processor, implement the steps of the methods as described in any of the above embodiments.
[0076] Based on the same concept as the methods described above, this application also provides a computer program product, including a computer program / instructions that, when executed by a processor, implement the steps of the methods as described in any of the above embodiments.
[0077] What those skilled in the art will understand is: In this application, the terms "comprising," "including," or any other variations thereof are intended to cover a non-exclusive inclusion, such that a process, method, product, or apparatus that comprises a list of elements includes not only those elements but also other elements not expressly listed, or elements inherent to such a process, method, product, or apparatus. Without further limitation, the presence of additional identical or equivalent elements in a process, method, product, or apparatus that includes said elements is not excluded.
[0078] In this application, “a,” “an,” and “the” do not specifically refer to the singular, but may also include the plural.
[0079] In this application, ordinal numbers such as "first," "second," etc., do not necessarily indicate order; they are often used to distinguish between objects. For example, "first server" and "second server" usually refer to two servers. To differentiate between these two servers, they are described as "first server" and "second server." Of course, sometimes these two servers may be the same server.
[0080] In this application, unless explicitly stated otherwise, "receiving and sending data" does not necessarily mean direct receipt and transmission; it can also mean indirect receipt and transmission. For example, A receiving data sent by B can be understood as A directly receiving the data sent by B, or it can be understood as A indirectly receiving the data sent by B through other entities such as C. Similarly, B sending data to A can be understood as B directly sending the data to A, or it can be understood as B indirectly sending the data to A through other entities such as C. Here, C can be one entity, or it can be two or more entities.
[0081] In this application, unless explicitly stated otherwise, the relationships between structures can be direct or indirect. For example, when describing "A is connected to B," unless it is explicitly stated that A and B are directly connected, it should be understood that A can be directly connected to B or indirectly connected to B. Similarly, when describing "A is on top of B," unless it is explicitly stated that A is directly above B (AB is adjacent and A is above B), it should be understood that A can be directly above B or indirectly above B (AB is separated by other elements, and A is above B). And so on.
[0082] This application uses specific terms to describe embodiments of the application. Terms such as "an embodiment," "one embodiment," and / or "some embodiments" refer to a particular feature, structure, or characteristic related to at least one embodiment of the application. Therefore, it should be emphasized and noted that references to "an embodiment," "one embodiment," or "an alternative embodiment" in different locations throughout this application do not necessarily refer to the same embodiment. Furthermore, without contradiction, those skilled in the art can combine and integrate the different embodiments or examples described in this application, as well as the features of those different embodiments or examples.
[0083] Although one or more embodiments of this application provide method steps as described in the embodiments or flowcharts, it is understood that the order of steps listed in the embodiments or flowcharts is only one of many possible execution orders and does not represent the only execution order. Therefore, when the claims involve method steps, any changes or adjustments to the order of such steps, or the parallelism between steps, are also within the scope of protection of the claims.
Claims
1. A kinematic control method for a wheeled chassis, characterized in that, The method includes: A preset general kinematic model is obtained, which characterizes the relationship between the speed and steering angle of multiple drive wheels on the chassis and the speed of the chassis and the mounting position of the multiple drive wheels through kinematic equations independent of the chassis configuration; Obtain the configuration file, which contains the total number of the plurality of drive wheels, the mounting position of the plurality of drive wheels on the chassis, and the steering capability identifier of the plurality of drive wheels. The steering capability identifier is used to characterize whether the drive wheels have active steering freedom. Based on the total number and installation position of the multiple drive wheels included in the configuration file, the general kinematic model is instantiated into kinematic instances corresponding to each of the multiple drive wheels, and each kinematic instance is bound to the installation position and steering capability identifier of the drive wheel; Receive chassis control commands, wherein the chassis control commands include the desired speed of the chassis; Substitute the installation position and the desired speed bound to each kinematic instance into the corresponding kinematic instance to calculate the target speed and target steering angle for each drive wheel; If the steering capability identifier bound to any kinematic instance indicates that the corresponding drive wheel has active steering degree of freedom, a speed control command for the drive wheel is generated based on the target speed of the drive wheel, and a steering angle control command for the drive wheel is generated based on the target steering angle of the drive wheel. If the steering capability identifier of any kinematic instance indicates that the corresponding drive wheel does not have active steering freedom, a speed control command is generated based on the target speed of the drive wheel.
2. The method according to claim 1, characterized in that, The chassis control commands are periodically issued by the control unit; the step of substituting the installation position bound to each kinematic instance and the desired speed into the corresponding kinematic instance includes: Within each cycle, if the target speed of the current cycle is within a specified speed range, the installation position bound to each kinematic instance and the desired speed are substituted into the corresponding kinematic instance; wherein, when the target speed is within the specified speed range, the kinematic equation has a unique solution.
3. The method according to claim 2, characterized in that, The method further includes: Within each cycle, if the target speed of the current cycle is outside the specified speed range, the steering angle control command of the plurality of drive wheels in the previous cycle is determined as the steering angle control command of the corresponding drive wheel in the current cycle, and the speed control command of the corresponding drive wheel in the current cycle is determined as the zero speed control command. The zero speed control command is used to control the speed of the drive wheel to 0. Wherein, when the target speed is outside the specified speed range, the kinematic equation does not have a unique solution.
4. The method according to claim 2 or 3, characterized in that, The desired speed of the chassis includes linear velocity and angular velocity, wherein the linear velocity includes a first linear velocity of the chassis in a first direction and a second linear velocity of the chassis in a second direction, the first direction and the second direction being orthogonal; the method further includes: If all of the following conditions are met, the target speed for the current cycle is determined to be less than a preset speed threshold: The first linear velocity is less than a preset linear velocity threshold; The second linear velocity is less than a preset linear velocity threshold; The angular velocity is less than a preset angular velocity threshold.
5. The method according to claim 1, characterized in that, The step of generating a speed control command for the drive wheel based on the target speed of the drive wheel, and generating a steering angle control command for the drive wheel based on the target steering angle of the drive wheel, includes: Obtain the current steering angle feedback of the drive wheel; Determine the difference between the target steering angle and the current steering angle feedback. If the difference does not exceed a preset steering angle threshold, a speed control command is generated to control the drive wheel to move at the target speed, and a steering angle control command is generated to control the drive wheel to turn at the target steering angle.
6. The method according to claim 5, characterized in that, The method further includes: If the difference exceeds a preset steering angle threshold, the target steering angle is adjusted. The adjusted target steering angle is the angle after the target steering angle is offset by a preset angle along the direction that reduces the difference. Generate a speed control command to control the drive wheel to move at the opposite phase of the target speed, and generate a steering angle control command to control the drive wheel to turn at the adjusted target steering angle.
7. A robot system, characterized in that, The robot system includes: A chassis, on which multiple drive wheels are mounted; A configuration module is used to store configuration files, which include the total number of the plurality of drive wheels, the mounting positions of the plurality of drive wheels on the chassis, and the steering capability identifiers of the plurality of drive wheels. The steering capability identifiers are used to characterize whether the drive wheels have active steering freedom. A kinematic controller, wherein a universal kinematic model is pre-installed, the universal kinematic model characterizing the relationship between the speed and steering angle of multiple drive wheels on the chassis and the speed of the chassis and the mounting positions of the multiple drive wheels through kinematic equations independent of the chassis configuration; the kinematic controller is used for: Based on the total number and installation position of the multiple drive wheels included in the configuration file, the general kinematic model is instantiated into kinematic instances corresponding to each of the multiple drive wheels, and each kinematic instance is bound to the installation position and steering capability identifier of the drive wheel; Receive chassis control commands, wherein the chassis control commands include the desired speed of the chassis; Substitute the installation position and the desired speed bound to each kinematic instance into the corresponding kinematic instance to calculate the target speed and target steering angle for each drive wheel; If the steering capability identifier bound to any kinematic instance indicates that the corresponding drive wheel has active steering degree of freedom, a speed control command for the drive wheel is generated based on the target speed of the drive wheel, and a steering angle control command for the drive wheel is generated based on the target steering angle of the drive wheel. If the steering capability identifier of any kinematic instance indicates that the corresponding drive wheel does not have active steering degree of freedom, a speed control command corresponding to the drive wheel is generated based on the target speed of the drive wheel. Multiple drive nodes, each drive node being connected to one of the drive wheels, are used to receive control commands issued by the kinematic controller and drive the corresponding drive wheel to move according to the control commands.
8. An electronic device, comprising: processor; A memory for storing processor-executable instructions; characterized in that the processor implements the steps of the method as claimed in any one of claims 1 to 6 by executing the executable instructions.
9. A computer-readable storage medium storing computer instructions thereon, characterized in that, When executed by the processor, this instruction implements the steps of the method as described in any one of claims 1 to 6.
10. A computer program product comprising computer instructions, characterized in that, When executed by a processor, the computer instructions implement the steps of the method as described in any one of claims 1 to 6.