WO2024075394A1 - 制御装置、及び制御方法 - Google Patents

制御装置、及び制御方法 Download PDF

Info

Publication number
WO2024075394A1
WO2024075394A1 PCT/JP2023/029080 JP2023029080W WO2024075394A1 WO 2024075394 A1 WO2024075394 A1 WO 2024075394A1 JP 2023029080 W JP2023029080 W JP 2023029080W WO 2024075394 A1 WO2024075394 A1 WO 2024075394A1
Authority
WO
WIPO (PCT)
Prior art keywords
gripping
unit
manipulator
gripping position
control device
Prior art date
Application number
PCT/JP2023/029080
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 ソニーグループ株式会社
Publication of WO2024075394A1 publication Critical patent/WO2024075394A1/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

Definitions

  • This disclosure relates to a control device and a control method.
  • Patent Document 1 discloses a technology in which randomly packed parts are grasped by a manipulator, transferred to a temporary placement table, and then aligned on a pallet.
  • the technology disclosed in Patent Document 1 makes it possible to generate in advance the grippable postures of the parts and the stable postures on the temporary placement table, thereby reducing the burden of programming the manipulator.
  • a trajectory plan for the hand attached to the tip of the manipulator is generated. Therefore, when transporting an object using a manipulator, it is important to consider the position and orientation of the manipulator at the source and destination positions where the object is grasped. Therefore, with a manipulator that transports objects, the computational load for generating a trajectory plan is greater and the computation time is longer than with a manipulator that is not used for transporting objects.
  • This disclosure therefore proposes a new and improved control device and control method that can execute calculations related to the operation of a manipulator that transports an object at higher speeds.
  • a control device including: a storage unit that stores object placement condition information that pre-sets a gripping position of the object that can be used when gripping the object with a manipulator, corresponding to the type of object and the position at which the object is placed; and a gripping position determination unit that, when transporting the object from a source position to a destination position with the manipulator, determines the gripping position of the object by the manipulator based on the gripping position of the object set in the object placement condition information at the source position and the gripping position of the object set in the object placement condition information at the destination position.
  • a control method includes: preparing, by a computing device, object placement condition information in which a gripping position of the object that can be used when gripping the object with a manipulator is preset in correspondence with the type of object and the position at which the object is placed; and, when transporting the object from a source position to a destination position with the manipulator, determining the gripping position of the object by the manipulator based on the gripping position of the object set in the object placement condition information at the source position and the gripping position of the object set in the object placement condition information at the destination position.
  • FIG. 1 is a schematic diagram illustrating an overview of a manipulator device according to a first embodiment of the present disclosure.
  • 2 is a block diagram illustrating a functional configuration of a control device that controls the manipulator device according to the first embodiment of the present disclosure.
  • FIG. FIG. 1 is a schematic diagram showing an example of a transport environment using a manipulator device.
  • 4 is a table showing an example of work instruction data in the transport environment shown in FIG. 3 .
  • FIG. 11 is a table showing an example of grip position information.
  • FIG. 6 is a schematic diagram showing three-dimensionally the gripping positions of ID: 0 and ID: X shown in FIG. 5 with respect to a rectangular parallelepiped object. 4 is a table illustrating an example of object placement condition information according to the first embodiment.
  • FIG. 1 is a schematic diagram illustrating an overview of a manipulator device according to a first embodiment of the present disclosure.
  • 2 is a block diagram illustrating a functional configuration of a control device that controls the manipulator
  • FIG. 4 is a flowchart illustrating the flow of operations of a task execution unit in the first embodiment.
  • FIG. 11 is a flowchart illustrating the flow of operations of a gripping position determination unit in the first embodiment.
  • FIG. 11 is a schematic diagram showing an outline of a moving body according to a second embodiment of the present disclosure.
  • FIG. 11 is a block diagram illustrating a functional configuration of a control device that controls a moving body according to a second embodiment of the present disclosure.
  • FIG. 11 is a table illustrating an example of object placement condition information according to the second embodiment.
  • 13A and 13B are schematic diagrams illustrating an example of a transport operation of a moving body in the second embodiment.
  • FIG. 11 is a flowchart illustrating the flow of operations of a moving object when performing work in the second embodiment.
  • First embodiment 1.1. Manipulator device 1.2. Control device 1.3. Operation example 2. Second embodiment 2.1. Mobile body 2.2. Control device 2.3. Operation example
  • Fig. 1 is a schematic diagram showing an overview of a manipulator device 10 according to this embodiment.
  • the manipulator device 10 includes an arm unit 11 and a hand unit 12.
  • the arm unit 11 is a multi-joint robot arm having multiple links and multiple joints connecting the multiple links to each other, and is attached, for example, to a fixed base.
  • the hand unit 12 is an end effector capable of grasping the object 30, and is attached to the tip side of the arm unit 11.
  • the hand unit 12 may be, for example, a hand with multiple fingers, a gripper with multiple claws, an adhesive hand that uses air or magnetic force, or a hook of various shapes.
  • the manipulator device 10 is a robot device that moves (i.e., transports) an object 30 placed at a source position Ts to a destination position Tg.
  • the manipulator device 10 can move the object 30 from the source position Ts to the destination position Tg, for example, by controlling the operation of the arm unit 11 and the hand unit 12 based on an image of the object 30 or the surrounding environment of the manipulator device 10.
  • the image of the object 30 or the surrounding environment of the manipulator device 10 may be captured by an imaging device (not shown) mounted on the manipulator device 10, or an imaging device 41 provided externally.
  • the manipulator device 10 may also control the operation of the arm unit 11 and the hand unit 12 based further on depth information of the surrounding environment of the object 30 or the manipulator device 10.
  • the depth information of the surrounding environment of the object 30 or the manipulator device 10 may be acquired, for example, by an imaging device such as a stereo camera, or may be acquired by a distance measurement sensor such as a ToF (Time of Flight) sensor or a LiDAR (Light Detection and Ranging).
  • a sensor not shown mounted on the manipulator device 10, or an external sensor (for example, the imaging device 41).
  • Fig. 2 is a block diagram illustrating the functional configuration of the control device 100 that controls the manipulator device 10 according to this embodiment.
  • the control device 100 includes an object recognition unit 112, a map creation unit 114, an obstacle information storage unit 154, a task execution unit 111, a task instruction storage unit 151, a gripping position determination unit 113, a gripping position storage unit 152, an object placement condition storage unit 153, a trajectory planning unit 115, and a control unit 116.
  • each calculation process of the control device 100 can be realized by cooperation between software and hardware including a CPU (Central Processing Unit) that functions as a calculation processing device or control device, a ROM (Read Only Memory) that stores programs and calculation parameters used by the CPU, and a RAM (Random Access Memory) into which programs are expanded when the CPU is executed.
  • each memory unit of the control device 100 may be composed of a magnetic memory device such as a HDD (Hard Disk Drive), a semiconductor memory device, an optical memory device, or a magneto-optical memory device.
  • the object recognition unit 112 recognizes the type of object 30 and the three-dimensional position and orientation of the object 30 based on the captured image of the object 30 acquired by the imaging device 411.
  • the object recognition unit 112 may recognize the type of object 30 and the three-dimensional position and orientation of the object 30 by recognizing feature points of the object 30 from the captured image acquired by the imaging device 411.
  • the object recognition unit 112 may recognize the type of object 30 and the three-dimensional position and orientation of the object 30 by performing image recognition on the captured image acquired by the imaging device 411 using machine learning.
  • the imaging device 411 is an RGB camera or a monochrome camera that captures an image of the object 30 or the surrounding environment of the manipulator device 10.
  • the imaging device 411 may be, for example, the imaging device 41 provided outside the manipulator device 10 as shown in FIG. 1, or may be an imaging device (not shown) mounted on the manipulator device 10.
  • the map creation unit 114 creates an obstacle map showing the positions of obstacles present in the surrounding environment of the manipulator device 10 based on the sensing results of the surrounding environment of the manipulator device 10 acquired by the sensor 412 and the position where the sensor 412 is mounted.
  • the map creation unit 114 may create, for example, an occupancy grid map as the obstacle map, which evaluates the presence of an obstacle using a posteriori probability.
  • the sensor 412 is a distance sensor or depth sensor capable of detecting obstacles present in the surrounding environment of the manipulator device 10.
  • the sensor 412 may be, for example, a distance sensor such as a ToF sensor or LiDAR (not shown) mounted on the manipulator device 10, or a depth sensor such as a depth camera or stereo camera capable of acquiring depth images.
  • the function of the sensor 412 may be mounted on an imaging device 41 provided outside the manipulator device 10 as shown in FIG. 1.
  • the obstacle map created by the map creation unit 114 is stored, for example, in the obstacle information storage unit 154. This allows the map creation unit 114 to detect new obstacles by extracting the difference between a known obstacle map stored in the obstacle information storage unit 154 and a newly created obstacle map.
  • the obstacle information storage unit 154 may also store an obstacle map in advance, similar to the grip position information and object placement condition information described below. In this case, the obstacle map stored in the obstacle information storage unit 154 may be an obstacle map created based on the environmental information used when generating the object placement condition information.
  • the work instruction storage unit 151 stores work instruction data that instructs the manipulator device 10 on the work to be performed.
  • the work instruction data may be input to the control device 100 separately from outside.
  • the work execution unit 111 instructs the manipulator device 10 to control its operation based on the work sequence defined in the work instruction data, and manages the progress of each of the work sequences. Specifically, the work execution unit 111 may output instructions to the grip position determination unit 113 and the trajectory planning unit 115 to cause the manipulator device 10 to sequentially execute the work sequences defined in the work instruction data.
  • Figure 3 is a schematic diagram showing an example of a transport environment using the manipulator device 10.
  • Figure 4 is a table diagram showing an example of work instruction data in the transport environment shown in Figure 3.
  • positions AA to AE are provided around the manipulator device 10 where an object 30 can be placed.
  • the work instruction data defines, for each work sequence, the type of object 30 to be transported (transport target), the source position of the object 30, and the destination position of the object 30.
  • the work instruction data shown in FIG. 4 defines sequence 0 as transporting object 30, "product X,” from position AA, which is the source position, to position AB, which is the destination position.
  • the work instruction data also defines sequence 1 as transporting object 30, "product Z,” from position AC, which is the source position, to position AD, which is the destination position.
  • the work instruction data also defines sequence 2 as transporting object 30, "product Y,” from position AB, which is the source position, to position AD, which is the destination position.
  • the work instruction data below defines the type of object 30 to be transported in each sequence, the source position of object 30, and the destination position of object 30.
  • the work execution unit 111 can transport various objects 30 continuously by outputting instructions to the manipulator device 10 to execute the work sequences defined in the work instruction data in order starting from sequence 0.
  • the gripping position memory unit 152 stores gripping position information indicating the position at which the hand unit 12 grips the object 30 for each type of object 30 to be transported.
  • the gripping position information is information indicating, for each type of object 30, a grippable position on the object 30 as a relative position and orientation from the origin of the object 30 (e.g., the center of a rectangular parallelepiped circumscribing the object 30).
  • the gripping position information may indicate, for example, one gripping position for each type of object 30, or may indicate multiple gripping positions.
  • Fig. 5 is a table showing an example of grip position information in the first embodiment.
  • Fig. 6 is a schematic diagram showing in three dimensions the grip positions of ID: 0 and ID: X shown in Fig. 5 for object 30, which is a rectangular parallelepiped.
  • the gripping position information includes information indicating the gripping position and posture by one or more hand units 12 for each type of object 30 (X objects in FIG. 5). Note that in the gripping position information shown in FIG. 5, the posture of the hand unit 12 is expressed based on a direction parallel to the xy plane in FIG. 6 and facing the positive direction of the x axis.
  • the hand unit 12 can grip the object 30 with an offset of 0 in the x-axis and y-axis directions and an offset of H/2-M in the z-axis direction, with the center of gravity of the object 30 as the origin OO.
  • the posture of the hand unit 12 at this time is a posture with 0 rotations in the roll and yaw directions, and ⁇ /2 rotations in the pitch direction.
  • H is the height of the object 30 in the z-axis direction
  • M is the margin from the center of gripping by the hand unit 12 at the gripping position of ID:0 to the end face of the object 30.
  • the hand unit 12 can grip the object 30 with an offset of 0 in the x-axis direction, an offset of W/2-m in the y-axis direction, and an offset of N in the z-axis direction, with the center of gravity of the object 30 being the origin OO.
  • the posture of the hand unit 12 at this time is a posture with 0 rotations in the roll and pitch directions, and ⁇ /2 rotations in the yaw direction.
  • W is the width of the object 30 in the y-axis direction
  • N is the offset in the z-axis direction from the origin OO to the gripping position
  • m is the margin from the center of gripping by the hand unit 12 at the gripping position of ID:X to the end face of the object 30.
  • the gripping position information may be obtained by the user arbitrarily moving the hand unit 12 relative to the shape of the object 30 in real or virtual space.
  • the gripping position information may be automatically obtained from a captured image, a depth image, or pre-given CAD (Computer-Aided Design) information of the object 30 using a known algorithm that automatically extracts the gripping position and orientation by the hand unit 12 based on the shape of the object 30.
  • CAD Computer-Aided Design
  • the object placement condition storage unit 153 stores object placement conditions that indicate the gripping positions of the hand unit 12 that can grip the object 30 placed at each position.
  • the object placement condition information is information that indicates, for each position in the space where the manipulator device 10 performs work, the gripping positions that can be used for the object 30 placed at each position, for each type of object 30.
  • FIG. 7 is a table showing an example of object placement condition information in the first embodiment.
  • the object placement condition information sets usable gripping positions of the hand unit 12 for each placement position of the object 30 and each type of placed object 30.
  • a usable gripping position is a gripping position where the hand unit 12 can grip the object 30 without interfering with the surrounding environment of the object 30 at the position where the object 30 is placed.
  • a usable gripping position is a gripping position of the object 30 by the hand unit 22 indicated in the gripping position information, excluding gripping positions that interfere with the surrounding environment of the placement position of the object 30.
  • the object placement condition information shown in FIG. 7 indicates that four gripping position IDs 0, 1, 3, and 5 are available at position AA, five gripping position IDs 0, 1, 2, 3, and 4 are available at position AB, four gripping position IDs 0, 1, 3, and 5 are available at position AC, and three gripping position IDs 3, 5, and 7 are available at position AD.
  • the object placement condition information shown in FIG. 7 indicates that four gripping position IDs: 1, 2, 4, 8 are available at position AA, four gripping position IDs: 1, 2, 4, 8 are available at position AB, four gripping position IDs: 1, 2, 4, 8 are available at position AC, and four gripping position IDs: 1, 2, 4, 8 are available at position AD.
  • the object placement condition information shown in FIG. 7 indicates that four gripping position IDs: 0, 3, 5, 6 are available at position AA, four gripping position IDs: 0, 3, 5, 6 are available at position AB, four gripping position IDs: 0, 3, 5, 6 are available at position AC, and four gripping position IDs: 0, 3, 5, 6 are available at position AD.
  • the object placement condition information may be defined in advance by the user.
  • the object placement condition information may be generated by determining interference between the hand unit 12 and an obstacle based on the sensing results obtained by sensing the obstacle at each position using the sensor 412.
  • the gripping position determination unit 113 determines the gripping position of the object 30 by the hand unit 12 based on the type of object 30 included in the work sequence instructed by the work execution unit 111, the source position, and the destination position.
  • the grip position determination unit 113 refers to the object placement condition information for the type of object 30 included in the work sequence, and determines grip positions that can be gripped at both the source position and the destination position as candidate grip positions for the hand unit 12. Next, the grip position determination unit 113 may determine, from among the grip position candidates for the hand unit 12, the grip position candidate for which the subsequent trajectory planning unit 115 has successfully generated a trajectory plan as the grip position of the object 30 by the hand unit 12.
  • the gripping position determination unit 113 may generate a candidate list in which the gripping position candidates are arranged in order of best score derived based on the amount of change of the arm unit 11 and the hand unit 12 from the source position to the destination position.
  • the trajectory planning unit 115 can generate a trajectory plan for the hand unit 12 using the gripping position candidate with the best score by generating a trajectory plan using the gripping position candidates in the order arranged in the candidate list.
  • the gripping position determination unit 113 may delete from the candidate list a gripping position candidate for which the subsequent trajectory planning unit 115 has failed to generate a trajectory plan.
  • the score used in generating the above candidate list may be the sum of squares of the movement amount for each joint of the arm unit 11 when the hand unit 12 is moved from the source position to the destination position.
  • the score used in generating the above candidate list may be the distance in three-dimensional space of the hand unit 12 from the source position to the destination position, or the amount of change in the three-dimensional posture. The smaller the value of these scores, the better the scores.
  • the grip position determination unit 113 may determine whether the position and posture of the arm unit 11 and the hand unit 12 determined in the grip position candidate interfere with an obstacle present in the surrounding environment of the object 30. For example, the grip position determination unit 113 may determine whether the position and posture of the arm unit 11 and the hand unit 12 determined in the grip position candidate interfere with an obstacle shown in an obstacle map stored in the obstacle information storage unit 154. The grip position determination unit 113 may also determine whether the position and posture of the arm unit 11 and the hand unit 12 determined in the grip position candidate interfere with an obstacle recognized from an image captured by the imaging device 411. If the position and posture of the arm unit 11 and the hand unit 12 determined in the grip position candidate interfere with an obstacle present in the surrounding environment of the object 30, the grip position determination unit 113 may delete the interfering grip position candidate from the candidate list.
  • the trajectory planning unit 115 generates a trajectory plan for the entire manipulator device 10 performing the instructed task based on instructions from the task execution unit 111, and outputs the generated trajectory plan to the control unit 116. Specifically, the trajectory planning unit 115 may generate a trajectory plan for the hand unit 12 moving from the current position to a candidate gripping position of the object 30 arranged at the source position, and a trajectory plan for the hand unit 12 moving from the candidate gripping position of the object 30 arranged at the source position to the candidate gripping position of the object 30 arranged at the destination position.
  • the trajectory planning unit 115 may generate a trajectory plan for the manipulator device 10 using the grip position candidate with the best score in the candidate list generated by the grip position determination unit 113. If the generation of the trajectory plan for the hand unit 12 fails, as described above, the trajectory planning unit 115 may generate a trajectory plan for the hand unit 12 using the grip position candidate with the next best score.
  • the trajectory planning unit 115 transmits the generated trajectory plan and the gripping position of the hand unit 12 used to the work execution unit 111. After that, upon receiving an instruction to execute a transport operation from the work execution unit 111, the trajectory planning unit 115 transmits the generated trajectory plan for the manipulator device 10 and the gripping position of the hand unit 12 used to the control unit 116.
  • the control unit 116 controls the drive of the motor that rotates the joints of the arm unit 11 so that the hand unit 12 operates in accordance with the trajectory plan received from the trajectory planning unit 115.
  • the control unit 116 notifies the work execution unit 111 via the trajectory planning unit 115 that the transportation work is completed. This enables the work execution unit 111 to proceed to the next work sequence defined in the work instruction data.
  • the control device 100 can standardize the gripping position of the object 30 at the source position and the destination position when the object 30 is transported by the manipulator device 10, making it easier to transport the object 30 successfully. Furthermore, the control device 100 can reduce the amount of calculations during transport by deriving in advance gripping positions that can be used when gripping the object 30 at each position. Therefore, the control device 100 can speed up calculation processing during transport.
  • the gripping position of the object 30 is limited in advance by the gripping position information, and the gripping position of the object 30 is further limited by the object placement condition information according to the placement position of the object 30. Therefore, in the control device 100, the gripping positions of the object 30 that can be used at the source position or the destination position are not continuously considered, but are limited to a plurality of types. Therefore, when the gripping positions of the object 30 are made common at the source position and the destination position, the control device 100 can ensure that the common gripping position of the object 30 certainly exists.
  • control device 100 can identify the gripping position of the object 30 that is common at the source position and the destination position with a lower calculation cost by comparing the gripping position of the object 30 that can be used at the source position with the gripping position of the object 30 that can be used at the destination position.
  • control device 100 even if a new obstacle occurs, the control device 100 only needs to determine whether there is interference between the grasping position that can be used to grasp the object 30 and the obstacle that has occurred, so it is possible to quickly perform calculations to avoid the new obstacle.
  • Fig. 8 is a flow chart illustrating the flow of the operation of the task execution unit 111.
  • Fig. 9 is a flow chart illustrating the flow of the operation of the grip position determination unit 113.
  • the work execution unit 111 selects a work sequence to be executed from the work instruction data stored in the work instruction storage unit 151 (S101). For example, in the work instruction data shown in FIG. 4, a work sequence is defined for each line that indicates the type of object 30 to be transported, the source position, and the destination position.
  • the work execution unit 111 extracts the work sequence to be executed from the work instruction data, and transmits the extracted work sequence to the grip position determination unit 113.
  • the following describes an example of executing work of sequence 0 of the work instruction data shown in FIG. 4.
  • the gripping position determination unit 113 determines the gripping position of the object 30 by the hand unit 12 based on the task sequence received from the task execution unit 111 (S102).
  • the gripping position determination unit 113 first checks the gripping positions of the hand unit 12 that can be used at the origin position based on the object placement condition information (S111). For example, in the object placement condition information shown in FIG. 7, when the object 30 of "product X" is placed at position AA, which is the origin position, the available gripping positions are ID: 0, 1, 3, 5.
  • the gripping position determination unit 113 may further limit the available gripping positions by determining interference between the positions and postures of the arm unit 11 and the hand unit 12 at the available gripping positions obtained from the object placement condition information and obstacles present in the surrounding environment of the object 30.
  • obstacles present in the surrounding environment of the object 30 for example, obstacles present in an obstacle map stored in the obstacle information storage unit 154 may be used, or obstacles recognized in the image captured by the imaging device 411 or the sensing results of the sensor 412 may be used.
  • the gripping position determination unit 113 may determine interference only with new obstacles that are the difference between the obstacle map created by the map creation unit 114 and the obstacle map stored in advance.
  • the gripping position determination unit 113 checks the gripping positions of the hand unit 12 that can be used at the destination position based on the object placement condition information (S112). For example, in the object placement condition information shown in FIG. 7, when the object 30 of "product X" is placed at the destination position AB, the available gripping positions are ID: 0, 1, 2, 3, 4. Note that the gripping position determination unit 113 may further limit the available gripping positions by determining interference between the positions and postures of the arm unit 11 and the hand unit 12 at the available gripping positions and obstacles present in the surrounding environment of the object 30, as in the case of the source position. At this time, the gripping position determination unit 113 may determine interference only with new obstacles that are the difference between the obstacle map created by the map creation unit 114 and the obstacle map stored in advance.
  • the gripping position determination unit 113 extracts gripping positions of the hand unit 12 that can be used at both the source position and the destination position as candidate gripping positions that can be used for transport (S113). This is because, to transport the object 30 from the source position to the destination position, the hand unit 12 continues to grip the object 30 at the same gripping position.
  • the gripping positions that can be used at the source position are IDs: 0, 1, 3, 5
  • the gripping positions that can be used at the destination position are IDs: 0, 1, 2, 3, 4, so IDs: 0, 1, 3 are extracted as candidate gripping positions that can be used for transport.
  • the gripping position determination unit 113 creates a candidate list by sorting the extracted gripping position candidates by score (S114).
  • the score may be the sum of squares of the movement amount for each joint of the arm unit 11 when the hand unit 12 is moved from the source position to the destination position, or the distance in three-dimensional space of the hand unit 12 from the source position to the destination position, or the amount of change in the three-dimensional orientation.
  • the gripping position determination unit 113 causes the trajectory planning unit 115 to generate a trajectory plan for the entire manipulator device 10 using the gripping position candidate with the best score from the created candidate list (S115).
  • the gripping position determination unit 113 may again determine whether or not to generate a trajectory plan using the gripping position candidate by determining interference between the position and posture of the arm unit 11 and the hand unit 12 at the gripping position candidate and an obstacle. At this time, the gripping position determination unit 113 may perform interference determination only for new obstacles that are the difference between the obstacle map created by the map creation unit 114 and the obstacle map stored in advance.
  • the grip position determination unit 113 determines whether the generation of the trajectory plan was successful (S116). If the generation of the trajectory plan was successful (S116/Yes), the grip position determination unit 113 can determine that the grip position candidate for which the trajectory plan was successfully generated is the grip position of the hand unit 12 to be used to transport the object 30.
  • the grip position determination unit 113 deletes the grip position candidate for which the generation of the trajectory plan failed from the candidate list (S117). Furthermore, the grip position determination unit 113 returns to the operation of step S115, and causes the trajectory plan unit 115 to generate a trajectory plan for the hand unit 12 again using the grip position candidate with the next best score from the candidate list (S115).
  • the task execution unit 111 transmits the generated trajectory plan for the hand unit 12 and the gripping position of the hand unit 12 from the trajectory planning unit 115 to the control unit 116, thereby causing the manipulator device 10 to execute the task of transporting the object 30 (S103).
  • the work execution unit 111 determines whether or not the final work sequence defined in the work instruction data has been completed (S104). If the final work sequence has not been completed (S104/No), the work execution unit 111 returns to the operation of step S101, selects the next work sequence defined in the work instruction data, and causes the manipulator device 10 to repeatedly continue the transport work. On the other hand, if the final work sequence has been completed (S104/Yes), the work execution unit 111 ends its operation and causes the manipulator device 10 to end the transport work.
  • control device 100 can cause the manipulator device 10 to continuously transport the object 30 based on the work instruction data.
  • Fig. 10 is a schematic diagram showing an overview of the moving body 20 according to the present embodiment.
  • the moving body 20 includes a manipulator 23 and a moving mechanism 25.
  • the manipulator 23 includes an arm unit 21 and a hand unit 22.
  • the arm unit 11 is a multi-joint robot arm having multiple links and multiple joints connecting the multiple links to each other, and is attached, for example, to the top of the main body of the moving body 20.
  • the hand unit 22 is an end effector capable of grasping the object 30, and is attached to the tip side of the arm unit 11.
  • the hand unit 22 may be, for example, a hand with multiple fingers, a gripper with multiple claws, an adsorption hand that uses air or magnetic force, or a hook of various shapes.
  • the moving mechanism 25 is a mechanism capable of moving the moving body 20 to any location.
  • the moving mechanism 25 may be any moving mechanism, such as, for example, two or more wheels, two or more legs, a crawler, an air cushion, or a rotor.
  • the moving mechanism 25 may be a moving mechanism with four wheels.
  • the moving body 20 is a robot device that moves (i.e., transports) an object 30 placed at a source position to a destination position.
  • the moving body 20 can move the machine itself by a moving mechanism 25, so it is possible to transport the object 30 to a destination position farther away from the source position.
  • the moving body 20 can grasp the object 30 with the manipulator 23 based on the captured image or depth information of the surrounding environment of the object 30, and can move with the moving mechanism 25 based on the captured image or depth information of the surrounding environment of the moving body 20.
  • the captured image of the surrounding environment of the object 30 or the moving body 20 may be acquired by an imaging device such as an RGB camera or a monochrome camera.
  • the depth information of the surrounding environment of the object 30 or the moving body 20 may be acquired by a stereo camera, a ToF sensor, LiDAR, or the like.
  • Fig. 11 is a block diagram illustrating the functional configuration of the control device 200 that controls the moving body 20 according to this embodiment.
  • the control device 200 includes an object recognition unit 212, a self-position estimation unit 221, a map creation unit 214, an obstacle information storage unit 254, a task execution unit 211, a task instruction storage unit 251, a gripping position determination unit 213, a gripping position storage unit 252, an object placement condition storage unit 253, a trajectory planning unit 215, a manipulator control unit 216, a path planning unit 222, and a movement mechanism control unit 223.
  • each calculation process of the control device 200 can be realized by cooperation between software and hardware including a CPU that functions as a calculation processing device or control device, a ROM that stores programs and calculation parameters used by the CPU, and a RAM into which programs are expanded when the CPU is executed.
  • each memory unit of the control device 100 may be configured with a magnetic memory device such as a HDD, a semiconductor memory device, an optical memory device, or a magneto-optical memory device.
  • the object recognition unit 212 recognizes the type of object 30 and the three-dimensional position and orientation of the object 30 based on the captured image of the object 30 acquired by the imaging device 411.
  • the object recognition unit 212 may recognize the type of object 30 and the three-dimensional position and orientation of the object 30 by recognizing feature points of the object 30 from the captured image acquired by the imaging device 411.
  • the object recognition unit 212 may recognize the type of object 30 and the three-dimensional position and orientation of the object 30 by performing image recognition on the captured image acquired by the imaging device 411 using machine learning.
  • the imaging device 411 is an RGB camera or a monochrome camera that captures an image of the surrounding environment of the object 30 or the moving body 20.
  • the imaging device 411 may be mounted on the moving body 20, for example.
  • the self-position estimation unit 221 estimates the current position of the moving body 20 based on information on the surrounding environment of the moving body 20 acquired by the sensor 412.
  • the self-position estimation unit 221 may estimate the current position of the moving body 20 based on distance measurement information or depth information acquired by the sensor 412.
  • the self-position estimation unit 221 may estimate the current position of the moving body 20 based on information acquired by an IMU (Inertial Measurement Unit) mounted on the moving body 20 or an encoder of the moving mechanism 25.
  • IMU Inertial Measurement Unit
  • the map creation unit 214 creates an obstacle map showing the positions of obstacles present in the surrounding environment of the mobile body 20 based on the sensing results of the surrounding environment of the mobile body 20 acquired by the sensor 412 and the current position of the mobile body 20 estimated by the self-position estimation unit 221.
  • the map creation unit 214 may create, for example, an occupancy grid map as the obstacle map, which evaluates the presence of an obstacle using a posteriori probability.
  • Sensor 412 is a distance sensor or depth sensor capable of detecting obstacles present in the surrounding environment of moving body 20.
  • Sensor 412 may be, for example, a distance sensor such as a ToF sensor or LiDAR mounted on moving body 20, or may be a depth sensor of a depth camera or stereo camera capable of acquiring a depth image.
  • the obstacle map created by the map creation unit 214 is stored, for example, in the obstacle information storage unit 254. This allows the map creation unit 214 to detect new obstacles by extracting the difference between a known obstacle map stored in the obstacle information storage unit 254 and a newly created obstacle map. Furthermore, the obstacle map may be stored in advance in the obstacle information storage unit 254, similar to the gripping position information and object placement condition information described below. In this case, the obstacle map stored in the obstacle information storage unit 254 may be an obstacle map created based on the environmental information used when generating the object placement condition information.
  • the work instruction storage unit 251 stores work instruction data that instructs the mobile body 20 on the work to be performed.
  • the work instruction data may be input to the control device 200 separately from outside.
  • the work execution unit 211 instructs the mobile body 20 to control its operation based on the work sequence defined in the work instruction data, and manages the progress of each of the work sequences. Specifically, the work execution unit 211 may output instructions to the grip position determination unit 213, the trajectory planning unit 215, and the path planning unit 222 to cause the mobile body 20 to sequentially execute the work sequences defined in the work instruction data.
  • the work execution unit 211 can transport various objects 30 continuously by outputting instructions to the mobile body 20 to sequentially execute the work sequence defined in the work instruction data as shown in FIG. 4.
  • the gripping position memory unit 252 stores gripping position information indicating the position at which the hand unit 22 grips the object 30 for each type of object 30 to be transported.
  • the gripping position information is information indicating, for each type of object 30, a grippable position on the object 30 as a relative position and orientation from the origin of the object 30 (e.g., the center of a rectangular parallelepiped circumscribing the object 30).
  • the gripping position information may indicate, for example, one gripping position for each type of object 30, or may indicate multiple gripping positions.
  • the gripping position information may be obtained by the user arbitrarily moving the hand unit 22 relative to the shape of the object 30 in real or virtual space.
  • the gripping position information may be automatically obtained from a captured image, depth image, or CAD information of the object 30 using a known algorithm that automatically extracts the gripping position and orientation by the hand unit 22 based on the shape of the object 30.
  • the object placement condition storage unit 253 stores object placement conditions that indicate the gripping positions of the hand unit 22 that can grip the object 30 placed at each position.
  • the object placement condition information is information that indicates, for each type of object 30, the gripping positions that can be used for the object 30 placed at each position in the space where the mobile body 20 performs work.
  • FIG. 12 is a table showing an example of object placement condition information in the second embodiment.
  • the object placement condition information sets the placement position of the object 30 and the usable gripping position of the hand unit 22 and the body position of the mobile body 20 for each type of placed object 30.
  • the usable gripping position is a gripping position where the hand unit 22 can grip the object 30 without interfering with the surrounding environment of the object 30 at the position where the object 30 is placed.
  • the usable gripping position may be a gripping position of the object 30 by the hand unit 22 indicated in the gripping position information, excluding gripping positions that interfere with the surrounding environment of the position where the object 30 is placed.
  • the machine position is the position of the moving body 20 where the hand unit 22 can reach the placement position of the object 30 and the usable gripping position set for each type of placed object 30.
  • the machine position may be a position where the arm unit 21 and the moving body 20 can be placed without interfering with obstacles, etc., in addition to the hand unit 22 being able to reach the usable gripping position.
  • the object placement condition information shown in FIG. 12 indicates that for the object 30 "Product X,” gripping positions ID: 2 and 4 are available at position AA, the machine position of the mobile unit 20 at gripping position ID: 2 is BA2a and BA2b, and the machine position of the mobile unit 20 at gripping position ID: 4 is BA4. It also indicates that for the object 30 "Product X,” gripping positions ID: 3 and 4 are available at position AB, the machine position of the mobile unit 20 at gripping position ID: 3 is BB3, and the machine position of the mobile unit 20 at gripping position ID: 4 is BB4.
  • the object placement condition information shown in FIG. 12 indicates that for the object 30 of "product Y”, gripping position ID: 4 is available at position AA, and the body position of the mobile body 20 at gripping position ID: 4 is BA4. It also indicates that for the object 30 of "product Y”, gripping position ID: 3 is available at position AB, and the body position of the mobile body 20 at gripping position ID: 3 is BB3.
  • the object placement condition information may be defined in advance by the user.
  • the object placement condition information may be generated by determining interference between the hand unit 22, the arm unit 21, and the mobile body 20 main body and obstacles based on the sensing results obtained by sensing obstacles at each position using the sensor 412.
  • the gripping position determination unit 213 determines the gripping position of the object 30 by the hand unit 22 based on the type of object 30 included in the work sequence instructed by the work execution unit 211, the source position, and the destination position.
  • the grip position determination unit 213 refers to the object placement condition information for the type of object 30 included in the work sequence, and determines grip positions that can be gripped at both the source position and the destination position as candidate grip positions for the hand unit 22.
  • the grip position determination unit 213 may determine from among the candidate grip positions for the hand unit 22 that a grip position candidate for which the subsequent trajectory planning unit 215 and path planning unit 222 have successfully generated a trajectory plan and a path plan is the grip position of the object 30 by the hand unit 22.
  • the gripping position determination unit 213 may generate a candidate list in which the gripping position candidates are arranged in order of best score derived based on the amount of change of the manipulator 23 from the source position to the destination position. In this way, the trajectory planning unit 215 and the path planning unit 222 can generate a trajectory plan and a path plan using the gripping position candidates in the order arranged in the candidate list, thereby generating a trajectory plan for the hand unit 22 and a path plan for the mobile body 20 using the gripping position candidate with the best score.
  • the gripping position determination unit 213 may delete from the candidate list a gripping position candidate for which the subsequent trajectory planning unit 215 or path planning unit 222 has failed to generate a trajectory plan or a path plan.
  • the score used in generating the above candidate list may be the sum of squares of the movement amount for each joint of the arm unit 11 when the hand unit 22 is moved from the source position to the destination position.
  • the score used in generating the above candidate list may be the distance in three-dimensional space of the hand unit 22 from the source position to the destination position, or the amount of change in the three-dimensional attitude.
  • the score used in generating the above candidate list may be the straight-line distance from the machine position at the source position to the machine position at the destination position. The smaller the value of these scores, the better the scores.
  • the grip position determination unit 213 may determine whether the position and posture of the manipulator 23 and the moving body 20 determined in the grip position candidate interfere with an obstacle present in the surrounding environment of the object 30. For example, the grip position determination unit 213 may determine whether the position and posture of the manipulator 23 and the moving body 20 determined in the grip position candidate interfere with an obstacle shown in the obstacle map stored in the obstacle information storage unit 254. The grip position determination unit 213 may also determine whether the position and posture of the manipulator 23 and the moving body 20 determined in the grip position candidate interfere with an obstacle recognized from an image captured by the imaging device 411. When the position and posture of the manipulator 23 and the moving body 20 determined in the grip position candidate interfere with an obstacle present in the surrounding environment of the object 30, the grip position determination unit 213 may delete the interfering grip position candidate from the candidate list.
  • the trajectory planning unit 215 generates a trajectory plan for the manipulator 23 that performs the instructed task based on instructions from the task execution unit 211, and outputs the generated trajectory plan to the manipulator control unit 216.
  • the trajectory planning unit 215 may generate a trajectory plan in which the hand unit 22 moves back and forth between the position of the hand unit 22 in the transport posture and a candidate gripping position of the object 30 arranged at the source position, and a trajectory plan in which the hand unit 22 moves back and forth between the position of the hand unit 22 in the transport posture and a candidate gripping position of the object 30 arranged at the destination position.
  • the mobile body 20 is assumed to be present at an aircraft position corresponding to the candidate gripping position.
  • the trajectory planning unit 215 may generate a trajectory plan for the manipulator 23 using the gripping position candidates in the candidate list generated by the gripping position determination unit 213 in order of score.
  • the trajectory planning unit 215 may generate a trajectory plan for the manipulator 23 using the machine body position with the best set score.
  • the score at this time may be the straight-line distance from the machine body position corresponding to the source position to the machine body position corresponding to the destination position.
  • the trajectory planning unit 215 may generate a trajectory plan for the manipulator 23 using all machine body positions, and select the trajectory plan with the shortest distance of the generated trajectory.
  • the trajectory planning unit 215 transmits the generated trajectory plan and the grip position of the hand unit 22 used to the work execution unit 211. After that, upon receiving an instruction to execute a transport operation from the work execution unit 211, the trajectory planning unit 215 transmits the generated trajectory plan and the grip position of the hand unit 22 used to the manipulator control unit 216. On the other hand, if the generation of the trajectory plan for the hand unit 22 fails, the trajectory planning unit 215 may generate a trajectory plan for the manipulator 23 using the grip position candidate with the next best score.
  • the route planning unit 222 generates a route plan for the mobile body 20 performing the instructed work based on an instruction from the work execution unit 211, and outputs the generated route plan to the mobile mechanism control unit 223. Specifically, the route planning unit 222 may generate a route plan to reach a position instructed by the work execution unit 211 while avoiding obstacles, based on the obstacle map generated by the map creation unit 214 and the self-position estimated by the self-position estimation unit 221.
  • the route planning unit 222 may generate a route plan from the current position of the mobile body 20 to the machine position of the mobile body 20 corresponding to the grip position candidate of the transfer origin position, and a route plan from the machine position of the mobile body 20 corresponding to the grip position candidate of the transfer origin position to the machine position of the mobile body 20 corresponding to the grip position candidate of the transfer destination position.
  • the route planning unit 222 may update the generated route plan when the obstacle map is updated due to the sensor 412 detecting a new obstacle.
  • the path planning unit 222 may generate a path plan for the moving body 20 using the machine position of the moving body 20 corresponding to the gripping position candidate for which the trajectory planning of the manipulator 23 has been successful.
  • the path planning unit 222 may generate a path plan for the moving body 20 using the machine position with the best set score. The score at this time may be the straight-line distance from the machine position corresponding to the source position to the machine position corresponding to the destination position.
  • the path planning unit 222 may generate a path plan for the moving body 20 using all machine positions, and select the path plan with the shortest distance of the generated path.
  • the path planning unit 222 sends the generated path plan to the work execution unit 211. Thereafter, upon receiving an instruction to execute a transport operation from the work execution unit 211, the path planning unit 222 sends the generated path plan to the movement mechanism control unit 223. On the other hand, if the generation of the path plan for the moving body 20 fails, the path planning unit 222 may discard the gripping positions for which the generation of the path plan failed, and again request the trajectory planning unit 215 to generate a trajectory plan for the manipulator 23 using the gripping position candidates.
  • the manipulator control unit 216 controls the drive of the motor that rotates the joints of the arm unit 11 so that the hand unit 22 operates in accordance with the trajectory plan received from the trajectory planning unit 215.
  • the movement mechanism control unit 223 controls the drive of the movement mechanism 25 so that the moving body 20 moves from the current position estimated by the self-position estimation unit 221 in accordance with the path plan received from the path planning unit 222.
  • the manipulator control unit 216 and the movement mechanism control unit 223 notify the work execution unit 211 of the completion of the transportation work. This enables the work execution unit 211 to proceed to the next sequence in the work sequence defined in the work instruction data.
  • control device 200 can standardize the gripping position of the object 30 at the source position and the destination position when the object 30 is transported by the manipulator 23 of the moving body 20, making it easier to transport the object 30 successfully. Furthermore, the control device 200 can reduce the amount of calculations during transport by deriving in advance gripping positions that can be used when gripping the object 30 at each position. Therefore, the control device 200 can speed up calculation processing during transport.
  • control device 200 only needs to determine whether there is interference between the grasping position that can be used to grasp the object 30 and the obstacle that has occurred, so it is possible to quickly perform calculations to avoid the new obstacle.
  • Fig. 13 is a schematic diagram showing an example of a transport operation of the moving body 20.
  • Fig. 14 is a flow chart illustrating the flow of the operation of the moving body 20 when performing work.
  • the work execution unit 211 selects a work sequence to be executed from the work instruction data stored in the work instruction storage unit 251, and transmits the selected work sequence to the grip position determination unit 213.
  • the grip position determination will be explained by exemplifying a case where the work of sequence 0 of the work instruction data shown in FIG. 4 is executed.
  • the gripping position determination unit 213 determines the gripping position of the object 30 by the hand unit 22 and the body position of the mobile body 20 that corresponds to the gripping position based on the received work sequence.
  • the gripping position determination unit 213 first checks the gripping positions of the hand unit 12 that can be used at the origin position based on the object placement condition information. For example, in the object placement condition information shown in FIG. 12, when the object 30 of "product X" is placed at position AA, which is the origin position, the available gripping positions are ID: 2 and 4. At gripping position ID: 2, there are two possible machine positions for the mobile body 20, BA2a and BA2b, and at gripping position ID: 4, there is only one possible machine position for the mobile body 20, BA4.
  • the gripping position determination unit 213 checks the gripping positions of the hand unit 22 that can be used at the destination position based on the object placement condition information. For example, in the object placement condition information shown in FIG. 12, when the object 30 of "product X" is placed at position AB, which is the destination position, the available gripping positions are ID: 3 and 4. At gripping position ID: 3, there is only one possible body position of the mobile body 20, BB3, and at gripping position ID: 4, there is only one possible body position of the mobile body 20, BB4.
  • the gripping position determination unit 213 extracts gripping positions of the hand unit 22 that can be used at both the source position AA and the destination position AB as gripping position candidates that can be used for transport.
  • the gripping positions that can be used at position AA are IDs: 2 and 4
  • the gripping positions that can be used at position AB are IDs: 3 and 4, so ID: 4 is extracted as a gripping position candidate that can be used for transport.
  • the gripping position determination unit 213 may further limit the available gripping positions by determining interference between the positions and orientations of the manipulator 23 and the mobile body 20 at the available gripping positions obtained from the object placement condition information and obstacles present in the surrounding environment of the object 30.
  • obstacles present in the surrounding environment of the object 30 for example, obstacles present in an obstacle map stored in the obstacle information storage unit 254 may be used, or obstacles recognized in the image captured by the imaging device 411 or the sensing results of the sensor 412 may be used.
  • the gripping position determination unit 213 may determine interference only with new obstacles that are the difference between the obstacle map created by the map creation unit 214 and the obstacle map stored in advance.
  • the grip position determination unit 213 uses the extracted grip position candidates to cause the trajectory planning unit 215 to generate a trajectory plan for the hand unit 22, and also causes the path planning unit 222 to generate a path plan for the moving body 20.
  • the gripping position determination unit 213 when there are multiple gripping position candidates, the gripping position determination unit 213 generates a candidate list in which the gripping position candidates are arranged in order of the score derived based on the amount of change of the manipulator 23 from the source position to the destination position. In this way, the gripping position determination unit 213 can cause the trajectory planning unit 215 to generate a trajectory plan for the hand unit 22 using the gripping position candidate with the best score from the created candidate list.
  • the score may be the sum of squares of the amount of movement for each joint of the arm unit 11 when the hand unit 12 is moved from the source position to the destination position, or the distance in three-dimensional space of the hand unit 12 from the source position to the destination position, or the amount of change in the three-dimensional orientation.
  • the grip position determination unit 213 determines whether the generation of the trajectory plan was successful. If the generation of the trajectory plan fails due to interference with an obstacle or the movable range of the manipulator 23, the grip position determination unit 213 deletes the grip position candidate for which the generation of the trajectory plan failed from the candidate list. Furthermore, the grip position determination unit 213 causes the trajectory plan unit 215 to regenerate a trajectory plan for the hand unit 22 using the grip position candidate with the next best score from the candidate list.
  • the grip position determination unit 213 determines that the grip position candidate for which the trajectory plan was successfully generated is the grip position of the hand unit 22 to be used to transport the object 30.
  • the path planning unit 222 generates a path plan for transporting the object 30 from the current position of the moving body 20 to the destination position via the source position, using the gripping position of the hand unit 22 determined by the gripping position determination unit 213 to be used for transport.
  • the task execution unit 211 causes the moving body 20 to start transporting the object 30.
  • the work execution unit 211 moves the moving body 20 to the origin position (S201). Specifically, the work execution unit 211 instructs the moving body 20 to move by transmitting a planned route from the current position to the machine position at the origin position to the moving mechanism control unit 223 via the route planning unit 222. This allows the moving mechanism control unit 223 to control the driving of the moving mechanism 25 so that the moving body 20 follows the received route.
  • the moving mechanism control unit 223 notifies the work execution unit 211 of the completion of the movement via the route planning unit 222.
  • the work execution unit 211 causes the hand unit 22 to grasp the object 30 placed at the source position (S202). Specifically, the work execution unit 211 instructs the manipulator control unit 216 to grasp the object 30 by transmitting a planned trajectory to the grasping position of the object 30 via the trajectory planning unit 215. This allows the manipulator control unit 216 to control the drive of the manipulator 23 so that the hand unit 22 follows the received trajectory. When the hand unit 22 reaches the grasping position of the object 30 and grasping of the object 30 is completed, the manipulator control unit 216 notifies the work execution unit 211 of the completion of grasping via the trajectory planning unit 215.
  • the trajectory planning unit 215 may generate a trajectory plan for the hand unit 22 again using the sensing results of the position and orientation of the object 30, taking into account the positional deviation when the mobile unit 20 reaches the machine body position at the origin position.
  • the candidate gripping position used in the previous trajectory plan may be used as the gripping position of the hand unit 22.
  • the task execution unit 211 may instruct the manipulator control unit 216 via the trajectory planning unit 215 to control the manipulator 23 to the transportation posture.
  • the task execution unit 211 moves the moving body 20 to the destination position while still holding the object 30 (S203). Specifically, the task execution unit 211 instructs the moving body 20 to move by transmitting a planned route from the machine position at the source position to the machine position at the source position to the moving mechanism control unit 223 via the route planning unit 222. This allows the moving mechanism control unit 223 to control the drive of the moving mechanism 25 so that the moving body 20 follows the received route. When the moving body 20 reaches the machine position at the destination position, the moving mechanism control unit 223 notifies the task execution unit 211 of the completion of the move via the route planning unit 222.
  • the work execution unit 211 places the object 30 held by the hand unit 22 at the destination position (S204). Specifically, the work execution unit 211 instructs the manipulator control unit 216 to place the object 30 at the destination position by transmitting a planned trajectory to the holding position corresponding to the destination position of the object 30 via the trajectory planning unit 215. This allows the manipulator control unit 216 to control the drive of the manipulator 23 so that the hand unit 22 follows the received trajectory.
  • the manipulator control unit 216 notifies the work execution unit 211 of the completion of placing the object 30 via the trajectory planning unit 215.
  • the trajectory planning unit 215 may generate a trajectory plan for the hand unit 22 again using the sensing results of the surrounding environment of the destination position, taking into account the positional deviation when the mobile body 20 reaches the machine body position at the destination position.
  • the candidate gripping position where the object 30 is currently being gripped may be used as the gripping position of the hand unit 22.
  • the task execution unit 211 may instruct the manipulator control unit 216 via the trajectory planning unit 215 to control the manipulator 23 to the posture during transport.
  • control device 200 can cause the moving body 20 to transport the object 30 from the source position to the destination position based on the work instruction data.
  • a storage unit that stores object placement condition information that pre-sets a gripping position of the object that can be used when gripping the object with a manipulator, in correspondence with a type of the object and a position where the object is placed; a gripping position determination unit that, when the object is transported from an origin position to a destination position by the manipulator, determines a gripping position of the object by the manipulator based on a gripping position of the object set in the object placement condition information at the origin position and a gripping position of the object set in the object placement condition information at the destination position;
  • a control device comprising: (2) The control device according to (1), wherein the gripping position determination unit determines the gripping position that can be used at both the source position and the destination position as a candidate gripping position to be used for the transport.
  • the gripping position determination unit when there are multiple gripping position candidates, the gripping position determination unit generates a candidate list in which the gripping position candidates are arranged in order of score using a score based on the amount of change of the manipulator from the source position to the destination position.
  • a trajectory planning unit that generates a trajectory plan for the manipulator, The control device described in (3), wherein the trajectory planning unit sequentially generates the trajectory plan using the gripping position candidates in order of score of the candidate list.
  • the gripping position determination unit deletes the gripping position candidate for which the trajectory plan has not been generated from the candidate list, and determines the gripping position candidate for which the trajectory plan has been successfully generated as the gripping position of the object by the manipulator.
  • the gripping position determination unit generates the candidate list using the score further based on the amount of change of the moving body from the source position to the destination position.
  • the gripping position determination unit further deletes from the candidate list the gripping position candidates in which the sensed surrounding environment interferes with the moving body.

Landscapes

  • Engineering & Computer Science (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Manipulator (AREA)

Abstract

【課題】物体を搬送するマニピュレータの動作に関する演算処理をより高速で実行する。 【解決手段】物体の種別と、前記物体が配置された位置とに対応して、前記物体をマニピュレータで把持する際に使用可能な前記物体の把持位置をあらかじめ設定した物体配置条件情報を記憶する記憶部と、前記マニピュレータにて前記物体を搬送元位置から搬送先位置に搬送する際に、前記搬送元位置にて前記物体配置条件情報に設定された前記物体の把持位置と、前記搬送先位置にて前記物体配置条件情報に設定された前記物体の把持位置とに基づいて、前記マニピュレータによる前記物体の把持位置を判断する把持位置判断部と、を備える、制御装置。

Description

制御装置、及び制御方法
 本開示は、制御装置、及び制御方法に関する。
 近年、製品組み立てライン又は物流システムなどの様々な産業分野で、複数軸の自由度を有するマニピュレータを用いて物体を搬送することが一般的になってきている。
 例えば、下記の特許文献1には、ばらばらに詰め込まれた部品をマニピュレータで把持し、仮置き台で持ち替えた上でパレットに整列させる技術が開示されている。特許文献1に開示された技術によれば、部品の把持可能姿勢と、仮置き台での安定可能姿勢とを事前に生成することができるため、マニピュレータのプログラミングに掛かる負担を軽減することが可能である。
特開2015-44274号公報
 一般的に、マニピュレータを動作させるには、マニピュレータの先端に設けられたハンドの軌道計画を生成することになる。そのため、マニピュレータを用いて物体を搬送する場合、搬送元位置及び搬送先位置でのマニピュレータの物体を把持する位置及び姿勢を考慮することが重要となる。したがって、物体を搬送するマニピュレータでは、物体の搬送用途以外のマニピュレータと比較して、軌道計画の生成に掛かる演算負荷が増大し、演算時間が長くなってしまう。
 そこで、本開示では、物体を搬送するマニピュレータの動作に関する演算処理をより高速で実行することが可能な、新規かつ改良された制御装置、及び制御方法を提案する。
 本開示によれば、物体の種別と、前記物体が配置された位置とに対応して、前記物体をマニピュレータで把持する際に使用可能な前記物体の把持位置をあらかじめ設定した物体配置条件情報を記憶する記憶部と、前記マニピュレータにて前記物体を搬送元位置から搬送先位置に搬送する際に、前記搬送元位置にて前記物体配置条件情報に設定された前記物体の把持位置と、前記搬送先位置にて前記物体配置条件情報に設定された前記物体の把持位置とに基づいて、前記マニピュレータによる前記物体の把持位置を判断する把持位置判断部と、を備える、制御装置が提供される。
 また、本開示によれば、演算処理装置によって、物体の種別と、前記物体が配置された位置とに対応して、前記物体をマニピュレータで把持する際に使用可能な前記物体の把持位置をあらかじめ設定した物体配置条件情報を用意することと、前記マニピュレータにて前記物体を搬送元位置から搬送先位置に搬送する際に、前記搬送元位置にて前記物体配置条件情報に設定された前記物体の把持位置と、前記搬送先位置にて前記物体配置条件情報に設定された前記物体の把持位置とに基づいて、前記マニピュレータによる前記物体の把持位置を判断することと、を含む、制御方法が提供される。
本開示の第1の実施形態に係るマニピュレータ装置の概略を示す模式図である。 本開示の第1の実施形態に係るマニピュレータ装置を制御する制御装置の機能構成を説明するブロック図である。 マニピュレータ装置による搬送環境の一例を示す模式図である。 図3に示す搬送環境における作業指示データの一例を示す表図である。 把持位置情報の一例を示す表図である。 直方体である物体に対する図5に示すID:0及びID:Xの把持位置を立体的に示す模式図である。 第1の実施形態における物体配置条件情報の一例を示す表図である。 第1の実施形態における作業実行部の動作の流れを説明するフローチャート図である。 第1の実施形態における把持位置判断部の動作の流れを説明するフローチャート図である。 本開示の第2の実施形態に係る移動体の概略を示す模式図である。 本開示の第2の実施形態に係る移動体を制御する制御装置の機能構成を説明するブロック図である。 第2の実施形態における物体配置条件情報の一例を示す表図である。 第2の実施形態における移動体の搬送動作の一例を示す模式図である。 第2の実施形態における作業を実行する際の移動体の動作の流れを説明するフローチャート図である。
 以下に添付図面を参照しながら、本開示の好適な実施の形態について詳細に説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略する。
 なお、説明は以下の順序で行うものとする。
 1.第1の実施形態
  1.1.マニピュレータ装置
  1.2.制御装置
  1.3.動作例
 2.第2の実施形態
  2.1.移動体
  2.2.制御装置
  2.3.動作例
 <1.第1の実施形態>
 (1.1.マニピュレータ装置)
 まず、図1を参照して、本開示の第1の実施形態に係るマニピュレータ装置の概略について説明する。図1は、本実施形態に係るマニピュレータ装置10の概略を示す模式図である。
 図1に示すように、本実施形態に係るマニピュレータ装置10は、アーム部11と、ハンド部12とを備える。
 アーム部11は、複数のリンクと、複数のリンクを互いに連結する複数の関節とを有する多関節のロボットアームであり、例えば、固定された土台の上に取り付けられる。ハンド部12は、物体30を把持可能なエンドエフェクタであり、アーム部11の先端側に取り付けられる。ハンド部12は、例えば、複数の指を有するハンド、複数の爪を有するグリッパ、エアー又は磁力を用いた吸着ハンド、又は種々の形状のフックなどであってもよい。
 マニピュレータ装置10は、搬送元位置Tsに配置された物体30を搬送先位置Tgに移動させる(すなわち搬送する)ロボット装置である。マニピュレータ装置10は、例えば、物体30又はマニピュレータ装置10の周囲環境の撮像画像に基づいて、アーム部11及びハンド部12の動作を制御することで、物体30を搬送元位置Tsから搬送先位置Tgに移動させることができる。物体30又はマニピュレータ装置10の周囲環境の撮像画像は、マニピュレータ装置10に搭載された図示しない撮像装置、又は外部に設けられた撮像装置41にて撮像されてもよい。
 また、マニピュレータ装置10は、物体30又はマニピュレータ装置10の周囲環境のデプス情報にさらに基づいて、アーム部11及びハンド部12の動作を制御してもよい。物体30又はマニピュレータ装置10の周囲環境のデプス情報は、例えば、ステレオカメラなどの撮像装置にて取得されてもよく、ToF(Time of Flight)センサ又はLiDAR(Light Detection And Ranging)などの測距センサにて取得されてもよい。これらのデプス情報は、マニピュレータ装置10に搭載された図示しないセンサ、又は外部に設けられたセンサ(例えば、撮像装置41)にて取得されてもよい。
 (1.2.制御装置)
 次に、図2~図7を参照して、本実施形態に係るマニピュレータ装置10を制御する制御装置100について説明する。図2は、本実施形態に係るマニピュレータ装置10を制御する制御装置100の機能構成を説明するブロック図である。
 図2に示すように、制御装置100は、物体認識部112と、地図作成部114と、障害物情報記憶部154と、作業実行部111と、作業指示記憶部151と、把持位置判断部113と、把持位置記憶部152と、物体配置条件記憶部153と、軌道計画部115と、制御部116とを備える。
 なお、制御装置100の各演算処理は、演算処理装置又は制御装置として機能するCPU(Central Processing Unit)、CPUが使用するプログラム及び演算パラメータなどを記憶するROM(Read Only Memory)、及びCPUの実行においてプログラムが展開されるRAM(Random Access Memory)を含むハードウェアと、ソフトウェアとの協働によって実現することが可能である。また、制御装置100の各記憶部は、HDD(Hard Disk Drive)などの磁気記憶デバイス、半導体記憶デバイス、光記憶デバイス、又は光磁気記憶デバイスなどにより構成されてもよい。
 物体認識部112は、撮像装置411にて取得された物体30の撮像画像に基づいて、物体30の種別と、物体30の三次元位置及び姿勢とを認識する。一例として、物体認識部112は、撮像装置411にて取得された撮像画像から物体30の特徴点を認識することで、物体30の種別と、物体30の三次元位置及び姿勢とを認識してもよい。他の例として、物体認識部112は、撮像装置411にて取得された撮像画像を機械学習にて画像認識することで、物体30の種別と、物体30の三次元位置及び姿勢とを認識してもよい。
 撮像装置411は、物体30又はマニピュレータ装置10の周囲環境を撮像するRGBカメラ又はモノクロカメラである。撮像装置411は、例えば、図1で示したようなマニピュレータ装置10の外部に設けられた撮像装置41であってもよく、マニピュレータ装置10に搭載された図示しない撮像装置であってもよい。
 地図作成部114は、センサ412にて取得されたマニピュレータ装置10の周囲環境のセンシング結果と、センサ412が搭載された位置とに基づいて、マニピュレータ装置10の周囲環境に存在する障害物の位置を示す障害物地図を作成する。地図作成部114は、例えば、障害物地図として、事後確率にて障害物の存在性を評価する占有グリッドマップ(occupancy grid map)を作成してもよい。
 センサ412は、マニピュレータ装置10の周囲環境に存在する障害物を検出することが可能な測距センサ又はデプスセンサである。センサ412は、例えば、マニピュレータ装置10に搭載された図示しないToFセンサ又はLiDARなどの測距センサであってもよく、デプス画像を取得可能なデプスカメラ又はステレオカメラのデプスセンサであってもよい。なお、センサ412の機能は、図1で示したようなマニピュレータ装置10の外部に設けられた撮像装置41に搭載されてもよい。
 地図作成部114にて作成された障害物地図は、例えば、障害物情報記憶部154に記憶される。これによれば、地図作成部114は、障害物情報記憶部154に記憶された既知の障害物地図と、新たに作成した障害物地図との差分を抽出することで、新規の障害物を検出することが可能である。また、障害物情報記憶部154には、後述する把持位置情報及び物体配置条件情報と同様にあらかじめ障害物地図が格納されてもよい。このとき、障害物情報記憶部154に格納される障害物地図は、物体配置条件情報を生成する際に使用した環境情報に基づいて作成された障害物地図であってもよい。
 作業指示記憶部151は、マニピュレータ装置10に実行させる作業内容を指示する作業指示データを記憶する。作業指示データは、別途、外部から制御装置100に入力されてもよい。
 作業実行部111は、作業指示データにて定義された作業シークエンスに基づいて、マニピュレータ装置10の動作制御を指示すると共に、作業シークエンスの各々の進捗を管理する。具体的には、作業実行部111は、作業指示データにて定義された作業シークエンスをマニピュレータ装置10に順次実行させるための指示を把持位置判断部113及び軌道計画部115に出力してもよい。
 図3及び図4を参照して、作業指示データの内容についてより具体的に説明する。図3は、マニピュレータ装置10による搬送環境の一例を示す模式図である。図4は、図3に示す搬送環境における作業指示データの一例を示す表図である。
 例えば、図3に示すように、マニピュレータ装置10の周囲には、物体30を配置することが可能な位置AA~位置AEが設けられているとする。このとき、図4に示すように、作業指示データでは、作業シークエンスごとに、搬送する物体30の種別(搬送対象)と、物体30の搬送元位置と、物体30の搬送先位置とが定義される。
 例えば、図4に示す作業指示データでは、シークエンス0として、「製品X」の物体30を搬送元位置である位置AAから搬送先位置である位置ABに搬送することが定義されている。また、作業指示データでは、シークエンス1として、「製品Z」の物体30を搬送元位置である位置ACから搬送先位置である位置ADに搬送することが定義されている。さらに、作業指示データでは、シークエンス2として、「製品Y」の物体30を搬送元位置である位置ABから搬送先位置である位置ADに搬送することが定義されている。以下、同様に、作業指示データでは、各シークエンスで搬送する物体30の種別と、物体30の搬送元位置と、物体30の搬送先位置とが定義されている。
 作業実行部111は、作業指示データに定義された作業シークエンスをシークエンス0から順番にマニピュレータ装置10に実行させる指示を出力することで、種々の物体30を連続して搬送することができる。
 把持位置記憶部152は、搬送する物体30の種別ごとに、ハンド部12が物体30を把持する位置を示す把持位置情報を記憶する。把持位置情報は、物体30の種別ごとに、物体30上で把持可能な位置を物体30の原点(例えば、物体30に外接する直方体の中心)からの相対的な位置及び姿勢として示した情報である。把持位置情報には、例えば、物体30の種別ごとに1つの把持位置が示されてもよく、複数の把持位置が示されてもよい。
 図5及び図6を参照して、把持位置情報の内容についてより具体的に説明する。図5は、第1の実施形態における把持位置情報の一例を示す表図である。図6は、直方体である物体30に対する図5に示すID:0、及びID:Xの把持位置を立体的に示す模式図である。
 図5に示すように、例えば、把持位置情報には、物体30の種別ごとに1以上(図5ではX個)のハンド部12による把持の位置及び姿勢を示す情報が含まれる。なお、図5に示す把持位置情報では、ハンド部12の姿勢は、図6のxy平面に平行かつx軸の正方向に向かう方向を基準として表現されている。
 図6に示すように、ID:0の把持位置では、ハンド部12は、物体30の重心を原点OOとして、x軸方向及びy軸方向にオフセット0、かつz軸方向にH/2-Mのオフセットで物体30を把持することができる。なお、このときのハンド部12の姿勢は、ロール(roll)方向及びヨー(yaw)方向に0回転、かつピッチ(pitch)方向にπ/2回転の姿勢である。Hは物体30のz軸方向の高さであり、MはID:0の把持位置でのハンド部12による把持中心から物体30の端面までのマージンである。
 また、ID:Xの把持位置では、ハンド部12は、物体30の重心を原点OOとして、x軸方向にオフセット0、y軸方向にW/2-mのオフセット、かつz軸方向にNのオフセットで物体30を把持することができる。なお、このときのハンド部12の姿勢は、ロール(roll)方向及びピッチ(pitch)方向に0回転、かつヨー(yaw)方向にπ/2回転の姿勢である。Wは物体30のy軸方向の幅であり、Nは原点OOから把持位置へのz軸方向のオフセットであり、mはID:Xの把持位置でのハンド部12による把持中心から物体30の端面までのマージンである。
 把持位置情報は、一例として、実空間又は仮想空間上で、物体30の形状に対してユーザがハンド部12を任意に動かすことで求められてもよい。また、把持位置情報は、他の例として、ハンド部12による把持の位置及び姿勢を物体30の形状に基づいて自動的に抽出する公知のアルゴリズムによって、物体30の撮像画像、デプス画像、又は事前に与えられたCAD(Computer-Aided Design)情報から自動的に求められてもよい。
 物体配置条件記憶部153は、各位置に配置された物体30を把持することが可能なハンド部12の把持位置を示す物体配置条件を記憶する。物体配置条件情報は、マニピュレータ装置10が作業を行う空間内の各位置について、各位置に配置された物体30に対して使用可能な把持位置を物体30の種別ごとに示した情報である。
 図7を参照して、物体配置条件情報の内容についてより具体的に説明する。図7は、第1の実施形態における物体配置条件情報の一例を示す表図である。
 図7に示すように、例えば、物体配置条件情報には、物体30の配置位置、及び配置された物体30の種別ごとに、ハンド部12の使用可能把持位置が設定されている。使用可能把持位置とは、物体30が配置された位置において、物体30の周囲環境と干渉せずにハンド部12が物体30を把持することが可能な把持位置である。例えば、使用可能把持位置は、把持位置情報にて示されたハンド部22による物体30の把持位置から、物体30の配置位置の周囲環境と干渉する把持位置を除外した把持位置である。
 例えば、「製品X」の物体30では、使用可能な把持位置がID:0~7の8つ存在しているとする。図7に示す物体配置条件情報では、位置AAにて把持位置ID:0、1、3、5の4つが使用可能であり、位置ABにて把持位置ID:0、1、2、3、4の5つが使用可能であり、位置ACにて把持位置ID:0、1、3、5の4つが使用可能であり、位置ADにて把持位置ID:3、5、7の3つが使用可能であることが示されている。
 また、「製品Y」の物体30では、使用可能な把持位置がID:0~8の9つ存在しているとする。図7に示す物体配置条件情報では、位置AAにて把持位置ID:1、2、4、8の4つが使用可能であり、位置ABにて把持位置ID:1、2、4、8の4つが使用可能であり、位置ACにて把持位置ID:1、2、4、8の4つが使用可能であり、位置ADにて把持位置ID:1、2、4、8の4つが使用可能であることが示されている。
 さらに、「製品Z」の物体30では、使用可能な把持位置がID:0~6の7つ存在しているとする。図7に示す物体配置条件情報では、位置AAにて把持位置ID:0、3、5、6の4つが使用可能であり、位置ABにて把持位置ID:0、3、5、6の4つが使用可能であり、位置ACにて把持位置ID:0、3、5、6の4つが使用可能であり、位置ADにて把持位置ID:0、3、5、6の4つが使用可能であることが示されている。
 物体配置条件情報は、あらかじめユーザによって定義されてもよい。または、物体配置条件情報は、各位置における障害物をセンサ412でセンシングしたセンシング結果に基づいて、ハンド部12と障害物との干渉を判定することで生成されてもよい。
 把持位置判断部113は、作業実行部111にて指示された作業シークエンスに含まれる物体30の種別と、搬送元位置と、搬送先位置とに基づいて、ハンド部12による物体30の把持位置を判断する。
 具体的には、まず、把持位置判断部113は、作業シークエンスに含まれる物体30の種別について物体配置条件情報を参照し、搬送元位置及び搬送先位置の両方で把持可能な把持位置をハンド部12による把持位置候補として判断する。続いて、把持位置判断部113は、ハンド部12による把持位置候補の中から、後段の軌道計画部115にて軌道計画の生成に成功した把持位置候補をハンド部12による物体30の把持位置と判断してもよい。
 ここで、把持位置候補が複数存在する場合、把持位置判断部113は、搬送元位置から搬送先位置へのアーム部11及びハンド部12の変化量に基づいて導出されたスコアが良好な順に把持位置候補を並べた候補リストを生成してもよい。これによれば、軌道計画部115は、候補リストに並べられた順に、把持位置候補を用いて軌道計画を生成することで、スコアが最良の把持位置候補を用いてハンド部12の軌道計画を生成することができる。把持位置判断部113は、後段の軌道計画部115にて軌道計画の生成に失敗した把持位置候補については、候補リストから削除してもよい。
 例えば、上記の候補リストの生成の際に用いるスコアとして、搬送元位置から搬送先位置までハンド部12を移動させた際のアーム部11の関節ごとの移動量の二乗和が用いられてもよい。また、上記の候補リストの生成の際に用いるスコアとして、搬送元位置から搬送先位置までのハンド部12の三次元空間上の距離、又は三次元姿勢の変化量が用いられてもよい。これらのスコアは、値がより小さいほど良好となるスコアである。
 なお、把持位置判断部113は、把持位置候補にて定められるアーム部11及びハンド部12の位置及び姿勢と、物体30の周囲環境に存在する障害物とが干渉するか否かを判定してもよい。例えば、把持位置判断部113は、把持位置候補にて定められるアーム部11及びハンド部12の位置及び姿勢と、障害物情報記憶部154に記憶された障害物地図にて示される障害物とが干渉するか否かを判定してもよい。また、把持位置判断部113は、把持位置候補にて定められるアーム部11及びハンド部12の位置及び姿勢と、撮像装置411にて撮像された画像から認識した障害物とが干渉するか否かを判定してもよい。把持位置候補にて定められるアーム部11及びハンド部12の位置及び姿勢と、物体30の周囲環境に存在する障害物とが干渉する場合、把持位置判断部113は、干渉する把持位置候補を候補リストから削除してもよい。
 軌道計画部115は、作業実行部111からの指示に基づいて、指示された作業を行うマニピュレータ装置10全体の軌道計画を生成し、生成した軌道計画を制御部116に出力する。具体的には、軌道計画部115は、現在位置から搬送元位置に配置された物体30の把持位置候補までハンド部12が移動するまでの軌道計画と、搬送元位置に配置された物体30の把持位置候補から搬送先位置に配置された物体30の把持位置候補までハンド部12が移動するまでの軌道計画とを生成してもよい。
 軌道計画部115は、把持位置判断部113が生成した候補リストの中でスコアが最良の把持位置候補を用いて、マニピュレータ装置10の軌道計画を生成してもよい。ハンド部12の軌道計画の生成が失敗した場合、上述したように、軌道計画部115は、次にスコアが最良の把持位置候補を用いて、ハンド部12の軌道計画を生成してもよい。
 マニピュレータ装置10の軌道計画の生成が成功した場合、軌道計画部115は、生成した軌道計画、及び使用したハンド部12の把持位置を作業実行部111に送信する。その後、作業実行部111から搬送動作を実行する指示を受信することで、軌道計画部115は、生成したマニピュレータ装置10の軌道計画、及び使用したハンド部12の把持位置を制御部116に送信する。
 制御部116は、軌道計画部115から受信した軌道計画に追従してハンド部12が動作するように、アーム部11の関節を回動させるモータの駆動を制御する。物体30の搬送が終了した場合、制御部116は、軌道計画部115を介して、作業実行部111に搬送作業の終了を通知する。これにより、作業実行部111は、作業指示データにて定義された作業シークエンスを次のシークエンスに進めることができる。
 以上の構成によれば、制御装置100は、マニピュレータ装置10による物体30の搬送において、搬送元位置及び搬送先位置で物体30の把持位置を共通化することができるため、物体30の搬送をより成功させやすくすることができる。また、制御装置100は、各位置にて物体30を把持する際に使用可能な把持位置をあらかじめ導出しておくことで、搬送時の演算量を低減することができる。したがって、制御装置100は、搬送時の演算処理をより高速化することができる。
 制御装置100では、事前に、把持位置情報にて物体30の把持位置が限定された上で、物体配置条件情報にて物体30の把持位置が物体30の配置位置に応じてさらに限定される。したがって、制御装置100では、搬送元位置又は搬送先位置で使用可能な物体30の把持位置が連続的に検討されるのではなく、複数種類に限定されることになる。そのため、制御装置100は、搬送元位置及び搬送先位置で物体30の把持位置が共通化された場合に、共通化された物体30の把持位置が確実に存在することを保証することができる。また、制御装置100は、搬送元位置で使用可能な物体30の把持位置と、搬送先位置で使用可能な物体30の把持位置とを比較することで、より低い演算コストで搬送元位置及び搬送先位置で共通の物体30の把持位置を特定することが可能である。
 さらに、制御装置100は、新たな障害物が発生した場合でも、物体30を把持する際に使用可能な把持位置と、発生した障害物との干渉判定のみを行えばよいため、新たな障害物を回避するための演算処理を高速に実行することが可能である。
 (1.3.動作例)
 次に、図8及び図9を参照して、本実施形態に係るマニピュレータ装置10を制御する制御装置100の動作例を説明する。図8は、作業実行部111の動作の流れを説明するフローチャート図である。図9は、把持位置判断部113の動作の流れを説明するフローチャート図である。
 図8に示すように、まず、作業実行部111は、作業指示記憶部151に記憶された作業指示データから実行する作業シークエンスを選択する(S101)。例えば、図4に示す作業指示データでは、1行ごとに搬送する物体30の種別、搬送元位置、及び搬送先位置を指示する作業シークエンスが定義される。作業実行部111は、作業指示データから実行する作業シークエンスを抜き出し、抜き出した作業シークエンスを把持位置判断部113に送信する。以下では、図4に示す作業指示データのシークエンス0の作業を実行する場合を例示して説明を行う。
 次に、把持位置判断部113は、作業実行部111から受信した作業シークエンスに基づいて、ハンド部12による物体30の把持位置を判断する(S102)。
 具体的には、図9に示すように、把持位置判断部113は、まず、物体配置条件情報に基づいて、搬送元位置にて使用可能なハンド部12の把持位置を確認する(S111)。例えば、図7に示す物体配置条件情報では、「製品X」の物体30が搬送元位置である位置AAに配置される場合、使用可能な把持位置はID:0、1、3、5である。
 なお、把持位置判断部113は、物体配置条件情報にて得られた使用可能な把持位置におけるアーム部11及びハンド部12の位置及び姿勢と、物体30の周囲環境に存在する障害物との干渉を判定することで使用可能な把持位置をさらに限定してもよい。物体30の周囲環境に存在する障害物としては、例えば、障害物情報記憶部154に記憶された障害物地図に存在する障害物を用いてもよく、撮像装置411の撮像画像、又はセンサ412のセンシングのセンシング結果にて認識される障害物を用いてもよい。また、把持位置判断部113は、地図作成部114にて作成された障害物地図と事前に記憶された障害物地図との差分である新規の障害物に対してのみ干渉の判定を行ってもよい。
 次に、把持位置判断部113は、物体配置条件情報に基づいて、搬送先位置にて使用可能なハンド部12の把持位置を確認する(S112)。例えば、図7に示す物体配置条件情報では、「製品X」の物体30が搬送先位置である位置ABに配置される場合、使用可能な把持位置はID:0、1、2、3、4である。なお、把持位置判断部113は、搬送元位置と同様に、使用可能な把持位置におけるアーム部11及びハンド部12の位置及び姿勢と、物体30の周囲環境に存在する障害物との干渉を判定することで使用可能な把持位置をさらに限定してもよい。このとき、把持位置判断部113は、地図作成部114にて作成された障害物地図と事前に記憶された障害物地図との差分である新規の障害物に対してのみ干渉の判定を行ってもよい。
 続いて、把持位置判断部113は、搬送元位置及び搬送先位置の両方で使用可能なハンド部12の把持位置を搬送に使用可能な把持位置候補として抽出する(S113)。これは、搬送元位置から搬送先位置まで物体30を搬送するには、ハンド部12は同じ把持位置で物体30を把持し続けることになるためである。図7に示す物体配置条件情報では、搬送元位置で使用可能な把持位置はID:0、1、3、5であり、搬送先位置で使用可能な把持位置はID:0、1、2、3、4であるため、搬送に使用可能な把持位置候補としてID:0、1、3が抽出される。
 次に、把持位置判断部113は、抽出した把持位置候補をスコアによってソートすることで、候補リストを作成する(S114)。スコアとしては、上述したように、搬送元位置から搬送先位置までハンド部12を移動させた際のアーム部11の関節ごとの移動量の二乗和を用いてもよく、搬送元位置から搬送先位置までのハンド部12の三次元空間上の距離、又は三次元姿勢の変化量を用いてもよい。
 さらに、把持位置判断部113は、作成した候補リストのうちスコアが最良な把持位置候補を用いて、軌道計画部115にマニピュレータ装置10全体の軌道計画を生成させる(S115)。
 なお、軌道計画部115に軌道計画を生成させる前に、把持位置判断部113は、再度、把持位置候補におけるアーム部11及びハンド部12の位置及び姿勢と、障害物との干渉を判定することで把持位置候補を用いて軌道計画を生成するか否かを判断してもよい。このとき、把持位置判断部113は、地図作成部114にて作成された障害物地図と事前に記憶された障害物地図との差分である新規の障害物に対してのみ干渉の判定を行ってもよい。
 続いて、把持位置判断部113は、軌道計画の生成が成功したか否かを判断する(S116)。軌道計画の生成が成功した場合(S116/Yes)、把持位置判断部113は、軌道計画の生成が成功した把持位置候補を物体30の搬送に使用するハンド部12の把持位置と判断することができる。
 一方、障害物との干渉、又はアーム部11の可動範囲などに起因して、軌道計画の生成が失敗した場合(S116/No)、把持位置判断部113は、軌道計画の生成に失敗した把持位置候補を候補リストから削除する(S117)。さらに、把持位置判断部113は、ステップS115の動作に戻って、候補リストのうち次にスコアが最良な把持位置候補を用いて、軌道計画部115にハンド部12の軌道計画を再度生成させる(S115)。
 その後、図8に戻って、作業実行部111は、生成したハンド部12の軌道計画と、ハンド部12の把持位置とを軌道計画部115から制御部116に送信することで、マニピュレータ装置10に物体30を搬送する作業を実行させる(S103)。
 続いて、作業実行部111は、軌道計画部115を介して、制御部116から搬送作業の終了を通知された場合、作業指示データに定義された最後の作業シークエンスを実行したか否かを判断する(S104)。最後の作業シークエンスを実行していない場合(S104/No)、作業実行部111は、ステップS101の動作に戻って、作業指示データに定義された次の作業シークエンスを選択し、マニピュレータ装置10に搬送作業を繰り返し続行させる。一方、最後の作業シークエンスを実行している場合(S104/Yes)、作業実行部111は動作を終了し、マニピュレータ装置10による搬送作業を終了させる。
 以上の動作によれば、制御装置100は、作業指示データに基づいて、マニピュレータ装置10に物体30の搬送を連続して実行させることが可能である。
 <2.第2の実施形態>
 (2.1.移動体)
 続いて、図10を参照して、本開示の第2の実施形態に係る移動体20の概略について説明する。図10は、本実施形態に係る移動体20の概略を示す模式図である。
 図1に示すように、本実施形態に係る移動体20は、マニピュレータ23と、移動機構25とを備える。
 マニピュレータ23は、アーム部21及びハンド部22を含む。アーム部11は、複数のリンクと、複数のリンクを互いに連結する複数の関節とを有する多関節のロボットアームであり、例えば、移動体20の本体部の上に取り付けられる。ハンド部22は、物体30を把持可能なエンドエフェクタであり、アーム部11の先端側に取り付けられる。ハンド部22は、例えば、複数の指を有するハンド、複数の爪を有するグリッパ、エアー又は磁力を用いた吸着ハンド、又は種々の形状のフックなどであってもよい。
 移動機構25は、移動体20を任意の場所に移動させることが可能な機構である。移動機構25は、例えば、2輪以上の車輪、2脚以上の脚部、クローラ、エアクッション、又は回転翼などの任意の移動機構であってもよい。例えば、移動機構25は、4つの車輪を備える移動機構であってもよい。
 移動体20は、搬送元位置に配置された物体30を搬送先位置に移動させる(すなわち搬送する)ロボット装置である。移動体20は、移動機構25によって機体自体を移動させることができるため、搬送元位置からより離れた搬送先位置に物体30を搬送することが可能である。
 移動体20は、物体30の周囲環境の撮像画像又はデプス情報に基づいて、マニピュレータ23にて物体30を把持すると共に、移動体20の周囲環境の撮像画像又はデプス情報に基づいて移動機構25にて移動することができる。物体30又は移動体20の周囲環境の撮像画像は、RGBカメラ又はモノクロカメラなどの撮像装置にて取得されてもよい。物体30又は移動体20の周囲環境のデプス情報は、ステレオカメラ、ToFセンサ、又はLiDARなどで取得されてもよい。
 (2.2.制御装置)
 次に、図11~図14を参照して、本実施形態に係る移動体20を制御する制御装置200について説明する。図11は、本実施形態に係る移動体20を制御する制御装置200の機能構成を説明するブロック図である。
 図11に示すように、制御装置200は、物体認識部212と、自己位置推定部221と、地図作成部214と、障害物情報記憶部254と、作業実行部211と、作業指示記憶部251と、把持位置判断部213と、把持位置記憶部252と、物体配置条件記憶部253と、軌道計画部215と、マニピュレータ制御部216と、経路計画部222と、移動機構制御部223とを備える。
 なお、制御装置200の各演算処理は、演算処理装置又は制御装置として機能するCPU、CPUが使用するプログラム及び演算パラメータなどを記憶するROM、及びCPUの実行においてプログラムが展開されるRAMを含むハードウェアと、ソフトウェアとの協働によって実現することが可能である。また、制御装置100の各記憶部は、HDDなどの磁気記憶デバイス、半導体記憶デバイス、光記憶デバイス、又は光磁気記憶デバイスなどにより構成されてもよい。
 物体認識部212は、撮像装置411にて取得された物体30の撮像画像に基づいて、物体30の種別と、物体30の三次元位置及び姿勢とを認識する。一例として、物体認識部212は、撮像装置411にて取得された撮像画像から物体30の特徴点を認識することで、物体30の種別と、物体30の三次元位置及び姿勢とを認識してもよい。他の例として、物体認識部212は、撮像装置411にて取得された撮像画像を機械学習にて画像認識することで、物体30の種別と、物体30の三次元位置及び姿勢とを認識してもよい。
 撮像装置411は、物体30又は移動体20の周囲環境を撮像するRGBカメラ又はモノクロカメラである。撮像装置411は、例えば、移動体20に搭載されてもよい。
 自己位置推定部221は、センサ412にて取得された移動体20の周囲環境の情報に基づいて、移動体20の現在位置を推定する。自己位置推定部221は、センサ412にて取得された測距情報又はデプス情報に基づいて、移動体20の現在位置を推定してもよい。または、自己位置推定部221は、移動体20に搭載されたIMU(Inertial Measurement Unit)、又は移動機構25のエンコーダにて取得された情報に基づいて、移動体20の現在位置を推定してもよい。
 地図作成部214は、センサ412にて取得された移動体20の周囲環境のセンシング結果と、自己位置推定部221にて推定された移動体20の現在位置とに基づいて、移動体20の周囲環境に存在する障害物の位置を示す障害物地図を作成する。地図作成部214は、例えば、障害物地図として、事後確率にて障害物の存在性を評価する占有グリッドマップ(occupancy grid map)を作成してもよい。
 センサ412は、移動体20の周囲環境に存在する障害物を検出することが可能な測距センサ又はデプスセンサである。センサ412は、例えば、移動体20に搭載されたToFセンサ又はLiDARなどの測距センサであってもよく、デプス画像を取得可能なデプスカメラ又はステレオカメラのデプスセンサであってもよい。
 地図作成部214にて作成された障害物地図は、例えば、障害物情報記憶部254に記憶される。これによれば、地図作成部214は、障害物情報記憶部254に記憶された既知の障害物地図と、新たに作成した障害物地図との差分を抽出することで、新規の障害物を検出することが可能である。また、障害物情報記憶部254には、後述する把持位置情報及び物体配置条件情報と同様にあらかじめ障害物地図が格納されてもよい。このとき、障害物情報記憶部254に格納される障害物地図は、物体配置条件情報を生成する際に使用した環境情報に基づいて作成された障害物地図であってもよい。
 作業指示記憶部251は、移動体20に実行させる作業内容を指示する作業指示データを記憶する。作業指示データは、別途、外部から制御装置200に入力されてもよい。
 作業実行部211は、作業指示データにて定義された作業シークエンスに基づいて、移動体20の動作制御を指示すると共に、作業シークエンスの各々の進捗を管理する。具体的には、作業実行部211は、作業指示データにて定義された作業シークエンスを移動体20に順次実行させるための指示を把持位置判断部213、軌道計画部215、及び経路計画部222に出力してもよい。
 作業実行部211は、図4に示すような作業指示データに定義された作業シークエンスを順に移動体20に実行させる指示を出力することで、種々の物体30を連続して搬送することができる。
 把持位置記憶部252は、搬送する物体30の種別ごとに、ハンド部22が物体30を把持する位置を示す把持位置情報を記憶する。把持位置情報は、物体30の種別ごとに、物体30上で把持可能な位置を物体30の原点(例えば、物体30に外接する直方体の中心)からの相対的な位置及び姿勢として示した情報である。把持位置情報には、例えば、物体30の種別ごとに1つの把持位置が示されてもよく、複数の把持位置が示されてもよい。
 把持位置情報は、一例として、実空間又は仮想空間上で、物体30の形状に対してユーザがハンド部22を任意に動かすことで求められてもよい。また、把持位置情報は、他の例として、ハンド部22による把持の位置及び姿勢を物体30の形状に基づいて自動的に抽出する公知のアルゴリズムによって、物体30の撮像画像、デプス画像、又はCAD情報から自動的に求められてもよい。
 物体配置条件記憶部253は、各位置に配置された物体30を把持することが可能なハンド部22の把持位置を示す物体配置条件を記憶する。物体配置条件情報は、移動体20が作業を行う空間内の各位置について、各位置に配置された物体30に対して使用可能な把持位置を物体30の種別ごとに示した情報である。
 図12を参照して、物体配置条件情報の内容についてより具体的に説明する。図12は、第2の実施形態における物体配置条件情報の一例を示す表図である。
 図12に示すように、例えば、物体配置条件情報には、物体30の配置位置、及び配置された物体30の種別ごとに、ハンド部22の使用可能把持位置と、移動体20の機体位置とが設定されている。
 使用可能把持位置とは、物体30が配置された位置において、物体30の周囲環境と干渉せずにハンド部22が物体30を把持することが可能な把持位置である。例えば、使用可能把持位置は、把持位置情報にて示されたハンド部22による物体30の把持位置から、物体30の配置位置の周囲環境と干渉する把持位置を除外した把持位置であってもよい。
 機体位置とは、物体30の配置位置、及び配置された物体30の種別ごとに設定された使用可能把持位置にハンド部22を到達させることが可能な移動体20の位置である。例えば、機体位置は、使用可能把持位置にハンド部22が到達可能であることに加えて、アーム部21及び移動体20がそれぞれ障害物等と干渉せずに配置可能な位置であってもよい。
 例えば、「製品X」の物体30では、使用可能な把持位置がID:0~4の5つ存在しているとする。図12に示す物体配置条件情報では、「製品X」の物体30に対して、位置AAにて把持位置ID:2、4が使用可能であり、把持位置ID:2のときの移動体20の機体位置はBA2a、BA2bであり、把持位置ID:4のときの移動体20の機体位置はBA4であることが示されている。また、「製品X」の物体30に対して、位置ABにて把持位置ID:3、4が使用可能であり、把持位置ID:3のときの移動体20の機体位置はBB3であり、把持位置ID:4のときの移動体20の機体位置はBB4であることが示されている。
 一方、「製品Y」の物体30では、使用可能な把持位置がID:0~4の5つ存在しているとする。図12に示す物体配置条件情報では、「製品Y」の物体30に対して、位置AAにて把持位置ID:4が使用可能であり、把持位置ID:4のときの移動体20の機体位置はBA4であることが示されている。また、「製品Y」の物体30に対して、位置ABにて把持位置ID:3が使用可能であり、把持位置ID:3のときの移動体20の機体位置はBB3であることが示されている。
 物体配置条件情報は、あらかじめユーザによって定義されてもよい。または、物体配置条件情報は、各位置における障害物をセンサ412でセンシングしたセンシング結果に基づいて、ハンド部22、アーム部21、及び移動体20本体と、障害物との干渉を判定することで生成されてもよい。
 把持位置判断部213は、作業実行部211にて指示された作業シークエンスに含まれる物体30の種別と、搬送元位置と、搬送先位置とに基づいて、ハンド部22による物体30の把持位置を判断する。
 具体的には、まず、把持位置判断部213は、作業シークエンスに含まれる物体30の種別について物体配置条件情報を参照し、搬送元位置及び搬送先位置の両方で把持可能な把持位置をハンド部22による把持位置候補として判断する。続いて、把持位置判断部213は、ハンド部22による把持位置候補の中から、後段の軌道計画部215及び経路計画部222にて軌道計画及び経路計画の生成に成功した把持位置候補をハンド部22による物体30の把持位置と判断してもよい。
 ここで、把持位置候補が複数存在する場合、把持位置判断部213は、搬送元位置から搬送先位置へのマニピュレータ23の変化量に基づいて導出されたスコアが良好な順に把持位置候補を並べた候補リストを生成してもよい。これによれば、軌道計画部215及び経路計画部222は、候補リストに並べられた順に、把持位置候補を用いて軌道計画及び経路計画を生成することで、スコアが最良の把持位置候補を用いてハンド部22の軌道計画、及び移動体20の経路計画を生成することができる。把持位置判断部213は、後段の軌道計画部215又は経路計画部222にて軌道計画又は経路計画の生成に失敗した把持位置候補については、候補リストから削除してもよい。
 例えば、上記の候補リストの生成の際に用いるスコアとして、搬送元位置から搬送先位置までハンド部22を移動させた際のアーム部11の関節ごとの移動量の二乗和が用いられてもよい。また、上記の候補リストの生成の際に用いるスコアとして、搬送元位置から搬送先位置までのハンド部22の三次元空間上の距離、又は三次元姿勢の変化量が用いられてもよい。さらに、上記の候補リストの生成の際に用いるスコアとして、搬送元位置の機体位置から搬送先位置の機体位置までの直線距離が用いられてもよい。これらのスコアは、値がより小さいほど良好となるスコアである。
 なお、把持位置判断部213は、把持位置候補にて定められるマニピュレータ23及び移動体20の位置及び姿勢と、物体30の周囲環境に存在する障害物とが干渉するか否かを判定してもよい。例えば、把持位置判断部213は、把持位置候補にて定められるマニピュレータ23及び移動体20の位置及び姿勢と、障害物情報記憶部254に記憶された障害物地図にて示される障害物とが干渉するか否かを判定してもよい。また、把持位置判断部213は、把持位置候補にて定められるマニピュレータ23及び移動体20の位置及び姿勢と、撮像装置411にて撮像された画像から認識した障害物とが干渉するか否かを判定してもよい。把持位置候補にて定められるマニピュレータ23及び移動体20の位置及び姿勢と、物体30の周囲環境に存在する障害物とが干渉する場合、把持位置判断部213は、干渉する把持位置候補を候補リストから削除してもよい。
 軌道計画部215は、作業実行部211からの指示に基づいて、指示された作業を行うマニピュレータ23の軌道計画を生成し、生成した軌道計画をマニピュレータ制御部216に出力する。
 例えば、移動体20が移動する際に、マニピュレータ23は、移動機構25と干渉しない特定の搬送時姿勢を取るとする。このような場合、軌道計画部215は、搬送時姿勢のハンド部22の位置と、搬送元位置に配置された物体30の把持位置候補との間をハンド部22が往復移動する軌道計画と、搬送時姿勢のハンド部22の位置と、搬送先位置に配置された物体30の把持位置候補との間をハンド部22が往復移動する軌道計画とを生成してもよい。このとき、移動体20は、把持位置候補に対応する機体位置に存在するものとする。
 軌道計画部215は、把持位置判断部213が生成した候補リストからスコア順に、把持位置候補を用いて、マニピュレータ23の軌道計画を生成してもよい。把持位置候補に対応する機体位置が複数存在する場合には、一例として、軌道計画部215は、設定されたスコアが最良の機体位置を用いてマニピュレータ23の軌道計画を生成してもよい。この時のスコアとしては、搬送元位置に対応する機体位置から搬送先位置に対応する機体位置までの直線距離を用いてもよい。他の例として、軌道計画部215は、すべての機体位置を用いてマニピュレータ23の軌道計画を生成し、生成された軌道の距離が最も短い軌道計画を選択してもよい。
 マニピュレータ23の軌道計画の生成が成功した場合、軌道計画部215は、生成した軌道計画、及び使用したハンド部22の把持位置を作業実行部211に送信する。その後、作業実行部211から搬送動作を実行する指示を受信することで、軌道計画部215は、生成した軌道計画、及び使用したハンド部22の把持位置をマニピュレータ制御部216に送信する。一方、ハンド部22の軌道計画の生成が失敗した場合、軌道計画部215は、次にスコアが最良の把持位置候補を用いて、マニピュレータ23の軌道計画を生成してもよい。
 経路計画部222は、作業実行部211からの指示に基づいて、指示された作業を行う移動体20の経路計画を生成し、生成した経路計画を移動機構制御部223に出力する。具体的には、経路計画部222は、地図作成部214にて生成された障害物地図と、自己位置推定部221にて推定された自己位置に基づいて、障害物を回避しながら作業実行部211が指示する位置に到達する経路計画を生成してもよい。例えば、経路計画部222は、移動体20の現在位置から搬送元位置の把持位置候補に対応する移動体20の機体位置までの経路計画と、搬送元位置の把持位置候補に対応する移動体20の機体位置から搬送先位置の把持位置候補に対応する移動体20の機体位置までの絵経路計画とを生成してもよい。なお、経路計画部222は、センサ412が新たに障害物を検知することで障害物地図が更新された場合には、生成された経路計画を更新してもよい。
 例えば、経路計画部222は、マニピュレータ23の軌道計画に成功した把持位置候補に対応する移動体20の機体位置を用いて、移動体20の経路計画を生成してもよい。把持位置候補に対応する移動体20の機体位置が複数存在する場合には、一例として、経路計画部222は、設定されたスコアが最良の機体位置を用いて移動体20の経路計画を生成してもよい。この時のスコアとしては、搬送元位置に対応する機体位置から搬送先位置に対応する機体位置までの直線距離を用いてもよい。また、他の例として、経路計画部222は、すべての機体位置を用いて移動体20の経路計画を生成し、生成された経路の距離が最も短い経路計画を選択してもよい。
 移動体20の経路計画の生成が成功した場合、経路計画部222は、生成した経路計画を作業実行部211に送信する。その後、作業実行部211から搬送動作を実行する指示を受信することで、経路計画部222は、生成した経路計画を移動機構制御部223に送信する。一方、移動体20の経路計画の生成が失敗した場合、経路計画部222は、経路計画の生成に失敗した把持位置を破棄して、再度、軌道計画部215に把持位置候補を用いたマニピュレータ23の軌道計画の生成を依頼してもよい。
 マニピュレータ制御部216は、軌道計画部215から受信した軌道計画に追従してハンド部22が動作するように、アーム部11の関節を回動させるモータの駆動を制御する。移動機構制御部223は、自己位置推定部221にて推定された現在位置から、経路計画部222から受信した経路計画に追従して移動体20が移動するように、移動機構25の駆動を制御する。
 物体30の搬送が終了した場合、マニピュレータ制御部216及び移動機構制御部223は、作業実行部211に搬送作業の終了を通知する。これにより、作業実行部211は、作業指示データにて定義された作業シークエンスを次のシークエンスに進めることができる。
 以上の構成によれば、制御装置200は、移動体20のマニピュレータ23による物体30の搬送において、搬送元位置及び搬送先位置で物体30の把持位置を共通化することができるため、物体30の搬送をより成功させやすくすることができる。また、制御装置200は、各位置にて物体30を把持する際に使用可能な把持位置をあらかじめ導出しておくことで、搬送時の演算量を低減することができる。したがって、制御装置200は、搬送時の演算処理をより高速化することができる。
 さらに、制御装置200は、新たな障害物が発生した場合でも、物体30を把持する際に使用可能な把持位置と、発生した障害物との干渉判定のみを行えばよいため、新たな障害物を回避するための演算処理を高速に実行することが可能である。
 (2.3.動作例)
 次に、図13及び図14を参照して、本実施形態に係る移動体20を制御する制御装置200の動作例を説明する。図13は、移動体20の搬送動作の一例を示す模式図である。図14は、作業を実行する際の移動体20の動作の流れを説明するフローチャート図である。
 第2の実施形態でも第1の実施形態と同様に、まず、作業実行部211は、作業指示記憶部251に記憶された作業指示データから実行する作業シークエンスを選択し、選択した作業シークエンスを把持位置判断部213に送信する。以下では、図14を参照して、図4に示す作業指示データのシークエンス0の作業を実行する場合を例示して、把持位置判断の説明を行う。
 把持位置判断部213は、受信した作業シークエンスに基づいて、ハンド部22による物体30の把持位置、及び把持位置に対応する移動体20の機体位置を判断する。
 把持位置判断部213は、まず、物体配置条件情報に基づいて、搬送元位置にて使用可能なハンド部12の把持位置を確認する。例えば、図12に示す物体配置条件情報では、「製品X」の物体30が搬送元位置である位置AAに配置される場合、使用可能な把持位置はID:2、4である。把持位置ID:2では、移動体20の機体位置は、BA2a及びBA2bの2通りであり、把持位置ID:4では、移動体20の機体位置は、BA4の1通りである。
 次に、把持位置判断部213は、物体配置条件情報に基づいて、搬送先位置にて使用可能なハンド部22の把持位置を確認する。例えば、図12に示す物体配置条件情報では、「製品X」の物体30が搬送先位置である位置ABに配置される場合、使用可能な把持位置はID:3、4である。把持位置ID:3では、移動体20の機体位置は、BB3の1通りであり、把持位置ID:4では、移動体20の機体位置は、BB4の1通りである。
 続いて、把持位置判断部213は、搬送元位置である位置AA、及び搬送先位置である位置ABの両方で使用可能なハンド部22の把持位置を搬送に使用可能な把持位置候補として抽出する。図12に示す物体配置条件情報では、位置AAで使用可能な把持位置はID:2、4であり、位置ABで使用可能な把持位置はID:3、4であるため、搬送に使用可能な把持位置候補としてID:4が抽出される。
 なお、把持位置判断部213は、物体配置条件情報にて得られた使用可能な把持位置におけるマニピュレータ23及び移動体20の位置及び姿勢と、物体30の周囲環境に存在する障害物との干渉を判定することで使用可能な把持位置をさらに限定してもよい。物体30の周囲環境に存在する障害物としては、例えば、障害物情報記憶部254に記憶された障害物地図に存在する障害物を用いてもよく、撮像装置411の撮像画像、又はセンサ412のセンシングのセンシング結果にて認識される障害物を用いてもよい。また、把持位置判断部213は、地図作成部214にて作成された障害物地図と事前に記憶された障害物地図との差分である新規の障害物に対してのみ干渉の判定を行ってもよい。
 次に、把持位置判断部213は、抽出した把持位置候補を用いて、軌道計画部215にハンド部22の軌道計画を生成させると共に、経路計画部222に移動体20の経路計画を生成させる。
 一方、把持位置候補が複数存在する場合、把持位置判断部213は、搬送元位置から搬送先位置へのマニピュレータ23の変化量に基づいて導出されたスコアが良好な順に把持位置候補を並べた候補リストを生成する。これにより、把持位置判断部213は、作成した候補リストのうちスコアが最良な把持位置候補を用いて、軌道計画部215にハンド部22の軌道計画を生成させることができる。スコアとしては、上述したように、搬送元位置から搬送先位置までハンド部12を移動させた際のアーム部11の関節ごとの移動量の二乗和を用いてもよく、搬送元位置から搬送先位置までのハンド部12の三次元空間上の距離、又は三次元姿勢の変化量を用いてもよい。
 続いて、把持位置判断部213は、軌道計画の生成が成功したか否かを判断する。障害物との干渉、又はマニピュレータ23の可動範囲などに起因して、軌道計画の生成が失敗した場合、把持位置判断部213は、軌道計画の生成に失敗した把持位置候補を候補リストから削除する。さらに、把持位置判断部213は、候補リストのうち次にスコアが最良な把持位置候補を用いて、軌道計画部215にハンド部22の軌道計画を再度生成させる。
 一方、軌道計画の生成が成功した場合、把持位置判断部213は、軌道計画の生成が成功した把持位置候補を物体30の搬送に使用するハンド部22の把持位置と判断する。
 その後、経路計画部222は、把持位置判断部213にて搬送に使用すると判断されたハンド部22の把持位置を用いて、移動体20の現在位置から搬送元位置を経て搬送先位置まで物体30を搬送する経路計画を生成する。
 ハンド部22の軌道計画、及び移動体20の経路計画が生成された場合、作業実行部211は、移動体20に物体30の搬送を開始させる。
 図14に示すように、まず、作業実行部211は、移動体20を搬送元位置に移動させる(S201)。具体的には、作業実行部211は、経路計画部222を介して移動機構制御部223に、現在位置から搬送元位置における機体位置までの計画された経路を送信することで、移動体20の移動を指示する。これにより、移動機構制御部223は、受信した経路に対して移動体20が追従するように移動機構25の駆動を制御することができる。搬送元位置における機体位置に移動体20が到達した場合、移動機構制御部223は、経路計画部222を介して、作業実行部211に移動の完了を通知する。
 次に、作業実行部211は、搬送元位置に配置された物体30をハンド部22に把持させる(S202)。具体的には、作業実行部211は、軌道計画部215を介してマニピュレータ制御部216に、物体30の把持位置までの計画された軌道を送信することで、物体30の把持を指示する。これにより、マニピュレータ制御部216は、受信した軌道に対してハンド部22が追従するようにマニピュレータ23の駆動を制御することができる。物体30の把持位置にハンド部22が到達し、物体30の把持が完了した場合、マニピュレータ制御部216は、軌道計画部215を介して、作業実行部211に把持の完了を通知する。
 ただし、軌道計画部215は、搬送元位置における機体位置に移動体20が到達した際の位置ずれなどを考慮して、物体30の位置及び姿勢のセンシング結果を用いて、再度、ハンド部22の軌道計画を生成してもよい。このときのハンド部22の把持位置としては、先の軌道計画で用いた把持位置候補を使用してもよい。
 なお、ハンド部22にて物体30が把持された場合、作業実行部211は、軌道計画部215を介してマニピュレータ制御部216に、マニピュレータ23を搬送時姿勢に制御するように指示してもよい。
 続いて、作業実行部211は、物体30を把持したまま、移動体20を搬送先位置に移動させる(S203)。具体的には、作業実行部211は、経路計画部222を介して移動機構制御部223に、搬送元位置における機体位置から搬送元位置における機体位置までの計画された経路を送信することで、移動体20の移動を指示する。これにより、移動機構制御部223は、受信した経路に対して移動体20が追従するように移動機構25の駆動を制御することができる。搬送先位置における機体位置に移動体20が到達した場合、移動機構制御部223は、経路計画部222を介して、作業実行部211に移動の完了を通知する。
 その後、作業実行部211は、ハンド部22に把持された物体30を搬送先位置に配置する(S204)。具体的には、作業実行部211は、軌道計画部215を介してマニピュレータ制御部216に、物体30の搬送先位置に対応する把持位置までの計画された軌道を送信することで、搬送先位置への物体30の配置を指示する。これにより、マニピュレータ制御部216は、受信した軌道に対してハンド部22が追従するようにマニピュレータ23の駆動を制御することができる。物体30の把持位置にハンド部22が到達し、物体30の把持が完了した場合、マニピュレータ制御部216は、軌道計画部215を介して、作業実行部211に物体30の配置完了を通知する。
 ただし、軌道計画部215は、搬送先位置における機体位置に移動体20が到達した際の位置ずれなどを考慮して、搬送先位置の周囲環境のセンシング結果を用いて、再度、ハンド部22の軌道計画を生成してもよい。このときのハンド部22の把持位置としては、現在、物体30を把持している把持位置候補を使用してもよい。
 なお、ハンド部22にて物体30が搬送先位置に配置された場合、作業実行部211は、軌道計画部215を介してマニピュレータ制御部216に、マニピュレータ23を搬送時姿勢に制御するように指示してもよい。
 以上の動作によれば、制御装置200は、作業指示データに基づいて、移動体20に搬送元位置から搬送先位置への物体30の搬送を実行させることが可能である。
 以上、添付図面を参照しながら本開示の好適な実施形態について詳細に説明したが、本開示の技術的範囲はかかる例に限定されない。本開示の技術分野における通常の知識を有する者であれば、請求の範囲に記載された技術的思想の範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、これらについても、当然に本開示の技術的範囲に属するものと了解される。
 また、本明細書に記載された効果は、あくまで説明的または例示的なものであって限定的ではない。つまり、本開示に係る技術は、上記の効果とともに、または上記の効果に代えて、本明細書の記載から当業者には明らかな他の効果を奏しうる。
 なお、以下のような構成も本開示の技術的範囲に属する。
(1)
 物体の種別と、前記物体が配置された位置とに対応して、前記物体をマニピュレータで把持する際に使用可能な前記物体の把持位置をあらかじめ設定した物体配置条件情報を記憶する記憶部と、
 前記マニピュレータにて前記物体を搬送元位置から搬送先位置に搬送する際に、前記搬送元位置にて前記物体配置条件情報に設定された前記物体の把持位置と、前記搬送先位置にて前記物体配置条件情報に設定された前記物体の把持位置とに基づいて、前記マニピュレータによる前記物体の把持位置を判断する把持位置判断部と、
を備える、制御装置。
(2)
 前記把持位置判断部は、前記搬送元位置及び前記搬送先位置の両方で使用可能な前記把持位置を前記搬送に用いる把持位置候補と判断する、前記(1)に記載の制御装置。
(3)
 前記把持位置判断部は、前記把持位置候補が複数存在する場合、前記搬送元位置から前記搬送先位置への前記マニピュレータの変化量に基づいたスコアを用いて、前記把持位置候補をスコア順に並べた候補リストを生成する、前記(2)に記載の制御装置。
(4)
 前記マニピュレータの軌道計画を生成する軌道計画部をさらに備え、
 前記軌道計画部は、前記候補リストのスコア順に、前記把持位置候補を用いて前記軌道計画を順次生成する、前記(3)に記載の制御装置。
(5)
 前記把持位置判断部は、前記軌道計画の生成に失敗した前記把持位置候補を前記候補リストから削除し、前記軌道計画の生成に成功した前記把持位置候補を前記マニピュレータによる前記物体の把持位置と判断する、前記(4)に記載の制御装置。
(6)
 前記把持位置判断部は、前記物体の周囲環境のセンシング結果に基づいて、センシングされた前記周囲環境と前記マニピュレータとが干渉する前記把持位置候補を前記候補リストから削除する、前記(5)に記載の制御装置。
(7)
 前記把持位置判断部は、事前に作成された前記物体の周囲環境を示す環境地図と前記物体の周囲環境のセンシング結果との差分と、前記マニピュレータとが干渉するか否かを判断する、前記(6)に記載の制御装置。
(8)
 前記マニピュレータは、移動体に搭載される、前記(6)に記載の制御装置。
(9)
 前記物体配置条件情報では、前記移動体の機体位置にさらに対応して、前記物体を前記マニピュレータで把持する際に使用可能な前記物体の前記把持位置が設定される、前記(8)に記載の制御装置。
(10)
 前記把持位置判断部は、前記搬送元位置から前記搬送先位置への前記移動体の変化量にさらに基づいた前記スコアを用いて、前記候補リストを生成する、前記(8)又は(9)に記載の制御装置。
(11)
 前記把持位置判断部は、センシングされた前記周囲環境と前記移動体とが干渉する前記把持位置候補を前記候補リストからさらに削除する、前記(8)~(10)のいずれか一項に記載の制御装置。
(12)
 前記把持位置判断部は、事前に作成された前記物体の周囲環境を示す環境地図と前記物体の周囲環境のセンシング結果との差分と、前記移動体とが干渉するか否かを判断する、前記(11)に記載の制御装置。
(13)
 演算処理装置によって、
 物体の種別と、前記物体が配置された位置とに対応して、前記物体をマニピュレータで把持する際に使用可能な前記物体の把持位置をあらかじめ設定した物体配置条件情報を用意することと、
 前記マニピュレータにて前記物体を搬送元位置から搬送先位置に搬送する際に、前記搬送元位置にて前記物体配置条件情報に設定された前記物体の把持位置と、前記搬送先位置にて前記物体配置条件情報に設定された前記物体の把持位置とに基づいて、前記マニピュレータによる前記物体の把持位置を判断することと、
を含む、制御方法。
 10     マニピュレータ装置
 11,21  アーム部
 12,22  ハンド部
 20     移動体
 23     マニピュレータ
 25     移動機構
 30     物体
 41     撮像装置
 100,200  制御装置
 111,211  作業実行部
 112,212  物体認識部
 113,213  把持位置判断部
 114,214  地図作成部 
 115,215  軌道計画部 
 116    制御部
 151,251  作業指示記憶部
 152,252  把持位置記憶部
 153,253  物体配置条件記憶部
 154,254  障害物情報記憶部
 216    マニピュレータ制御部
 221    自己位置推定部
 222    経路計画部
 223    移動機構制御部
 411    撮像装置
 412    センサ

Claims (13)

  1.  物体の種別と、前記物体が配置された位置とに対応して、前記物体をマニピュレータで把持する際に使用可能な前記物体の把持位置をあらかじめ設定した物体配置条件情報を記憶する記憶部と、
     前記マニピュレータにて前記物体を搬送元位置から搬送先位置に搬送する際に、前記搬送元位置にて前記物体配置条件情報に設定された前記物体の把持位置と、前記搬送先位置にて前記物体配置条件情報に設定された前記物体の把持位置とに基づいて、前記マニピュレータによる前記物体の把持位置を判断する把持位置判断部と、
    を備える、制御装置。
  2.  前記把持位置判断部は、前記搬送元位置及び前記搬送先位置の両方で使用可能な前記把持位置を前記搬送に用いる把持位置候補と判断する、請求項1に記載の制御装置。
  3.  前記把持位置判断部は、前記把持位置候補が複数存在する場合、前記搬送元位置から前記搬送先位置への前記マニピュレータの変化量に基づいたスコアを用いて、前記把持位置候補をスコア順に並べた候補リストを生成する、請求項2に記載の制御装置。
  4.  前記マニピュレータの軌道計画を生成する軌道計画部をさらに備え、
     前記軌道計画部は、前記候補リストのスコア順に、前記把持位置候補を用いて前記軌道計画を順次生成する、請求項3に記載の制御装置。
  5.  前記把持位置判断部は、前記軌道計画の生成に失敗した前記把持位置候補を前記候補リストから削除し、前記軌道計画の生成に成功した前記把持位置候補を前記マニピュレータによる前記物体の把持位置と判断する、請求項4に記載の制御装置。
  6.  前記把持位置判断部は、前記物体の周囲環境のセンシング結果に基づいて、センシングされた前記周囲環境と前記マニピュレータとが干渉する前記把持位置候補を前記候補リストから削除する、請求項5に記載の制御装置。
  7.  前記把持位置判断部は、事前に作成された前記物体の周囲環境を示す環境地図と前記物体の周囲環境のセンシング結果との差分と、前記マニピュレータとが干渉するか否かを判断する、請求項6に記載の制御装置。
  8.  前記マニピュレータは、移動体に搭載される、請求項6に記載の制御装置。
  9.  前記物体配置条件情報では、前記移動体の機体位置にさらに対応して、前記物体を前記マニピュレータで把持する際に使用可能な前記物体の前記把持位置が設定される、請求項8に記載の制御装置。
  10.  前記把持位置判断部は、前記搬送元位置から前記搬送先位置への前記移動体の変化量にさらに基づいた前記スコアを用いて、前記候補リストを生成する、請求項8に記載の制御装置。
  11.  前記把持位置判断部は、センシングされた前記周囲環境と前記移動体とが干渉する前記把持位置候補を前記候補リストからさらに削除する、請求項8に記載の制御装置。
  12.  前記把持位置判断部は、事前に作成された前記物体の周囲環境を示す環境地図と前記物体の周囲環境のセンシング結果との差分と、前記移動体とが干渉するか否かを判断する、請求項11に記載の制御装置。
  13.  演算処理装置によって、
     物体の種別と、前記物体が配置された位置とに対応して、前記物体をマニピュレータで把持する際に使用可能な前記物体の把持位置をあらかじめ設定した物体配置条件情報を用意することと、
     前記マニピュレータにて前記物体を搬送元位置から搬送先位置に搬送する際に、前記搬送元位置にて前記物体配置条件情報に設定された前記物体の把持位置と、前記搬送先位置にて前記物体配置条件情報に設定された前記物体の把持位置とに基づいて、前記マニピュレータによる前記物体の把持位置を判断することと、
    を含む、制御方法。
PCT/JP2023/029080 2022-10-03 2023-08-09 制御装置、及び制御方法 WO2024075394A1 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2022-159633 2022-10-03
JP2022159633 2022-10-03

Publications (1)

Publication Number Publication Date
WO2024075394A1 true WO2024075394A1 (ja) 2024-04-11

Family

ID=90607974

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2023/029080 WO2024075394A1 (ja) 2022-10-03 2023-08-09 制御装置、及び制御方法

Country Status (1)

Country Link
WO (1) WO2024075394A1 (ja)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018111156A (ja) * 2017-01-11 2018-07-19 ファナック株式会社 物品搬送装置
JP2019162685A (ja) * 2018-03-19 2019-09-26 株式会社東芝 保持装置、搬送システム、コントローラ、および保持方法
JP2020032479A (ja) * 2018-08-28 2020-03-05 株式会社東芝 ハンドリング装置、制御装置及びプログラム
JP2021041513A (ja) * 2019-09-13 2021-03-18 株式会社東芝 ハンドリング装置、制御装置、および保持方法
JP2021091013A (ja) * 2019-12-06 2021-06-17 キヤノン株式会社 制御装置、ロボット装置、シミュレーション装置、制御方法、シミュレーション方法、物品の製造方法、プログラム及び記録媒体

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018111156A (ja) * 2017-01-11 2018-07-19 ファナック株式会社 物品搬送装置
JP2019162685A (ja) * 2018-03-19 2019-09-26 株式会社東芝 保持装置、搬送システム、コントローラ、および保持方法
JP2020032479A (ja) * 2018-08-28 2020-03-05 株式会社東芝 ハンドリング装置、制御装置及びプログラム
JP2021041513A (ja) * 2019-09-13 2021-03-18 株式会社東芝 ハンドリング装置、制御装置、および保持方法
JP2021091013A (ja) * 2019-12-06 2021-06-17 キヤノン株式会社 制御装置、ロボット装置、シミュレーション装置、制御方法、シミュレーション方法、物品の製造方法、プログラム及び記録媒体

Similar Documents

Publication Publication Date Title
Chen et al. Dexterous grasping by manipulability selection for mobile manipulator with visual guidance
US11241796B2 (en) Robot system and method for controlling robot system
EP3650181B1 (en) Route output method, route output system and route output program
JP6057862B2 (ja) 部品供給装置および部品供給装置のプログラム生成方法
JPWO2018092860A1 (ja) 干渉回避装置
JP6444499B1 (ja) 制御装置、ピッキングシステム、物流システム、プログラム、及び、制御方法
JP6697204B1 (ja) ロボットシステムの制御方法、非一過性のコンピュータ読取可能な記録媒体及びロボットシステムの制御装置
JP6258556B1 (ja) 制御装置、ピッキングシステム、物流システム、プログラム、制御方法、及び、生産方法
US11701777B2 (en) Adaptive grasp planning for bin picking
JP2015213973A (ja) ピッキング装置およびピッキング方法
JP6258557B1 (ja) 制御装置、ピッキングシステム、物流システム、プログラム、制御方法、及び、生産方法
KR20120030263A (ko) 로봇 및 그 제어방법
Al-Sharo et al. Generalized Procedure for Determining the Collision-Free Trajectory for a Robotic Arm
US20210394362A1 (en) Information processing device, control method, and program
JPWO2018185855A1 (ja) 制御装置、ピッキングシステム、物流システム、プログラム、制御方法、及び、生産方法
JP7364534B2 (ja) ハンドリングシステムおよび制御方法
JP2012187697A (ja) ロボットの軌道計画システム及び軌道計画方法
JP2012135820A (ja) 自動ピッキング装置及び自動ピッキング方法
Pavlichenko et al. Kittingbot: A mobile manipulation robot for collaborative kitting in automotive logistics
CN109641706B (zh) 拣货方法、系统及其应用的获持与放置系统、机器人
Lueth et al. Reliability and integrated capabilities of locomotion and manipulation for autonomous robot assembly
WO2024075394A1 (ja) 制御装置、及び制御方法
JP7353948B2 (ja) ロボットシステム及びロボットシステムの制御方法
JP2021115693A (ja) ロボットシステムの制御装置、ロボットシステムの制御方法、コンピュータ制御プログラム、及びロボットシステム
WO2021149429A1 (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: 23874527

Country of ref document: EP

Kind code of ref document: A1