Moving body, control device, obstacle map generation method, and obstacle map generation program
Patent Information
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2025-07-15
- Publication Date
- 2026-08-13
Smart Images

Figure JP2025025387_13082026_PF_FP_ABST
Abstract
Description
Mobile body, control device, method for generating obstacle map, and program for generating obstacle map
[0001] The technology disclosed herein relates to a mobile body, a control device, a method for generating an obstacle map, and a program for generating an obstacle map.
[0002] Patent Document 1 discloses a mobile robot having a plurality of image sensors. The mobile robot moves based on the locations of objects detected by the plurality of image sensors.
[0003] Japanese Unexamined Patent Application Publication No. 2014-195868
[0004] By the way, a mobile body moves while avoiding obstacles using an obstacle map. By using a more secure obstacle map, the safety of the movement of the mobile body is improved.
[0005] The technology disclosed herein has been made in view of such a point, and the object thereof is to generate a more secure obstacle map.
[0006] The mobile body disclosed herein includes a mobile body main body, a plurality of sensors that detect objects around the mobile body main body, and a control device that generates an obstacle map indicating the positions of obstacles by evaluating the presence or absence of obstacles based on the detection results of the plurality of sensors. The plurality of sensors include a first sensor and a second sensor having a lower detection accuracy of obstacles than the first sensor. The control device positively evaluates the presence of an obstacle at a position where an obstacle is detected by the first sensor in the detection range of the first sensor, while negatively evaluating the presence of an obstacle at a position where an obstacle is not detected by the first sensor. In the detection range of the second sensor, the control device positively evaluates the presence of an obstacle at a position where an obstacle is detected by the second sensor, while maintaining the evaluation of the presence of an obstacle at a position where an obstacle is not detected by the second sensor, or negatively evaluating the presence of an obstacle at a position where an obstacle is not detected by the second sensor with a degree of negativity smaller than the negative evaluation in the detection range of the first sensor.
[0007] The control device disclosed herein generates an obstacle map indicating the location of obstacles by evaluating the presence or absence of obstacles based on the detection results of a plurality of sensors that detect objects around the body of the mobile body, wherein the plurality of sensors include a first sensor and a second sensor having a lower obstacle detection accuracy than the first sensor, and within the detection range of the first sensor, the presence of an obstacle at a location where an obstacle is detected by the first sensor is positively evaluated, while the presence of an obstacle at a location where an obstacle is not detected by the first sensor is negatively evaluated, and within the detection range of the second sensor, the presence of an obstacle at a location where an obstacle is detected by the second sensor is positively evaluated, while the evaluation of the presence of an obstacle at a location where an obstacle is not detected by the second sensor is maintained, or the evaluation of the presence of an obstacle at a location where an obstacle is not detected by the second sensor is negatively evaluated to a smaller degree than the negative evaluation within the detection range of the first sensor.
[0008] The obstacle map generation method disclosed herein is a method for generating an obstacle map, comprising: evaluating the presence or absence of obstacles based on the detection results of a plurality of sensors that detect objects around the main body of a moving object; and generating an obstacle map indicating the location of obstacles based on the evaluation of the presence or absence of obstacles, wherein the plurality of sensors include a first sensor and a second sensor having a lower obstacle detection accuracy than the first sensor, and in generating the obstacle map, within the detection range of the first sensor, the presence of obstacles at locations where obstacles are detected by the first sensor is positively evaluated, while the presence of obstacles at locations where obstacles are not detected by the first sensor is negatively evaluated; within the detection range of the second sensor, the presence of obstacles at locations where obstacles are detected by the second sensor is positively evaluated, while the evaluation of the presence of obstacles at locations where obstacles are not detected by the second sensor is maintained, or the evaluation of the presence of obstacles at locations where obstacles are not detected by the second sensor is negatively evaluated to a smaller degree than the negative evaluation within the detection range of the first sensor.
[0009] The obstacle generation program disclosed herein is an obstacle map generation program that enables a computer to perform the following functions: evaluate the presence or absence of obstacles based on the detection results of a plurality of sensors that detect objects around the main body of a moving object; and generate an obstacle map indicating the location of obstacles based on the evaluation of the presence or absence of obstacles. The plurality of sensors include a first sensor and a second sensor having a lower obstacle detection accuracy than the first sensor. In the function of generating the obstacle map, within the detection range of the first sensor, the presence of obstacles at locations where obstacles are detected by the first sensor is evaluated positively, while the presence of obstacles at locations where obstacles are not detected by the first sensor is evaluated negatively. Within the detection range of the second sensor, the presence of obstacles at locations where obstacles are detected by the second sensor is evaluated positively, while the evaluation of the presence of obstacles at locations where obstacles are not detected by the second sensor is maintained, or the evaluation of the presence of obstacles at locations where obstacles are not detected by the second sensor is evaluated negatively to a smaller degree than the negative evaluation within the detection range of the first sensor.
[0010] According to the aforementioned mobile device, a safer obstacle map can be generated.
[0011] According to the control device, a safer obstacle map can be generated.
[0012] According to the method for generating obstacle maps described above, it is possible to generate obstacle maps that are safer.
[0013] According to the obstacle map generation program, a safer obstacle map can be generated.
[0014] Figure 1 is a perspective view of the mobile body. Figure 2 is a schematic diagram showing the detection range of the sensor. Figure 3 is a diagram showing the hardware configuration of the control device. Figure 4 is a conceptual diagram conceptually showing the detection map. Figure 5 is an explanatory diagram for explaining the accuracy of object detection. Figure 6 is a conceptual diagram conceptually showing the obstacle map. Figure 7 is a functional block diagram showing the configuration of the control system of the processor. Figure 8 is a flowchart of the basic operation of the mobile body. Figure 9 is a flowchart of the method for generating the obstacle map. Figure 10 is a conceptual diagram conceptually showing the obstacle map before updating. Figure 11 is a flowchart of an example of a method for changing the probability of obstacle presence. Figure 12 is an example of an odds correspondence table. Figure 13 is a functional block diagram showing the configuration of the control system of the processor according to a modified example. Figure 14 is a side view of the mobile body when the robot arm is in a traveling shape. Figure 15 is a top view of the mobile body when the robot arm is in a traveling shape.
[0015] 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 body 1 and a control device 6 that causes the mobile body 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.
[0016] For example, the mobile body 1 is a mobile robot that includes a robot arm 12. More specifically, the mobile body 1 may have a trolley 10, a base 11 mounted on the trolley 10, and a robot arm 12 connected to the base 11.
[0017] The trolley 10 has a defined front-to-back direction. In this example, the trolley 10 has a roughly rectangular planar shape. For example, the long side of the rectangle is the front-to-back direction, and the short side of the rectangle is the left-to-right direction.
[0018] The trolley 10 includes multiple wheels 13 and is capable of movement. In this example, the trolley 10 includes four wheels 13. The trolley 10 may be capable of moving in a straight line and turning. In this example, the trolley 10 is capable of moving forward and backward, left and right, and diagonally while maintaining its posture, i.e., it is capable of movement in all directions. In other words, the trolley 10 may be capable of parallel movement in directions other than the forward and backward direction. Furthermore, the trolley 10 may also be capable of rotating in place. For example, the four wheels 13 include a pair of wheels 13 arranged in the left-right direction at the front of the bottom of the trolley 10 and a pair of wheels 13 arranged in the left-right direction at the rear of the bottom of the trolley 10. They may be arranged to form a rectangle at the bottom of the trolley 10. More specifically, the four wheels 13 are arranged at the four corners of the bottom of the trolley 10.
[0019] More specifically, wheel 13 may be an omnidirectional wheel. In this example, wheel 13 is a Mecanum wheel. Wheel 13 has a plurality of barrel-shaped rollers arranged around its outer circumference. For example, the axis of rotation of each roller is inclined at 45 degrees with respect to the axle of wheel 13.
[0020] The mobile body 1 may have a motor 13a for driving the wheels 13 and an encoder 13b for detecting the amount of rotation of the motor 13a (see Figure 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 driven independently by the corresponding motors 13a.
[0021] The trolley 10 may be able to move in any direction in two dimensions using these four wheels 13. For example, the trolley 10 can move or rotate in any direction, such as forward, backward, left, right, or diagonally. The trolley 10 can also rotate in place.
[0022] The base 11 may be mounted on the trolley 10. In this example, the base 11 has a shape that mimics the upper body of a person. The base 11 may be fixed to the trolley 10 so as not to move.
[0023] The mobile unit 1 has two robot arms 12. A hand 14 may be attached to the tip of each robot arm 12.
[0024] The two robot arms 12 are each connected to different parts of the base 11. For example, the two robot arms 12 are each connected to different parts 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 points of one robot arm 12 to the base 11 and the connection points 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, in the base 11, the front direction is defined as the side facing the front and the back direction as the rear. The width direction may be horizontal and perpendicular to the front-to-back direction. That is, the width direction is the left-to-right direction with respect to the front-to-back direction. For example, one robot arm 12 is connected to the left side of the base 11, and the other robot arm 12 is connected to the right side of the base 11.
[0025] Furthermore, if the planar shape of the trolley 10 is a roughly rectangular shape with a longitudinal direction and a transverse direction, the width direction will substantially coincide with the transverse direction of the planar shape of the trolley 10.
[0026] 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 operate 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.
[0027] 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 seven-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.
[0028] 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.
[0029] A hand 14 may be connected to the 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.
[0030] 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.
[0031] For example, the first joint J1 functions as the shoulder joint of the robot arm 12. The first joint J1 may also 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.
[0032] For example, the second joint J2 functions as the shoulder joint of the robot arm 12. The second joint J2 may also have extension and flexion functions in the shoulder joint. The axis of rotation of the second joint J2 extends in a substantially horizontal direction.
[0033] 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.
[0034] Multiple joints J may include joints that function as a wrist joint. For example, multiple joints J may include joints that have the functions of internal and external rotation, or pronation and supination, at the wrist joint. For example, the seventh joint J7 may have the functions of internal and external rotation at the wrist joint. The sixth joint J6 may have the functions of pronation and supination at the wrist joint.
[0035] 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.
[0036] The robot arm 12 has motors 12a (see Figure 3) that rotate each joint J. For example, the motors 12a are servo motors. Each motor 12a has an encoder 12b (see Figure 3).
[0037] The mobile body 100 may be equipped with a plurality of sensors 3 for detecting objects around the mobile body 1 (hereinafter simply referred to as "surrounding objects"). In this disclosure, "object" includes both inanimate and living things. Each sensor 3 is located on the mobile body 1. For example, each sensor 3 is located on the trolley 10. The sensors 3 in this example are distance measuring sensors that measure the distance from the sensor 3 to the surrounding object. For example, each sensor 3 is a LiDAR (Light Detection and Ranging) sensor. Each 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 reflected after it strikes the surface of the surrounding object. Each sensor 3 measures the flight time from the laser light emitted from the light-emitting unit until it strikes the surface of the surrounding object and returns to the light-receiving unit. Based on the measured flight time, each sensor 3 measures the distance from the sensor 3 to the surface of the surrounding object. Each 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 object. For example, each sensor 3 outputs the calculated point cloud data to the control device 6. The sensors 3 may repeatedly detect surrounding objects at a predetermined detection cycle when the mobile body 1 is moving. Each time a surrounding object is detected, each sensor 3 may output its detection result, i.e., the point cloud data, to the control device 6.
[0038] Figure 2 is a schematic diagram showing the detection range of sensor 3. Figure 2 is a plan view of the mobile body 100, and the robot arm 12 and other components are omitted. The multiple sensors 3 may include a front sensor 3A, a first rear sensor 3B, and a second rear sensor 3C. Front sensor 3A is an example of a first sensor. The first rear sensor 3B and the second rear sensor 3C are examples of second sensors. Front sensor 3A, first rear sensor 3B, and second rear sensor 3C are arranged on the trolley 10.
[0039] The front sensor 3A detects objects in a region including at least the front of the mobile body 1. The front sensor 3A may be located at the front of the trolley 10. For example, the front 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 front sensor 3A is a three-dimensional sensor that detects objects in three-dimensional space. That is, the front sensor 3A detects objects in the three-dimensional space around the mobile body 1. For example, the front sensor 3A is a 3D LiDAR. The front sensor 3A scans the measurement light in the horizontal and vertical directions. In this example, the front sensor 3A scans the measurement light 360 degrees horizontally, as shown by the dashed line in Figure 2. In the vertical direction, the front sensor 3A scans the measurement light within a predetermined range including the elevation angle and the depression angle.
[0040] The first rear sensor 3B and the second rear sensor 3C detect objects in a region that includes at least the rear of the mobile body 1. The first rear sensor 3B and the second rear sensor 3C may be located at the rear of the trolley 10. For example, the first rear sensor 3B and the second rear sensor 3C are located on the trolley 10 behind the base 11. The first rear sensor 3B is located at the left rear corner of the trolley 10, and the second rear sensor 3C is located at the right rear corner of the trolley 10. Each of the first rear sensor 3B and the second rear sensor 3C is a two-dimensional sensor that detects objects in two-dimensional space. That is, each of the first rear sensor 3B and the second rear sensor 3C may detect objects in the horizontal two-dimensional space around the mobile body 1. For example, the first rear sensor 3B and the second rear sensor 3C are 2D LiDARs. The first rear sensor 3B and the second rear sensor 3C scan the measurement light horizontally.
[0041] More specifically, the first rear sensor 3B and the second rear sensor 3C detect objects in a horizontal range that cannot be detected by the front sensor 3A. The first rear sensor 3B scans the measurement light at least to the left rear of the trolley 10. The second rear sensor 3C scans the measurement light at least to the right rear of the trolley 10. The scanning range of the measurement light by the first rear sensor 3B and the scanning range of the measurement light by the second rear sensor 3C partially overlap at the rear of the trolley 10. In this example, as shown by the dashed line in Figure 2, the first rear 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 second rear 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. The first rear sensor 3B and the second rear sensor 3C detect objects at approximately the same height. In other words, the scanning plane of the measurement light from the first rear sensor 3B and the scanning plane of the measurement light from the second rear sensor 3C are at approximately the same height.
[0042] As shown in Figure 2, since the base 11 is positioned behind the front sensor 3A, the front sensor 3A cannot properly scan the measurement light in the range F that overlaps with the base 11. On the other hand, since the first rear sensor 3B and the second rear sensor 3C are positioned behind the base 11, the first rear sensor 3B and the second rear sensor 3C can scan the measurement light into range F as well.
[0043] Here, the first rear sensor 3B and the second rear sensor 3C each have a lower obstacle detection accuracy than the front sensor 3A. Obstacle detection accuracy refers to the degree of certainty in detecting an obstacle. Sensors with high detection accuracy have a higher probability of detecting or not detecting an obstacle compared to sensors with low detection accuracy.
[0044] Specifically, the detection ranges of the first rear sensor 3B and the second rear sensor 3C are two-dimensional. The first rear sensor 3B and the second rear sensor 3C detect an object on a two-dimensional scanning plane. The first rear sensor 3B and the second rear sensor 3C can detect an object existing across the scanning plane, but cannot detect an object located above or below the scanning plane. Therefore, when an object is not detected by the first rear sensor 3B and the second rear sensor 3C, it is unknown whether an object exists at a position above or below the scanning plane.
[0045] On the other hand, the detection range of the front sensor 3A is three-dimensional. The front sensor 3A detects an object within a three-dimensional scanning space. The front sensor 3A can detect an object that at least partially exists within the scanning space. Therefore, the front sensor 3A may be able to detect an object that cannot be detected by the first rear sensor 3B and the second rear sensor 3C. The detection accuracy of the front sensor 3A is higher than that of the first rear sensor 3B and the second rear sensor 3C in that the front sensor 3A can detect an object not only in the two-dimensional direction but also in the three-dimensional direction.
[0046] FIG. 3 is a diagram showing the hardware configuration of the control device 6. The control device 6 controls the entire mobile body main body 1. The control device 6 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 operates the motor 13a of the wheel 13 to move the mobile body main body 1. Further, the control device 6 controls the motor 12a of the robot arm 12 to cause the robot arm 12 to perform a predetermined operation. The control device 6 includes a processor 61, a storage 62, and a memory 63.
[0047] The processor 61 performs various arithmetic processes. 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. By the processor 61 operating the motor 13a, the mobile body main body 1 performs autonomous driving.
[0048] The memory 62 stores the programs and various data executed by the processor 61. The memory 62 is formed of a non-volatile memory, a HDD (Hard Disc Drive), an SSD (Solid State Drive), or the like. For example, the memory 62 stores a control program. The memory 62 stores map information regarding the map of the environment in which the mobile body main body 1 moves. For example, the map information includes a three-dimensional map, a two-dimensional map, a detection map M1, an obstacle map M2, and a cost map. The memory 63 temporarily stores data and the like. For example, the memory 63 is formed of a volatile memory.
[0049] The three-dimensional map is a map that three-dimensionally represents the space in which the mobile body 100 moves. The three-dimensional map is formed of three-dimensional point cloud data. The position of the three-dimensional map is represented by coordinates in the global coordinate system. The range of the three-dimensional map is the entire area in which the mobile body main body 1 moves. 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 the point cloud data.
[0050] The two-dimensional map is a planar map that two-dimensionally represents the space in which the mobile body 100 moves. The position of the two-dimensional map is represented by coordinates in the global coordinate system. The range of the two-dimensional map is the entire area in which the mobile body main body 1 moves. The two-dimensional map is partitioned in a grid pattern. The two-dimensional map is, for example, a two-dimensional occupancy grid map. In the two-dimensional map, the planar shapes of obstacles in the environment such as walls, handrails, shelves, tables, or chairs are represented. For example, the two-dimensional map is formed by projecting the three-dimensional map onto a plane in a grid pattern.
[0051] FIG. 4 is a conceptual diagram conceptually showing the detection map M1. In FIG. 4, the detection points of the sensor 3 are drawn as white circles. FIG. 5 is an explanatory diagram for explaining the detection accuracy. In FIGS. 4 and 5, for convenience of explanation, the mobile body 100 is described, and row symbols and column symbols for specifying each grid are described around the detection map M1.
[0052] The detection map M1 is a map showing whether an object was detected or not by the sensor 3 at each position. As shown in Figure 4, the detection map M1 is a two-dimensional map in a plane corresponding to the two-dimensional map. The detection map M1 is divided into a grid. Positions on the detection map M1 are represented by coordinates in the mobile coordinate system defined with respect to the mobile body 100. In the detection map M1, whether an object was detected or not is set as a binary value at each grid. In Figure 4, black grids indicate that an object was detected (i.e., value = 1), and white grids indicate that an object was not detected (i.e., value = 0). The detection map M1 is generated based on the detection results of the sensor 3. The range of the detection map M1 is at least a part of the detection range of the sensor 3 in the horizontal plane. The detection range of the sensor 3 in the horizontal plane is the sum of the range enclosed by the dashed line, the range enclosed by the dashed line, and the range enclosed by the dashed line shown in Figure 2. For the sake of clarity, in Figures 4 and 5, the area of detection map M1 is depicted as a rectangle.
[0053] Here, as shown in Figure 5, the detection map M1 has pre-set detection accuracy for each grid. The detection accuracy for each grid corresponds to the detection accuracy of sensor 3. Specifically, grids included in the area of detection map M1 corresponding to the detection range of front sensor 3A (hereinafter referred to as "first area A1") are set to a relatively high detection accuracy. In Figure 6, the grids included in first area A1 are marked with fine dots. Grids included in the area of detection map M1 corresponding to the detection ranges of first rear sensor 3B and second rear sensor 3C (hereinafter referred to as "second area A2") are set to a relatively low detection accuracy. In Figure 6, the grids included in second area A2 are marked with coarse dots.
[0054] Figure 6 is a conceptual diagram illustrating the obstacle map M2. For ease of explanation, Figure 6 includes the mobile body 100, and row and column symbols to identify each grid are indicated around the obstacle map M2. The obstacle map M2 is a map showing the locations of obstacles. The obstacle map M2 is a two-dimensional map on a plane corresponding to the two-dimensional map. The obstacle map M2 is divided into a grid. The shape and size of the grids in the obstacle map M2 are approximately the same as the shape and size of the grids in the detection map M1. Positions on the obstacle map M2 are expressed in coordinates of the global coordinate system. The range of the obstacle map M2 is the entire area in which the mobile body 1 moves.
[0055] Each grid in the obstacle map M2 has an evaluation of whether or not an obstacle exists. In this example, the evaluation of whether or not an obstacle exists in the obstacle map M2 is represented by the probability of the obstacle's existence. That is, each grid in the obstacle map M2 has a probability of the obstacle's existence set. The range of the probability of the obstacle's existence is 0 or greater and 1 or less. However, in the method of changing the probability of existence using odds, which will be described later, if the probability of existence is set to "0", multiplying the probability of existence by the odds will still result in a probability of existence of "0", and the probability of existence cannot be changed appropriately. For this reason, in this example, the minimum value of the probability of existence is set to a value greater than "0" (for example, "0.1"). In this example, the maximum value of the probability of existence is set to a value less than "1" (for example, "0.9"). This is because, in the method of changing the probability of existence using odds, which will be described later, if the probability of existence is set to "1", the odds will diverge to infinity. In Figure 6, black grids represent the highest probability of an obstacle being present (e.g., 0.9, i.e., 90%), hatched grids represent a probability greater than 10% but less than 90% (e.g., 0.5, i.e., 50%), and white grids represent the lowest probability of an obstacle being present (e.g., 0.1, i.e., 10%). Note that in Figure 6, for the sake of explanation, the probability of an obstacle being present in each grid is distinguished into three stages, but the number of stages is not limited to three. In this example, the initial value of the probability of an obstacle being present in each grid of the obstacle map M2, i.e., the probability of an obstacle being present in each grid when the mobile object 100 is started, is set to the minimum value (e.g., 0.1). The obstacle map M2 is generated based on the detection map M1. Details of how the obstacle map M2 is generated will be described later.
[0056] The cost map is a map that represents the cost of movement for the mobile body 1. The cost map is used when performing path planning. The cost map is a two-dimensional map on a plane corresponding to the two-dimensional map. The cost map is divided into a grid. Positions on the cost map are expressed in coordinates of the global coordinate system. The range of the cost map is the entire area in which the mobile body 1 moves. The cost map is generated based on the two-dimensional map and the obstacle map M2. For example, in the cost map, costs are set according to the distance from objects based on the two-dimensional map. For example, grids closer to objects are set to have relatively high costs. Furthermore, for example, in the cost map, costs related to obstacles are set based on the obstacle map. Details of how the cost map is generated will be described later.
[0057] Figure 7 is a functional block diagram showing the configuration of the control system of the processor 61. The processor 61 realizes 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 estimater 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 operation variable calculator 69 that calculates the operation variable of the motor 13a.
[0058] 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.
[0059] In this example, the state estimator 64 performs self-position estimation using the 3D point cloud data from the front sensor 3A. The state estimator 64 compares the environmental information surrounding the mobile body 1, obtained from the 3D point cloud data of the front sensor 3A, with a 3D map to estimate the position of the mobile body 1 within the environment represented by the 3D map, i.e., its own position.
[0060] 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, a 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.
[0061] Furthermore, the map generator 65 updates the 2D map. The 2D 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 2D map. Specifically, the detection results of the sensors 3 are transformed into a global coordinate system, and the transformed detection results of the sensors 3 are projected onto the 2D map.
[0062] Furthermore, the map generator 65 generates a detection map M1. Specifically, based on the detection results of the multiple sensors 3, the map generator 65 sets the grid values corresponding to detection positions where objects are detected within the detection range of the sensors 3 to "1", and sets the grid values corresponding to detection positions where objects are not detected to "0".
[0063] In addition, the map generator 65 generates an obstacle map M2 by evaluating the presence or absence of obstacles based on the detection results of multiple sensors 3. Generation is a concept that also includes updating. In this example, the map generator 65 uses the detection map M1 as the detection results of multiple sensors 3. The map generator 65 generates the obstacle map M2 when autonomous movement is performed. Specifically, the map generator 65 transforms the detection map M1 from the mobile body coordinate system to the global coordinate system based on the self-position of the mobile body 1 estimated by the state estimator 64, and associates each grid of the detection map M1 with each grid of the obstacle map M2. Based on the detection results in each grid of the detection map M1, the map generator 65 evaluates the presence or absence of obstacles in the corresponding grids of the obstacle map M2.
[0064] Specifically, the map generator 65 affirmatively evaluates the presence of an obstacle at a location where an obstacle has been detected by the front sensor 3A within the detection range of the front sensor 3A. In this example, increasing the probability of the presence of an obstacle corresponds to the affirmative evaluation. That is, the map generator 65 affirmatively evaluates the presence of an obstacle by increasing the probability of the presence of an obstacle at a location where an obstacle has been detected by the front sensor 3A within the detection range of the front sensor 3A. The map generator 65 increases the probability of the presence of a grid in the obstacle map M2 that corresponds to a grid in the first area A1 of the detection map M1 where an obstacle has been detected (i.e., a grid with a value of "1"). Hereinafter, the degree to which the probability of presence increases in this case will be referred to as the "first degree of increase". If the probability of presence of a grid in the obstacle map M2 is already at its maximum value, the map generator 65 maintains the probability of presence.
[0065] The map generator 65 negates the existence of obstacles at locations within the detection range of the front sensor 3A where no obstacles have been detected by the front sensor 3A. In this example, reducing the probability of obstacle existence corresponds to the negation evaluation. That is, the map generator 65 negates the existence of obstacles by reducing the probability of obstacle existence at locations within the detection range of the front sensor 3A where no obstacles have been detected by the front sensor 3A. The map generator 65 reduces the probability of existence of grids in the obstacle map M2 that correspond to grids in the first area A1 of the detection map M1 where no obstacles have been detected (i.e., grids with a value set to "0"). Hereinafter, the degree of reduction in the probability of existence in this case will be referred to as the "first degree of reduction". If the probability of existence of a grid in the obstacle map M2 is already at its minimum value, the map generator 65 maintains the probability of existence.
[0066] The map generator 65 affirmatively evaluates the presence of an obstacle at a location where an obstacle is detected by at least one of the first rear sensor 3B and the second rear sensor 3C within the detection range of the first rear sensor 3B and the second rear sensor 3C. In this example, the map generator 65 affirmatively evaluates the presence of an obstacle by increasing the probability of the presence of an obstacle at a location where an obstacle is detected by at least one of the first rear sensor 3B and the second rear sensor 3C within the detection range of the first rear sensor 3B and the second rear sensor 3C. The map generator 65 increases the probability of the presence of a grid in the obstacle map M2 that corresponds to a grid in the second area A2 of the detection map M1 where an obstacle is detected (i.e., a grid where the value is set to "1"). Hereinafter, the degree of increase in the probability of presence in this case will be referred to as the "second degree of increase".
[0067] The map generator 65 maintains the assessment of the presence of obstacles at locations where neither the first rear sensor 3B nor the second rear sensor 3C has detected obstacles within the detection ranges of the first rear sensor 3B and the second rear sensor 3C, or it negatively assesses the presence of obstacles at locations where neither the first rear sensor 3B nor the second rear sensor 3C has detected obstacles, with a degree of negation smaller than the negative assessment within the detection range of the front sensor 3A. Maintaining the probability of obstacle presence corresponds to maintaining the assessment of obstacle presence. Decreasing the probability of presence by a degree of decrease smaller than the first degree of decrease (hereinafter referred to as the "second degree of decrease") corresponds to negatively assessing with a degree of negation smaller than the negative assessment within the detection range of the front sensor 3A. In this example, the map generator 65 maintains the assessment of obstacle presence by maintaining the probability of obstacle presence at locations where neither the first rear sensor 3B nor the second rear sensor 3C has detected obstacles within the detection ranges of the first rear sensor 3B and the second rear sensor 3C. In other words, the map generator 65 does not reduce the probability of an obstacle being present at locations where no obstacle has been detected by either the first rear sensor 3B or the second rear sensor 3C within the detection range of the first rear sensor 3B and the second rear sensor 3C. Not reducing the probability of an obstacle being present means, in other words, that the second degree of reduction is zero. The map generator 65 maintains the probability of a grid in the obstacle map M2 that corresponds to a grid in the second area A2 of the detection map M1 where no obstacle has been detected (i.e., a grid with a value set to "0").
[0068] The map generator 65 generates a cost map based on the obstacle map M2 and the two-dimensional map. For example, the map generator 65 determines the cost of each grid based on the obstacle map M2 and the two-dimensional map, and generates a cost map with the determined cost set for each grid. The cost of each grid is determined based on, for example, the probability of an obstacle being present in the target grid, or the distance to surrounding objects in the target grid.
[0069] 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 cost 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.
[0070] The route generator 66 generates a route from the current position of the mobile body 1 to the destination based on map information. The route generator 66 generates a route that avoids interference with obstacles, etc., by referring to the map information. For example, the route generator 66 generates a route that minimizes cost based on a cost map. If a path is established in the environment, the route generator 66 generates a route along the path. For example, the route generator 66 generates a route using the A-star search algorithm, RRT algorithm, Dijkstra's algorithm, or a geometric approach. The route generator 66 outputs an array of positions that the mobile body 1 will pass through as a route to the trajectory generator 67. Each position includes the attitude of the mobile body 1 in addition to position information.
[0071] 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 using a predetermined method (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.
[0072] Alternatively, the trajectory generator 67 may calculate the command velocity by 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 quantities from the current state quantities 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 will travel from its current position to its target position along that path.
[0073] 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.
[0074] The movement controller 68 performs controls to avoid interference between the mobile body 1 and obstacles. The movement controller 68 monitors the proximity of the mobile body 1 to obstacles based on the detection results of the sensors 3. In this example, the movement controller 68 monitors the proximity of the mobile body 1 to obstacles using all the detection results from the front sensor 3A, the first rear sensor 3B, and the second rear 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.
[0075] The manipulated variable calculator 69 distributes command values to the 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.
[0076] 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.
[0077] Next, the basic operation of the mobile unit 100 will be explained. Figure 8 is a flowchart of the basic operation of the mobile unit 100. The mobile unit 100 repeatedly performs the following processes at a predetermined control cycle.
[0078] First, in step S1, the state estimator 64 acquires information about the surrounding environment. Specifically, the state estimator 64 acquires the detection signal from the sensor 3 and the detection signal from the encoder 13b.
[0079] Next, in step S2, the state estimator 64 performs self-position estimation.
[0080] Next, in step S3, the map generator 65 generates a detection map M1, an obstacle map M2, and a cost map. Specifically, the map generator 65 generates the detection map M1 based on the detection results of the sensor 3. The map generator 65 uses the estimated position of the mobile body 1 to map the detection map M1 to the obstacle map M2. The map generator 65 generates the obstacle map M2 based on the detection map M1. The map generator 65 generates a cost map based on the two-dimensional map and the obstacle map M2.
[0081] Next, in step S4, the route generator 66 performs route planning. Based on the generated cost map and the estimated position and destination of the mobile body 1, the route generator 66 generates a route for the mobile body 1.
[0082] In step S5, the trajectory generator 67 calculates the command velocity of the mobile body 1 from the estimated position so as to follow the generated path.
[0083] In step S5, the movement controller 68 causes the mobile body 1 to perform an action according to the commanded speed.
[0084] The mobile unit 100 moves autonomously to its destination while estimating its own position by repeating the above process.
[0085] Next, the method for generating the obstacle map M2 will be explained in detail. The map generator 65 generates the obstacle map M2 by updating the probability of the presence of obstacles in the grid of the obstacle map M2 based on the detection results of the sensor 3. Figure 9 is a flowchart of the method for generating the obstacle map M2.
[0086] First, in step S201, the map generator 65 selects one grid (hereinafter referred to as the "selected grid") from among multiple grids of the detected map M1.
[0087] Next, in step S202, the map generator 65 determines whether or not an obstacle has been detected in the selected grid. Specifically, the map generator 65 determines that an obstacle has been detected if the value of the selected grid in the detection map M1 is "1", and determines that no obstacle has been detected if the value of the selected grid in the detection map M1 is "0".
[0088] If it is determined in step S202 that an obstacle has been detected in the selected grid, the map generator 65 determines in step S203 whether the selected grid is within the first area A1 of the detection map M1.
[0089] If, in step S203, the selected grid is determined to be within the first area A1 of the detection map M1, the map generator 65, in step S204, affirmatively evaluates the presence of an obstacle in the grid corresponding to the selected grid in the obstacle map M2 (hereinafter referred to as the "corresponding grid"). Specifically, the map generator 65 converts the coordinates of the selected grid in the detection map M1 to the global coordinate system based on the estimated position of the mobile body 1. The map generator 65 identifies the grid at the same position as the selected grid in the obstacle map M2 as the corresponding grid. As an affirmative evaluation, the map generator 65 increases the probability of the presence of an obstacle in the corresponding grid by a first degree of increase. For example, the degree of increase is the ratio of increase or the value of the increase. That is, the map generator 65 increases the probability of presence by a first rate of increase or a first value of increase.
[0090] If, in step S203, the selected grid is determined to be outside the first area A1 of the detection map M1, i.e., within the second area A2, the map generator 65, in step S205, affirmatively evaluates the presence of an obstacle in the corresponding grid in the obstacle map M2. Specifically, the map generator 65 identifies the grid at the same position as the selected grid in the obstacle map M2 as the corresponding grid by the aforementioned coordinate transformation. As an affirmative evaluation, the map generator 65 increases the probability of the presence of an obstacle in the corresponding grid by a second degree of increase. In this example, the second degree of increase is smaller than the first degree of increase. For example, the map generator 65 increases the probability of presence by a second rate of increase or a second value of increase.
[0091] On the other hand, if no obstacles are detected in the selected grid in step S202, the map generator 65 determines in step S206 whether the selected grid is within the first area A1 of the detection map M1.
[0092] If, in step S206, the selected grid is determined to be within the first area A1 of the detection map M1, the map generator 65 evaluates in step S207 to negate the presence of an obstacle in the corresponding grid of the obstacle map M2. Specifically, the map generator 65 identifies the grid at the same position as the selected grid in the obstacle map M2 as the corresponding grid by the aforementioned coordinate transformation. The map generator 65 reduces the probability of the presence of an obstacle in the corresponding grid by a first reduction rate. For example, the reduction rate is the ratio of reduction or the value of the reduction. That is, the map generator 65 reduces the probability of presence by a first reduction rate or a first reduction value.
[0093] If, in step S206, the selected grid is determined to be outside the first area A1 of the detection map M1, i.e., within the second area A2, then in step S208, the map generator 65 either maintains the evaluation of the presence of obstacles in the corresponding grid in the obstacle map M2, or evaluates the presence of obstacles in the corresponding grid in the obstacle map M2 with a degree of negation smaller than the negation evaluation in the first area A1. In this example, the map generator 65 maintains the evaluation of the presence of obstacles in the corresponding grid in the obstacle map M2. Specifically, the map generator 65 identifies the grid at the same position as the selected grid in the obstacle map M2 as the corresponding grid by the coordinate transformation described above. The map generator 65 maintains the probability of the presence of obstacles in the corresponding grid. That is, the map generator 65 does not decrease the probability of the presence of obstacles in the corresponding grid. When evaluating the presence of an obstacle in a corresponding grid in the obstacle map M2 with a degree of negation smaller than the negation evaluation in the first area A1, specifically, the map generator 65 reduces the probability of the obstacle's presence in the corresponding grid by a second degree of reduction. The second degree of reduction is smaller than the first degree of reduction mentioned above. For example, the map generator 65 reduces the probability of presence by a second reduction rate or a second reduction value.
[0094] In step S209, following steps S204, S205, S207, and S208, the map generator 65 determines whether it has selected all of the multiple grids in the detection map M1. If the selection of all grids is not complete, the map generator 65 returns to step S201 and selects one of the multiple grids in the detection map M1 that has not yet been selected. After that, the map generator 65 executes the process from step S202 onwards again. If the selection of all grids is complete, the map generator 65 terminates the generation of the obstacle map M2.
[0095] Next, the method for generating the obstacle map M2 will be specifically explained with reference to Figures 4, 6, and 10. Figure 10 is a conceptual diagram that conceptually shows the obstacle map M2 before updating. In Figure 10, for the sake of explanation, the moving object 100 is shown, and row and column numbers for identifying each grid are written around the obstacle map M2. In the following explanation, Figure 6 shows the obstacle map M2 after updating.
[0096] As shown in Figure 4, in the detection map M1, obstacles are detected by the front sensor 3A in grids i3 and i4 within the first area A1, and obstacles are detected by at least one of the first rear sensor 3B and the second rear sensor 3C in grids v3 and v4 within the second area A2. As shown in Figure 10, in the obstacle map M2 before updating, the probability of obstacles being present in grids Bb, Bc, Bd, Fb, Fc, and Fd (grids shown in black) is set higher than the probability of obstacles being present in other grids (grids shown in white). The coordinates of each grid in the detection map M1 are transformed into a global coordinate system based on the estimated position of the mobile body 1. In Figure 10, the outer frame of the detection map M1, which has been transformed into a global coordinate system, is drawn with a dashed line.
[0097] As shown in Figures 6 and 10, if an obstacle is detected by the front sensor 3A within the first area A1, the probability of the presence of an obstacle in the grid at the location where the obstacle was detected is increased by a first degree of increase. Specifically, the probability of the presence of an obstacle in the Bd grid and Be grid of the obstacle map M2 where an obstacle was detected by the front sensor 3A within the first area A1 is increased by a first degree of increase. If no obstacle is detected by the front sensor 3A within the first area A1, the probability of the presence of an obstacle in the grid at the location where no obstacle was detected is decreased by, for example, a predetermined rate of decrease. Specifically, the probability of the presence of an obstacle in the Bb grid and Bc grid of the obstacle map M2 where no obstacle was detected by the front sensor 3A within the first area A1 is decreased by, for example, a predetermined rate of decrease.
[0098] If an obstacle is detected by at least one of the first rear sensor 3B and the second rear sensor 3C within the second area A2, the probability of an obstacle being present in the grid at the location where the obstacle was detected is increased by a second degree of increase. Specifically, the probability of an obstacle being present in the Fd grid and Fe grid of the obstacle map M2 where an obstacle has been detected by at least one of the first rear sensor 3B and the second rear sensor 3C within the second area A2 is increased by a second degree of increase. If no obstacle is detected by at least one of the first rear sensor 3B and the second rear sensor 3C within the second area A2, the probability of an obstacle being present in the grid at the location where no obstacle was detected is maintained, or the probability of an obstacle being present in the grid at the location where no obstacle was detected is reduced by, for example, a predetermined rate of decrease. This predetermined rate of decrease is smaller than the predetermined rate of decrease when no obstacle is detected by the front sensor 3A within the first area A1. In this example, if no obstacle is detected by at least one of the first rear sensor 3B and the second rear sensor 3C within the second area A2, the probability of obstacles being present in the grids at locations where no obstacles have been detected is maintained. Specifically, the probability of obstacles being present in the Fb grid and Fc grid of the obstacle map M2 where no obstacles have been detected by at least one of the first rear sensor 3B and the second rear sensor 3C within the second area A2 is maintained. In other words, if no obstacle is detected by at least one of the first rear sensor 3B and the second rear sensor 3C within the second area A2, the probability of obstacles being present is not reduced.
[0099] Next, as an example of a method for updating the probability of obstacles, we will explain in detail a method using a binary Bayes filter. The method for updating the probability of obstacles is performed in steps S204, S205, S207, and S208 in Figure 9, as described above. Figure 11 is a flowchart showing an example of a method for changing the probability of obstacles.
[0100] First, in step S301, the map generator 65 calculates the odds before the update using the following formula (1) based on the probability of existence already set for the corresponding grid.
[0101] Odds = Probability of existence / (1 - Probability of existence) ... (1) For example, if the probability of existence set for the corresponding grid is "0.67", then based on the above formula (1), the odds before the update are calculated to be "2".
[0102] Next, in step S302, the map generator 65 obtains the detection accuracy odds for the corresponding grid. The detection accuracy odds are set based on the type of sensor performing detection in the corresponding grid and the detection results of obstacles. For example, the map generator 65 obtains the detection accuracy odds for the corresponding grid based on an odds correspondence table in which the detection accuracy odds are set according to the sensor type and detection results. Figure 12 is an example of an odds correspondence table. The odds correspondence table is stored in the memory 62 in advance. For example, in the odds correspondence table, the detection accuracy odds for a grid that is included in the first area A1 of the detection map M1 and in which obstacles have been detected is "4". The inclusion of a grid in the first area A1 of the detection map M1 means that detection in that grid is performed by the front sensor 3A. The detection accuracy odds for a grid that is included in the first area A1 of the detection map M1 and in which no obstacles have been detected (hereinafter simply referred to as the "first detection accuracy odds") is "0.25". The detection probability odds for a grid that is included in the second area A2 of the detection map M1 and in which an obstacle has been detected are "2". The inclusion of a grid in the second area A2 of the detection map M1 means that detection in that grid is performed by at least one of the first rear sensor 3B or the second rear sensor 3C. The detection probability odds for a grid that is included in the second area A2 of the detection map M1 and in which no obstacle has been detected (hereinafter simply referred to as the "second detection probability odds") are "1". However, if the probability of an obstacle being present is reduced when no obstacle is detected within the second area A2, the second detection probability odds may be greater than the first detection probability odds and less than 1.
[0103] Next, in step S303, the map generator 65 calculates the updated odds based on the following formula (2).
[0104] Odds after update = Odds before update × Detection probability odds ... (2) For example, if the odds before the update of a corresponding grid are "2", the corresponding grid is included in the first area A1 of the detection map M1, and an obstacle is detected in the corresponding grid, the odds after the update will be 2 × 4 = 8. For example, if the odds before the update of a corresponding grid are "2", the corresponding grid is included in the second area A2 of the detection map M1, and an obstacle is detected in the corresponding grid, the odds after the update will be 2 × 2 = 4. In this way, in both the first area A1 and the second area A2, the odds after the update of grids in which obstacles are detected will increase from before the update. However, in this example, the degree of increase in the odds after the update of grids in which obstacles are detected within the first area A1 is greater than that of grids in which obstacles are detected within the second area A2.
[0105] For example, if the odds of a corresponding grid before the update are "2", the corresponding grid is included in the first area A1 of the detection map M1, and no obstacles are detected in the corresponding grid, the odds after the update will be 2 × 0.25 = 0.5. For example, if the odds of a corresponding grid before the update are "2", the corresponding grid is included in the second area A2 of the detection map M1, and no obstacles are detected in the corresponding grid, the odds after the update will be 2 × 1 = 2. In this way, the odds after the update for grids in the first area A1 where no obstacles are detected decrease from the odds before the update. On the other hand, in this example, the odds after the update for grids in the second area A2 where no obstacles are detected do not change from the odds before the update.
[0106] Next, in step S304, the map generator 65 calculates the probability of existence after the update using the above formula (1) based on the calculated odds after the update. For example, if the probability of existence of a corresponding grid included in the first area A1 of the detection map M1 before the update is "0.67" and an obstacle is detected in that corresponding grid, the odds after the update become "8" and the probability of existence after the update is calculated to be "0.89". For example, if the probability of existence of a corresponding grid included in the second area A2 of the detection map M1 before the update is "0.67" and an obstacle is detected in that corresponding grid, the odds after the update become "4" and the probability of existence after the update is calculated to be "0.80". In this way, the probability of existence of a corresponding grid increases even if the corresponding grid in which an obstacle has been detected is included in either the first area A1 or the second area A2. However, in this example, the degree of increase in the probability of presence when an obstacle is detected in the corresponding grid included in the second area A2, i.e., the second degree of increase, is smaller than the degree of increase when an obstacle is detected in the corresponding grid included in the first area A1, i.e., the first degree of increase.
[0107] For example, if the probability of a corresponding grid in the first area A1 of detection map M1 existing before the update was "0.67" and no obstacles were detected in that grid, the odds after the update become "0.5", and the probability of existence after the update is calculated to be "0.33". For example, if the probability of a corresponding grid in the second area A2 of detection map M1 existing before the update was "0.67" and no obstacles were detected in that grid, the odds after the update become "2", and the probability of existence after the update is calculated to be "0.67". In this way, the probability of a corresponding grid in the first area A1 that does not have any obstacles detected after the update decreases from the probability of existence before the update. On the other hand, in this example, the probability of a corresponding grid in the second area A2 that does not have any obstacles detected after the update remains the same as the probability of existence before the update.
[0108] Next, in step S305, the map generator 65 sets the updated existence probability for the corresponding grid, and this flow ends.
[0109] As described above, since the detection accuracy of the front sensor 3A is relatively high, the evaluation of the presence of an obstacle at each position within the detection range of the front sensor 3A corresponds to the obstacle detection result by the front sensor 3A. In other words, within the detection range of the front sensor 3A, the presence of an obstacle is positively evaluated at positions where an obstacle is detected, and negatively evaluated at positions where an obstacle is not detected. However, since the detection accuracy of the first rear sensor 3B and the second rear sensor 3C is relatively low, within the detection ranges of the first rear sensor 3B and the second rear sensor 3C, the presence of an obstacle is positively evaluated in accordance with the detection result at positions where an obstacle is detected, while at positions where an obstacle is not detected, the evaluation of the presence of an obstacle is maintained despite the result of non-detection, or it is negatively evaluated to a smaller degree than the negative evaluation in the detection range of the front sensor 3A. In other words, with respect to the detection result, the presence of an obstacle at a position where an obstacle is detected is positively evaluated regardless of the detection accuracy of the sensor 3. On the other hand, regarding the result of non-detection, the presence of an obstacle is negatively evaluated at the position corresponding to the front sensor 3A, which has a high detection accuracy, while at the position corresponding to the first rear sensor 3B or the second rear sensor 3C, which has a low detection accuracy, the evaluation of the presence of an obstacle remains unchanged, or is negatively evaluated to a smaller degree than the negative evaluation in the detection range of the front sensor 3A.
[0110] In short, the presence of an obstacle is evaluated on the safe side based on the detection accuracy of sensor 3. When an obstacle is detected by sensor 3, this includes both cases where the obstacle actually exists and cases where the obstacle is falsely detected. When an obstacle is detected, the presence of the obstacle is positively evaluated regardless of the detection accuracy of sensor 3. Even if it is a false detection, safety is ensured, although it only increases the effort required to avoid the obstacle. On the other hand, when an obstacle is not detected by sensor 3, this includes both cases where the obstacle does not actually exist and cases where it is falsely detected that the obstacle does not exist. Since the detection accuracy of the front sensor 3A is relatively high, there is a high probability that there is no obstacle in a location where the front sensor 3A has not detected an obstacle. In that case, the presence of the obstacle is negatively evaluated. On the other hand, since the detection accuracy of the first rear sensor 3B and the second rear sensor 3C is relatively low, there is a possibility of false detection in locations where the first rear sensor 3B or the second rear sensor 3C has not detected an obstacle, and there is a possibility that an obstacle actually exists. Therefore, in locations where no obstacle is detected by the first rear sensor 3B or the second rear sensor 3C, the evaluation of the presence of an obstacle is not changed, that is, it is not reduced, or it is evaluated as negative with a smaller degree of negation than the negative evaluation in the detection range of the front sensor 3A. In this case as well, safety is ensured, although it only increases the effort required to avoid the obstacle.
[0111] Furthermore, since the first rear sensor 3B and the second rear sensor 3C are low-cost two-dimensional sensors, it is possible to generate a safer obstacle map while reducing the cost of the mobile body 100.
[0112] Since the mobile body 1 basically moves forward, there is a high probability that obstacles will enter the area in front of the mobile body 1. In the mobile body 100, the front sensor 3A detects objects in the area including at least the front of the mobile body 1, and the first rear sensor 3B and the second rear sensor 3C detect objects in the area including at least the rear of the mobile body 1. In other words, the front sensor 3A, which has a relatively high accuracy in detecting obstacles, is responsible for detecting obstacles in the area in front of the mobile body 1. This makes it possible to more reliably detect obstacles encountered while the mobile body 100 is moving.
[0113] The detection accuracy of the front sensor 3A for obstacles is greater than the detection accuracy of the first rear sensor 3B and the second rear sensor 3C for obstacles, respectively. In the moving body 100, the first increase in the probability of presence of an obstacle when detected by the front sensor 3A in the first area A1 is greater than the second increase in the probability of presence of an obstacle when detected by at least one of the first rear sensor 3B and the second rear sensor 3C in the second area A2. Therefore, the probability of presence of obstacles can be reflected more faithfully in the obstacle map M2 than if the first increase was the same as the second increase. This makes it possible to generate an obstacle map with even greater safety.
[0114] The control device 6 may also control the robot arm 12 when performing autonomous movement. Figure 13 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.
[0115] 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.
[0116] 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.
[0117] The arm controller 611 may maintain the robot arm 12 in a constant shape while the mobile body 100 is moving, and may operate the robot arm 12 when it is performing work.
[0118] For example, when the mobile body 100 is moving, the arm controller 611 maintains the robot arm 12 in a moving position. In other words, when the mobile body 100 is moving, the arm controller 611 fixes the shape of the robot arm 12 and prohibits the movement of the robot arm 12.
[0119] Figure 14 is a side view of the mobile body 1 when the robot arm 12 is in a traveling configuration. Figure 15 is a top view of the mobile body 1 when the robot arm 12 is in a traveling configuration.
[0120] 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 joint and the wrist joint, 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 in which 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.
[0121] In the mobile configuration, the robot arm 12 is positioned higher than the front sensor 3A of the mobile body 1. The detection range of the front sensor 3A extends three-dimensionally from the front sensor 3A. The space above the front sensor 3A is included in the detection range of the front sensor 3A. Since the robot arm 12 is positioned above the front sensor 3A, it may obstruct a portion of the detection range of the front sensor 3A. The detection results of the front 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 front sensor 3A. The further the robot arm 12 is from the front sensor 3A, the smaller the area of the front sensor 3A's detection range that is obstructed by the robot arm 12 tends to be. Therefore, in the mobile configuration, the detection range of the front sensor 3A is relatively large.
[0122] 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 front sensor 3A, specifically the diagonally upward forward area from the front sensor 3A, is expanded.
[0123] 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.
[0124] 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.
[0125] 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 seventh joint J7 of one robot arm 12 may be at a different rotation angle than the seventh joint J7 of the other robot arm 12.
[0126] For example, when the robot arm 12 is performing work, the arm controller 611 operates the robot arm 12. In other words, when the robot arm 12 is performing work, the arm controller 611 permits the robot arm 12 to move and allows the robot arm 12 to move freely. For example, the arm controller 611 operates the robot arm 12 after the mobile body 1 has reached its destination and performs work with the robot arm 12.
[0127] 《Other Embodiments》 As described above, the embodiments described herein have been presented as examples of the technology disclosed herein. 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. It is also possible to combine the components described in the embodiments above to create new embodiments. Furthermore, 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.
[0128] For example, the mobile body 1 may be a robot that does not include the robotic arm 12. The mobile body 1 is not limited to a robot, but may be a mobile device such as a drone, ship, or vehicle. The movement path of the mobile body 1 is not limited to a passageway, but may be a road or waterway.
[0129] The first sensor is not limited to 3D LiDAR. For example, the first sensor may be a stereo camera, millimeter-wave radar, ultrasonic sensor (sonar), etc. The second sensor is not limited to 2D LiDAR. For example, the second sensor may be a two-dimensional radar, ultrasonic sensor (sonar), etc.
[0130] The detection range of the first sensor is not limited to an area including at least the front of the mobile body 1, but can detect any area around the mobile body 1. The detection range of the second sensor is not limited to an area including at least the rear of the mobile body 1, but can detect any area around the mobile body 1.
[0131] The presence or absence of obstacles in the obstacle map M2 may be expressed as a binary value: obstacle present or absent. In this case, the presence of an obstacle may be positively evaluated as "obstacle present" at locations within the first area A1 where an obstacle is detected by the front sensor 3A, and negatively evaluated as "obstacle absent" at locations within the first area A1 where an obstacle is not detected by the front sensor 3A. The presence of an obstacle may be positively evaluated as "obstacle present" at locations within the second area A2 where an obstacle is detected by at least one of the first rear sensor 3B and the second rear sensor 3C, and the evaluation of the presence of an obstacle may be maintained at locations within the second area A2 where an obstacle is not detected by at least one of the first rear sensor 3B and the second rear sensor 3C.
[0132] The odds regarding the probability of an obstacle being present are not limited to the example shown in Figure 12. The first degree of increase in the probability of an obstacle being present when an obstacle is detected by the front sensor 3A in the first area A1 may be the same as the second degree of increase in the probability of an obstacle being present when an obstacle is detected by at least one of the first rear sensor 3B and the second rear sensor 3C in the second area A2. In other words, the odds when an obstacle is detected in the first area A1 may be the same as the odds when an obstacle is detected in the second area A2.
[0133] 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.
[0134] 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 individually or in combination with each other, or hardware programmed to perform the enumerated functions individually or in combination with each other. The hardware may be any hardware disclosed herein that is programmed or configured to perform the listed functions.
[0135] 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 known formats 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.
[0136] [Embodiment] The above embodiment is a specific example of the following embodiment.
[0137] (Aspect 1) The mobile body 100 comprises a mobile body main body 1, a plurality of sensors 3 for detecting objects around the mobile body main body 1, and a control device 6 that generates an obstacle map M2 indicating the location of obstacles by evaluating the presence or absence of obstacles based on the detection results of the plurality of sensors 3. The plurality of sensors 3 include a first sensor (front sensor 3A) and second sensors (first rear sensor 3B and second rear sensor 3C) which have a lower obstacle detection accuracy than the first sensor. The control device 6 positively evaluates the presence of obstacles at locations where obstacles are detected by the first sensor within the detection range of the first sensor (first area A1), while negatively evaluating the presence of obstacles at locations where obstacles are not detected by the first sensor. Within the detection range of the second sensor (second area A2), the control device 6 positively evaluates the presence of obstacles at locations where obstacles are detected by the second sensor, maintains the evaluation of the presence of obstacles at locations where obstacles are not detected by the second sensor, or negatively evaluates the presence of obstacles at locations where obstacles are not detected by the second sensor to a smaller degree of negation than the negative evaluation within the detection range of the first sensor.
[0138] In this configuration, the control device 6 affirmatively evaluates the presence of an obstacle at a location where an obstacle is detected within the detection range of the first sensor, while negatively evaluating the presence of an obstacle at a location where no obstacle is detected. The control device 6 affirmatively evaluates the presence of an obstacle at a location where an obstacle is detected within the detection range of the second sensor, while maintaining the evaluation of the presence of an obstacle at a location where no obstacle is detected, or negatively evaluates the presence of an obstacle at a location where no obstacle is detected by the second sensor to a smaller degree of negation than the negative evaluation within the detection range of the first sensor. The detection accuracy of the second sensor is lower than that of the first sensor. That is, if an obstacle is not detected by the second sensor, which has a relatively low detection accuracy, the evaluation of the presence of an obstacle is maintained, or negatively evaluated to a smaller degree of negation than the negative evaluation within the detection range of the first sensor. As a result, even if the second sensor does not detect an obstacle at its location, the presence of the obstacle is not negated and the assessment of its presence is maintained, or it is negated with a smaller degree of negation than the negation assessment within the detection range of the first sensor, thus generating a safer obstacle map.
[0139] (Aspect 2) In the mobile body 100 described in Aspect 1, the first sensor is a three-dimensional sensor that detects objects in three-dimensional space, and the second sensor is a two-dimensional sensor that detects objects in two-dimensional space.
[0140] With this configuration, since the second sensor is a low-cost two-dimensional sensor, it is possible to generate a safer obstacle map while reducing the cost of the mobile body 100. Furthermore, since the number of measurement points of a two-dimensional sensor is smaller than that of a three-dimensional sensor, the computational load on the processor 61 can be reduced by using a two-dimensional sensor as the second sensor.
[0141] (Aspect 3) In the mobile body 100 described in Aspect 1 or Aspect 2, the first sensor detects an object in a region including at least the front of the mobile body 1, and the second sensor detects an object in a region including at least the rear of the mobile body 1.
[0142] Since the mobile body 1 basically moves forward, there is a high probability that obstacles will enter the area in front of the mobile body 1. With the above configuration, the first sensor detects objects in the area including at least the area in front of the mobile body 1, and the second sensor detects objects in the area including at least the area behind the mobile body 1. In other words, the first sensor, which has a relatively high accuracy in detecting obstacles, is responsible for detecting obstacles in the area in front of the mobile body 1. This makes it possible to more reliably detect obstacles encountered while the mobile body 100 is moving.
[0143] (Aspect 4) In the mobile body 100 described in any one of aspects 1 to 3, the control device 6 causes the mobile body 1 to perform autonomous movement based on the obstacle map M2, and generates the obstacle map M2 when the autonomous movement is performed.
[0144] With this configuration, the obstacle map M2 can be updated in accordance with changes in the presence or absence of obstacles during the autonomous movement of the mobile unit 1.
[0145] (Aspect 5) In the mobile body 100 described in any one of aspects 1 to 4, the evaluation of the presence or absence of an obstacle in the obstacle map M2 is expressed as the probability of the presence of an obstacle, and the control device 6 positively evaluates the presence of an obstacle by increasing the probability of the presence of an obstacle at a location where an obstacle is detected by the first sensor within the detection range of the first sensor, while negatively evaluating the presence of an obstacle by decreasing the probability of the presence of an obstacle at a location where an obstacle is not detected by the first sensor, and positively evaluates the presence of an obstacle by increasing the probability of the presence of an obstacle at a location where an obstacle is detected by the second sensor within the detection range of the second sensor, while maintaining the evaluation of the presence of an obstacle by maintaining the probability of the presence of an obstacle at a location where an obstacle is not detected by the second sensor.
[0146] This configuration allows for greater safety in the obstacle map M2, where the presence or absence of obstacles is represented by the probability of obstacle existence.
[0147] (Aspect 6) In the mobile body 100 described in any one of aspects 1 to 5, the degree of increase in the probability of presence when an obstacle is detected by the first sensor is greater than the degree of increase in the probability of presence when an obstacle is detected by the second sensor.
[0148] With this configuration, the first increase in the probability of an obstacle's presence when detected by the first sensor, which has a relatively high detection accuracy, is greater than the second increase in the probability of an obstacle's presence when detected by the second sensor, which has a relatively low detection accuracy. Therefore, the probability of an obstacle's presence can be reflected more faithfully in the obstacle map M2 than when the first increase is the same as the second increase. This makes it possible to generate an obstacle map with even greater safety.
[0149] (Aspect 7) In the mobile body 100 described in any one of aspects 1 to 6, the evaluation of the presence or absence of an obstacle in the obstacle map M2 is expressed as the probability of the presence of an obstacle, and the control device 6 positively evaluates the presence of an obstacle by increasing the probability of the presence of an obstacle at a position where an obstacle is detected by the first sensor within the detection range of the first sensor, while negatively evaluating the presence of an obstacle by decreasing the probability of the presence of an obstacle at a position where an obstacle is not detected by the first sensor, and in the detection range of the second sensor, positively evaluates the presence of an obstacle by increasing the probability of the presence of an obstacle at a position where an obstacle is detected by the second sensor, while negatively evaluating the presence of an obstacle at a degree smaller than the degree of decrease in the probability of presence within the detection range of the first sensor by decreasing the probability of the presence of an obstacle at a position where an obstacle is not detected by the second sensor to a degree smaller than the degree of decrease in the probability of presence within the detection range of the first sensor.
[0150] This configuration enhances safety in the obstacle map M2, where the presence or absence of obstacles is represented by the probability of obstacle existence.
[0151] (Aspect 8) In the mobile body 100 described in any one of aspects 1 to 7, the mobile body 1 includes a robot arm 12 and is a mobile robot.
[0152] With this configuration, by utilizing the safer obstacle map M2, the robotic arm 12 can perform tasks appropriately at the destination.
[0153] (Aspect 9) The control device 6 is a control device for a mobile body that generates an obstacle map M2 indicating the location of an obstacle by evaluating the presence or absence of an obstacle based on the detection results of a plurality of sensors 3 that detect objects around the mobile body 1 of the mobile body 100, wherein the plurality of sensors 3 include a first sensor (front sensor 3A) and second sensors (first rear sensor 3B and second rear sensor 3C) which have a lower obstacle detection accuracy than the first sensor, and the control device 6 positively evaluates the presence of an obstacle at a location where an obstacle is detected by the first sensor within the detection range of the first sensor, while negatively evaluating the presence of an obstacle at a location where an obstacle is not detected by the first sensor within the detection range of the second sensor, while positively evaluating the presence of an obstacle at a location where an obstacle is detected by the second sensor within the detection range of the second sensor, while maintaining the evaluation of the presence of an obstacle at a location where an obstacle is not detected by the second sensor, or negatively evaluating the presence of an obstacle at a location where an obstacle is not detected by the second sensor to a smaller degree of negation than the negative evaluation in the detection range of the first sensor.
[0154] This configuration allows for the generation of a safer obstacle map M2.
[0155] (Aspect 10) The method for generating the obstacle map M2 is a method for generating an obstacle map M2, which includes evaluating the presence or absence of obstacles based on the detection results of a plurality of sensors 3 that detect objects around the mobile body 1 of the mobile body 100, and generating an obstacle map M2 that shows the location of obstacles based on the evaluation of the presence or absence of obstacles, wherein the plurality of sensors 3 include a first sensor (front sensor 3A) and second sensors (first rear sensor 3B and second rear sensor 3C) that have a lower obstacle detection accuracy than the first sensor, and in generating the obstacle map M2, the presence of obstacles at locations where obstacles are detected by the first sensor within the detection range of the first sensor is positively evaluated, while the presence of obstacles at locations where obstacles are not detected by the first sensor is negatively evaluated, and the presence of obstacles at locations where obstacles are detected by the second sensor within the detection range of the second sensor is positively evaluated, while the evaluation of the presence of obstacles at locations where obstacles are not detected by the second sensor is maintained, or the evaluation of the presence of obstacles at locations where obstacles are not detected by the second sensor is negatively evaluated to a smaller degree than the negative evaluation within the detection range of the first sensor.
[0156] This configuration allows for the generation of a safer obstacle map M2.
[0157] (Phenomenon 11) The obstacle map M2 generation program is an obstacle map M2 generation program that enables a computer to perform the following functions: evaluate the presence or absence of obstacles based on the detection results of a plurality of sensors 3 that detect objects around the mobile body 1 of the mobile body 100; and generate an obstacle map M2 that shows the location of obstacles based on the evaluation of the presence or absence of obstacles. The plurality of sensors 3 include a first sensor (front sensor 3A) and second sensors (first rear sensor 3B and second rear sensor 3C) that have a lower obstacle detection accuracy than the first sensor. In the function of generating the obstacle map M2, within the detection range of the first sensor, the presence of obstacles at locations where obstacles are detected by the first sensor is evaluated positively, and the presence of obstacles at locations where obstacles are not detected by the first sensor is evaluated negatively. Within the detection range of the second sensor, the presence of obstacles at locations where obstacles are detected by the second sensor is evaluated positively, and the evaluation of the presence of obstacles at locations where obstacles are not detected by the second sensor is maintained, or the evaluation of the presence of obstacles at locations where obstacles are not detected by the second sensor is evaluated negatively to a smaller degree than the negative evaluation within the detection range of the first sensor.
[0158] This configuration allows for the generation of a safer obstacle map M2.
[0159] 100 Mobile Unit 1 Mobile Unit Body 12 Robot Arm 3 Multiple Sensors 3A Front Sensor (First Sensor) 3B First Rear Sensor (Second Sensor) 3C Second Rear Sensor (Second Sensor) 6 Control Unit M2 Obstacle Map
Claims
1. A mobile body comprising: a mobile body; a plurality of sensors for detecting objects around the mobile body; and a control device that generates an obstacle map indicating the location of obstacles by evaluating the presence or absence of obstacles based on the detection results of the plurality of sensors, wherein the plurality of sensors include a first sensor and a second sensor having a lower obstacle detection accuracy than the first sensor, and the control device, in the detection range of the first sensor, positively evaluates the presence of obstacles at locations where obstacles are detected by the first sensor, while negatively evaluating the presence of obstacles at locations where obstacles are not detected by the first sensor, and in the detection range of the second sensor, positively evaluates the presence of obstacles at locations where obstacles are detected by the second sensor, while maintaining the evaluation of the presence of obstacles at locations where obstacles are not detected by the second sensor, or negatively evaluates the evaluation of the presence of obstacles at locations where obstacles are not detected by the second sensor to a smaller degree of negation than the negative evaluation in the detection range of the first sensor.
2. A mobile body according to claim 1, wherein the first sensor is a three-dimensional sensor that detects objects in three-dimensional space, and the second sensor is a two-dimensional sensor that detects objects in two-dimensional space.
3. A mobile body according to claim 1, wherein the first sensor detects an object in a region including at least the front of the mobile body, and the second sensor detects an object in a region including at least the rear of the mobile body.
4. A mobile body according to claim 1, wherein the control device causes the mobile body to perform autonomous movement based on the obstacle map, and generates the obstacle map when performing the autonomous movement.
5. A mobile body according to claim 1, wherein the evaluation of the presence or absence of an obstacle in the obstacle map is expressed as the probability of the presence of an obstacle, and the control device, in the detection range of the first sensor, positively evaluates the presence of an obstacle by increasing the probability of the presence of an obstacle at a location where an obstacle is detected by the first sensor, while negatively evaluating the presence of an obstacle by decreasing the probability of the presence of an obstacle at a location where an obstacle is not detected by the first sensor, and in the detection range of the second sensor, positively evaluates the presence of an obstacle by increasing the probability of the presence of an obstacle at a location where an obstacle is detected by the second sensor, while maintaining the evaluation of the presence of an obstacle at a location where an obstacle is not detected by the second sensor.
6. A moving body according to claim 5, wherein the degree of increase in the probability of presence at a location where an obstacle is detected by the first sensor within the detection range of the first sensor is greater than the degree of increase in the probability of presence at a location where an obstacle is detected by the second sensor within the detection range of the second sensor.
7. A mobile body according to claim 1, wherein the evaluation of the presence or absence of an obstacle in the obstacle map is expressed as the probability of the presence of an obstacle, and the control device, in the detection range of the first sensor, positively evaluates the presence of an obstacle by increasing the probability of the presence of an obstacle at a position where an obstacle is detected by the first sensor, while negatively evaluating the presence of an obstacle by decreasing the probability of the presence of an obstacle at a position where an obstacle is not detected by the first sensor, and in the detection range of the second sensor, positively evaluates the presence of an obstacle by increasing the probability of the presence of an obstacle at a position where an obstacle is detected by the second sensor, while negatively evaluating the presence of an obstacle at a degree smaller than the degree of decrease in the probability of presence in the detection range of the first sensor, by decreasing the probability of the presence of an obstacle at a position where an obstacle is not detected by the second sensor to a degree smaller than the degree of decrease in the probability of presence in the detection range of the first sensor.
8. A mobile body according to any one of claims 1 to 7, wherein the mobile body body includes a robotic arm and is a mobile robot.
9. A control device for a mobile body that generates an obstacle map indicating the location of obstacles by evaluating the presence or absence of obstacles based on the detection results of a plurality of sensors that detect objects around the mobile body of the mobile body, wherein the plurality of sensors include a first sensor and a second sensor having a lower obstacle detection accuracy than the first sensor, and within the detection range of the first sensor, the presence of an obstacle at a location where an obstacle is detected by the first sensor is positively evaluated, while the presence of an obstacle at a location where an obstacle is not detected by the first sensor is negatively evaluated, and within the detection range of the second sensor, the presence of an obstacle at a location where an obstacle is detected by the second sensor is positively evaluated, while maintaining the evaluation of the presence of an obstacle at a location where an obstacle is not detected by the second sensor, or negatively evaluating the presence of an obstacle at a location where an obstacle is not detected by the second sensor to a smaller degree of negation than the negative evaluation within the detection range of the first sensor.
10. A method for generating an obstacle map, comprising: evaluating the presence or absence of obstacles based on the detection results of a plurality of sensors that detect objects around the main body of a mobile body; and generating an obstacle map indicating the location of obstacles based on the evaluation of the presence or absence of obstacles, wherein the plurality of sensors include a first sensor and a second sensor having a lower obstacle detection accuracy than the first sensor; and in generating the obstacle map, the method further comprises: in the detection range of the first sensor, positively evaluating the presence of obstacles at locations where obstacles are detected by the first sensor, while negatively evaluating the presence of obstacles at locations where obstacles are not detected by the first sensor; and in the detection range of the second sensor, positively evaluating the presence of obstacles at locations where obstacles are detected by the second sensor, while maintaining the evaluation of the presence of obstacles at locations where obstacles are not detected by the second sensor, or negatively evaluating the evaluation of the presence of obstacles at locations where obstacles are not detected by the second sensor to a degree of negation smaller than the negative evaluation in the detection range of the first sensor.
11. An obstacle map generation program that enables a computer to perform the following functions: evaluate the presence or absence of obstacles based on the detection results of a plurality of sensors that detect objects around the main body of a mobile object; and generate an obstacle map showing the location of obstacles based on the evaluation of the presence or absence of obstacles, wherein the plurality of sensors include a first sensor and a second sensor having a lower obstacle detection accuracy than the first sensor, and in the function of generating the obstacle map, the program affirms the presence of obstacles at locations where obstacles are detected by the first sensor within the detection range of the first sensor, while negatively evaluating the presence of obstacles at locations where obstacles are not detected by the first sensor within the detection range of the second sensor, while maintaining the evaluation of the presence of obstacles at locations where obstacles are not detected by the second sensor, or negatively evaluating the presence of obstacles at locations where obstacles are not detected by the second sensor to a degree of negation smaller than the negative evaluation within the detection range of the first sensor.