Mobile body, method for controlling the mobile body, and control program for the mobile body
By decoupling pathfinding from orientation adjustment in autonomous moving bodies, the method effectively reduces interference by optimizing route planning and orientation settings, addressing the challenge of object avoidance in navigation.
Patent Information
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- KAWASAKI JUKOGYO KK
- Filing Date
- 2025-07-15
- Publication Date
- 2026-07-29
AI Technical Summary
Existing autonomous moving bodies face challenges in minimizing interference with surrounding objects during navigation, particularly due to the complexity of considering both route planning and orientation adjustments.
A control method and system that separates pathfinding from attitude determination, allowing for route planning without considering the orientation of the moving body, followed by setting the orientation at each position based on environmental information to minimize interference.
This approach reduces computational load and enhances the likelihood of avoiding collisions by optimizing path and orientation settings based on environmental data, thereby minimizing interference with surrounding objects.
Smart Images

Figure 0007897446000001 
Figure 0007897446000002 
Figure 0007897446000003
Abstract
Description
Technical Field
[0001] The technology disclosed herein relates to a moving body, a method for controlling the moving body, and a control program for the moving body.
Background Art
[0002] Conventionally, moving bodies that move autonomously are known. For example, Patent Document 1 discloses a technique for controlling the speed of a moving body according to the surrounding environment when the moving body moves autonomously.
Prior Art Documents
Patent Documents
[0003]
Patent Document 1
Summary of the Invention
[0004] In a moving body that moves autonomously, various measures are adopted to avoid interference with surrounding objects. Adjusting the moving speed according to the surrounding environment described above is one of them. However, there is still room for further improvement in avoiding interference with surrounding objects.
[0005] The technology disclosed herein has been made in view of such points, and the object thereof is to realize the movement of a moving body with a low possibility of interference with surrounding objects.
[0006] The moving body of the present disclosure includes a moving body main body and a control device that causes the moving body main body to perform autonomous movement. The control device performs a route search for searching a route of the moving body main body without considering the posture of the moving body main body, and a posture search for setting the posture of the moving body main body at each position of the route generated by the route search based on the environmental information around each position.
[0007] The method for controlling a mobile body according to this disclosure is a method for controlling a mobile body to perform autonomous movement, and includes searching for a path for the mobile body without considering the orientation of the mobile body, and setting the orientation of the mobile body at each position along the searched path based on environmental information of the surroundings of each position.
[0008] The control program for a mobile body according to this disclosure is a control program for a mobile body that causes the mobile body to perform autonomous movement, and enables a computer to implement a function for searching a path for the mobile body without considering the orientation of the mobile body, and a function for setting the orientation of the mobile body at each position along the searched path based on environmental information of the surroundings of each position.
[0009] According to the aforementioned mobile body, it is possible to achieve movement of the mobile body with a low possibility of interference with surrounding objects.
[0010] According to the aforementioned method for controlling the moving body, it is possible to achieve movement of the moving body with a low possibility of interference with surrounding objects.
[0011] According to the control program for the mobile body, it is possible to achieve movement of the mobile body with a low possibility of interference with surrounding objects. [Brief explanation of the drawing]
[0012] [Figure 1] Figure 1 is a perspective view of the moving object. [Figure 2] Figure 2 is a schematic diagram showing the detection range of the sensor. [Figure 3] Figure 3 shows the hardware configuration of the control device. [Figure 4] Figure 4 is a functional block diagram showing the configuration of the processor's control system. [Figure 5] Figure 5 is a flowchart of the basic operation of the mobile unit. [Figure 6] Figure 6 is a detailed functional block diagram of the route generator. [Figure 7] Figure 7 is a flowchart of the route planning process. [Figure 8] Figure 8 is a flowchart of the posture setting process. [Figure 9] Figure 9 is a schematic diagram for explaining the basic posture. [Figure 10] Figure 10 is an explanatory diagram of the monitoring area. [Figure 11] Figure 11 is a schematic diagram showing an example of the basic posture before inversion. [Figure 12] Figure 12 is a schematic diagram showing an example of the basic posture after inversion. [Figure 13] Figure 13 is a flowchart of the posture correction. [Figure 14] Figure 14 is a flowchart of the enlarged posture search. [Figure 15] Figure 15 is a schematic plan view showing the basic postures of positions Pi and Pi+1. [Figure 16] Figure 16 is a schematic diagram when the moving body main body is rotated about its own axis by a predetermined angle in the first rotation direction from the basic posture. [Figure 17] Figure 17 is a schematic diagram when the posture of the moving body main body becomes the same as the posture of position Pi+1. [Figure 18] Figure 18 is a schematic diagram when the moving body main body is rotated about its own axis by a predetermined angle in the second rotation direction from the basic posture. [Figure 19] Figure 19 is a schematic diagram when the basic posture is set on the position path. [Figure 20] Figure 20 is a schematic diagram when the enlarged posture is set on the position path. [Figure 21] Figure 21 is a schematic diagram when there is no object arranged near position Pi and there is an object arranged near position Pi+1. [Figure 22] Figure 22 is a functional block diagram showing the configuration of the control system of the processor according to the modification example. [Figure 23] Figure 23 is a side view of the moving body main body when the first robot arm and the second robot arm are in the first traveling shape. [Figure 24]FIG. 24 is a plan view of the mobile body main body when the first robot arm and the second robot arm are in the first traveling shape. [Figure 25] FIG. 25 is a side view of the mobile body main body when the first robot arm and the second robot arm are in the second traveling shape. [Figure 26] FIG. 26 is a plan view of the mobile body main body when the first robot arm and the second robot arm are in the second traveling shape.
MODE FOR CARRYING OUT THE INVENTION
[0013] Hereinafter, exemplary embodiments will be described in detail based on the drawings. FIG. 1 is a perspective view of the mobile body 100. The mobile body 100 performs autonomous movement. The mobile body 100 includes a mobile body main body 1 and a control device 6 that causes the mobile body main body 1 to execute autonomous movement. For example, the mobile body 100 moves within a facility such as a store, a hospital, or a nursing facility. In addition to moving, the mobile body 100 may perform operations such as delivering articles or opening and closing doors.
[0014] For example, the mobile body main body 1 includes a robot arm 12 and is a movable robot. Specifically, the mobile body main body 1 may include a carriage 10, a base 11 mounted on the carriage 10, and a robot arm 12 connected to the base 11.
[0015] The front-rear direction of the carriage 10 is defined. In this example, the carriage 10 has a generally rectangular planar shape. For example, the longitudinal direction of the rectangle is the front-rear direction. The short side direction of the rectangle is the left-right direction.
[0016] 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 horizontally at the front of the bottom of the trolley 10 and a pair of wheels 13 arranged horizontally 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 located at the four corners of the bottom of the trolley 10.
[0017] More specifically, wheel 13 may be an omnidirectional wheel. In this example, wheel 13 is a Mecanum wheel. Wheel 13 has multiple barrel-shaped rollers arranged around its outer circumference. For example, the axis of rotation of each roller is tilted at 45 degrees with respect to the axle of wheel 13.
[0018] 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 four wheels 13. The four wheels 13 may be driven independently by the corresponding motors 13a.
[0019] 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.
[0020] 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.
[0021] The mobile body 1 has two robot arms 12. A hand 14 may be attached to the tip of one of the robot arms 12. A hand 14 may not be attached to the tip of the other robot arm 12. One of the robot arms 12 will also be referred to as the first robot arm 12, and the other robot arm 12 will also be referred to as the second robot arm 12. In other words, the robot arm 12 includes the first robot arm 12 and the second robot arm 12.
[0022] The first robot arm 12 and the second robot arm 12 are each connected to different parts of the base 11. For example, the first robot arm 12 and the second robot arm 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 part of the first robot arm 12 to the base 11 and the connection part of the second 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, the first robot arm 12 is connected to the left side of the base 11, and the second robot arm 12 is connected to the right side of the base 11.
[0023] Furthermore, if the planar shape of the bogie 10 is approximately rectangular with a longitudinal direction and a transverse direction, the width direction will approximately coincide with the transverse direction of the planar shape of the bogie 10.
[0024] For example, as shown in Figure 1, the robot arm 12 has a plurality of links L and a plurality of joints J that connect the plurality of links L. The robot arm 12 is configured to move in three dimensions. In this example, the robot arm 12 is a multi-jointed robot arm. That is, the robot arm 12 may be able to freely change its shape by rotating its joints. The robot arm 12 is supported by a base 11.
[0025] For example, the multiple links L include a first link L1, second link L2, third link L3, fourth link L4, fifth link L5, sixth link L6, and seventh link L7, which are arranged in series from the base 11. The seventh link L7 is located at the tip of the robot arm 12. For example, the multiple joints J include a first joint J1, second joint J2, third joint J3, fourth joint J4, fifth joint J5, sixth joint J6, and seventh joint J7, which are arranged in series from the base 11. The position and orientation of the seventh link L7 have six degrees of freedom, combining the translational and rotational directions for each of the three orthogonal axes. The robot arm 12 may also be a so-called 7-axis robot, having seven joints J. In other words, the robot arm 12 has redundancy. Redundancy is the characteristic that the rotation angles of the multiple joints J corresponding to the position and orientation of the tip of the robot arm 12 are not uniquely determined.
[0026] The base 11 and the first link L1 are rotatably connected by the first joint J1. The first link L1 and the second link L2 are rotatably connected by the second joint J2. The second link L2 and the third link L3 are rotatably connected by the third joint J3. The third link L3 and the fourth link L4 are rotatably connected by the fourth joint J4. The fourth link L4 and the fifth link L5 are rotatably connected by the fifth joint J5. The fifth link L5 and the sixth link L6 are rotatably connected by the sixth joint J6. The sixth link L6 and the seventh link L7 are rotatably connected by the seventh joint J7.
[0027] A hand 14 may be connected to the seventh link L7 at the tip of the robot arm 12. That is, the hand 14 is connected to the robot arm 12 so as to be rotatable around the rotation axis of the seventh joint J7. The hand 14 is an end effector attached to the robot arm 12.
[0028] More specifically, multiple joints J may include joints that function as a shoulder joint. For example, multiple joints J may include joints that have the functions of horizontal extension and horizontal flexion in the shoulder joint. The axis of rotation of joints that have the functions of horizontal extension and horizontal flexion in the shoulder joint extends in a substantially vertical direction. Multiple joints J may include joints that have the functions of extension and flexion in the shoulder joint. The axis of rotation of joints that have the functions of extension and flexion in the shoulder joint extends in a substantially horizontal direction.
[0029] For example, the first joint J1 functions as the shoulder joint of the robot arm 12. The first joint J1 may have the functions of horizontal extension and horizontal flexion in the shoulder joint. The axis of rotation of the first joint J1 extends in a substantially vertical direction.
[0030] For example, the second joint J2 functions as the shoulder joint of the robot arm 12. The second joint J2 may have extension and flexion functions in the shoulder joint. The axis of rotation of the second joint J2 extends in a substantially horizontal direction.
[0031] For example, the third joint J3 functions as the shoulder joint of the robot arm 12. The third joint J3 may also have the functions of internal rotation and external rotation in the shoulder joint.
[0032] Multiple joints J may include joints that function as a wrist joint. For example, multiple joints J may include joints that have internal and external rotation functions, or pronation and supination functions, at the wrist joint. For example, the seventh joint J7 may have internal and external rotation functions at the wrist joint. The sixth joint J6 may have pronation and supination functions at the wrist joint.
[0033] Multiple joints J may include an intermediate joint between the shoulder joint and the wrist joint. The intermediate joint may also be called the elbow joint. The intermediate joint may have extension and flexion functions, or internal and external rotation functions. The fourth joint J4 may have extension and flexion functions at the intermediate joint. The fifth joint J5 may have internal and external rotation functions at the intermediate joint.
[0034] The robot arm 12 has motors 12a (see Figure 3) that rotate each joint J. For example, motor 12a is a servo motor. Each motor 12a has an encoder 12b (see Figure 3).
[0035] The mobile body 100 may be equipped with a sensor 3 that detects objects around the mobile body 1 (hereinafter simply referred to as "surrounding objects"). In this disclosure, "object" includes both inanimate and living things. The sensor 3 is located on the mobile body 1. For example, the sensor 3 is located on the trolley 10. The sensor 3 in this example is a distance measuring sensor that measures the distance from the sensor 3 to the surrounding objects. For example, the sensor 3 is a LiDAR (Light Detection and Ranging) sensor. The sensor 3 has, for example, a light-emitting unit that emits laser light toward the surroundings of the mobile body 1 and a light-receiving unit that receives the laser light that strikes the surface of the surrounding objects and is reflected. The sensor 3 measures the flight time from the laser light emitted from the light-emitting unit until it strikes the surface of the surrounding objects and returns to the light-receiving unit. Based on the measured flight time, the sensor 3 measures the distance from the sensor 3 to the surface of the surrounding objects. The sensor 3 may generate point cloud data based on the measured distance. The point cloud data is three-dimensional positional information of the surface of the surrounding objects. For example, sensor 3 outputs the calculated point cloud data to control device 6. Sensor 3 may repeatedly detect surrounding objects at a predetermined detection cycle when the mobile body 1 is moving. Sensor 3 may output the detection result, i.e., point cloud data, to control device 6 each time a surrounding object is detected.
[0036] In this example, the mobile body 100 is equipped with multiple sensors 3. Figure 2 is a schematic diagram showing the detection range of the sensors 3. Figure 2 is a plan view of the mobile body 100, and the robot arm 12, etc., are omitted. The mobile body 100 may be equipped with a first sensor 3A, a second sensor 3B, and a third sensor 3C. The first sensor 3A, the second sensor 3B, and the third sensor 3C are arranged on the trolley 10. The first sensor 3A is located at the front of the trolley 10. For example, the first sensor 3A is located on the trolley 10 in front of the base 11 and approximately in the center in the left-right direction. The first sensor 3A detects objects in the three-dimensional space around the mobile body 1. The first sensor 3A may be a 3D LiDAR. The first sensor 3A scans the measurement light horizontally and vertically. In this example, the first sensor 3A scans the measurement light 360 degrees horizontally, as shown by the dashed line in Figure 2. In the vertical direction, the first sensor 3A scans the measurement light within a predetermined range that includes the elevation angle and the depression angle.
[0037] The second sensor 3B and the third sensor 3C may be located at the rear of the trolley 10. More specifically, the second sensor 3B and the third sensor 3C are located behind the base 11 of the trolley 10. The second sensor 3B is located at the left rear corner of the trolley 10, and the third sensor 3C is located at the right rear corner of the trolley 10. The second sensor 3B and the third sensor 3C may detect objects in the horizontal two-dimensional space around the mobile body 1. For example, the second sensor 3B and the third sensor 3C are 2D LiDAR. The second sensor 3B and the third sensor 3C scan the measurement light horizontally. The second sensor 3B and the third sensor 3C detect objects in the horizontal range that cannot be detected by at least the first sensor 3A. The second sensor 3B scans the measurement light at least to the left rear of the trolley 10. The third sensor 3C scans the measurement light at least to the right rear of the trolley 10. The scanning range of the measurement light from the second sensor 3B and the scanning range of the measurement light from the third sensor 3C partially overlap at the rear of the trolley 10. In this example, the second sensor 3B scans the measurement light horizontally for approximately 270 degrees from the front to the right, including the area to the left of the mobile body 1, as shown by the dashed line in Figure 2. The third sensor 3C scans the measurement light horizontally for approximately 270 degrees from the front to the left, including the area to the right of the mobile body 1, as shown by the dashed line in Figure 2. The second sensor 3B and the third sensor 3C detect objects at approximately the same height. That is, the scanning plane of the measurement light from the second sensor 3B and the scanning plane of the measurement light from the third sensor 3C are at approximately the same height.
[0038] As shown in Figure 2, since the base 11 is positioned behind the first sensor 3A, the first sensor 3A cannot properly scan the measurement light in the range F that overlaps with the base 11. On the other hand, since the second sensor 3B and the third sensor 3C are positioned behind the base 11, the second sensor 3B and the third sensor 3C can scan the measurement light into range F as well.
[0039] Hereafter, unless distinguished, the first sensor 3A, the second sensor 3B, and the third sensor 3C will simply be referred to as "sensor 3".
[0040] Figure 3 shows the hardware configuration of the control device 6. The control device 6 controls the entire mobile body 1. The control device 6 estimates the self-position of the mobile body 1 and causes the mobile body 1 to perform autonomous movement. The control device 6 operates the motors 13a of the wheels 13 to move the mobile body 1. Furthermore, the control device 6 controls the motors 12a of the robot arm 12 to cause the robot arm 12 to perform predetermined tasks. The control device 6 has a processor 61, a memory 62, and a memory 63.
[0041] The processor 61 performs various calculations. For example, the processor 61 is formed by a processor such as a CPU (Central Processing Unit). The processor 61 may also be formed by an MCU (Micro Controller Unit), MPU (Micro Processor Unit), FPGA (Field Programmable Gate Array), PLC (Programmable Logic Controller), system LSI, etc. The mobile body 1 moves autonomously by the processor 61 operating the motor 13a.
[0042] The memory 62 stores programs and various data executed by the processor 61. For example, the memory 62 stores control programs. The memory 62 also stores map information relating to the environment in which the mobile body 1 moves. For example, the map information includes a three-dimensional map and a two-dimensional map. The three-dimensional map is formed from three-dimensional point cloud data. For example, the three-dimensional map is a three-dimensional point cloud map. In the three-dimensional map, the three-dimensional shapes of obstacles in the environment, such as walls, ceilings, railings, shelves, tables, or chairs, are represented by point cloud data. The two-dimensional map is a planar map. For example, the two-dimensional map is a two-dimensional occupancy grid map. In the two-dimensional map, the planar shapes of obstacles in the environment, such as walls, ceilings, railings, shelves, tables, or chairs, are represented. For example, the two-dimensional map is formed by projecting the three-dimensional map onto a plane. The memory 62 is made of non-volatile memory, an HDD (Hard Disc Drive), or an SSD (Solid State Drive), etc. Memory 63 temporarily stores data, etc. For example, memory 63 is made of volatile memory.
[0043] Figure 4 is a functional block diagram showing the configuration of the control system of the processor 61. The processor 61 implements various functions by reading control programs from the memory 62 into the memory 63 and expanding them. For example, the processor 61 functions as a state estimator 64 that estimates the state of the mobile body 1, a map generator 65 that generates a map of the environment in which the mobile body 1 moves, a path generator 66 that plans the path of the mobile body 1, a trajectory generator 67 that generates a target trajectory according to the path, and a movement controller 68 that moves the mobile body 1 according to the target trajectory. The processor 61 may also function as an manipulated variable calculator 69 that calculates the manipulated variable of the motor 13a.
[0044] The state estimator 64 performs self-position estimation. The state estimator 64 receives the detection results from sensor 3, the detection results from encoder 13b, and map information from memory 62 as input. The map information is, for example, a three-dimensional map. The state estimator 64 compares the detection results from sensor 3 with the map information to estimate the current position of the mobile body 1, i.e., its own position. Here, the position of the mobile body 1 also includes its orientation, i.e., its attitude.
[0045] In this example, the state estimator 64 performs self-position estimation using the three-dimensional point cloud data from the first sensor 3A. The state estimator 64 compares the environmental information surrounding the mobile body 1, obtained from the three-dimensional point cloud data of the first sensor 3A, with a three-dimensional map to estimate the position of the mobile body 1 within the environment represented by the three-dimensional map, i.e., its own position.
[0046] The map generator 65 generates a map based on the detection results of the sensor 3. Specifically, the map generator 65 generates or modifies a three-dimensional map based on the detection results of the sensor 3. In this example, the three-dimensional map is generated using SLAM (Simultaneous Localization and Mapping) technology before autonomous movement is performed. More specifically, while the mobile body 1 is moving through the environment, the state estimator 64 and the map generator 65 acquire the detection results of the sensor 3 and perform self-position estimation and map generation in parallel. The generated map information, i.e., the three-dimensional map, is stored in the memory 62. When map generation is performed before autonomous movement is performed, the movement of the mobile body 1 is performed by manual control by the user.
[0047] Furthermore, the map generator 65 updates the two-dimensional map. The two-dimensional map can also be updated during autonomous movement. The map generator 65 detects obstacles in the environment based on the detection results of the sensors 3 acquired while the mobile body 1 is moving, and updates the two-dimensional map.
[0048] The route generator 66 reads the destination and map information from the memory 62. The destination is pre-set in the memory 62. The map information at this time is, for example, a two-dimensional map. At this time, the route generator 66 may also read waypoints in addition to the destination. The state quantities (including the estimated position) of the mobile body 1 are input to the route generator 66 from the state estimator 64.
[0049] The path generator 66 generates a path from the current position of the mobile body 1 to the destination based on map information. The path generator 66 refers to the map information to generate a path that avoids interference with obstacles, etc. If a path is established in the environment, the path generator 66 generates a path along the path. For example, the path generator 66 generates a path using the A-star search algorithm, RRT algorithm, Dijkstra's algorithm, or a geometric approach. The path generator 66 outputs an array of positions that the mobile body 1 will pass through as a path to the trajectory generator 67. Each position includes the attitude of the mobile body 1 in addition to the position information.
[0050] The trajectory generator 67 generates a target trajectory for the mobile body 1 from its current position, following the generated path. The trajectory generator 67 generates the target trajectory for the mobile body 1 in a predetermined manner (for example, the line-of-sight guidance law). The state quantities of the mobile body 1 are input to the trajectory generator 67 from the state estimator 64. The trajectory generator 67 calculates the command velocity of the mobile body 1.
[0051] Alternatively, the trajectory generator 67 may calculate the command velocity using Model Predictive Control (MPC). Model Predictive Control obtains the control input, i.e., the velocity command, by sequentially solving an optimization problem based on a model of the mobile body 1. The trajectory generator 67 predicts future state variables from the current state variables of the mobile body 1 and any obstacles, calculates the optimal path for the mobile body 1, and calculates the command velocity as the speed at which it moves from its current position to its target position to follow that path.
[0052] The command speed calculated by the trajectory generator 67 is input to the movement controller 68. The movement controller 68 outputs a command value corresponding to the command speed to the manipulated variable calculator 69.
[0053] The mobile controller 68 performs controls to avoid interference between the mobile body 1 and the obstacle. The mobile controller 68 monitors the proximity of the mobile body 1 to the obstacle based on the detection results of the sensors 3. In this example, the mobile controller 68 uses all the detection results from the first sensor 3A, the second sensor 3B, and the third sensor 3C to monitor the proximity of the mobile body 1 to the obstacle. For example, the mobile controller 68 slows down or stops the mobile body 1 depending on the distance between the mobile body 1 and the obstacle.
[0054] The manipulated variable calculator 69 distributes command values to multiple motors 13a and calculates the commanded manipulated variable for each of the multiple motors 13a. For example, the manipulated variable may be the rotational speed or torque of the motor.
[0055] Each motor 13a operates according to the commanded input. A motor 13a may have its own controller for operation. For example, if motor 13a is a servo motor, the control device 6 further includes a servo amplifier. In that case, the servo amplifier operates the motor 13a according to the commanded input. As a result, the mobile body 1 moves.
[0056] Next, the basic operation of the mobile unit 100 will be explained. Figure 5 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.
[0057] 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.
[0058] Next, in step S2, the state estimator 64 performs self-localization.
[0059] Next, in step S3, the route generator 66 performs route planning. The route generator 66 generates a route for the mobile body 1 based on map information and the estimated position and destination of the mobile body 1.
[0060] In step S4, the trajectory generator 67 calculates the command velocity of the mobile body 1 from the estimated position so as to follow the generated path.
[0061] In step S5, the movement controller 68 causes the mobile body 1 to perform an action according to the commanded speed.
[0062] The mobile unit 100 moves autonomously to its destination while performing self-position estimation of the mobile unit body 1 by repeating the above process.
[0063] Next, the autonomous movement of the mobile body 100 will be explained in more detail. In this example, the control device 6 performs pathfinding and attitude searching separately. In pathfinding, the control device 6 searches for a path for the mobile body 1 without considering the attitude of the mobile body 1. After pathfinding, the control device 6 performs attitude searching. In attitude searching, the control device 6 sets the attitude of the mobile body 1 at each position along the path generated by pathfinding, based on the environmental information surrounding the mobile body 1.
[0064] Figure 6 is a detailed functional block diagram of the path generator 66. The path generator 66 includes a path finder 661 that searches for a path of the mobile body 1 (hereinafter referred to as the "position path") without considering the attitude of the mobile body 1, and an attitude finder 662 that sets the attitude of the mobile body at each position along the position path. The path generator 66 generates a position path for the mobile body 1 and sets the attitude of the mobile body 1 at each position along the position path, thereby ultimately generating a path in which the position and attitude of the mobile body 1 are defined.
[0065] The path finder 661 searches for a two-dimensional positional path of the mobile body 1, for example, using the A-star search algorithm. The positional path is represented by an array of multiple positions Pi (i = integers from 1 to N) of the mobile body 1. In other words, the positional path defines only the position of the mobile body 1 in two-dimensional space, and does not define the orientation of the mobile body 1 in two-dimensional space. The orientation of the mobile body 1 is the orientation of the mobile body 1 in two-dimensional space. In this example, since the front-to-back direction of the mobile body 1 is defined, the orientation of the mobile body 1 is the orientation of the front of the mobile body 1.
[0066] The attitude searcher 662 sets the attitude of the mobile body 1 to an enlarged attitude, which is an attitude in which the distance between the mobile body 1 and the objects surrounding the mobile body 1 is greater than the attitude in which the mobile body 1 faces the tangential direction of the position path at the position of the target for which the attitude is set. Specifically, the attitude searcher 662 determines whether or not to set the enlarged attitude at each position in the position path based on the surrounding environmental information. The attitude searcher 662 sets the enlarged attitude as the attitude of the mobile body 1 at positions where it has been determined that the enlarged attitude should be set. In this example, the attitude searcher 662 sets an attitude other than the enlarged attitude as the attitude of the mobile body 1 at positions where it has been determined that the enlarged attitude should not be set. An example of an attitude other than the enlarged attitude is the attitude in which the orientation corresponds to the tangential direction of the position path at the position of the target (hereinafter referred to as the "basic attitude"). The attitude searcher 662 acquires the surrounding environmental information of each position in the position path based on the detection signal of the sensor 3.
[0067] Furthermore, the attitude searcher 662 sets the movement method of the mobile body 1 at each position within the position path. Specifically, the attitude searcher 662 sets the movement method to the next position at the target position within the position path where the movement method is set. The movement methods include normal movement and omnidirectional movement. Normal movement is movement in which the front or back of the mobile body 1 faces the direction of travel, and does not include so-called parallel movement. Normal movement includes rotation in which the axis of rotation is located outside the mobile body 1 in a plan view, i.e., rotation. In other words, normal movement is movement that combines forward or backward movement and rotation (including forward or backward movement only, and rotation only). Omnidirectional movement is movement that includes parallel movement in directions other than the forward and backward direction. In other words, omnidirectional movement is movement in which the front or back of the mobile body 1 does not necessarily face the direction of travel. Omnidirectional movement also includes normal movement. Omnidirectional movement includes self-axial rotation. Self-axial rotation is rotation in which the axis of rotation coincides with the mobile body 1 in a plan view. Self-axial rotation can also be described as rotation on the Earth's axis.
[0068] Figure 7 is a flowchart of the route planning process. First, in step S101, the route finder 661 searches for a route to the mobile body 1.
[0069] Next, in step S102, the attitude finder 662 sets the attitude of the mobile body 1 at each position along the position path. Specifically, the attitude finder 662 sets the basic attitude of the mobile body 1 corresponding to each position along the position path.
[0070] Furthermore, in step S103, the attitude searcher 662 corrects the attitude of the mobile body 1 at each position along the position path. Specifically, the attitude searcher 662 determines whether it is necessary to correct the basic attitude at each position along the position path based on the surrounding environmental information of each position, and corrects the basic attitude if necessary. At this time, the attitude searcher 662 sets the movement method of the position where the basic attitude has been corrected to omnidirectional movement.
[0071] According to this path planning method, the positional path is searched without considering the orientation of the mobile body 1, and then the orientation of the mobile body 1 at each position along the positional path is set. Therefore, the computational load of the path search is reduced compared to when the orientation of the mobile body 1 is also considered during the path search. In addition, the orientation of the mobile body 1 at each position along the positional path is set considering the surrounding environmental information of each position. This generates a path in which the possibility of interference between the mobile body 1 and other objects is low. Next, the orientation setting in step S102 will be explained in detail. Figure 8 is a flowchart of the orientation setting process.
[0072] First, in step S201, the attitude finder 662 sets the basic attitude at position Pi on the position path. Initially, i is set to its initial value of 1. In this example, the basic attitude of the mobile body 1 is the attitude corresponding to the tangential direction of the position path at position Pi. Figure 9 is a schematic diagram to explain the basic attitude. In Figure 9, the points are the position path, and the dashed line is a curve that approximates the points of the position path, and is a curve that approximately represents the position path. Specifically, the attitude finder 662 considers the direction from the position Pi-1 (one position before position Pi) to the position Pi+1 (one position after position Pi) (see arrow in the figure) as the tangential direction of the position path at position Pi, and sets it as the basic attitude of position Pi. Note that P0 is the current position of the mobile body 1.
[0073] At this time, the attitude finder 662 sets the method of movement of position Pi, that is, the method of movement from position Pi, to normal movement.
[0074] Next, in step S202, the attitude finder 662 determines whether or not it has set the basic attitude of the last position PN in the position path. If the setting of the basic attitude of position PN is not complete, the attitude finder 662 increments i in step S203 and returns to the process in step S201.
[0075] The attitude searcher 662 sequentially sets the basic attitude from position P1 to position PN by repeating the processes from steps S201 to S203.
[0076] Once the basic attitude settings for all positions along the position path are complete, the attitude searcher 662 changes the basic attitude of the mobile body 1 from one that is difficult to move to one that is movable.
[0077] Specifically, in step S204, the attitude searcher 662 sets i to its initial value of 1.
[0078] In step S205, the attitude searcher 662 determines whether an object exists within the monitoring area Mi-1 at position Pi-1, and also whether an object exists within the monitoring area Mi at position Pi. The attitude searcher 662 determines whether an object exists within monitoring areas Mi-1 and Mi based on map information, for example, a two-dimensional map. Monitoring area Mi is an area set around the mobile body 1 at position Pi. In other words, monitoring area Mi means a predetermined range around position Pi. Monitoring area Mi has a predetermined range that includes the mobile body 1 at position Pi. Figure 10 is an explanatory diagram of the monitoring area. In this example, monitoring area Mi is the area inside the circumscribed circle of the outline of the mobile body 1 at position Pi in plan view. When the mobile body 1 is moving, the robot arm 12 may be positioned so that it fits inside the carriage 10 in plan view. In that case, the outline of the mobile body 1 in plan view is defined by the outline of the carriage 10 in plan view. However, if the robot arm 12 extends beyond the outer shape of the trolley 10 in a plan view, the outer shape of the mobile body 1 in a plan view is defined by the outer shapes of the trolley 10 and the robot arm 12 in a plan view.
[0079] If an object exists within the monitoring area Mi-1 and another object exists within the monitoring area Mi, the attitude searcher 662 determines in step S206 whether the angular difference Δθ between the basic attitude of position Pi-1 and the basic attitude of position Pi is greater than or equal to a predetermined angular threshold α. For example, the angular threshold α is 90 degrees.
[0080] If the angular difference Δθ is greater than or equal to the angular threshold α, the attitude searcher 662 reverses the basic attitude of position Pi by 180 degrees in step S207. In other words, the mobile body 1 moves from position Pi-1 to position Pi with the rear of the trolley 10 facing the direction of travel, i.e., it moves backward.
[0081] In other words, in steps S205 and S206, it is determined whether an object is present near the mobile body 1 at both of the two consecutive positions, and whether the mobile body 1 needs to rotate significantly from one position to the other. In such a situation, there is a high probability that the mobile body 1 will interfere with the object when it rotates. In such cases, the basic orientation is reversed.
[0082] After reversing the basic attitude, the attitude finder 662 determines in step S208 whether or not it has confirmed the basic attitude of the final position PN in the position path. If the confirmation of the basic attitude of position PN is not complete, the attitude finder 662 increments i in step S209 and returns to the process in step S205.
[0083] In step S205, if no object is present in the monitoring area Mi-1, or if no object is present in the monitoring area Mi, the attitude finder 662 executes the process in step S208. In step S206, if the angle difference Δθ is less than the angle threshold α, the attitude finder 662 executes the process in step S208 without changing the basic attitude of position Pi.
[0084] The attitude searcher 662 checks whether or not to reverse the basic attitude sequentially from position P1 to position PN by repeating the process from step S205 to S209.
[0085] Figure 11 is a schematic diagram showing an example of the basic posture before inversion. Figure 12 is a schematic diagram showing an example of the basic posture after inversion. Note that in Figure 11, the mobile body 1 at position Pi-1 is shown. For example, when a path is generated for the mobile body 1 via shelf S, at position Pi-1, the mobile body 1 is approaching shelf S. The next position Pi is further from shelf S than at position Pi-1. In the case of such a position path, the basic posture at position Pi-1 is facing towards shelf S. The basic posture at position Pi is facing away from shelf S. If the mobile body 1 moves according to these basic postures, when the mobile body 1 moves from position Pi-1 to position Pi, it needs to rotate 180 degrees from facing towards shelf S to facing away from shelf S. At this time, the mobile body 1 may interfere with shelf S.
[0086] Therefore, the attitude finder 662 reverses the basic attitude of position Pi by 180 degrees. In other words, the basic attitude of position Pi becomes one that faces the shelf S. When the mobile body 1 moves in accordance with this basic attitude, the mobile body 1 moves from position Pi-1 to position Pi while facing the shelf S, that is, it moves backward. A large rotation of the mobile body 1 is omitted, so the possibility of interference between the mobile body 1 and the shelf S is reduced. When the mobile body 1 moves to a position away from the shelf S, space is secured for rotation.
[0087] In this way, the attitude finder 662 reduces the rotation of the mobile body 1 by inverting the basic attitude of position Pi, which requires a large rotation, thereby avoiding interference between the mobile body 1 and the object.
[0088] Once the basic attitude of all positions along the position path has been confirmed, the attitude searcher 662 terminates the attitude setting process.
[0089] Next, we will explain the posture correction in step S103 in detail. Figure 13 is a flowchart of the posture correction.
[0090] In step S301, the attitude finder 662 determines whether an object exists within the monitoring area Mi at position Pi. The attitude finder 662 determines whether an object exists within the monitoring area Mi based on map information, for example, a two-dimensional map. Initially, i is set to the initial value of 1. The monitoring area Mi is the area set around the mobile body 1 at position Pi, as described above, and has a predetermined range including the mobile body 1 at position Pi.
[0091] If an object is present within the monitoring area Mi, the attitude searcher 662 searches for the enlarged attitude of position Pi in step S302, and corrects the basic attitude of position Pi to the found enlarged attitude in step S303. As will be described in more detail later, the enlarged attitude is an attitude in which the distance between the mobile body 1 and the object is greater compared to the basic attitude at position Pi. In this example, the enlarged attitude is the attitude in which the distance between the mobile body 1 and the object is maximum. Since the planar shape of the trolley 10 is approximately rectangular, for example, if position Pi is located in a narrow passageway, the distance between the mobile body 1 and the object is maximum when the side of the trolley 10 is approximately parallel to the side wall of the passageway.
[0092] In addition, in step S304, the attitude searcher 662 sets the movement method of the mobile body 1 at position Pi to omnidirectional movement.
[0093] Subsequently, the attitude searcher 662 performs the process in step S305. In step S305, the attitude searcher 662 determines whether i is N or not. If i is not N, the attitude searcher 662 increments i in step S306 and returns to the process in step S301.
[0094] If no object exists within the monitoring area Mi, the attitude searcher 662 determines in step S307 whether or not an object exists within the monitoring area Mi+1.
[0095] If no object is present within the monitoring area Mi+1, the attitude finder 662 maintains the basic attitude of position Pi without modification. In addition, in step S308, the attitude finder 662 sets the movement method of the mobile body 1 at position Pi to normal movement.
[0096] If an object is present within the monitoring area Mi+1, the attitude searcher 662 searches for the enlarged attitude of position Pi+1 in step S309. Then, in step S310, the attitude searcher 662 corrects the basic attitude of position Pi to the same attitude as the enlarged attitude of position Pi+1. At this time, the attitude searcher 662 sets a rotation command so that the mobile body 1 at position Pi rotates on its own axis to achieve the same attitude as the enlarged attitude of position Pi+1. In addition, in step S311, the attitude searcher 662 sets the movement method of the mobile body 1 at position Pi to omnidirectional movement.
[0097] In other words, if no object exists within the monitoring area Mi and an object exists within the monitoring area Mi+1, the mobile body 1 moves from position Pi, where no object is nearby, to position Pi+1, where an object is nearby. In this case, the mobile body 1 assumes an expanded orientation for position Pi+1 at position Pi, and moves to position Pi+1 by moving in all directions.
[0098] Next, we will explain the search for the expanded posture. Figure 14 is a flowchart of the search for the expanded posture. Here, we will explain the search for the corrected position at position Pi. Figure 15 is a schematic plan view showing the basic posture at positions Pi and Pi+1. The dashed lines in the figure indicate the position path. The thick arrows in the figure represent the posture of the mobile body 1. In Figure 15, the posture of the mobile body 1 is the basic posture. In the example in Figure 15, the side walls W of the passage are the objects surrounding positions Pi and Pi+1.
[0099] First, in step S401, the attitude searcher 662 searches for an attitude in which the distance D between the mobile body 1 and the surrounding objects is maximized when the mobile body 1 is rotated on its axis in a first rotational direction (for example, clockwise) from the attitude set at position Pi. The attitude set at position Pi is the basic attitude set in step S102. The distance D between the mobile body 1 and the surrounding objects is the distance between the part of the mobile body 1 that is closest to the object and the object, that is, the minimum distance between the mobile body 1 and the object. This distance is also simply called the "distance to the object".
[0100] Specifically, the attitude finder 662 calculates the distance D of the mobile body 1 to the object at position Pi based on map information, such as a two-dimensional map. Then, the attitude finder 662 rotates the mobile body 1 on its axis by a predetermined angle in the first rotation direction from the basic orientation. The predetermined angle is a small angle. Figure 16 is a schematic diagram of the case when the mobile body 1 is rotated on its axis by a predetermined angle in the first rotation direction from the basic orientation. In the example of Figure 16, the side wall W of the passage is the object around position Pi. The attitude finder 662 calculates the distance D of the mobile body 1 to the object after the rotation. Then, the attitude finder 662 determines whether the distance D to the object has increased or not. If the distance D to the object has increased, the attitude finder 662 repeats the rotation of the mobile body 1 on its axis by the predetermined angle, the calculation of the distance D to the object, and the comparison of the distance D to the object. If the distance D to the object does not increase, the attitude finder 662 terminates its search for candidate expanded attitudes in the first rotation direction. Furthermore, if the attitude of the mobile body 1 becomes the same as the attitude at position Pi+1, or if the mobile body 1 comes into contact with the object, the attitude finder 662 also terminates its search for candidate expanded attitudes in the first rotation direction. Figure 17 is a schematic diagram of the case where the attitude of the mobile body 1 becomes the same as the attitude at position Pi+1. In this case, the attitude finder 662 terminates its search for candidate expanded attitudes in the first rotation direction. The attitude finder 662 considers the attitude in which the distance D to the object is maximized as a candidate expanded attitude.
[0101] Next, in step S402, the attitude searcher 662 searches for the attitude in which the distance D to the object is maximized when the mobile body 1 is rotated on its axis in the opposite direction to that of step S401, i.e., in the second rotation direction (for example, counterclockwise), from the attitude set at position Pi. The only difference from step S401 is the direction in which the mobile body 1 is rotated on its axis; all other processes are the same. The attitude searcher 662 searches for the attitude in which the distance D to the object is maximized until the distance D to the object does not increase, the attitude of the mobile body 1 becomes the same as the attitude at position Pi+1, or the mobile body 1 makes contact with the object. Figure 18 is a schematic diagram of the case when the mobile body 1 is rotated on its axis by a predetermined angle in the second rotation direction from the basic attitude. In Figure 18, the distance D to the object has decreased. In this case, the attitude searcher 662 terminates its search for candidate expanded attitudes in the second rotation direction. The attitude searcher 662 selects the attitude that maximizes the distance D to the object as a candidate for the enlarged attitude.
[0102] Next, the attitude searcher 662 determines the candidate for the enlarged attitude from among the candidates for the enlarged attitude when the mobile body 1 is rotated on its axis in the first rotational direction and the candidates for the enlarged attitude when the mobile body 1 is rotated on its axis in the second rotational direction, whichever has a larger distance D to the object.
[0103] According to the expanded attitude search, it is possible to search for expanded attitudes in which the distance D to the object is large, within the range in which the mobile body 1 can rotate on its own axis without contacting the object.
[0104] With this attitude correction, whether or not an expanded attitude is set at each position along the position path is determined based on the surrounding environmental information of each position. Specifically, an expanded attitude is set at positions Pi along the position path where there is a possibility of interference between the mobile body 1 and an object. The possibility of interference between the mobile body 1 and an object is determined by whether or not an object exists within the monitoring area Mi set for each position Pi. Figure 19 is a schematic diagram of the case when the basic attitude is set along the position path. Figure 20 is a schematic diagram of the case when an expanded attitude is set along the position path. As shown in Figure 19, when the basic attitude is set at each position along the position path, the mobile body 1 faces tangentially to the position path at each position. Depending on the attitude, the mobile body 1 approaches surrounding objects, increasing the possibility of interference. On the other hand, when an expanded attitude is set along the position path, as shown in Figure 20, the distance between the mobile body 1 and the object is relatively large at each position. This reduces the possibility of interference between the mobile body 1 and the object.
[0105] In addition, movement from or to a position where the expanded posture is set is achieved by omnidirectional movement of the mobile body 1. For example, in the case of ordinary wheels that are not omnidirectional wheels, the mobile body 1 changes its posture by turning with a relatively large turning radius, so the posture at a certain position is affected by the postures of the positions before and after it. Therefore, even if the posture at each position in the position path is set appropriately, it may be difficult to move the mobile body 1 exactly to the set position. However, since the wheels 13 of the mobile body 1 are omnidirectional wheels, they can move in any direction. In other words, the mobile body 1 can move in any direction without being constrained by the posture of the positions before and after it. As a result, the mobile body 1 can achieve movement that faithfully follows the set expanded posture. For example, in Figure 20, the posture of the mobile body 1 at positions Pi-1, Pi, and Pi+1 is approximately the same. The mobile body 1 moves roughly in parallel from position Pi-1 to position Pi+1 while maintaining its posture. This allows the mobile unit 1 to move while adhering to its set orientation. As a result, the possibility of interference between the mobile unit 1 and objects can be further reduced.
[0106] Furthermore, the attitude searcher 662 determines, based on surrounding environmental information, whether or not to set an enlarged attitude at each position along the position path. Therefore, the enlarged attitude is set at the necessary positions according to the surrounding environmental information. Specifically, the enlarged attitude is set at positions where an object exists within a predetermined range of the surroundings, in this example, within the monitoring area Mi. In the example in Figure 13, if an object is located nearby at the target position Pi, the enlarged attitude is set at the target position Pi. In other words, if an object is located nearby at the target position Pi, the mobile body 1 is likely to move within a narrow area, so the enlarged attitude and omnidirectional movement are set at the target position Pi.
[0107] Alternatively, even if there is no object near the target position Pi, if there is an object near the next position Pi+1, the mobile body 1 is likely to enter a narrow area. Therefore, the expanded orientation for the next position Pi+1 is set at the target position Pi, and omnidirectional movement is set. Furthermore, the movement of the mobile body 1 is set to achieve the expanded orientation for the next position Pi+1 in advance by rotating on its own axis at the target position Pi (see steps S309, S310, S311). Figure 21 is a schematic diagram of the case where there is no object near position Pi, but there is an object near position Pi+1. The mobile body 1 moves to position Pi by normal movement in its basic orientation. The mobile body 1 rotates on its own axis at position Pi so that it is in the same orientation as the expanded orientation for position Pi+1. The mobile body 1 moves from position Pi to position Pi+1 by omnidirectional movement while maintaining the expanded orientation. This type of movement reduces the possibility of interference with objects when the mobile body 1 enters a narrow area.
[0108] In positions along the positional path where the possibility of interference between the mobile body 1 and an object is low, a basic orientation is set. That is, the mobile body 1 moves in an orientation facing tangentially to the positional path. People around the mobile body 1 tend to predict the direction of movement of the mobile body 1 based on its orientation. In other words, if the mobile body 1 has a front-to-back direction, it is easy to predict that the mobile body 1 will move in the direction that front-to-back direction faces. In the orientation facing tangentially to the positional path, the front of the mobile body 1 faces the direction of movement. As a result, people can easily predict the direction of movement of the mobile body 1, and the movement of the mobile body 1 can be prevented from causing discomfort to people. For example, if there is no object placed near the target position Pi, and there is no object placed near the next position Pi+1, a basic orientation is set for position Pi, and normal movement is set.
[0109] The control device 6 may further perform a shape search to set the shape of the robot arm 12 at each position along the path generated by the path search. Figure 22 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 a shape searcher 610 to set the shape of the robot arm 12. The processor 61 may also function as an arm controller 611 to control the robot arm 12.
[0110] The shape explorer 610 sets the shape of the robot arm 12 at each position along the generated path. The shape of the robot arm 12 can be changed by changing the joint angles of multiple joints. Specifically, the shape of the robot arm 12 includes shapes with the joints extended, shapes with the joints flexed, and shapes with the joints rotated. Shapes with the joints flexed or rotated include various shapes with different joint angles.
[0111] 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.
[0112] 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.
[0113] Each motor 12a operates according to the commanded input. A motor 12a may have its own controller for operation. For example, if motor 12a is a servo motor, the control device 6 further includes a servo amplifier. In this case, the servo amplifier operates the motor 12a according to the commanded input. As a result, the robot arm 12 deforms into the target shape.
[0114] In the basic operation of the mobile body 100, the shape searcher 610 may perform a shape search of the robot arm 12 in step S3 of Figure 5 to set the shape of the robot arm 12 at each position along the path.
[0115] In step S5, the arm controller 611 may control the robot arm 12 to the set shape.
[0116] The control device 6 may further perform a shape search of the robot arm 12 when separating the path search and attitude search. The control device 6 performs the shape search after the path search. The control device 6 may perform the shape search in parallel with the attitude search, or may perform the path search before the attitude search, or may perform the shape search after the attitude search. In the shape search, the control device 6 sets the shape of the robot arm 12 at each position along the path generated by the path search based on the surrounding environment information of the mobile body 1.
[0117] In shape search, the shape searcher 610 sets the shape of the robot arm 12 at each position along the path generated by path search, i.e., the travel shape. When the mobile body 1 is moving, the shape of the robot arm 12 is maintained at the shape set by the shape searcher 610. The shape of the robot arm 12 set in shape search includes a first travel shape and a second travel shape. Figure 23 is a side view of the mobile body 1 when the first robot arm 12 and the second robot arm 12 are in the first travel shape. Figure 24 is a top view of the mobile body 1 when the first robot arm 12 and the second robot arm 12 are in the first travel shape. Figure 25 is a side view of the mobile body 1 when the first robot arm 12 and the second robot arm 12 are in the second travel shape. Figure 26 is a top view of the mobile body 1 when the first robot arm 12 and the second robot arm 12 are in the second travel shape.
[0118] For example, the first robot arm 12 and the second robot arm 12 in the first travel configuration are positioned relatively high. For example, the first robot arm 12 and the second robot arm 12 in the first travel configuration are bent at the intermediate joint between the shoulder joint and the wrist joint, for example, the fourth joint J4, with the portion between the base 11 and the intermediate joint extending diagonally downward and backward from the base 11, and the portion between the intermediate joint and the wrist joint extending forward from the intermediate joint. In other words, the first robot arm 12 and the second robot arm 12 in the first travel configuration have the intermediate joint pulled backward and bent at the intermediate joint. As a result, the portions of the first robot arm 12 and the second robot arm 12 closer to the end effector than the intermediate joint are positioned relatively high. Furthermore, the end effector positions of the first robot arm 12 and the second robot arm 12 are relatively far back.
[0119] The first robot arm 12 and the second robot arm 12 in the first travel configuration are positioned higher than the first sensor 3A of the mobile body 1. The detection range of the first sensor 3A extends three-dimensionally from the first sensor 3A. The space above the first sensor 3A is included in the detection range of the first sensor 3A. Since the first robot arm 12 and the second robot arm 12 are positioned above the first sensor 3A, they may obstruct a portion of the detection range of the first sensor 3A. The detection results of the first sensor 3A that correspond to the first robot arm 12 and the second robot arm 12 are treated as invalid. The higher the position of the first robot arm 12 and the second robot arm 12, the further they are from the first sensor 3A. The further the first robot arm 12 and the second robot arm 12 are from the first sensor 3A, the smaller the area within the detection range of the first sensor 3A tends to be obstructed by the first robot arm 12 and the second robot arm 12. Therefore, in the first travel configuration, the detection range of the first sensor 3A is relatively large.
[0120] Furthermore, the amount of forward protrusion of the first robot arm 12 and the second robot arm 12 in the first travel configuration from the base 11 is relatively small. By reducing the amount of forward protrusion of the first robot arm 12 and the second robot arm 12, the detection range of the first sensor 3A, specifically the diagonally upward forward detection range from the first sensor 3A, is expanded.
[0121] The width of the overall shape of the first robot arm 12 and the second robot arm 12 in the second travel configuration, as viewed from above, is smaller than the width of the overall shape of the first robot arm 12 and the second robot arm 12 in the first travel configuration, as viewed from above.
[0122] For example, in the first travel configuration, as shown in Figure 24, the second link L2 is located on the outermost side in the width direction. In other words, the widthwise size W1 of the overall shape of the first robot arm 12 and the second robot arm 12 in the first travel configuration, as viewed from above, is determined by the second link L2 of the first robot arm 12 and the second robot arm 12. In the first travel configuration, the first link L1 is located further out in the width direction than the rotation axis X of the first joint J1. The second link L2, which is connected to the first link L1, is also located further out in the width direction than the rotation axis X of the first joint J1.
[0123] Furthermore, in the first travel configuration, all links L except the second link L2 are positioned further inward in the width direction than the second link L2. This reduces the overall width W1 of the first and second robot arms 12 in the first travel configuration when viewed from above.
[0124] In the second travel configuration, as shown in Figure 26, the second link L2 is located on the outermost side in the width direction. In other words, the width W2 of the overall shape of the first and second robot arms 12 in the second travel configuration, as viewed from above, is determined by the second link L2 of the first and second robot arms 12. That is, in the second travel configuration, all links L other than the second link L2 are positioned further inward in the width direction than the second link L2. In the second travel configuration, the longitudinal position of the first link L1 is forward of the rotation axis X of the first joint J1. The longitudinal position of the second link L2, which is connected to the first link L1, is also forward of the rotation axis X of the first joint J1. In other words, the first link L1 and the second link L2 are rotated forward around the rotation axis X of the first joint J1 compared to the first travel configuration. As a result, the widthwise dimension W2 between the second link L2 of the first robot arm 12 and the second link L2 of the second robot arm 12 in the second travel configuration is smaller than the widthwise dimension W1 between the second link L2 of the first robot arm 12 and the second link L2 of the second robot arm 12 in the first travel configuration.
[0125] In the second travel configuration, the overall width W2 of the first robot arm 12 and the second robot arm 12 is small, making it easier to maintain a safe distance between the mobile body 1 and surrounding objects.
[0126] The lowest positions of the first robot arm 12 and the second robot arm 12 in the first travel configuration may be higher than the lowest positions of the first robot arm 12 and the second robot arm 12 in the second travel configuration. In both the first and second travel configurations, the first robot arm 12 and the second robot arm 12 may be positioned higher than the first sensor 3A of the mobile body 1.
[0127] For example, in the first travel configuration, as shown in Figure 23, the fourth link L4, fifth link L5, sixth link L6, and seventh link L7 are positioned at approximately the same height. The lowest point of the first robot arm 12 and the second robot arm 12 in the first travel configuration is determined by one of the fourth link L4, fifth link L5, sixth link L6, and seventh link L7. For example, the lowest point of the first robot arm 12 and the second robot arm 12 in the first travel configuration is the sixth link L6. In the second travel configuration, as shown in Figure 25, the fourth link L4, fifth link L5, sixth link L6, and seventh link L7 are positioned at approximately the same height. The lowest point of the first robot arm 12 and the second robot arm 12 in the second travel configuration is determined by one of the fourth link L4, fifth link L5, sixth link L6, and seventh link L7. For example, the lowest point of the first robot arm 12 and the second robot arm 12 in the second travel configuration is the fourth link L4. The height H1 up to the sixth link L6 in the first running gear configuration is higher than the height H2 up to the fourth link L4 in the second running gear configuration.
[0128] In the first travel configuration, the first robot arm 12 and the second robot arm 12 are positioned at a higher overall position, which expands the detection range of the first sensor 3A compared to the second travel configuration.
[0129] The foremost positions of the first robot arm 12 and the second robot arm 12 in the first travel configuration may be located further back than the foremost positions of the first robot arm 12 and the second robot arm 12 in the second travel configuration. The rearmost positions of the first robot arm 12 and the second robot arm 12 in the first travel configuration may be located further back than the rearmost positions of the first robot arm 12 and the second robot arm 12 in the second travel configuration.
[0130] For example, in the first running configuration, as shown in Figure 23, the seventh link L7 is at the foremost end and the fourth link L4 is at the rearmost end. In the first running configuration, the second link L2 rotates rearward around the rotation axis of the second joint J2, and the third link L3 and the fourth link are bent at the fourth joint J4 so that the fourth link L4 is approximately horizontal. The fourth joint J4, which is an intermediate joint, is positioned rearward than the first joint J1, which is a shoulder joint. The fourth link L4 and the fifth link L5 extend approximately in the front-to-back direction on the outside of the width direction of the base 11. As a result, the fourth link L4, fifth link L5, sixth link L6, and seventh link L7 are positioned relatively rearward. In addition, the fourth link L4, fifth link L5, sixth link L6, and seventh link L7 are positioned at a relatively high position.
[0131] On the other hand, in the second running configuration, as shown in Figure 25, the sixth link L6 is at the foremost end and the first link L1 is at the rearmost end. In the second running configuration, the second link L2 rotates forward around the axis of rotation of the second joint J2, and the third link L3 and the fourth link are bent at the fourth joint J4 so that the fourth link L4 is approximately horizontal. The fourth joint J4, which is an intermediate joint, is positioned forward of the first joint J1, which is a shoulder joint. The fourth joint J4 may also be positioned forward of the base 11. However, the fourth joint J4 is positioned lower than in the first running configuration. The fourth link L4 and the fifth link L5 extend approximately in the front-to-back direction in front of the base 11. As a result, the fourth link L4, fifth link L5, sixth link L6, and seventh link L7 are positioned relatively forward. In addition, the fourth link L4, fifth link L5, sixth link L6, and seventh link L7 are positioned lower than in the first running configuration.
[0132] In the first travel configuration, the first robot arm 12 and the second robot arm 12 are positioned further rearward overall compared to the second travel configuration. In other words, in the first travel configuration, the amount of protrusion of the first robot arm 12 and the second robot arm 12 forward from the base 11 is smaller compared to the second travel configuration. As a result, in the first travel configuration, the detection range of the first sensor 3A, specifically the diagonally upward and forward detection range from the first sensor 3A, can be expanded compared to the second travel configuration. Furthermore, the overall shape of the first robot arm 12 and the second robot arm 12 in the first travel configuration, when viewed from above, may be 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.
[0133] The length of the overall shape of the first robot arm 12 and the second robot arm 12 in the second travel configuration, as viewed from above, may be larger than the length of the overall shape of the first robot arm 12 and the second robot arm 12 in the first travel configuration, as viewed from above, as shown in Figure 26.
[0134] For example, in the second travel configuration, the first link L1 is located in front of the rotation axis X of the first joint J1, so the overall shape of the first robot arm 12 and the second robot arm 12 in plan view is larger in the longitudinal direction compared to the first travel configuration. In other words, the longitudinal size of the overall shape of the first robot arm 12 and the second robot arm 12 in plan view in the first travel configuration is smaller than the longitudinal size of the overall shape of the first robot arm 12 and the second robot arm 12 in plan view in the second travel configuration.
[0135] The shape searcher 610 determines whether to set the shape of the robot arm 12 at each position along the path to a first travel shape or a second travel shape, based on the surrounding environmental information of each position. For example, the shape searcher 610 determines whether an object exists within the monitoring area Mi of each position Pi, based on map information, such as a two-dimensional map. The monitoring area Mi corresponds to a predetermined range around position Pi.
[0136] Furthermore, in the first and second travel configurations, the shape of the first robot arm 12 does not have to be exactly the same as the shape of the second robot arm 12. That is, the shape of the first robot arm 12 may be slightly different from the shape of the second robot arm 12. For example, the tip of the first robot arm 12 and the tip of the second robot arm 12 may be at different heights. The seventh joint J7 of the first robot arm 12 and the seventh joint J7 of the second robot arm 12 may have different rotation angles.
[0137] The shape searcher 610 sets the second travel shape as the shape of the robot arm 12 at positions where it has determined that the second travel shape should be set. In this example, the shape searcher 610 sets a shape other than the second travel shape as the shape of the robot arm 12 at positions where it has determined that the second travel shape should not be set. The shape other than the second travel shape is, for example, the first travel shape.
[0138] For example, the shape searcher 610 sets a second travel shape when an object exists within a predetermined range around each position in the path, and sets a first travel shape when no object exists within a predetermined range around each position in the path.
[0139] Furthermore, the effective range of the detection range of sensor 3 is changed according to the movement shape of the robot arm 12. Areas within the detection range of sensor 3 that are shielded by the base 11 and the robot arm 12 are treated as invalid ranges. As mentioned above, the effective range of the detection range of the first sensor 3A differs between the first movement shape and the second movement shape. Therefore, the control device 6 changes the effective range of the detection range of the first sensor 3A according to the set movement shape. For example, the state estimator 64 and the movement controller 64 change the effective range of the detection range of the first sensor 3A according to the set movement shape. The effective range of the detection range of the first sensor 3A when the first movement shape is set is larger than when the second movement shape is set.
[0140] The shape searcher 610 may set the shape of the robot arm 12 during path planning. For example, the shape searcher 610 sets the shape of the robot arm 12 at each position along the position path during posture correction in step S103 of Figure 11. The shape searcher 610 may determine whether to set the shape of the robot arm 12 at each position along the position path to a first travel shape or a second travel shape based on the surrounding environmental information of each position. By setting the shape of the robot arm 12 while considering the surrounding environmental information of each position, the shape of the robot arm 12 is set to an overall shape that has a low possibility of interference between the robot arm 12 and other objects.
[0141] For example, in step S302 of the flowchart in Figure 13, the shape searcher 610 sets the shape of the robot arm 12 at position Pi to the second travel shape. In other words, the robot arm 12 at position Pi where an object exists within the monitoring area Mi is given the second travel shape. More specifically, the second travel shape is a shape in which the overall shape of the first robot arm 12 and the second robot arm 12 in plan view is reduced in the width direction. The distance between the mobile body 1 and the object depends on the planar shape and orientation of the mobile body 1. By reducing the overall shape of the first robot arm 12 and the second robot arm 12 in the width direction, it becomes easier to secure the distance between the mobile body 1 and the object.
[0142] In step S308, the shape searcher 610 may set the shape of the robot arm 12 at position Pi to the first travel shape. That is, the first travel shape is set for the robot arm 12 at position Pi where there are no objects in the monitoring area Mi and no objects in the monitoring area Mi+1 of the next position Pi+1. Specifically, the first travel shape is such that the positions of the first robot arm 12 and the second robot arm 12 are higher and further back compared to the second travel shape. This expands the detection range of the first sensor 3A.
[0143] In step S309, the shape searcher 610 may set the shape of the robot arm 12 at position Pi to the second travel shape. That is, even if there is no object in the monitoring area Mi, if there is an object in the monitoring area Mi+1 at the next position Pi+1, the shape of the robot arm 12 at position Pi will be set to the second travel shape. This makes it easier to maintain a safe distance between the mobile body 1 and the object when moving from position Pi to position Pi+1.
[0144] During the search for the enlarged posture shown in Figure 14, the first robot arm 12 and the second robot arm 12 are set to a travel shape. For example, if the second travel shape is set in step S302 or S309, the enlarged posture is searched while the first robot arm 12 and the second robot arm 12 are in the second travel shape.
[0145] In the second travel configuration, the overall width of the first robot arm 12 and the second robot arm 12 is relatively small. For example, in a plan view, the first robot arm 12 and the second robot arm 12 are contained within the carriage 10 in the width direction. In this case, the part of the mobile body 1 that is closest to the object is part of the carriage 10. However, if the first robot arm 12 and the second robot arm 12 protrude outward from the carriage 10 in the width direction in a plan view, the part of the mobile body 1 that is closest to the object is part of the robot arm 12. In this case, in the explanation of the magnified posture search, the distance D between the mobile body 1 and the surrounding object is the distance between part of the robot arm 12 and the surrounding object.
[0146] With such a mobile body 100, when the mobile body 1 is moving, the robot arm 12 maintains a travel shape. The travel shape is changed according to the position along the location path. According to shape search, at each position along the location path, either the first travel shape or the second travel shape is set based on the surrounding environment information of each position. At positions where there is a possibility of interference with an object, the second travel shape is set. Since the width of the overall shape of the first and second robot arms 12 in the second travel shape in a plan view is relatively small, it is easier to secure a distance between the mobile body 1 and the object. This reduces the possibility of interference between the mobile body 1 and the object.
[0147] In positions where no objects exist within a predetermined range, the first travel configuration is basically set. In the first travel configuration, the first robot arm 12 and the second robot arm 12 are positioned further back and higher compared to the second travel configuration. This expands the detection range of the first sensor 3A. Since more information about the surroundings of the mobile body 1 can be acquired, safer movement can be achieved. In the first travel configuration, the overall width of the first robot arm 12 and the second robot arm 12 in a plan view is larger compared to the second travel configuration. However, since no objects exist within the predetermined range, the possibility of interference between the mobile body 1 and objects is low.
[0148] However, even if there are no objects within a predetermined range at a given location, if there are objects within a predetermined range at the next location, the mobile body 1 is likely to enter a narrow area. Therefore, a second travel shape is set at such locations. This reduces the possibility of interference with objects even when the mobile body 1 enters a narrow area.
[0149] Of the multiple joints J, the joint J that horizontally extends and horizontally flexes the entire robot arm 12 rotates the entire robot arm 12 forward compared to the first travel shape, thereby realizing the second travel shape. The joint J that horizontally extends and horizontally flexes the entire robot arm 12 is, for example, the first joint J1, to which the second link L2 is connected. In the first travel shape, the second link L2 is located outside in the width direction with respect to the rotation axis X of the first joint J1. In the second travel shape, the front-to-back position of the second link L2 is forward of the first joint J1. As a result, the width of the overall shape of the first and second robot arms 12 in the second travel shape in a plan view can be made smaller compared to the first travel shape.
[0150] Other embodiments As described above, the embodiments described herein have been presented as examples of the technology disclosed in this application. However, the technology in this disclosure is not limited thereto and can be applied to embodiments that have been modified, replaced, added, or omitted as appropriate. Furthermore, it is possible to combine the components described in the embodiments above to create new embodiments. In addition, the components described in the attached drawings and detailed description may include not only components essential for solving the problem, but also components that are not essential for solving the problem, in order to illustrate the technology. Therefore, the mere presence of such non-essential components in the attached drawings and detailed description should not be immediately assumed to mean that those non-essential components are essential.
[0151] For example, the mobile body 1 is not limited to a robot, but may be a mobile device such as a drone, ship, or vehicle. The location where the mobile body 1 moves is not limited to a passageway, but may be a road or waterway. The mobile body 1 does not have to include a robot arm 12. The base 11 may be rotatable relative to the trolley 10. The wheels 13 are not limited to omnidirectional wheels. If the wheels 13 are omnidirectional wheels, they may be omni-wheels.
[0152] Sensor 3 is not limited to LiDAR. Sensor 3 may be a two-dimensional or three-dimensional camera. Sensor 3 may be a three-dimensional scanner. Sensor 3 may be located on parts of the mobile body 1 other than the trolley 10. The number of sensors 3 is not limited to three. The number of sensors 3 may be one, two, or four or more.
[0153] At locations along the path where an expanded orientation is not set, an orientation other than the basic orientation may be set. In other words, any orientation can be set at locations where an expanded orientation is not set. Any orientation can be set depending on the path generation policy or environmental information. The basic orientation is not limited to an orientation facing the normal direction of the tangent at the target location. The basic orientation can be set arbitrarily depending on the path generation policy, etc.
[0154] Furthermore, in setting the basic attitude, in the example above, the basic attitude of position Pi is inverted when the angular difference Δθ between position Pi+1 and position Pi is large, but this process may be omitted. Alternatively, if the process of inverting the basic attitude as needed is performed in this way, the process of setting the enlarged attitude may be omitted. In other words, in the explanation above, when setting the attitude at each position along the position path after generating the position path, both inverting the set attitude and setting an attitude where the distance between the mobile body 1 and the object is large are performed, but only one of these may be performed. Note that the angular threshold α for determining whether or not to invert the attitude is not limited to 90 degrees. The angular threshold α may be 135 degrees or 180 degrees, etc.
[0155] In the above explanation, whether or not an object exists around each position in the path is determined based on the monitoring area Mi. The shape of the monitoring area Mi is not limited to a circle. The shape of the monitoring area Mi may be, for example, a polygon or an ellipse. The size of the monitoring area Mi is preferably such that it includes the mobile body 1. In other words, the monitoring area Mi may be larger than the circumscribed circle of the mobile body 1.
[0156] The position where the magnified orientation is set is not limited to position Pi when there is an object nearby at both position Pi and position Pi+1, nor is it limited to position Pi when there is no object near position Pi but there is an object near position Pi+1. The above explanation regarding the position where the magnified orientation is set is merely an example. Whether or not the magnified orientation is set is determined according to the environmental information of each position included in the position path. Simply put, the magnified orientation may be set at position Pi if there is an object around position Pi.
[0157] The enlarged posture is not limited to the posture in which the distance between the mobile body 1 and the object is maximized. In other words, the enlarged posture can be any posture in which the distance between the mobile body 1 and the object is greater than the posture in which the mobile body 1 is facing in the tangential direction of the positional path at the object's position.
[0158] The search for the enlarged posture may be performed by rotating the mobile body 1 on its axis in only one of the first and second rotation directions at the target position. For example, in the search for the enlarged posture at position Pi, the enlarged posture may be searched by rotating the mobile body 1 in the basic posture only in the direction that approaches the basic posture at position Pi+1, out of the first and second rotation directions.
[0159] In shape search, either a first or second travel shape is set depending on whether or not an object exists within a predetermined range around each position in the path. However, the shape searcher 610 may set the second travel shape at positions in the path where an enlarged orientation is set. The shape searcher 610 may also set the first travel shape at positions where an enlarged orientation is not set. Positions where an enlarged orientation is set are positions where the distance between the mobile body 1 and surrounding objects is short. By setting the second travel shape at positions where an enlarged orientation is set, the possibility of interference between the mobile body 1 and objects can be further reduced.
[0160] The flowchart is merely an example. The steps in the flowchart may be changed, replaced, added, or omitted as appropriate. The order of the steps in the flowchart may also be changed, or serial processes may be processed in parallel. For example, in the attitude setting flowchart of Figure 12, steps S204 and below may be omitted. In the attitude correction flowchart of Figure 17, steps S307, S309, S310, and S311 may be omitted, and if no object exists in both the monitoring area Mi and the monitoring area Mi+1, the normal attitude may be set to position Pi in step S308.
[0161] The functions of the elements disclosed herein may be implemented using one or more circuits or processing circuits, including general-purpose processors, special-purpose processors, integrated circuits, ASICs (Application Specific Integrated Circuits), FPGAs (Field Programmable Gate Arrays), and / or conventional circuits. The functions of the elements disclosed herein may be implemented using one or more circuits or processing circuits, including combinations of general-purpose processors, special-purpose processors, integrated circuits, ASICs, FPGAs, and conventional circuits. One or more circuits or processing circuits may be programmed using one or more programs stored together or individually in one or more memories, or may be otherwise configured to perform the disclosed functions. A processor is considered a processing circuit or circuit because it includes transistors and other circuits. A processor may be a programmed processor that executes programs stored in memory. In this disclosure, a circuit, unit, or means is hardware that performs the enumerated functions alone or in combination with each other, or hardware programmed to perform the enumerated functions alone or in combination with each other. The hardware may be any hardware disclosed herein that is programmed or configured to perform the listed functions.
[0162] A computer program, including computer instructions, is stored in memory. The computer instructions provide logic and routines that enable hardware to execute the methods disclosed herein. The hardware includes, for example, processing circuits or circuits. The computer program may be implemented in a known format on computer-readable storage media, computer program products, memory devices, recording media such as CD-ROMs or DVDs, and / or in the memory of FPGAs or ASICs.
[0163] [Pattern] The above-mentioned embodiment is a specific example of the following embodiment.
[0164] (Aspect 1) The mobile body 100 comprises a mobile body main body 1 and a control device 6 that causes the mobile body main body 1 to perform autonomous movement. The control device 6 performs a path search that searches for a path for the mobile body main body 1 without considering the orientation of the mobile body main body 1, and an orientation search that sets the orientation of the mobile body main body 1 at each position along the path generated by the path search, based on environmental information of the surroundings of each position.
[0165] With this configuration, the orientation of the mobile body 1 is not considered during pathfinding, thus reducing the computational load of pathfinding. By separating orientation search from pathfinding, an appropriate orientation can be easily found. As a result, the movement of the mobile body 100, which has a low probability of interference with surrounding objects, can be realized while reducing the computational load.
[0166] (Aspect 2) In the mobile body 100 described in Aspect 1, the control device 6 sets the attitude of the mobile body 1 to an enlarged attitude, which is an attitude in which the distance between the mobile body 1 and the objects surrounding the mobile body 1 is greater than the attitude facing the tangential direction of the path at the position where the attitude is set.
[0167] In this configuration, during attitude search, the augmented attitude is set to the attitude of the mobile body 1 along the path. Normally, considering the smooth movement of the mobile body 1, the attitude of the mobile body 1 tends to be set to an attitude that roughly faces the tangential direction of the path at each position along the path. The augmented attitude increases the distance between the mobile body 1 and the object compared to such an attitude that faces the tangential direction of the path. By setting the augmented attitude, the possibility of interference between the mobile body 1 and the object is reduced.
[0168] (Aspect 3) In the mobile body 100 described in Aspect 1 or Aspect 2, the control device 6 determines, in the attitude search, whether each position along the path is a position for setting the enlarged attitude based on the surrounding environmental information of each position.
[0169] With this configuration, the control device 6 sets the attitude of the mobile body 1 to an expanded attitude according to the surrounding environment at each position along the path. This allows the attitude of the mobile body 1 to be set to an expanded attitude in environments where there is a high possibility of interference between the mobile body 1 and objects.
[0170] (Aspect 4) In the mobile body 100 described in any one of aspects 1 to 3, the control device 6 determines in the attitude search whether each position along the path is a position for setting the magnified attitude based on whether or not an object exists within a predetermined range around each position, i.e., within the monitoring area Mi.
[0171] With this configuration, the decision to set an enlarged orientation is made based on whether or not an object is nearby at each point along the path. As a result, the enlarged orientation is set at locations where an object is nearby, reducing the possibility of interference between the mobile body 1 and the object.
[0172] (Aspect 5) In the mobile body 100 described in any one of aspects 1 to 4, the mobile body 1 has a defined front-rear direction, and in addition to movement in the front-rear direction, it is capable of parallel movement in directions other than the front-rear direction, and the control device 6 enables the movement of the mobile body 1 to or from the position in which the expanded posture is set by movement including at least the parallel movement.
[0173] With this configuration, the mobile body 1 can move relatively freely without being restricted by the minimum turning radius, etc. Therefore, it becomes easier to achieve movement while adhering to the set expanded posture.
[0174] (Aspect 6) In the mobile body 100 described in any one of aspects 1 to 5, the control device 6, in the attitude search, sets the attitude of the mobile body 1 to an attitude corresponding to the tangential direction of the path at each of the positions, and if the object is located within a predetermined range around each position at both of two consecutive positions in the path, and the angular difference Δθ between the attitude corresponding to the tangential direction of the path at the preceding of the two consecutive positions and the attitude corresponding to the tangential direction of the path at the subsequent of the two consecutive positions is greater than or equal to a predetermined angular threshold α, the control device 6 reverses the attitude corresponding to the tangential direction of the path at the subsequent position.
[0175] With this configuration, if the aforementioned orientation reversal is not performed, the mobile body needs to rotate significantly when moving between two consecutive positions. If the mobile body 1 rotates significantly in an environment where an object is placed nearby, there is a possibility of interference between the mobile body 1 and the object. However, by reversing the orientation of the second of the two consecutive positions, the rotation of the mobile body 1 is reduced when moving between the two consecutive positions. As a result, the possibility of interference between the mobile body 1 and the object is reduced.
[0176] (Aspect 7) In the mobile body 100 described in any one of aspects 1 to 6, the mobile body 1 includes a base 11 and a multi-joint robot arm 12 connected to the base 11 and capable of changing shape, and the control device 6 further performs a shape search to set the shape of the robot arm 12 at each position of the path generated by the path search.
[0177] In this configuration, the shape of the robot arm 12 at each position along the path is determined by shape search. This manages the shape of the robot arm 12 during the movement of the mobile body 1. The shape of the robot arm 12 at each position is searched separately from path search and attitude search. Therefore, the shape of the robot arm 12 during movement can be determined with a low computational load.
[0178] (Aspect 8) In the mobile body 100 described in any one of aspects 1 to 7, the robot arm 12 includes a first robot arm 12 and a second robot arm 12, the mobile body 1 further includes a base 11 to which the first robot arm 12 and the second robot arm 12 are connected, the first robot arm 12 and the second robot arm 12 are respectively connected to different parts of the base 11 in the width direction which is one direction in a plan view, the shape of the robot arm 12 set in the shape search includes a first travel shape and a second travel shape, the width direction size of the overall shape of the first robot arm 12 and the second robot arm 12 in the second travel shape in a plan view is smaller than the width direction size of the overall shape of the first robot arm 12 and the second robot arm 12 in the first travel shape in a plan view.
[0179] In this configuration, the shape of the robot arm 12 at each position along the path can be set to either a first or second travel shape. In the second travel shape, the overall width of the first and second robot arms 12 in plan view is smaller compared to the first travel shape. By setting the second travel shape, the possibility of interference between the robot arm 12 and an object is reduced compared to the first travel shape.
[0180] (Aspect 9) In the mobile body 100 described in any one of aspects 1 to 8, the control device 6 determines, in the shape search, whether to set the shape of the robot arm 12 at each position along the path to the first travel shape or the second travel shape based on the surrounding environmental information of each position.
[0181] In this configuration, the shape of the robot arm 12 at each position is changed based on the surrounding environmental information of that position. The possibility of interference between the mobile body 1 and an object can be inferred from the surrounding environmental information of each position. By setting a first or second travel shape based on the surrounding environmental information of each position, the possibility of interference between the mobile body 1 and an object can be reduced.
[0182] (Aspect 10) In the mobile body 100 described in any one of aspects 1 to 9, the control device 6 sets the second travel shape when an object exists within a predetermined range around each position of the path, and sets the first travel shape when no object exists within the range around each position of the path.
[0183] With this configuration, if an object exists within a predetermined range around each position, the possibility of interference between the mobile body 1 and the object can be reduced by setting the second travel shape. On the other hand, if no object exists within a predetermined range around each position, the possibility of interference between the mobile body 1 and the object is low, so the first travel shape is set.
[0184] (Aspect 11) In the mobile body 100 described in any one of aspects 1 to 10, the control device 6 sets the second travel shape at the position in the path where the enlarged posture is set during the shape search.
[0185] In this configuration, the second travel shape is set at the position where the expanded posture is set. As mentioned above, the expanded posture is set to reduce the possibility of interference between the mobile body 1 and the object. By setting the second travel shape together with the expanded posture, the possibility of interference between the mobile body 1 and the object can be further reduced.
[0186] (Aspect 12) A method for controlling a mobile body 100 to perform autonomous movement includes searching for a path for the mobile body 1 without considering the orientation of the mobile body 1, and setting the orientation of the mobile body 1 at each position along the searched path based on environmental information of the surrounding area of each position.
[0187] With this configuration, the orientation of the mobile body 1 is not considered during pathfinding, thus reducing the computational load of pathfinding. By separating orientation search from pathfinding, an appropriate orientation can be easily found. As a result, the movement of the mobile body 100, which has a low probability of interference with surrounding objects, can be realized while reducing the computational load.
[0188] (Aspect 13) The control program for the mobile body 100 to perform autonomous movement provides the computer with the following functions: a function to search for a path for the mobile body 1 without considering the orientation of the mobile body 1, and a function to set the orientation of the mobile body 1 at each position along the searched path based on environmental information of the surroundings of each position.
[0189] With this configuration, the orientation of the mobile body 1 is not considered during pathfinding, thus reducing the computational load of pathfinding. By separating orientation search from pathfinding, an appropriate orientation can be easily found. As a result, the movement of the mobile body 100, which has a low probability of interference with surrounding objects, can be realized while reducing the computational load. [Explanation of Symbols]
[0190] 100 Mobile Units 1 Mobile Unit 11 Bass 12 Robot Arms 6. Control device
Claims
1. The mobile unit body and The mobile body is equipped with a control device that causes the mobile body to perform autonomous movement, The aforementioned mobile body is propelled by wheels that move in all directions in two dimensions, The control device is A path search that explores the path of the moving body, without considering the orientation of the moving body in two-dimensional space, and the orientation of the moving body. A mobile body that performs an attitude search to set the attitude of the mobile body at each position along the path generated by the path search, based on environmental information around each position, without changing the path.
2. In the mobile body described in claim 1, The control device, in the attitude search, sets the attitude of the mobile body to an enlarged attitude, which is an attitude in which the distance between the mobile body and the objects surrounding the mobile body is greater than the attitude facing the tangential direction of the path at the position where the attitude is set.
3. In the mobile body according to claim 2, The control device is a mobile body that, in the attitude search, determines whether each position along the path is a position for setting the enlarged attitude based on environmental information surrounding each position.
4. In the mobile body described in claim 3, The control device is a mobile body that, in the attitude search, determines whether each position along the path is a position for setting the enlarged attitude, based on whether or not an object exists within a predetermined range around each position.
5. In the mobile body according to any one of claims 2 to 4, The aforementioned mobile body has a defined front-to-back direction, and in addition to movement in the front-to-back direction, it is also capable of parallel movement in directions other than the front-to-back direction. The control device enables the movement of the mobile body to or from the position where the enlarged posture is set by movement including at least the translation.
6. The mobile unit body and The mobile body is equipped with a control device that causes the mobile body to perform autonomous movement, The control device is A path search that searches for a path for the mobile body without considering the orientation of the mobile body, The posture search is performed to set the posture of the mobile body at each position along the path generated by the path search, based on the surrounding environmental information of each position. In the aforementioned posture search, The orientation of the moving body is set to an orientation corresponding to the tangential direction of the path at each of the aforementioned positions. A moving body that reverses the orientation of the object at the subsequent position if, at both of two consecutive positions in the aforementioned path, the object is located within a predetermined range around each position, and the angular difference between the orientation of the object at the preceding position of the two consecutive positions corresponding to the tangential direction of the path and the orientation of the object at the subsequent position of the two consecutive positions corresponding to the tangential direction of the path is greater than or equal to a predetermined angular threshold.
7. In the mobile body described in claim 1, The mobile body includes a base and a multi-jointed robotic arm connected to the base and capable of changing shape. The control device is a mobile body that further performs a shape search to set the shape of the robot arm at each position along the path generated by the path search.
8. A mobile body and The mobile body is equipped with a control device that causes the mobile body to perform autonomous movement, The mobile body includes a base and a multi-jointed robotic arm connected to the base and capable of changing shape, and moves on wheels that move in all directions in two dimensions. The control device is A path search that explores the path of the moving body, without considering the orientation of the moving body in two-dimensional space, and the orientation of the moving body. A posture search is performed to set the posture of the mobile body at each position along the path generated by the path search, based on environmental information surrounding each position, without changing the path. The process involves performing a shape search to set the shape of the robot arm at each position along the path generated by the path search, The robot arm includes a first robot arm and a second robot arm. The first robot arm and the second robot arm are connected to different parts of the base in the width direction, which is one direction in a plan view. The shape of the robot arm set in the shape search includes a first travel shape and a second travel shape. The width of the overall shape of the first and second robot arms in the second traveling shape in a plan view is smaller than the width of the overall shape of the first and second robot arms in the first traveling shape in a plan view. A mobile body in which the size of the overall shape of the first robot arm and the second robot arm in the second traveling shape in a plan view is larger in the longitudinal direction perpendicular to the width direction than the size of the overall shape of the first robot arm and the second robot arm in the first traveling shape in the longitudinal direction in a plan view.
9. In the mobile body according to claim 8, The control device is a mobile body that, in the shape search, determines whether to set the shape of the robot arm at each position along the path to the first travel shape or the second travel shape based on environmental information surrounding each position.
10. In the mobile body according to claim 9, The control device is a mobile body that, in shape search, sets the second travel shape when an object exists within a predetermined range around each position of the path, and sets the first travel shape when no object exists within the range around each position of the path.
11. In the mobile body according to claim 8, The control device is In the aforementioned attitude search, at a position within the path where the attitude is set, an enlarged attitude is set as the attitude of the mobile body, which is an attitude in which the distance between the mobile body and the objects surrounding the mobile body is greater than the attitude facing the tangential direction of the path at that position. In the shape search described above, a moving body sets the second travel shape at a position in the path where the enlarged posture is set.
12. A method for controlling a mobile object to enable it to perform autonomous movement, Searching for a path of the moving body without considering the orientation of the moving body in two-dimensional space, This includes setting the orientation of the mobile body at each location along the explored path based on environmental information surrounding each location, without changing the path. A method for controlling a mobile body, wherein the mobile body itself is propelled by wheels that move in all directions in two dimensions.
13. A control program for a mobile object to enable it to perform autonomous movement, A function to search for the path of the moving body, without considering the orientation of the moving body in two-dimensional space, The computer is provided with a function to set the orientation of the mobile body at each location along the explored path, based on environmental information surrounding each location, without changing the path. The aforementioned mobile body is controlled by wheels that move in all directions in two dimensions, and the control program for the mobile body is also provided.