Mobile body, method for controlling the mobile body, and control program for the mobile body
A dual-mode self-position estimation method for moving bodies optimizes accuracy and computational load by using robust and accurate methods at different distances, enhancing navigation and task performance.
Patent Information
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- KAWASAKI JUKOGYO KK
- Filing Date
- 2026-01-29
- Publication Date
- 2026-05-19
AI Technical Summary
Existing moving bodies face a trade-off between improving self-position estimation accuracy and reducing computational load, as higher accuracy often requires increased computational resources.
The moving body employs a dual-mode self-position estimation approach, using a robust but less accurate method at a distance from the destination and a more accurate method closer to the destination, switching between these modes based on distance to optimize estimation accuracy and computational load.
This approach achieves improved estimation accuracy while reducing computational load, ensuring precise navigation and task execution, particularly near the destination.
Smart Images

Figure 2026082912000001_ABST
Abstract
Description
Technical Field
[0001] The technology disclosed herein relates to a moving body, a method for controlling the moving body, and a control program for the moving body.
Background Art
[0002] Conventionally, moving bodies that autonomously move have been known. For example, Patent Document 1 discloses a moving body that autonomously moves while estimating its own position.
Prior Art Documents
Patent Documents
[0003]
Patent Document 1
Summary of the Invention
[0004] In the moving body as described above, the accuracy of self-position estimation affects the accuracy of autonomous movement. However, in order to improve the accuracy of self-position estimation, the computational load increases.
[0005] The technology disclosed herein has been made in view of such a point, and the object thereof is to achieve both an improvement in estimation accuracy and a reduction in computational load in self-position estimation.
[0006] The moving body of the present disclosure includes a moving body main body and a control device that causes the moving body main body to perform autonomous movement while estimating the self-position of the moving body main body. The control device causes the moving 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 moving 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. In the first autonomous movement, the control device estimates the self-position of the moving body main body by first self-position estimation, and in the second autonomous movement, the control device estimates the self-position of the moving body main body by second self-position estimation having higher estimation accuracy than the first self-position estimation.
[0007] The method for controlling a mobile body according to the present disclosure is a method for controlling a mobile body that causes the mobile body to perform autonomous movement while estimating the self-position of the mobile body, and includes 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, wherein in the first autonomous movement, the self-position of the mobile body is estimated by a first self-position estimation, and in the second autonomous movement, the self-position of the mobile body is estimated by a second self-position estimation that has higher estimation accuracy than the first self-position estimation.
[0008] The mobile body control program of this disclosure is a mobile body control program for causing the mobile body to perform autonomous movement while estimating the self-position of the mobile body, and provides a computer with a function to cause the mobile body to perform a first autonomous movement in a first section where the distance to the destination is outside a predetermined switching range, and a function to cause the mobile body to perform a second autonomous movement different from the first autonomous movement in a second section where the distance to the destination is within the switching range, wherein the function to perform the first autonomous movement estimates the self-position of the mobile body by first self-position estimation, and the function to perform the second autonomous movement estimates the self-position of the mobile body by second self-position estimation which has higher estimation accuracy than the first self-position estimation.
[0009] According to the aforementioned mobile device, it is possible to achieve both improved estimation accuracy and reduced computational load in self-localization.
[0010] According to the aforementioned method for controlling a moving object, it is possible to achieve both improved estimation accuracy and reduced computational load in self-position estimation.
[0011] According to the control program for the mobile body, it is possible to achieve both improved estimation accuracy and reduced computational load in self-position estimation. [Brief explanation of the drawing]
[0012] [Figure 1] Figure 1 is a perspective view of the moving object. [Figure 2] Figure 2 is a schematic diagram showing the detection range of the sensor. [Figure 3] Figure 3 shows the hardware configuration of the control device. [Figure 4] Figure 4 is a functional block diagram showing the configuration of the processor's control system. [Figure 5] Figure 5 is a schematic diagram illustrating the switching of autonomous movement. [Figure 6] Figure 6 is a flowchart of the first autonomous movement of the mobile object. [Figure 7] Figure 7 is a flowchart of the second autonomous movement of the mobile object. [Figure 8] Figure 8 is a functional block diagram showing the configuration of the control system of the modified processing unit. [Figure 9] Figure 9 is a side view of the mobile body when the robot arm is in a traveling configuration. [Figure 10] Figure 10 is a plan view of the mobile body when the robot arm is in a traveling configuration. [Figure 11] Figure 11 is a side view of a modified example of a mobile body. [Modes for carrying out the invention]
[0013] The following describes exemplary embodiments in detail with reference to the drawings. Figure 1 is a perspective view of the mobile body 100. The mobile body 100 performs autonomous movement. The mobile body 100 comprises a mobile body 1 and a control device 6 that causes the mobile body 1 to perform autonomous movement. For example, the mobile body 100 moves within a facility such as a store, hospital, or nursing home. In addition to movement, the mobile body 100 may perform tasks such as handing over goods or opening and closing doors.
[0014] For example, the mobile body main body 1 includes a robot arm 12 and is a movable robot. Specifically, the mobile body main 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 front-rear direction of the carriage 10 is defined. In this example, the carriage 10 has a generally rectangular planar shape. For example, the longitudinal direction of the rectangle is the front-rear direction, and the short side direction of the rectangle is the left-right direction.
[0016] The carriage 10 includes a plurality of wheels 13 and is capable of traveling. In this example, the carriage 10 includes four wheels 13. The carriage 10 may be capable of straight-ahead travel and turning. In this example, the carriage 10 can move in the front-rear, left-right, and diagonal directions while maintaining its posture, that is, it can move in all directions. That is, the carriage 10 may be capable of parallel movement in directions other than the front-rear direction. Furthermore, the carriage 10 may also be capable of rotating in place. For example, the four wheels 13 include a set of wheels 13 arranged in the left-right direction at the front of the bottom of the carriage 10 and a set of wheels 13 arranged in the left-right direction at the rear of the bottom of the carriage 10. They may be arranged so as to form a quadrilateral at the bottom of the carriage 10. More specifically, the four wheels 13 are arranged at the four corners of the bottom of the carriage 10.
[0017] Specifically, the wheels 13 may be omnidirectional wheels. In this example, the wheels 13 are mecanum wheels. A plurality of barrel-shaped rollers are arranged on the outer periphery of the wheels 13. For example, the rotation axis of each roller is inclined 45 degrees with respect to the axle of the wheel 13.
[0018] The mobile body main body 1 may have a motor 13a for driving the wheels 13 and an encoder 13b for detecting the rotation amount of the motor 13a (see FIG. 3). In this example, the mobile body main 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 carriage 10 may be movable in any direction on a two-dimensional plane by such four wheels 13. For example, the carriage 10 can move parallel or turn in any direction such as forward and backward, left and right, or diagonally. The carriage 10 can also rotate in place.
[0020] The base 11 may be mounted on the carriage 10. In this example, the base 11 has a shape imitating the upper body of a person. The base 11 may be fixedly attached to the carriage 10 so as not to be movable.
[0021] The moving body main body 1 has two robot arms 12. A hand 14 may be attached to the tip of one of the robot arms 12. The hand 14 may not be attached to the tip of the other robot arm 12.
[0022] The two robot arms 12 are respectively connected to different parts of the base 11. For example, the two robot arms 12 are respectively connected to different parts in the width direction, which is one direction in a plan view, of the base 11. In other words, the direction in which the connection part of one robot arm 12 to the base 11 and the connection part of the other robot arm 12 to the base 11 are aligned in a plan view is the width direction. The base 11 may have a front and a back facing opposite sides in a plan view. For example, in the base 11, with the side where the front faces being the front and the side where the back faces being the rear, the front-rear direction is defined. The width direction may be a horizontal direction and perpendicular to the front-rear direction. That is, the width direction is the left-right direction with respect to the front-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] In addition, when the planar shape of the carriage 10 is a substantially square 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 Figure 1, the robot arm 12 has a plurality of links L and a plurality of joints J that connect the plurality of links L. The robot arm 12 is configured to move in three dimensions. In this example, the robot arm 12 is a multi-jointed robot arm. That is, the robot arm 12 may be able to freely change its shape by rotating its joints. The robot arm 12 is supported by a base 11.
[0025] For example, the multiple links L include a first link L1, second link L2, third link L3, fourth link L4, fifth link L5, sixth link L6, and seventh link L7, which are arranged in series from the base 11. 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, second joint J2, third joint J3, fourth joint J4, fifth joint J5, sixth joint J6, and seventh joint J7, which are arranged in series from the base 11. The position and orientation of the seventh link L7 have six degrees of freedom, combining the translational and rotational directions for each of the three orthogonal axes. The robot arm 12 may also be a so-called 7-axis robot, having seven joints J. In other words, the robot arm 12 has redundancy. Redundancy is the characteristic that 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 the first joint J1. The first link L1 and the second link L2 are rotatably connected by the second joint J2. The second link L2 and the third link L3 are rotatably connected by the third joint J3. The third link L3 and the fourth link L4 are rotatably connected by the fourth joint J4. The fourth link L4 and the fifth link L5 are rotatably connected by the fifth joint J5. The fifth link L5 and the sixth link L6 are rotatably connected by the sixth joint J6. The sixth link L6 and the seventh link L7 are rotatably connected by the seventh joint J7.
[0027] A hand 14 may be connected to the seventh link L7 at the tip of the robot arm 12. That is, 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] More specifically, multiple joints J may include joints that function as a shoulder joint. For example, multiple joints J may include joints that have the functions of horizontal extension and horizontal flexion in the shoulder joint. The axis of rotation of joints that have the functions of horizontal extension and horizontal flexion in the shoulder joint extends in a substantially vertical direction. Multiple joints J may include joints that have the functions of extension and flexion in the shoulder joint. The axis of rotation of joints that have 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 the shoulder joint of the robot arm 12. The first joint J1 may have the functions of horizontal extension and horizontal flexion in the shoulder joint. The axis of rotation of the first joint J1 extends in a substantially vertical direction.
[0030] For example, the second joint J2 functions as the shoulder joint of the robot arm 12. The second joint J2 may have extension and flexion functions in the shoulder joint. The axis of rotation of the second joint J2 extends in a substantially horizontal direction.
[0031] For example, the third joint J3 functions as the shoulder joint of the robot arm 12. The third joint J3 may also have the functions of internal rotation and external rotation in the shoulder joint.
[0032] Multiple joints J may include joints that function as a wrist joint. For example, multiple joints J may include joints that have internal and external rotation functions, or pronation and supination functions, at the wrist joint. For example, the seventh joint J7 may have internal and external rotation functions at the wrist joint. The sixth joint J6 may have pronation and supination functions at the wrist joint.
[0033] Multiple joints J may include an intermediate joint between the shoulder joint and the wrist joint. The intermediate joint may also be called the elbow joint. The intermediate joint may have extension and flexion functions, or internal and external rotation functions. The fourth joint J4 may have extension and flexion functions at the intermediate joint. The fifth joint J5 may have internal and external rotation functions at the intermediate joint.
[0034] The robot arm 12 has motors 12a (see Figure 3) that rotate each joint J. For example, motor 12a is a servo motor. Each motor 12a has an encoder 12b (see Figure 3).
[0035] The mobile body 100 may be equipped with a sensor 3 that detects objects around the mobile body 1 (hereinafter simply referred to as "surrounding objects"). In this disclosure, "object" includes both inanimate and living things. The sensor 3 is located on the mobile body 1. For example, the sensor 3 is located on the trolley 10. The sensor 3 in this example is a distance measuring sensor that measures the distance from the sensor 3 to the surrounding 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 surroundings of the mobile body 1 and a light-receiving unit that receives the laser light that strikes the surface of the surrounding objects and is reflected. The sensor 3 measures the flight time from the laser light emitted from the light-emitting unit until it strikes the surface of the surrounding objects and returns to the light-receiving unit. Based on the measured flight time, the sensor 3 measures the distance from the sensor 3 to the surface of the surrounding objects. The sensor 3 may generate point cloud data based on the measured distance. The point cloud data is three-dimensional positional information of the surface of the surrounding objects. For example, sensor 3 outputs the calculated point cloud data to control device 6. Sensor 3 may repeatedly detect surrounding objects at a predetermined detection cycle when the mobile body 1 is moving. Sensor 3 may output the detection result, i.e., point cloud data, to control device 6 each time a surrounding object is detected.
[0036] In this example, the mobile body 100 is equipped with multiple sensors 3. Figure 2 is a schematic diagram showing the detection range of the sensors 3. Figure 2 is a plan view of the mobile body 100, and the robot arm 12, etc., are omitted. 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 trolley 10. The first sensor 3A is located at the front of the trolley 10. For example, the first sensor 3A is located on the trolley 10 in front 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 1. The first sensor 3A may be a 3D LiDAR. The first sensor 3A scans the measurement light horizontally and vertically. In this example, the first sensor 3A scans the measurement light 360 degrees horizontally, as shown by the dashed line in Figure 2. In the vertical direction, the first sensor 3A scans the measurement light within a predetermined range that includes the elevation angle and the depression angle.
[0037] The second sensor 3B and the third sensor 3C may be located at the rear of the trolley 10. More specifically, the second sensor 3B and the third sensor 3C are located behind the base 11 of the trolley 10. The second sensor 3B is located at the left rear corner of the trolley 10, and the third sensor 3C is located at the right rear corner of the trolley 10. The second sensor 3B and the third sensor 3C may detect objects in the horizontal two-dimensional space around the mobile body 1. For example, the second sensor 3B and the third sensor 3C are 2D LiDAR. The second sensor 3B and the third sensor 3C scan the measurement light horizontally. The second sensor 3B and the third sensor 3C detect objects in the horizontal range that cannot be detected by at least the first sensor 3A. The second sensor 3B scans the measurement light at least to the left rear of the trolley 10. The third sensor 3C scans the measurement light at least to the right rear of the trolley 10. The scanning range of the measurement light from the second sensor 3B and the scanning range of the measurement light from the third sensor 3C partially overlap at the rear of the trolley 10. In this example, the second sensor 3B scans the measurement light horizontally for approximately 270 degrees from the front to the right, including the area to the left of the mobile body 1, as shown by the dashed line in Figure 2. The third sensor 3C scans the measurement light horizontally for approximately 270 degrees from the front to the left, including the area to the right of the mobile body 1, as shown by the dashed line in Figure 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 from the second sensor 3B and the scanning plane of the measurement light from the third sensor 3C are at approximately the same height.
[0038] As shown in Figure 2, since the base 11 is positioned behind the first sensor 3A, the first sensor 3A cannot properly scan the measurement light in the range F that overlaps with the base 11. On the other hand, since the second sensor 3B and the third sensor 3C are positioned behind the base 11, the second sensor 3B and the third sensor 3C can scan the measurement light into range F as well.
[0039] Hereafter, unless distinguished, the first sensor 3A, the second sensor 3B, and the third sensor 3C will simply be referred to as "sensor 3".
[0040] Figure 3 shows the hardware configuration of the control device 6. The control device 6 controls the entire mobile body 1. The control device 6 estimates the self-position of the mobile body 1 and causes the mobile body 1 to perform autonomous movement. The control device 6 operates the motors 13a of the wheels 13 to move the mobile body 1. Furthermore, the control device 6 controls the motors 12a of the robot arm 12 to cause the robot arm 12 to perform predetermined tasks. The control device 6 has a processor 61, a memory 62, and a memory 63.
[0041] The processor 61 performs various calculations. For example, the processor 61 is formed by a processor such as a CPU (Central Processing Unit). The processor 61 may also be formed by an MCU (Micro Controller Unit), MPU (Micro Processor Unit), FPGA (Field Programmable Gate Array), PLC (Programmable Logic Controller), system LSI, etc. The mobile body 1 moves autonomously by the processor 61 operating the motor 13a.
[0042] The memory 62 stores programs and various data executed by the processor 61. For example, the memory 62 stores control programs. The memory 62 also stores map information relating to 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, railings, 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, railings, 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 made of non-volatile memory, an HDD (Hard Disc Drive), or an SSD (Solid State Drive), etc. Memory 63 temporarily stores data, etc. For example, memory 63 is made of volatile memory.
[0043] Figure 4 is a functional block diagram showing the configuration of the control system of the processor 61. The processor 61 implements various functions by reading control programs from the memory 62 into the memory 63 and expanding them. 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 the path of 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 manipulated variable calculator 69 that calculates the manipulated variable of the motor 13a.
[0044] The state estimator 64 performs self-position estimation. The state estimator 64 receives the detection results from sensor 3, the detection results from encoder 13b, and map information from memory 62 as input. The map information is, for example, a three-dimensional map. The state estimator 64 compares the detection results from sensor 3 with the map information to estimate the current position of the mobile body 1, i.e., its own position. Here, the position of the mobile body 1 also includes its orientation, i.e., its attitude.
[0045] In this example, the state estimator 64 performs self-position estimation using the three-dimensional point cloud data from the first sensor 3A. The state estimator 64 compares the environmental information surrounding the mobile body 1, obtained from the three-dimensional point cloud data of the first sensor 3A, with a three-dimensional map to estimate the position of the mobile body 1 within the environment represented by the three-dimensional map, i.e., its own 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, the three-dimensional map is generated using SLAM (Simultaneous Localization and Mapping) technology before autonomous movement is performed. More specifically, while the mobile body 1 is moving through 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 map generation is performed before autonomous movement is performed, the movement of the mobile body 1 is performed by manual control by the user.
[0047] Furthermore, the map generator 65 updates the two-dimensional map. The two-dimensional map can also be updated during autonomous movement. The map generator 65 detects obstacles in the environment based on the detection results of the sensors 3 acquired while the mobile body 1 is moving, and updates the two-dimensional map.
[0048] The route generator 66 reads the destination and map information from the memory 62. The destination is pre-set 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 also read waypoints 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 refers to the map information to generate a path that avoids interference with obstacles, etc. If a path is established in the environment, the path generator 66 generates a path along the path. For example, the path generator 66 generates a path using the A-star search algorithm, RRT algorithm, Dijkstra's algorithm, or a geometric approach. The path generator 66 outputs an array of positions that the mobile body 1 will pass through as a path to the trajectory generator 67. Each position includes the attitude of the mobile body 1 in addition to the position information.
[0050] The trajectory generator 67 generates a target trajectory for the mobile body 1 from its current position, following the generated path. The trajectory generator 67 generates the target trajectory for the mobile body 1 in a predetermined manner (for example, the 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 the command velocity of the mobile body 1.
[0051] Alternatively, the trajectory generator 67 may calculate the command velocity using Model Predictive Control (MPC). Model Predictive Control obtains the control input, i.e., the velocity command, by sequentially solving an optimization problem based on a model of the mobile body 1. The trajectory generator 67 predicts future state variables from the current state variables of the mobile body 1 and any obstacles, calculates the optimal path for the mobile body 1, and calculates the command velocity as the speed at which it moves from its current position to its target position to follow that path.
[0052] The command speed calculated by the trajectory generator 67 is input to the movement controller 68. The movement controller 68 outputs a command value corresponding to the command speed to the manipulated variable calculator 69.
[0053] The mobile controller 68 performs controls to avoid interference between the mobile body 1 and the obstacle. The mobile controller 68 monitors the proximity of the mobile body 1 to the obstacle based on the detection results of the sensors 3. In this example, the mobile controller 68 uses all the detection results from the first sensor 3A, the second sensor 3B, and the third sensor 3C to monitor the proximity of the mobile body 1 to the obstacle. For example, the mobile 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 command values to multiple motors 13a and calculates the commanded manipulated variable for each of the multiple motors 13a. For example, the manipulated variable may be the rotational speed or torque of the motor.
[0055] Each motor 13a operates according to the commanded input. A motor 13a may be equipped with its own controller for operation. For example, if motor 13a is a servo motor, it further includes a servo amplifier. In that case, the servo amplifier operates motor 13a according to the commanded input. As a result, the mobile body 1 moves.
[0056] Next, the autonomous movement of the mobile body 100 will be explained in more detail. In this example, the mobile body 100 switches its autonomous movement method depending on the distance to the destination. Figure 5 is a schematic diagram illustrating the switching of autonomous movement. The control device 6 causes the mobile body 1 to perform a first autonomous movement in the 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 the second section S2 where the distance to the destination is within the switching range Q.
[0057] As shown in Figure 4, the processor 61 also functions as a determination unit 610 that determines whether to switch between the first autonomous movement and the second autonomous movement. Furthermore, the state estimator 64 includes a first state estimator 641 that performs a first self-position estimation and a second state estimator 642 that performs a second self-position estimation that is different from the first self-position 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 path 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 path plan.
[0059] The first self-localization method has lower estimation accuracy but higher robustness compared to the second self-localization method. Robustness here refers to tolerance for uncertainty in map information, discrepancies between map information and the real environment, and disturbances. For example, there may be discrepancies between the real environment and a pre-generated three-dimensional map. Alternatively, if the wheels 13 slip due to bumps in the road, a discrepancy will occur 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 method is highly robust, it can estimate the self-localization of the mobile body 1 even if such discrepancies occur.
[0060] For example, the first self-localization method 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 multiple 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 the particles with high likelihood.
[0061] The first self-localization is performed in the first section S1, which is outside the switching range Q, i.e., in a section relatively far from the destination. Therefore, autonomous movement can be achieved even if the estimation accuracy is lower compared to when it is near the destination. For this reason, the computational load can be reduced in the first self-localization by suppressing the estimation accuracy. In other words, the computational 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 performs path planning 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 performs path planning 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 there are objects in the actual environment that do not exist in the pre-generated map information, the path generator 66 generates a path that avoids the objects.
[0063] In the first autonomous movement, a highly robust first self-position estimation is performed, allowing for the estimation of the self-position while tolerating disturbances and discrepancies between map information and the actual environment. In addition, the first autonomous movement reduces the computational load of self-position estimation, enabling movement based on path planning. By performing path planning, a path is generated that avoids objects not included in the prior map information. Thus, the first autonomous movement enables the movement of the mobile body 1 while dealing with discrepancies between map information and the actual environment and avoiding objects.
[0064] In the second autonomous movement, the second state estimator 642 estimates the self-position of the mobile body 1 using 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 path planning.
[0065] For example, the second self-localization method is ICP (Iterative Closest Point) scan matching or NDT (Normal Distributions Transform) scan matching. The second self-localization method may also combine ICP scan matching or NDT scan matching with a Kalman filter. For example, in ICP scan matching, the nearest neighbor points are used as corresponding points between the point cloud data of the 3D map and the point cloud data of the sensor 3 detection result, and the self-localization is estimated so that the distance between corresponding points is minimized. The second self-localization method does not have the same high robustness as the first self-localization method, but it has higher estimation accuracy than the first self-localization method. However, the computational load of the second self-localization method may be greater than that of the first self-localization method.
[0066] In the second autonomous movement, the control device 6 does not perform path planning. The control device 6 moves the mobile body 1 in a straight line toward the destination. Specifically, the second state estimator 642 does not input its 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 its own position, and calculates the command speed to make the mobile body 1 align with the destination. As a result, the mobile body 1 moves approximately in a straight line toward the destination.
[0067] In this case, the trajectory generator 67 may pre-adjust the attitude of the mobile body 1 to the target attitude of the mobile body 1 at the destination before starting the movement of the mobile body 1 to the destination. Since the wheels 13 are omnidirectional wheels, the mobile body 1 moves parallel to the destination while maintaining the adjusted attitude.
[0068] The switching range Q where the second autonomous movement is performed is near the destination, and self-position estimation requires estimation accuracy rather than robustness. In the second autonomous movement, the second state estimator performs a second self-position estimation with relatively high accuracy, resulting in a highly accurate estimation of the self-position, and consequently, an improved accuracy in the arrival of the mobile body 1 at the destination. 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 positional accuracy of the mobile body 1 at the destination allows the robot arm 12 to perform the work appropriately. Also, the switching range Q is near the destination, and the possibility of objects being present between the mobile body 1 and the destination is low. In other words, within the switching range Q, the possibility of interference between the mobile body 1 and objects is low even without path planning. Since path planning is unnecessary, the second self-position estimation can be performed even if the computational load of the second self-position estimation is high.
[0069] The control device 6 transitions from the first autonomous movement to the second autonomous movement when the first transition condition is met. The first transition condition is an example of a transition condition. Specifically, the determination device 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-position estimation exceeds a predetermined standard. Therefore, the first autonomous movement cannot be switched to the second autonomous movement simply by the mobile body 1 entering the switching range Q. For example, even if the system switches to the second self-position estimation from a state where the estimation error by the first self-position estimation is large, there is a risk that the estimation by the second self-position estimation will not be performed appropriately. If the estimation accuracy by the second self-position estimation is low even when the mobile body 1 enters the switching range Q, the first self-position estimation will continue. As the mobile body 1 continues to move using the first self-position estimation, there is a possibility that the estimation accuracy by the second self-position estimation will eventually increase. Then, when the estimation accuracy of the second self-localization exceeds a certain threshold, the first autonomous movement is switched to the second autonomous movement.
[0070] More specifically, the classifier 610 receives the self-position estimated from the first state estimator 641 as input. Based on the self-position estimated by the first self-position estimation, the classifier 610 determines whether the mobile body 1 is located within the switching range Q. If the mobile body 1 is located within the switching range Q, the classifier 610 causes the second state estimator 642 to perform a second self-position estimation and determines whether the estimation accuracy of the self-position by the second self-position estimation exceeds a predetermined standard. The classifier 610 evaluates the estimation accuracy of the second self-position estimation by the likelihood of the estimation result of the second self-position estimation.
[0071] In this example, the classifier 610 calculates the likelihood as follows: The classifier 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 estimation, and searches for the point in the three-dimensional map's point cloud data that corresponds to each point in the detected point cloud data (hereinafter referred to as "corresponding point"). The classifier 610 calculates a plane (hereinafter referred to as "corresponding plane") from the corresponding point and several surrounding points in the three-dimensional map's point cloud data. The classifier 610 calculates the distance between the point in the detected point cloud data and the corresponding plane of that point. The classifier 610 calculates the distance to the corresponding plane for all points in the detected point cloud data. The classifier 610 designates points in the detected point cloud data whose calculated distance is less than or equal to a predetermined threshold as matching points. The classifier 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 agreement between each point in the detected point cloud data and the plane corresponding to that point in the three-dimensional map. The likelihood may also be the reciprocal of the average distance between all points in the detected point cloud data and the corresponding plane.
[0072] Alternatively, the classifier 610 positions the detected point cloud data at the location estimated by the second self-localization and calculates the distance between each corresponding pair of points in the detected point cloud data and the point cloud data of the three-dimensional map. The classifier 610 may use the reciprocal of the average value of the distances between each corresponding pair of points as the likelihood. In other words, for all points in the detected point cloud data, the classifier 610 calculates the distance to the corresponding point in the point cloud data of the three-dimensional map and calculates the reciprocal of the average value of those distances.
[0073] The classifier 610 determines that the estimation accuracy exceeds a predetermined standard if the likelihood is higher than a predetermined standard value. If the self-position determined by the first state estimation is within the switching range Q and the estimation accuracy of the second self-position estimation exceeds the standard, the classifier 610 switches from the first autonomous movement to the second autonomous movement.
[0074] Furthermore, the control device 6 transitions from the second autonomous movement to the first autonomous movement when the second transition condition is met. Specifically, the determination device 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 outside the switching range Q. Unlike the first transition condition, the second transition condition does not include a requirement for the accuracy of self-position estimation. Moreover, the switching range Q when transitioning from the second autonomous movement to the first autonomous movement may be wider than the switching range Q when transitioning from the first autonomous movement to the second autonomous movement. Specifically, the switching range Q when transitioning from the first autonomous movement to the second autonomous movement is referred to as the first switching range, and the switching range Q when transitioning from the second autonomous movement to the first autonomous movement is referred to as the second switching range. The second switching range includes the first switching range and is wider than the first switching range. That is, the second switching range is the range where the distance to the destination is greater than that of 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 unit 100 will be described in detail. Figure 6 is a flowchart of the first autonomous movement of the mobile unit 100. Figure 7 is a flowchart of the second autonomous movement of the mobile unit 100. The mobile unit 100 repeatedly performs the following processes of the first or second autonomous movement at a predetermined control cycle. Normally, the mobile unit body 1 starts autonomous movement from a position far from the destination, so the mobile unit body 1 first performs the first autonomous movement.
[0076] First, in step S101, the state estimator 64 acquires information about the surrounding environment. Specifically, the first state estimator 641 acquires the detection signal from the sensor 3 and the detection signal from the encoder 13b.
[0077] Next, the first state estimator 641 performs a first self-position estimation in step S102. Specifically, the first state estimator 641 estimates the self-position of the mobile body 1 by first self-position estimation based on map information (more specifically, a three-dimensional map), the detection signal from sensor 3, and the detection signal from encoder 13b.
[0078] Next, in step S103, the determination device 610 determines whether the mobile body 1 is located within the switching range Q. Specifically, the determination device 610 determines whether the self-position determined by the first state estimation of 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 performs route planning. The route generator 66 generates a route for the mobile body 1 based on map information (specifically, a two-dimensional map), the self-position obtained from the first self-position estimation, and the destination.
[0080] Next, in step S105, the trajectory generator 67 calculates the command velocity of the mobile body 1 from the estimated position so as to follow the generated path.
[0081] In step S106, the movement controller 68 causes the mobile body 1 to perform an action according to the commanded speed. In this way, the mobile body 1 moves according to the path generated by the path plan.
[0082] On the other hand, if the self-position in step S103 falls within the switching range Q, the determination unit 610 causes the second state estimator 642 to perform a second self-position estimation in step S107. The second state estimator 642 estimates the self-position of the mobile body 1 by second self-position estimation based on map information (specifically, a three-dimensional map), the detection signal from sensor 3, and the detection signal from encoder 13b.
[0083] Then, in step S108, the classifier 610 determines whether the likelihood of the estimation result of the second self-localization estimation is higher than the reference value.
[0084] If the likelihood is below the threshold value, the first transition condition is not met, and the decision-maker 610 does not switch from the first autonomous movement to the second autonomous movement. In that case, the path generator 66 executes path planning in step S104. After that, the processing from step S105 onwards is executed. In other words, the first autonomous movement continues.
[0085] If the likelihood is higher than the reference value, the first transition condition is met, and the classifier 610 transitions to the second autonomous movement in step S109.
[0086] In the second autonomous movement, as shown in Figure 7, in step S201, the state estimator 64 acquires information about the surrounding environment. Specifically, the second state estimator 642 acquires the detection signal from the sensor 3 and the detection signal from the encoder 13b.
[0087] Next, the second state estimator 642 performs a second self-position estimation in step S202. Specifically, the second state estimator 642 estimates the self-position of the mobile body 1 by second self-position estimation based on map information (more specifically, a three-dimensional map), the detection signal from sensor 3, and the detection signal from encoder 13b. The second state estimator 642 inputs the estimated self-position to the trajectory generator 67.
[0088] Furthermore, in the first steps S201 and S202 after transitioning from the first autonomous movement to the second autonomous movement, steps S201 and S202 may be omitted because the acquisition of environmental information and the estimation of the second self-position have already been completed in steps S101 and S107 of the first autonomous movement.
[0089] Next, in step S203, the determination unit 610 determines whether the mobile body 1 is located within the switching range Q. Specifically, the determination unit 610 determines whether the self-position determined by the second state estimation of the second state estimator 642 is within the switching range Q. The switching range Q at this time is expanded compared to the switching range Q in step S103.
[0090] If the self-position is within the switching range Q, the second transition condition is not met, so in step S204, the trajectory generator 67 generates a command velocity for the second autonomous movement. The trajectory generator 67 performs P control based on the difference between the destination and the self-position and calculates the command velocity to make the mobile body 1 align with the destination.
[0091] In step S205, the movement controller 68 causes the mobile body 1 to perform an action according to the commanded speed. In this way, the mobile body 1 moves in a substantially straight line to the destination.
[0092] The mobile unit 100 moves autonomously to its destination while performing self-position estimation of the mobile unit body 1 by repeating the above process.
[0093] On the other hand, if the self-position in step S203 is not within the switching range Q, the second transition condition is met, and the determination unit 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 at the time of transitioning to the second autonomous movement immediately after transitioning to the second autonomous movement, it will not transition to the first autonomous movement. As a result, the phenomenon of repeated switching between the first and second autonomous movement at short intervals, known as chattering, is prevented.
[0094] As described above, with the autonomous movement of the mobile body 1, in the first section S1, which is far from the destination, the self-position of the mobile body 1 is estimated by the first self-position estimation, and in the second section S2, which is close to the destination, the self-position of the mobile body 1 is estimated by the second self-position estimation. The first self-position estimation has lower estimation accuracy than the second self-position estimation, so the computational load can be reduced accordingly. On the other hand, the second self-position estimation tends to have a higher computational load than the first self-position estimation, but it has higher self-position estimation accuracy. In other words, in the first section S1, which is far from the destination, the reduction of computational load takes precedence over the reduction of self-position estimation accuracy. In the second section S2, which is close to the destination, the accuracy of self-position estimation takes precedence over the reduction of computational load. As a result, when looking at the entire section, it is possible to achieve both improved estimation accuracy in self-position estimation and reduced computational load.
[0095] Furthermore, in the first autonomous movement, a path plan is executed, and the mobile body 1 moves according to the generated path. This avoids interference between the mobile body 1 and objects. In the first autonomous movement, the computational load is reduced by the first self-position estimation, so a portion of the computational power can be used for path planning. In addition, the first self-position estimation is more robust to the surrounding environment than the second self-position estimation. Therefore, the first self-position estimation can estimate its own position while tolerating discrepancies or disturbances between the real environment and map information.
[0096] In the second autonomous movement, no path planning is 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 relatively simple calculations. For example, the mobile body 1 is moved by P control based on the difference between its own position and the destination. The mobile body 1 moves to the destination in a nearly straight line. Because the movement of the mobile body 1 is simple, the positional accuracy of the mobile body 1 is also high. In addition, because the estimation accuracy of the second self-position estimation is high, the positional accuracy of the mobile body 1 at the destination can be improved. Furthermore, since the switching range Q is close to the destination, the possibility of obstacles being present is low. Even with nearly straight line movement without path planning, the possibility of interference between the mobile body 1 and objects is low.
[0097] When a mobile body 1 has a robotic arm 12, the high positional accuracy of the mobile body 1 at the destination allows the robotic arm 12 to perform work appropriately at the destination.
[0098] The transition from the first autonomous movement to the second autonomous movement occurs not only when the mobile body 1 enters the switching range Q, but also when the estimation accuracy of the second self-position estimation exceeds a predetermined standard. Since the second self-position estimation is less robust than the first self-position estimation, there is a risk that the self-position estimation by the second self-position estimation may not be performed properly immediately after the switch. Therefore, the transition to the second autonomous movement is performed only after confirming whether or not the estimation accuracy of the second self-position 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 also control the robot arm 12 when performing autonomous movement. Figure 8 is a functional block diagram showing the configuration of the control system of the processor 61 according to a modified example. The processor 61 may also 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 deforms 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 corresponding to the target shape of the robot arm 12. Based on the command values, the arm controller 611 calculates the command operation amount for each of the multiple motors 12a. For example, the operation amount is the rotational speed or torque of the motor.
[0102] The arm controller 611 may maintain the robot arm 12 in a constant shape during the first section S1 and operate the robot arm 12 during the second section S2.
[0103] For example, in the first section S1, the arm controller 611 maintains the robot arm 12 in a travel position. In other words, in the first section S1, the arm controller 611 fixes the shape of the robot arm 12 and prohibits its movement.
[0104] Figure 9 is a side view of the mobile body 1 when the robot arm 12 is in a traveling configuration. Figure 10 is a top view of the mobile body 1 when the robot arm 12 is in a traveling configuration.
[0105] For example, the robot arm 12 in a mobile configuration is positioned relatively high. For instance, the mobile robot arm 12 bends at an intermediate joint between the shoulder and wrist joints, for example, the fourth joint J4. The portion between the base 11 and the intermediate joint extends diagonally downward and backward from the base 11, while the portion between the intermediate joint and the wrist joint extends forward from the intermediate joint. In other words, the mobile robot arm 12 has a shape where the intermediate joint is pulled backward and bent at the intermediate joint. As a result, the portion of the robot arm 12 closer to the end effector than the intermediate joint is positioned relatively high. Furthermore, the end effector of the robot arm 12 is positioned relatively far back.
[0106] In its mobile configuration, the robot arm 12 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. Since the robot arm 12 is positioned above the first sensor 3A, it may obstruct a portion of the detection range of the first sensor 3A. The detection results of the first sensor 3A corresponding to the robot arm 12 are treated as invalid. The higher the position of the robot arm 12, the further away the robot arm 12 is from the first sensor 3A. The further the robot arm 12 is from the first sensor 3A, the smaller the area of the detection range of the first sensor 3A tends to be obstructed by the robot arm 12. Therefore, in its mobile configuration, the detection range of the first sensor 3A is relatively large.
[0107] Furthermore, the amount of forward protrusion of the robot arm 12 in its travel shape from the base 11 is relatively small. By reducing the amount of forward protrusion of the robot arm 12, the detection range of the first sensor 3A, specifically the diagonally upward forward area from the first sensor 3A, is expanded.
[0108] The overall width of the robot arm 12 in its mobile configuration, as viewed from above, is relatively small. For example, in the mobile configuration, the second link L2 is located on the outermost side in the width direction. Of the multiple links L, all links other than the second link L2 are positioned further inward in the width direction than the second link L2. By making the overall width of the robot arm 12 in its mobile configuration, as viewed from above, relatively small, the possibility of interference between the robot arm 12 and other objects located in the width direction during movement can be reduced. In addition, the robot arm 12 in its mobile configuration may be positioned in front of the rotation axis of the first joint J1 in the front-rear direction by rotating the first link L1 forward around the rotation axis of the first joint J1. This further reduces the width of the second link L2 of the two robot arms, i.e., the overall width of the robot arm 12 as viewed from above.
[0109] The overall shape of the robot arm 12 in its travel configuration, as seen from a plan view, is contained within the carriage 10 in the front-to-back direction. This reduces the possibility of interference between the robot arm 12 and other objects located in the front-to-back direction during travel.
[0110] Furthermore, the shapes of the two robot arms 12 do not have to be exactly the same in terms of their movement. In other words, the shapes of the two robot arms 12 may be slightly different. For example, the tip of one robot arm 12 may be at a different height than the tip of the other robot arm 12. The rotation angles of the seventh joint J7 of one robot arm 12 may be different from those 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, allowing it to move freely. For example, the arm controller 611 operates the robot arm 12 after the mobile body 1 has reached its destination, and the robot arm 12 performs the work.
[0112] As described above, in the first section S1, the accuracy of self-position estimation is relatively low, so fixing the shape of the robot arm 12 reduces the possibility of interference between the mobile body 1 and surrounding objects. On the other hand, in the second section S2, the accuracy of self-position estimation is relatively high, enabling the movement of the robot arm 12. Because the accuracy of self-position estimation is high, the accuracy of work performed by the robot arm 12 also improves.
[0113] Figure 11 is a side view of a modified mobile body 100. The mobile body 100 has multiple sensors 3, including a first sensor 3A and a fourth sensor 3D. The mobile 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 located on the robot arm 12. For example, the fourth sensor 3D is located on one of the robot arms 12. The fourth sensor 3D is optionally located on one of the multiple links L. For example, the fourth sensor 3D is located 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 objects in the three-dimensional space surrounding the mobile body 1. For example, the fourth sensor 3D is 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 sensors 3 used for self-position estimation depending on the type of self-position estimation. For example, the control device 6 may perform a first self-position estimation based on the detection result of one of the multiple sensors 3, and perform a second self-position estimation based on the detection result of another of the multiple sensors 3.
[0117] The sensor 3 used for the second self-position estimation is positioned closer to the tip of the robot arm 12 than the sensor 3 used for the first self-position estimation. That is, the distance from the sensor 3 used for the second self-position estimation to the tip of the robot arm 12 is shorter than the distance from the sensor 3 used for the first self-position estimation to the tip of the robot arm 12. For example, the sensor 3 used for the first self-position estimation is the first sensor 3A, and the sensor 3 used for the second self-position estimation is the fourth sensor 3D. The tip of the robot arm 12 is, for example, the seventh link L7.
[0118] Here, the distance to the tip of the robot arm 12 refers to the distance through the 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, passing sequentially through the connection point of the base 11 of the trolley 10, the connection point of the robot arm 12 to the base 11, and each joint J of the robot arm 12, 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, passing sequentially through the joints J of the robot arm 12 that are located closer to the tip of the robot arm 12 than the fourth sensor 3D, 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 using the fourth sensor 3D for self-position estimation, the accuracy of the estimation of the position of the tip of the robot arm 12 is improved. The second section S2 in which self-position estimation is performed using the fourth sensor 3D includes the destination. Therefore, when the robot arm 12 performs work at the destination, the position of the tip of the robot arm 12 is estimated with high accuracy. As a result, the accuracy of the work performed by the robot arm 12 is improved.
[0120] The first sensor 3A is relatively far from the tip of the robot arm 12. The positional accuracy of the tip of the robot arm 12 obtained by self-position estimation using the first sensor 3A may be inferior to that obtained by self-position 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 as much as possible by the base 11 and the robot arm 12.
[0122] Furthermore, the detection range of the fourth sensor 3D may be narrower than the detection range of the first sensor 3A. When the fourth sensor 3D is positioned on the robot arm 12, the detection range of the fourth sensor 3D depends on the movement shape of the robot arm 12. Part of the detection range of the fourth sensor 3D may be obstructed by the base 11, etc. The area of the detection range of the fourth sensor 3D that is obstructed by the base 11, etc. may be larger than the area of the detection range of the first sensor 3A that is obstructed by the base 11, etc. The first section S1 is relatively far from the destination. Therefore, in the first section S1, self-position estimation using the first sensor 3A is performed, prioritizing the detection of a wide range of objects over the positional accuracy of the tip of the robot arm 12.
[0123] Other embodiments As described above, the embodiments described herein have been presented as examples of the technology disclosed in this application. However, the technology in this disclosure is not limited thereto and can be applied to embodiments that have been modified, replaced, added, or omitted as appropriate. Furthermore, it is possible to combine the components described in the embodiments above to create new embodiments. In addition, the components described in the attached 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 illustrate the technology. Therefore, the mere presence of such non-essential components in the attached drawings and detailed description should not be immediately assumed to mean that those 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, ship, or vehicle. The location where the mobile body 1 moves is not limited to a passageway, but may be a road or waterway. The mobile body 1 does not have to include a robot arm 12. The base 11 may be rotatable relative to the trolley 10. The wheels 13 are not limited to omnidirectional wheels. If the wheels 13 are omnidirectional wheels, they may be omni-wheels.
[0125] Sensor 3 is not limited to LiDAR. Sensor 3 may be a two-dimensional or three-dimensional camera. Sensor 3 may be a three-dimensional scanner. Sensor 3 may be located on parts of the mobile body 1 other than the trolley 10. The number of sensors 3 is not limited to three. The number of sensors 3 may be one, two, or four or more. The scanning range of the measurement light of the first sensor 3A, second sensor 3B, and third sensor 3C described above is merely an example. For example, the first sensor 3A may scan the measurement light in a region that includes at least the area in front of the mobile body 1. The first sensor 3A may scan the measurement light in 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. The second sensor 3B and the third sensor 3C may each scan the measurement light horizontally 360 degrees. The second sensor 3B may scan the measurement light in a predetermined range (not limited to 270 degrees) that includes the area to the left rear of the mobile body 1. For example, the second sensor 3B may scan the measurement light 360 degrees horizontally. The third sensor 3C may scan the measurement light within 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 scan the measurement light 360 degrees horizontally.
[0126] The first and second self-localization methods described above are merely examples. The first self-localization method is preferably computationally less demanding and more robust than the second self-localization method. The second self-localization method is preferably more accurate than the first self-localization method.
[0127] The movement in the second autonomous movement is not limited to P control. Any control can be adopted as long as it moves the mobile body 1 to the destination based on the difference between its own position and the destination.
[0128] The transition conditions from the first autonomous movement to the second autonomous movement are not limited to the examples described above. The transition condition may simply be that the mobile body 1 enters the switching range Q. Alternatively, the transition conditions may include additional conditions beyond those described above. The switching range Q does not need to change when switching from the first autonomous movement to the second autonomous movement, or when switching from the second autonomous movement to the first autonomous movement. The method for calculating the likelihood of the estimation result of the second self-localization is merely one example. The likelihood can be calculated by any method as long as it represents the certainty of the estimated position. The evaluation of the estimation accuracy by the second self-localization is not limited to evaluation by likelihood. Other indicators that represent estimation accuracy may be used to evaluate the estimation accuracy.
[0129] The flowchart is merely an example. You may change, replace, add, or omit steps in the flowchart as needed. You may also change the order of steps in the flowchart or process sequentially in parallel.
[0130] The functions 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 circuits. The functions 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 circuits. One or more circuits or processing circuits may be programmed using one or more programs stored together or individually in one or more memories, or may be otherwise configured to perform the disclosed functions. A processor is considered a processing circuit or circuit because it includes transistors and other circuits. A processor may be a programmed processor that executes programs stored in memory. In this disclosure, a circuit, unit, or means is hardware that performs the enumerated functions alone or in combination with each other, or hardware programmed to perform the enumerated functions alone or in combination with each other. The hardware may be any hardware disclosed herein that is programmed or configured to perform the listed functions.
[0131] A computer program, including computer instructions, is stored in memory. The computer instructions provide logic and routines that enable hardware to execute the methods disclosed herein. The hardware includes, for example, processing circuits or circuits. The computer program may be implemented in a known format on computer-readable storage media, computer program products, memory devices, recording media such as CD-ROMs or DVDs, and / or in the memory of FPGAs or ASICs.
[0132] [Pattern] The above-mentioned embodiment is a specific example of the following embodiment.
[0133] (Aspect 1) The 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. 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. In the first autonomous movement, the control device 6 estimates the self-position of the mobile body 1 by a first self-position estimation, and in the second autonomous movement, the control device 6 estimates the self-position of the mobile body 1 by a second self-position estimation that has higher estimation accuracy than the first self-position estimation.
[0134] In this configuration, the first and second self-position estimations are switched depending on the distance to the destination. When the distance to the destination is short, the second self-position estimation, which has relatively high accuracy, is performed. This improves the positional accuracy of the mobile body 1 at the destination. When the distance to the destination is long, the first self-position estimation, which has lower accuracy than the second self-position estimation, is performed. The first self-position estimation tends to have a lower computational load than the second self-position estimation because of its lower estimation accuracy. In other words, the computational load of self-position estimation can be reduced in sections where the distance to the destination is long. As a result, the overall computational load of self-position estimation until reaching the destination can be reduced while improving the positional accuracy of the mobile body 1 at the destination.
[0135] (Aspect 2) In the mobile body 100 described in Aspect 1, the control device 6, in the first autonomous movement, executes a route plan for the mobile body 1 based on the self-position estimated by the first self-position estimation, and moves the mobile body 1 based on the route plan, and in the second autonomous movement, moves the mobile body 1 to the destination based on the self-position estimated by the second self-position estimation without performing a route plan.
[0136] In this configuration, during the first autonomous movement, a path is generated based on the path plan, and the mobile body 1 moves according to the generated path. By performing path planning, interference between the mobile body 1 and objects can be avoided. In addition, the computational load of the first self-position estimation during the first autonomous movement tends to be relatively small. In other words, by combining the first self-position estimation and path planning during the first autonomous movement, interference between the mobile body 1 and objects can be avoided while preventing excessive computational load.
[0137] (Aspect 3) In the mobile 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 transition conditions are met, the transition conditions being that the mobile body 1 enters the switching range Q and the estimation accuracy by the second self-position estimation exceeds a predetermined standard.
[0138] In this configuration, the first autonomous movement is switched to the second autonomous movement when the mobile body 1 enters the switching range Q, and the estimation accuracy of the second self-position estimation exceeds a certain standard. Even if the mobile body 1 enters the switching range Q, if the estimation accuracy of the second self-position estimation is low, the first autonomous movement continues. Eventually, when the estimation accuracy of the second self-position estimation exceeds the standard, the first autonomous movement is switched to the second autonomous movement. This allows the second self-position estimation to start smoothly.
[0139] (Aspect 4) In the mobile body 100 described in any one of aspects 1 to 3, the first self-position estimation is more robust than the second self-position estimation.
[0140] This configuration improves robustness to the surrounding environment during the first autonomous movement phase. As a result, highly robust movement is performed using the first autonomous movement phase in sections far from the destination, while highly accurate positional movement is performed using the second autonomous movement phase in sections closer to the destination.
[0141] (Aspect 5) In the mobile body 100 described in any one of aspects 1 to 4, the mobile body 1 includes a robotic arm 12 and is a mobile robot.
[0142] With this configuration, the positional accuracy of the mobile body 1 at the destination is improved by the second self-position estimation, which has relatively high accuracy, so that the robot arm 12 can perform work properly at the destination.
[0143] (Aspect 6) In the mobile body 100 described in any one of aspects 1 to 5, the mobile body 1 is a mobile robot including a robot arm 12, 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] In this configuration, the robot arm 12 maintains a constant shape in the first section S1 and becomes operational in the second section S2. In the first section S1, a first self-position estimation with relatively low estimation accuracy is performed. In this first section S1, by maintaining a constant shape of the robot arm 12, the possibility of interference between the mobile body 1 and surrounding objects is reduced. In the second section S2, a second self-position estimation with relatively high estimation accuracy is performed. Therefore, in the second section S2, the robot arm 12 operates while avoiding interference between the robot arm 12 and surrounding objects.
[0145] (Aspect 7) The mobile body 100 according to any one of aspects 1 to 6, further comprising a plurality of sensors 3 arranged on the mobile body 1 for detecting objects around the mobile body 1, wherein the mobile body 1 is a mobile robot including a robot arm 12, and the control device 6 performs the first self-position estimation based on the detection result of one of the plurality of sensors 3, and performs the second self-position estimation based on the detection result of another of the plurality of sensors 3, wherein the other sensor 3 used for the second self-position estimation is positioned closer to the tip of the robot arm 12 than the one sensor 3 used for the first self-position estimation.
[0146] In this configuration, self-position estimation is performed using one sensor 3 in the first section S1, and self-position estimation is performed using another sensor 3 in the second section S2. Since the other sensor 3 is positioned closer to the tip of the robot arm 12, the positional accuracy of the tip of the robot arm 12 is improved when self-position estimation is performed using the other sensor 3. Therefore, the accuracy of the robot arm 12's work in the second section S2 is improved.
[0147] (Aspect 8) A control method for a mobile body 1 is a control method for a mobile body 100 that causes the mobile body 1 to perform autonomous movement while estimating the self-position of the mobile body 1, and includes 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 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 when performing the first autonomous movement, the self-position of the mobile body 1 is estimated by a first self-position estimation, and when performing the second autonomous movement, the self-position of the mobile body 1 is estimated by a second self-position estimation which has higher estimation accuracy than the first self-position estimation.
[0148] In this configuration, the first and second self-position estimations are switched depending on the distance to the destination. When the distance to the destination is short, the second self-position estimation, which has relatively high accuracy, is performed. This improves the positional accuracy of the mobile body 1 at the destination. When the distance to the destination is long, the first self-position estimation, which has lower accuracy than the second self-position estimation, is performed. The first self-position estimation tends to have a lower computational load than the second self-position estimation because of its lower estimation accuracy. In other words, the computational load of self-position estimation can be reduced in sections where the distance to the destination is long. As a result, the overall computational load of self-position estimation until reaching the destination can be reduced while improving the positional accuracy of the mobile body 1 at the destination.
[0149] (Aspect 9) The control program for the mobile body 100 is a control program for the mobile body 1 that causes the mobile body 1 to perform autonomous movement while estimating the self-position of the mobile body 1, and the computer implements a function to cause 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 to cause 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 to perform the first autonomous movement estimates the self-position of the mobile body 1 by first self-position estimation, and the function to perform the second autonomous movement estimates the self-position of the mobile body 1 by second self-position estimation which has higher estimation accuracy than the first self-position estimation.
[0150] In this configuration, the first and second self-position estimations are switched depending on the distance to the destination. When the distance to the destination is short, the second self-position estimation, which has relatively high accuracy, is performed. This improves the positional accuracy of the mobile body 1 at the destination. When the distance to the destination is long, the first self-position estimation, which has lower accuracy than the second self-position estimation, is performed. The first self-position estimation tends to have a lower computational load than the second self-position estimation because of its lower estimation accuracy. In other words, the computational load of self-position estimation can be reduced in sections where the distance to the destination is long. As a result, the overall computational load of self-position estimation until reaching the destination can be reduced while improving the positional accuracy of the mobile body 1 at the destination. [Explanation of symbols]
[0151] 100 Mobile Units 1 Mobile Unit 12 Robot Arms 6 Control device Q Switching range S1 Section 1 S2 Section 2
Claims
1. The mobile unit body and The system includes a control device that causes the mobile body to perform autonomous movement while estimating the self-position of the mobile body, The control device causes 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 causes the mobile body to perform a second autonomous movement different from the first autonomous movement in a second section where the distance to the destination is within the switching range. In the first autonomous movement described above, the control device estimates the self-position of the mobile body by first self-position estimation, In the second autonomous movement described above, the control device estimates the self-position of the mobile body by a second self-position estimation that has higher estimation accuracy than the first self-position estimation.
2. In the mobile body described in claim 1, The control device is In the first autonomous movement, a path plan for the mobile body is executed based on the self-position estimated by the first self-position estimation, and the mobile body is moved based on the path plan. In the second autonomous movement described above, the mobile body moves to the destination based on its own position estimated by the second self-position estimation, without performing route planning.
3. In the mobile body described in claim 1, The control device transitions the first autonomous movement to the second autonomous movement when the transition conditions are met. The transition condition is that the mobile body enters the switching range and the estimation accuracy by the second self-position estimation exceeds a predetermined standard.
4. In the mobile body described in claim 1, The first self-localization method is more robust to the moving body compared to the second self-localization method.
5. In the mobile body according to any one of claims 1 to 4, The aforementioned mobile body is a mobile robot that includes a robotic arm and is movable.
6. In the mobile body described in claim 1, The aforementioned mobile body is a mobile robot that includes a robotic arm. The control device is In the first section, the robot arm is maintained in a constant shape. A mobile body that operates the robot arm in the second section.
7. In the mobile body described in claim 1, The mobile body is further equipped with a plurality of sensors arranged on the mobile body to detect objects in the vicinity of the mobile body, The aforementioned mobile body is a mobile robot that includes a robotic arm. The control device performs the first self-position estimation based on the detection result of one of the plurality of sensors, and performs the second self-position estimation based on the detection result of another of the plurality of sensors. A moving body in which the other sensor used for the second self-position estimation is positioned closer to the tip of the robot arm than the first sensor used for the first self-position estimation.
8. A method for controlling a mobile body, which involves estimating the mobile body's own position and causing the mobile body to perform autonomous movement, The mobile body is made to perform a first autonomous movement in a first section where the distance to the destination is outside a predetermined switching range, This includes 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, In executing the first autonomous movement described above, the self-position of the moving body is estimated by the first self-position estimation, A method for controlling a mobile body, wherein, in performing the second autonomous movement described above, the self-position of the mobile body is estimated by a second self-position estimation that has higher estimation accuracy than the first self-position estimation.
9. A control program for a mobile body that causes the mobile body to perform autonomous movement while estimating the mobile body's own position, A function to cause 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, The computer is given the function of 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. The function that enables the first autonomous movement estimates the self-position of the moving body by first self-position estimation, The function for performing the second autonomous movement is a control program for a mobile body that estimates the self-position of the mobile body by a second self-position estimation that has higher estimation accuracy than the first self-position estimation.