Detailed Description
Exemplary embodiments of the present invention are described below with reference to the accompanying drawings, in which various details of embodiments of the invention are included to assist understanding, and which are to be considered as merely exemplary. Accordingly, those of ordinary skill in the art will recognize that various changes and modifications of the embodiments described herein can be made without departing from the scope and spirit of the invention. Also, descriptions of well-known functions and constructions are omitted in the following description for clarity and conciseness.
As will be appreciated by one skilled in the art, embodiments of the present invention may be embodied as a system, apparatus, device, method, or computer program product. Accordingly, the present disclosure may be embodied in the form of: entirely hardware, entirely software (including firmware, resident software, micro-code, etc.), or a combination of hardware and software.
Fig. 1 is a schematic view of main steps of a travel method in which a map is shared by a plurality of automatic travel apparatuses according to an embodiment of the present invention.
As shown in fig. 1, the driving method for sharing a map by a plurality of automatic driving apparatuses according to the embodiment of the present invention mainly includes steps S101 to S104 as follows.
Step S101: and receiving a locking point request of each automatic driving device, wherein the locking point request of each automatic driving device is used for requesting to lock the first driving code point and the second driving code point of the automatic driving device.
Automatic traveling devices such as AGVs, robots, and the like.
The first and second travel waypoints of an automatic travel device are waypoints on a map to be traveled by the automatic travel device, i.e., waypoints to be subsequently reached by the automatic travel device, wherein the second travel waypoint is a waypoint to be reached by the automatic travel device after the first travel waypoint.
The automatic driving equipment drives in the map according to the landmark two-dimensional code on the map, and the landmark two-dimensional code is a two-dimensional code technology and can be used for the automatic driving equipment to carry out constant speed orientation. The landmark two-dimensional code can be called ground code for short, and each ground code is a code point on the map.
The spacing distance between two code points is the code spacing distance between the two code points, and the spacing distance between two adjacent code points on the map is called the minimum code spacing. The separation distance between two code points refers to the distance actually represented from one code point to the other. Each ground code is parsed to obtain a string of codes, which are codes of the ground code, or codes of the code point.
Step S102: and determining a first locking point range corresponding to the first driving code point of each dynamic driving device and a second locking point range corresponding to the second driving code point according to the unit driving length of each dynamic driving device.
The unit travel length of the automatic travel apparatus is a length over which the automatic travel apparatus travels one step, that is, a minimum movement length of the automatic travel apparatus. Taking the AGV as an example, suppose to divide into letter sorting AGV and transport AGV, letter sorting AGV is the AGV that carries out letter sorting task, transport AGV is the AGV that carries out transport task, the minimum code interval is assumed to be 50cm (centimetre), letter sorting AGV (the AGV that carries out letter sorting task) traveles according to minimum code interval, 50cm travel at every step promptly, its unit length of traveling is 50cm, transport AGV travels according to non-minimum code interval, for example, it travels 1m (meter) at every step, then the unit length of traveling of transporting AGV is 1 m.
The unit travel length of the automatic travel device is related to the size of the automatic travel device, and if the automatic travel device with a large size does not satisfy the condition of traveling according to the minimum code pitch, the automatic travel device is required to travel according to the non-minimum code pitch so as not to collide with other automatic travel devices during steering.
Further, the automatic traveling apparatuses having different unit traveling lengths travel using the same map, and the large-sized automatic traveling apparatus (large unit traveling length) occupies not only the traveling code point of its own but also other code points around the code point so as not to touch the small-sized automatic traveling apparatus (small unit traveling length) at the time of steering. Therefore, it is necessary to determine a first lock point range corresponding to the first travel code point and a second lock point range corresponding to the second travel code point of each mobile travel device according to the unit travel length of each mobile travel device. The code point in the first lock point range of the automatic traveling apparatus is a code point that needs to be locked to avoid collision with other automatic traveling apparatuses when the automatic traveling apparatus travels at the first travel code point. The same applies to code points in the second lock point range.
Step S102 may specifically include: for the automatic running equipment with the unit running length as the minimum code distance, determining a first lock point range corresponding to a first running code point of the automatic running equipment as the first running code point, and determining a second lock point range corresponding to a second running code point of the automatic running equipment as the second running code point;
for the automatic driving equipment with the unit driving length being the non-minimum code distance, determining a first locking point range corresponding to a first driving code point and a second locking point range corresponding to a second driving code point by the following method: calculating an x-axis range code point, a y-axis range code point and a diagonal range code point corresponding to the target code point by using a code point range calculation rule; and determining a locking point range corresponding to the target code point according to the x-axis range code point, the y-axis range code point and the diagonal range code point, wherein the target code point represents any one of the first driving code point and the second driving code point. Both the first lock point range and the second lock point range can be determined by determining the lock point range corresponding to the target code point as described above. It should be noted that the code point in the lock point range corresponding to the target code point includes the target code point itself.
The step of calculating the x-axis range code point, the y-axis range code point and the diagonal range code point corresponding to the target code point by using the code point range calculation rule may specifically include:
the code of the target code point is segmented to obtain the x-axis code and the y-axis code of the target code point, wherein the code of the target code point can be segmented in the following modes: rounding the ratio of the code of the target code point to a preset value to obtain an x-axis code of the target code point; and dividing the code of the target code point by a preset value to obtain a remainder to obtain a y-axis code of the target code point. The preset value is determined according to the coding length of the target code point, specifically, the coding length of the target code point is divided by 2, the quotient is assumed to be K, and the preset value is composed of 1 and K0 s. For example, the code of the code point with 12 bits is segmented, and assuming that the code is 100100100200 and the preset value is 1000000, the rounding of 100100100200/1000000 is calculated to be 100100 in the above manner; 100100100200% 1000000 is 100200, so that 100100100200 is divided into two strings of 6-bit codes 100100 and 100200, and the two 6-bit codes can be regarded as codes corresponding to the horizontal and vertical coordinates of the code point, which are respectively referred to as x-axis code and y-axis code of the code point;
the x-axis range code point, the y-axis range code point and the diagonal range code point corresponding to the target code point are respectively code points in a certain range on the left side and the right side in the transverse direction, code points in a certain range on the lower side in the longitudinal direction and code points in a certain range in the diagonal direction (upper left, lower left, upper right and lower right). The specific determination method of the x-axis range code point, the y-axis range code point and the diagonal range code point is as follows:
determining code points meeting the following conditions as x-axis range code points corresponding to the target code points: the y-axis code of the code point is the same as the y-axis code of the target code point, and the x-axis code of the code point is greater than the difference between the x-axis code of the target code point and the code point range interval and less than the sum of the x-axis code of the target code point and the code point range interval;
determining code points meeting the following conditions as y-axis range code points corresponding to the target code points: the x-axis code of the code point is the same as the x-axis code of the target code point, and the y-axis code of the code point is greater than the difference between the y-axis code of the target code point and the code point range interval and less than the sum of the y-axis code of the target code point and the code point range interval;
determining code points meeting the following conditions as diagonal range code points corresponding to the target code point: the code point is the same as a first coordinate axis code of a first coordinate axis range code point, a second coordinate axis code of the code point is larger than a difference between a second coordinate axis code of the target code point and a code point range interval and is smaller than a sum of the second coordinate axis code of the target code point and the code point range interval, wherein the first coordinate axis is a y axis and the second coordinate axis is an x axis, or the first coordinate axis is the x axis and the second coordinate axis is the y axis.
The code point range interval is a code distance between the first travel code point and the second travel code point, and can be calculated by using the code of the first travel code point and the code of the second travel code point. Specifically, according to the method for splitting the codes of the code points, the codes of the first travel code points and the codes of the second travel code points are split to obtain the x-axis codes and the y-axis codes of the first travel code points and the second travel code points, the difference of the x-axis codes of the two travel code points and the difference of the y-axis codes are respectively compared, a nonzero difference value is obtained through calculation, and the range interval of the code points is the absolute value of the difference value.
For example, the code of the first travel code point is 100100100200, the code of the second travel code point is 100200100200, the x-axis codes of the two travel code points are 100100 and 100200 respectively, and the y-axis codes are 100200,100200 respectively, wherein the y-axis codes are the same, the difference between the x-axis codes is 100, that is, the absolute value of the difference is 100, and the code point range interval is 100.
Step S103: and preempting each code point in the first lock point range and the second lock point range of each dynamic driving device in a code point preempting mode.
And a first locking point range corresponding to the first driving code point of the automatic driving equipment and a second locking point range corresponding to the second driving code point are referred to as the first locking point range and the second locking point range of the automatic driving equipment for short.
The code points can be preempted one by one according to a preset sequence.
For example, when code points within the first lock point range are preempted, a total of 9 code points are assumed to include the first travel code point and the code points located above, below, to the left, to the right, and diagonally adjacent to the first travel code point. During preemption, the code points can be preempted one by one clockwise from the code point on the left of the first travel code point, namely, the code points in the directions of the upper left, the upper right, the left side, the first travel code point, the right side, the lower left, the lower right and the lower right of the first travel code point are preempted one by one.
The method comprises the steps that all code points in a first lock point range of the automatic driving equipment need to be preempted, and a driving instruction can be issued to the automatic driving equipment, if certain or some code points are not preempted successfully, the part of the code points which are preempted successfully are released, and then the code points are preempted again. Therefore, through the ordered preemption mode, after one automatic driving device successfully preempts the upper left code point, other automatic driving devices can not preempt other 8 code points except the upper left code point, so that the situation that all code points in the first lock point range cannot be preempted by the two automatic driving devices due to cross preemption is avoided.
Step S104: after successfully seizing all code points in the first lock point range and the second lock point range of the automatic driving equipment, all the code points are locked, and a driving instruction from the first driving code point to the second driving code point of the automatic driving equipment is issued to the automatic driving equipment.
All code points are locked, and all code points which are successfully preempted and the information of the automatic driving equipment are stored in a cache in an associated mode. Specifically, the entire code points may be stored in the cache in association with the information of the automatic traveling apparatus with the codes of the entire code points as keys and the information of the automatic traveling apparatus as values.
The cache of the embodiment of the present invention may be a distributed cache, such as a redis. The information of the automatic traveling apparatus is, for example, a serial number of the automatic traveling apparatus.
After an automatic driving device reaches a second driving code point from a first driving code point of the automatic driving device according to a transmitted driving instruction, code points which are within a first lock point range of the automatic driving device but not within a second lock point range of the automatic driving device are deleted from the buffer memory, so that code points which do not need to be occupied any more within the first lock point range are released, and other automatic driving devices can preempt the released code points. However, if there is a code point in the first lock point range and the code point is also in the second lock point range, the code point cannot be released in order to avoid the automatic driving equipment from touching other automatic driving equipment when the automatic driving equipment drives at the second driving code point.
The driving method of the map shared by multiple automatic driving devices, provided by the embodiment of the invention, can be used for an automatic unmanned warehouse and a scene that multiple AGVs share the map to drive, and can also be used for driving of multiple robots sharing the map or driving scenes of other multiple automatic driving devices sharing the map.
The ground codes with different code intervals are used in the same map area (for example, the transporting AGV travels according to the code interval of 1m, and the sorting AGV travels according to the code interval of 50 cm), and different locking point strategies are used to achieve the effect of cooperative work of various automatic devices.
Next, a travel method in which a plurality of automatic travel devices share a map according to an embodiment of the present invention will be described in detail, taking an example in which the automatic travel device is an AGV.
FIG. 2 is a schematic diagram of map code points for multiple AGVs traveling at different code spacings, according to an embodiment of the present invention.
The minimum code distance in the map shown in fig. 2 is 50cm, and two kinds of AGVs are assumed to run by using the code points of the map, namely, a sorting AGV and a transporting AGV, the sorting AGV runs according to the minimum code distance, namely, the unit running length is 50cm, and the transporting AGV runs according to the non-minimum code distance, namely, the unit running length is 1 m.
Grey code point is used for carrying the AGV and uses, and white code point is used for sorting the AGV and uses, and wherein letter sorting AGV also can use grey code point, but carries the AGV and can not use white code point. Because transport AGV automobile body is great, its length of traveling an automobile body arrives next grey yard point promptly, consequently it can stop at grey yard point, but can not stop at white yard point, and letter sorting AGV automobile body is less, and it can stop at grey yard point and white yard point.
And, when carrying the AGV and berthhing at grey yard point, occupy the white yard point around this grey yard point because of the great needs of automobile body to touch letter sorting AGV (the automobile body is less) when preventing the automobile body from turning to. Therefore, when determining a lock point range corresponding to a certain travel code point of the transport AGV, the lock point range needs to include code points around the travel code point, and a travel command for the transport AGV to travel to the travel code point can be issued after all the code points are locked.
As shown in fig. 3, fig. 3 is a schematic diagram of the locking points of the transporting AGV according to an embodiment of the present invention, and in fig. 3, the transporting AGV stops or travels at the gray code points in the dashed box, and all of the 9 code points in the dashed box need to be occupied.
And sorting AGV because the automobile body is less, when driving or berthhing at certain code point, only need occupy this code point, and need not occupy the code point around this code point. Fig. 4 shows a schematic diagram of a lock point of a sorting AGV according to an embodiment of the present invention, where the sorting AGV in fig. 4 stops (or runs) at a gray code point in a dashed frame, and the code point in the dashed frame needs to be occupied.
FIG. 5 is a schematic diagram of a travel lock point for transporting an AGV according to another embodiment of the present invention.
The method of transporting an AGV according to an embodiment of the present invention will be described with reference to fig. 5.
First, a lock point request for requesting locking of two code points, 100100100200 (corresponding to the first travel code point) and 100200100200 (corresponding to the second travel code point) in fig. 5, is received by the transporting AGV. The unit travel length of the AGV is a non-minimum code distance (1m), and the code point range interval is calculated to be 100 according to the method for calculating the code point range interval described above.
Respectively calculating an x-axis range code point, a y-axis range code point and a diagonal range code point corresponding to the 100100100200 code point and the 100200100200 code point:
slicing 100100100200 and 100200100200, respectively, to obtain x-axis codes as:
100100100200/1000000 round to 100100;
100200100200/1000000 round to 100200;
the y-axis codes obtained by slicing 100100100200 and 100200100200 respectively are:
100100100200% 1000000 is 100200;
100200100200% 1000000 is 100200;
respectively calculating an x-axis range code point, a y-axis range code point and a diagonal range code point corresponding to the 100100100200 code point and the 100200100200 code point, wherein:
calculating the x-axis range code points of the two code points (the y-axis code is unchanged, the x-axis code is greater than the difference between the x-axis code of the target code point and the code point range interval and is less than the sum of the x-axis code of the target code point and the code point range interval), namely:
100000100200<100100100200<100200100200;
100100100200<100200100200<100300100200;
obtaining the code points of the x-axis range of the two code points: 100150100200, 100250100200
Calculating y-axis range code points of the two code points (x-axis code is unchanged, y-axis code is greater than the difference between the y-axis code of the target code point and the code point range interval, and is less than the sum of the y-axis code of the target code point and the code point range interval), namely:
100100100100<100100100200<100100100300,
100200100100<100200100200<100200100300
obtaining the y-axis range code points of the two code points: 100100100150, 100100100250, 100200100150, 100200100250
Diagonal range code points of two code points: searching diagonal range code points according to the obtained y-axis range code points 100100100100150, 100100100100100100250, 100200100150 and 100200100250 by using the x-axis range code point calculation method, wherein the y-axis codes of the diagonal range code points and the y-axis range code points of the target code points are the same, and the x-axis code is larger than the difference between the x-axis code of the target code points and the code point range interval and smaller than the sum of the x-axis code of the target code points and the code point range interval,
obtaining the code points of the diagonal range of the two code points: 100150100150, 100150100250, 100250100150, 100250100250.
The target codepoints in this embodiment refer to 100100100200 and 100200100200 codepoints.
According to the x-axis range code point, the y-axis range code point and the diagonal range code point, the lock point ranges corresponding to 100100100200 and 100200100200 are determined, and it should be noted that the code point in the lock point range corresponding to each code point also includes the code point itself. The locking point range corresponding to 100100100200 is each code point in the dashed line box b, the locking point range corresponding to 100200100200 is each code point in the dashed line box c, and the total locking point range corresponding to 100100100200 and 100200100200 is each code point in the dashed line box a.
Through the code point preemption mode, preempt each code point in the above-mentioned lock point range of this transport AGV, can begin from code point 100100100250 above 100100100200 code point, preempt according to clockwise one by one, namely the order of preemption is 100100100100250, 100150100100100250, 100200100250, 100250100250, 100100100100100100100100100100100100100100100200, 100200100100200, 100100100100100100100100100150, 100200100100150, 100250100150. During preemption, it is determined whether each code point is in redis according to the preemption sequence, and if 12 code points are not in redis, 100150100200, 100250100200, 100100100100100100100100100100150, 100100100100100100100100100200100150, 100200100100100250, 100150100150100100150100100100100250, 100250100250, 100100100100100100200 and 100200100100200 are keys, and the AGV transport vehicle number is value, and the key is stored in redis, so that all the code points are locked, that is, all the code points in the dashed line frame a are locked. Then, a travel command is issued from 100100100200 to 100200100200 to the transporting AGV, and the travel path is shown by an arrow in fig. 5.
When the transport AGV reaches 100200100200 yard point, 100100100200 yard point and related lock point range data in redis deleted, which means that yard point in the lock point range corresponding to 100100100200 but not in the lock point range corresponding to 100200100200, i.e. 100100100100250 and 100100100100100150 data in redis deleted. Fig. 6 shows a schematic diagram of lock points when the transport AGB reaches 100200100200 in this embodiment, and each code point in the dashed box in fig. 6 is a lock point range when the transport AGB reaches 100200100200.
FIG. 7 is a schematic diagram of the travel lock point of a sorting AGV according to yet another embodiment of the present invention.
The sorting AGV needs lock points 100150100100 and 100200100100, and is different from the transporting AGV in that the unit travel length of the sorting AGV is the minimum code distance, the lock point range corresponding to 100150100100 is determined to be the 100150100100 code points, the lock point range corresponding to 100200100100 is the 100200100100 code points, and the total lock point ranges of 100150100100 and 100200100100 are the code points in the dashed line frame in fig. 7.
And judging whether the redis contains 100150100100 and 100200100100 data, if the two code point data are not in the redis, storing the two code points into the redis by taking 100150100100 and 100200100100 as keys and the AGV number as value, and locking the two code points.
Then, a travel command is issued for sorting AGVs from 100150100100 to 100200100100, the travel path being shown by the arrow in FIG. 7.
When the sorting AGV reaches 100200100100 yards, the 100150100100 yards of data in the redis are deleted.
It should be noted that, the AGV needs to lock all code points within the lock point range of the travel code point at a time, and if all code points cannot be locked, abandons the currently locked code point, and continues to perform preemption, for example, after the transport AGV of fig. 5 requests to lock 100100100200 and 100200100200, all code points within the lock point range corresponding to the lock points 100100100200 and 100200100200, that is, all code points in the dashed line box a of fig. 5, if all code points cannot be locked, abandons the locked code point, continues to perform preemption, and until after the full code points are preempted, the travel command from 100100100200 to 100200100200 cannot be issued. The sorting AGV of FIG. 7 is similar and will not be described in further detail.
In addition, in the running process of the AGV, a running instruction of a plurality of lock points (locked running code points) can be issued at one time, for example, a running instruction of 5 lock points can be issued at one time, in order to avoid the deceleration of the AGV during running, when the AGV does not run to the 5 th lock point, a running instruction of a subsequent lock point can be issued in advance, for example, when the AGV runs to the 3 rd lock point, running instructions of the 6 th and 7 th lock points are issued, so that the total amount of the currently non-running lock points is kept at 5, the total amount can be set to different values according to different automatic running equipment, for example, the transporting AGV can be set to 5 (since the speed of transporting the AGV is 1 m/s), and the sorting AGV can be set to 13 (since the speed of sorting AGV is 2 m/s).
Fig. 8 is a schematic block diagram of a main part of a travel apparatus in which a map is shared by a plurality of automatic travel devices according to an embodiment of the present invention.
The driving device 800 for sharing a map by a plurality of automatic driving apparatuses according to an embodiment of the present invention mainly includes: a lock point request receiving module 801, a lock point range determining module 802, a code point preemption module 803, and a driving instruction issuing module 804.
A lock point request receiving module 801, configured to receive a lock point request of each automatic traveling device, where the lock point request of each automatic traveling device is used to request locking of a first traveling code point and a second traveling code point of the automatic traveling device.
The lock point range determining module 802 is configured to determine, according to a unit travel length of each mobile travel device, a first lock point range corresponding to a first travel code point of each mobile travel device and a second lock point range corresponding to a second travel code point, where the unit travel length is a length of one step of travel of the automatic travel device.
The lock point range determination module 802 may be specifically configured to:
for the automatic running equipment with the unit running length as the minimum code distance, determining a first lock point range corresponding to a first running code point of the automatic running equipment as the first running code point, and determining a second lock point range corresponding to a second running code point of the automatic running equipment as the second running code point;
for the automatic driving equipment with the unit driving length being the non-minimum code distance, determining a first locking point range corresponding to a first driving code point and a second locking point range corresponding to a second driving code point by the following method: calculating an x-axis range code point, a y-axis range code point and a diagonal range code point corresponding to the target code point by using a code point range calculation rule; and determining a locking point range corresponding to the target code point according to the x-axis range code point, the y-axis range code point and the diagonal range code point, wherein the target code point represents any one of the first driving code point and the second driving code point.
The lock point range determination module 802 may include a code point range calculation sub-module to:
segmenting the code of the target code point to obtain an x-axis code and a y-axis code of the target code point;
determining code points satisfying the following conditions as x-axis range code points: the y-axis code of the code point is the same as the y-axis code of the target code point, and the x-axis code of the code point is greater than the difference between the x-axis code of the target code point and the code point range interval and less than the sum of the x-axis code of the target code point and the code point range interval;
determining code points satisfying the following conditions as y-axis range code points: the x-axis code of the code point is the same as the x-axis code of the target code point, and the y-axis code of the code point is greater than the difference between the y-axis code of the target code point and the code point range interval and less than the sum of the y-axis code of the target code point and the code point range interval;
determining code points satisfying the following conditions as diagonal range code points: the code point is the same as a first coordinate axis code of a first coordinate axis range code point, a second coordinate axis code of the code point is larger than the difference between a second coordinate axis code of the target code point and a code point range interval and is smaller than the sum of the second coordinate axis code of the target code point and the code point range interval, wherein the first coordinate axis is a y axis and the second coordinate axis is an x axis, or the first coordinate axis is the x axis and the second coordinate axis is the y axis;
the code point range interval is a code distance between the first travel code point and the second travel code point.
The code point range calculation submodule comprises a code segmentation unit, and can be used for: rounding the ratio of the code of the target code point to a preset value to obtain an x-axis code of the target code point; and dividing the code of the target code point by the preset value to obtain the remainder, thereby obtaining the y-axis code of the target code point, wherein the preset value is determined according to the code length of the target code point.
And a code point preemption module 803, configured to preempt, in a code point preemption manner, each code point in the first lock point range and the second lock point range of each active driving device. The code point preemption module 803 can preempt each code point one by one according to a preset sequence.
The driving instruction issuing module 804 is configured to lock all code points in a first lock point range and a second lock point range of an automatic driving device after successfully seizing all code points, and issue a driving instruction from the first driving code point of the automatic driving device to the second driving code point of the automatic driving device to the automatic driving device.
The driving instruction issuing module 804 may include a storage submodule configured to: and storing all code points successfully preempted and the information of the automatic driving equipment in a cache in an associated manner.
The driving apparatus 800 for sharing a map by multiple automatic driving devices further includes a code point deleting module for: after an automatic driving device reaches a second driving code point of the automatic driving device from a first driving code point of the automatic driving device according to a transmitted driving instruction, code points which are within a first lock point range of the automatic driving device but not within a second lock point range of the automatic driving device are deleted from the cache.
In addition, in the embodiment of the present invention, the specific implementation of the driving apparatus in which multiple automatic driving devices share a map is described in detail in the above driving method in which multiple automatic driving devices share a map, and therefore, the repeated description is omitted here.
Fig. 9 shows an exemplary system architecture 900 of a travel method in which a map is shared by multiple automatic travel devices or a travel apparatus in which a map is shared by multiple automatic travel devices, to which an embodiment of the present invention can be applied.
As shown in fig. 9, the system architecture 900 may include end devices 901, 902, 903, a network 904, and a server 905. Network 904 is the medium used to provide communication links between terminal devices 901, 902, 903 and server 905. Network 904 may include various connection types, such as wired, wireless communication links, or fiber optic cables, to name a few.
A user may use the terminal devices 901, 902, 903 to interact with a server 905 over a network 904 to receive or send messages and the like. The terminal devices 901, 902, 903 may have installed thereon various messenger client applications such as, for example only, a shopping-like application, a web browser application, a search-like application, an instant messaging tool, a mailbox client, social platform software, etc.
The terminal devices 901, 902, 903 may be various electronic devices having a display screen and supporting web browsing, including but not limited to smart phones, tablet computers, laptop portable computers, desktop computers, and the like.
The server 905 may be a server providing various services, such as a backend management server (for example only) providing support for websites browsed by users using the terminal devices 901, 902, 903. The backend management server may analyze and perform other processing on the received data such as the product information query request, and feed back a processing result (for example, product information — just an example) to the terminal device.
It should be noted that the driving method for sharing a map by multiple automatic driving apparatuses according to the embodiment of the present invention is generally executed by the server 905, and accordingly, the driving device for sharing a map by multiple automatic driving apparatuses is generally provided in the server 905.
It should be understood that the number of terminal devices, networks, and servers in fig. 9 is merely illustrative. There may be any number of terminal devices, networks, and servers, as desired for implementation.
Referring now to FIG. 10, a block diagram of a computer system 1000 suitable for implementing a terminal device or server of an embodiment of the present application is shown. The terminal device or the server shown in fig. 10 is only an example, and should not bring any limitation to the functions and the scope of use of the embodiments of the present application.
As shown in fig. 10, the computer system 1000 includes a Central Processing Unit (CPU)1001 that can perform various appropriate actions and processes according to a program stored in a Read Only Memory (ROM)1002 or a program loaded from a storage section 1008 into a Random Access Memory (RAM) 1003. In the RAM 1003, various programs and data necessary for the operation of the system 1000 are also stored. The CPU 1001, ROM 1002, and RAM 1003 are connected to each other via a bus 1004. An input/output (I/O) interface 1005 is also connected to bus 1004.
The following components are connected to the I/O interface 1005: an input section 1006 including a keyboard, a mouse, and the like; an output section 1007 including a display such as a Cathode Ray Tube (CRT), a Liquid Crystal Display (LCD), and the like, and a speaker; a storage portion 1008 including a hard disk and the like; and a communication section 1009 including a network interface card such as a LAN card, a modem, or the like. The communication section 1009 performs communication processing via a network such as the internet. The driver 1010 is also connected to the I/O interface 1005 as necessary. A removable medium 1011 such as a magnetic disk, an optical disk, a magneto-optical disk, a semiconductor memory, or the like is mounted on the drive 1010 as necessary, so that a computer program read out therefrom is mounted into the storage section 1008 as necessary.
In particular, according to embodiments of the present disclosure, the processes described above with reference to the main step schematic may be implemented as computer software programs. For example, the disclosed embodiments of the invention include a computer program product comprising a computer program embodied on a computer readable medium, the computer program comprising program code for performing the method shown in the main step diagram. In such an embodiment, the computer program may be downloaded and installed from a network through the communication part 1009 and/or installed from the removable medium 1011. The computer program executes the above-described functions defined in the system of the present application when executed by the Central Processing Unit (CPU) 1001.
It should be noted that the computer readable medium shown in the present invention can be a computer readable signal medium or a computer readable storage medium or any combination of the two. A computer readable storage medium may be, for example, but not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any combination of the foregoing. More specific examples of the computer readable storage medium may include, but are not limited to: an electrical connection having one or more wires, a portable computer diskette, a hard disk, a Random Access Memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), an optical fiber, a portable compact disc read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the foregoing. In the present application, a computer readable storage medium may be any tangible medium that can contain, or store a program for use by or in connection with an instruction execution system, apparatus, or device. In this application, however, a computer readable signal medium may include a propagated data signal with computer readable program code embodied therein, for example, in baseband or as part of a carrier wave. Such a propagated data signal may take many forms, including, but not limited to, electro-magnetic, optical, or any suitable combination thereof. A computer readable signal medium may also be any computer readable medium that is not a computer readable storage medium and that can communicate, propagate, or transport a program for use by or in connection with an instruction execution system, apparatus, or device. Program code embodied on a computer readable medium may be transmitted using any appropriate medium, including but not limited to: wireless, wire, fiber optic cable, RF, etc., or any suitable combination of the foregoing.
The principal step diagrams and block diagrams in the figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods and computer program products according to various embodiments of the present application. In this regard, each block in the main step diagrams or block diagrams may represent a module, segment, or portion of code, which comprises one or more executable instructions for implementing the specified logical function(s). It should also be noted that, in some alternative implementations, the functions noted in the block may occur out of the order noted in the figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved. It will also be noted that each block of the block diagrams or block diagrams, and combinations of blocks in the block diagrams or block diagrams, can be implemented by special purpose hardware-based systems that perform the specified functions or acts, or combinations of special purpose hardware and computer instructions.
The modules described in the embodiments of the present invention may be implemented by software or hardware. The described modules may also be provided in a processor, which may be described as: a processor comprises a lock point request receiving module, a lock point range determining module, a code point preempting module and a running instruction issuing module. The names of these modules do not in some cases form a limitation on the modules themselves, and for example, the lock point request receiving module may also be described as a "module for receiving a lock point request of each autonomous driving apparatus".
As another aspect, the present invention also provides a computer-readable medium that may be contained in the apparatus described in the above embodiments; or may be separate and not incorporated into the device. The computer readable medium carries one or more programs which, when executed by a device, cause the device to comprise: receiving a locking point request of each automatic driving device, wherein the locking point request of each automatic driving device is used for requesting to lock a first driving code point and a second driving code point of the automatic driving device; determining a first lock point range corresponding to a first driving code point of each automatic driving device and a second lock point range corresponding to a second driving code point according to the unit driving length of each automatic driving device, wherein the unit driving length is the length of one-step driving of the automatic driving device; preempting each code point in the first lock point range and the second lock point range of each respective dynamic driving device in a code point preempting mode; after successfully seizing all code points in the first lock point range and the second lock point range of the automatic driving equipment, all the code points are locked, and a driving instruction from the first driving code point to the second driving code point of the automatic driving equipment is issued to the automatic driving equipment.
According to the technical scheme of the embodiment of the invention, a first lock point range corresponding to a first running code point of each running device and a second lock point range corresponding to a second running code point are determined according to the unit running length of each running device, and each code point in the first lock point range and the second lock point range of each running device is preempted in a code point preemption mode; after successfully seizing all code points in the first lock point range and the second lock point range of the automatic driving equipment, all the code points are locked, and a driving instruction from the first driving code point to the second driving code point of the automatic driving equipment is issued to the automatic driving equipment. The automatic driving equipment of different types can drive on the common map, so that the cooperative work among the automatic driving equipment of different types is realized, and the automation degree is improved.
The above-described embodiments should not be construed as limiting the scope of the invention. Those skilled in the art will appreciate that various modifications, combinations, sub-combinations, and substitutions can occur, depending on design requirements and other factors. Any modification, equivalent replacement, and improvement made within the spirit and principle of the present invention should be included in the protection scope of the present invention.