Path planning for autonomous mobile devices

文档序号:1220240 发布日期:2020-09-04 浏览:9次 中文

阅读说明:本技术 自主移动装置的路径规划 (Path planning for autonomous mobile devices ) 是由 洪相贤 卢建波 迪米塔尔·费尤伍 于 2018-01-24 设计创作,主要内容包括:本发明扩展到用于自主移动装置的路径规划的方法、系统和计算机程序产品。本发明的各方面包括规划路径以供移动机器人在包括其他静态和移动障碍物(诸如像其他移动装置和行人)的环境中自主移动,而无需参考所述环境的先前映射图。可以使用扩散映射图来确定、调整和适用移动机器人的规划路径以在朝向全局目的地前进时避免碰撞。路径规划可以包括使用网格点之间的转移概率来找到穿过所述环境的各部分的可行路径,以朝向所述全局目的地前进。在一方面,扩散映射图与滚动时域方法结合使用,包括以指定的时间间隔计算扩散映射图。(The present invention extends to methods, systems, and computer program products for path planning for autonomous mobile devices. Aspects of the invention include planning a path for a mobile robot to autonomously move in an environment that includes other static and moving obstacles, such as, for example, other mobile devices and pedestrians, without reference to a previous map of the environment. The diffusion map may be used to determine, adjust, and adapt the planned path of the mobile robot to avoid collisions when heading towards the global destination. Path planning may include using transition probabilities between grid points to find feasible paths through portions of the environment to proceed toward the global destination. In one aspect, the diffusion map is used in conjunction with a rolling time domain approach, including computing the diffusion map at specified time intervals.)

1. A method for a mobile device, comprising:

collecting sensor data from a portion of an environment between an origin and a destination of the mobile device;

creating a diffusion map from the sensor data;

determining a path within the portion of the environment proceeding toward the destination based on transition probabilities in the diffusion map; and

moving the mobile device along the path for a specified amount of time.

2. The method of claim 1, wherein creating a diffusion map from the sensor data comprises generating a local grid map of the portion of the environment.

3. The method of claim 2, wherein creating a diffusion map from the sensor data comprises determining transition probabilities between grid points of the local grid map.

4. The method of claim 1, wherein creating a diffusion map from the sensor data comprises detecting obstacles within a sensing range of one or more sensors attached to the mobile device.

5. The method of claim 4, wherein determining a path to proceed toward the destination within the portion of the environment comprises determining a path to avoid the detected obstacle.

6. The method of claim 5, wherein moving the mobile device along the path for a specified amount of time comprises moving the mobile device along the path to avoid the detected obstacle.

7. A method for moving a mobile robot within an environment from an origin towards a global destination, the method comprising:

receiving a global path within the environment traveling from the origin to the global destination;

collecting sensor data from a portion of the environment;

creating a diffusion map of the portion of the environment from the sensor data, the diffusion map being based on a plurality of grid points and indicative of at least one other object within the portion of the environment, the diffusion map defining transition probabilities between grid points of the plurality of grid points including taking into account the at least one other object;

determining a path to proceed from a current location of the mobile robot in the portion of the environment toward the global destination based on the transition probability; and

moving the mobile robot along the path to a local destination within a specified amount of time.

8. The method of claim 7, further comprising, after moving the mobile robot within the specified amount of time along the path:

collecting other sensor data from another portion of the environment;

creating a further diffusion map of the further portion of the environment from the further sensor data, the further diffusion map comprising a further plurality of grid points, the further diffusion map defining further transition probabilities between grid points of the further plurality of grid points;

determining another path to proceed from the local destination toward the global destination based on the other transition probabilities; and

moving the mobile robot along the other path to another local destination within the specified amount of time.

9. The method of claim 7, further comprising formulating a local grid map comprising the plurality of grid points from the sensor data.

10. The method of claim 7, wherein collecting sensor data comprises collecting sensor data from one or more of: a camera, a lidar sensor, or a radar sensor.

11. The method of claim 7, wherein determining a path to proceed from the current location of the mobile robot toward the global destination comprises finding a neighboring grid point having a minimum dispersion distance from the current location.

12. The method of claim 7, wherein determining a path to proceed from the current location of the mobile robot toward the global destination comprises determining a path to avoid collision with the at least one other object.

13. The method of claim 12, wherein determining a path to avoid collision with the at least one other object comprises determining a path to avoid collision with a moving obstacle.

14. The method of claim 12, wherein moving the mobile robot along the path for a specified amount of time comprises moving the mobile robot around the at least one other object.

15. The method of claim 7, wherein moving the mobile robot along the path for a specified amount of time comprises controlling one or more of wheels, throttles, or brakes at the mobile robot to move the mobile robot along the path.

16. A mobile robot, the mobile robot comprising:

a processor; and

a system memory coupled to the processor and storing instructions configured to cause the processor to:

collecting sensor data from a portion of an environment;

creating a diffusion map of the portion of the environment from the sensor data, the diffusion map being based on a plurality of grid points and indicative of at least one other object within the portion of the environment, the diffusion map defining transition probabilities between grid points of the plurality of grid points including taking into account the at least one other object;

determining a path to proceed from a current location of the mobile robot in the portion of the environment toward a global destination based on the transition probability; and is

Controlling a moving component of the mobile robot to move the mobile robot along the path to a local destination within a specified amount of time.

17. The mobile robot of claim 16, further comprising instructions configured to cause the processor to:

after moving the mobile robot within the specified amount of time along the path:

collecting other sensor data from another portion of the environment;

creating a further diffusion map of the further portion of the environment from the further sensor data, the further diffusion map comprising a further plurality of grid points, the further diffusion map defining further transition probabilities between grid points of the further plurality of grid points;

determining another path to proceed from the local destination toward the global destination based on the other transition probabilities; and is

Controlling the motion component to move the mobile robot along the other path to another local destination within the specified amount of time.

18. The mobile robot of claim 16, further comprising instructions configured to cause the processor to formulate a local grid map comprising the plurality of grid points from the sensor data.

19. The mobile robot of claim 16 wherein the instructions configured to cause the processor to determine a path to proceed from the current location of the mobile robot toward the global destination comprise instructions configured to cause the processor to find a neighboring grid point having a minimum dispersion distance from the current location.

20. The mobile robot of claim 16, wherein the instructions configured to cause the processor to control a moving component of the mobile robot to move the mobile robot along the path comprise instructions configured to cause the processor to control the moving component to avoid collisions with the at least one other object.

1. Field of the invention

The present invention relates generally to the field of automation devices, and more particularly to path planning for autonomous mobile devices.

Background

Drawings

The specific features, aspects, and advantages of the present invention will become better understood with regard to the following description and accompanying drawings where:

FIG. 1 illustrates an exemplary block diagram of a computing device.

Fig. 2 illustrates an exemplary computer architecture that facilitates planning a path of a mobile robot.

Fig. 3 shows a flow chart of an exemplary method for planning a path of a mobile robot.

Fig. 4 illustrates an exemplary data flow for diffusion map based collision avoidance.

Fig. 5 shows an example of an enlarged portion of a mesh map including target points.

Fig. 6A to 6J show example equations for calculating the diffusion map.

Fig. 7 shows an exemplary algorithm for finding a local path from a starting point to a local target point.

Fig. 8A-8C illustrate an example of moving a mobile robot from an origin to a global destination through the grid map of fig. 5.

Detailed Description

The present invention extends to methods, systems, and computer program products for path planning for autonomous mobile devices. Mobile devices, particularly mobile robots, have been used in a variety of applications including logistics robots, home robots, automated guided vehicles, and dispensing robots. Depending on the type and configuration of the mobile robot, the mobile robot may transport goods or cargoes as an alternative to manually transporting the goods or cargoes by a human handler. The mobile robots may navigate predefined navigation routes or change routes when they deem appropriate.

Using the previous map of the operating area, the path planning of the mobile robot may be based on various different algorithms. The path planning algorithm may find the least cost path within the fixed graph. To account for changes in the environment, existing paths may be progressively repaired from previous paths. Some path planning algorithms quickly find a suboptimal path and then refine the suboptimal path to a more optimal path. The path planning algorithm may also use strategies generated by reinforcement learning to avoid collisions with the diffusion map based on the planned path.

Aspects of the invention include planning a path for a mobile robot to autonomously move in an environment that includes other moving objects, such as other mobile devices and pedestrians, without reference to a previous map of the environment. The planned path of the mobile robot may be determined, adjusted and adapted to avoid collisions in a dynamic environment while proceeding towards the destination.

The mobile robot may travel from an origin to a destination in the environment using a diffusion map. Sensors attached to the mobile robot may collect sensor data for an area surrounding the mobile robot (i.e., for a portion of the environment). A grid map of the area may be formulated from the collected sensor data. The grid map may include a plurality of grid points. The underlying geometry (manifold) of the mesh map may be determined for the region.

Path planning may include using transition probabilities between grid points to find feasible paths through the region to proceed toward the destination. In one aspect, the diffusion map is used in conjunction with a rolling time domain approach, including computing the diffusion map at specified intervals. The use of a diffusion map with a rolling time domain approach substantially eliminates the need to store previous maps.

Fig. 1 illustrates an exemplary block diagram of a computing device 100. Computing device 100 may be used to execute various programs, such as those discussed herein. The computing device 100 may function as a server, a client, or any other computing entity. Computing device 100 may perform various communication and data transfer functions as described herein, and may execute one or more applications, such as the applications described herein. The computing device 100 may be any of a variety of computing devices, such as a mobile phone or other mobile device, a desktop computer, a notebook computer, a server computer, a handheld computer, a tablet computer, and so forth.

Computing device 100 includes one or more processors 102, one or more memory devices 104, one or more interfaces 106, one or more mass storage devices 108, one or more input/output (I/O) devices 110, and a display device 130, all of which are coupled to bus 112. The one or more processors 102 include one or more processors or controllers that execute instructions stored in the one or more memory devices 104 and/or the one or more mass storage devices 108. The one or more processors 102 may also include various types of computer storage media, such as cache memory.

The one or more memory devices 104 include various computer storage media, such as volatile memory (e.g., Random Access Memory (RAM)114) and/or non-volatile memory (e.g., Read Only Memory (ROM) 116). The one or more memory devices 104 may also include rewritable ROM, such as flash memory.

The one or more mass storage devices 108 include various computer storage media such as magnetic tape, magnetic disk, optical disk, solid state memory (e.g., flash memory), and so forth. As depicted in FIG. 1, the particular mass storage device is a hard disk drive 124. The various drives can also be included in one or more mass storage devices 108 to enable reading from and/or writing to various computer readable media. The one or more mass storage devices 108 include removable media 126 and/or non-removable media.

The one or more I/O devices 110 include various devices that allow data and/or other information to be input to or retrieved from the computing device 100. One or more exemplary I/O devices 110 include a cursor control device, a keyboard, a keypad, a bar code scanner, a microphone, a monitor or other display device, a speaker, a printer, a network interface card, a modem, a camera, a lens, radar, CCD or other image capture device, and so forth.

Display device 130 comprises any type of device capable of displaying information to one or more users of computing device 100. Examples of display device 130 include a monitor, a display terminal, a video projection device, and the like.

The one or more interfaces 106 include various interfaces that allow the computing device 100 to interact with other systems, devices, or computing environments, as well as humans. The one or more example interfaces 106 may include any number of different network interfaces 120, such as interfaces to a Personal Area Network (PAN), a Local Area Network (LAN), a Wide Area Network (WAN), a wireless network (e.g., a Near Field Communication (NFC), bluetooth, Wi-Fi, etc. network), and the internet. Other interfaces include a user interface 118 and a peripheral interface 122.

The bus 112 allows the one or more processors 102, the one or more memory devices 104, the one or more interfaces 106, the one or more mass storage devices 108, and the one or more I/O devices 110 to communicate with each other and with other devices or components coupled to the bus 112. Bus 112 represents one or more of several types of bus structures, such as a system bus, a PCI bus, an IEEE 1394 bus, a USB bus, and so forth.

In this specification and the appended claims, a "diffusion map" is defined as a reduced-dimension or feature extraction from a more complex space that computes a family of embeddings of a dataset into a euclidean space (e.g., lower-dimension or less complex). The coordinates in the embedding space of the data set can be calculated from the eigenvectors and eigenvalues of the diffusion operator on the data. Typically, the euclidean distance between points in the embedding space is equal to the "diffusion distance" between the probability distributions centered at these points. Determining the embedding space may include finding an underlying manifold from which data has been sampled. By integrating local similarities at different scales, the diffusion map can give a global description of the data set.

In this specification and the appended claims, "rolling time domain control" (or "model predictive control") is defined as a control scheme for repeatedly solving a constrained optimization problem (e.g., at specified time intervals). The rolling horizon control may use predictions of future costs, perturbations, and constraints over a range of movement times to select a control action. The rolling horizon control may process constraints, such as limits on control variables, to generate a feed forward action.

Fig. 2 illustrates an exemplary environment 200 that facilitates planning a path of a mobile robot. The environment 200 includes a mobile robot 201 and objects 221A, 221B, and 221C. The mobile robot 201 may be a mobile autonomous land-based robot and may include any of the components described with respect to the computing device 100. In one aspect, mobile robot 201 is approximately the size of a human or smaller. The mobile robot 201 may carry cargo and/or passengers. Each of the objects 221A, 221B, and 221C may be a fixed or moving object, such as, for example, a pedestrian, a bicycle, another mobile robot, a vehicle, a sign, a building, a tree, a bush, a barricade, or other type of object. The mobile robot 201 may move within the environment 200 to navigate from an origin to a destination in the environment 200. Environment 200 may be and/or include an interconnection of: roads, crossroads, parking lots, bicycle lanes, trails, pedestrian walkways, pedestrian crossings, sidewalks, aisles, corridors, and the like.

In an aspect, the environment 200 includes one or more static objects and one or more moving objects (in addition to the mobile robot 201). The mobile robot 201 is configured to adaptively navigate around one or more static objects and one or more moving objects to move from an origin in the environment 200 to a destination in the environment 200.

As depicted, mobile robot 201 includes sensors 202, map creator 222, path planner 223, data capture control module 224, robot control system 252, and motion component 254. Each of the sensors 202, map creator 222, path planner 223, data capture control module 224, robot control system 252, and moving component 254, and their respective components, may be connected to each other through a network (or portion thereof), such as, for example, a PAN, LAN, WAN, Controller Area Network (CAN) bus, and even the internet. Accordingly, each of the sensors 202, map creator 222, path planner 223, data capture control module 224, robot control system 252, and motion component 254, as well as any other connected computer systems and components thereof, may create and exchange message related data (e.g., Near Field Communication (NFC) payloads, bluetooth packets, Internet Protocol (IP) datagrams, and other higher layer protocols that utilize IP datagrams, such as Transmission Control Protocol (TCP), hypertext transfer protocol (HTTP), Simple Mail Transfer Protocol (SMTP), etc.) over a network.

The sensors 202 also include a camera 203, a lidar sensor 204, and a radar sensor 206. Camera 203, lidar sensor 204, and radar sensor 206 may capture images of other objects in environment 200 (e.g., objects 221A, 221B, and 221C) and/or sense other objects in environment 200. The sensor 202 may capture images in different portions of the spectrum including the visible spectrum and the Infrared (IR) spectrum.

The sensor 202 may be configured to sense an object 360 degrees around the mobile robot 201. The sensors 202 may be configured to face in different directions, such as, for example, in a direction of travel (e.g., front), away from the direction of travel (e.g., back), and substantially perpendicular to the direction of travel (e.g., each side), to provide 360 degrees of coverage. In some aspects, the sensor changes orientation based on movement of the mobile robot 201. For example, if the mobile robot 201 reverses direction, the front facing sensor may become the rear facing sensor, and vice versa. If the mobile robot 201 turns, the sensor facing the side may become a front facing or a rear facing sensor. The number and configuration of sensors 202 may be based on the sensing range and angle of the various sensors and the desired navigation accuracy (e.g., within environment 200). Thus, the sensor 202 may capture sensor data of a portion of the environment 200 by sensing the portion of the environment 200 (e.g., up to the sensor range of the sensor 202).

Map creator 222 is configured to create a diffusion map of a portion of environment 200 from sensor data captured for the portion of environment 200. The created diffusion map represents a local subset of the environment 200 (less complex space) around the mobile robot 201 within the environment 200 (more complex space).

Map creator 222 may construct a local grid map 226 based on the captured sensor data, distances to obstacles (e.g., objects 221A, 221B, and 221C), and angles of the laser beams. The local grid map 226 may include a plurality of local grid points representing a subset of grid points from the environment 200. The map creator 222 may then create a diffusion map corresponding to the local grid map points.

Path planner 223 is configured to determine paths within a plurality of local grid points to proceed towards a global destination. The path planner 223 may receive a global route from a control entity (e.g., via wireless communication), such as an owner or operator of the mobile robot 201. The global route may indicate a global origin in the environment 200 (e.g., a starting location of the mobile robot 201) and a global destination in the environment 200. The global route may also identify known static obstacles in the environment 200. The path planner 223 may use the diffusion map corresponding to the plurality of local mesh map points and information from the global route to plan a path through the plurality of local mesh map points proceeding toward the global destination.

In an aspect, the current position of the mobile robot 201 (which may or may not be the starting position) is a grid point within a plurality of local grid points used to create the diffusion map. The path planner 223 identifies another (neighboring) grid point having the smallest dispersion distance from the current position of the mobile robot 201. Then, the path planner 223 plans a path for the mobile robot 201 to travel from the current position to the other grid point. The neighboring grid point may be any grid point within the plurality of local grid points.

In general, the robot control system 252 comprises a set of integrated control systems for fully autonomous movement of the mobile robot 201. For example, the robot control system 252 may include a throttle control system for controlling the throttle 242, a steering system for controlling the wheels 241, a collision avoidance system for controlling the brakes 243, and the like. Robot control system 252 may receive input from other components of mobile robot 201, including path planner 223, and send automated control 253 to motion component 254 to control the movement of mobile robot 201. For example, the motion component 254 may send automated controls 253 to brake, decelerate, accelerate, turn, etc. the mobile robot 201. Automated control may cause the mobile robot 201 to follow a path through the local grid map to proceed toward the global destination while avoiding other sensed objects.

The data capture control module 224 is configured to control when the sensors 202 capture sensor data. For example, the data capture control module 224 may instruct the sensor 202 to capture sensor data at specified time intervals according to the sampling time 216. The sampling time 216 may range from a few microseconds to a few seconds. In one aspect, the sample time 216 is in the range of 10 milliseconds to 1 second. The sampling time 216 may be customized for efficient and safe travel through the environment 200 without overloading the computing resources of the mobile robot 201. As such, the sampling time 216 may be configured based on the computing resources of the mobile robot 201, the number and density of obstacles in the environment 200, the number and density of dynamic obstacles in the environment 200, the configuration and range of the sensors 202, and so on.

In an aspect, the sampling time 216 may be appropriately changed to adjust for navigation in different environments. For example, the sample time 216 may be received (e.g., via wireless communication) from a control entity, such as an owner or operator of the mobile robot 201. The sample time 216 may be included in the global route.

Fig. 3 shows a flow diagram of an exemplary method 300 for planning a path of a mobile robot. The method 300 will be described with respect to the components and data of the mobile robot 201.

The method 300 includes receiving a global route to travel from an origin to a global destination within an environment (301). For example, the path planner 223 may receive the global route 212. The global route 212 may identify a global path from an origin 261 (e.g., a starting location of the robot 201) within the environment 200 to a global destination 262 (e.g., an ending or ending location of the mobile robot 201) within the environment 200. The global route 212 may also include one or more known obstacles in the environment 200 and/or a sampling time 216.

The method 300 includes collecting sensor data from a portion of an environment (302). For example, the data capture control module 224 may send the capture command 214 to the sensor 202 according to a time interval based on the sampling time 216. In response, sensor 202 may capture sensor data 208 (e.g., including images, lidar returns, radar returns, etc.) of environmental portion 250. The sensor 202 may detect objects 221A, 221B, and 221C within the environmental portion 250. The sensor data 208 may indicate that objects 221A, 221B, and 221C are detected.

The method 300 includes creating a diffusion map for the portion of the environment from the sensor data, the diffusion map being based on a plurality of grid points and indicative of at least one other object within the portion of the environment, the diffusion map defining transition probabilities between grid points of the plurality of grid points including taking into account the at least one other object (303). For example, map creator 222 may create a diffusion map 209 for environmental portion 250 from sensor data 208. The map creator 222 may formulate a local grid map 226 for the environmental portion 250 based on the sensor data 208. The local mesh map 226 may include a plurality of mesh points and may indicate the positions of the objects 221A, 221B, and 221C within the plurality of mesh points. Map creator 222 may create diffusion map 209 from local mesh map 226. The diffusion map 209 represents diffusion distances and defines transition probabilities 263 between grid points in the local grid map 226 in consideration of the positions of the objects 221A, 221B, and 221C.

The method 300 includes determining a path to proceed from a current location of the mobile robot in a portion of the environment toward a global destination based on the transition probabilities (304). For example, path planner 223 may formulate path 217 to proceed from the current location of mobile robot 201 in environment portion 250 toward global destination 262 based on transition probability 263.

The method 300 includes moving a mobile device along a path to a local destination within a specified amount of time (305). For example, the robotic control system 252 may send control 253 to the moving component 254 based on the path 217. Control 253 may cause motion component 254 to move mobile robot 201 along path 217, thereby advancing toward global destination 262. Movement along path 217 may cause mobile robot 201 to deviate from global route 212.

Acts 302, 303, 304, and 305 may be repeated at the next interval according to sample time 216. For example, the data capture control module 224 may again send the capture command 214 to the sensor 202 (after the mobile robot 201 has moved along the path 217 for a certain amount of time). Additional sensor data may be captured for different portions of the environment 200. The map creator 222 may use the additional sensor data to create a new local grid map and a corresponding new diffusion map with new transition probabilities. Path planner 223 may use the new diffusion map and the new transition probabilities to plan a new path starting from the current location of mobile robot 201 (reached after moving along path 217 for an amount of time) to additionally proceed toward global destination 262.

Between time intervals, the movement of the mobile robot 201 and other dynamic objects may cause obstacles to come in and out of range of the sensor 202. At each interval, the captured sensor data may be used to plan a new path for mobile robot 201 to proceed toward global destination 262 while avoiding obstacles in the local sensing portion of environment 200. The path through the different local sensing portions of the environment 200 may cause the mobile robot 201 to deviate from the global route 212.

Accordingly, aspects of the present invention may plan a path to avoid collisions in portions of a dynamic environment while attempting to proceed toward a (e.g., global) destination in the dynamic environment. To plan a collision avoidance path, the underlying geometry of the mesh map may be determined. The diffusion map may be used for path planning based on transition probabilities between grid points to find feasible paths through (e.g., locally sensed) portions of the environment. The diffusion map may be supplemented with a rolling time domain approach, including creating the diffusion map at specified time intervals. Using the rolling horizon, the mobile robot may navigate from a starting location to a global destination without reference to a global map.

Fig. 4 illustrates an exemplary data flow 400 for diffusion map based collision avoidance. The components depicted in data flow 400 may be included in a mobile robot and used to move the mobile robot toward a global destination within an environment. Fig. 5 shows an exemplary enlarged portion of mesh map 500, including start 504, current location 502, target point 501, and global route 511. A mobile robot including components of data stream 400 may be located at current location 502.

The mobile robot may receive a route 401 that includes a pre-planned route (e.g., a global route) to a destination within the environment. The route 401 may be created based on knowledge of a starting location (e.g., the start 504) and a global destination in the environment. However, the creator of route 401 (e.g., the owner or operator of the mobile robot) may not be aware of some or all of the static objects in the environment. Further, the creator of route 401 may not be able to plan dynamic objects into and/or out of the environment.

As such, the sensors 402 may be used to sense a perception area 523 around the mobile robot as the mobile robot moves toward the global destination. In general, path planner 403 may determine a grid point in perception area 523 that has a minimum distance to global route 511 and a maximum distance from current location 502. As depicted, path planner 403 includes mesh and target 404, diffusion map 406, and path finder 407.

The grid and target 404 may use the sensor signals to create a local grid map and determine local target points. Generally, the perception area 523 represents a local grid map of an area surrounding the mobile robot (e.g., similar to the local grid map 226). Within the perception area 523, the local path 503 indicates from the current position 502 to the target point 501. The enlarged portion of map 500 also indicates global route 511.

In general, within the mesh map 500, the static obstacles 521 and 522 may be known to the creator of the global route 511. Within the enlarged portion of the local grid map 500, additional (static and/or dynamic) obstacles may be detected based on sensed data (including distance to obstacle, angle or laser beam, etc.). For example, sensor 402 may sense additional obstacles, including obstacle 524.

To generate local path 503, diffusion map 406 may determine the geometry or underlying manifold (i.e., the local mesh map) of the mesh points in sensing region 523. Diffusion map 406 may compute a diffusion map corresponding to grid map points in perceptual region 523. To create the diffusion map, a diffusion process may be used. That is, each map grid point is considered to be a state, and transition probabilities between grid points are defined. The transition probabilities may be calculated based on the diffusion kernels providing local similarity measures.

Turning to fig. 6A-6J, diffusion map 406 may implement equations 601-610 to compute a diffusion map (e.g., for grid map points in sensing region 523). FIG. 6A depicts equation 601 for an exemplary Gaussian diffusion kernel, where miAnd mjAre position vectors respectively representing the ith and jth grid points, and σ is a variance parameter. The kernel matrix K may then be defined as shown in equation 602 in fig. 6B, where n represents the number of map grid points. Equation 603 in FIG. 6C can be used to calculate the sum from miTo mjTransition probability p ofij

Based on the transition probabilities, a diffusion matrix P of size n x n may be constructed. Will be diagonal element ofIs represented as D-1The diffusion matrix is expressed according to equation 604 in fig. 6D. When the diffusion process runs forward t steps, a diffusion matrix of order t is given, as shown in equation 605 in FIG. 6E. Thus, the element pt ijDenotes the transition from m after t orderiTo mjIs calculated as the sum of the probabilities of the reachable paths. At miAnd mjThe diffusion distance between may be defined by a t-order diffusion matrix represented by equation 606 in fig. 6F.

When p ist ikAnd pt jkWhen m is approximately equal, e.g. when miAnd mjThrough mkWhen well connected, the diffusion distance becomes small. Thus, the diffusion distance implies a distance measured along the underlying geometry (or manifold) of the map grid points. Can be obtained by transforming n-dimensional space into r: (<n) dimensional space (i.e., diffusion space) to approximate the diffusion distance. When a symmetric matrix P' is defined, D1 /2PD-1/2=D-1/2KD-1/2There are orthonormal eigenvectors of P', which exhibit the properties of equation 607 in fig. 6G, where accordingly S represents the orthogonal eigenvector matrix and Λ ═ diag ({ λ ═ d { (λ) } bk}k=1..n) Representing a matrix of eigenvalues. The diffusion matrix P may then be represented by equation 608 in fig. 6H, where V ═ D-1/2S is the right eigenvector matrix of P, and V-1=STD1/2Is the left eigenvector matrix of P.

By applying at λ1>...>λr>...>λnR dominant eigenvalues are selected and the matrix H is defined as shown in equation 609 in fig. 6I, where Λr=diag({λk}k=1..r) Has r eigenvalues dominant, and VrOnly the first r column vectors of V are included. The row space of H represents the diffusion map. Diffusion distanceEqual to the Euclidean distance in r-dimensional space, as shown in equation 610 in FIG. 6J, where rowi(H) And rowj(H) The ith and jth row vectors representing H.

Thus, in path planning, diffusion map 406 may find map grid point mjWhich is closest to m in terms of diffusion distancei(i.e., the minimum d recursively in equation 610 until the target point is reachedt ij). Thus, diffusion map 406 may produce a diffusion map matrix H in equation 609, with a row space having a reduced dimension of r. The euclidean distance in the row space of H in equation 610 is substantially equal to the diffusion distance in equation 606, indicating the underlying geometric connectivity between the map grid points. Thus, to plan a path, diffusion map 406 may find the grid point with the smallest value of equation 610 relative to the current grid point in the next subsection of global route 511.

This may be because the g-th row of the diffusion map matrix H in equation 609 corresponds to the target point 501 and the s-th row corresponds to the current position 502. A neighborhood of a grid point may be defined as other perceivable grid points within a circle of radius R (or in the perception area 523) centered at the grid point. Due to the obstacles, the neighboring grid points of the full circle may not be perceived. For example, when sensor 402 is in use at current location 502, static obstacles 521 and obstacles 524 block the perception of some grid points.

From the neighboring grid points (i.e., grid points in sensing region 523), path finder 407 may calculate a diffusion distance to target point 501 based on equation 610. The path finder 407 may use the row vector corresponding to H of the neighboring grid point and the g-th row vector corresponding to H of the target point. Among the neighboring grid points, the grid point having the smallest diffusion distance is selected as the next grid point. Movement 408 may then move the mobile robot towards target point 501. If the target point 501 is the global destination (YES), the process stops 409. If target point 501 is not a global destination (NO), the process repeats from the grid and target 404.

The process may be repeated at designated times. For example, once the mobile robot reaches the target point, or after the mobile robot has moved toward the target point for a specified interval, the process may be repeated. This process may be repeated until the global destination is reached.

In an aspect, once the local path 503 is planned, the movement 408 may move the mobile robot along the local path 503 within a sampling time unit T. A heading vector may be calculated with first and second grid points of the planned local path, and the mobile robot moves in a heading direction at a velocity of V for a time T. After moving a distance V x T in the heading direction, the process is repeated for new locations from the grid and the target 404. Thus, the local path 503 may be considered as a predicted path for the rolling horizon that the mobile robot is to follow from the current position. The local path 503 avoids collision with an obstacle because the constructed grid map has excluded the area occupied by the obstacle.

Fig. 7 shows an exemplary algorithm 700 for finding a local path from a starting point to a local target point.

Fig. 8A-8C illustrate an example of moving a mobile robot from a start 504 to a global destination 803 across a grid map 500. Initially, global route 511 is received, for example, at path planner 223, path planner 403, or another similar module. Fig. 8A depicts a global route 511 through the grid map 500. The global route 511 is essentially a proposed route that travels from the start 504 to the global destination 803 based on (possibly incomplete) knowledge of the route creator (e.g., the owner or operator of the mobile robot). As the mobile robot proceeds toward global destination 803, the perception area 823 sensed by the robot sensor may similarly move (where perception area 523 is an example). Within each perception area 823, static and/or dynamic obstacles may be sensed. In an aspect, the sensing region 823 is configured to be approximately 10 meters (e.g., R-10 meters).

Within each perception region 823, the algorithm 700 may implement equations 601 through 610 to determine local target points and plan local paths. In one aspect, less than all (e.g., half) of the total grid points are used for the transfer step in the calculation of the diffusion map. For example, t in equation 605 is n/2. In another aspect, the dimension is reduced to, for example, 10% of the original dimension. That is, in equation 609, r is 0.1 n. In other aspects, the neighboring grid points are determined using a radius that is less than the full sensing range of the robotic sensor. For example, the sensor may have a sensing range of 10 meters, but a radius of 2 meters is used to detect neighboring grid points.

In fig. 8A, the white areas are known static obstacles (including the previously marked static obstacles 521 and 522). As the mobile robot moves within the grid map 500, the mobile robot may sense other static and/or dynamic obstacles. As represented by the darker grid points, fig. 8B depicts additional obstacles in the grid map 500 that may be sensed as the mobile robot progresses toward the global destination 803. The mobile robot may sense additional obstacles 823 in the sensing range. The mobile robot may not sense other obstacles.

An estimated radius may be assigned to the sensed obstacle. The estimated velocity may be assigned to the dynamic obstacle. For example, a pedestrian walking may be assigned a radius of 2-5 meters and a speed of 0.5-2 meters/second. Although dynamic obstacles may move in random directions, the radius and speed of the obstacle and the sampling time may be tailored to the circumstances to facilitate collision avoidance.

Due to obstacle avoidance, the mobile robot may deviate from the global route 511 when moving from the start 504 to the global destination 803. Avoidance of static and/or dynamic obstacles may lead to deviations. Fig. 8C depicts an actual route 811 of the mobile robot relative to the global route 511. Thus, the mobile robot may travel a series of local paths to continue heading toward a global destination while avoiding collisions with static and dynamic obstacles in the environment.

In an aspect, the one or more processors are configured to execute instructions (e.g., computer-readable instructions, computer-executable instructions, etc.) to perform any of a number of described operations. The one or more processors may access information from and/or store information in system memory. The one or more processors may transform information between different formats, such as, for example, sensor data, diffusion maps, transition probabilities, global routes, paths, capture commands, robot control commands, sampling times, and so forth.

The system memory may be coupled to the one or more processors and may store instructions (e.g., computer-readable instructions, computer-executable instructions, etc.) that are executed by the one or more processors. The system memory may also be configured to store any of a variety of other types of data generated by the described components, such as, for example, sensor data, diffusion maps, transition probabilities, global routes, paths, capture commands, robot control commands, sampling times, and so forth.

In the foregoing disclosure, reference is made to the accompanying drawings, which form a part hereof, and in which is shown by way of illustration specific implementations in which the disclosure may be practiced. It is to be understood that other implementations may be utilized and structural changes may be made without departing from the scope of the present disclosure. References in the specification to "one embodiment," "an embodiment," "one example embodiment," etc., indicate that the embodiment described may include a particular feature, structure, or characteristic, but every embodiment may not necessarily include the particular feature, structure, or characteristic. Moreover, such phrases are not necessarily referring to the same embodiment. Further, when a particular feature, structure, or characteristic is described in connection with an embodiment, it is submitted that it is within the knowledge of one skilled in the art to effect such feature, structure, or characteristic in connection with other embodiments whether or not explicitly described.

Embodiments of the systems, apparatus, and methods disclosed herein may comprise or utilize a special purpose or general-purpose computer including computer hardware, such as, for example, one or more processors and system memory, as discussed herein. Implementations within the scope of the present disclosure may also include physical and other computer-readable media for carrying or storing computer-executable instructions and/or data structures. Such computer-readable media can be any available media that can be accessed by a general purpose or special purpose computer system. Computer-readable media storing computer-executable instructions are computer storage media (devices). Computer-readable media bearing computer-executable instructions are transmission media. Thus, by way of example, and not limitation, embodiments of the present disclosure can include at least two distinct computer-readable media: computer storage media (devices) and transmission media.

The computer storage medium (apparatus) includes: RAM, ROM, EEPROM, CD-ROM, solid state drives ("SSDs") (e.g., based on RAM), flash memory, phase change memory ("PCM"), other types of memory, other optical, magnetic, or other magnetic storage devices, or any other medium which can be used to store desired program code means in the form of computer-executable instructions or data structures and which can be accessed by a general purpose or special purpose computer.

Implementations of the apparatus, systems, and methods disclosed herein may communicate over a computer network. A "network" is defined as one or more data links capable of transporting electronic data between computer systems and/or modules and/or other electronic devices. When information is transferred or provided over a network or another communications connection (either hardwired, wireless, or a combination of hardwired or wireless) to a computer, the computer properly views the connection as a transmission medium. Transmission media can include a network and/or data links which can be used to carry desired program code means in the form of computer-executable instructions or data structures and which can be accessed by a general purpose or special purpose computer. Combinations of the above should also be included within the scope of computer-readable media.

Computer-executable instructions comprise, for example, instructions and data which, when executed in a processor, cause a general purpose computer, special purpose computer, or special purpose processing device to perform a certain function or group of functions. The computer-executable instructions may be, for example, binaries, intermediate format instructions (such as assembly language), or even source code. Although the subject matter has been described in language specific to structural features and/or methodological acts, it is to be understood that the subject matter defined in the appended claims is not necessarily limited to the specific features or acts described above. Rather, the features and acts are disclosed as exemplary forms of implementing the claims.

Those skilled in the art will appreciate that the disclosure may be practiced in network computing environments with many types of computer system configurations, including internal or other vehicle computers, personal computers, desktop computers, laptop computers, message processors, hand-held devices, multi-processor systems, microprocessor-based or programmable consumer electronics, network PCs, minicomputers, mainframe computers, mobile telephones, PDAs, tablet computers, pagers, routers, switches, various storage devices, and the like. The present disclosure may also be practiced in distributed system environments where local and remote computer systems, which are linked (either by hardwired data links, wireless data links, or by a combination of hardwired and wireless data links) through a network, both perform tasks. In a distributed computing environment, program modules may be located in both local and remote memory storage devices.

Further, where appropriate, the functions described herein may be performed in one or more of the following: hardware, software, firmware, digital components, or analog components. For example, one or more Application Specific Integrated Circuits (ASICs) can be programmed to perform one or more of the systems and procedures described herein. Certain terms are used throughout the description and claims to refer to particular system components. As one skilled in the art will appreciate, components may be referred to by different names. This document does not intend to distinguish between components that differ in name but not function.

It should be noted that the sensor embodiments discussed above may include computer hardware, software, firmware, or any combination thereof to perform at least a portion of their functions. For example, the sensor may include computer code configured to be executed in one or more processors, and may include hardware logic/circuitry controlled by the computer code. These exemplary devices are provided herein for illustrative purposes and are not intended to be limiting. Embodiments of the present disclosure may be implemented in other types of devices as known to one or more of ordinary skill in the relevant art.

At least some embodiments of the present disclosure relate to computer program products that include such logic (e.g., in software) stored on any computer-usable medium. Such software, when executed in one or more data processing devices, causes the devices to operate as described herein.

While various embodiments of the present disclosure have been described above, it should be understood that they have been presented by way of example only, and not limitation. It will be understood by those skilled in the relevant art that various changes in form and details can be made therein without departing from the spirit and scope of the disclosure. Thus, the breadth and scope of the present disclosure should not be limited by any of the above-described exemplary embodiments, but should be defined only in accordance with the following claims appended hereto and their equivalents. The foregoing description has been presented for purposes of illustration and description. It is not intended to be exhaustive or to limit the disclosure to the precise form disclosed. Many modifications, variations, and combinations are possible in light of the above teaching. Further, it should be noted that any or all of the foregoing alternative implementations may be used in any combination desired to form additional hybrid implementations of the present disclosure.

25页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:数控加工方法及系统、具有存储功能的装置

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类