WO2022259600A1 - 情報処理装置、情報処理システム、および情報処理方法、並びにプログラム - Google Patents

情報処理装置、情報処理システム、および情報処理方法、並びにプログラム Download PDF

Info

Publication number
WO2022259600A1
WO2022259600A1 PCT/JP2022/003020 JP2022003020W WO2022259600A1 WO 2022259600 A1 WO2022259600 A1 WO 2022259600A1 JP 2022003020 W JP2022003020 W JP 2022003020W WO 2022259600 A1 WO2022259600 A1 WO 2022259600A1
Authority
WO
WIPO (PCT)
Prior art keywords
robot
work
approach area
obstacle
information
Prior art date
Application number
PCT/JP2022/003020
Other languages
English (en)
French (fr)
Inventor
洋 宮川
Original Assignee
ソニーグループ株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ソニーグループ株式会社 filed Critical ソニーグループ株式会社
Priority to CN202280039698.0A priority Critical patent/CN117412838A/zh
Publication of WO2022259600A1 publication Critical patent/WO2022259600A1/ja

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J13/00Controls for manipulators
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J5/00Manipulators mounted on wheels or on carriages
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/02Control of position or course in two dimensions

Definitions

  • the present disclosure relates to an information processing device, an information processing system, an information processing method, and a program. Specifically, the present invention relates to an information processing device, an information processing system, an information processing method, and a program for controlling a robot to perform a predetermined action.
  • processing performed by the robot there are various types of processing performed by the robot, but one example is the movement and work of performing work a at a certain work position A, then moving to the next work position B, and performing work b at work position B.
  • a mobile manipulator as a robot equipped with a manipulator consisting of a working hand portion and an arm portion on a moving body.
  • the mobile manipulator can work in various work areas by moving the mobile body.
  • the robot When the robot performs work at each work position while moving between a plurality of work positions, the robot positions where the planned work can be performed at each of work positions A and B are confirmed in advance, and furthermore, these work positions are separated from each other. It is necessary to define routes for safe movement. For example, the moving part of the mobile manipulator cannot move forward due to obstacles, and the hand part cannot reach the work target to perform the intended work.
  • Patent Document 1 Japanese Patent No. 66418064 discloses a technique for solving such problems.
  • This Patent Document 1 discloses a configuration in which a workable area for an object to be worked is calculated for each work position where the robot works before starting work by the robot, and the robot is moved to each workable area to perform the work. disclosed.
  • the present disclosure has been made in view of the above problems, for example, and even if a new obstacle is placed in a previously calculated workable area, the new workable area can be efficiently created in consideration of the obstacle. It is an object of the present invention to provide an information processing device, an information processing system, an information processing method, and a program that enable a robot to perform a predetermined work by creating a program.
  • a first aspect of the present disclosure includes: a difference obstacle detection unit that detects a difference obstacle corresponding to a difference from obstacles recorded on the predefined map based on information from a sensor that acquires information about the running environment of the robot; modifying the preset approach area, which is the area recorded on the predefined map and which is determined to be executable by the robot without contacting the obstacle, in consideration of the difference obstacle; having an approach region correction unit that generates a corrected approach region;
  • the approach area correction unit an information processing device that determines whether or not the robot can work without contacting the difference obstacle with respect to sampling points set inside the preset approach area, and generates the modified approach area; be.
  • a second aspect of the present disclosure is An information processing system having a user terminal and an information processing device attached to a robot,
  • the user terminal is A predefined map is generated and attached to the robot, which includes locations of obstacles in the robot's running environment and preset approach areas determined to allow the robot to perform work without contacting the obstacles.
  • the information processing device attached to the robot, Based on the information of the sensor that acquires the running environment information of the robot, a difference obstacle detection unit that detects a difference obstacle corresponding to a difference from obstacles recorded on the predefined map input from the user terminal; modifying the preset approach area, which is the area recorded on the predefined map and which is determined to be executable by the robot without contacting the obstacle, in consideration of the difference obstacle; having an approach region correction unit that generates a corrected approach region; The approach area correction unit An information processing system that determines whether or not the robot can work without contacting the difference obstacle with respect to sampling points set inside the preset approach area, and generates the corrected approach area. be.
  • a third aspect of the present disclosure is An information processing method executed in an information processing device, a difference obstacle detection step in which the difference obstacle detection unit detects a difference obstacle corresponding to a difference from the obstacle recorded in the predefined map based on the information of the sensor that acquires the traveling environment information of the robot;
  • the approach area correction unit is an area recorded on the predefined map, and determines a preset approach area that is determined to be capable of being performed by the robot without contacting an obstacle, by using the difference obstacle.
  • the approach region correction step includes: Information representing a step of determining whether or not the robot can work without contacting the difference obstacle with respect to the sampling points set inside the preset approach area, and generating the modified approach area. in the processing method.
  • a fourth aspect of the present disclosure is An information processing method executed in an information processing system having a user terminal and an information processing device attached to a robot,
  • the user terminal A predefined map is generated and attached to the robot, which includes locations of obstacles in the robot's running environment and preset approach areas determined to allow the robot to perform work without contacting the obstacles.
  • the information processing device attached to the robot, Based on the information of the sensor that acquires the running environment information of the robot, difference obstacle detection processing for detecting a difference obstacle corresponding to a difference from obstacles recorded on the predefined map input from the user terminal; modifying the preset approach area, which is the area recorded on the predefined map and which is determined to be executable by the robot without contacting the obstacle, in consideration of the difference obstacle; Execute approach area correction processing for generating a correction approach area, In the approach area correction process, An information processing method for generating the corrected approach area by determining whether the robot can work without contacting the difference obstacle with respect to the sampling points set inside the preset approach area. be.
  • a fifth aspect of the present disclosure is A program for executing information processing in an information processing device, a differential obstacle detection step of causing the differential obstacle detection unit to detect a differential obstacle corresponding to a difference from the obstacle recorded on the predefined map, based on the information of the sensor that acquires the traveling environment information of the robot;
  • the approach area correcting unit changes the preset approach area, which is the area recorded on the predefined map and which is determined to be able to perform the work by the robot without contacting the obstacle, to the difference obstacle.
  • the program determines whether or not the robot can work without contacting the difference obstacle with respect to the sampling points set inside the preset approach area, and generates the corrected approach area.
  • the program of the present disclosure is, for example, a program that can be provided in a computer-readable format to an information processing device or computer system capable of executing various program codes via a storage medium or communication medium.
  • processing according to the program is realized on the information processing device or computer system.
  • a system is a logical collective configuration of a plurality of devices, and the devices of each configuration are not limited to being in the same housing.
  • the approach area defined as the work area of the robot is changed.
  • a device and method that can be corrected quickly are realized.
  • a difference obstacle detection unit that detects a difference obstacle corresponding to a difference from obstacles recorded on the predefined map, based on information from a sensor that acquires the robot's running environment information;
  • a modified approach area is obtained by modifying a preset approach area, which is an area recorded on a predefined map and determined to be able to perform work by a robot without contacting an obstacle, in consideration of a differential obstacle. It has a generating approach region corrector.
  • the approach area correction unit generates a corrected approach area by determining whether or not the robot can work without contacting the difference obstacle with respect to the sampling points set inside the preset approach area.
  • FIG. 2 is a diagram illustrating an example of a predefined map and a movement and work sequence of a robot using the predefined map
  • FIG. 5 is a diagram illustrating an example of an "obstacle map" generated by an obstacle map creation unit and an "integrated environment map” generated by an environment map integration unit
  • FIG. 2 is a diagram illustrating a configuration example of a user terminal
  • FIG. 4 is a diagram illustrating an example of information for generating work definition data that a user inputs to a user terminal;
  • FIG. 4 is a diagram illustrating a specific example of a “predefined map” generated by a work definition data management unit together with an approach area generation unit and a predefined map generation unit;
  • FIG. 5 is a diagram illustrating a specific example of "work sequence information" generated by a work definition data management unit;
  • FIG. 4 is a diagram for explaining a specific example of a motion image of a robot according to a work sequence;
  • FIG. 5 is a diagram illustrating a specific example of "work movement information" generated by a work definition data management unit;
  • FIG. 7 is a diagram illustrating a specific example of approach area generation processing executed by an approach area generation unit;
  • FIG. 4 is a diagram illustrating a specific example of a “predefined map” generated by a work definition data management unit together with an approach area generation unit and a predefined map generation unit;
  • FIG. 5 is
  • FIG. 9 is a diagram illustrating a specific example of an approach area determined by determination processing of each sampling point;
  • FIG. 9 is a diagram showing a flowchart describing an example of a processing sequence of approach area generation processing executed by an approach area generation unit of a user terminal;
  • FIG. 11 is a diagram illustrating a specific example of processing executed by an approach area generation unit of a user terminal;
  • FIG. 11 is a diagram illustrating a specific example of processing executed by an approach area generation unit of a user terminal;
  • FIG. 11 is a diagram illustrating a specific example of processing executed by an approach area generation unit of a user terminal;
  • FIG. 11 is a diagram illustrating a specific example of processing executed by an approach area generation unit of a user terminal;
  • FIG. 11 is a diagram illustrating a specific example of processing executed by an approach area generation unit of a user terminal;
  • FIG. 9 is a diagram showing a specific example of an approach area determined by determination processing of each sampling point;
  • FIG. 9 is a diagram
  • FIG. 11 is a diagram illustrating a specific example of processing executed by an approach area generation unit of a user terminal;
  • FIG. 11 is a diagram illustrating a specific example of processing executed by an approach area generation unit of a user terminal;
  • FIG. 4 is a diagram for explaining a specific example of a motion image of a robot according to a work sequence;
  • FIG. 11 is a diagram illustrating a specific example in which a preset approach area on a "predefined map" becomes an area where work cannot be performed when a "difference obstacle (new obstacle)" is detected;
  • FIG. 10 is a diagram illustrating a specific example of correction of an approach area executed by an approach area correction unit;
  • FIG. 10 is a diagram illustrating a specific example of correction of an approach area executed by an approach area correction unit;
  • FIG. 10 is a diagram illustrating a specific example of correction of an approach area executed by an approach area correction unit;
  • FIG. 10 is a diagram showing a flowchart describing a sequence of approach area correction processing executed by an approach area correction unit;
  • FIG. 10 is a diagram illustrating a specific example of correction of an approach area executed by an approach area correction unit;
  • FIG. 10 is a diagram illustrating a specific example of correction of an approach area executed by an approach area correction unit;
  • FIG. 5 is a diagram illustrating a specific example of an operation example of a robot when executing work according to a work sequence; It is a figure explaining the hardware structural example of the information processing apparatus of this indication.
  • An information processing system that executes the processing of the present disclosure is a system having a robot 10 and a user terminal 30 operated by a user 20, as shown in FIG.
  • the robot 10 has, for example, wheels and the like, and has a moving part 11 that runs and moves on the floor, an arm part 12 and a hand part 13 that operate an object to be worked on. That is, it is a mobile manipulator type robot in which a manipulator consisting of an arm portion 12 and a hand portion 13 for working is mounted on a moving portion 11 .
  • the user terminal 30 is used by the user of the robot 10 to input information about the work to be performed by the robot 10 and the environment (such as the structure of the room) in which the robot 10 is used.
  • the user terminal 10 can be used to instruct the robot to start and stop work, and to display the state of the robot.
  • the user terminal 30 can be configured by various information processing devices such as a tablet terminal, a smartphone, and a PC.
  • the robot 10 and the user terminal 30 are configured to be communicable.
  • the robot 10 incorporates an information processing device for controlling the robot 10 and communicating with the outside.
  • an information processing device 100 is incorporated inside the robot 10 .
  • the information processing device 100 is incorporated inside the robot 10 .
  • a configuration example of the information processing apparatus 100 will be described with reference to FIG.
  • the information processing apparatus 100 includes a sensor 101, a self-position estimation unit 102, an obstacle map creation unit 103, a work definition data management unit 104, a predefined map management unit 105, a difference obstacle detection unit 106, Approach area correction unit 107, environment map integration unit 108, communication IIF 111, robot operation UI 112, robot control unit 113, sequence control unit 114, moving unit path planning unit 121, moving unit control unit 122, robot arm path planning unit 123, robot It has an arm controller 124 .
  • the sensor 101 is a sensor for detecting the surrounding environment such as obstacles around the robot, and is configured by, for example, a camera or LiDAR (Light Detection and Ranging). Note that the sensor 101 is not limited to a camera and LiDAR, and may be configured to include these other sensors. For example, a configuration including a ToF sensor, ultrasonic sensor, radar, sonar, or the like may be used.
  • the self-position estimation unit 102 estimates the current position of the robot 10 using information obtained from the sensor 101 and the like. Note that the self-position estimation processing by the self-position estimation unit 102 may be executed as processing using information obtained from the sensor 101, information such as the IMU and wheel rotation angles, information from an external camera, and the like.
  • the self-position calculation unit 102 performs self-position estimation using, for example, SLAM (simultaneous localization and mapping) processing.
  • SLAM processing captures images (moving images) with a camera and analyzes the trajectories of feature points included in a plurality of captured images, thereby estimating the three-dimensional positions of feature points and determining the position and orientation of the camera (self). It is a process of estimating (localizing) the , and it is possible to create (mapping) a map of the surroundings (environmental map) using the three-dimensional position information of the feature points.
  • the obstacle map creation unit 103 uses the surrounding information obtained by the sensor 101 and the current position information of the robot 10 calculated by the self-position estimation unit 102 to determine the layout position of obstacles existing around the robot 10 .
  • the obstacle map creation unit 103 creates an "obstacle map” such as an occupancy grid map.
  • the occupancy grid map is a map in which probability values of obstacles existing in each section (grid) defined by the grid are set.
  • the robot 10 can safely run without colliding with obstacles by selecting a section (grid) with a low probability that an obstacle exists among the sections of the occupancy grid map (grid map) as a running route. can be done.
  • the predefined map management unit 105 acquires the "predefined map” from the work definition data management unit 104, and applies the acquired "predefined map” to the difference obstacle detection unit 106, the approach area correction unit 107, and the environment map integration unit 108. provide to
  • the work definition data managed by the work definition data management unit 104 includes the following data. (1) predefined map (2) work sequence information (3) work movement information Details of these data will be described later.
  • the "predefined map” refers to the positions of obstacles in the environment in which the robot 10 travels, and the robot 10 that can drive the arm unit 12 and the hand unit 13 in the work area to safely execute the work. It is a map that defines an "approach area” that is a workable area.
  • the "predefined map” is a map that is created before the robot 10 starts running, that is, in advance.
  • the “predefined map” is created, for example, by the user 20 using the user terminal 30 and transmitted from the user terminal 30 to the information processing device 100 of the robot 10 .
  • Transmission data from the user terminal 30 is input to the work definition data management unit 104 via the communication IF 111 and the robot control unit 113, and can be accessed by the storage unit in the work definition data management unit 104 or by the work definition data management unit 104. stored in a storage unit.
  • the “predefined map” may be input by the user 20 directly via the robot operation UI 112 .
  • FIG. 4(1a) An example of the "predefined map” is shown in FIG. 4(1a).
  • two obstacles and a “preset approach area” set near each obstacle are recorded in the "predefined map”.
  • the "approach area” recorded in the "predefined map” is called the "preset approach area”.
  • FIG. 4(1b) is a diagram showing an example of the movement and work sequence of the robot 10 using the "predefined map" shown in FIG. 4(1a).
  • the robot 10 starts moving from the start point (S), and when it reaches the "preset approach area AX", it performs work on the work target X within the "preset approach area AX". For example, work such as gripping processing and moving processing of the work target X is executed.
  • the robot 10 moves to the next work area. That is, it moves to the "preset approach area AY" recorded in the "predefined map”.
  • the "preset approach area AY” work is performed on the work target Y within the "preset approach area AY". For example, work such as gripping processing and moving processing of the work target Y is executed. After that, it moves to the goal point (G) and ends the processing.
  • the "approach area” is an area in which the robot 10 drives the arm unit 12 and the hand unit 13 to perform work
  • the "approach area” recorded in the "predefined map” is the "preset area”. called the “approach area”.
  • the robot 10 moves to the "preset approach area AX” by movement processing using the moving unit 11, and the arm unit 12 and the hand unit move in the "preset approach area AX”. 13 is driven to perform work such as gripping one work target X, for example. After that, it moves to the "preset approach area AY", and another work such as gripping the work object Y is performed in this "preset approach area AY".
  • the "approach area” is an area defined as an area in which the robot 10 can perform a predetermined work without colliding with or contacting an obstacle.
  • a “preset approach area” which is an area in which the robot 10 can perform a scheduled work without colliding or contacting an obstacle, is recorded.
  • the predefined map management unit 105 acquires the "predefined map” from the work definition data management unit 104, and uses the acquired “predefined map” as the difference obstacle detection unit 106, the approach area correction unit 107, and the difference obstacle detection unit 106.
  • the environmental map integration unit 108 Provided to the environmental map integration unit 108 .
  • the "predefined map” it is determined that the positions of obstacles in the environment in which the robot 10 travels, and that the robot 10 can drive the arm section 12 and the hand section 13 in the work area to safely execute the work.
  • a "preset approach area" which is a workable area, is recorded.
  • the "predefined map” is a map created before the robot 10 travels, and if a new obstacle is placed after the "predefined map” is created, even within the "preset approach area", A case may occur in which the robot 10 cannot perform the work.
  • the "obstacle map" created by the obstacle map creation unit 103 described above includes the surrounding information obtained by the sensor 101 of the robot 10 and the current position information of the robot 10 calculated by the self-position estimation unit 102. , and includes the latest obstacle information around the robot 10 .
  • the difference obstacle detection unit 106 compares the "predefined map” created in advance with the "obstacle map” containing the latest obstacle information around the robot 10, and detects new obstacles that do not exist in the "predefined map". Obstacles are detected as “differential obstacles”.
  • the approach area correction unit 107 inputs the following information. (a) "predefined map” from the predefined map management unit 105; (b) “difference obstacle” information, which is a new obstacle that does not exist in the "predefined map” detected by the difference obstacle detection unit 106; The approach area correction unit 107 uses these pieces of input information to perform correction processing of the "preset approach area” defined on the "predefined map”. Specifically, a "correction approach area” is generated in consideration of a "difference obstacle” that is a new obstacle that does not exist in the "predefined map” detected by the difference obstacle detection unit 106.
  • the environment map integration unit 108 inputs the following information. (a) "predefined map” from the predefined map management unit 105; (b) “Obstacle map” from the obstacle map creation unit 103; (c) "Corrected approach area information” and “difference obstacle information” from the approach area correction unit 107
  • the environment map integration unit 108 creates an "integrated environment map” using these pieces of input information. In other words, the "integrated environment map” that records the latest obstacle positions and the "corrected approach area” that is the "preset approach area” recorded on the "predefined map” based on the latest obstacle positions is recorded. create.
  • FIG. 5(2a) is a diagram showing an example of the "obstacle map” generated by the obstacle map creation unit 103.
  • the "obstacle map” shown in FIG. 5(2a) is a map of the same location as the "predefined map” described above with reference to FIG. 4(1a).
  • the "predefined map” described with reference to FIG. 4(1a) is a map created before the robot 10 runs, while the "obstacle map” shown in FIG. It is a map that reflects the latest obstacle positions created based on information acquired by sensors.
  • the "obstacle map” shown in FIG. 5(2a) includes new “difference obstacles” that are not included in the "predefined map” previously described with reference to FIG. 4(1a). This "difference obstacle” is an obstacle that did not exist when the "predefined map” was created, and is an obstacle that was newly detected when the "obstacle map” was created.
  • the "preset approach area” which is the area in which the robot 10 can work, is recorded.
  • the 'preset approach region' where we are, is the region that does not take into account the existence of new 'differential obstacles'.
  • the environment map integration unit 108 corrects the "preset approach area” recorded in the “predefined map” in consideration of the "difference obstacle (new obstacle)", and the "corrected approach area” recorded in the " create an integrated environmental map. That is, an "integrated environment map” as shown in FIG. 5(2b) is created.
  • the environment map integration unit 108 (a) "predefined map” from the predefined map management unit 105; (b) “Obstacle map” from the obstacle map creation unit 103; (c) "Corrected approach area information” and “difference obstacle information” from the approach area correction unit 107 "Integrated environment map” that records “corrected approach area” which is the “preset approach area” recorded on the “predefined map” and corrected based on the latest obstacle positions using these input information, That is, an "integrated environment map” as shown in FIG. 5(2b) is created.
  • the sequence control unit 114 moves the moving unit 11, the arm unit 12, and the hand unit 13 of the robot 10 based on the work sequence defined in the work definition data, manages their progress, and performs sequence control.
  • the moving part path planning part 121 moves the moving part 11 of the robot 10 to the indicated position according to the instruction from the sequence control part 114 .
  • the movement unit route planning unit 121 determines the movement route of the robot 10 instructed by the sequence control unit 114.
  • Route information (travel route information) that enables travel while avoiding obstacles is generated for the waypoints above and the approach area, which is the workable area at each work position. output to
  • the environment map integration unit 108 successively updates the "integrated environment map” when the sensor 101 detects a new obstacle while the robot 10 is running. That is, the "integrated environment map” recording the new obstacle and the “corrected approach area” corrected according to the position of the new obstacle is updated.
  • the mobile unit route planning unit 121 updates the route information (driving route information) using the latest updated "integrated environment map”. and outputs the updated route information to the moving body control unit 122 .
  • the mobile object control unit 122 generates route information (travel route information) based on the route information (travel route information) generated by the mobile object route planning unit 121 and the self-position of the robot 10 estimated by the self-position estimation unit 102.
  • the moving part 11 of the robot is controlled so as to move the robot 10 according to. For example, it controls a motor driver that drives the wheels of the moving unit 11 .
  • the robot arm path planning unit 123 plans the path (trajectory) of the arm unit 12 and the hand unit 13 of the robot 10 for performing the instructed work according to the instruction from the sequence control unit 114, and generates the generated path (trajectory). is output to the robot arm control unit 124 .
  • the robot arm control unit 124 controls the robot so that the arm unit 12 and the hand unit 13 of the robot 10 move using the paths (trajectories) of the arm unit 12 and the hand unit 13 of the robot 10 generated by the robot arm path planning unit 123 . 10 and the joints of the hand portion 13, etc., are driven. For example, it controls a motor driver for the arm part of the robot 10 and the joints of the hand part 13 .
  • the communication IF 111 communicates with an external device, for example, the user terminal 30 , and receives work definition data created by the user 20 on the user terminal 30 and robot operation information input from the user terminal 30 .
  • the state of the robot 10, the progress of work of the robot 10, and the like may be transmitted to the user terminal 30.
  • the robot operation UI 112 is a user interface configured by a touch panel or the like mounted on the main body of the robot 10 .
  • the status of the robot 10, a list of work definition data received by the robot 10 from the outside, etc. are displayed, and instructions such as selection of work and start/stop of work are input. Also, the progress of the work of the robot 10 may be displayed.
  • the robot control unit 113 inputs instruction data input from an external device such as the user terminal 30 via the robot operation UI 112 or the communication I/F 111, and sends necessary information to the work definition data management unit 104 and the sequence control unit 114. Transfer processing and control processing of the entire robot 10 are executed.
  • the difference obstacle detection unit 106 detects new obstacles that are not on the "predefined map", and the environment map integration unit 108 considers the new obstacles to create the "corrected approach area”. was described as generating an "integrated environment map" that records
  • the difference obstacle detection unit 106 may detect not only new obstacles that are not on the "predefined map”, but also movement of existing obstacles that are recorded on the "predefined map", for example.
  • the approach area correction unit 107 determines the "corrected approach area” by considering not only the new obstacles but also the movement positions of the existing obstacles.
  • the environment map integration unit 108 generates an "integrated environment map” recording a "corrected approach area” corrected in consideration of not only the new obstacles but also the movement positions of the existing obstacles.
  • the differential obstacle detection unit 106 may be configured to detect changes in the position of the work target.
  • the approach area correction unit 107 determines the "correction approach area” in consideration of the positional change of the work object.
  • the environment map integration unit 108 generates an "integrated environment map” recording the "corrected approach area” corrected in consideration of the position change of the work object.
  • the difference obstacle detection unit 106 detects not only obstacles but also various environmental changes different from the “predefined map”, and the approach area correction unit 107 detects various environmental changes detected by the difference obstacle detection unit. It is possible to determine a "correction approach area” by considering environmental changes.
  • the environment map integration unit 108 generates an "integrated environment map” that records "corrected approach areas” that have been corrected in consideration of various environmental changes.
  • the user terminal 30 is composed of various information processing devices such as a tablet terminal, a smartphone, and a PC.
  • the user terminal 30 has a function as a UI for operating the robot 10 and a function as a UI for creating work definition data that defines the work to be performed by the robot 10 .
  • the user terminal 30 includes a user interface (UI) 201, a user interface (UI) control unit 202, a robot operation information management unit 203, a work definition data management unit 204, an approach area generation unit 205, a predefined It has a map generation unit 206 , a work definition data storage unit 207 and a communication IF 208 .
  • a user interface (UI) 201 is configured by, for example, a touch panel type display unit capable of performing input processing of user operation information to the user terminal 30 and data display processing. Various data are displayed under the control of the user interface (UI) control unit 202 .
  • the user 20 can also input various information that can be used to control the robot 10, such as work sequence information and travel route information.
  • Information input by the user to the user interface (UI) 201 is output to the user interface (UI) control unit 202 via the user interface (UI) 201 .
  • a user interface (UI) control unit 202 switches contents to be displayed on the user interface (UI) 201 according to information input by the user 20 .
  • the user interface (UI) control unit 202 also outputs information input by the user 20 to the user interface (UI) 201 to the robot operation information management unit 203 and the work definition data management unit 204 .
  • the robot operation information management unit 203 stores, for example, the status of the robot 10 input from the information processing device 100 of the robot 10 via the communication IF 208, a list of work definition data received by the robot 10, progress of the work in progress, and so on. It acquires the situation and the like, generates display content for the user interface (UI) 201 , and outputs it to the user interface (UI) control unit 202 .
  • UI user interface
  • the robot operation information management unit 203 transmits the user input information to the robot 10 via the communication IF 208 .
  • the user input information is, for example, selection information of work to be executed by the robot 10 and instruction data such as start/stop of work.
  • the work definition data management unit 204 generates a work definition data creation UI and outputs it to the user interface (UI) 201 via the user interface (UI) control unit 202, and the user 20 creates the work definition data creation UI.
  • UI user interface
  • UI control unit 202 user interface
  • the user 20 creates the work definition data creation UI.
  • the work definition data generation information input by the user 20 via the user interface (UI) 201 is, for example, information as shown in FIG. That is, the following information.
  • Obstacle information Setting information for obstacles that exist in the space where the robot works
  • Waypoint information Setting information for waypoints that the robot passes through when moving
  • Work target information Robot works
  • Work movement information Setting information of the movement of the arm and hand necessary for the work performed by the robot on the work target object
  • Work sequence information Robot Setting information about a series of flows such as movement of
  • the work definition data management unit 204 provides a user interface (UI) through the user interface (UI) control unit 202, which can be used for inputting the work definition data generation information (1) to (5) above, for example. ) 201.
  • UI user interface
  • UI control unit 202 which can be used for inputting the work definition data generation information (1) to (5) above, for example.
  • the work definition data management unit 204 generates work definition data together with the approach area generation unit 205 and the predefined map generation unit 206 in accordance with the information input by the user via the user interface (UI) 201, and the generated work definition The data is stored in the work definition data storage unit and transmitted to the information processing device 100 of the robot 10 via the communication IF 208 .
  • the work definition data generated by the work definition data management unit 204 together with the approach area generation unit 205 and the predefined map generation unit 206 include the following data.
  • predefined map (2) work sequence information (3) work movement information Details of these data will be described later.
  • the approach area generation unit 205 inputs user input information necessary for generating approach areas via the work definition data management unit 204, and determines a "preset approach area" corresponding to each work area.
  • the predefined map generation unit 206 generates a "predefined map”.
  • the predefined map generation unit 206 inputs information necessary for generating the "predefined map” via the work definition data management unit 204 to generate the "predefined map”. For example, by inputting obstacle position information and waypoint information included in user setting information input via the user interface (UI) 201, and "preset approach area” information generated by the approach area generation unit 205, Generate a "predefined map".
  • the work definition data management unit 204 stores the user setting information input via the user interface (UI) 201, that is, the user setting information described with reference to FIG. is stored in the work definition data storage unit 207 and transmitted to the information processing device 100 of the robot 10 via the communication IF 208 .
  • UI user interface
  • generation of the approach area and generation of the "predefined map" are executed within the user terminal 30, but these processes can also be performed by requesting an external server via the communication IF 208. good.
  • the work definition data storage unit 207 stores work definition data generated by the work definition data management unit 204 according to instructions from the work definition data management unit 204 .
  • the work definition data includes the user setting information described with reference to FIG. 7 and the “predefined map” generated by the predefined map generation unit 206 .
  • the work definition data storage unit 207 is configured by, for example, a non-volatile storage unit such as flash memory.
  • the communication IF 208 communicates with the information processing device 100 of the robot 10, and transmits work definition data created by the user 20 on the user terminal 30, input information and operation information performed using the UI 201 on the user terminal 30. . It also receives robot status information, work progress information, and other information from the information processing device 100 of the robot 10 . The received information is output and displayed on the user interface (UI) 201 via the robot operation information management unit 203 .
  • UI user interface
  • the configuration shown in FIG. 6 is configured within the information processing device 100 of the robot 10 .
  • the process of the present disclosure is executed by the robot 10 alone without using the user terminal 30 .
  • the work definition data generated by the work definition data management unit 204 together with the approach area generation unit 205 and the predefined map generation unit 206 include the following data.
  • predefined map (2) work sequence information (3) work movement information Details of these data will be described below.
  • FIG. 8 is a two-dimensional (2D) map, it may be a three-dimensional (3D) map.
  • a lattice map such as a grid map or a voxel map may also be used.
  • a vector map having only vertex information of a shape surrounding each area may be used.
  • the "predefined map” includes information on obstacles in the work space of the robot 10 and the "preset approach area", which is a work area in which the work instructed by the user can be executed without contacting any obstacles. is a map on which is recorded. In addition, information on waypoints of the robot designated by the user, work target information, and the like are also recorded.
  • waypoints A to G are recorded in the "predefined map". These waypoints A to G are information input by the user, and are information specifying that the robot 10 should move in the order of A to G.
  • FIG. The waypoint A is the start position, and the waypoint G is the goal position. Waypoints are set to specify the route that the robot should take when moving in space. It is set in a movable area (not an obstacle area) on the map.
  • work target information is recorded in the "predefined map".
  • a work target X, a work target Y, and these two work targets are recorded.
  • the map shown in FIG. 8 shows cylindrical figures as the work objects X and Y, but the attribute data attached to the map includes position information, area information, three-dimensional shape information, etc. of each work object. Recorded.
  • the work target position information and area information are information indicating the position and area of an object on which the robot 10 works using the arm unit 12 and the hand unit 13 .
  • the range in which the work objects are placed is recorded as area information.
  • An obstacle is an obstacle that the robot 10 may come into contact with or collide with.
  • the map shown in FIG. 8 shows planar figures as obstacles, the attribute data attached to the map records the position, area information, three-dimensional shape information, etc. of each obstacle.
  • the obstacle area is an area that only the moving part 11 of the robot 10 cannot enter, and an area that the arm part 12 of the robot 10 can enter. However, if necessary, the arm 12 of the robot 10 can be set as an obstacle area even if it is an area that can be entered.
  • the "approach area” is defined as a work area in which the work instructed by the user can be performed without contacting an obstacle, and is set individually for each work target X, Y.
  • the "approach area” defined in the "predefined map” is the "preset approach area”. As described above with reference to FIG. 5 and the like, the “preset approach area” may be corrected using the “obstacle map” generated using sensor detection information of the robot 10 .
  • the approach area shown in FIG. 8 has an elliptical shape, it may have a more complicated shape that reflects the kinematics of the robot arm. Also, if sampling points are generated when generating the approach area, information about the sampling points may be held together. A method of generating an approach area using sampling points will be described later.
  • the work definition data management unit 204 stores "work sequence information" as work definition data in accordance with user input information, that is, "(5) work sequence information" in the user input information described with reference to FIG. to generate
  • the "work sequence information" generated by the work definition data management unit 204 is information in which movement processing and work to be executed by the robot 10 are arranged in chronological order. Sequence No. in chronological order. , movement processing and work information to be executed by the robot 10 are recorded.
  • FIG. 10 A motion image of the robot following this work sequence is shown in FIG.
  • the robot 10 moves from the waypoint A to the waypoint B and enters the approach area AX corresponding to the work target X.
  • the robot 10 performs the scheduled work (P) on the work target X within the approach area AX.
  • the scheduled work (P) passes through the waypoints C and D and enters the approach area AY corresponding to the work target Y.
  • the robot 10 performs the scheduled work (Q) on the work target Y within the approach area AY.
  • the route points E, F, and G are sequentially moved, and the sequence ends.
  • the operation sequence of the robot 10 according to the work sequence shown in FIG. 9 is as follows.
  • the work definition data management unit 204 stores "work movement information" as work definition data in accordance with the user's input information, that is, "(4) work movement information" in the user's input information described above with reference to FIG. to generate
  • the "work motion information” is setting information of the motion of the arm section and the hand section necessary for the work performed by the robot on the work target object.
  • FIG. 11 shows a specific example of "work movement information" generated by the work definition data management unit 204. As shown in FIG.
  • the “work motion information” generated by the work definition data management unit 204 indicates that when the robot 10 reaches the approach area and performs the work on the work target object, the robot 10 performs the scheduled work.
  • This data describes the trajectory of the arm portion 12 and the direction and state (open/close) of the hand portion 13 .
  • the trajectory of the arm section 12 of the robot 10 and the orientation and state (Open/Close) of the hand section 13 for performing the work P for the work target X and the work Q for the work target Y described above with reference to FIG. describe.
  • the information processing device 100 of the robot 10 causes the robot 10 to perform a predetermined operation, that is, movement processing and work processing, according to the "work definition data" including the data (1) to (3) received from the user terminal 30. .
  • work definition data i.e. (1) Predefined map (2) Work sequence information (3) Work movement information A process of generating "work definition data” including these data is executed in the user terminal 30 using user input information.
  • the user terminal 30 performs the following information generation processing when generating the “work definition data”.
  • Obstacle information generation processing (2) Work target information generation processing (3) Waypoint information generation processing (4) Work movement information generation processing (5) Approach area information generation fixed processing (6) Work Sequence Information Generation Processing Specific examples of the generation processing of each of these pieces of information will be described below in order.
  • the user 20 sets the screen of the user terminal 30 to the obstacle setting mode, designates the coordinates indicating the position of the obstacle on the screen, and draws a shape such as a rectangle, cuboid, or circle corresponding to the shape of the obstacle.
  • the robot 10 is moved in advance in the work space, and the "obstacle map" generated by the obstacle map creation unit 103 of the robot 10 at that time is transferred to the user terminal 30. Obstacles recorded in the "map” may be extracted and used as obstacle information.
  • the user 20 sets the screen of the user terminal 30 to the work object setting mode, and designates the coordinates indicating the position of the work object on the screen.
  • the coordinates indicating the position of the work target designate the position of the work target that is gripped by the hand unit 13 of the robot 10 .
  • a shape such as a rectangle, cuboid, or circle corresponding to the shape of the work object may be drawn.
  • the work motion information is the data previously described with reference to FIG. That is, when the robot 10 reaches the approach area and performs the work on the work target object, the trajectory of the arm unit 12 of the robot 10 and the orientation and state (open/close) of the hand unit 13 when performing the scheduled work are described. This is the data obtained.
  • the user 20 When generating work motion information on the user terminal 30, the user 20 first sets the screen of the user terminal 30 to a work motion information input mode, and displays the work motions of the arm section 12 and the hand section 13 of the robot 10 on the screen as time-series data. Enter as
  • a work to be performed on a work target is input as time-series data of the position (TCP: Tool Center Point) of the hand unit 13 of the robot 10 .
  • the position of the hand (TCP) is the center position between the fingers in the case of a two-finger gripper.
  • TCP Tool Center Point
  • for which work object the work is to be performed is also set.
  • the work motion can be set by designating via points indicating the time-series trajectories of the hand unit 13 and the arm unit 12 in the 3D space.
  • the arm section 12 and the hand section 13 of the robot 10 may be moved on CG to take arbitrary postures, and the postures may be registered in the order of movement.
  • direct teaching is performed using the actual machine of the robot 10, the posture information of the robot 10 (the actual machine) is transferred to the user terminal 30, and the time-series trajectories of the hand unit 13 and the arm unit 12 obtained from this transferred data are indicated via Work motion information may be generated from the points.
  • the approach area is an area in which the robot 10 can perform the scheduled work on the work target without interfering (contacting) with the obstacle.
  • the user terminal 30 uses the position/region of the work target, work motion, and obstacle information input by the user 20 to perform the scheduled work on the work target without the robot 10 interfering (contacting) with the obstacle. Determine the area that can be done as the "approach area”.
  • the approach area generation process is executed in the approach area generation unit 205 of the user terminal 30 .
  • the user 20 inputs obstacle information, work target information, and work movement information via a user interface (UI) 201. After completing the input of each of these pieces of information, an approach area displayed on the user interface (UI) 201 is generated.
  • UI user interface
  • approach area generation processing is started in the approach area generation unit 205 .
  • the execution timing of the approach area generation process in the approach area generation unit 205 may be configured to be performed immediately before the work definition data generated by the user terminal 30 is stored in the work definition data storage unit 207 or immediately before it is transferred to the robot 10 .
  • FIG. 12 shows that when the robot 10 performs the work action (P) set by the user 20 on the work target X placed on an obstacle such as a desk, the robot 10 does not come into contact with the obstacle.
  • FIG. 10 is a diagram showing an example of processing when generating an “approach area AX” that is an area in which work (P) can be safely performed;
  • PosX (XposX, YposX, ZposX)
  • Position (TCP) of the hand part 13 of the robot 10 when the arm part 12 of the robot 10 is fully extended from the reference point of the moving part 11 of the robot 10 for example, the center of the axle of the rear wheels in the case of a four-wheeled vehicle
  • the approach area generation unit 205 causes the robot 10 to interfere with (contact) an obstacle while the robot 10 is positioned at each sampling point for all of the sampling points ( ⁇ ) in the approach area generation process. It is determined whether or not the scheduled work for the work target X can be executed without The approach area generation unit 205 selects only the sampling points determined to be workable by this determination processing, and determines an area defined only by the selected sampling points as the approach area.
  • sampling points are set at regular intervals in a lattice pattern, but the sampling points may be set at random.
  • the following judgment processing is performed for each.
  • (Determination process 1) Whether or not the position (TCP) of the hand unit 13 of the robot 10 can reach the position required when performing the scheduled work (P) on the work target X.
  • (Determination process 2) Whether or not the entire robot 10 (moving unit 11, arm unit 12, hand unit 13) interferes (contacts) with obstacles.
  • Determination process 1 is to arrange the robot 10 at the position of the sampling point, and then change the posture of the robot 10 and the arm part 12 so that the position (TCP) of the hand part 13 of the robot 10 reaches the position of the work target. It is calculated using science, and if it can be calculated, it is considered to have arrived.
  • (judgment process 2) the robot 10 is placed at the position of the sampling point, and when the postures of the robot 10 and the arm unit 12 calculated in (judgment process 1) are set, all surrounding obstacles interfere with each other. (contact) If there is interference (contact), the position (TCP) of the hand section 13 of the robot 10 reaches the position of the work target without interference (contact). Calculate using
  • FIG. 13 shows the approach area determined by the determination processing of each sampling point.
  • Sampling points indicated by white circles ( ⁇ ) are sampling points within the approach area. That is, among the sampling points, it is a workable sampling point where it is confirmed that a planned work operation can be performed on the work target without interfering (contacting) with an obstacle.
  • sampling points indicated by black circles ( ⁇ ) are unworkable sampling points, and are sampling points outside the approach area. That is, among the sampling points, it is an unworkable sampling point where it has been confirmed that it is impossible to execute a scheduled work operation on the work target without interfering (contacting) with an obstacle.
  • the approach area generation unit 205 determines the approach area by performing workability determination processing for each of such sampling points. A detailed example of the processing sequence of the approach region generation processing executed by the approach region generation unit 205 will be described later with reference to the flowchart shown in FIG.
  • the work sequence information is the information described above with reference to FIG. 9, and as shown in FIG. 9, is information in which movement processing and work to be executed by the robot 10 are arranged in chronological order. Sequence No. in chronological order. This is information in which movement processing and work information to be executed by the robot 10 are recorded in correspondence with the .
  • the user 20 sequentially inputs work sequences to be performed by the robot 10 to the user terminal 30 .
  • An example of setting the sequence shown in FIG. 10 described above will be described.
  • the user 20 sequentially inputs, for example, the following actions (movement, work) of the robot 10 .
  • the work definition data that is, (1) predefined map (2) work sequence information (3) work movement information Generation of "work definition data" including these data is completed.
  • the work definition data generated in the user terminal 30 is stored in the work definition data storage unit 207 of the user terminal by the user's operation or the like. 100.
  • the work definition data management unit 104 receives the work definition data via the communication IF 111 and the robot control unit 113, and stores the work definition data in the storage unit. As a result, the robot 10 is ready to start work according to the work definition data.
  • FIG. 14 is a diagram showing a flowchart explaining an example of a processing sequence of approach area generation processing executed by the approach area generation unit 205 of the user terminal 30.
  • FIG. 14 is a diagram showing a flowchart explaining an example of a processing sequence of approach area generation processing executed by the approach area generation unit 205 of the user terminal 30.
  • the process according to this flow can be executed by the approach area generation unit 205, which is the data processing unit of the user terminal 30, according to a program stored in the storage unit of the user terminal 30.
  • it can be performed as program execution processing by a processor such as a CPU having a program execution function.
  • the approach area generation unit 205 of the user terminal 30 executes processing according to the flow shown in FIG. 14 .
  • the flowchart shown in FIG. 14 shows the processing sequence of the determination processing of each sampling point and the approach area determination processing after the sampling point setting processing described above with reference to FIG. 12 is completed. That is, the process of determining whether each sampling point is a workable sampling point ( ⁇ ) within the approach area or an unworkable sampling point ( ⁇ ) outside the approach area, and the process of determining the approach area based on the judgment results.
  • 4 is a flow chart showing a sequence
  • the approach region generation unit 205 of the user terminal 30 has performed sampling point setting processing according to the processing described above with reference to FIG. 12 as preprocessing for the flow shown in FIG.
  • the radius R is the hand portion of the robot 10 when the arm portion 12 of the robot 10 is fully extended from the reference point of the moving portion 11 of the robot 10 (for example, the center of the axle of the rear wheels in a four-wheeled vehicle). It is the length corresponding to the distance R to the position of 13 (TCP).
  • Step S101 First, in step S101, the approach region generation unit 205 of the user terminal 30 selects one determination target sampling point from all sampling points within a circle X (CircleX) with a radius R.
  • circle X Circle X
  • R radius
  • step S101 shows the robot 10 and the work target X placed on an obstacle such as a desk. It is assumed that the work content specified by the user is processing for moving the work target X to the upper right as shown in the figure.
  • a reference point for example, in the case of a four-wheeled vehicle, the center of the rear wheel axle
  • is indicated by ⁇ .
  • step S101 one determination target sampling point is selected.
  • a plurality of sampling points are shown in FIG. 15, and one sampling point among them is selected as a determination target sampling point.
  • step S102 the approach region generation unit 205 rotates the robot with the robot reference point aligned with the selected determination target sampling point, and determines whether or not there is a rotation position where the robot does not come into contact with an obstacle.
  • step S102 shows a process of rotating the robot 10 with the reference point of the robot 10 aligned with the determination target sampling point selected in step S101, and determining whether or not there is a rotational position that does not come into contact with an obstacle. showing.
  • Step S103 is a branching step based on the result of determination processing in step S102.
  • step S102 determines whether or not there is a rotational position where the robot does not come into contact with an obstacle while the robot reference point is aligned with the selected sampling point to be determined. If it is determined that there is a rotational position where the robot does not come into contact with the obstacle, the determination result in step S103 becomes Yes, and the process proceeds to step S105.
  • step S103 determines that there is no rotation position where the robot does not come into contact with the obstacle. If it is determined that there is no rotation position where the robot does not come into contact with the obstacle, the determination result in step S103 is No, and the process proceeds to step S104.
  • step S103 Yes
  • the robot reference point is aligned with the judgment target sampling point, and the rotational position where the robot does not contact the obstacle is detected.
  • the determination result of step S103 becomes Yes, and it progresses to step S105.
  • step S103 no non-contact rotation position; This example is a case where the robot cannot detect the rotational position where the robot does not come into contact with the obstacle while the robot reference point is aligned with the determination target sampling point. In such a case, the determination result of step S103 becomes No, and it progresses to step S104.
  • Step S104 The process of step S104 is executed when the determination of step S103 is No, that is, when the robot reference point is aligned with the determination target sampling point and a rotational position where the robot does not contact an obstacle is not detected. .
  • step S104 the approach area generation unit 205 sets the determination target sampling points to work impossible sampling points, that is, sampling points outside the approach area.
  • Step S105 The processing in step S105 is executed when the determination in step S103 is Yes, that is, when a rotational position where the robot does not come into contact with an obstacle is detected with the robot reference point aligned with the determination target sampling point.
  • step S105 the approach area generation unit 205 determines whether or not the scheduled work can be executed at a robot rotation position that does not come into contact with the obstacle. Note that the scheduled work is acquired from the work movement information input by the user 20 .
  • step S105 A specific example of this process (step S105) will be described with reference to FIG.
  • the work instruction input by the user is to move the work target X to the upper right as shown in FIG.
  • the approach area generation unit 205 determines whether or not this work can be performed at a robot rotation position that does not come into contact with the obstacle.
  • Step S106 is a branching step based on the result of determination processing in step S105.
  • step S105 determines that the scheduled work can be executed in the determination processing in step S105, that is, in the determination processing of whether or not the scheduled work can be performed at the robot rotation position that does not come into contact with the obstacle.
  • the determination result of step S106 becomes Yes, and it progresses to step S107.
  • step S106 determines whether the scheduled work cannot be executed. If it is determined that the scheduled work cannot be executed, the determination result in step S106 is No, and the process proceeds to step S104.
  • Scheduled work can be executed at a robot rotational position that does not come in contact with obstacles.
  • the scheduled work can be executed at a robot reference point that coincides with the judgment target sampling point and at a rotational position of the robot that does not come into contact with an obstacle.
  • the determination result of step S106 becomes Yes, and it progresses to step S107.
  • This example is an example in which it is confirmed that the scheduled work cannot be executed at a robot reference point that coincides with the determination target sampling point and at a robot rotational position that does not come into contact with an obstacle. In such a case, the determination result of step S106 becomes No, and it progresses to step S104.
  • Step S104 step S104 will be described again.
  • the process of step S104 is performed even when the determination of step S103 is Yes and when the determination of step S106 is No.
  • step S103 a rotational position where the robot does not come into contact with an obstacle is detected with the robot reference point aligned with the determination target sampling point. It is also executed when it is determined in step S106 that the scheduled work cannot be executed at the robot rotation position that does not come into contact with the obstacle.
  • step S104 the approach area generation unit 205 sets the determination target sampling points to work impossible sampling points, that is, sampling points outside the approach area.
  • Step S107 On the other hand, the process of step S107 is executed when the determination of step S106 is Yes, that is, when it is determined that the scheduled work can be performed at the robot rotation position that does not come into contact with the obstacle.
  • step S107 the approach area generation unit 205 sets the determination target sampling points to workable sampling points, that is, sampling points within the approach area.
  • Step S108 The process of step S104, that is, the process of setting the determination target sampling point to the unworkable sampling point, that is, the sampling point outside the approach area, or
  • step S107 the processing of setting the determination target sampling point to the workable sampling point, that is, the sampling point in the approach area, or the processing of any of these processing is completed
  • step S108 is executed.
  • the approach region generation unit 205 determines in step S108 whether there are any unprocessed sampling points, that is, sampling points for which determination processing has not been completed. If there are unprocessed sampling points, the process returns to step S101 to process the unprocessed sampling points. On the other hand, if there is no unprocessed sampling point, the process proceeds to step S109.
  • Step S109 When the determination processing for all sampling points is completed, the approach area generation unit 205 sets an area consisting only of workable sampling points as an approach area in step S109.
  • FIG. 19 shows the approach area determined by the determination processing of each sampling point within the circular circle X (CircleX) of radius R. As shown in FIG.
  • sampling points indicated by white circles ( ⁇ ) are the sampling points within the approach area. That is, among the sampling points, it is a workable sampling point where it is confirmed that a planned work operation can be performed on the work target without interfering (contacting) with an obstacle.
  • sampling points indicated by black circles ( ⁇ ) are unworkable sampling points, and are sampling points outside the approach area. That is, among the sampling points, it is an unworkable sampling point where it has been confirmed that it is impossible to execute a scheduled work operation on the work target without interfering (contacting) with an obstacle.
  • the approach area generation unit 205 determines the approach area through work possibility determination processing for each of such sampling points.
  • the robot 10 can perform the scheduled work on the work target X, that is, according to the work motion information input by the user, without contacting or interfering (contacting) with the obstacle. Processing can be executed.
  • the approach area generation unit 205 executes processing according to the flow described with reference to FIG. 14 for each work object. That is, approach area generation processing is executed by work possibility determination processing for each sampling point.
  • FIG. 20 shows a setting example of the approach area corresponding to the work target Y shown in FIG.
  • the approach area determined by processing is shown.
  • sampling points indicated by white circles ( ⁇ ) are the sampling points within the approach area.
  • the work-ready operation that has been confirmed to be capable of performing the scheduled work operation on the work target without interfering (contacting) with the obstacle by executing the processing according to the flow described with reference to FIG. sampling points.
  • sampling points indicated by black circles ( ⁇ ) are unworkable sampling points, and are sampling points outside the approach area.
  • the approach area generation unit 205 determines the approach area through work possibility determination processing for each of such sampling points.
  • the robot 10 can perform the scheduled work on the work target Y, that is, according to the work motion information input by the user, without contacting or interfering (contacting) with the obstacle. Processing can be executed.
  • the work definition data generated in the user terminal 30 is stored in the work definition data storage unit 207 of the user terminal by the user's operation or the like. 100.
  • the work definition data management unit 104 receives the work definition data via the communication IF 111 and the robot control unit 113, and stores the work definition data in the storage unit. As a result, the robot 10 is ready to start work according to the work definition data.
  • the user 20 first inputs “work definition data” applied to the work to be executed by the robot 10 into the information processing device 100 of the robot 10 .
  • Input processing of the "work definition data" to the information processing device 100 of the robot 10 is performed via the robot operation UI 112 of the information processing device 100 having the configuration shown in FIG. Alternatively, by operating the user terminal 30 having the configuration shown in FIG.
  • the "work definition data" input to the information processing device 100 of the robot 10 includes the "work sequence information" described with reference to FIG. A processing example in the case of operating according to the work sequence information will be described.
  • an image of the motion of the robot according to the work sequence is as shown in FIG.
  • the robot 10 moves from the waypoint A to the waypoint B and enters the approach area AX corresponding to the work target X.
  • the robot 10 performs the scheduled work (P) on the work target X within the approach area AX.
  • the scheduled work (P) passes through the waypoints C and D and enters the approach area AY corresponding to the work target Y.
  • the robot 10 performs the scheduled work (Q) on the work target Y within the approach area AY.
  • the route points E, F, and G are sequentially moved, and the sequence ends.
  • the robot 10 is initially at point A in FIG.
  • the work start instruction is input to the robot control unit 113 of the information processing device 100 of the robot 10 .
  • the work start instruction input to the robot control unit 113 may be provided with information indicating the work definition data used for the work (work definition data name, ID, etc.). Information designating the work definition data to be used may be transmitted from the robot operation UI 112 or the user terminal 30 to the robot control unit 113 in advance, separately from the work start instruction.
  • the robot control unit 113 After inputting the work start instruction, the robot control unit 113 requests the work definition data management unit 104 to read out the “work definition data” specified by the user 20 .
  • the work definition data management unit 104 reads the “work definition data” specified by the user 20 from the storage unit within the information processing apparatus 100 .
  • the "work definition data” includes the following data. (1) predefined map (2) work sequence information (3) work movement information
  • the work definition data management unit 104 outputs the predefined map (map data) in the read “work definition data” to the predefined map management unit 105 . Furthermore, it outputs work sequence information and work movement information to the sequence control unit 114 . After these processes, the robot 10 can start moving according to the "work definition data".
  • the robot 10 uses the sensor 101 to continuously execute obstacle detection processing in the robot running environment.
  • the sensor 101 is a sensor for detecting the surrounding environment such as obstacles around the robot, and is configured by, for example, a camera or LiDAR (Light Detection and Ranging).
  • the obstacle map creation unit 103 Based on the information detected by the sensor 101, the obstacle map creation unit 103 analyzes the distance from the robot 10 to each obstacle, the relative positional relationship, and the shape of the obstacle. An "obstacle map" is generated using self-location information.
  • the "obstacle map” is a map showing the arrangement positions of obstacles existing around the robot 10, as described above with reference to FIG. 5(2a). is a map containing
  • the obstacle map creation unit 103 creates an "obstacle map" such as an occupancy grid map.
  • the occupancy grid map (grid map) is a map in which the probability values of obstacles existing in each section (grid) defined by the grid are set. There are also maps that classify each section (grid) as "occupied”, “empty”, “unknown”, etc.
  • the robot 10 can safely run without colliding with obstacles by selecting a section (grid) with a low probability that an obstacle exists among the sections of the occupancy grid map (grid map) as a running route. can be done.
  • the “obstacle map” generated by the obstacle map creation unit 103 is input to the differential obstacle detection unit 106 .
  • Difference obstacle detection unit 106 compares the “obstacle map” generated by obstacle map generation unit 103 with the “predefined map” included in the “work definition data” designated by user 20, and determines two maps. detect the difference between Specifically, for example, a difference obstacle (new obstacle) that exists in the "obstacle map” generated by the obstacle map creation unit 103 but is not in the "predefined map” is detected.
  • the "predefined map” shown in FIG. 4(1a) is a map created before the robot 10 travels, while is a map that reflects the latest obstacle positions created based on the information acquired by the sensor of the robot 10 .
  • the "obstacle map” shown in FIG. 5(2a) includes a "difference obstacle” which is a new obstacle not included in the "predefined map” described above with reference to FIG. 4(1a). There is a possibility that This "difference obstacle” is an obstacle that did not exist when the "predefined map” was created, and is an obstacle that was newly detected when the "obstacle map” was created.
  • the difference obstacle detection unit 106 first places, for example, an AR marker or the like at a key point (for example, the waypoint A), and the self-position estimation unit 102 detects it, so that " Align the "predefined map” and the "obstacle map”.
  • the obstacle difference detection unit 106 outputs the detected obstacle difference information to the approach area correction unit 107 .
  • the approach area correction unit 107 inputs the following information. (a) "predefined map” from the predefined map management unit 105; (b) “difference obstacle” information, which is a new obstacle that does not exist in the "predefined map” detected by the difference obstacle detection unit 106; The approach area correction unit 107 uses these pieces of input information to perform correction processing of the "preset approach area” defined on the "predefined map”. Specifically, a "correction approach area” is generated in consideration of a "difference obstacle” that is a new obstacle that does not exist in the "predefined map” detected by the difference obstacle detection unit 106.
  • the "approach area AX”, which is a preset approach area already set on the "predefined map”, is an approach area set without considering the "difference obstacle (new obstacle)".
  • the approach area correction unit 107 corrects the preset approach area already set on such a "predefined map” and generates a "corrected approach area” in consideration of the "difference obstacle”.
  • sampling points are set in the "preset approach area" already set on the "predefined map". For example, sampling points are set at equal intervals within the "preset approach area”. Note that the sampling points (workable sampling points) used to generate the "preset approach area" described above with reference to the flows of FIGS. 12, 13, and 14 may be used as they are. New sampling points may be set.
  • the approach area correction unit 107 corrects the difference obstacle (new obstacle) and interference (contact) with respect to each of the sampling points set in the "preset approach area" when the robot 10 performs the scheduled work on the work target. Check whether it occurs or not.
  • Determination process 1 Whether or not the position (TCP) of the hand unit 13 of the robot 10 can reach the position required when performing the scheduled work (P) on the work target X.
  • Determination process 2 Whether or not the entire robot 10 (moving unit 11, arm unit 12, hand unit 13) interferes (contacts) with a differential obstacle (new obstacle).
  • Determination process 1 is to arrange the robot 10 at the position of the sampling point, and then change the posture of the robot 10 and the arm part 12 so that the position (TCP) of the hand part 13 of the robot 10 reaches the position of the work target. It is calculated using science, and if it can be calculated, it is considered to have arrived.
  • (judgment processing 2) the robot 10 is placed at the position of the sampling point, and when the postures of the robot 10 and the arm unit 12 calculated in (judgment processing 1) are set, difference obstacles (new obstacles Make sure that there is no interference (contact) with objects). If there is interference (contact), the position (TCP) of the hand section 13 of the robot 10 reaches the position of the work target without interference (contact). Calculate using
  • FIG. 24 shows the modified approach area determined by the determination processing of each sampling point set in the "preset approach area”.
  • Sampling points indicated by white circles ( ⁇ ) are sampling points within the correction approach area.
  • are workable sampling points.
  • sampling points indicated by black circles ( ⁇ ) are unworkable sampling points. These were originally workable sampling points within the preset approach area, but were found to interfere (contact) with differential obstacles (new obstacles) and were changed to unworkable sampling points. be. These will be the sampling points outside the corrective approach area.
  • the approach area correction unit 107 determines a corrected approach area through work possibility determination processing for each of such sampling points. A detailed example of the processing sequence of the approach region correction processing executed by the approach region correction unit 107 will be described later with reference to the flowchart shown in FIG.
  • the approach region correction unit 107 corrects the approach region not only for the preset approach region of the predefined map, but also for the approach region correction unit 107 itself of the information processing device 100 of the robot 10 generated during the previous run. It may also be performed on the modified approach area. In this case, with respect to the new differential obstacle input from the differential obstacle detection unit 106, sampling points are placed in the corrected approach region generated last time to confirm interference (contact) with the new differential obstacle. Then, the modification approach region generated last time is further modified.
  • the approach area correction unit 107 regenerates a re-correction approach area that has been corrected in consideration of the newly generated difference obstacle for the generated correction approach area generated in the approach area correction processing executed in the past. Execute the processing to be performed. In this case, the approach area correction unit 107 determines whether or not the robot 10 can work without contacting the newly generated difference obstacle with respect to the sampling points set inside the generated corrected approach area. , to generate the re-correction approach regions.
  • the approach area correction unit 107 thus sets sampling points only within the preset approach area already set on the predefined map or the like, and determines interference (contact) with the differential obstacle for the limited sampling points. to generate a new modified approach area within the preset approach area.
  • the approach area correction unit 107 sets sampling points only within a preset approach area already set on a predefined map or the like, and Interference (contact) with a differential obstacle is determined for the obtained sampling points to generate a new corrected approach area within the preset approach area, so processing can be performed efficiently in a short period of time.
  • the environment map integration unit 108 inputs the following information. (a) "predefined map” from the predefined map management unit 105; (b) “Obstacle map” from the obstacle map creation unit 103; (c) "Corrected approach area information” and “difference obstacle information” from the approach area correction unit 107
  • the environment map integration unit 108 creates an "integrated environment map” using these pieces of input information. In other words, the "integrated environment map” that records the latest obstacle positions and the "corrected approach area” that is the "preset approach area” recorded on the "predefined map” based on the latest obstacle positions is recorded. create.
  • the "integrated environmental map” generated by the environmental map integration unit 108 is a map having the following information.
  • Obstacle information It has obstacle information of both "predefined map” and "obstacle map”.
  • Approach area information For modified preset approach area The preset approach area remains for the modified approach area and for the unmodified preset approach area.
  • the information of the predefined map is inherited as it is for each information such as the position/area of the work target and waypoints.
  • FIG. 25 is a diagram showing a flowchart explaining an example of a processing sequence of approach area correction processing executed by the approach area correction unit 107 of the information processing device 100 of the robot 10.
  • FIG. 25 is a diagram showing a flowchart explaining an example of a processing sequence of approach area correction processing executed by the approach area correction unit 107 of the information processing device 100 of the robot 10.
  • the process according to this flow can be executed by the approach area correction unit 107 of the information processing device 100 of the robot 10 according to a program stored in the storage unit of the information processing device 100.
  • it can be performed as program execution processing by a processor such as a CPU having a program execution function.
  • the flowchart shown in FIG. 25 shows the processing sequence of the determination processing of each sampling point and the approach region determination processing after the sampling point setting processing for the preset approach region described above with reference to FIG. 23 is completed. ing.
  • the approach area correction unit 107 of the information processing device 100 of the robot 10 first corrects the "preset approach area" set on the "predefined map” generated in advance.
  • Set the sampling points within For example, sampling points are set at even intervals within the "preset approach area”.
  • the sampling points (workable sampling points within the preset approach area shown in FIG. 13) set when generating the "preset approach area" may be used as they are.
  • the sampling points within the preset approach area interfere with (contact with) the difference obstacle (new obstacle). It shows the processing sequence of judgment processing whether it is a workable sampling point ( ⁇ ) where scheduled work can be done without any work, or a workable sampling point ( ⁇ ) where work is not possible, and correction approach region determination processing based on the judgment result. It is a flow chart.
  • Step S201 First, in step S201, the approach area correction unit 107 of the information processing device 100 of the robot 10 selects one determination from the sampling points within the "preset approach area” set on the "predefined map” generated in advance. Select the sampling points of interest.
  • step S201 shows a work target X placed on an obstacle such as a desk, a "preset approach area” set in front of it, and a differential obstacle (new obstacle).
  • a "preset approach area” is a “preset approach area” that has been set on a previously generated “predefined map", and a plurality of sampling points have been set therein.
  • step S201 one determination target sampling point is selected from the sampling points within the "preset approach area".
  • FIG. 26 shows a plurality of sampling points within the "preset approach area", and one sampling point among them is selected as the determination target sampling point.
  • step S202 the approach area correction unit 107 rotates the robot with the robot reference point aligned with the selected determination target sampling point, and determines whether or not there is a rotational position that does not contact an obstacle.
  • differential obstacles new obstacles
  • contact possibility determination since it has already been confirmed that the scheduled work can be performed without touching the existing obstacles when generating the "preset approach area”.
  • Step S203 is a branching step based on the result of determination processing in step S202.
  • step S202 the approach area correction unit 107 performs If it is determined that there is a rotational position where the robot does not come into contact with the obstacle, the determination result in step S203 becomes Yes, and the process proceeds to step S205.
  • step S203 determines that there is no rotation position where the robot does not come into contact with the obstacle. If it is determined that there is no rotation position where the robot does not come into contact with the obstacle, the determination result in step S203 is No, and the process proceeds to step S204.
  • Step S204 The process of step S204 is executed when the determination of step S203 is No, that is, when the robot reference point is aligned with the determination target sampling point and a rotational position where the robot does not contact an obstacle is not detected. .
  • step S204 the approach area correction unit 107 sets the determination target sampling points to work impossible sampling points, that is, sampling points outside the correction approach area.
  • Step S205 The process of step S205 is executed when the determination of step S203 is Yes, that is, when a rotational position where the robot does not come into contact with an obstacle is detected with the robot reference point aligned with the determination target sampling point.
  • step S205 the approach area correction unit 107 determines whether or not the scheduled work can be executed at a robot rotation position that does not contact the obstacle. Note that the scheduled work is acquired from the work movement information input by the user 20 .
  • Step S206 is a branching step based on the result of determination processing in step S205.
  • step S205 determines that the scheduled work can be executed in the determination processing in step S205, that is, in the determination processing of whether or not the scheduled work can be performed at the robot rotation position that does not contact the obstacle.
  • the determination result of step S206 becomes Yes, and it progresses to step S207.
  • step S206 determines whether the scheduled work cannot be executed. If it is determined that the scheduled work cannot be executed, the determination result in step S206 is No, and the process proceeds to step S204.
  • Step S204 step S204 will be described again.
  • the process of step S204 is performed even when the determination of step S203 is Yes and when the determination of step S206 is No.
  • step S203 a rotational position where the robot does not come into contact with an obstacle is detected with the robot reference point aligned with the judgment target sampling point. It is also executed when it is determined in step S206 that the scheduled work cannot be executed at the robot rotation position that does not come into contact with the obstacle.
  • step S204 the approach area correction unit 107 sets the determination target sampling points to work impossible sampling points, that is, sampling points outside the correction approach area.
  • Step S207 On the other hand, the process of step S207 is executed when the determination of step S206 is Yes, that is, when it is determined that the scheduled work can be performed at the robot rotation position that does not come into contact with the obstacle.
  • step S207 the approach area correction unit 107 sets the determination target sampling points to workable sampling points, that is, sampling points within the correction approach area.
  • Step S208 The process of step S204, that is, the process of setting the determination target sampling point to an unworkable sampling point, that is, a sampling point outside the correction approach area, or
  • step S207 the processing of setting the determination target sampling point to the workable sampling point, that is, the sampling point within the correction approach area, or the processing of any of these processing is completed
  • step S208 is executed. do.
  • the approach region correction unit 107 determines in step S208 whether there are any unprocessed sampling points, that is, sampling points for which determination processing has not been completed. If there are unprocessed sampling points, the process returns to step S201 to process the unprocessed sampling points. On the other hand, if there is no unprocessed sampling point, the process proceeds to step S209.
  • Step S209 When the determination processing for all sampling points is completed, the approach area correction unit 107 sets an area consisting only of workable sampling points as a correction approach area in step S209.
  • step S209 A specific example of this process (step S209) will be described with reference to FIG.
  • FIG. 27 shows a work target X placed on an obstacle such as a desk, a "preset approach area” set in front of it, a difference obstacle (new obstacle), and a difference obstacle (new obstacle) determined according to the flow shown in FIG. 4 shows the modified “correction approach area AX”.
  • the "preset approach area” shown in FIG. 27 is a “preset approach area” that has been set on a previously generated “predefined map”. Judgment processing according to the flow shown in FIG. 25 is performed for a plurality of sampling points among them, and the "correction approach area AX" is determined.
  • sampling points indicated by white circles ( ⁇ ) are the sampling points within the correction approach area. That is, during the sampling point, workable sampling is performed to confirm that the planned work movement can be performed on the work target without interfering (contacting) with all obstacles including differential obstacles (new obstacles). It is a point.
  • sampling points indicated by black circles ( ⁇ ) are unworkable sampling points, and are sampling points outside the correction approach area. These sampling points are the sampling points within the "preset approach area" already set on the "predefined map”. It is confirmed that it is possible to execute the work movement, but it is impossible to execute the planned work movement on the work target without interfering (contacting) with the differential obstacle (new obstacle). sampling points.
  • the approach area correction unit 107 thus determines a correction approach area through work possibility determination processing for each sampling point in the preset approach area.
  • the robot 10 can perform the scheduled work for the work target X, that is, according to the work motion information input by the user, without contacting or interfering (contacting) with the obstacle. It becomes possible to execute the processing
  • the approach area correction unit 107 corrects each of the "preset approach areas” according to the flow described with reference to FIG. process.
  • the approach area correction unit 107 performs correction processing of the "preset approach area” defined on the “predefined map” and A “correction approach area” is generated in consideration of a “difference obstacle (new obstacle)" which is a new obstacle.
  • the “corrected approach region” generated by approach region correction section 107 is output to environment map integration section 108 .
  • the environment map integration unit 108 creates an "integrated environment map” using the following input information. (a) "predefined map” from the predefined map management unit 105; (b) “Obstacle map” from the obstacle map creation unit 103; (c) "Corrected approach area information” and “difference obstacle information” from the approach area correction unit 107 The environment map integration unit 108 creates an "integrated environment map” using these pieces of input information.
  • the environment map integration unit 108 records the latest obstacle positions and a "corrected approach area” obtained by correcting the "preset approach areas” recorded in the "predefined map” based on the latest obstacle positions. create an integrated environmental map.
  • the "integrated environment map” records the "correction approach area” as previously described with reference to FIG.
  • the "correction approach area” is defined as a work area in which the robot 10 can perform the scheduled work without coming into contact with existing obstacles or differential obstacles (new obstacles).
  • the sequence control unit 114 of the information processing device 100 attached to the robot 10 controls the robot 10 based on the work sequence in the work definition data generated in the user terminal 30.
  • the moving unit 11, the arm unit 12, and the hand unit 13 are moved, their progress is managed, and sequence control is performed.
  • the sequence control unit 114 follows the work start instruction from the robot control unit 113, and based on the work sequence received from the work definition data management unit 104, the moving object path planning unit 121 and the robot arm path planning unit 123 control the moving body and the robot. Gives instructions for arm movement.
  • the moving part path planning part 121 moves the moving part 11 of the robot 10 to the indicated position according to the instruction from the sequence control part 114 .
  • the following instructions are mainly input from the sequence control unit 114 to the moving object route planning unit 121 .
  • Instruction to move to waypoint * Instruction to move to work target approach area
  • the moving body route planning unit 121 uses the "integrated environmental map" generated by the environmental map integration unit 108 to generate a route for realizing the instructed action.
  • the movement unit route planning unit 121 determines the movement route of the robot 10 instructed by the sequence control unit 114.
  • Route information (travel route information) that enables travel while avoiding obstacles is generated for the waypoints above and the approach area, which is the workable area at each work position. output to
  • a specific example of the movement route generation processing to the approach area executed by the movement unit route planning unit 121 will be described. Note that, if there is a corrected approach area obtained by correcting the preset approach area, the moving section route planning unit 121 performs movement route generation processing to the corrected approach area. If there is no corrected approach area obtained by correcting the preset approach area, a moving route generation process to the preset approach area is performed.
  • the moving unit route planning unit 121 first selects approach position candidates from within the approach area (corrected approach area or preset approach area). It has been confirmed that it is possible to work on the work target anywhere within the approach area without interfering (contacting) with obstacles, so there is no problem in choosing any location within the approach area.
  • the approach area may be divided into a combination of convex polygons such as triangles, and the point furthest from the outer periphery may be adopted among the centers (centers of gravity) of each of the divided convex polygons. .
  • an approach position that provides the shortest route may be selected in consideration of the next work/target position in the work sequence.
  • an operation example of the robot 10 when executing the work according to the work sequence shown in FIG. 9 described above will be described with reference to FIG.
  • the moving portion route planning unit 121 determines the approach position AX that minimizes the moving distance from the waypoint B to the waypoint C.
  • FIG. i.e. Moving distance from waypoint B to waypoint C distance (B-AX) + distance (AX-C)
  • An approach position AX within the approach area with the shortest distance is calculated.
  • a route passing through the point AX that is, Via point B ⁇ Approach position AX ⁇ Via point C Generate a path connecting these points.
  • a route generation method it is possible to use, for example, A star (A*) or RRT, similarly to movement to a waypoint.
  • approach position candidate position selection methods include, for example, changing the approach position candidate to the second candidate (for example, the point with the second shortest moving distance from the previous and subsequent waypoints), Algorithms can be applied, such as randomly selecting points from within the region, or using points a certain distance away from the current approach position candidates.
  • timing at which the moving object route planning unit 121 generates a route may be generated in advance for the movement instruction described in the work sequence, not only at the timing at which the operation instruction is received from the sequence control unit 114 .
  • the environment map integration unit 108 updates the integrated environment map
  • the difference obstacle detection unit 106 detects a new difference obstacle
  • the environment map integration unit 108 detects an integrated environment map reflecting the difference obstacle.
  • the route may be generated at the timing when the is generated. After the route is generated by the mobile object route planning unit 121 , the route is transferred to the mobile object control unit 122 .
  • the mobile object control unit 122 generates route information (travel route information) based on the route information (travel route information) generated by the mobile object route planning unit 121 and the self-position of the robot 10 estimated by the self-position estimation unit 102.
  • the moving part 11 of the robot is controlled so as to move the robot 10 according to. That is, the robot is caused to travel so as to follow the route of the route information (travel route information) generated by the mobile object route planning unit 121 .
  • the route tracking control algorithm for example, Pure Pursuit can be used.
  • the robot arm path planning unit 123 follows an instruction from the sequence control unit 114 to create a path (trajectory) of the arm unit 12 and the hand unit 13 of the robot 10 for performing the instructed work, that is, the work set by the work definition data. is planned, and the generated path (trajectory) is output to the robot arm control unit 124 .
  • the robot arm path planning unit 123 measures the position of the work target more precisely using the photographed information of the camera constituting the sensor 101 mounted on the robot 10, corrects the target position based on the measurement result, The trajectory may be corrected accordingly.
  • the trajectory of the robot arm generated by the robot arm path planning unit 123 is passed to the robot arm control unit 124, and the robot arm control unit 124 controls the robot arm to follow the generated trajectory.
  • the robot arm control unit 124 moves the arm unit 12 and the hand unit 13 of the robot 10 using the paths (trajectories) of the arm unit 12 and the hand unit 13 of the robot 10 generated by the robot arm path planning unit 123. , drives the arm of the robot 10 and the joints of the hand 13 and the like. For example, it controls a motor driver for the arm part of the robot 10 and the joints of the hand part 13 .
  • difference obstacles that are not on the "predefined map” are detected.
  • a correction process of the "preset approach area” interference (contact) with the difference obstacle is confirmed, and a "correction approach area” is generated by deleting the area where the interference (contact) occurs.
  • the sampling points are set only within the "preset approach area” and the determination process is performed.
  • the robot 10 of the present disclosure is not limited to one that runs on the ground with a moving mechanism such as wheels as described in the embodiment. For example, it may move on water or in the air.
  • the approach area can also be set as an area having a three-dimensional spread, and in this case, the approach area space is expressed using a three-dimensional expression (for example, a voxel map, etc.).
  • FIG. 29 An example of the hardware configuration of the information processing apparatus of the present disclosure will be described with reference to FIG. 29 .
  • the hardware configuration of the information processing apparatus shown in FIG. 29 is one configuration example of the hardware configuration of the information processing apparatus 100 attached to the robot 10 . It is also a configuration example of the hardware configuration of the user terminal 30 .
  • a CPU (Central Processing Unit) 301 functions as a data processing section that executes various processes according to programs stored in a ROM (Read Only Memory) 302 or a storage section 308 . For example, the process according to the sequence described in the above embodiment is executed.
  • a RAM (Random Access Memory) 303 stores programs and data executed by the CPU 301 . These CPU 301 , ROM 302 and RAM 303 are interconnected by a bus 304 .
  • the CPU 301 is connected to an input/output interface 305 via a bus 304.
  • the input/output interface 305 includes an input unit 306 including various switches, a keyboard, a touch panel, a mouse, a microphone, a user input unit, and the like, a display, a speaker, and the like.
  • An output unit 307 is connected.
  • the input unit 306 also receives sensor detection information from various sensors 321 such as a camera and LiDAR.
  • the output unit 307 also outputs driving information to the driving unit 322 that drives the robot or the like.
  • the CPU 301 receives commands, situation data, and the like input from the input unit 306 , executes various processes, and outputs processing results to the output unit 307 , for example.
  • a storage unit 308 connected to the input/output interface 305 is composed of, for example, a flash memory, a hard disk, or the like, and stores programs executed by the CPU 301 and various data.
  • a communication unit 309 functions as a transmission/reception unit for data communication via a network such as the Internet or a local area network, and communicates with an external device.
  • a GPU Graphics Processing Unit
  • a drive 310 connected to the input/output interface 305 drives a removable medium 311 such as a magnetic disk, an optical disk, a magneto-optical disk, or a semiconductor memory such as a memory card to record or read data.
  • a removable medium 311 such as a magnetic disk, an optical disk, a magneto-optical disk, or a semiconductor memory such as a memory card to record or read data.
  • the technique disclosed in this specification can take the following configurations.
  • a difference obstacle detection unit that detects a difference obstacle corresponding to a difference from obstacles recorded on the predefined map based on information from a sensor that acquires information about the running environment of the robot; modifying the preset approach area, which is the area recorded on the predefined map and which is determined to be executable by the robot without contacting the obstacle, in consideration of the difference obstacle; having an approach region correction unit that generates a corrected approach region;
  • the approach area correction unit An information processing device that determines whether or not the robot can work without contacting the differential obstacle with respect to sampling points set inside the preset approach area, and generates the corrected approach area.
  • the approach area correction unit No sampling points are set outside the preset approach area,
  • the modified approach area is generated by determining whether or not the robot can work at the sampling points set inside the preset approach area without contacting the difference obstacle ( 1) The information processing device described in 1).
  • the approach area correction unit determining whether or not the robot can work without contacting the difference obstacle only for sampling points set inside the preset approach area;
  • the predefined map includes: The information processing apparatus according to any one of (1) to (4), wherein the map is created before the robot starts running.
  • the predefined map is The information processing device according to any one of (1) to (5), which is a map input to the information processing device from an external device.
  • the information processing device a work definition data management unit that manages work definition data including the predefined map;
  • the approach area correction unit inputting the predefined map from the work definition data management unit; inputting differential obstacle information, which is information about a new obstacle that does not exist in the predefined map, from the differential obstacle detection unit;
  • the information processing apparatus according to any one of (1) to (6), which generates the correction approach area.
  • the information processing device a work definition data management unit that manages work definition data including the predefined map;
  • the work definition data management unit (a) Predefined map (b) Work sequence information (c) Work movement information Information processing according to any one of (1) to (7) for managing work definition data having each of the above (a) to (c) data Device.
  • the information processing device Having a sequence control unit that controls an operation sequence of the robot,
  • the sequence control unit The information processing apparatus according to (8), which controls the work sequence of the robot according to work sequence information input from the work definition data management unit.
  • the information processing device The information processing apparatus according to any one of (1) to (9), further comprising an environment map integration unit that generates an integrated environment map that records the corrected approach area generated by the approach area correction unit.
  • the information processing device an environment map integration unit that generates an integrated environment map that records the corrected approach area generated by the approach area correction unit;
  • the information processing apparatus according to any one of (1) to (11), further comprising a route planning unit that plans a movement route of the robot using the integrated environment map generated by the environment map integration unit.
  • the approach region correction unit A configuration for executing a process of generating a corrected re-correction approach area again in consideration of a newly occurring difference obstacle for a generated correction approach area generated in the approach area correction process executed in the past,
  • the approach area correction unit Determining whether or not the robot can work without contacting the newly generated difference obstacle with respect to the sampling points set inside the generated correction approach area, and generating the re-correction approach area.
  • the information processing apparatus according to any one of (1) to (12).
  • An information processing system having a user terminal and an information processing device attached to a robot,
  • the user terminal is
  • a predefined map is generated and attached to the robot, which includes locations of obstacles in the robot's running environment and preset approach areas determined to allow the robot to perform work without contacting the obstacles.
  • the information processing device attached to the robot, Based on the information of the sensor that acquires the running environment information of the robot, a difference obstacle detection unit that detects a difference obstacle corresponding to a difference from obstacles recorded on the predefined map input from the user terminal; modifying the preset approach area, which is the area recorded on the predefined map and which is determined to be executable by the robot without contacting the obstacle, in consideration of the difference obstacle; having an approach region correction unit that generates a corrected approach region; The approach area correction unit An information processing system for generating the corrected approach area by determining whether the robot can work without contacting the difference obstacle with respect to the sampling points set inside the preset approach area.
  • the user terminal (a) predefined map (b) work sequence information (c) work movement information inputting work definition data having each of the data (a) to (c) into the information processing device of the robot;
  • the information processing device of the robot A process of generating the correction approach area using the work definition data having each of the above (a) to (c) data; a process of generating an integrated environment map reflecting the modified approach area;
  • the information processing system according to (14) which executes control processing of the robot with reference to the integrated environment map.
  • the information processing device of the robot In the process of generating the correction approach area, No sampling points are set outside the preset approach area, The modified approach area is generated by determining whether or not the robot can work at the sampling points set inside the preset approach area without contacting the difference obstacle ( 14) or the information processing system according to (15).
  • An information processing method executed in an information processing device a difference obstacle detection step in which the difference obstacle detection unit detects a difference obstacle corresponding to a difference from the obstacle recorded in the predefined map based on the information of the sensor that acquires the traveling environment information of the robot;
  • the approach area correction unit is an area recorded on the predefined map, and determines a preset approach area that is determined to be capable of being performed by the robot without contacting an obstacle, by using the difference obstacle. perform an approach region modification step that considers and modifies to generate a modified approach region,
  • the approach region correction step includes: Information representing a step of determining whether or not the robot can work without contacting the difference obstacle with respect to the sampling points set inside the preset approach area, and generating the modified approach area. Processing method.
  • the user terminal A predefined map is generated and attached to the robot, which includes locations of obstacles in the robot's running environment and preset approach areas determined to allow the robot to perform work without contacting the obstacles.
  • the information processing device attached to the robot, Based on the information of the sensor that acquires the running environment information of the robot, difference obstacle detection processing for detecting a difference obstacle corresponding to a difference from obstacles recorded on the predefined map input from the user terminal; modifying the preset approach area, which is the area recorded on the predefined map and which is determined to be executable by the robot without contacting the obstacle, in consideration of the difference obstacle; Execute approach area correction processing for generating a correction approach area, In the approach area correction process, An information processing method for generating the corrected approach area by determining whether or not the robot can work without contacting the difference obstacle with respect to sampling points set inside the preset approach area.
  • a program for executing information processing in an information processing device a differential obstacle detection step of causing the differential obstacle detection unit to detect a differential obstacle corresponding to a difference from the obstacle recorded on the predefined map, based on the information of the sensor that acquires the traveling environment information of the robot;
  • the approach area correcting unit changes the preset approach area, which is the area recorded on the predefined map and which is determined to be able to perform the work by the robot without contacting the obstacle, to the difference obstacle. perform an approach area modification step of considering and modifying to generate a modified approach area;
  • a program recording the processing sequence is installed in the memory of a computer built into dedicated hardware and executed, or the program is loaded into a general-purpose computer capable of executing various processing. It can be installed and run.
  • the program can be pre-recorded on a recording medium.
  • the program can be received via a network such as a LAN (Local Area Network) or the Internet and installed in a recording medium such as an internal hard disk.
  • a system is a logical collective configuration of a plurality of devices, and the devices of each configuration are not limited to being in the same housing.
  • the approach area defined as the work area of the robot can be quickly corrected.
  • a device and method are realized. Specifically, for example, a difference obstacle detection unit that detects a difference obstacle corresponding to a difference from obstacles recorded on the predefined map, based on information from a sensor that acquires the robot's running environment information;
  • a modified approach area is obtained by modifying a preset approach area, which is an area recorded on a predefined map and determined to be able to perform work by a robot without contacting an obstacle, in consideration of a differential obstacle. It has a generating approach region corrector.
  • the approach area correction unit generates a corrected approach area by determining whether or not the robot can work without contacting the difference obstacle with respect to the sampling points set inside the preset approach area.

Landscapes

  • Engineering & Computer Science (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Aviation & Aerospace Engineering (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Remote Sensing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • Control Of Position, Course, Altitude, Or Attitude Of Moving Bodies (AREA)

Abstract

事前定義地図にない新たな障害物が発生した際に、ロボットの作業領域として規定されるアプローチ領域を迅速に修正可能とした装置、方法を提供する。ロボットの走行環境情報を取得するセンサの情報に基づいて、事前定義地図に記録された障害物との差分に相当する差分障害物を検出する差分障害物検出部と、事前定義地図に記録された領域であり、ロボットによる作業を障害物に接触することなく実行可能であると判定された事前設定アプローチ領域を、差分障害物を考慮して修正して修正アプローチ領域を生成するアプローチ領域修正部を有する。アプローチ領域修正部は、事前設定アプローチ領域の内部に設定したサンプリング点について差分障害物にロボットが接触することなく作業可能であるか否かを判定して修正アプローチ領域を生成する。

Description

情報処理装置、情報処理システム、および情報処理方法、並びにプログラム
 本開示は、情報処理装置、情報処理システム、および情報処理方法、並びにプログラムに関する。具体的にはロボットに所定の動作を実行させるための制御を行う情報処理装置、情報処理システム、および情報処理方法、並びにプログラムに関する。
 近年、様々な分野でロボットの利用が増大している。
 例えば、工場では、従来、人が行っていた作業の多くをロボットが行うようになっている。
 ロボットが行なう処理は様々であるが、その一例として例えば、ある作業位置Aで作業aを行い、その後、次の作業位置Bに移動して、作業位置Bで作業bを行うといった移動と作業を繰り返し行う構成がある。
 例えば作業位置Aで荷物をピックアップし、作業位置Bに移動して荷物を下ろすといった作業である。
 なお、移動体に作業用のハンド部やアーム部からなるマニピュレータを搭載したロボットとしてモバイルマニピレータがある。
 モバイルマニピュレータは、移動体が移動することで、様々な作業領域で作業を行うことが可能となる。
 ロボットが複数の作業位置を移動しながら、各作業位置で作業を行う場合には、予め作業位置A,Bの各々で予定の作業が可能なロボット位置を確認し、さらにこれらの作業位置間を安全に移動するための経路を規定することが必要となる。
 例えばモバイルマニピュレータの移動部が障害物で前方に進めず、ハンド部が作業対象物に届かなければ予定の作業を行うことができない。
 ロボットが各作業位置において作業可能な位置を算出するためには、作業対象となる物体に届く移動部の位置を求める逆運動学を用いた位置算出処理や、机等の障害物との干渉(接触)判定のための計算処理を行う必要があり、このための演算量は膨大となる。従ってロボットが移動しながらリアルタイムで移動経路や作業可能位置を算出することは困難である。
 このような問題を解決する手法を開示した従来技術として、例えば特許文献1(特許第6641804号公報)がある。この特許文献1は、ロボットによる作業の開始前に、ロボットが作業を行う作業位置毎に作業対象物体に対する作業可能領域を算出し、ロボットを各作業可能領域に移動して作業を実行させる構成を開示している。
 しかし、この特許文献1の手法では、予め算出した作業可能領域内に新たな障害物が置かれてしまった場合には、事前に作成した作業可能領域にロボットを移動させることができなくなり、予定作業を行うことができなくなるという問題がある。
特許第6641804号公報
 本開示は、例えば上記問題点に鑑みてなされたものであり、予め算出した作業可能領域内に新たな障害物が置かれてしまった場合でも、障害物を考慮した新たな作業可能領域を効率的に作成して、ロボットに予定の作業を行わせることを可能とした情報処理装置、情報処理システム、および情報処理方法、並びにプログラムを提供することを目的とする。
 本開示の第1の側面は、
 ロボットの走行環境情報を取得するセンサの情報に基づいて、事前定義地図に記録された障害物との差分に相当する差分障害物を検出する差分障害物検出部と、
 前記事前定義地図に記録された領域であり、前記ロボットによる作業を障害物に接触することなく実行可能であると判定された事前設定アプローチ領域を、前記差分障害物を考慮して修正して修正アプローチ領域を生成するアプローチ領域修正部を有し、
 前記アプローチ領域修正部は、
 前記事前設定アプローチ領域の内部に設定したサンプリング点について、前記差分障害物に前記ロボットが接触することなく作業可能であるか否かを判定して、前記修正アプローチ領域を生成する情報処理装置にある。
 さらに、本開示の第2の側面は、
 ユーザ端末と、ロボットに装着された情報処理装置を有する情報処理システムであり、
 前記ユーザ端末は、
 前記ロボットの走行環境の障害物の位置と、前記ロボットによる作業を前記障害物に接触することなく実行可能であると判定された事前設定アプローチ領域を含む事前定義地図を生成して前記ロボットに装着された前記情報処理装置に入力し、
 前記ロボットに装着された前記情報処理装置は、
 前記ロボットの走行環境情報を取得するセンサの情報に基づいて、
 前記ユーザ端末から入力した前記事前定義地図に記録された障害物との差分に相当する差分障害物を検出する差分障害物検出部と、
 前記事前定義地図に記録された領域であり、前記ロボットによる作業を障害物に接触することなく実行可能であると判定された事前設定アプローチ領域を、前記差分障害物を考慮して修正して修正アプローチ領域を生成するアプローチ領域修正部を有し、
 前記アプローチ領域修正部は、
 前記事前設定アプローチ領域の内部に設定したサンプリング点について、前記差分障害物に前記ロボットが接触することなく作業可能であるか否かを判定して、前記修正アプローチ領域を生成する情報処理システムにある。
 さらに、本開示の第3の側面は、
 情報処理装置において実行する情報処理方法であり、
 差分障害物検出部が、ロボットの走行環境情報を取得するセンサの情報に基づいて、事前定義地図に記録された障害物との差分に相当する差分障害物を検出する差分障害物検出ステップと、
 アプローチ領域修正部が、前記事前定義地図に記録された領域であり、前記ロボットによる作業を障害物に接触することなく実行可能であると判定された事前設定アプローチ領域を、前記差分障害物を考慮して修正して修正アプローチ領域を生成するアプローチ領域修正ステップを実行し、
 前記アプローチ領域修正ステップは、
 前記事前設定アプローチ領域の内部に設定したサンプリング点について、前記差分障害物に前記ロボットが接触することなく作業可能であるか否かを判定して、前記修正アプローチ領域を生成するステップである情報処理方法にある。
 さらに、本開示の第4の側面は、
 ユーザ端末と、ロボットに装着された情報処理装置を有する情報処理システムにおいて実行する情報処理方法であり、
 前記ユーザ端末が、
 前記ロボットの走行環境の障害物の位置と、前記ロボットによる作業を前記障害物に接触することなく実行可能であると判定された事前設定アプローチ領域を含む事前定義地図を生成して前記ロボットに装着された前記情報処理装置に入力し、
 前記ロボットに装着された前記情報処理装置が、
 前記ロボットの走行環境情報を取得するセンサの情報に基づいて、
 前記ユーザ端末から入力した前記事前定義地図に記録された障害物との差分に相当する差分障害物を検出する差分障害物検出処理と、
 前記事前定義地図に記録された領域であり、前記ロボットによる作業を障害物に接触することなく実行可能であると判定された事前設定アプローチ領域を、前記差分障害物を考慮して修正して修正アプローチ領域を生成するアプローチ領域修正処理を実行し、
 前記アプローチ領域修正処理において、
 前記事前設定アプローチ領域の内部に設定したサンプリング点について、前記差分障害物に前記ロボットが接触することなく作業可能であるか否かを判定して、前記修正アプローチ領域を生成する情報処理方法にある。
 さらに、本開示の第5の側面は、
 情報処理装置において情報処理を実行させるプログラムであり、
 差分障害物検出部に、ロボットの走行環境情報を取得するセンサの情報に基づいて、事前定義地図に記録された障害物との差分に相当する差分障害物を検出させる差分障害物検出ステップと、
 アプローチ領域修正部に、前記事前定義地図に記録された領域であり、前記ロボットによる作業を障害物に接触することなく実行可能であると判定された事前設定アプローチ領域を、前記差分障害物を考慮して修正して修正アプローチ領域を生成させるアプローチ領域修正ステップを実行させ、
 前記アプローチ領域修正ステップにおいては、
 前記事前設定アプローチ領域の内部に設定したサンプリング点について、前記差分障害物に前記ロボットが接触することなく作業可能であるか否かを判定して、前記修正アプローチ領域を生成させるプログラムにある。
 なお、本開示のプログラムは、例えば、様々なプログラム・コードを実行可能な情報処理装置やコンピュータ・システムに対して、コンピュータ可読な形式で提供する記憶媒体、通信媒体によって提供可能なプログラムである。このようなプログラムをコンピュータ可読な形式で提供することにより、情報処理装置やコンピュータ・システム上でプログラムに応じた処理が実現される。
 本開示のさらに他の目的、特徴や利点は、後述する本開示の実施例や添付する図面に基づくより詳細な説明によって明らかになるであろう。なお、本明細書においてシステムとは、複数の装置の論理的集合構成であり、各構成の装置が同一筐体内にあるものには限らない。
 本開示の一実施例の構成によれば、本開示の一実施例の構成によれば、事前定義地図にない新たな障害物が発生した際に、ロボットの作業領域として規定されるアプローチ領域を迅速に修正可能とした装置、方法が実現される。
 具体的には、例えば、ロボットの走行環境情報を取得するセンサの情報に基づいて、事前定義地図に記録された障害物との差分に相当する差分障害物を検出する差分障害物検出部と、事前定義地図に記録された領域であり、ロボットによる作業を障害物に接触することなく実行可能であると判定された事前設定アプローチ領域を、差分障害物を考慮して修正して修正アプローチ領域を生成するアプローチ領域修正部を有する。アプローチ領域修正部は、事前設定アプローチ領域の内部に設定したサンプリング点について差分障害物にロボットが接触することなく作業可能であるか否かを判定して修正アプローチ領域を生成する。
 本構成により、事前定義地図にない新たな障害物が発生した際に、ロボットの作業領域として規定されるアプローチ領域を迅速に修正可能とした装置、方法が実現される。
 なお、本明細書に記載された効果はあくまで例示であって限定されるものではなく、また付加的な効果があってもよい。
本開示の処理を実行する情報処理システムの全体構成例について説明する図である。 ロボットに組み込まれた情報処理装置の一例について説明する図である。 ロボットに組み込まれた情報処理装置の構成例について説明する図である。 事前定義地図と、事前定義地図を利用したロボットの移動と作業シーケンスの一例について説明する図である。 障害物地図作成部が生成する「障害物地図」と、環境地図統合部が生成する「統合環境地図」の例について説明する図である。 ユーザ端末の構成例について説明する図である。 ユーザがユーザ端末に入力する作業定義データ生成用の情報の例について説明する図である。 作業定義データ管理部が、アプローチ領域生成部と事前定義地図生成部とともに生成する「事前定義地図」の具体例について説明する図である。 作業定義データ管理部が生成する「作業シーケンス情報」の具体例について説明する図である。 作業シーケンスに従ったロボットの動作イメージの具体例について説明する図である。 作業定義データ管理部が生成する「作業動作情報」の具体例について説明する図である。 アプローチ領域生成部が実行するアプローチ領域生成処理の具体例について説明する図である。 各サンプリング点の判定処理によって決定されたアプローチ領域の具体例について説明する図である。 ユーザ端末のアプローチ領域生成部が実行するアプローチ領域生成処理の処理シーケンスの一例について説明するフローチャートを示す図である。 ユーザ端末のアプローチ領域生成部が実行する処理の具体例について説明する図である。 ユーザ端末のアプローチ領域生成部が実行する処理の具体例について説明する図である。 ユーザ端末のアプローチ領域生成部が実行する処理の具体例について説明する図である。 ユーザ端末のアプローチ領域生成部が実行する処理の具体例について説明する図である。 ユーザ端末のアプローチ領域生成部が実行する処理の具体例について説明する図である。 ユーザ端末のアプローチ領域生成部が実行する処理の具体例について説明する図である。 作業シーケンスに従ったロボットの動作イメージの具体例について説明する図である。 「差分障害物(新規障害物)」が検出された場合、「事前定義地図」上の事前設定アプローチ領域が作業を実行できない領域になる具体例について説明する図である。 アプローチ領域修正部が実行するアプローチ領域の修正の具体例について説明する図である。 アプローチ領域修正部が実行するアプローチ領域の修正の具体例について説明する図である。 アプローチ領域修正部が実行するアプローチ領域の修正処理のシーケンスについて説明するフローチャートを示す図である。 アプローチ領域修正部が実行するアプローチ領域の修正の具体例について説明する図である。 アプローチ領域修正部が実行するアプローチ領域の修正の具体例について説明する図である。 作業シーケンスに従った作業を実行する場合のロボットの動作例の具体例について説明する図である。 本開示の情報処理装置のハードウェア構成例について説明する図である。
 以下、図面を参照しながら本開示の情報処理装置、情報処理システム、および情報処理方法、並びにプログラムの詳細について説明する。なお、説明は以下の項目に従って行なう。
 1.本開示の処理を実行する情報処理システムの全体構成例について
 2.情報処理装置およびユーザ端末の構成について
 3.ユーザ端末における作業定義データ生成処理の詳細について
 4.アプローチ領域生成処理の処理シーケンスについて
 5.作業定義データに基づくロボットの動作の詳細について
 6.ロボットの情報処理装置のアプローチ領域修正部が実行するアプローチ領域修正処理の処理シーケンスについて
 7.ロボットの情報処理装置が生成した修正アプローチ領域を反映した環境地図を用いたロボットによる作業シーケンスについて
 8.本開示の情報処理装置のハードウェア構成例について
 9.本開示の構成のまとめ
  [1.本開示の処理を実行する情報処理システムの全体構成例について]
 まず、図1を参照して本開示の処理を実行する情報処理システムの全体構成例について説明する。
 本開示の処理を実行する情報処理システムは、図1に示すように、ロボット10と、ユーザ20が操作するユーザ端末30を有するシステムである。
 ロボット10は、例えば車輪等を有し、床面を走行して移動する移動部11と、作業対象となる物体等を操作するアーム部12とハンド部13を有する。すなわち、移動部11に作業用のアーム部12やハンド部13からなるマニピュレータを搭載したモバイルマニピレータ型のロボットである。
 モバイルマニピュレータ型のロボット10は移動することで、様々な作業領域で作業を行うことが可能となる。
 なお、ロボット10内部には、ロボット10の制御や、外部との通信等を行うための情報処理装置が組み込まれている。
 この情報処理装置の詳細構成については後述する。
 ユーザ端末30は、ロボット10の使用者が、ロボット10に行わせる作業や、ロボット10を使用する環境(部屋の構造など)の情報を入力するために使用する。
 また、ロボットに対する作業の開始や停止などの指示操作や、ロボットの状態表示も、ユーザ端末10を介して行うことができる。
 ユーザ端末30は、具体的には、例えばタブレット型端末や、スマホや、PC等、様々な情報処理装置によって構成可能である。
 ロボット10とユーザ端末30は通信可能な構成である。
 なお、ユーザ端末30を利用して実行する処理やユーザ端末30の機能をロボット10内部の情報処理装置に全て組み込んだ構成も可能であり、この場合はユーザ端末30を用いずにロボット10単独で本開示の処理を実行することが可能となる。
 前述したように、ロボット10内部には、ロボット10の制御や、外部との通信等を行うための情報処理装置が組み込まれている。
 例えば図2に示すように、情報処理装置100がロボット10内部に組み込まれている。
  [2.情報処理装置およびユーザ端末の構成について]
 次にロボット10内部の情報処理装置とユーザ端末の構成について説明する。
 図2を参照して説明したように、ロボット10の内部には情報処理装置100が組み込まれている。
 図3を参照してこの情報処理装置100の構成例について説明する。
 図3に示すように、情報処理装置100は、センサ101、自己位置推定部102、障害物地図作成部103、作業定義データ管理部104、事前定義地図管理部105、差分障害物検出部106、アプローチ領域修正部107、環境地図統合部108、通信IIF111、ロボット操作UI112、ロボット制御部113、シーケンス制御部114、移動部経路計画部121、移動部制御部122、ロボットアーム経路計画部123、ロボットアーム制御部124を有する。
 センサ101は、ロボット周囲の障害物などの周囲環境を検知するためのセンサであり、例えば、カメラやLiDAR(Light Detection and Ranging)等によって構成される。
 なお、センサ101は、カメラ、LiDARに限らず、これらの他のセンサを備えた構成としてもよい。例えば、ToFセンサ、超音波センサ、レーダ、ソナー等を備えた構成でもよい。
 自己位置推定部102は、センサ101から取得した情報等を利用して、ロボット10の現在位置を推定する。
 なお、自己位置推定部102による自己位置推定処理は、センサ101からの取得情報の他、IMU、車輪の回転角度などの情報、外部カメラの情報などを利用した処理として実行してもよい。
 自己位置算出部102は、例えば、SLAM(simultaneous localization and mapping)処理を適用した自己位置推定を行う。
 SLAM処理は、カメラで画像(動画像)を撮影し、複数の撮影画像に含まれる特徴点の軌跡を解析することで、特徴点の3次元位置を推定するとともに、カメラ(自己)の位置姿勢を推定(ローカリゼーション)する処理であり、特徴点の3次元位置情報を用いて周囲の地図(環境地図)を作成(mapping)することができる。
 障害物地図作成部103は、例えば、センサ101によって得られた周囲情報や、自己位置推定部102が算出したロボット10の現在位置情報を利用してロボット10の周囲に存在する障害物の配置位置を示す地図である「障害物地図」を作成する。
 障害物地図作成部103は、例えば占有格子地図(Occupancy Grid Map)のような「障害物地図」を作成する。
 占有格子地図(グリッドマップ)は、格子によって規定される各区画(グリッド)内に障害物が存在する確率値を設定した地図である。
 ロボット10は、占有格子地図(グリッドマップ)の区画中、障害物の存在する確率の低い区画(グリッド)を走行ルートとして選択して走行することで障害物に衝突することなく安全に走行することができる。
 事前定義地図管理部105は、作業定義データ管理部104から「事前定義地図」を取得し、取得した「事前定義地図」を差分障害物検出部106、アプローチ領域修正部107、環境地図統合部108に提供する。
 なお、作業定義データ管理部104が管理する作業定義データには以下のデータが含まれる。
 (1)事前定義地図
 (2)作業シーケンス情報
 (3)作業動作情報
 これらのデータの詳細については後段で説明する。
 「事前定義地図」とは、ロボット10が走行する走行環境内の障害物位置や、ロボット10が作業領域においてアーム部12やハンド部13を駆動して作業を安全に実行可能であると判定された作業可能領域である「アプローチ領域」を規定した地図である。
 なお、「事前定義地図」とは、ロボット10の走行開始前、すなわち事前に作成される地図である。
 「事前定義地図」は、例えばユーザ20がユーザ端末30を用いて作成して、ユーザ端末30からロボット10の情報処理装置100に送信される。ユーザ端末30からの送信データは、通信IF111、ロボット制御部113を介して作業定義データ管理部104に入力され、作業定義データ管理部104内の記憶部、あるいは作業定義データ管理部104がアクセス可能な記憶部内に格納される。
 なお、「事前定義地図」は、ユーザ20が、直接ロボット操作UI112を介して入力してもよい。
 図4(1a)に「事前定義地図」の一例を示す。
 図4(1a)に「事前定義地図」には2つの障害物と、障害物各々の近傍に設定された「事前設定アプローチ領域」が記録されている。なお、「事前定義地図」に記録された「アプローチ領域」を「事前設定アプローチ領域」と呼ぶ。
 図4(1b)は、図4(1a)に示す「事前定義地図」を利用したロボット10の移動と作業シーケンスの例を示す図である。
 ロボット10はスタート地点(S)から移動を開始して、「事前設定アプローチ領域AX」に到達すると、「事前設定アプローチ領域AX」内で作業対象Xに対する作業を行う。例えば作業対象Xの把持処理や移動処理などの作業を実行する。
 この作業が終了すると、ロボット10は、次の作業領域に移動する。すなわち、「事前定義地図」に記録されている「事前設定アプローチ領域AY」に移動する。「事前設定アプローチ領域AY」に到達すると、「事前設定アプローチ領域AY」内で作業対象Yに対する作業を行う。例えば作業対象Yの把持処理や移動処理などの作業を実行する。その後ゴール地点(G)に移動して処理を終了する。
 このように、「アプローチ領域」とは、ロボット10がアーム部12やハンド部13を駆動して作業を実行する領域であり、「事前定義地図」に記録された「アプローチ領域」を「事前設定アプローチ領域」と呼ぶ。
 図4(1b)に示すように、ロボット10は、移動部11を利用した移動処理により「事前設定アプローチ領域AX」に移動し、この「事前設定アプローチ領域AX」で、アーム部12やハンド部13を駆動して例えば1つの作業対象Xの把持などの作業を行う。
 その後、「事前設定アプローチ領域AY」に移動し、この「事前設定アプローチ領域AY」で、別の作業、例えば作業対象Yの把持などの作業を行う。
 このように、「アプローチ領域」は、ロボット10が障害物に衝突や接触することなく予定の作業を実行可能な領域として規定される領域であり、事前に作成される「事前定義地図」には、ロボット10が障害物に衝突や接触することなく予定の作業を実行可能な領域である「事前設定アプローチ領域」が記録される。
 上述したように、事前定義地図管理部105は、作業定義データ管理部104から「事前定義地図」を取得し、取得した「事前定義地図」を差分障害物検出部106、アプローチ領域修正部107、環境地図統合部108に提供する。
 「事前定義地図」には、ロボット10が走行する走行環境内の障害物位置や、ロボット10が作業領域においてアーム部12やハンド部13を駆動して作業を安全に実行可能であると判定された作業可能領域である「事前設定アプローチ領域」が記録されている。
 しかし、「事前定義地図」はロボット10走行前に作成される地図であり、「事前定義地図」の作成後に新たな障害物が置かれた場合、「事前設定アプローチ領域」内であっても、ロボット10が作業を行えなくなる場合が発生する。
 これに対して、前述した障害物地図作成部103が作成する「障害物地図」は、ロボット10のセンサ101によって得られた周囲情報や、自己位置推定部102が算出したロボット10の現在位置情報を利用した地図であり、ロボット10周囲の最新の障害物情報を含む地図となる。
 差分障害物検出部106は、事前に作成された「事前定義地図」と、ロボット10周囲の最新の障害物情報を含む「障害物地図」を比較し、「事前定義地図」に存在しない新たな障害物を「差分障害物」として検出する。
 アプローチ領域修正部107は、以下の各情報を入力する。
 (a)事前定義地図管理部105から「事前定義地図」、
 (b)差分障害物検出部106が検出した「事前定義地図」に存在しない新たな障害物である「差分障害物」情報、
 アプローチ領域修正部107は、これらの入力情報を利用して、「事前定義地図」上に定義された「事前設定アプローチ領域」の修正処理を行う。
 具体的には、差分障害物検出部106が検出した「事前定義地図」に存在しない新たな障害物である「差分障害物」を考慮した「修正アプローチ領域」を生成する。
 環境地図統合部108は、以下の各情報を入力する。
 (a)事前定義地図管理部105から「事前定義地図」、
 (b)障害物地図作成部103から「障害物地図」、
 (c)アプローチ領域修正部107から、「修正アプローチ領域情報」と「差分障害物情報」
 環境地図統合部108は、これらの入力情報を利用して「統合環境地図」を作成する。
 すなわち最新の障害物の位置と、「事前定義地図」に記録された「事前設定アプローチ領域」を最新の障害物の位置に基づいて修正した「修正アプローチ領域」を記録した「統合環境地図」を作成する。
 図5を参照して、障害物地図作成部103が生成する「障害物地図」と、環境地図統合部108が生成する「統合環境地図」の例について説明する。
 図5(2a)は、障害物地図作成部103が生成する「障害物地図」の一例を示す図である。
 図5(2a)に示す「障害物地図」は、先に図4(1a)を参照して説明した「事前定義地図」と同じ場所の地図である。
 図4(1a)を参照して説明した「事前定義地図」はロボット10の走行前に作成された地図であるのに対し、図5(2a)に示す「障害物地図」は、ロボット10のセンサによる取得情報に基づいて作成された最新の障害物位置を反映した地図である。
 図5(2a)に示す「障害物地図」には、先に図4(1a)を参照して説明した「事前定義地図」に含まれていない新規な「差分障害物」が含まれる。
 この「差分障害物」は、「事前定義地図」の作成時には存在しなかった障害物であり、「障害物地図」作成時に新たに検出された障害物である。
 図4(1a)を参照して説明した「事前定義地図」には、ロボット10が作業可能な領域である「事前設定アプローチ領域」が記録されているが、「事前定義地図」に記録されている「事前設定アプローチ領域」は、新規の「差分障害物」の存在を考慮していない領域である。
 環境地図統合部108は、事前定義地図」に記録されている「事前設定アプローチ領域」を、「差分障害物(新規障害物)」を考慮して修正し、「修正アプローチ領域」を記録した「統合環境地図」を作成する。
 すなわち、図5(2b)に示すような「統合環境地図」を作成する。
 環境地図統合部108は、
 (a)事前定義地図管理部105から「事前定義地図」、
 (b)障害物地図作成部103から「障害物地図」、
 (c)アプローチ領域修正部107から、「修正アプローチ領域情報」と「差分障害物情報」
 これらの入力情報を利用して、「事前定義地図」に記録された「事前設定アプローチ領域」を最新の障害物の位置に基づいて修正した「修正アプローチ領域」を記録した「統合環境地図」、すなわち、図5(2b)に示すような「統合環境地図」を作成する。
 図5(2b)に示す「統合環境地図」に記録された「修正アプローチ領域」は、既存の障害物や、差分障害物(新規障害物)に接触することなくロボット10が予定の作業を実行可能な作業領域として規定される。
 なお、具体的なアプローチ領域の生成処理、修正処理については、後段で説明する。
 図3に戻り、情報処理装置100の構成についての説明を続ける。
 シーケンス制御部114は、作業定義データに定義された作業シーケンスに基づいて、ロボット10の移動部11と、アーム部12、ハンド部13を動かし、その進捗を管理し、シーケンス制御を行う。
 移動部経路計画部121は、シーケンス制御部114からの指示に従い、ロボット10の移動部11を指示位置へ移動させる。
 移動部経路計画部121は、環境地図統合部108が生成した「統合環境地図」と、自己位置推定部102で推定された自己位置を基に、シーケンス制御部114が指示するロボット10の移動経路上の経由点や、各作業位置での作業可能領域であるアプローチ領域を、障害物を回避しながら走行可能な経路情報(走行ルート情報)を生成し、生成した経路情報を移動体制御部122に出力する。
 なお、環境地図統合部108は、ロボット10の走行中にセンサ101が新たな障害物を検知した場合は、遂次「統合環境地図」を更新する。すなわち、新たな障害物と、その新たな障害物の位置に応じて修正した「修正アプローチ領域」を記録した「統合環境地図」を更新する。
 移動部経路計画部121は、環境地図統合部108において「統合環境地図」の更新がなされた場合は、その更新された最新の「統合環境地図」を用いて経路情報(走行ルート情報)を更新し、更新した経路情報を移動体制御部122に出力する。
 移動体制御部122は、移動体経路計画部121が生成した経路情報(走行ルート情報)と、自己位置推定部102で推定されたロボット10の自己位置に基づいて、経路情報(走行ルート情報)に従ってロボット10を移動させるように、ロボットの移動部11を制御する。例えば移動部11の車輪を駆動するモータドライバなどの制御を実行する。
 ロボットアーム経路計画部123は、シーケンス制御部114からの指示に従い、指示された作業を行うためのロボット10のアーム部12やハンド部13の経路(軌跡)を計画し、生成した経路(軌跡)をロボットアーム制御部124に出力する。
 ロボットアーム制御部124は、ロボットアーム経路計画部123が生成したロボット10のアーム部12やハンド部13の経路(軌跡)を用いてロボット10のアーム部12やハンド部13が動くように、ロボット10のアーム部やハンド部13の関節等の駆動部を駆動する。例えばロボット10のアーム部やハンド部13の関節等のモータドライバを制御する。
 通信IF111は、外部装置、例えばユーザ端末30と通信を行い、ユーザ20がユーザ端末30で作成した作業定義データや、ユーザ端末30から入力したロボット操作情報を受信する。また、ロボット10の状態や、ロボット10の作業の進行状況などをユーザ端末30に送信してもよい。
 ロボット操作UI112は、ロボット10本体に搭載されたタッチパネル等によって構成されたユーザインタフェースである。ロボット10の状態や、ロボット10が外部から受信している作業定義データの一覧等を表示し、作業の選択や、作業の開始、停止などの指示を入力する。また、ロボット10の作業の進行状況を表示してもよい。
 ロボット制御部113は、ロボット操作UI112、もしくは通信I/F111を介してユーザ端末30等の外部装置から入力する指示データを入力して、作業定義データ管理部104やシーケンス制御部114に必要情報を転送する処理や、ロボット10全体の制御処理を実行する。
 なお、上述した説明では、差分障害物検出部106は、「事前定義地図」にない新たな障害物を検出し、環境地図統合部108は、新たな障害物を考慮して「修正アプローチ領域」を記録した「統合環境地図」を生成するものとして説明した。
 差分障害物検出部106は、「事前定義地図」にない新たな障害物のみならず、例えば「事前定義地図」に記録されている既存障害物の移動なども検出してもよい。
 アプローチ領域修正部107は、新たな障害物のみならず既存障害物の移動位置も考慮して「修正アプローチ領域」を決定する。この場合、環境地図統合部108は、新たな障害物のみならず既存障害物の移動位置も考慮して修正された「修正アプローチ領域」を記録した「統合環境地図」を生成する。
 さらに、差分障害物検出部106は、作業対象物の位置の変化なども検出する構成としてもよい。
 アプローチ領域修正部107は、作業対象物の位置変化を考慮して「修正アプローチ領域」を決定する。この場合、環境地図統合部108は、作業対象物の位置変化を考慮して修正された「修正アプローチ領域」を記録した「統合環境地図」を生成する。
 このように、差分障害物検出部106は、障害物のみならず、「事前定義地図」と異なる様々な環境変化について検出し、アプローチ領域修正部107は、差分障害物検出部が検出した様々な環境変化を考慮して「修正アプローチ領域」を決定することが可能である。
 この場合、環境地図統合部108は、様々な環境変化を考慮して修正された「修正アプローチ領域」を記録した「統合環境地図」を生成する。
 次に、図6を参照してユーザ端末30の構成例について説明する。
 前述したように、ユーザ端末30は、例えばタブレット端末、スマホ、PC等の様々な情報処理装置によって構成される。
 ユーザ端末30は、ロボット10を操作するUIとしての機能と、ロボット10に行わせる作業を定義する作業定義データの作成UIとしての機能を有する。
 図6に示すように、ユーザ端末30は、ユーザインタフェース(UI)201、ユーザインタフェース(UI)制御部202、ロボット操作情報管理部203、作業定義データ管理部204、アプローチ領域生成部205、事前定義地図生成部206、作業定義データ記憶部207、通信IF208を有する。
 ユーザインタフェース(UI)201は、例えばユーザ端末30に対するユーザ操作情報の入力処理やデータ表示処理が可能なタッチパネル型表示部によって構成される。
 ユーザインタフェース(UI)制御部202の制御によって様々なデータが表示される。
 またユーザ20は、ロボット10の制御に利用可能な様々な情報、例えば作業シーケンス情報や、走行経路情報などを入力することができる。
 ユーザインタフェース(UI)201にユーザが入力した情報は、ユーザインタフェース(UI)201を介して、ユーザインタフェース(UI)制御部202に出力される。
 ユーザインタフェース(UI)制御部202は、ユーザ20が入力した情報に応じてユーザインタフェース(UI)201に表示する内容を切り替える。
 また、ユーザインタフェース(UI)制御部202は、ユーザ20によるユーザインタフェース(UI)201に対する入力情報をロボット操作情報管理部203や、作業定義データ管理部204に出力する。
 ロボット操作情報管理部203は、例えば通信IF208を介してロボット10の情報処理装置100から入力されるロボット10の状態や、ロボット10が受信している作業定義データの一覧、作業中の作業の進行状況などを取得し、ユーザインタフェース(UI)201への表示内容を生成し、ユーザインタフェース(UI)制御部202に出力する。
 また、ロボット操作情報管理部203は、ユーザインタフェース(UI)制御部202を介してユーザによる入力情報を受け取ると、通信IF208を介してユーザ入力情報をロボット10に送信する。ユーザ入力情報は、例えばロボット10が実行する作業の選択情報や、作業の開始・停止などの指示データである。
 作業定義データ管理部204は、作業定義データ作成用UIを生成して、ユーザインタフェース(UI)制御部202を介してユーザインタフェース(UI)201に出力し、ユーザ20が、作業定義データ作成用UIを利用して入力した作業定義データを取得し、作業定義データ記憶部207に格納するとともに、通信IF208を介してロボット10の情報処理装置100に送信する。
 なお、ユーザ20がユーザインタフェース(UI)201を介して入力する作業定義データ生成用情報は例えば図7に示すような情報である。すなわち、以下の情報である。
 (1)障害物情報=ロボットが作業する空間に存在する障害物の設定情報
 (2)経由点情報=ロボットが移動する際に通過する経由点の設定情報
 (3)作業対象情報=ロボットが作業を行う対象の位置、もしくは領域の設定情報
 (4)作業動作情報=作業対象物体に対してロボットが行う作業に必要となるアーム部やハンド部の動作の設定情報
 (5)作業シーケンス情報=ロボットの移動や作業動作などの一連の流れについての設定情報
 作業定義データ管理部204は、例えば上記(1)~(5)の作業定義データ生成用情報を入力するために利用可能なUIを、ユーザインタフェース(UI)制御部202を介してユーザインタフェース(UI)201に出力する。
 さらに、作業定義データ管理部204は、ユーザインタフェース(UI)201を介してユーザが入力した情報に従って、アプローチ領域生成部205と事前定義地図生成部206とともに作業定義データを生成し、生成した作業定義データを作業定義データ記憶部に格納するとともに、通信IF208を介してロボット10の情報処理装置100に送信する。
 なお、作業定義データ管理部204が、アプローチ領域生成部205と事前定義地図生成部206とともに生成する作業定義データは、以下のデータを含むデータである。
 (1)事前定義地図
 (2)作業シーケンス情報
 (3)作業動作情報
 これらのデータの詳細については後段で説明する。
 アプローチ領域生成部205は、作業定義データ管理部204を介してアプローチ領域の生成に必要となるユーザ入力情報を入力し、各作業領域に対応する「事前設定アプローチ領域」を決定する。ユーザが入力した作業対象の位置・領域や、作業動作と、障害物情報を用いて、障害物にロボット10が干渉(接触)せずに作業対象物に対する予定の作業を行うことが可能な領域を「事前設定アプローチ領域」として生成する。
 事前定義地図生成部206は、「事前定義地図」を生成する。
 事前定義地図生成部206は、「事前定義地図」の生成に必要となる情報を、作業定義データ管理部204を介して入力して「事前定義地図」を生成する。例えばユーザインタフェース(UI)201を介して入力したユーザ設定情報に含まれる障害物位置情報や経由点情報、さらに、アプローチ領域生成部205が生成した「事前設定アプローチ領域」情報などを入力して、「事前定義地図」を生成する。
 作業定義データ管理部204は、ユーザインタフェース(UI)201を介して入力したユーザ設定情報、すなわち図7を参照して説明したユーザ設定情報と、事前定義地図生成部206が生成した「事前定義地図」を含む作業定義データを作業定義データ記憶部207に格納するとともに、通信IF208を介してロボット10の情報処理装置100に送信する。
 なお、本実施例ではユーザ端末30内でアプローチ領域の生成や、「事前定義地図」の生成処理を実行しているが、これらの処理は、通信IF208を介して外部のサーバに依頼してもよい。
 作業定義データ記憶部207は、作業定義データ管理部204の指示に従い、作業定義データ管理部204が生成した作業定義データを記憶する。なお、作業定義データには図7を参照して説明したユーザ設定情報と、事前定義地図生成部206が生成した「事前定義地図」が含まれる。
 作業定義データ記憶部207は、具体的には、例えば、フラッシュメモリなどの不揮発性記憶部によって構成される。
 通信IF208は、ロボット10の情報処理装置100と通信を行い、ユーザ20がユーザ端末30において作成した作業定義データや、ユーザ端末30上のUI201を利用して行った入力情報や操作情報を送信する。また、ロボット10の情報処理装置100からロボット状態情報や、作業進行状況などの情報を受信する。受信情報は、ロボット操作情報管理部203を介してユーザインタフェース(UI)201に出力表示される。
 なお、前述したように、ユーザ端末30の機能をロボット10内部の情報処理装置に全て組み込んだ構成も可能である。この場合、図6に示す構成はロボット10の情報処理装置100内に構成されることになる。
 このような構成とした場合、ユーザ端末30を用いずにロボット10単独で本開示の処理が実行される。
 先に説明したように、作業定義データ管理部204が、アプローチ領域生成部205と事前定義地図生成部206とともに生成する作業定義データは、以下のデータを含むデータである。
 (1)事前定義地図
 (2)作業シーケンス情報
 (3)作業動作情報
 以下、これらのデータの詳細について説明する。
 まず、図8を参照して、作業定義データ管理部204が、アプローチ領域生成部205と事前定義地図生成部206とともに生成する「事前定義地図」の具体例について説明する。
 なお、図8に示す例は、2次元(2D)地図であるが、3次元(3D)地図としてもよい。また、グリッドマップやボクセルマップのような格子状のマップを用いてもよい。また、各領域を囲む形状の頂点情報のみ持つようなベクター形式のマップでもよい。
 「事前定義地図」は、前述したように、ロボット10の作業空間にある障害物の情報や、ユーザの指示した作業を障害物に接触することなく実行可能な作業領域である「事前設定アプローチ領域」が記録された地図である。
 さらに、ユーザにより指定されたロボットの経由点情報や、作業対象情報等も記録されることになる。
 図8に示すように、「事前定義地図」には、経由点A~Gが記録されている。これらの経由点A~Gはユーザが入力した情報であり、ロボット10をA~Gの順に移動させることを指定した情報である。経由点Aがスタート位置であり、経由点Gがゴール位置になる。
 経由点は、ロボットが空間を移動するにあたり、通るべきルートを指定するために設定する。地図の移動可能な領域(障害物領域ではないところ)に設定される。
 なお、図8に示す地図上では経由点A~Gを点として示しているが、地図に付属する属性データには各点の位置情報が記録されている。
 「事前定義地図」には、さらに、作業対象情報が記録される。図8に示す例では作業対象X、作業対象Y、これら2つの作業対象が記録されている。
 なお、図8に示す地図には作業対象X,Yとして円柱状の図形が示されているが、地図に付属する属性データには各作業対象の位置情報や領域情報、3次元形状情報等が記録されている。
 作業対象の位置情報や領域情報は、ロボット10がアーム部12やハンド部13を用いて作業を行う物体の置かれている位置や領域を示す情報である。
 また、作業対象物体が複数、置かれている場合や、作業物体が位置決めされていない場合は、作業対象物体の置かれる範囲を領域情報として記録する。
 障害物は、ロボット10が接触、衝突する可能性のある障害物である。なお、図8に示す地図には障害物として平面状の図形を示しているが、地図に付属する属性データには各障害物の位置、領域情報、3次元形状情報等が記録されている。
 例えば、机や棚などの物理的な障害物の他、ロボットの進入を禁止したい領域についても障害物として設定することができる。なお、2Dで表現しても、高さ情報と合わせて3Dで表現してもよい。
 なお、障害物領域は、ロボット10の移動部11のみが進入できない領域であり、ロボット10のアーム部12は進入可能な領域である。ただし、必要に応じて、ロボット10のアーム部12は進入可能な領域であっても障害物領域として設定することは可能である。
 「アプローチ領域」は、ユーザの指示した作業を障害物に接触することなく実行可能な作業領域として規定される領域であり、各作業対象X,Yに対応して個別に設定される。なお、前述したように、「事前定義地図」に規定される「アプローチ領域」は、「事前設定アプローチ領域」である。
 先に図5等を参照して説明したように、「事前設定アプローチ領域」は、ロボット10のセンサ検出情報を用いて生成される「障害物地図」を用いて修正される場合がある。
 なお、図8に示すアプローチ領域は楕円状の形状となっているが、ロボットアームの運動学を反映した、より複雑な形状を有していてもよい。
 また、アプローチ領域を生成する際にサンプリング点を生成している場合、そのサンプリング点に関する情報を合わせて保持してもよい。
 なお、サンプリング点を利用したアプローチ領域の生成手法については後段で説明する。
 次に、図9を参照して、作業定義データ管理部204が生成する「作業シーケンス情報」の具体例について説明する。
 作業定義データ管理部204は、ユーザの入力情報、すなわち先に図7を参照して説明したユーザの入力情報中の「(5)作業シーケンス情報」に従って、作業定義データとしての「作業シーケンス情報」を生成する。
 図9に示すように、作業定義データ管理部204が生成する「作業シーケンス情報」は、ロボット10に実行させる移動処理や作業を時系列に並べた情報である。
 時系列順のシーケンスNo.に対応させてロボット10に実行させる移動処理や作業情報を記録している。
 図9に示す「作業シーケンス情報」は、地点Aに待機しているロボットに、作業対象Xに対して作業した後、移動して作業対象Yに対して作業を行い、その後地点Gに移動するシーケンスを記録したものである。
 この作業シーケンスに従ったロボットの動作イメージは図10に示すものとなる。
 図10に示すように、ロボット10は、経由点Aから経由点Bに移動し、作業対象X対応のアプローチ領域AXに侵入する。その後、ロボット10は、アプローチ領域AX内で作業対象Xに対する予定の作業(P)を実行する。予定作業(P)の完了後、経由点C,Dを通過して、作業対象Y対応のアプローチ領域AYに侵入する。その後、ロボット10は、アプローチ領域AY内で作業対象Yに対する予定の作業(Q)を実行する。予定作業(Q)の完了後、経由点E,F,Gを順次移動してシーケンスを終了する。
 図9に示す作業シーケンスに従ったロボット10の動作シーケンスはこのようなものとなる。
 次に、図11を参照して、作業定義データ管理部204が生成する「作業動作情報」の具体例について説明する。
 作業定義データ管理部204は、ユーザの入力情報、すなわち先に図7を参照して説明したユーザの入力情報中の「(4)作業動作情報」に従って、作業定義データとしての「作業動作情報」を生成する。
 「作業動作情報」は、作業対象物体に対してロボットが行う作業に必要となるアーム部やハンド部の動作の設定情報である。
 作業定義データ管理部204が生成する「作業動作情報」の具体例を図11に示す。
 図11に示すように、作業定義データ管理部204が生成する「作業動作情報」は、ロボット10がアプローチ領域に到達し、作業対象物体に対する作業を行う際、予定の作業を行う場合のロボット10のアーム部12の軌道やハンド部13の向きや状態(Open/Close)を記述したデータである。
 例えば先に図10を参照して説明した作業対象Xに対する作業Pや、作業対象Yに対する作業Qを行うためのロボット10のアーム部12の軌道やハンド部13の向きや状態(Open/Close)を記述する。
 このように、ユーザ端末30の作業定義データ管理部204は、アプローチ領域生成部205と事前定義地図生成部206とともに以下のデータ、すなわち、
 (1)事前定義地図
 (2)作業シーケンス情報
 (3)作業動作情報
 これらのデータを含む「作業定義データ」を生成し、作業定義データ記憶部207に格納するとともに、ロボット10の情報処理装置100に送信する。
 ロボット10の情報処理装置100は、ユーザ端末30から受信する上記(1)~(3)のデータを含む「作業定義データ」に従って、ロボット10に所定の動作、すなわち移動処理、作業処理を実行させる。
  [3.ユーザ端末における作業定義データ生成処理の詳細について]
 次に、ユーザ端末30における作業定義データ生成理の詳細について
 上述したように、「作業定義データ」、すなわち、
 (1)事前定義地図
 (2)作業シーケンス情報
 (3)作業動作情報
 これらのデータを含む「作業定義データ」の生成処理は、ユーザ端末30において、ユーザ入力情報を用いて実行される。
 以下では、この作業定義データ生成処理の詳細について説明する。
 ユーザ端末30では、「作業定義データ」の生成処理に際して以下の各情報の生成処理を行う。
 (1)障害物情報の生成処理
 (2)作業対象情報の生成処理
 (3)経由点情報の生成処理
 (4)作業動作情報の生成処理
 (5)アプローチ領域情報の生成定処理
 (6)作業シーケンス情報の生成処理
 以下、これら各情報の生成処理の具体例について、順次、説明する。
 (1)障害物情報の生成処理
 まず、ユーザ端末30における障害物情報の生成処理の具体例について説明する。
 ユーザ20は、ユーザ端末30の画面を障害物設定モードにし、画面上で、障害物の位置を示す座標を指定し、障害物の形状に相当する長方形や直方体、円などの形状を描画する。
 あるいは、ロボット10を作業空間内で事前に動かし、その際にロボット10の障害物地図作成部103が生成した「障害物地図」をユーザ端末30に転送して、ユーザ端末30内で「障害物地図」に記録された障害物を抽出して障害物情報として使用してもよい。
 (2)作業対象情報の生成処理
 次にユーザ端末30における作業対象情報の生成処理の具体例について説明する。
 ユーザ20は、ユーザ端末30の画面を作業対象物設定モードにし、画面上で作業対象物の位置を示す座標を指定する。
 なお、作業対象物の位置を示す座標は、作業対象物中、ロボット10のハンド部13が掴む位置を指定する。また、作業対象物の形状に相当する長方形や直方体、円などの形状を描画してもよい。
 (3)経由点情報の生成処理
 次にユーザ端末30における経由点情報の生成処理の具体例について説明する。
 ユーザ20は、ユーザ端末30の画面を経由点入力モードにし、画面上で経由点の位置を示す座標を指定する。
 また、経由点に名前を付けてもよい。
 (4)作業動作情報の生成処理
 次にユーザ端末30における作業動作情報の生成処理の具体例について説明する。
 作業動作情報は、先に図11を参照して説明したデータである。すなわち、ロボット10がアプローチ領域に到達し、作業対象物体に対する作業を行う際、予定の作業を行う場合のロボット10のアーム部12の軌道やハンド部13の向きや状態(Open/Close)を記述したデータである。
 ユーザ端末30において作業動作情報を生成する際、ユーザ20は、まずユーザ端末30の画面を作業動作情報入力モードにし、画面上でロボット10のアーム部12やハンド部13の作業動作を時系列データとして入力する。
 例えば、作業対象物に対して行いたい作業を、ロボット10のハンド部13の位置(TCP:Tool Center Point)の時系列データとして入力する。ハンド部の位置(TCP)は、2指グリッパであれば、指間の中心位置である。
 また、どの作業対象に対する作業なのかも合わせて設定する。
 作業動作の設定は、3D空間上にハンド部13やアーム部12の時系列軌跡を示す経由点を指定することで設定することができる。
 または、ロボット10のアーム部12やハンド部13をCG上で動かして任意の姿勢を取らせ、その姿勢を移動する順に登録していくような方法で設定してもよい。
 あるいは、ロボット10の実機を用いたダイレクトティーチングを行い、ロボット10(実機)の姿勢情報をユーザ端末30に転送し、この転送データから得られるハンド部13やアーム部12の時系列軌跡を示す経由点から作業動作情報を生成してもよい。
 (5)アプローチ領域情報の生成定処理
 次にユーザ端末30におけるアプローチ領域情報の生成処理の具体例について説明する。
 アプローチ領域は、ロボット10が障害物に干渉(接触)せずに作業対象物に対する予定の作業を行うことが可能な領域である。
 ユーザ端末30は、ユーザ20が入力した作業対象の位置・領域や、作業動作と、障害物情報を用いて、障害物にロボット10が干渉(接触)せずに作業対象物に対する予定の作業を行うことが可能な領域を「アプローチ領域」として決定する。
 先に図6を参照して説明したように、アプローチ領域の生成処理は、ユーザ端末30のアプローチ領域生成部205において実行される。
 ユーザ20は、ユーザインタフェース(UI)201を介して障害物情報、作業対象情報、作業動作情報を入力し、これらの各情報の入力完了後、ユーザインタフェース(UI)201に表示されたアプローチ領域生成指示アイコンを操作すると、アプローチ領域生成部205においてアプローチ領域生成処理が開始される。
 なお、アプローチ領域生成部205におけるアプローチ領域生成処理の実行タイミングは、様々な設定が可能である。例えば、ユーザ端末30で生成した作業定義データを作業定義データ記憶部207に保存する直前のタイミングや、ロボット10へ転送する直前のタイミングなどに行う構成としてもよい。
 図12を参照してアプローチ領域生成部205が実行するアプローチ領域生成処理の具体例について説明する。
 図12は、机などの障害物上に置かれた作業対象物Xに対してユーザ20が設定した作業動作(P)をロボット10が実行する際に、ロボット10が障害物に接触することなく安全に作業(P)を実行可能な領域である「アプローチ領域AX」を生成する場合の処理例を示す図である。
 作業対象物Xの位置を、PosX(XposX,YposX,ZposX)、
 ロボット10の移動部11が走行する平面をz=0平面とし、
 作業対象物Xの位置PosXを、ロボット10の移動部11の走行平面(z=0)に投影した位置を、PosX2d(XposX,YposX,0)
 とする。
 ロボット10の移動部11の基準点(例えば4輪車両であれば、後輪の車軸中心)からロボット10のアーム部12を最大限に伸ばした際のロボット10のハンド部13の位置(TCP)までの距離をRとする。
 作業対象物Xの位置PosXのロボット走行平面(z=0)への投影位置PosX2dを中心とした半径Rの円、サークルX(CircleX)を設定して、この円内に複数のサンプリング点を設定する。
 図12に示す例では、サンプリング点は黒丸(●)で示している。
 これらのサンプリング点(●)は、作業対象の配置位置(PosX)をロボット走行平面(z=0)へ投影した投影点(PosX2d)を中心とする規定半径(上記R)内に規定密度で設定した点をサンプリング点として示している。
 アプローチ領域生成部205は、アプローチ領域生成処理に際して、図12に示す例では、サンプリング点(●)の全てに対して、ロボット10が各サンプリング点に位置した状態で、障害物に干渉(接触)することなく、作業対象Xに対する予定の作業を実行できるか否かを判定する。
 アプローチ領域生成部205は、この判定処理によって、作業が実行可能と判定したサンプリング点のみを選択し、選択したサンプリング点のみによって規定される領域をアプローチ領域として決定する。
 なお、図12に示す例では、サンプリング点を一定間隔ごとに格子状に設定しているが、ランダムにサンプリング点を設定してもよい。
 アプローチ領域生成部205が実行する各サンプリング点の具体的な判定処理について説明する。
 アプローチ領域生成部205は、作業対象物Xの位置PosXのロボット走行平面(z=0)への投影位置PosX2dを中心とした半径Rの円、サークルX(CircleX)内に設定した複数のサンプリング点各々について、以下の判定処理を行う。
 (判定処理1)ロボット10のハンド部13の位置(TCP)が、作業対象Xに対する予定作業(P)を行う際に必要となる位置に到達可能か否か。
 (判定処理2)ロボット10全体(移動部11、アーム部12、ハンド部13)が障害物と干渉(接触)しないか否か。
 (判定処理1)は、サンプリング点の位置にロボット10を配置したうえで、作業対象の位置にロボット10のハンド部13の位置(TCP)が届くロボット10やアーム部12の姿勢を、逆運動学を用いて計算し、算出できれば届くとみなす。
 (判定処理2)は、サンプリング点の位置にロボット10を配置し、その上で(判定処理1)で算出したロボット10やアーム部12の姿勢に設定したとき、周辺の全ての障害物と干渉(接触)しないことを確認する。もし干渉(接触)する場合は、干渉(接触)せずにロボット10のハンド部13の位置(TCP)が作業対象の位置に届く他のロボット10やアーム部12の姿勢が無いか逆運動学を用いて計算する。
 上記(判定処理1)、(判定処理2)は、サンプリング点上で移動部の向きを変えて、各向きで判定を行う。
 このようにして各サンプリング点を判定した上で、ロボット10のハンド部13の位置(TCP)が作業対象に届き、かつ障害物と干渉(接触)しないサンプリング点のうち、外周にある点を結ぶことで、アプローチ領域を生成する。
 図13には、各サンプリング点の判定処理によって決定されたアプローチ領域を示している。
 白丸(〇)で示すサンプリング点がアプローチ領域内のサンプリング点である。すなわち、サンプリング点中、障害物と干渉(接触)せずに作業対象に対して予定の作業動作を実行可能であることが確認された作業可能サンプリング点である。
 一方、黒丸(●)で示すサンプリング点は、作業不可能サンプリング点であり、アプローチ領域外のサンプリング点である。すなわち、サンプリング点中、障害物と干渉(接触)せずに作業対象に対して予定の作業動作を実行不可能であることが確認された作業不可能サンプリング点である。
 アプローチ領域生成部205は、このようなサンプリング点各々についての作業可能性判定処理によってアプローチ領域を決定する。
 なお、アプローチ領域生成部205が実行するアプローチ領域生成処理の処理シーケンスの詳細例については、後段において図14に示すフローチャートを参照して説明する。
 (6)作業シーケンス情報の生成定処理
 次にユーザ端末30における作業シーケンス情報の生成処理の具体例について説明する。
 作業シーケンス情報は、先に図9を参照して説明した情報であり、図9に示すように、ロボット10に実行させる移動処理や作業を時系列に並べた情報である。
 時系列順のシーケンスNo.に対応させてロボット10に実行させる移動処理や作業情報を記録した情報である。
 ユーザ20はユーザ端末30に、ロボット10に行わせたい作業シーケンスを順次、入力する。
 先に説明した図10に示すシーケンスを設定する場合の例について説明する。
 ユーザ20は、例えば以下のようなロボット10の動作(移動、作業)を順次、入力する。
 ・経由点Aから経由点Bへの移動、
 ・作業対象X対応のアプローチ領域AXに侵入してアプローチ領域AX内で作業対象Xに対する予定の作業(P)を実行、
 ・予定作業(P)の完了後、経由点C,Dを通過して、作業対象Y対応のアプローチ領域AYに侵入、
 ・アプローチ領域AY内で作業対象Yに対する予定の作業(Q)を実行、
 ・予定作業(Q)の完了後、経由点E,F,Gを順次移動して終了する。
 なお、図9に示す作業シーケンス情報は表形式の表現となっているが、BASICのような言語や、Scratch等のブロックを組み合わせるようなビジュアルプログラミング言語を使用してもよい。また、条件分岐などの制御文や、他の言語機能を併用してもよい。
 これらの処理によって、ユーザ端末30において、作業定義データ、すなわち、
 (1)事前定義地図
 (2)作業シーケンス情報
 (3)作業動作情報
 これらのデータを含む「作業定義データ」の生成が完了する。
 ユーザ端末30において生成された作業定義データは、ユーザの操作等によりユーザ端末の作業定義データ記憶部207に保存されるとともに、作業定義データ管理部204から通信IF208を介してロボット10の情報処理装置100に送信される。
 ロボット10の情報処理装置100は通信IF111、ロボット制御部113を経由して作業定義データ管理部104が作業定義データを受け取り、記憶部に記憶する。これにより、ロボット10は、作業定義データに従った作業を開始できる状態になる。
  [4.アプローチ領域生成処理の処理シーケンスについて]
 次に、アプローチ領域生成処理の処理シーケンスについて説明する。
 図14は、ユーザ端末30のアプローチ領域生成部205が実行するアプローチ領域生成処理の処理シーケンスの一例について説明するフローチャートを示す図である。
 なお、このフローに従った処理は、ユーザ端末30のデータ処理部であるアプローチ領域生成部205が、ユーザ端末30の記憶部に格納されたプログラムに従って実行することが可能である。例えばプログラム実行機能を有するCPU等のプロセッサによるプログラム実行処理として行うことができる。
 ただし、前述したように、先に図6を参照して説明したユーザ端末30の機能をロボット10内部の情報処理装置に全て組み込んだ構成も可能であり、この場合はユーザ端末30を用いずにロボット10単独で図14に示すフローに従った処理を実行することが可能である。
 以下では、一例として、ユーザ端末30のアプローチ領域生成部205が図14に示すフローに従った処理を実行するものとして説明する。
 なお、図14に示すフローチャートは、先に図12を参照して説明したサンプリング点の設定処理が完了した後の各サンプリング点の判定処理とアプローチ領域決定処理の処理シーケンスを示している。
 すなわち、各サンプリング点がアプローチ領域内の作業可能サンプリング点(〇)であるか、アプローチ領域外の作業不可能サンプリング点(●)であるかの判定処理と判定結果に基づくアプローチ領域決定処理の処理シーケンスを示すフローチャートである。
 ユーザ端末30のアプローチ領域生成部205は、図14に示すフローの前処理として、先に図12を参照して説明した処理に従ったサンプリング点設定処理を行っているものとする。
 すなわち、作業対象物Xの位置PosXをロボット10の移動部11の走行平面(z=0)に投影した位置を、PosX2d(XposX,YposX,0)を中心とした半径Rの円、サークルX(CircleX)を設定して、この円内に複数のサンプリング点を設定する処理を完了しているものとする。
 なお、半径Rは、ロボット10の移動部11の基準点(例えば4輪車両であれば、後輪の車軸中心)からロボット10のアーム部12を最大限に伸ばした際のロボット10のハンド部13の位置(TCP)までの距離Rに相当する長さである。
 以下、図14に示すフローの各ステップの処理について説明する。
  (ステップS101)
 まず、ユーザ端末30のアプローチ領域生成部205は、ステップS101において、半径Rの円サークルX(CircleX)内の全サンプリング点から、1つの判定対象サンプリング点を選択する。
 図15を参照して、この(ステップS101)の処理の具体例について説明する。
 図15(S101)には、ロボット10と、机等の障害物に置かれた作業対象Xを示している。
 なお、ユーザによって指定された作業内容は、図に示すように作業対象Xを右上に移動させる処理であるとする。
 ロボット10には、基準点(例えば4輪車両であれば、後輪の車軸中心)を●で示している。
 まず、ステップS101では、1つの判定対象サンプリング点を選択する。図15には複数のサンプリング点を示しており、この中の1つのサンプリング点を判定対象サンプリング点として選択する。
  (ステップS102)
 次に、アプローチ領域生成部205は、ステップS102において、選択した判定対象サンプリング点にロボット基準点を一致させた状態で、ロボットを回転させ、障害物に接触しない回転位置の有無を判定する。
 図15を参照して、この(ステップS102)の処理の具体例について説明する。
 図15(S102)には、ステップS101で選択した判定対象サンプリング点にロボット10の基準点を一致させた状態で、ロボット10を回転させ、障害物に接触しない回転位置の有無を判定する処理を示している。
  (ステップS103)
 ステップS103は、ステップS102における判定処理の結果に基づく分岐ステップである。
 アプローチ領域生成部205は、ステップS102における判定処理、すなわち、選択した判定対象サンプリング点にロボット基準点を一致させた状態で、ロボットが障害物に接触しない回転位置があるか否かの判定処理において、ロボットが障害物に接触しない回転位置があると判定した場合はステップS103の判定結果がYesとなり、ステップS105に進む。
 一方、ロボットが障害物に接触しない回転位置がないと判定した場合はステップS103の判定結果がNoとなり、ステップS104に進む。
 図16を参照して、この(ステップS103)の処理の具体例について説明する。
 図16には、
 (ステップS103の判定=Yes)非接触回転位置あり、
 (ステップS103の判定=No)非接触回転位置なし、
 これら2つの具体例を示している。
 (ステップS103の判定=Yes)非接触回転位置あり、
 この例は、判定対象サンプリング点にロボット基準点を一致させた状態で、ロボットが障害物に接触しない回転位置が検出された例である。
 このような場合には、ステップS103の判定結果がYesとなり、ステップS105に進む。
 一方、(ステップS103の判定=No)非接触回転位置なし、
 この例は、判定対象サンプリング点にロボット基準点を一致させた状態で、ロボットが障害物に接触しない回転位置を検出できなかった場合の例である。
 このような場合には、ステップS103の判定結果がNoとなり、ステップS104に進む。
  (ステップS104)
 ステップS104の処理は、ステップS103の判定がNoの場合、すなわち、判定対象サンプリング点にロボット基準点を一致させた状態で、ロボットが障害物に接触しない回転位置が検出されなかった場合に実行する。
 この場合、アプローチ領域生成部205は、ステップS104において、判定対象サンプリング点を作業不可サンプリング点、すなわち、アプローチ領域外のサンプリング点に設定する。
  (ステップS105)
 ステップS105の処理は、ステップS103の判定がYesの場合、すなわち、判定対象サンプリング点にロボット基準点を一致させた状態で、ロボットが障害物に接触しない回転位置が検出された場合に実行する。
 この場合、アプローチ領域生成部205は、ステップS105において、障害物に接触しないロボットの回転位置で予定作業が実行可能か否かを判定する。
 なお、予定作業はユーザ20が入力した作業動作情報から取得する。
 図17を参照して、この(ステップS105)の処理の具体例について説明する。
 本処理例では、ユーザが入力した作業指示は図17に示すように作業対象Xを右上に移動させる処理であるとする。
 この場合、アプローチ領域生成部205は、ステップS105において、障害物に接触しないロボットの回転位置で、この作業が実行可能か否かを判定する。
  (ステップS106)
 ステップS106は、ステップS105における判定処理の結果に基づく分岐ステップである。
 アプローチ領域生成部205は、ステップS105における判定処理、すなわち、障害物に接触しないロボットの回転位置で予定作業が実行可能か否かの判定処理において、予定作業が実行可能であると判定した場合はステップS106の判定結果がYesとなり、ステップS107に進む。
 一方、予定作業が実行不可能であると判定した場合はステップS106の判定結果がNoとなり、ステップS104に進む。
 図18を参照して、この(ステップS106)の処理の具体例について説明する。
 図18には、
 (ステップS106の判定=Yes)障害物に接触しないロボットの回転位置で予定作業が実行可能、
 (ステップS106の判定=No)障害物に接触しないロボットの回転位置で予定作業が実行不可能、
 これら2つの具体例を示している。
 (ステップS106の判定=Yes)障害物に接触しないロボットの回転位置で予定作業が実行可能、
 この例は、判定対象サンプリング点にロボット基準点を一致させ、かつ障害物に接触しないロボットの回転位置で予定作業が実行可能であることが確認された例である。
 このような場合には、ステップS106の判定結果がYesとなり、ステップS107に進む。
 一方、(ステップS106の判定=No)障害物に接触しないロボットの回転位置で予定作業が実行不可能、
 この例は、判定対象サンプリング点にロボット基準点を一致させ、かつ障害物に接触しないロボットの回転位置で予定作業が実行不可能であることが確認された例である。
 このような場合には、ステップS106の判定結果がNoとなり、ステップS104に進む。
  (ステップS104)
 ここで、再度、ステップS104について説明する。
 ステップS104の処理は、ステップS103の判定がYesの場合でも、ステップS106の判定がNoの場合にも実行される。
 すなわち、ステップS103において、判定対象サンプリング点にロボット基準点を一致させた状態で、ロボットが障害物に接触しない回転位置が検出されたが、
 ステップS106で障害物に接触しないロボットの回転位置で予定作業が実行不可能と判定された場合にも実行する。
 この場合、アプローチ領域生成部205は、ステップS104において、判定対象サンプリング点を作業不可サンプリング点、すなわち、アプローチ領域外のサンプリング点に設定する。
  (ステップS107)
 一方、ステップS107の処理は、ステップS106の判定がYesの場合、すなわち、障害物に接触しないロボットの回転位置で予定作業が実行可能、と判定した場合に実行する。
 この場合、アプローチ領域生成部205は、ステップS107において、判定対象サンプリング点を作業可能サンプリング点、すなわち、アプローチ領域内のサンプリング点に設定する。
  (ステップS108)
 ステップS104の処理、すなわち、判定対象サンプリング点を作業不可能サンプリング点、すなわち、アプローチ領域外のサンプリング点に設定する処理、または、
 ステップS107の処理、すなわち、判定対象サンプリング点を作業可能サンプリング点、すなわち、アプローチ領域内のサンプリング点に設定する処理、これらの処理のいずれかの処理が完了した場合、ステップS108の処理を実行する。
 これら、いずれかの場合、アプローチ領域生成部205は、ステップS108において、未処理のサンプリング点、すなわち判定処理が完了していないサンプリング点が残っていないかを判定する。
 未処理サンプリング点がある場合は、ステップS101に戻り、未処理サンプリング点の処理を実行する。
 一方、未処理サンプリング点がない場合は、ステップS109に進む。
  (ステップS109)
 全てのサンプリング点の判定処理が完了すると、アプローチ領域生成部205は、ステップS109において、作業可能サンプリング点のみからなる領域をアプローチ領域に設定する。
 図19を参照して、この(ステップS109)の処理の具体例について説明する。
 図19には、半径Rの円サークルX(CircleX)内の各サンプリング点の判定処理によって決定されたアプローチ領域を示している。
 白丸(〇)で示すサンプリング点がアプローチ領域内のサンプリング点である。すなわち、サンプリング点中、障害物と干渉(接触)せずに作業対象に対して予定の作業動作を実行可能であることが確認された作業可能サンプリング点である。
 一方、黒丸(●)で示すサンプリング点は、作業不可能サンプリング点であり、アプローチ領域外のサンプリング点である。すなわち、サンプリング点中、障害物と干渉(接触)せずに作業対象に対して予定の作業動作を実行不可能であることが確認された作業不可能サンプリング点である。
 アプローチ領域生成部205は、このようなサンプリング点各々に対する作業可能性判定処理によってアプローチ領域を決定する。
 図19に示すアプローチ領域AXにロボット10の基準点があれば、障害物に対する接触や干渉(接触)を起こすことなく、作業対象Xに対する予定の作業、すなわちユーザが入力した作業動作情報に従った処理を実行することが可能となる。
 アプローチ領域生成部205は、作業対象物が複数ある場合、作業対象物各々に対して、図14を参照して説明したフローに従った処理を実行する。すなわちサンプリング点各々に対する作業可能性判定処理によるアプローチ領域生成処理を実行する。
 例えば先に説明した図9に示す「作業シーケンス情報」に従ってロボット10を動作させる場合、この作業シーケンスに従ったロボットの動作イメージは図10に示すものとなる。
 図10に示す動作シーケンスでは、2つの作業対象X,Yがあり、これら2つの作業対象X,Y各々に対して、図14を参照して説明したフローに従った処理を実行してアプローチ領域を生成する。
 図10に示す作業対象Yに対応するアプローチ領域の設定例を図20に示す。
 図20は、作業対象Yの配置位置(PosY)をロボット走行平面(z=0)へ投影した投影点(PosY2d)を中心とする半径Rの円サークルY(CircleY)内の各サンプリング点の判定処理によって決定されたアプローチ領域を示している。
 白丸(〇)で示すサンプリング点がアプローチ領域内のサンプリング点である。すなわち、図14を参照して説明したフローに従った処理を実行して障害物と干渉(接触)せずに作業対象に対して予定の作業動作を実行可能であることが確認された作業可能サンプリング点である。
 一方、黒丸(●)で示すサンプリング点は、作業不可能サンプリング点であり、アプローチ領域外のサンプリング点である。これらは、図14を参照して説明したフローに従った処理を実行して、障害物と干渉(接触)せずに作業対象に対して予定の作業動作を実行不可能であることが確認された作業不可能サンプリング点である。
 アプローチ領域生成部205は、このようなサンプリング点各々に対する作業可能性判定処理によってアプローチ領域を決定する。
 図20に示すアプローチ領域AYにロボット10の基準点があれば、障害物に対する接触や干渉(接触)を起こすことなく、作業対象Yに対する予定の作業、すなわちユーザが入力した作業動作情報に従った処理を実行することが可能となる。
  [5.作業定義データに基づくロボットの動作の詳細について]
 次に、作業定義データに基づくロボットの動作の詳細について説明する。
 上述したように、ユーザ端末30では、「作業定義データ」、すなわち、
 (1)事前定義地図
 (2)作業シーケンス情報
 (3)作業動作情報
 これらのデータを含む「作業定義データ」を生成する。
 ユーザ端末30において生成された作業定義データは、ユーザの操作等によりユーザ端末の作業定義データ記憶部207に保存されるとともに、作業定義データ管理部204から通信IF208を介してロボット10の情報処理装置100に送信される。
 ロボット10の情報処理装置100は通信IF111、ロボット制御部113を経由して作業定義データ管理部104が作業定義データを受け取り、記憶部に記憶する。これにより、ロボット10は、作業定義データに従った作業を開始できる状態になる。
 以下、作業定義データに従ったロボット10の動作の詳細について説明する。
 まず、ユーザ20が操作を行い、ロボット10が作業を開始するまでの流れについて説明する。
 ユーザ20は、まず、ロボット10に実行させる作業に適用する「作業定義データ」をロボット10の情報処理装置100に入力する。
 ロボット10の情報処理装置100に対する「作業定義データ」の入力処理は、ロボット10に装着された図3に示す構成を有する情報処理装置100のロボット操作UI112を介して入力する。
 または、図6に示す構成を有するユーザ端末30を操作して、ユーザ端末30の通信IF208からロボット10の情報処理装置100の通信IF111を経由して入力する。
 以下においては、ロボット10の情報処理装置100に入力された「作業定義データ」に先に図9を参照して説明した「作業シーケンス情報」が含まれており、ロボット10を図9に示す「作業シーケンス情報」に従って動作させる場合の処理例について説明する。
 すなわち、作業シーケンスに従ったロボットの動作イメージは図21に示すものとなる。
 図21に示すように、ロボット10は、経由点Aから経由点Bに移動し、作業対象X対応のアプローチ領域AXに侵入する。その後、ロボット10は、アプローチ領域AX内で作業対象Xに対する予定の作業(P)を実行する。予定作業(P)の完了後、経由点C,Dを通過して、作業対象Y対応のアプローチ領域AYに侵入する。その後、ロボット10は、アプローチ領域AY内で作業対象Yに対する予定の作業(Q)を実行する。予定作業(Q)の完了後、経由点E,F,Gを順次移動してシーケンスを終了する。
 ロボット10は、最初、図21の地点Aにあるものとする。
 ロボット10本体のロボット操作UI112、またはユーザ端末30を介してユーザ20が作業開始の指示操作を行うと、作業開始指示が、ロボット10の情報処理装置100のロボット制御部113に入力される。
 なお、ロボット制御部113に入力される作業開始指示には、作業に使用する作業定義データを示す情報(作業定義データの名前、IDなど)が付与されていてもよい。
 また、事前に作業開始指示とは別に、使用する作業定義データを指定する情報がロボット操作UI112、もしくはユーザ端末30からロボット制御部113に送信されていてもよい。
 作業開始指示を入力したロボット制御部113は、作業定義データ管理部104に、ユーザ20から指定された「作業定義データ」の読み出しを要求する。
 作業定義データ管理部104は、ユーザ20から指定された「作業定義データ」を情報処理装置100内の記憶部から読み出す。
 なお、前述したように、「作業定義データ」には、以下の各データが含まれる。
 (1)事前定義地図
 (2)作業シーケンス情報
 (3)作業動作情報
 作業定義データ管理部104は、読み出した「作業定義データ」内の事前定義地図(地図データ)を事前定義地図管理部105に出力する。
 さらに、作業シーケンス情報と、作業動作情報をシーケンス制御部114に出力する。
 これらの処理の後、ロボット10は「作業定義データ」に従って動き始めることができるようになる。
 次に、ロボット10が作業中にセンサ101から入力するセンサ検出情報を用いた処理について説明する。
 ロボット10は、ユーザ20が入力した「作業定義データ」に従った動作を開始後、センサ101を用いて、ロボット走行環境にある障害物検出処理を継続して実行する。
 先に図3を参照して説明したようにセンサ101はロボット周囲の障害物などの周囲環境を検知するためのセンサであり、例えば、カメラやLiDAR(Light Detection and Ranging)等によって構成される。
 障害物地図作成部103は、センサ101の検出情報に基づいて、ロボット10から各障害物までの距離や相対的な位置関係、障害物の形状を解析し、さらに自己位置推定部102で推定した自己位置情報を用いて「障害物地図」を生成する。
 「障害物地図」は、先に図5(2a)を参照して説明したように、ロボット10の周囲に存在する障害物の配置位置を示す地図であり、ロボット10周囲の最新の障害物情報を含む地図である。
 障害物地図作成部103は、例えば占有格子地図(Occupancy Grid Map)のような「障害物地図」を作成する。
 前述したように、占有格子地図(グリッドマップ)は、格子によって規定される各区画(グリッド)内に障害物が存在する確率値を設定した地図である。る各区画(グリッド)の各々を「占有」「空き」「未知」等に分類した地図もある。
 ロボット10は、占有格子地図(グリッドマップ)の区画中、障害物の存在する確率の低い区画(グリッド)を走行ルートとして選択して走行することで障害物に衝突することなく安全に走行することができる。
 障害物地図作成部103が生成した「障害物地図」は、差分障害物検出部106に入力される。
 差分障害物検出部106は、障害物地図作成部103が生成した「障害物地図」と、ユーザ20が指定した「作業定義データ」に含まれる「事前定義地図」を比較して、2つの地図の差分を検出する。
 具体的には、例えば障害物地図作成部103が生成した「障害物地図」には存在するが、「事前定義地図」にない差分障害物(新規障害物)を検出する。
 先に図4、図5を参照して説明したように、図4(1a)に示す「事前定義地図」はロボット10の走行前に作成された地図であるのに対し、図5(2a)に示す「障害物地図」は、ロボット10のセンサによる取得情報に基づいて作成された最新の障害物位置を反映した地図である。
 図5(2a)に示す「障害物地図」には、先に図4(1a)を参照して説明した「事前定義地図」に含まれていない新規障害物である「差分障害物」が含まれる可能性がある。
 この「差分障害物」は、「事前定義地図」の作成時には存在しなかった障害物であり、「障害物地図」作成時に新たに検出された障害物である。
 差分障害物検出部106は、2つの地図の比較処理において、まず、例えばARマーカーなどを要所(例えば経由点Aなど)に配置し、それを自己位置推定部102が検出することで、「事前定義地図」と「障害物地図」の位置合わせを行う。
 さらに「事前定義地図」と「障害物地図」の位置合わせ後、各地図の対応位置同士の障害物の有無状態を比較する。「事前定義地図」に障害物が無く、「障害物地図」に障害物が存在する場合、その障害物を「事前定義地図」生成後に発生した「差分障害物(新規障害物)」と判定する。
 差分障害物検出部106は、検出した差分障害物情報をアプローチ領域修正部107に出力する。
 アプローチ領域修正部107は、以下の各情報を入力する。
 (a)事前定義地図管理部105から「事前定義地図」、
 (b)差分障害物検出部106が検出した「事前定義地図」に存在しない新たな障害物である「差分障害物」情報、
 アプローチ領域修正部107は、これらの入力情報を利用して、「事前定義地図」上に定義された「事前設定アプローチ領域」の修正処理を行う。
 具体的には、差分障害物検出部106が検出した「事前定義地図」に存在しない新たな障害物である「差分障害物」を考慮した「修正アプローチ領域」を生成する。
 すなわち、例えば図22に示すような「差分障害物(新規障害物)」が検出された場合、「事前定義地図」上に設定済の事前設定アプローチ領域である「アプローチ領域AX」の一部は、ロボット10が障害物に接触せずに作業対象Xに対する作業を実行できない領域になる。
 すなわち、「事前定義地図」上に設定済の事前設定アプローチ領域である「アプローチ領域AX」は「差分障害物(新規障害物)」を考慮しないで設定されたアプローチ領域である。
 アプローチ領域修正部107は、このような「事前定義地図」上に設定済の事前設定アプローチ領域を修正し、「差分障害物」を考慮した「修正アプローチ領域」を生成する。
 図23を参照してアプローチ領域修正部107が実行するアプローチ領域の修正の具体例について説明する。
 まず、「事前定義地図」上に設定済の「事前設定アプローチ領域」内にサンプリング点を設定する。例えば、「事前設定アプローチ領域」内に均等間隔でサンプリング点を設定する。
 なお、先に図12、図13、および図14のフローを参照して説明した「事前設定アプローチ領域」を生成する際に利用したサンプリング点(作業可能サンプリング点)をそのまま利用してもよい。
 新たなサンプリング点を設定してもよい。
 アプローチ領域修正部107は、「事前設定アプローチ領域」内に設定したサンプリング点各々について、ロボット10が作業対象に対する予定の作業を行った場合に差分障害物(新規障害物)と干渉(接触)が発生するか否かを確認する。
 具体的には、各サンプリング点について、ロボット全体(移動部、ロボットアーム等)が差分障害物と干渉(接触)しないことを確認する。
 例えば、以下の判定処理を行う。
 (判定処理1)ロボット10のハンド部13の位置(TCP)が、作業対象Xに対する予定作業(P)を行う際に必要となる位置に到達可能か否か。
 (判定処理2)ロボット10全体(移動部11、アーム部12、ハンド部13)が差分障害物(新規障害物)と干渉(接触)しないか否か。
 (判定処理1)は、サンプリング点の位置にロボット10を配置したうえで、作業対象の位置にロボット10のハンド部13の位置(TCP)が届くロボット10やアーム部12の姿勢を、逆運動学を用いて計算し、算出できれば届くとみなす。
 (判定処理2)は、サンプリング点の位置にロボット10を配置し、その上で(判定処理1)で算出したロボット10やアーム部12の姿勢に設定したとき、周辺の差分障害物(新規障害物)と干渉(接触)しないことを確認する。もし干渉(接触)する場合は、干渉(接触)せずにロボット10のハンド部13の位置(TCP)が作業対象の位置に届く他のロボット10やアーム部12の姿勢が無いか逆運動学を用いて計算する。
 上記(判定処理1)、(判定処理2)は、サンプリング点上で移動部の向きを変えて、各向きで判定を行う。
 このようにして各サンプリング点を判定した上で、ロボット10のハンド部13の位置(TCP)が作業対象に届き、かつ差分障害物(新規障害物)と干渉(接触)しないサンプリング点のうち、外周にある点を結ぶことで、修正アプローチ領域を生成する。
 図24には、「事前設定アプローチ領域」内に設定したサンプリング点各々の判定処理によって決定された修正アプローチ領域を示している。
 白丸(〇)で示すサンプリング点が修正アプローチ領域内のサンプリング点である。すなわち、「事前設定アプローチ領域」内に設定したサンプリング点中、差分障害物(新規障害物)と干渉(接触)せずに作業対象に対して予定の作業動作を実行可能であることが確認された作業可能サンプリング点である。
 一方、黒丸(●)で示すサンプリング点は作業不可能サンプリング点である。これらは、元々は事前設定アプローチ領域内の作業可能サンプリング点であったが、差分障害物(新規障害物)と干渉(接触)することが判明し、作業不可能サンプリング点に変更された点である。これらは、修正アプローチ領域外のサンプリング点となる。
 アプローチ領域修正部107は、このようなサンプリング点各々についての作業可能性判定処理によって修正アプローチ領域を決定する。
 なお、アプローチ領域修正部107が実行するアプローチ領域修正処理の処理シーケンスの詳細例については、後段において図25に示すフローチャートを参照して説明する。
 なお、アプローチ領域修正部107は、アプローチ領域の修正を、事前定義地図の事前設定アプローチ領域に対してのみではなく、ロボット10の情報処理装置100のアプローチ領域修正部107自身が、前回走行時に生成した修正アプローチ領域に対して行ってもよい。
 この場合は、差分障害物検出部106から入力した新たな差分障害物に対して、前回生成した修正アプローチ領域内にサンプリング点を打って、新たな差分障害物との干渉(接触)を確認して、前回生成した修正アプローチ領域に対して、さらに修正を行う。
 すなわち、アプローチ領域修正部107は、過去に実行したアプローチ領域修正処理において生成した生成済み修正アプローチ領域に対して、新たに発生した差分障害物を考慮して再度、修正した再修正アプローチ領域を生成する処理を実行する。
 この場合、アプローチ領域修正部107は、生成済み修正アプローチ領域の内部に設定したサンプリング点について、新たに発生した差分障害物にロボット10が接触することなく作業可能であるか否かを判定して、再修正アプローチ領域を生成する。
 アプローチ領域修正部107は、このように事前定義地図等に設定済の事前設定アプローチ領域内のみにサンプリング点を設定して、その限られたサンプリング点について、差分障害物との干渉(接触)判定を行って、事前設定アプローチ領域内に新たな修正アプローチ領域を生成する。
 このような限定された領域内のサンプリング点の干渉(接触)判定を行うことで、先に図12~図14を参照して説明したような広範囲の多数のサンプリング点に対する処理に比較して短時間で効率的に処理を行うことが可能となる。
 先に図12~図14を参照して説明した処理では、作業対象物Xの位置PosXのロボット走行平面(z=0)への投影位置PosX2dを中心とした半径Rの円(CircleX)内に設定した多数のサンプリング点各々について、干渉(接触)判定を行う必要があるため、処理に時間を要する。
 これに対して、アプローチ領域修正部107は、図23、図24を参照して説明したように、事前定義地図等に設定済の事前設定アプローチ領域内のみにサンプリング点を設定して、その限られたサンプリング点について、差分障害物との干渉(接触)判定を行って、事前設定アプローチ領域内に新たな修正アプローチ領域を生成するため、短時間で効率的に処理を行うことができる。
 環境地図統合部108は、以下の各情報を入力する。
 (a)事前定義地図管理部105から「事前定義地図」、
 (b)障害物地図作成部103から「障害物地図」、
 (c)アプローチ領域修正部107から、「修正アプローチ領域情報」と「差分障害物情報」
 環境地図統合部108は、これらの入力情報を利用して「統合環境地図」を作成する。
 すなわち最新の障害物の位置と、「事前定義地図」に記録された「事前設定アプローチ領域」を最新の障害物の位置に基づいて修正した「修正アプローチ領域」を記録した「統合環境地図」を作成する。
 環境地図統合部108が生成する「統合環境地図」は、以下の各情報を有する地図となる。
 障害物情報=「事前定義地図」と「障害物地図」の双方の障害物情報を持つ。
 アプローチ領域情報=修正された事前設定アプローチ領域について修正アプローチ領域、修正されていない事前設定アプローチ領域は、事前設定アプローチ領域が残存する。
 その他、作業対象の位置・領域、経由点の各情報は、事前定義地図の情報がそのまま継承される。
  [6.ロボットの情報処理装置のアプローチ領域修正部が実行するアプローチ領域修正処理の処理シーケンスについて]
 次に、ロボット10の情報処理装置100のアプローチ領域修正部107が実行するアプローチ領域修正処理の処理シーケンスについて
 図25は、ロボット10の情報処理装置100のアプローチ領域修正部107が実行するアプローチ領域修正処理の処理シーケンスの一例について説明するフローチャートを示す図である。
 なお、このフローに従った処理は、ロボット10の情報処理装置100のアプローチ領域修正部107が、情報処理装置100の記憶部に格納されたプログラムに従って実行することが可能である。例えばプログラム実行機能を有するCPU等のプロセッサによるプログラム実行処理として行うことができる。
 なお、図25に示すフローチャートは、先に図23を参照して説明した事前設定アプローチ領域に対するサンプリング点の設定処理が完了した後の各サンプリング点の判定処理とアプローチ領域決定処理の処理シーケンスを示している。
 先に図23を参照して説明したように、ロボット10の情報処理装置100のアプローチ領域修正部107は、まず、予め生成された「事前定義地図」上に設定済の「事前設定アプローチ領域」内にサンプリング点を設定する。例えば、「事前設定アプローチ領域」内に均等間隔でサンプリング点を設定する。
 なお、前述したように、「事前設定アプローチ領域」生成時に設定したサンプリング点(図13に示す事前設定アプローチ領域内の作業可能サンプリング点)をそのまま利用してもよい。
 図25に示すフローチャートは、このように事前設定アプローチ領域内にサンプリング点設定処理完了後、設定した事前設定アプローチ領域内のサンプリング点が、差分障害物(新規障害物)に干渉(接触)することなく予定の作業が可能となる作業可能サンプリング点(〇)であるか、作業できない作業不可能サンプリング点(●)であるかの判定処理と判定結果に基づく修正アプローチ領域決定処理の処理シーケンスを示すフローチャートである。
 以下、図25に示すフローの各ステップの処理について説明する。
  (ステップS201)
 まず、ロボット10の情報処理装置100のアプローチ領域修正部107は、ステップS201において、予め生成された「事前定義地図」上に設定済の「事前設定アプローチ領域」内のサンプリング点から、1つの判定対象サンプリング点を選択する。
 図26を参照して、この(ステップS201)の処理の具体例について説明する。
 図26(S201)には、机等の障害物に置かれた作業対象Xと、その前に設定された「事前設定アプローチ領域」と、差分障害物(新規障害物)を示している。
 「事前設定アプローチ領域」は、予め生成された「事前定義地図」上に設定済の「事前設定アプローチ領域」であり、その中には複数のサンプリング点が設定済である。
 まず、ステップS201では、「事前設定アプローチ領域」内のサンプリング点から1つの判定対象サンプリング点を選択する。図26には「事前設定アプローチ領域」内の複数のサンプリング点を示しており、この中の1つのサンプリング点を判定対象サンプリング点として選択する。
  (ステップS202)
 次に、アプローチ領域修正部107は、ステップS202において、選択した判定対象サンプリング点にロボット基準点を一致させた状態で、ロボットを回転させ、障害物に接触しない回転位置の有無を判定する。
 なお、ここで接触可能性の判定対象とするのは、差分障害物(新規障害物)のみでよい。既存障害物については、「事前設定アプローチ領域」生成時に接触せずに予定作業が可能であることが既に確認されているからである。
  (ステップS203)
 ステップS203は、ステップS202における判定処理の結果に基づく分岐ステップである。
 アプローチ領域修正部107は、ステップS202における判定処理、すなわち、選択した判定対象サンプリング点にロボット基準点を一致させた状態で、ロボットが障害物に接触しない回転位置があるか否かの判定処理において、ロボットが障害物に接触しない回転位置があると判定した場合はステップS203の判定結果がYesとなり、ステップS205に進む。
 一方、ロボットが障害物に接触しない回転位置がないと判定した場合はステップS203の判定結果がNoとなり、ステップS204に進む。
  (ステップS204)
 ステップS204の処理は、ステップS203の判定がNoの場合、すなわち、判定対象サンプリング点にロボット基準点を一致させた状態で、ロボットが障害物に接触しない回転位置が検出されなかった場合に実行する。
 この場合、アプローチ領域修正部107は、ステップS204において、判定対象サンプリング点を作業不可サンプリング点、すなわち、修正アプローチ領域外のサンプリング点に設定する。
  (ステップS205)
 ステップS205の処理は、ステップS203の判定がYesの場合、すなわち、判定対象サンプリング点にロボット基準点を一致させた状態で、ロボットが障害物に接触しない回転位置が検出された場合に実行する。
 この場合、アプローチ領域修正部107は、ステップS205において、障害物に接触しないロボットの回転位置で予定作業が実行可能か否かを判定する。
 なお、予定作業はユーザ20が入力した作業動作情報から取得する。
  (ステップS206)
 ステップS206は、ステップS205における判定処理の結果に基づく分岐ステップである。
 アプローチ領域修正部107は、ステップS205における判定処理、すなわち、障害物に接触しないロボットの回転位置で予定作業が実行可能か否かの判定処理において、予定作業が実行可能であると判定した場合はステップS206の判定結果がYesとなり、ステップS207に進む。
 一方、予定作業が実行不可能であると判定した場合はステップS206の判定結果がNoとなり、ステップS204に進む。
  (ステップS204)
 ここで、再度、ステップS204について説明する。
 ステップS204の処理は、ステップS203の判定がYesの場合でも、ステップS206の判定がNoの場合にも実行される。
 すなわち、ステップS203において、判定対象サンプリング点にロボット基準点を一致させた状態で、ロボットが障害物に接触しない回転位置が検出されたが、
 ステップS206で障害物に接触しないロボットの回転位置で予定作業が実行不可能と判定された場合にも実行する。
 この場合、アプローチ領域修正部107は、ステップS204において、判定対象サンプリング点を作業不可サンプリング点、すなわち、修正アプローチ領域外のサンプリング点に設定する。
  (ステップS207)
 一方、ステップS207の処理は、ステップS206の判定がYesの場合、すなわち、障害物に接触しないロボットの回転位置で予定作業が実行可能、と判定した場合に実行する。
 この場合、アプローチ領域修正部107は、ステップS207において、判定対象サンプリング点を作業可能サンプリング点、すなわち、修正アプローチ領域内のサンプリング点に設定する。
  (ステップS208)
 ステップS204の処理、すなわち、判定対象サンプリング点を作業不可能サンプリング点、すなわち、修正アプローチ領域外のサンプリング点に設定する処理、または、
 ステップS207の処理、すなわち、判定対象サンプリング点を作業可能サンプリング点、すなわち、修正アプローチ領域内のサンプリング点に設定する処理、これらの処理のいずれかの処理が完了した場合、ステップS208の処理を実行する。
 これら、いずれかの場合、アプローチ領域修正部107は、ステップS208において、未処理のサンプリング点、すなわち判定処理が完了していないサンプリング点が残っていないかを判定する。
 未処理サンプリング点がある場合は、ステップS201に戻り、未処理サンプリング点の処理を実行する。
 一方、未処理サンプリング点がない場合は、ステップS209に進む。
  (ステップS209)
 全てのサンプリング点の判定処理が完了すると、アプローチ領域修正部107は、ステップS209において、作業可能サンプリング点のみからなる領域を修正アプローチ領域に設定する。
 図27を参照して、この(ステップS209)の処理の具体例について説明する。
 図27には、机等の障害物に置かれた作業対象Xと、その前に設定された「事前設定アプローチ領域」と、差分障害物(新規障害物)と、図25に示すフローに従って決定された「修正アプローチ領域AX」を示している。
 図27に示す「事前設定アプローチ領域」は、予め生成された「事前定義地図」上に設定済の「事前設定アプローチ領域」である。その中の複数のサンプリング点について図25に示すフローに従った判定処理が行われて「修正アプローチ領域AX」が決定される。
 白丸(〇)で示すサンプリング点が修正アプローチ領域内のサンプリング点である。すなわち、サンプリング点中、差分障害物(新規障害物)を含むすべての障害物と干渉(接触)せずに作業対象に対して予定の作業動作を実行可能であることが確認された作業可能サンプリング点である。
 一方、黒丸(●)で示すサンプリング点は、作業不可能サンプリング点であり、修正アプローチ領域外のサンプリング点である。これらのサンプリング点は、「事前定義地図」上に設定済の「事前設定アプローチ領域」内のサンプリング点であり、「事前設定アプローチ領域」生成時に存在した既存の障害物に接触することなく定の作業動作を実行可能であるが、差分障害物(新規障害物)と干渉(接触)せずに作業対象に対して予定の作業動作を実行不可能であることが確認された新たな作業不可能サンプリング点である。
 アプローチ領域修正部107は、このように、事前設定アプローチ領域内のサンプリング点各々に対する作業可能性判定処理によって修正アプローチ領域を決定する。
 図27に示す修正アプローチ領域AXにロボット10の基準点があれば、障害物に対する接触や干渉(接触)を起こすことなく、作業対象Xに対する予定の作業、すなわちユーザが入力した作業動作情報に従った処理を実行することが可能となる。
 アプローチ領域修正部107は、「事前定義地図」上に設定済の「事前設定アプローチ領域」が複数ある場合、「事前設定アプローチ領域」各々に対して、図25を参照して説明したフローに従った処理を実行する。
  [7.ロボットの情報処理装置が生成した修正アプローチ領域を反映した環境地図を用いたロボットによる作業シーケンスについて]
 次に、ロボットの情報処理装置が生成した修正アプローチ領域を反映した「統合環境地図」を用いたロボットによる作業シーケンスについて説明する。
 上述したように、アプローチ領域修正部107は「事前定義地図」上に定義された「事前設定アプローチ領域」の修正処理を行い、差分障害物検出部106が検出した「事前定義地図」に存在しない新たな障害物である「差分障害物(新規障害物)」を考慮した「修正アプローチ領域」を生成する。
 アプローチ領域修正部107が生成した「修正アプローチ領域」は環境地図統合部108へ出力される。
 環境地図統合部108は、以下の入力情報を利用して「統合環境地図」を作成する。
 (a)事前定義地図管理部105から「事前定義地図」、
 (b)障害物地図作成部103から「障害物地図」、
 (c)アプローチ領域修正部107から、「修正アプローチ領域情報」と「差分障害物情報」
 環境地図統合部108は、これらの入力情報を利用して「統合環境地図」を作成する。
 すなわち、環境地図統合部108は最新の障害物の位置と、「事前定義地図」に記録された「事前設定アプローチ領域」を最新の障害物の位置に基づいて修正した「修正アプローチ領域」を記録した「統合環境地図」を作成する。
 「統合環境地図」は、先に図5を参照して説明したように「修正アプローチ領域」が記録されている。「修正アプローチ領域」は、既存の障害物や、差分障害物(新規障害物)に接触することなくロボット10が予定の作業を実行可能な作業領域として規定された領域である。
 以下、ロボット10の情報処理装置100のアプローチ領域修正部107が生成した修正アプローチ領域を反映した「統合環境地図」を用いたロボットによる作業シーケンスについて説明する。
 先に図3を参照して説明したように、ロボット10に装着された情報処理装置100のシーケンス制御部114は、ユーザ端末30において生成された作業定義データ内の作業シーケンスに基づいて、ロボット10の移動部11と、アーム部12、ハンド部13を動かし、その進捗を管理し、シーケンス制御を行う。
 シーケンス制御部114は、ロボット制御部113からの作業開始指示に従い、作業定義データ管理部104から受け取った作業シーケンスに基づき、移動体経路計画部121とロボットアーム経路計画部123に、移動体とロボットアームの動作指示を行う。
 移動部経路計画部121は、シーケンス制御部114からの指示に従い、ロボット10の移動部11を指示位置へ移動させる。
 移動体経路計画部121には、シーケンス制御部114から主に下記の指示が入力される。
 *経由点への移動指示
 *作業対象のアプローチ領域への移動指示
 移動体経路計画部121は、これらの指示に応じて、環境地図統合部108が生成した「統合環境地図」を用いて、指示された動作を実現するための経路を生成する。
 移動部経路計画部121は、環境地図統合部108が生成した「統合環境地図」と、自己位置推定部102で推定された自己位置を基に、シーケンス制御部114が指示するロボット10の移動経路上の経由点や、各作業位置での作業可能領域であるアプローチ領域を、障害物を回避しながら走行可能な経路情報(走行ルート情報)を生成し、生成した経路情報を移動体制御部122に出力する。
 なお、移動部経路計画部121が実行する現在位置から経由点までの移動計画生成処理に際しては、移動経路生成の既存手法である例えばAスター(A*)やRRT(Rapidly-exploring random tree)を利用することが可能である。
 移動部経路計画部121が実行するアプローチ領域への移動経路生成処理の具体例について説明する。
 なお、移動部経路計画部121は、事前設定アプローチ領域を修正した修正アプローチ領域がある場合は、修正アプローチ領域への移動経路生成処理を行う。事前設定アプローチ領域を修正した修正アプローチ領域がない場合は、事前設定アプローチ領域への移動経路生成処理を行う。
 移動部経路計画部121は、まずアプローチ領域(修正アプローチ領域または事前設定アプローチ領域)内からアプローチ位置の候補を選定する。
 アプローチ領域内はどこでも障害物と干渉(接触)せずに作業対象に作業することが可能であることが確認されているので、アプローチ領域内であれば、どこを選んでも問題ない。
 例えば、移動時の制御誤差や自己位置推定の誤差等により発生する移動位置の誤差を考慮するならば、アプローチ領域の内部、中心よりの点を採用した方がよい。具体的には、アプローチ領域を三角形などの凸多角形の組み合わせに分割した上、分割した凸多角形のそれぞれの中心(重心)の中で、外周部から最も離れた点を採用してもよい。
 また、作業シーケンスにおける次の作業・目標位置を考慮して、最短経路となるようなアプローチ位置を選定してもよい。
 例えば、先に説明した図9に示す作業シーケンスに従った作業を実行する場合のロボット10の動作例について図28を参照して説明する。
 ロボット10は、図28に示すように、経由点Aをスタート後、
 経由点B→作業対象Xに対して作業→経由点C
 この順に移動を行う。
 作業対象Xに対して作業するためのアプローチ位置をAXとする。
 この場合、移動部経路計画部121は、経由点Bから経由点Cまでの移動距離を最短とするアプローチ位置AXを決定する。すなわち、
 経由点Bから経由点Cまでの移動距離=距離(B-AX)+距離(AX-C)
 上記距離が最短となるアプローチ領域内のアプローチ位置AXを算出する。
 アプローチ位置AXの位置を決定したら、その点AXを経由する経路、すなわち、
 経由点B→アプローチ位置AX→経由点C
 これらの点を結ぶ経路生成を行う。
 経路生成の方法としては、経由点への移動と同様に、例えばAスター(A*)やRRTを用いることが可能である。
 また、移動部経路計画部121が選択候補としたアプローチ位置の周辺が狭隘でアプローチ位置の決定に失敗した場合は、他のアプローチ位置候補を選択して、再度経路生成を試みる。
 他のアプローチ位置の候補位置の選定方法としては、例えば、アプローチ位置の候補選定時の次点の候補(例えば、前後の経由点との移動距離が2番目に短い点)に変更したり、アプローチ領域内からランダムに点を選択したり、現在のアプローチ位置の候補から一定距離離れた点を使用するといったアルゴリズムの適用が可能である。
 また、移動体経路計画部121が経路を生成するタイミングは、シーケンス制御部114から動作指示を受けたタイミングだけでなく、作業シーケンスに記述された移動指示について事前に生成してもよい。
 また、環境地図統合部108で統合環境地図が更新されたタイミングや、差分障害物検出部106で新たな差分障害物が検出され、環境地図統合部108においてその差分障害物を反映した統合環境地図を生成したタイミングで経路生成を行ってもよい。
 移動体経路計画部121で経路が生成されたら、その経路は移動体制御部122に渡される。
 移動体制御部122は、移動体経路計画部121が生成した経路情報(走行ルート情報)と、自己位置推定部102で推定されたロボット10の自己位置に基づいて、経路情報(走行ルート情報)に従ってロボット10を移動させるように、ロボットの移動部11を制御する。すなわち、移動体経路計画部121が生成した経路情報(走行ルート情報)の経路を追従するようにロボットを走行させる。
 経路追従制御アルゴリズムとしては、例えば、Pure Pursuitなどの利用が可能である。
 ロボットアーム経路計画部123は、シーケンス制御部114からの指示に従い、指示された作業、すなわち作業定義データで設定された作業を行うためのロボット10のアーム部12やハンド部13の経路(軌跡)を計画し、生成した経路(軌跡)をロボットアーム制御部124に出力する。
 また、ロボットアーム経路計画部123は、ロボット10に搭載されたセンサ101を構成するカメラの撮影情報を用いて作業対象の位置をより精密に測定し、その測定結果に基づき目標位置を修正し、合わせて軌道を修正してもよい。
 ロボットアーム経路計画部123が生成したロボットアームの軌道はロボットアーム制御部124に渡され、ロボットアーム制御部124は生成軌道に追従するようにロボットアームを制御する。
 すなわち、ロボットアーム制御部124は、ロボットアーム経路計画部123が生成したロボット10のアーム部12やハンド部13の経路(軌跡)を用いてロボット10のアーム部12やハンド部13が動くように、ロボット10のアーム部やハンド部13の関節等の駆動部を駆動する。例えばロボット10のアーム部やハンド部13の関節等のモータドライバを制御する。
 以上、説明したように、本開示のロボット制御処理では、ロボット10が作業対象物に対する作業を行う際に障害物に接触しない「事前設定アプローチ領域」や障害物情報を記録した「事前定義地図」を生成する。
 次に、ロボット10の走行中のセンシング結果に基づいて、「事前定義地図」にない差分障害物を検出する。
 さらに、「事前設定アプローチ領域」の修正処理として、差分障害物との干渉(接触)を確認し、干渉(接触)が発生する領域を削除した「修正アプローチ領域」を生成する。
 「修正アプローチ領域」の生成時には、「事前設定アプローチ領域」内にのみサンプリング点を設定して判定処理を行う。この処理を行うことで、作業定義データの作成後に、障害物が増えた際、演算量を大きく増やすことなくアプローチ領域を修正することが可能となり、演算遅延によりロボット作業が停止したしまう可能性を低減できる。
 なお、本開示のロボット10は実施例に記載した車輪などの移動機構で地面を走行するものに限らない。例えば、水上、空中を移動するものでもよい。なお、アプローチ領域も3次元の広がりを持つ領域として設定可能であり、この場合は、アプローチ領域空間を、3次元表現(例えばボクセルマップなど)を用いて表現する。
  [8.本開示の情報処理装置のハードウェア構成例について]
 次に、本開示の情報処理装置のハードウェア構成の一例について説明する。
 図29を参照して本開示の情報処理装置のハードウェア構成の一例について説明する。
 なお、図29に示す情報処理装置のハードウェア構成は、ロボット10に装着された情報処理装置100のハードウェア構成の一構成例である。また、ユーザ端末30のハードウェア構成の一構成例でもある。
 CPU(Central Processing Unit)301は、ROM(Read Only Memory)302、または記憶部308に記憶されているプログラムに従って各種の処理を実行するデータ処理部として機能する。例えば、上述した実施例において説明したシーケンスに従った処理を実行する。RAM(Random Access Memory)303には、CPU301が実行するプログラムやデータなどが記憶される。これらのCPU301、ROM302、およびRAM303は、バス304により相互に接続されている。
 CPU301はバス304を介して入出力インタフェース305に接続され、入出力インタフェース305には、各種スイッチ、キーボード、タッチパネル、マウス、マイクロホン、ユーザ入力部などからなる入力部306と、ディスプレイ、スピーカーなどからなる出力部307が接続されている。
 なお、ロボット10に装着された情報処理装置100の場合、入力部306には、カメラ、LiDAR等各種センサ321からのセンサ検出情報も入力される。
 また、ロボット10に装着された情報処理装置100の場合、出力部307は、ロボット等の駆動を行う駆動部322に対する駆動情報も出力する。
 CPU301は、入力部306から入力される指令や状況データ等を入力し、各種の処理を実行し、処理結果を例えば出力部307に出力する。
 入出力インタフェース305に接続されている記憶部308は、例えばフラッシュメモリ、ハードディスク等からなり、CPU301が実行するプログラムや各種のデータを記憶する。通信部309は、インターネットやローカルエリアネットワークなどのネットワークを介したデータ通信の送受信部として機能し、外部の装置と通信する。
 また、CPUの他、カメラから入力される画像情報などの専用処理部としてGPU(Graphics Processing Unit)を備えてもよい。
 入出力インタフェース305に接続されているドライブ310は、磁気ディスク、光ディスク、光磁気ディスク、あるいはメモリカード等の半導体メモリなどのリムーバブルメディア311を駆動し、データの記録あるいは読み取りを実行する。
  [9.本開示の構成のまとめ]
 以上、特定の実施例を参照しながら、本開示の実施例について詳解してきた。しかしながら、本開示の要旨を逸脱しない範囲で当業者が実施例の修正や代用を成し得ることは自明である。すなわち、例示という形態で本発明を開示してきたのであり、限定的に解釈されるべきではない。本開示の要旨を判断するためには、特許請求の範囲の欄を参酌すべきである。
 なお、本明細書において開示した技術は、以下のような構成をとることができる。
 (1) ロボットの走行環境情報を取得するセンサの情報に基づいて、事前定義地図に記録された障害物との差分に相当する差分障害物を検出する差分障害物検出部と、
 前記事前定義地図に記録された領域であり、前記ロボットによる作業を障害物に接触することなく実行可能であると判定された事前設定アプローチ領域を、前記差分障害物を考慮して修正して修正アプローチ領域を生成するアプローチ領域修正部を有し、
 前記アプローチ領域修正部は、
 前記事前設定アプローチ領域の内部に設定したサンプリング点について、前記差分障害物に前記ロボットが接触することなく作業可能であるか否かを判定して、前記修正アプローチ領域を生成する情報処理装置。
 (2) 前記アプローチ領域修正部は、
 前記事前設定アプローチ領域の外部にはサンプリング点を設定せず、
 前記事前設定アプローチ領域の内部に設定したサンプリング点が、前記差分障害物に前記ロボットが接触することなく作業可能であるか否かを判定する処理を実行して前記修正アプローチ領域を生成する(1)に記載の情報処理装置。
 (3) 前記アプローチ領域修正部は、
 前記事前設定アプローチ領域の内部に設定したサンプリング点のみに対して、前記差分障害物に前記ロボットが接触することなく作業可能であるか否かを判定し、
 前記差分障害物に前記ロボットが接触することなく作業可能であると判定されたサンプリング点のみによって構成される領域を前記修正アプローチ領域として設定する(1)または(2)に記載の情報処理装置。
 (4) 前記アプローチ領域修正部は、
 前記事前設定アプローチ領域の内部に設定したサンプリング点の各々について、
 前記差分障害物に前記ロボットが接触することなく、予め設定された作業対象物に対して予め設定された作業動作が可能であるか否かを判定する(3)に記載の情報処理装置。
 (5) 前記事前定義地図は、
 前記ロボットの走行開始前に作成された地図である(1)~(4)いずれかに記載の情報処理装置。
 (6) 前記事前定義地図は、
 外部装置から前記情報処理装置に入力された地図である(1)~(5)いずれかに記載の情報処理装置。
 (7) 前記情報処理装置は、
 前記事前定義地図を含む作業定義データを管理する作業定義データ管理部を有し、
 前記アプローチ領域修正部は、
 前記作業定義データ管理部から前記事前定義地図を入力し、
 前記差分障害物検出部から、前記事前定義地図に存在しない新たな障害物に関する情報である差分障害物情報を入力して、
 前記修正アプローチ領域を生成する(1)~(6)いずれかに記載の情報処理装置。
 (8) 前記情報処理装置は、
 前記事前定義地図を含む作業定義データを管理する作業定義データ管理部を有し、
 前記作業定義データ管理部は、
 (a)事前定義地図
 (b)作業シーケンス情報
 (c)作業動作情報
 上記(a)~(c)各データを有する作業定義データを管理する(1)~(7)いずれかに記載の情報処理装置。
 (9) 前記情報処理装置は、
 前記ロボットの動作シーケンスを制御するシーケンス制御部を有し、
 前記シーケンス制御部は、
 前記作業定義データ管理部から入力する作業シーケンス情報に従って、前記ロボットの作業シーケンスを制御する(8)に記載の情報処理装置。
 (10) 前記情報処理装置は、
 前記アプローチ領域修正部が生成した修正アプローチ領域を記録した統合環境地図を生成する環境地図統合部を有する(1)~(9)いずれかに記載の情報処理装置。
 (11) 前記環境地図統合部は、
 前記事前定義地図と、
 前記アプローチ領域修正部が生成した修正アプローチ領域を入力して、
 修正アプローチ領域を記録した統合環境地図を生成する(10)に記載の情報処理装置。
 (12) 前記情報処理装置は、
 前記アプローチ領域修正部が生成した修正アプローチ領域を記録した統合環境地図を生成する環境地図統合部と、
 前記環境地図統合部が生成した統合環境地図を用いて前記ロボットの移動経路を計画する経路計画部を有する(1)~(11)いずれかに記載の情報処理装置。
 (13) 前記アプローチ領域修正部は、
 過去に実行したアプローチ領域修正処理において生成した生成済み修正アプローチ領域に対して、新たに発生した差分障害物を考慮して再度、修正した再修正アプローチ領域を生成する処理を実行する構成であり、
 前記アプローチ領域修正部は、
 前記生成済み修正アプローチ領域の内部に設定したサンプリング点について、前記新たに発生した差分障害物に前記ロボットが接触することなく作業可能であるか否かを判定して、前記再修正アプローチ領域を生成する(1)~(12)いずれかに記載の情報処理装置。
 (14) ユーザ端末と、ロボットに装着された情報処理装置を有する情報処理システムであり、
 前記ユーザ端末は、
 前記ロボットの走行環境の障害物の位置と、前記ロボットによる作業を前記障害物に接触することなく実行可能であると判定された事前設定アプローチ領域を含む事前定義地図を生成して前記ロボットに装着された前記情報処理装置に入力し、
 前記ロボットに装着された前記情報処理装置は、
 前記ロボットの走行環境情報を取得するセンサの情報に基づいて、
 前記ユーザ端末から入力した前記事前定義地図に記録された障害物との差分に相当する差分障害物を検出する差分障害物検出部と、
 前記事前定義地図に記録された領域であり、前記ロボットによる作業を障害物に接触することなく実行可能であると判定された事前設定アプローチ領域を、前記差分障害物を考慮して修正して修正アプローチ領域を生成するアプローチ領域修正部を有し、
 前記アプローチ領域修正部は、
 前記事前設定アプローチ領域の内部に設定したサンプリング点について、前記差分障害物に前記ロボットが接触することなく作業可能であるか否かを判定して、前記修正アプローチ領域を生成する情報処理システム。
 (15) 前記ユーザ端末は、
 (a)事前定義地図
 (b)作業シーケンス情報
 (c)作業動作情報
 上記(a)~(c)各データを有する作業定義データを前記ロボットの前記情報処理装置に入力し、
 前記ロボットの前記情報処理装置は、
 上記(a)~(c)各データを有する作業定義データを利用して、前記修正アプローチ領域の生成処理と、
 前記修正アプローチ領域を反映した統合環境地図の生成処理と、
 前記統合環境地図を参照した前記ロボットの制御処理を実行する(14)に記載の情報処理システム。
 (16) 前記ロボットの前記情報処理装置は、
 前記修正アプローチ領域の生成処理において、
 前記事前設定アプローチ領域の外部にはサンプリング点を設定せず、
 前記事前設定アプローチ領域の内部に設定したサンプリング点が、前記差分障害物に前記ロボットが接触することなく作業可能であるか否かを判定する処理を実行して前記修正アプローチ領域を生成する(14)または(15)に記載の情報処理システム。
 (17) 情報処理装置において実行する情報処理方法であり、
 差分障害物検出部が、ロボットの走行環境情報を取得するセンサの情報に基づいて、事前定義地図に記録された障害物との差分に相当する差分障害物を検出する差分障害物検出ステップと、
 アプローチ領域修正部が、前記事前定義地図に記録された領域であり、前記ロボットによる作業を障害物に接触することなく実行可能であると判定された事前設定アプローチ領域を、前記差分障害物を考慮して修正して修正アプローチ領域を生成するアプローチ領域修正ステップを実行し、
 前記アプローチ領域修正ステップは、
 前記事前設定アプローチ領域の内部に設定したサンプリング点について、前記差分障害物に前記ロボットが接触することなく作業可能であるか否かを判定して、前記修正アプローチ領域を生成するステップである情報処理方法。
 (18) ユーザ端末と、ロボットに装着された情報処理装置を有する情報処理システムにおいて実行する情報処理方法であり、
 前記ユーザ端末が、
 前記ロボットの走行環境の障害物の位置と、前記ロボットによる作業を前記障害物に接触することなく実行可能であると判定された事前設定アプローチ領域を含む事前定義地図を生成して前記ロボットに装着された前記情報処理装置に入力し、
 前記ロボットに装着された前記情報処理装置が、
 前記ロボットの走行環境情報を取得するセンサの情報に基づいて、
 前記ユーザ端末から入力した前記事前定義地図に記録された障害物との差分に相当する差分障害物を検出する差分障害物検出処理と、
 前記事前定義地図に記録された領域であり、前記ロボットによる作業を障害物に接触することなく実行可能であると判定された事前設定アプローチ領域を、前記差分障害物を考慮して修正して修正アプローチ領域を生成するアプローチ領域修正処理を実行し、
 前記アプローチ領域修正処理において、
 前記事前設定アプローチ領域の内部に設定したサンプリング点について、前記差分障害物に前記ロボットが接触することなく作業可能であるか否かを判定して、前記修正アプローチ領域を生成する情報処理方法。
 (19) 情報処理装置において情報処理を実行させるプログラムであり、
 差分障害物検出部に、ロボットの走行環境情報を取得するセンサの情報に基づいて、事前定義地図に記録された障害物との差分に相当する差分障害物を検出させる差分障害物検出ステップと、
 アプローチ領域修正部に、前記事前定義地図に記録された領域であり、前記ロボットによる作業を障害物に接触することなく実行可能であると判定された事前設定アプローチ領域を、前記差分障害物を考慮して修正して修正アプローチ領域を生成させるアプローチ領域修正ステップを実行させ、
 前記アプローチ領域修正ステップにおいては、
 前記事前設定アプローチ領域の内部に設定したサンプリング点について、前記差分障害物に前記ロボットが接触することなく作業可能であるか否かを判定して、前記修正アプローチ領域を生成させるプログラム。
 なお、明細書中において説明した一連の処理はハードウェア、またはソフトウェア、あるいは両者の複合構成によって実行することが可能である。ソフトウェアによる処理を実行する場合は、処理シーケンスを記録したプログラムを、専用のハードウェアに組み込まれたコンピュータ内のメモリにインストールして実行させるか、あるいは、各種処理が実行可能な汎用コンピュータにプログラムをインストールして実行させることが可能である。例えば、プログラムは記録媒体に予め記録しておくことができる。記録媒体からコンピュータにインストールする他、LAN(Local Area Network)、インターネットといったネットワークを介してプログラムを受信し、内蔵するハードディスク等の記録媒体にインストールすることができる。
 また、明細書に記載された各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。また、本明細書においてシステムとは、複数の装置の論理的集合構成であり、各構成の装置が同一筐体内にあるものには限らない。
 以上、説明したように、本開示の一実施例の構成によれば、事前定義地図にない新たな障害物が発生した際に、ロボットの作業領域として規定されるアプローチ領域を迅速に修正可能とした装置、方法が実現される。
 具体的には、例えば、ロボットの走行環境情報を取得するセンサの情報に基づいて、事前定義地図に記録された障害物との差分に相当する差分障害物を検出する差分障害物検出部と、事前定義地図に記録された領域であり、ロボットによる作業を障害物に接触することなく実行可能であると判定された事前設定アプローチ領域を、差分障害物を考慮して修正して修正アプローチ領域を生成するアプローチ領域修正部を有する。アプローチ領域修正部は、事前設定アプローチ領域の内部に設定したサンプリング点について差分障害物にロボットが接触することなく作業可能であるか否かを判定して修正アプローチ領域を生成する。
 本構成により、事前定義地図にない新たな障害物が発生した際に、ロボットの作業領域として規定されるアプローチ領域を迅速に修正可能とした装置、方法が実現される。
  10 ロボット
  11 移動部
  12 アーム部
  13 ハンド部
  20 ユーザ
  30 ユーザ端末
 100 情報処理装置
 101 センサ
 102 自己位置推定部
 103 障害物地図作成部
 104 作業定義データ管理部
 105 事前定義地図管理部
 106 差分障害物検出部
 107 アプローチ領域修正部
 108 環境地図統合部
 111 通信IIF
 112 ロボット操作UI
 113 ロボット制御部
 114 シーケンス制御部
 121 移動部経路計画部
 122 移動部制御部
 123 ロボットアーム経路計画部
 124 ロボットアーム制御部
 200 ユーザ端末
 201 ユーザインタフェース(UI)
 202 ユーザインタフェース(UI)制御部
 203 ロボット操作情報管理部
 204 作業定義データ管理部
 205 アプローチ領域生成部
 206 事前定義地図生成部
 207 作業定義データ記憶部
 208 通信IF
 301 CPU
 302 ROM
 303 RAM
 304 バス
 305 入出力インタフェース
 306 入力部
 307 出力部
 308 記憶部
 309 通信部
 310 ドライブ
 311 リムーバブルメディア
 321 センサ
 322 駆動部

Claims (19)

  1.  ロボットの走行環境情報を取得するセンサの情報に基づいて、事前定義地図に記録された障害物との差分に相当する差分障害物を検出する差分障害物検出部と、
     前記事前定義地図に記録された領域であり、前記ロボットによる作業を障害物に接触することなく実行可能であると判定された事前設定アプローチ領域を、前記差分障害物を考慮して修正して修正アプローチ領域を生成するアプローチ領域修正部を有し、
     前記アプローチ領域修正部は、
     前記事前設定アプローチ領域の内部に設定したサンプリング点について、前記差分障害物に前記ロボットが接触することなく作業可能であるか否かを判定して、前記修正アプローチ領域を生成する情報処理装置。
  2.  前記アプローチ領域修正部は、
     前記事前設定アプローチ領域の外部にはサンプリング点を設定せず、
     前記事前設定アプローチ領域の内部に設定したサンプリング点が、前記差分障害物に前記ロボットが接触することなく作業可能であるか否かを判定する処理を実行して前記修正アプローチ領域を生成する請求項1に記載の情報処理装置。
  3.  前記アプローチ領域修正部は、
     前記事前設定アプローチ領域の内部に設定したサンプリング点のみに対して、前記差分障害物に前記ロボットが接触することなく作業可能であるか否かを判定し、
     前記差分障害物に前記ロボットが接触することなく作業可能であると判定されたサンプリング点のみによって構成される領域を前記修正アプローチ領域として設定する請求項1に記載の情報処理装置。
  4.  前記アプローチ領域修正部は、
     前記事前設定アプローチ領域の内部に設定したサンプリング点の各々について、
     前記差分障害物に前記ロボットが接触することなく、予め設定された作業対象物に対して予め設定された作業動作が可能であるか否かを判定する請求項3に記載の情報処理装置。
  5.  前記事前定義地図は、
     前記ロボットの走行開始前に作成された地図である請求項1に記載の情報処理装置。
  6.  前記事前定義地図は、
     外部装置から前記情報処理装置に入力された地図である請求項1に記載の情報処理装置。
  7.  前記情報処理装置は、
     前記事前定義地図を含む作業定義データを管理する作業定義データ管理部を有し、
     前記アプローチ領域修正部は、
     前記作業定義データ管理部から前記事前定義地図を入力し、
     前記差分障害物検出部から、前記事前定義地図に存在しない新たな障害物に関する情報である差分障害物情報を入力して、
     前記修正アプローチ領域を生成する請求項1に記載の情報処理装置。
  8.  前記情報処理装置は、
     前記事前定義地図を含む作業定義データを管理する作業定義データ管理部を有し、
     前記作業定義データ管理部は、
     (a)事前定義地図
     (b)作業シーケンス情報
     (c)作業動作情報
     上記(a)~(c)各データを有する作業定義データを管理する請求項1に記載の情報処理装置。
  9.  前記情報処理装置は、
     前記ロボットの動作シーケンスを制御するシーケンス制御部を有し、
     前記シーケンス制御部は、
     前記作業定義データ管理部から入力する作業シーケンス情報に従って、前記ロボットの作業シーケンスを制御する請求項8に記載の情報処理装置。
  10.  前記情報処理装置は、
     前記アプローチ領域修正部が生成した修正アプローチ領域を記録した統合環境地図を生成する環境地図統合部を有する請求項1に記載の情報処理装置。
  11.  前記環境地図統合部は、
     前記事前定義地図と、
     前記アプローチ領域修正部が生成した修正アプローチ領域を入力して、
     修正アプローチ領域を記録した統合環境地図を生成する請求項10に記載の情報処理装置。
  12.  前記情報処理装置は、
     前記アプローチ領域修正部が生成した修正アプローチ領域を記録した統合環境地図を生成する環境地図統合部と、
     前記環境地図統合部が生成した統合環境地図を用いて前記ロボットの移動経路を計画する経路計画部を有する請求項1に記載の情報処理装置。
  13.  前記アプローチ領域修正部は、
     過去に実行したアプローチ領域修正処理において生成した生成済み修正アプローチ領域に対して、新たに発生した差分障害物を考慮して再度、修正した再修正アプローチ領域を生成する処理を実行する構成であり、
     前記アプローチ領域修正部は、
     前記生成済み修正アプローチ領域の内部に設定したサンプリング点について、前記新たに発生した差分障害物に前記ロボットが接触することなく作業可能であるか否かを判定して、前記再修正アプローチ領域を生成する請求項1に記載の情報処理装置。
  14.  ユーザ端末と、ロボットに装着された情報処理装置を有する情報処理システムであり、
     前記ユーザ端末は、
     前記ロボットの走行環境の障害物の位置と、前記ロボットによる作業を前記障害物に接触することなく実行可能であると判定された事前設定アプローチ領域を含む事前定義地図を生成して前記ロボットに装着された前記情報処理装置に入力し、
     前記ロボットに装着された前記情報処理装置は、
     前記ロボットの走行環境情報を取得するセンサの情報に基づいて、
     前記ユーザ端末から入力した前記事前定義地図に記録された障害物との差分に相当する差分障害物を検出する差分障害物検出部と、
     前記事前定義地図に記録された領域であり、前記ロボットによる作業を障害物に接触することなく実行可能であると判定された事前設定アプローチ領域を、前記差分障害物を考慮して修正して修正アプローチ領域を生成するアプローチ領域修正部を有し、
     前記アプローチ領域修正部は、
     前記事前設定アプローチ領域の内部に設定したサンプリング点について、前記差分障害物に前記ロボットが接触することなく作業可能であるか否かを判定して、前記修正アプローチ領域を生成する情報処理システム。
  15.  前記ユーザ端末は、
     (a)事前定義地図
     (b)作業シーケンス情報
     (c)作業動作情報
     上記(a)~(c)各データを有する作業定義データを前記ロボットの前記情報処理装置に入力し、
     前記ロボットの前記情報処理装置は、
     上記(a)~(c)各データを有する作業定義データを利用して、前記修正アプローチ領域の生成処理と、
     前記修正アプローチ領域を反映した統合環境地図の生成処理と、
     前記統合環境地図を参照した前記ロボットの制御処理を実行する請求項14に記載の情報処理システム。
  16.  前記ロボットの前記情報処理装置は、
     前記修正アプローチ領域の生成処理において、
     前記事前設定アプローチ領域の外部にはサンプリング点を設定せず、
     前記事前設定アプローチ領域の内部に設定したサンプリング点が、前記差分障害物に前記ロボットが接触することなく作業可能であるか否かを判定する処理を実行して前記修正アプローチ領域を生成する請求項14に記載の情報処理システム。
  17.  情報処理装置において実行する情報処理方法であり、
     差分障害物検出部が、ロボットの走行環境情報を取得するセンサの情報に基づいて、事前定義地図に記録された障害物との差分に相当する差分障害物を検出する差分障害物検出ステップと、
     アプローチ領域修正部が、前記事前定義地図に記録された領域であり、前記ロボットによる作業を障害物に接触することなく実行可能であると判定された事前設定アプローチ領域を、前記差分障害物を考慮して修正して修正アプローチ領域を生成するアプローチ領域修正ステップを実行し、
     前記アプローチ領域修正ステップは、
     前記事前設定アプローチ領域の内部に設定したサンプリング点について、前記差分障害物に前記ロボットが接触することなく作業可能であるか否かを判定して、前記修正アプローチ領域を生成するステップである情報処理方法。
  18.  ユーザ端末と、ロボットに装着された情報処理装置を有する情報処理システムにおいて実行する情報処理方法であり、
     前記ユーザ端末が、
     前記ロボットの走行環境の障害物の位置と、前記ロボットによる作業を前記障害物に接触することなく実行可能であると判定された事前設定アプローチ領域を含む事前定義地図を生成して前記ロボットに装着された前記情報処理装置に入力し、
     前記ロボットに装着された前記情報処理装置が、
     前記ロボットの走行環境情報を取得するセンサの情報に基づいて、
     前記ユーザ端末から入力した前記事前定義地図に記録された障害物との差分に相当する差分障害物を検出する差分障害物検出処理と、
     前記事前定義地図に記録された領域であり、前記ロボットによる作業を障害物に接触することなく実行可能であると判定された事前設定アプローチ領域を、前記差分障害物を考慮して修正して修正アプローチ領域を生成するアプローチ領域修正処理を実行し、
     前記アプローチ領域修正処理において、
     前記事前設定アプローチ領域の内部に設定したサンプリング点について、前記差分障害物に前記ロボットが接触することなく作業可能であるか否かを判定して、前記修正アプローチ領域を生成する情報処理方法。
  19.  情報処理装置において情報処理を実行させるプログラムであり、
     差分障害物検出部に、ロボットの走行環境情報を取得するセンサの情報に基づいて、事前定義地図に記録された障害物との差分に相当する差分障害物を検出させる差分障害物検出ステップと、
     アプローチ領域修正部に、前記事前定義地図に記録された領域であり、前記ロボットによる作業を障害物に接触することなく実行可能であると判定された事前設定アプローチ領域を、前記差分障害物を考慮して修正して修正アプローチ領域を生成させるアプローチ領域修正ステップを実行させ、
     前記アプローチ領域修正ステップにおいては、
     前記事前設定アプローチ領域の内部に設定したサンプリング点について、前記差分障害物に前記ロボットが接触することなく作業可能であるか否かを判定して、前記修正アプローチ領域を生成させるプログラム。
PCT/JP2022/003020 2021-06-08 2022-01-27 情報処理装置、情報処理システム、および情報処理方法、並びにプログラム WO2022259600A1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202280039698.0A CN117412838A (zh) 2021-06-08 2022-01-27 信息处理装置、信息处理系统、信息处理方法和程序

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2021095647A JP2022187584A (ja) 2021-06-08 2021-06-08 情報処理装置、情報処理システム、および情報処理方法、並びにプログラム
JP2021-095647 2021-06-08

Publications (1)

Publication Number Publication Date
WO2022259600A1 true WO2022259600A1 (ja) 2022-12-15

Family

ID=84425619

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2022/003020 WO2022259600A1 (ja) 2021-06-08 2022-01-27 情報処理装置、情報処理システム、および情報処理方法、並びにプログラム

Country Status (3)

Country Link
JP (1) JP2022187584A (ja)
CN (1) CN117412838A (ja)
WO (1) WO2022259600A1 (ja)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017047518A (ja) * 2015-09-04 2017-03-09 トヨタ自動車株式会社 搬送車の移動経路設定方法
JP2020093364A (ja) * 2018-12-14 2020-06-18 トヨタ自動車株式会社 軌道生成装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017047518A (ja) * 2015-09-04 2017-03-09 トヨタ自動車株式会社 搬送車の移動経路設定方法
JP2020093364A (ja) * 2018-12-14 2020-06-18 トヨタ自動車株式会社 軌道生成装置

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
ITO, KEISUKE ET AL.: "ROMBUNNO.3N2-2 Grasping position determination for mobile manipulation considering the movable area of the arm and the movement of the robot", PROCEEDINGS OF THE 29TH ANNUAL CONFERENCE OF THE ROBOTICS SOCIETY OF JAPAN; SEPTEMBER 7 TO 9, 2011, ROBOTICS SOCIETY OF JAPAN, JP, vol. 29, 7 September 2011 (2011-09-07) - 9 September 2011 (2011-09-09), JP, pages 1 - 4, XP009541831 *
JUNYA FUJIMOTO; KEI OKADA; MASAYUKI INABA: "Spatially Expanded IK to Search Reaching Method and Location of Humanoids", THE 24TH ANNUAL CONFERENCE OF THE ROBOTICS SOCIETY OF JAPAN PROCEEDINGS CD-ROM; SEPTEMBER 14 - 16, 2006, ROBOTICS SOCIETY OF JAPAN, JP, vol. 24, 14 September 2006 (2006-09-14) - 16 September 2006 (2006-09-16), JP, pages 1H12 - 1H12-4, XP009541835 *
KIMITOSHI YAMAZAKI, MASAHIRO TOMONO, TAKASHI TSUBOUCHI, SHIN’ICHI YUTA: "3E17 Motion Planning for a Mobile Manipulator with Several Grasping Postures", PREPRINTS OF THE 24TH ANNUAL CONFERENCE OF THE ROBOTICS SOCIETY OF JAPAN; OKAYAMA, JAPAN; SEPTEMBER 14-16, 2006, ROBOTICS SOCIETY OF JAPAN, JP, vol. 24, 14 September 2006 (2006-09-14) - 16 September 2006 (2006-09-16), JP, pages 1 - 4, XP009541556 *

Also Published As

Publication number Publication date
JP2022187584A (ja) 2022-12-20
CN117412838A (zh) 2024-01-16

Similar Documents

Publication Publication Date Title
EP3410246B1 (en) Robot obstacle avoidance control system and method, robot, and storage medium
CN109154827B (zh) 机器人车辆的定位
Flacco et al. A depth space approach for evaluating distance to objects: with application to human-robot collision avoidance
US10948907B2 (en) Self-driving mobile robots using human-robot interactions
US9880553B1 (en) System and method for robot supervisory control with an augmented reality user interface
JP2020532018A (ja) 自律移動ロボットの移動計画
US20200139545A1 (en) Route Outputting Method, Route Outputting System and Route Outputting Program
CN108177162B (zh) 移动机器人的干扰区域设定装置
JP2022511359A (ja) ウェイポイントマッチングを用いた自律マップトラバーサル
US20220390950A1 (en) Directed exploration for navigation in dynamic environments
CN114102585A (zh) 一种物品抓取规划方法及系统
CN114800535B (zh) 机器人的控制方法、机械臂控制方法、机器人及控制终端
JP5212939B2 (ja) 自律移動装置
CN116830061A (zh) 动态站点上的机器人自主的语义模型
CN112230649A (zh) 机器学习方法及移动机器人
US20230418302A1 (en) Online authoring of robot autonomy applications
WO2022259600A1 (ja) 情報処理装置、情報処理システム、および情報処理方法、並びにプログラム
Udugama Mini bot 3D: A ROS based Gazebo Simulation
Chikhalikar et al. An object-oriented navigation strategy for service robots leveraging semantic information
US20220241980A1 (en) Object-Based Robot Control
Baslan et al. Navigation and vision system of a mobile robot
Hatao et al. Real-time navigation for a personal mobility in an environment with pedestrians
Deguchi et al. Enhanced Robot Navigation with Human Geometric Instruction
Vatcha et al. Practical motion planning in unknown and unpredictable environments
WO2023127337A1 (ja) 情報処理装置、情報処理方法、及びプログラム

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 22819791

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 18562352

Country of ref document: US

WWE Wipo information: entry into national phase

Ref document number: 202280039698.0

Country of ref document: CN

NENP Non-entry into the national phase

Ref country code: DE