Mobile object, mobile object controlling method, and mobile object controlling program
Patent Information
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Filing Date
- 2025-07-15
- Publication Date
- 2026-02-12
AI Technical Summary
Existing autonomous moving objects face challenges in effectively avoiding interference with surrounding objects during navigation.
A mobile body system that performs route search without considering its attitude, followed by attitude search based on environmental information to set the attitude at each position on the route, using a combination of sensors and control algorithms to minimize interference.
This approach reduces the computational load on route planning while enhancing the likelihood of avoiding collisions with surrounding objects, ensuring smooth and efficient navigation.
Abstract
Description
MOBILE BODY, MOBILE BODY CONTROL METHOD, AND MOBILE BODY CONTROL PROGRAM
[0001] The technology disclosed herein relates to a mobile object, a method for controlling a mobile object, and a program for controlling a mobile object.
[0002] 2. Description of the Related Art Autonomous moving objects have been known for some time. For example, Patent Literature 1 discloses a technique for controlling the speed of a moving object in response to a surrounding environment when the moving object moves autonomously.
[0003] Japanese Patent Application Laid-Open No. 2020-107024
[0004] Autonomous mobile objects employ various measures to avoid interference with surrounding objects. One such measure is the aforementioned adjustment of the moving speed according to the surrounding environment. However, there is room for further improvement in avoiding interference with surrounding objects.
[0005] The technology disclosed herein has been made in consideration of these points, and its purpose is to realize the movement of a moving body with a low possibility of interference with surrounding objects.
[0006] The mobile body of the present disclosure comprises a mobile body main body and a control device that causes the mobile body main body to move autonomously, and the control device performs a route search that searches for a path for the mobile body main body without taking into account the attitude of the mobile body main body, and an attitude search that sets the attitude of the mobile body main body at each position on the path generated by the route search based on environmental information surrounding each position.
[0007] The method for controlling a moving body disclosed herein is a method for controlling a moving body that causes the moving body to move autonomously, and includes searching for a path for the moving body without taking into account the attitude of the moving body, and setting the attitude of the moving body at each position on the searched path based on environmental information surrounding each position.
[0008] The control program for a moving body disclosed herein is a control program for a moving body for causing the moving body to move autonomously, and causes a computer to realize a function of searching for a path for the moving body without taking into account the attitude of the moving body, and a function of setting the attitude of the moving body at each position on the searched path based on environmental information surrounding each position.
[0009] According to the mobile body, it is possible to realize the movement of the mobile body with a low possibility of interference with surrounding objects.
[0010] According to the method for controlling a moving body, it is possible to realize movement of the moving body with a low possibility of interference with surrounding objects.
[0011] According to the control program for the moving body, it is possible to realize the movement of the moving body with a low possibility of interference with surrounding objects.
[0012] FIG. 1 is a perspective view of a moving body. FIG. 2 is a schematic diagram showing the detection range of a sensor. FIG. 3 is a diagram showing the hardware configuration of a control device. FIG. 4 is a functional block diagram showing the configuration of a control system of a processor. FIG. 5 is a flowchart of basic operations of a moving body. FIG. 6 is a detailed functional block diagram of a path generator. FIG. 7 is a flowchart of path planning. FIG. 8 is a flowchart of attitude setting processing. FIG. 9 is a schematic diagram for explaining a basic attitude. FIG. 10 is an explanatory diagram of a monitoring area. FIG. 11 is a schematic diagram showing an example of a basic attitude before inversion. FIG. 12 is a schematic diagram showing an example of a basic attitude after inversion. FIG. 13 is a flowchart of attitude correction. FIG. 14 is a flowchart of expanded attitude search. FIG. 15 is a schematic plan view showing basic attitudes at positions Pi and Pi+1. FIG. 16 is a schematic diagram when the moving body main body is rotated about its own axis by a predetermined angle in a first rotation direction from the basic attitude. FIG. 17 is a schematic diagram showing a case where the attitude of the mobile body main body becomes the same as the attitude at position Pi+1. FIG. 18 is a schematic diagram showing a case where the mobile body main body is rotated about its own axis by a predetermined angle in a second rotation direction from the basic attitude. FIG. 19 is a schematic diagram showing a case where the basic attitude is set in the position path. FIG. 20 is a schematic diagram showing a case where an enlarged attitude is set in the position path. FIG. 21 is a schematic diagram showing a case where no object is located near position Pi and an object is located near position Pi+1. FIG. 22 is a functional block diagram showing the configuration of a control system of a processor according to a modified example. FIG. 23 is a side view of the mobile body main body when the first robot arm and the second robot arm are in the first running shape. 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 running shape. 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 running shape. FIG. 26 is a plan view of the mobile body when the first robot arm and the second robot arm are in the second running configuration.
[0013] An exemplary embodiment will be described in detail below with reference to the drawings. FIG. 1 is a perspective view of a mobile object 100. The mobile object 100 moves autonomously. The mobile object 100 includes a mobile object main body 1 and a control device 6 that causes the mobile object main body 1 to move autonomously. For example, the mobile object 100 moves within a facility such as a store, hospital, or nursing home. In addition to moving, the mobile object 100 may also perform tasks such as handing over an item or opening and closing a door.
[0014] For example, the mobile body 1 is a mobile robot including a robot arm 12. In detail, the mobile body 1 may have a carriage 10, a base 11 mounted on the carriage 10, and a robot arm 12 connected to the base 11.
[0015] The bogie 10 has a defined front-rear direction. In this example, the bogie 10 has a generally rectangular planar shape. For example, the longitudinal direction of the rectangle is the front-rear direction. The lateral direction of the rectangle is the left-right direction.
[0016] The bogie 10 includes a plurality of wheels 13 and is capable of traveling. In this example, the bogie 10 includes four wheels 13. The bogie 10 may be capable of moving straight and turning. In this example, the bogie 10 is capable of moving forward, backward, left, right, and diagonally while maintaining its posture, i.e., moving in all directions. In other words, the bogie 10 may be capable of translational movement in directions other than the forward and backward direction. Furthermore, the bogie 10 may also be capable of rotating on the spot. For example, the four wheels 13 include a set of wheels 13 aligned in the left-right direction at the front of the bottom of the bogie 10 and another set of wheels 13 aligned in the left-right direction at the rear of the bottom of the bogie 10. The wheels 13 may be arranged to form a rectangle on the bottom of the bogie 10. More specifically, the four wheels 13 are arranged at the four corners of the bottom of the bogie 10.
[0017] More specifically, the wheel 13 may be an omnidirectional wheel. In this example, the wheel 13 is a Mecanum wheel. The wheel 13 has a plurality of barrel-shaped rollers arranged on the outer periphery of the wheel. For example, the rotation axis of each roller is inclined at 45 degrees with respect to the axle of the wheel 13.
[0018] The mobile body 1 may have motors 13a that drive the wheels 13 and encoders 13b that detect the amount of rotation of the motors 13a (see FIG. 3). In this example, the mobile body 1 has four sets of motors 13a and encoders 13b corresponding to the four wheels 13. The four wheels 13 may be independently driven by the corresponding motors 13a.
[0019] The cart 10 may be able to move in any direction in two dimensions using these four wheels 13. For example, the cart 10 may translate or rotate in any direction, including forward / backward, left / right, and diagonal. The cart 10 may also rotate on the spot.
[0020] The base 11 may be mounted on the cart 10. In this example, the base 11 has a shape resembling the upper body of a person. The base 11 may be fixed to the cart 10 so as not to be movable.
[0021] The mobile body 1 has two robot arms 12. A hand 14 may be attached to the tip of one of the robot arms 12. The hand 14 may not be attached to the tip of the other robot arm 12. One of the robot arms 12 will also be referred to as a first robot arm 12, and the other robot arm 12 will also be referred to as a second robot arm 12. That is, the robot arms 12 include a first robot arm 12 and a second robot arm 12.
[0022] The first robot arm 12 and the second robot arm 12 are connected to different portions of the base 11. For example, the first robot arm 12 and the second robot arm 12 are connected to different portions of the base 11 in the width direction, which is one direction in a plan view. In other words, the width direction is the direction in which the connection portion of the first robot arm 12 to the base 11 and the connection portion 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, the front side of the base 11 is the front, and the back side is the rear, defining the front-to-rear direction. The width direction may be a horizontal direction that is perpendicular to the front-to-rear direction. In other words, the width direction is the left-to-right direction relative to the front-to-rear direction. For example, 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] In addition, when the planar shape of the carriage 10 is a substantially rectangular shape having a longitudinal direction and a lateral direction, the width direction substantially coincides with the lateral direction of the planar shape of the carriage 10 .
[0024] For example, as shown in FIG. 1 , the robot arm 12 has a plurality of links L and a plurality of joints J connecting the links L. The robot arm 12 is configured to operate in three dimensions. In this example, the robot arm 12 is a multi-joint robot arm. That is, the shape of the robot arm 12 may be freely changed by rotating the joints. The robot arm 12 is supported by a base 11.
[0025] For example, the multiple links L include a first link L1, a second link L2, a third link L3, a fourth link L4, a fifth link L5, a sixth link L6, and a seventh link L7, which are arranged in series from the base 11 side. The seventh link L7 is located at the tip of the robot arm 12. For example, the multiple joints J include a first joint J1, a second joint J2, a third joint J3, a fourth joint J4, a fifth joint J5, a sixth joint J6, and a seventh joint J7, which are arranged in series from the base 11 side. The position and orientation of the seventh link L7 have six degrees of freedom, including translational and rotational directions about each of three orthogonal axes. The robot arm 12 may be a so-called seven-axis robot having seven joints J. In other words, the robot arm 12 has redundancy. Redundancy is a characteristic in which the rotation angles of multiple joints J corresponding to the position and orientation of the tip of the robot arm 12 are not uniquely determined.
[0026] The base 11 and the first link L1 are rotatably connected by a first joint J1. The first link L1 and the second link L2 are rotatably connected by a second joint J2. The second link L2 and the third link L3 are rotatably connected by a third joint J3. The third link L3 and the fourth link L4 are rotatably connected by a fourth joint J4. The fourth link L4 and the fifth link L5 are rotatably connected by a fifth joint J5. The fifth link L5 and the sixth link L6 are rotatably connected by a sixth joint J6. The sixth link L6 and the seventh link L7 are rotatably connected by a seventh joint J7.
[0027] The hand 14 may be connected to a seventh link L7 at the tip of the robot arm 12. In other words, the hand 14 is connected to the robot arm 12 so as to be rotatable around the rotation axis of the seventh joint J7. The hand 14 is an end effector attached to the robot arm 12.
[0028] In more detail, the multiple joints J may include a joint that functions as a shoulder joint. For example, the multiple joints J include a joint that has the functions of horizontal extension and horizontal flexion at the shoulder joint. The rotation axis of the joint that has the functions of horizontal extension and horizontal flexion at the shoulder joint extends in a substantially vertical direction. The multiple joints J may include a joint that has the functions of extension and flexion at the shoulder joint. The rotation axis of the joint that has the functions of extension and flexion at the shoulder joint extends in a substantially horizontal direction.
[0029] For example, the first joint J1 functions as a shoulder joint of the robot arm 12. The first joint J1 may have the functions of horizontal extension and horizontal flexion at the shoulder joint. The rotation axis of the first joint J1 extends in a substantially vertical direction.
[0030] For example, the second joint J2 functions as a shoulder joint of the robot arm 12. The second joint J2 may have the functions of extension and flexion at the shoulder joint. The rotation axis of the second joint J2 extends in a substantially horizontal direction.
[0031] For example, the third joint J3 functions as a shoulder joint of the robot arm 12. The third joint J3 may have the function of internal rotation and external rotation in a shoulder joint.
[0032] The multiple joints J may include a joint that functions as a wrist joint. For example, the multiple joints J include a joint that has the functions of internal rotation and external rotation or the functions of pronation and supination at the wrist joint. For example, the seventh joint J7 may have the functions of internal rotation and external rotation at the wrist joint. The sixth joint J6 may have the functions of pronation and supination at the wrist joint.
[0033] The multiple joints J may include an intermediate joint between a shoulder joint and a wrist joint. The intermediate joint may also be referred to as an elbow joint. The intermediate joint may have functions of extension and flexion at the intermediate joint, or functions of internal rotation and external rotation at the intermediate joint. The fourth joint J4 may have functions of extension and flexion at the intermediate joint. The fifth joint J5 may have functions of internal rotation and external rotation at the intermediate joint.
[0034] The robot arm 12 has a motor 12a (see FIG. 3) that rotates and drives each joint J. For example, the motor 12a is a servo motor. Each motor 12a has an encoder 12b (see FIG. 3).
[0035] The mobile body 100 may include a sensor 3 that detects objects (hereinafter simply referred to as "peripheral objects") around the mobile body 1. In this disclosure, "objects" includes both inanimate and animate objects. The sensor 3 is disposed on the mobile body 1. For example, the sensor 3 is disposed on the dolly 10. In this example, the sensor 3 is a ranging sensor that measures the distance from the sensor 3 to the peripheral objects. For example, the sensor 3 is a LiDAR (Light Detection and Ranging) sensor. The sensor 3 includes, for example, a light-emitting unit that emits laser light toward the periphery of the mobile body 1 and a light-receiving unit that receives the laser light reflected off the surface of the peripheral object. The sensor 3 measures the flight time of the laser light emitted from the light-emitting unit, which hits the surface of the peripheral object and returns to the light-receiving unit. The sensor 3 measures the distance from the sensor 3 to the surface of the peripheral object based on the measured flight time. The sensor 3 may generate point cloud data based on the measured distance. The point cloud data is three-dimensional position information of the surface of the peripheral object. For example, the sensor 3 outputs the calculated point cloud data to the control device 6. The sensor 3 may repeatedly detect surrounding objects at a predetermined detection period while the mobile body 1 is moving. The sensor 3 may output the detection result of the sensor 3, i.e., the point cloud data, to the control device 6 every time the sensor 3 detects a surrounding object.
[0036] In this example, the mobile body 100 is equipped with multiple sensors 3. FIG. 2 is a schematic diagram showing the detection range of the sensor 3. FIG. 2 is a plan view of the mobile body 100, omitting the robot arm 12 and the like. The mobile body 100 may be equipped with a first sensor 3A, a second sensor 3B, and a third sensor 3C. The first sensor 3A, the second sensor 3B, and the third sensor 3C are arranged on the carriage 10. The first sensor 3A is arranged in the front of the carriage 10. For example, the first sensor 3A is arranged on the carriage 10 forward of the base 11 and approximately in the center in the left-right direction. The first sensor 3A detects objects in the three-dimensional space around the mobile body main body 1. The first sensor 3A may be a 3D LiDAR. The first sensor 3A scans the measurement light in the horizontal and vertical directions. In this example, the first sensor 3A scans the measurement light 360 degrees horizontally, as indicated by the two-dot chain line in FIG. 2. In the vertical direction, the first sensor 3A scans the measurement light in a predetermined range including elevation and depression angles.
[0037] The second sensor 3B and the third sensor 3C may be disposed at the rear of the carriage 10. More specifically, the second sensor 3B and the third sensor 3C are disposed on the carriage 10 rearward of the base 11. The second sensor 3B is disposed at the left rear corner of the carriage 10, and the third sensor 3C is disposed at the right rear corner of the carriage 10. The second sensor 3B and the third sensor 3C may detect objects in a two-dimensional space in the horizontal direction around the mobile body 1. For example, the second sensor 3B and the third sensor 3C are 2D LiDAR. The second sensor 3B and the third sensor 3C scan the measurement light in the horizontal direction. The second sensor 3B and the third sensor 3C detect objects in a range in the horizontal direction that cannot be detected by at least the first sensor 3A. The second sensor 3B scans the measurement light at least to the left rear of the carriage 10. The third sensor 3C scans the measurement light at least to the right rear of the carriage 10. The scanning range of the measurement light by the second sensor 3B and the scanning range of the measurement light by the third sensor 3C partially overlap behind the carriage 10. In this example, the second sensor 3B scans the measurement light horizontally by approximately 270 degrees from the front to the right, including the left area of the mobile body 1, as shown by the dashed line in FIG. 2 . The third sensor 3C scans the measurement light horizontally by approximately 270 degrees from the front to the left, including the right area of the mobile body 1, as shown by the dashed line in FIG. 2 . The second sensor 3B and the third sensor 3C detect objects at approximately the same height. That is, the scanning plane of the measurement light by the second sensor 3B and the scanning plane of the measurement light by the third sensor 3C are at approximately the same height.
[0038] 2, since the base 11 is disposed behind the first sensor 3A, the first sensor 3A cannot properly scan the measurement light in the range F overlapping with the base 11. On the other hand, since the second sensor 3B and the third sensor 3C are disposed behind the base 11, the second sensor 3B and the third sensor 3C can also scan the measurement light into the range F.
[0039] Hereinafter, when there is no need to distinguish between the first sensor 3A, the second sensor 3B, and the third sensor 3C, they will be simply referred to as "sensors 3."
[0040] 3 is a diagram showing the hardware configuration of the control device 6. The control device 6 controls the entire mobile body 1. The control device 6 causes the mobile body 1 to move autonomously while estimating the self-position of the mobile body 1. The control device 6 operates the motors 13a of the wheels 13 to move the mobile body 1. Furthermore, the control device 6 controls the motors 12a of the robot arm 12 to cause the robot arm 12 to perform a predetermined task. The control device 6 has a processor 61, a storage device 62, and a memory 63.
[0041] The processor 61 performs various types of arithmetic processing. For example, the processor 61 is formed of a processor such as a CPU (Central Processing Unit). The processor 61 may be formed of an MCU (Micro Controller Unit), an MPU (Micro Processor Unit), an FPGA (Field Programmable Gate Array), a PLC (Programmable Logic Controller), a system LSI, or the like. The processor 61 operates the motor 13a, causing the mobile body 1 to move autonomously.
[0042] The memory 62 stores programs executed by the processor 61 and various data. For example, the memory 62 stores a control program. The memory 62 stores map information related to a map of the environment in which the mobile body 1 moves. For example, the map information includes a three-dimensional map and a two-dimensional map. The three-dimensional map is formed from three-dimensional point cloud data. For example, the three-dimensional map is a three-dimensional point cloud map. In the three-dimensional map, the three-dimensional shapes of obstacles in the environment, such as walls, ceilings, handrails, shelves, tables, or chairs, are represented by point cloud data. The two-dimensional map is a planar map. For example, the two-dimensional map is a two-dimensional occupancy grid map. In the two-dimensional map, the planar shapes of obstacles in the environment, such as walls, ceilings, handrails, shelves, tables, or chairs, are represented. For example, the two-dimensional map is formed by projecting the three-dimensional map onto a plane. The memory 62 is formed from a non-volatile memory, a hard disk drive (HDD), a solid state drive (SSD), or the like. The memory 63 temporarily stores data, etc. For example, the memory 63 is formed of a volatile memory.
[0043] 4 is a functional block diagram showing the configuration of the control system of the processor 61. The processor 61 realizes various functions by reading a control program from the storage device 62 into the memory 63 and expanding the program. 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 a path for the mobile body 1, a trajectory generator 67 that generates a target trajectory according to the path, and a movement controller 68 that moves the mobile body 1 according to the target trajectory. The processor 61 may also function as an operation amount calculator 69 that calculates the operation amount of the motor 13a.
[0044] The state estimator 64 performs self-position estimation. The state estimator 64 receives the detection results of the sensor 3, the detection results of the encoder 13b, and the map information in the memory 62. The map information is, for example, a three-dimensional map. The state estimator 64 compares the detection results of the sensor 3 with the map information to estimate the current position of the mobile body 1, i.e., its self-position. Here, the position of the mobile body 1 also includes the orientation of the mobile body 1, i.e., its attitude.
[0045] In this example, the state estimator 64 performs self-position estimation using the three-dimensional point cloud data of the first sensor 3 A. The state estimator 64 compares environmental information around the mobile body 1 obtained from the three-dimensional point cloud data of the first sensor 3 A with a three-dimensional map, and estimates the position of the mobile body 1 within the environment represented by the three-dimensional map, i.e., the self-position.
[0046] The map generator 65 generates a map based on the detection results of the sensor 3. Specifically, the map generator 65 generates or modifies a three-dimensional map based on the detection results of the sensor 3. In this example, before autonomous movement is performed, the three-dimensional map is generated using SLAM (Simultaneous Localization and Mapping) technology. Specifically, while the mobile body 1 is moving within the environment, the state estimator 64 and the map generator 65 acquire the detection results of the sensor 3 and perform self-location estimation and map generation in parallel. The generated map information, i.e., the three-dimensional map, is stored in the memory 62. When generating the map before autonomous movement is performed, the mobile body 1 is moved by manual operation by the user.
[0047] Furthermore, the map generator 65 updates the two-dimensional map. The two-dimensional map can also be updated during autonomous movement. The map generator 65 detects obstacles in the environment based on the detection results of the sensors 3 acquired while the mobile body 1 is moving, and updates the two-dimensional map.
[0048] The route generator 66 reads the destination and map information from the memory 62. The destination is set in advance in the memory 62. The map information at this time is, for example, a two-dimensional map. At this time, the route generator 66 may read intermediate points in addition to the destination. The state quantities (including the estimated position) of the mobile body 1 are input to the route generator 66 from the state estimator 64.
[0049] The path generator 66 generates a path from the current position of the mobile body 1 to the destination based on map information. The path generator 66 references the map information to generate a path that avoids interference with obstacles, etc. If a passage is set in the environment, the path generator 66 generates a path along the passage. For example, the path generator 66 generates a path using an A-star search algorithm, an RRT algorithm, a Dijkstra algorithm, or a geometric approach. The path generator 66 outputs an array of positions through which the mobile body 1 passes as a path to the trajectory generator 67. Each position includes the attitude of the mobile body 1 in addition to position information.
[0050] The trajectory generator 67 generates a target trajectory from the current position of the mobile body 1 according to the generated path. The trajectory generator 67 generates the target trajectory of the mobile body 1 using a predetermined method (for example, a line-of-sight guidance law). The state quantities of the mobile body 1 are input to the trajectory generator 67 from the state estimator 64. The trajectory generator 67 calculates a command speed for the mobile body 1.
[0051] Alternatively, the trajectory generator 67 may calculate the command speed by model predictive control (MPC), which determines a control input, i.e., a speed command, by sequentially solving an optimization problem based on a model of the mobile body 1. The trajectory generator 67 predicts future state quantities from the current state quantities of the mobile body 1 and obstacles, calculates an optimal path for the mobile body 1, and calculates a moving speed from the current position to the target position to follow that path as a command speed.
[0052] The command speed calculated by the trajectory generator 67 is input to the movement controller 68. The movement controller 68 outputs a command value corresponding to the command speed to the operation amount calculator 69.
[0053] The movement controller 68 executes control to avoid interference between the mobile body 1 and an obstacle. The movement controller 68 monitors the approach of the mobile body 1 to an obstacle based on the detection results of the sensors 3. In this example, the movement controller 68 monitors the approach of the mobile body 1 to an obstacle using all of the detection results of the first sensor 3A, the second sensor 3B, and the third sensor 3C. For example, the movement controller 68 slows down or stops the mobile body 1 depending on the distance between the mobile body 1 and the obstacle.
[0054] The operation amount calculator 69 distributes the command value to the plurality of motors 13a and calculates the command operation amount for each of the plurality of motors 13a. For example, the operation amount is the rotation speed or torque of the motor.
[0055] Each motor 13a operates in accordance with a command operation amount. The motor 13a may be provided with its own controller for operating the motor 13a. For example, if the motor 13a is a servo motor, the control device 6 further includes a servo amplifier. In this case, the servo amplifier operates the motor 13a in accordance with the command operation amount. As a result, the mobile body 1 moves.
[0056] Next, a description will be given of the basic operation of the moving body 100. Fig. 5 is a flowchart of the basic operation of the moving body 100. The moving body 100 repeatedly executes the following processing 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 of the sensor 3 and the detection signal of the encoder 13b.
[0058] Next, in step S2, the state estimator 64 performs self-location estimation.
[0059] Subsequently, in step S3, the route generator 66 executes route planning, generating a route for the mobile body 1 based on the map information, the estimated position of the mobile body 1, and the destination.
[0060] In step S4, the trajectory generator 67 calculates a command velocity from the estimated position of the mobile body 1 so as to follow the generated path.
[0061] In step S5, the movement controller 68 causes the mobile body 1 to move in accordance with the command speed.
[0062] By repeating the above process, the mobile body 100 autonomously moves to the destination while estimating the self-position of the mobile body main body 1.
[0063] Next, the autonomous movement of the mobile body 100 will be described in more detail. In this example, the control device 6 performs route search and attitude search separately. In route search, the control device 6 searches for a route for the mobile body 1 without taking into account the attitude of the mobile body 1. The control device 6 performs attitude search after route search. In attitude search, the control device 6 sets the attitude of the mobile body 1 at each position on the route generated by route search based on environmental information about the surroundings of the mobile body 1.
[0064] 6 is a detailed functional block diagram of the path generator 66. The path generator 66 has a path searcher 661 that searches for a path of the mobile body 1 (hereinafter referred to as a "position path") without considering the attitude of the mobile body 1, and an attitude searcher 662 that sets the attitude of the mobile body 1 at each position on the position path. The path generator 66 generates the position path of the mobile body 1 and sets the attitude of the mobile body 1 at each position on the position path, thereby ultimately generating a path in which the position and attitude of the mobile body 1 are specified.
[0065] The path searcher 661 searches for a two-dimensional position path of the mobile body 1 using, for example, an A-star search algorithm. The position 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 position 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, the front-to-back direction of the mobile body 1 is defined, so the orientation of the mobile body 1 is the orientation of the front of the mobile body 1.
[0066] At the target position within the position path where the orientation is to be set, the orientation searcher 662 sets the orientation of the mobile body 1 to an enlarged orientation, which is an orientation in which the distance between the mobile body 1 and objects surrounding the mobile body 1 is greater than the orientation facing the tangent direction of the position path at the target position. Specifically, the orientation searcher 662 determines whether or not each position within the position path is a position where an enlarged orientation should be set, based on surrounding environmental information. The orientation searcher 662 sets the enlarged orientation as the orientation of the mobile body 1 at a position where it is determined that an enlarged orientation should be set. In this example, the orientation searcher 662 sets an orientation other than the enlarged orientation as the orientation of the mobile body 1 at a position where it is determined that an enlarged orientation should not be set. An example of an orientation other than the enlarged orientation is an orientation facing the tangent direction of the position path at the target position (hereinafter referred to as the "basic orientation"). The orientation searcher 662 acquires surrounding environmental information for each position within 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 for the next position at the target position within the position path for which 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, i.e., turning, in which the axis of rotation is located outside the mobile body 1 in a planar view. In other words, normal movement is movement that combines forward or backward movement with turning (including only forward or backward movement, and only turning). Omnidirectional movement is movement that includes parallel movement in a direction other than the forward or 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 rotation around its own axis. Rotation around its own axis is rotation in which the axis of rotation overlaps with the mobile body 1 in a planar view. Rotation around one's own axis can also be rephrased as rotation around one's own axis.
[0068] 7 is a flowchart of the route planning. First, in step S101, the route searcher 661 searches for the position route of the mobile body 1.
[0069] Next, in step S102, the attitude searcher 662 sets the attitude of the mobile body 1 at each position on the position path. Specifically, the attitude searcher 662 sets the basic attitude of the mobile body 1 corresponding to each position on the position path.
[0070] Furthermore, in step S103, the attitude searcher 662 corrects the attitude of the mobile body 1 at each position on the positional path. Specifically, the attitude searcher 662 determines whether or not the basic attitude at each position on the positional path needs to be corrected based on the environmental information around each position, and corrects the basic attitude if necessary. At this time, the attitude searcher 662 sets the movement method at the position where the basic attitude has been corrected to omnidirectional movement.
[0071] According to this route planning, a position route is searched for without considering the attitude of the mobile body 1, and then the attitude of the mobile body 1 at each position on the position route is set. Therefore, the computational load of the route search is reduced compared to when a route search is performed taking into account the attitude of the mobile body 1. In addition, the attitude of the mobile body 1 at each position on the position route is set taking into account environmental information about each position. This generates a route with a low possibility of interference between the mobile body 1 and other objects. Next, the attitude setting in step S102 will be described in detail. FIG. 8 is a flowchart of the attitude setting process.
[0072] First, in step S201, the attitude searcher 662 sets a home attitude at position Pi on the position path. Initially, i is set to an initial value of 1. In this example, the home attitude of the mobile body 1 is an attitude corresponding to the tangential direction of the position path at position Pi. FIG. 9 is a schematic diagram for explaining the home attitude. In FIG. 9, the points represent the position path, and the dashed dotted line represents a curve obtained by curve approximating the points on the position path, and is a curve that approximately represents the position path. Specifically, the attitude searcher 662 regards the direction from position Pi-1, which is immediately before position Pi, to position Pi+1, which is immediately after position Pi (see the arrow in the figure), as the tangential direction of the position path at position Pi, and sets this as the home attitude of position Pi. Note that P0 is the current position of the mobile body 1.
[0073] At this time, the attitude searcher 662 sets the movement method to the position Pi, that is, the movement method from the position Pi, to normal movement.
[0074] Next, in step S202, the attitude searcher 662 determines whether or not the home attitude of the final position PN of the position path has been set. If the setting of the home attitude of the position PN has not been completed, the attitude searcher 662 increments i in step S203 and returns to the processing of step S201.
[0075] The posture searcher 662 repeats the processing of steps S201 to S203 to set basic postures in order from position P1 to position PN.
[0076] When the setting of the basic attitudes for all positions on the position path is completed, the attitude searcher 662 changes the basic attitude in which it is difficult for the mobile body 1 to move to a basic attitude in which it is possible to move.
[0077] Specifically, the attitude searcher 662 sets i to an initial value of 1 in step S204.
[0078] In step S205, the attitude searcher 662 determines whether an object is present in the monitoring area Mi-1 at the position Pi-1, and also determines whether an object is present in the monitoring area Mi at the position Pi. The attitude searcher 662 determines whether an object is present in the monitoring areas Mi-1 and Mi based on map information, for example, a two-dimensional map. The monitoring area Mi is an area set around the mobile body 1 at the position Pi. In other words, the monitoring area Mi means a predetermined range around the position Pi. The monitoring area Mi has a predetermined range that includes the mobile body 1 at the position Pi. FIG. 10 is an explanatory diagram of the monitoring area. In this example, the monitoring area Mi is an area inside the circumscribing circle of the outline of the mobile body 1 at the position Pi in a planar view. Note that when the mobile body 1 moves, the robot arm 12 may be positioned so as to fit inside the bogie 10 in a planar view. In this case, the outline of the mobile body 1 in a planar view is defined by the outline of the bogie 10 in a planar view. However, if the robot arm 12 extends beyond the outer shape of the carriage 10 in a planar view, the outer shape of the mobile body 1 in a planar view is defined by the outer shapes of the carriage 10 and the robot arm 12 in a planar view.
[0079] If an object exists in the monitoring region Mi-1 and an object exists in the monitoring region Mi, the posture searcher 662 determines in step S206 whether the angular difference Δθ between the basic posture at the position Pi-1 and the basic posture at the position Pi is equal to or greater than a predetermined angle threshold α. For example, the angle threshold α is 90 degrees.
[0080] If the angular difference Δθ is equal to or greater than the angle threshold value α, the attitude searcher 662 inverts the basic attitude at the position Pi by 180 degrees in step S207. That is, the mobile body 1 moves from the position Pi-1 to the position Pi with the rear of the carriage 10 facing in the traveling direction, i.e., moves backward.
[0081] That is, in steps S205 and S206, it is determined whether an object is present near the mobile body 1 at both of two consecutive positions, and whether the mobile body 1 needs to rotate significantly from one position to the other. Under such circumstances, there is a high possibility that the mobile body 1 will interfere with the object when rotating. In such a case, the basic attitude is reversed.
[0082] After inverting the basic attitude, the attitude searcher 662 determines in step S208 whether or not the basic attitude of the final position PN of the position path has been confirmed. If confirmation of the basic attitude of the position PN has not been completed, the attitude searcher 662 increments i in step S209 and returns to the processing of 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 searcher 662 executes the process of step S208. In step S206, if the angular difference Δθ is less than the angle threshold α, the attitude searcher 662 executes the process of step S208 without changing the basic attitude of the position Pi.
[0084] The posture searcher 662 repeats the processing of steps S205 to S209 to check whether or not to invert the basic posture from position P1 to position PN in order.
[0085] FIG. 11 is a schematic diagram showing an example of a basic posture before inversion. FIG. 12 is a schematic diagram showing an example of a basic posture after inversion. Note that FIG. 11 illustrates the mobile body 1 at position Pi-1. For example, when a path is generated in which the mobile body 1 passes through shelf S, the mobile body 1 is approaching shelf S at position Pi-1. The next position Pi is a position farther away from shelf S than at position Pi-1. In the case of such a position path, the basic posture at position Pi-1 is a posture facing toward shelf S. The basic posture at position Pi is a posture facing away from shelf S. When the mobile body 1 moves according to such a basic posture, when moving from position Pi-1 to position Pi, the mobile body 1 needs to rotate 180 degrees from a posture facing toward shelf S to a posture facing away from shelf S. At this time, there is a possibility that the mobile body 1 may interfere with the shelf S.
[0086] Therefore, the attitude searcher 662 inverts the basic attitude of the position Pi by 180 degrees. In other words, the basic attitude of the position Pi becomes an attitude facing the shelf S. When the mobile body 1 moves in accordance with this basic attitude, the mobile body 1 moves while facing the shelf S when moving from the position Pi-1 to the position Pi, that is, moves backward. Since a large rotation of the mobile body 1 is omitted, 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 for rotation is secured.
[0087] In this way, the attitude searcher 662 reduces the rotation of the mobile body 1 by inverting the basic attitude of the position Pi where a large rotation is required, thereby avoiding interference between the mobile body 1 and the object.
[0088] When confirmation of the basic attitudes of all positions on the position path is completed, the attitude searcher 662 ends the attitude setting process.
[0089] Next, the posture correction in step S103 will be described in detail with reference to a flowchart of FIG.
[0090] In step S301, the attitude searcher 662 determines whether an object exists within the monitoring area Mi at the position Pi. The attitude searcher 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 an initial value of 1. As described above, the monitoring area Mi is an area set around the mobile body 1 at the position Pi, and has a predetermined range that includes the mobile body 1 at the position Pi.
[0091] If an object is present in the monitoring area Mi, the attitude searcher 662 searches for an enlarged attitude for the position Pi in step S302, and corrects the basic attitude for the position Pi to the searched enlarged attitude in step S303. As will be described in detail later, the enlarged attitude is an attitude in which the distance between the mobile body main body 1 and the object is greater than the basic attitude at the position Pi. In this example, the enlarged attitude is an attitude in which the distance between the mobile body main body 1 and the object is at its maximum. Since the planar shape of the dolly 10 is approximately rectangular, if the position Pi is placed in a narrow passage, for example, the distance between the mobile body main body 1 and the object is at its maximum when the side surface of the dolly 10 is approximately parallel to the side wall of the passage.
[0092] In addition, in step S304, the attitude searcher 662 sets the movement mode of the mobile body 1 at the position Pi to omnidirectional movement.
[0093] Thereafter, the posture searcher 662 performs the process of step S305. In step S305, the posture searcher 662 determines whether i is N. If i is not N, the posture searcher 662 increments i in step S306 and returns to the process of step S301.
[0094] If no object exists in the monitoring region Mi, the attitude searcher 662 determines in step S307 whether or not an object exists in the monitoring region Mi+1.
[0095] If no object is present in the monitoring region Mi+1, the attitude searcher 662 maintains the basic attitude at the position Pi without modifying it. In addition, in step S308, the attitude searcher 662 sets the movement mode of the mobile body 1 at the position Pi to normal movement.
[0096] If an object is present in the monitoring region Mi+1, the posture searcher 662 searches for the enlarged posture at position Pi+1 in step S309. Then, in step S310, the posture searcher 662 corrects the basic posture at position Pi to the same posture as the enlarged posture at position Pi+1. At this time, the posture searcher 662 sets a rotation command so that the mobile body 1 rotates around its own axis at position Pi to the same posture as the enlarged posture at position Pi+1. In addition, in step S311, the posture searcher 662 sets the movement method of the mobile body 1 at position Pi to omnidirectional movement.
[0097] That is, when there is no object in the monitoring area Mi but there is an object in the monitoring area Mi+1, the mobile body 1 moves from position Pi where there is no object nearby to position Pi+1 where there is an object nearby. In this case, the mobile body 1 assumes an enlarged posture of position Pi+1 in advance at position Pi, and moves to position Pi+1 by omnidirectional movement.
[0098] Next, the search for the enlarged attitude will be described. FIG. 14 is a flowchart of the enlarged attitude search. Here, the search for the corrected position at position Pi will be described. FIG. 15 is a schematic plan view showing the basic attitudes of positions Pi and Pi+1. The dashed dotted lines in the figure indicate the positional paths. The thick arrows in the figure represent the attitude of the mobile body 1. In FIG. 15, the attitude of the mobile body 1 is the basic attitude. In the example of FIG. 15, the side wall W of the passage is an object surrounding positions Pi and Pi+1.
[0099] First, in step S401, the attitude searcher 662 searches for an attitude that maximizes the distance D between the mobile body 1 and an object surrounding the mobile body 1 when the mobile body 1 is rotated about its own axis in a first rotation direction (for example, clockwise) from the attitude set at position Pi. The attitude set at position Pi is the basic attitude set at step S102. The distance D between the mobile body 1 and an object surrounding the mobile body 1 is the distance between the object and the part of the mobile body 1 that is closest to the object, i.e., the minimum interval between the mobile body 1 and the object. This distance is also simply referred to as the "distance to the object."
[0100] Specifically, the attitude searcher 662 calculates the distance D from the mobile body 1 in the home attitude at position Pi to the object based on map information, for example, a two-dimensional map. Then, the attitude searcher 662 rotates the mobile body 1 around its own axis by a predetermined angle in the first rotation direction from the home attitude. The predetermined angle is a small angle. FIG. 16 is a schematic diagram of the mobile body 1 rotated around its own axis by a predetermined angle in the first rotation direction from the home attitude. In the example of FIG. 16, the side wall W of the passage is the object surrounding position Pi. The attitude searcher 662 calculates the distance D from the mobile body 1 to the object after rotation. Then, the attitude searcher 662 determines whether the distance D to the object has increased. If the distance D to the object has increased, the attitude searcher 662 repeats the rotation of the mobile body 1 around its own axis by a 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 posture searcher 662 ends the search for candidates for the expansion posture in the first rotation direction. Furthermore, if the posture of the mobile body 1 becomes the same as the posture at position Pi+1, or if the mobile body 1 comes into contact with the object, the posture searcher 662 also ends the search for candidates for the expansion posture in the first rotation direction. FIG. 17 is a schematic diagram of a case where the posture of the mobile body 1 becomes the same as the posture at position Pi+1. In this case, the posture searcher 662 ends the search for candidates for the expansion posture in the first rotation direction. The posture searcher 662 determines the posture at which the distance D to the object is greatest as the candidate for the expansion posture.
[0101] Next, in step S402, the attitude searcher 662 searches for an attitude that maximizes the distance D to the object when the mobile body 1 is rotated around its own axis from the attitude set at position Pi in a rotation direction opposite to that of step S401, i.e., a second rotation direction (e.g., counterclockwise). The process is the same as step S401 except for the direction in which the mobile body 1 is rotated around its own axis. The attitude searcher 662 searches for an attitude that maximizes the distance D to the object 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 comes into contact with the object. Figure 18 is a schematic diagram of the case where the mobile body 1 is rotated around its own 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 ends the search for candidates for the expanded attitude in the second rotation direction. The posture searcher 662 selects the posture that maximizes the distance D to the object as a candidate for the enlarged posture.
[0102] Next, the posture searcher 662 determines the candidate enlarged posture when the mobile body 1 is rotated around its axis in the first rotation direction and the candidate enlarged posture when the mobile body 1 is rotated around its axis in the second rotation direction to be the candidate with the larger distance D to the object as the enlarged posture.
[0103] According to the expanded posture search, it is possible to search for an expanded posture in which the distance D to the object increases within a range in which the mobile body 1 can rotate around its own axis without coming into contact with the object.
[0104] With this attitude correction, whether or not an expanded attitude is set at each position on the position path is determined based on environmental information surrounding each position. Specifically, an expanded attitude is set at a position Pi on 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 based on whether or not an object exists within a monitoring area Mi set at each position Pi. FIG. 19 is a schematic diagram of a case where a basic attitude is set on the position path. FIG. 20 is a schematic diagram of a case where an expanded attitude is set on the position path. As shown in FIG. 19 , when a basic attitude is set at each position on the position path, the mobile body 1 faces in a tangent direction to the position path at each position. Depending on the attitude, the mobile body 1 may approach surrounding objects, increasing the possibility of interference. On the other hand, when an expanded attitude is set on the position path, the distance between the mobile body 1 and an object becomes relatively large at each position, as shown in FIG. 20 . This reduces the possibility of interference between the mobile body 1 and an object.
[0105] In addition, movement from or to a position where an expanded attitude is set is achieved by omnidirectional movement of the mobile body 1. For example, in the case of normal wheels that are not omnidirectional, the mobile body 1 changes its attitude by turning with a relatively large radius of rotation, so the attitude of a certain position is affected by the attitudes of the positions before and after it. Therefore, even if the attitude of each position on the positional path is appropriately set, it may be difficult to move the mobile body 1 exactly to the set position. However, because the wheels 13 of the mobile body 1 are omnidirectional, they can move parallel to any direction. In other words, the mobile body 1 can move in any direction without being restricted by the attitudes of the positions before and after it. As a result, the mobile body 1 can move faithfully in accordance with the set expanded attitude. For example, in FIG. 20, the attitudes of the mobile body 1 at positions Pi-1, Pi, and Pi+1 are approximately the same. The mobile body 1 moves roughly parallel from position Pi-1 to position Pi+1 while maintaining its attitude. This allows the mobile body 1 to move while maintaining the set attitude, thereby further reducing the possibility of interference between the mobile body 1 and an object.
[0106] Furthermore, the attitude searcher 662 determines whether or not each position on the position path is a position where an enlarged attitude should be set based on the surrounding environmental information. Therefore, the enlarged attitude is set at a necessary position according to the surrounding environmental information. Specifically, the enlarged attitude is set at a position where an object exists within a predetermined surrounding range, in this example, within the monitoring area Mi. In the example of FIG. 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 through a small area, and therefore the enlarged attitude and omnidirectional movement are set at the target position Pi.
[0107] Alternatively, even if no object is located near the target position Pi, if an object is located near the next position Pi+1, the mobile body 1 is likely to enter a narrow area. Therefore, an enlarged attitude for the next position Pi+1 is set for the target position Pi, and omnidirectional movement is set. Furthermore, the movement of the mobile body 1 is set so that the enlarged attitude for the next position Pi+1 is realized in advance by rotating around its own axis at the target position Pi (see steps S309, S310, and S311). FIG. 21 is a schematic diagram of a case where no object is located near position Pi and an object is located near position Pi+1. The mobile body 1 moves by normal movement in the basic attitude to position Pi. The mobile body 1 rotates around its own axis at position Pi so that the attitude at position Pi is the same as the enlarged attitude at position Pi+1. The mobile body 1 moves by omnidirectional movement from position Pi to position Pi+1 while maintaining the enlarged attitude. This movement reduces the possibility of interference with an object when the mobile body 1 enters a narrow area.
[0108] A home posture is set at a position on the position path where there is a low possibility of interference between the mobile body 1 and an object. In other words, the mobile body 1 moves in a posture facing a tangent direction to the position path. People around the mobile body 1 tend to predict the movement direction of the mobile body 1 based on the orientation of the mobile body 1. 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 facing the front-to-back direction. In a posture facing a tangent direction to the position path, the front of the mobile body 1 faces the movement direction. As a result, people can easily predict the movement direction of the mobile body 1, and the movement of the mobile body 1 can be prevented from causing discomfort to people. For example, if no object is located near the target position Pi and no object is located near the next position Pi+1, the home posture is set at 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 on the path generated by the path search. Fig. 22 is a functional block diagram showing the configuration of a control system of the processor 61 according to a modified example. The processor 61 may also function as a shape searcher 610 that sets the shape of the robot arm 12. The processor 61 may also function as an arm controller 611 that controls the robot arm 12.
[0110] The shape searcher 610 sets the shape of the robot arm 12 at each position on 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 a shape with extended joints, a shape with bent joints, and a shape with rotated joints. The shapes obtained by bending or rotating joints include various shapes with different joint angles.
[0111] The arm controller 611 operates the robot arm 12. For example, the arm controller 611 transforms the robot arm 12 into a target shape. The arm controller 611 may maintain the robot arm 12 in the target shape. The arm controller 611 may operate the robot arm 12 by continuously changing the shape of the robot arm 12.
[0112] The arm controller 611 generates command values according to a target shape of the robot arm 12. Based on the command values, the arm controller 611 calculates command operation amounts for each of the multiple motors 12a. For example, the operation amounts are the rotational speed or torque of the motors.
[0113] Each motor 12a operates in accordance with a command operation amount. The motor 12a may be provided with its own controller for operating the motor 12a. For example, if the 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 in accordance with the command operation amount. As a result, the robot arm 12 is transformed into a target shape.
[0114] In the basic operation of the moving body 100, the shape searcher 610 may perform a shape search of the robot arm 12 in step S3 of FIG. 5 to set the shape of the robot arm 12 at each position on the path.
[0115] In step S5, the arm controller 611 may control the robot arm 12 to have a set shape.
[0116] When performing path search and posture search separately, the control device 6 may further perform shape search of the robot arm 12. The control device 6 executes shape search after path search. The control device 6 may perform shape search in parallel with posture search, may perform path search before posture search, or may perform shape search after posture search. In shape search, the control device 6 sets the shape of the robot arm 12 at each position on the path generated by path search based on environmental information about the surroundings of the mobile body 1.
[0117] In the shape search, the shape searcher 610 sets the shape of the robot arm 12 at each position on the path generated by the path search, i.e., the running shape. When the mobile body 1 moves, the shape of the robot arm 12 is maintained as the shape set by the shape searcher 610. The shapes of the robot arm 12 set in the shape search include a first running shape and a second running shape. FIG. 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 running shape. FIG. 24 is a plan view of the mobile body 1 when the first robot arm 12 and the second robot arm 12 are in the first running shape. FIG. 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 running shape. FIG. 26 is a plan view of the mobile body 1 when the first robot arm 12 and the second robot arm 12 are in the second running shape.
[0118] For example, the first robot arm 12 and the second robot arm 12 in the first running configuration are positioned at a relatively high position. For example, the first robot arm 12 and the second robot arm 12 in the first running configuration are bent at an intermediate joint between the shoulder joint and the wrist joint, for example, the fourth joint J4, with the portion between the base 11 and the intermediate joint extending diagonally downward and rearward from the base 11, and the portion between the intermediate joint and the wrist joint extending forward from the intermediate joint. That is, the first robot arm 12 and the second robot arm 12 in the first running configuration have the intermediate joint pulled rearward 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 hand than the intermediate joint are positioned at a relatively high position. Furthermore, the hand positions of the first robot arm 12 and the second robot arm 12 are positioned relatively rearward.
[0119] The first robot arm 12 and the second robot arm 12 in the first traveling 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. Because the first robot arm 12 and the second robot arm 12 are positioned above the first sensor 3A, they may block part of the detection range of the first sensor 3A. The detection results of the first sensor 3A corresponding to the first robot arm 12 and the second robot arm 12 are treated as invalid. The higher the positions of the first robot arm 12 and the second robot arm 12, the farther the first robot arm 12 and the second robot arm 12 are from the first sensor 3A. The farther the first robot arm 12 and the second robot arm 12 are from the first sensor 3A, the smaller the area of the detection range of the first sensor 3A blocked by the first robot arm 12 and the second robot arm 12 tends to be. Therefore, in the first running shape, the detection range of the first sensor 3A is relatively large.
[0120] Furthermore, the first robot arm 12 and the second robot arm 12 in the first traveling configuration have a relatively small amount of forward protrusion from the base 11. 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 is expanded diagonally upward and forward from the first sensor 3A.
[0121] The widthwise size of the overall shape of the first robot arm 12 and the second robot arm 12 in the second running shape when viewed in a plane is smaller than the widthwise size of the overall shape of the first robot arm 12 and the second robot arm 12 in the first running shape when viewed in a plane.
[0122] For example, in the first running configuration, the second link L2 is positioned at the outermost position in the width direction, as shown in Fig. 24. In other words, the width direction size W1 of the overall shape of the first robot arm 12 and the second robot arm 12 in the first running configuration in a plan view is determined by the second link L2 of the first robot arm 12 and the second robot arm 12. In the first running configuration, the first link L1 is positioned further outward in the width direction than the rotation axis X of the first joint J1. The second link L2 connected to the first link L1 is also positioned further outward in the width direction than the rotation axis X of the first joint J1.
[0123] In the first running configuration, all of the links L except for the second link L2 are positioned more inward in the width direction than the second link L2, thereby reducing the width W1 of the overall shape of the first robot arm 12 and the second robot arm 12 in the first running configuration when viewed from above.
[0124] In the second running shape, as shown in FIG. 26 , the second link L2 is positioned at the outermost position in the width direction. That is, the width dimension W2 of the overall shape of the first robot arm 12 and the second robot arm 12 in the second running shape in a plan view is determined by the second link L2 of the first robot arm 12 and the second robot arm 12. That is, in the second running shape, the links L other than the second link L2 among the multiple links L are positioned more inward in the width direction than the second link L2. In the second running shape, the front-rear direction position of the first link L1 is forward of the rotation axis X of the first joint J1. The front-rear direction position of the second link L2 connected to the first link L1 is also forward of the rotation axis X of the first joint J1. That is, the first link L1 and the second link L2 rotate forward about the rotation axis X of the first joint J1 compared to the first running shape. As a result, the widthwise dimension W2 of the second link L2 of the first robot arm 12 and the second link L2 of the second robot arm 12 in the second running shape is smaller than the widthwise dimension W1 of the second link L2 of the first robot arm 12 and the second link L2 of the second robot arm 12 in the first running shape.
[0125] In the second traveling configuration, the size W2 in the width direction of the overall shape of the first robot arm 12 and the second robot arm 12 is small, so it is easier to ensure a 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 traveling configuration may be higher than the lowest positions of the first robot arm 12 and the second robot arm 12 in the second traveling configuration. In both the first traveling configuration and the second traveling configuration, the first robot arm 12 and the second robot arm 12 may be located higher than the first sensor 3A of the mobile body 1.
[0127] For example, in the first running configuration, as shown in FIG. 23 , the fourth link L4, the fifth link L5, the sixth link L6, and the seventh link L7 are positioned at approximately the same height. The lowest positions of the first robot arm 12 and the second robot arm 12 in the first running configuration are determined by any of the fourth link L4, the fifth link L5, the sixth link L6, and the seventh link L7. For example, the lowest positions of the first robot arm 12 and the second robot arm 12 in the first running configuration are the sixth link L6. In the second running configuration, as shown in FIG. 25 , the fourth link L4, the fifth link L5, the sixth link L6, and the seventh link L7 are positioned at approximately the same height. The lowest positions of the first robot arm 12 and the second robot arm 12 in the second running configuration are determined by any of the fourth link L4, the fifth link L5, the sixth link L6, and the seventh link L7. For example, the lowest positions of the first robot arm 12 and the second robot arm 12 in the second running configuration are the fourth link L4. The height H1 to the sixth link L6 in the first running configuration is greater than the height H2 to the fourth link L4 in the second running configuration.
[0128] In the first traveling configuration, the first robot arm 12 and the second robot arm 12 are positioned at a higher position overall, so the detection range of the first sensor 3A can be expanded compared to the second traveling configuration.
[0129] The foremost positions of the first robot arm 12 and the second robot arm 12 in the first running configuration may be located further rearward than the foremost positions of the first robot arm 12 and the second robot arm 12 in the second running configuration. The rearmost positions of the first robot arm 12 and the second robot arm 12 in the first running configuration may be located further rearward than the rearmost positions of the first robot arm 12 and the second robot arm 12 in the second running configuration.
[0130] For example, in the first running configuration, as shown in FIG. 23 , the seventh link L7 is at the forefront and the fourth link L4 is at the rearmost. 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 L4 are bent at the fourth joint J4 so that the fourth link L4 is substantially horizontal. The fourth joint J4, which is an intermediate joint, is located rearward of the first joint J1, which is a shoulder joint. The fourth link L4 and the fifth link L5 extend substantially in the front-to-rear direction outside the width direction of the base 11. As a result, the fourth link L4, the fifth link L5, the sixth link L6, and the seventh link L7 are located relatively rearward. In addition, the fourth link L4, the fifth link L5, the sixth link L6, and the seventh link L7 are located at relatively high positions.
[0131] On the other hand, in the second running shape, as shown in FIG. 25 , the sixth link L6 is at the forefront and the first link L1 is at the rearmost. In the second running shape, the second link L2 rotates forward around the rotation axis of the second joint J2, and the third link L3 and the fourth link L4 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 located forward of the first joint J1, which is a shoulder joint. The fourth joint J4 may be located forward of the base 11. However, the fourth joint J4 is located at a lower position compared to the first running shape. The fourth link L4 and the fifth link L5 extend approximately in the front-to-rear direction in front of the base 11. As a result, the fourth link L4, the fifth link L5, the sixth link L6, and the seventh link L7 are located relatively forward. In addition, the fourth link L4, the fifth link L5, the sixth link L6, and the seventh link L7 are located at a lower position compared to the first running shape.
[0132] In the first traveling configuration, the first robot arm 12 and the second robot arm 12 are positioned further rearward than in the second traveling configuration. In other words, in the first traveling configuration, the first robot arm 12 and the second robot arm 12 protrude forward from the base 11 less than in the second traveling configuration. As a result, in the first traveling configuration, the detection range of the first sensor 3A can be expanded diagonally upward and forward from the first sensor 3A compared to the second traveling configuration. Note that the overall shape of the first robot arm 12 and the second robot arm 12 in the first traveling configuration in a plan view may be contained within the inside of the cart 10 in the front-to-rear direction. This reduces the possibility of interference between the robot arm 12 and other objects located in the front-to-rear direction during traveling.
[0133] The longitudinal size, perpendicular to the width direction, of the overall shape of the first robot arm 12 and the second robot arm 12 in the second running shape when viewed in a plane may be larger than the longitudinal size of the overall shape of the first robot arm 12 and the second robot arm 12 in the first running shape when viewed in a plane, as shown in Figure 26.
[0134] For example, in the second running configuration, the first link L1 is positioned forward of the rotation axis X of the first joint J1, and therefore the overall shape of the first robot arm 12 and the second robot arm 12 in a plan view is larger in the longitudinal direction than in the first running configuration. In other words, the longitudinal size of the overall shape of the first robot arm 12 and the second robot arm 12 in a plan view in the first running configuration is smaller than the longitudinal size of the overall shape of the first robot arm 12 and the second robot arm 12 in a plan view in the second running configuration.
[0135] The shape searcher 610 determines whether the shape of the robot arm 12 at each position on the path should be set to the first running shape or the second running shape based on environmental information about the surroundings of each position. For example, the shape searcher 610 determines whether an object exists within a 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 the position Pi.
[0136] In the first and second running configurations, the shape of the first robot arm 12 does not have to be completely identical to 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 heights of the tips of the first and second robot arms 12 may be different. The rotation angles of the seventh joint J7 of the first and second robot arms 12 may be different.
[0137] At a position where it is determined that the second running shape should be set, the shape searcher 610 sets the second running shape as the shape of the robot arm 12. In this example, at a position where it is determined that the second running shape should not be set, the shape searcher 610 sets a shape other than the second running shape as the shape of the robot arm 12. The shape other than the second running shape is, for example, the first running shape.
[0138] For example, the shape searcher 610 sets a second running shape when an object is present within a predetermined range around each position on the route, and sets a first running shape when an object is not present within a predetermined range around each position on the route.
[0139] The effective range of the detection range of the sensor 3 is changed depending on the running shape of the robot arm 12. Areas of the detection range of the sensor 3 that are blocked by the base 11, the robot arm 12, etc. are treated as invalid ranges. As described above, the effective range of the detection range of the first sensor 3A differs between the first running shape and the second running shape. Therefore, the control device 6 changes the effective range of the detection range of the first sensor 3A depending on the running shape that has been set. For example, the state estimator 64 and the movement controller 64 change the effective range of the detection range of the first sensor 3A depending on the running shape that has been set. The effective range of the detection range of the first sensor 3A when the first running shape is set is larger than when the second running 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 on the position path during posture correction in step S103 of FIG. 11 . The shape searcher 610 may determine whether to set the shape of the robot arm 12 at each position on the position path to the first running shape or the second running shape based on environmental information about the surroundings of each position. By setting the shape of the robot arm 12 taking into consideration environmental information about the surroundings of each position, the shape of the robot arm 12 is set to an overall shape that is less likely to cause interference between the robot arm 12 and other objects.
[0141] For example, in step S302 of the flowchart in Fig. 13, the shape searcher 610 sets the shape of the robot arm 12 at position Pi to the second running shape. That is, the second running shape is set to the shape of the robot arm 12 at position Pi where an object is present within the monitoring area Mi. Specifically, the second running shape is a shape in which the overall shapes of the first robot arm 12 and the second robot arm 12 are reduced in the width direction in a planar view. The distance between the mobile body 1 and the object depends on the planar shape and posture of the mobile body 1. By reducing the overall shapes of the first robot arm 12 and the second robot arm 12 in the width direction, it becomes easier to ensure 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 running shape. That is, the first running shape is set to the shape of the robot arm 12 at position Pi where there is no object in the monitoring area Mi and no object in the monitoring area Mi+1 of the next position Pi+1. More specifically, the first running shape is a shape in which the first robot arm 12 and the second robot arm 12 are positioned higher and further back than in the second running shape. This makes it possible to expand 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 running shape. That is, even if no object is present in the monitoring area Mi, if an object is present in the monitoring area Mi+1 of the next position Pi+1, the second running shape is set to the shape of the robot arm 12 at position Pi. This makes it easier to ensure the distance between the mobile body 1 and the object when moving from position Pi to position Pi+1.
[0144] 14, the first robot arm 12 and the second robot arm 12 are set to the running shape. For example, if the second running shape is set in step S302 or S309, the first robot arm 12 and the second robot arm 12 are set to the second running shape when the expanded posture is searched for.
[0145] In the second traveling configuration, the size of the overall shape of the first robot arm 12 and the second robot arm 12 in the width direction is relatively small. For example, the first robot arm 12 and the second robot arm 12 are contained inside the cart 10 in the width direction in a plan view. In this case, the portion of the mobile body main body 1 that is closest to the object is a part of the cart 10. Note that if the first robot arm 12 and the second robot arm 12 extend outside the cart 10 in the width direction in a plan view, the portion of the mobile body main body 1 that is closest to the object is a part of the robot arm 12. In this case, in the description of the search for the expanded posture, the distance D between the mobile body main body 1 and the surrounding object is the distance between a part of the robot arm 12 and the surrounding object.
[0146] According to this mobile body 100, when the mobile body main body 1 moves, the robot arm 12 is maintained in the running configuration. The running configuration is changed depending on the position of the position path. According to the shape search, at each position of the position path, either the first running configuration or the second running configuration is set based on the environmental information surrounding each position. The second running configuration is set at a position where there is a possibility of interference with an object. Since the width direction size of the overall shape of the first robot arm 12 and the second robot arm 12 in the second running configuration in a plan view is relatively small, it is easier to ensure a distance between the mobile body main body 1 and the object. This reduces the possibility of interference between the mobile body main body 1 and the object.
[0147] The first running shape is basically set in a position where no objects exist within a predetermined range. In the first running shape, the first robot arm 12 and the second robot arm 12 are positioned further back and higher than in the second running shape. This allows the detection range of the first sensor 3A to be expanded. More information about the surroundings of the mobile body 1 can be obtained, thereby achieving safer movement. In the first running shape, the width direction of the overall shape of the first robot arm 12 and the second robot arm 12 in a plan view is larger than in the second running shape. However, because no objects exist within the predetermined range, the possibility of interference between the mobile body 1 and an object is low.
[0148] However, even if there is no object within the predetermined range at a position, if there is an object within the predetermined range at the next position, there is a high possibility that the mobile body 1 will enter a narrow area. Therefore, the second running shape is set at such a position. This reduces the possibility of interference with an object when the mobile body 1 enters a narrow area.
[0149] The second running configuration is realized by rotating the entire robot arm 12 forward compared to the first running configuration using one of the multiple joints J, which horizontally extends and bends the entire robot arm 12. The joint J which horizontally extends and bends the entire robot arm 12 is, for example, a first joint J1, to which a second link L2 is connected. In the first running configuration, the second link L2 is positioned outward in the width direction with respect to the rotation axis X of the first joint J1. In the second running configuration, the position of the second link L2 in the front-to-rear direction is forward of the first joint J1. This allows the width direction size of the entire shape of the first robot arm 12 and the second robot arm 12 in the second running configuration in a plan view to be smaller than that of the first running configuration.
[0150] Other Embodiments As described above, the above-described embodiments have been described as examples of the technology disclosed in the present application. However, the technology of the present disclosure is not limited to these embodiments and can be applied to embodiments in which modifications, substitutions, additions, omissions, etc. are made as appropriate. Furthermore, the components described in the above-described embodiments can be combined to create new embodiments. Furthermore, the components described in the accompanying drawings and detailed description may include not only components essential for solving the problem, but also components that are not essential for solving the problem in order to exemplify the technology. Therefore, the fact that these non-essential components are described in the accompanying drawings or detailed description should not be interpreted as immediately determining that these non-essential components are essential.
[0151] For example, the mobile body 1 is not limited to a robot, but may be a mobile device such as a drone, a ship, or a vehicle. The location where the mobile body 1 moves is not limited to a passageway, but may be a road or a waterway. The mobile body 1 does not need to include the robot arm 12. The base 11 may be rotatable relative to the carriage 10. The wheels 13 are not limited to omnidirectional wheels. If the wheels 13 are omnidirectional wheels, they may be omniwheels.
[0152] The sensor 3 is not limited to LiDAR. The sensor 3 may be a two-dimensional or three-dimensional camera. The sensor 3 may be a three-dimensional scanner. The sensor 3 may be disposed in a part of the mobile body 1 other than the carriage 10. The number of sensors 3 is not limited to three. The number of sensors 3 may be one, two, four or more.
[0153] At positions among multiple positions on the path where an enlarged orientation is not set, a position other than the basic orientation may be set. In other words, at positions where an enlarged orientation is not set, an arbitrary orientation may be set. An arbitrary orientation may be set depending on the policy for path generation or environmental information. The basic orientation is not limited to an orientation facing the normal direction of the tangent at the target position. The basic orientation may be set arbitrarily depending on the policy for path generation, etc.
[0154] Furthermore, in the above example, when setting the basic attitude, the basic attitude of position Pi is inverted when the angular difference Δθ between position Pi+1 and position Pi is large. However, this process may be omitted. Alternatively, when performing the process of inverting the basic attitude as needed, the process of setting the enlarged attitude may be omitted. In other words, in the above description, when setting an attitude at each position on the position path after generating the position path, both the set attitude is inverted and an attitude in which the distance between the mobile body 1 and the object is large is set. However, only one of these may be performed. Note that the angle threshold α for determining whether or not attitude inversion is necessary is not limited to 90 degrees. The angle threshold α may be 135 degrees, 180 degrees, or the like.
[0155] In the above description, whether or not an object exists around each position on the route 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 large enough to include the mobile body 1. In other words, the monitoring area Mi may be an area larger than the circumscribing circle of the mobile body 1.
[0156] The position at which the enlarged attitude is set is not limited to the position Pi when an object exists near both the position Pi and the position Pi+1, and the position Pi when no object exists near the position Pi and an object exists near the position Pi+1. The above description of the position at which the enlarged attitude is set is merely an example. Whether or not the enlarged attitude is set is determined according to the environmental information of each position included in the position path. Simply, the enlarged attitude may be set at the position Pi when an object exists around the position Pi.
[0157] The expanded posture is not limited to the posture in which the distance between the mobile body 1 and the object is the greatest. In other words, the expanded posture can be any posture in which the distance between the mobile body 1 and the object is greater than the mobile body 1 facing in the tangent direction of the position path at the target position.
[0158] The search for the enlarged posture may be performed by rotating the mobile body 1 about its own axis in only one of the first rotation direction and the second rotation direction at the target position. For example, in the search for the enlarged posture at position Pi, the enlarged posture may be searched for by rotating the mobile body 1 in the basic posture only in the first rotation direction or the second rotation direction that approaches the basic posture at position Pi+1.
[0159] In the shape search, either the first running shape or the second running shape is set depending on whether an object exists within a predetermined range around each position on the route. However, the shape searcher 610 may set the second running shape at a position on the route where an enlarged attitude is set. The shape searcher 610 may set the first running shape at a position where an enlarged attitude is not set. A position where an enlarged attitude is set is a position where the distance between the mobile body 1 and surrounding objects is short. By setting the second running shape at a position where an enlarged attitude is set, the possibility of interference between the mobile body 1 and objects can be further reduced.
[0160] The flowchart is merely an example. Steps in the flowchart may be changed, replaced, added, omitted, etc. as appropriate. The order of steps in the flowchart may also be changed, and serial processing may be performed in parallel. For example, in the flowchart for setting the attitude in FIG. 12, steps S204 and thereafter may be omitted. In the flowchart for correcting the attitude in FIG. 17, steps S307, S309, S310, and S311 may be omitted, and if no object is present in either the monitoring area Mi or the monitoring area Mi+1, the normal attitude may be set at position Pi in step S308.
[0161] The functionality of the elements disclosed herein may be implemented using one or more circuits or processing circuits, including general-purpose processors, special-purpose processors, integrated circuits, ASICs (Application Specific Integrated Circuits), FPGAs (Field Programmable Gate Arrays), and / or conventional circuitry. The functionality of the elements disclosed herein may be implemented using one or more circuits or processing circuits, including combinations of general-purpose processors, special-purpose processors, integrated circuits, ASICs, FPGAs, and conventional circuitry. The one or more circuits or processing circuits may be programmed using one or more programs stored together or separately in one or more memories or otherwise configured to perform the disclosed functions. A processor is considered a processing circuit or circuitry because it includes transistors and other circuitry. A processor may also be a programmed processor that executes a program stored in a memory. In this disclosure, a circuit, unit, or means is hardware that performs the recited functions alone or in combination with each other, or hardware that is programmed to perform the recited functions alone or in combination with each other. The hardware may be any hardware disclosed herein that is programmed or configured to perform the recited functions.
[0162] A computer program containing computer instructions is stored in memory. The computer instructions provide logic and routines that enable hardware to perform the methods disclosed herein. The hardware includes, for example, processing circuits or circuitry. The computer program may be implemented in a known format in a computer-readable storage medium, a computer program product, a memory device, a recording medium such as a CD-ROM or DVD, and / or the memory of FPGAs or ASICs.
[0163] [Aspects] The above-described embodiments are specific examples of the following aspects.
[0164] (Mode 1) A moving body 100 includes a moving body main body 1 and a control device 6 that causes the moving body main body 1 to move autonomously, and the control device 6 performs a route search that searches for a path for the moving body main body 1 without taking into account the attitude of the moving body main body 1, and an attitude search that sets the attitude of the moving body main body 1 at each position on the path generated by the route search based on environmental information surrounding each position.
[0165] According to this configuration, the orientation of the mobile body 1 is not taken into consideration in the route search, thereby reducing the computational load of the route search. By separating the orientation search from the route search, an appropriate orientation can be easily found. As a result, the mobile body 100 can move with a low possibility of interference with surrounding objects while reducing the computational load.
[0166] (Aspect 2) In the mobile body 100 described in aspect 1, during the attitude search, the control device 6 sets the attitude of the mobile body 1 to an expanded attitude in which, at the position within the path where the attitude is set, the distance between the mobile body 1 and objects around the mobile body 1 is greater than the attitude facing in the tangent direction of the path at the position.
[0167] According to this configuration, in the attitude search, the expanded attitude is set as the attitude of the mobile body 1 on the route. Normally, when considering smooth movement of the mobile body 1, the attitude of the mobile body 1 tends to be an attitude that faces roughly in the tangent direction of the route at each position on the route. In the expanded attitude, the distance between the mobile body 1 and the object is enlarged compared to an attitude that faces in the tangent direction of such a route. Setting the expanded attitude reduces the possibility of interference between the mobile body 1 and the object.
[0168] (Aspect 3) In the moving body 100 according to aspect 1 or aspect 2, the control device 6 determines, in the attitude search, whether each position on the route is a position where the expanded attitude should be set, based on environmental information surrounding each position.
[0169] According to this configuration, the control device 6 sets the attitude of the mobile body 1 to the enlarged attitude in accordance with the surrounding environment at each position on the route. As a result, in an environment where there is a high possibility of interference between the mobile body 1 and an object, the attitude of the mobile body 1 can be set to the enlarged attitude.
[0170] (Aspect 4) In the moving body 100 described in any one of Aspects 1 to 3, the control device 6, in the attitude search, determines whether each position on the route is a position where the expanded attitude is to be set based on whether an object is present within a predetermined range around each position, i.e., within the monitoring area Mi.
[0171] According to this configuration, whether or not to set an expanded attitude is determined based on whether or not an object exists nearby at each position on the route. As a result, an expanded attitude is set at a position where an object exists nearby, thereby reducing the possibility of interference between the mobile body 1 and the object.
[0172] (Aspect 5) In the moving body 100 described in any one of aspects 1 to 4, the moving body main body 1 has a defined forward / backward direction, and in addition to movement in the forward / backward direction, is capable of parallel movement in directions other than the forward / backward direction, and the control device 6 realizes movement of the moving body main body 1 to or from the position where the expanded posture is set by movement that includes at least the parallel movement.
[0173] According to this configuration, the mobile body 1 can move relatively freely without being restricted by the minimum turning radius, etc. Therefore, it becomes easier to realize movement while adhering to the set expanded attitude.
[0174] (Aspect 6) In the moving body 100 described in any one of Aspects 1 to 5, the control device 6, in the attitude search, sets the attitude of the moving body main body 1 to an attitude corresponding to the tangent direction of the path at each of the positions, and if an object is located within a predetermined range around each of two consecutive positions on the path at both of the positions, and if the angular difference Δθ between the attitude corresponding to the tangent direction of the path at the earlier of the two consecutive positions and the attitude corresponding to the tangent direction of the path at the later of the two consecutive positions is equal to or greater than a predetermined angle threshold α, inverts the attitude corresponding to the tangent direction of the path at the later position.
[0175] According to this configuration, if the aforementioned attitude reversal is not performed, the mobile body 1 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 that the mobile body 1 will interfere with the object. However, by reversing the attitude of the subsequent position 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 main body 1 includes a base 11 and a multi-joint robot arm 12 connected to the base 11 and capable of changing its 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] According to this configuration, the shape of the robot arm 12 at each position on the path is set by shape search. This allows the shape of the robot arm 12 during movement of the mobile body 1 to be managed. The shape of the robot arm 12 at each position is searched for separately from the path search and the posture search. Therefore, the shape of the robot arm 12 during movement can be determined with a low calculation load.
[0178] (Aspect 8) In the moving body 100 according to any one of Aspects 1 to 7, the robot arms 12 include a first robot arm 12 and a second robot arm 12, the moving body main 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 connected to different portions of the base 11 in a width direction, which is one direction in a planar view, the shape of the robot arm 12 set in the shape search includes a first running shape and a second running shape, and the size in the width direction of the overall shape of the first robot arm 12 and the second robot arm 12 in the second running shape in a planar view is smaller than the size in the width direction of the overall shape of the first robot arm 12 and the second robot arm 12 in the first running shape.
[0179] According to this configuration, the shape of the robot arm 12 at each position on the path can be set to the first running shape or the second running shape. In the second running shape, the width direction size of the overall shape of the first robot arm 12 and the second robot arm 12 in a plan view is smaller than in the first running shape. By setting the second running shape, the possibility of interference between the robot arm 12 and an object is reduced compared to the first running shape.
[0180] (Aspect 9) In the moving body 100 according to any one of Aspects 1 to 8, in the shape search, the control device 6 determines whether the shape of the robot arm 12 at each position on the path should be set to the first running shape or the second running shape based on environmental information around each position.
[0181] According to this configuration, the shape of the robot arm 12 at each position is changed based on the environmental information around each position. The possibility of interference between the mobile body 1 and an object can be estimated from the environmental information around each position. By setting the first running shape or the second running shape based on the environmental information around 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, in the shape search, sets the second running shape when an object is present within a predetermined range around each position on the route, and sets the first running shape when an object is not present within the range around each position on the route.
[0183] According to this configuration, when an object exists within a predetermined range around each position, the second running shape is set, thereby reducing the possibility of interference between the mobile body 1 and the object. On the other hand, when 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 running shape is set.
[0184] (Aspect 11) In the moving body 100 according to any one of Aspects 1 to 10, in the shape search, the control device 6 sets the second traveling shape at a position on the route where the enlarged attitude is set.
[0185] According to this configuration, the second running shape is set at the position where the expanded attitude is set. As described above, the expanded attitude is set to reduce the possibility of interference between the mobile body 1 and an object. By setting the second running shape together with the expanded attitude, the possibility of interference between the mobile body 1 and an object can be further reduced.
[0186] (Mode 12) A method of controlling a moving body 100 to cause the moving body 100 to move autonomously includes searching for a path for the moving body 1 without taking into account the attitude of the moving body 1, and setting the attitude of the moving body 1 at each position on the searched path based on environmental information surrounding each position.
[0187] According to this configuration, the orientation of the mobile body 1 is not taken into consideration in the route search, thereby reducing the computational load of the route search. By separating the orientation search from the route search, an appropriate orientation can be easily found. As a result, the mobile body 100 can move with a low possibility of interference with surrounding objects while reducing the computational load.
[0188] (Mode 13) A control program for the mobile body 100 to perform autonomous movement causes a computer to realize a function of searching for a path for the mobile body 1 without taking into account the attitude of the mobile body 1, and a function of setting the attitude of the mobile body 1 at each position on the searched path based on environmental information surrounding each position.
[0189] According to this configuration, the orientation of the mobile body 1 is not taken into consideration in the route search, thereby reducing the computational load of the route search. By separating the orientation search from the route search, an appropriate orientation can be easily found. As a result, the mobile body 100 can move with a low possibility of interference with surrounding objects while reducing the computational load.
[0190] 100 Mobile body 1 Mobile body main body 11 Base 12 Robot arm 6 Control device
Claims
1. A mobile body comprising: a mobile body; and a control device that causes the mobile body to move autonomously, wherein the control device performs a route search that searches for a path for the mobile body without taking into account the attitude of the mobile body; and an attitude search that sets the attitude of the mobile body at each position on the path generated by the route search based on environmental information surrounding each position.
2. A moving body as described in claim 1, wherein the control device, in the attitude search, sets the attitude of the moving body to an expanded attitude in which, at the position within the path where the attitude is set, the distance between the moving body and objects around the moving body is greater than the attitude facing in the tangent direction of the path at the position.
3. A mobile body according to claim 2, wherein the control device, in the attitude search, determines whether each position on the route is a position at which the expanded attitude should be set based on environmental information surrounding each position.
4. A mobile body as described in claim 3, wherein the control device, in the attitude search, determines whether each position on the path is a position at which the expanded attitude should be set based on whether an object is present within a predetermined range around each position.
5. A moving body according to any one of claims 2 to 4, wherein the moving body main body has a defined forward / backward direction and is capable of translational movement in directions other than the forward / backward direction in addition to movement in the forward / backward direction, and the control device realizes movement of the moving body main body to or from the position where the enlarged attitude is set by movement that includes at least the translational movement.
6. A mobile body as described in claim 1, wherein the control device, in the attitude search, sets the attitude of the mobile body main body to an attitude corresponding to the tangent direction of the path at each of the positions, and if an object is located within a predetermined range around each of two consecutive positions on the path at both of the positions, and if the angular difference between the attitude corresponding to the tangent direction of the path at the earlier of the two consecutive positions and the attitude corresponding to the tangent direction of the path at the later of the two consecutive positions is equal to or greater than a predetermined angle threshold, the mobile body reverses the attitude corresponding to the tangent direction of the path at the later position.
7. A mobile body as described in claim 1, wherein the mobile body main body includes a base and a multi-joint robot arm connected to the base and capable of changing its shape, and the control device further performs a shape search to set the shape of the robot arm at each position on the path generated by the path search.
8. A mobile body as described in claim 7, wherein the robot arms include a first robot arm and a second robot arm, the mobile body main body further includes a base to which the first robot arm and the second robot arm are connected, the first robot arm and the second robot arm are each connected to different parts of the base in a width direction which is one direction in a planar view, the shapes of the robot arms set in the shape search include a first running shape and a second running shape, and the width direction size of the overall shape of the first robot arm and the second robot arm in the second running shape in a planar view is smaller than the width direction size of the overall shape of the first robot arm and the second robot arm in the first running shape in a planar view.
9. A mobile body as described in claim 8, wherein the control device, in the shape search, determines whether the shape of the robot arm at each position on the path should be set to the first running shape or the second running shape based on environmental information surrounding each position.
10. A mobile body as described in claim 9, wherein the control device, in the shape search, sets the second running shape when an object is present within a predetermined range around each position on the route, and sets the first running shape when an object is not present within the range around each position on the route.
11. A mobile body according to claim 8, wherein the control device, in the shape search, sets the second running shape at a position on the route where the expanded attitude is set.
12. A method for controlling a moving body that causes the moving body to move autonomously, the method comprising: searching for a path for the moving body without taking into account the attitude of the moving body; and setting the attitude of the moving body at each position on the searched path based on environmental information surrounding each position.
13. A control program for a mobile body for causing the mobile body to move autonomously, the program causing a computer to realize the functions of searching for a path for the mobile body without taking into account the attitude of the mobile body, and setting the attitude of the mobile body at each position on the searched path based on environmental information surrounding each position.
Citation Information
Patent Citations
Robot device, and robot remotely operating system
JP2003251581A
Moving device, its control system, control program, and supervision system
JP2008149436A
Moving device
JP2015104788A
Information processing apparatus, information processing method, and program
JP2020079997A
Mobile object guidance control device and guidance control system
WO2021005685A1