WO2024001339A1 - 确定位姿的方法、装置以及计算设备 - Google Patents

确定位姿的方法、装置以及计算设备 Download PDF

Info

Publication number
WO2024001339A1
WO2024001339A1 PCT/CN2023/083617 CN2023083617W WO2024001339A1 WO 2024001339 A1 WO2024001339 A1 WO 2024001339A1 CN 2023083617 W CN2023083617 W CN 2023083617W WO 2024001339 A1 WO2024001339 A1 WO 2024001339A1
Authority
WO
WIPO (PCT)
Prior art keywords
positioning
pose
algorithm
coordinate system
interface data
Prior art date
Application number
PCT/CN2023/083617
Other languages
English (en)
French (fr)
Inventor
王云飞
Original Assignee
华为云计算技术有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from CN202211181464.8A external-priority patent/CN117367415A/zh
Application filed by 华为云计算技术有限公司 filed Critical 华为云计算技术有限公司
Publication of WO2024001339A1 publication Critical patent/WO2024001339A1/zh

Links

Classifications

    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/20Instruments for performing navigational calculations

Definitions

  • the present application relates to the field of spatial positioning, and more specifically, to a method, device and computing device for determining pose.
  • the digital world is a virtual world built on the real world, and the real world can also be called the physical world.
  • the digital world and the real world need to be positioned, that is, the digital world and the real world need to be synchronized, and the working subject in the real world needs to determine its position in the digital world.
  • the pose may be, for example, a 6 degree of freedom pose (6DoF), that is, the position (coordinates) and orientation (rotation angle) of the working subject in the digital world.
  • 6DoF 6 degree of freedom pose
  • digital twins Take the digital world as digital twins as an example.
  • digital twins are mostly operated by back-end personnel, while real-world sites are operated by on-site personnel. If there is no synchronization between the real-world site and the digital twin system, because the background personnel do not know the situation of the real-world site, the on-site personnel cannot see the content in the digital twin system, and cannot determine whether the real-world site and the digital twin system are consistent. Therefore, it is very necessary to determine the position and posture of the real-world work subject in the digital twin and achieve synchronization between the real-world scene and the digital twin system.
  • the pose of the working subject in the real world in the digital world is determined based on a positioning algorithm. Since only one positioning algorithm is used, the accuracy of the determined pose is not high. Moreover, this related technical solution uses only one positioning algorithm, which has poor scalability.
  • the present application provides a method, device and computing device for determining posture, which method can improve the accuracy of the posture of the working subject in the coordinate system of the positioning map.
  • a method for determining pose including: obtaining multiple interface data, performing weighted fusion on the multiple interface data according to a fusion algorithm to obtain the first data, and based on the first pose, the second data is obtained.
  • the pose, and the coordinate system conversion relationship determine the third pose of the working subject in the coordinate system of the positioning map, where each interface data includes a pose, which is the position of the sensor in the coordinate system of the positioning map.
  • posture the first data includes the first posture
  • the second posture is the posture of the working subject in the coordinate system of the physical world
  • the positioning map is determined based on the physical world
  • the coordinate system conversion relationship is The conversion relationship between the coordinate system of the positioning map and the coordinate system of the physical world.
  • multiple interface data can be determined based on a variety of different positioning algorithms, and the multiple interface data can be data fused to obtain the first attitude, and the first attitude and the coordinate system of the work subject in the physical world can be obtained.
  • the pose below determines the pose of the working subject in the coordinate system of the positioning map.
  • This method can obtain multiple interface data for data fusion, and the multiple interface data are determined based on multiple positioning algorithms. Therefore, since the interface data determined by multiple positioning algorithms are obtained, the scalability is strong, and the pose of the work subject in the coordinate system of the positioning map is determined based on the first pose obtained by merging multiple interface data, The accuracy is higher.
  • each interface data is determined based on a positioning algorithm
  • the input of the positioning algorithm is data obtained by the sensor
  • the data output by the output interface of the positioning algorithm is the interface data.
  • each interface data also includes any one or a combination of more of the following information: range information, confidence, where the range information represents the interface The range information of the pose included in the data in the positioning map, and the confidence level is the credibility of the pose.
  • the first data also includes any one or a combination of more of the following information: first range information, a first confidence level, where the first A range information represents the range information of the first posture in the positioning map, and the first confidence level is the credibility of the first posture.
  • the input of the positioning algorithm also includes any one or a combination of more of the following information: parameters of the sensor, target time.
  • the pose is the pose of the sensor in the coordinate system of the positioning map at the target time.
  • the fusion algorithm is a Kalman filter fusion algorithm.
  • the multiple interface data are input to the Kalman filter as different observation values, an output result of the Kalman filter is obtained, and the multiple interface data are determined based on the result. weight parameters corresponding to each interface data respectively, and perform weighted fusion of the multiple interface data according to the weight parameters corresponding to each interface data to obtain the first data.
  • the positioning algorithm is a global positioning algorithm
  • the pose included in the interface data is the global positioning of the sensor in the coordinate system of the positioning map.
  • the positioning algorithm is a local positioning algorithm
  • the pose included in the interface data is the local positioning of the sensor in the coordinate system of the positioning map.
  • the positioning algorithm The input also includes a fourth pose, which is the global positioning of the sensor in the coordinate system of the positioning map.
  • the positioning algorithm is a precise positioning algorithm
  • the pose included in the interface data is the precise positioning of the sensor in the coordinate system of the positioning map.
  • the positioning algorithm The input also includes the fourth pose and the fifth pose.
  • the fifth pose is the local positioning of the sensor in the coordinate system of the positioning map.
  • the method before obtaining the plurality of interface data, further includes: establishing a 3D map corresponding to the physical world according to the physical world and a 3D reconstruction algorithm; The map and the positioning map construction algorithm obtain the positioning map.
  • a device for determining pose which is characterized in that it includes: an acquisition module, a fusion module, and a determination module, wherein the acquisition module is used to obtain multiple interface data, and each interface data includes pose,
  • the pose is the pose of the sensor in the coordinate system of the positioning map;
  • the fusion module is used to perform weighted fusion of the multiple interface data according to the fusion algorithm to obtain the first data, which includes the first pose;
  • the determination module Used to determine the third posture of the working subject in the coordinate system of the positioning map based on the first posture, the second posture, and the coordinate system transformation relationship.
  • the second posture The pose is the pose of the work subject in the coordinate system of the physical world.
  • the positioning map is determined based on the physical world.
  • the coordinate system conversion relationship is between the coordinate system of the positioning map and the coordinate system of the physical world. Transformation relationship.
  • each interface data is determined based on a positioning algorithm.
  • the input of the positioning algorithm is the data obtained by the sensor, and the data output by the output interface of the positioning algorithm is the interface. data.
  • each interface data also includes any one or a combination of the following information: range information, confidence, where the range information represents the interface The range information of the pose included in the data in the positioning map, and the confidence level is the credibility of the pose.
  • the first data also includes any one or a combination of more of the following information: first range information, a first confidence level, wherein the first A range information represents the range information of the first posture in the positioning map, and the first confidence level is the credibility of the first posture.
  • the input of the positioning algorithm also includes any one or a combination of more of the following information: parameters of the sensor, target time.
  • the pose is the pose of the sensor in the coordinate system of the positioning map at the target time.
  • the fusion algorithm is a Kalman filter fusion algorithm.
  • the fusion module is specifically used to: input the multiple interface data as different observation values to the Kalman filter, and obtain the output result of the Kalman filter, According to the result, weight parameters corresponding to the plurality of interface data are determined, and weighted fusion is performed on the plurality of interface data according to the weight parameter corresponding to each interface data to obtain the first data.
  • the positioning algorithm is a global positioning algorithm
  • the pose included in the interface data is the global positioning of the sensor in the coordinate system of the positioning map.
  • the positioning algorithm is a local positioning algorithm
  • the pose included in the interface data is the local positioning of the sensor in the coordinate system of the positioning map.
  • the positioning algorithm The input also includes a fourth pose, which is the global positioning of the sensor in the coordinate system of the positioning map.
  • the positioning algorithm is a precise positioning algorithm
  • the pose included in the interface data is the precise positioning of the sensor in the coordinate system of the positioning map.
  • the positioning algorithm The input also includes the fourth pose and the fifth pose.
  • the fifth pose is the local positioning of the sensor in the coordinate system of the positioning map.
  • the device further includes: a building module for establishing a 3D map corresponding to the physical world based on the physical world and the 3D reconstruction algorithm; based on the 3D map and the positioning map Build an algorithm to obtain this positioning map.
  • a computing device including a processor and a memory, and optionally, an input and output interface.
  • the processor is used to control the input and output interface to send and receive information
  • the memory is used to store a computer program
  • the processor is used to call and run the computer program from the memory, making it possible to execute the first aspect or any one of the first aspects.
  • the method in the implementation is used to control the input and output interface to send and receive information
  • the memory is used to store a computer program
  • the processor is used to call and run the computer program from the memory, making it possible to execute the first aspect or any one of the first aspects.
  • the processor may be a general-purpose processor, which may be implemented by hardware or software.
  • the processor can be a logic circuit, an integrated circuit, etc.; when implemented by software, the processor can be a general processor, which is implemented by reading software codes stored in a memory, and the memory can Integrated in the processor, it can be located outside the processor and exist independently.
  • a computing device cluster including at least one computing device, each computing device including a processing unit.
  • a fifth aspect provides a chip that obtains instructions and executes the instructions to implement the method in the above first aspect and any implementation of the first aspect.
  • the chip includes a processor and a data interface.
  • the processor reads instructions stored in the memory through the data interface and executes the above first aspect and any implementation of the first aspect. Methods.
  • the chip may also include a memory, the memory stores instructions, the processor is used to execute the instructions stored in the memory, and when the instructions are executed, the processor is used to execute the first aspect and a method in any implementation of the first aspect.
  • a computer program product containing instructions is provided.
  • the instructions When the instructions are executed by a computing device, the computing device performs the method in the above-mentioned first aspect and any implementation of the first aspect.
  • a computer program product containing instructions is provided.
  • the computing device cluster causes the computing device cluster to execute the method in the above first aspect and any implementation of the first aspect. .
  • An eighth aspect provides a computer-readable storage medium, which is characterized in that it includes computer program instructions.
  • the computer program instructions are executed by a computing device, the computing device executes any one of the above-mentioned first aspect and the first aspect. method in an implementation.
  • these computer-readable storages include, but are not limited to, one or more of the following: read-only memory (ROM), programmable ROM (PROM), erasable PROM (erasable PROM, EPROM), Flash memory, electrical EPROM (electrically EPROM, EEPROM) and hard drive (harddrive).
  • ROM read-only memory
  • PROM programmable ROM
  • EPROM erasable PROM
  • Flash memory electrical EPROM (electrically EPROM, EEPROM) and hard drive (harddrive).
  • the above storage medium may be a non-volatile storage medium.
  • a computer-readable storage medium which is characterized in that it includes computer program instructions.
  • the computer program instructions are executed by a computing device cluster, the computing device cluster performs the above-mentioned first aspect and the first aspect. method in any implementation.
  • these computer-readable storages include, but are not limited to, one or more of the following: read-only memory (ROM), programmable ROM (PROM), erasable PROM (erasable PROM, EPROM), Flash memory, electrical EPROM (electrically EPROM, EEPROM) and hard drive (harddrive).
  • ROM read-only memory
  • PROM programmable ROM
  • EPROM erasable PROM
  • Flash memory electrical EPROM (electrically EPROM, EEPROM) and hard drive (harddrive).
  • the above storage medium may be a non-volatile storage medium.
  • Figure 1 is a schematic flow chart of a method for determining pose provided by an embodiment of the present application.
  • FIG. 2 is a schematic flow chart of another method for determining pose provided by an embodiment of the present application.
  • FIG. 3 is a system architecture diagram provided by an embodiment of the present application.
  • FIG. 4 is a schematic block diagram of a device 400 for determining posture provided by an embodiment of the present application.
  • FIG. 5 is an architectural schematic diagram of a computing device 500 provided by an embodiment of the present application.
  • Figure 6 is a schematic architectural diagram of a computing device cluster provided by an embodiment of the present application.
  • FIG. 7 is a schematic diagram of the connection between computing devices 500A and 500B provided by an embodiment of the present application through a network.
  • the digital world is a virtual world built on the real world, and the real world can also be called the physical world.
  • the digital world and the real world need to be positioned, that is, the digital world and the real world need to be synchronized, and the working subject in the real world needs to determine its position in the digital world.
  • the pose may be, for example, a 6 degree of freedom pose (6DoF), that is, the position (coordinates) and orientation (rotation angle) of the working subject in the digital world.
  • 6DoF 6 degree of freedom pose
  • Digital twins can also be called digital twin systems, which are digital expressions of real things or processes with a specific purpose, and make the physical instance and the digital instance consistent through synchronization at appropriate frequencies. That is to say, the digital twin system is a system that can reflect the full life cycle process of the corresponding physical equipment in the real world.
  • digital twins are mostly operated by back-end personnel, while real-world sites are operated by on-site personnel. of. If there is no synchronization between the real-world site and the digital twin system, because the background personnel do not know the situation of the real-world site, the on-site personnel cannot see the content in the digital twin system, and cannot determine whether the real-world site and the digital twin system are consistent. Therefore, it is very necessary to determine the position and posture of the real-world work subject in the digital twin and achieve synchronization between the real-world scene and the digital twin system.
  • Step 110 Obtain multiple interface data.
  • multiple interface data can be obtained, and each interface data is determined based on the positioning algorithm.
  • the interface data is the data output by the output interface of the positioning algorithm.
  • a unified standard interface can be set up, and each positioning algorithm outputs interface data in the same format after passing through the standard interface.
  • the above positioning algorithm is used to position the sensor (sensor corresponding to the positioning algorithm) in the coordinate system of the positioning map.
  • the input of the positioning algorithm includes the data obtained by the sensor, and the data output by the output interface of the positioning algorithm is the interface data.
  • each of the interface data includes a pose, which is the pose of the sensor in the coordinate system of the positioning map, for example, the position (coordinates) of the sensor in the coordinate system of the positioning map. ), heading (corner).
  • each interface data also includes any one or a combination of the following information: range information, confidence, where the range information represents the interface data The range information of the pose included in the positioning map, and the confidence is the credibility of the pose.
  • first interface data includes pose
  • second interface data includes pose
  • first interface data includes pose and range information
  • second interface data includes pose and range information
  • first interface data includes pose, range information and confidence
  • the second interface data includes pose, range information and confidence.
  • the input of the above positioning algorithm in addition to the data obtained by the above sensor, may also include any one or a combination of the following information: parameters of the sensor, positioning Map, target moment.
  • the input of the positioning algorithm as an example, including the data obtained by the sensor and the target time, the pose included in each of the above interface data is the pose of the sensor in the coordinate system of the positioning map at the target time. .
  • the above positioning algorithm may include but is not limited to: laser positioning algorithm, visual positioning algorithm, global positioning system (GPS) positioning algorithm. bit algorithm, base station positioning algorithm, QR code positioning algorithm, 3D tracking algorithm, semantic positioning algorithm, etc.
  • GPS global positioning system
  • the above-mentioned sensor may be a lidar, and the data obtained by the sensor may be information obtained by the lidar.
  • the above-mentioned sensor can be a camera, and the data obtained by the sensor can be a picture taken by the camera.
  • the above-mentioned sensor can be a GPS, and the data obtained by the sensor can be a signal obtained by the GPS.
  • the above-mentioned sensor can be a base station, and the data obtained by the sensor can be the signal obtained by the base station.
  • the above positioning algorithm may be an algorithm for global positioning, or it may be an algorithm for local positioning, or it may be an algorithm for precise positioning, which is not specifically limited in the embodiments of this application.
  • the above-mentioned positioning map may also be constructed.
  • a 3D map corresponding to the physical world can be established based on the physical world and a 3D reconstruction algorithm, and then the positioning map can be obtained based on the 3D map and a positioning map construction algorithm.
  • the multiple interface data can be weighted and fused according to a data fusion algorithm (which may also be referred to as a fusion algorithm for short) to obtain the first data.
  • the first data includes a first posture, which represents the target posture determined by the sensor in the coordinate system of the positioning map.
  • the embodiments of this application do not specifically limit the above-mentioned data fusion algorithm, as long as the data can be fused.
  • the data fusion algorithm uses Kalman filtering for fusion. Specifically, for example, multiple interface data can be input to the Kalman filter as different observations of the same variable, and different interfaces can be set according to the parameters output by the Kalman filter (including but not limited to: variance and estimation bias). The weight of the data is weighted, and multiple interface data are weighted and fused based on the weight of different interface data to obtain the first posture.
  • the first data may also include any one or a combination of the following information: first range information, first confidence level, wherein the first range information Represents the range information of the first posture in the positioning map, and the first confidence level is the credibility of the first posture.
  • each of the plurality of interface data includes pose and range information.
  • the first interface data is pose 1 and range information 1
  • the second interface data is pose 2 and range information 2.
  • Embodiments of the present application can perform data fusion on pose and range information respectively included in the plurality of interface data according to a fusion algorithm to obtain the above-mentioned first pose and first range information. That is, in this implementation manner, the inputs of the fusion algorithm are multiple poses and multiple range information, and the first data output by the fusion algorithm is the first pose and the first range information.
  • the input of the fusion algorithm is pose 1 and range information 1, pose 2 and range information 2, and the output of the fusion algorithm is the first pose and the first range information.
  • each of the multiple interface data includes pose, range information and confidence.
  • the first interface data is pose 1, range information 1 and confidence 1
  • the second interface data is bit Posture 2, range information 2 and confidence level 2.
  • Embodiments of the present application can perform data fusion on poses, range information and confidence levels respectively included in the multiple interface data according to a fusion algorithm to obtain the above-mentioned first pose, first range information and first confidence level. That is, in this implementation, the inputs of the fusion algorithm are multiple poses, multiple range information, and multiple confidence levels, and the first data output by the fusion algorithm is the first pose, the first range information and the first level of confidence.
  • the inputs of the fusion algorithm are pose 1, range information 1 and confidence level 1, pose 2, range information 2 and confidence level 2, and the output is the above-mentioned first pose, first range information and first confidence level.
  • the second posture of the work subject in the coordinate system of the physical world can be obtained based on the first posture, and the physical world
  • the coordinate system transformation relationship between the coordinate system and the coordinate system of the positioning map determines the third posture of the working subject in the coordinate system of the positioning map.
  • the third pose is the 6 degree of freedom (6DoF) pose of the working subject in the coordinate system of the positioning map, that is, the position (coordinates) and orientation (coordinates) of the working subject in the coordinate system of the positioning map ( corner).
  • the first posture as the sensor's posture in the coordinate system of the positioning map at the target time T
  • the first posture, the second posture, and the coordinate system and positioning of the physical world The coordinate system conversion relationship between the coordinate systems of the map determines the third pose of the work subject in the coordinate system of the positioning map at time T1 through the tracking algorithm.
  • time T1 may be the same as target time T, or may be any time next to target time T.
  • the above-mentioned tracking algorithm is not specifically limited in the embodiments of this application, and may include but is not limited to: visual-inertial odometry (VIO), laser-inertial odometry (LIO), wheel speed, etc.
  • VIO visual-inertial odometry
  • LIO laser-inertial odometry
  • wheel speed etc.
  • the range of the pose in the coordinate system of the positioning map in addition to obtaining the pose of the working subject in the coordinate system of the positioning map at time T1, the range of the pose in the coordinate system of the positioning map, the confidence level of the pose (or reliability, confidence level), etc.
  • multiple interface data can be determined based on a variety of different positioning algorithms, and the multiple interface data can be data fused to obtain the first attitude, and the first attitude and the coordinate system of the work subject in the physical world can be obtained.
  • the pose below determines the pose of the working subject in the coordinate system of the positioning map.
  • This method can obtain multiple interface data for data fusion, and the multiple interface data are determined based on multiple positioning algorithms. Therefore, since multiple positioning calculations are obtained
  • the interface data determined separately by the method has strong scalability, and the pose of the working subject in the coordinate system of the positioning map is determined based on the first pose obtained by merging multiple interface data, with high accuracy.
  • FIG. 2 is a schematic flow chart of another method for determining pose provided by an embodiment of the present application. As shown in Figure 2, the method may include steps 210-280, and steps 210-280 will be described in detail below.
  • Step 210 Build a positioning map.
  • the offline mapping module can first construct a 3D map corresponding to the physical world based on the physical world and the 3D reconstruction algorithm, and then construct a positioning map based on the 3D map and positioning method.
  • the 3D map outputs the following information: point cloud map, camera image, camera pose, depth map, etc.
  • the positioning map can be constructed based on the positioning method and the depth map, point cloud map and other information in the 3D map.
  • the 3D reconstruction algorithm and positioning algorithm please refer to the description in step 110, which will not be described again here.
  • Step 220 Determine multiple interface data respectively according to multiple global positioning algorithms.
  • the positioning module may include global positioning based on the global positioning algorithm.
  • the global positioning algorithm is used to determine the rough positioning of the sensor in the coordinate system of the positioning map.
  • the global positioning algorithm may include but is not limited to: laser global positioning algorithm, visual retrieval positioning algorithm, GPS positioning algorithm, etc.
  • the first global positioning algorithm is a laser global positioning algorithm.
  • the input information of the first global positioning algorithm includes but is not limited to: data obtained by the sensor, positioning map, target time T, and sensor parameters.
  • the interface data 1 output by the first global positioning algorithm includes but is not limited to: the sensor's pose 1 in the positioning map at the target time T, the range of the pose 1 in the positioning map, and the confidence of the pose 1 wait.
  • the data obtained by the sensor is, for example, the point cloud output by the lidar;
  • the sensor parameters include external parameters and internal parameters, and the sensor external parameters include but are not limited to: the number of lines of the lidar (for example, 4 lines, 8 lines, 16 lines, 32 lines , 128 lines, etc.), and the angle between each two lines.
  • the internal parameters of the sensor include but are not limited to: the conversion relationship between the coordinate system of the lidar and the coordinate system of the work subject, the time of the lidar and the time of the work subject.
  • the conversion relationship between them; the sensor's pose 1 in the positioning map at the target time T is the pose 1 of the lidar in the coordinate system of the positioning map at the target time T.
  • the second global positioning algorithm is a visual retrieval positioning algorithm.
  • the input information of the second global positioning algorithm includes but is not limited to: data obtained by the sensor, positioning map, target time T, and sensor parameters.
  • the output interface data 2 includes but is not limited to: the position of the sensor in the positioning map at the target time T. Position 2, the range of position 2 in the positioning map, the confidence of position 2, etc.
  • the data obtained by the sensor is, for example, the point cloud output by the camera; the sensor parameters include external parameters and internal parameters.
  • the external parameters of the sensor include but are not limited to: GPS channel number, tracking sensitivity, capture sensitivity, etc.
  • the internal parameters of the sensor include but are not limited to: GPS The conversion relationship between the coordinate system and the coordinate system of the work subject, the conversion relationship between the time of the GPS and the time of the work subject; the pose 3 of the sensor in the positioning map at the target time T is the GPS position at the target time T Position pose 3 in the coordinate system of the positioning map.
  • Step 230 Perform data fusion on the interface data 1, interface data 2 and interface data 3 respectively determined according to multiple global positioning algorithms based on Kalman filtering to obtain fused data 1, which includes pose 4.
  • the three interface data obtained by the above three global positioning algorithms can be fused through pose Kalman filtering to obtain fused data 1.
  • the pose 4 included in the above fusion data 1 can be obtained by data fusion of pose 1, pose 2 and pose 3.
  • the range of pose 4 included in the fusion data 1 in the positioning map may be data fusion of the range of pose 1 in the positioning map, the range of pose 2 in the positioning map, and the range of pose 3 in the positioning map. owned.
  • the confidence of pose 4 included in fused data 1 may be obtained by data fusion of the confidence of pose 1, the confidence of pose 2, and the confidence of pose 3.
  • Step 240 Determine multiple interface data according to multiple local positioning algorithms and pose 4.
  • step 240 is optional.
  • the second local positioning algorithm is a visual PNP algorithm.
  • the input information of the second local positioning algorithm includes but is not limited to: pose 4, data obtained by the sensor, positioning map, target time T, and sensor parameters.
  • the interface data 5 output by the second local positioning algorithm includes but is not limited to: the sensor's pose 6 in the positioning map at the target time T, the range of the pose 6 in the positioning map, and the confidence of the pose 6 wait.
  • the data obtained by the sensor is, for example, the point cloud output by the camera; the sensor parameters include external parameters and internal parameters.
  • the external parameters of the sensor include but are not limited to: the focal length, aperture, IOS sensitivity of the camera, etc.
  • the internal parameters of the sensor include but are not limited to: the camera's The conversion relationship between the coordinate system and the coordinate system of the work subject, the conversion relationship between the camera's time and the time of the work subject; the pose 6 of the sensor in the positioning map at the target time T is the camera's position at the target time T Position pose 6 in the coordinate system of the positioning map.
  • Step 250 Perform data fusion on the interface data 4 and interface data 5 respectively determined according to multiple local positioning algorithms based on Kalman filtering to obtain fused data 2, which includes pose 7.
  • the above two interface data are interface data 4 and interface data 5 respectively.
  • Interface data 4 includes the sensor's pose 5 in the positioning map at the target time T and the range of the pose 5 in the positioning map.
  • the interface data 5 includes the sensor's pose 6 in the positioning map at the target time T, the range of this pose 6 in the positioning map, and the confidence of this pose 6.
  • the embodiment of the present application can input the interface data 4 and the interface data 5 into the Kalman filter, and set the corresponding weights of the interface data 4 and the interface data 5 respectively according to the variance or estimated deviation of the Kalman filter output, and according to the interface data
  • the weight of interface data 4 and the weight of interface data 5 are weighted and fused to obtain fused data 2.
  • the fusion data 2 includes pose 7, the range of pose 7 in the positioning map, and the confidence of pose 7, where pose 7 represents the local positioning of the sensor in the coordinate system of the positioning map.
  • Step 260 Determine multiple interface data based on multiple precise positioning algorithms and pose 4 and pose 7.
  • the positioning module may include precise positioning based on a precise positioning algorithm. It should be understood that the precise positioning algorithm is used to determine the precise positioning of the sensor in the coordinate system of the positioning map.
  • precise positioning algorithms may include but are not limited to: 3D tracking algorithms, semantic positioning algorithms, QR code positioning algorithms, etc.
  • the intrinsic parameters of the sensor include but are not limited to: the coordinate system of the camera.
  • the conversion relationship between the coordinate system of the work subject and the camera's time and the time of the work subject; the pose 8 of the sensor in the positioning map at the target time T is the position of the camera in the positioning map at the target time T The pose in the coordinate system 8.
  • the second precise positioning algorithm is a semantic positioning algorithm.
  • the input information of the second precise positioning algorithm includes but is not limited to: pose 4, pose 7, data obtained by the sensor, positioning map, target time T, and sensor parameters.
  • the interface data 7 output by the second precise positioning algorithm includes but is not limited to: the precise pose 9 of the sensor in the positioning map at the target time T, the range of the precise pose 9 in the positioning map, the precise pose 9 confidence level, etc.
  • the data obtained by the sensor is, for example, the point cloud output by the camera; the sensor parameters include extrinsic parameters and intrinsic parameters.
  • the extrinsic parameters of the sensor include but are not limited to: the focal length, aperture, IOS sensitivity, etc. of the camera.
  • the intrinsic parameters of the sensor include but are not limited to: the coordinate system of the camera.
  • the conversion relationship between the coordinate system of the work subject and the camera's time and the time of the work subject; the pose 9 of the sensor in the positioning map at the target time T is the position of the camera in the positioning map at the target time T The pose in the coordinate system 9.
  • Step 270 Perform data fusion on the interface data 6 and interface data 7 respectively determined according to multiple precise positioning algorithms based on Kalman filtering to obtain fused data 3, which includes pose 10.
  • interface data 6 and interface data 7 can be data fused through pose Kalman filtering to obtain fused data 3.
  • Step 280 According to pose 10, pose 11 and determine the coordinate system transformation relationship, the pose of the working subject in the coordinate system of the positioning map.
  • the tracking module can also based on the pose 10, the pose 11 and the coordinate system transformation relationship to determine the posture of the working subject in the coordinate system of the positioning map.
  • the pose 11 represents the pose of the working subject in the coordinate system of the physical world
  • the coordinate system conversion relationship is the conversion relationship between the coordinate system of the positioning map and the coordinate system of the physical world.
  • the pose 10 as the sensor's pose in the coordinate system of the positioning map at the target time T
  • the pose 11 of the work subject in the coordinate system of the physical world and the positioning
  • the conversion relationship between the coordinate system of the map and the coordinate system of the physical world determines the posture of the working subject in the coordinate system of the positioning map at time T1 through the tracking algorithm.
  • time T1 may be the same as target time T, or may be any time next to target time T.
  • time T1 may be the same as target time T, or may be any time next to target time T.
  • Figure 4 is a schematic block diagram of a device 400 for determining posture provided by an embodiment of the present application.
  • the device 400 can be implemented by software, hardware, or a combination of both.
  • the device 400 provided by the embodiment of the present application can implement the method flow shown in Figures 1-2 of the embodiment of the present application.
  • the device 400 is used to implement the functions of the positioning module and the tracking module shown in Figure 3 .
  • the device 400 for determining posture includes: an acquisition module 410, a fusion module 420, and a determination module 430.
  • the acquisition module 410 and the fusion module 420 correspond to the above positioning module and are used to implement the functions of the positioning module.
  • the determination module 430 corresponds to the tracking module above and is used to implement the function of the tracking module.
  • the acquisition module 410 is used to obtain multiple interface data, each of which includes a pose, which is the pose of the sensor in the coordinate system of the positioning map; the fusion module 420 is used to obtain the multiple interface data according to the fusion algorithm. Perform weighted fusion to obtain first data, which includes a first posture; the determination module 430 is used to determine where the working subject is in the positioning map based on the first posture, the second posture, and the coordinate system conversion relationship.
  • the third pose under the coordinate system of The relationship is the conversion relationship between the coordinate system of the positioning map and the coordinate system of the physical world.
  • each interface data is determined based on a positioning algorithm.
  • the input of the positioning algorithm is the data obtained by the sensor, and the data output by the output interface of the positioning algorithm is the interface data.
  • each of the interface data also includes any one or a combination of more of the following information: range information, confidence, wherein the range information indicates that the pose included in the interface data is in the Position the range information in the map, and the confidence is the credibility of the pose.
  • the first data also includes any one or a combination of more of the following information: first range information, first confidence level, wherein the first range information represents the first posture.
  • first confidence level is the credibility of the first posture.
  • the input of the positioning algorithm also includes any one or a combination of the following information: parameters of the sensor, target time.
  • the pose is the pose of the sensor in the coordinate system of the positioning map at the target time.
  • the fusion algorithm is a Kalman filter fusion algorithm.
  • the fusion module 420 is specifically configured to: input the multiple interface data as different observation values to the Kalman filter, obtain the output result of the Kalman filter, and determine the respective values of the multiple interface data according to the result.
  • the corresponding weight parameter is used, and the multiple interface data are weighted and fused according to the weight parameter corresponding to each interface data to obtain the first data.
  • the positioning algorithm is a global positioning algorithm
  • the pose included in the interface data is the global positioning of the sensor in the coordinate system of the positioning map.
  • the positioning algorithm is a local positioning algorithm
  • the pose included in the interface data is the local positioning of the sensor in the coordinate system of the positioning map
  • the input of the positioning algorithm also includes a fourth bit. pose
  • the fourth pose is the global positioning of the sensor in the coordinate system of the positioning map.
  • the positioning algorithm is a precise positioning algorithm
  • the pose included in the interface data is the precise positioning of the sensor in the coordinate system of the positioning map
  • the input of the positioning algorithm also includes a fourth bit.
  • pose, the fifth pose, the fifth pose is the local positioning of the sensor in the coordinate system of the positioning map.
  • the device 400 further includes: a building module 440, configured to build a 3D map corresponding to the physical world based on the physical world and a 3D reconstruction algorithm; and obtain the positioning map based on the 3D map and the positioning map construction algorithm.
  • a building module 440 configured to build a 3D map corresponding to the physical world based on the physical world and a 3D reconstruction algorithm; and obtain the positioning map based on the 3D map and the positioning map construction algorithm.
  • the device 400 here can be embodied in the form of a functional module.
  • the term "module” here can be implemented in the form of software and/or hardware, and is not specifically limited.
  • a "module” may be a software program, a hardware circuit, or a combination of both that implements the above functions.
  • the following takes the obtaining module as an example to introduce the implementation method of obtaining the module.
  • an acquisition module may include code running on a computing instance.
  • the computing instance may include at least one of a physical host (computing device), a virtual machine, and a container.
  • the above computing instance may be one or more.
  • obtaining modules can include code that runs on multiple hosts/VMs/containers.
  • multiple hosts/virtual machines/containers used to run the code can be distributed in the same region (region) or in different regions.
  • multiple hosts/virtual machines/containers used to run the code can be distributed in the same availability zone (AZ) or in different AZs.
  • Each AZ includes one data center or multiple AZs. geographically close data centers. Among them, usually a region can include multiple AZs.
  • the multiple hosts/VMs/containers used to run the code can be distributed in the same virtual private cloud (VPC), or across multiple VPCs.
  • VPC virtual private cloud
  • Cross-region communication between two VPCs in the same region and between VPCs in different regions requires a communication gateway in each VPC, and the interconnection between VPCs is realized through the communication gateway. .
  • the acquisition module is an example of a hardware functional unit.
  • the acquisition module may include at least one computing device, such as a server.
  • the acquisition module can also be a device implemented using an application-specific integrated circuit (ASIC) or a programmable logic device (PLD).
  • ASIC application-specific integrated circuit
  • PLD programmable logic device
  • the above-mentioned PLD can be a complex programmable logical device (CPLD), a field-programmable gate array (field-programmable gate array, FPGA), a general array logic (generic array logic, GAL), or any combination thereof.
  • CPLD complex programmable logical device
  • FPGA field-programmable gate array
  • GAL general array logic
  • Multiple computing devices included in the acquisition module can be distributed in the same region or in different in region. Multiple computing devices included in the acquisition module can be distributed in the same AZ or in different AZs. Similarly, multiple computing devices included in the acquisition module can be distributed in the same VPC or in multiple VPCs.
  • the plurality of computing devices may be any combination of computing devices such as servers, ASICs, PLDs, CPLDs, FPGAs, and GALs.
  • modules of each example described in the embodiments of the present application can be implemented by electronic hardware, or a combination of computer software and electronic hardware. Whether these functions are performed in hardware or software depends on the specific application and design constraints of the technical solution. Skilled artisans may implement the described functionality using different methods for each specific application, but such implementations should not be considered beyond the scope of this application.
  • the device when the device provided in the above embodiment performs the above method, only the division of the above functional modules is used as an example. In actual application, the above function allocation can be completed by different functional modules as needed, that is, the device The internal structure is divided into different functional modules to complete all or part of the functions described above.
  • the obtaining module can be used to perform any step in the above method
  • the fusion module can be used to perform any step in the above method
  • the determining module can be used to perform any step in the above method.
  • the steps that the acquisition module, the fusion module, and the determination module are responsible for implementing can be specified as needed.
  • the acquisition module, the fusion module, and the determination module respectively implement different steps in the above method to realize all the functions of the above device.
  • the methods provided by the embodiments of the present application can be executed by a computing device, and the computing device can also be called a computer system. It includes the hardware layer, the operating system layer running on the hardware layer, and the application layer running on the operating system layer.
  • This hardware layer includes hardware such as processing units, memory, and memory control units, and then the functions and structures of this hardware are described in detail.
  • the operating system is any one or more computer operating systems that implement business processing through processes, such as Linux operating system, Unix operating system, Android operating system, iOS operating system or windows operating system, etc.
  • This application layer includes applications such as browsers, address books, word processing software, and instant messaging software.
  • the computer system is a handheld device such as a smart phone, or a terminal device such as a personal computer, which is not particularly limited by this application, as long as it can use the method provided by the embodiment of this application.
  • the execution subject of the method provided by the embodiments of the present application may be a computing device, or a functional module in the computing device that can call a program and execute the program.
  • a computing device provided by an embodiment of the present application will be described in detail below with reference to FIG. 5 .
  • FIG. 5 is an architectural schematic diagram of a computing device 500 provided by an embodiment of the present application.
  • the computing device 500 may be a server or a computer or other device with computing capabilities.
  • Computing device 500 shown in FIG. 5 includes at least one processor 510 and memory 520.
  • the processor 510 executes the instructions in the memory 520, so that the computing device 500 implements the method provided by this application.
  • the processor 510 executes the instructions in the memory 520, so that the computing device 500 implements each functional module provided by this application, thereby implementing the method provided by this application.
  • computing device 500 also includes communication interface 530.
  • the communication interface 530 uses transceiver modules such as, but not limited to, network interface cards and transceivers to implement communication between the computing device 500 and other devices or communication networks.
  • the computing device 500 further includes a system bus 540, wherein the processor 510, the memory 520, and the communication interface 530 are respectively connected to the system bus 540.
  • Processor 510 has access to memory 520 via system bus 540,
  • the processor 510 can read and write data or execute code in the memory 520 through the system bus 540 .
  • the system bus 540 is a peripheral component interconnect express (PCI) bus or an extended industry standard architecture (EISA) bus.
  • PCI peripheral component interconnect express
  • EISA extended industry standard architecture
  • the system bus 540 is divided into an address bus, a data bus, a control bus, etc. For ease of presentation, only one thick line is used in Figure 5, but it does not mean that there is only one bus or one type of bus.
  • the function of the processor 510 is mainly to interpret the instructions (or codes) of the computer program and process data in the computer software.
  • the instructions of the computer program and the data in the computer software can be stored in the memory 520 or the cache 516 .
  • the processor 510 may be an integrated circuit chip with signal processing capabilities.
  • the processor 510 is a general-purpose processor, a digital signal processor (DSP), an application specific integrated circuit (ASIC), a field programmable gate array (FPGA) ) or other programmable logic devices, discrete gate or transistor logic devices, or discrete hardware components.
  • the general-purpose processor is a microprocessor or the like.
  • the processor 510 is a central processing unit (CPU).
  • each processor 510 includes at least one processing unit 512 and a memory control unit 514.
  • the processing unit 512 is also called a core or core and is the most important component of the processor.
  • the processing unit 512 is manufactured from single crystal silicon using a certain production process. All calculations, receiving commands, storing commands, and processing data of the processor are performed by the core.
  • the processing units run program instructions independently, using the power of parallel computing to speed up the program.
  • Various processing units have fixed logical structures.
  • the processing units include logical units such as a first-level cache, a second-level cache, an execution unit, an instruction level unit, and a bus interface.
  • the memory control unit 514 is used to control data interaction between the memory 520 and the processing unit 512 . Specifically, the memory control unit 514 receives a memory access request from the processing unit 512 and controls access to the memory based on the memory access request.
  • the memory control unit is a device such as a memory management unit (MMU).
  • each memory control unit 514 performs addressing of the memory 520 through the system bus.
  • an arbiter (not shown in FIG. 5 ) is configured in the system bus, and the arbiter is responsible for processing and coordinating competing accesses of multiple processing units 512 .
  • each processor 510 also includes a cache 516, where a cache is a buffer for data exchange (called a cache).
  • a cache is a buffer for data exchange (called a cache).
  • the processing unit 512 When the processing unit 512 wants to read data, it will first search the required data from the cache. If it is found, it will be executed directly. If it is not found, it will be searched from the memory. Since the cache runs much faster than the memory, the role of the cache is to help the processing unit 512 run faster.
  • the memory 520 can provide a running space for processes in the computing device 500.
  • the memory 520 stores a computer program (specifically, the code of the program) for generating the process.
  • the processor allocates corresponding storage space for the process in the memory 520 .
  • the above-mentioned storage space further includes a text segment, an initialization data segment, a bit initialization data segment, a stack segment, a heap segment, and so on.
  • the memory 520 stores data generated during the running of the process, such as intermediate data, process data, etc., in the storage space corresponding to the above-mentioned process.
  • memory 520 is volatile memory or non-volatile memory, or may include both volatile and non-volatile memory.
  • non-volatile memory is read-only memory (ROM), programmable ROM (PROM), erasable programmable read-only memory (erasable PROM, EPROM), electrically erasable memory Except electrically programmable read-only memory (EPROM, EEPROM) or flash memory.
  • Volatile memory is random access memory (RAM), which is used as an external cache.
  • RAM static random access memory
  • DRAM dynamic random access memory
  • SDRAM synchronous dynamic random access memory
  • double data rate SDRAM double data rate SDRAM
  • DDR SDRAM double data rate SDRAM
  • ESDRAM enhanced synchronous dynamic random access memory
  • SLDRAM synchronous link dynamic random access memory
  • direct rambus RAM direct rambus RAM
  • the structure of the computing device 500 listed above is only an illustrative description, and the application is not limited thereto.
  • the computing device 500 in the embodiment of the application includes various hardware in the computer system in the prior art.
  • the computing device 500 also includes Other memories other than memory 520, such as disk memory, etc.
  • computing device 500 may also include other components necessary for normal operation.
  • the above-mentioned computing device 500 may also include hardware devices that implement other additional functions.
  • the above-mentioned computing device 500 may only include components necessary to implement the embodiments of the present application, and does not necessarily include all components shown in FIG. 5 .
  • An embodiment of the present application also provides a computing device cluster.
  • the computing device cluster includes at least one computing device.
  • the computing device may be a server.
  • the computing device may also be a terminal device such as a desktop computer, a laptop computer, or a smartphone.
  • the computing device cluster includes at least one computing device 500 .
  • the same instructions for performing the above method may be stored in the memory 520 of one or more computing devices 500 in the computing device cluster.
  • the memory 520 in one or more computing devices 500 in the computing device cluster may also store partial instructions for executing the above method.
  • a combination of one or more computing devices 500 may jointly execute the instructions of the above method.
  • one or more computing devices in a cluster of computing devices may be connected through a network.
  • the network may be a wide area network or a local area network, etc.
  • Figure 7 shows a possible implementation. As shown in Figure 7, two computing devices 500A and 500B are connected through a network. Specifically, the connection to the network is made through a communication interface in each computing device.
  • a computer program product containing instructions is also provided.
  • the computer program product may be a software or program product containing instructions that can be run on a computing device cluster or stored in any available medium.
  • the computing device cluster is caused to execute the method provided above, or the computing device cluster is caused to implement the function of the device provided above.
  • a computer-readable storage medium can be any available medium that a computing device can store or a data storage device such as a data center that contains one or more available media.
  • the available media may be magnetic media (eg, floppy disk, hard disk, tape), optical media (eg, DVD), or semiconductor media (eg, solid state drive), etc.
  • the computer-readable storage medium includes instructions that, when executed on a computing device, cause the computing device to perform the method provided above.
  • a computer-readable storage medium can be any available medium that a computing device can store or a data storage device such as a data center that contains one or more available media.
  • the available media may be magnetic media (eg, floppy disk, hard disk, tape), optical media (eg, DVD), or semiconductor media (eg, solid state drive), etc.
  • the computer-readable storage medium includes instructions, and when the instructions in the computer-readable storage medium are executed by the computing device cluster, the computing device cluster performs the method provided above.
  • the size of the sequence numbers of the above-mentioned processes does not mean the order of execution.
  • the execution order of each process should be determined by its functions and internal logic, and should not be used in the embodiments of the present application.
  • the implementation process constitutes any limitation.
  • the disclosed systems, devices and methods can be implemented in other ways.
  • the device embodiments described above are only illustrative.
  • the division of the units is only a logical function division. In actual implementation, there may be other division methods.
  • multiple units or components may be combined or can be integrated into another system, or some features can be ignored, or not implemented.
  • the coupling or direct coupling or communication connection between each other shown or discussed may be through some interfaces, and the indirect coupling or communication connection of the devices or units may be in electrical, mechanical or other forms.
  • the units described as separate components may or may not be physically separated, and the components shown as units may or may not be physical units, that is, they may be located in one place, or they may be distributed to multiple network units. Some or all of the units can be selected according to actual needs to achieve the purpose of the solution of this embodiment.
  • each functional unit in each embodiment of the present application can be integrated into one processing unit, each unit can exist physically alone, or two or more units can be integrated into one unit.
  • the functions are implemented in the form of software functional units and sold or used as independent products, they can be stored in a computer-readable storage medium.
  • the technical solution of the present application is essentially or the part that contributes to the existing technology or the part of the technical solution can be embodied in the form of a software product.
  • the computer software product is stored in a storage medium, including Several instructions are used to cause a computer device (which may be a personal computer, a server, or a network device, etc.) to execute all or part of the steps of the methods described in various embodiments of this application.
  • the aforementioned storage media include: U disk, mobile hard disk, read-only memory (ROM), random access memory (RAM), magnetic disk or optical disk and other media that can store program code. .

Landscapes

  • Engineering & Computer Science (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Remote Sensing (AREA)
  • Automation & Control Theory (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Length Measuring Devices With Unspecified Measuring Means (AREA)
  • Image Processing (AREA)

Abstract

一种确定位姿的方法、装置以及计算设备,该方法包括:获得多个接口数据(110),根据融合算法对多个接口数据进行加权融合,得到第一数据,第一数据包括第一位姿(120),根据第一位姿,第二位姿以及坐标系转换关系确定作业主体在定位地图的坐标系下的第三位姿(130),其中,每个接口数据包括位姿,该位姿为传感器在定位地图的坐标系下的位姿,该第一数据包括第一位姿,第二位姿为作业主体在物理世界的坐标系下的位姿,定位地图是根据物理世界确定的,坐标系转换关系为定位地图的坐标系和物理世界的坐标系之间的转换关系。该方法能够提高作业主体在定位地图的坐标系下的位姿的准确性。

Description

确定位姿的方法、装置以及计算设备
本申请要求于2022年07月01日提交中国国家知识产权局、申请号为202210773933.9、申请名称为“多模态融合定位方法及***”的中国专利申请的优先权,以及于2022年9月27日提交中国国家知识产权局、申请号为202211181464.8、申请名称为“确定位姿的方法、装置以及计算设备”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
技术领域
本申请涉及空间定位领域,并且更具体地,涉及一种确定位姿的方法、装置以及计算设备。
背景技术
数字世界为基于真实世界构建的虚拟世界,真实世界也可以称为物理世界。数字世界和真实世界之间需要进行定位,也即数字世界和真实世界之间需要进行同步,真实世界中的作业主体需要确定其在数字世界中的位姿。该位姿例如可以是6自由度位姿(6degree of freedom,6DoF),即作业主体在数字世界中的位置(坐标)和朝向(转角)。
以数字世界为数字孪生为例。一般而言,数字孪生大多数是由后台人员操作的,真实世界的现场是由现场人员操作的。如果真实世界的现场和数字孪生***之间没有同步,由于后台人员不清楚真实世界的现场的情况,现场人员也看不到数字孪生***中的内容,无法确定真实世界的现场和数字孪生***是否一致。因此,确定真实世界的作业主体在数字孪生中的位姿,实现真实世界的现场和数字孪生***之间进行同步,是非常有必要的。
一种相关的技术方案中,基于一种定位算法确定真实世界中的作业主体在数字世界中的位姿,由于仅使用了一种定位算法,确定的位姿的准确性不高。并且,该相关的技术方案中仅使用了一种定位算法,可扩展性较差。
因此,如何提高位姿的准确性成为亟需要解决的技问题。。
发明内容
本申请提供一种确定位姿的方法、装置以及计算设备,该方法能够提高提高作业主体在定位地图的坐标系下的位姿的准确性。
第一方面,提供了一种确定位姿的方法,包括:获得多个接口数据,根据融合算法对该多个接口数据进行加权融合,得到第一数据,并根据该第一位姿,第二位姿,以及坐标系转换关系确定作业主体在该定位地图的坐标系下的第三位姿,其中,每个该接口数据包括位姿,该位姿为传感器在定位地图的坐标系下的位姿,该第一数据包括第一位姿,该第二位姿为该作业主体在物理世界的坐标系下的位姿,该定位地图是根据该物理世界确定的,该坐标系转换关系为该定位地图的坐标系和该物理世界的坐标系之间的转换关系。
上述技术方案中,可以分别根据多种不同的定位算法确定多个接口数据,对该多个接口数据进行数据融合得到第一位姿,并根据第一位姿和作业主体在物理世界的坐标系下的位姿确定作业主体在定位地图的坐标系下的位姿。该方法可以获得进行数据融合的多个接口数据,该多个接口数据是根据多个定位算法分别确定的。因此,由于获得了多个定位算法分别确定的接口数据,可扩展性较强,并且通过根据多个接口数据融合后得到的第一位姿确定作业主体在定位地图的坐标系下的位姿,准确性较高。
结合第一方面,在第一方面的某些实现方式中,每个接口数据是基于定位算法确定的,该定位算法的输入为传感器获取的数据,该定位算法的输出接口输出的数据为该接口数据。
结合第一方面,在第一方面的某些实现方式中,每个该接口数据还包括以下信息中的任一种或多种的组合:范围信息,置信度,其中,该范围信息表示该接口数据中包括的位姿在该定位地图中的范围信息,该置信度为该位姿的可信度。
结合第一方面,在第一方面的某些实现方式中,该第一数据中还包括以下信息中的任一种或多种的组合:第一范围信息,第一置信度,其中,该第一范围信息表示该第一位姿在该定位地图中的范围信息,该第一置信度为该第一位姿的可信度。
结合第一方面,在第一方面的某些实现方式中,该定位算法的输入还包括以下信息中的任一种或多种的组合:该传感器的参数,目标时刻。
结合第一方面,在第一方面的某些实现方式中,该位姿为该传感器在该目标时刻下在该定位地图的坐标系下的位姿。
结合第一方面,在第一方面的某些实现方式中,该融合算法为卡尔曼滤波融合算法。
结合第一方面,在第一方面的某些实现方式中,将该多个接口数据作为不同观测值输入至卡尔曼滤波器,得到该卡尔曼滤波器的输出结果,根据该结果确定所述多个接口数据分别对应的权重参数,并分别根据每个接口数据对应的权重参数,对该多个接口数据进行加权融合,得到该第一数据。
结合第一方面,在第一方面的某些实现方式中,该定位算法为全局定位算法,该接口数据中包括的位姿为该传感器在该定位地图的坐标系下的全局定位。
结合第一方面,在第一方面的某些实现方式中,该定位算法为局部定位算法,该接口数据中包括的位姿为该传感器在该定位地图的坐标系下的局部定位,该定位算法的输入还包括第四位姿,该第四位姿为该传感器在该定位地图的坐标系下的全局定位。
结合第一方面,在第一方面的某些实现方式中,该定位算法为精定位算法,该接口数据中包括的位姿为该传感器在该定位地图的坐标系下的精定位,该定位算法的输入还包括第四位姿,第五位姿,该第五位姿为该传感器在该定位地图的坐标系下的局部定位。
结合第一方面,在第一方面的某些实现方式中,在该获得多个接口数据之前,该方法还包括:根据该物理世界和3D重建算法建立该物理世界对应的3D地图;根据该3D地图以及定位地图构建算法获得该定位地图。
第二方面,提供了一种确定位姿的装置,其特征在于,包括:获得模块,融合模块,确定模块,其中,获得模块用于获得多个接口数据,每个该接口数据包括位姿,该位姿为传感器在定位地图的坐标系下的位姿;融合模块用于根据融合算法对该多个接口数据进行加权融合,得到第一数据,该第一数据包括第一位姿;确定模块用于根据该第一位姿,第二位姿,以及坐标系转换关系确定作业主体在该定位地图的坐标系下的第三位姿,该第二 位姿为该作业主体在物理世界的坐标系下的位姿,该定位地图是根据该物理世界确定的,该坐标系转换关系为该定位地图的坐标系和该物理世界的坐标系之间的转换关系。
结合第二方面,在第二方面的某些实现方式中,每个接口数据是基于定位算法确定的,该定位算法的输入为传感器获取的数据,该定位算法的输出接口输出的数据为该接口数据。
结合第二方面,在第二方面的某些实现方式中,每个该接口数据还包括以下信息中的任一种或多种的组合:范围信息,置信度,其中,该范围信息表示该接口数据中包括的位姿在该定位地图中的范围信息,该置信度为该位姿的可信度。
结合第二方面,在第二方面的某些实现方式中,该第一数据中还包括以下信息中的任一种或多种的组合:第一范围信息,第一置信度,其中,该第一范围信息表示该第一位姿在该定位地图中的范围信息,该第一置信度为该第一位姿的可信度。
结合第二方面,在第二方面的某些实现方式中,该定位算法的输入还包括以下信息中的任一种或多种的组合:该传感器的参数,目标时刻。
结合第二方面,在第二方面的某些实现方式中,该位姿为该传感器在该目标时刻下在该定位地图的坐标系下的位姿。
结合第二方面,在第二方面的某些实现方式中,该融合算法为卡尔曼滤波融合算法。
结合第二方面,在第二方面的某些实现方式中,该融合模块具体用于:将该多个接口数据作为不同观测值输入至卡尔曼滤波器,得到该卡尔曼滤波器的输出结果,根据该结果确定所述多个接口数据分别对应的权重参数,并分别根据每个接口数据对应的权重参数,对该多个接口数据进行加权融合,得到该第一数据。
结合第二方面,在第二方面的某些实现方式中,该定位算法为全局定位算法,该接口数据中包括的位姿为该传感器在该定位地图的坐标系下的全局定位。
结合第二方面,在第二方面的某些实现方式中,该定位算法为局部定位算法,该接口数据中包括的位姿为该传感器在该定位地图的坐标系下的局部定位,该定位算法的输入还包括第四位姿,该第四位姿为该传感器在该定位地图的坐标系下的全局定位。
结合第二方面,在第二方面的某些实现方式中,该定位算法为精定位算法,该接口数据中包括的位姿为该传感器在该定位地图的坐标系下的精定位,该定位算法的输入还包括第四位姿,第五位姿,该第五位姿为该传感器在该定位地图的坐标系下的局部定位。
结合第二方面,在第二方面的某些实现方式中,该装置还包括:构建模块,用于根据该物理世界和3D重建算法建立该物理世界对应的3D地图;根据该3D地图以及定位地图构建算法获得该定位地图。
第三方面,提供了一种计算设备,包括处理器和存储器,可选地,还包括输入输出接口。其中该处理器用于控制该输入输出接口收发信息,该存储器用于存储计算机程序,该处理器用于从存储器中调用并运行该计算机程序,使得该执行第一方面或第一方面任意一种可能的实现方式中该的方法。
可选地,该处理器可以是通用处理器,可以通过硬件来实现也可以通过软件来实现。当通过硬件实现时,该处理器可以是逻辑电路、集成电路等;当通过软件来实现时,该处理器可以是一个通用处理器,通过读取存储器中存储的软件代码来实现,该存储器可以集成在处理器中,可以位于该处理器之外,独立存在。
第四方面,提供了一种计算设备集群,包括至少一个计算设备,每个计算设备包括处 理器和存储器;该至少一个计算设备的处理器用于执行该至少一个计算设备的存储器中存储的指令,以使得该计算设备集群执行第一方面或第一方面任意一种可能的实现方式中该的方法。
第五方面,提供了一种芯片,该芯片获取指令并执行该指令来实现上述第一方面以及第一方面的任意一种实现方式中的方法。
可选地,作为一种实现方式,该芯片包括处理器与数据接口,该处理器通过该数据接口读取存储器上存储的指令,执行上述第一方面以及第一方面的任意一种实现方式中的方法。
可选地,作为一种实现方式,该芯片还可以包括存储器,该存储器中存储有指令,该处理器用于执行该存储器上存储的指令,当该指令被执行时,该处理器用于执行第一方面以及第一方面中的任意一种实现方式中的方法。
第六方面,提供了一种包含指令的计算机程序产品,当该指令被计算设备运行时,使得该计算设备执行如上述第一方面以及第一方面的任意一种实现方式中的方法。
第七方面,提供了一种包含指令的计算机程序产品,当该指令被计算设备集群运行时,使得该计算设备集群执行执行如上述第一方面以及第一方面的任意一种实现方式中的方法。
第八方面,提供了一种计算机可读存储介质,其特征在于,包括计算机程序指令,当该计算机程序指令由计算设备执行时,该计算设备执行如上述第一方面以及第一方面的任意一种实现方式中的方法。
作为示例,这些计算机可读存储包括但不限于如下的一个或者多个:只读存储器(read-only memory,ROM)、可编程ROM(programmable ROM,PROM)、可擦除的PROM(erasable PROM,EPROM)、Flash存储器、电EPROM(electrically EPROM,EEPROM)以及硬盘驱动器(harddrive)。
可选地,作为一种实现方式,上述存储介质具体可以是非易失性存储介质。
第九方面,提供了一种计算机可读存储介质,其特征在于,包括计算机程序指令,当该计算机程序指令由计算设备集群执行时,该计算设备集群执行如上述第一方面以及第一方面的任意一种实现方式中的方法。
作为示例,这些计算机可读存储包括但不限于如下的一个或者多个:只读存储器(read-only memory,ROM)、可编程ROM(programmable ROM,PROM)、可擦除的PROM(erasable PROM,EPROM)、Flash存储器、电EPROM(electrically EPROM,EEPROM)以及硬盘驱动器(harddrive)。
可选地,作为一种实现方式,上述存储介质具体可以是非易失性存储介质。
附图说明
图1是本申请实施例提供的一种确定位姿的方法的示意性流程图。
图2是本申请实施例提供的另一种确定位姿的方法的示意性流程图。
图3是本申请实施例提供的一种***架构图。
图4是本申请实施例提供的一种确定位姿的装置400的示意性框图。
图5是本申请实施例提供的一种计算设备500的架构示意图。
图6是本申请实施例提供的一种计算设备集群的架构示意图。
图7是本申请实施例提供的计算设备500A和500B之间通过网络进行连接的示意图。
具体实施方式
下面将结合附图,对本申请中的技术方案进行描述。
本申请将围绕包括多个设备、组件、模块等的***来呈现各个方面、实施例或特征。应当理解和明白的是,各个***可以包括另外的设备、组件、模块等,并且/或者可以并不包括结合附图讨论的所有设备、组件、模块等。此外,还可以使用这些方案的组合。
另外,在本申请实施例中,“示例的”、“例如”等词用于表示作例子、例证或说明。本申请中被描述为“示例”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用示例的一词旨在以具体方式呈现概念。
本申请实施例中,“相应的(corresponding,relevant)”和“对应的(corresponding)”有时可以混用,应当指出的是,在不强调其区别时,其所要表达的含义是一致的。
本申请实施例描述的业务场景是为了更加清楚地说明本申请实施例的技术方案,并不构成对于本申请实施例提供的技术方案的限定,本领域普通技术人员可知,随着网络架构的演变和新业务场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。
在本说明书中描述的参考“一个实施例”或“一些实施例”等意味着在本申请的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。由此,在本说明书中的不同之处出现的语句“在一个实施例中”、“在一些实施例中”、“在其他一些实施例中”、“在另外一些实施例中”等不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其他方式另外特别强调。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。
本申请中,“至少一个”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:包括单独存在A,同时存在A和B,以及单独存在B的情况,其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指的这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b,或c中的至少一项(个),可以表示:a,b,c,a-b,a-c,b-c,或a-b-c,其中a,b,c可以是单个,也可以是多个。
数字世界为基于真实世界构建的虚拟世界,真实世界也可以称为物理世界。数字世界和真实世界之间需要进行定位,也即数字世界和真实世界之间需要进行同步,真实世界中的作业主体需要确定其在数字世界中的位姿。该位姿例如可以是6自由度位姿(6degree of freedom,6DoF),即作业主体在数字世界中的位置(坐标)和朝向(转角)。
以数字世界为数字孪生为例。数字孪生也可以称为数字孪生***,是现实事物或过程具有特定目的的数字化表达,并通过适当频率的同步使物理实例与数字实例之间趋向一致。也即数字孪生***是一个可以反映真实世界中相对应的实体装备的全生命周期过程的***。一般而言,数字孪生大多数是由后台人员操作的,真实世界的现场是由现场人员操作 的。如果真实世界的现场和数字孪生***之间没有同步,由于后台人员不清楚真实世界的现场的情况,现场人员也看不到数字孪生***中的内容,无法确定真实世界的现场和数字孪生***是否一致。因此,确定真实世界的作业主体在数字孪生中的位姿,实现真实世界的现场和数字孪生***之间进行同步,是非常有必要的。
一种相关的技术方案中,基于一种定位算法确定真实世界中的作业主体在数字世界中的位姿,由于仅使用了一种定位算法,确定的位姿的准确性不高。并且,该相关的技术方案中仅使用了一种定位算法,可扩展性较差。
有鉴于此,本申请实施例提供了一种确定位姿的方法,可以提高作业主体在定位地图的坐标系下的位姿的准确性。
下面结合图1,对本申请实施例提供的一种确定位姿的方法进行详细描述。
图1是本申请实施例提供的一种确定位姿的方法的示意性流程图。如图1所示,该方法可以包括步骤110-130,下面分别对步骤110-130进行详细描述。
步骤110:获得多个接口数据。
本申请实施例中,可以获得多个接口数据,每个接口数据是根据定位算法确定的。应理解,接口数据为定位算法的输出接口输出的数据。一个示例,在实现的过程中,可以设置统一的标准接口,每个定位算法经过该标准接口后,分别输出格式相同的接口数据。
上述定位算法用于对传感器(与所述定位算法对应的传感器)在定位地图的坐标系下进行定位。该定位算法的输入包括所述传感器获取的数据,所述定位算法的输出接口输出的数据为所述接口数据。
以多个接口数据包括第一接口数据和第二接口数据为例,例如,根据第一定位算法获得第一接口数据,该第一定位算法的输入为所述传感器获取的数据,所述第一定位算法的输出接口输出的数据为所述第一接口数据。又如,根据第二定位算法获得第二接口数据,该第二定位算法的输入为所述传感器获取的数据,所述第二定位算法的输出接口输出的数据为所述第二接口数据。
一种可能的实现方式中,每个所述接口数据中均包括位姿,该位姿为传感器在定位地图的坐标系下的位姿,例如,传感器在定位地图的坐标系下的位置(坐标),朝向(转角)。
可选地,另一种可能的实现方式中,每个接口数据中还包括以下信息中的任一种或多种的组合:范围信息,置信度,其中,所述范围信息表示所述接口数据中包括的位姿在所述定位地图中的范围信息,所述置信度为所述位姿的可信度。
举例说明,以多个接口数据包括第一接口数据和第二接口数据为例。一个示例,第一接口数据包括位姿,第二接口数据包括位姿。另一个示例,第一接口数据包括位姿和范围信息,第二接口数据包括位姿和范围信息。另一个示例,第一接口数据包括位姿,范围信息以及置信度,第二接口数据包括位姿,范围信息以及置信度。
可选地,在一些实施例中,上述定位算法的输入除了包括上述传感器获取的数据之外,还可以包括以下信息中的任一种或多种的组合:所述传感器的参数,所述定位地图,目标时刻。以定位算法的输入包括传感器获取的数据以及目标时刻为例,上述每个接口数据中包括的所述位姿为所述传感器在所述目标时刻下在所述定位地图的坐标系下的位姿。
本申请实施例对上述定位算法不做具体限定,。一个示例,上述定位算法可以包括但不限于:激光定位算法,视觉定位算法,全球定位***(global position System,GPS)定 位算法,基站定位算法,二维码定位算法,3D跟踪算法,语义定位算法等等。
应理解,以激光定位算法为例,上述的传感器可以是激光雷达,传感器获取的数据可以是激光雷达获取的信息。以视觉定位算法为例,上述传感器可以是相机,传感器获取的数据可以是相机拍摄的图片。以GPS定位算法为例,上述传感器可以是GPS,传感器获取的数据可以是GPS获取的信号。以基站定位算法,上述传感器可以是基站,传感器获取的数据可以是基站获取的信号。
上述定位算法可以是进行全局定位的算法,或者还可以是进行局部定位的算法,或者还可以是进行精定位的算法,本申请实施例对此不做具体限定。
一个示例,上述定位算法为全局定位算法,每个接口数据中包括的位姿表示所述传感器在所述定位地图的坐标系下的全局定位。另一个示例,上述定位算法为局部定位算法,每个接口数据中包括的位姿表示所述传感器在所述定位地图的坐标系下的局部定位,在这种实现方式中,所述定位算法的输入还包括第四位姿,所述第四位姿为所述传感器在所述定位地图的坐标系下的全局定位。另一个示例,上述定位算法为精定位算法,每个接口数据中包括的位姿表示所述传感器在所述定位地图的坐标系下的精定位,在这种实现方式中,所述定位算法的输入还包括第四位姿,第五位姿,所述第五位姿为所述传感器在所述定位地图的坐标系下的局部定位。下面会结合图2进行举例说明,此处暂不详述。
可选地,在步骤110之前,还可以构建上述定位地图。作为示例,可以根据所述物理世界和3D重建算法建立所述物理世界对应的3D地图,再根据所述3D地图以及定位地图构建算法获得所述定位地图。
举例说明,该3D重建算法可以包括但不限于:激光重建算法,视觉重建算法,激光视觉融合重建算法等。该定位地图构建算法可以包括但不限于:视觉定位地图构建算法,激光定位地图构建算法等。
步骤120:根据融合算法对所述多个接口数据进行加权融合,得到第一数据,所述第一数据包括第一位姿。
本申请实施例在获得多个接口数据后,可以根据数据融合算法(也可以简称为融合算法)对该多个接口数据进行加权融合,得到第一数据。所述第一数据中包括第一位姿,该第一位姿表示传感器在所述定位地图的坐标系下确定的目标位姿。
本申请实施例对上述数据融合算法不做具体限定,只要可以对数据进行融合即可。一个示例,该数据融合算法为采用卡尔曼滤波的方式进行融合。具体的,举例说明,可以将多个接口数据作为同一变量的不同观测输入到卡尔曼滤波器,并根据卡尔曼滤波器输出的参数(包括但不限于:方差和估计偏差),设置不同的接口数据的权重,并基于不同的接口数据的权重对多个接口数据进行加权融合,得到所述第一位姿。
可选地,在一些实施例中,所述第一数据中还可以包括以下信息中的任一种或多种的组合:第一范围信息,第一置信度,其中,所述第一范围信息表示所述第一位姿在所述定位地图中的范围信息,所述第一置信度为所述第一位姿的可信度。
一个示例,多个接口数据中的每个接口数据均包括位姿,例如,第一接口数据为位姿1,第二接口数据为位姿2。本申请实施例可以根据融合算法对所述多个接口数据中分别包括的位姿进行数据融合,得到第一位姿。也即,在这种实现方式中,融合算法的输入为多个位姿,融合算法的输出的第一数据为所述第一位姿。例如,融合算法的输入为位姿1 和位姿2,融合算法输出为所述第一位姿。
另一个示例,多个接口数据中的每个接口数据均包括位姿和范围信息,例如,第一接口数据为位姿1和范围信息1,第二接口数据为位姿2和范围信息2。本申请实施例可以根据融合算法对所述多个接口数据中分别包括的位姿和范围信息进行数据融合,得到上述第一位姿和第一范围信息。也即,在这种实现方式中,融合算法的输入为多个位姿和多个范围信息,融合算法的输出的第一数据为所述第一位姿和第一范围信息。例如,融合算法的输入为位姿1和范围信息1,位姿2和范围信息2,融合算法输出为第一位姿和第一范围信息。
另一个示例,多个接口数据中的每个接口数据均包括位姿,范围信息以及置信度,例如,第一接口数据为位姿1,范围信息1以及置信度1,第二接口数据为位姿2,范围信息2以及置信度2。本申请实施例可以根据融合算法对所述多个接口数据中分别包括的位姿,范围信息以及置信度进行数据融合,得到上述第一位姿,第一范围信息以及第一置信度。也即,在这种实现方式中,融合算法的输入为多个位姿,多个范围信息以及多个置信度,融合算法的输出的第一数据为所述第一位姿,第一范围信息以及第一置信度。例如,融合算法的输入为位姿1,范围信息1以及置信度1,位姿2,范围信息2以及置信度2,输出为上述第一位姿,第一范围信息以及第一置信度。
步骤130:根据所述第一位姿,第二位姿以及坐标系转换关系确定作业主体在所述定位地图的坐标系下的第三位姿。
本申请实施例中,在获得传感器在定位地图的坐标系下的第一位姿后,可以根据该第一位姿,作业主体在上述物理世界的坐标系下的第二位姿,以及物理世界的坐标系和定位地图的坐标系之间的坐标系转换关系确定作业主体在所述定位地图的坐标系下的第三位姿。该第三位姿为作业主体在所述定位地图的坐标系下的6自由度位姿(6degree of freedom,6DoF),也即作业主体在定位地图的坐标系下的位置(坐标)和朝向(转角)。
举例说明,以所述第一位姿为传感器在目标时刻T下在定位地图的坐标系下的位姿为例,根据该第一位姿、第二位姿,以及物理世界的坐标系和定位地图的坐标系之间的坐标系转换关系,通过跟踪算法确定作业主体在T1时刻下在所述定位地图的坐标系下的第三位姿。
应理解,T1时刻可以和目标时刻T相同,或者也可以是目标时刻T的任意下一个时刻。
本申请实施例对上述跟踪算法不做具体限定,可以包括但不限于:视觉惯性测距(visual-inertial odometry,VIO),激光惯性测距(laser-inertial odometry,LIO),轮速等。
可选地,除了得到作业主体在T1时刻下在所述定位地图的坐标系下的位姿外,还可以得到该位姿在定位地图的坐标系下的范围,该位姿的置信度(或可靠度,置信水平)等。
应理解,上述的作业主体可以是人,或者也可以是机器人,或者也可以是无人机等,本申请实施例对此不做具体限定。
上述技术方案中,可以分别根据多种不同的定位算法确定多个接口数据,对该多个接口数据进行数据融合得到第一位姿,并根据第一位姿和作业主体在物理世界的坐标系下的位姿确定作业主体在定位地图的坐标系下的位姿。该方法可以获得进行数据融合的多个接口数据,该多个接口数据是根据多个定位算法分别确定的。因此,由于获得了多个定位算 法分别确定的接口数据,可扩展性较强,并且通过根据多个接口数据融合后得到的第一位姿确定作业主体在定位地图的坐标系下的位姿,准确性较高。
下面结合图2,对本申请实施例提供的另一种确定位姿的方法进行详细描述。应理解,图2的例子仅仅是为了帮助本领域技术人员理解本申请实施例,而非要将申请实施例限制于所示例的具体数值或具体场景。本领域技术人员根据下面所给出的图2的例子,显然可以进行各种等价的修改或变化,这样的修改和变化也落入本申请实施例的范围内。
图2是本申请实施例提供的另一种确定位姿的方法的示意性流程图。如图2所示,该方法可以包括步骤210-280,下面分别对步骤210-280进行详细描述。
步骤210:构建定位地图。
本申请实施例中,如图3所示,离线建图模块可以先基于物理世界以及3D重建算法构建该物理世界对应的3D地图,并根据3D地图以及定位方法构建定位地图。举例说明,3D地图的输出以下信息:点云地图,相机图像、相机位姿,深度图等。在根据3D地图以及定位方法构建定位地图的过程中,可以基于定位方法以及3D地图中的深度图、点云地图等信息构建定位地图。有关于3D重建算法以及定位算法的描述请参见步骤110中的描述,此处不再赘述。
步骤220:根据多个全局定位算法分别确定多个接口数据。
如图3所示,定位模块中可以包括基于全局定位算法实现的全局定位。应理解,全局定位算法用于确定传感器在定位地图的坐标系下的粗定位。作为示例,全局定位算法可以包括但不限于:激光全局定位算法,视觉retrieval定位算法,GPS定位算法等。
为了便于描述,下面以多个全局定位算法包括图3所示的三个全局定位算法为例进行举例说明。
一个示例,第一全局定位算法为激光全局定位算法。该第一全局定位算法的输入信息包括但不限于:传感器获取的数据、定位地图、目标时刻T、传感器参数。该第一全局定位算法的输出的接口数据1包括但不限于:传感器在目标时刻T下在定位地图中的位姿1、该位姿1在定位地图中的范围,该位姿1的置信度等。其中,传感器获取的数据例如为激光雷达输出的点云;传感器参数包括外参和内参,传感器外参包括但不限于:激光雷达的线数(例如,4线,8线,16线,32线,128线等),以及每两个线之间的夹角,传感器内参包括但不限于:激光雷达的坐标系和作业主体的坐标系之间的转换关系,激光雷达的时间和作业主体的时间之间的转换关系;传感器在目标时刻T下在定位地图中的位姿1为激光雷达在目标时刻T下在定位地图的坐标系下的位姿1。
另一个示例,第二全局定位算法为视觉retrieval定位算法。该第二全局定位算法的输入信息包括但不限于:传感器获取的数据、定位地图、目标时刻T、传感器参数,输出的接口数据2包括但不限于:传感器在目标时刻T下在定位地图中的位姿2、该位姿2在定位地图中的范围,该位姿2的置信度等。其中,传感器获取的数据例如为相机输出的点云;传感器参数包括外参和内参,传感器外参包括但不限于:相机的焦距、光圈、IOS感光度等,传感器内参包括但不限于:相机的坐标系和作业主体的坐标系之间的转换关系,相机的时间和作业主体的时间之间的转换关系;传感器在目标时刻T下在定位地图中的位姿2为相机在目标时刻T下在定位地图的坐标系下的位姿2。
另一个示例,第三全局定位算法为GPS定位算法。该第三全局定位算法的输入信息 包括但不限于:传感器获取的数据、定位地图、目标时刻T、传感器参数,输出的接口数据3包括但不限于:传感器在目标时刻T下在定位地图中的位姿3、该位姿3在定位地图中的范围,该位姿3的置信度等。其中,传感器获取的数据例如为GPS输出的信号;传感器参数包括外参和内参,传感器外参包括但不限于:GPS的通道数、跟踪灵敏度、捕获灵敏度等,传感器内参包括但不限于:GPS的坐标系和作业主体的坐标系之间的转换关系,GPS的时间和作业主体的时间之间的转换关系;传感器在目标时刻T下在定位地图中的位姿3为GPS在目标时刻T下在定位地图的坐标系下的位姿3。
应理解,上述传感器参数可以是初始化得到的,或者还可以是通过在线估计得到的,本申请实施例对此不做具体限定。
步骤230:基于卡尔曼滤波的方式对根据多个全局定位算法分别确定的接口数据1,接口数据2以及接口数据3进行数据融合,得到融合数据1,该融合数据1中包括位姿4。
本申请实施例可以将上述三种全局定位算法得到的3个接口数据通过位姿卡尔曼滤波的方式进行数据融合,得到融合数据1。
举例说明,上述3个接口数据分别为接口数据1,接口数据2,接口数据3,其中,接口数据1包括传感器在目标时刻T下在定位地图中的位姿1、该位姿1在定位地图中的范围,该位姿1的置信度;接口数据2包括传感器在目标时刻T下在定位地图中的位姿2、该位姿2在定位地图中的范围,该位姿2的置信度;接口数据3包括传感器在目标时刻T下在定位地图中的位姿3、该位姿3在定位地图中的范围,该位姿3的置信度。可以将接口数据1、接口数据2以及接口数据3输入到卡尔曼滤波器,并根据卡尔曼滤波器输出的方差或估计偏差,分别设置接口数据1、接口数据2以及接口数据3对应的权重。并根据接口数据1的权重、接口数据2的权重、接口数据3的权重,对接口数据1以及接口数据2、接口数据3进行加权融合,得到融合数据1。该融合数据1中包括位姿4,位姿4在定位地图中的范围,位姿4的置信度,其中,位姿4表示所述传感器在定位地图的坐标系下的粗定位。
应理解,上述融合数据1中包括的位姿4可以是对位姿1、位姿2以及位姿3进行数据融合得到的。融合数据1中包括的位姿4在定位地图中的范围可以是对位姿1在定位地图中的范围、位姿2在定位地图中的范围以及位姿3在定位地图中的范围进行数据融合得到的。融合数据1中包括的位姿4的置信度可以是对位姿1的置信度、位姿2的置信度以及位姿3的置信度进行数据融合得到的。
步骤240:根据多个局部定位算法以及位姿4确定多个接口数据。
如图3所示,定位模块中可以包括基于局部定位算法实现的局部定位。应理解,局部定位算法用于确定传感器在定位地图的坐标系下的局部定位。作为示例,局部定位算法可以包括但不限于:激光迭代最近点(iterative closest point,ICP)算法,激光正态分布变换(normal distribution transform,NDT)算法,视觉多点透视成像(perspective-n-point,PNP)算法等。
应理解,局部定位算法是在根据全局定位算法得到的位姿4的基础上进行的局部定位。
需要说明的是,步骤240是可选地。
为了便于描述,下面以多个局部定位算法包括图3所示的两个局部定位算法为例进行举例说明。
一个示例,第一局部定位算法为激光ICP算法。该第一局部定位算法的输入信息包括但不限于:位姿4,传感器获取的数据、定位地图、目标时刻T、传感器参数。该第一局部定位算法的输出的接口数据4包括但不限于:传感器在目标时刻T下在定位地图中的位姿5、该位姿5在定位地图中的范围,该位姿5的置信度等。传感器获取的数据例如为激光雷达输出的点云;传感器参数包括外参和内参,传感器外参包括但不限于:激光雷达的线数(例如,4线,8线,16线,32线,128线等),以及每两个线之间的夹角,传感器内参包括但不限于:激光雷达的坐标系和作业主体的坐标系之间的转换关系,激光雷达的时间和作业主体的时间之间的转换关系;传感器在目标时刻T下在定位地图中的位姿5为激光雷达在目标时刻T下在定位地图的坐标系下的位姿5。
另一个示例,第二局部定位算法为视觉PNP算法。该第二局部定位算法的输入信息包括但不限于:位姿4,传感器获取的数据、定位地图、目标时刻T、传感器参数。该第二局部定位算法的输出的接口数据5包括但不限于:传感器在目标时刻T下在定位地图中的位姿6、该位姿6在定位地图中的范围,该位姿6的置信度等。其中,传感器获取的数据例如为相机输出的点云;传感器参数包括外参和内参,传感器外参包括但不限于:相机的焦距、光圈、IOS感光度等,传感器内参包括但不限于:相机的坐标系和作业主体的坐标系之间的转换关系,相机的时间和作业主体的时间之间的转换关系;传感器在目标时刻T下在定位地图中的位姿6为相机在目标时刻T下在定位地图的坐标系下的位姿6。
步骤250:基于卡尔曼滤波的方式对根据多个局部定位算法分别确定的接口数据4以及接口数据5进行数据融合,得到融合数据2,该融合数据2中包括位姿7。
本申请实施例可以将上述三种局部定位算法得到的2个接口数据通过位姿卡尔曼滤波的方式进行数据融合,得到融合数据2。
举例说明,上述2个接口数据分别为接口数据4,接口数据5,其中,接口数据4包括传感器在目标时刻T下在定位地图中的位姿5、该位姿5在定位地图中的范围,该位姿5的置信度;接口数据5包括传感器在目标时刻T下在定位地图中的位姿6、该位姿6在定位地图中的范围,该位姿6的置信度。本申请实施例可以将接口数据4以及接口数据5输入到卡尔曼滤波器,并根据卡尔曼滤波器输出的方差或估计偏差,分别设置接口数据4以及接口数据5对应的权重,并根据接口数据4的权重以及接口数据5的权重,对接口数据4以及接口数据5进行加权融合,得到融合数据2。该融合数据2中包括位姿7,位姿7在定位地图中的范围,位姿7的置信度,其中,位姿7表示所述传感器在定位地图的坐标系下的局部定位。
应理解,上述融合数据2中包括的位姿7可以是对位姿5以及位姿6进行数据融合得到的。融合数据2中包括的位姿7在定位地图中的范围可以是对位姿5在定位地图中的范围、位姿6在定位地图中的范围进行数据融合得到的。融合数据2中包括的位姿7的置信度可以是对位姿5的置信度、位姿6的置信度进行数据融合得到的。
步骤260:根据多个精定位算法以及位姿4、位姿7确定多个接口数据。
如图3所示,定位模块中可以包括基于精定位算法实现的精定位。应理解,精定位算法用于确定传感器在定位地图的坐标系下的精定位。作为示例,精定位算法可以包括但不限于:3D跟踪算法,语义定位算法,二维码定位算法等。
应理解,精定位算法是在根据全局定位算法得到的位姿4以及根据局部定位算法得到 的位姿7的基础上进行的精准定位。
需要说明的是,步骤260是可选地。
为了便于描述,下面以多个精定位算法包括图3所示的两个精定位算法为例进行举例说明。
一个示例,第一精定位算法为二维码定位算法。该第一精定位算法的输入信息包括但不限于:位姿4,位姿7,传感器获取的数据、定位地图、目标时刻T、传感器参数。该第一精定位算法的输出的接口数据6包括但不限于:传感器在目标时刻T下在定位地图中的精准位姿8、该精准位姿8在定位地图中的范围,该精准位姿8的置信度等。传感器获取的数据例如为相机输出的点云;传感器参数包括外参和内参,传感器外参包括但不限于:相机的焦距、光圈、IOS感光度等,传感器内参包括但不限于:相机的坐标系和作业主体的坐标系之间的转换关系,相机的时间和作业主体的时间之间的转换关系;传感器在目标时刻T下在定位地图中的位姿8为相机在目标时刻T下在定位地图的坐标系下的位姿8。
另一个示例,第二精定位算法为语义定位算法。该第二精定位算法的输入信息包括但不限于:位姿4,位姿7,传感器获取的数据、定位地图、目标时刻T、传感器参数。该第二精定位算法的输出的接口数据7包括但不限于:传感器在目标时刻T下在定位地图中的精准位姿9、该精准位姿9在定位地图中的范围,该精准位姿9的置信度等。传感器获取的数据例如为相机输出的点云;传感器参数包括外参和内参,传感器外参包括但不限于:相机的焦距、光圈、IOS感光度等,传感器内参包括但不限于:相机的坐标系和作业主体的坐标系之间的转换关系,相机的时间和作业主体的时间之间的转换关系;传感器在目标时刻T下在定位地图中的位姿9为相机在目标时刻T下在定位地图的坐标系下的位姿9。
步骤270:基于卡尔曼滤波的方式对根据多个精定位算法分别确定的接口数据6以及接口数据7进行数据融合,得到融合数据3,该融合数据3中包括位姿10。
本申请实施例可以将上述接口数据6以及接口数据7通过位姿卡尔曼滤波的方式进行数据融合,得到融合数据3。
举例说明,上述2个接口数据分别为接口数据6,接口数据7,其中,接口数据6包括传感器在目标时刻T下在定位地图中的位姿8、该位姿8在定位地图中的范围,该位姿8的置信度;接口数据7包括传感器在目标时刻T下在定位地图中的位姿9、该位姿9在定位地图中的范围,该位姿9的置信度。本申请实施例可以将接口数据6以及接口数据7输入到卡尔曼滤波器,并根据卡尔曼滤波器输出的方差或估计偏差,分别设置接口数据6以及接口数据7对应的权重,并根据接口数据6的权重以及接口数据7的权重,对接口数据6以及接口数据7进行加权融合,得到融合数据3。该融合数据3中包括位姿10,位姿10在定位地图中的范围,位姿10的置信度,其中,位姿10表示所述传感器在定位地图的坐标系下的精定位。
应理解,上述融合数据3中包括的位姿10可以是对位姿8以及位姿9进行数据融合得到的。融合数据3中包括的位姿10在定位地图中的范围可以是对位姿8在定位地图中的范围、位姿9在定位地图中的范围进行数据融合得到的。融合数据3中包括的位姿10的置信度可以是对位姿8的置信度、位姿9的置信度进行数据融合得到的。
步骤280:根据位姿10,位姿11以及确定坐标系转换关系作业主体在所述定位地图的坐标系下的位姿。
本申请实施例中,如图3所示,在定位模块获得上述传感器在定位地图的坐标系下的精定位(例如,上述位姿10)后,跟踪模块还可以基于该位姿10,位姿11以及坐标系转换关系确定作业主体在所述定位地图的坐标系下的位姿。其中,位姿11表示作业主体在物理世界的坐标系下的位姿,坐标系转换关系为所述定位地图的坐标系和所述物理世界的坐标系之间的转换关系。
举例说明,以所述位姿10为传感器在目标时刻T下在定位地图的坐标系下的位姿为例,根据该位姿10、作业主体在物理世界的坐标系下的位姿11以及定位地图的坐标系和所述物理世界的坐标系之间的转换关系,通过跟踪算法确定作业主体在T1时刻下在定位地图的坐标系下的位姿。
应理解,T1时刻可以和目标时刻T相同,或者也可以是目标时刻T的任意下一个时刻。有关于跟踪算法的描述,请参见图1中步骤130中的说明,此处不再赘述。
上文结合图1至图3,详细描述了本申请实施例提供的确定位姿的方法,下面将结合图4-图7,详细描述本申请装置的实施例。应理解,方法实施例的描述与装置实施例的描述相互对应,因此,未详细描述的部分可以参见前面方法实施例。
图4是本申请实施例提供的一种确定位姿的装置400的示意性框图。该装置400可以通过软件、硬件或者两者的结合实现。本申请实施例提供的装置400可以实现本申请实施例图1-图2所示的方法流程。例如,装置400用于实现图3所示的定位模块和跟踪模块的功能。
具体的,该确定位姿的装置400包括:获得模块410,融合模块420,确定模块430其中,获得模块410和融合模块420对应于上文中的定位模块,用于实现定位模块的功能,确定模块430对应于上文中的跟踪模块,用于实现跟踪模块的功能。
获得模块410用于获得多个接口数据,每个该接口数据包括位姿,该位姿为传感器在定位地图的坐标系下的位姿;融合模块420用于根据融合算法对该多个接口数据进行加权融合,得到第一数据,该第一数据包括第一位姿;确定模块430用于根据所述第一位姿,第二位姿,以及坐标系转换关系确定作业主体在所述定位地图的坐标系下的第三位姿,所述第二位姿为所述作业主体在物理世界的坐标系下的位姿,所述定位地图是根据所述物理世界确定的,所述坐标系转换关系为所述定位地图的坐标系和所述物理世界的坐标系之间的转换关系。
可选地,每个接口数据是基于定位算法确定的,该定位算法的输入为传感器获取的数据,该定位算法的输出接口输出的数据为该接口数据。
可选地,每个所述接口数据还包括以下信息中的任一种或多种的组合:范围信息,置信度,其中,所述范围信息表示所述接口数据中包括的位姿在所述定位地图中的范围信息,所述置信度为所述位姿的可信度。
可选地,所述第一数据中还包括以下信息中的任一种或多种的组合:第一范围信息,第一置信度,其中,所述第一范围信息表示所述第一位姿在所述定位地图中的范围信息,所述第一置信度为所述第一位姿的可信度。
可选地,所述定位算法的输入还包括以下信息中的任一种或多种的组合:所述传感器的参数,目标时刻。
可选地,所述位姿为所述传感器在所述目标时刻下在所述定位地图的坐标系下的位姿。
可选地,所述融合算法为卡尔曼滤波融合算法。
可选地,该融合模块420具体用于:将该多个接口数据作为不同观测值输入至卡尔曼滤波器,得到该卡尔曼滤波器的输出结果,根据该结果确定所述多个接口数据分别对应的权重参数,并分别根据每个接口数据对应的权重参数,对该多个接口数据进行加权融合,得到该第一数据。
可选地,所述定位算法为全局定位算法,所述接口数据中包括的位姿为所述传感器在所述定位地图的坐标系下的全局定位。
可选地,所述定位算法为局部定位算法,所述接口数据中包括的位姿为所述传感器在所述定位地图的坐标系下的局部定位,所述定位算法的输入还包括第四位姿,所述第四位姿为所述传感器在所述定位地图的坐标系下的全局定位。
可选地,所述定位算法为精定位算法,所述接口数据中包括的位姿为所述传感器在所述定位地图的坐标系下的精定位,所述定位算法的输入还包括第四位姿,第五位姿,所述第五位姿为所述传感器在所述定位地图的坐标系下的局部定位。
可选地,该装置400还包括:构建模块440,用于根据该物理世界和3D重建算法建立该物理世界对应的3D地图;根据该3D地图以及定位地图构建算法获得该定位地图。
这里的装置400可以以功能模块的形式体现。这里的术语“模块”可以通过软件和/或硬件形式实现,对此不作具体限定。
例如,“模块”可以是实现上述功能的软件程序、硬件电路或二者结合。示例性的,接下来以获得模块为例,介绍获得模块的实现方式。类似的,其他模块,例如融合模块,确定模块的实现方式可以参考接收模块的实现方式。
获得模块作为软件功能单元的一种举例,获得模块可以包括运行在计算实例上的代码。其中,计算实例可以包括物理主机(计算设备)、虚拟机、容器中的至少一种。进一步地,上述计算实例可以是一台或者多台。例如,获得模块可以包括运行在多个主机/虚拟机/容器上的代码。需要说明的是,用于运行该代码的多个主机/虚拟机/容器可以分布在相同的区域(region)中,也可以分布在不同的region中。进一步地,用于运行该代码的多个主机/虚拟机/容器可以分布在相同的可用区(availability zone,AZ)中,也可以分布在不同的AZ中,每个AZ包括一个数据中心或多个地理位置相近的数据中心。其中,通常一个region可以包括多个AZ。
同样,用于运行该代码的多个主机/虚拟机/容器可以分布在同一个虚拟私有云(virtual private cloud,VPC)中,也可以分布在多个VPC中。其中,通常一个VPC设置在一个region内,同一region内两个VPC之间,以及不同region的VPC之间跨区通信需在每个VPC内设置通信网关,经通信网关实现VPC之间的互连。
获得模块作为硬件功能单元的一种举例,获得模块可以包括至少一个计算设备,如服务器等。或者,获得模块也可以是利用专用集成电路(application-specific integrated circuit,ASIC)实现、或可编程逻辑器件(programmable logic device,PLD)实现的设备等。其中,上述PLD可以是复杂程序逻辑器件(complex programmable logical device,CPLD)、现场可编程门阵列(field-programmable gate array,FPGA)、通用阵列逻辑(generic array logic,GAL)或其任意组合实现。
获得模块包括的多个计算设备可以分布在相同的region中,也可以分布在不同的 region中。获得模块包括的多个计算设备可以分布在相同的AZ中,也可以分布在不同的AZ中。同样,获得模块包括的多个计算设备可以分布在同一个VPC中,也可以分布在多个VPC中。其中,所述多个计算设备可以是服务器、ASIC、PLD、CPLD、FPGA和GAL等计算设备的任意组合。
因此,在本申请的实施例中描述的各示例的模块,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
需要说明的是:上述实施例提供的装置在执行上述方法时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。例如,获得模块可以用于执行上述方法中的任意步骤,融合模块可以用于执行上述方法中的任意步骤,确定模块可以用于执行上述方法中的任意步骤。获得模块、融合模块、确定模块负责实现的步骤可根据需要指定,通过接获得模块、融合模块、确定模块分别实现上述方法中不同的步骤来实现上述装置的全部功能。
另外,上述实施例提供的装置与方法实施例属于同一构思,其具体实现过程详见上文中的方法实施例,这里不再赘述。
本申请实施例提供的方法可以由计算设备执行,该计算设备也可以被称为计算机***。包括硬件层、运行在硬件层之上的操作***层,以及运行在操作***层上的应用层。该硬件层包括处理单元、内存和内存控制单元等硬件,随后对该硬件的功能和结构进行详细说明。该操作***是任意一种或多种通过进程(process)实现业务处理的计算机操作***,例如,Linux操作***、Unix操作***、Android操作***、iOS操作***或windows操作***等。该应用层包含浏览器、通讯录、文字处理软件、即时通信软件等应用程序。并且,可选地,该计算机***是智能手机等手持设备,或个人计算机等终端设备,本申请并未特别限定,只要能够通过本申请实施例提供的方法即可。本申请实施例提供的方法的执行主体可以是计算设备,或者,是计算设备中能够调用程序并执行程序的功能模块。
下面结合图5,对本申请实施例提供的一种计算设备进行详细描述。
图5是本申请实施例提供的一种计算设备500的架构示意图。该计算设备500可以是服务器或者计算机或者其他具有计算能力的设备。图5所示的计算设备500包括:至少一个处理器510和存储器520。
应理解,本申请不限定计算设备500中的处理器、存储器的个数。
处理器510执行存储器520中的指令,使得计算设备500实现本申请提供的方法。或者,处理器510执行存储器520中的指令,使得计算设备500实现本申请提供的各功能模块,从而实现本申请提供的方法。
可选地,计算设备500还包括通信接口530。通信接口530使用例如但不限于网络接口卡、收发器一类的收发模块,来实现计算设备500与其他设备或通信网络之间的通信。
可选地,计算设备500还包括***总线540,其中,处理器510、存储器520和通信接口530分别与***总线540连接。处理器510能够通过***总线540访问存储器520, 例如,处理器510能够通过***总线540在存储器520中进行数据读写或代码执行。该***总线540是快捷外设部件互连标准(peripheral component interconnect express,PCI)总线或扩展工业标准结构(extended industry standard architecture,EISA)总线等。所述***总线540分为地址总线、数据总线、控制总线等。为便于表示,图5中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
一种可能的实现方式,处理器510的功能主要是解释计算机程序的指令(或者说,代码)以及处理计算机软件中的数据。其中,该计算机程序的指令以及计算机软件中的数据能够保存在存储器520或者缓存516中。
可选地,处理器510可能是集成电路芯片,具有信号的处理能力。作为示例而非限定,处理器510是通用处理器、数字信号处理器(digital signal processor,DSP)、专用集成电路(application specific integrated circuit,ASIC)、现成可编程门阵列(field programmable gate array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。其中,通用处理器是微处理器等。例如,该处理器510是中央处理单元(central processing unit,CPU)。
可选地,每个处理器510包括至少一个处理单元512和内存控制单元514。
可选地,处理单元512也称为核心(core)或内核,是处理器最重要的组成部分。处理单元512是由单晶硅以一定的生产工艺制造出来的,处理器所有的计算、接受命令、存储命令、处理数据都由核心执行。处理单元分别独立地运行程序指令,利用并行计算的能力加快程序的运行速度。各种处理单元都具有固定的逻辑结构,例如,处理单元包括例如,一级缓存、二级缓存、执行单元、指令级单元和总线接口等逻辑单元。
一种实现举例,内存控制单元514用于控制存储器520与处理单元512之间的数据交互。具体地说,内存控制单元514从处理单元512接收内存访问请求,并基于该内存访问请求控制针对内存的访问。作为示例而非限定,内存控制单元是内存管理单元(memory management unit,MMU)等器件。
一种实现举例,各内存控制单元514通过***总线进行针对存储器520的寻址。并且在***总线中配置仲裁器(图5中未示出),该仲裁器负责处理和协调多个处理单元512的竞争访问。
一种实现举例,处理单元512和内存控制单元514通过芯片内部的连接线,例如地址线,通信连接,从而实现处理单元512和内存控制单元514之间的通信。
可选地,每个处理器510还包括缓存516,其中,缓存是数据交换的缓冲区(称作cache)。当处理单元512要读取数据时,会首先从缓存中查找需要的数据,如果找到了则直接执行,找不到的话则从存储器中找。由于缓存的运行速度比存储器快得多,故缓存的作用就是帮助处理单元512更快地运行。
存储器520能够为计算设备500中的进程提供运行空间,例如,存储器520中保存用于生成进程的计算机程序(具体地说,是程序的代码)。计算机程序被处理器运行而生成进程后,处理器在存储器520中为该进程分配对应的存储空间。进一步的,上述存储空间进一步包括文本段、初始化数据段、位初始化数据段、栈段、堆段等等。存储器520在上述进程对应的存储空间中保存进程运行期间产生的数据,例如,中间数据,或过程数据等等。
可选地,存储器也称为内存,其作用是用于暂时存放处理器510中的运算数据,以及与硬盘等外部存储器交换的数据。只要计算机在运行中,处理器510就会把需要运算的数据调到内存中进行运算,当运算完成后处理单元512再将结果传送出来。
作为示例而非限定,存储器520是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器是只读存储器(read-only memory,ROM)、可编程只读存储器(programmable ROM,PROM)、可擦除可编程只读存储器(erasable PROM,EPROM)、电可擦除可编程只读存储器(electrically EPROM,EEPROM)或闪存。易失性存储器是随机存取存储器(random access memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(static RAM,SRAM)、动态随机存取存储器(dynamic RAM,DRAM)、同步动态随机存取存储器(synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(double data rate SDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(synchlink DRAM,SLDRAM)和直接内存总线随机存取存储器(direct rambus RAM,DR RAM)。应注意,本文描述的***和方法的存储器520旨在包括但不限于这些和任意其它适合类型的存储器。
以上列举的计算设备500的结构仅为示例性说明,本申请并未限定于此,本申请实施例的计算设备500包括现有技术中计算机***中的各种硬件,例如,计算设备500还包括除存储器520以外的其他存储器,例如,磁盘存储器等。本领域的技术人员应当理解,计算设备500还可以包括实现正常运行所必须的其他器件。同时,根据具体需要,本领域的技术人员应当理解,上述计算设备500还可包括实现其他附加功能的硬件器件。此外,本领域的技术人员应当理解,上述计算设备500也可仅仅包括实现本申请实施例所必须的器件,而不必包括图5中所示的全部器件。
本申请实施例还提供了一种计算设备集群。该计算设备集群包括至少一台计算设备。该计算设备可以是服务器。在一些实施例中,计算设备也可以是台式机、笔记本电脑或者智能手机等终端设备。
如图6所示,所述计算设备集群包括至少一个计算设备500。计算设备集群中的一个或多个计算设备500中的存储器520中可以存有相同的用于执行上述方法的指令。
在一些可能的实现方式中,该计算设备集群中的一个或多个计算设备500中的存储器520也可以分别存有用于执行上述方法的部分指令。换言之,一个或多个计算设备500的组合可以共同执行上述方法的指令。
需要说明的是,计算设备集群中的不同的计算设备500中的存储器520可以存储不同的指令,分别用于执行上述装置的部分功能。也即,不同的计算设备500中的存储器520存储的指令可以实现将上述装置中的一个或多个模块的功能。
在一些可能的实现方式中,计算设备集群中的一个或多个计算设备可以通过网络连接。其中,所述网络可以是广域网或局域网等等。图7示出了一种可能的实现方式。如图7所示,两个计算设备500A和500B之间通过网络进行连接。具体地,通过各个计算设备中的通信接口与所述网络进行连接。
应理解,图7中示出的计算设备500A的功能也可以由多个计算设备500完成。同样,计算设备500B的功能也可以由多个计算设备500完成。
本实施例中,还提供了一种包含指令的计算机程序产品,所述计算机程序产品可以是包含指令的,能够运行在计算设备上或被储存在任何可用介质中的软件或程序产品。当其在计算设备上运行时,使得计算设备执行上述所提供的方法,或者使得该计算设备实现上述提供的装置的功能。
本实施例中,还提供了一种包含指令的计算机程序产品,所述计算机程序产品可以是包含指令的,能够运行在计算设备集群上或被储存在任何可用介质中的软件或程序产品。当其由计算设备集群运行时,使得计算设备集群执行上述所提供的方法,或者使得该计算设备集群实现上述提供的装置的功能。
本实施例中,还提供了一种计算机可读存储介质,计算机可读存储介质可以是计算设备能够存储的任何可用介质或者是包含一个或多个可用介质的数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘)等。该计算机可读存储介质包括指令,当计算机可读存储介质中的指令在计算设备上被执行时,使得计算设备执行上述所提供的方法。
本实施例中,还提供了一种计算机可读存储介质,计算机可读存储介质可以是计算设备能够存储的任何可用介质或者是包含一个或多个可用介质的数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘)等。该计算机可读存储介质包括指令,当计算机可读存储介质中的指令由计算设备集群执行时,使得计算设备集群执行上述所提供的方法。
应理解,在本申请的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的***、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的***、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。

Claims (30)

  1. 一种确定位姿的方法,其特征在于,包括:
    获得多个接口数据,每个所述接口数据包括位姿,所述位姿为传感器在定位地图的坐标系下的位姿;
    根据融合算法对所述多个接口数据进行加权融合,得到第一数据,所述第一数据包括第一位姿;
    根据所述第一位姿,第二位姿以及坐标系转换关系,确定作业主体在所述定位地图的坐标系下的第三位姿,所述第二位姿为所述作业主体在物理世界的坐标系下的位姿,所述定位地图是根据所述物理世界确定的,所述坐标系转换关系为所述定位地图的坐标系和所述物理世界的坐标系之间的转换关系。
  2. 根据权利要求1所述的方法,其特征在于,每个所述接口数据是基于定位算法确定的,所述定位算法的输入为所述传感器获取的数据,所述定位算法的输出接口输出的数据为所述接口数据。
  3. 根据权利要求1或2所述的方法,其特征在于,每个所述接口数据还包括以下信息中的任一种或多种的组合:范围信息,置信度,其中,所述范围信息表示所述接口数据中包括的位姿在所述定位地图中的范围信息,所述置信度为所述位姿的可信度。
  4. 根据权利要求1或2所述的方法,其特征在于,所述第一数据中还包括以下信息中的任一种或多种的组合:第一范围信息,第一置信度,其中,所述第一范围信息表示所述第一位姿在所述定位地图中的范围信息,所述第一置信度为所述第一位姿的可信度。
  5. 根据权利要求2至4中任一项所述的方法,其特征在于,所述定位算法的输入还包括以下信息中的任一种或多种的组合:所述传感器的参数,目标时刻。
  6. 根据权利要求5所述的方法,其特征在于,所述位姿为所述传感器在所述目标时刻下在所述定位地图的坐标系下的位姿。
  7. 根据权利要求1至6中任一项所述的方法,其特征在于,所述融合算法为卡尔曼滤波融合算法。
  8. 根据权利要求7所述的方法,其特征在于,所述根据融合算法对所述多个接口数据进行加权融合,得到第一数据,包括:
    将所述多个接口数据作为不同观测值输入至卡尔曼滤波器,得到所述卡尔曼滤波器的输出结果;
    根据所述卡尔曼滤波器的输出结果确定所述多个接口数据分别对应的权重参数;
    分别根据每个接口数据对应的权重参数,对所述多个接口数据进行加权融合,得到所述第一数据。
  9. 根据权利要求2至8中任一项所述的方法,其特征在于,所述定位算法为全局定位算法,所述接口数据中包括的位姿为所述传感器在所述定位地图的坐标系下的全局定位。
  10. 根据权利要求2至8中任一项所述的方法,其特征在于,所述定位算法为局部定位算法,所述接口数据中包括的位姿为所述传感器在所述定位地图的坐标系下的局部定位,所述定位算法的输入还包括第四位姿,所述第四位姿为所述传感器在所述定位地图的坐标 系下的全局定位。
  11. 根据权利要求2至8中任一项所述的方法,其特征在于,所述定位算法为精定位算法,所述接口数据中包括的位姿为所述传感器在所述定位地图的坐标系下的精定位,所述定位算法的输入还包括第四位姿,第五位姿,所述第五位姿为所述传感器在所述定位地图的坐标系下的局部定位。
  12. 根据权利要求1至11中任一项所述的方法,其特征在于,在所述获得多个接口数据之前,所述方法还包括:
    根据所述物理世界和3D重建算法建立所述物理世界对应的3D地图;
    根据所述3D地图以及定位地图构建算法获得所述定位地图。
  13. 一种确定位姿的装置,其特征在于,包括:
    获得模块,用于获得多个接口数据,每个所述接口数据包括位姿,所述位姿为传感器在定位地图的坐标系下的位姿;
    融合模块,用于根据融合算法对所述多个接口数据进行加权融合,得到第一数据,所述第一数据包括第一位姿;
    确定模块,用于根据所述第一位姿,第二位姿,以及坐标系转换关系确定作业主体在所述定位地图的坐标系下的第三位姿,所述第二位姿为所述作业主体在物理世界的坐标系下的位姿,所述定位地图是根据所述物理世界确定的,所述坐标系转换关系为所述定位地图的坐标系和所述物理世界的坐标系之间的转换关系。
  14. 根据权利要求13所述的装置,其特征在于,每个所述接口数据是基于定位算法确定的,所述定位算法的输入为所述传感器获取的数据,所述定位算法的输出接口输出的数据为所述接口数据。
  15. 根据权利要求13或14所述的装置,其特征在于,每个所述接口数据还包括以下信息中的任一种或多种的组合:范围信息,置信度,其中,所述范围信息表示所述接口数据中包括的位姿在所述定位地图中的范围信息,所述置信度为所述位姿的可信度。
  16. 根据权利要求13或14所述的装置,其特征在于,所述第一数据中还包括以下信息中的任一种或多种的组合:第一范围信息,第一置信度,其中,所述第一范围信息表示所述第一位姿在所述定位地图中的范围信息,所述第一置信度为所述第一位姿的可信度。
  17. 根据权利要求14至16中任一项所述的装置,其特征在于,所述定位算法的输入还包括以下信息中的任一种或多种的组合:所述传感器的参数,目标时刻。
  18. 根据权利要求17所述的装置,其特征在于,所述位姿为所述传感器在所述目标时刻下在所述定位地图的坐标系下的位姿。
  19. 根据权利要求13至18中任一项所述的装置,其特征在于,所述融合算法为卡尔曼滤波融合算法。
  20. 根据权利要求19所述的装置,其特征在于,所述融合模块具体用于:
    将所述多个接口数据作为不同观测值输入至卡尔曼滤波器,得到所述卡尔曼滤波器的输出结果;
    根据所述卡尔曼滤波器的输出结果确定所述多个接口数据分别对应的权重参数;
    分别根据每个接口数据对应的权重参数,对所述多个接口数据进行加权融合,得到所述第一数据。
  21. 根据权利要求14至20中任一项所述的装置,其特征在于,所述定位算法为全局定位算法,所述接口数据中包括的位姿为所述传感器在所述定位地图的坐标系下的全局定位。
  22. 根据权利要求14至20中任一项所述的装置,其特征在于,所述定位算法为局部定位算法,所述接口数据中包括的位姿为所述传感器在所述定位地图的坐标系下的局部定位,所述定位算法的输入还包括第四位姿,所述第四位姿为所述传感器在所述定位地图的坐标系下的全局定位。
  23. 根据权利要求14至20中任一项所述的装置,其特征在于,所述定位算法为精定位算法,所述接口数据中包括的位姿为所述传感器在所述定位地图的坐标系下的精定位,所述定位算法的输入还包括第四位姿,第五位姿,所述第五位姿为所述传感器在所述定位地图的坐标系下的局部定位。
  24. 根据权利要求13至23中任一项所述的装置,其特征在于,所述装置还包括:
    构建模块,用于根据所述物理世界和3D重建算法建立所述物理世界对应的3D地图;
    所述构建模块,还用于根据所述3D地图以及定位地图构建算法获得所述定位地图。
  25. 一种计算设备,其特征在于,包括处理器和存储器,所述处理器用于执行所述存储器中存储的指令,以使得所述计算设备执行如权利要求1至12中任一项所述的方法。
  26. 一种计算设备集群,其特征在于,包括至少一个计算设备,每个计算设备包括处理器和存储器;
    所述至少一个计算设备的处理器用于执行所述至少一个计算设备的存储器中存储的指令,以使得所述计算设备集群执行如权利要求1至12中任一项所述的方法。
  27. 一种包含指令的计算机程序产品,其特征在于,当所述指令被计算设备运行时,使得所述计算设备执行如权利要求的1至12中任一项所述的方法。
  28. 一种包含指令的计算机程序产品,其特征在于,当所述指令被计算设备集群运行时,使得所述计算设备集群执行如权利要求的1至12中任一项所述的方法。
  29. 一种计算机可读存储介质,其特征在于,包括计算机程序指令,当所述计算机程序指令由计算设备执行时,所述计算设备执行如权利要求1至12中任一项所述的方法。
  30. 一种计算机可读存储介质,其特征在于,包括计算机程序指令,当所述计算机程序指令由计算设备集群执行时,所述计算设备集群执行如权利要求1至12中任一项所述的方法。
PCT/CN2023/083617 2022-07-01 2023-03-24 确定位姿的方法、装置以及计算设备 WO2024001339A1 (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
CN202210773933 2022-07-01
CN202210773933.9 2022-07-01
CN202211181464.8 2022-09-27
CN202211181464.8A CN117367415A (zh) 2022-07-01 2022-09-27 确定位姿的方法、装置以及计算设备

Publications (1)

Publication Number Publication Date
WO2024001339A1 true WO2024001339A1 (zh) 2024-01-04

Family

ID=89382687

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2023/083617 WO2024001339A1 (zh) 2022-07-01 2023-03-24 确定位姿的方法、装置以及计算设备

Country Status (1)

Country Link
WO (1) WO2024001339A1 (zh)

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111337011A (zh) * 2019-12-10 2020-06-26 亿嘉和科技股份有限公司 一种基于激光和二维码融合的室内定位方法
CN111442722A (zh) * 2020-03-26 2020-07-24 达闼科技成都有限公司 定位方法、装置、存储介质及电子设备
CN111947671A (zh) * 2020-03-02 2020-11-17 北京百度网讯科技有限公司 用于定位的方法、装置、计算设备和计算机可读存储介质
CN112051590A (zh) * 2020-08-31 2020-12-08 广州文远知行科技有限公司 激光雷达与惯性测量单元的检测方法及相关装置
CN112462372A (zh) * 2021-01-29 2021-03-09 北京主线科技有限公司 车辆定位方法及装置
CN112711249A (zh) * 2019-10-24 2021-04-27 科沃斯商用机器人有限公司 机器人定位方法、装置、智能机器人和存储介质
CN112950781A (zh) * 2021-03-19 2021-06-11 中山大学 特种场景的多传感器动态加权融合的点云地图构建方法
CN113503876A (zh) * 2021-07-09 2021-10-15 深圳华芯信息技术股份有限公司 多传感器融合的激光雷达定位方法、***以及终端
US20210360368A1 (en) * 2018-03-26 2021-11-18 Boe Technology Group Co., Ltd. Indoor Positioning Method, Indoor Positioning System, Indoor Positioning Apparatus and Computer Readable Medium

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20210360368A1 (en) * 2018-03-26 2021-11-18 Boe Technology Group Co., Ltd. Indoor Positioning Method, Indoor Positioning System, Indoor Positioning Apparatus and Computer Readable Medium
CN112711249A (zh) * 2019-10-24 2021-04-27 科沃斯商用机器人有限公司 机器人定位方法、装置、智能机器人和存储介质
CN111337011A (zh) * 2019-12-10 2020-06-26 亿嘉和科技股份有限公司 一种基于激光和二维码融合的室内定位方法
CN111947671A (zh) * 2020-03-02 2020-11-17 北京百度网讯科技有限公司 用于定位的方法、装置、计算设备和计算机可读存储介质
CN111442722A (zh) * 2020-03-26 2020-07-24 达闼科技成都有限公司 定位方法、装置、存储介质及电子设备
CN112051590A (zh) * 2020-08-31 2020-12-08 广州文远知行科技有限公司 激光雷达与惯性测量单元的检测方法及相关装置
CN112462372A (zh) * 2021-01-29 2021-03-09 北京主线科技有限公司 车辆定位方法及装置
CN112950781A (zh) * 2021-03-19 2021-06-11 中山大学 特种场景的多传感器动态加权融合的点云地图构建方法
CN113503876A (zh) * 2021-07-09 2021-10-15 深圳华芯信息技术股份有限公司 多传感器融合的激光雷达定位方法、***以及终端

Similar Documents

Publication Publication Date Title
JP6745328B2 (ja) 点群データを復旧するための方法及び装置
WO2018112926A1 (zh) 定位方法、终端和服务器
CN107194962B (zh) 点云与平面图像融合方法及装置
WO2020019962A1 (zh) 一种增强现实设备的坐标系校准方法及装置
WO2019062651A1 (zh) 一种定位建图的方法及***
CN106289262B (zh) 用于混合虚拟和实体楼层地图的技术
EP4056952A1 (en) Map fusion method, apparatus, device, and storage medium
WO2019104638A1 (zh) 神经网络处理的方法、装置、加速器、***和可移动设备
US10452205B2 (en) Three-dimensional touch device and method of providing the same
EP3807847A1 (en) Reconstruction of 3d model with immersive experience
CN110471409B (zh) 机器人巡检方法、装置、计算机可读存储介质及机器人
WO2020063878A1 (zh) 一种处理数据的方法和装置
US20180113595A1 (en) Control interface for a three-dimensional graphical object
US20150281887A1 (en) Gaze-directed content delivery
WO2018176440A1 (zh) 点云与平面图像融合方法、智能设备及非易失性计算机可读存储介质
CN113091736B (zh) 机器人定位方法、装置、机器人及存储介质
CN115039015A (zh) 位姿跟踪方法、可穿戴设备、移动设备以及存储介质
WO2024001339A1 (zh) 确定位姿的方法、装置以及计算设备
CN109333527B (zh) 一种与机器人的交互方法、装置、电子设备及存储介质
US11532126B2 (en) System and method for determining alpha values for alpha shapes
CN117367415A (zh) 确定位姿的方法、装置以及计算设备
WO2019019013A1 (zh) 处理图像的方法、芯片、处理器、***和可移动设备
Wang et al. Graphics-assisted cutter orientation correction for collision-free five-axis machining
US20180210996A1 (en) Complex feature cloning in additive manufacturing datasets
WO2023236684A1 (zh) 一种物体跟踪方法以及相关设备

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 23829530

Country of ref document: EP

Kind code of ref document: A1