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

A dual-mode self-position estimation method for autonomous mobile objects improves accuracy and reduces computational load by switching between low-accuracy, robust estimation for distant navigation and high-accuracy estimation for close-range tasks, optimizing performance and efficiency.

JP7813422B1Active Publication Date: 2026-02-12KAWASAKI JUKOGYO KK
View PDF 5 Cites 0 Cited by

Patent Information

Application Number
JP2025541615
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Priority Date
2024-08-06
Filing Date
2025-07-15
Publication Date
2026-02-12
Estimated Expiration
2045-07-15

AI Technical Summary

Technical Problem

Improving the accuracy of self-location estimation in autonomous mobile objects while reducing the associated computational load.

Method used

Implementing a dual-mode self-position estimation approach, using a first self-position estimation with lower accuracy but higher robustness for longer distances from the destination, and a second self-position estimation with higher accuracy but greater computational load for closer distances, allowing for efficient switching between these modes based on distance to the destination.

Benefits of technology

Enhances estimation accuracy and reduces computational load in self-position estimation, enabling precise navigation and task execution by autonomous mobile objects.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007813422000001
    Figure 0007813422000001
  • Figure 0007813422000002
    Figure 0007813422000002
  • Figure 0007813422000003
    Figure 0007813422000003
Patent Text Reader

Abstract

The mobile body 100 includes 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. The control device 6 causes the mobile body main body 1 to perform a first autonomous movement in a first section 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 that is different from the first autonomous movement in a second section where the distance to the destination is within the switching range Q. In the first autonomous movement, the control device 6 estimates the self-position of the mobile body main body 1 by a first self-position estimation. In the second autonomous movement, the control device 6 estimates the self-position of the mobile body main body 1 by a second self-position estimation that has higher estimation accuracy than the first self-position estimation.
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[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. [Background technology]

[0002] BACKGROUND ART Autonomous moving bodies have been known for some time. For example, Patent Document 1 discloses a moving body that moves autonomously while estimating its own position. [Prior art documents] [Patent documents]

[0003] [Patent Document 1] Japanese Patent Application Publication No. 2017-45447 Summary of the Invention

[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 improve the estimation accuracy and reduce the calculation 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. [Brief explanation of the drawings]

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

[0013] Exemplary embodiments will be described in detail below with reference to the drawings. FIG. 1 is a perspective view of a moving body 100. The moving body 100 moves autonomously. The moving body 100 includes a moving body main body 1 and a control device 6 that causes the moving body main body 1 to move autonomously. For example, the moving body 100 moves within a facility such as a store, hospital, or nursing home. In addition to moving, the moving body 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 that includes 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-to-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-to-rear direction. The lateral direction of the rectangle is the left-to-right direction.

[0016] The dolly 10 includes a plurality of wheels 13 and is capable of traveling. In this example, the dolly 10 includes four wheels 13. The dolly 10 may be capable of traveling straight and turning. In this example, the dolly 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 dolly 10 may be capable of translational movement in directions other than the forward and backward direction. Furthermore, the dolly 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 dolly 10 and another set of wheels 13 aligned in the left-right direction at the rear of the bottom of the dolly 10. The wheels 13 may be arranged to form a rectangle on the bottom of the dolly 10. More specifically, the four wheels 13 are arranged at the four corners of the bottom of the dolly 10.

[0017] 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 around the outer periphery of the wheel. For example, the rotation axis of each roller is inclined at 45 degrees relative to the axle of the wheel 13.

[0018] The mobile body 1 may have a motor 13a that drives the wheels 13 and an encoder 13b that detects the amount of rotation of the motor 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 can translate or turn in any direction, including forward / backward, left / right, and diagonal. The cart 10 can 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 that resembles the upper half of a human body. 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 other robot arm 12 does not necessarily have to have a hand 14 attached to the tip.

[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-rear direction. The width direction may be a horizontal direction that is perpendicular to the front-to-rear direction. In other words, the width direction is the left-to-right direction relative to the front-to-rear 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] 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 that connect 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 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 the 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] A 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 in the shoulder joint. The rotation axis of the joint that has the functions of horizontal extension and horizontal flexion in 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 in the shoulder joint. The rotation axis of the joint that has the functions of extension and flexion in 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 objects and living 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 distance measurement 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 has, 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, hitting the surface of the peripheral object, and returning 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 dolly 10. The first sensor 3A is arranged in the front of the dolly 10. For example, the first sensor 3A is arranged on the dolly 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 causes the measurement light to scan within 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 bogie 10. More specifically, the second sensor 3B and the third sensor 3C are disposed on the bogie 10 rearward of the base 11. The second sensor 3B is disposed at the left rear corner of the bogie 10, and the third sensor 3C is disposed at the right rear corner of the bogie 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 LiDARs. 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 the first sensor 3A. The second sensor 3B scans the measurement light at least to the left rear of the bogie 10. The third sensor 3C scans the measurement light at least to the right rear of the bogie 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 into the range F that overlaps 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] FIG. 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 motor 13a of the wheel 13 to move the mobile body 1. Furthermore, the control device 6 controls the motor 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 and various data executed by the processor 61. 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 it. 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-position 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 sensor 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, 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). Model predictive control 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 according 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 manipulated variable calculator 69 distributes the command value to the plurality of motors 13a and calculates the command manipulated variable for each of the plurality of motors 13a. For example, the manipulated variable is the rotation speed or torque of the motor.

[0055] Each motor 13a operates according to a command operation amount. In some cases, the motor 13a is provided with a dedicated 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 according to 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 the 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] The processor 61 also functions as a determiner 610 that determines switching between the first autonomous movement and the second autonomous movement, as shown in Fig. 4. 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 bumps or the like on the road, 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 deviations occur.

[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 localization 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 position and orientation of particles with high likelihood.

[0061] The first self-localization 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 near the destination. Therefore, in the first self-localization, the calculation load can be reduced by suppressing the estimation accuracy. In other words, the calculation load of the first self-localization is smaller than that of the second self-localization.

[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 discrepancies 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 discrepancies 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 is ICP (Iterative Closest Point) scan matching or NDT (Normal Distributions Transform) scan matching. The second self-localization may further combine ICP scan matching or NDT scan matching with a Kalman filter. For example, in ICP scan matching, the closest points between point cloud data of a 3D map and 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 does not have the same high robustness as the first self-localization, it has higher estimation accuracy than the first self-localization. However, the computational load of the second self-localization may be greater than that of the first self-localization.

[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 second self-location estimation with relatively high accuracy, thereby estimating the self-location with high accuracy, and 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 by 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 by 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 by the second self-localization is low even when the mobile body 1 enters the switching range Q, the first self-localization will continue. As the mobile body 1 continues moving using the first self-localization, the estimation accuracy by the second self-localization may eventually improve. Then, when the estimation accuracy of the second self-location estimation exceeds a reference level, 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 around 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 the corresponding plane and all points in the detected point cloud data. 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 a 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 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 located 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. In detail, 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 the 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 moving 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 in accordance with the path generated by the path plan.

[0082] On the other hand, if the self-position is within the switching range Q in step S103, the determiner 610 causes the second state estimator 642 to execute the 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 the first autonomous movement to the second autonomous movement. In this case, the path generator 66 executes a path plan in step S104. Thereafter, the processing from step S105 onwards 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 the second self-position estimation in step S202. Specifically, 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. The second state estimator 642 inputs the estimated self-position to the trajectory generator 67.

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

[0089] Next, in step S203, the determiner 610 determines whether or not the moving body 1 is located within the switching range Q. Specifically, the determiner 610 determines whether or not the self-position based on 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 moving body 1 to move in accordance with the command speed. In this way, the moving body 1 moves in a substantially straight line to the destination.

[0092] By repeating the above processing, the moving body 100 estimates its own position and moves autonomously to the destination.

[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 therefore 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 transition to the second autonomous movement immediately after transitioning to the second autonomous movement, the mobile body does not transition to the first autonomous movement. As a result, the phenomenon in which the first autonomous movement and the second autonomous movement are repeatedly switched at short intervals, so-called chattering, is prevented from occurring.

[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 calculation load can be reduced accordingly. On the other hand, the second self-location estimation tends to have a higher calculation load than the first self-location estimation, but has a higher estimation accuracy of the self-location. In other words, since the first section S1 is far from the destination, reducing the calculation load is prioritized over the estimation accuracy of the self-location. Since the second section S2 is close to the destination, estimating the self-location is prioritized over reducing the calculation load. As a result, when viewed over all sections, it is possible to achieve both improved estimation accuracy in self-location estimation and reduced calculation 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 first self-localization reduces the computational load, 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 an approximately 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 approximately 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 the robot arm 12, the positional accuracy of the mobile body 1 at the destination is high, 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. Since 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 checking 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, at 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 first sensor 3A that correspond 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 width direction 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 width direction. Of the multiple links L, the links other than the second link L2 are located more inward in the width direction than the second link L2. By making the width direction 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 width 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 located 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 width direction size of the second links L2 of the two robot arms, i.e., the width direction 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. This 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 shapes 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 allows the robot arm 12 to operate freely. 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-position 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-position estimation is relatively high in the second section S2, operation of the robot arm 12 is possible. Since the accuracy of self-position estimation is high, the accuracy of work by the robot arm 12 also improves.

[0113] 11 is a side view of a moving body 100 according to a modified example. The multiple sensors 3 provided 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 multiple sensors 3, and performs a second self-location estimation based on a detection result of another of the multiple sensors 3.

[0117] Another sensor 3 used for the second self-localization estimation is disposed 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 means 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 then 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, in this order, and then 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 a task 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 task 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 detection range of the first sensor 3A is relatively wide. The first sensor 3A 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-location 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 embodiment has been described as an example of the technology disclosed in this application. However, the technology of the present disclosure is not limited to this and can be applied to embodiments in which modifications, substitutions, additions, omissions, etc. are made as appropriate. Furthermore, the components described in the above embodiment 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 cart 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 each of the second sensor 3B and the third sensor 3C may 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 the area 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 P control, and 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 example described above. 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 example described above. 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-localization 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-localization is not limited to evaluation by likelihood. An index other than likelihood that represents the 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 circuits. 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] [Aspect] The above embodiments are specific examples of the following aspects.

[0133] (Mode 1) A mobile body 100 comprises a mobile body 1 and a control device 6 that causes the mobile body 1 to perform autonomous movement while estimating the self-position of the mobile body 1, and the control device 6 causes 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 causes 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, and in the first autonomous movement, the control device 6 estimates the self-position of the mobile 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 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, so the calculation load tends to be smaller. In other words, in sections where the distance to the destination is long, the calculation load of the self-location estimation can be reduced. As a result, it is possible to improve the position accuracy of the mobile body 1 at the destination while reducing the calculation load of the overall self-location estimation until the destination is reached.

[0135] (Aspect 2) In the mobile body 100 described in aspect 1, in the first autonomous movement, 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, 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 according to 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-location estimation in the first autonomous movement tends to be relatively small. In other words, by combining the first self-location estimation and route planning in the first autonomous movement, it is possible to avoid interference between the mobile body 1 and an object 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 met, 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 if 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 is more robust 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] (Embodiment 5) In the moving body 100 according to any one of embodiments 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 the robot arm 12 can perform work appropriately 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 a 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 a 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) A moving body 100 described in any one of aspects 1 to 6 further includes 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 the detection result of one of the plurality of sensors 3, and performing the second self-location estimation based on the detection result of another of the plurality of sensors 3, the other sensor 3 used for the second self-location estimation being arranged at 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. Since the another sensor 3 is disposed closer to the tip of the robot arm 12, the position accuracy of the tip of the robot arm 12 is improved in self-location estimation using the another sensor 3. Therefore, the accuracy of the work of the robot arm 12 in the second section S2 is improved.

[0147] (Mode 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 the 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, when making the first autonomous movement, the self-position of the moving body 1 is estimated by a first self-position estimation, and when making the second autonomous movement, the self-position of the moving body 1 is estimated by a second self-position estimation which 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, so the calculation load tends to be smaller. In other words, in sections where the distance to the destination is long, the calculation load of the self-location estimation can be reduced. As a result, it is possible to improve the position accuracy of the mobile body 1 at the destination while reducing the calculation load of the overall self-location estimation until the destination is reached.

[0149] (Aspect 9) The control program for the mobile body 100 is a control program for 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 which 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, so the calculation load tends to be smaller. In other words, in sections where the distance to the destination is long, the calculation load of the self-location estimation can be reduced. As a result, it is possible to improve the position accuracy of the mobile body 1 at the destination while reducing the calculation load of the overall self-location estimation until the destination is reached. [Explanation of symbols]

[0151] 100 Mobile 1 Mobile body 12 Robotic Arm 6. Control device Q Switching Range S1 First Section S2 2nd Section

Claims

1. A mobile body; a control device that causes the mobile body to autonomously move while estimating a self-position of the mobile body, the control device causes the mobile body to perform a first autonomous movement in a first section where a 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 a distance to the destination is within the switching range; In the first autonomous movement, the control device estimates a self-position of the moving body by a first self-position estimation; In the second autonomous movement, the control device estimates a self-position of the moving body by a second self-position estimation having higher estimation accuracy than the first self-position estimation, The mobile body is a mobile robot, the mobile body including a robot arm.

2. 2. The moving body according to claim 1, The control device In the first autonomous movement, a route plan for the mobile body is executed based on a self-position estimated by the first self-position estimation, and the mobile body is moved based on the route plan; In the second autonomous movement, the mobile body moves to the destination based on the self-position estimated by the second self-position estimation without performing route planning.

3. A moving body, a control device that causes the mobile body to autonomously move while estimating a self-position of the mobile body, The control device 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 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; transitioning the first autonomous movement to the second autonomous movement when a transition condition is satisfied; In the first autonomous movement, the control device estimates a self-position of the moving body by a first self-position estimation; In the second autonomous movement, the control device estimates a self-position of the moving body by a second self-position estimation having higher estimation accuracy than the first self-position estimation, The transition condition is that the main body of the moving body enters the switching range and the estimation accuracy of the second self-location estimation exceeds a predetermined standard.

4. 2. The moving body according to claim 1, The first self-location estimation is more robust than the second self-location estimation.

5. A moving body, a control device that causes the mobile body to autonomously move while estimating a self-position of the mobile body, the mobile body is a mobile robot including a robot arm, the control device causes the mobile body to perform a first autonomous movement and maintains the robot arm in a constant shape in a first section where the distance to the destination is outside a predetermined switching range, and causes the mobile body to perform a second autonomous movement different from the first autonomous movement and operates the robot arm in a second section where the distance to the destination is within the switching range; In the first autonomous movement, the control device estimates a self-position of the moving body by a first self-position estimation; In the second autonomous movement, the control device estimates the self-position of the moving body by second self-position estimation having higher estimation accuracy than the first self-position estimation.

6. A moving body, a control device that causes the mobile body to autonomously move while estimating a self-position of the mobile body; a plurality of sensors disposed on the mobile body to detect objects around the mobile body; the mobile body is a mobile robot including a robot arm, the control device causes the mobile body to perform a first autonomous movement based on a detection result of one of the plurality of sensors in a first section where the distance to the destination is outside a predetermined switching range, and causes the mobile body to perform a second autonomous movement different from the first autonomous movement based on a detection result of another of the plurality of sensors in a second section where the distance to the destination is within the switching range; In the first autonomous movement, the control device estimates a self-position of the moving body by a first self-position estimation; In the second autonomous movement, the control device estimates a self-position of the moving body by a second self-position estimation having higher estimation accuracy than the first self-position estimation, A moving body in which the other sensor used for the second self-location estimation is positioned closer to the tip of the robot arm than the one sensor used for the first self-location estimation.

7. A method for controlling a moving body, which causes a moving body to autonomously move while estimating a self-position of the moving body, comprising: causing the moving body to perform a first autonomous movement in a first section in which the distance to a destination is outside a predetermined switching range; 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; In executing the first autonomous movement, a self-position of the moving body is estimated by a first self-position estimation; In executing the second autonomous movement, a self-position of the moving body is estimated by a second self-position estimation having higher estimation accuracy than the first self-position estimation; A method for controlling a mobile body, wherein the mobile body main body includes a robot arm and is a mobile robot.

8. A control program for a moving body for causing a moving body to autonomously move while estimating a self-position of the moving body, comprising: a function of causing the moving body to perform a first autonomous movement in a first section in which the distance to a destination is outside a predetermined switching range; 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; the function of executing the first autonomous movement includes estimating a self-position of the moving body by a first self-position estimation; the function of executing the second autonomous movement estimates a self-position of the moving body by a second self-position estimation having higher estimation accuracy than the first self-position estimation; The mobile body includes a robot arm, and the mobile body is a control program for a mobile robot.

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

  • Map generation method, own position estimation method, robot system and robot

    JP2017045447A