Mobile body, control device, control method, and control program
The mobile body's control device detects and resolves a stuck state by using a detector, searcher, and executor to find and execute an escape operation, enabling continued autonomous movement.
Patent Information
- Application Number
- PCT/JP2025/025389
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2024-08-08
- Filing Date
- 2025-07-15
- Publication Date
- 2026-02-12
AI Technical Summary
Mobile bodies, such as robots, can become stuck when an object is present in a monitoring area, preventing them from moving autonomously.
The mobile body is equipped with a control device that includes a detector to identify when it is stuck, a searcher to find an escape operation, and an executor to execute the escape action, allowing it to move away from the object.
Enables the mobile body to escape from a stuck state effectively, ensuring continued autonomous operation.
Smart Images

Figure JP2025025389_12022026_PF_FP_ABST
Abstract
Description
Mobile body, control device, control method, and control program
[0001] The technology disclosed herein relates to a moving body, a control device, a control method, and a control program.
[0002] Conventionally, robots have been known as mobile bodies that move autonomously from a starting point to a destination. For example, a mobile body disclosed in Patent Document 1 detects an object such as a human and moves autonomously while avoiding collision with the object.
[0003] Japanese Patent Application Laid-Open No. 2020-046759
[0004] In the case of the above-mentioned mobile body, when it is determined that an object is present in a monitoring area set around the mobile body, the mobile body stops moving to avoid a collision with the object. If the object continues to exist in the monitoring area, the mobile body may become unable to move (referred to as a stuck state).
[0005] The technology disclosed herein has been made in consideration of the above points, and its purpose is to deal with the stuck state of the main body of the mobile body.
[0006] The mobile body disclosed herein comprises a mobile body main body, a sensor that detects objects present around the mobile body main body, and a control device that causes the mobile body to move autonomously and stops the mobile body when it determines based on the detection signal of the sensor that an object is present in a monitoring area set around the mobile body, and when the control device causes the mobile body main body to become stuck and unable to move due to the presence of the object in the monitoring area, it causes the mobile body to perform an escape operation to move away from the object.
[0007] The control device disclosed herein is a control device that causes a mobile body to move autonomously and stops the mobile body when it determines that an object is present in a monitoring area set around the mobile body, and is equipped with a detector that detects whether the mobile body is stuck and unable to move based on the presence of the object in the monitoring area, a searcher that searches for an escape action by the mobile body to move away from the object when the detector detects that the mobile body is stuck, and an executor that causes the mobile body to execute the escape action searched for by the searcher.
[0008] The control method disclosed herein is a control method for causing a mobile body to move autonomously and for stopping the mobile body when it is determined that an object is present in a monitoring area set around the mobile body, and includes the steps of detecting whether the mobile body is stuck and unable to move based on the presence of the object in the monitoring area, searching for an escape operation by which the mobile body will move away from the object when it is detected that the mobile body is stuck, and causing the mobile body to execute the escape operation.
[0009] The control program disclosed herein is a control program for causing a mobile body to move autonomously and for stopping the mobile body when it is determined that an object is present in a monitoring area set around the mobile body, and causes a computer to realize the following functions: a function for detecting whether the mobile body is stuck and unable to move based on the presence of the object in the monitoring area; a function for searching for an escape operation by which the mobile body will move away from the object when it is detected that the mobile body is stuck; and a function for causing the mobile body to execute the escape operation.
[0010] According to the moving body, the control device, the control method, and the control program, the moving body can be made to escape from a stuck state.
[0011] FIG. 1 is a perspective view of a moving body according to an embodiment. FIG. 2 is a schematic plan view of the moving body. FIG. 3 is a diagram illustrating the hardware configuration of a control device. FIG. 4 is a functional block diagram illustrating the configuration of a control system of a processor. FIG. 5 is a schematic plan view conceptually illustrating a moving body main body and a monitoring area set around the moving body main body. FIG. 6 is a flowchart illustrating the basic operation of the moving body. FIG. 7 is a block diagram illustrating the configuration of a control system of a processor of a control device. FIG. 8 is a schematic plan view conceptually illustrating various areas set based on the moving body main body. FIG. 9 is a flowchart illustrating a stuck state escape process performed by a processor of a control device. FIG. 10 is a flowchart of a subroutine for a stuck state continuation determination process. FIG. 11 is a flowchart of a subroutine for a stuck state escape operation search process. FIG. 12 is a flowchart of a subroutine for a target position calculation process. FIG. 13 is a schematic plan view illustrating the farthest candidate position. FIG. 14 is a schematic plan view illustrating the farthest candidate position. FIG. 15 is a flowchart of a subroutine for a parallel movement confirmation process. FIG. 16 is a schematic plan view of a monitoring area before reduction. FIG. 17 is a schematic plan view of a monitoring area after reduction. FIG. 18 is a schematic plan view of a monitoring area after reduction. FIG. 19 is a block diagram showing the configuration of a control system of a processor of a control device for a moving body according to Modification 1. FIG. 20 is a flowchart of a subroutine of a stuck escape operation search process. FIG. 21 is a flowchart of a subroutine of a target attitude calculation process. FIG. 22 is a schematic plan view showing a stuck state of a moving body main body. FIG. 23 is a schematic diagram showing a second candidate attitude in a counterclockwise direction. FIG. 24 is a schematic diagram showing a second candidate attitude in a clockwise direction. FIG. 25 is a schematic diagram showing a third candidate attitude in a clockwise direction. FIG. 26 is a schematic diagram showing a fourth candidate attitude in a clockwise direction. FIG. 27 is a flowchart of a subroutine of a rotation confirmation process about one's own axis. FIG. 28 is a schematic diagram explaining a method of rotating a monitoring area about one's own axis to correspond to a target attitude. FIG. 29 is a block diagram showing the configuration of a control system of a processor of a control device for a moving body according to Modification 2. Fig. 30 is a flowchart of a subroutine of the stuck escape operation search process. Fig. 31 is a functional block diagram showing the configuration of a control system of a processor according to the third modification.Fig. 32 is a side view of the mobile body when the robot arm is in the traveling shape, and Fig. 33 is a plan view of the mobile body when the robot arm is in the traveling shape.
[0012] An exemplary embodiment will be described in detail below with reference to the drawings. FIG. 1 is a perspective view of a mobile object 100. The mobile object 100 moves autonomously. The mobile object 100 includes a mobile object main body 1 and a control device 6 that causes the mobile object main body 1 to move autonomously. For example, the mobile object 100 moves within a facility such as a store, hospital, or nursing home. In addition to moving, the mobile object 100 may also perform tasks such as handing over an item or opening and closing a door.
[0013] For example, the mobile body 1 is a mobile robot including a robot arm 12. In detail, the mobile body 1 may have a carriage 10, a base 11 mounted on the carriage 10, and a robot arm 12 connected to the base 11.
[0014] The bogie 10 has a defined front-rear direction. In this example, the bogie 10 has a generally rectangular planar shape. For example, the longitudinal direction of the rectangle is the front-rear direction. The lateral direction of the rectangle is the left-right direction.
[0015] The bogie 10 includes a plurality of wheels 13 and is capable of traveling. In this example, the bogie 10 includes four wheels 13. The bogie 10 may be capable of moving straight and turning. In this example, the bogie 10 is capable of moving forward, backward, left, right, and diagonally while maintaining its posture, i.e., moving in all directions. In other words, the bogie 10 may be capable of translational movement in directions other than the forward and backward direction. Furthermore, the bogie 10 may also be capable of rotating on the spot. For example, the four wheels 13 include a set of wheels 13 aligned in the left-right direction at the front of the bottom of the bogie 10 and another set of wheels 13 aligned in the left-right direction at the rear of the bottom of the bogie 10. The wheels 13 may be arranged to form a rectangle on the bottom of the bogie 10. More specifically, the four wheels 13 are arranged at the four corners of the bottom of the bogie 10.
[0016] More specifically, the wheel 13 may be an omnidirectional wheel. In this example, the wheel 13 is a Mecanum wheel. The wheel 13 has a plurality of barrel-shaped rollers arranged on the outer periphery of the wheel. For example, the rotation axis of each roller is inclined at 45 degrees with respect to the axle of the wheel 13.
[0017] The mobile body 1 may have motors 13a that drive the wheels 13 and encoders 13b that detect the amount of rotation of the motors 13a (see FIG. 3). In this example, the mobile body 1 has four sets of motors 13a and encoders 13b corresponding to the four wheels 13. The four wheels 13 may be independently driven by the corresponding motors 13a.
[0018] The cart 10 may be able to move in any direction in two dimensions using these four wheels 13. For example, the cart 10 may translate or rotate in any direction, including forward / backward, left / right, and diagonal. The cart 10 may also rotate on the spot.
[0019] The base 11 may be mounted on the cart 10. In this example, the base 11 has a shape resembling the upper body of a person. The base 11 may be fixed to the cart 10 so as not to be movable.
[0020] The mobile body 1 has two robot arms 12. A hand 14 may be attached to the tip of one of the robot arms 12. The hand 14 does not have to be attached to the tip of the other robot arm 12.
[0021] The two robot arms 12 are connected to different portions of the base 11. For example, the two robot arms 12 are connected to different portions of the base 11 in the width direction, which is one direction in a plan view. In other words, the width direction is the direction in which the connection portion of one robot arm 12 to the base 11 and the connection portion of the other robot arm 12 to the base 11 are aligned in a plan view. The base 11 may have a front and a back that face opposite each other in a plan view. For example, the front side of the base 11 is the front, and the back side is the rear, defining the front-to-back direction. The width direction may be a horizontal direction that is perpendicular to the front-to-back direction. In other words, the width direction is the left-to-right direction relative to the front-to-back direction. For example, one robot arm 12 is connected to the left side of the base 11, and the other robot arm 12 is connected to the right side of the base 11.
[0022] In addition, when the planar shape of the carriage 10 is a substantially rectangular shape having a longitudinal direction and a lateral direction, the width direction substantially coincides with the lateral direction of the planar shape of the carriage 10 .
[0023] For example, as shown in FIG. 1 , the robot arm 12 has a plurality of links L and a plurality of joints J connecting the links L. The robot arm 12 is configured to operate in three dimensions. In this example, the robot arm 12 is a multi-joint robot arm. That is, the shape of the robot arm 12 may be freely changed by rotating the joints. The robot arm 12 is supported by a base 11.
[0024] For example, the multiple links L include a first link L1, a second link L2, a third link L3, a fourth link L4, a fifth link L5, a sixth link L6, and a seventh link L7, which are arranged in series from the base 11 side. The seventh link L7 is located at the tip of the robot arm 12. For example, the multiple joints J include a first joint J1, a second joint J2, a third joint J3, a fourth joint J4, a fifth joint J5, a sixth joint J6, and a seventh joint J7, which are arranged in series from the base 11 side. The position and orientation of the seventh link L7 have six degrees of freedom, including translational and rotational directions about each of three orthogonal axes. The robot arm 12 may be a so-called seven-axis robot having seven joints J. In other words, the robot arm 12 has redundancy. Redundancy is a characteristic in which the rotation angles of multiple joints J corresponding to the position and orientation of the tip of the robot arm 12 are not uniquely determined.
[0025] The base 11 and the first link L1 are rotatably connected by a first joint J1. The first link L1 and the second link L2 are rotatably connected by a second joint J2. The second link L2 and the third link L3 are rotatably connected by a third joint J3. The third link L3 and the fourth link L4 are rotatably connected by a fourth joint J4. The fourth link L4 and the fifth link L5 are rotatably connected by a fifth joint J5. The fifth link L5 and the sixth link L6 are rotatably connected by a sixth joint J6. The sixth link L6 and the seventh link L7 are rotatably connected by a seventh joint J7.
[0026] The hand 14 may be connected to a seventh link L7 at the tip of the robot arm 12. In other words, the hand 14 is connected to the robot arm 12 so as to be rotatable around the rotation axis of the seventh joint J7. The hand 14 is an end effector attached to the robot arm 12.
[0027] In more detail, the multiple joints J may include a joint that functions as a shoulder joint. For example, the multiple joints J include a joint that has the functions of horizontal extension and horizontal flexion at the shoulder joint. The rotation axis of the joint that has the functions of horizontal extension and horizontal flexion at the shoulder joint extends in a substantially vertical direction. The multiple joints J may include a joint that has the functions of extension and flexion at the shoulder joint. The rotation axis of the joint that has the functions of extension and flexion at the shoulder joint extends in a substantially horizontal direction.
[0028] For example, the first joint J1 functions as a shoulder joint of the robot arm 12. The first joint J1 may have the functions of horizontal extension and horizontal flexion at the shoulder joint. The rotation axis of the first joint J1 extends in a substantially vertical direction.
[0029] For example, the second joint J2 functions as a shoulder joint of the robot arm 12. The second joint J2 may have the functions of extension and flexion at the shoulder joint. The rotation axis of the second joint J2 extends in a substantially horizontal direction.
[0030] For example, the third joint J3 functions as a shoulder joint of the robot arm 12. The third joint J3 may have the function of internal rotation and external rotation in a shoulder joint.
[0031] The multiple joints J may include a joint that functions as a wrist joint. For example, the multiple joints J include a joint that has the functions of internal rotation and external rotation or the functions of pronation and supination at the wrist joint. For example, the seventh joint J7 may have the functions of internal rotation and external rotation at the wrist joint. The sixth joint J6 may have the functions of pronation and supination at the wrist joint.
[0032] The multiple joints J may include an intermediate joint between a shoulder joint and a wrist joint. The intermediate joint may also be referred to as an elbow joint. The intermediate joint may have functions of extension and flexion at the intermediate joint, or functions of internal rotation and external rotation at the intermediate joint. The fourth joint J4 may have functions of extension and flexion at the intermediate joint. The fifth joint J5 may have functions of internal rotation and external rotation at the intermediate joint.
[0033] The robot arm 12 has a motor 12a (see FIG. 3) that rotates and drives each joint J. For example, the motor 12a is a servo motor. Each motor 12a has an encoder 12b (see FIG. 3).
[0034] The mobile body 100 may include a sensor 3 that detects objects (hereinafter simply referred to as "peripheral objects") around the mobile body 1. In this disclosure, "objects" includes both inanimate and animate objects. The sensor 3 is disposed on the mobile body 1. For example, the sensor 3 is disposed on the dolly 10. In this example, the sensor 3 is a ranging sensor that measures the distance from the sensor 3 to the peripheral objects. For example, the sensor 3 is a LiDAR (Light Detection and Ranging) sensor. The sensor 3 includes, for example, a light-emitting unit that emits laser light toward the periphery of the mobile body 1 and a light-receiving unit that receives the laser light reflected off the surface of the peripheral object. The sensor 3 measures the time of flight of the laser light emitted from the light-emitting unit, which hits the surface of the peripheral object and returns to the light-receiving unit. The sensor 3 measures the distance from the sensor 3 to the surface of the peripheral object based on the measured time of flight. The sensor 3 may generate point cloud data based on the measured distance. The point cloud data is three-dimensional position information of the surface of the peripheral object. For example, the sensor 3 outputs the calculated point cloud data to the control device 6. The sensor 3 may repeatedly detect surrounding objects at a predetermined detection period while the mobile body 1 is moving. The sensor 3 may output the detection result of the sensor 3, i.e., the point cloud data, to the control device 6 every time the sensor 3 detects a surrounding object.
[0035] In this example, the mobile body 100 includes multiple sensors 3. FIG. 2 is a schematic diagram showing the detection ranges of the sensors 3. FIG. 2 is a plan view of the mobile body 100, omitting the robot arm 12 and other components. The mobile body 100 may include a first sensor 3A, a second sensor 3B, and a third sensor 3C. The first sensor 3A, the second sensor 3B, and the third sensor 3C are disposed on the carriage 10. The first sensor 3A is disposed at the front of the carriage 10. For example, the first sensor 3A is disposed on the carriage 10 forward of the base 11 and approximately in the center in the left-right direction. The first sensor 3A detects objects in the three-dimensional space around the mobile body main body 1. The first sensor 3A may be a 3D LiDAR. The first sensor 3A scans the measurement light in the horizontal and vertical directions. In this example, the first sensor 3A scans the measurement light 360 degrees horizontally, as indicated by the two-dot chain line in FIG. 2. In the vertical direction, the first sensor 3A scans the measurement light in a predetermined range including elevation and depression angles.
[0036] The second sensor 3B and the third sensor 3C may be disposed at the rear of the carriage 10. More specifically, the second sensor 3B and the third sensor 3C are disposed on the carriage 10 rearward of the base 11. The second sensor 3B is disposed at the left rear corner of the carriage 10, and the third sensor 3C is disposed at the right rear corner of the carriage 10. The second sensor 3B and the third sensor 3C may detect objects in a two-dimensional space in the horizontal direction around the mobile body 1. For example, the second sensor 3B and the third sensor 3C are 2D LiDAR. The second sensor 3B and the third sensor 3C scan the measurement light in the horizontal direction. The second sensor 3B and the third sensor 3C detect objects in a range in the horizontal direction that cannot be detected by at least the first sensor 3A. The second sensor 3B scans the measurement light at least to the left rear of the carriage 10. The third sensor 3C scans the measurement light at least to the right rear of the carriage 10. The scanning range of the measurement light by the second sensor 3B and the scanning range of the measurement light by the third sensor 3C partially overlap behind the carriage 10. In this example, the second sensor 3B scans the measurement light horizontally by approximately 270 degrees from the front to the right, including the left area of the mobile body 1, as shown by the dashed line in FIG. 2 . The third sensor 3C scans the measurement light horizontally by approximately 270 degrees from the front to the left, including the right area of the mobile body 1, as shown by the dashed line in FIG. 2 . The second sensor 3B and the third sensor 3C detect objects at approximately the same height. That is, the scanning plane of the measurement light by the second sensor 3B and the scanning plane of the measurement light by the third sensor 3C are at approximately the same height.
[0037] 2, since the base 11 is disposed behind the first sensor 3A, the first sensor 3A cannot properly scan the measurement light in the range F overlapping with the base 11. On the other hand, since the second sensor 3B and the third sensor 3C are disposed behind the base 11, the second sensor 3B and the third sensor 3C can also scan the measurement light into the range F.
[0038] Hereinafter, when there is no need to distinguish between the first sensor 3A, the second sensor 3B, and the third sensor 3C, they will be simply referred to as "sensors 3."
[0039] 3 is a diagram showing the hardware configuration of the control device 6. The control device 6 controls the entire mobile body 1. The control device 6 causes the mobile body 1 to move autonomously while estimating the self-position of the mobile body 1. The control device 6 operates the motors 13a of the wheels 13 to move the mobile body 1. Furthermore, the control device 6 controls the motors 12a of the robot arm 12 to cause the robot arm 12 to perform a predetermined task. The control device 6 has a processor 61, a storage device 62, and a memory 63.
[0040] The processor 61 performs various types of arithmetic processing. For example, the processor 61 is formed of a processor such as a CPU (Central Processing Unit). The processor 61 may be formed of an MCU (Micro Controller Unit), an MPU (Micro Processor Unit), an FPGA (Field Programmable Gate Array), a PLC (Programmable Logic Controller), a system LSI, or the like. The processor 61 operates the motor 13a, causing the mobile body 1 to move autonomously.
[0041] The memory 62 stores programs executed by the processor 61 and various data. For example, the memory 62 stores a control program. The memory 62 stores map information related to a map of the environment in which the mobile body 1 moves. For example, the map information includes a three-dimensional map and a two-dimensional map. The three-dimensional map is formed from three-dimensional point cloud data. For example, the three-dimensional map is a three-dimensional point cloud map. In the three-dimensional map, the three-dimensional shapes of obstacles in the environment, such as walls, ceilings, handrails, shelves, tables, or chairs, are represented by point cloud data. The two-dimensional map is a planar map. For example, the two-dimensional map is a two-dimensional occupancy grid map. In the two-dimensional map, the planar shapes of obstacles in the environment, such as walls, ceilings, handrails, shelves, tables, or chairs, are represented. For example, the two-dimensional map is formed by projecting the three-dimensional map onto a plane. The memory 62 is formed from a non-volatile memory, a hard disk drive (HDD), a solid state drive (SSD), or the like. The memory 63 temporarily stores data, etc. For example, the memory 63 is formed of a volatile memory.
[0042] 4 is a functional block diagram showing the configuration of the control system of the processor 61. The processor 61 realizes various functions by reading a control program from the storage device 62 into the memory 63 and expanding the program. Specifically, the processor 61 functions as a state estimator 64 that estimates the state of the mobile body 1, a map generator 65 that generates a map of the environment in which the mobile body 1 moves, a path generator 66 that plans a path for the mobile body 1, a trajectory generator 67 that generates a target trajectory according to the path, and a movement controller 68 that moves the mobile body 1 according to the target trajectory. The processor 61 also functions as an operation amount calculator 69 that calculates the operation amount of the motor 13a.
[0043] The state estimator 64 performs self-position estimation. The state estimator 64 receives the detection results of the sensor 3, the detection results of the encoder 13b, and the map information in the memory 62. The map information is, for example, a three-dimensional map. The state estimator 64 compares the detection results of the sensor 3 with the map information to estimate the current position of the mobile body 1, i.e., its self-position. Here, the position of the mobile body 1 also includes the orientation of the mobile body 1, i.e., its attitude.
[0044] In this example, the state estimator 64 performs self-position estimation using the three-dimensional point cloud data of the first sensor 3 A. The state estimator 64 compares environmental information around the mobile body 1 obtained from the three-dimensional point cloud data of the first sensor 3 A with a three-dimensional map, and estimates the position of the mobile body 1 within the environment represented by the three-dimensional map, i.e., the self-position.
[0045] The map generator 65 generates a map based on the detection results of the sensor 3. Specifically, the map generator 65 generates or modifies a three-dimensional map based on the detection results of the sensor 3. In this example, before autonomous movement is performed, the three-dimensional map is generated using SLAM (Simultaneous Localization and Mapping) technology. Specifically, while the mobile body 1 is moving within the environment, the state estimator 64 and the map generator 65 acquire the detection results of the sensor 3 and perform self-location estimation and map generation in parallel. The generated map information, i.e., the three-dimensional map, is stored in the memory 62. When generating the map before autonomous movement is performed, the mobile body 1 can be moved by manual operation by the user.
[0046] Furthermore, the map generator 65 updates the two-dimensional map. The two-dimensional map can also be updated during autonomous movement. The map generator 65 detects obstacles in the environment based on the detection results of the sensors 3 acquired while the mobile body 1 is moving, and updates the two-dimensional map.
[0047] The route generator 66 reads the destination and map information from the memory 62. The destination is set in advance in the memory 62. The map information at this time is, for example, a two-dimensional map. At this time, the route generator 66 may read intermediate points in addition to the destination. The state quantities (including the estimated position) of the mobile body 1 are input to the route generator 66 from the state estimator 64.
[0048] The path generator 66 generates a path from the current position of the mobile body 1 to the destination based on map information. The path generator 66 references the map information to generate a path that avoids interference with obstacles, etc. If a passage is set in the environment, the path generator 66 generates a path along the passage. For example, the path generator 66 generates a path using an A-star search algorithm, an RRT algorithm, a Dijkstra algorithm, or a geometric approach. The path generator 66 outputs an array of positions through which the mobile body 1 passes as a path to the trajectory generator 67. Each position includes the attitude of the mobile body 1 in addition to position information.
[0049] The trajectory generator 67 generates a target trajectory from the current position of the mobile body 1 according to the generated path. The trajectory generator 67 generates the target trajectory of the mobile body 1 using a predetermined method (for example, a line-of-sight guidance law). The state quantities of the mobile body 1 are input to the trajectory generator 67 from the state estimator 64. The trajectory generator 67 calculates a command speed for the mobile body 1.
[0050] Alternatively, the trajectory generator 67 may calculate the command speed by model predictive control (MPC), which determines a control input, i.e., a speed command, by sequentially solving an optimization problem based on a model of the mobile body 1. The trajectory generator 67 predicts future state quantities from the current state quantities of the mobile body 1 and obstacles, calculates an optimal path for the mobile body 1, and calculates a moving speed from the current position to the target position to follow that path as a command speed.
[0051] The command speed calculated by the trajectory generator 67 is input to the movement controller 68. The movement controller 68 outputs a command value corresponding to the command speed to the operation amount calculator 69.
[0052] The movement controller 68 executes control to avoid interference between the mobile body 1 and an obstacle. The movement controller 68 monitors the approach of the mobile body 1 to an obstacle based on the detection results of the sensors 3. In this example, the movement controller 68 monitors the approach of the mobile body 1 to an obstacle using all of the detection results of the first sensor 3A, the second sensor 3B, and the third sensor 3C. For example, the movement controller 68 slows down or stops the mobile body 1 depending on the distance between the mobile body 1 and the obstacle.
[0053] The movement controller 68 further executes stop control to avoid a collision between the mobile body 1 and an object. Specifically, the movement controller 68 stops the mobile body 1 when it determines, based on the detection signal from the sensor 3, that an object is present in a monitoring area Z1 set around the mobile body 1.
[0054] 5 is a schematic plan view conceptually showing the mobile body 1 and a monitoring area Z1 set around the mobile body 1. The monitoring area Z1 is an area in which the movement controller 68 stops the movement of the mobile body 1 when the sensor 3 detects an object in the monitoring area Z1. The monitoring area Z1 is set around the mobile body 1. Specifically, the monitoring area Z1 is set within a predetermined range from the periphery of an area that includes the entire mobile body 1 in a plan view. The area that includes the entire mobile body 1 will be referred to as the occupied area Z0 hereinafter.
[0055] The occupied area Z0 corresponds to the occupied area of the mobile body 1 when viewed in a plan view. The outer shape of the occupied area Z0 is a rectangle that circumscribes the outer periphery of the mobile body 1 when viewed in a plan view. In this example, the outer periphery of the occupied area Z0 is circumscribed by the outer periphery of the bogie 10. The outer shape of the occupied area Z0 is a rectangle. In more detail, the occupied area Z0 includes two sides (long sides in this example) that extend in the front-to-rear direction of the mobile body 1 when viewed in a plan view, and two sides (short sides in this example) that extend in a direction perpendicular to the front-to-rear direction. In Figure 5, the outer periphery of the occupied area Z0 is indicated by a two-dot chain line.
[0056] The monitoring area Z1 is set within a predetermined range from the periphery of the occupied area Z0 to the outside of the occupied area Z0. The periphery of the monitoring area Z1 follows the periphery of the occupied area Z0. In this example, the outer shape of the monitoring area Z1 is rectangular. In FIG. 5, the monitoring area Z1 is hatched. The periphery of the occupied area Z0 is indicated by a dotted line.
[0057] When an object enters the monitoring area Z1, the movement controller 68 continues to stop the mobile body 1 until the intruding object is no longer present in the monitoring area Z1. For example, when an obstacle such as a moving table enters the monitoring area Z1, the movement controller 68 stops the mobile body 1. After the obstacle moves out of the monitoring area Z1, the movement controller 68 causes the mobile body 1 to travel again.
[0058] The movement controller 68 further executes stuck escape control for escaping from the stuck state of the mobile body 1. Specifically, when the mobile body 1 becomes stuck and unable to move due to the presence of an object in the monitoring area Z1, the movement controller 68 causes the mobile body 1 to execute an escape operation to move away from the object. When the mobile body 1 stops due to the presence of an object in the monitoring area Z1 and the stoppage of the mobile body 1 continues for a predetermined time from the start of the stoppage, the movement controller 68 determines that the mobile body 1 is stuck.
[0059] The operation amount calculator 69 distributes the command value to the plurality of motors 13a and calculates the command operation amount for each of the plurality of motors 13a. For example, the operation amount is the rotation speed or torque of the motor.
[0060] Each motor 13a operates in accordance with a command operation amount. The motor 13a may be provided with its own controller for operating the motor 13a. For example, if the motor 13a is a servo motor, the motor 13a further includes a servo amplifier. In this case, the servo amplifier operates the motor 13a in accordance with the command operation amount. As a result, the mobile body 1 moves.
[0061] Next, a description will be given of the basic operation of the moving body 100. Fig. 6 is a flowchart of the basic operation of the moving body 100. The moving body 100 repeatedly executes the following processing at a predetermined control cycle.
[0062] First, in step S1, the state estimator 64 acquires information about the surrounding environment. Specifically, the state estimator 64 acquires the detection signal of the sensor 3 and the detection signal of the encoder 13b.
[0063] Next, in step S2, the state estimator 64 performs self-location estimation.
[0064] Subsequently, in step S3, the route generator 66 executes route planning, generating a route for the mobile body 1 based on the map information, the estimated position of the mobile body 1, and the destination.
[0065] In step S4, the trajectory generator 67 calculates a command velocity from the estimated position of the mobile body 1 so as to follow the generated path.
[0066] In step S5, the movement controller 68 causes the mobile body 1 to move in accordance with the command speed.
[0067] By repeating the above process, the mobile body 100 autonomously moves to the destination while estimating the self-position of the mobile body main body 1.
[0068] Next, the stuck escape control of the movement controller 68 will be described in more detail. Fig. 7 is a block diagram showing the configuration of the stuck escape control system of the movement controller 68. The movement controller 68 has a detector 55, a searcher 56, and an executor 57 as functional blocks. The movement controller 68 may further have a determiner 58 as a functional block.
[0069] The detector 55 detects whether the mobile body 1 is stuck and unable to move due to the presence of an object in the monitoring area Z1. Specifically, the detector 55 detects that the mobile body 1 is stuck when the stoppage of the mobile body 1 due to the presence of an object in the monitoring area Z1 continues for a predetermined time from the start of the stoppage.
[0070] When the stuck state of the mobile body 1 occurs, the determiner 58 determines whether the stuck state of the mobile body 1 continues after the mobile body 1 has been stopped for a predetermined time. Specifically, the determiner 58 determines whether the mobile body 1 is stuck after a predetermined time has elapsed since the detector 55 detected the stuck state of the mobile body 1. More specifically, when the determiner 58 determines that the stuck state of the mobile body 1 continues, it expands the monitoring area Z1. Hereinafter, the expanded monitoring area will be referred to as monitoring area Z2.
[0071] 8 is a schematic plan view conceptually showing various areas set based on the mobile body 1. The monitoring area Z2 is an area obtained by uniformly expanding the periphery of the monitoring area Z1 in the front-to-back, left-to-right directions. In this example, the outer shape of the monitoring area Z2 is rectangular. The outer shape of the monitoring area Z2 is similar to the outer shape of the monitoring area Z1.
[0072] When the sensor 3 does not detect an object in the monitoring area Z2, the determiner 58 determines that the stuck state of the mobile body 1 has been resolved. When the sensor 3 detects an object in the monitoring area Z2, the determiner 58 determines that the stuck state of the mobile body 1 continues.
[0073] The searcher 56 searches for an escape action by which the mobile body 1 moves away from the object when the mobile body 1 becomes stuck. In other words, when the determiner 58 determines that the stuck state of the mobile body 1 continues, the searcher 56 searches for an escape action.
[0074] Specifically, the searcher 56 searches for a first escape operation in which the mobile body 1 is translated in a direction away from the object when the mobile body 1 becomes stuck. The translation of the mobile body 1 means moving the mobile body 1 in a plane without changing the orientation of the mobile body 1.
[0075] In detail, the searcher 56 acquires distance information to the object based on the detection signal from the sensor 3, calculates the target position farthest from the object in the search area Z3 of the sensor 3 based on the distance information, and determines whether the mobile body 1 can move parallel to the target position. When the searcher 56 determines that the mobile body 1 can move parallel to the target position, it searches for parallel movement to the target position as an escape operation.
[0076] As shown in Figure 8, search area Z3 is set to a predetermined range centered on mobile body 1 and including mobile body 1. In other words, search area Z3 is set to a predetermined range centered on the midpoint of occupied area Z0 and including occupied area Z0. Search area Z3 is larger than monitoring area Z1 and monitoring area Z2. In this example, the outline of search area Z3 is a circle centered on the midpoint of occupied area Z0.
[0077] The searcher 56 also reduces a first region of the monitoring region Z1 that is on the opposite side to the direction of movement of the mobile body 1, and determines whether or not escape of the mobile body 1 is possible by a first escape operation. Specifically, when the sensor 3 does not detect an object in the monitoring region Z1 with the first region of the monitoring region Z1 reduced, the searcher 56 determines that the mobile body 1 is possible to translate toward the target position. When the sensor 3 detects an object in the monitoring region Z1, the searcher 56 determines that the mobile body 1 is not possible to translate toward the target position.
[0078] The executor 57 causes the mobile body 1 to execute an escape action. Specifically, when escape of the mobile body 1 is possible through the first escape action, the executor 57 causes the mobile body 1 to execute the first escape action. More specifically, the executor 57 translates the mobile body 1 to the target position. In this example, the executor 57 translates the mobile body 1 to the target position so that the reference point of the occupied area Z0 coincides with the target position in a planar view. In this example, the reference point of the occupied area Z0 coincides with the midpoint of the occupied area Z0. Note that the executor 57 may translate the mobile body 1 using any point within the occupied area Z0 as the reference point instead of the midpoint of the occupied area Z0 so that the reference point of the occupied area Z0 coincides with the target position.
[0079] Next, a description will be given of a stuck-out escape process (one example of a control method) performed by the processor 61 (movement controller 68) of the control device 6 with reference to a flowchart. FIG. 9 is a flowchart showing the stuck-out escape process performed by the processor 61 of the control device 6.
[0080] First, in step S11, the detector 55 detects the occurrence of a stuck state of the mobile body 1. If the detector 55 does not detect the occurrence of a stuck state of the mobile body 1, the processor 61 ends the stuck escape process. If the detector 55 detects the occurrence of a stuck state of the mobile body 1, in step S12, step S11 is repeated until a predetermined time has elapsed.
[0081] After a predetermined time has elapsed in step S12, the determiner 58 performs a stuck state continuation determination process in step S13. Specifically, the determiner 58 determines whether the stuck state of the main body 1 continues or not.
[0082] In step S14, if the determiner 58 determines that the stuck state of the main body 1 has been resolved, the processor 61 ends the stuck escape process.
[0083] If the determiner 58 determines in step S14 that the stuck state of the mobile body 1 has not been resolved, the searcher 56 performs a stuck escape operation search process in step S15. Specifically, the searcher 56 searches for an escape operation in which the mobile body 1 moves away from the object.
[0084] If the searcher 56 finds an escape operation in step S16, the executor 57 causes the mobile body 1 to execute the escape operation in step S17. Thereafter, the processor 61 ends the stuck escape process.
[0085] If the searcher 56 cannot find an escape operation in step S16, the processor 61 issues an alert in step S18. For example, the processor 61 notifies the administrator by using light or sound that the mobile body 1 cannot escape from the stuck state.
[0086] 10 is a flowchart of a subroutine of the stuck state continuation determination process (step S13). First, in step S21, the determiner 58 expands the monitoring area Z1.
[0087] If the sensor 3 does not detect an object in the monitoring area Z2 in step S22, the determiner 58 determines in step S23 that the stuck state of the main body 1 has been resolved. After that, the processing of the processor 61 returns to the flowchart of FIG.
[0088] If the sensor 3 detects an object in the monitoring area Z2 in step S22, the determiner 58 determines in step S24 that the stuck state of the main body 1 continues. After that, the processing of the processor 61 returns to the flowchart of FIG.
[0089] 11 is a flowchart of the subroutine of the stuck escape operation search process (step S15). First, in step S31, the searcher 56 performs a target position calculation process. Specifically, the searcher 56 acquires distance information to the object based on the detection signal from the sensor 3, and calculates the target position farthest from the object in the search area Z3 of the sensor 3 based on the distance information.
[0090] If the searcher 56 cannot calculate the target position in step S32, the searcher 56 determines that the search for the escape operation has failed in step S36. After that, the processing of the processor 61 returns to the flowchart of FIG.
[0091] If the searcher 56 can calculate the target position in step S32, the searcher 56 performs a parallel movement confirmation process in step S33. Specifically, the searcher 56 determines whether the mobile body 1 can move parallel toward the target position.
[0092] If the searcher 56 determines in step S34 that translation is not possible, the searcher 56 determines in step S36 that the search for an escape action has failed. After that, the processing of the processor 61 returns to the flowchart of FIG.
[0093] If the searcher 56 determines in step S34 that translation is possible, the searcher 56 determines in step S35 that the search for an escape action has been successful. After that, the processing of the processor 61 returns to the flowchart of FIG.
[0094] 12 is a flowchart of a subroutine of the target position calculation process (step S31). First, in step S41, the searcher 56 calculates the candidate position that is farthest from the object in the search area Z3.
[0095] An example of a method for calculating the farthest candidate position will be described. Fig. 13 is a schematic plan view showing the farthest candidate position. In Fig. 13, the sensor 3 detects a wall W in the monitoring area Z1, and the mobile body 1 is in a stuck state. The wall W is an example of an object. The wall W is represented by point cloud data.
[0096] First, the searcher 56 sets a plurality of candidate positions in the search area Z3. The searcher 56 calculates the shortest distance between each candidate position and the wall W. The searcher 56 selects the candidate position with the greatest shortest distance from the plurality of candidate positions, and sets the selected candidate position as the farthest candidate position 71. In FIG. 13 , the searcher 56 sets the one point on the periphery of the search area Z3 that is farthest from the wall W as the farthest candidate position 71.
[0097] In step S42, the searcher 56 determines whether or not the farthest candidate position 71 is the current position of the mobile body 1. Specifically, the searcher 56 determines whether or not the farthest candidate position 71 coincides with the reference point (the midpoint in this example) of the occupied area Z0.
[0098] 13, if the farthest candidate position 71 does not coincide with the reference point of the occupied area Z0, the searcher 56 determines that the farthest candidate position 71 is not the current position of the mobile body 1. Then, in step S43, the searcher 56 sets the farthest candidate position 71 as the target position and determines that the calculation of the target position has been successful. Thereafter, the processing of the processor 61 returns to the flowchart of FIG.
[0099] For example, as shown in Figure 14, when the mobile body 1 is stuck and surrounded by walls W on both sides, and the farthest candidate position 71 located farthest from the walls W on both sides coincides with the reference point of the occupied area Z0, the searcher 56 determines in step S42 that the farthest candidate position 71 is the current position of the mobile body 1. More specifically, there are multiple candidates for the farthest candidate position 71 on a line that is in the search area Z3 and passes through the reference point of the occupied area Z0. In this case, the searcher 56 determines that the candidate that overlaps with the reference point of the occupied area Z0 is the farthest candidate position 71 from among the multiple candidates.
[0100] Then, in step S44, the searcher 56 determines that the farthest candidate position 71 is not the target position, and determines that the calculation of the target position has failed. Thereafter, the processing of the processor 61 returns to the flowchart of FIG.
[0101] 15 is a flowchart of a subroutine of the parallel movement confirmation process (step S33). First, in step S51, the searcher 56 reduces the first area of the monitoring area Z1.
[0102] An example of a method for reducing the first region of the monitoring region Z1 will be described. Fig. 16 is a schematic plan view of the monitoring region Z1 before reduction. Fig. 17 is a schematic plan view of the monitoring region Z1 after reduction. The direction of arrow A shown in Figs. 16 and 17 is the direction in which the mobile body 1 moves toward the target position.
[0103] 16 , the first region of the monitoring region Z1 is an region facing in the opposite direction to the direction of arrow A. Specifically, the outer shape of the monitoring region Z1 is a rectangle including a first side Z11, a second side Z12, a third side Z13, and a fourth side Z14. The first side Z11 and the second side Z12 face in the direction of arrow A, and the third side Z13 and the fourth side Z14 face in the opposite direction to the direction of arrow A. The first region of the monitoring region Z1 is an area corresponding to the third side Z13 and the fourth side Z14.
[0104] As shown in Fig. 17, the searcher 56 reduces the first region of the monitoring region Z1 by matching the third side Z13 and the fourth side Z14 to the outer shape of the occupied region Z0. Note that, as shown in Fig. 18, if the first side Z11 faces in the direction of arrow A and the second side Z12, the third side Z13, and the fourth side Z14 face in the opposite direction to the direction of arrow A, the first region of the monitoring region Z1 becomes the region corresponding to the second side Z12, the third side Z13, and the fourth side Z14. In this case, the searcher 56 reduces the first region of the monitoring region Z1 by matching the second side Z12, the third side Z13, and the fourth side Z14 to the outer shape of the occupied region Z0.
[0105] In step S52, the searcher 56 determines whether the sensor 3 has detected an object in the reduced monitoring area Z1.
[0106] For example, as shown in Fig. 17, if there is no wall W in the reduced monitoring area Z1, the sensor 3 does not detect an object in the reduced monitoring area Z1, and therefore, in step S53, the searcher 56 determines that the mobile body 1 can move in parallel toward the target position. Thereafter, the processing of the processor 61 returns to the flowchart of Fig. 11.
[0107] On the other hand, if a wall W exists in the reduced monitoring area Z1, the sensor 3 detects an object in the reduced monitoring area Z1, and therefore, in step S54, the searcher 56 determines that the mobile body 1 cannot move parallel to the target position. Thereafter, the processing of the processor 61 returns to the flowchart of FIG. 11.
[0108] According to the above-described mobile body 100, when the mobile body main body 1 becomes stuck and unable to move due to the presence of an object in the monitoring area Z1, the control device 6 executes an escape operation for the mobile body main body 1 to move away from the object. As a result, when the mobile body main body 1 becomes stuck, the control device 6 can escape the mobile body main body 1 from the stuck state and deal with the stuck state of the mobile body main body 1.
[0109] The escape operation is a first escape operation in which the movable body 1 is translated in a direction away from the object. This allows the control device 6 to translate the movable body 1 in a direction away from the object, thereby allowing the movable body 1 to escape from the stuck state.
[0110] The control device 6 also reduces a first region of the monitoring area Z1 that is on the opposite side to the direction of movement of the mobile body 1, and determines whether or not escape of the mobile body 1 is possible by performing a first escape operation. If escape of the mobile body 1 is possible, the control device 6 causes the mobile body 1 to execute the first escape operation. This allows the control device 6 to reduce the first region of the monitoring area Z1, remove the object that is causing the mobile body 1 to become stuck from the monitoring area Z1, and determine whether or not a new object will enter the monitoring area Z1. If a new object does not enter the monitoring area Z1, the control device 6 determines that escape of the mobile body 1 is possible by performing the first escape operation.
[0111] Furthermore, when the mobile body 1 becomes stuck, the control device 6 stops the mobile body 1 for a predetermined time and then causes the mobile body 1 to execute an escape operation while the stuck state of the mobile body 1 continues. This allows the control device 6 to wait for a predetermined time until the object leaves the monitoring area Z1. If the object leaves the monitoring area Z1 within the predetermined time, the control device 6 will not needlessly calculate the escape operation.
[0112] Furthermore, the control device 6 expands the monitoring area Z1 when determining that the mobile body 1 remains stuck. As a result, the control device 6 determines that the mobile body 1 has completed escaping from the stuck state when no object is present in the expanded monitoring area Z1. By using the expanded monitoring area Z1, the control device 6 can reduce the likelihood of the mobile body 1 becoming stuck again immediately after completing escaping.
[0113] The mobile body 1 is a mobile robot that includes a robot arm 12. This allows the mobile body 1 to escape from a stuck state within a facility such as a store, hospital, or nursing home when moving within the facility.
[0114] 19 is a block diagram showing the configuration of a control system of a processor 61A (movement controller 68) of a control device 6A of a moving body 100A according to Modification 1. The control device 6A according to Modification 1 differs from the control device 6 according to the embodiment in the processing of the processor 61A. The following description will focus on the configuration of the control device 6A according to Modification 1 that differs from the control device 6 according to the embodiment.
[0115] The processor 61A of the control device 6A according to the first modification has, as functional blocks, a detector 55, a searcher 56, and an executor 57. The processor 61A may further have, as a functional block, a determiner 58. The detector 55 and the determiner 58 are the same as the detector 55 and the determiner 58 described in the embodiment, and therefore a description thereof will be omitted.
[0116] The searcher 56 searches for an escape action by which the mobile body 1 moves away from the object when the mobile body 1 becomes stuck. In other words, when the determiner 58 determines that the stuck state of the mobile body 1 continues, the searcher 56 searches for an escape action.
[0117] Specifically, the searcher 56 searches for a second escape operation in which the mobile body 1 rotates around its own axis so as to increase the distance between the mobile body 1 and the object when the mobile body 1 becomes stuck. Rotation of the mobile body 1 around its own axis refers to rotation of the mobile body 1 around a reference axis of the mobile body 1. The reference axis of the mobile body 1 is a vertical axis that overlaps the mobile body 1 in a planar view. In this example, the reference axis of the mobile body 1 coincides with the midpoint of the occupied area Z0 in a planar view. In other words, rotation of the mobile body 1 around its own axis is rotation around the midpoint of the occupied area Z0 in a planar view. Note that rotation of the mobile body 1 around its own axis may also be rotation around any point that overlaps the occupied area Z0 in a planar view.
[0118] In detail, the searcher 56 acquires distance information to the object based on the detection signal from the sensor 3, calculates a target attitude for the rotation of the mobile body 1 around its own axis that will be the farthest from the object based on the distance information, and determines whether the mobile body 1 can assume the target attitude by rotating around its own axis. If the searcher 56 determines that the mobile body 1 can assume the target attitude by rotating around its own axis, it searches for rotation around its own axis to the target attitude as an escape operation.
[0119] The searcher 56 also rotates the monitoring area Z1 around its own axis to correspond to the rotation of the mobile body 1 around its own axis, and determines whether or not the mobile body 1 can escape by the second escape operation. That is, the searcher 56 rotates the monitoring area Z1 around the reference axis of the mobile body 1, similar to the rotation of the mobile body 1 around its own axis. More specifically, when the sensor 3 does not detect an object in the monitoring area Z1 in a state in which the monitoring area Z1 has been rotated around its own axis to correspond to the target attitude, the searcher 56 determines that the mobile body 1 can rotate around its own axis toward the target attitude. When the sensor 3 detects an object in the monitoring area Z1, the searcher 56 determines that the mobile body 1 cannot rotate around its own axis toward the target attitude.
[0120] The executor 57 causes the mobile body 1 to execute an escape action. Specifically, when escape of the mobile body 1 is possible through the second escape action, the executor 57 causes the mobile body 1 to execute the second escape action. More specifically, the executor 57 rotates the mobile body 1 about its own axis to the target attitude. In this example, the executor 57 rotates the mobile body 1 about its own axis to the target attitude, with the midpoint of the occupied area Z0 in a plan view as the center.
[0121] Next, a description will be given of a stuck state escape process (an example of a control method) by the processor 61A of the control device 6A using a flowchart. The stuck state escape process by the processor 61A is different from the stuck state escape process by the processor 61 of the embodiment in the content of the stuck state escape operation search process in step S15 of Fig. 9, but the other processes are the same. The following description will focus on the stuck state escape operation search process by the processor 61A (movement controller 68).
[0122] 20 is a flowchart of a subroutine for the stuck escape operation search process. First, in step S61, the searcher 56 performs a target attitude calculation process. Specifically, the searcher 56 acquires distance information from the object based on the detection signal from the sensor 3, and calculates a target attitude for the rotation of the mobile body 1 around its own axis that will be the farthest from the object based on the distance information.
[0123] If the searcher 56 cannot calculate the target attitude in step S62, the searcher 56 determines that the search for the escape operation has failed in step S66. After that, the processing of the processor 61A returns to the flowchart of FIG.
[0124] If the searcher 56 can calculate the target attitude in step S62, the searcher 56 performs an axial rotation confirmation process in step S63. Specifically, the searcher 56 determines whether the mobile body 1 can rotate around its own axis toward the target attitude.
[0125] If the searcher 56 determines in step S64 that rotation on its own axis is not possible, the searcher 56 determines in step S66 that the search for an escape operation has failed. After that, the processing of the processor 61A returns to the flowchart of FIG.
[0126] If the searcher 56 determines in step S64 that rotation on its own axis is possible, the searcher 56 determines in step S65 that the search for the escape operation has been successful. After that, the processing of the processor 61A returns to the flowchart of FIG.
[0127] 21 is a flowchart of a subroutine of the target attitude calculation process (step S61). First, in step S71, the searcher 56 calculates a candidate attitude that will be the farthest from the object by rotating the mobile body 1 counterclockwise (i.e., counterclockwise) about its own axis.
[0128] An example of a method for calculating the farthest candidate orientation in a counterclockwise rotation around its own axis will be described. Fig. 22 is a schematic plan view showing a stacked state of the mobile body 1. In Fig. 22, the sensor 3 detects a wall W in the monitoring area Z1, and the mobile body 1 is in a stacked state. The wall W is indicated by point cloud data.
[0129] First, the searcher 56 calculates the shortest distance between the first candidate orientation of the current mobile body 1 and the wall W. More specifically, the searcher 56 calculates the shortest distance between the contour of the occupied area Z0 and the wall W. The searcher 56 may also calculate the shortest distance between the contour of the monitored area Z1 and the wall W.
[0130] Next, as shown in Fig. 23, the searcher 56 rotates the first candidate orientation counterclockwise by a predetermined angle around its own axis to obtain a second candidate orientation. Specifically, the searcher 56 determines the second candidate orientation to be an orientation obtained by rotating a reference line B passing through the midpoint of the occupied area Z0 of the first candidate orientation shown in Fig. 22 counterclockwise by a predetermined angle around its own axis. The predetermined angle is, for example, 5° to 10°. The searcher 56 performs the rotation of the candidate orientation around its own axis in a calculation.
[0131] Next, the searcher 56 calculates the shortest distance between the second candidate orientation and the wall W. The searcher 56 compares the shortest distance of the first candidate orientation with the shortest distance of the second candidate orientation and selects the candidate orientation with the longest shortest distance. In this example, the shortest distance of the first candidate orientation is longer than the shortest distance of the second candidate orientation, so the searcher 56 selects the first candidate orientation.
[0132] Here, since the shortest distance to the subsequent second candidate attitude is smaller than the shortest distance to the previous first candidate attitude, the searcher 56 does not calculate the shortest distance to the subsequent third candidate attitude obtained by rotating the second candidate attitude counterclockwise around its own axis by a predetermined angle, and instead sets the previous first candidate attitude as the farthest candidate attitude.
[0133] In this way, the searcher 56 calculates the shortest distance among multiple candidate orientations while rotating the mobile body 1 counterclockwise around its own axis by a set angle from the reference line B of the first candidate orientation. The set angle is, for example, 90°, which is greater than a predetermined angle. The searcher 56 then selects the candidate orientation with the greatest shortest distance from among the multiple candidate orientations, and sets the selected candidate orientation as the farthest candidate orientation in the counterclockwise direction. In this example, the searcher 56 sets the first candidate orientation as the farthest candidate orientation in the counterclockwise direction.
[0134] In step S72, the searcher 56 calculates the candidate orientation that is the farthest from the object by rotating the mobile body 1 rightward (i.e., clockwise) around its own axis. This calculation is performed in the same manner as the method for calculating the farthest candidate orientation in the counterclockwise rotation around its own axis described above.
[0135] Specifically, as shown in Fig. 22 , the searcher 56 calculates the shortest distance between a first candidate orientation of the current mobile body 1 and the wall W. Next, as shown in Fig. 24 , the searcher 56 rotates the first candidate orientation clockwise around its own axis by a predetermined angle to obtain a second candidate orientation, and calculates the shortest distance between the second candidate orientation and the wall W.
[0136] Next, the searcher 56 compares the shortest distance of the first candidate orientation with the shortest distance of the second candidate orientation and selects the candidate orientation with the longest shortest distance. In this example, the shortest distance of the second candidate orientation is longer than the shortest distance of the first candidate orientation, so the searcher 56 selects the second candidate orientation.
[0137] 25 , the searcher 56 rotates the second candidate orientation clockwise around its own axis by a predetermined angle to obtain a third candidate orientation, and calculates the shortest distance between the third candidate orientation and the wall W. The searcher 56 then compares the shortest distance of the selected second candidate orientation with the shortest distance of the third candidate orientation, and selects the candidate orientation with the longest shortest distance. In this example, the shortest distance of the third candidate orientation is longer than the shortest distance of the second candidate orientation, so the searcher 56 selects the third candidate orientation.
[0138] 26 , the searcher 56 rotates the third candidate orientation clockwise around its own axis by a predetermined angle to set it as a fourth candidate orientation, and calculates the shortest distance between the fourth candidate orientation and the wall W. The searcher 56 then compares the shortest distance of the selected third candidate orientation with the shortest distance of the fourth candidate orientation, and selects the candidate orientation with the longest shortest distance. In this example, the shortest distance of the third candidate orientation is longer than the shortest distance of the fourth candidate orientation, so the searcher 56 selects the third candidate orientation.
[0139] Here, since the shortest distance to the subsequent fourth candidate posture is smaller than the shortest distance to the previous third candidate posture, the searcher 56 does not calculate the shortest distance to the subsequent fifth candidate posture obtained by rotating the fourth candidate posture clockwise around its own axis by a predetermined angle, and instead sets the previous third candidate posture as the farthest candidate posture.
[0140] In this way, the searcher 56 calculates the shortest distance among the multiple candidate orientations while the mobile body 1 is rotated clockwise around its own axis by a set angle from the reference line B of the first candidate orientation. The searcher 56 then selects the candidate orientation with the greatest shortest distance from the multiple candidate orientations, and sets the selected candidate orientation as the farthest candidate orientation in the clockwise direction. In this example, the searcher 56 sets the third candidate orientation as the farthest candidate orientation in the clockwise direction.
[0141] In step S73, the searcher 56 compares the shortest distance to the farthest candidate orientation in the counterclockwise direction with the shortest distance to the farthest candidate orientation in the clockwise direction, and selects the larger candidate orientation. The searcher 56 sets the larger candidate orientation as the overall farthest candidate orientation. In this example, the searcher 56 sets the third candidate orientation in the clockwise direction shown in FIG. 25 as the overall farthest candidate orientation.
[0142] In step S74, the searcher 56 determines whether the farthest candidate overall orientation is the current orientation of the mobile body 1. Specifically, the searcher 56 determines whether the occupied area Z0 in the farthest candidate orientation matches the occupied area Z0 in the current orientation. In this example, the searcher 56 determines whether the farthest candidate overall orientation shown in FIG. 25 matches the current orientation shown in FIG. 22.
[0143] If the searcher 56 determines in step S74 that the farthest candidate orientation of all is not the current orientation, the searcher 56 sets the farthest candidate orientation of all as the target orientation in step S75 and determines that the calculation of the target orientation has been successful. After that, the processing of the processor 61A returns to the flowchart of FIG. 20.
[0144] If the searcher 56 determines in step S74 that the farthest candidate orientation of the whole is the current orientation, then in step S76 the searcher 56 determines that the farthest candidate orientation of the whole is not the target orientation and determines that calculation of the target orientation has failed. After that, the processing of the processor 61A returns to the flowchart of FIG. 20.
[0145] In this example, in step S74, the searcher 56 determines that the overall farthest candidate posture shown in FIG. 25 is not the current posture shown in FIG. 22, and in step S75, the searcher 56 sets the overall farthest candidate posture as the target posture and determines that the calculation of the target posture has been successful.
[0146] 27 is a flowchart of a subroutine of the process of confirming rotation about its own axis (step S63). First, in step S81, the searcher 56 rotates the monitoring area Z1 about its own axis so that it corresponds to the target attitude.
[0147] Fig. 28 is a schematic diagram illustrating a method for rotating the monitoring area Z1 around its own axis so that it corresponds to the target posture. In Fig. 28, the monitoring area Z1 and the occupied area Z0 corresponding to the current posture are indicated by solid lines, and the monitoring area Z1 and the occupied area Z0 corresponding to the target posture are indicated by two-dot chain lines. The current posture corresponds to the current posture shown in Fig. 22, and the target posture corresponds to the overall farthest candidate posture shown in Fig. 25.
[0148] 28, the searcher 56 rotates the monitoring area Z1 of the current attitude around its own axis so that it corresponds to the occupied area Z0 of the target attitude. In other words, the searcher 56 rotates the monitoring area Z1 of the current attitude around its own axis so that it coincides with the monitoring area Z1 of the target attitude. The searcher 56 performs the rotation of the monitoring area Z1 around its own axis in a calculation.
[0149] In step S82, the searcher 56 determines whether or not the sensor 3 has detected an object in the monitoring area Z1 rotated about its own axis.
[0150] For example, as shown in Fig. 28, if there is no wall W in the monitoring area Z1 rotated around its own axis, as indicated by the two-dot chain line, the sensor 3 does not detect an object in the monitoring area Z1 rotated around its own axis, and therefore in step S83 the searcher 56 determines that the mobile body 1 can rotate around its own axis toward the target attitude. After that, the processing of the processor 61A returns to the flowchart of Fig. 20.
[0151] On the other hand, if a wall W exists in the monitoring area Z1 rotated around its own axis, as indicated by the two-dot chain line, the sensor 3 detects an object in the monitoring area Z1 rotated around its own axis, and therefore in step S84 the searcher 56 determines that the mobile body 1 cannot rotate around its own axis toward the target attitude. After that, the processing of the processor 61A returns to the flowchart of FIG. 20.
[0152] According to the control device 6A of the first modification, the escape operation is a second escape operation in which the mobile body 1 is rotated about its own axis so as to increase the distance between the mobile body 1 and the object. As a result, the control device 6A rotates the mobile body 1 about its own axis so as to increase the distance between the mobile body 1 and the object, thereby allowing the mobile body 1 to escape from the stuck state.
[0153] Furthermore, the control device 6A rotates the monitoring area Z1 around its own axis in accordance with the rotation of the mobile body 1 around its own axis, determines whether or not escape of the mobile body 1 is possible through the second escape operation, and if escape of the mobile body 1 is possible through the second escape operation, causes the mobile body 1 to execute the second escape operation. This allows the control device 6A to rotate the monitoring area Z1 around its own axis to remove the object that is causing the mobile body 1 to become stuck from the monitoring area Z1, and determines whether or not a new object will enter the monitoring area Z1. If a new object does not enter the monitoring area Z1, the control device 6A determines that escape of the mobile body 1 is possible through the second escape operation.
[0154] Although the description of other configurations, actions, and effects will be omitted, the description of the control device 6 according to the embodiment can be used to describe the control device 6A according to the first modified example.
[0155] 29 is a block diagram showing the configuration of a control system of a processor 61B (movement controller 68) of a control device 6B of a moving body 100B according to Modification 2. The control device 6B according to Modification 2 differs from the control device 6 according to the embodiment in the processing of the processor 61B. The following description will focus on the configuration of the control device 6B according to Modification 2 that differs from the control device 6 according to the embodiment.
[0156] The processor 61B of the control device 6B according to the second modification has, as functional blocks, a detector 55, a searcher 56, and an executor 57. The processor 61B may further have, as a functional block, a determiner 58. The detector 55 and the determiner 58 are the same as the detector 55 and the determiner 58 described in the embodiment, and therefore a description thereof will be omitted.
[0157] The searcher 56 searches for an escape action by which the mobile body 1 moves away from the object when the mobile body 1 becomes stuck. In other words, when the determiner 58 determines that the stuck state of the mobile body 1 continues, the searcher 56 searches for an escape action.
[0158] Specifically, the searcher 56 determines whether or not escape of the mobile body 1 is possible by a first escape action that translates the mobile body 1 in a direction away from the object. If the searcher 56 determines that escape of the mobile body 1 is possible by the first escape action, the searcher 56 searches for the first escape action as an escape action.
[0159] When it is determined that escape of the mobile body 1 is impossible by the first escape operation, the searcher 56 determines whether escape of the mobile body 1 is possible by a second escape operation in which the mobile body 1 rotates about its own axis so as to increase the distance between the mobile body 1 and the object. When it is determined that escape of the mobile body 1 is possible by the second escape operation, the searcher 56 searches for the second escape operation as the escape operation.
[0160] The executor 57 causes the mobile body 1 to execute an escape operation. Specifically, when the mobile body 1 can escape by the first escape operation, the executor 57 causes the mobile body 1 to execute the first escape operation. When the mobile body 1 cannot escape by the first escape operation but can escape by the second escape operation, the executor 57 causes the mobile body 1 to execute the second escape operation.
[0161] Next, a description will be given of a stuck state escape process (an example of a control method) by the processor 61B (movement controller 68) of the control device 6B using a flowchart. The stuck state escape process by the processor 61B is different from the stuck state escape process by the processor 61 of the embodiment in the content of the stuck state escape operation search process in step S15 of Fig. 9, but the other processes are the same. The following description will focus on the stuck state escape operation search process by the processor 61B.
[0162] Figure 30 is a flowchart of a subroutine for the stuck escape operation search process. Steps S91 to S95 in Figure 30 are the same as steps S31 to S35 in Figure 11. Steps S101 to S106 in Figure 30 are the same as steps S61 to S66 in Figure 20. Steps S91 to S95 and steps S101 to S106 will be briefly described below.
[0163] First, in step S91, the searcher 56 performs a target position calculation process. If the searcher 56 cannot calculate the target position in step S92, the searcher 56 performs a target attitude calculation process in step S101.
[0164] If the searcher 56 can calculate the target position in step S92, the searcher 56 performs a parallel movement confirmation process in step S93. If the searcher 56 determines in step S94 that parallel movement is not possible, the searcher 56 performs a target attitude calculation process in step S101.
[0165] If the searcher 56 determines in step S94 that translation is possible, the searcher 56 determines in step S95 that the search for the escape action has been successful. After that, the processing of the processor 61B returns to the flowchart of FIG.
[0166] When the searcher 56 performs the target attitude calculation process in step S101, if the searcher 56 cannot calculate the target attitude in step S102, the searcher 56 determines that the search for the escape operation has failed in step S106. After that, the processing of the processor 61B returns to the flowchart of FIG.
[0167] If the searcher 56 can calculate the target attitude in step S102, the searcher 56 performs a process of confirming rotation on its own axis in step S103. If the searcher 56 determines in step S104 that rotation on its own axis is not possible, the searcher 56 determines in step S106 that the search for an escape operation has failed. Thereafter, the process of the processor 61B returns to the flowchart of FIG. 9.
[0168] If it is determined in step S104 that the searcher 56 is capable of rotating around its own axis, the searcher 56 determines in step S105 that the search for the escape operation has been successful. After that, the processing of the processor 61B returns to the flowchart of FIG.
[0169] According to the control device 6B of the second modification, the control device 6B determines whether or not escape of the mobile body 1 is possible by the first escape operation, and if escape of the mobile body 1 is possible by the first escape operation, causes the mobile body 1 to execute the first escape operation, and if escape of the mobile body 1 is not possible by the first escape operation, determines whether or not escape of the mobile body 1 is possible by the second escape operation, and if escape of the mobile body 1 is possible by the second escape operation, causes the mobile body 1 to execute the second escape operation. In this way, when the control device 6B cannot translate the mobile body 1, it can rotate the mobile body 1 about its own axis to cause the mobile body 1 to escape from the stuck state.
[0170] Although the description of other configurations, actions, and effects will be omitted, the description of the control device 6 according to the embodiment and the description of the control device 6A according to variant example 1 can be used to describe the control device 6B according to variant example 2.
[0171] <<Modification 3>> The control device 6 may control the robot arm 12 when performing autonomous movement. Fig. 31 is a functional block diagram showing the configuration of a control system of the processor 61 according to Modification 3. The processor 61 may function as an arm controller 611 that controls the robot arm 12.
[0172] The arm controller 611 operates the robot arm 12. For example, the arm controller 611 transforms the robot arm 12 into a target shape. The arm controller 611 may maintain the robot arm 12 in the target shape. The arm controller 611 may operate the robot arm 12 by continuously changing the shape of the robot arm 12.
[0173] The arm controller 611 generates command values according to a target shape of the robot arm 12. Based on the command values, the arm controller 611 calculates command operation amounts for each of the multiple motors 12a. For example, the operation amounts are the rotational speed or torque of the motors.
[0174] The arm controller 611 may maintain the robot arm 12 in a fixed shape when the moving body 100 is moving, and may operate the robot arm 12 when the robot arm 12 is performing work.
[0175] For example, when the moving body 100 is traveling, the arm controller 611 maintains the robot arm 12 in a traveling shape. In other words, when the moving body 100 is traveling, the arm controller 611 fixes the shape of the robot arm 12 and prohibits the robot arm 12 from moving.
[0176] Fig. 32 is a side view of the mobile body 1 when the robot arm 12 is in the running shape. Fig. 33 is a plan view of the mobile body 1 when the robot arm 12 is in the running shape.
[0177] For example, the robot arm 12 in the running configuration is positioned at a relatively high position. For example, the robot arm 12 in the running configuration is bent at an intermediate joint between the shoulder joint and the wrist joint, for example, the fourth joint J4, with the portion between the base 11 and the intermediate joint extending diagonally downward and rearward from the base 11, and the portion between the intermediate joint and the wrist joint extending forward from the intermediate joint. That is, the robot arm 12 in the running configuration has the intermediate joint pulled rearward and bent at the intermediate joint. As a result, the portion of the robot arm 12 closer to the hand than the intermediate joint is positioned at a relatively high position. Furthermore, the hand of the robot arm 12 is positioned relatively rearward.
[0178] The robot arm 12 in the traveling configuration is positioned higher than the first sensor 3A of the mobile body 1. The detection range of the first sensor 3A extends three-dimensionally from the first sensor 3A. The space above the first sensor 3A is included in the detection range of the first sensor 3A. Because the robot arm 12 is positioned above the first sensor 3A, it may block part of the detection range of the first sensor 3A. The detection results of the portion of the first sensor 3A that corresponds to the robot arm 12 are treated as invalid. The higher the position of the robot arm 12, the farther the robot arm 12 is from the first sensor 3A. The farther the robot arm 12 is from the first sensor 3A, the smaller the area of the detection range of the first sensor 3A that is blocked by the robot arm 12 tends to be. Therefore, in the traveling configuration, the detection range of the first sensor 3A is relatively large.
[0179] Furthermore, the robot arm 12 in the traveling configuration has a relatively small forward projection amount from the base 11. By reducing the forward projection amount of the robot arm 12, the detection range of the first sensor 3A is expanded diagonally upward and forward from the first sensor 3A.
[0180] The widthwise size of the overall shape of the running-shaped robot arm 12 in a plan view is relatively small. For example, in the running shape, the second link L2 is located at the outermost position in the widthwise direction. Of the multiple links L, the links other than the second link L2 are located more inward in the widthwise direction than the second link L2. By making the widthwise size of the overall shape of the running-shaped robot arm 12 in a plan view relatively small, the possibility of interference between the robot arm 12 and other objects located in the widthwise direction during running can be reduced. Note that the running-shaped robot arm 12 may be configured such that the first link L1 and the second link L2 are positioned forward of the rotation axis of the first joint J1 by rotating the first link L1 forward about the rotation axis of the first joint J1. This further reduces the widthwise size of the second links L2 of the two robot arms, i.e., the widthwise size of the overall shape of the robot arm 12 in a plan view.
[0181] The overall shape of the robot arm 12 in the traveling configuration in a plan view is contained within the inside of the carriage 10 in the front-to-rear direction, which reduces the possibility of interference between the robot arm 12 and other objects located in the front-to-rear direction when traveling.
[0182] In addition, the shapes of the two robot arms 12 in terms of their running configurations do not have to be completely identical. That is, the shapes of the two robot arms 12 may be slightly different. For example, the height of the tip of one robot arm 12 may be different from the height of the tip of the other robot arm 12. The rotation angle of the seventh joint J7 of one robot arm 12 may be different from the rotation angle of the seventh joint J7 of the other robot arm 12.
[0183] For example, when the robot arm 12 is performing work, the arm controller 611 operates the robot arm 12. In other words, when the robot arm 12 is performing work, the arm controller 611 permits the operation of the robot arm 12 and freely operates the robot arm 12. For example, after the mobile body 1 has reached its destination, the arm controller 611 operates the robot arm 12 to perform work by the robot arm 12.
[0184] Other Embodiments As described above, the above-described embodiments have been described as examples of the technology disclosed in the present application. However, the technology disclosed herein is not limited to these embodiments and can be applied to embodiments in which modifications, substitutions, additions, omissions, etc. are made as appropriate. Furthermore, the components described in the above-described embodiments can be combined to create new embodiments. Furthermore, the components described in the accompanying drawings and detailed description may include not only components essential for solving the problem, but also components that are not essential for solving the problem in order to exemplify the technology. Therefore, the fact that these non-essential components are described in the accompanying drawings or detailed description should not be interpreted as immediately determining that these non-essential components are essential.
[0185] For example, the mobile body 1 is not limited to a robot, but may be a mobile device such as a drone, a ship, or a vehicle. The location where the mobile body 1 moves is not limited to a passageway, but may be a road or a waterway. The mobile body 1 does not need to include the robot arm 12. The base 11 may be rotatable relative to the carriage 10. The wheels 13 are not limited to omnidirectional wheels. If the wheels 13 are omnidirectional wheels, they may be omniwheels.
[0186] The sensor 3 is not limited to LiDAR. The sensor 3 may be a two-dimensional or three-dimensional camera. The sensor 3 may be a three-dimensional scanner. The sensor 3 may be disposed in a portion of the mobile body 1 other than the carriage 10. The number of sensors 3 is not limited to three. The number of sensors 3 may be one, two, four, or more. The scanning ranges of the measurement light of the first sensor 3A, the second sensor 3B, and the third sensor 3C described above are merely examples. For example, the first sensor 3A may scan the measurement light over an area including at least the area in front of the mobile body 1. The first sensor 3A may scan the measurement light over a range from the left rear to the right rear of the mobile body 1, including the area in front of the mobile body 1. Note that the second sensor 3B and the third sensor 3C may each scan the measurement light 360 degrees horizontally. The second sensor 3B may scan the measurement light over a predetermined range (not limited to 270 degrees) including the area in the left rear of the mobile body 1. For example, the second sensor 3B may cause the measurement light to scan 360 degrees horizontally. The third sensor 3C may cause the measurement light to scan a predetermined range (not limited to 270 degrees) including a region to the right rear of the mobile body 1. The third sensor 3C may cause the measurement light to scan 360 degrees horizontally.
[0187] In the embodiment, the outer shape of the occupied area Z0 is rectangular, but it may be, for example, a square, a polygon other than a rectangle, or an ellipse. In this case, the outer periphery of the monitored area Z1 follows the outer periphery of the occupied area Z0. In other words, the outer shape of the monitored area Z1 is similar to the outer shape of the occupied area Z0.
[0188] In the embodiment, the processor 61 of the control device 6 has the determiner 58 as a functional block, but the determiner 58 may be omitted.
[0189] In the embodiment, the control device 6 translates the mobile body 1 as the escape operation, but the mobile body 1 may be moved while changing the attitude of the mobile body 1. For example, the control device 6 may revolve the mobile body 1 around a point away from the mobile body 1 in a plan view.
[0190] In variant example 1, the control device 6A rotates the monitoring area Z1 around its own axis to correspond to the rotation of the mobile body 1 around its own axis, and determines whether the mobile body 1 can escape by the second escape operation. However, in addition to rotating the monitoring area Z1 around its own axis, the control device 6A may also reduce the monitoring area Z1 to determine whether the second escape operation is possible.
[0191] In Modification 2, the control device 6B determines whether or not escape of the mobile body main body 1 is possible by the first escape action, and then determines whether or not escape of the mobile body main body 1 is possible by the second escape action, but the control device may determine whether or not escape of the mobile body main body 1 is possible by the second escape action, and then determine whether or not escape of the mobile body main body 1 is possible by the first escape action. Specifically, the control device determines whether or not escape of the mobile body main body 1 is possible by the second escape action, which rotates the mobile body main body 1 about its own axis so as to increase the distance between the mobile body main body 1 and the object, and causes the mobile body main body 1 to execute the second escape action if escape of the mobile body main body 1 is possible by the second escape action, and determines whether or not escape of the mobile body main body 1 is possible by the first escape action, which moves the mobile body main body 1 in a parallel direction in a direction away from the object if escape of the mobile body main body 1 is possible by the second escape action, and causes the mobile body main body 1 to execute the first escape action if escape of the mobile body main body 1 is possible by the first escape action.
[0192] The flowcharts are merely examples. Steps in the flowcharts may be changed, replaced, added, omitted, etc. as appropriate. The order of steps in the flowcharts may also be changed, and serial processing may be performed in parallel. For example, in Modification 1, the order of steps S71 and S72 in FIG. 21 may be reversed, or they may be performed in parallel. In Modification 2, the order of steps S91 to S95 and steps S101 to S105 in FIG. 30 may be reversed.
[0193] The control method is not limited to the above-described control devices 6, 6A, and 6B, and can be realized by other devices. The control program is not limited to the above-described control devices 6, 6A, and 6B, and can be realized by other devices.
[0194] The functionality of the elements disclosed herein may be implemented using one or more circuits or processing circuits, including general-purpose processors, special-purpose processors, integrated circuits, ASICs (Application Specific Integrated Circuits), FPGAs (Field Programmable Gate Arrays), and / or conventional circuitry. The functionality of the elements disclosed herein may be implemented using one or more circuits or processing circuits, including combinations of general-purpose processors, special-purpose processors, integrated circuits, ASICs, FPGAs, and conventional circuitry. The one or more circuits or processing circuits may be programmed using one or more programs stored together or separately in one or more memories or otherwise configured to perform the disclosed functions. A processor is considered a processing circuit or circuitry because it includes transistors and other circuitry. A processor may also be a programmed processor that executes a program stored in a memory. In this disclosure, a circuit, unit, or means is hardware that performs the recited functions alone or in combination with each other, or hardware that is programmed to perform the recited functions alone or in combination with each other. The hardware may be any hardware disclosed herein that is programmed or configured to perform the recited functions.
[0195] A computer program containing computer instructions is stored in memory. The computer instructions provide logic and routines that enable hardware to perform the methods disclosed herein. The hardware includes, for example, processing circuits or circuitry. The computer program may be implemented in a known format in a computer-readable storage medium, a computer program product, a memory device, a recording medium such as a CD-ROM or DVD, and / or the memory of FPGAs or ASICs.
[0196] [Aspects] The above-described embodiments are specific examples of the following aspects.
[0197] (Mode 1) Mobile bodies 100, 100A, 100B each include a mobile body 1, a sensor 3 that detects an object present around the mobile body 1, and a control device 6, 6A, 6B that causes the mobile body 1 to move autonomously and stops the mobile body 1 when it determines, based on a detection signal from the sensor 3, that an object is present in a monitoring area Z1 set around the mobile body 1, and when the presence of the object in the monitoring area Z1 causes the mobile body 1 to become stuck and unable to move, the control device 6, 6A, 6B causes the mobile body 1 to perform an escape operation to move away from the object.
[0198] According to this configuration, when the mobile body 1 becomes stuck, the control devices 6, 6A, 6B can extricate the mobile body 1 from the stuck state, and can deal with the stuck state of the mobile body 1.
[0199] (Aspect 2) In the moving body 100 according to aspect 1, the escape operation is a first escape operation in which the moving body main body 1 is translated in a direction away from the object.
[0200] According to this configuration, the control device 6 can move the mobile body 1 in parallel in a direction away from the object, thereby allowing the mobile body 1 to escape from the stuck state.
[0201] (Aspect 3) In the mobile body 100 described in Aspect 1 or Aspect 2, the control device 6 reduces the area of the monitoring area Z1 on the opposite side to the direction of movement of the mobile body main body 1, determines whether or not the mobile body main body 1 can escape by the first escape operation, and if the mobile body main body 1 can escape by the first escape operation, causes the mobile body main body 1 to perform the first escape operation.
[0202] With this configuration, the control device 6 can reduce the first area of the monitoring area Z1, remove the object that may be causing the object to become stuck from the monitoring area Z1, and determine whether a new object is entering the monitoring area Z1.
[0203] (Aspect 4) In the moving body 100A according to any one of Aspects 1 to 3, the escape operation is a second escape operation in which the moving body main body 1 is rotated about its own axis so as to increase the distance between the moving body main body 1 and the object.
[0204] According to this configuration, the control device 6A can rotate the mobile body 1 about its own axis so as to increase the distance between the mobile body 1 and the object, thereby allowing the mobile body 1 to escape from the stuck state.
[0205] (Aspect 5) In the mobile body 100A described in any one of Aspects 1 to 4, the control device 6A rotates the monitoring area Z1 around its own axis to correspond to the rotation of the mobile body main body 1 around its own axis, determines whether or not the mobile body main body 1 can escape by the second escape operation, and if the mobile body main body 1 can escape by the second escape operation, causes the mobile body main body 1 to perform the second escape operation.
[0206] According to this configuration, the control device 6A can rotate the monitoring area Z1 on its own axis to remove an object that may be causing the object to become stuck from the monitoring area Z1, and determine whether a new object is entering the monitoring area Z1.
[0207] (Aspect 6) In the mobile body 100B described in any one of Aspects 1 to 5, the control device 6B determines whether or not the mobile body 1 can escape by a first escape operation that moves the mobile body main body 1 parallel in a direction away from the object, and if the mobile body main body 1 can escape by the first escape operation, causes the mobile body main body 1 to execute the first escape operation, and if the mobile body main body 1 cannot escape by the first escape operation, determines whether or not the mobile body main body 1 can escape by a second escape operation that rotates the mobile body main body 1 about its own axis so as to increase the distance between the mobile body main body 1 and the object, and if the mobile body main body 1 can escape by the second escape operation, causes the mobile body main body 1 to execute the second escape operation.
[0208] According to this configuration, when the control device 6B cannot move the mobile body 1 in parallel, it can rotate the mobile body 1 about its own axis to allow the mobile body 1 to escape from the stuck state.
[0209] (Aspect 7) In the mobile body 100, 100A, 100B described in any one of Aspects 1 to 6, when the mobile body main body 1 becomes stuck, the control device 6, 6A, 6B causes the mobile body main body 1 to perform the escape operation while the stuck state of the mobile body main body 1 continues after stopping the mobile body main body 1 for a predetermined time.
[0210] According to this configuration, the control devices 6, 6A, 6B can wait for a predetermined time until the object leaves the monitoring area Z1.
[0211] (Aspect 8) In the moving body 100, 100A, 100B according to any one of Aspects 1 to 7, the control device 6, 6A, 6B expands the monitoring area Z1 when determining that the moving body main body 1 continues to be stuck.
[0212] According to this configuration, when no object is present in the expanded monitoring area Z1, the control devices 6, 6A, 6B determine that the mobile body 1 has completed escaping from the stuck state. By using the expanded monitoring area Z1, the control devices 6, 6A, 6B can reduce the likelihood of the mobile body 1 becoming stuck again immediately after completing escaping.
[0213] (Aspect 9) In the moving body 100, 100A, 100B according to any one of Aspects 1 to 8, the moving body main body 1 includes a robot arm 12 and is a mobile robot.
[0214] According to this configuration, when the mobile body 1 moves within a facility such as a store, hospital, or nursing home, the mobile body 1 can be released from a stuck state within the facility.
[0215] (Mode 10) The control devices 6, 6A, 6B cause the mobile body 1 to move autonomously and stop the mobile body 1 when it is determined that an object is present in a monitoring area Z1 set around the mobile body 1, and are equipped with a detector 55 that detects whether the mobile body 1 is stuck and unable to move based on the presence of the object in the monitoring area Z1, a searcher 56 that searches for an escape action by which the mobile body 1 moves away from the object when the detector 55 detects that the mobile body 1 is stuck, and an executor 57 that causes the mobile body 1 to execute the escape action searched for by the searcher 56.
[0216] According to this configuration, when the mobile body 1 becomes stuck, the control devices 6, 6A, 6B can extricate the mobile body 1 from the stuck state, and can deal with the stuck state of the mobile body 1.
[0217] (Mode 11) A control method is a control method for making a mobile body 1 perform autonomous movement and for stopping the mobile body 1 when it is determined that an object is present in a monitoring area Z1 set around the mobile body 1, the control method comprising: detecting whether the mobile body 1 is in a stuck state in which it cannot move based on the presence of the object in the monitoring area Z1; if it is detected that the mobile body 1 is in a stuck state, searching for an escape operation for the mobile body 1 to move away from the object; and making the mobile body 1 execute the escape operation.
[0218] According to this configuration, when the mobile body 1 becomes stuck, the mobile body 1 can be released from the stuck state, and the stuck state of the mobile body 1 can be dealt with.
[0219] (Mode 12) The control program is a control program for causing the mobile body 1 to perform autonomous movement and for stopping the mobile body 1 when it is determined that an object is present in a monitoring area Z1 set around the mobile body 1. According to this configuration, which causes a computer to realize a function for detecting whether the mobile body 1 is in a stuck state where it cannot move based on the presence of the object in the monitoring area Z1, a function for searching for an escape operation for the mobile body 1 to move away from the object when it is detected that it is in a stuck state, and a function for causing the mobile body 1 to execute the escape operation, when the mobile body 1 becomes stuck, it is possible to cause the mobile body 1 to escape from the stuck state and deal with the stuck state of the mobile body 1.
[0220] REFERENCE SIGNS LIST 1 Mobile body 3 Sensor 6, 6A, 6B Control device 12 Robot arm 55 Detector 56 Searcher 57 Execution device 100, 100A, 100B Mobile body Z1 Monitoring area
Claims
1. A mobile body comprising: a mobile body; a sensor that detects objects present around the mobile body; and a control device that causes the mobile body to move autonomously and stops the mobile body when it determines, based on the detection signal of the sensor, that an object is present in a monitoring area set around the mobile body, wherein the control device causes the mobile body to perform an escape operation to move away from the object when the mobile body becomes stuck and unable to move due to the presence of the object in the monitoring area.
2. A moving body according to claim 1, wherein the escape action is a first escape action in which the main body of the moving body is translated in a direction away from the object.
3. A mobile body as described in claim 2, wherein the control device reduces the area of the monitoring area opposite to the direction of movement of the mobile body main body, determines whether or not the mobile body main body can escape by the first escape action, and, if the mobile body main body can escape by the first escape action, causes the mobile body main body to perform the first escape action.
4. A moving body according to claim 1, wherein the escape operation is a second escape operation in which the moving body rotates about its own axis so as to increase the distance between the moving body and the object.
5. A mobile body as described in claim 4, wherein the control device rotates the monitoring area on its own axis in accordance with the rotation of the mobile body on its own axis, determines whether or not the mobile body can escape by the second escape operation, and, if the mobile body can escape by the second escape operation, causes the mobile body to execute the second escape operation.
6. A mobile body as described in claim 1, wherein the control device determines whether or not escape of the mobile body main body is possible by a first escape action that moves the mobile body main body in a parallel direction away from the object, and if escape of the mobile body main body is possible by the first escape action, causes the mobile body main body to execute the first escape action; if escape of the mobile body main body is not possible by the first escape action, determines whether or not escape of the mobile body main body is possible by a second escape action that rotates the mobile body main body about its own axis so as to increase the distance between the mobile body main body and the object, and if escape of the mobile body is possible by the second escape action, causes the mobile body main body to execute the second escape action.
7. A mobile body as described in claim 1, wherein the control device, when the mobile body becomes stuck, causes the mobile body to execute the escape operation while the stuck state of the mobile body continues after stopping the mobile body for a predetermined period of time.
8. A mobile body according to claim 7, wherein the control device expands the monitoring area when determining that the main body of the mobile body remains stuck.
9. A mobile body according to any one of claims 1 to 8, wherein the mobile body main body includes a robot arm and is a mobile robot.
10. A control device that causes a mobile body to move autonomously and stops the mobile body when it determines that an object is present in a monitoring area set around the mobile body, comprising: a detector that detects whether the mobile body is stuck and unable to move due to the presence of the object in the monitoring area; a searcher that searches for an escape action by which the mobile body will move away from the object when the detector detects that the mobile body is stuck; and an executor that causes the mobile body to execute the escape action searched for by the searcher.
11. A control method for causing a mobile body to move autonomously and for stopping the mobile body when it is determined that an object is present in a monitoring area set around the mobile body, the control method comprising: detecting whether the mobile body is stuck and unable to move based on the presence of the object in the monitoring area; searching for an escape operation for the mobile body to move away from the object when it is detected that the mobile body is stuck; and causing the mobile body to execute the escape operation.
12. A control program for causing a mobile body to move autonomously and for stopping the mobile body when it is determined that an object is present in a monitoring area set around the mobile body, the control program having the following functions on a computer: a function for detecting whether the mobile body is stuck and unable to move based on the presence of the object in the monitoring area; a function for searching for an escape operation for the mobile body to move away from the object when it is detected that the mobile body is stuck; and a function for causing the mobile body to execute the escape operation.
Citation Information
Patent Citations
Mobile robot controller
JP1993061539A
Control method for cleaning robot
JP1997206258A
Obstacle avoiding controller for automatic traveling vehicle
JP1998078823A
Autonomous traveling control device, autonomous traveling control method, and self-propelling vehicle
JP2010079698A
Controller, program, moving body, and moving body control method
JP2022144387A