A bionic "spine-leg" robot and its motion control system
By designing an independent modular bionic "spine-leg" robot motion control system, the problems of universality and module coupling of multi-limb robot control systems in the existing technology are solved, flexible simulation and physical environment switching are achieved, and development efficiency and system adaptability are improved.
Patent Information
- Application Number
- CN202411716355.0
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2024-11-26
- Publication Date
- 2025-08-12
- Estimated Expiration
- 2044-11-26
AI Technical Summary
The existing bionic robot control system lacks versatility and cannot be applied to multi-limb robots. It has strong module coupling and insufficient simulation interface, making it difficult to test the performance of motion control algorithms on the simulation platform.
A bionic "ridge-leg" robot motion control system is designed, including a drive-sensing module, a motion planning module, a simulation module, a log module and a remote remote control module. The modules are independent of each other, and data transmission and control are realized through the ROS communication unit, supporting switching in the real environment and the simulation environment. The motion planning module can be independently developed and verified.
It realizes a low coupling, high debuggability and flexible motion control system, which is convenient for module maintenance and optimization, can verify algorithms in simulation environments, test effects in real environments, and provides a variety of data display methods, which improves development efficiency and system adaptability.
Smart Images

Figure CN119328793B_ABST
Abstract
Description
Technical Field
[0001] The present invention belongs to the field of robot motion control, and in particular relates to a bionic "spine-leg" type robot and a motion control system thereof. Background Art
[0002] Legged robots have more obvious advantages than traditional four-wheeled and tracked robots. They have higher maneuverability in complex environments, super movement ability, and natural multiple degrees of freedom, which are conducive to achieving more delicate and complex operations. They can also be more adaptable to complex and changing situations, and can play a greater role in special tasks and rescue missions.
[0003] The robot joint drive device is the power source of the robot. There are many types, such as hydraulic and electromagnetic. The electromagnetic type is the most common. The previous hydraulic drive had problems such as energy consumption and high maintenance costs. With the rapid development of electric drive technology, most of the current mainstream leg-foot robots choose to use motors as robot joint drives.
[0004] Prior art, Chinese patent application publication number CN114625129A provides a motion control method and system for a position-controlled legged robot, addressing existing shortcomings in controlling stable walking for legged robots. However, this motion control method and system are highly customized, making them difficult to reuse. Furthermore, the system lacks a simulation interface, making it difficult to test the performance of the motion control algorithm on a simulation platform.
[0005] In the prior art, Chinese patent application publication number CN114932961A discloses a motion control system for a quadruped robot. This system provides a quadruped robot motion control system with a clear architecture and low module coupling. However, this motion control system only considers the control of quadruped robots and does not account for the control of multi-limb "spine-leg" robots. Furthermore, the system's real-time display method is not flexible, and its problem analysis tools are insufficient. Summary of the Invention
[0006] One of the purposes of the present invention is to provide a bionic "spine-leg" robot motion control system to solve the problems of existing bionic robot control systems, such as weak versatility, strong module coupling, and inability to be applied to robots with multiple limbs (head / tail / spine).
[0007] To achieve the above object, the technical solution adopted by the present invention is:
[0008] A bionic "spine-leg" robot motion control system includes: a drive-perception module, a motion planning module, a simulation module, a log module and a remote control module; the drive-perception module is a physical prototype in the real world, the simulation module is a robot model in a simulation environment, the remote control module receives wireless remote control instructions, remaps them into high-level commands for robot motion control, and transmits them to the motion planning module. The motion planning module calculates the expected state of the robot at the next moment based on the current robot motion state and high-level commands, and outputs motion control instructions to the drive-perception module or the simulation module. All states and command data of the motion control system during operation are recorded in the log module for user analysis.
[0009] Preferably, the drive-perception module includes a drive control unit, a drive execution unit, a force sensing unit, an inertial measurement unit and a ROS communication unit, wherein:
[0010] The drive control unit pre-processes the received control instructions and then sends them to the drive execution unit, while reading the feedback status of all drive execution units;
[0011] The drive execution unit drives the joint motor to move to the position specified by the control instruction and responds to the status reading command of the drive control unit;
[0012] The force sensing unit is used to obtain the three-dimensional reaction force of the robot foot end measured by the three-dimensional force sensor;
[0013] The inertial measurement unit automatically checks the mounted IMU sensor and reads the angular velocity, linear acceleration and attitude data of the IMU;
[0014] The ROS communication unit realizes data transmission between the drive-perception module and the motion planning module.
[0015] Preferably, the drive-perception module and the motion planning module are defined as a ROS robot node and a ROS controller node, respectively; the robot node sends robot state feedback data to the controller node through a perception feedback topic; the controller node sends joint control instructions to the robot node through an instruction topic; the drive-perception module solves the received joint control instructions and drives the robot joint to move to the desired angle.
[0016] Preferably, the simulation module includes a kinematic model, a dynamic model, a force sensing unit, an inertial measurement unit and a ROS communication unit, wherein:
[0017] The kinematic model describes the positions, velocities and accelerations of all the robot's moving joints;
[0018] The dynamic model can accurately predict and simulate the robot's motion behavior under various loads and external environmental conditions;
[0019] The force sensing unit and the inertial measurement unit are deployed for the robot model in the simulation environment; the simulation module can directly request to obtain the perception data of the sensing unit by calling the ROS service;
[0020] The ROS communication unit is used to communicate with the motion planning module. First, the ROS node name of the current simulation module is set to / simulation_node, the joint expected output position data in the / commandValues topic is obtained, and all feedback data of the simulation module node is published to the motion planning module ROS node through the / sensorValue topic.
[0021] Preferably, the motion planning module includes a state estimation unit, a performance evaluation unit and a motion control algorithm unit, wherein:
[0022] The state estimation unit is used to estimate the current state of the bionic "spine-leg" robot motion control system; the current state of the robot is estimated by the state estimation unit, and the encoder data and IMU data are combined to estimate the robot's posture according to the kinematic state equation using discrete Kalman filtering;
[0023] The performance evaluation unit is used to evaluate the motion performance of the bionic "spine-leg" robot motion control system; by introducing all state perception data, the performance evaluation unit will calculate the performance indicators such as the transportation cost and forward speed of the bionic "spine-leg" robot motion control system, and store the data through log files.
[0024] The motion control algorithm unit implements the motion control algorithm of the bionic "spine-leg" type robot motion control system.
[0025] Preferably, the motion control algorithm unit divides the bionic "spine-leg" robot motion control system into multiple limbs, including legs, feet, spine and head / tail; in each limb, it is implemented by a unified algorithm module unit.
[0026] Preferably, the algorithm module unit includes: an instruction parsing unit, a phase generation unit, a forward kinematics unit, a foot end trajectory generation unit, a balance control unit, a reflex control unit, an inverse kinematics solution unit, and a compliance control unit, wherein:
[0027] The command parsing unit parses the remote control commands input by the motion planning module and performs parsing and mapping processing on all remote control commands to achieve different remote control effects;
[0028] The phase generation unit is used to generate the phase required for the coordinated movement of each limb. The phase generation units of each limb are independent of each other. The phase generation unit can realize the phase difference between the given limb modules by reading the configuration file during initialization to achieve coordinated control between different limb modules.
[0029] The forward kinematics unit calculates the spatial position of each limb at the current moment based on the current joint spatial state data of each limb, and transmits the calculated spatial position to the next trajectory generation unit;
[0030] The foot-end trajectory generation unit is connected to the forward kinematics unit and the balance control unit; by receiving the current foot-end trajectory point and the current phase value, it calculates the position of the foot-end trajectory output point at the next moment, and transmits the generated foot-end trajectory point to the balance control unit to correct the trajectory point position;
[0031] The balance control unit receives the foot-end trajectory point data from the foot-end trajectory generation unit and uses the posture data of the inertial measurement unit to correct the foot-end trajectory point with a specific algorithm;
[0032] The reflex control unit receives the primary trajectory point correction data from the balance control unit and performs a secondary correction on the foot end trajectory point position by using the three-dimensional force data obtained by the force sensing unit;
[0033] The inverse kinematics solving unit is connected to the reflex control unit and the compliance control unit, and calculates the position control instructions of all joints of the leg and foot at the next moment based on the secondarily corrected foot trajectory point data received at the next moment, and sends the calculated position control instructions to the compliance control unit;
[0034] The compliance control unit is used to receive joint control instructions from the inverse kinematics solver and implement compliance control of all joints through a specific algorithm;
[0035] The motion control algorithm unit can publish the command values through the / commandValues topic of the ROS communication unit after calculating the control values of all limb joints. The drive-perception module or simulation module can then obtain the command values from this topic and realize the movement of the robot by implementing the drive function.
[0036] Preferably, the log module includes: a ROS communication unit, a log unit and an online visualization unit, wherein:
[0037] The log unit is used to store all feedback, commands and performance data of the motion planning module during operation. The stored data will be used for data analysis after the operation of the bionic "spine-leg" robot motion control system;
[0038] The online visualization unit receives data from the ROS communication unit and calls the internal drawing program of the computer to display all real-time online data.
[0039] The ROS communication unit is used to communicate with the motion planning module through ROS topics to obtain all the operation data of the motion planning module. Specifically, it obtains all the data that needs to be displayed online in real time through the / showValues topic.
[0040] Preferably, the remote control module includes: a ROS communication unit and a JoyStick event monitoring unit, wherein:
[0041] The JoyStick event monitoring unit is used to monitor event changes of the JoyStick wireless controller, including changes in the joystick and buttons of the controller; at the same time, it maps the controller change events into other function key values and then sends the data to the ROS communication unit;
[0042] The ROS communication unit receives the function key value from the JoyStick event monitoring module and transmits the function key value to the ROS parameter server for acquisition and use by other ROS nodes of the bionic "spine-leg" robot motion control system.
[0043] The bionic "spine-leg" robot motion control system proposed by the present invention has independent modules, low difficulty in developing the entire motion control system, and is convenient for maintaining, optimizing, adding and deleting modules of the system. The drive-perception module and the simulation module can be easily switched and selected, the motion control algorithm can be verified in the simulation environment, and the real effect of the motion control algorithm can be tested on the drive-perception module. The software system framework has a clear hierarchy, low coupling between modules, and low difficulty in secondary development. The remote control method is flexible and diverse, and the motion instructions can be modified by means of a physical handle, or the corresponding parameters of the ROS parameter server can be directly modified. The online visualization unit facilitates real-time monitoring of the operation of the motion control system, and the log unit can retain all operating data of the motion control system. The multiple data display methods can greatly speed up the speed of problem solving in the robot development process. The motion planning module exists independently as a ROS node, which is convenient for modifying and verifying the motion control algorithm inside the motion planning module.
[0044] A second object of the present invention is to provide a bionic "spine-leg" robot, which includes the above-mentioned bionic "spine-leg" robot motion control system. BRIEF DESCRIPTION OF THE DRAWINGS
[0045] Figure 1 Schematic diagram of the bionic "spine-leg" robot of the present invention;
[0046] Figure 2 The software framework diagram of the bionic "spine-leg" robot motion control system of the present invention;
[0047] Figure 3 The software framework diagram of the motion planning module in the bionic "spine-leg" robot motion control system of the present invention;
[0048] Figure 4 Schematic diagram of ROS nodes and topics for the bionic "spine-leg" robot motion control system of the present invention;
[0049] Among them, 1-robot system main control, 2-IMU sensor, 3-three-dimensional force sensor. DETAILED DESCRIPTION
[0050] The following will clearly and completely describe the technical solutions in the embodiments of the present invention in conjunction with the accompanying drawings. Obviously, the described embodiments are only part of the embodiments of the present invention, not all of the embodiments. All other embodiments obtained by ordinary technicians in this field based on the embodiments of the present invention without making any creative efforts shall fall within the scope of protection of the present invention.
[0051] Unless otherwise defined, all technical and scientific terms used herein have the same meaning as those commonly understood by those skilled in the art of the present invention. The terms used in the specification of the present invention herein are only for the purpose of describing specific embodiments and are not intended to limit the present invention.
[0052] Example 1
[0053] like Figure 2 As shown, the present invention proposes a bionic "spine-leg" robot motion control system, which primarily includes a drive-perception module, a simulation module, a logging module, a motion planning module, and a remote control module. This robot motion control system primarily addresses the problems of existing motion control systems, such as the lack of consideration of motion control for multi-limbed robots, the low versatility of motion control systems, and the low correlation between simulation and physical robot prototype debugging. Figure 1This is a schematic diagram of a bionic "spine-leg" robot. This robot has four legs, each with four degrees of freedom, enhancing its leg and foot locomotion. The robot also features multiple limbs, including a head, spine, and tail. The head has two degrees of freedom, the spine has two degrees of freedom, and the tail has four degrees of freedom. This structural design allows for movement that more closely resembles that of real amphibians, such as crocodiles. Furthermore, the rhythmic movements of the spine and tail give the robot exceptional aquatic locomotion. 1 - The robot system controller, model Oroid XU4, is responsible for processing all robot system tasks. 2 - The IMU sensor, model vn100, senses the robot's acceleration, angular velocity, tilt, vibration, and other degrees of freedom. 3 - The 3D force sensor, model bota minione, senses 3D force data in the robot's foot end, detecting the current forces acting on all legs and feet, providing a basis for better motion planning by the controller. All joint motors use MX64 motors, which can provide greater output torque and better following accuracy, providing reliable drive joints for the entire robot system.
[0054] This embodiment is compatible with the simulation module and the robot physical prototype debugging motion. Therefore, when the motion control system is initialized, it is necessary to judge the operating environment of the current system in the motion planning module. The simulation module and the robot physical prototype will set the flag bit in the parameter server during operation. Therefore, the method for judging the operating environment is: when the motion planning module is initialized, the drive-perception module flag bit is first read through the ROS parameter server. If the flag exists, it proves that the motion control system is running on the robot physical prototype; if the flag does not exist, the motion planning module reads the simulation module flag bit. If the flag exists, it means that the motion control system is running in the simulation environment; if neither of them exists, it means that only the motion planning module is currently running alone.
[0055] In this embodiment, the motion control system is started using a roslaunch file. In this file, the operating environment of the motion control system is selected by including the driver-perception module and simulation module startup files. By setting the included parameters, the driver-perception module and simulation module flags can be set. By writing different roslaunch files, the same motion control system can be executed in different operating environments.
[0056] It should be noted that the motion control system mainly completes distributed communication through the ROS robot operating system, so the motion control system contains information such as topics and nodes of the ROS system. In the motion control system, all ROS node and topic information such as Figure 4As shown, the oval box represents the ROS node, the square box represents the ROS topic name, and the arrows between topics represent the subscription direction. The use of topics and nodes will be introduced later.
[0057] In the operating environment of the motion control system, during a single operation, only one of the drive-perception module and the simulation module can exist, or neither can exist. The simultaneous existence of the drive-perception module and the simulation module is not currently supported. This ensures that the data in the topic / sensorValues can only come from the drive-perception module or the simulation module.
[0058] 1) Drive-perception module:
[0059] In this embodiment, the drive-perception module is a robot that is actually driven in the real world. The drive-perception module receives the expected control commands for all joints at the next moment issued by the motion planning module through the topic / motorValues. After mapping the commands into control instructions of the drive execution unit, the drive control unit controls the drive execution unit.
[0060] In this embodiment, the main processor is the Oroid XU4, which has eight cores and a single-core operating frequency of up to 2GHz, meeting the computing power requirements. The drive execution unit uses a Dynamixel MX series servo, and the drive control unit uses the matching U2D2 control board. The U2D2 control board is connected to the main processor via USB, and the U2D2 control board is connected to the servo via an RS485 bus. The communication rate between the control board and the servo is set to 4Mbps, meeting the needs of high-speed communication control.
[0061] In the drive-perception module, the drive control unit will also synchronously read the feedback status data of all current drive execution units, the force sensing data of all foot-end force sensing units, and the posture data of the inertial measurement unit. All the feedback status and sensing data obtained will be sorted in the drive-perception module and published in the topic / sensorValues in an array arrangement.
[0062] In this embodiment, the force sensing unit uses the Bota Minione, which can output three-axis measurement force. The single-axis output force range is 0-50N, the maximum short-term overload can reach 100N, and the sensor data update frequency can reach up to 300Hz, which fully meets the performance requirements. On the robot physical prototype, a force sensing unit is installed at the foot of each leg, for a total of four. The measurement forces of these four force sensing units follow the same direction, measuring the three-dimensional reaction force of the physical prototype during operation. The inertial measurement unit uses the VN100. This inertial measurement unit combines a three-axis accelerometer, a three-axis gyroscope, a three-axis magnetic sensor, and an atmospheric pressure sensor. The IMU data update frequency of this unit can reach up to 800Hz, the static pitch / roll accuracy can reach 0.5°, the dynamic pitch / roll accuracy can reach 1°, and the accelerometer output range is up to 16g. Both the force sensing unit and the inertial measurement unit communicate data via USB. The measurement data is organized by the drive-perception module and published in the ROS topic / sensorValues.
[0063] 2) Simulation module:
[0064] The simulation module is mainly implemented in the Webots simulation environment. By building a robot model in the Webots simulation environment and setting the simulation environment and structural parameters, the physical movement of the robot in the real world can be simulated. Force sensing units and inertial measurement units can also be embedded in the Webots environment to collect the robot's current posture and plantar feedback force. By setting the selection properties of the limbs in Webots, the operation effect of the drive-perception module in the real world can be achieved.
[0065] It should be noted that the control and state feedback of each driving joint of the simulation module model in Webots are completed through separate and corresponding ROS services.
[0066] Similar to the control process of the drive-perception module, the simulation module also needs to obtain the control instructions of all drive joints from the / motorValues topic, and then control the joints of the simulation module; after that, the simulation module also needs to obtain the feedback status data of all drive shutdowns, including the perception data of the force sensor unit and the inertial measurement unit, and then organize all the data according to a certain order and publish it on the topic / sensorValues.
[0067] It is easy to understand that the motion control system of this embodiment focuses on providing relevant interfaces and simulation module models of the Webots simulation environment, and the simulation environment can adopt other different solutions, such as the gazebo simulation environment; data communication between the simulation environment and the motion planning module is carried out through the ROS operating system, but this is not the only communication solution, and inter-process communication, shared memory and other methods can also be used.
[0068] 3) Motion planning module:
[0069] The motion planning module is the core module for implementing the motion control system. Within this module, the motion control algorithm unit implements the motion control of the bionic "spine-leg" robot motion control system. Simultaneously, other modules implement different functions: The state estimation unit estimates the current center of mass position and velocity of the robot by acquiring feedback and sensor data from all driven joints, and then transmits the estimated system state to the motion control algorithm unit. The performance evaluation module analyzes the current operational performance of the motion control system and transmits the analyzed performance data to the logging unit for storage.
[0070] It's easy to notice that the motion control system contains multiple ROS communication units, which enable data communication between multiple ROS nodes. Both the drive-perception module and the simulation module need to provide feedback to the motion planning module regarding the current state data of all joints in the robot's body, as well as the perception data from the force sensing unit and the inertial measurement unit. The motion planning module also needs to output motion control instructions for all joints to the drive-perception module and the simulation module. The logging module needs to obtain all operational data from the motion planning module, and the remote control module needs to set up a ROS parameter server. All ROS nodes rely on the ROS robot operating system for data communication, so a ROS communication unit must exist in all nodes to implement this function.
[0071] The state estimation unit estimates the current state of the bionic spine-leg robot's motion control system. Physical quantities used to describe this state include the global center of mass position, center of mass velocity, and all corrected feedback sensing quantities. The state estimation unit estimates the robot's current state by combining encoder data with IMU data and using a discrete Kalman filter to estimate the robot's pose based on the kinematic state equation. This eliminates the integral error associated with relying solely on the IMU, as well as the bias caused by the inability to estimate foot slip and encoder errors associated with relying solely on encoders.
[0072] The performance evaluation unit is used to evaluate the motion performance of the bionic "spine-leg" robot motion control system. By introducing all state perception data, the performance evaluation unit will calculate the transportation cost (COT), forward speed and other performance indicators of the bionic "spine-leg" robot motion control system, and store the data in log files, and publish them through ROS topics for real-time display by the log module.
[0073] In this embodiment, the motion control algorithm unit is used to implement the motion control algorithm for the bionic "spine-leg" robot motion control system. The motion control algorithm unit divides the bionic "spine-leg" robot motion control system into multiple limbs, including the legs, feet, spine, and head / tail. Each limb is implemented by a unified algorithm module unit, including a phase generation unit, a forward kinematics unit, a foot trajectory generation unit, a balance control unit, a reflex control unit, an inverse kinematics solver unit, and a compliance control unit.
[0074] In this embodiment, it is obvious that the software layering concept of the motion control system and the motion control algorithm unit is used. Figure 3 The software framework for the motion planning module is presented, clearly demonstrating the minimal coupling between the various components and functional modules within the framework. The framework maintains a clear hierarchy, with a clear data flow between modules. Each functional module can be independently developed and debugged, focusing solely on the interfaces between modules. Once debugging is complete for each module, the overall software framework is built, enabling rapid debugging of the motion planning module. Furthermore, the functional modules within the framework are easily modifiable and portable by users.
[0075] In this embodiment, the bionic "spine-leg" robot structure includes multiple limbs, and the coordination and movement sequence of each limb are controlled by a phase generation unit. By parsing upper-level control instructions, the phase between the current robot limbs is adjusted to control the robot's body motion state, thereby adjusting the robot's gait, step frequency, and movement posture during actual operation. For example, when the gait phase of the robot's left front leg, right front leg, left hind leg, and right hind leg is set to 0 / 0.5 / 0.5 / 0, the robot's left front leg and right hind leg remain in phase, and the right front leg and left hind leg remain in phase, and the robot will walk in a diagonal gait. At the same time, to better maintain the balance of the robot during walking, the head and tail limbs and the spinal limbs will be in phase with the right front leg, and the tail will be in phase with the left hind leg. To better balance the robot's center of gravity, the spine will be divided into two parts, front and back, and in phase with the left front leg and left hind leg. By adjusting the phase configuration properties of the phase generation unit, the robot can achieve walking methods such as diagonal gait and triangular gait. By adjusting the initial configuration of stride length and frequency, the robot can exhibit different forward speeds and movement postures in the initial state, such as trotting, pacing and slow walking. During the operation of the robot motion control system, the stride length and frequency can be dynamically modified through the remote control module, making the robot's motion state adjustable.
[0076] The forward kinematics unit can calculate the endpoint spatial data of each limb of the robot based on the current state data of all joints of the robot. It should be noted that in this embodiment, the robot body includes multiple limbs, so the endpoint spatial data calculated by multiple forward kinematics units correspond to different limbs. For example, the leg and foot forward kinematics unit calculates the leg and foot end spatial data, the spine forward kinematics unit calculates the spine end spatial data, and the head and tail limb forward kinematics unit calculates the head and tail end spatial data, and then transmits the calculated spatial data of each limb to the next interface module of the corresponding limb. Through the processing of the forward kinematics unit, the motion planning system can obtain the spatial state of each limb of the robot at the current moment.
[0077] The foot-end trajectory generation unit receives the spatial state and phase value of the current limb from the forward kinematics unit of the corresponding limb, and calculates the expected position of the foot-end trajectory point at the next moment based on the given preset trajectory of the limb. It should be noted that due to the large number and type of limbs in this embodiment, not only the foot-end trajectory generation unit is included, but also the spine trajectory generation unit and the head-tail trajectory generation unit. Although the names are different, the functions implemented by these unit modules are the same: they all receive the phase value and trajectory point of the current limb part, calculate the expected trajectory point position of the current limb part at the next moment, and then transmit this to the next functional unit.
[0078] It should be noted that for the leg and foot parts, only a fixed motion trajectory needs to be preset for the foot end trajectory generation unit. This trajectory needs to take into account the time that the leg and foot parts leave the ground and the proportion of the time period of the entire trajectory (called the duty cycle); at the same time, the relationship between the motion trajectory and the stride length needs to be considered. The stride length is positively correlated with the motion trajectory, that is, the larger the stride length, the larger the motion trajectory. Therefore, the motion trajectory changes in real time in the motion control system. The two main factors that change the motion trajectory are the duty cycle and the stride length. It can be expected that once the motion trajectory changes, the walking posture of the robot will also change accordingly.
[0079] The balance control unit is mainly used to correct the impact of the current robot body misalignment on the motion control system, and only works in the legs and feet. The unit receives the foot-end trajectory point data from the foot-end trajectory generation unit, and uses the posture data of the inertial measurement unit to correct the foot-end trajectory points with a specific algorithm. The corrected foot-end trajectory points will eliminate the problem of the robot body misalignment at the current moment. The balance control unit may not be obvious on flat ground, but when the robot runs on a slope environment, it will dynamically adjust the robot's current posture to make the robot run more stably. It is an indispensable part of the motion control system.
[0080] The reflex control unit is an execution unit of the motion control system that imitates the reflex behavior of animals, allowing the robot to handle sudden situations at the leg and foot ends (stepping on air and being blocked by obstacles) during movement: stepping on air is a situation where the leg and foot have not touched the ground during the support phase, and being blocked by obstacles is a situation where the leg and foot cannot pass through the obstacle. Adding this reflex control unit to the entire motion control system will improve the overall movement ability of the robot. Similar to the balance control unit, the reflex control unit also only works in the leg and foot limbs. It receives the primary foot end trajectory point correction data from the balance control unit, and performs a secondary correction on the foot end trajectory point position by using the three-dimensional force data obtained by the force sensing unit. The corrected trajectory position is sent to the inverse kinematics solver for processing.
[0081] The inverse kinematics solver receives the desired endpoint spatial data for each limb and uses inverse kinematics to calculate the position control instructions for all joints of the limb at the next moment. It should be noted that in this embodiment, due to the large number and type of limbs, the functional modules of the inverse kinematics solver implemented are the same, but the internal implementation mechanisms of the functional modules are different.
[0082] The compliance control unit is used to receive joint control instructions from the inverse kinematics solver, realize the compliance of the joint control instructions through the implemented virtual antagonist-muscle pair model, and realize the compliant control of all joints of the robot.
[0083] After the motion control algorithm unit calculates the joint control instructions of all limbs, it can publish them through the / commandValues topic of the ROS communication unit, and then the drive-perception module or simulation module can obtain them from this topic and then realize the movement of the robot by implementing the drive.
[0084] 4) Log module:
[0085] In this embodiment, the robot's data can be displayed and saved in multiple ways. The logging module is one of the primary methods for real-time data display and storage. The system uses the topic / showValues to obtain the robot's operational data, including control commands and feedback data for driving joints, operational performance data, actual and expected foot-end trajectories, force sensor data, and inertial measurement unit data. The system also plots the acquired data online.
[0086] It should be noted that the online visualization unit is the main way to display real-time data, but it is not the only way. Users can also use the rqt_plot tool to achieve the goal of real-time data display by selecting the / showValues topic and choosing the corresponding data to be displayed.
[0087] In this embodiment, the log unit records the motion planning module's sensory feedback data, planning output data, and robot motion performance data. This is achieved by repackaging the file operation class in the Linux operating system and adding data writing and periodic file write buffer refresh operations to the original file operations.
[0088] By analyzing the log files, we can visually see the operational status and performance of each functional module in the bionic "spine-leg" robot motion control system. Furthermore, when problems arise in the bionic "spine-leg" robot motion control system, analyzing the log files can quickly locate the problem and facilitate resolution.
[0089] It should be noted that the functions implemented by the log unit are different from those of the online visualization unit: the online visualization unit displays all the operating data of the motion control system to the user by drawing a graph, while the log unit does not have the functions of the online visualization unit. This functional unit is only responsible for storing all the operating data of the motion control system into the log file, preparing for the data analysis of the motion control system.
[0090] 5) Remote control module:
[0091] The remote control module serves as the remote control command unit of the bionic "spine-leg" robot motion control system. By using the PS5 handle, the robot is controlled by remote control. The remote control motion control system parameters include: standing state, walking state, swimming state, robot forward speed, turning curvature, body height and leg lift height, etc. It is easy to notice that the motion control system remote control parameters include the swimming state. The bionic "spine-leg" robot motion control system implemented in this embodiment can realize the robot's amphibious movement. In the walking state, the robot's forward speed controls the robot's overall forward speed; while in the swimming state, the robot's forward speed controls the robot's swimming speed.
[0092] It should be noted that the remote control module is not the only remote control means in this embodiment; it can be noted that the remote control module node transmits the high-level motion control instructions of the remote control module by modifying the ROS parameter server parameters. When the user does not have a remote control module, he can also control the motion control system by only modifying the ROS parameter server parameters; in addition, the user can also map the keyboard parameters to the ROS parameter server parameters by writing a program, thereby realizing remote control of the robot motion control system by the keyboard.
[0093] It should be noted that the focus of this embodiment is to provide a software framework suitable for a bionic "spine-leg" robot motion control system. It can be clearly found from the above content that the provided software framework has the characteristics of clear hierarchy, clear logic, easy debugging, high reusability and strong portability; the coupling between the functional modules in the software framework is low, which is convenient for adding and modifying functional modules. The motion control algorithm unit of this embodiment is only one of the methods to realize the robot motion control system. The user can use other different motion control algorithms, and can also be easily transplanted into this software framework. The various technical features of the above-mentioned embodiments can be arbitrarily combined. In order to make the description concise, not all possible combinations of the various technical features in the above-mentioned embodiments are described. However, as long as there is no contradiction in the combination of these technical features, they should be considered to be within the scope of this specification.
[0094] The above-described embodiments merely illustrate several implementations of the present invention, and while the descriptions are relatively specific and detailed, they should not be construed as limiting the scope of the invention. It should be noted that a person skilled in the art would be able to make numerous modifications and improvements without departing from the spirit of the present invention, all of which fall within the scope of protection of the present invention. Therefore, the scope of protection of the present invention shall be determined by the appended claims.
Claims
1. A bionic "spine-leg" robot motion control system, comprising: Drive-perception module, motion planning module, simulation module, log module and remote control module; The drive-perception module is a physical prototype in the real world, and the simulation module is a robot model in a simulated environment. The remote control module receives wireless remote control commands, remaps them into high-level commands for robot motion control, and transmits them to the motion planning module. The motion planning module calculates the expected state of the robot at the next moment based on the current robot motion state and high-level commands, and outputs motion control commands to the drive-perception module or simulation module. All states and command data of the motion control system during operation are recorded in the log module for user analysis; The motion planning module includes a state estimation unit, a performance evaluation unit and a motion control algorithm unit, wherein: The state estimation unit is used to estimate the current state of the bionic "spine-leg" robot motion control system; the state estimation unit estimates the current state of the robot, combines encoder data with IMU data, and uses discrete Kalman filtering to estimate the robot's position and posture based on the kinematic state equation; The performance evaluation unit is used to evaluate the motion performance of the bionic "spine-leg" type robot motion control system; by introducing all state perception data, the performance evaluation unit will calculate the transportation cost and forward speed of the bionic "spine-leg" type robot motion control system and store the data in a log file; The motion control algorithm unit implements the motion control algorithm of the bionic "spine-leg" robot motion control system; The motion control algorithm unit divides the bionic "spine-leg" robot motion control system into multiple limbs, including legs, feet, spine, and head / tail; in each limb, it is implemented by a unified algorithm module unit; The algorithm module unit includes: an instruction parsing unit, a phase generation unit, a forward kinematics unit, a foot end trajectory generation unit, a balance control unit, a reflex control unit, an inverse kinematics solution unit, and a compliance control unit, wherein: The command parsing unit parses the remote control commands input by the motion planning module and performs parsing and mapping processing on all remote control commands to achieve different remote control effects; The phase generation unit is used to generate the phase required for the coordinated movement of each limb. The phase generation units of each limb are independent of each other. The phase generation unit can realize the phase difference between the given limb modules by reading the configuration file during initialization to achieve coordinated control between different limb modules. The forward kinematics unit calculates the spatial position of each limb at the current moment based on the current joint spatial state data of each limb, and transmits the calculated spatial position to the next trajectory generation unit; The foot-end trajectory generation unit is connected to the forward kinematics unit and the balance control unit; by receiving the current foot-end trajectory point and the current phase value, it calculates the position of the foot-end trajectory output point at the next moment, and transmits the generated foot-end trajectory point to the balance control unit to correct the trajectory point position; The balance control unit receives the foot-end trajectory point data from the foot-end trajectory generation unit and uses the posture data of the inertial measurement unit to correct the foot-end trajectory point with a specific algorithm; The reflex control unit receives the primary trajectory point correction data from the balance control unit and performs a secondary correction on the foot end trajectory point position by using the three-dimensional force data obtained by the force sensing unit; The inverse kinematics solving unit is connected to the reflex control unit and the compliance control unit, and calculates the position control instructions of all joints of the leg and foot at the next moment based on the secondarily corrected foot trajectory point data received at the next moment, and sends the calculated position control instructions to the compliance control unit; The compliance control unit is used to receive joint control instructions from the inverse kinematics solver and implement compliance control of all joints through a specific algorithm; The motion control algorithm unit can publish the command values through the / commandValues topic of the ROS communication unit after calculating the control values of all limb joints. The drive-perception module or simulation module can then obtain the command values from this topic and realize the movement of the robot by implementing the drive function.
2. The bionic "spine-leg" robot motion control system according to claim 1 is characterized in that: The drive-perception module includes a drive control unit, a drive execution unit, a force sensing unit, an inertial measurement unit and a ROS communication unit, wherein: The drive control unit pre-processes the received control instructions and then sends them to the drive execution unit, while reading the feedback status of all drive execution units; The drive execution unit drives the joint motor to move to the position specified by the control instruction and responds to the status reading command of the drive control unit; The force sensing unit is used to obtain the three-dimensional reaction force of the robot foot end measured by the three-dimensional force sensor; The inertial measurement unit automatically checks the mounted IMU sensor and reads the angular velocity, linear acceleration and attitude data of the IMU; The ROS communication unit realizes data transmission between the drive-perception module and the motion planning module.
3. The bionic "spine-leg" robot motion control system according to claim 2 is characterized in that: The drive-perception module and the motion planning module are defined as ROS robot nodes and ROS controller nodes, respectively; the robot node sends robot state feedback data to the controller node via the perception feedback topic; the controller node sends joint control instructions to the robot node via the instruction topic; the drive-perception module solves the received joint control instructions and drives the robot joints to move to the desired angles.
4. The bionic "spine-leg" robot motion control system according to claim 1 is characterized in that: The simulation module includes a kinematic model, a dynamic model, a force sensing unit, an inertial measurement unit and a ROS communication unit, wherein: The kinematic model describes the positions, velocities and accelerations of all the robot's moving joints; The dynamic model can accurately predict and simulate the robot's motion behavior under various loads and external environmental conditions; The force sensing unit and the inertial measurement unit are deployed for the robot model in the simulation environment; the simulation module can directly request to obtain the perception data of the sensing unit by calling the ROS service; The ROS communication unit is used to communicate with the motion planning module. First, the ROS node name of the current simulation module is set to / simulation_node, the joint expected output position data in the / commandValues topic is obtained, and all feedback data of the simulation module node is published to the motion planning module ROS node through the / sensorValue topic.
5. The bionic "spine-leg" robot motion control system according to claim 1 is characterized in that: The log module includes: a ROS communication unit, a log unit and an online visualization unit, wherein: The log unit is used to store all feedback, commands and performance data of the motion planning module during operation. The stored data will be used for data analysis after the bionic "spine-leg" robot motion control system is operated; The online visualization unit receives data from the ROS communication unit and calls the computer's internal drawing program to display all real-time online data; The ROS communication unit is used to communicate with the motion planning module through the ROS topic to obtain the operating data of all motion planning modules, specifically through the / showValues topic to obtain all data that needs to be displayed online in real time.
6. The bionic "spine-leg" robot motion control system according to claim 1 is characterized in that: The remote control module includes: a ROS communication unit and a JoyStick event monitoring unit, wherein: The JoyStick event monitoring unit is used to monitor event changes of the JoyStick wireless controller, including changes in the joystick and buttons of the controller; at the same time, it maps the controller change events into other function key values and then sends the data to the ROS communication unit; The ROS communication unit receives the function key value from the JoyStick event monitoring module and transmits the function key value to the ROS parameter server for acquisition and use by other ROS nodes of the bionic "spine-leg" robot motion control system.
7. A bionic "spine-leg" robot, characterized in that: The invention comprises a bionic "spine-leg" robot motion control system as described in any one of claims 1 to 6.
Citation Information
Patent Citations
Motion control method and system of position control leg-foot robot
CN114625129A
Motion control system of quadruped robot
CN114932961A