Path Planning Method, Path Planning Device, Robot, and Storage Medium
By planning the search coverage path and building a locally accessible map, the robot can efficiently search and execute tasks without precise pose information, solving the problem of insufficient pose information in the robot's handling or grabbing tasks, and achieving accurate completion of the task.
Patent Information
- Application Number
- CN202210199407.6
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2022-03-02
- Publication Date
- 2025-07-08
- Estimated Expiration
- 2042-03-02
AI Technical Summary
When a robot performs a handling or grabbing task, it is difficult to use precise pose information to operate, resulting in difficult task execution.
By obtaining rough pose information, planning the search coverage path, combining the robot's current pose and preset radius, building a local passable map, planning a local path, and updating the target node in real time to search for the target object.
It realizes that the robot can efficiently search and execute handling or grab tasks without precise positioning information, improving the accuracy and efficiency of task completion.
Smart Images

Figure CN114740835B_ABST
Abstract
Description
Technical Field
[0001] The present application relates to the technical field of robot control, and more specifically, to a path planning method, a path planning device, a robot, and a storage medium. Background Art
[0002] With the development of technology, robots are increasingly used in production and daily life. When robots perform tasks such as carrying objects and grasping tools, people often cannot provide the precise poses of the objects, tools, etc. Therefore, it is very difficult for robots to further perform operations such as carrying or grasping. However, in practical applications, it is easy to provide rough pose information of objects and tools to the robot. Therefore, how to enable the robot to find the corresponding objects and tools based on the rough pose information and then further perform tasks such as carrying and grasping has become a problem to be solved. Summary of the Invention
[0003] Embodiments of the present application provide a path planning method, a path planning device, a robot, and a storage medium.
[0004] The path planning method of the embodiments of the present application is used for a robot, and the path planning method includes:
[0005] Obtain a search coverage path;
[0006] According to the search coverage path, the current pose of the robot, and a preset radius, obtain the target nodes for local planning of the robot;
[0007] Construct a local passable map according to the local elevation map and the motion control performance of the robot;
[0008] Based on the target nodes, the local passable map, and the current pose, plan a local path;
[0009] Control the robot to move along the local path to search for the target object;
[0010] In the case where the target object is not searched, update the target nodes and the local path.
[0011] The path planning method in the embodiments of the present application can obtain a search coverage path by providing rough pose information of the target object to be grasped or carried to the robot, and then combine the search coverage path, the current pose of the robot, and a preset radius to obtain the target nodes for local planning of the robot. Furthermore, based on the target nodes, the local passable map, and the current pose, a local path is planned, so that the robot can move along the planned local path to search for the target object to perform work tasks.
[0012] The path planning device of the embodiments of the present application includes:
[0013] The first acquisition module is configured to acquire a search coverage path;
[0014] The second acquisition module is configured to acquire a target node for local planning of the robot according to the search coverage path, the current pose of the robot, and a preset radius;
[0015] The construction module is configured to construct a local passable map according to a local elevation map and the motion control performance of the robot;
[0016] The planning module is configured to plan a local path based on the target node, the local passable map, and the current pose;
[0017] The control module is configured to control the robot to move along the local path to search for a target object;
[0018] The update module is configured to update the target node and the local path when the target object is not searched.
[0019] The robot according to the embodiment of the present application includes: a main body, an execution component connected to the main body, and a processor disposed on the main body. The execution component is configured to perform a work task on the target object, and the processor is configured to execute the path planning method described in the above embodiment.
[0020] A computer program is stored on a computer-readable storage medium according to the embodiment of the present application. When the computer program is executed by a processor, the path planning method described in the above embodiment is implemented.
[0021] The additional aspects and advantages of the present application will be partly given in the following description, partly will become obvious from the following description, or will be understood through the practice of the present application. BRIEF DESCRIPTION OF THE DRAWINGS
[0022] The above and / or additional aspects and advantages of the present application will become obvious and easy to understand from the description of the embodiments in conjunction with the following drawings, in which:
[0023] Figure 1 is a flowchart of the path planning method according to the embodiment of the present application;
[0024] Figure 2 is a module diagram of the path planning device according to the embodiment of the present application;
[0025] Figure 3 is a scene diagram of the path planned by the robot to the target object according to the embodiment of the present application;
[0026] Figure 4 is a hardware structure diagram of the multi-legged robot according to the embodiment of the present application;
[0027] Figure 5 is a schematic structural diagram of a multi-legged robot according to an embodiment of the present application;
[0028] Figure 6 is a schematic flowchart of a path planning method according to an embodiment of the present application;
[0029] Figure 7 is another schematic flowchart of a path planning method according to an embodiment of the present application;
[0030] Figure 8 is yet another schematic flowchart of a path planning method according to an embodiment of the present application;
[0031] Figure 9 is yet another schematic flowchart of a path planning method according to an embodiment of the present application;
[0032] Figure 10 is yet another schematic flowchart of a path planning method according to an embodiment of the present application.
[0033] Description of main component symbols:
[0034] Robot 1000, main body 100, execution component 11, processor 12, path planning device 200, first acquisition module 21, second acquisition module 22, construction module 23, planning module 24, control module 25, update module 26, target object 2000, multi-legged robot 400, mechanical unit 401, drive board 4011, motor 4012, mechanical structure 4013, fuselage main body 4014, extendable leg 4015, foot 4016, rotatable head structure 4017, wagging tail structure 4018, load-carrying structure 4019, saddle structure 4020, camera structure 4021, communication unit 402, sensing unit 403, interface unit 404, storage unit 405, display unit 406, display panel 4061, input unit 407, touch panel 4071, input device 4072, touch detection device 4073, touch controller 4074, machine control module 410, power supply 411. Detailed implementation manners
[0035] The following details the implementation manners of the present application. The implementation manners are shown in the accompanying drawings, where the same or similar reference numerals represent the same or similar elements or elements with the same or similar functions throughout. The implementation manners described below with reference to the accompanying drawings are exemplary and are only used to explain the present application and should not be construed as limiting the present application.
[0036] It should be understood that the specific embodiments described herein are only used to explain the present invention and are not used to limit the present invention.
[0037] In the following description, suffixes such as "module", "component", or "unit" used to denote components are only for the convenience of describing the present invention and have no specific meaning in themselves. Therefore, "module", "component", or "unit" can be used interchangeably.
[0038] Please refer to Figure 1 , the path planning method according to the embodiment of the present application includes the steps:
[0039] S10: Obtain a search coverage path;
[0040] S20: According to the search coverage path, the current pose of the robot 1000, and a preset radius, obtain the target node for local path planning of the robot 1000;
[0041] S30: Construct a local passable map according to the local elevation map and the motion control performance of the robot 1000;
[0042] S40: Plan a local path based on the target node, the local passable map, and the current pose;
[0043] S50: Control the robot 1000 to move along the local path to search for the target object 2000;
[0044] S60: In the case where the target object 2000 is not searched, update the target node and the local path.
[0045] Please refer to Figure 2 , the path planning device 200 according to the embodiment of the present application includes a first acquisition module 21, a second acquisition module 22, a construction module 23, a planning module 24, a control module 25, and an update module 26. Among them, step S10 can be implemented by the first acquisition module 21, step S20 can be implemented by the second acquisition module 22, step S30 can be implemented by the construction module 23, step S40 can be implemented by the planning module 24, step S50 can be implemented by the control module 25, and step S60 can be implemented by the update module 26. That is to say, the first acquisition module 21 is used to obtain a search coverage path, the second acquisition module 22 is used to obtain the target node for local path planning of the robot 1000 according to the search coverage path, the current pose of the robot 1000, and a preset radius, the construction module 23 is used to construct a local passable map according to the local elevation map and the motion control performance of the robot 1000, the planning module 24 is used to plan a local path based on the target node, the local passable map, and the current pose, the control module 25 is used to control the robot 1000 to move along the local path to search for the target object 2000, and the update module 26 is used to update the target node and the local path in the case where the target object 2000 is not searched.
[0046] Please refer to Figure 3, the robot 1000 according to the embodiment of the present application includes a main body 100, an execution component 11 disposed on the main body 100, and a processor 12 disposed on the main body 100. The robot 1000 may further include a memory, on which a computer program is stored and can run on the processor 12. When the processor 12 executes the computer program, the path planning method according to the embodiment of the present application is implemented to control the execution component 11 to perform a work task on the target object 2000. In this way, the path planning method according to the embodiment of the present application can be implemented by the robot 1000 according to the embodiment of the present application. Among them, steps S10, S20, S30, S40, S50, and S60 can all be implemented by the processor 12. That is to say, when the processor 12 executes the computer program, it realizes: obtaining a search coverage path; obtaining a target node for local planning of the robot 1000 according to the search coverage path, the current pose of the robot 1000, and a preset radius; constructing a local passable map according to the local elevation map and the motion control performance of the robot 1000; planning a local path based on the target node, the local passable map, and the current pose; controlling the robot 1000 to move along the local path to search for the target object 2000; and updating the target node and the local path when the target object 2000 is not found.
[0047] Among them, the processor 12 may refer to a drive board. The drive board may be a central processing unit (CPU), or may be other general-purpose processors, digital signal processors (DSPs), application specific integrated circuits (ASICs), field-programmable gate arrays (FPGAs), or other programmable logic devices, discrete gate or transistor logic devices, discrete hardware components, etc.
[0048] It should be noted that the robot 1000 includes, but is not limited to, humanoid robots, robotic dogs, mobile manipulators, wheeled robots, multi-legged robots 400, etc., and no specific limitations are made here. It can be understood that the robot 1000 may include structures such as robotic arms and robotic legs, and the control method of the robot 1000 can be applied to structures such as robotic arms and robotic legs.
[0049] Specifically, please refer to Figure 4 and Figure 5 , Figure 4 is a schematic diagram of the hardware structure of the multi-legged robot 400 according to one embodiment of the present invention, Figure 5 is a schematic diagram of the structure of the multi-legged robot 400. In Figure 4In the illustrated embodiment, the multi-legged robot 400 includes a mechanical unit 401, a communication unit 402, a sensing unit 403, an interface unit 404, a storage unit 405, a machine control module 410, and a power supply 411. The various components of the multi-legged robot 400 can be connected in any way, including wired or wireless connections, etc. Those skilled in the art can understand that Figure 4 the specific structure of the multi-legged robot 400 shown in does not constitute a limitation on the multi-legged robot 400. The multi-legged robot 400 may include more or fewer components than those shown, and some components are not essential components of the multi-legged robot 400 and can be omitted entirely or combined with some components as needed within the scope of not changing the essence of the invention.
[0050] Next, in combination with Figure 4 and Figure 5 a specific introduction to each component of the multi-legged robot 400 will be given:
[0051] The mechanical unit 401 is the hardware of the multi-legged robot 400. As Figure 4 shown, the mechanical unit 401 may include a drive board 4011, motors 4012, and a mechanical structure 4013. As Figure 5 shown, the mechanical structure 4013 may include a fuselage main body 4014, extendable legs 4015, and feet 4016. In other embodiments, the mechanical structure 4013 may further include an extendable robotic arm (not shown in the figure), a rotatable head structure 4017, a wagging tail structure 4018, a load-carrying structure 4019, a saddle structure 4020, a camera structure 4021, etc. It should be noted that each component module of the mechanical unit 401 can be one or multiple, and can be set according to specific circumstances. For example, the number of legs 4015 can be 4, and each leg 4015 can be configured with 3 motors 4012, corresponding to 12 motors 4012. It can be understood that the extendable robotic arm or the extendable leg structure can be installed at positions such as the back or tail of the multi-legged robot 400, and it can be adjusted according to factors such as the use of the multi-legged robot 400 and production costs, and no specific limitation is made here.
[0052] The communication unit 402 can be used for signal reception and transmission, and can also communicate with the network and other devices. For example, after receiving instruction information sent by a remote control or other multi-legged robots 400 to move in a specific gait at a specific speed value in a specific direction, it is transmitted to the machine control module 410 for processing. The communication unit 402 includes modules such as a WiFi module, a 4G module, a 5G module, a Bluetooth module, and an infrared module.
[0053] The sensing unit 403 is used to obtain information data of the surrounding environment of the multi-legged robot 400 and monitor the parameter data of various components inside the multi-legged robot 400, and send them to the machine control module 410. The sensing unit 403 includes a variety of sensors, such as sensors for obtaining surrounding environment information: lidar (for remote object detection, distance determination, and / or speed value determination), millimeter-wave radar (for short-range object detection, distance determination, and / or speed value determination), camera, infrared camera, Global Navigation Satellite System (GNSS), etc. Such as sensors for monitoring various components inside the multi-legged robot 400: Inertial Measurement Unit (IMU) (for measuring speed values, acceleration values, and angular velocity values), sole sensor (for monitoring the position of the sole contact point, sole posture, contact force magnitude and direction), temperature sensor (for detecting the temperature of components). As for other sensors that the multi-legged robot 400 can also be configured with, such as load sensors, touch sensors, motor angle sensors, torque sensors, etc., they will not be elaborated here.
[0054] The interface unit 404 can be used to receive inputs from external devices (such as data information, power, etc.) and transmit the received inputs to one or more components within the multi-legged robot 400, or can be used to output to external devices (such as data information, power, etc.). The interface unit 404 may include a power port, data ports (such as USB ports), memory card ports, ports for connecting devices with identification modules, audio input / output (I / O) ports, video I / O ports, etc.
[0055] The storage unit 405 is used to store software programs and various data. The storage unit 405 may mainly include a program storage area and a data storage area. Among them, the program storage area can store operating system programs, motion control programs, application programs (such as text editors), etc.; the data storage area can store data generated during the use of the multi-legged robot 400 (such as various sensing data obtained by the sensing unit 403, log file data), etc. In addition, the storage unit 405 may include high-speed random access memory, and may also include non-volatile memory, such as disk memory, flash memory, or other non-volatile solid-state memories. It can be understood that the memory can implement part or all of the functions of the storage unit 405.
[0056] The display unit 406 is used to display information input by the user or information provided to the user. The display unit 406 may include a display panel 4061, and the display panel 4061 can be configured in the form of a liquid crystal display (LCD), an organic light-emitting diode (OLED), etc.
[0057] The input unit 407 can be used to receive input digital or character information. Specifically, the input unit 407 may include a touch panel 4071 and other input devices 4072. The touch panel 4071, also known as a touch screen, can collect the user's touch operations (such as the user's operations on or near the touch panel 4071 using the palm, finger, or suitable accessories), and drive the corresponding connection device according to a preset program. The touch panel 4071 can include two parts: a touch detection device 4073 and a touch controller 4074. Among them, the touch detection device 4073 detects the user's touch orientation and detects the signal brought by the touch operation, and transmits the signal to the touch controller 4074; the touch controller 4074 receives the touch information from the touch detection device 4073, converts it into contact coordinates, and then sends it to the machine control module 410, and can receive and execute the commands sent by the machine control module 410. In addition to the touch panel 4071, the input unit 407 may further include other input devices 4072. Specifically, the other input devices 4072 may include, but are not limited to, one or more of a remote control operation handle, etc., and are not specifically limited here.
[0058] Furthermore, the touch panel 4071 can cover the display panel 4061. After the touch panel 4071 detects a touch operation on or near it, it transmits it to the machine control module 410 to determine the type of touch event. Subsequently, the machine control module 410 provides a corresponding visual output on the display panel 4061 according to the type of touch event. Although in Figure 4 the touch panel 4071 and the display panel 4061 are implemented as two independent components to separately realize the input and output functions, in some embodiments, the touch panel 4071 and the display panel 4061 can be integrated to realize the input and output functions, and are not specifically limited here.
[0059] The machine control module 410 is the control center of the multi-legged robot 400. It uses various interfaces and lines to connect all parts of the entire multi-legged robot 400. By running or executing the software program stored in the storage unit 405, and calling the data stored in the storage unit 405, the multi-legged robot 400 is overall controlled. It can be understood that the processor 12 can implement part or all of the functions of the machine control module 410.
[0060] The power supply 411 is used to supply power to each component. The power supply 411 may include a battery and a power control board, and the power control board is used to control functions such as battery charging, discharging, and power consumption management. In Figure 4 the illustrated embodiment, the power supply 411 is electrically connected to the machine control module 410. In other embodiments, the power supply 411 may also be electrically connected to the sensing unit 403 (such as a camera, radar, speaker, etc.) and the motor 4012 respectively. It should be noted that each component may be connected to different power supplies 411 respectively, or powered by the same power supply 411.
[0061] Based on the above embodiments, specifically, in some embodiments, the multi-legged robot 400 can be communicatively connected to a terminal device. When the terminal device communicates with the multi-legged robot 400, the terminal device can send command information to the multi-legged robot 400. The multi-legged robot 400 can receive the command information through the communication unit 402, and when the command information is received, the command information can be transmitted to the machine control module 410, so that the machine control module 410 can process the command information to obtain a target speed value. The terminal device includes but is not limited to: a mobile phone with an image capture function, a tablet computer, a server, a personal computer, a wearable intelligent device, and other electrical devices.
[0062] The command information can be determined according to preset conditions. In one embodiment, the multi-legged robot 400 may include a sensing unit 403, and the sensing unit 403 can generate command information according to the current environment where the multi-legged robot 400 is located. The machine control module 410 can judge whether the current speed value of the multi-legged robot 400 meets the corresponding preset conditions according to the command information. If it meets, the current speed value and current gait of the multi-legged robot 400 will be maintained for movement; if it does not meet, the target speed value and corresponding target gait will be determined according to the corresponding preset conditions, so as to control the multi-legged robot 400 to move at the target speed value and corresponding target gait. The environmental sensor may include a temperature sensor, a pressure sensor, a vision sensor, and a sound sensor. The command information may include temperature information, pressure information, image information, and sound information. The communication method between the environmental sensor and the machine control module 410 can be wired communication or wireless communication. The wireless communication methods include but are not limited to: wireless network, mobile communication network (3G, 4G, 5G, etc.), Bluetooth, and infrared.
[0063] In the path planning method according to the embodiments of the present application, by providing the robot 1000 with the rough position information of the target object 2000 to be grasped and transported, a search coverage path can be obtained. Then, combining the search coverage path, the current pose of the robot 1000, and a preset radius, the target nodes for the local planning of the robot 1000 can be obtained. Furthermore, based on the target nodes, the local passable map, and the current pose, a local path can be planned. In this way, the robot 1000 can move along the planned local path to search for the target object 2000 to perform the work task.
[0064] It should be noted that with the continuous development of society, robots are increasingly applied in fields such as production and household use. For example, using robots to perform work tasks such as transporting goods. In the above work tasks, accurate pose information of the corresponding target object often needs to be given to the robot. However, in actual application scenarios, it is often only easy to give the robot the rough position information of the target object. In this way, the robot needs to be able to find the corresponding target object based on the rough pose information to perform the work task.
[0065] Specifically, in step S10, the search coverage path can be planned according to the rough pose information of the target object 2000 provided by the user to the robot 1000. The planned search coverage path can be obtained by the processor 12, and then the path planning method of the subsequent steps can be executed based on the search coverage path. It can be easily understood that the search coverage path includes the location where the target object 2000 to be searched is located.
[0066] In step S20, the current pose of the robot 1000 can be recorded by relevant components and sent to the processor 12. The preset radius can be set according to actual requirements, and the preset radius can be specified by the user. Combining the obtained search coverage path, the current pose of the robot 1000, and the preset radius, the processor 12 can obtain the target nodes for the local planning of the robot 1000. It can be easily understood that the target nodes are within the path range included in the search coverage path and are associated with the preset radius. For example, in some embodiments, the target node can be a point on the search coverage path within the preset radius range, and the distance between this point and the robot 1000 is closest to the preset radius.
[0067] In step S30, in one embodiment, the processor 12 can update the local elevation map of the robot 1000 within a certain range (such as 10 cm × 10 cm) through the laser and perception information obtained by the intelligent perception system set on the robot 1000. In particular, in one embodiment, when selecting to update the local elevation map within a certain range, the update range can be the same as the preset radius. In addition, the elevation map is marked with the height information of objects and the environment and can be a 3D map.
[0068] It should be noted that the "local" in the local elevation map is in contrast to the global elevation map. The global elevation map can be determined according to the actual working environment of the robot 1000. That is to say, the global elevation map can be a 3D elevation map of the working environment of the robot 1000. Correspondingly, the local elevation map is a 3D elevation map of the working environment of the robot 1000 within a certain range (such as 10 cm × 10 cm).
[0069] The motion control performance of the robot 1000 can include the height limit of the steps that the robot 1000 can climb, the slope limit of the slopes that the robot 1000 can climb, the step length of the robot 1000, etc. The processor 12 can construct a local passable map based on the obtained local elevation map and the motion control performance of the robot 1000. The local passable map can be understood as the area where the robot 1000 can pass within the range of the local elevation map. In particular, it can be understood that since the robot 1000 will move, the local elevation map needs to be updated in real time according to information such as laser and perception, so as to update the local passable map in real time to approximate and better search for the position of the target object 2000.
[0070] In step S40, through steps S10 - S30, based on the constructed local passable map, the processor 12 uses algorithms such as A* (Astar) to real-time plan a corresponding local path according to the current pose of the robot 1000 that has been obtained and the target nodes that have been planned. The local path can be a 2.5D path.
[0071] In step S50, the processor 12 can control the robot 1000 to move along the planned local path to search for the target object 2000. When searching for the target object 2000, the target object 2000 can be detected in real time according to the visual perception system installed on the robot 1000.
[0072] In step S60, in the case where the target object 2000 is not searched, the robot 1000 can continue to follow the planned local path, and at the same time update the target nodes of the local plan according to steps S20, S30, S40, etc., and real-time plan a new local path to follow the new local path until the robot 1000 searches for the target object 2000.
[0073] Please refer to Figure 6 , in some embodiments, the path planning method may include the following steps:
[0074] S70: Perform local path tracking speed control based on at least the local path and the current pose.
[0075] In some embodiments, the path planning device 200 may include an execution module, and the execution module is used to execute step S70, that is, the execution module can be used to perform local path tracking speed control at least according to the local path and the current pose.
[0076] In some embodiments, the processor 12 can be used to perform local path tracking speed control at least according to the local path and the current pose.
[0077] In this way, it is possible to achieve tracking speed control of the speed magnitude and speed direction when the robot 1000 moves along the local path, and further control the robot 1000 to adjust the speed magnitude and movement direction of the movement, so that the robot 1000 moves along the local path to search for the target object 2000.
[0078] Specifically, in step S70, it should be noted that the local path and the current pose of the robot 1000 are two necessary pieces of information for performing local path tracking speed control. In addition, the processor 12 can also obtain information such as dynamic obstacles to assist in performing local path tracking speed control. In one embodiment, when the processor 12 performs local path tracking speed control, the control of the speed magnitude and direction of the tracking speed can be achieved by providing corresponding speeds to the X direction, Y direction, etc. of the movement of the robot 1000. In this way, when the processor 12 changes the speed magnitude of a certain movement direction, the robot 1000 will deviate towards the direction with a larger movement speed, so that it is possible to achieve tracking speed control of the movement speed direction of the robot 1000, and further control the robot 1000 to adjust the speed magnitude and movement direction of the movement, so that the robot 1000 moves along the local path to search for the target object 2000.
[0079] In some embodiments, the target node is a point on the search coverage path within a preset radius, and the distance between the point and the robot 1000 is the closest to the preset radius compared to the distances between the robot 1000 and the other points on the search coverage path within the preset radius.
[0080] In this way, by setting the target node as a point on the search coverage path within the preset radius that is closest to the robot 1000 in distance, it is convenient for the robot 1000 to plan the local path to the greatest extent within the preset radius, so as to search for the target object 2000 more comprehensively and accurately.
[0081] Specifically, as described above, the preset radius can be set according to actual requirements. For example, the preset radius can be confirmed according to the sensing range of the robot 1000, and the radius size of the sensing range of the robot 1000 can be the size of the preset radius.
[0082] In one embodiment, when the robot 1000 needs to perform a task of carrying or grasping a target object 2000, the user gives the approximate location of the target object 2000 through voice or on a map. According to the approximate location of the target object 2000, a region can be obtained at the approximate location of the target object 2000 on the map with a given preset radius, and the target object 2000 is included in this region.
[0083] Then it is obtained in steps S20 - S40 that the target node of the local planning of the robot 1000 is comprehensively obtained based on the search coverage path, the current position of the robot 1000, and the preset radius, and the target node is on the search coverage path. At this time, since the processor 12 plans the local path based on the constructed local traversable map, in combination with the determined target node and the obtained current pose, then in order to reduce the complexity of the search and improve the efficiency and accuracy of the search, when planning the local path of the robot 1000 to the target node, the target node needs to meet the following two conditions: the target node is on the search coverage path within the preset radius, and the distance between the target node and the robot 1000 is the closest to the preset radius compared to the distances between the robot 1000 and the other points on the search coverage path within the preset radius. As mentioned above, the preset radius can be the radius size of the sensing range of the robot 1000, that is to say, the target node can be the point on the search coverage path that is the farthest from the current position of the robot 1000 within the sensing range of the robot 1000. In this way, it is convenient for the robot 1000 to plan the local path to the greatest extent within the preset radius, and the search range for the target object 2000 in the real-time planned local path is larger, so that the target object 2000 can be searched more comprehensively and accurately.
[0084] Please refer to Figure 7 , in some embodiments, the path planning method may further include the following steps:
[0085] S80: When the target object 2000 is searched, stop the search and control the robot 1000 to perform a work task on the target object 2000.
[0086] In some embodiments, the path planning device 200 may further include an execution module, and the execution module is used to stop the search and control the robot 1000 to perform a work task on the target object 2000 when the target object 2000 is searched.
[0087] In some embodiments, the processor 12 may also be used to stop the search and control the robot 1000 to perform a work task on the target object 2000 when the target object 2000 is searched.
[0088] In this way, after the robot 1000 searches for the target object 2000 according to the planned local path, the search can be stopped, and the robot 1000 can be switched to the carrying or grasping mode (the specific working mode depends on the specific working task), so as to realize the carrying or grasping of the target object 2000, and finally realize the control of the robot 1000 to search for the target object 2000 and perform the working task without the precise pose information of the target object 2000.
[0089] Please refer to Figure 8 , in some embodiments, obtaining the search coverage path (step S10) may include the following steps:
[0090] S11: Construct a global passable map according to the global elevation map and the motion control performance of the robot 1000;
[0091] S12: Obtain the fuzzy position information of the target object 2000;
[0092] S13: Based on the global passable map and the fuzzy position information, construct a passable map of the target search area corresponding to the target object 2000;
[0093] S14: Perform search coverage path planning according to the passable map of the target search area, the global elevation map, and the central position of the target search area.
[0094] In some embodiments, the first acquisition module 21 may be used to construct a global passable map according to the global elevation map and the motion control performance of the robot 1000, and to obtain the fuzzy position information of the target object 2000, and to construct a passable map of the target search area corresponding to the target object 2000 based on the global passable map and the fuzzy position information, and to perform search coverage path planning according to the passable map of the target search area, the global elevation map, and the central position of the target search area.
[0095] In some embodiments, the processor 12 may be used to construct a global passable map according to the global elevation map and the motion control performance of the robot 1000, and to obtain the fuzzy position information of the target object 2000, and to construct a passable map of the target search area corresponding to the target object 2000 based on the global passable map and the fuzzy position information, and to perform search coverage path planning according to the passable map of the target search area, the global elevation map, and the central position of the target search area.
[0096] In this way, it is possible to determine the passable map of the target search area by fusing the approximate position information and the global passable map, and then plan the search coverage path based on the passable map of the target search area, the global elevation map, and the center position of the target search area, so as to approach the local area from the global area in subsequent steps, and finally realize the control of the robot 1000 to search for the target object 2000 to perform the work task without the precise pose information of the target object 2000.
[0097] Specifically, in step S11, the global elevation map can be determined according to the actual working environment of the robot 1000, that is to say, the global elevation map can be a 3D elevation map of the working environment of the robot 1000, and the height information of objects and the environment is marked on the global elevation map. The motion control performance of the robot 1000 can include the height limit of the steps that the robot 1000 can climb, the slope limit of the slopes that the robot 1000 can climb, the step length of the robot 1000, etc. The processor 12 can construct the global passable map based on the obtained global elevation map and the motion control performance of the robot 1000. The global passable map can be understood as the entire passable area within the working environment of the robot 1000.
[0098] In step S12, the approximate position information can be obtained by acquiring the approximate position of the target object 2000 given by the user through voice or directly on the global elevation map.
[0099] In step S13, the target search area needs to contain the target object 2000, and the target search area is the area that the robot 1000 currently needs to search. The passable map of the target search area is the map composed of all passable positions of the robot 1000 within the target search area. The processor 12 can construct the passable map of the target search area based on the global passable map and the approximate position information. For example, in one embodiment, the approximate position of the target object 2000 on the global passable map can be determined according to the approximate position information, and then the target search area including the target object 2000 can be divided on the global passable map, and then the passable map of the target search area can be constructed.
[0100] In step S14, it can be easily understood that the center position of the target search area is the position of the center point of the target search area, and this position needs to be a passable area. If the selected position of the center point of the target search area is an impassable area, a point in the passable area needs to be randomly selected near this center point position. The processor 12 can plan the search coverage path based on the passable map of the target search area, the global elevation map, and the center position of the target search area.
[0101] Please refer to Figure 9, in some embodiments, the target object 2000 may be located in the target search area. Constructing a passable map of the target search area corresponding to the target object 2000 (step S13) may include the following steps:
[0102] S130: Determine a preset point on the global passable map;
[0103] S131: With the preset point as the center, construct a passable map of the target search area for a predetermined area, where the preset point is the central position of the target search area, and the target search area contains the target object.
[0104] In some embodiments, the first acquisition module 21 may be used to determine a preset point on the global passable map and to construct a passable map of the target search area for a predetermined area with the preset point as the center, where the preset point is the central position of the target search area, and the target search area contains the target object.
[0105] In some embodiments, the processor 12 may be used to determine a preset point on the global passable map and to construct a passable map of the target search area for a predetermined area with the preset point as the center, where the preset point is the central position of the target search area, and the target search area contains the target object.
[0106] Specifically, in steps S130 - S131, when selecting the preset point, the preset point is the central position of the target search area containing the target object 2000. The predetermined area may be an area obtained by selecting an appropriate radius with the preset point as the center in the target search area according to actual requirements (such as the computing performance of the robot 1000, the size of the map, etc.). For example, in one embodiment, when the robot 1000 with the execution component 11 needs to perform a task of carrying or grasping an object, the user gives the fuzzy position information of the target object 2000 through voice or on the map, and then the processor 12 constructs a passable map of the target search area where the target object 2000 is located according to the obtained fuzzy position information of the target object 2000 and the global passable map. At this time, taking a certain point on the global passable map as the center, a range of 10m × 10m is selected (i.e., the size of the predetermined area). The target search area needs to contain the target object 2000, and the central point of the target search area, that is, the preset point, is the central position of the target search area.
[0107] Please refer to Figure 10 , in some embodiments, according to the passable map of the target search area, the global elevation map, and the central position of the target search area, perform search coverage path planning (step S14), including the following steps:
[0108] S140: Based on the passable map of the target search area, construct a low-resolution passable map of the target search area. The larger the visual perception range of the robot 1000, the lower the resolution.
[0109] S141: Extract the grid points of all passable areas in the low-resolution passable map of the target search area to form a point set.
[0110] S142: Starting from the central position of the target search area, according to a predetermined algorithm, calculate a search coverage path that passes through and only passes through all the points in the point set once.
[0111] In some embodiments, the first acquisition module 21 is used to construct a low-resolution passable map of the target search area based on the passable map of the target search area. The larger the visual perception range of the robot 1000, the lower the resolution. And it is used to extract the grid points of all passable areas in the low-resolution passable map of the target search area to form a point set, and is used to start from the central position of the target search area and calculate a search coverage path according to a predetermined algorithm. The search coverage path passes through and only passes through all the points in the point set once.
[0112] In some embodiments, the processor 12 is used to construct a low-resolution passable map of the target search area based on the passable map of the target search area. The larger the visual perception range of the robot 1000, the lower the resolution. And it is used to extract the grid points of all passable areas in the low-resolution passable map of the target search area to form a point set, and is used to start from the central position of the target search area and calculate a search coverage path according to a predetermined algorithm. The search coverage path passes through and only passes through all the points in the point set once.
[0113] In this way, by constructing a low-resolution passable map of the target search area, the calculation speed of the processor 12 can be improved. By setting the search coverage path to pass through and only pass through all the points in the point set once, while simplifying the path planning calculation, the accuracy of the path for searching for the target object 2000 based on the search coverage path planning can be ensured.
[0114] Specifically, in steps S140 - S142, since the robot 1000 itself occupies a certain space and has a certain visual range, to improve the calculation speed, first, according to the passable map of the target search area (assuming a resolution of 5 cm), construct a corresponding low-resolution passable map of the target search area (assuming a resolution of 30 cm). Among them, the selection of the resolution of the low-resolution passable map of the target search area is mainly determined according to the size of the visual perception range of the robot 1000. The larger the visual perception range of the robot 1000, the lower the selected resolution.
[0115] Then, the processor 12 extracts the grid points of all passable areas in the map according to the low-resolution passable map of the target search area, obtaining a point set. In particular, the grid points ultimately need to be on the planned search coverage path.
[0116] Furthermore, the processor 12 can, based on the point set and the central position of the target search area, with the central position of the target search area as the starting point, use the solution algorithm of the traveling salesman problem (TSP) to calculate an approximately shortest coverage path, that is, the ultimately planned search coverage path. This search coverage path starts from the central position of the target search area and passes through each point in the point set (the grid points of all passable areas in the low-resolution passable map of the target search area) once.
[0117] The embodiment of the present application also provides a computer-readable storage medium, on which a computer program is stored. When this program is executed by the processor 12, it implements the path planning method of any of the above embodiments. For example, please combine Figure 1 When the computer-readable instruction is executed by the processor 12, it causes the processor 12 to execute the following steps of the path planning method:
[0118] S10: Obtain the search coverage path;
[0119] S20: According to the search coverage path, the current pose of the robot 1000, and a preset radius, obtain the target nodes for the local path planning of the robot 1000;
[0120] S30: Construct a local passable map according to the local elevation map and the motion control performance of the robot 1000;
[0121] S40: Plan a local path based on the target nodes, the local passable map, and the current pose;
[0122] S50: Control the robot 1000 to move along the local path to search for the target object 2000;
[0123] S60: In the case where the target object 2000 is not searched, update the target nodes and the local path;
[0124] Please combine Figures 6 - 10 The processor 12 can also execute the following steps of the path planning method:
[0125] S70: Perform local path tracking speed control at least according to the local path and the current pose;
[0126] And the following steps:
[0127] S80: When the target object 2000 is searched, stop the search and control the robot 1000 to perform a work task on the target object 2000;
[0128] Among them, step S10 may include the following steps:
[0129] S11: Construct a global passable map according to the global elevation map and the motion control performance of the robot 1000;
[0130] S12: Obtain the fuzzy position information of the target object 2000;
[0131] S13: Based on the global passable map and the fuzzy position information, construct a passable map of the target search area corresponding to the target object 2000;
[0132] S14: Perform search coverage path planning according to the passable map of the target search area, the global elevation map, and the central position of the target search area;
[0133] Step S13 may include the following steps:
[0134] S130: Determine a preset point on the global passable map;
[0135] S131: With the preset point as the center, construct a passable map of the target search area of a predetermined area, where the preset point is the central position of the target search area, and the target search area contains the target object;
[0136] Step S14 may include the following steps:
[0137] S140: Based on the passable map of the target search area, construct a low-resolution passable map of the target search area. The larger the visual perception range of the robot 1000, the lower the resolution;
[0138] S141: Extract the grid points of all passable areas in the low-resolution passable map of the target search area to form a point set;
[0139] S142: Starting from the central position of the target search area, calculate a search coverage path according to a predetermined algorithm. The search coverage path passes through and only passes through all the points in the point set once.
[0140] In the description of this specification, the descriptions with reference to the terms "one embodiment", "some embodiments", "illustrative embodiments", "examples", "specific examples", or "some examples", etc. mean that the specific features, structures, materials, or characteristics described in connection with the embodiments or examples are included in at least one embodiment or example of the present application. In this specification, the schematic descriptions of the above terms do not necessarily refer to the same embodiment or example. Moreover, the specific features, structures, materials, or characteristics described may be combined in any one or more embodiments or examples in a suitable manner.
[0141] Any process or method description shown in a flowchart or described otherwise herein can be understood to represent a module, segment, or portion of code including one or more executable instructions for implementing a specific logical function or process. The scope of the preferred embodiments of the present application includes additional implementations, where the functions may be executed in a manner not shown or discussed, including in a substantially simultaneous manner according to the functions involved or in a reverse order, which should be understood by those skilled in the art to which the embodiments of the present application pertain.
[0142] The logic and / or steps represented in a flowchart or described otherwise herein, for example, can be considered as a sequenced list of executable instructions for implementing a logical function and can be specifically implemented in any computer-readable medium for use by or in connection with an instruction execution system, apparatus, or device, such as a computer-based system, a system including a processing module, or other systems that can fetch and execute instructions from the instruction execution system, apparatus, or device. For the purposes of this specification, a "computer-readable medium" can be any device that can contain, store, communicate, propagate, or transport a program for use by or in connection with an instruction execution system, apparatus, or device. More specific examples (a non-exhaustive list) of the computer-readable medium include the following: an electrical connection portion with one or more wirings (electronic device), a portable computer diskette (magnetic device), a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), an optical fiber device, and a portable compact disc read-only memory (CDROM). Additionally, the computer-readable medium can even be paper or other suitable media on which the program can be printed, because the program can be obtained electronically, for example, by optically scanning the paper or other media, followed by editing, interpretation, or other suitable processing as necessary, and then stored in a computer memory.
[0143] The processor 12 can be a Central Processing Unit (CPU), or can also be other general-purpose processors, Digital Signal Processors (DSPs), Application Specific Integrated Circuits (ASICs), Field-Programmable Gate Arrays (FPGAs), or other programmable logic devices, discrete gate or transistor logic devices, discrete hardware components, etc. The general-purpose processor can be a microprocessor, or the processor can also be any conventional processor, etc.
[0144] It should be understood that each part of the embodiments of the present application can be implemented by hardware, software, firmware, or a combination thereof. In the above embodiments, multiple steps or methods can be implemented by software or firmware stored in a memory and executed by a suitable instruction execution system. For example, if implemented by hardware, as in another embodiment, any one or a combination of the following techniques well known in the art can be used: discrete logic circuits with logic gate circuits for implementing logical functions on data signals, application specific integrated circuits with appropriate combinational logic gate circuits, programmable gate arrays (PGAs), field-programmable gate arrays (FPGAs), etc.
[0145] Those of ordinary skill in the art of the present technology can understand that all or part of the steps carried by the methods of the above embodiments can be completed by instructing relevant hardware through a program. The said program can be stored in a computer-readable storage medium. When the program is executed, it includes one or a combination of the steps of the method embodiments.
[0146] In addition, in each of the embodiments of the present application, the functional units can be integrated into a processing module, or each unit can exist physically alone, or two or more units can be integrated into one module. The above integrated module can be implemented in the form of hardware or in the form of a software functional module. When the integrated module is implemented in the form of a software functional module and sold or used as an independent product, it can also be stored in a computer-readable storage medium.
[0147] The above-mentioned storage medium can be a read-only memory, a magnetic disk, an optical disc, etc.
[0148] Although the embodiments of the present application have been shown and described above, it can be understood that the above embodiments are exemplary and should not be construed as limiting the present application. Those of ordinary skill in the art can make changes, modifications, substitutions, and variations to the above embodiments within the scope of the present application.
Claims
1. A path planning method for a robot, characterized in that, Including: Obtain a search coverage path, the current pose of the robot, and a preset radius of the robot's perception range; wherein, the search coverage path is a path planned in advance according to the fuzzy position information of the target object provided by the robot and includes the location of the target object to be searched; According to the search coverage path, the current pose of the robot, and the preset radius, obtain the target node of the local planning of the robot; wherein, the target node is a point on the search coverage path within the preset radius, and the distance between the point and the robot is closer to the preset radius than the distances between the robot and the remaining points on the search coverage path within the preset radius; Construct a local passable map according to the local elevation map and the motion control performance of the robot; Based on the target node, the local passable map, and the current pose, plan a local path; Control the robot to move along the local path to search for the target object; In the case where the target object is not searched, update the target node and the local path.
2. The path planning method according to claim 1, wherein The path planning method includes: Execute local path tracking speed control at least according to the local path and the current pose.
3. The path planning method according to claim 1, characterized in that, The path planning method further includes: In the case where the target object is searched, stop the search and control the robot to perform a work task on the target object.
4. The path planning method according to claim 1, wherein The obtaining of the search coverage path includes: Construct a global passable map according to the global elevation map and the motion control performance of the robot; Obtain the fuzzy position information of the target object; Based on the global passable map and the fuzzy position information, construct a target search area passable map corresponding to the target object; According to the target search area passable map, the global elevation map, and the center position of the target search area, perform search coverage path planning.
5. The path planning method according to claim 4, wherein, The target object is located in the target search area. The constructing of the target search area passable map corresponding to the target object includes: Determine a preset point in the global passable map; With the preset point as the center, construct the target search area passable map of a predetermined area, where the preset point is the center position of the target search area, and the target search area includes the target object.
6. The path planning method according to claim 4, wherein The performing of the search coverage path planning according to the target search area passable map, the global elevation map, and the center position of the target search area includes: Based on the target search area passable map, construct a low-resolution target search area passable map, and the larger the visual perception range of the robot, the lower the resolution; Extract the grid points of all passable areas in the low-resolution target search area passable map to form a point set; With the center position of the target search area as the starting point, according to a predetermined algorithm, calculate the search coverage path, and the search coverage path passes through and only passes through all the points in the point set once.
7. A path planning device for a robot, characterized in that, Including: A first acquisition module, configured to acquire a search coverage path, the current pose of the robot, and a preset radius of the sensing range of the robot; wherein, the search coverage path is a path planned in advance according to the fuzzy position information of the target object provided by the robot and includes the location where the target object to be searched is located. A second acquisition module, configured to acquire a target node of the local planning of the robot according to the search coverage path, the current pose of the robot, and the preset radius; wherein, the target node is a point on the search coverage path within the preset radius, and the distance between the point and the robot is closer to the preset radius than the distances between the robot and the remaining points on the search coverage path within the preset radius. A construction module, configured to construct a local traversable map according to a local elevation map and the motion control performance of the robot. A planning module, configured to plan a local path based on the target node, the local traversable map, and the current pose. A control module, configured to control the robot to move along the local path to search for the target object. An update module, configured to update the target node and the local path when the target object is not searched.
8. A robot, characterized in that, Comprising: A main body; An execution component connected to the main body, the execution component being configured to perform a work task on the target object; and A processor disposed on the main body, the processor being configured to execute the path planning method according to any one of claims 1-6.
9. A non-volatile computer-readable storage medium storing computer-executable instructions, characterized in that, When the computer-executable instructions are executed by one or more processors, the processors are caused to execute the path planning method according to any one of claims 1-6.
Citation Information
Patent Citations
Material carrying and moving composite robot
CN109202885A
Visual navigation inspection and obstacle avoidance method for line patrol robot
CN110687904A