Parking method of driving device and related device
By deploying sensors on autonomous driving vehicles, obtaining motion data in real time and judging the slope angle and height of obstacles, the problem of inaccurate parking of vehicles in open-pit mines and other scenarios is solved, and higher stop accuracy and operation efficiency are achieved .
Patent Information
- Application Number
- CN202310976499.9
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2023-08-03
- Publication Date
- 2025-02-14
AI Technical Summary
Existing autonomous vehicles are difficult to accurately park on the retaining wall in open-pit mines and other scenarios, mainly due to positioning errors and map accuracy issues.
By deploying sensors on the driving device, the motion data is obtained in real time and the posture of the driving device is determined, and the slope angle and slope height of the obstacle are judged, so as to achieve accurate abutment.
It improves the accuracy of autonomous vehicles parked in open-pit mines and other scenarios, and reduces inefficiency in operation and safety hazards caused by inaccurate parking.
Smart Images

Figure CN119428640A_ABST
Abstract
Description
Technical Field
[0001] The embodiments of the present application relate to the field of autonomous driving, and in particular to a method for docking a traveling device and related devices. Background Art
[0002] With the rapid development of autonomous driving technology, it has been widely used in various driving scenarios. For example, taking the application of autonomous driving technology in open-pit mines as an example, autonomous driving technology can achieve unmanned vehicles and avoid casualties caused by accidents; and autonomous driving technology can achieve long-term continuous operation and improve vehicle turnover efficiency, thereby reducing staff and increasing efficiency for mining companies.
[0003] In open-pit mines, autonomous driving vehicles are mainly used for earthwork transportation from the loading area to the dumping area, that is, after the autonomous driving vehicle is filled with earth in the loading area, it will transport the earth to the dumping area for unloading. In addition, in the operating requirements of open-pit mines, when the autonomous driving vehicle stops in the loading area and the dumping area, the rear wheels of the autonomous driving vehicle must be against the retaining wall. Among them, the autonomous driving vehicle against the retaining wall in the loading area can avoid the movement of the excavator due to the inability of the autonomous driving vehicle to park in place, thereby improving the efficiency of earth loading; the autonomous driving vehicle against the retaining wall in the dumping area can ensure that the autonomous driving vehicle empties the earth outside the retaining wall, avoiding incomplete dumping or leaving some earth inside the retaining wall. In general, in the driving scenario of open-pit mines, the precise retaining wall abutment technology of the autonomous driving vehicle can ensure the operating efficiency of the autonomous driving vehicle in the loading area and the dumping area, which is an urgent problem to be solved by the autonomous driving technology.
[0004] At present, the relevant technology realizes the docking of the autonomous driving vehicle by combining the vehicle positioning technology and the map with the docking point marked, that is, when the distance between the positioning of the autonomous driving vehicle and the docking point marked on the map is less than a certain value, the autonomous driving vehicle is considered to have completed the docking. The vehicle docking method of the relevant technology is heavily dependent on the positioning accuracy of the vehicle and the accuracy of the map. In the actual application process, it is often impossible to eliminate the positioning error and mapping error of the vehicle, so it is difficult to ensure that the autonomous driving vehicle is against the retaining wall. Summary of the invention
[0005] The present application provides a method for docking a traveling device, which can enable the traveling device to be accurately docked on a docking obstacle.
[0006] The first aspect of the present application provides a method for docking a traveling device, which is applied to a traveling device such as a vehicle or a robot. The method comprises: in the process of the traveling device moving toward a docking obstacle, obtaining motion data of the traveling device at multiple moments through a sensor. The docking obstacle is used to block the travel of the traveling device, such as a retaining wall in an open-pit mine scene and a car blocker in a parking space. Motion data refers to motion-related data measured by sensors during driving, such as acceleration and angular velocity of the traveling device in multiple directions.
[0007] Then, based on the acquired motion data, the postures of the traveling device at multiple moments are determined. The posture of the traveling device refers to the displacement of the traveling device in the vertical direction relative to the horizontal plane (i.e., the ground plane). For example, in the case where the traveling device is a vehicle, the rear wheels of the vehicle are rolling on a slope, and the front wheels of the vehicle are rolling on a flat ground, and the posture of the vehicle is a state where the rear wheels are lifted. Since the motion data of the traveling device at multiple moments indicate the acceleration and angular velocity of the traveling device in multiple directions, the posture of the traveling device at each moment can be determined based on these motion data and the length of time between adjacent moments.
[0008] Finally, in response to the obstacle that the traveling device runs over meeting a preset condition, the traveling device is braked. The preset condition includes that the slope angle of the obstacle that the traveling device runs over is greater than a preset angle value or the slope height of the obstacle is greater than a preset height value. Since the posture change of the traveling device is mainly due to the traveling device running over an obstacle or driving into a concave pit during driving, the slope angle and slope height of the obstacle that the traveling device runs over can be inferred based on the posture of the traveling device at multiple moments, and then after determining that the obstacle that the traveling device runs over is the above-mentioned parking obstacle based on the slope angle and slope height of the obstacle, the traveling device is braked.
[0009] In this solution, when the traveling device is traveling toward the parking obstacle, the motion data of the traveling device at different times is acquired by sensors, and the posture of the traveling device at different times is further determined based on the motion data, so as to determine the slope angle and slope height of the obstacle encountered by the traveling device, and further determine whether the traveling device has encountered the parking obstacle based on the slope angle and slope height of the obstacle encountered by the traveling device. The traveling device can be accurately placed against the parking obstacle based on the slope angle characteristics or slope height characteristics of the parking obstacle itself.
[0010] In a possible implementation, before braking the travel device, the travel device may also obtain point cloud data of the parking obstacle through sensors such as a laser radar or a depth camera. Then, based on the acquired point cloud data, the slope angle prediction value and slope height prediction value of the parking obstacle are determined. Among them, the preset angle value is determined based on the slope angle prediction value, and the preset height value is also determined based on the slope height prediction value. The larger the slope angle prediction value, the larger the preset angle value; the smaller the slope angle prediction value, the smaller the preset angle value. The larger the slope height prediction value, the larger the preset height value; the smaller the slope height prediction value, the smaller the preset height value.
[0011] In this solution, by scanning the point cloud data of the docking obstacle in advance before contacting the docking obstacle, and predicting the slope angle value and slope height value of the docking obstacle based on the point cloud data, the preset angle value and preset height value used to determine whether to perform docking can be adjusted based on the predicted slope angle value and slope height value, thereby improving the rationality of setting the preset angle value and preset height value and ensuring the applicability of the solution in various scenarios.
[0012] In a possible implementation, the postures at multiple moments determined based on the motion data at multiple moments include a first displacement of a traveling mechanism of the traveling device in a target direction at a first moment, and a second displacement of the traveling mechanism in the target direction at a second moment. The target direction is a direction perpendicular to the earth, and the traveling mechanism is used to drive the traveling device to travel, and the traveling mechanism is, for example, a wheel or a track. The slope angle of the obstacle is determined based on the speed of the traveling device at the first moment, the first displacement, and the second displacement.
[0013] Specifically, the displacement of the traveling device in the vertical direction is usually caused by the traveling device running over an obstacle. Moreover, the higher the obstacle the traveling device runs over, the greater the displacement of the traveling device in the vertical direction. When the structural model of the traveling device remains unchanged, the height of the obstacle the traveling device runs over can be calculated based on the displacement of the traveling device in the vertical direction. Therefore, when the displacement and speed of the traveling device in the vertical direction at different times are obtained, the height of the obstacle the traveling device runs over can be determined, and then based on the principle of finding the angles of a triangle, the slope angle of the obstacle the traveling device runs over can be found.
[0014] In this solution, the slope angle of the obstacle encountered by the traveling device is determined based on the movement state of the traveling device, and whether the traveling device has encountered the parking obstacle is further determined based on the slope angle of the obstacle encountered by the traveling device. This enables the traveling device to accurately abut against the parking obstacle based on the slope angle characteristics of the parking obstacle itself, thereby ensuring that the parking obstacle can be accurately identified in different parking obstacle scenarios.
[0015] In a possible implementation, the slope height is the difference between a first undulation value of the ground on the side of the traveling mechanism close to the parking obstacle and a second undulation value of the ground on the side of the traveling mechanism far from the parking obstacle, and the first undulation value and the second undulation value are determined based on the posture of the traveling device at the same time. For example, when the traveling mechanism is a vehicle moving backwards toward the parking obstacle, the first undulation value refers to the undulation value of the ground on which the rear wheels of the vehicle are traveling, and the second undulation value refers to the undulation value of the ground on which the front wheels of the vehicle are traveling. In other words, the difference between the first undulation value and the second undulation value actually refers to the difference between the undulation values of the ground on which the front and rear sides of the traveling mechanism are traveling.
[0016] In this solution, the slope height of the obstacle encountered by the traveling device is determined based on the movement state of the traveling device, and whether the traveling device has encountered the parking obstacle is further determined based on the slope height of the obstacle encountered by the traveling device. This enables the traveling device to accurately abut against the parking obstacle based on the slope height characteristics of the parking obstacle itself, thereby ensuring that the parking obstacle can be accurately identified in different parking obstacle scenarios.
[0017] In a possible implementation, the preset condition also includes that a difference between an expected acceleration and an actual acceleration of the traveling device at a second moment is greater than a preset difference, the expected acceleration is predicted based on motion data at a first moment and speed control information of the traveling device, the multiple moments include the first moment and the second moment, and the first moment is before the second moment, and the motion data at the multiple moments include the actual acceleration at the second moment.
[0018] In this solution, when the traveling device is moving toward the parking obstacle, the motion data of the traveling device at different moments are obtained through sensors, so that the expected acceleration at the next moment can be predicted based on the motion data at the previous moment, and the expected acceleration is compared with the actual acceleration at the next moment to determine whether the traveling device has abutted against the parking obstacle, thereby ensuring that the traveling device can accurately abut against the parking obstacle.
[0019] When the traveling device contacts a parking obstacle during driving, it will be affected by the resistance brought by the parking obstacle, causing the motion state of the traveling device to change, that is, there will be a large difference between the actual acceleration of the traveling device and the expected acceleration of the traveling device. Therefore, based on the change in the motion state of the traveling device, the changes in the ground can be inverted, thereby accurately judging whether the traveling device is in contact with the parking obstacle.
[0020] In one possible implementation, the motion data at the first moment is used to determine the pitch angle and speed of the traveling device, and the speed control information includes the accelerator pedal opening and brake pedal opening of the traveling device; the expected acceleration is predicted based on the pitch angle, speed, accelerator pedal opening and brake pedal opening.
[0021] When the vehicle is traveling on a flat surface, the friction force on the vehicle is basically constant, so the only factors that can change the acceleration of the vehicle are the acceleration force and the braking force of the vehicle itself. In addition, when the vehicle has different speeds, the same accelerator pedal opening and brake pedal opening have different effects on the acceleration of the vehicle. Therefore, if the pitch angle and speed of the vehicle are known, and the accelerator pedal opening and brake pedal opening used to control the speed of the vehicle are also known, then the longitudinal acceleration of the vehicle at the next moment (i.e., the acceleration of the vehicle in the forward or backward direction) can be calculated.
[0022] In this solution, based on the motion state and speed control information of the traveling device at the previous moment, the expected acceleration of the traveling device at the next moment under normal driving conditions can be derived, so that based on the expected acceleration, it is judged whether the traveling device is driving normally or has contacted a parking obstacle, ensuring that the traveling device can accurately rest against the parking obstacle, thereby improving the feasibility of the solution.
[0023] In a possible implementation, during the driving process of the driving device, point cloud data of the ground on which the driving device is driving can also be obtained through sensors such as laser radar or depth camera. Then, based on the obtained point cloud data, the concavity value of the ground is determined, and the concavity value is used to indicate the concavity of the ground, and the preset difference is determined based on the concavity value. That is, the larger the concavity value, the larger the preset difference; the smaller the concavity value, the smaller the preset difference.
[0024] In this solution, by scanning the point cloud data of the driving ground, the degree of the ground's convexity can be determined based on the point cloud data, and then the size of the preset difference can be adjusted based on the degree of the ground's convexity. Generally speaking, when a driving device is driving on an uneven ground, it is easy for the acceleration to change due to the convexities or concavities on the ground, resulting in a certain difference between the expected acceleration and the actual acceleration. Moreover, the greater the degree of the ground's convexity, the greater the difference between the expected acceleration and the actual acceleration. Therefore, in order to avoid the influence of the ground's convexity on the docking judgment, the preset difference used to determine whether to perform the docking can be adjusted according to the ground's convexity, that is, the greater the degree of the ground's convexity, the larger the preset difference is set, thereby avoiding the erroneous judgment that the vehicle has landed on a docking obstacle due to the ground's convexity.
[0025] In a possible implementation, the sensor for measuring the motion data includes an accelerometer and a gyroscope, and the motion data includes acceleration and angular velocity in multiple directions.
[0026] In a possible implementation, the sensor is deployed at any one or more of the following positions of the traveling device: a traveling mechanism, a front axle, a rear axle, and a center position of the traveling device.
[0027] A second aspect of the present application provides a parking device for a traveling device, comprising: an acquisition module, used to acquire motion data of the traveling device at multiple moments through a sensor when the traveling device is traveling toward a parking obstacle, the parking obstacle being used to block the traveling of the traveling device; a processing module, used to determine the postures of the traveling device at multiple moments respectively based on the motion data; and a braking module, used to brake the traveling device in response to an obstacle run over by the traveling device satisfying a preset condition; wherein the preset condition includes that the slope angle of the obstacle run over by the traveling device is greater than a preset angle value or the slope height of the obstacle is greater than a preset height value.
[0028] In a possible implementation, the acquisition module is further used to acquire point cloud data of the parking obstacle;
[0029] The processing module is also used to determine the slope angle prediction value and slope height prediction value of the parking obstacle based on the point cloud data. The preset angle value is determined based on the slope angle prediction value, and the preset height value is determined based on the slope height prediction value.
[0030] In one possible implementation, the postures at multiple moments include a first displacement of a traveling mechanism of the traveling device in a target direction at a first moment, and a second displacement of the traveling mechanism in the target direction at a second moment, wherein the target direction is a direction perpendicular to the earth, and the traveling mechanism is used to drive the traveling device to travel; the slope angle of the obstacle is determined based on the speed of the traveling device at the first moment, the first displacement, and the second displacement.
[0031] In one possible implementation, the slope height is the difference between a first undulation value of the ground on the side of the traveling mechanism that is close to the parking obstacle and a second undulation value of the ground on the side of the traveling mechanism that is far from the parking obstacle, and the first undulation value and the second undulation value are determined based on the posture of the traveling device at the same time.
[0032] In a possible implementation, the preset condition also includes that a difference between an expected acceleration and an actual acceleration of the traveling device at a second moment is greater than a preset difference, the expected acceleration is predicted based on motion data at a first moment and speed control information of the traveling device, the multiple moments include the first moment and the second moment, and the first moment is before the second moment, and the motion data at the multiple moments include the actual acceleration at the second moment.
[0033] In one possible implementation, the motion data at the first moment is used to determine the pitch angle and speed of the traveling device, and the speed control information includes the accelerator pedal opening and brake pedal opening of the traveling device; the expected acceleration is predicted based on the pitch angle, speed, accelerator pedal opening and brake pedal opening.
[0034] In a possible implementation, the acquisition module is further used to acquire point cloud data of the ground on which the driving device is driving;
[0035] The processing module is also used to determine the concavity value of the ground according to the point cloud data, the concavity value is used to indicate the concavity of the ground, and the preset difference is determined based on the concavity value.
[0036] In a possible implementation, the sensor includes an accelerometer and a gyroscope, and the motion data includes acceleration and angular velocity in multiple directions.
[0037] In a possible implementation, the sensor is deployed at any one or more of the following positions of the traveling device: a traveling mechanism, a front axle, a rear axle, and a center position of the traveling device.
[0038] In a possible implementation, the traveling device is a vehicle or a robot.
[0039] The third aspect of the present application provides a driving device, which may include a processor, the processor and a memory are coupled, the memory stores program instructions, and when the program instructions stored in the memory are executed by the processor, the method of the first aspect or any implementation of the first aspect is implemented. For the steps in each possible implementation of the first aspect executed by the processor, the details can be referred to the first aspect, and will not be repeated here.
[0040] The fourth aspect of the present application provides a computer-readable storage medium, in which a computer program is stored. When the computer-readable storage medium is run on a computer, the computer executes the method of the first aspect or any implementation manner of the first aspect.
[0041] A fifth aspect of the present application provides a circuit system, the circuit system includes a processing circuit, and the processing circuit is configured to execute the method of the above-mentioned first aspect or any implementation manner of the first aspect.
[0042] The sixth aspect of the present application provides a computer program product, which, when executed on a computer, enables the computer to execute the method of the first aspect or any implementation manner of the first aspect.
[0043] The seventh aspect of the present application provides a chip system, which includes a processor for supporting a server or a threshold value acquisition device to implement the functions involved in the above-mentioned first aspect or any implementation of the first aspect, for example, sending or processing the data and / or information involved in the above-mentioned method. In one possible design, the chip system also includes a memory, which is used to store program instructions and data necessary for the server or communication device. The chip system can be composed of chips, or it can include chips and other discrete devices.
[0044] The beneficial effects of the second to seventh aspects mentioned above can be referred to the introduction of the first aspect mentioned above, and will not be repeated here. BRIEF DESCRIPTION OF THE DRAWINGS
[0045] Figure 1A A schematic diagram of a mine car traveling in a mine provided in an embodiment of the present application;
[0046] Figure 1B A schematic diagram of an inspection robot for the power transmission industry provided in an embodiment of the present application;
[0047] Figure 2 A schematic diagram of the structure of a vehicle 100 provided in an embodiment of the present application;
[0048] Figure 3 A schematic diagram of the structure of a robot 300 provided in an embodiment of the present application;
[0049] Figure 4 A schematic diagram of a process flow of a method for docking a traveling device provided in an embodiment of the present application;
[0050] Figure 5 A schematic diagram of deploying an inertial sensor on a vehicle provided in an embodiment of the present application;
[0051] Figure 6 A schematic diagram of a vehicle posture change provided in an embodiment of the present application;
[0052] Figure 7 A schematic diagram of a longitudinal model provided in an embodiment of the present application;
[0053] Figure 8 A schematic structural diagram of a vertical model of a vehicle provided in an embodiment of the present application;
[0054] Fig. 9 A schematic diagram of calculating the slope angle of an obstacle encountered by a vehicle provided in an embodiment of the present application;
[0055] Fig.10 A schematic diagram of determining the slope height of an obstacle provided in an embodiment of the present application;
[0056] Fig.11A schematic diagram of determining a slope angle prediction value based on point cloud data of a parking obstacle provided in an embodiment of the present application;
[0057] Fig.12 A schematic diagram of a system architecture provided for an embodiment of the present application;
[0058] Fig.13 A schematic diagram of a process for a mine car to stop at a retaining wall provided in an embodiment of the present application;
[0059] Fig.14 A schematic diagram of a flow chart of a processor of a mine car performing calculations based on motion data provided in an embodiment of the present application;
[0060] Fig.15 A schematic diagram of a deployment position of a sensor on a vehicle provided in an embodiment of the present application;
[0061] Fig.16 A schematic diagram of another deployment position of a sensor on a vehicle provided in an embodiment of the present application;
[0062] Fig.17 A schematic diagram of the structure of a traveling device provided in an embodiment of the present application;
[0063] Fig.18 A schematic diagram of the structure of a traveling device provided in an embodiment of the present application;
[0064] Fig.19 A schematic diagram of the structure of a computer-readable storage medium provided in an embodiment of the present application. DETAILED DESCRIPTION
[0065] The embodiments of the present application will be described below in conjunction with the accompanying drawings. A person skilled in the art will appreciate that, with the development of technology and the emergence of new scenarios, the technical solutions provided in the embodiments of the present application are also applicable to similar technical problems.
[0066] The terms "first", "second", etc. in the specification and claims of the present application and the above-mentioned drawings are used to distinguish similar objects, and need not be used to describe a specific order or sequential order. It should be understood that the terms used in this way can be interchangeable under appropriate circumstances, which is only to describe the distinction mode adopted by the objects of the same attributes when describing in the embodiments of the present application. In addition, the terms "including" and "having" and any of their variations are intended to cover non-exclusive inclusions, so that the process, method, system, product or equipment comprising a series of units need not be limited to those units, but may include other units that are not clearly listed or inherent to these processes, methods, products or equipment.
[0067] To facilitate understanding, the technical terms involved in the embodiments of the present application are introduced below.
[0068] (1) Inertial sensor
[0069] An inertial sensor is a sensor, often referred to as an inertial measurement unit (IMU). Inertial sensors are mainly used to detect and measure acceleration, rotation, tilt, shock, vibration, and multi-degree-of-freedom motion, and are important components for solving navigation, orientation, and motion carrier control. The principle of inertial sensors is realized by the law of inertia, and they mainly include accelerometers and angular velocity meters (gyroscopes), which can measure the acceleration and angular velocity of an object in three directions in a three-dimensional coordinate system.
[0070] (2) Accelerometer
[0071] An accelerometer is an instrument that measures acceleration, also commonly known as a gravity sensor, and can sense acceleration in any direction. An accelerometer usually measures the force applied to a component in a certain axis to obtain the result, which is expressed as the magnitude and direction of the axial acceleration.
[0072] (3) Gyroscope
[0073] A gyroscope is an angular motion detection device used to measure the angular velocity of an object. The working principle of a gyroscope is that the rotation axis of a high-speed rotating object tends to be vertical to the external force that changes its direction. Moreover, when the rotating object is tilted horizontally, gravity will act in the direction of increasing the tilt, while the axis moves in the vertical direction, resulting in a shaking motion (precession motion). In simple terms, a gyroscope measures the angular velocity of an object by measuring its own rotation state.
[0074] (4) Accelerator pedal opening
[0075] The accelerator pedal opening refers to the opening of the accelerator pedal, which affects the acceleration of the vehicle. At the same vehicle speed, the larger the accelerator pedal opening, the greater the acceleration force and the faster the vehicle speed increases; the smaller the accelerator pedal opening, the smaller the acceleration force and the slower the vehicle speed increases.
[0076] Generally speaking, the accelerator pedal opening is also called the throttle opening, which refers to the throttle opening (the throttle opening is controlled by the accelerator pedal). The gasoline engine controls the fuel injection amount according to the throttle opening, thereby controlling the engine speed.
[0077] In addition, for an electric vehicle, the accelerator pedal opening degree may also refer to the opening degree of the pedal for controlling acceleration on the electric vehicle.
[0078] (5) Brake pedal opening
[0079] Brake pedal opening refers to the opening of the brake pedal (also called the brake pedal), which affects the vehicle's deceleration. At the same speed, the larger the brake pedal opening, the greater the braking force and the faster the vehicle's speed will decrease; the smaller the brake pedal opening, the smaller the braking force and the slower the vehicle's speed will decrease.
[0080] (6) Sports data
[0081] Motion data refers to the motion-related data measured by sensors during the motion of an object. Generally, motion data includes data such as the acceleration and angular velocity of the object in multiple directions.
[0082] (7) Movement status
[0083] In this embodiment, the motion state is used to indicate the motion of the traveling device relative to a certain reference system, including the speed, acceleration, direction and posture of the traveling device. Among them, since the posture of the traveling device changes when the traveling device is traveling on an uneven road surface, that is, a vertical displacement occurs relative to the ground, the motion state of the traveling device is also used to indicate the posture of the traveling device. For example, in the case where the traveling device is a vehicle, the rear wheels of the vehicle are rolling on a slope, and the front wheels of the vehicle are rolling on a flat ground, and the posture of the vehicle is a state where the rear wheels are lifted. In this way, the displacement of various parts of the vehicle in the vertical direction can be determined based on the posture of the vehicle.
[0084] (8) Point cloud data
[0085] Point cloud data refers to a set of vectors in a three-dimensional coordinate system, which can reflect the real situation of the surface or objects with high accuracy, such as road surface conditions, reflection characteristics of objects, etc. Generally speaking, point cloud data is obtained by emitting lasers to the objects to be scanned through a laser radar, and then receiving the lasers reflected by objects in the environment. The data obtained by the laser radar scanning the object is recorded in the form of points, each of which contains three-dimensional coordinates, and some may contain color information (RGB) or reflection intensity information (Intensity).
[0086] (9) LiDAR
[0087] LiDAR is a radar system that uses laser beams to detect the position, speed and other characteristic quantities of a target. The working principle of LiDAR is to transmit a detection signal (laser beam) to the target, and then compare and appropriately process the received signal reflected from the target (target echo) with the transmitted signal to obtain relevant information about the target, such as target distance, direction, height, speed, attitude, and even shape parameters, thereby realizing the detection of targets such as roads or obstacles on the surface. Generally speaking, LiDAR can be composed of a laser transmitter, an optical receiver and an information processing system. The laser transmitter converts electrical pulses into light pulses and transmits them. The optical receiver then converts the light pulses reflected from the target into electrical pulses and sends them to the information processing system for processing.
[0088] At present, in order to solve the parking problem of autonomous vehicles, the relevant technology realizes the parking of autonomous vehicles by combining vehicle positioning technology and a map with parking points marked, that is, when the distance between the positioning of the autonomous vehicle and the parking point marked on the map is less than a certain value, the autonomous vehicle is considered to have completed the parking. The vehicle parking method of the relevant technology is heavily dependent on the positioning accuracy of the vehicle and the accuracy of the map. In actual application, it is often impossible to eliminate the positioning error and mapping error of the vehicle, so it is difficult to ensure that the autonomous vehicle is against the retaining wall.
[0089] For example, in the scenario of an open-pit mine, the environment of the open-pit mine is harsh and the positioning accuracy of the vehicle is low. In addition, the environment of the loading and dumping areas of the open-pit mine changes rapidly, and the accuracy of map construction is also relatively low. When both the positioning accuracy and the mapping accuracy are low, there will be a large error when the vehicle is docked by judging the distance between the vehicle's positioning and the docking point marked on the map, which makes it difficult for the vehicle to dock accurately on the retaining wall.
[0090] In view of this, an embodiment of the present application provides a method for docking a traveling device, which brakes the traveling device by utilizing the contact state information between the traveling device and the docking obstacle, thereby achieving precise abutment of the traveling device against the docking obstacle based on the contact state sensed by the traveling device body.
[0091] Specifically, when the traveling device is traveling toward the parking obstacle, the motion data of the traveling device at different times are obtained by the sensor, and the posture of the traveling device at different times is further determined based on the motion data, so as to determine the slope angle and slope height of the obstacle encountered by the traveling device, and further determine whether the traveling device has encountered the parking obstacle based on the slope angle and slope height of the obstacle encountered by the traveling device, so that the traveling device can be accurately placed against the parking obstacle based on the slope angle characteristics or slope height characteristics of the parking obstacle itself.
[0092] In this embodiment, the parking method of the driving device can be applied to the driving device, such as a vehicle or a wheeled robot. Specifically, the vehicle is, for example, a mining car driving in a mine, a passenger car driving on a road, a truck driving on a construction site, and a transporter driving in a warehouse, and these vehicles often need to be accurately parked in front of a parking obstacle. For example, please refer to Figure 1A , Figure 1A A schematic diagram of a mine car traveling in a mine provided in an embodiment of the present application.
[0093] In a mining scenario, the mine car needs to be parked accurately in front of the retaining wall, and the wheels of the mine car need to rest against the retaining wall. In a dam engineering scenario, the dam engineering vehicle often needs to be parked accurately in front of the retaining wall on the dam to ensure that the dam engineering vehicle can accurately unload the loaded stones into the water, thereby achieving water interception. For passenger cars, in open-air parking scenarios, passenger cars often need to be parked in front of the curb (i.e. the edge of the roadbed), and the wheels of the passenger car need to rest against the curb to ensure that the passenger car is parked in place; or, in a parking lot environment, the passenger car needs to be parked in the parking space of the parking lot, and the wheels of the passenger car need to rest against the car blocker in the parking space.
[0094] The robots are, for example, inspection robots in the power transmission industry (e.g., inspection robots inside substations), handling robots or inspection robots in the coal mining industry, handling robots or underground detection robots in the logistics industry, and these robots may also need to accurately stop in front of obstacles during work. For example, see Figure 1B , Figure 1B A schematic diagram of an inspection robot for the power transmission industry provided in an embodiment of the present application.
[0095] In order to facilitate the understanding of this solution, the embodiments of this application are combined with Figure 2 The structure of the vehicle provided in this application is introduced. Figure 2 , Figure 2 A schematic diagram of the structure of a vehicle 100 provided in an embodiment of the present application.
[0096] like Figure 2 As shown, in one embodiment, the vehicle 100 can be configured in a fully or partially automated driving mode. For example, the vehicle 100 can control itself while in the automated driving mode, and can determine the current state of the vehicle and its surroundings through human operation, determine the possible behavior of at least one other vehicle in the surrounding environment, and determine the confidence level corresponding to the possibility of the other vehicle performing the possible behavior, and control the vehicle 100 based on the determined information. When the vehicle 100 is in the automated driving mode, the vehicle 100 can be set to operate without human interaction.
[0097] The vehicle 100 may include various subsystems, such as a travel system 102, a sensor system 104, a control system 106, one or more peripheral devices 108, and a power supply 110, a computer system 101, and a user interface 116. Optionally, the vehicle 100 may include more or fewer subsystems, and each subsystem may include multiple components, such as each subsystem includes multiple electronic control units (ECUs). In addition, each subsystem and component of the vehicle 100 may be interconnected by wire or wirelessly.
[0098] The propulsion system 102 may include components that provide powered movement for the vehicle 100. In one embodiment, the propulsion system 102 may include an engine 118, an energy source 119, a transmission 120, and wheels / tires 121. The engine 118 may be an internal combustion engine, an electric motor, an air compression engine, or other types of engine combinations, such as a hybrid engine consisting of a gasoline engine and an electric motor, or a hybrid engine consisting of an internal combustion engine and an air compression engine. The engine 118 converts the energy source 119 into mechanical energy.
[0099] Examples of energy source 119 include gasoline, diesel, other petroleum-based fuels, propane, other compressed gas-based fuels, ethanol, solar panels, batteries, and other sources of electricity. Energy source 119 may also provide energy to other systems of vehicle 100.
[0100] The transmission 120 can transmit mechanical power from the engine 118 to the wheels 121. The transmission 120 may include a gearbox, a differential, and a drive shaft. In one embodiment, the transmission 120 may also include other devices, such as a clutch. Among them, the drive shaft may include one or more shafts that can be coupled to one or more wheels 121.
[0101] The sensor system 104 may include several sensors that sense information about the environment surrounding the vehicle 100. For example, the sensor system 104 may include a positioning system 122 (the positioning system may be a GPS system, or a Beidou system or other positioning systems), an inertial measurement unit (IMU) 124, a radar 126, a laser rangefinder 128, and a camera 130. The sensor system 104 may also include sensors of the internal systems of the monitored vehicle 100 (e.g., an in-vehicle air quality monitor, a fuel gauge, an oil temperature gauge, etc.). Sensor data from one or more of these sensors may be used to detect objects and their corresponding characteristics (position, shape, direction, speed, etc.). Such detection and recognition are key functions for the safe operation of the vehicle 100.
[0102] Positioning system 122 may be used to estimate the geographic location of vehicle 100. IMU 124 is used to sense position and orientation changes of vehicle 100 based on inertial acceleration. In one embodiment, IMU 124 may be a combination of an accelerometer and a gyroscope.
[0103] Radar 126 may utilize radio signals to sense objects within the surrounding environment of vehicle 100. In some embodiments, in addition to sensing objects, radar 126 may also be used to sense the speed and / or heading of an object.
[0104] The laser rangefinder 128 may utilize laser light to sense objects in the environment in which the vehicle 100 is located. In some embodiments, the laser rangefinder 128 may include one or more laser sources, a laser scanner, and one or more processing modules, among other system components.
[0105] The camera 130 may be used to capture multiple images of the surrounding environment of the vehicle 100. The camera 130 may be a still camera or a video camera.
[0106] The control system 106 controls the operation of the vehicle 100 and its components. The control system 106 may include various elements, including a steering system 132 , a throttle 134 , a brake unit 136 , a computer vision system 140 , a path control system 142 , and an obstacle avoidance system 144 .
[0107] The steering system 132 is operable to adjust the forward direction of the vehicle 100. For example, in one embodiment, it may be a steering wheel system.
[0108] The throttle 134 is used to control the operating speed of the engine 118 and, in turn, the speed of the vehicle 100 .
[0109] The brake unit 136 is used to control the deceleration of the vehicle 100. The brake unit 136 can use friction to slow down the wheel 121. In other embodiments, the brake unit 136 can convert the kinetic energy of the wheel 121 into electric current. The brake unit 136 can also take other forms to slow down the rotation speed of the wheel 121 to control the speed of the vehicle 100.
[0110] The computer vision system 140 can be operated to process and analyze the images captured by the camera 130 in order to identify objects and / or features in the environment surrounding the vehicle 100. The objects and / or features may include traffic signs, road boundaries, and obstacles. The computer vision system 140 may use object recognition algorithms, Structure from Motion (SFM) algorithms, video tracking, and other computer vision techniques. In some embodiments, the computer vision system 140 may be used to map the environment, track objects, estimate the speed of objects, and the like.
[0111] The route control system 142 is used to determine the driving route of the vehicle 100. In some embodiments, the route control system 142 may combine data from the GPS 122 and one or more predetermined maps to determine the driving route for the vehicle 100.
[0112] The obstacle avoidance system 144 is used to identify, evaluate, and avoid or otherwise negotiate potential obstacles in the environment of the vehicle 100 .
[0113] Of course, in one example, the control system 106 may include additional or alternative components other than those shown and described, or may also reduce some of the components shown above.
[0114] The vehicle 100 interacts with external sensors, other vehicles, other computer systems, or users through peripherals 108. The peripherals 108 may include a wireless communication system 146, an onboard computer 148, a microphone 150, and / or a speaker 152.
[0115] In some embodiments, the peripheral device 108 provides a means for the user of the vehicle 100 to interact with the user interface 116. For example, the onboard computer 148 can provide information to the user of the vehicle 100. The user interface 116 can also operate the onboard computer 148 to receive input from the user. The onboard computer 148 can be operated via a touch screen. In other cases, the peripheral device 108 can provide a means for the vehicle 100 to communicate with other devices located in the vehicle. For example, the microphone 150 can receive audio (e.g., voice commands or other audio input) from the user of the vehicle 100. Similarly, the speaker 152 can output audio to the user of the vehicle 100.
[0116] The wireless communication system 146 can communicate wirelessly with one or more devices directly or via a communication network. For example, the wireless communication system 146 can use 3G cellular communication, such as CDMA, EVDO, GSM / GPRS, or 4G cellular communication, such as LTE. Or 5G cellular communication. The wireless communication system 146 can communicate with a wireless local area network (WLAN) using WiFi. In some embodiments, the wireless communication system 146 can communicate directly with the device using an infrared link, Bluetooth, or ZigBee. Other wireless protocols, such as various vehicle communication systems, for example, the wireless communication system 146 may include one or more dedicated short range communications (DSRC) devices, which may include public and / or private data communications between vehicles and / or roadside stations.
[0117] The power source 110 can provide power to various components of the vehicle 100. In one embodiment, the power source 110 can be a rechargeable lithium-ion or lead-acid battery. One or more battery packs of such batteries can be configured as a power source to provide power to various components of the vehicle 100. In some embodiments, the power source 110 and the energy source 119 can be implemented together, such as in some all-electric vehicles.
[0118] Some or all functions of the vehicle 100 are controlled by a computer system 101. The computer system 101 may include at least one processor 113 that executes instructions 115 stored in a non-transitory computer-readable medium such as a data storage device 114. The computer system 101 may also be a plurality of computing devices that control individual components or subsystems of the vehicle 100 in a distributed manner.
[0119] Processor 113 may be any conventional processor, such as a commercially available CPU. Alternatively, the processor may be a dedicated device such as an ASIC or other hardware-based processor. Figure 2 The processor, memory, and other elements of the computer 110 are functionally illustrated as being in the same block, but one of ordinary skill in the art will appreciate that the processor, computer, or memory may actually include multiple processors, computers, or memories that may or may not be stored within the same physical housing.
[0120] For example, the memory may be a hard drive or other storage medium located in a housing different from the computer 110. Thus, references to a processor or computer will be understood to include references to a collection of processors or computers or memories that may or may not operate in parallel. Rather than using a single processor to perform the steps described herein, some components, such as the steering assembly and the speed reduction assembly, may each have their own processor that performs only calculations related to the functions specific to the component.
[0121] In various aspects described herein, the processor may be located remote from the vehicle and in wireless communication with the vehicle. In other aspects, some of the processes described herein are performed on a processor disposed within the vehicle and others are performed by a remote processor, including taking the necessary steps to perform a single maneuver.
[0122] In some embodiments, the memory 114 may contain instructions 115 (e.g., program logic) that may be executed by the processor to perform various functions of the vehicle 100, including those described above. The data storage 114 may also contain additional instructions, including instructions to send data to, receive data from, interact with, and / or control one or more of the propulsion system 102, the sensor system 104, the control system 106, and the peripherals 108.
[0123] In addition to instructions 115, memory 114 may also store data such as road maps, route information, the vehicle's location, direction, speed, and other such vehicle data, and other information. Such information may be used by vehicle 100 and computer system 101 during operation of vehicle 100 in autonomous, semi-autonomous, and / or manual modes.
[0124] The user interface 116 is used to provide information to or receive information from a user of the vehicle 100. Optionally, the user interface 116 may include one or more input / output devices within the set of peripherals 108, such as a wireless communication system 146, a vehicle computer 148, a microphone 150, and a speaker 152.
[0125] Computer system 101 may control functions of vehicle 100 based on input received from various subsystems (e.g., travel system 102, sensor system 104, and control system 106) and from user interface 116. For example, computer system 101 may utilize input from control system 106 in order to control steering unit 132 to avoid obstacles detected by sensor system 104 and obstacle avoidance system 144. In some embodiments, computer system 101 may be operable to provide control over many aspects of vehicle 100 and its subsystems.
[0126] Alternatively, one or more of the above-mentioned components may be installed or associated separately from the vehicle 100. For example, the memory 114 may exist partially or completely separately from the vehicle 100. The above-mentioned components may be communicatively coupled together in a wired and / or wireless manner.
[0127] Optionally, the above components are only examples. In actual applications, the components in the above modules may be added or deleted according to actual needs. Figure 2 It should not be understood as limiting the embodiments of the present application.
[0128] An autonomous vehicle traveling on a road, such as vehicle 100 above, can identify objects in its surroundings to determine adjustments to the current speed. Objects can be other vehicles, traffic control devices, or other types of objects. In some examples, each identified object can be considered independently, and based on the object's respective characteristics, such as its current speed, acceleration, spacing from the vehicle, etc., can be used to determine the speed to be adjusted by the autonomous vehicle.
[0129] Optionally, the vehicle 100 or a computing device associated with the vehicle 100 (e.g., the computer system 101, the computer vision system 140, the memory 114 of FIG. 1) can predict the behavior of the identified objects based on the characteristics of the identified objects and the state of the surrounding environment (e.g., traffic, rain, ice on the road, etc.). Optionally, each of the identified objects depends on the behavior of each other, so all the identified objects can also be considered together to predict the behavior of a single identified object. The vehicle 100 can adjust its speed based on the predicted behavior of the identified objects.
[0130] In other words, the autonomous vehicle can determine what stable state the vehicle will need to adjust to (e.g., accelerate, decelerate, or stop) based on the predicted behavior of the object. In this process, other factors may also be considered to determine the speed of the vehicle 100, such as the lateral position of the vehicle 100 in the road it is traveling on, the curvature of the road, the proximity of static and dynamic objects, etc.
[0131] In addition to providing instructions to adjust the speed of the autonomous vehicle, the computing device may also provide instructions to modify the steering angle of vehicle 100 so that the autonomous vehicle follows a given trajectory and / or maintains a safe lateral and longitudinal distance from objects near the autonomous vehicle (e.g., cars in adjacent lanes on the road).
[0132] The vehicle 100 may be a car, a truck, a motorcycle, a bus, an entertainment vehicle, an amusement park vehicle, construction equipment, a tram, a golf cart, etc., and the embodiments of the present application do not make any particular limitation.
[0133] Figure 2The vehicle 100 shown may be equipped with an advanced driver assistance system for realizing the automatic driving function, and the advanced driver assistance system contains a large number of parameters that need to be calibrated. Specifically, the calibration implementation process of the vehicle's advanced driver assistance system mainly includes the calibration of the parameters of each subsystem in the execution layer, the perception layer and the functional layer. The execution layer involves the calibration of the power system, the braking system, the steering system, the four-wheel alignment parameters and the suspension system. The perception layer involves the calibration of GNSS and INS (Initial Navigation System, inertial navigation system), camera calibration, lidar calibration, millimeter wave radar calibration, ultrasonic radar calibration, etc. GNSS includes GPS (Global Position System, Global Positioning System), GLONASS (Global Navigation Satellite System, GLONASS satellite navigation system), Galileo (Galileo navigation satellite system, Galileo satellite navigation system), BDS (Beidou satellite navigation system, Beidou satellite navigation system). The functional layer involves vehicle longitudinal control module calibration, lateral control module calibration, ADAS basic function calibration, ADAS driving style calibration, etc. Longitudinal control is mainly speed control, which controls the vehicle speed by controlling the brakes, throttle, gear, etc. Lateral control is mainly to control the heading, by changing the steering wheel torque or angle, etc., so that the vehicle can drive in the desired direction. ADAS basic functions include, for example, ACC (Adaptive Cruising System), LCC (Lane Center Control), ALC (Auto Lane Change), etc. Driving style refers to the way of driving or the habitual driving method, which includes the choice of driving speed, the choice of driving distance, etc. Driving styles include, for example, aggressive, stable, cautious, etc.
[0134] See also Figure 3 , Figure 3 Schematic diagram of the structure of a robot 300 provided in an embodiment of the present application. Figure 3 As shown, the robot 300 may include an image acquisition module 301 , a sensor 302 , a processor 303 , a memory 304 , and a communication module 305 .
[0135] The processor 303 may include one or more processing units, for example, the processor 303 may include an application processor (AP), a modem processor, a graphics processor (GPU), an image signal processor (ISP), a controller, a memory, a video codec, a digital signal processor (DSP), a baseband processor, and / or a neural-network processing unit (NPU), etc. Different processing units may be independent devices or integrated into one or more processors.
[0136] The controller may be the nerve center and command center of the robot 300. The controller may generate an operation control signal according to the instruction operation code and the timing signal to complete the control of fetching and executing instructions.
[0137] The processor 303 may also be provided with a memory for storing instructions and data. In some embodiments, the memory in the processor is a cache memory. The memory may store instructions or data that the processor has just used or circulated. If the processor needs to use the instruction or data again, it may be directly called from the memory. This avoids repeated access, reduces the waiting time of the processor 303, and thus improves the efficiency of the system.
[0138] In some embodiments, the processor 303 may include one or more interfaces. The interface may include an inter-integrated circuit (I2C) interface, a universal asynchronous receiver / transmitter (UART) interface, a mobile industry processor interface (MIPI), a general-purpose input / output (GPIO) interface, a subscriber identity module (SIM) interface, and / or a universal serial bus (USB) interface, etc.
[0139] The interface is a bidirectional synchronous serial bus, including a serial data line (SDA) and a serial clock line (SCL). In some embodiments, the processor may include multiple I2C buses. The processor may be coupled to sensors, cameras, etc. through different I2C bus interfaces.
[0140] The UART interface is a universal serial data bus for asynchronous communication. The bus can be a bidirectional communication bus. It converts the data to be transmitted between serial communication and parallel communication. In some embodiments, the UART interface is generally used to connect the processor 303 and the communication module 305. For example, the processor 303 communicates with the Bluetooth module in the wireless communication module through the UART interface to implement the Bluetooth function.
[0141] The IPI interface can be used to connect the processor to peripheral devices such as cameras. The MIPI interface includes a camera serial interface (CSI), etc. In some embodiments, the processor and the camera communicate through the CSI interface to realize the shooting function of the robot 300.
[0142] The GPIO interface can be configured by software. The GPIO interface can be configured as a control signal or as a data signal. In some embodiments, the GPIO interface can be used to connect the processor to a camera, a wireless communication module, a sensor module, etc. The GPIO interface can also be configured as an I2C interface, a UART interface, a MIPI interface, etc.
[0143] The USB interface is an interface that complies with the USB standard specification, and specifically can be a Mini USB interface, a Micro USB interface, a USB Type C interface, etc. The USB interface can be used to connect a charger to charge the robot 300, and can also be used to transmit data between the robot 300 and peripheral devices. The interface can also be used to connect other robots 300, etc.
[0144] The image acquisition module 301 can collect image information around the robot 300, for example, taking photos or videos, etc. The robot 300 can implement the image acquisition function through an ISP, a camera, a video codec, a GPU, and an application processor.
[0145] ISP is used to process the data fed back by the camera. For example, when taking a photo, the shutter is opened, and the light is transmitted to the camera sensor through the lens. The light signal is converted into an electrical signal, and the camera sensor transmits the electrical signal to the ISP for processing and converts it into an image visible to the naked eye. ISP can also perform algorithm optimization on the noise and brightness of the image. ISP can also optimize the exposure, color temperature and other parameters of the shooting scene. In some embodiments, ISP can be set in the camera.
[0146] The camera is used to capture still images or videos. The object generates an optical image through the lens and projects it onto the photosensitive element. The photosensitive element can be a charge coupled device (CCD) or a complementary metal-oxide-semiconductor (CMOS) phototransistor. The photosensitive element converts the light signal into an electrical signal, and then passes the electrical signal to the ISP to be converted into a digital image signal. The ISP outputs the digital image signal to the DSP for processing. The DSP converts the digital image signal into an image signal in a standard RGB, YUV or other format. In some embodiments, the robot 300 may include 1 or N cameras, where N is a positive integer greater than 1.
[0147] The sensor 302 can obtain information such as the moving speed, moving direction, and distance between the robot 300 and surrounding objects. Exemplarily, the sensor 302 can include a gyroscope sensor, a speed sensor, an acceleration sensor, a distance sensor, and the like.
[0148] Among them, the gyroscope sensor can be used to determine the motion posture of the robot 300. In some embodiments, the angular velocity of the robot 300 around three axes (i.e., x, y, and z axes) can be determined by the gyroscope sensor. The gyroscope sensor can be used for anti-shake shooting. Exemplarily, when the robot 300 is performing image acquisition, the gyroscope sensor detects the angle of the robot 300 shaking, calculates the distance that the lens module needs to compensate based on the angle, and allows the lens to offset the shaking of the robot 300 through reverse motion to achieve anti-shake. The gyroscope sensor can also be used for navigation or calculating the unevenness of the road surface, judging whether the robot 300 is trapped, and other scenarios.
[0149] The speed sensor is used to measure the moving speed. In some embodiments, the robot 300 measures the moving speed at the current moment through the speed sensor, and can be combined with the distance sensor to predict the environment where the robot 300 will be at the next moment based on the environment where the robot 300 is at the current moment.
[0150] The acceleration sensor can detect the magnitude of acceleration in various directions (generally three axes) of the robot 300. When the robot 300 is stationary, the magnitude and direction of gravity can be detected.
[0151] The distance sensor is used to measure the distance. The robot 300 can measure the distance by infrared or laser. In some embodiments, when shooting a scene, the robot 300 can use the distance sensor to measure the distance to achieve fast focusing.
[0152] The memory 304 may include an external memory and an internal memory. The external memory interface may be used to connect an external memory card, such as a Micro SD card, to expand the storage capacity of the robot 300. The external memory card communicates with the processor via the external memory interface to implement a data storage function. For example, a sample information file is stored in the external memory card.
[0153] The internal memory can be used to store computer executable program codes, which include instructions. The processor executes various functional applications and data processing of the robot 300 by running the instructions stored in the internal memory. The internal memory may include a program storage area and a data storage area. Among them, the program storage area can store an operating system and an application required for at least one function. The data storage area can store data created during the use of the robot 300. In addition, the internal memory may include a high-speed random access memory, and may also include a non-volatile memory, such as at least one disk storage device, a flash memory device, a universal flash storage (UFS), etc.
[0154] The wireless communication function of the robot 300 can be implemented through the communication module 305. For example, through the communication module 305, the robot 300 can communicate with other devices, such as communication with a server. As an example, the communication module 305 may include an antenna 1, an antenna 2, a mobile communication module, a wireless communication module, a modem processor, a baseband processor, and the like.
[0155] Antenna 1 and antenna 2 are used to transmit and receive electromagnetic wave signals. Each antenna in robot 300 can be used to cover a single or multiple communication frequency bands. Different antennas can also be reused to improve the utilization of antennas. For example, antenna 1 can be reused as a diversity antenna for a wireless local area network. In some other embodiments, the antenna can be used in combination with a tuning switch.
[0156] The mobile communication module can provide solutions for wireless communications including 2G / 3G / 4G / 5G applied to the robot 300. The mobile communication module may include at least one filter, a switch, a power amplifier, a low noise amplifier (LNA), etc. The mobile communication module can receive electromagnetic waves from the antenna 1, and filter, amplify, and process the received electromagnetic waves, and transmit them to the modulation and demodulation processor for demodulation. The mobile communication module can also amplify the signal modulated by the modulation and demodulation processor, and convert it into electromagnetic waves for radiation through the antenna 1. In some embodiments, at least some of the functional modules of the mobile communication module may be arranged in the processor. In some embodiments, at least some of the functional modules of the mobile communication module may be arranged in the same device as at least some of the modules of the processor.
[0157] The wireless communication module can provide wireless communication solutions including wireless local area networks (WLAN) (such as wireless fidelity (Wi-Fi) networks), Bluetooth (BT), global navigation satellite system (GNSS), infrared technology (IR), etc., which are applied to the robot 300. The wireless communication module can be one or more devices integrating at least one communication processing module. The wireless communication module receives electromagnetic waves via antenna 2, modulates and filters the electromagnetic wave signals, and sends the processed signals to the processor. The wireless communication module can also receive the signal to be sent from the processor, modulate the frequency of the signal, amplify it, and convert it into electromagnetic waves for radiation through antenna 2.
[0158] In some embodiments, the antenna 1 of the robot 300 is coupled to the mobile communication module, and the antenna 2 is coupled to the wireless communication module, so that the robot 300 can communicate with the server and other devices through wireless communication technology. The wireless communication technology may include global system for mobile communications (GSM), general packet radio service (GPRS), code division multiple access (CDMA), wideband code division multiple access (WCDMA), time-division code division multiple access (TD-SCDMA), long term evolution (LTE) technology, etc. GNSS may include global positioning system (GPS), global navigation satellite system (GLONASS), Beidou navigation satellite system (BDS), quasi-zenith satellite system (QZSS) and / or satellite based augmentation system (SBAS).
[0159] It is understood that the structure shown in this embodiment does not constitute a specific limitation on the robot 300. In other embodiments, the robot 300 may include more or fewer components than shown in the figure, or combine some components, or separate some components, or arrange the components differently. The components shown in the figure may be implemented in hardware, software, or a combination of software and hardware.
[0160] The above describes the scenarios and devices to which the method provided in this embodiment is applied. The following describes in detail the execution process of the method provided in this embodiment. Figure 4 , Figure 4 A schematic diagram of a process flow of a method for docking a traveling device provided in an embodiment of the present application. Figure 4 As shown, the parking method of the driving device includes the following steps 401-403.
[0161] Step 401, when the traveling device is traveling toward a parking obstacle, motion data of the traveling device at multiple moments are acquired through a sensor, and the parking obstacle is used to block the traveling of the traveling device.
[0162] In this embodiment, the traveling device may be a vehicle or a robot, and the traveling device needs to be parked in front of the parking obstacle, and ensure that the traveling mechanism of the traveling device is against the parking obstacle. Among them, the traveling mechanism of the traveling device is a mechanism used to drive the traveling device to travel, that is, the traveling mechanism is the part of the traveling device that contacts the ground, such as wheels or tracks. In addition, the traveling device may move forward toward the parking obstacle or move backward toward the parking obstacle, and this embodiment does not limit the driving direction of the traveling device. When the traveling device moves forward toward the parking obstacle, one side of the traveling mechanism of the traveling device at the front end (such as the front wheel or the track at the front end) needs to be against the parking obstacle; when the traveling device moves backward toward the parking obstacle, one side of the traveling mechanism of the traveling device at the rear end (such as the rear wheel or the track at the rear end) needs to be against the parking obstacle.
[0163] In different scenarios, the parking obstacle can be different objects. For example, in an open-pit mine scenario, the parking obstacle can be a retaining wall, which is usually a slope made of piled soil. For another example, in a passenger car parking scenario, the parking obstacle can be a curb or a car blocker in a parking space.
[0164] Optionally, the sensor for acquiring motion data may be deployed on the traveling device. Furthermore, the sensor may specifically be an inertial sensor, including an accelerometer and a gyroscope. Among them, the accelerometer is used to measure the acceleration of the traveling device in multiple directions (for example, the x-axis, y-axis, and z-axis); the gyroscope is used to measure the angular velocity of the traveling device in multiple directions. In other words, the motion data acquired by the sensor includes acceleration and angular velocity in multiple directions. In addition, the sensor for acquiring motion data may also include a global positioning system (GPS) or a real-time kinematics (RTK) system, wherein both GPS and RTK can be used to measure the displacement of the traveling device in the vertical direction and the pitch angle of the traveling device.
[0165] For example, see Figure 5 , Figure 5 A schematic diagram of deploying an inertial sensor on a vehicle provided in an embodiment of the present application. Figure 5As shown, assuming that the driving device is a vehicle, an inertial sensor is deployed on the vehicle, and a coordinate system is established, which includes an x-axis, a y-axis, and a z-axis. Among them, the coordinate system of the inertial sensor coincides with the body coordinate system, the x-axis points to the direction of the vehicle's forward movement (i.e., the longitudinal direction), the y-axis points to the lateral direction of the body, and the z-axis is the vertical direction. During the vehicle's driving, the inertial sensor can measure the acceleration of the vehicle on the three axes of the body coordinate system, as well as the angular velocity of the vehicle relative to the earth coordinate system.
[0166] During the driving process of the driving device, the sensor can measure the motion data of the driving device once at a certain interval, that is, the sensor can measure the motion data of the driving device at multiple different moments. In this embodiment, the multiple moments may include a first moment and a second moment, and the first moment and the second moment may be two adjacent moments among the multiple moments when the sensor measures the motion data, and the first moment is the moment before the second moment.
[0167] Step 402: Determine the posture of the traveling device at multiple moments based on the motion data.
[0168] In this embodiment, based on the motion data at multiple moments, the motion state of the traveling device at each moment can be determined. Wherein, the motion state is used to indicate the motion of the traveling device relative to a certain reference system, including information such as the motion speed, acceleration, motion direction and posture of the traveling device. Since the motion data of the traveling device at multiple moments indicate the acceleration and angular velocity of the traveling device in multiple directions, based on these motion data and the length of time between adjacent moments, the motion state of the traveling device at each moment can be determined, that is, the first motion state of the traveling device at the first moment and the second motion state at the second moment are obtained. Wherein, the first motion state and the second motion state both include the motion speed, acceleration, motion direction and posture of the traveling device. Since the motion state at each moment includes the posture of the traveling device, this embodiment can obtain the posture of the traveling device at each moment at multiple moments.
[0169] Specifically, the posture of the traveling device may refer to the positions of different parts of the traveling device relative to the same plane (e.g., the ground plane). When the traveling device is traveling on a flat road, the posture of the traveling device does not change; when the traveling device is traveling on an uneven road, the posture of the traveling device will change. Simply put, when the road surface is uneven, the posture of the traveling device will also change with the convexity or concavity of the road surface. For example, when the traveling device is a vehicle, the body of the vehicle will lift up when the wheels on the vehicle roll over a raised obstacle, and the body of the vehicle will drop when the wheels on the vehicle drive into a pit. Therefore, the posture of the traveling device may specifically include information such as the displacement of various parts of the traveling device relative to the ground plane and the pitch angle of the traveling device as a whole.
[0170] See also Figure 6 , Figure 6 A schematic diagram of a vehicle posture change provided in an embodiment of the present application. Figure 6 As shown, when the rear wheel of the vehicle encounters a raised parking obstacle during driving, it will be displaced in the z-axis direction, causing the entire vehicle body to lift up, and other positions in the vehicle body will also be displaced in the z-axis direction. Specifically, the front wheel of the vehicle is displaced in the z-axis direction, and the inertial navigation sensor deployed on the vehicle will also be displaced in the z-axis direction, and the displacement of the two is related to the position of the two. Therefore, after measuring the rotational angular velocity and translational acceleration of the vehicle at each moment based on the inertial sensor, the position of the inertial sensor and the position of each wheel in the vehicle can be combined to determine the displacement of each wheel in the vehicle, that is, to obtain the posture information of the vehicle.
[0171] Step 403, in response to the obstacle encountered by the traveling device satisfying a preset condition, braking the traveling device.
[0172] It is understandable that, in the process of the traveling device traveling toward the parking obstacle, before the traveling device contacts the parking obstacle, the traveling device is mainly affected by the friction of the road surface, so the motion state of the traveling device does not change much at different times. After the traveling device contacts the parking obstacle, the parking obstacle will exert a force perpendicular to the surface of the parking obstacle on the traveling device, causing the motion state of the traveling device to change dramatically. Therefore, based on the change in the motion state of the traveling device, the undulation of the ground can be inverted, that is, the obstacle that the traveling device has run over can be determined, and thus whether the traveling device has been in contact with the parking obstacle can be determined by determining whether the obstacle that the traveling device has run over is a parking obstacle.
[0173] In this embodiment, the preset condition may include one or more conditions, and as long as the obstacle encountered by the travel device meets any one of the preset conditions, the braking of the travel device may be triggered. The conditions that may be included in the preset condition will be specifically introduced below.
[0174] Condition 1: The difference between the expected acceleration and the actual acceleration of the traveling device at a certain moment is greater than a preset difference.
[0175] The expected acceleration of the traveling device at a certain moment can be determined based on the motion state at a moment before the moment, and the actual acceleration of the traveling device at a certain moment can be measured by a sensor. In addition, the expected acceleration and the actual acceleration both refer to the acceleration of the traveling device in the longitudinal direction (i.e., the forward direction or backward direction parallel to the ground plane).
[0176] In addition, the size of the preset difference can be determined according to the actual scenario, and this embodiment does not specifically limit this. For example, in the scenario of an open-pit mine, the preset difference can be set to 0.5 m / s 2 .
[0177] For example, when a first motion state of the traveling device at a first moment and a second motion state at a second moment are obtained, if the difference between the expected acceleration and the actual acceleration of the traveling device at the second moment is greater than a preset difference, the braking of the traveling device may be triggered. The expected acceleration of the traveling device at the second moment is predicted based on the first motion state and the speed control information of the traveling device, and the second motion state includes the actual acceleration.
[0178] In general, when the traveling device does not contact the parking obstacle, the movement of the traveling device will be in line with expectations, that is, the difference between the actual acceleration of the traveling device and the expected acceleration is not much; however, when the traveling device contacts the parking obstacle, since the parking obstacle is not considered in the process of calculating the pre-fetched acceleration, the movement of the traveling device will not be in line with expectations under the force of the parking obstacle, that is, the difference between the actual acceleration of the traveling device and the expected acceleration will be relatively large.
[0179] Optionally, the first motion state includes the pitch angle and speed of the traveling device. The pitch angle refers to the angle at which the traveling device tilts forward and backward. Taking the traveling device as a vehicle as an example, when the front wheel or rear wheel of the vehicle rolls over a raised obstacle, the vehicle will tilt, and the pitch angle is used to indicate the tilt angle of the vehicle. The speed control information of the traveling device includes the accelerator pedal opening and the brake pedal opening of the traveling device. The expected acceleration can be predicted by inputting the pitch angle, speed, accelerator pedal opening and brake pedal opening into the longitudinal model. Since the speed of the traveling device usually refers to the speed along the direction of the traveling device itself, such as the speed along the direction from the front to the rear of the vehicle. Therefore, when the traveling device has a certain pitch angle, the speed of the traveling device is actually divided into two speed components in the longitudinal direction and the vertical direction. In order to determine the acceleration of the traveling device in the longitudinal direction, it is also necessary to obtain the pitch angle of the traveling device. Among them, the pitch angle and speed of the traveling device can be calculated based on the motion data of the traveling device (i.e., acceleration and angular velocity). For details, reference can be made to the existing related technologies, which will not be repeated here.
[0180] It is understandable that when the traveling device is traveling on a flat surface, the friction force to which the traveling device is subjected is basically constant, and therefore the only factors that can change the acceleration of the traveling device are the acceleration force and the braking force of the traveling device itself. In addition, when the traveling device has different speeds, the same accelerator pedal opening and brake pedal opening have different effects on the acceleration of the traveling device. Therefore, if the pitch angle and speed of the traveling device are known, and the accelerator pedal opening and brake pedal opening used to control the speed of the traveling device are also known, then the longitudinal acceleration of the traveling device at the next moment (i.e., the acceleration of the traveling device in the forward direction or the backward direction) can be calculated.
[0181] The longitudinal model used to predict the expected acceleration can be a neural network model or a curve fitting model based on the least squares method. The input of the longitudinal model is the pitch angle, speed, accelerator pedal opening and brake pedal opening, and the output is the expected acceleration. That is, given the pitch angle, speed, accelerator pedal opening and brake pedal opening of the driving device at the current moment, the expected acceleration of the driving device at the next moment can be calculated through the longitudinal model.
[0182] See also Figure 7 , Figure 7 A schematic diagram of a longitudinal model provided in an embodiment of the present application. Figure 7 As shown, taking the vehicle as an example, a longitudinal model H may be pre-deployed on the vehicle, and the input of the longitudinal model H is the throttle opening th at time i. i (i.e. the accelerator pedal opening mentioned above), brake opening br i(i.e. the above-mentioned brake pedal opening), vehicle pitch angle β i and vehicle speed v i , the output of the longitudinal model H is the longitudinal acceleration a at time i+1 i+1 The parameters of model H are obtained from the data of the normal driving process of the vehicle. The curve fitting can be performed using neural network fitting or least squares method. The longitudinal model can give the relationship between the longitudinal acceleration of the vehicle movement under normal driving conditions and the throttle and brake commands, that is, model H is a function a i+1 =H(th i ,br i ,β i ,v i ).
[0183] The longitudinal acceleration at the i+1th moment measured by the accelerometer equipped on the vehicle is When the longitudinal acceleration is measured and the acceleration a output by the longitudinal model i+1 The difference is greater than the preset difference δ a When It is considered that the vehicle is in contact with the parking obstacle, that is, the vehicle has accurately rested on the parking obstacle.
[0184] In this solution, the expected acceleration at the next moment is predicted based on the motion state at the previous moment, and the expected acceleration is compared with the actual acceleration in the motion state at the next moment to determine whether the driving device has already abutted against the parking obstacle, which can ensure that the driving device can accurately abut against the parking obstacle. When the driving device contacts the parking obstacle during driving, it will be affected by the resistance brought by the parking obstacle, causing the motion state of the driving device to change, that is, there will be a large difference between the actual acceleration of the driving device and the expected acceleration of the driving device. Therefore, based on the change in the motion state of the driving device, the change in the ground can be inverted, thereby accurately judging whether the driving device is in contact with the parking obstacle.
[0185] Condition 2: The slope angle of the obstacle encountered by the traveling device is greater than a preset angle value.
[0186] In most scenarios, the docking obstacle has a certain slope angle. For example, in an open-pit mine scenario, the retaining wall serving as a docking obstacle is usually a slope made of soil, and the slope angle of the retaining wall is usually greater than 30° (for example, between 30° and 40°). Therefore, when the slope angle of the obstacle rolled over by the traveling device is greater than the preset angle value, it can be considered that the traveling device has rolled over the docking obstacle, thereby braking the traveling device. Among them, the preset angle value can be determined according to the actual scenario, and this embodiment does not make specific limitations on this. For example, in an open-pit mine scenario, the slope angle of the docking obstacle is usually between 30° and 40°, so the preset angle value can be set to 20°, that is, to ensure that the preset angle value is slightly smaller than the actual slope angle of the docking obstacle.
[0187] That is to say, in this scheme, the slope angle of the obstacle encountered by the traveling device is determined based on the movement state of the traveling device, and whether the traveling device has encountered the parking obstacle is further determined based on the slope angle of the obstacle encountered by the traveling device. This enables the traveling device to accurately abut against the parking obstacle based on the slope angle characteristics of the parking obstacle itself, thereby ensuring that the parking obstacle can be accurately identified in different parking obstacle scenarios.
[0188] The slope angle of the obstacle rolled over by the traveling device is determined based on the first motion state and the second motion state. It is understandable that when the traveling device rolls over a parking obstacle with a certain slope, the posture of the traveling device will change, that is, the side rolling over the parking obstacle will tilt up. In addition, since the motion state of the traveling device includes the posture of the traveling device, the slope angle of the obstacle rolled over by the traveling device can be determined based on the motion state of the traveling device at different times, and then it can be determined whether the traveling device has accurately rested against the parking obstacle.
[0189] Specifically, the first motion state includes the speed of the traveling device at a first moment and the first displacement of the traveling mechanism of the traveling device in the target direction, and the second motion state includes the second displacement of the traveling mechanism in the target direction at a second moment. The target direction is a direction perpendicular to the earth, that is, Figure 5 The slope angle of the obstacle is determined based on the speed of the traveling device at the first moment, the first displacement of the traveling device in the vertical direction at the first moment, and the second displacement of the traveling device in the vertical direction at the second moment.
[0190] Among them, the displacement of the traveling device in the vertical direction is usually caused by the traveling device running over an obstacle. Moreover, the higher the obstacle the traveling device runs over, the greater the displacement of the traveling device in the vertical direction. When the structural model of the traveling device remains unchanged, the height of the obstacle the traveling device runs over can be calculated based on the displacement of the traveling device in the vertical direction. Therefore, when the displacement and speed of the traveling device in the vertical direction at different times are obtained, the height of the obstacle the traveling device runs over can be determined, and then based on the principle of finding the angles of a triangle, the slope angle of the obstacle the traveling device runs over can be found.
[0191] For ease of understanding, the following will take a vehicle as an example to explain in detail how to calculate the slope angle of an obstacle that the vehicle runs over.
[0192] For example, see Figure 8 , Figure 8 This is a schematic diagram of the structure of a vertical model of a vehicle provided in an embodiment of the present application. Figure 8 As shown, when the traveling device is a vehicle, the vertical model of the vehicle can be abstracted as follows Figure 8 The suspension and vehicle body model shown in (a) and Figure 8 The wheel model shown in (b) is based on Figure 8 The vertical model of the vehicle shown in FIG. 1 can obtain the dynamic equation of the interaction between the vehicle and the ground using the Newton-Euler principle. Based on the linearization of the dynamic equation near the vehicle equilibrium position, a formula is obtained, which can represent the undulation of the ground where the wheels are located [g f ,g m ,g r ] and vehicle status [z c ,φ,z f ,z m ,z r ] is a linear relationship between them. Among them, g f ,g m ,g r are the undulation values of the ground where the front wheels of the vehicle are located, the undulation values of the ground where the middle wheels of the vehicle are located, and the undulation values of the ground where the rear wheels of the vehicle are located; c is the displacement of the vehicle's center of mass along the z-axis, φ is the vehicle's pitch angle, z f ,z m ,z r It is the displacement of the front wheel center, middle wheel center and rear wheel center of the vehicle along the z-axis direction.
[0193] Specifically, based on the vehicle state, the Kalman filter is used to estimate the ground undulation, and the ground undulation (i.e., the convexity or concavity of the ground) can be obtained to obtain the above-mentioned dynamic equation of the interaction between the vehicle and the ground. Exemplarily, the dynamic equation of the interaction between the vehicle and the ground is shown in Formula 1.
[0194]
[0195] Among them, parameters A, B, C, and D are mass inertia parameters, which are provided by the manufacturer when the vehicle leaves the factory; Represents the first-order derivative of the vehicle state; Represents the second-order derivative of the vehicle state.
[0196] Let x = [z c ,φ,z f ,z m ,z r ], G=[g f ,g m ,g r ], Then Formula 1 can be expressed in the following linear form:
[0197]
[0198] Based on the prediction step of Kalman filtering, the motion state at the i-th moment can be predicted from the motion state at the i-1th moment, as shown in the following formula 3.
[0199]
[0200] Based on the Kalman filter update step, the actual motion state at the i-th moment is finally calculated:
[0201]
[0202] Where P is the Kalman gain, in is the measured value, is the predicted value, φ m is the measured value, is the predicted value.
[0203] See also Fig. 9 , Fig. 9 A schematic diagram of calculating the slope angle of an obstacle encountered by a vehicle provided in an embodiment of the present application. Fig. 9As shown in the figure, it is assumed that the vehicle is moving from left to right and is moving backward. At the i-1th moment, the rear wheel of the vehicle rolls over point A on the slope. The undulation value of point A on the slope is To represent; at the i-th moment, the rear wheel of the vehicle rolls over point B of the slope, and the undulation value of point B of the slope is expressed as It is represented by, and the sampling interval (i.e. the time interval between the i-th moment and the i-1-th moment) is Δt; the speed of the vehicle at the i-1-th moment is v i-1 Thus, the calculation formula of the slope angle of the obstacle (i.e., the slope) that the vehicle runs over is as follows:
[0204] As shown in formula 5.
[0205]
[0206] in, Indicates the slope angle of the obstacle that the vehicle runs over.
[0207] Condition 3: The slope height of the obstacle rolled over by the side of the traveling mechanism of the traveling device close to the parking obstacle is greater than a preset height value, and the slope height is calculated based on the first motion state and the second motion state.
[0208] In most scenarios, the docking obstacle has a certain slope height. For example, in an open-pit mine scenario, the retaining wall that serves as a docking obstacle is usually a slope made of soil, and the slope height of the retaining wall is usually greater than 0.5 meters (for example, between 0.5 meters and 0.8 meters). Therefore, when the slope height of the obstacle rolled over by the traveling device is greater than the preset height value, it can be considered that the traveling device has rolled over the docking obstacle, thereby braking the traveling device. Among them, the preset height value can be determined according to the actual scenario, and this embodiment does not make specific limitations on this. For example, in an open-pit mine scenario, the slope angle of the docking obstacle is usually between 0.5 meters and 0.8 meters, so the preset angle value can be set to 0.2 meters, that is, to ensure that the preset height value is slightly smaller than the actual height of the docking obstacle.
[0209] In this solution, the slope height of the obstacle encountered by the traveling device is determined based on the movement state of the traveling device, and whether the traveling device has encountered the parking obstacle is further determined based on the slope height of the obstacle encountered by the traveling device. This enables the traveling device to accurately abut against the parking obstacle based on the slope height characteristics of the parking obstacle itself, thereby ensuring that the parking obstacle can be accurately identified in different parking obstacle scenarios.
[0210] Wherein, when the traveling mechanism is a wheel, the side of the traveling mechanism of the traveling device that is close to the parking obstacle may refer to the wheel that is closer to the parking obstacle. For example, when the traveling device is moving backwards toward the parking obstacle, the side of the traveling mechanism of the traveling device that is close to the parking obstacle may refer to the rear wheel of the traveling device; when the traveling device is moving forward toward the parking obstacle, the side of the traveling mechanism of the traveling device that is close to the parking obstacle may refer to the front wheel of the traveling device. When the traveling mechanism is a track, the side of the traveling mechanism of the traveling device that is close to the parking obstacle may refer to the side of the track that is closer to the parking obstacle.
[0211] Specifically, the slope height of the obstacle that the side of the traveling mechanism that is close to the parking obstacle runs over is the difference between the first undulation value of the ground on which the side of the traveling mechanism that is close to the parking obstacle is running and the second undulation value of the ground on which the side of the traveling mechanism that is far from the parking obstacle is running. For example, when the traveling mechanism is a vehicle moving backwards toward the parking obstacle, the first undulation value refers to the undulation value of the ground on which the rear wheels of the vehicle are running, and the second undulation value refers to the undulation value of the ground on which the front wheels of the vehicle are running. In other words, the difference between the first undulation value and the second undulation value actually refers to the difference between the undulation values of the ground on which the front and rear sides of the traveling mechanism are running.
[0212] Furthermore, the first undulation value and the second undulation value are determined based on the posture of the traveling device at the same moment. For example, the first undulation value and the second undulation value are both undulation values of the ground on which the traveling device is traveling at the second moment, that is, the first undulation value is the undulation value of the ground on which the side of the traveling device is traveling close to the parking obstacle at the second moment, and the second undulation value is the undulation value of the ground on which the side of the traveling device is traveling away from the parking obstacle at the second moment. Specifically, the process of determining the first undulation value and the second undulation value can refer to the process introduced in the above formulas 1 to 4.
[0213] For example, see Fig.10 , Fig.10 A schematic diagram of determining the slope height of an obstacle provided in an embodiment of the present application. Fig.10 As shown, when the vehicle is moving backwards toward an obstacle, the rear wheels of the vehicle will travel on the slope of the obstacle, while the front wheels of the vehicle are still on the ground in front of the obstacle. In this way, the slope height of the obstacle can be determined by calculating the difference between the undulation value of the ground rolled over by the rear wheels of the vehicle (i.e., the first undulation value mentioned above) and the undulation value of the ground rolled over by the front wheels of the vehicle. Specifically, the slope height of the obstacle can be expressed by the following formula 6.
[0214]
[0215] in, Indicates the slope height of the obstacle that the vehicle runs over; g rIndicates the undulation of the ground rolled over by the rear wheels of the vehicle; g f Indicates the undulation of the ground that the front wheels of the vehicle roll over. r and g f The calculation process of can refer to the above formula 1 to formula 4.
[0216] In general, condition 1 is to detect whether the traveling device has abutted against the parking obstacle based on the change in acceleration caused by the collision between the traveling device and the obstacle; condition 2 is to detect whether the traveling device has abutted against the parking obstacle based on the slope angle of the obstacle rolled over by the traveling device; condition 3 is to detect whether the traveling device has abutted against the parking obstacle based on the slope height of the obstacle rolled over by the traveling device. By setting the above three conditions, and when it is detected that the motion state of the traveling device meets any of the above three conditions, it is determined that the traveling device has abutted against the parking obstacle, which can achieve the contact between the traveling device and the parking obstacle from different angles, thereby improving the parking accuracy of the traveling device.
[0217] Specifically, the shape of obstacles may be different in different scenarios. Or, in the same scenario, due to changes in the environment, the obstacles that the travel device needs to stop at different times may also be different (for example, in an open-pit mine scenario, due to errors in bulldozer operations, the slope height or slope angle of the retaining wall that the vehicle needs to stop at each time may be different). Therefore, by determining the contact between the travel device and the parking obstacle from different angles, it can ensure that the need for precise contact with the parking obstacle is met in different scenarios, thereby improving the feasibility of the solution.
[0218] For example, for a parking obstacle with a large slope, when the traveling device contacts the parking obstacle, the traveling device will suddenly be subjected to a large force in the longitudinal direction, resulting in a sharp change in the acceleration of the traveling device (i.e., the difference in acceleration of the traveling device before and after contacting the parking obstacle is large). Therefore, based on condition 1, it can be effectively determined that the traveling device has abutted against the parking obstacle. For another example, for a parking obstacle with a normal slope, when the traveling device contacts the parking obstacle and rolls over a part of the slope of the parking obstacle, the traveling device can accurately calculate the slope angle of the parking obstacle, thereby accurately determining that the traveling device has abutted against the parking obstacle based on condition 2. For another example, for a parking obstacle with a low slope, it may be difficult for the traveling device to determine whether the traveling device has abutted against the parking obstacle based on conditions 1 and 2. In this way, the traveling device will gradually drive to the higher slope of the parking obstacle, that is, the difference in the undulation value of the ground on which the front and rear sides of the traveling mechanism of the traveling device drive is large. At this time, based on condition 3, it can be determined that the traveling device has abutted against the parking obstacle.
[0219] The above introduces three conditions for determining whether the traveling device has abutted against a parking obstacle, and the three conditions are essentially to determine whether the traveling device has abutted against a parking obstacle by comparing a value obtained by calculation with a pre-set threshold value. Since the parking obstacle that the traveling device needs to dock will change, that is, the shape of the parking obstacle is diverse, in order to improve the determination accuracy of the traveling device, this embodiment can also provide a solution for adjusting the determination threshold value according to the actual driving situation. Since the above embodiment introduces three conditions for determining whether the traveling device has abutted against a parking obstacle, and the threshold values used for the three conditions are different, the threshold values under different conditions are also adjusted based on different methods in this embodiment.
[0220] Exemplarily, for the preset difference in condition one, point cloud data of the ground on which the traveling device is traveling can be obtained when the traveling device is traveling toward the parking obstacle. For example, a laser radar or a depth camera can be deployed on the traveling device, and point cloud data of the ground on which the traveling device is traveling can be obtained based on the laser radar or the depth camera. Then, based on the obtained point cloud data, the concavity and convexity value of the ground is determined, and the concavity and convexity value is used to indicate the concavity and convexity of the ground. That is, the larger the concavity and convexity value, the more uneven the ground is. In addition, the preset difference in the above condition one is determined based on the concavity and convexity value, and there is a positive correlation between the preset difference and the concavity and convexity value. That is, the larger the concavity and convexity value, the larger the preset difference; the smaller the concavity and convexity value, the smaller the preset difference.
[0221] For example, the concavity value of the ground can be determined by determining the point with the smallest height value in the vertical direction (i.e., the point with the largest concavity value) and the point with the largest height value. And, by subtracting the height value of the point with the largest height value from the height value of the point with the smallest height value, the concavity value of the ground can be obtained. For example, assuming that the height value of the point with the largest height value is d max , the height of the point with the smallest height value is d min , then the ground's concavity is d max -d min Among them, when the point with the smallest height value is a concave point, the height value d of the point with the smallest height value min Is a negative number.
[0222] Among them, after obtaining the point cloud data, the ground is extracted according to a frame of point cloud data. Among them, the extraction process of the ground adopts the principal component analysis method, and the principal component analysis can find the direction in which the data changes most dramatically. According to the basic assumption of the ground, the point cloud data changes most dramatically along the longitudinal direction of the vehicle (i.e., the x-axis direction), changes secondly along the lateral direction of the vehicle (i.e., the y-axis direction), and changes least dramatically along the vertical direction of the ground (i.e., the z-axis direction). Therefore, by performing principal component analysis on a frame of point cloud data X, the three-dimensional coordinate axis [x, y, z] direction of the road surface can be obtained, that is, the xy plane as the ground reference plane is determined. In this way, based on the xy plane as the ground reference plane, the height value relative to the xy plane in each point cloud data can be obtained, thereby determining the point with the smallest height value and the point with the largest height value in the vertical direction.
[0223] In a possible example, the preset difference value may be proportional to the concavity value of the ground, that is, δ a ∝d max -d min For example, δ a =0.1*(d max -d min ), that is, the preset difference is the product of the concave-convex value and 0.1.
[0224] In this solution, by scanning the point cloud data of the driving ground, the degree of the ground's convexity can be determined based on the point cloud data, and then the size of the preset difference can be adjusted based on the degree of the ground's convexity. Generally speaking, when a driving device is driving on an uneven ground, it is easy for the acceleration to change due to the convexities or concavities on the ground, resulting in a certain difference between the expected acceleration and the actual acceleration. Moreover, the greater the degree of the ground's convexity, the greater the difference between the expected acceleration and the actual acceleration. Therefore, in order to avoid the influence of the ground's convexity on the docking judgment, the preset difference used to determine whether to perform the docking can be adjusted according to the ground's convexity, that is, the greater the degree of the ground's convexity, the larger the preset difference is set, thereby avoiding the erroneous judgment that the vehicle has landed on a docking obstacle due to the ground's convexity.
[0225] Exemplarily, for the preset angle value in condition 2, point cloud data of the parking obstacle can be obtained during the driving process of the driving device toward the parking obstacle. Specifically, the driving device can continuously obtain point cloud data of the surrounding environment during the driving process, so as to obtain point cloud data corresponding to the driving ground and point cloud data of the parking obstacle. In this way, by identifying the point cloud data (for example, identifying based on a clustering method), a part of the point cloud data corresponding to the parking obstacle in the acquired point cloud data can be determined. Then, according to the point cloud data of the parking obstacle, the slope angle prediction value of the parking obstacle is determined. In this way, after determining the slope angle prediction value of the parking obstacle, the above-mentioned preset angle value can be determined based on the slope angle prediction value, that is, the preset angle value is determined based on the slope angle prediction value. Among them, there is a positive correlation between the preset angle value and the slope angle prediction value. That is, the larger the slope angle prediction value, the larger the preset angle value; the smaller the slope angle prediction value, the smaller the preset angle value. For example, assuming that the preset angle value is δ θ , the slope angle prediction value is θ, then the preset angle value can be proportional to the slope angle prediction value, that is, δ θ ∝θ. For example, δ θ =0.5*θ.
[0226] Specifically, based on the point cloud data, the process of determining the slope angle prediction value of the parking obstacle can be as follows. Fig.11 , Fig.11 A schematic diagram of determining a slope angle prediction value based on point cloud data of a parking obstacle provided in an embodiment of the present application. First, for the acquired point cloud data, determine the ground reference plane in the manner described above. Then, along the normal vector of the ground reference plane Extract the point set P with height exceeding h = {p1,…,p j-1 ,p j ,p j+1 ,…}. The slope angle of the parking obstacle passes through the normal vector set corresponding to the point set P Specifically, the normal vector set is calculated by the following formula 7: The average normal vector
[0227]
[0228] In addition, the slope angle prediction value θ is calculated as the average normal vector of the point set and the ground plane normal vector The angle is as shown in the following formula 8.
[0229]
[0230] Exemplarily, for the preset height value in condition three, the point cloud data of the parking obstacle can be obtained during the process of the driving device driving towards the parking obstacle. Then, based on the point cloud data of the parking obstacle, the predicted slope height of the parking obstacle is determined. In this way, after determining the predicted slope height of the parking obstacle, the above-mentioned preset height value can be determined based on the predicted slope height value, that is, the preset height value is determined based on the predicted slope height value. Among them, there is a positive correlation between the preset height value and the predicted slope height value. That is, the larger the predicted slope height value, the larger the preset height value; the smaller the predicted slope height value, the smaller the preset height value. For example, assuming that the preset height value is δ H , the slope angle prediction value is H, then the preset height value can be proportional to the slope height prediction value, that is, δ H ∝H. For example, δ H =0.5*H.
[0231] Specifically, the process of determining the predicted slope height of the parking obstacle based on the point cloud data can be as follows. First, for the acquired point cloud data, determine the ground reference plane in the above manner. Then, along the normal vector of the ground reference plane Extract the point set P with height exceeding h = {p1,…,p j-1 ,p j ,p j+1 ,…}, the height H of the parking obstacle is the farthest distance from the ground reference plane in the point set P, as shown in the following formula 9.
[0232] H=max(dist(P,Base)) Formula 9
[0233] Among them, max() is to take the maximum value, and dist() is to calculate the Euclidean distance between the point and the surface.
[0234] The above describes the specific execution process of the docking method for the traveling device provided in this embodiment. For ease of understanding, the actual application process of the docking method for the traveling device will be described in detail below with reference to specific examples.
[0235] See also Fig.12 , Fig.12 A schematic diagram of a system architecture provided in an embodiment of the present application. Fig.12As shown, the system architecture for executing the method provided in this embodiment includes an external sensing sensor, an internal sensing sensor, a processor, a storage medium and a controller. Among them, the external sensing sensor includes a sensor such as a laser radar or a depth camera for acquiring point cloud data. The internal sensing sensor includes a sensor such as a GPS, an accelerometer and a gyroscope for measuring motion data. The storage medium stores program code, and the processor executes the method provided in this embodiment by executing the program code stored in the storage medium. Finally, when the processor obtains the external sensing sensor and the internal sensing sensor and determines that the driving device needs to be braked, it sends a braking command to the controller, thereby braking the driving device.
[0236] For example, the traveling device is a mine car in an open-pit mine. During operation, the mine car needs to be accurately parked on the retaining wall of the open-pit mine. Fig.13 , Fig.13 A schematic diagram of a process for a mine car to stop at a retaining wall is provided in an embodiment of the present application. Fig.13 As shown, the process of accurately stopping the mine car on the retaining wall during operation includes the following process.
[0237] First, the mine car obtains the point cloud data of the retaining wall through the external sensing sensor, and obtains the predicted slope angle and slope height of the retaining wall based on the point cloud data of the retaining wall. In the open-pit mine scenario, there are certain requirements for the slope height and slope angle of the retaining wall, such as the slope height of the retaining wall needs to be greater than 30 cm and the slope angle needs to be greater than 20 degrees. Therefore, the mine car can judge whether the currently set retaining wall meets the docking requirements based on the measured predicted slope angle and slope height of the retaining wall. If the retaining wall does not meet the docking requirements, an alarm message that the retaining wall does not meet the standards is reported to the server to notify the operator to reset the retaining wall.
[0238] When it is determined that the retaining wall meets the parking requirements, the mine car determines the ground concavity value based on the point cloud data of the ground acquired by the external sensing sensor. In this way, based on the point cloud data, the mine car can determine the ground concavity value, the slope angle prediction value of the retaining wall and the slope height prediction value of the retaining wall, and then set the contact threshold values based on the three determined values, that is, set the collision threshold value (i.e., the preset difference value of the above embodiment), the slope angle threshold value (i.e., the preset angle value of the above embodiment) and the slope height threshold value (i.e., the preset height value of the above embodiment).
[0239] Secondly, the mine car obtains the motion data of the mine car during driving through the internal sensor, and determines the difference between the expected acceleration and the actual acceleration of the mine car, the slope angle of the obstacle encountered by the mine car, and the slope height of the obstacle encountered by the mine car based on the motion data. When the value determined based on the motion data meets any of the following conditions: the difference between the expected acceleration and the actual acceleration of the mine car exceeds the collision threshold value, or the slope angle of the obstacle encountered by the mine car exceeds the slope angle threshold value, or the slope height of the obstacle encountered by the mine car exceeds the slope height threshold value; the processor of the mine car sends a braking command to the controller, thereby braking the mine car.
[0240] For example, see Fig.14 , Fig.14 A flowchart of a processor of a mining vehicle performing calculations based on motion data provided in an embodiment of the present application. Fig.14 As shown, during the calculation process of determining whether a braking command needs to be sent, the input of the mine car's processor includes vehicle speed control information (such as the accelerator pedal opening and the brake pedal opening) and vehicle motion data (such as acceleration and angular velocity). These input information are then combined with the vehicle model (i.e., the longitudinal model and vertical model mentioned in the above embodiment) to calculate the longitudinal acceleration and ground undulation value of the mine car, respectively, and then realize collision detection based on the longitudinal acceleration, and realize slope angle calculation and slope height calculation based on the ground undulation value, and finally realize determining whether the mine car meets the braking conditions.
[0241] Optionally, sensors for measuring motion data are deployed at any one or more of the following positions of the traveling device: the traveling mechanism, the front axle, the rear axle, and the center of the traveling device. For example, when the traveling device is a mining vehicle, the sensors can be deployed at the wheels, the front axle, the rear axle, and the middle of the vehicle body.
[0242] In addition, different types of sensors may be deployed in different locations. Specifically, sensors used to measure motion data include accelerometers and gyroscopes. Since the closer the sensor is deployed to the ground, the higher the measurement accuracy of the sensor, in principle the sensor can be deployed as close to the ground as possible (such as the wheel). However, the closer the sensor is deployed to the ground, the more troublesome the sensor wiring is, and the greater the vibration the sensor is subjected to due to ground bumps, which affects the service life of the sensor. Based on the above two considerations, accelerometers with better seismic resistance can be installed on the wheels, while gyroscopes with poorer seismic resistance can be installed on the rear axle or the body.
[0243] In addition, sensors for acquiring point cloud data, such as lidar or depth cameras, can be deployed in front of or behind the driving device so as to effectively acquire point cloud data of the ground and parking obstacles.
[0244] For example, see Fig.15 and Fig.16 , Fig.15 A schematic diagram of a deployment position of a sensor on a vehicle provided in an embodiment of the present application; Fig.16 A schematic diagram of another sensor deployment position on a vehicle provided in an embodiment of the present application. Fig.15 As shown in FIG, the accelerometer and gyroscope as interior sensing sensors can be deployed on the rear axle of the vehicle, while the lidar or depth camera as exterior sensing sensors can be deployed at the rear of the vehicle. Fig.16 As shown, the accelerometer and gyroscope used as interior sensing sensors can also be deployed on the body of the vehicle.
[0245] A method for docking a traveling device provided in an embodiment of the present application is introduced above, and a traveling device for executing the above method will be introduced below.
[0246] See also Fig.17 , Fig.17 This is a schematic diagram of the structure of a driving device provided in an embodiment of the present application. Fig.17 As shown, the traveling device includes: an acquisition module 1701, which is used to acquire motion data of the traveling device at multiple moments through a sensor when the traveling device is traveling toward a parking obstacle, and the parking obstacle is used to block the traveling of the traveling device; a processing module 1702, which is used to determine the postures of the traveling device at multiple moments based on the motion data; and a braking module 1703, which is used to brake the traveling device in response to an obstacle that the traveling device runs over meeting a preset condition; wherein the preset condition includes that the slope angle of the obstacle that the traveling device runs over is greater than a preset angle value or the slope height of the obstacle is greater than a preset height value.
[0247] In a possible implementation, the acquisition module 1701 is further used to acquire point cloud data of the parking obstacle;
[0248] The processing module 1702 is also used to determine the slope angle prediction value and slope height prediction value of the parking obstacle according to the point cloud data, the preset angle value is determined based on the slope angle prediction value, and the preset height value is determined based on the slope height prediction value.
[0249] In one possible implementation, the postures at multiple moments include a first displacement of a traveling mechanism of the traveling device in a target direction at a first moment, and a second displacement of the traveling mechanism in the target direction at a second moment, wherein the target direction is a direction perpendicular to the earth, and the traveling mechanism is used to drive the traveling device to travel; the slope angle of the obstacle is determined based on the speed of the traveling device at the first moment, the first displacement, and the second displacement.
[0250] In one possible implementation, the slope height is the difference between a first undulation value of the ground on the side of the traveling mechanism that is close to the parking obstacle and a second undulation value of the ground on the side of the traveling mechanism that is far from the parking obstacle, and the first undulation value and the second undulation value are determined based on the posture of the traveling device at the same time.
[0251] In a possible implementation, the preset condition also includes that a difference between an expected acceleration and an actual acceleration of the traveling device at a second moment is greater than a preset difference, the expected acceleration is predicted based on motion data at a first moment and speed control information of the traveling device, the multiple moments include the first moment and the second moment, and the first moment is before the second moment, and the motion data at the multiple moments include the actual acceleration at the second moment.
[0252] In one possible implementation, the motion data at the first moment is used to determine the pitch angle and speed of the traveling device, and the speed control information includes the accelerator pedal opening and brake pedal opening of the traveling device; the expected acceleration is predicted based on the pitch angle, speed, accelerator pedal opening and brake pedal opening.
[0253] In a possible implementation, the acquisition module 1701 is further used to acquire point cloud data of the ground on which the driving device is driving;
[0254] The processing module 1702 is further used to determine the concavity value of the ground according to the point cloud data, where the concavity value is used to indicate the concavity of the ground, and the preset difference is determined based on the concavity value.
[0255] In a possible implementation, the sensor includes an accelerometer and a gyroscope, and the motion data includes acceleration and angular velocity in multiple directions.
[0256] In a possible implementation, the sensor is deployed at any one or more of the following positions of the traveling device: a traveling mechanism, a front axle, a rear axle, and a center position of the traveling device.
[0257] In a possible implementation, the traveling device is a vehicle or a robot.
[0258] Next, a driving device provided by an embodiment of the present application is introduced. Fig.18 , Fig.18 This is a schematic diagram of a structure of a driving device provided in an embodiment of the present application. The driving device 1800 may specifically include a microcontroller unit (MCU), a chip, a chip system or a circuit system, etc., which are not limited here. Specifically, the driving device 1800 includes: a transceiver 1801, a processor 1802 and a memory 1803 (wherein the number of processors 1802 in the driving device 1800 may be one or more, Fig.18 In the example, one processor is used as an example), wherein the processor 1802 may include an application processor 18021 and a communication processor 18022. In some embodiments of the present application, the transceiver 1801, the processor 1802 and the memory 1803 may be connected via a bus or other means.
[0259] The memory 1803 may include a read-only memory and a random access memory, and provides instructions and data to the processor 1802. A portion of the memory 1803 may also include a non-volatile random access memory (NVRAM). The memory 1803 stores processor and operation instructions, executable modules or data structures, or subsets thereof, or extended sets thereof, wherein the operation instructions may include various operation instructions for implementing various operations.
[0260] Processor 1802 controls the operation of path planning. In a specific application, the various components of the driving device are coupled together through a bus system, wherein the bus system includes not only a data bus but also a power bus, a control bus, and a status signal bus, etc. However, for the sake of clarity, various buses are referred to as bus systems in the figure.
[0261] The method disclosed in the above embodiment of the present application can be applied to the processor 1802, or implemented by the processor 1802. The processor 1802 can be an integrated circuit chip with signal processing capabilities. In the implementation process, each step of the above method can be completed by the hardware integrated logic circuit or software instructions in the processor 1802. The above processor 1802 can be a general processor, a digital signal processor (digital signal processing, DSP), a microprocessor or a microcontroller, and can further include an application specific integrated circuit (application specific integrated circuit, ASIC), a field programmable gate array (field-programmable gate array, FPGA) or other programmable logic devices, discrete gates or transistor logic devices, discrete hardware components. The processor 1802 can implement or execute the methods, steps and logic block diagrams disclosed in the embodiments of the present application. The general processor can be a microprocessor or the processor can also be any conventional processor, etc. The steps of the method disclosed in the embodiment of the present application can be directly embodied as a hardware decoding processor to execute, or the hardware and software modules in the decoding processor can be combined and executed. The software module may be located in a storage medium mature in the art, such as a random access memory, a flash memory, a read-only memory, a programmable read-only memory, or an electrically erasable programmable memory, a register, etc. The storage medium is located in the memory 1803, and the processor 1802 reads the information in the memory 1803 and completes the steps of the above method in combination with its hardware.
[0262] The transceiver 1801 (such as a network card) can be used to receive input digital or character information and generate signal input related to the relevant settings and function control of the driving device. The transceiver 1801 can also be used to output digital or character information through the first interface; and send instructions to the disk group through the first interface to modify the data in the disk group.
[0263] The driving device provided in the embodiment of the present application may specifically include a chip, and the chip includes: a processing unit and a communication unit, the processing unit may be, for example, a processor, and the communication unit may be, for example, an input / output interface, a pin or a circuit, etc. The processing unit may execute the computer execution instructions stored in the storage unit, so that the chip in the processing module executes the road surface detection method described in the above embodiment. Optionally, the storage unit is a storage unit in the chip, such as a register, a cache, etc., and the storage unit may also be a storage unit located outside the chip in the wireless access device end, such as a read-only memory (ROM) or other types of static storage devices that can store static information and instructions, a random access memory (RAM), etc.
[0264] See also Fig.19 , Fig.19 A schematic diagram of the structure of a computer-readable storage medium provided in an embodiment of the present application. The present application also provides a computer-readable storage medium. In some embodiments, the method disclosed above can be implemented as computer program instructions encoded in a machine-readable format on a computer-readable storage medium or encoded on other non-transitory media or products.
[0265] Fig.19 Schematically illustrates a conceptual partial view of an example computer-readable storage medium including a computer program for executing a computer process on a computing device, arranged in accordance with at least some embodiments presented herein.
[0266] In one embodiment, the computer readable storage medium 1900 is provided using a signal bearing medium 1901. The signal bearing medium 1901 may include one or more program instructions 1902, which when executed by one or more processors may provide the functions or portions of the functions described above for the embodiments. Fig.19 Program instructions 1902 in also describe example instructions.
[0267] In some examples, signal bearing medium 1901 may include computer readable medium 1903 such as, but not limited to, a hard drive, a compact disk (CD), a digital video disk (DVD), a digital tape, memory, ROM or RAM, and the like.
[0268] In some embodiments, the signal bearing medium 1901 may include a computer recordable medium 1904, such as, but not limited to, a memory, a read / write (R / W) CD, a R / W DVD, etc. In some embodiments, the signal bearing medium 1901 may include a communication medium 1905, such as, but not limited to, a digital and / or analog communication medium (e.g., a fiber optic cable, a waveguide, a wired communication link, a wireless communication link, etc.). Thus, for example, the signal bearing medium 1901 may be communicated by a wireless form of the communication medium 1905 (e.g., a wireless communication medium complying with the IEEE 802 standard or other transmission protocol).
[0269] The one or more program instructions 1902 may be, for example, computer executable instructions or logic implementation instructions. In some examples, the computing device of the computing device may be configured to provide various operations, functions, or actions in response to the program instructions 1902 communicated to the computing device via one or more of the computer readable medium 1903, the computer recordable medium 1904, and / or the communication medium 1905.
[0270] It should also be noted that the device embodiments described above are merely schematic, wherein the units described as separate components may or may not be physically separated, and the components displayed as units may or may not be physical units, that is, they may be located in one place, or they may be distributed over multiple network units. Some or all of the modules may be selected according to actual needs to achieve the purpose of the scheme of this embodiment. In addition, in the drawings of the device embodiments provided by the present application, the connection relationship between the modules indicates that there is a communication connection between them, which may be specifically implemented as one or more communication buses or signal lines.
[0271] Through the description of the above implementation mode, the technicians in the field can clearly understand that the present application can be implemented by means of software plus necessary general hardware, and of course, it can also be implemented by special hardware including special integrated circuits, special CPUs, special memories, special components, etc. In general, all functions completed by computer programs can be easily implemented by corresponding hardware, and the specific hardware structure used to implement the same function can also be various, such as analog circuits, digital circuits or special circuits. However, for the present application, software program implementation is a better implementation mode in more cases. Based on such an understanding, the technical solution of the present application is essentially or the part that contributes to the prior art can be embodied in the form of a software product, which is stored in a readable storage medium, such as a computer floppy disk, a U disk, a mobile hard disk, a ROM, a RAM, a magnetic disk or an optical disk, etc., including a number of instructions to enable a computer device (which can be a personal computer, a training device, or a network device, etc.) to execute the methods described in each embodiment of the present application.
[0272] In the above embodiments, all or part of the embodiments may be implemented by software, hardware, firmware or any combination thereof. When implemented by software, all or part of the embodiments may be implemented in the form of a computer program product.
[0273] The computer program product includes one or more computer instructions. When the computer program instructions are loaded and executed on a computer, the process or function described in the embodiment of the present application is generated in whole or in part. The computer may be a general-purpose computer, a special-purpose computer, a computer network, or other programmable devices. The computer instructions may be stored in a computer-readable storage medium, or transmitted from one computer-readable storage medium to another computer-readable storage medium. For example, the computer instructions may be transmitted from a website site, a computer, a training device, or a data center by wired (e.g., coaxial cable, optical fiber, digital subscriber line (DSL)) or wireless (e.g., infrared, wireless, microwave, etc.) mode to another website site, computer, training device, or data center. The computer-readable storage medium may be any available medium that a computer can store or a data storage device such as a training device, a data center, etc. that includes one or more available media integrations. The available medium may be a magnetic medium, (e.g., a floppy disk, a hard disk, a tape), an optical medium (e.g., a DVD), or a semiconductor medium (e.g., a solid-state drive (SSD)), etc.
Claims
1. A method for docking a traveling device, characterized in that: include: When the traveling device is traveling toward a parking obstacle, the movement data of the traveling device at multiple moments are acquired through a sensor, and the parking obstacle is used to block the traveling of the traveling device; Based on the motion data, determining the postures of the traveling device at the multiple moments respectively; In response to an obstacle encountered by the traveling device meeting a preset condition, braking the traveling device; The preset conditions include that the slope angle of the obstacle encountered by the traveling device is greater than a preset angle value or the slope height of the obstacle is greater than a preset height value.
2. The method according to claim 1, characterized in that Before braking the traveling device, the method further includes: Acquire point cloud data of the parking obstacle; According to the point cloud data, a slope angle prediction value and a slope height prediction value of the parking obstacle are determined, the preset angle value is determined based on the slope angle prediction value, and the preset height value is determined based on the slope height prediction value.
3. The method according to claim 1 or 2, characterized in that: The postures at the multiple moments include a first displacement of a traveling mechanism of the traveling device in a target direction at a first moment, and a second displacement of the traveling mechanism in the target direction at a second moment, wherein the target direction is a direction perpendicular to the earth, and the traveling mechanism is used to drive the traveling device to travel; The slope angle of the obstacle is determined based on the speed of the traveling device at the first moment, the first displacement, and the second displacement.
4. The method according to any one of claims 1 to 3, characterized in that: The slope height is the difference between a first undulation value of the ground on the side of the traveling mechanism that is close to the parking obstacle and a second undulation value of the ground on the side of the traveling mechanism that is far from the parking obstacle, and the first undulation value and the second undulation value are determined based on the posture of the traveling device at the same time.
5. The method according to any one of claims 1 to 4, characterized in that: The preset condition also includes that a difference between an expected acceleration and an actual acceleration of the traveling device at a second moment is greater than a preset difference, the expected acceleration is predicted based on motion data at a first moment and speed control information of the traveling device, the multiple moments include the first moment and the second moment, and the first moment is before the second moment, and the motion data at the multiple moments include the actual acceleration at the second moment.
6. The method according to claim 5, characterized in that The motion data at the first moment is used to determine the pitch angle and speed of the traveling device, and the speed control information includes the accelerator pedal opening and the brake pedal opening of the traveling device; The expected acceleration is predicted based on the pitch angle, the speed, the accelerator pedal opening, and the brake pedal opening.
7. The method according to claim 5 or 6, characterized in that: The method further comprises: Acquiring point cloud data of the ground on which the driving device is driving; According to the point cloud data, a concavity value of the ground is determined, the concavity value is used to indicate the concavity of the ground, and the preset difference is determined based on the concavity value.
8. The method according to any one of claims 1 to 7, characterized in that: The sensor includes an accelerometer and a gyroscope, and the motion data includes acceleration and angular velocity in multiple directions.
9. The method according to any one of claims 1 to 8, characterized in that: The sensor is deployed at any one or more of the following positions of the traveling device: a traveling mechanism, a front axle, a rear axle, and a center position of the traveling device.
10. The method according to any one of claims 1 to 9, characterized in that: The traveling device includes a vehicle or a robot.
11. A parking device for a traveling device, characterized in that: include: an acquisition module, used to acquire motion data of the traveling device at multiple moments through a sensor when the traveling device is traveling toward a parking obstacle, wherein the parking obstacle is used to block the traveling of the traveling device; A processing module, configured to determine the postures of the traveling device at the plurality of moments respectively based on the motion data; a braking module, configured to brake the traveling device in response to an obstacle encountered by the traveling device meeting a preset condition; The preset conditions include that the slope angle of the obstacle encountered by the traveling device is greater than a preset angle value or the slope height of the obstacle is greater than a preset height value.
12. The device according to claim 11, characterized in that The acquisition module is further used to acquire the point cloud data of the parking obstacle; The processing module is also used to determine the slope angle prediction value and slope height prediction value of the parking obstacle based on the point cloud data, the preset angle value is determined based on the slope angle prediction value, and the preset height value is determined based on the slope height prediction value.
13. The device according to claim 11 or 12, characterized in that The postures at the multiple moments include a first displacement of a traveling mechanism of the traveling device in a target direction at a first moment, and a second displacement of the traveling mechanism in the target direction at a second moment, wherein the target direction is a direction perpendicular to the earth, and the traveling mechanism is used to drive the traveling device to travel; The slope angle of the obstacle is determined based on the speed of the traveling device at the first moment, the first displacement, and the second displacement.
14. The device according to any one of claims 11 to 13, characterized in that: The slope height is the difference between a first undulation value of the ground on the side of the traveling mechanism that is close to the parking obstacle and a second undulation value of the ground on the side of the traveling mechanism that is far from the parking obstacle, and the first undulation value and the second undulation value are determined based on the posture of the traveling device at the same time.
15. The device according to any one of claims 11 to 14, characterized in that: The preset condition also includes that a difference between an expected acceleration and an actual acceleration of the traveling device at a second moment is greater than a preset difference, the expected acceleration is predicted based on motion data at a first moment and speed control information of the traveling device, the multiple moments include the first moment and the second moment, and the first moment is before the second moment, and the motion data at the multiple moments include the actual acceleration at the second moment.
16. The device according to claim 15, characterized in that The motion data at the first moment is used to determine the pitch angle and speed of the traveling device, and the speed control information includes the accelerator pedal opening and the brake pedal opening of the traveling device; The expected acceleration is predicted based on the pitch angle, the speed, the accelerator pedal opening, and the brake pedal opening.
17. The device according to claim 15 or 16, characterized in that The acquisition module is further used to acquire point cloud data of the ground on which the driving device is driving; The processing module is further used to determine a concavity value of the ground according to the point cloud data, wherein the concavity value is used to indicate the concavity of the ground, and the preset difference is determined based on the concavity value.
18. A traveling device, characterized in that: The device comprises a memory and a processor; the memory stores codes, the processor is configured to execute the codes, and when the codes are executed, the device executes the method according to any one of claims 1 to 10.
19. A computer storage medium, characterized in that: The computer storage medium stores instructions, which, when executed by a computer, cause the computer to implement the method of any one of claims 1 to 10.
20. A computer program product, characterized in that The computer program product stores instructions, which, when executed by a computer, cause the computer to implement the method according to any one of claims 1 to 10.