Mobile body, method for controlling mobile body, and program for controlling mobile body

A mobile body switches between low and high accuracy self-position estimations based on distance to the destination, addressing the trade-off between accuracy and computational load, ensuring precise navigation and task execution.

WO2026034140A1PCT designated stage Publication Date: 2026-02-12KAWASAKI JUKOGYO KK
View PDF 4 Cites 0 Cited by

Patent Information

Application Number
PCT/JP2025/025384
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Priority Date
2024-08-06
Filing Date
2025-07-15
Publication Date
2026-02-12

AI Technical Summary

Technical Problem

Existing autonomously moving mobile bodies face a trade-off between improving self-location estimation accuracy and reducing computational load, as higher accuracy often increases processing demands.

Method used

The mobile body switches between two types of self-position estimation methods based on distance to the destination: a robust, lower accuracy method for longer distances and a higher accuracy method for closer distances, reducing computational load while maintaining estimation accuracy, especially near the destination.

Benefits of technology

This approach enhances self-location estimation accuracy and reduces computational load, enabling precise navigation and task execution, such as object handling, by optimizing estimation methods based on proximity to the destination.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure JP2025025384_12022026_PF_FP_ABST
    Figure JP2025025384_12022026_PF_FP_ABST
Patent Text Reader

Abstract

A mobile body (100) comprises: a mobile body main body (1); and a control device (6) that causes the mobile body main body (1) to execute autonomous movement while estimating a localized position of the mobile body main body (1). The control device (6) causes the mobile body main body (1) to execute first autonomous movement in a first section in which the distance to a destination is outside a prescribed changeover range (Q), and causes the mobile body main body (1) to execute second autonomous movement different from the first autonomous movement in a second section in which the distance to the destination is inside the changeover range (Q). In the first autonomous movement, the control device (6) estimates a localized position of the mobile body main body (1) by means of first localized position estimation. In the second autonomous movement, the control device (6) estimates a localized position of the mobile body main body 1 by means of second localized position estimation that is of higher estimation accuracy than the first localized position estimation.
Need to check novelty before this filing date? Find Prior Art

Description

MOBILE BODY, MOBILE BODY CONTROL METHOD, AND MOBILE BODY CONTROL PROGRAM

[0001] The technology disclosed herein relates to a mobile object, a method for controlling a mobile object, and a program for controlling a mobile object.

[0002] 2. Description of the Related Art Conventionally, autonomously moving mobile bodies have been known. For example, Patent Literature 1 discloses a mobile body that moves autonomously while estimating its own position.

[0003] JP 2017-45447 A

[0004] In the mobile object described above, the accuracy of self-location estimation affects the accuracy of autonomous movement. However, improving the accuracy of self-location estimation increases the computational load.

[0005] The technology disclosed herein has been made in consideration of the above points, and its purpose is to achieve both improved estimation accuracy and reduced computational load in self-location estimation.

[0006] The mobile body of the present disclosure comprises a mobile body main body and a control device that causes the mobile body main body to perform autonomous movement while estimating the self-position of the mobile body main body, wherein the control device causes the mobile body main body to perform a first autonomous movement in a first section where the distance to the destination is outside a predetermined switching range, and causes the mobile body main body to perform a second autonomous movement different from the first autonomous movement in a second section where the distance to the destination is within the switching range, wherein in the first autonomous movement, the control device estimates the self-position of the mobile body main body using a first self-position estimation, and in the second autonomous movement, the control device estimates the self-position of the mobile body main body using a second self-position estimation that has higher estimation accuracy than the first self-position estimation.

[0007] The method for controlling a moving body disclosed herein is a method for controlling a moving body that causes the moving body to perform autonomous movement while estimating the self-position of the moving body, and includes causing the moving body to perform a first autonomous movement in a first section where the distance to a destination is outside a predetermined switching range, and causing the moving body to perform a second autonomous movement different from the first autonomous movement in a second section where the distance to the destination is within the switching range, wherein when causing the moving body to perform the first autonomous movement, the self-position of the moving body is estimated by a first self-position estimation, and when causing the moving body to perform the second autonomous movement, the self-position of the moving body is estimated by a second self-position estimation that has higher estimation accuracy than the first self-position estimation.

[0008] The control program for a moving body disclosed herein is a control program for a moving body for causing the moving body to perform autonomous movement while estimating the self-position of the moving body, and causes a computer to realize a function for causing the moving body to perform a first autonomous movement in a first section where the distance to the destination is outside a predetermined switching range, and a function for causing the moving body to perform a second autonomous movement different from the first autonomous movement in a second section where the distance to the destination is within the switching range, wherein the function for causing the first autonomous movement estimates the self-position of the moving body using a first self-position estimation, and the function for causing the second autonomous movement estimates the self-position of the moving body using a second self-position estimation that has higher estimation accuracy than the first self-position estimation.

[0009] According to the moving body, it is possible to improve the estimation accuracy and reduce the calculation load in self-position estimation.

[0010] According to the method for controlling a moving body, it is possible to improve the estimation accuracy and reduce the calculation load in self-position estimation.

[0011] According to the control program for a moving body, it is possible to improve the estimation accuracy and reduce the calculation load in self-position estimation.

[0012] FIG. 1 is a perspective view of a moving body. FIG. 2 is a schematic diagram showing the detection range of a sensor. FIG. 3 is a diagram showing the hardware configuration of a control device. FIG. 4 is a functional block diagram showing the configuration of a control system of a processor. FIG. 5 is a schematic diagram explaining switching of autonomous movement. FIG. 6 is a flowchart of a first autonomous movement of a moving body. FIG. 7 is a flowchart of a second autonomous movement of a moving body. FIG. 8 is a functional block diagram showing the configuration of a control system of a processor according to a modified example. FIG. 9 is a side view of a moving body main body when the robot arm is in a running shape. FIG. 10 is a plan view of a moving body main body when the robot arm is in a running shape. FIG. 11 is a side view of a moving body according to a modified example.

[0013] 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.

[0014] 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.

[0015] 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.

[0016] 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.

[0017] 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.

[0018] 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.

[0019] 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.

[0020] 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.

[0021] 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 may not be attached to the tip of the other robot arm 12.

[0022] 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.

[0023] 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 .

[0024] 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.

[0025] 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.

[0026] 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.

[0027] 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.

[0028] 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.

[0029] 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.

[0030] 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.

[0031] 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.

[0032] 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.

[0033] 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.

[0034] 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).

[0035] 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 flight time 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 flight time. 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.

[0036] In this example, the mobile body 100 is equipped with multiple sensors 3. FIG. 2 is a schematic diagram showing the detection range of the sensor 3. FIG. 2 is a plan view of the mobile body 100, omitting the robot arm 12 and the like. The mobile body 100 may be equipped with 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 arranged on the carriage 10. The first sensor 3A is arranged in the front of the carriage 10. For example, the first sensor 3A is arranged 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.

[0037] 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.

[0038] 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.

[0039] 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."

[0040] 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.

[0041] 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.

[0042] 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.

[0043] 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.

[0044] 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.

[0045] 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.

[0046] 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 is moved by manual operation by the user.

[0047] 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.

[0048] 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.

[0049] 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.

[0050] 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.

[0051] 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.

[0052] 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.

[0053] 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.

[0054] 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.

[0055] 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.

[0056] Next, the autonomous movement of the mobile body 100 will be described in more detail. In this example, the mobile body 100 switches the autonomous movement method depending on the distance to the destination. FIG. 5 is a schematic diagram illustrating switching of autonomous movement. The control device 6 causes the mobile body main body 1 to perform a first autonomous movement in a first section S1 where the distance to the destination is outside a predetermined switching range Q, and causes the mobile body main body 1 to perform a second autonomous movement different from the first autonomous movement in a second section S2 where the distance to the destination is within the switching range Q.

[0057] 4, the processor 61 also functions as a determiner 610 that determines switching between the first autonomous movement and the second autonomous movement. Furthermore, the state estimator 64 includes a first state estimator 641 that performs a first self-location estimation, and a second state estimator 642 that performs a second self-location estimation that is different from the first self-location estimation.

[0058] In the first autonomous movement, the first state estimator 641 estimates the self-position of the mobile body 1 by first self-position estimation. The control device 6 executes a route plan for the mobile body 1 based on the self-position estimated by the first self-position estimation, and moves the mobile body 1 based on the route plan.

[0059] The first self-localization estimation has lower estimation accuracy but higher robustness than the second self-localization estimation. Here, robustness refers to tolerance for uncertainty in map information, deviations between the map information and the actual environment, and external disturbances. For example, there may be deviations between the actual environment and a three-dimensional map generated in advance. Alternatively, if the wheels 13 slip due to a bump in the road or the like, a deviation occurs between the amount of movement of the mobile body 1 estimated from the encoder 13b and the actual amount of movement of the mobile body 1. Because the first self-localization estimation is highly robust, it is possible to estimate the self-localization of the mobile body 1 even if such a deviation occurs.

[0060] For example, the first self-localization is Monte Carlo Localization (MCL) or Adaptive Monte Carlo Localization (AMCL). For example, in Monte Carlo Localization, the first state estimator 641 performs position estimation using a particle filter. The first state estimator 641 generates a plurality of particles around the mobile body 1, calculates the likelihood of each particle, and performs resampling based on the likelihood. The first state estimator 641 estimates the position and orientation of the mobile body 1 based on the positions and orientations of particles with high likelihood.

[0061] The first self-location estimation is performed in the first section S1 outside the switching range Q, i.e., in a section relatively far from the destination, so autonomous movement can be achieved even if the estimation accuracy is lower than when the vehicle is close to the destination. Therefore, the first self-location estimation can reduce the computational load by suppressing the estimation accuracy. In other words, the computational load of the first self-location estimation is smaller than that of the second self-location estimation.

[0062] In the first autonomous movement, the path generator 66 executes a path plan based on the estimated position of the mobile body 1, the trajectory generator 67 generates a trajectory based on the generated path, and the movement controller 68 moves the mobile body 1 according to the generated trajectory. The path generator 66 executes the path plan based on a two-dimensional map. The map generator 65 detects objects in the environment based on the detection results of the sensor 3 during autonomous movement and updates the two-dimensional map. Therefore, even if an object that does not exist in the pre-generated map information is present in the actual environment, the path generator 66 generates a path that avoids the object.

[0063] In the first autonomous movement, by executing a highly robust first self-location estimation, it is possible to estimate the self-location while tolerating disturbances and deviations between the map information and the actual environment. In addition, in the first autonomous movement, the computational load of self-location estimation can be reduced, making it possible to move based on a route plan. By executing the route plan, a route that avoids objects not included in the map information in advance is generated. In this way, the first autonomous movement makes it possible for the mobile body 1 to move while avoiding objects while dealing with deviations between the map information and the actual environment, etc.

[0064] In the second autonomous movement, the second state estimator 642 estimates the self-position of the mobile body 1 by the second self-position estimation, which has higher estimation accuracy than the first self-position estimation. In the second autonomous movement, the control device 6 moves the mobile body 1 to the destination based on the self-position estimated by the second self-position estimation, without performing route planning.

[0065] For example, the second self-localization estimation may be ICP (Iterative Closest Point) scan matching or NDT (Normal Distributions Transform) scan matching. The second self-localization estimation may further combine ICP scan matching or NDT scan matching with a Kalman filter. For example, in ICP scan matching, the closest points between the point cloud data of the 3D map and the point cloud data detected by the sensor 3 are considered to be corresponding points, and the self-localization is estimated so as to minimize the distance between the corresponding points. While the second self-localization estimation does not have the same high robustness as the first self-localization estimation, it has higher estimation accuracy than the first self-localization estimation. However, the computational load of the second self-localization estimation may be greater than that of the first self-localization estimation.

[0066] In the second autonomous movement, the control device 6 does not execute a path plan. The control device 6 moves the mobile body 1 linearly toward the destination. Specifically, the second state estimator 642 does not input the estimated self-position to the path generator 66, but inputs it to the trajectory generator 67. The path generator 66 does not function in the second autonomous movement. The trajectory generator 67 reads the destination from the memory 62. The trajectory generator 67 performs P control (proportional control) based on the difference between the destination and the self-position, and calculates a command speed so as to align the mobile body 1 with the destination. As a result, the mobile body 1 moves approximately linearly to the destination.

[0067] At this time, the trajectory generator 67 may adjust the attitude of the mobile body 1 to a target attitude of the mobile body 1 at the destination before starting to move the mobile body 1 to the destination. Since the wheels 13 are omnidirectional wheels, the mobile body 1 moves in parallel toward the destination while maintaining the adjusted attitude.

[0068] The switching range Q in which the second autonomous movement is performed is near the destination, and estimation accuracy is required for self-location estimation rather than robustness. In the second autonomous movement, the second state estimator performs a relatively accurate second self-location estimation, thereby estimating the self-location with high accuracy. As a result, the accuracy of the mobile body 1 reaching the destination is also improved. In particular, the mobile body 1 has a robot arm 12, and work may be performed by the robot arm 12 at the destination. High position accuracy of the mobile body 1 at the destination allows the robot arm 12 to perform the work appropriately. Furthermore, the switching range Q is near the destination, and there is a low possibility that an object may exist between the mobile body 1 and the destination. In other words, within the switching range Q, there is a low possibility of interference between the mobile body 1 and an object, even without path planning. Because path planning is not required, the second self-location estimation can be performed even if the computational load of the second self-location estimation is high.

[0069] The control device 6 transitions from the first autonomous movement to the second autonomous movement when a first transition condition is satisfied. The first transition condition is an example of a transition condition. Specifically, the determiner 610 determines the transition from the first autonomous movement to the second autonomous movement. The first transition condition is that the mobile body 1 enters the switching range Q and the estimation accuracy of the second self-localization exceeds a predetermined standard. Therefore, the first autonomous movement is not switched to the second autonomous movement simply because the mobile body 1 enters the switching range Q. For example, even if a state in which the estimation error of the first self-localization is large is switched to the second self-localization, there is a risk that the estimation by the second self-localization will not be performed appropriately. If the estimation accuracy of the second self-localization is low even when the mobile body 1 enters the switching range Q, the first self-localization is continued. As the mobile body 1 continues moving using the first self-localization, the estimation accuracy of the second self-localization may eventually improve. Then, when the estimation accuracy of the second self-location estimation exceeds a reference value, the first autonomous movement is switched to the second autonomous movement.

[0070] In detail, the determiner 610 receives the self-position estimated from the first state estimator 641. The determiner 610 determines whether or not the mobile body 1 is located within the switching range Q based on the self-position obtained by the first self-position estimation. If the mobile body 1 is located within the switching range Q, the determiner 610 causes the second state estimator 642 to perform a second self-position estimation, and determines whether or not the estimation accuracy of the self-position obtained by the second self-position estimation exceeds a predetermined standard. The determiner 610 evaluates the estimation accuracy of the second self-position estimation based on the likelihood of the estimation result of the second self-position estimation.

[0071] In this example, the determiner 610 calculates the likelihood as follows. The determiner 610 positions the point cloud data detected by the sensor 3 (hereinafter referred to as "detected point cloud data") at the position estimated by the second self-localization, and searches for points in the point cloud data of the three-dimensional map that correspond to each point in the detected point cloud data (hereinafter referred to as "corresponding points"). The determiner 610 calculates a plane (hereinafter referred to as a "corresponding plane") from the corresponding points and multiple points surrounding them in the point cloud data of the three-dimensional map. The determiner 610 calculates the distance between a point in the detected point cloud data and the corresponding plane of that point. The determiner 610 calculates the distance between all points in the detected point cloud data and the corresponding plane. The determiner 610 determines points in the detected point cloud data whose calculated distance is equal to or less than a predetermined threshold as matching points. The determiner 610 calculates the likelihood as the ratio of the number of matching points to the total number of points in the detected point cloud data. In other words, the likelihood in this example represents the degree of coincidence between each point of the detected point cloud data and the plane corresponding to that point in the 3D map. Note that the likelihood may be the reciprocal of the average value of the distances between all points of the detected point cloud data and the corresponding plane.

[0072] Alternatively, the determiner 610 positions the detected point cloud data at the position estimated by the second self-localization, and calculates the distance between each two corresponding points between the detected point cloud data and the point cloud data of the three-dimensional map. The determiner 610 may use the reciprocal of the average value of the distances between each two corresponding points as the likelihood. In other words, the determiner 610 calculates the distance between all points in the detected point cloud data and the corresponding points in the point cloud data of the three-dimensional map, and then calculates the reciprocal of the average value of these distances.

[0073] The determiner 610 determines that the estimation accuracy exceeds the predetermined standard when the likelihood is higher than a predetermined standard value. When the self-position based on the first state estimation is within the switching range Q and the estimation accuracy of the second self-position estimation exceeds the standard, the determiner 610 switches from the first autonomous movement to the second autonomous movement.

[0074] The control device 6 transitions from the second autonomous movement to the first autonomous movement when a second transition condition is satisfied. Specifically, the determiner 610 determines the transition from the second autonomous movement to the first autonomous movement. The second transition condition is that the mobile body 1 moves out of the switching range Q. Unlike the first transition condition, the second transition condition does not include a requirement for the estimation accuracy of the self-position estimation. Furthermore, the switching range Q when transitioning from the second autonomous movement to the first autonomous movement may be wider than the switching range Q when transitioning from the first autonomous movement to the second autonomous movement. Specifically, the switching range Q when transitioning from the first autonomous movement to the second autonomous movement is defined as the first switching range, and the switching range Q when transitioning from the second autonomous movement to the first autonomous movement is defined as the second switching range. The second switching range includes the first switching range and is wider than the first switching range. In other words, the second switching range is a range in which the distance to the destination is greater than the first switching range. By making the second switching range wider than the first switching range, chattering between the first self-position estimation and the second self-position estimation can be prevented when the mobile body 1 moves near the boundary of the first switching range.

[0075] Next, the operation of the mobile body 100 will be described in detail. Fig. 6 is a flowchart of the first autonomous movement of the mobile body 100. Fig. 7 is a flowchart of the second autonomous movement of the mobile body 100. The mobile body 100 repeatedly executes the following processing for the first autonomous movement or the second autonomous movement at a predetermined control cycle. Normally, the mobile body main body 1 starts autonomous movement from a position away from the destination, so the mobile body main body 1 first executes the first autonomous movement.

[0076] First, in step S101, the state estimator 64 acquires surrounding environment information. Specifically, the first state estimator 641 acquires the detection signal of the sensor 3 and the detection signal of the encoder 13b.

[0077] Next, the first state estimator 641 executes a first self-location estimation in step S102. Specifically, the first state estimator 641 estimates the self-location of the mobile body 1 by the first self-location estimation based on map information (more specifically, a three-dimensional map), the detection signal of the sensor 3, and the detection signal of the encoder 13b.

[0078] Next, in step S103, the determiner 610 determines whether or not the mobile body 1 is located within the switching range Q. Specifically, the determiner 610 determines whether or not the self-position based on the first state estimation by the first state estimator 641 is within the switching range Q.

[0079] If the self-position is not within the switching range Q, in step S104, the route generator 66 executes route planning. The route generator 66 generates a route for the mobile body 1 based on map information (more specifically, a two-dimensional map), the self-position obtained by the first self-position estimation, and the destination.

[0080] Subsequently, in step S105, the trajectory generator 67 calculates a command velocity from the estimated position of the mobile body main body 1 so as to follow the generated path.

[0081] In step S106, the movement controller 68 causes the mobile body 1 to move in accordance with the command speed. In this way, the mobile body 1 moves along the path generated by the path plan.

[0082] On the other hand, if the self-position is found to be within the switching range Q in step S103, the determiner 610 causes the second state estimator 642 to perform second self-position estimation in step S107. The second state estimator 642 estimates the self-position of the mobile body 1 by the second self-position estimation based on map information (more specifically, a three-dimensional map), the detection signal of the sensor 3, and the detection signal of the encoder 13b.

[0083] Then, in step S108, the determiner 610 determines whether the likelihood of the estimation result of the second self-localization is higher than a reference value.

[0084] If the likelihood is equal to or less than the reference value, the first transition condition is not satisfied, and the determiner 610 does not switch from the first autonomous movement to the second autonomous movement. In this case, the path generator 66 executes a path plan in step S104. Then, the processing from step S105 onward is executed. In other words, the first autonomous movement is continued.

[0085] If the likelihood is higher than the reference value, the first transition condition is satisfied, and therefore the determiner 610 transitions to the second autonomous movement in step S109.

[0086] 7, in the second autonomous movement, the state estimator 64 acquires surrounding environment information in step S201. Specifically, the second state estimator 642 acquires the detection signal of the sensor 3 and the detection signal of the encoder 13b.

[0087] Next, the second state estimator 642 executes second self-location estimation in step S202. Specifically, the second state estimator 642 estimates the self-location of the mobile body 1 by the second self-location estimation based on map information (more specifically, a three-dimensional map), the detection signal of the sensor 3, and the detection signal of the encoder 13b. The second state estimator 642 inputs the estimated self-location to the trajectory generator 67.

[0088] Furthermore, in the first steps S201 and S202 after transitioning from the first autonomous movement to the second autonomous movement, steps S201 and S202 may be omitted because the acquisition of environmental information and the second self-position estimation have been completed in steps S101 and S107 of the first autonomous movement.

[0089] Next, in step S203, the determiner 610 determines whether or not the mobile body 1 is located within the switching range Q. Specifically, the determiner 610 determines whether or not the self-position determined by the second state estimation by the second state estimator 642 is within the switching range Q. The switching range Q at this time is wider than the switching range Q at step S103.

[0090] If the self-position is within the switching range Q, the second transition condition is not satisfied, and so the trajectory generator 67 generates a command speed for the second autonomous movement in step S204. The trajectory generator 67 performs P control based on the difference between the destination and the self-position, and calculates a command speed so as to align the mobile body 1 with the destination.

[0091] In step S205, the movement controller 68 causes the mobile body 1 to move in accordance with the command speed. In this way, the mobile body 1 moves in a substantially straight line to the destination.

[0092] 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.

[0093] On the other hand, if the self-position is not within the switching range Q in step S203, the second transition condition is satisfied, and so the determiner 610 transitions to the first autonomous movement in step S206. In other words, when the mobile body 1 moves to a location away from the destination by the second autonomous movement, the second autonomous movement transitions to the first autonomous movement. However, the switching range Q when transitioning to the first autonomous movement is wider than when transitioning to the second autonomous movement. Therefore, even if the mobile body 1 moves out of the switching range Q for transitioning to the second autonomous movement immediately after transitioning to the second autonomous movement, the transition to the first autonomous movement is not made. As a result, the phenomenon of repeated switching between the first autonomous movement and the second autonomous movement at short intervals, known as chattering, is prevented.

[0094] As described above, according to the autonomous movement of the mobile body 1, in the first section S1 far from the destination, the self-location of the mobile body 1 is estimated by the first self-location estimation, and in the second section S2 close to the destination, the self-location of the mobile body 1 is estimated by the second self-location estimation. The first self-location estimation has lower estimation accuracy than the second self-location estimation, so the computational load can be reduced accordingly. On the other hand, the second self-location estimation tends to have a higher computational load than the first self-location estimation, but has higher estimation accuracy of the self-location. In other words, since the first section S1 is far from the destination, reducing the computational load is prioritized over the estimation accuracy of the self-location. Since the second section S2 is close to the destination, the estimation accuracy of the self-location is prioritized over reducing the computational load. As a result, when viewed across all sections, it is possible to achieve both improved estimation accuracy in the self-location estimation and reduced computational load.

[0095] Furthermore, in the first autonomous movement, a route plan is executed, and the mobile body 1 moves along the generated route. This avoids interference between the mobile body 1 and an object. In the first autonomous movement, the computational load is reduced by the first self-localization, so part of the computational capacity can be used for route planning. In addition, the first self-localization is more robust to the surrounding environment than the second self-localization. Therefore, the first self-localization can estimate the self-localization while allowing for deviations or disturbances between the real environment and map information.

[0096] In the second autonomous movement, route planning is not performed, and the mobile body 1 is moved based on the difference between its own position and the destination. Therefore, in the second autonomous movement, the movement of the mobile body 1 is controlled by a relatively simple calculation. For example, the mobile body 1 is moved by P control based on the difference between its own position and the destination. The mobile body 1 moves to the destination in a substantially straight line. Because the movement of the mobile body 1 is simple, the position accuracy of the mobile body 1 is also high. In addition, because the estimation accuracy of the second self-position estimation is high, the position accuracy of the mobile body 1 at the destination can be improved. Furthermore, because the switching range Q is close to the destination, there is a low possibility of an obstacle being present. Even in a substantially straight-line movement without route planning, there is a low possibility of interference between the mobile body 1 and an object.

[0097] When the mobile body 1 has a robot arm 12, the mobile body 1 has high positional accuracy at the destination, so that the robot arm 12 can also perform work appropriately at the destination.

[0098] The transition from the first autonomous movement to the second autonomous movement is performed not only when the mobile body 1 enters the switching range Q but also when the estimation accuracy of the second self-location estimation exceeds a predetermined standard. Because the second self-location estimation is less robust than the first self-location estimation, there is a risk that the second self-location estimation will not be able to properly estimate the self-location immediately after switching. Therefore, the transition to the second autonomous movement is performed after confirming whether the estimation accuracy of the second self-location estimation exceeds the standard. This allows for a smooth transition from the first autonomous movement to the second autonomous movement.

[0099] The control device 6 may control the robot arm 12 when performing autonomous movement. Fig. 8 is a functional block diagram showing the configuration of a control system of the processor 61 according to a modified example. The processor 61 may function as an arm controller 611 that controls the robot arm 12.

[0100] 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.

[0101] 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.

[0102] The arm controller 611 may maintain the robot arm 12 in a fixed shape in the first section S1 and operate the robot arm 12 in the second section S2.

[0103] For example, in the first section S1, the arm controller 611 maintains the robot arm 12 in the traveling shape. In other words, in the first section S1, the arm controller 611 fixes the shape of the robot arm 12 and prohibits the movement of the robot arm 12.

[0104] Fig. 9 is a side view of the mobile body 1 when the robot arm 12 is in the running shape. Fig. 10 is a plan view of the mobile body 1 when the robot arm 12 is in the running shape.

[0105] 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.

[0106] 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.

[0107] 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.

[0108] 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.

[0109] 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.

[0110] 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.

[0111] For example, in the second section S2, the arm controller 611 operates the robot arm 12. In other words, in the second section S2, 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 the destination, the arm controller 611 operates the robot arm 12 to perform work by the robot arm 12.

[0112] As described above, since the accuracy of self-location estimation is relatively low in the first section S1, the possibility of interference between the mobile body 1 and surrounding objects can be reduced by fixing the shape of the robot arm 12. On the other hand, since the accuracy of self-location estimation is relatively high in the second section S2, operation of the robot arm 12 is possible. Since the accuracy of self-location estimation is high, the accuracy of the work performed by the robot arm 12 is also improved.

[0113] 11 is a side view of a moving body 100 according to a modified example. The multiple sensors 3 included in the moving body 100 include a first sensor 3A and a fourth sensor 3D. The moving body 100 does not necessarily have to include at least one of the second sensor 3B and the third sensor 3C.

[0114] The fourth sensor 3D may be disposed on the robot arm 12. For example, the fourth sensor 3D is disposed on one of the robot arms 12. The fourth sensor 3D is arbitrarily disposed on one link L of the multiple links L. For example, the fourth sensor 3D is disposed on the first link L1, the second link L2, the sixth link L6, or the seventh link L7.

[0115] The fourth sensor 3D may detect an object in a three-dimensional space around the mobile body 1. For example, the fourth sensor 3D may be a 3D LiDAR. The fourth sensor 3D may scan the measurement light in the horizontal and vertical directions.

[0116] The control device 6 may switch the sensor 3 used for self-location estimation depending on the type of self-location estimation. For example, the control device 6 performs a first self-location estimation based on a detection result of one of the plurality of sensors 3, and performs a second self-location estimation based on a detection result of another of the plurality of sensors 3.

[0117] Another sensor 3 used for the second self-localization estimation is positioned closer to the tip of the robot arm 12 than one sensor 3 used for the first self-localization estimation. That is, the distance from the another sensor 3 used for the second self-localization estimation to the tip of the robot arm 12 is shorter than the distance from one sensor 3 used for the first self-localization estimation to the tip of the robot arm 12. For example, the sensor 3 used for the first self-localization estimation is the first sensor 3A, and the sensor 3 used for the second self-localization estimation is the fourth sensor 3D. The tip of the robot arm 12 is, for example, the seventh link L7.

[0118] Here, the distance to the tip of the robot arm 12 refers to the distance via a structure. For example, the distance from the first sensor 3A to the tip of the robot arm 12 is the distance from the first sensor 3A to the joint 11 of the cart 10, the joint 11 of the robot arm 12, passing through each joint J of the robot arm 12 in this order, and finally to the tip of the robot arm 12. The distance from the fourth sensor 3D to the tip of the robot arm 12 is the distance from the fourth sensor 3D to the joint J of the robot arm 12 that is located closer to the tip of the robot arm 12 than the fourth sensor 3D, passing through each joint J of the robot arm 12 in this order, and finally to the tip of the robot arm 12.

[0119] The fourth sensor 3D is relatively close to the tip of the robot arm 12. Therefore, by performing self-localization using the fourth sensor 3D, the estimation accuracy of the position of the tip of the robot arm 12 is improved. The second section S2 in which self-localization is performed using the fourth sensor 3D includes the destination. Therefore, when the robot arm 12 performs work at the destination, the position of the tip of the robot arm 12 is estimated with high accuracy. As a result, the accuracy of the work of the robot arm 12 is improved.

[0120] The first sensor 3A is relatively far from the tip of the robot arm 12. The position accuracy of the tip of the robot arm 12 obtained by self-localization estimation using the first sensor 3A may be inferior to that obtained by self-localization estimation using the fourth sensor 3D.

[0121] However, the first sensor 3A has a relatively wide detection range and detects objects in the surrounding three-dimensional space. For example, the first sensor 3A is positioned so that its three-dimensional detection range is not obstructed by the base 11 and the robot arm 12 as much as possible.

[0122] The detection range of the fourth sensor 3D may be narrower than that of the first sensor 3A. When the fourth sensor 3D is disposed on the robot arm 12, the detection range of the fourth sensor 3D depends on the traveling shape of the robot arm 12. A part of the detection range of the fourth sensor 3D may be blocked by the base 11 or the like. The area of ​​the detection range of the fourth sensor 3D blocked by the base 11 or the like may be larger than the area of ​​the detection range of the first sensor 3A blocked by the base 11 or the like. The first section S1 is relatively far from the destination. Therefore, in the first section S1, self-position estimation is performed using the first sensor 3A, prioritizing the detection of objects over a wide range over the positional accuracy of the tip of the robot arm 12.

[0123] 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 of the present disclosure 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.

[0124] 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.

[0125] 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.

[0126] The first self-location estimation and the second self-location estimation described above are merely examples. The first self-location estimation preferably has a lower computational load and higher robustness than the second self-location estimation. The second self-location estimation preferably has higher estimation accuracy than the first self-location estimation.

[0127] The movement in the second autonomous movement is not limited to the P control. Any control may be adopted as long as it moves the mobile body 1 to the destination based on the difference between the self-position and the destination.

[0128] The transition condition from the first autonomous movement to the second autonomous movement is not limited to the above example. The transition condition may simply be that the mobile body 1 enters the switching range Q. Alternatively, the transition condition may include an additional condition added to the above example. The switching range Q may not change when switching from the first autonomous movement to the second autonomous movement and when switching from the second autonomous movement to the first autonomous movement. The method of calculating the likelihood of the estimation result of the second self-location estimation is merely an example. The likelihood may be calculated by any method as long as it represents the accuracy of the estimated position. Evaluation of the estimation accuracy by the second self-location estimation is not limited to evaluation by likelihood. An index other than likelihood that represents estimation accuracy may be used to evaluate the estimation accuracy.

[0129] 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.

[0130] 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.

[0131] 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.

[0132] [Aspects] The above-described embodiments are specific examples of the following aspects.

[0133] (Mode 1) A mobile body 100 comprises a mobile body main body 1 and a control device 6 that causes the mobile body main body 1 to perform autonomous movement while estimating the self-position of the mobile body main body 1, and the control device 6 causes the mobile body main body 1 to perform a first autonomous movement in a first section S1 where the distance to the destination is outside a predetermined switching range Q, and causes the mobile body main body 1 to perform a second autonomous movement different from the first autonomous movement in a second section S2 where the distance to the destination is within the switching range Q, and in the first autonomous movement, the control device 6 estimates the self-position of the mobile body main body 1 using a first self-position estimation, and in the second autonomous movement, the control device 6 estimates the self-position of the mobile body main body 1 using a second self-position estimation that has higher estimation accuracy than the first self-position estimation.

[0134] According to this configuration, the first self-location estimation and the second self-location estimation are switched depending on the distance to the destination. When the distance to the destination is short, the second self-location estimation, which has a relatively high accuracy, is performed. This makes it possible to improve the position accuracy of the mobile body 1 at the destination. When the distance to the destination is long, the first self-location estimation, which has a lower accuracy than the second self-location estimation, is performed. The first self-location estimation has a lower estimation accuracy than the second self-location estimation, and therefore tends to have a smaller computational load. In other words, the computational load of self-location estimation can be reduced in sections where the distance to the destination is long. As a result, it is possible to improve the position accuracy of the mobile body 1 at the destination while reducing the overall computational load of self-location estimation until the destination is reached.

[0135] (Aspect 2) In the mobile body 100 described in aspect 1, the control device 6, in the first autonomous movement, executes a route plan for the mobile body 1 based on the self-position estimated by the first self-position estimation and moves the mobile body 1 based on the route plan, and in the second autonomous movement, moves the mobile body 1 to the destination based on the self-position estimated by the second self-position estimation without performing a route plan.

[0136] According to this configuration, in the first autonomous movement, a route is generated based on a route plan, and the mobile body 1 moves along the generated route. By performing route planning, interference between the mobile body 1 and an object can be avoided. In addition, the computational load of the first self-localization in the first autonomous movement tends to be relatively small. In other words, by combining the first self-localization and route planning in the first autonomous movement, interference between the mobile body 1 and an object can be avoided while preventing the computational load from becoming excessive.

[0137] (Aspect 3) In the moving body 100 described in Aspect 1 or Aspect 2, the control device 6 transitions from the first autonomous movement to the second autonomous movement when a transition condition is satisfied, and the transition condition is that the moving body main body 1 enters the switching range Q and the estimation accuracy by the second self-position estimation exceeds a predetermined standard.

[0138] According to this configuration, the first autonomous movement is switched to the second autonomous movement not only when the mobile body 1 enters the switching range Q but also when the estimation accuracy by the second self-location estimation exceeds a standard. Even when the mobile body 1 enters the switching range Q, if the estimation accuracy by the second self-location estimation is low, the first autonomous movement is continued. Eventually, when the estimation accuracy by the second self-location estimation exceeds the standard, the first autonomous movement is switched to the second autonomous movement. This allows the second self-location estimation to be started smoothly.

[0139] (Aspect 4) In the moving body 100 according to any one of Aspects 1 to 3, the first self-localization estimation has higher robustness than the second self-localization estimation.

[0140] This configuration makes it possible to improve the robustness of the first autonomous movement against the surrounding environment, thereby enabling highly robust movement by the first autonomous movement in sections far from the destination, and movement with high positional accuracy by the second autonomous movement in sections close to the destination.

[0141] (Aspect 5) In the moving body 100 according to any one of Aspects 1 to 4, the moving body main body 1 includes a robot arm 12 and is a mobile robot.

[0142] According to this configuration, the positional accuracy of the mobile body 1 at the destination is improved by the second self-location estimation, which has a relatively high accuracy, so that work can be performed appropriately by the robot arm 12 at the destination.

[0143] (Aspect 6) In the mobile body 100 described in any one of Aspects 1 to 5, the mobile body main body 1 includes a robot arm 12 and is a mobile robot, and the control device 6 maintains the robot arm 12 in a constant shape in the first section S1 and operates the robot arm 12 in the second section S2.

[0144] According to this configuration, the robot arm 12 is maintained in a constant shape in the first section S1 and becomes operable in the second section S2. In the first section S1, a first self-localization estimation with relatively low estimation accuracy is performed. By maintaining the robot arm 12 in a constant shape in the first section S1, the possibility of interference between the mobile body 1 and surrounding objects is reduced. In the second section S2, a second self-localization estimation with relatively high estimation accuracy is performed. Therefore, in the second section S2, the robot arm 12 operates while avoiding interference between the robot arm 12 and surrounding objects.

[0145] (Aspect 7) The moving body 100 described in any one of Aspects 1 to 6 further comprises a plurality of sensors 3 arranged on the moving body main body 1 and detecting objects around the moving body main body 1, the moving body main body 1 including a robot arm 12 and being a mobile robot, the control device 6 performing the first self-location estimation based on a detection result of one of the plurality of sensors 3, and performing the second self-location estimation based on a detection result of another of the plurality of sensors 3, the other sensor 3 used for the second self-location estimation being arranged in a position closer to the tip of the robot arm 12 than the one sensor 3 used for the first self-location estimation.

[0146] According to this configuration, self-location estimation is performed using one sensor 3 in the first section S1, and self-location estimation is performed using another sensor 3 in the second section S2. Because the another sensor 3 is disposed closer to the tip of the robot arm 12, self-location estimation using the another sensor 3 improves the positional accuracy of the tip of the robot arm 12. As a result, the accuracy of the work of the robot arm 12 in the second section S2 is improved.

[0147] (Aspect 8) A control method for a moving body 1 is a control method for a moving body 100, in which the moving body 1 is made to perform autonomous movement while estimating the self-position of the moving body 1, and includes making the moving body 1 perform a first autonomous movement in a first section S1 where the distance to a destination is outside a predetermined switching range Q, and making the moving body 1 perform a second autonomous movement different from the first autonomous movement in a second section S2 where the distance to the destination is within the switching range Q, in which, in making the first autonomous movement, the self-position of the moving body 1 is estimated by a first self-position estimation, and in making the moving body 1 perform the second autonomous movement, the self-position of the moving body 1 is estimated by a second self-position estimation that has higher estimation accuracy than the first self-position estimation.

[0148] According to this configuration, the first self-location estimation and the second self-location estimation are switched depending on the distance to the destination. When the distance to the destination is short, the second self-location estimation, which has a relatively high accuracy, is performed. This makes it possible to improve the position accuracy of the mobile body 1 at the destination. When the distance to the destination is long, the first self-location estimation, which has a lower accuracy than the second self-location estimation, is performed. The first self-location estimation has a lower estimation accuracy than the second self-location estimation, and therefore tends to have a smaller computational load. In other words, the computational load of self-location estimation can be reduced in sections where the distance to the destination is long. As a result, it is possible to improve the position accuracy of the mobile body 1 at the destination while reducing the overall computational load of self-location estimation until the destination is reached.

[0149] (Aspect 9) The control program of the mobile body 100 is a control program of the mobile body 100 for causing the mobile body 1 to perform autonomous movement while estimating the self-position of the mobile body 1, and causes a computer to realize a function for causing the mobile body 1 to perform a first autonomous movement in a first section S1 where the distance to the destination is outside a predetermined switching range Q, and a function for causing the mobile body 1 to perform a second autonomous movement different from the first autonomous movement in a second section S2 where the distance to the destination is within the switching range Q, wherein the function for causing the first autonomous movement estimates the self-position of the mobile body 1 by a first self-position estimation, and the function for causing the second autonomous movement estimates the self-position of the mobile body 1 by a second self-position estimation that has higher estimation accuracy than the first self-position estimation.

[0150] According to this configuration, the first self-location estimation and the second self-location estimation are switched depending on the distance to the destination. When the distance to the destination is short, the second self-location estimation, which has a relatively high accuracy, is performed. This makes it possible to improve the position accuracy of the mobile body 1 at the destination. When the distance to the destination is long, the first self-location estimation, which has a lower accuracy than the second self-location estimation, is performed. The first self-location estimation has a lower estimation accuracy than the second self-location estimation, and therefore tends to have a smaller computational load. In other words, the computational load of self-location estimation can be reduced in sections where the distance to the destination is long. As a result, it is possible to improve the position accuracy of the mobile body 1 at the destination while reducing the overall computational load of self-location estimation until the destination is reached.

[0151] 100 Mobile body 1 Mobile body main body 12 Robot arm 6 Control device Q Switching range S1 First section S2 Second section

Claims

1. A mobile body comprising: a mobile body; and a control device that causes the mobile body to perform autonomous movement while estimating the self-position of the mobile body, wherein the control device causes the mobile body to perform a first autonomous movement in a first section where the distance to a destination is outside a predetermined switching range, and causes the mobile body to perform a second autonomous movement different from the first autonomous movement in a second section where the distance to the destination is within the switching range, wherein in the first autonomous movement, the control device estimates the self-position of the mobile body using a first self-position estimation, and in the second autonomous movement, the control device estimates the self-position of the mobile body using a second self-position estimation that has higher estimation accuracy than the first self-position estimation.

2. A mobile body as described in claim 1, wherein the control device, during the first autonomous movement, executes a route plan for the mobile body based on the self-position estimated by the first self-position estimation and moves the mobile body based on the route plan, and during the second autonomous movement, moves the mobile body to the destination based on the self-position estimated by the second self-position estimation without performing a route plan.

3. A mobile body as described in claim 1, wherein the control device transitions from the first autonomous movement to the second autonomous movement when a transition condition is satisfied, the transition condition being that the mobile body itself enters the switching range and the estimation accuracy of the second self-position estimation exceeds a predetermined standard.

4. A mobile body according to claim 1, wherein the first self-location estimation is more robust than the second self-location estimation.

5. A mobile body according to any one of claims 1 to 4, wherein the mobile body main body includes a robot arm and is a mobile robot.

6. A mobile body according to claim 1, wherein the mobile body main body is a mobile robot including a robot arm, and the control device maintains the robot arm in a fixed shape in the first section, and operates the robot arm in the second section.

7. A mobile body as described in claim 1, further comprising a plurality of sensors arranged on the mobile body body for detecting objects around the mobile body body, the mobile body being a mobile robot including a robot arm, the control device performing the first self-location estimation based on the detection result of one of the plurality of sensors, and performing the second self-location estimation based on the detection result of another of the plurality of sensors, and the other sensor used for the second self-location estimation being arranged in a position closer to the tip of the robot arm than the one sensor used for the first self-location estimation.

8. A method for controlling a moving body, which causes a moving body to perform autonomous movement while estimating its own position, comprising: causing the moving body to perform a first autonomous movement in a first section where the distance to a destination is outside a predetermined switching range; and causing the moving body to perform a second autonomous movement different from the first autonomous movement in a second section where the distance to the destination is within the switching range, wherein, in causing the first autonomous movement, the self-position of the moving body is estimated by a first self-position estimation; and, in causing the moving body to perform the second autonomous movement, the self-position of the moving body is estimated by a second self-position estimation having higher estimation accuracy than the first self-position estimation.

9. A control program for a mobile body for causing a mobile body to perform autonomous movement while estimating the self-position of the mobile body, the program causing a computer to realize a function for causing the mobile body to perform a first autonomous movement in a first section where the distance to the destination is outside a predetermined switching range, and a function for causing the mobile body to perform a second autonomous movement different from the first autonomous movement in a second section where the distance to the destination is within the switching range, wherein the function for causing the first autonomous movement estimates the self-position of the mobile body using a first self-position estimation, and the function for causing the second autonomous movement estimates the self-position of the mobile body using a second self-position estimation that has higher estimation accuracy than the first self-position estimation.

Citation Information

Patent Citations

  • Moving object, control method for moving object, and program

    JP2020095339A

  • Movable body

    JP2021056764A

  • Self position estimation device and self position estimation method

    JP2021117893A

  • Robot charger docking self-localization

    JP2021504794A