Mobile robot, mobile robot control method, and program
Patent Information
- Application Number
- JP2024011323
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2024-01-29
- Publication Date
- 2026-08-26
AI Technical Summary
Conventional mobile robot systems require additional installation of recognition markers when delivery locations or objects change, leading to inefficient reinstallation and installation work.
A mobile robot control method that sets a target stopping position based on a reference position from a plurality of pre-arranged unique markers, using a camera to recognize these markers and control the robot's movement without additional marker installation.
Enables flexible setting of the target stopping position without the need for additional marker installation, improving efficiency by allowing dynamic adjustment to changing delivery locations.
Smart Images

Figure 00000000_0000_ABST
Abstract
Description
[Technical Field]
[0001] The present invention relates to a mobile robot and related technology. [Background technology]
[0002] BACKGROUND ART There is a technique for controlling the movement of an autonomous mobile robot that uses a unique marker (a marker for recognition) (see Patent Document 1).
[0003] Patent Document 1 describes a technique for switching between taught path following movement control, in which the autonomous mobile robot moves along a taught path, and marker following movement control, in which the autonomous mobile robot moves by image recognition of a recognition marker provided at the destination. In marker following movement control, the autonomous mobile robot recognizes its position based on a recognition marker provided in advance at the destination, and moves toward a target stopping position based on the position recognition result from the recognition marker.
[0004] In the technology of Patent Document 1, a single recognition marker is fixedly placed at the destination, and a single target stopping position is determined by the single recognition marker. [Prior art documents] [Patent documents]
[0005] [Patent Document 1] Japanese Patent Application Laid-Open No. 2015-121928 Summary of the Invention [Problem to be solved by the invention]
[0006] Incidentally, when transporting an item using a mobile robot, a situation may arise in which the delivery location of the object to be transported (for example, the location of the delivery destination facility (such as a belt conveyor)) is changed. For example, a location shifted 10 cm to the side from the original (pre-change) location may be determined as the new delivery location (delivery position). In such a case (particularly when the recognition marker is installed on a fixed stand or the like fixed to the floor), the above-mentioned conventional technology requires the work of re-installing (re-attaching) the recognition marker at a location corresponding to the new delivery position.
[0007] Alternatively, a situation may arise in which a new delivery location is added near an existing delivery location (for example, a situation in which a new belt conveyor is additionally placed next to an existing belt conveyor, or a situation in which a new placement location on an article shelf is added near (several tens of centimeters to the side of) an existing placement location). In such a case, the above-mentioned conventional technology requires work such as additional installation work to install a new recognition marker at a location corresponding to the new delivery location.
[0008] However, reinstallation work and additional installation work are troublesome, and the need for such additional installation work is inefficient.
[0009] Therefore, an object of the present invention is to provide a technique that enables the target stopping position of a mobile robot to be flexibly set without necessarily requiring the additional installation of a marker. [Means for solving the problem]
[0010] In order to solve the above problem, the control method for a mobile robot of the present invention is characterized by comprising the steps of: a) setting the target stopping position of the mobile robot based on a reference position corresponding to a reference marker arbitrarily selected from a plurality of unique markers pre-arranged horizontally near the target stopping position of the mobile robot; and b) recognizing the target stopping position based on a unique marker among the plurality of unique markers that is included in an image captured by a camera installed on the mobile robot, and controlling the movement of the mobile robot.
[0011] The target stop position may be set based on the reference position specified by a user and a relative relationship of the target stop position with respect to the reference position.
[0012] The reference position may be changeable within the arrangement range of the plurality of unique markers in the arrangement direction of the plurality of unique markers.
[0013] The reference position may be specified based on a scale arranged near the plurality of unique markers and indicating the position of each unique marker in the arrangement direction of the plurality of unique markers.
[0014] The plurality of unique markers may be arranged in a straight line when viewed from above.
[0015] The target stop position may be set on a straight line extending from the reference position in a direction perpendicular to an arrangement direction of the plurality of unique markers when viewed from above.
[0016] The plurality of unique markers may be formed by being printed out on a band-shaped sheet.
[0017] Step b) may include b-1) a step of recognizing the target stopping position based on other unique markers among the plurality of unique markers that are included in the captured image, even if the reference marker among the plurality of unique markers is not included in the captured image.
[0018] The control method may further include a step of c) transferring the item to be transported between a destination facility located near the target stopping position and the mobile robot.
[0019] In step a), a target stop angle, which is a target angle of the mobile robot at the target stop position, is also set, and step b) may include b-2) a step of setting a tentative target position based on the current position, the target stop position, and the target stop angle while updating it as needed, and moving the mobile robot toward the tentative target position, thereby moving the mobile robot toward the target stop position.
[0020] The tentative target position may be located on a virtual straight line extending from the target stop position toward the near side in a direction having the target stop angle.
[0021] In step b-2), the mobile robot is moved toward the target stop position and the target stop angle by controlling the mobile robot to reduce the residual between its current position and the tentative target position as needed, and step b) may include b-3) a step in which, after the mobile robot has approached the target stop position to a predetermined extent by the movement of step b-2), the mobile robot is moved toward the target stop position and the target stop angle by controlling the mobile robot to reduce the residual between its current angle and the target stop angle.
[0022] In step b-2), the steering angle that brings the mobile robot closest to the tentative target position may be selected from among a plurality of candidate steering angles for approaching the tentative target position, after excluding steering angles that would cause interference between the moving mobile robot and obstacles on its path of movement, and then the mobile robot may be moved.
[0023] In order to solve the above problem, the present invention provides a program for causing a computer to execute the above control method.
[0024] In order to solve the above problems, the mobile robot of the present invention comprises a main body, a camera provided on the main body, a driving unit for moving the main body, and a control unit for controlling the driving unit, wherein the control unit sets a target stopping position based on a reference position corresponding to a reference marker arbitrarily selected from a plurality of unique markers pre-arranged horizontally near the target stopping position of the mobile robot, recognizes the target stopping position based on a unique marker among the plurality of unique markers included in the image captured by the camera, and controls the driving of the mobile robot. [Effects of the Invention]
[0025] According to the present invention, it is possible to flexibly set the target stopping position of the mobile robot without the need for additional installation of markers. [Brief explanation of the drawings]
[0026] [Figure 1] FIG. 1 is a diagram illustrating an overview of a transport system. [Figure 2] FIG. 2 is a functional block diagram of the transport system. [Figure 3] FIG. 2 is a front view (elevation) showing a plurality of unique markers and the like. [Figure 4] FIG. 2 is a diagram showing the relationship between a marker coordinate system and a camera coordinate system. [Figure 5] FIG. [Figure 6] FIG. 10 is a diagram showing a situation in which the position of the belt conveyor is changed. [Figure 7] FIG. 10 shows a situation where another belt conveyor is added. [Figure 8] FIG. [Figure 9] FIG. [Figure 10] FIG. 10 is a diagram showing a presetting process for a target stop position of a mobile robot, etc. [Figure 11] 10 is a flowchart showing movement control of a mobile robot. [Figure 12]FIG. 10 is a diagram showing the range of movement control by each method. [Figure 13] FIG. 1 is a conceptual diagram showing first-stage control. [Figure 14] FIG. 10 is a conceptual diagram showing second-stage control. [Figure 15] FIG. 10 is a diagram showing a movement state of a mobile robot in a second embodiment. [Figure 16] FIG. 16 is a diagram showing an optimal route in the situation of FIG. 15. [Figure 17] FIG. 10 is a diagram showing interference between a mobile robot and an obstacle on a path (predicted path) according to a certain steering angle. [Figure 18] FIG. 16 is a diagram showing a state in which the mobile robot has moved further forward from the point in time shown in FIG. 15. [Figure 19] FIG. 19 is a diagram showing an optimal route in the situation of FIG. 18. [Figure 20] FIG. 10 is a diagram showing interference between the robot and an obstacle on a path (predicted path) according to a certain steering angle. [Figure 21] FIG. 10 is a diagram showing a state in which the mobile robot has reached a target stopping position. [Figure 22] 10A and 10B are diagrams showing docking positions and the like in the third embodiment. [Figure 23] FIG. 10 is a diagram showing measurement data acquired by a laser sensor. [Figure 24] FIG. 10 is a diagram showing how feature points are extracted from measurement data. [Figure 25] FIG. 10 is a diagram showing the positional relationship between a template and a group of feature points in measurement data. DETAILED DESCRIPTION OF THE INVENTION
[0027] Hereinafter, an embodiment of the present invention will be described with reference to the drawings.
[0028] 1. First Embodiment <1-1. System Overview> Fig. 1 is a diagram showing an overview of a conveyance system 1, and Fig. 2 is a functional block diagram of the conveyance system 1. As shown in Fig. 1, the conveyance system 1 includes a mobile robot 10 that conveys an object to be conveyed, and a receiving device 80 (a belt conveyor 81, a roller conveyor, an article storage shelf, etc.) that delivers the object to the receiving device 80. Figs. 1 and 2 show part of the configuration of the conveyance system 1, focusing on the mobile robot 10, etc.
[0029] The mobile robot 10 is configured as an autonomous mobile robot (AMR) that can move (advance) autonomously. The mobile robot 10 is equipped with a controller (control unit) 11, a camera (a two-dimensional camera in this case) 26, and the like, and is able to move by controlling the position and posture of the mobile robot 10 itself while recognizing the surrounding situation, etc.
[0030] The mobile robot 10 can receive a command to move to a target object from the overall control unit 111 of the server 100 via wireless communication or the like, and can move toward the target object. In particular, when approaching the target object and after approaching it to a certain extent, the mobile robot 10 can proceed while grasping the surrounding situation.
[0031] For example, the mobile robot 10 can perform movement control based on map information (map control) and can also perform movement control based on marker information (marker control).
[0032] Specifically, the mobile robot 10 can receive the position (approximate position) of a target object (such as a belt conveyor 81) as position information in a map coordinate system and move the mobile robot 10 toward the approximate position of the target object. Furthermore, after the mobile robot 10 approaches the target object to a certain extent, the mobile robot 10 can capture some or all of a plurality of unique markers 62 (such as two-dimensional markers) provided near the target object within the field of view of the camera 26 and perform movement control based on information (marker information) of the captured unique markers 62. This allows the mobile robot 10 to move the mobile robot 10 to an accurate position (such as a target stop position Pg described below) relative to the target object.
[0033] As shown in FIG. 2, the mobile robot 10 includes a controller (also referred to as a control unit) 11, a storage unit 12, a communication unit 14, and an operation unit 15.
[0034] The controller (control unit) 11 is a control device that is built into the mobile robot 10 and controls various processes of the mobile robot 10 (environment recognition process, movement control process, etc.).
[0035] The controller 11 is configured as a computer system including one or more hardware processors (e.g., a central processing unit (CPU) and a graphics processing unit (GPU)). The controller 11 performs various processes by executing, in the CPU or the like, a predetermined software program (hereinafter also simply referred to as a program) stored in a storage unit (a non-volatile storage unit such as a ROM and / or a hard disk) 12. The program (more specifically, a group of program modules) (also referred to as a "program product") may be recorded on a portable recording medium such as a USB memory, read from the recording medium, and installed on the mobile robot 10. Alternatively, the program may be downloaded via a communication network or the like and installed on the mobile robot 10.
[0036] The storage unit 12 is configured with a storage device such as a hard disk drive (HDD) and / or a solid state drive (SSD).
[0037] The communication unit 14 is capable of performing network communication (wireless communication, etc.) via a network. This network communication uses various protocols, such as TCP / IP (Transmission Control Protocol / Internet Protocol). By using this network communication, the mobile robot 10 can exchange various data with desired destinations (e.g., other mobile robots 10 and the server 100).
[0038] The operation unit 15 includes an operation input unit 15a that receives operation inputs for the mobile robot 10, and a display unit 15b that displays and outputs various information. For example, a mouse and a keyboard are used as the operation input unit 15a, and a display (such as a liquid crystal display) is used as the display unit 15b. Here, a touch panel is provided that functions as both a part of the operation input unit 15a and a part of the display unit 15b.
[0039] Various setting processes for the mobile robot 10 can also be realized via communication between the mobile robot 10 and other devices (the server 100 or a setting terminal device), etc. In detail, setting instructions using an operation unit of the other device (instructions based on user setting operations, etc.) are transmitted to the mobile robot 10 via communication, and the setting instructions are set in the mobile robot 10.
[0040] As shown in FIG. 2, the mobile robot 10 also includes a travel drive unit 21, a camera (also referred to as an imaging unit) 26, a laser sensor 27, and an inertial sensor .
[0041] The camera (photographing unit) 26 is configured with an optical system (lens, etc.) and an imaging element (RGB image sensor, etc.). The camera 26 is capable of generating photographed images (more specifically, two-dimensional image data) of the surrounding environment, etc. Based on the photographed images, etc. acquired by the camera 26, the presence (and position) of obstacles in the surroundings, as well as the position and posture of the mobile robot 10, etc. are determined by the controller 11, etc.
[0042] The camera is provided near the front end (tip) of the main body 31 (see FIG. 1) of the mobile robot , and is capable of capturing images of the surrounding environment in front of the mobile robot .
[0043] The laser sensor 27 is a sensor (laser distance measuring sensor: LiDAR, etc.) that emits laser light to acquire the distance to a surrounding object. Based on the distance to the surrounding object acquired by the laser sensor 27, the presence (and position) of an obstacle in the vicinity, the positions of other objects, etc. are determined by the controller 11, etc.
[0044] The laser sensor 27 is provided near the front end (tip) of the main body 31 of the mobile robot 10, and irradiates a laser beam parallel to the floor surface over a predetermined angular range (for example, 240 degrees (a range including the front, sides, and diagonally rear of the mobile robot 10)) out of a total of 360 degrees in the horizontal direction. The laser sensor 27 receives the laser beam reflected by surrounding objects and measures the distance to the surrounding objects over this predetermined angular range. The main body 31 of the mobile robot 10 has grooves 32 (see FIG. 1) provided on the sides and diagonally rear of the laser sensor 27. The grooves 32 are provided at the same height as the laser sensor 27, and the light irradiated from the laser sensor 27 can pass through the grooves 32 and reach the sides and diagonally rear of the mobile robot 10.
[0045] The inertial sensor (inertial measurement sensor) 28 is a sensor that measures three-dimensional inertial motion (translational motion and rotational motion) and is built into the mobile robot 10 (main body 31). The inertial sensor 28 has an acceleration sensor that measures translational motion and an angular velocity (gyro) sensor that measures rotational motion. The acceleration, velocity, and position of the mobile robot 10 in the translational direction are calculated from the measurement values of the acceleration sensor and their integration. The angular velocity and angle of the mobile robot 10 in the rotational direction are calculated from the measurement values of the gyro sensor and their integration.
[0046] The traveling drive unit 21 is configured to include a motor, gears, wheels (tires), etc. The traveling drive unit 21 is controlled by the controller 11, and realizes the movement of the mobile robot 10 (main body unit 31, etc.) by changing the traveling speed (traveling speed) and traveling angle (traveling direction), etc.
[0047] An appropriate unit may be mounted on the top of the mobile robot 10 depending on the application. For example, a belt conveyor unit or a robot hand unit may be mounted to ensure smooth delivery to the destination device 80.
[0048] 2, the transport system 1 includes a server 100 in addition to the mobile robot 10. The server 100 includes an overall control unit 111, a memory unit 112, a communication unit 114, and an operation unit 115. The overall control unit 111, the memory unit 112, the communication unit 114, and the operation unit 115 have the same configurations as the above-described control unit (controller) 11, the memory unit 12, the communication unit 14, and the operation unit 15, respectively.
[0049] The transport system 1 includes a plurality of mobile robots 10, and the server 100 performs overall control of the plurality of mobile robots 10, including overall processing of the plurality of mobile robots 10.
[0050] <1-2. Unique Marker Group 61> Next, details of the plurality of unique markers (also referred to as recognition markers) 62 will be described with reference to Fig. 1 and Fig. 3. Fig. 3 is a front view (elevation) showing the plurality of unique markers 62, etc.
[0051] 1 and 3, a plurality of unique markers 62 constitute a unique marker group 61. The plurality of unique markers 62 are arranged in advance in a horizontal direction (a direction parallel to the floor surface) (for example, a predetermined linear direction parallel to the floor surface) near the target stopping position Pg of the mobile robot 10 (near the approximate position of the target object). In detail, the plurality of unique markers 62 are arranged adjacently (closely). In this application, "arranged adjacently (closely)" may mean that the markers are arranged so as to be in contact with the adjacent marker (also referred to as an adjacent marker), or may mean that the markers are arranged slightly spaced apart from the adjacent marker.
[0052] The multiple unique markers 62 are formed with their relative positions fixed relative to one another. Specifically, the multiple unique markers 62 are printed on a strip-shaped sheet 63. The strip-shaped sheet 63 is attached to a strip-shaped plate 60, which is fixed to a fixing member 69 (FIG. 1) fixed to the floor near the belt conveyor 81. The strip-shaped plate 60, the strip-shaped sheet 63, and each unique marker 62 stand upright relative to the floor surface (see FIG. 1). This allows the mobile robot 10 to visually recognize the unique markers 62 from a relatively distant position in a direction parallel to the floor surface (horizontal direction).
[0053] However, without being limited to this, the group of unique markers 61 (plurality of unique markers 62) can be arranged in various ways. For example, the strip-shaped sheet 63 may be formed by joining together multiple sub-sheets, each having some of the multiple unique markers 62 printed thereon. In this case, it is preferable that two or more unique markers 62 are printed on one or more sub-sheets. Furthermore, the group of unique markers 61 may be arranged by directly attaching the strip-shaped sheet 63 to the fixing member 69 without providing the strip-shaped plate 60. Alternatively, the group of unique markers 61 may be directly engraved (for example, laser engraved) on the fixing member 69.
[0054] The number of the plurality of unique markers 62 is preferably large (for example, three or more (or four or more)). Here, ten unique markers 62 are arranged as the plurality of unique markers 62. However, this is not limiting, and other numbers of markers (fewer or more than ten) may be arranged.
[0055] Each unique marker (sign) 62 is configured as, for example, a two-dimensional marker (such as a two-dimensional code or an AR marker). The multiple unique markers 62 each have an identifier (ID) and are distinguishable from one another. For example, the leftmost unique marker of the ten unique markers 62 has the identifier "C01" indicating that it is the first marker from the left. The unique marker 62 immediately to the right of it has the identifier "C02" indicating that it is the second marker from the left. The third and subsequent unique markers 62 also have the same identifier "Cxx." "Cxx" is an identifier for distinguishing the multiple unique markers 62 within the unique marker group 61 from one another. Note that, here, visualized information of part (or all) of the identifier (in a state that can be directly understood by humans), specifically, the number of each unique marker 62 (such as "No. xx"), is displayed (printed out) above each unique marker 62.
[0056] Furthermore, the plurality of unique markers 62 may further include an identifier for distinguishing the unique marker group 61 to which each belongs from other unique marker groups 61. For example, each unique marker 62 may include an identifier "Bxx-Cxx" that also includes an identifier "Bxx." Here, the identifier "Bxx" is an identifier for mutually distinguishing the plurality of unique marker groups 61 arranged at various locations. For example, the plurality of unique markers 62 that make up a certain unique marker group 61 arranged at the approximate position of the target object (belt conveyor 81) described above all have a common identifier "Bxx" (e.g., "B01"). On the other hand, the plurality of unique markers 62 that make up another unique marker group 61 arranged at a different location have a different common identifier (e.g., "B02"). When the mobile robot 10 reads the identifier "B01" from the unique marker 62 in the captured image, it can confirm that it has reached the vicinity of the predetermined target position (that the original target object is present near the unique marker 62). Furthermore, when multiple unique marker groups 61 are arranged close to each other, the multiple unique marker groups 61 can be distinguished from one another by the identifier "Bxx."
[0057] The multiple unique markers 62 have a known relative positional relationship. Specifically, the multiple unique markers 62 are arranged in the horizontal direction with a known distance between their centers (for example, 10 cm (100 mm)). Each unique marker 62 has a square shape, and the length E of one side is a known value (for example, 80 mm).
[0058] More specifically, the coordinate values (X, Y, Z) of the four end points (the four vertices of the upper left, lower left, upper right, and lower right of the square shape) of each unique marker 62 in a spatial coordinate system (marker coordinate system (or world coordinate system)) fixed with respect to the group of unique markers 61 are known. However, the absolute positions (coordinate values in the world coordinate system (map coordinate system)) of the multiple unique markers 62 do not necessarily need to be known. In the second type of movement control of the mobile robot 10 (described later), etc., it is sufficient if the relative position and orientation of the mobile robot 10 and the multiple unique markers 62 are known. The coordinate values in the movement space (or movement plane) of the mobile robot 10 may be known (recognized), for example, in the marker coordinate system.
[0059] Here, a marker coordinate system (three-dimensional Cartesian coordinate system (XYZ)) is provided, having its origin at the center position of the leftmost unique marker 62 among the multiple unique markers 62, with the arrangement direction of the multiple unique markers 62 as the X direction and the vertical direction as the Z direction. The coordinate values of each point (such as the four vertices of each of the multiple unique markers 62) in the marker coordinate system are registered in advance. Specifically, the X coordinate value of each of the upper left and lower left end points of the four end points of each of the Nth unique markers 62 from the left end is (N-1) x 100 - E / 2 (mm: millimeters). Furthermore, the X coordinate value of each of the upper right and lower right end points of the four end points is (N-1) x 100 + E / 2 (mm). The value E is the length E (width or length) of one side of each unique marker 62 (for example, 40 mm (millimeters)). Similarly, the Z coordinate value of each of the top left and top right corner points is (N-1) x 100-E / 2 (mm: millimeters), and the Z coordinate value of each of the bottom left and bottom right corner points is (N-1) x 100-E / 2 (mm). The Y coordinate value of each point may be set to a predetermined value Y0 (for example, zero).
[0060] Furthermore, a scale 65 is arranged near the group of unique markers 61 (plurality of unique markers 62). The scale 65 indicates the position of each unique marker 62 in the arrangement direction (X direction) of the multiple unique markers 62. The longest vertical lines (major scale lines) of the scale 65 are arranged at intervals of 10 cm (centimeters) in the horizontal direction (X direction). Furthermore, vertical lines (medium scale lines) of intermediate length among the scale 65 are arranged at intermediate positions between the large scale lines (positions 5 cm away from the large scale lines in the X direction). Furthermore, the shortest vertical lines (minor scale lines) of the scale 65 are arranged at intervals of 1 cm (with the large scale lines as the reference) in the horizontal direction (X direction) (however, at positions other than the large scale lines and medium scale lines). Furthermore, the numbers (scale values) on the scale 65 indicate the distance (cm) from the center position of the leftmost unique marker 62.
[0061] The scale 65 indicates that the X-coordinate value of the center of the leftmost unique marker 62 ("No. 1") is "0," and that the X-coordinate value of the center position of the rightmost unique marker 62 ("No. 10") is "90" (cm (centimeters)). Furthermore, it also indicates that the X-coordinate values of the center positions of each unique marker 62 between the left and right ends are (from left to right) "10," "20," ..., "80" (cm). In other words, it indicates that the X-coordinate value of the center position of the Nth unique marker 62 from the left end is (N-1) × 10 (cm). Here, the center position of the leftmost unique marker 62 among the multiple unique markers 62 is the zero position in the X direction of the marker coordinate system. Using the scale 65 makes it possible to accurately specify a target stop position (particularly a position in the X direction). In particular, the scale lines, including the minor scale lines, make it possible to accurately specify a position in 1 cm increments.
[0062] <1-3. Presetting of target stopping positions using unique markers> 10 is a flowchart showing a presetting process (preparation process) (step S10) regarding the target stop position etc. of the mobile robot 10. The process in FIG. 10 is executed by the controller 11 based on the user's input etc.
[0063] 10, prior to the movement control of the mobile robot 10 (see FIG. 11, etc.) described later, a presetting process (preparation process) of the mobile robot 10 is executed by the controller 11 based on user input, etc. In this step S10, a target stopping position Pg (see FIG. 1, etc.) of the mobile robot 10, etc. are set in advance based on the above-mentioned unique marker 62.
[0064] Specifically, the target stopping position Pg is set based on a reference position Pr corresponding to at least one unique marker (also referred to as a "reference marker") arbitrarily selected from a plurality of unique markers 62 pre-arranged near the target stopping position of the mobile robot 10 (step S11).
[0065] For example, two unique markers 62, the eighth unique marker 62 from the left and the ninth unique marker 62, are selected as reference markers, and the intermediate position Xr in the X direction between the two unique markers 62 (the position corresponding to the reference markers) is selected as the reference position Pr (see FIG. 3, etc.). Note that this reference position Pr is also the right-hand position (right-adjacent position) of the eighth unique marker 62 from the left. Therefore, the reference position Pr can also be expressed as the right-hand position of the reference marker when only the eighth unique marker 62 from the left is selected as the reference marker. Similarly, this reference position Pr is also the left-hand position (left-adjacent position) of the ninth unique marker 62 from the left. Therefore, the reference position Pr can also be expressed as the left-hand position of the reference marker when only the ninth unique marker 62 from the left is selected as the reference marker.
[0066] The reference position Pr is specified by the user. For example, if the user wants to stop the mobile robot 10 at the center of the belt conveyor 81 in the X direction, the position corresponding to the center of the belt conveyor 81 in the X direction is specified as the reference position Pr. The reference position Pr is specified as a position corresponding to at least one unique marker (reference marker) arbitrarily selected by the user from the plurality of unique markers 62.
[0067] For example, the intermediate position between the two unique markers 62 (the eighth and ninth unique markers 62 from the left) is designated as the reference position Pr. More specifically, the user inputs the reference marker numbers ("No. 8" and "No. 9") into a reference marker input field on a predetermined input screen (setting input screen), and also inputs the relative position "intermediate position" relative to the reference marker into the relative position designation input field. Alternatively, the reference marker number ("No. 8") may be input into the reference marker input field, and "right side position" may be input into the relative position designation input field. Note that the relative position designation input field may be used to designate a relative position relative to multiple reference markers (such as "intermediate position"), or to designate a relative position relative to a single reference marker (such as "left side position," "right side position," "center position," "position slightly to the left of center (2 cm to the left of center)," "position slightly to the right of center (2 cm to the right of center)," etc.).
[0068] The mobile robot 10 (controller 11) registers (sets) a reference position Pr designated by a user. The reference position Pr is converted into a marker coordinate system and registered (set). Specifically, the coordinate values (X, Y, Z) of the reference position Pr are expressed as (Xr, 0, 0) in the marker coordinate system. In other words, the reference position Pr is designated as a value indicating a position in the X direction in the marker coordinate system.
[0069] The reference position Pr may be specified by a numerical value (scale value) on the scale 65. For example, the reference position Pr may be specified by a scale value of "75" (cm) at the midpoint between the eighth and ninth unique markers 62 from the left. The numerical value "75" means the midpoint between the two unique markers. Therefore, this specification is equivalent to the user selecting the two unique markers (the eighth and ninth unique markers 62 from the left) as reference markers and specifying a reference position corresponding to the reference markers.
[0070] Furthermore, by using the numerical value of the scale 65 (for example, "72 cm"), it is possible to set the reference position Pr and the target stop position Pg in detail (and accurately).
[0071] Furthermore, the user specifies a target stop position Pg based on the reference position Pr. Then, the mobile robot 10 (controller 11) sets the target stop position Pg specified by the user. Specifically, the target stop position Pg is set based on the reference position Pr specified by the user and the relative relationship of the target stop position Pg with respect to the reference position Pr.
[0072] For example, assume that the user wants to stop the mobile robot 10 at a position (e.g., 30 cm vertically forward) away from the reference position Pr toward the front side (-Y side) of the belt conveyor 81, a predetermined distance D (see FIG. 1). In this case, the user also inputs (specifies) the value of the distance D in the Y direction (and forward facing) from the reference position Pr (the distance D in a top view) into a predetermined input screen. In other words, the user also inputs the distance D from the arrangement line of the multiple unique markers 62 in a top view (the distance D from the reference position Pr in a horizontal direction perpendicular to the arrangement direction of the group of unique markers 61). This specification input sets the target stop position Pg. The target stop position Pg is set on a straight line (more specifically, a half-line) extending from the reference position Pr in a direction perpendicular to the arrangement direction of the multiple unique markers 62 in a top view.
[0073] The target stop position Pg specified by the user is converted into the marker coordinate system and registered (set). The coordinate values (X, Y, Z) of the target stop position are expressed as (Xr, -D, -H) in the marker coordinate system, for example. The value H indicates the height of the reference position Pr from the floor.
[0074] Note that, although an example is shown here in which the target stop position Pg is set on a straight line perpendicular to the arrangement direction of the unique marker group 61 from the reference position Pr in a top view, this is not limiting. For example, the target stop position Pg may be set on a straight line obliquely intersecting the arrangement direction of the unique marker group 61 from the reference position Pr at a predetermined angle in a top view.
[0075] Further, although the separation distance D is also specified in advance here, the present invention is not limited to this, and the separation distance D may be a fixed value (for example, a predetermined fixed value).
[0076] Furthermore, in step S12 (FIG. 10), the user also sets a target stop posture Ps (target stop angle), which is a target posture (target angle) of the mobile robot 10 at the target stop position Pg. Specifically, the target stop posture Ps is set to an angle θ about an axis (vertical axis) perpendicular to the floor plane. For example, the target stop posture Ps is set to an angle θ (θ=90 degrees) in the direction facing the strip sheet 63 (+Y direction).
[0077] <1-4. Recognition processing using unique markers> Mobile robot 10 can recognize the relative relationship (relative position and orientation) between device 10 itself and group of unique markers 61 using unique marker 62. Specifically, mobile robot 10 can recognize the position and orientation of device 10 itself in a marker coordinate system fixed with respect to group of unique markers 61. Note that such recognition processing is executed, for example, in step S23 (FIG. 11) described later.
[0078] Equation (1) is an equation that shows the relationship (see FIG. 4) between the coordinate values (u, v) (position in the image) of a point (such as a feature point) in the image 210 captured by the camera 26 and the coordinate values (X, Y, Z) (spatial position) of the point in the marker coordinate system (spatial coordinate system in real space). In other words, equation (1) is an equation that shows the translational displacement and rotational displacement (relative position and orientation) of the camera coordinate system (coordinate system fixed with respect to the camera 26) with respect to the marker coordinate system. Note that FIG. 4 is a diagram showing the relationship between the marker coordinate system and the camera coordinate system, etc. FIG. 4 shows the coordinate values (X, Y, Z) of a certain point in the marker coordinate system, and the coordinate values (u, v) of the certain point in the captured image, etc.
[0079]
number
[0080] The matrix K in equation (1) is a matrix (3x4 matrix) that indicates the internal parameters of the camera (distortion due to lens characteristics, etc.), and the matrix H is a matrix (homogeneous transformation matrix) (4x4 matrix) that indicates the external parameters of the camera (translation and rotation displacement relative to the camera's marker coordinate system). Also, U and W are coordinate value vectors (U = (u, v, 1) T , W=(X,Y,Z,1) T ) The "T" on the right shoulder indicates transpose (vector). The matrix R in matrix H is a rotation matrix (3x3 matrix), and the t in matrix H is a translation vector (3-dimensional vector).
[0081] Here, in equation (1), the camera's external parameters (parameters indicating the relative position and orientation of the camera coordinate system with respect to the marker coordinate system) are six in total (three translational displacements and three rotational displacements). These six parameters consist of three parameters related to the translational displacement (translation vector t) of the homogeneous transformation matrix H and three parameters related to the rotational displacement (rotation matrix R) of the homogeneous transformation matrix H.
[0082] Here, it is assumed that the internal parameters of the camera are known. In this case, it is sufficient that the coordinate values (X, Y, Z) in the marker coordinate system and the coordinate values (u, v) in the image 210 captured by the camera 26 are known for each of the three or more feature points of the unique marker 62. These six parameters can be determined based on the relationship of Equation (1) for the three or more feature points (a total of six or more equations (two equations for each feature point)). For example, if the relationship between the coordinate values (X, Y, Z) and the coordinate values (u, v) for the four endpoints (feature points) of one unique marker 62 is known, six parameters indicating the relative position and orientation of the camera coordinate system with respect to the marker coordinate system can be determined.
[0083] In addition, if the internal parameters of the camera are not known, a large number of parameters (e.g., 11 in total) including the internal parameters (e.g., five) and external parameters (e.g., six) of the camera can be identified based on the coordinate values X, Y, Z, u, v of a large number of feature points (e.g., six or more).
[0084] To calculate the six parameters from the many equations related to formula (1), various software libraries for calculating numerical solutions may be used. Specifically, various APIs (Application Programming Interfaces) may be used to derive the six parameters based on the coordinate values (u, v) of three or more feature points in the image and the spatial coordinate values (X, Y, Z) of the feature points.
[0085] By this processing, six parameters (six parameters included in the homogeneous transformation matrix H) indicating the relative relationship between the marker coordinate system and the camera coordinate system are found based on the unique markers 62 (more specifically, a total of three or more feature points of the unique markers) included in the captured image 210. The six parameters indicate the position and orientation of the camera coordinate system (coordinate system fixed to the camera 26) relative to the marker coordinate system (coordinate system fixed to the group of unique markers 61), and further indicate the position and orientation of the mobile robot 10 (camera 26) relative to the group of unique markers 61.
[0086] This allows the mobile robot 10 to recognize the relative position and orientation of the camera 26 with respect to the group of unique markers 61 (in other words, the relative relationship between the group of unique markers 61 and the mobile robot 10), more specifically, the position and orientation of the mobile robot 10 (at a certain point in time) in the marker coordinate system.
[0087] Furthermore, the target stop position Pg and the target stop posture Ps are set in advance in the marker coordinate system and are already known by the mobile robot 10. That is, the mobile robot 10 also recognizes the target position and posture (Pg, Ps) in the marker coordinate system, in other words, the relative relationship between the unique marker group 61 and the target position and posture (Pg, Ps).
[0088] In this way, the mobile robot 10 recognizes the position and posture of the own device 10 and the target position and posture (Pg, Ps) in the same coordinate system (marker coordinate system). As a result, the mobile robot 10 recognizes the relative relationship between the position and posture of the own device 10 and the target position and posture (Pg, Ps). In detail, the relative relationship between the position of the own device 10 and the target stop position Pg (the relative position of the own device 10 with respect to the target stop position Pg) is recognized, and the relative relationship between the posture of the own device 10 and the target stop posture Ps (the relative posture of the own device 10 with respect to the target stop posture Ps) is also recognized.
[0089] In this embodiment, when controlling the movement of the mobile robot 10 (such as controlling movement on a floor), it is sufficient to control the planar position X, Y and the attitude angle θ of the mobile robot 10 about the vertical axis among the six parameters (the vertical position Z and the other two attitude angles do not necessarily have to be controlled quantities). Therefore, the mobile robot 10 recognizes two of the three parameters indicating translational displacement, X and Y, and one of the three parameters indicating rotational displacement, θ (step S23). Specifically, the mobile robot 10 recognizes the planar position Pc(Xc,Yc) of the mobile robot 10 in the marker coordinate system and the target stop position (Xg,Yg) in the marker coordinate system, as well as the attitude of the mobile robot 10 in the marker coordinate system (rotation angle θc about the vertical axis (Z axis)) and the target stop attitude (θg) in the marker coordinate system. Then, as will be described later, the mobile robot 10 executes control to bring the parameters X, Y, and θ closer to the target values Xg, Yg, and θg, respectively (steps S24 and S25 (FIG. 11)).
[0090] In this transport system 1, a plurality of (for example, 10) unique markers 62 are provided in the vicinity of the target position (the vicinity of the target stop position) as described above.
[0091] In addition, the coordinate values (X, Y, Z) of the four end points (total of 40) of each of the multiple (10) unique markers 62 are registered in advance (prior to the recognition process) in a pre-setting process (preparation process) (step S10).
[0092] If at least one of the multiple unique markers 62 is captured in an image captured by the camera 26, the relative position and orientation of the camera 26 (the relative position and orientation of the camera coordinate system with respect to the marker coordinate system) is calculated based on the captured at least one unique marker 62. Specifically, the relative position and orientation of the camera 26 is calculated based on the coordinate values (u, v) of the four corner points of the at least one unique marker 62 in the captured image 210 and the spatial coordinates (X, Y, Z). At this time, the mobile robot 10 can recognize (based on the identification result of the identifier) the position of each unique marker 62 from the left end (that it is the Nth marker from the left end) by reading the identifier ("Cxx") in each unique marker 62. Furthermore, the mobile robot 10 can also determine the spatial coordinates (X, Y, Z) of each feature point of each unique marker 62 based on the content (registration content) registered in the above-mentioned pre-registration process.
[0093] It is preferable that as many (two or more) of the multiple unique markers 62 as possible (a relatively large number of feature points) be captured in the captured image 210 by the camera 26, and that the relative position and orientation of the camera be determined based on the captured unique markers 62. By determining the relative position and orientation of the camera based on a relatively large number of feature points of a relatively large number of unique markers 62, it is possible to determine the relative position and orientation with higher accuracy. However, even when the relative position and orientation of the camera is determined based on a single unique marker 62 captured in the captured image 210, it is possible to determine the relative position and orientation with a certain degree of accuracy.
[0094] Furthermore, among the multiple unique markers 62, the reference marker (such as the unique marker closest to the reference position) used when setting the target stop position (during preparation processing) may or may not be included in the captured image 210 during position and orientation recognition.
[0095] In particular, even if the reference marker is not included among the multiple unique markers 62, the mobile robot 10 can determine the relative position and orientation of the camera based on other unique markers included in the captured image 210 among the multiple unique markers.
[0096] Specifically, even when the mobile robot 10 approaches the target object to a certain extent, depending on the position and orientation of the mobile robot 10, the reference markers may not fall within the field of view of the camera 26. For example, when the eighth and ninth unique markers 62 from the left among the unique markers 62 are reference markers (see FIG. 3), the reference markers may not be included (captured) in the captured image 210 (see FIG. 5). The lower part of FIG. 5 (the large lower rectangular area surrounded by thin lines) shows a situation (top view) in which the mobile robot 10 is looking forward (upper part of the figure) from a position shifted to the left of the target stop position Pg. The upper part of FIG. 5 (the large upper rectangular area surrounded by thin lines) shows a situation (front view) in which the field of view 263 of the camera 26 of the mobile robot 10 (the capture range of the captured image 210) is narrowed to only a portion of the multiple unique markers 62 (front view of the strip-shaped sheet 63, etc.).
[0097] Even in such a situation, as shown in Fig. 5, when unique markers other than the reference marker are included in captured image 210, it is possible to determine the relative position and orientation of the camera based on the unique markers other than the reference marker. For example, when six unique markers 62 (six unique markers other than the reference marker), namely the second to seventh from the left, are included in captured image 210, it is possible to determine the relative position and orientation of the camera based on the feature points of the six unique markers (for example, a total of 24 feature points). Consequently, it is possible to recognize the position and orientation of device 10 itself and the position and orientation of the target in the marker coordinate system.
[0098] <1-5. Changing the target stop position, etc.> In the above-described transport system 1, the target stop position Pg of the mobile robot 10 is set based on a reference position Pr corresponding to a reference marker arbitrarily selected from a plurality of unique markers 62. In particular, the reference position Pr used to set the target stop position Pg is a position corresponding to the reference marker, and the reference marker is arbitrarily selected from a plurality of unique markers 62 that have been placed in advance. Therefore, various target stop positions Pg can be determined based on the plurality of unique markers 62. Therefore, it is possible to flexibly set the target stop position without further installation work of markers (reinstallation work, additional installation work, etc.).
[0099] More specifically, for example, the belt conveyor 81 may be changed from the position shown in FIG. 3 (FIG. 1, FIG. 5) to the position shown in FIG. 6 (a position where it has moved in the -X direction (toward the left in the figure)). In such a case, the user can set the target stop position Pg based on a reference position according to a reference marker that corresponds to the changed position of the belt conveyor 81. Specifically, the user can select, for example, the sixth unique marker 62 from the left as a new reference marker, and set the target stop position Pg based on a reference position according to the reference marker (the center position within the reference marker (the position of the scale value "50")).
[0100] In this way, in a situation where the delivery location of the transported object (such as the position of the delivery destination facility (belt conveyor 81)) is changed, it is possible to set the target stop position based on the reference position corresponding to a reference marker (such as the marker closest to the changed position of the delivery destination facility) arbitrarily selected from the multiple unique markers. Therefore, it is possible to flexibly set the target stop position without necessarily requiring the work of reinstalling the recognition marker at the changed position of the delivery destination facility (reinstallation work).
[0101] Alternatively, for example, as shown in Fig. 7, another belt conveyor 82 may be additionally placed while maintaining the belt conveyor 81. In such a case, the user can set a target stop position Pg for the belt conveyor 82 based on a reference position according to a reference marker corresponding to the position of the belt conveyor 82 to be added. Specifically, the user can newly select, for example, the third unique marker 62 from the left as a reference marker, and set the target stop position Pg based on a reference position according to the reference marker (the center position within the reference marker (the position of the scale value "20")).
[0102] Similarly, for example, when the number of placement locations 92 for an item 91 on an item shelf 86 (see FIGS. 8 and 9) is increased from two to three (when placement location 92c is added), a situation may arise in which it is desired to stop the mobile robot 10 at each of the three placement locations after the increase. Note that FIG. 8 is a front view of the item shelf 86 and the group of unique markers 61 and the like arranged near the item shelf 86, and FIG. 9 is a top view of the item shelf 86 and the group of unique markers 61. The item shelf 86 has a shelf portion (a shelf portion whose longitudinal direction is the left-right direction in the figure) extending in a predetermined direction, and the shelf portion (also referred to as a shelf board portion) has multiple placement locations 92a, 92b, and 92c. The placement locations 92a and 92b are the original placement locations, and the placement location 92c is a new placement location that has been added.
[0103] For the placement location 92a before addition, the second unique marker 62 from the left is selected as the reference marker, and the target stop position Pg is set based on the reference position corresponding to the reference marker (the center position within the reference marker (the position of the scale value "10")) (see FIG. 8). Also, for the placement location 92b before addition, the ninth unique marker 62 from the left is selected as the reference marker, and the target stop position Pg is set based on the reference position corresponding to the reference marker (the center position within the reference marker (the position of the scale value "90")).
[0104] Furthermore, for the added central placement location 92c, the fifth unique marker 62 from the left is selected as the new reference marker, and the target stop position Pg is set based on the reference position corresponding to that reference marker (the central position within the reference marker (the position of the scale value "40")).
[0105] In this way, in a situation where a new delivery location is added near an existing delivery location, it is possible to set a target stop position for the new delivery location based on a reference position corresponding to a reference marker (such as the marker closest to the new delivery location) arbitrarily selected from the multiple unique markers. Therefore, it is possible to flexibly set a target stop position without necessarily requiring work such as adding and setting a new unique marker (additional installation work).
[0106] <1-6. Movement control to the target position and attitude> 11 is a flowchart showing movement control for moving the mobile robot 10 toward a target position and posture. The process of FIG. 11 (step S20) is executed after the process of FIG. 10 (step S10). The process of FIG. 11 is also executed by the controller 11.
[0107] The movement of the mobile robot 10 is controlled by two different methods (see FIGS. 11 and 12). The first method is a map control method in which the robot moves along a route based on map information (steps S21 and S22). The second method is a marker control method in which the robot moves by image recognition of a group of unique markers 61 (specifically, at least one unique marker 62) provided near the target position (steps S23 to S26).
[0108] Hereinafter, the movement control of the mobile robot 10 in this embodiment will be described with reference to FIG.
[0109] First, in step S21, map control type movement control is initiated, and the mobile robot 10 starts moving toward a target object. Specifically, of the six parameters related to the position and orientation of the mobile robot 10, the position and orientation X, Y, and θ of the mobile robot 10 are controlled so as to approach the position and orientation of the target object in the map information.
[0110] When the mobile robot 10 reaches a predetermined proximity (for example, within a few meters) of the target object through the map control method (first method), the process proceeds to step S22. In step S22, the movement control of the mobile robot 10 is switched from the first method to the second method (marker control method) (see also FIG. 12). Note that FIG. 12 is a diagram showing the range of movement control by each method, the movement route (travel route) 19 of the mobile robot 10, etc.
[0111] In the second control method, first, the position and posture of the mobile robot 10 and the position and posture of the target are recognized using the unique marker group 61 (step S23).
[0112] Specifically, mobile robot 10 captures an image of the surrounding environment (mainly forward) with camera 26, and calculates (recognizes) the current position Pc(Xc, Yc) and orientation (θc) of device 10 in the marker coordinate system based on unique markers 62 in image 210 captured by camera 26. In other words, mobile robot 10 recognizes the relative relationship between device 10 and unique marker group 61 based on the relative position and orientation of the camera coordinate system with respect to the marker coordinate system. Note that a target stop position Pg and a target stop orientation Ps in the marker coordinate system are set in advance in step S10 ( FIG. 10 ). Therefore, by recognizing the position and orientation of device 10 in the marker coordinate system in step S23, mobile robot 10 can recognize the current position and orientation of device 10 and the target position and orientation (target stop position and orientation) in the same coordinate system (marker coordinate system).
[0113] The second control method also uses the planar position X, Y and attitude angle θ of mobile robot 10 from the six parameters related to the position and attitude of mobile robot 10. Specifically, in steps S24 to S26, mobile robot 10 executes movement control to ultimately bring the position and attitude X, Y, θ of mobile robot 10 closer to target values Xg, Yg, θg.
[0114] In the second control method, the steering angle Θ (the angle relative to the straight-ahead direction of the mobile robot 10) of the mobile robot 10 is changed while the mobile robot 10 moves at a set speed (movement speed) based on the distance to the target stop position Pg. The set speed may be set to a value that decreases as the distance d to the target stop position Pg decreases, for example.
[0115] The control of the second method is roughly divided into a first stage (step S24) and a second stage (step S25) (see also FIG. 12).
[0116] Fig. 13 is a conceptual diagram showing the first stage of control. Fig. 13 particularly shows the tentative target position Pp etc. In Fig. 13, for convenience of illustration, the mobile robot 10 is shown as a triangle (the same applies to Fig. 14 etc.).
[0117] In the first stage (step S24), the mobile robot 10 (controller 11) sets a tentative target position Pp based on the current position Pc, the target stop position Pg, and the target stop angle θg while constantly updating (at intervals of a small time Δt1 (for example, 1 / 5 second)). The mobile robot 10 then moves itself toward the constantly updated tentative target position Pp, thereby moving itself toward the target stop position Pg.
[0118] The tentative target position Pp (see the star in FIG. 13) is located on a virtual straight line Lp that extends from the target stop position Pg toward the near side (rear side / current position side) in the direction having the target stop angle θg (target stop posture Ps). In short, the tentative target position Pp is located on the near side (rear side) of the target stop position Pg on the virtual straight line Lp having the target stop angle θg.
[0119] The X coordinate Xp and Y coordinate Yp of the tentative target position Pp are expressed by the following equations (2) and (3) using the X coordinate Xg and Y coordinate Yg of the target stop position Pg and the target stop angle θg.
[0120]
number
[0121]
number
[0122] Here, the value d is the distance between the target stop position Pg and the current position Pc, and the value α is a predetermined value (fixed value) between 0 and 1, for example, α=0.7.
[0123] If the value α is 1, the tentative target position Pp is a position Pt on the virtual line Lp that is a distance d away from the target stop position Pg on the near side (rear side). On the other hand, if the value α is greater than 0 and less than 1, the tentative target position Pp is between the position Pt and the target stop position Pg.
[0124] Furthermore, since the distance d decreases as the mobile robot 10 (current position Pc) approaches the target stop position Pg, the tentative target position Pp gradually approaches the target stop position Pg as it is updated. Furthermore, if the moving speed of the mobile robot 10 decreases as the distance d to the target stop position Pg decreases, the tentative target position Pp approaches the target stop position Pg slowly while gradually decreasing its speed.
[0125] The tentative target angle θp is expressed by the following equation (4).
[0126]
number
[0127] Here, in the first stage, the mobile robot 10 executes a control process to move the device 10 toward the tentative target position Pp (not the target stop position Pg) (in other words, a control process to reduce the residual between the current position Pc and the tentative target position Pp). In particular, the mobile robot 10 does not execute a control process to actively make the parameter θ, one of the three parameters X, Y, and θ, follow the target stop angle θg (such as a control process to adjust the steering angle Θ to a value corresponding to (θg-θc)). In other words, the mobile robot 10 does not execute a control process to explicitly bring the attitude θ of the device 10 closer to the target stop angle θg.
[0128] Specifically, in movement control in which the vehicle proceeds at a set speed based on the distance to the target stop position Pg, a steering angle Θ is set to move the position of the vehicle's own device 10 closer to the tentative target position Pp (rather than the target stop position Pg). The steering angle Θ (angle relative to the straight-ahead direction) is changed (adjusted) as needed to a value Θa corresponding to (θp-θc). The value Θa is, for example, a constant multiple of (θp-θc). Alternatively, the value Θa may be a value obtained by multiplying a predetermined value (fixed value) by the sign (positive sign (+) or negative sign (-)) of (θp-θc). When θc>θp, the steering angle Θ is set to a rightward (-) value, and when θc<θp, the steering angle Θ is set to a leftward (+) value. Since the tentative target position Pp is updated (highly frequently) at intervals of a very short time Δt1 (for example, 1 / 5 seconds), such a steering angle Θ realizes an operation of gradually reducing the residual error with respect to the tentative target position Pp (the residual error between the tentative target position Pp and the current position Pc).
[0129] Furthermore, in this first-stage control, as the tentative target position Pp is updated, the tentative target position Pp (marked with a star in FIG. 13 ) gradually approaches the target stop position Pg from the front side (rear side) of the target stop position Pg on the virtual straight line Lp (the virtual straight line Lp having the target stop angle θg) (see the thick arrow in FIG. 13 ). The mobile robot 10 then moves toward the tentative target position Pp (slightly forward) while changing the steering angle θ. That is, the mobile robot 10 moves while adjusting its steering so as to track the tentative target position Pp that gradually approaches the target stop position Pg on the virtual straight line Lp having the target stop angle θg (see also the movement path 19 in FIG. 12 ). As a result, the mobile robot 10 follows (moves along) a path that approaches the target stop position Pg from the front side (rear side) of the target stop position Pg along the extending direction of the virtual straight line Lp (or a direction close to it). In other words, the mobile robot 10 follows a path that approaches the target stop position Pg from the near side of the target stop position Pg while ultimately bringing its traveling direction (posture θc) closer to the direction along the virtual straight line Lp (in other words, the target stop angle θg).
[0130] According to this control, as the position of the mobile robot 10 approaches the target stop position Pg (as the position of the mobile robot 10 gradually approaches the target stop position Pg), the attitude angle θ of the mobile robot 10 eventually gradually approaches the target stop angle θg. Then, when the mobile robot 10 approaches the target stop position Pg to a certain distance D2 (for example, 20 cm), the attitude angle θ of the mobile robot 10 eventually reaches a value close to the target stop angle θg. In short, it is possible to bring the attitude (angle) of the mobile robot 10 close to the target stop angle at a relatively early point before it reaches the target stop position Pg.
[0131] In this way, in the first stage, the mobile robot 10 approaches the target stop position Pg and, as a result, approaches the target stop angle θg (the angle of the virtual line Lp) by following the tentative target position Pp, which gradually moves toward the target stop position Pg, from behind. In other words, the mobile robot 10 is moved toward the target stop position Pg by performing control to reduce the residual between the current position Pc and the tentative target position Pp as needed. In particular, by performing position control to reduce the position residual with respect to the tentative target position Pp without performing posture control to make the posture follow the target value θg, the position and posture (including the angle θ) of the mobile robot 10 eventually approaches the target value (including the target posture). In other words, the mobile robot 10 eventually moves toward the target stop angle θg.
[0132] When the value α in equations (2) and (3) is 1 or greater, a tentative target position Pp is set that results in a relatively large detour for the mobile robot 10. On the other hand, by setting the value α to an appropriate value (for example, α=0.6 to 0.8), it is possible to move the mobile robot 10 closer to the target stop position Pg (relatively linearly) without making it detour too much.
[0133] Next, the control in the second stage (step S25 (FIG. 11)) will be described.
[0134] The second stage of control (step S25) is initiated after the movement in step S24 brings the mobile robot 10 within a predetermined distance D2 (for example, several tens of centimeters (20 cm)) of the target stopping position Pg (reaches a position just before the predetermined distance D2) (see also Figure 12).
[0135] In step S25, the mobile robot 10 controls the device 10 itself to reduce the residual between the current angle θc and the target stop angle θg, thereby moving the mobile robot 10 toward the target stop position Pg and the target stop angle θg.
[0136] FIG. 14 is a conceptual diagram showing the second stage control.
[0137] As described above, by the first stage of control, when the mobile robot 10 approaches the target stop position Pg to a certain distance D2, the attitude angle θ of the mobile robot 10 eventually reaches a value close to the target stop angle θg (for example, about 2 degrees). In this second stage of control, the attitude angle θ is further finely adjusted.
[0138] In the second stage, specifically, control is executed to actively bring the attitude angle θ closer to the target stop angle θg. More specifically, in movement control in which the vehicle proceeds at a set speed based on the distance to the target stop position Pg, a steering angle Θ is set to bring the angle θ (current angle θc) of the vehicle (10) closer to the target stop angle θg. The steering angle Θ (angle relative to the straight-ahead direction) is changed (adjusted) as needed to a value Θb corresponding to Δθ=(θg-θc). The value Θb is, for example, a constant multiple of (θg-θc). When θc>θg, the steering angle Θ is set to a rightward (-) value, and when θc<θg, the steering angle Θ is set to a leftward (+) value. This adjustment of the steering angle Θ may be repeatedly executed at predetermined intervals of a short time Δt2 (for example, 1 / 10 seconds).
[0139] According to such control, it is possible to further reduce the difference (deviation) between the attitude angle θ and the target stop angle θg (for example, to less than 1 degree).
[0140] The current position and attitude (angle) of the mobile robot 10 in steps S24 and S25 may be calculated (measured) based on the measurement values of the inertial sensor 28. Specifically, the current position and attitude of the mobile robot 10 may be calculated based on the relative position and attitude of the camera 26 acquired (in step S23) using the unique marker 62 and the translational displacement and rotational displacement since the acquisition time (translational and rotational displacement calculated based on the measurement values of the inertial sensor 28). Alternatively, the current position and attitude of the mobile robot 10 may be calculated (estimated) based on a command value for the traveling speed and a command value for the steering angle Θ (instead of the measurement values of the inertial sensor 28).
[0141] Also, here, the process of recognizing the position and orientation of the mobile robot 10 using the unique marker 62 (step S23) is executed only before the processes of steps S24 and S25, but this is not limited to this. For example, the process of recognizing the position and orientation of the mobile robot 10 using the unique marker 62 may be executed repeatedly in steps S24 and S25. For example, in step S24, the process of recognizing the position and orientation of the mobile robot 10 using the unique marker 62 may be executed at an interval of a very short time Δt3 (for example, 1 second), and the process of updating the tentative target position Pp may be executed at an interval of a very short time Δt1 (for example, 1 / 5 second). Also, in step S25, the process of recognizing the position and orientation of the mobile robot 10 using the unique marker 62 may be executed at an interval of a very short time Δt3 (for example, 1 second), and the process of updating the steering angle Θ may be executed at an interval of a very short time Δt2 (for example, 1 / 10 second).
[0142] When the mobile robot 10 reaches the target stop position Pg with the posture angle θ of the mobile robot 10 matching the target stop angle θg (within the allowable error) through the second stage control, the process of step S25 ends and proceeds to step S26.
[0143] In step S26, the item to be transported is handed over between the destination facility (such as the belt conveyor 81 or the item storage shelf 86) located near the target stop position Pg and the mobile robot 10. The item transported by the mobile robot 10 may be handed over to the destination facility (such as the belt conveyor 81), or conversely, the item transported by the destination facility (such as the belt conveyor 81) may be handed over to the mobile robot 10 (the mobile robot 10 may receive the item).
[0144] However, unlike the above control, there is a method for controlling both the position and posture of the mobile robot 10 to target values without using the tentative target position Pp. Specifically, there is a control method for matching the position (X, Y) of the mobile robot 10 to the target stop position Pg and matching the posture (angle θ) of the mobile robot 10 to the target stop angle θg.
[0145] However, when using this control method, it is not easy to make both the position and angle match the target values. For example, even if the position already matches the target value, the angle may still deviate relatively significantly from the target value. In this case, a relatively large rotation is performed near the target position to finally match the angle to the target value (target angle). When the distance between the mobile robot 10 and the belt conveyor 81 is sufficiently wide, such rotation is permitted (no interference occurs between them). However, when the distance between the mobile robot 10 and the belt conveyor 81 (destination facility) is narrow, such rotation is not permitted (interference occurs between them). For example, if the angle of the mobile robot 10 is still deviated from the target value by more than a certain amount as it approaches the target stop position Pg, interference occurs between them before the rotation.
[0146] In contrast, according to the second type of control (particularly the first stage control), the mobile robot 10 is moved as needed to approach a tentative target position Pp on a virtual line Lp extending in a direction having a target stop angle θg. This makes it possible to bring the position of the mobile robot 10 closer to the target stop position Pg, and consequently to bring the attitude (angle) of the mobile robot 10 closer to the target stop angle. In particular, it is possible to bring the attitude (angle) of the mobile robot 10 closer to the target stop angle relatively early before the mobile robot 10 reaches the target stop position Pg. Therefore, even when the distance between the mobile robot 10 and the belt conveyor 81 is narrow, it is possible to prevent interference between the two (or between the load on the mobile robot 10 and the belt conveyor 81).
[0147] <1-7. Effects of the embodiment> As described above, in the transport system 1, the target stop position Pg of the mobile robot 10 is set based on the reference position Pr corresponding to a reference marker arbitrarily selected from the plurality of unique markers 62. Therefore, it is possible to flexibly set the target stop position without further installation work of the marker (reinstallation work, additional installation work, etc.).
[0148] In particular, the reference position Pr can be changed within the arrangement range of the multiple unique markers 62 in the arrangement direction of the multiple unique markers 62 (for example, the arrangement range from the leftmost unique marker 62 ("No. 1") to the rightmost unique marker 62 ("No. 10")). In other words, it is possible to set the reference position Pr at any position within at least the arrangement range of the multiple unique markers 62. Therefore, it is possible to set the target stop position based on a reference position within a wide range.
[0149] Furthermore, the target stop position Pg is recognized and travel control is performed based on the position of the unique marker 62 included in the image 210 captured by the camera 26 of the mobile robot 10, among the multiple unique markers 62. Therefore, the target stop position Pg can be properly recognized and the mobile robot 10 can accurately move toward the target stop position Pg.
[0150] Furthermore, in the above embodiment, scales 65 are arranged near the plurality of unique markers 62, and it is possible to specify the reference position Pr (and thus the target stop position Pg) based on the scales 65. This makes it possible to set the target stop position Pg in detail.
[0151] In the above embodiment, the plurality of unique markers 62 (unique marker group 61) are arranged in a straight line when viewed from above. With two or more unique markers arranged in a straight line, the arrangement line of the unique marker group 61 can be accurately recognized as a reference line for the target attitude, making it possible to accurately control the angle (attitude) with respect to the reference line.
[0152] Furthermore, in the above embodiment, the target stop position Pg is set in a direction perpendicular to the arrangement direction of the group of unique markers 61 from the reference position Pr, which makes it easier to understand intuitively than when it is set in an oblique direction. In particular, when the mobile robot 10 approaches the group of unique markers 61 from the perpendicular direction, the user can set the target stop position Pg along the approach direction to the group of unique markers 61 (using the reference position Pr as a landmark), which makes it very easy to understand.
[0153] Furthermore, in the above embodiment, by using a strip-shaped sheet 63 on which multiple unique markers 62 are printed, it is possible to more easily arrange multiple unique markers 62 compared to arranging each unique marker 62 individually without using a strip-shaped sheet.
[0154] Furthermore, according to the above embodiment, even if the reference marker is not included in the captured image, the target stop position is recognized based on other unique markers 62 (unique markers 62 other than the reference marker) among the multiple unique markers 62. Therefore, if any of the unique markers is captured within the field of view, the target position can be recognized. In other words, it is possible to prevent or suppress all of the multiple unique markers 62 from falling out of the field of view.
[0155] Furthermore, according to the above embodiment (particularly the first stage control in the second method), the mobile robot 10 is moved as needed to approach a tentative target position Pp on a virtual straight line Lp extending in a direction having a target stop angle θg. This makes it possible to move the position of the mobile robot 10 closer to the target stop position Pg, and consequently to bring the posture (angle) of the mobile robot 10 closer to the target stop angle. In particular, it is possible to bring the posture (angle) of the mobile robot 10 closer to the target stop angle at a relatively early point before the mobile robot 10 reaches the target stop position Pg.
[0156] 2. Second Embodiment The second embodiment is a modification of the first embodiment, and the following description will focus on the differences from the first embodiment.
[0157] In the second embodiment, a case will be described in which the mobile robot 10 moves while taking into consideration avoidance of interference with an obstacle 50 after the target stop position Pg has been set.
[0158] FIG. 15 is a diagram showing the movement status of the mobile robot 10 in the second embodiment. FIG. 15 shows the state in which the mobile robot 10 moves after the target stop position Pg is set by the second control in the first embodiment. The mobile robot 10 moves toward the target stop position Pg while repeating a control operation to move from its current position toward the tentative target position Pp. However, as shown in FIG. 15, two obstacles 51 and 52 are present near the movement path of the mobile robot 10. The mobile robot 10 learns the existence and positions of the obstacles 50 (51, 52, etc.) based on map information and / or images captured by the camera 26, etc.
[0159] In the second embodiment, the same processing as in the first embodiment (see FIGS. 10 and 11) is executed. In particular, in step S24 in the second embodiment, the mobile robot 10 executes movement control to proceed at a set speed (a set speed based on the distance to the target stop position) while changing the steering angle Θ. However, the method for determining the steering angle Θ differs from that in the first embodiment. In the second embodiment, the mobile robot 10 determines the steering angle Θ to move the position of the device 10 closer to the tentative target position Pp while avoiding interference (contact) between the device 10 and the obstacle 50, and moves the device 10.
[0160] In detail, the mobile robot 10 selects the steering angle Θ that will bring the mobile robot 10 closest to the tentative target position Pp from among a plurality of candidates for the steering angle Θ for approaching the tentative target position Pp, after excluding steering angles Θ that will cause interference between the moving mobile robot and obstacles on the path of movement. At this time, the presence or absence of interference with an obstacle is determined based on each predicted trajectory corresponding to each steering angle Θ. This will be explained further below.
[0161] The mobile robot 10 has multiple candidates for the steering angle Θ (travel angle) for approaching the tentative target position Pp. Specifically, multiple candidates exist, dividing a predetermined travelable range (angle range) (e.g., 60 degrees) into predetermined intervals (0.1 degrees). Multiple predicted trajectories are calculated corresponding to each of the multiple candidates. For example, if 60 degrees is divided into 0.1 degrees, there are approximately 600 candidates, and approximately 600 predicted trajectories are calculated corresponding to each of the approximately 600 candidates. In FIG. 15, predicted trajectories (travel paths) corresponding to some of the multiple candidates are indicated by dashed lines (dashed lines with arrows). Each predicted trajectory is a travel path for an infinitesimal time Δt1 (e.g., 1 / 5 second) (or a predetermined period longer than the infinitesimal time Δt1). If the mobile robot 10 follows the leftmost path 310L among these multiple paths, it will travel toward the obstacle 51. On the other hand, if the mobile robot 10 follows the rightmost route 310R, it will move farther away from the obstacle 51 (to the right).
[0162] From these multiple candidates, the steering angle Θ that minimizes the cost function F of the following equation (5) is selected. Each of the functions F, F1, and F2 is a function that uses the steering angle Θ as a variable. Also, β1 and β2 are predetermined coefficients, which are fixed values that adjust the ratio between the function F1 and the function F2, etc.
[0163]
number
[0164] The function F1 is an evaluation term for evaluating the distance to the tentative target position Pp. The function F1 is calculated by adding up (summing up) the distances from the positions (each point on the predicted trajectory) of the mobile robot 10 to the tentative target position Pp at each sampling time point (at a time interval shorter than Δt1). The smaller the total value of the distances to the tentative target position Pp, the smaller the value of the function F1.
[0165] The function F2 is an evaluation term that evaluates whether or not there is interference (contact) between the mobile robot 10 and the obstacle 50. When the mobile robot 10 on the predicted trajectory interferes with the obstacle 50 (even when there is interference at only one of the multiple sampling times), the function F2 has a very large value (substantially infinity). On the other hand, when there is no interference (contact) with the obstacle 50 at all of the multiple sampling times, the function F2 has a small value. When there is no interference with the obstacle 50 at all of the multiple sampling times, the function F2 may have a constant value (a value smaller than a predetermined level) regardless of the distance from the obstacle 50, or may have a smaller value as the distance from the obstacle 50 increases.
[0166] As described above, from among multiple candidates for the steering angle Θ, the value (steering angle Θ) that minimizes the cost function F in equation (5) is selected.
[0167] In particular, for the steering angle Θ at which interference with the obstacle 50 occurs even at only one of the multiple sampling times, the value of the function F2 and therefore the value of the function F become very large. As a result, the steering angle Θ at which interference occurs between the moving mobile robot 10 and an obstacle on the movement path is (substantially) excluded.
[0168] FIG. 17 shows how the mobile robot 10 interferes with an obstacle 51 on a path 310Q (predicted path) corresponding to a certain steering angle Θ. As shown in FIG. 17, when the mobile robot 10 follows the path 310Q, the left front portion of the mobile robot 10 comes into contact with the obstacle 51 (see the circular area). The value of the function F2 (and the function F) corresponding to this steering angle Θ (the steering angle that causes interference with the obstacle 51) is very large. Therefore, this steering angle Θ is excluded from the multiple candidates. The same applies to the path 310L, etc., and the steering angle Θ that causes interference with the obstacle 51 is excluded from the multiple candidates.
[0169] After eliminating steering angles Θ that cause interference with the obstacle 51, the steering angle Θ that minimizes the function F (effectively, the function F1) is selected. The steering angle Θ that minimizes the function F1 is the steering angle that most efficiently moves the mobile robot 10 toward the tentative target position Pp.
[0170] In this way, from among the multiple candidates for the steering angle Θ, the steering angle Θ that will cause interference between the moving mobile robot 10 and an obstacle 51 on the movement path is excluded, and the steering angle Θ that will most efficiently approach the tentative target position Pp is selected. Figure 16 shows a path 310P (optimal path) corresponding to the steering angle Θ (optimal steering angle) selected from the multiple candidates.
[0171] The mobile robot 10 moves along the path 310P according to the steering angle Θ, approaching the tentative target position Pp. This process is repeatedly executed while updating the tentative target position Pp.
[0172] In the same way, it is possible to avoid interference with an obstacle 52 further ahead.
[0173] Figure 18 shows a situation in which the mobile robot 10 has progressed so as to follow the updated tentative target position Pp, and has progressed further forward toward the target stop position Pg than at the time points shown in Figures 15 to 17. In Figure 18, the movement path from the time point shown in Figure 15 is shown by a thick dashed line.
[0174] FIG. 18 also shows a plurality of routes (route candidates) corresponding to a plurality of candidates (steering candidates) for the steering angle Θ. As shown in FIG. 20, when the mobile robot 10 follows route 310Q, the left front portion of the mobile robot 10 comes into contact with the obstacle 52 (see the circular area). The same applies to route 310L, etc. The steering angles Θ corresponding to these routes (steering angles that cause interference with the obstacle 52) are excluded from the steering angle Θ to be finally selected. After excluding the steering angle Θ that causes interference with the obstacle 51, the steering angle Θ that minimizes the function F (effectively, the function F1) (the steering angle that most efficiently approaches the tentative target position Pp) is selected. FIG. 19 shows a route 310P (optimal route) corresponding to the steering angle Θ selected from the plurality of candidates.
[0175] This process is repeatedly executed while updating the tentative target position Pp.
[0176] Thereafter, when the mobile robot 10 approaches the target stop position Pg to a predetermined distance D2 (for example, several tens of centimeters (20 cm)), the process of step S25 is executed in the same manner as in the first embodiment. As a result, the mobile robot 10 reaches the target stop position Pg while achieving the target stop angle θg (see FIG. 21).
[0177] According to the above-described process, mobile robot 10 can move closer to tentative target position Pp (and thus target stop position Pg) while avoiding obstacle 50.
[0178] 3. Third Embodiment The third embodiment is another modification of the first embodiment. The following description will focus on the differences from the first embodiment.
[0179] In the third embodiment, a mode will be described in which, after reaching the target stop position Pg (after movement control by the marker control method (second method)), the target position and attitude are reset using distance measurement processing by the laser sensor 27, and further movement is made toward the charging station 40. Note that the above-mentioned belt-shaped plate 60 and the plurality of unique markers 62, etc., used when moving to the target stop position Pg may be placed in the vicinity of the target stop position Pg (such as in the vicinity of the charging station 40).
[0180] However, in this case, the target stop position Pg in the marker control method is set (for example, 1 meter) before the final target position Pd (docking position) for docking (of the mobile robot 10) with the charging station 40 (see FIG. 22). After reaching the target stop position Pg (standby position, etc.), the docking position Pd and docking posture are accurately recognized using distance measurement processing by the laser sensor 27. Then, the mobile robot 10 moves further from the target stop position Pg, etc., toward the docking position Pd (and docking posture).
[0181] In the third embodiment, as shown in FIG. 22, a target (V-shaped target) 41 having a V-shape (specifically, an inverted V-shape) in top view is present in a charging station 40. The target 41 is formed by joining four plate-like members 41a to 41d (standing members) that are perpendicular (standing) to the floor surface in a state of forming an inverted V-shape in top view. Specifically, the two central plate-like members 41b and 41c form a beak (inverted V-shape) (in top view). The beak can also be expressed as an inverted V-shape formed by two line segments extending in different directions from a vertex (intersection point), or as an inverted V-shape formed by two equal sides of an isosceles triangle. In addition, the two plate-like members 41a and 41d at both ends form a portion (also called a handle portion) that extends linearly (from the base of the inverted V-shaped portion toward the outside) on both sides of the opening side of the beak portion (inverted V-shaped portion) (when viewed from above).
[0182] The mobile robot 10 recognizes the target object 41 using the laser sensor 27 and accurately docks the mobile robot 10 to the charging station 40 based on the target object 41 .
[0183] Therefore, first, the mobile robot 10 advances to a predetermined position (target stop position Pg, etc.) before the docking position Pd and then performs distance measurement processing using the laser sensor 27.
[0184] Fig. 23 is a diagram showing measurement data acquired by the laser sensor 27. The points (linearly connected point clouds, etc.) around the mobile robot 10 in Fig. 23 indicate the positions of detected objects (peripheral objects) in the peripheral area (area centered in front and to the sides) of the mobile robot 10. The measurement data includes not only the V-shape (specifically, an inverted V-shape) of the target 41 and a point cloud related to its peak, but also a point cloud similar to the V-shape and / or peak of the target 41 (a point cloud related to an object different from the original target 41).
[0185] The mobile robot 10 (controller 11) identifies the V-shaped portion of the (original) target object 41 from the measurement data using a template 250 (template information having an ideal state) (see FIG. 25 ) related to the V-shape of the charging station 40. The template 250 is pre-stored in the storage unit 12. The template 250 includes position information (position information in an ideal docking state) related to the peak (apex) 251 of the inverted V, the inner end point 252 of the base (handle portion) of the inverted V, the outer end point 253 of the base of the inverted V, and other points (complementary points) 256 and 257. The template 250 also includes information related to the angle of the peak of the inverted V (and the protruding length of the inverted V). FIG. 25 illustrates the positional relationship between the template 250 and a group of feature points (351, 352, 353, etc.) in the measurement data.
[0186] First, the controller 11 uses the V-shaped template 250 to extract (narrow down) candidates for peaks of a specific V-shaped portion from a large number (for example, hundreds to thousands) of peaks (convex or concave portions) in the measurement data obtained by the laser sensor 27.
[0187] Specifically, peaks having peak angles within an allowable range relative to a predetermined peak angle (e.g., 30 degrees) in the template 250 are extracted from the numerous peaks 351. This narrows down the candidates for the peaks of the target 41 to a certain number (e.g., several tens). At this time, two straight lines (line segments) are obtained: one straight line (line segment) formed by a group of points (a group of points continuous in one direction) on one side of the peak, and another straight line (line segment) formed by a group of points (a group of points continuous in another direction) on the other side. The intersection angle of the two straight lines is then detected as the peak angle of the peak (see FIG. 24(b)). In FIG. 24(b), the two straight lines and the like related to a certain peak 351 shown in FIG. 24(a) are virtually drawn. FIG. 24 is a diagram illustrating how feature points (351, 352, 353, etc.) in the measurement data are extracted.
[0188] Next, the controller 11 also determines two feature points 352 and two feature points 353 for each of the narrowed-down peaks (feature points 351). Specifically, the terminal point of the line segment extending from the one peak in one direction and the terminal point of the line segment extending in the other direction are determined as feature points 352 (root points of the inverted V-shaped portion) (see FIG. 24(c)). Furthermore, the terminal point (outer end point) of the group of points that are continuous in a straight line from the root position (feature point 352) outward at the root portion of the inverted V-shape is determined as feature point 353 (see FIG. 24(d)). Because the root portion (handle portion) of the inverted V-shape is a portion that extends in a straight line, the outer end point 353 of the root portion of the inverted V-shape is identified while removing points that deviate from the straight line as noise, etc.
[0189] Furthermore, in addition to the plurality of feature points 351, 352, and 353 relating to the certain peak, the controller 11 also obtains intermediate feature points 356 and 357 that complement (at a predetermined ratio or the like) between these feature points (see FIG. 24(e)). Specifically, several (two in this case) feature points 356 between the feature points 351 and 352, and several feature points 357 between the feature points 352 and 353 are obtained.
[0190] The controller 11 then calculates the similarity between the graphic formed by the feature points 351-353, 356, and 357 and the graphic of the template 250. Specifically, based on the feature points 351-353, 356, and 357 of one candidate and the feature points 251-253, 256, and 257 of the template 250, a rigid transformation matrix between the two graphics is calculated, and the similarity between the two graphics is calculated. For example, a nonlinear least-squares method involving rigid transformation may be used. The similarity between the two graphics is calculated based on the residual (positional deviation) of each corresponding point after transformation (after translation and rotation) using the rigid transformation matrix of one graphic (e.g., the template graphic). Note that the feature points 351-353, 356, and 357 of each candidate correspond to the feature points 251-253, 256, and 257 of the template 250, respectively.
[0191] Among the multiple candidates, the candidate (feature point 351) having the highest similarity is determined to be the peak of the V-shaped portion of the target 41. In other words, the V-shaped portion having the highest similarity to the template 250 is identified as the V-shaped portion of the target 41 (see FIG. 25). Furthermore, the relative position and posture (translational displacement and rotational displacement) between the mobile robot 10 and the target 41 is determined based on the rigid transformation matrix (its rotation matrix and translation vector) calculated for the V-shaped portion having the highest similarity. In other words, the relative position and posture (translational displacement and rotational displacement) between the mobile robot 10 and the target 41 is determined based on the position and posture of the identified V-shaped portion and the position and posture in the template 250. That is, the docking position Pd (target position) and docking posture (target posture) are recognized.
[0192] Thereafter, the mobile robot 10 moves toward the recognized target position and posture (docking position Pd (target position) and docking posture (target posture)). When moving to the target position and posture, for example, the movement control of steps S24 and S25 (see FIG. 11) may be performed.
[0193] According to this embodiment, the target 41 is identified using not only the two lines forming the V (the angle between them) but also the end points 352 and 353. Therefore, it is possible to identify the V-shaped portion more accurately than when identifying the target 41 using only the two lines forming the V. In other words, it is possible to avoid or suppress erroneous detection.
[0194] Here, candidates are narrowed down from among a plurality of candidates only by peak angle (see FIG. 24(b)), but this is not limiting. For example, candidates may be narrowed down using both peak angle and peak length. In particular, peaks having peak angles and peak lengths within the allowable ranges of a predetermined peak angle (e.g., 30 degrees) and a predetermined peak length (e.g., 20 cm) in template 250 may be extracted from among the many peaks.
[0195] Furthermore, although the above example illustrates an example in which docking position Pd (and docking posture) is set by laser sensor 27 after reaching target stop position Pg, the present invention is not limited to this. For example, instead of the target position and posture recognition process using multiple unique markers 62, the target position and posture recognition process may be performed using laser sensor 27. Specifically, after mobile robot 10 reaches a predetermined proximity to charging station 40 (for example, 1 meter in front of it) by movement control using the map control method (first method), the target position and posture (docking position and posture) may be determined using distance measurement processing by laser sensor 27. In other words, mobile robot 10 may proceed to a position near charging station 40 based on map information, and then dock itself with charging station 40 based on a target (a V-shaped target near charging station 40) recognized by laser sensor 27.
[0196] <4. Modifications, etc.> Although the embodiment of the present invention has been described above, the present invention is not limited to the above-described contents.
[0197] For example, in the above-described embodiments, the multiple unique markers 62 are arranged on a straight line (linearly) in a top view, but this is not limiting. For example, the multiple unique markers 62 may be arranged in an L-shape in a top view. In particular, the multiple unique markers 62 may be arranged in an L-shaped recess (inner surface) or an L-shaped protrusion (outer surface).
[0198] Furthermore, in the above-described embodiments, the multiple unique markers 62 are arranged along a predetermined straight line parallel to the floor surface in the horizontal direction (direction parallel to the floor surface), but this is not limiting. For example, the multiple unique markers 62 may be arranged along a predetermined curved direction (circumferential direction) parallel to the floor surface in the horizontal direction (direction parallel to the floor surface). For example, the multiple unique markers 62 may be arranged on the circumference of a circle having a predetermined radius in a top view (the circumferential curved surface of a cylinder). Note that, when the multiple unique markers 62 are arranged on the circumference, the target stop position Pg may be set on a straight line perpendicular to the tangent direction at the reference position Pr. Furthermore, a cylindrical coordinate system or the like may be adopted as the marker coordinate system. The reference position Pr may be expressed as an angle in the cylindrical coordinate system (marker coordinate system). Furthermore, the target stop position Pg may be expressed as a distance in the radial direction (direction perpendicular to the tangent) in the cylindrical coordinate system (marker coordinate system).
[0199] In this way, the multiple unique markers 62 may be arranged in a straight line in the horizontal direction (straight line when viewed from above), or may be arranged in a curved line in the horizontal direction (curved line when viewed from above).
[0200] Furthermore, in the above-described embodiments, the target stop position Pg and the like are set by a plurality of unique markers 62. However, the present invention is not limited to this. For example, the movement control of the first embodiment and the movement control of the second embodiment may be applied to movement control after the target position is set by a marker other than the group of unique markers 61. [Explanation of symbols]
[0201] 1. Transport system 10 Mobile Robot 26 Camera 27 Laser Sensor 50, 51, 52 Obstacles 61 Unique Markers 62 unique markers 63 Strip Sheet 65 scales 81,82 Belt conveyor 86 Goods storage shelf 92, 92a, 92b, 92c Placement location 210 images 263 Field of View Lp Imaginary line Pg Target stop position Pp Temporary target position Pr reference position Ps,θg Target stopping posture (target stopping angle) θp tentative target angle Θ Steering angle
Claims
1. A method for controlling a mobile robot, a) A step of setting the target stop position based on a reference position corresponding to a reference marker arbitrarily selected from a plurality of unique markers pre-arranged horizontally near the target stop position of the mobile robot, b) A step of recognizing the target stopping position based on the unique markers included in the image captured by the camera installed on the mobile robot, and controlling the movement of the mobile robot, A method for controlling a mobile robot, characterized by comprising the following features.
2. The method for controlling a mobile robot according to claim 1, characterized in that the target stopping position is set based on the reference position specified by the user and the relative relationship of the target stopping position to the reference position.
3. The method for controlling a mobile robot according to claim 1, characterized in that the reference position can be changed within the arrangement range of the plurality of unique markers in the arrangement direction of the plurality of unique markers.
4. The method for controlling a mobile robot according to claim 1, characterized in that the reference position is specified based on a scale located near the plurality of unique markers, the scale indicating the position of each unique marker in the direction of arrangement of the plurality of unique markers.
5. The method for controlling a mobile robot according to claim 1, characterized in that the plurality of unique markers are arranged in a straight line when viewed from above.
6. The method for controlling a mobile robot according to claim 5, characterized in that the target stopping position is set on a straight line perpendicular to the direction of the arrangement of the plurality of unique markers from the reference position when viewed from above.
7. The method for controlling a mobile robot according to claim 1, characterized in that the plurality of unique markers are formed by printing them onto a strip-shaped sheet.
8. Step b) is, b-1) Even if the reference marker among the plurality of unique markers is not included in the captured image, the step of recognizing the target stopping position based on the other unique markers among the plurality of unique markers that are included in the captured image, A method for controlling a mobile robot according to claim 1, characterized by comprising:
9. c) A step of transferring the item to be transported between the transfer destination equipment located near the target stopping position and the mobile robot, A method for controlling a mobile robot according to claim 1, further comprising the above.
10. In step a), the target stop angle, which is the target angle of the mobile robot at the target stop position, is also set. Step b) is, b-2) A step of moving the mobile robot toward the target stop position by setting a provisional target position based on the current position, the target stop position, and the target stop angle, while updating it as needed, and moving the mobile robot toward the provisional target position as needed. A method for controlling a mobile robot according to claim 1, characterized by comprising:
11. The method for controlling a mobile robot according to claim 10, characterized in that the provisional target position is positioned on a virtual straight line extending toward the front from the target stop position in the direction having the target stop angle.
12. In step b) above, By controlling the system to continuously reduce the residual difference between the current position and the provisional target position, the mobile robot is moved toward the target stopping position and the target stopping angle. Step b) is, b-3) After the mobile robot has approached the target stopping position to a predetermined extent by the movement in step b-2), the mobile robot is moved toward the target stopping position and the target stopping angle by controlling it to reduce the residual difference between the current angle of the mobile robot and the target stopping angle. A method for controlling a mobile robot according to claim 11, characterized by comprising:
13. The method for controlling a mobile robot according to claim 10, characterized in that, in step b-2) above, steering angles that cause interference between the moving mobile robot and obstacles on the movement path are excluded from a plurality of candidates for steering angles to approach the provisional target position, and the mobile robot is moved by selecting the steering angle that brings it closest to the provisional target position.
14. A program for causing a computer to execute the control method described in any one of claims 1 to 13.
15. It is a mobile robot, The main body and The camera provided in the main body, A drive unit for moving the main body, A control unit that controls the aforementioned travel drive unit, Equipped with, The control unit, The target stopping position of the aforementioned mobile robot is set based on a reference position corresponding to a reference marker arbitrarily selected from a plurality of unique markers pre-arranged horizontally near the target stopping position. A mobile robot characterized by recognizing the target stopping position based on a unique marker included in the image captured by the camera, among the plurality of unique markers, and performing driving control of the mobile robot.