Calculation device and mobile robot
Patent Information
- Application Number
- JP2025520449
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Filing Date
- 2025-10-30
- Publication Date
- 2026-02-16
AI Technical Summary
Route planning for autonomous mobile robots typically requires high calculation costs, often necessitating powerful hardware, and involves complex continuous curved spaces that demand significant computational resources for determining collision-free paths.
The use of bi-arc curves to simplify the calculation of travel routes, allowing for efficient path planning by connecting positions with arcs that reduce the need for sampling and continuous curvature calculations, thereby lowering processing requirements and avoiding frequent stops.
This approach reduces the computational burden and allows for smoother navigation by minimizing curvature discontinuities and acceleration, enabling mobile robots to travel without frequent stops and efficiently avoid obstacles.
Abstract
Description
Computing device and mobile robot
[0001] The present disclosure relates to a calculation device that calculates a travel path for an autonomously traveling mobile robot, and the mobile robot.
[0002] Patent Document 1 discloses a method for determining a travel route for an autonomously traveling mobile robot.
[0003] U.S. Patent No. 1,142,9105 U.S. Patent No. 8,612,084
[0004] Stentz, A., “Optimal and efficient path planning for partially known environments”, Springer, Intelligent unmanned ground vehicles, Boston, Massachusetts, 1997, p.203-220McNaughton, M., Urmson, C., Dolan, JM and Lee, JW, “Motion planning for autonomous driving with a conformal spatiotemporal lattice”, IEEE, International Conference on Robotics and Automation, 2011, May, p.4889-4895Bolton, KM, “Biarc curves”, Computer-Aided Design, Volume 7, Issue 2, 1975, p.89-92Sir, Z., Feichtinger, R. and Juttler, B., “Approximating curves and their offsets using biarcs and Pythagorean hodograph quintics”, Computer-Aided Design, Volume 38, Issue 6, 2006, p.608-618Su, BQ and Liu, DZ, “Computational Geometry: curve and surface modeling”, Academic Press Professional, Inc., 1989
[0005] For this type of mobile robot, it is desirable to reduce the amount of processing required for the autonomous running of the mobile robot.
[0006] The present disclosure provides a calculation device and the like that can reduce the amount of processing required for autonomous driving of a mobile robot.
[0007] A calculation device according to one aspect of the present disclosure includes an acquisition unit that acquires a first position and a second position different from the first position, and a calculation unit that calculates a first driving path of a mobile robot that moves autonomously from the first position to the second position, wherein the calculation unit calculates the first driving path so as to connect the first position and the second position with a bi-arc.
[0008] A mobile robot according to one aspect of the present disclosure is a mobile robot including the calculation device and a control unit that causes the mobile robot to travel along a travel path calculated by the calculation device.
[0009] According to a calculation device according to an aspect of the present disclosure, the amount of processing required for autonomous driving of a mobile robot can be reduced.
[0010] FIG. 1 is a diagram illustrating a travel path of a mobile robot. FIG. 2 is a diagram illustrating a travel path of a mobile robot. FIG. 3 is a diagram illustrating a hit box. FIG. 4 is a diagram illustrating a method for setting a hit box. FIG. 5 is a diagram illustrating continuity. FIG. 6 is a diagram illustrating a lattice. FIG. 7 is a diagram illustrating a travel path of a mobile robot. FIG. 8A is a diagram illustrating types of bi-arcs. FIG. 8B is a diagram illustrating types of bi-arcs. FIG. 8C is a diagram illustrating types of bi-arcs. FIG. 8D is a diagram illustrating types of bi-arcs. FIG. 9 is a diagram illustrating a bi-arc. FIG. 10 is a diagram illustrating a travel path of a mobile robot. FIG. 11 is a diagram illustrating a travel path of a mobile robot. FIG. 12 is a diagram illustrating a travel path of a mobile robot. FIG. 13 is a graph showing curvature versus α. FIG. 14 is a graph showing path length versus α. FIG. 15 is a graph showing curvature versus α. FIG. 16 is a graph showing path length versus α. FIG. 17 is a diagram for explaining recalculation of a traveling path of a mobile robot. FIG. 18 is a diagram for explaining recalculation of a traveling path of a mobile robot. FIG. 19 is a diagram for explaining recalculation of a traveling path of a mobile robot. FIG. 20 is a diagram for explaining recalculation of a traveling path of a mobile robot. FIG. 21A is a flowchart showing a specific example of a process for calculating whether or not a mobile robot will collide with an obstacle. FIG. 21B is a flowchart showing a specific example of a process for calculating whether or not a mobile robot will collide with an obstacle. FIG. 21C is a flowchart showing a specific example of a process for calculating whether or not a mobile robot will collide with an obstacle. FIG. 22 is a flowchart showing a specific example of a process for calculating whether or not a mobile robot will collide with an obstacle. FIG. 23 is a diagram for explaining a specific example of a process for calculating whether or not a mobile robot will collide with an obstacle. FIG. 24 is a flowchart showing a specific example of a process for calculating whether or not a mobile robot will collide with an obstacle. FIG. 25 is a block diagram showing a configuration of a mobile robot according to an embodiment. FIG. 26 is a flowchart showing a processing procedure of a mobile robot according to an embodiment.
[0011] (Foundation of the Present Disclosure) Path planning, which calculates a travel path for a mobile robot, usually requires high computational costs, and therefore typically requires powerful hardware, as in Patent Document 1.
[0012] The space in which a mobile robot travels is a space of continuous curves on a plane. Therefore, this space is infinitely dimensional. The approach usually taken to calculate a travel path is to define a graph, where each node corresponds to a state of the mobile robot. Typically, a node indicates the position of the mobile robot in the plane.
[0013] Each node often also indicates the heading of the mobile robot, and may also contain other information such as the time it will take for the mobile robot to reach a specified location and the steering angle of the mobile robot.
[0014] Each node is connected by an edge, which represents a path connecting the corresponding nodes. Each edge may have an associated computational cost, defined, for example, in terms of the time required for a mobile robot to travel between two nodes, the risk of collision between the mobile robot and external objects (also known as obstacles), and the desirability of the edge.
[0015] For example, to express that a mobile robot cannot move from node A to node B, either no edge is added from node A to node B, or an edge with an infinite computational cost is added. For example, if the path from node A to node B is blocked by an obstacle, there will be no edge connecting node A and node B.
[0016] 1 and 2 are diagrams for explaining the travel path of a mobile robot. Specifically, Fig. 1 is a diagram showing a specific example of a set of the position and orientation of a mobile robot in a certain space, and a specific example of a path connecting each node. Fig. 2 is a graph showing the positions of the nodes shown in Fig. 1 and the orientation of the mobile robot when it moves to those positions.
[0017] In FIG. 1, a position in a space is shown by the horizontal axis and the vertical axis, and both the horizontal axis and the vertical axis indicate a position (for example, a distance (m) from the origin of the coordinate system shown in FIG. 1, which is the reference position).
[0018] For example, when a graph such as that shown in Figure 2 is given to a mobile robot, search algorithms such as A* and D* (see, for example, Non-Patent Document 1) are used to calculate a path on the graph, and the mobile robot can travel the corresponding path in the physical world.
[0019] Furthermore, whether or not a mobile robot will collide with an obstacle is usually determined based on whether or not the obstacle intersects with a hit box set for the mobile robot.
[0020] FIG. 3 is a diagram for explaining a hit box.
[0021] An obstacle is an object that blocks the movement of the mobile robot 10. Examples of obstacles include a wall, a person, or another mobile robot.
[0022] For example, an obstacle may be static and its position may be known in advance, or it may be detected by the mobile robot 10 while it is moving using a camera or LIDAR (Light Detection and Ranging).
[0023] Typically, the hit box is a polygon and is set to be slightly larger than the size (occupied area) of the mobile robot 10. If an obstacle enters the hit box set for the mobile robot 10 while the mobile robot 10 is moving, the path, i.e., the calculated travel route, is considered invalid.
[0024] In the following, the mobile robot may be shown using a hit box. To clarify the direction of the mobile robot, information about the axle of the active wheel on the left side of the direction in which the mobile robot is moving is also acquired.
[0025] An active wheel is a wheel that is actively rotated by a motor or the like to move the mobile robot, while a passive wheel is a wheel that is not actively rotated by a motor or the like.
[0026] Also, the active wheels are, for example, rear wheels, but may also be front wheels or any other wheels.
[0027] Real-world paths corresponding to the edges of a graph are usually defined by splines, most often cubic Bezier splines (see, for example, U.S. Patent No. 5,929,233). When a path is defined by a spline, sampling is usually used to calculate whether a mobile robot will collide with an obstacle.
[0028] FIG. 4 is a diagram for explaining a method for setting a hit box.
[0029] The position of the mobile robot moving along the path is calculated for a series of times t = t0, t1, ..., tn. At each time t, it is calculated whether the hit box of the mobile robot intersects with an obstacle.
[0030] Such sampling is computationally expensive. In this disclosure, we define continuous paths corresponding to edges in a way that does not require such sampling to calculate whether a hit box collides with an obstacle.
[0031] A continuous path is typically defined by a cubic Bezier spline. Specifically, the control points of the spline are connected by a G 2 The spline is chosen to be continuous, i.e., at each edge junction, the position (G 0 Continuity), Tangent (G 1 continuity), and curvature (G 2 continuity) is continuous.
[0032] FIG. 5 is a diagram for explaining continuity. In the example shown in FIG. 5, four continuities, each specifying a pose (a position indicated by a black dot in FIG. 5 and a direction indicated by an arrow starting from the black dot), are connected using curves of different levels of continuity. The solid lines shown in FIG. 5 represent the four locations (four waypoints) connected by G 0 The dashed lines in Figure 5 show the four points connected by G 1 The dotted lines in Figure 5 show the four points connected by G 2 This shows the case where the connection is continuous.
[0033] Ackermann steering wheel with G 2 Many types of mobile robots, such as holonomic robots, differential drive robots, and skid steering robots, require continuity in their travel paths. 2 Continuity is not required. In fact, in this kind of mobile robot, the travel path is 0 Continuity is sufficient. For example, the G 0 A continuous linear path allows a mobile robot to simply turn in place. Such simple paths are often used in robotics to calculate a path. The path calculated in this way is usually the shortest path. However, moving along such a path requires the mobile robot to stop completely at each waypoint, necessitating frequent acceleration and deceleration. This often increases the travel time of the mobile robot.
[0034] In this disclosure, G 1 This paper describes a method for generating (calculating) a path (traveling route) using a bi-arc, which is a continuous curve, and a method for creating a highly efficient algorithm for determining (detecting) whether a mobile robot will collide with an obstacle using such a curve. Therefore, according to the present disclosure, by generating such a traveling route, a mobile robot traveling along the generated traveling route does not need to come to a complete stop at each waypoint, and the computational cost of determining whether the mobile robot will collide with an obstacle is kept low.
[0035] Hereinafter, the embodiments will be specifically described with reference to the drawings.
[0036] The embodiments described below are all comprehensive or specific examples. The numerical values, shapes, materials, components, component placement and connection configurations, steps, and step order shown in the following embodiments are merely examples and are not intended to limit the present disclosure. Furthermore, among the components in the following embodiments, components that are not recited in the independent claims of the present disclosure are described as optional components. Furthermore, the drawings are not necessarily strict illustrations. In the drawings, substantially identical components are denoted by the same reference numerals, and redundant descriptions may be omitted or simplified.
[0037] Furthermore, in this specification, ordinal numbers such as "first" and "second" do not refer to the number or order of components unless otherwise specified, but are used for the purpose of avoiding confusion and distinguishing between components of the same type.
[0038] Furthermore, in this specification, bold, outline, and italic letters in mathematical formulas may be written without being written as bold, outline, and italic letters.
[0039] (Embodiment) [Overview] The method described in this embodiment is very general and can be applied to various settings requiring planning (calculation of a travel path). For example, such planning may be performed only once when the environment is static, i.e., when there are no moving obstacles, or periodically when the environment is dynamic, i.e., when there are moving obstacles. Also, for example, such planning may be performed at the start location, during movement, or end location of a mobile robot's movement. Alternatively, such planning may be performed online in advance, for example, by a server that communicates with the mobile robot. If such planning is performed in advance by a server, information indicating the travel path is transmitted from the server to the mobile robot.
[0040] In this embodiment, online planning is described. It is also assumed that the position of an obstacle may change while the mobile robot is moving. It is also assumed that the travel path of the mobile robot may not be complete due to sensing noise and irregularities in the pavement of the floor on which the mobile robot is traveling. Therefore, in this embodiment, it is assumed that the travel path from the current pose of the mobile robot to the pose at the destination point is periodically recalculated (re-planned).
[0041] In such re-planning, it is often desirable to make the re-calculated travel path closer to the previous travel path. If the travel path changes significantly over time, the movement of the mobile robot may become jerky. Therefore, two cases will be described below. The first case is the initial planning case in which all travel paths (travel paths composed of bi-arcs) are selected arbitrarily. The second case is the re-planning case in which the previously calculated travel path is used to calculate a new travel path.
[0042] First, a specific example of calculation of a travel route will be described.
[0043] It is assumed that the current (initial) pose of the mobile robot, i.e., the current position and orientation of the mobile robot, is known. It is also assumed that N waypoints (N is an integer equal to or greater than 1) are predetermined. Each waypoint indicates a pose that the mobile robot should take when moving to the final destination in the absence of obstacles. In many cases, each waypoint is a sequence of poses corresponding to the center of the road surface on which the mobile robot travels. These N waypoints may be stored in the mobile robot in advance, or may be transmitted to the mobile robot from a server or the like. For example, the N waypoints may be automatically obtained from a map of the area where the mobile robot travels.
[0044] A lattice (lattice information) is generated from these multiple waypoints. The multiple waypoints may be arranged so that connecting the multiple waypoints results in a lattice (rectangular lattice), or may be arranged so that a conformal lattice is formed by deforming a rectangular lattice, such as by conformal mapping of the rectangular lattice (see, for example, Non-Patent Document 2).
[0045] Fig. 6 is a diagram for explaining a lattice. Specifically, Fig. 6 shows an example of the pose at each waypoint when N = 5, and the physical position and orientation of each node in the lattice (i.e., the pose at the waypoint) added when n = 2. In Fig. 6, the pose when the mobile robot starts moving is indicated by a black star and an arrow pointing to the position of the black star.
[0046] For example, in calculating a travel route, a new sequence (layer) of a plurality of poses is added to both sides of a sequence of a predetermined plurality of poses using n, where n is set arbitrarily by the user, for example, as shown in FIG.
[0047] 7 is a diagram for explaining the travel route of the mobile robot, specifically, a graph corresponding to FIG.
[0048] Each node (grid point) of the lattice is indexed using a pair (i, j) where 1≦i≦N and −n≦j≦n. Node (0, 0) is used to indicate the pose of the mobile robot when it starts moving. For example, the pose of the mobile robot in FIG. 6 when it starts moving corresponds to (0, 0) in FIG. 7.
[0049] Graph search algorithms, e.g., A *is used to find a path from node (0,0) to node (N,j). Note that only a subset of these nodes (nodes corresponding to newly added waypoints) may be considered, or only (N,0) may be considered as the destination. Assume that only edges of the form -h≦k≦h can exist from node (i,j) to node (i+1,k). Furthermore, if an edge connecting node (i,j) to node (i+1,k) is a path that does not collide with obstacles, the edge is assigned a computational cost equal to 1 + |j| + |k|, while other edges are assigned an infinite computational cost. By assigning computational costs in this way, a driving route can be calculated that prioritizes waypoints that are close to each waypoint indicating a predetermined position and orientation and that do not collide with obstacles.
[0050] As described above, when each edge is given by a biarc, that is, when the path connecting each waypoint is a biarc, the determination of whether or not a mobile robot will collide with an obstacle (also called collision determination) can be performed efficiently. Below, we will first explain how the biarc is generated, and then explain how collision determination is performed.
[0051] [Definition of Bi-arc] FIGS. 8A to 8D are diagrams for explaining types of bi-arc.
[0052] A biarc curve (also simply called a biarc) is a line made up of two arcs. Specifically, a biarc is a series of lines (that is, continuous curves or straight lines) in which the end points of one of the two arcs are connected to the end points of the other arc (that is, the end points overlap). In Figures 8A to 8D, the rotation centers of the two arcs are respectively represented by C A and C BThe two arcs are connected (i.e., joined) at a point indicated by point J, which is a joining point. The two arcs are selected so that the tangents at point J are collinear. The rotation centers of the two arcs may be located on the same side of the bi-arc, as shown in FIG. 8A, for example. Alternatively, the rotation centers of the two arcs may be located on opposite sides of the bi-arc, as shown in FIG. 8B. At least one of the two arcs may have an infinite radius (radius of curvature). In this case, the arc becomes a straight line, as shown in FIG. 8C, for example. At least one of the two arcs may be a straight line (i.e., an infinite radius of curvature), or both arcs may be straight lines. When the radii of curvature of the two arcs are infinite, the bi-arc becomes a straight line. The rotation centers of the two arcs may also coincide. In this case, the bi-arc becomes a single arc, as shown in FIG. 8D, for example.
[0053] Note that a biarc may be described as a biarc even if, as a result of calculation, at least one of the two arcs in the biarc becomes a straight line or becomes a single arc. Also, an arc may be described as an arc even if, as a result of calculation, the arc becomes a straight line.
[0054] Fig. 9 is a diagram for explaining the bi-arc. Specifically, Fig. 9 is a diagram for explaining the definition of each symbol described below. In Fig. 9, a circle with a center at point C is shown by a dotted line.
[0055] For example, the initial position A (also referred to as point A) of the mobile robot and the orientation θ of the mobile robot at position A A and a final position B (also referred to as point B) which is the target location of the mobile robot, and a direction θ of the mobile robot at position B. B is determined in advance. In this case, there are infinite possibilities for selecting point J. Here, it is defined as follows:
[0056] ・φ indicates the direction of the mobile robot at point A A is the angle from the line segment AB, which is -π<φ A Define it as ≦π.
[0057] ・φ indicates the direction of the mobile robot at point B B is the angle from the line segment AB, which is -π<φ B Define it as ≦π.
[0058] γ = φ B -φ A It is defined as:
[0059] ・Let us define the unit vector u that indicates the direction from point A to point B. It is defined as:
[0060] ・The unit vector perpendicular to the unit vector u is It is defined as:
[0061] ・Define the length of the line segment AB as |AB|.
[0062] The midpoint of the line segment AB is defined as M, and for example, M = A + (|AB| / 2) × unit vector u.
[0063] ・Point C It is defined as:
[0064] If the orientation of the mobile robot before and after movement is different, that is, if γ≠k2π(k∈Z (Z is the set of all integers)), point J is selected from any point on a circle whose center is C and whose radius is |AC|=|BC| (see, for example, Non-Patent Document 3). On the other hand, if the orientation of the mobile robot before and after movement is the same, that is, if γ=k2π(k∈Z), point J is selected from any point on line AB.
[0065] 10 to 12 are diagrams for explaining the travel route of the mobile robot.
[0066] FIG. 10 shows the state of the position and orientation of the mobile robot when it moves from the initial position A to the final position B in the case of γ≠k2π. A From B and θ B 10 shows how various bi-arcs can be used to move to the state of (i.e., the results of selecting various points J). The solid lines in FIG. 10 are examples of travel paths that can be calculated. The dotted lines in FIG. 10 show possible positions of point J.
[0067] FIG. 11 shows a bi-arc when it is determined from two circles. The solid lines in FIG. 11 are specific examples of calculated bi-arcs (travel paths). The first arc of the bi-arc (the arc from the position of the mobile robot before movement to the connection point shown in FIG. 11) has a center C A Circle C A The second arc of the bi-arc (the arc from the connection point shown in FIG. 11 to the position after the movement of the mobile robot) is a part of the center C B Circle C B The locus of the connection points (the locus of positions that can become connection points) is a circle c with a center C, as shown by the dotted line in Figure 11. For example, if the radius of each of these three circles is infinite, the radius of curvature of the arc becomes infinite and the circle becomes a straight line.
[0068] FIG. 12 shows the state of the position and orientation of the mobile robot when it moves from the initial position A to the final position B. A From B and θ A 12 shows how various bi-arcs can be used to move to the state (i.e., when the mobile robot faces the same direction before and after the movement), i.e., the results of selecting various points J. The solid lines in FIG. 12 are specific examples of travel paths that can be calculated. The dotted lines in FIG. 12 show possible positions of point J.
[0069] [Selection of J in Initial Planning] Next, a method for selecting point J will be described. Here, the following additional definitions are made.
[0070] The length of the arc from point A to point J is It is defined as:
[0071] The length of the arc from point B to point J is l B = |Arc JB|.
[0072] The total length of the bi-arc is defined as l, for example, l = l A +l B is.
[0073] ・r A Define Λ as the signed radius of the arc from point A to point J.
[0074] ・r B Define ∂x∂y as the signed radius of the arc from point B to point J.
[0075] A positive radius corresponds to the mobile robot rotating counterclockwise, and a negative radius corresponds to the robot rotating clockwise. Note that clockwise and counterclockwise refer to the direction of rotation in the graph. For example, when viewing the mobile robot from above, clockwise refers to the direction of rotation to the left, and counterclockwise refers to the direction of rotation to the right.
[0076] ・k A = 1 / r A Define ∑ j = ...
[0077] ・k B = 1 / r B Define ∑ j = ...
[0078] As described above, it is desirable to minimize the curvature discontinuity in order to minimize the acceleration required of the mobile robot during movement. When point J is selected so as to reduce the curvature discontinuity, it is also necessary to limit the length of the travel path. If point J is selected so as to reduce the curvature discontinuity, the travel path may be very long. Below, the curvature difference obtained for point J and the length of the travel path (path length) will be explained for both the case where γ ≠ k2π (when the mobile robot's orientation is different before and after movement) and the case where γ = k2π (when the mobile robot's orientation is the same before and after movement).
[0079] [Selection of J in Initial Planning When γ ≠ k2π] First, assume that γ ≠ k2π. Here, the following additional definitions are made (see FIG. 9).
[0080] ・The angle between the line segment CM and the line segment CJ is defined as α.
[0081] The direction of the mobile robot at point A is determined as an angle from the line segment AJ within the range of -π≦δ A <π.
[0082] The direction of the mobile robot at point B is determined as an angle from the line segment BJ, which is -π≦δB <π.
[0083] The orientation of the mobile robot at point A is defined as the angle ζ from the line segment AC. This is equivalent to the angle of the mobile robot at point B from the line segment BC (see Non-Patent Document 4).
[0084] ・H is the intersection point of a line that passes through point A and is oriented in the same direction as the mobile robot's orientation at point A with a circle other than point A. A Here, when ζ = (π / 2) + kπ (kεZ), that is, when the direction of the mobile robot is the tangent direction of the circle, H A =A.
[0085] ・φ M =(φ A +φ B ) / 2.
[0086] ・Line segment CM to line segment CH A The angle between HA That is, α HA =φ M +φ A It is shown as follows.
[0087] ・Line segment CM to line segment CH B The angle between HB That is, α HB =φ M +φ B It is shown as follows.
[0088] From the above definitions, the following equation is obtained (see, for example, Non-Patent Document 5).
[0089]
[0090]
[0091]
[0092] From equation (4), |k B -k AIt can be seen that | has a local minimum value for α = kπ (k∈Z). Specifically, when cos(γ / 2) < 0, it has a minimum value at α = k2π, and when cos(γ / 2) > 0, it has a minimum value at α = π + k2π. When γ = π + k2π (i.e., when cos(γ) = 0), both points have the same absolute value of the curvature difference.
[0093] 13 is a graph showing curvature versus α. Specifically, FIG. 13 shows the curvature versus φ corresponding to FIG. A =-π / 3, and φ B 10A and 10B are diagrams illustrating examples of curvatures obtained when π / 2.
[0094] Now, calculate the path length. From the sine law, the following is calculated:
[0095]
[0096]
[0097] If the unnormalized sinc function is sinc(x), it is calculated as follows:
[0098]
[0099]
[0100] When cos(ζ)=0 (cos(φA+φB)=1), it is calculated as follows:
[0101]
[0102] Thus, the minimum path length can be obtained for a value of α such that cos(α)>cos(γ / 2).
[0103] If cos(ζ)<0, then α=α HA About A (Therefore, l) is infinity. cos(ζ)<0 is cos(φ B ) > cos(φ A ) can be shown to be equivalent to cos(ζ)>0 (i.e., cos(φ B ) < cos(φ A )), then α = α HB AboutB (Therefore, l) becomes infinity. When α = -γ / 2 + k2π, that is, when J = A, l = |AB| / sinc(φ B ) When α=γ / 2+k2π, that is, when J=B, l=|AB| / sinc(φ A ) Therefore, the path length is a positive function of α, and α = α HA + k2π(cos(φ B ) > cos(φ A ) or when α = α HB + k2π(cos(φ B ) > cos(φ A )) and is continuous at other positions. The path length is given by α = -γ / 2 + k2π(cos(φ B ) > cos(φ A )), or α = γ / 2 + k2π(cos(φ B ) < cos(φ A 14 is a graph showing the path length versus α. Specifically, FIG. 14 shows the path length versus φ corresponding to FIG. 10. A =-π / 3, and φ B FIG. 10 is a diagram showing an example of the path length obtained when π / 2.
[0104] The path length when α=0 is l α=0 The path length when α = π is l α=π (two local minima of the curvature difference). For any biarc, l α=0 <(4 / 3)l α=π , and −(40 / 41)π≦φ A , φ B φ such that ≦(40 / 41) A and φ B About α=0 <l α=π On the other hand, l α=0 >l α=π In this case, l α=π Only if l is already very large. α=0 >l α=π In all cases where l α=π >80|AB|.
[0105] Therefore, when cos(γ / 2), the curvature difference is minimized when α=π+k2π, but in this embodiment, α=0 is selected for all biarcs. Selecting α=0 means that point J is located on the bisector of line segment AB. This allows the following equation to be calculated:
[0106]
[0107]
[0108]
[0109]
[0110]
[0111]
[0112]
[0113] Fig. 15 is a graph showing curvature versus α. Fig. 16 is a graph showing path length versus α. Specifically, Fig. 15 and Fig. 16 are graphs showing curvature and path length versus α, corresponding to Fig. 12. The same as above can be said for Fig. 15 and Fig. 16.
[0114] [Selection of J in the initial plan when γ=k2π] Let J be parameterized by α∈R (R is the set of all real numbers). The point J is defined as follows:
[0115]
[0116] Thus, J=A for α=-1 / 2 and J=B for α=1 / 2.
[0117] When γ=k2π, φ A =φ B φ=φ A ,and, Define k such that:
[0118] The radius of curvature is calculated as follows:
[0119]
[0120]
[0121] The curvature difference is calculated as follows:
[0122]
[0123] When φ=kπ, the radius of curvature becomes infinite and the curvature becomes 0. Therefore, the curvature difference becomes 0 for any α. When φ≠kπ, the curvature k is 0 for α=-1 / 2 (i.e., J=A). A becomes infinite, and when α = 1 / 2 (i.e., J = B), the curvature k B tends to infinity. The curvature difference tends to 0 as |α|→∞. The curvature difference has a local minimum at α=0.
[0124] The path length is calculated as follows:
[0125]
[0126]
[0127]
[0128] As mentioned above, it is clear that l → ∞ as |α| → ∞. In this embodiment, α = 0 is also selected because it is a local minimum value of the curvature difference and does not correspond to a long path. With this selection, point J is again located on the bisector of line segment AB. Furthermore, equations (10) to (16) remain valid. In particular, φ = φ A =φ B , these equations simplify to:
[0129]
[0130]
[0131]
[0132]
[0133]
[0134]
[0135] [Selection of J in Replanning] FIGS. 17 to 20 are diagrams for explaining recalculation of the travel route of the mobile robot.
[0136] Time t i Assume that a travel path consisting of a series of bi-arcs is calculated at time t. Also, assume that the first bi-arc b is composed of two arcs, AJ and JB. By traveling along these arcs, the mobile robot travels along the arcs at time t. i (A, θ A ) pose, (B, θ B ) pose.
[0137] Time t i+1 The pose of the mobile robot at (A', θ' A ) where time t i+1 At this time, the travel route is calculated again. A ) to (B, θ B A new biarc b' is calculated so that the new biarc b' to the previous biarc b is close to the previous biarc b. From the viewpoint of squared distance, the two biarcs can be calculated to be close to each other using a conventional method, but such a conventional method requires high calculation costs (a large amount of calculation). Therefore, a heuristic shown in FIG. 17 is introduced.
[0138] The circle containing the arc AJ is c A If the arc AJ is a straight line (i.e., the curvature is 0), then c A Use c to denote the line segment containing arc AJ. A If is a circle, then c A The center of A Similarly, let c be the circle that contains the arc BJ. B If the arc BJ is a straight line, then c B Use c to denote the line segment containing arc BJ. B If is a circle, then c B The center of B Let's say.
[0139] As a candidate for a biarc b' similar to the biarc b, consider a biarc b' consisting of arcs A'J' and J'B. B17, the biarc b (arc AJ+arc JB) is shown by a dashed-dotted line. The biarc b' is composed of arc A'J' shown by a dashed-double-dotted line and arc J'B, which is part of the original arc JB.
[0140] c' indicates the locus of points where point J' can exist. A ≠θ B +k2π, the circle c' is a circle whose center is the center C' defined in equation (1) and passes through point B. A = θ B +k2π, c' is the straight line A'B. Therefore, in the same definition of the bi-arc, point J' is c B The two loci must intersect at at least one point B. B Both c and c' are circles, and C' ≠ C B In this case, point J' is on the axis C B The point B is reflected by the point C' (that is, the point is symmetrical with respect to the axis). The example shown in FIG.
[0141] c B If c' and c' are concentric circles, then c B = c', and any J'∈c' holds. In this case, select the point J' corresponding to α = 0. c B If c' is a line and c' is a circle, point J' is in a direction perpendicular to line segment JB and is the reflection of point B on the axis passing through C'. An example is shown in FIG.
[0142] Similarly, c B Let c' be a circle and c' be a line. Point J' is in a direction perpendicular to the line A'B and C B The reflection at point B on the axis passing through is shown in FIG.
[0143] In addition, c B If and c' are both straight lines, point B is the only point of intersection, and therefore bi-arc b' does not exist.
[0144] Selecting a biarc b' using the above heuristics usually results in a good biarc b' that overlaps with the second arc of the original biarc. However, in some cases, the resulting biarc may be very long or contain an arc with a very high curvature. An example of this is shown in FIG. 20. When calculating the biarc from point A' to point B, if the biarc b = (arc AJ, arc JB) shown by the dashed line in FIG. 20 is used as a reference, the biarc b' = (arc A'J', arc J'B) shown by the solid line is obtained. However, if the biarc from point A' to point B is calculated with α = 0 (calculating the new biarc using the same calculation method as the initial plan), a better biarc b'' = (arc A'J', arc J'B) shown by the dotted line in FIG. 20 can be obtained.
[0145] Therefore, replanning involves comparing the lengths and curvature differences of the biarc b' and biarc b''. The length of b'' can be calculated using equations (12) and (13) when γ ≠ k2π, and equation (26) when γ = k2π. The curvature difference of b'' can be calculated using equation (16) when γ ≠ k2π, and equation (29) when γ = k2π.
[0146] This allows, for example, η l >1, and η k Given two parameters l' > η l l'' or |k B '-k A '|>η k |k B ''-k A When η l = 2 and η k It was confirmed that = 3 gave good results.
[0147] The calculation of the travel route, including the above-described selection of J and reselection of J, and calculation and recalculation of the bias arc, is performed by, for example, a calculation device 100 (see FIG. 25) described later.
[0148] 21A to 21C are flowcharts showing a specific example of a process for calculating whether a mobile robot will collide with an obstacle. Specifically, FIGS. 21A, 21B, and 21C show flowcharts of checks performed for each by-arc. Whether a calculated travel path will collide with an obstacle can be determined simply by checking whether each arc constituting the travel path will collide with the obstacle.
[0149] 22 is a flow chart showing an example of a process for calculating whether a mobile robot will collide with an obstacle. Specifically, FIG. 22 shows a flow chart of the checks performed at each arc.
[0150] First, the arc, obstacle, and hit box are acquired as input. The positions of the obstacle and arc (travel path of the mobile robot) acquired here are assumed to be expressed in the global coordinate system (world coordinate system). The arc acquired here is represented by the initial position A and orientation θ A , and the final position B and orientation θ B The position A and the position B are expressed as follows:
[0151]
[0152]
[0153] It is assumed that the obstacles are represented as points, which is typically the case when obstacles are detected using a LIDAR sensor. They are represented in a matrix as follows:
[0154]
[0155] As shown in FIG. 3 , consider a local coordinate system for the mobile robot (e.g., a new coordinate system fixed to the mobile robot, different from the world coordinate system shown in FIG. 3 ) in which the midpoints of the two active wheels of the mobile robot and the origin coincide, and the positive direction of the x-axis corresponds to the forward direction (direction of travel) of the mobile robot. In other words, the positive side of the x-axis corresponds to the front of the mobile robot, and the positive side of the y-axis corresponds to the left side of the mobile robot. In this embodiment, a rectangular hit box with sides set along the above axes is assumed, but this can be generalized. In other words, the hit box can be set regardless of the axes. Furthermore, the hit box can be any polygonal shape and does not have to be rectangular. Regardless of the shape of the hit box, its position is defined in the local coordinate system. The hit box can be expressed by the coordinates h = (minx, maxx, miny, maxy) of each vertex of the hit box.
[0156] In the following calculations, different calculations are performed for arcs with infinite radius of curvature (i.e., straight lines) and arcs with finite radius of curvature.
[0157] When the radius of curvature is infinite, the obstacle is expressed in the local coordinate system of the mobile robot when the pose of the mobile robot is (A, θA). Here, as shown below, the rotation matrix of angle θ is represented by R(θ), and the translation matrix by vector v is represented by T(v).
[0158]
[0159]
[0160] The position of the obstacle in the local coordinate system is given by:
[0161]
[0162] Also, Δx is defined as the x coordinate of point B in the local coordinate system as follows:
[0163]
[0164] The new hitbox h corresponds to the convex hull of the hitbox placed at point A and the hitbox placed at point B expressed in this local coordinate system. A For the rectangular hit box h defined above, h A becomes:
[0165]
[0166] Whether or not the mobile robot will collide with an obstacle is determined by h A Whether there is a point indicating an obstacle that falls within minx A ≦p l,i,x ≦maxx A ∧miny A ≦p l,i,y ≦maxy A ∃i, 1≦i≦N o This can be determined by checking:
[0167] If the radius of curvature of the arc is finite, a different calculation is performed. Let C be the center of rotation of the arc AB, and let r be its signed radius. When |r|>0, the radius is positive for clockwise rotation and negative for counterclockwise rotation. For fixed-position rotation, i.e., A=B=C, r=0 regardless of the direction of rotation.
[0168] The origin is C and the direction is θ A The local coordinate system is expressed as follows:
[0169]
[0170] The new hitbox h corresponding to the hitbox expressed in this way in the local coordinate system C is defined as follows:
[0171]
[0172] To determine whether a collision occurs with an obstacle while the mobile robot is moving along the arc, the following reasoning is applied: For an obstacle to be in the hit box, it must either be in the hit box from the beginning, or it must enter the hit box while the mobile robot is moving.
[0173] The arc where the collision with the obstacle is judged is a part of the planned travel path of the mobile robot. Therefore, if the current pose of the mobile robot is (A, θ A ), it is physically impossible for the obstacle to be inside the mobile robot, but it is possible for the obstacle to be inside the mobile robot when traveling along the travel path corresponding to the arc further ahead (specifically, the initial pose of the mobile robot in the bi-arc that it is planning to travel).
[0174] So, first, the hit box h C Check if there is an obstacle in minx C ≦p c,i,x ≦maxx C ∧miny C ≦p c,i,y ≦maxy C ∃i, 1≦i≦N such that o If there is an obstacle, C If it is within the range, it is determined that there will be a collision between the mobile robot and the obstacle if the mobile robot moves along the calculated travel path, and the calculation is terminated.
[0175] Hitbox h C If there is no obstacle within the hit box h, the obstacle will be detected when the mobile robot moves along the calculated travel path. C Check whether it is inside the hit box. C is moving and the obstacle is stationary. However, the hitbox h C It is easier to calculate if we consider that h is stationary and the obstacle is moving. Therefore, in the following calculations, we will determine whether the mobile robot will collide with the obstacle, assuming that the obstacle moves along the arc. Also, if the obstacle is within the hit box h, C To enter, the obstacle must be within the hitbox h C Therefore, if the obstacle moves, the trajectory of the obstacle must pass through one of the edges of the hit box h. C By calculating whether the obstacle intersects with any of the sides of the line, it is determined whether the mobile robot will collide with the obstacle.
[0176] FIG. 23 is a diagram for explaining a specific example of a process for calculating whether or not a mobile robot will collide with an obstacle.
[0177] As described above, the trajectory of the obstacle corresponds to the travel path of the mobile robot, and is therefore an arc. Specifically, the trajectory of the obstacle has the same rotation center C as the travel path of the mobile robot, and the angle θ d = θ b -θ a The hitbox h is the same size as the obstacle, but with an angle in the opposite direction. The trajectory of the obstacle is on a circle centered at the origin in the local coordinate system mentioned above. C Each side of is aligned with an axis of the local coordinate system, which makes it very easy to calculate whether or not a mobile robot will collide with an obstacle.
[0178] FIG. 24 is a flowchart showing a specific example of a process for calculating whether or not a mobile robot will collide with an obstacle.
[0179] The position of the obstacle is assumed to be point P. If we assume that the obstacle is moved from point P to point P', the angle -θ d The arc PP' is expressed using c PP’ Let arc PP' be the edge H 2 H 3 Determine whether it intersects with
[0180] In addition, points P and H 2 , and point H 3 is shown as follows:
[0181]
[0182]
[0183]
[0184] Arc PP' and edge H 2 H 3 To determine whether or not the edges intersect, first, 2 H 3 and circle c PP’ Calculate the intersection with
[0185]
[0186] y 2 If <0, circle c PP′ and side H 2 H 3 Since there is no intersection with arc PP' and side H 2 H 3 There is no intersection with y 2 If ≧0, circle c PP’ and side H 2 H 3 There are two intersection points between y and P2. If y=√y2 and these two intersection points are points P1 and P2, the calculation is as follows:
[0187]
[0188]
[0189] In this way, y 2 = 0 (i.e., side H 2 H 3 is circle c PP’ When in contact with 1 = S 2 This becomes:
[0190] Here, the angle between the line segment CP and the x-axis is Φ p Similarly, the line segment CS 1 and line segment CS 2 The angle between the x-axis and 1 and Φ 2 In this case, the angle of the midpoint of the arc PP' is Φ M becomes:
[0191]
[0192] This results in point S 1 and point S 2 Each of the lines is a line that has an arc PP' and an edge H 2 H 3 If and only if both arc PP' and edge H 2 H 3 It is located at the intersection of S 1 ∈H 2 H 3 Ha, mini C < y < max y COnly in the case of S 1 is cos(Φ 1 -Φ M ) > cos(Φ d / 2), it is located on the arc PP'.
[0193] Similarly, S 2 ∈H 2 H 3 Ha, mini C <-y<max y C Only when S 1 ∈Arc PP' is cos(Φ 2 -Φ M ) > cos(Φ d / 2). In this way, collisions between arcs and edges of the hit box can be determined efficiently without sampling as shown in FIG.
[0194] 23 and 24 show the side H 2 H 3 This is an example of calculating whether or not a collision occurs with an obstacle. Collisions between other sides of the hit box and obstacles are also calculated based on the side H 2 H 3 can be determined similarly to the calculation for
[0195] For example, a calculation device 100 (see FIG. 25) described later performs the processes of FIGS. 21A to 24.
[0196] FIG. 21A is a flowchart showing an outline of collision determination.
[0197] First, the calculation device 100 obtains the arc AB (i.e., the travel route), the obstacles (specifically, the positions and shapes of the obstacles), and the hit boxes (specifically, the coordinates of the hit boxes) (S110).
[0198] Next, the calculation device 100 calculates whether or not the first arc (the arc that includes point A at its end point, specifically, arc AJ) will collide with the obstacle (S120). For example, as described above with reference to FIG. 23 , it calculates whether or not the first arc will collide with the obstacle.
[0199] When it is determined that the first arc will not collide with the obstacle (No in S130), the computing device 100 calculates whether or not the second arc (the arc that includes point B as an end point of the two arcs, arc AB, specifically arc JB) will collide with the obstacle (S140). For example, as described above with reference to FIG. 23 , whether or not the second arc will collide with the obstacle is calculated.
[0200] If the calculation device 100 determines that the second arc will not collide with an obstacle (No in S150), it determines that the mobile robot will not collide with an obstacle even if it moves along the travel path (S160).
[0201] On the other hand, if the computing device 100 determines that the first arc will collide with an obstacle (Yes in S130) or that the second arc will collide with an obstacle (Yes in S150), it determines that the mobile robot will collide with an obstacle if it moves along the travel path (S170).
[0202] 21B and 21C are flowcharts showing a specific example of collision detection using hit boxes.
[0203] First, the calculation device 100 obtains the arc AB, the obstacle, and the hit box, similar to step S110 (S210).
[0204] Next, the calculation device 100 determines whether |r|=∞ (S220).
[0205] When it is determined that |r|=∞ (Yes in S220), the calculation device 100 calculates R(-θ A )T(-A)B is used to perform coordinate transformation of the obstacle (S240).
[0206] Next, the calculation device 100 calculates R(-θ A )T(-A)B is calculated as the x coordinate Δx (S250).
[0207] Next, the calculation device 100 determines whether Δx≧0 (S260).
[0208] If the calculation device 100 determines that Δx≧0 (Yes in S260), the hit box is A= (minx, maxx + Δx, miny, maxy) (S270).
[0209] On the other hand, if it is determined that Δx≧0 is not true (No in S260), the calculation device 100 sets the hit box to h A = (minx + Δx, maxx, miny, maxy) (S280).
[0210] After step S270 or S280, the calculation device 100 A It is determined whether an obstacle is located inside the area (S290).
[0211] The calculation device 100 sets the hit box h A If it is determined that an obstacle is located inside the obstacle (Yes in S290), it is determined that the mobile robot will collide with the obstacle if it moves along the travel route (S300).
[0212] On the other hand, the calculation device 100 A If it is determined that no obstacle is located inside the route (No in S290), it is determined that the mobile robot will not collide with an obstacle even if it moves along the travel route (S310).
[0213] Furthermore, if the calculation device 100 determines that |r| is not ∞ (No in S220), the calculation device 100 proceeds to step S410 shown in FIG. 21C (S230).
[0214] If the answer is No in step S220, the calculation device 100 calculates R(-θ A ) T(-C) to perform coordinate transformation of the obstacle (S410).
[0215] Next, the computing device 100 sets the hit box to h C = (minx, maxx, miny-r, maxy-r) (S420).
[0216] Next, the calculation device 100 calculates the hit box h C It is determined whether an obstacle is located inside the area (S430).
[0217] The calculation device 100 sets the hit box h CIf it is determined that no obstacle is located inside θ d (=(Φ B -Φ A ) is calculated (S440).
[0218] Next, the computing device 100 determines whether or not all obstacle points have been investigated (collision determination) (S450). For example, in the subsequent steps S460 to S480, the computing device 100 performs collision determination for each obstacle point acquired by LIDAR.
[0219] When the calculation device 100 determines that there are points that have not been investigated (No in S450), the calculation device 100 acquires the points of the obstacles that have not been investigated (specifically, information indicating the positions of the points) (S460).
[0220] The calculation device 100 calculates the obtained points and the hit box h C It is determined whether or not there is a collision with each side of (S480).
[0221] The calculation device 100 calculates the obtained points and the hit box h C If it is determined that there is no collision with any of the sides of (No in S480), the process returns to step S450.
[0222] The calculation device 100 sets the hit box h C If it is determined that an obstacle is located inside the hit box h (Yes in S430), or if the acquired point and the hit box h C If it is determined that the mobile robot will collide with any of the sides of the obstacle (Yes in S480), it is determined that the mobile robot will collide with an obstacle if it moves along the travel route (S490).
[0223] On the other hand, if the calculation device 100 determines that all obstacle points have been investigated (Yes in S450), it determines that the mobile robot will not collide with any obstacles even if it moves along the travel route (S500).
[0224] FIG. 22 is a flowchart showing a specific example of step S480 shown in FIG. 21C.
[0225] First, the calculation device 100 calculates the hit box h C , the obstacle point P, and ,θ dis obtained (S710).
[0226] Next, the calculation device 100 calculates y=min c (Range: (min x C , maxx C )), that is, the line segment H 1 H 2 It is determined whether or not point P collides with point P (S720).
[0227] The calculation device 100 calculates the line segment H 1 H 2 If it is determined that there is no collision between y and point P (No in S730), then y = maxy c (Range: (min x C , maxx C )), that is, the line segment H 3 H 4 It is determined whether or not point P collides with point P (S740).
[0228] The calculation device 100 calculates the line segment H 3 H 4 If it is determined that there is no collision between x and point P (No in S750), then x = maxx c (Range: (min C , maxy C )), that is, the line segment H 2 H 3 It is determined whether or not point P collides with point P (S760).
[0229] The calculation device 100 calculates the line segment H 2 H 3 If it is determined that there is no collision between x and point P (No in S770), x = minx c (Range: (min C , maxy C )), that is, the line segment H 1 H 4 It is determined whether or not point P collides with point P (S780).
[0230] The calculation device 100 calculates the line segment H 1 H 4 If it is determined that there will be no collision between the point P and the point B (No in S790), it is determined that the mobile robot will not collide with an obstacle even if it moves along the travel route (S800).
[0231] On the other hand, the calculation device 100 calculates the line segment H1 H 2 If it is determined that the line segment H collides with the point P (Yes in S730), 3 H 4 If it is determined that the line segment H collides with the point P (Yes in S750), 2 H 4 If it is determined that the line segment H collides with the point P (Yes in S770), or 1 H 4 If it is determined that a collision will occur between the point P and the obstacle (Yes in S790), it is determined that the mobile robot will collide with an obstacle if it moves along the travel path (S810).
[0232] FIG. 24 is a flowchart showing a specific example of the process of determining whether or not an edge of the hit box collides with point P of an obstacle, such as the process of step S760 shown in FIG.
[0233] First, the calculation device 100 calculates the hit box h C , the obstacle point P, and ,θ d is obtained (S910).
[0234] Next, the calculation device 100 calculates y 2 (=px 2 +py 2 -maxx C 2 ) is calculated (S920), where px is the x-coordinate of point P and py is the y-coordinate of point P.
[0235] Next, the calculation device 100 calculates y 2 It is determined whether or not the value is <0 (S930).
[0236] The calculation device 100 calculates y 2 If it is determined that y is not < 0 (No in S930), 2 )), and Φ M (=Φ p -θ d / 2) is calculated (S940).
[0237] Next, the calculation device 100 calculates C ≦y≦max y C It is determined whether or not this is the case (S950).
[0238] The calculation device 100 C ≦y≦max y C If it is determined that Φ 1 is calculated (S960).
[0239] Next, the calculation device 100 calculates cos(Φ 1 -Φ M ) > cos(θ d / 2) (S970).
[0240] The calculation device 100 calculates cos(Φ 1 -Φ M ) > cos(θ d / 2) (No in S970), C ≦-y≦max y C It is determined whether or not this is the case (S980).
[0241] The calculation device 100 C ≦-y≦max y C If it is determined that Φ 2 is calculated (S990).
[0242] Next, the calculation device 100 calculates cos(Φ 2 -Φ M ) > cos(θ d / 2) (S1000).
[0243] The calculation device 100 calculates cos(Φ 1 -Φ M ) > cos(θ d / 2) (Yes in S970), or cos(Φ 2 -Φ M ) > cos(θ d / 2) (Yes in S1000), it is determined that the mobile robot will collide with an obstacle if it moves along the travel route (S1010).
[0244] On the other hand, the calculation device 100 calculates y 2 If it is determined that min<0 (Yes in S930), C ≦-y≦max y C If it is determined that the cos(Φ2 -Φ M ) > cos(θ d / 2) (No in S1000), it is determined that the mobile robot will not collide with an obstacle even if it moves along the travel route (S1020).
[0245] (Summary) [Configuration] FIG. 25 is a block diagram showing the configuration of the mobile robot 10 according to the embodiment.
[0246] The mobile robot 10 is an autonomously moving object. The mobile robot 10 performs tasks such as cleaning, minesweeping, or data collection while moving along a travel path calculated as described above using, for example, SLAM (Simultaneous Localization and Mapping) technology. The mobile robot 10 detects information indicating the positions of walls, objects, and the like located around the mobile robot 10 using a sensor such as a LIDAR, and estimates its own position using the detected information and a map of the area in which the mobile robot 10 travels. The mobile robot 10 also estimates its own position using, for example, odometry information. The mobile robot 10 moves (travels) from its own position to a predetermined destination along, for example, the calculated travel path.
[0247] The mobile robot 10 includes a detection unit 20 , a control unit 30 , a drive unit 40 , and a calculation device 100 .
[0248] The detection unit 20 is a sensor unit that detects the environment around the mobile robot 10 so that the mobile robot 10 can move autonomously. The detection unit 20 includes, for example, a camera that detects the surroundings of the mobile robot 10 and the road surface, an angular velocity sensor that detects the orientation of the mobile robot 10 (for example, the direction in which the mobile robot 10 is moving), and an odometry sensor that measures the number of rotations (odometry information) of the wheels provided on the mobile robot 10.
[0249] The control unit 30 is a processing unit that controls each device included in the mobile robot 10. For example, the control unit 30 causes the mobile robot 10 to travel along a travel path calculated by the computing device 100. Also, for example, the control unit 30 causes the mobile robot 10 to travel by controlling the driving unit 40. Specifically, the control unit 30 controls the driving unit 40 so that the mobile robot 10 travels along the travel path calculated by the computing device 100 based on the estimated self-position. Also, for example, the control unit 30 uses the above-mentioned SLAM technology based on the detection result of the detection unit 20 to generate a map (map information) of a predetermined space in which the mobile robot 10 will travel, and calculates (estimates) the self-position of the mobile robot 10 in the predetermined space (more specifically, coordinates on the map of the predetermined space).
[0250] The control unit 30 is realized, for example, by a control program for executing the above-mentioned processing, a memory for storing the control program and various information such as maps, and a processor such as a CPU (Central Processing Unit) that executes the control program.
[0251] The driving unit 40 is a device for driving the mobile robot 10. The driving unit 40 includes, for example, a driving motor for rotating the wheels.
[0252] The calculation device 100 is a processing device that calculates the travel path of the mobile robot 10 and determines whether the mobile robot 10 will collide with an obstacle. The calculation device 100 is a computer realized by, for example, a communication interface that communicates with the detection unit 20 and the control unit 30, a non-volatile memory that stores a program, a volatile memory that is a temporary storage area for executing the program, an input / output port for sending and receiving signals, and a processor that executes the program. The communication interface may be realized by a connector to which a communication line or the like is connected for wired communication, or by a wireless communication circuit or the like for wireless communication. There are no particular limitations on the communication standard used for communication.
[0253] The calculation device 100 may be mounted on the mobile robot 10, or may be separate from the mobile robot 10 as a server device or the like.
[0254] The calculation device 100 includes an acquisition unit 110 , a calculation unit 120 , an output unit 130 , and a storage unit 140 .
[0255] The acquisition unit 110 and a processing unit that acquires various information. For example, the acquisition unit 110 acquires various information from the detection unit 20 and the storage unit 140. For example, the acquisition unit 110 may acquire information from an external server device or the like via a communication interface.
[0256] For example, the acquisition unit 110 acquires a first position and a second position different from the first position. For example, the first position is position A shown in Figures 8A to 8D, and the second position is position B shown in Figures 8A to 8D. Specifically, the acquisition unit 110 acquires lattice information indicating a position and a plurality of lattice points each indicating the orientation of the mobile robot 10 at that position.
[0257] The lattice information is, for example, the lattice described above. For example, the multiple lattice points indicate the location where the user wants the mobile robot 10 to travel and the orientation of the mobile robot 10 at that location. For example, each of the multiple lattice points is the waypoint shown in FIG. 6 . For example, the current location of the mobile robot 10 is the first location, and the first point is the second location. For example, the first point is the first location, and the second point is the second location. For example, the acquisition unit 110 acquires multiple first waypoints, each indicating a location and the orientation of the mobile robot 10 at that location, and numerical information. Furthermore, the acquisition unit 110 acquires, for example, multiple second waypoints, each of which is located differently from the multiple first waypoints, by a number corresponding to the numerical values indicated by the numerical information, and generates lattice information in which the multiple first waypoints and multiple second waypoints form multiple lattice points, thereby acquiring the lattice information.
[0258] The multiple first waypoints are, for example, waypoints indicating a predetermined position and orientation as shown in Fig. 6. The multiple second waypoints are waypoints indicating a position and orientation that are added when n = 2 as shown in Fig. 6. The numerical information is, for example, a value indicating n (n = 2 in the above example). The numerical information is, for example, a value that is arbitrarily set by the user. In other words, n may be 0, 1, or 3 or more.
[0259] The calculation unit 120 is a processing unit that calculates the travel path of the mobile robot 10 and determines whether or not the mobile robot 10 will collide with an obstacle. Specifically, the calculation unit 120 includes a calculation unit 120 that calculates a first travel path of the mobile robot 10 that moves autonomously from a first position to a second position, and the calculation unit 120 calculates the travel path (first travel path) so as to connect the first position and the second position with a bi-arc.
[0260] A bi-arc is a line connecting two arcs. Note that, as shown in Figures 8C or 8D, for example, at least one of the two arcs included in the bi-arc may have a curvature of 0 (i.e., a straight line), or the two arcs may overlap (i.e., may be one arc).
[0261] In addition, calculating a travel route so as to connect by arcs means, for example, 1 This means that the travel path is calculated using an equation that calculates two continuous arcs (in other words, a series of arcs) that have continuity. For example, a straight line is calculated by making the radius of curvature of the arc in the equation infinite. Also, for example, one arc is calculated by setting the centers of the two arcs at the same position in the equation. Therefore, the calculation unit 120 calculates a G that connects the first position and the second position using the equation for calculating the arc. 1Two continuous lines (for example, two arcs constituting a bi-arc) are calculated as the travel path. Here, the calculation unit 120 calculates the two lines so that the first position and one end of the first line of the two lines overlap, the other end of the first line and one end of the second line of the two lines overlap, and the other end of the second line and the second position overlap. Furthermore, the calculation unit 120 calculates the travel path so that the first position and one end of the second line of the two lines overlap, and the other end of the second line and the second position overlap. 1 In order to have continuity, that is, the first line, the second line, and the other end of the first line and one end of the second line overlap at the junction point G 1 In other words, the calculation unit 120 calculates a first traveling path of the mobile robot 10 that moves autonomously from a first position to a second position using a predetermined line (specifically, a bi-arc) made up of two continuous lines, calculates the two lines using a formula for calculating an arc so that one end of each line is connected at a connecting point, and calculates the first traveling path so that the first position and the second position are connected by the predetermined line.
[0262] For example, when calculating the travel path, the calculation unit 120 positions a joining point, which is a position where two arcs in a bi-arc indicating the travel path, on the bisector of the line segment connecting the first position and the second position. Furthermore, for example, the calculation unit 120 further calculates an angle φ, which is an angle indicating the orientation of the mobile robot 10 with respect to the reference line at the first position. A (-π≦φ A ≦π), and the angle with respect to the reference line at the second position is φ B (-π≦φ B ≦π), then (i) φ B >φ A (ii) the attachment point is positioned to the right of the second position as viewed from the first position; B <φ A (iii) φ B =φ A In this case, the connection point is positioned on the line segment connecting the first position and the second position.
[0263] The connecting point is, for example, the above point J. The reference line is, for example, the line segment AB.
[0264] The reference line may be set arbitrarily.
[0265] As a result, for example, the calculation unit 120 calculates a travel path from a first position (for example, the current position of the mobile robot 10) to a second position. Furthermore, for example, the calculation unit 120 calculates a travel path based on the grid information such that a bi-arc connects the current position of the mobile robot 10 and a first point that is any of the multiple grid points, and also connects the first point with a second point that is any of the multiple grid points excluding the first point, and the first point with a bi-arc.
[0266] In this way, the calculation unit 120 generates a driving path (initial driving path) by, for example, connecting the current position of the mobile robot 10 and each waypoint with a bi-arc so that the mobile robot faces the direction specified by each waypoint.
[0267] The control unit 30 causes the mobile robot 10 to travel along the travel route calculated by the calculation unit 120, for example.
[0268] Here, for example, suppose that the mobile robot 10 starts traveling from a first position and is then moved to a third position by a user or the like. In such a case, the calculation unit 120 recalculates the traveling path. Specifically, the calculation unit 120 calculates a traveling path from the third position to the second position. For example, after calculating the first traveling path, when the calculation unit 120 calculates a traveling path (second traveling path) of the mobile robot 10 that autonomously moves from a third position different from the first position and the second position to the second position, the calculation unit 120 calculates the second traveling path based on the first traveling path so as to connect the second position and the third position with a bi-arc. Specifically, assuming that the position where two arcs in a biarc representing a first travel path join is the first node, and the position where two arcs in a biarc representing a second travel path join is the second node, when calculating the second travel path, if the radius of curvature of the first arc connecting the second node and the second position of the two arcs in the biarc representing the second travel path is finite, the calculation unit 120 positions the second node on the circle of the second arc connecting the first node and the second position of the two arcs in the biarc representing the first travel path. Furthermore, for example, if the radius of curvature of the first arc is infinite, the calculation unit 120 positions the second node on a straight line passing through the first node and the second position. The third position is, for example, position A' shown in FIGS. 17 to 19 .
[0269] The first connection point is, for example, point J. The second connection point is, for example, point J' shown in FIGS. 17 to 19. When the radius of curvature of the first arc is finite, the first arc is, for example, arc-shaped, as shown in FIG. 19, and is set so as to overlap at least a portion of the second arc. On the other hand, when the radius of curvature of the first arc is infinite, the first arc is linear, as shown in FIG. 18. When the radius of curvature of the first arc is infinite, the calculation unit 120 positions the second connection point on a straight line extending from the straight first arc.
[0270] In this way, for example, when calculating a new driving route, the calculation unit 120 calculates the new driving route so that it depends on the original driving route (specifically, so that it partially overlaps with the original driving route).
[0271] Note that, for example, when calculating a travel route again, the calculation unit 120 may calculate a new travel route without considering the original travel route. Furthermore, when calculating a travel route again, the calculation unit 120 may calculate a travel route that depends on the original travel route, or may calculate a travel route without considering the original travel route, compare the two calculated travel routes, and determine the better one as the new travel route.
[0272] Specifically, for example, the calculation unit 120 calculates a travel path (third travel path) that connects the second position and the third position with a bi-arc, and when calculating the third travel path, the calculation unit 120 positions the position of a third joining point, which is the position where two arcs in the bi-arc that indicates the third travel path, on the bisector of the line segment that connects the third position and the second position, and further calculates an angle that indicates the orientation of the mobile robot 10 and is the angle with respect to the reference line at the third position as φ C (-π≦φ C ≦π), and the angle with respect to the reference line at the second position is φ B (-π≦φ B ≦π), (iv) φ B >φ C When the third connection point is located to the right of the second position as viewed from the third position, (v) φ B <φ C (vi) the third bonding point is located to the left of the second bonding point when viewed from the third bonding point; B =φ C In this case, the calculation unit 120 compares the second travel path (first new travel path) with the third travel path (second new travel path), and if (vii) the length of the second travel path is shorter than the length of the third travel path multiplied by the first coefficient, and (viii) the absolute value of the curvature difference between the two arcs of the bi-arc representing the second travel path is smaller than the value obtained by multiplying the absolute value of the curvature difference between the two arcs of the bi-arc representing the third travel path by the second coefficient, the calculation unit 120 determines the second travel path as the travel path along which the mobile robot 10 will autonomously move from the third position to the second position.
[0273] The third node is, for example, J'' shown in Fig. 20. For example, the calculation unit 120 compares the travel route shown by the solid line in Fig. 20 (an example of the second travel route, the arc A'B shown by the solid line) with the travel route shown by the dotted line in Fig. 20 (an example of the third travel route, the arc A'B shown by the dotted line), and determines the route with the shorter distance as the new travel route.
[0274] The first coefficient and the second coefficient are each a numerical value of 1 or more that is arbitrarily set by the user.
[0275] The first and second coefficients are stored in advance in the storage unit 140, for example.
[0276] The output unit 130 is a processing unit that outputs the calculation results of the calculation unit 120. The output unit 130 outputs, for example, the travel route calculated by the calculation unit 120 and the collision determination result to the control unit 30.
[0277] Each processing unit, such as the acquisition unit 110, the calculation unit 120, and the output unit 130, is realized by a control program for executing the above-mentioned processing, a memory for storing the control program, and a processor, such as a CPU, that executes the control program.
[0278] The storage unit 140 is a storage device that stores control programs executed by each processing unit, such as the acquisition unit 110, the calculation unit 120, and the output unit 130. The storage unit 140 is realized by, for example, a hard disk drive (HDD) and / or a flash memory.
[0279] [Processing Procedure] Next, the processing procedure of the mobile robot 10 will be described.
[0280] FIG. 26 is a flowchart showing the processing procedure of the mobile robot 10 according to the embodiment.
[0281] The acquisition unit 110 acquires a first position and a second position different from the first position (S10). For example, the acquisition unit 110 acquires grid information indicating the first position and the second position stored in the storage unit 140. For example, the acquisition unit 110 may acquire information indicating the first position and the second position from an external server or the like via a communication interface or the like provided in the computing device 100. Furthermore, for example, when the computing device 100 is realized by a server device or the like separate from the mobile robot 10, the acquisition unit 110 may acquire the first position and the second position from the mobile robot 10.
[0282] Next, the calculation unit 120 calculates a first driving path of the mobile robot 10 that moves autonomously from the first position to the second position (S20). Here, the calculation unit 120 calculates a driving path (first driving path) that connects the first position and the second position with a bi-arc.
[0283] Next, the output unit 130 outputs the travel route calculated by the calculation unit 120 (specifically, information indicating the travel route) (S30). For example, the output unit 130 outputs the travel route to the control unit 30.
[0284] Next, the control unit 30 causes the mobile robot 10 to run (move) based on the running route (S40). Specifically, the control unit 30 causes the mobile robot 10 to run along the running route.
[0285] [Effects, etc.] Hereinafter, examples of techniques that can be obtained from the disclosure of this specification will be given, and effects, etc. that can be obtained from the exemplified techniques will be described.
[0286] Technique 1 is a calculation device 100 that includes an acquisition unit 110 that acquires a first position and a second position different from the first position, and a calculation unit 120 that calculates a first traveling path of a mobile robot 10 that moves autonomously from the first position to the second position, and the calculation unit 120 calculates the first traveling path so as to connect the first position and the second position with a bi-arc.
[0287] This reduces the amount of processing required for the autonomous driving of the mobile robot 10. Specifically, since the driving path of the mobile robot 10 is a combination of arcs, as described above, the calculation for determining whether the mobile robot 10 (more specifically, the hit box) will collide with an obstacle is simpler than the conventional calculation of repeatedly setting hit boxes and determining a collision. Therefore, the calculation device 100 reduces the amount of processing required for the autonomous driving of the mobile robot 10. Furthermore, since the driving path of the mobile robot 10 is a combination of arcs, unlike a driving path calculated by combining only straight lines, the calculation can be performed by using G 1 This allows the calculation of a continuous travel path, which makes it easier for the mobile robot to continue traveling without having to stop to change direction.
[0288] In the second technique, when calculating the first traveling path, the calculation unit 120 positions a joining point, which is a position where two arcs in a bi-arc representing the first traveling path join, on the bisector of the line segment connecting the first position and the second position, and further calculates an angle indicating the orientation of the mobile robot 10 with respect to a reference line at the first position as φ A (-π≦φ A ≦π), and the angle with respect to the reference line at the second position is φ B (-π≦φ B ≦π), then (i) φ B >φ A (ii) the attachment point is positioned to the right of the second position as viewed from the first position; B <φ A (iii) φ B =φ A In this case, the calculation device 100 positions the connection point on a line segment connecting the first position and the second position.
[0289] An example of the connecting point is point J. As described above, the fact that point J, which is the connecting point, is on the bisector of line segment AB means that α = 0. If α = 0, the difference in curvature between the two arcs of the bi-arc can be reduced, and the length of the travel path can be shortened.
[0290] Technique 3 is the calculation device 100 described in Technique 1 or 2, in which the acquisition unit 110 acquires grid information indicating a plurality of grid points each indicating a position and an orientation of the mobile robot 10 at that position, and the calculation unit 120 calculates a first traveling path based on the grid information so as to connect the current position of the mobile robot 10 and a first point which is any of the plurality of grid points with a bi-arc, and to connect the first point with a second point which is any of the plurality of grid points excluding the first point, and the first point with a bi-arc.
[0291] In this way, the calculation unit 120 selects the current position of the mobile robot 10 and two points from among a plurality of grid points, and calculates a travel path for the mobile robot 10 by repeating a calculation in which one of the two points is set as a first position and the other is set as a second position and connected by a bi-arc. This allows the calculation unit 120 to easily calculate a travel path using a plurality of grid points.
[0292] Technology 4 is the calculation device 100 described in Technology 3, in which the acquisition unit 110 acquires a plurality of first waypoints, each indicating a position and the orientation of the mobile robot 10 at that position, and numerical information, increases a plurality of second waypoints, whose positions are different from the plurality of first waypoints, by a number corresponding to the numerical values indicated by the numerical information, and generates grid information in which the plurality of first waypoints and the plurality of second waypoints form a plurality of grid points, thereby acquiring grid information.
[0293] According to this, the calculation unit 120 can calculate a travel route by appropriately selecting waypoints to avoid obstacles even if they are in unexpected locations, for example, by setting numerical information according to the size of the space in which the mobile robot 10 travels.
[0294] Technique 5 is the calculation device 100 according to any one of Techniques 1 to 4, in which, after calculating the first travel path, the calculation unit 120 calculates a second travel path of the mobile robot 10 that moves autonomously from a third position different from each of the first position and the second position to the second position, based on the first travel path, so as to connect the second position and the third position with a bi-arc.
[0295] The mobile robot 10 may be unexpectedly moved and deviate from the travel path due to, for example, the wheels of the mobile robot 10 slipping on the road surface or the influence of a slope on the road surface. In such a case, for example, the calculation unit 120 recalculates the travel path. In this way, even if the mobile robot 10 is unexpectedly moved to, for example, a third position that is not on the first travel path, it can still reach the second position.
[0296] Technique 6 is the calculation device 100 according to Technique 5, in which a position where two arcs in a biarc indicating a first traveling path are joined is defined as a first connecting point, and a position where two arcs in a biarc indicating a second traveling path are joined is defined as a second connecting point, and when calculating the second traveling path, if the radius of curvature of a first arc connecting the second connecting point and the second position, of the two arcs in the biarc indicating the second traveling path, is finite, the calculation unit 120 positions the second connecting point on a circle of a second arc connecting the first connecting point and the second position, of the two arcs in the biarc indicating the first traveling path, and if the radius of curvature of the first arc is infinite, the calculation unit 120 positions the second connecting point on a line passing through the first connecting point and the second position.
[0297] This allows the amount of processing to be reduced and the first arc close to the second arc to be calculated.
[0298] In technique 7, the calculation unit 120 calculates a third traveling path so as to connect the second position and the third position with a bi-arc, and when calculating the third traveling path, the calculation unit 120 positions a third joining point, which is a position where two arcs in the bi-arc that indicates the third traveling path join, on a bisector of a line segment that connects the third position and the second position, and further calculates an angle that indicates the orientation of the mobile robot 10 and is an angle with respect to a reference line at the third position as φ C (-π≦φ C ≦π), and the angle with respect to the reference line at the second position is φ B (-π≦φ B ≦π), (iv) φ B >φ C When the third connection point is located to the right of the second position as viewed from the third position, (v) φ B <φ C(vi) the third bonding point is located to the left of the second bonding point when viewed from the third bonding point; B =φ C In this case, a third connection point is positioned on the line segment connecting the third position and the second position, and the second travel path is compared with the third travel path. If (vii) the length of the second travel path is shorter than the length of the third travel path multiplied by the first coefficient, and (viii) the absolute value of the curvature difference between the two arcs of the bi-arc representing the second travel path is smaller than the value obtained by multiplying the absolute value of the curvature difference between the two arcs of the bi-arc representing the third travel path by the second coefficient, the calculation device 100 determines the second travel path as the travel path along which the mobile robot 10 will autonomously move from the third position to the second position.
[0299] That is, for example, when the calculation unit 120 recalculates a driving route, it calculates the driving route using both the calculation method described in Technology 2 and the calculation method described in Technology 6, compares the calculated routes, and adopts the better one as the driving route.
[0300] This allows an appropriate travel route to be adopted even in cases where the calculated second travel route is unnecessarily long, as shown in FIG. 20, for example.
[0301] Technology 8 is a mobile robot 10 including the calculation device 100 according to any one of Technology 1 to Technology 7, and a control unit that causes the mobile robot 10 to travel along a travel route calculated by the calculation device 100.
[0302] This allows the mobile robot 10 to move autonomously along a travel route that reduces the amount of processing required for the autonomous traveling of the mobile robot 10. Therefore, the mobile robot 10 can reduce the amount of processing required for the autonomous traveling.
[0303] The present disclosure may also be realized as a calculation method that is a process executed by a calculation device. The present disclosure may also be implemented as a program that causes a computer to execute the calculation method, or as a computer-readable non-transitory recording medium that stores the program. The present disclosure may also be realized as a control method that causes a mobile robot to travel along a travel path calculated by a calculation device. The present disclosure may also be implemented as a program that causes a computer to execute the control method, or as a computer-readable non-transitory recording medium that stores the program.
[0304] Other Embodiments Although the calculation device and the like according to the present disclosure have been described above based on the above-described embodiments, the present disclosure is not limited to the above-described embodiments.
[0305] For example, in the above embodiment, each processing unit is described as being realized by a CPU and a control program. For example, each component of the processing unit may be composed of one or more electronic circuits. Each of the one or more electronic circuits may be a general-purpose circuit or a dedicated circuit. The one or more electronic circuits may include, for example, a semiconductor device, an integrated circuit (IC), or a large-scale integration (LSI). The IC or LSI may be integrated on a single chip or on multiple chips. Although the IC or LSI is referred to here as an IC or LSI, the name may vary depending on the degree of integration, and may be called a system LSI, a very large-scale integration (VLSI), or an ultra-large-scale integration (ULSI). Also, a field programmable gate array (FPGA), which is programmed after the LSI is manufactured, can be used for the same purpose.
[0306] In the above-described embodiment, the processing performed by a specific processing unit may be performed by another processing unit. The order of multiple processing operations may be changed, or multiple processing operations may be performed in parallel.
[0307] Furthermore, the general or specific aspects of the present disclosure may be realized as a system, an apparatus, a method, an integrated circuit, or a computer program. Alternatively, they may be realized as a computer-readable non-transitory recording medium such as an optical disk, a HDD, or a semiconductor memory on which the computer program is stored. Alternatively, they may be realized as any combination of a system, an apparatus, a method, an integrated circuit, a computer program, and a recording medium.
[0308] In addition, this disclosure also includes forms obtained by applying various modifications to each embodiment that a person skilled in the art would think of, and forms realized by arbitrarily combining the components and functions of each embodiment within the scope of this disclosure.
[0309] The present disclosure can be used for autonomously moving mobile robots.
[0310] REFERENCE SIGNS LIST 10 Mobile robot 20 Detection unit 30 Control unit 40 Driving unit 100 Calculation device 110 Acquisition unit 120 Calculation unit 130 Output unit 140 Storage unit
Claims
1. an acquisition unit that acquires a first position and a second position different from the first position; a calculation unit that calculates a first travel path of the mobile robot that autonomously moves from the first position to the second position, the calculation unit calculates the first travel path so as to connect the first position and the second position by a bi-arc. Calculation device.
2. When the calculation unit calculates the first travel route, a joining point, which is a position where two arcs in a bi-arc indicating the first travel path join, is positioned on a bisector of a line segment connecting the first position and the second position; Furthermore, the angle indicating the orientation of the mobile robot with respect to the reference line at the first position is defined as φ A (-π≦φ A ≦π), and the angle with respect to the reference line at the second position is φ B (-π≦φ B ≦π), (i) φ B >φ A In this case, the connection point is located to the right of the second position when viewed from the first position, (ii) φ B <φ A In this case, the connection point is located to the left of the second position when viewed from the first position, (iii) φ B =φ A When the above formula is satisfied, the connecting point is positioned on a line segment connecting the first position and the second position. The computing device of claim 1 .
3. the acquisition unit acquires lattice information indicating a plurality of lattice points each indicating a position and an orientation of the mobile robot at the position; the calculation unit calculates the first travel path based on the grid information so as to connect a current position of the mobile robot and a first point that is any one of the plurality of grid points by a bi-arc, and to connect the first point and a second point that is any one of the plurality of grid points excluding the first point by a bi-arc. The computing device of claim 1 .
4. The acquisition unit acquiring a plurality of first waypoints each indicating a position and an orientation of the mobile robot at the position, and numerical information; increasing a number of second waypoints that are different in position from the plurality of first waypoints by a number corresponding to the numerical value indicated by the numerical information; acquiring the grid information by generating the grid information with the plurality of first waypoints and the plurality of second waypoints as the plurality of grid points; The calculation device according to claim 3 .
5. when calculating a second travel path of the mobile robot that autonomously moves from a third position different from each of the first position and the second position to the second position after calculating the first travel path, the calculation unit calculates the second travel path based on the first travel path so as to connect the second position and the third position by a bi-arc; The computing device of claim 1 .
6. When a position where two arcs in the bi-arc indicating the first traveling path are joined is defined as a first joining point, and a position where two arcs in the bi-arc indicating the second traveling path are joined is defined as a second joining point, When calculating the second travel route, the calculation unit when a radius of curvature of a first arc connecting the second connecting point and the second position, of the two arcs in the biarc that indicate the second traveling path, is finite, the second connecting point is positioned on a circle of a second arc connecting the first connecting point and the second position, of the two arcs in the biarc that indicate the first traveling path; When the radius of curvature of the first arc is infinite, the second connecting point is positioned on a straight line passing through the first connecting point and the second position. The calculation device of claim 5 .
7. The calculation unit calculating a third travel path that connects the second position and the third position by a bi-arc; When calculating the third travel route, a third connecting point, which is a position where two arcs in a bi-arc indicating the third travel path are connected, is positioned on a bisector of a line segment connecting the third position and the second position; Furthermore, the angle indicating the orientation of the mobile robot with respect to the reference line at the third position is defined as φ C (-π≦φ C ≦π), and the angle with respect to the reference line at the second position is φ B (-π≦φ B ≦π), (iv) φ B >φ C In this case, the third connecting point is located to the right of the second position when viewed from the third position, (v) φ B <φ C In this case, the third connecting point is located to the left of the second position when viewed from the third position, (vi) φ B =φ C the third connecting point is located on a line segment connecting the third position and the second position, comparing the second travel path with the third travel path, and if (vii) the length of the second travel path is shorter than the length of the third travel path multiplied by a first coefficient, and (viii) the absolute value of the curvature difference between the two arcs of the bi-arc representing the second travel path is smaller than the value obtained by multiplying the absolute value of the curvature difference between the two arcs of the bi-arc representing the third travel path by a second coefficient, determining the second travel path as the travel path along which the mobile robot will autonomously move from the third position to the second position; The calculation device of claim 6 .
8. A calculation device according to any one of claims 1 to 7; a control unit that causes the mobile robot to travel along the travel route calculated by the calculation device, Mobile robot.