WO2021125288A1 - ロボットシステム、コントローラ及び制御方法 - Google Patents

ロボットシステム、コントローラ及び制御方法 Download PDF

Info

Publication number
WO2021125288A1
WO2021125288A1 PCT/JP2020/047245 JP2020047245W WO2021125288A1 WO 2021125288 A1 WO2021125288 A1 WO 2021125288A1 JP 2020047245 W JP2020047245 W JP 2020047245W WO 2021125288 A1 WO2021125288 A1 WO 2021125288A1
Authority
WO
WIPO (PCT)
Prior art keywords
work
robot
area
interlock
image data
Prior art date
Application number
PCT/JP2020/047245
Other languages
English (en)
French (fr)
Inventor
伊藤 俊樹
弘 熊谷
享大 戸畑
央 出口
啓介 中村
Original Assignee
株式会社安川電機
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 株式会社安川電機 filed Critical 株式会社安川電機
Priority to JP2021565653A priority Critical patent/JP7302672B2/ja
Publication of WO2021125288A1 publication Critical patent/WO2021125288A1/ja
Priority to US17/840,616 priority patent/US20220339791A1/en

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J5/00Manipulators mounted on wheels or on carriages
    • B25J5/007Manipulators mounted on wheels or on carriages mounted on wheels
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J19/00Accessories fitted to manipulators, e.g. for monitoring, for viewing; Safety devices combined with or specially adapted for use in connection with manipulators
    • B25J19/02Sensing devices
    • B25J19/021Optical sensing devices
    • B25J19/023Optical sensing devices including video camera means
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/0084Programme-controlled manipulators comprising a plurality of manipulators
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/0093Programme-controlled manipulators co-operating with conveyor means
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1615Programme controls characterised by special kind of manipulator, e.g. planar, scara, gantry, cantilever, space, closed chain, passive/active joints and tendon driven manipulators
    • B25J9/162Mobile manipulator, movable base with manipulator arm mounted on it
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1656Programme controls characterised by programming, planning systems for manipulators
    • B25J9/1664Programme controls characterised by programming, planning systems for manipulators characterised by motion, path, trajectory planning
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1694Programme controls characterised by use of sensors other than normal servo-feedback from position, speed or acceleration sensors, perception control, multi-sensor controlled systems, sensor fusion
    • B25J9/1697Vision controlled systems
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/39Robotics, robotics to robotics hand
    • G05B2219/39102Manipulator cooperating with conveyor

Definitions

  • This disclosure relates to robot systems, controllers and control methods.
  • Patent Document 1 when there is an interference area in which its own occupied area overlaps with the occupied area of another robot for each of a plurality of robots, the other robot enters the interference area by communication with the other robot. When it detects that the robot has done so, it stops its operation inside its own occupied area and before entering the interference area, and when another robot exits from its own occupied area, it moves to its own target position. A method of avoiding interference of the restarting robot is disclosed.
  • This disclosure provides a robot system that is effective for flexible adaptation to environmental changes.
  • the robot system includes a transport device for transporting a work, an environment specifying device for specifying the current position of the work and an occupied area of one or more objects, and a robot for working on the work. It includes a controller to control, and the controller has an interlock area identification unit that specifies an interlock area that moves with the work based on the current position of the work, and an interlock area is an occupied area of an object other than the robot. Control that controls the robot based on the current position of the work when the work availability determination unit that determines whether or not the work by the robot can work on the work and the work availability determination unit determines that the work is possible based on whether or not the work is duplicated with It has an execution unit and.
  • the controller has an interlock area specifying unit that specifies an interlock area that moves with the work based on the current position of the work, and whether or not the robot can work on the work, the interlock area is other than the robot.
  • the work availability judgment unit that determines whether or not it overlaps with the occupied area of another object and the work availability determination unit determines that work is possible, work is performed on the work based on the current position of the work. It is equipped with a control execution unit that controls the robot.
  • the control method specifies an interlock area that moves with the work based on the current position of the work, determines whether or not the work can be performed by the robot, and the interlock area is other than the robot. This includes determining whether or not the robot overlaps with the occupied area of the object, and if it is determined that the work is possible, controlling the robot to work on the work based on the current position of the work. ..
  • the robot system 1 shown in FIG. 1 is a system that produces a workpiece in collaboration with a transfer device and at least one robot.
  • work includes a final product in the robot system 1, parts of the final product, a unit in which a plurality of parts are combined, and the like.
  • the robot system 1 includes a transfer device 2, a plurality of (for example, three) robots 3A, 3B, 3C, and a control system 100.
  • the transport device 2 transports the work 90 by the power of, for example, an electric motor.
  • the transport device 2 transports the work 90 in one direction along a horizontal plane.
  • Specific examples of such a transfer device 2 include a belt conveyor, a roller conveyor, and the like.
  • Each of the robots 3A, 3B, and 3C performs a predetermined work on the work 90 transported by the transport device 2.
  • the robots 3A, 3B, and 3C may include two or more robots whose operating ranges overlap each other.
  • the robot 3B works on the work 90 in an operating range that overlaps with the operating range of the robot 3A
  • the robot 3C works on the work 90 in an operating range that overlaps with the operating range of the robot 3A and the operating range of the robot 3B. Work is performed on the work 90.
  • the work on the work 90 include assembling another work 90 (for example, a sub-part) to the work 90 (for example, a base part) conveyed by the transfer device 2, and fastening the parts in the work 90 conveyed by the transfer device 2.
  • assembling another work 90 for example, a sub-part
  • the work 90 for example, a base part
  • fastening for example, bolt fastening
  • joining for example, welding
  • the like can be mentioned.
  • At least one of the robots 3A, 3B, and 3C may be a robot capable of autonomous traveling.
  • FIG. 1 illustrates a case where all of the robots 3A, 3B, and 3C are capable of autonomous traveling.
  • each of the robots 3A, 3B, and 3C has a robot main body 4 and a transport carriage 5.
  • the transport trolley 5 (trolley) holds the robot main body 4 and autonomously travels around the transport device 2 so as to transport the robot main body 4.
  • Specific examples of the automatic guided vehicle 5 include an electric so-called AGV (Automated Guided Vehicle).
  • the robot body 4 is a 6-axis vertical articulated robot, and has a base 11, a swivel portion 12, a first arm 13, a second arm 14, a third arm 17, a tip portion 18, and an actuator 41. It has 42, 43, 44, 45, 46 and so on.
  • the base 11 is fixed on the transport carriage 5.
  • the swivel portion 12 is provided on the base portion 11 so as to swivel around the vertical axis 21.
  • the first arm 13 is connected to the swivel portion 12 so as to swing around the axis 22 intersecting (for example, orthogonal to) the axis 21. The intersection also includes a case where there is a twisting relationship such as a so-called grade separation.
  • the second arm 14 is connected to the tip of the first arm 13 so as to swing around an axis 23 substantially parallel to the axis 22.
  • the second arm 14 includes an arm base 15 and an arm end 16.
  • the arm base 15 is connected to the tip of the first arm 13 and extends along an axis 24 that intersects (for example, is orthogonal to) the axis 23.
  • the arm end 16 is connected to the tip of the arm base 15 so as to swivel around the axis 24.
  • the third arm 17 is connected to the tip of the arm end 16 so as to swing around the axis 25 intersecting (for example, orthogonal to) the axis 24.
  • the tip 18 is connected to the tip of the third arm 17 so as to swivel around an axis 26 that intersects (eg, is orthogonal) the axis 25.
  • the robot body 4 has a joint 31 that connects the base 11 and the swivel portion 12, a joint 32 that connects the swivel portion 12 and the first arm 13, and a first arm 13 and a second arm 14.
  • the joint 33 to be connected, the joint 34 to connect the arm base 15 and the arm end 16 in the second arm 14, the joint 35 to connect the arm end 16 and the third arm 17, the third arm 17 and the tip.
  • It has a joint 36 that connects to the portion 18.
  • Actuators 41, 42, 43, 44, 45, 46 include, for example, an electric motor and a speed reducer, and drive joints 31, 32, 33, 34, 35, 36, respectively.
  • the actuator 41 swings the swivel portion 12 around the axis 21
  • the actuator 42 swings the first arm 13 around the axis 22
  • the actuator 43 swings the second arm 14 around the axis 23.
  • the actuator 44 swings the arm end 16 around the axis 24, the actuator 45 swings the third arm 17 around the axis 25, and the actuator 46 swivels the tip 18 around the axis 26.
  • a work tool is provided at the tip portion 18.
  • the work tool include a holding tool for holding an object by gripping or suction, a screw tightening tool, a welding torch, and the like.
  • the robot body 4 can freely change the position and posture of the work tool within the movable range by driving the joints 31, 32, 33, 34, 35, 36 by the actuators 41, 42, 43, 44, 45, 46, respectively. Adjust.
  • the specific configuration of the robots 3A, 3B, and 3C can be changed as appropriate.
  • the robots 3A, 3B, and 3C may be a 7-axis redundant robot in which a 1-axis joint is added to the 6-axis vertical articulated robot, or may be a so-called scalar type articulated robot. ..
  • the robots 3A, 3B, and 3C do not necessarily have to be able to travel autonomously, and the base 11 may be fixed around the transport device 2.
  • Each of the robots 3A, 3B, and 3C may further have a work target camera 51.
  • the work target camera 51 (work target imaging device) captures a work area by the robot main body 4 and generates work target image data.
  • Specific examples of the work target camera 51 include a solid-state image sensor such as a CCD (Charge Coupled Device) image sensor or a CMOS (Complementary Metal-Oxide-Semiconductor) image sensor, and an optical system for forming a work area on the image sensor. Examples include electronic cameras that have.
  • the work target camera 51 is attached to the tip portion 18 together with the work tool.
  • the work target camera 51 can be directed to the work area, and the work area can be photographed more reliably.
  • the installation position of the work target camera 51 is not necessarily limited to the tip portion 18.
  • the work target camera 51 may be provided at any of the robots 3A, 3B, and 3C as long as the work area can be photographed.
  • the robot system 1 may further include an environment imaging device 6.
  • the environment imaging device 6 photographs the target area including the work 90 transported by the transport device 2 to generate environmental image data.
  • the environment imaging device 6 photographs the transport device 2 from vertically above.
  • the environment imaging device 6 may be configured to generate a plurality of types of image data.
  • the environment imaging device 6 may generate environment image data including distance image data and luminance image data with respect to the target area.
  • the luminance image is a two-dimensional image in which the brightness of each part in the target area is represented by a color distribution.
  • the environment imaging device 6 includes a luminance camera 7 that generates luminance image data and a distance camera 8 that generates distance image data.
  • the brightness camera 7 include a solid-state image sensor such as a CCD (Charge Coupled Device) image sensor or a CMOS (Complementary Metal-Oxide-Semiconductor) image sensor, and an optical system for forming a work area on the image sensor.
  • An electronic camera can be mentioned.
  • a specific example of the distance camera 8 is a TOF (Time of Flight) camera that obtains distance information based on the time from when infrared light or the like is emitted to a target area until the reflected light returns.
  • the environment imaging device 6 does not necessarily have to generate a plurality of types of image data, and may be configured to generate only luminance image data, for example.
  • the control system 100 includes an environment identification device 200, a robot controller 300, and a transfer controller 400.
  • the transport controller 400 controls the transport device 2 so as to transport the work 90 at a predetermined speed, for example.
  • the environment specifying device 200 identifies the current position of the work 90 in the transport device 2 and the occupied area of one or more objects in the vicinity of the work 90.
  • Specific examples of the object include robots 3A, 3B, and 3C.
  • the object may be a device other than the robots 3A, 3B, 3C, or may be a worker (person) who cooperates with the robots 3A, 3B, 3C.
  • the environment specifying device 200 may be configured to specify the current position of the work 90 and the occupied area of one or more objects based on the environment image data generated by the environment imaging device 6.
  • the environment identification device 200 has an image data acquisition unit 211, an environment image data storage unit 212, and a work position detection unit as functional components (hereinafter referred to as “functional blocks”). It has 213 and an occupied area detection unit 214.
  • the image data acquisition unit 211 acquires the environmental image data generated by the environmental imaging device 6.
  • the environmental image data storage unit 212 stores the environmental image data acquired by the image data acquisition unit 211.
  • the work position detection unit 213 identifies the current position of the work 90 based on the environment image data.
  • the work position detection unit 213 may specify the current position of the work 90 based on the luminance image data.
  • the work position detection unit 213 recognizes the marker attached to the work 90 based on the luminance image data, and the current position of the work 90 based on the position of the marker in the target area (the area to be photographed by the environment imaging device 6). Identify the location.
  • FIG. 4 is a view of the transport device 2 viewed from above vertically, and the environment imaging device 6 photographs the target area TA1 in the figure.
  • the work 90 has a plurality of work target parts 92.
  • the work target part 92 is a work target part of the robots 3A, 3B, 3C or an operator. There is no particular limitation on the work content to be performed on the work target portion 92.
  • the robots 3A, 3B, 3C or the operator perform work such as assembling parts to the work target portion 92.
  • a marker 91 is attached to the work 90.
  • the marker 91 is attached to the work 90 at a position not included in the plurality of work target parts 92.
  • the marker 91 may be any marker 91 as long as it can be recognized by image processing.
  • Specific examples of the marker 91 include a two-dimensional bar code and the like.
  • the work position detection unit 213 specifies the current position of the work 90 based on the position of the marker 91 in the target area TA1.
  • the work position detection unit 213 may specify the current position of the work 90 by recognizing a feature on the work 90 (for example, circular unevenness) or the work 90 itself by image processing instead of the marker 91. Good.
  • the occupied area detection unit 214 identifies the occupied area of one or more objects based on the environmental image data.
  • the occupied area detection unit 214 may specify the current position of the work 90 based on the distance image data and the luminance image data.
  • the occupied area detection unit 214 may specify the occupied area of one or more objects in the confirmation target area that moves together with the work 90.
  • the confirmation target area may include a plurality of sections, and the occupied area detection unit 214 may specify the occupied area of one or more objects in units of a plurality of sections.
  • FIG. 4 illustrates the result of specifying the occupied area of the robot 3A by the occupied area detection unit 214.
  • the confirmation target area 93 is defined so as to include all the work target parts 92 of the work 90.
  • the confirmation target area 93 includes a plurality of work target parts 92 as a plurality of sections.
  • the plurality of sections do not necessarily correspond to the plurality of work target parts 92, and may be more subdivided than the plurality of work target parts 92.
  • the occupied area detection unit 214 identifies the inclusion area A01 so as to include the robot body 4 of the robot 3A based on the environment image data, and determines the overlapping area between the confirmation target area 93 and the inclusion area A01 in the confirmation target area 93. It is specified as the occupied area A02 of the robot 3A in the above.
  • the occupied area detection unit 214 specifies the occupied area A02 in units of a plurality of sections.
  • the occupied area detection unit 214 uses the work target parts 92D, 92E, 92F, 92G, 92N, and 92P that overlap with the inclusion area A01 as the occupied area A02 of the robot 3A in the confirmation target area 93 among the plurality of work target parts 92. Identify.
  • FIG. 5 illustrates the specific result of the occupied area (human occupied area) occupied by the worker 9 by the occupied area detection unit 214.
  • the occupied area detection unit 214 identifies the inclusion area A11 so as to include the worker 9 based on the environment image data, and determines the overlapping area between the confirmation target area 93 and the inclusion area A11 as the worker in the confirmation target area 93. It is specified as the occupied area A12 of 9.
  • the occupied area detection unit 214 specifies the occupied area A12 in units of a plurality of sections. For example, the occupied area detection unit 214 confirms the work target parts 92A, 92B, 92C, 92D, 92L, and 92M that overlap with the inclusion area A11 among the plurality of work target parts 92. The occupied area A12 of the worker 9 in the confirmation target area 93. Identify as.
  • the environment identification device 200 has an image recognition model generated by machine learning and a new distance so as to output an occupied area of one or more objects based on input data including distance image data and brightness image data. It may be configured to specify a new occupied area of one or more objects based on the image data and the brightness image data.
  • the environment identification device 200 further has a model storage unit 215.
  • the model storage unit 215 stores the image recognition model.
  • the image recognition model a neural network that outputs coordinate point sequence data (output vector) representing an occupied area of one or more objects in response to input of distance image data and luminance image data (input vector). Can be mentioned.
  • the neural network has an input layer, an intermediate layer of one layer or a plurality of layers, and an output layer.
  • the input layer outputs the input vector as it is to the next intermediate layer.
  • the intermediate layer converts the input from the previous layer by the activation function and outputs it to the next layer.
  • the output layer converts the input from the intermediate layer farthest from the input layer by the activation function, and outputs the conversion result as an output vector.
  • Such a neural network is generated by optimizing the activation function of each layer based on the training data accumulated in the teacher data set in which the input vector and the output vector are associated with each other.
  • the occupied area detection unit 214 identifies a new occupied area of one or more objects by inputting new distance image data and luminance image data into the image recognition model stored in the model storage unit 215.
  • the occupied area detection unit 214 may specify the occupied area of one or more objects by a method that does not rely on machine learning, such as boundary recognition in an image by pattern matching or the like.
  • the environment specifying device 200 may be configured to store the progress information of the work for the work 90 and update the progress information according to the progress of the actual work.
  • the environment identification device 200 further includes a progress storage unit 216 and a progress management unit 217.
  • the progress storage unit 216 stores work progress information for the work target portion 92.
  • the progress storage unit 216 stores work progress information for each of the plurality of work target parts 92.
  • the progress information in FIG. 6 is represented by "not yet”, “completed”, and “reserved”. "Not yet” means that the work is incomplete. "Done” means that the work has been completed. “Reserved” means that any of the robots 3A, 3B, and 3C is scheduled to perform the work.
  • the progress management unit 217 updates the progress information stored in the progress storage unit 216 according to the progress of the actual work. For example, the progress management unit 217 updates the progress information based on the control status of the robots 3A, 3B, 3C by the robot controllers 300A, 300B, 300C described later and the environment image data.
  • the robot controller 300 controls the robots 3A, 3B, and 3C so as to work on the work 90.
  • the control system 100 may include a plurality of robot controllers 300 that control the plurality of robots 3A, 3B, 3C, respectively.
  • the robot controller 300 includes robot controllers 300A, 300B, and 300C that control the robots 3A, 3B, and 3C, respectively.
  • the robot controller 300A identifies an interlock area that moves together with the work 90 based on the current position of the work 90, and determines whether or not the work 90 can be worked by the robot 3A. Judgment is performed based on whether or not it overlaps with the occupied area, and when it is determined that work is possible, the robot 3A is controlled to work on the work 90 based on the current position of the work 90. It is configured to do.
  • the robot controller 300A has, as functional blocks, a program holding unit 311, a work target selection unit 312, a program modification unit 313, a modified program holding unit 314, an interlock area specifying unit 315, and the like. It has a workability determination unit 316 and a control execution unit 317.
  • the program holding unit 311 stores an operation program generated in advance so that the robot 3A can perform the work on the work 90.
  • the program holding unit 311 stores two or more operation programs generated for each of two or more work target parts 92 (hereinafter, referred to as “two or more jurisdiction parts”) among the plurality of work target parts 92. All work target parts 92 may be jurisdiction parts.
  • an operation program includes a plurality of motion commands arranged in chronological order. Each of the plurality of motion commands includes a target position / target posture of the tip portion 18.
  • the work target selection unit 312 is out of two or more jurisdiction parts based on the progress information stored in the progress storage unit 216, the current position of the work 90 specified by the work position detection unit 213, and the current position of the robot 3A. Select one. For example, the work target selection unit 312 selects, among two or more jurisdiction parts, a part whose work is incomplete and located closest to the robot 3A. Hereinafter, the selected part is referred to as a "selected part".
  • the program modification unit 313 modifies the operation program for the selected portion based on the current position of the work 90. For example, the operation program is generated on the assumption that the work 90 is in a predetermined reference position.
  • the program correction unit 313 corrects the target position / target posture in each of the plurality of motion commands based on the difference between the reference position and the current position.
  • the modified program holding unit 314 stores the operation program modified by the program modification unit 313.
  • the operation program stored in the modified program holding unit 314 is referred to as a "modified program”.
  • the interlock area specifying unit 315 specifies an interlock area that moves together with the work 90 based on the current position of the work 90.
  • the interlock area is an area in which the presence of other objects cannot be tolerated when the robot 3A performs work on the selected portion. As a specific example of the fact that the existence of another object cannot be tolerated, when another object exists in the interlock region, a collision between the other object and the robot 3A may occur.
  • the interlock area specifying unit 315 may specify the planned occupied area of the robot 3A when working on the work 90 based on the modified program, and may specify the interlock area based on the planned occupied area.
  • the interlock area specifying unit 315 may specify the interlock area in units of a plurality of sections of the confirmation target area.
  • FIG. 7A illustrates the result of specifying the interlock area by the interlock area specifying unit 315.
  • the interlock area specifying unit 315 identifies the planned occupied area A21 of the robot 3A when performing work on the work target part 92M which is the selected part, and the confirmation target area 93 and the planned occupied area 93.
  • the overlapping area with A21 is specified as the interlock area A22.
  • the interlock area specifying unit 315 specifies the interlock area A22 in units of a plurality of sections.
  • the interlock area specifying unit 315 specifies the work target parts 92C, 92D, 92K, 92L, 92M, and 92N that overlap with the planned occupied area A21 as the interlock area A22 among the plurality of work target parts 92.
  • FIG. 7B illustrates that the interlock region A22 changes depending on the arrangement of the robot 3A even when the work is performed on the same work target portion 92M as in FIG. 7A.
  • 92D, 92E, 92L, 92M, 92N, and 92P are selected as the interlock region A22.
  • the interlock area specifying unit 315 may set the interlock area specifying unit 315.
  • the interlock area may be set so as to simply surround the work target position (for example, the work target portion 92M) with a predetermined margin.
  • the interlock area surrounding the work target part 92M with a margin of two sections is specified to include the work target part 92B, 92C, 92D, 92E, 92F, 92K, 92L, 92M, 92N, 92P.
  • This interlock region includes both the interlock region A22 in FIG. 7A and the interlock region A22 in FIG. 7B.
  • the workability determination unit 316 refers to the work 90 by the robot 3A based on whether or not the interlock area overlaps with the occupied area of an object other than the robot 3A (for example, the robot 3B, 3C or the worker 9). Judge whether work is possible. For example, the workability determination unit 316 determines that the robot 3A can work on the selected portion when the interlock area does not overlap with the occupied area of an object other than the robot 3A. On the other hand, the work availability determination unit 316 determines that the robot 3A cannot work on the selected portion when the interlock area overlaps with the occupied area of an object other than the robot 3A.
  • FIG. 8 illustrates a case where the interlock area A31 with respect to the work target part 92M, which is the selected part, overlaps with the occupied area A32 of the robot 3B.
  • the work availability determination unit 316 determines that the robot 3A cannot work on the work target portion 92M.
  • FIG. 9 illustrates a case where the interlock area A41 with respect to the work target part 92M, which is the selected part, overlaps with the occupied area A42 of the worker 9.
  • the workability determination unit 316 determines that the robot 3A cannot work on the work target portion 92M.
  • FIG. 10 illustrates a case where the interlock area A51 with respect to the work target part 92K, which is the selected part, does not overlap with the occupied area A52 of the robot 3C.
  • the work availability determination unit 316 determines that the robot 3A can work on the work target portion 92K.
  • the robots 3A and 3C can work on the same work 90 at the same time (see FIG. 11).
  • the control execution unit 317 controls the robot 3A based on the current position of the work 90 when the work availability determination unit 316 determines that the work is possible. For example, the control execution unit 317 controls the robot 3A based on the modified program modified based on the current position of the work 90. More specifically, the angle target values of the joints 31, 32, 33, 34, 35, 36 are calculated by inverse kinematics calculation so that the tip 18 of the robot 3A is displaced according to the modified program described above, and the actuator 41 , 42, 43, 44, 45, 46 make the respective angles of the joints 31, 32, 33, 34, 35, 36 follow the angle target value.
  • the robot controller 300 may be configured to control the robot 3A based on the work target image data generated by the work target camera 51 provided in the robot 3A.
  • the robot controller 300 may further include a work target position detection unit 318.
  • the work target position detection unit 318 acquires the work target image data generated by the work target camera 51.
  • the control execution unit 317 further controls the robot 3A based on the work target image data acquired by the work target position detection unit 318. For example, the control execution unit 317 identifies the deviation of the position / posture of the tip portion 18 with respect to the selected portion based on the work target image data, and sets the target position / posture of the tip portion 18 so as to reduce the specified deviation. It is corrected, and the robot 3A is controlled based on the corrected target position and target posture.
  • the control execution unit 317 may suspend the robot 3A after causing the robot 3A to perform the work on the selected portion halfway, and wait for the work availability determination unit 316 to determine that the work is possible.
  • the control execution unit 317 may generate an operation program according to the current position of the work 90 in real time without being based on the operation program generated in advance, and control the robot 3A based on the generated operation program.
  • the program modification unit 313 and the modified program holding unit 314 can be omitted.
  • the robot controller 300B identifies an interlock area that moves together with the work 90 based on the current position of the work 90, and determines whether or not the robot 3B can work on the work 90. When the judgment is made based on whether or not it overlaps with the occupied area of an object other than 3B, and when it is judged that the work is possible, the robot 3B is set to work on the work 90 based on the current position of the work 90. It is configured to control and perform.
  • the robot controller 300C identifies an interlock area that moves together with the work 90 based on the current position of the work 90, and determines whether or not the robot 3C can work on the work 90.
  • the interlock area is an object other than the robot 3C. Judgment is performed based on whether or not it overlaps with the occupied area, and when it is determined that work is possible, the robot 3C is controlled to work on the work 90 based on the current position of the work 90. It is configured to do.
  • the specific configuration of the robot controllers 300B and 300C is the same as that of the robot controller 300A. Therefore, detailed description of the robot controllers 300B and 300C will be omitted.
  • FIG. 12 is a block diagram illustrating the hardware configurations of the environment identification device 200 and the robot controller 300.
  • the environment identification device 200 has a circuit 290.
  • the circuit 290 includes one or more processors 291 and a memory 292, a storage 293, a communication port 294, and an input / output port 295.
  • the storage 293 has a computer-readable storage medium, such as a non-volatile semiconductor memory.
  • the storage 293 stores a program for causing the environment specifying device 200 to specify the current position of the work 90 in the transport device 2 and the occupied area of one or more objects in the vicinity of the work 90.
  • the storage 293 stores a program for configuring each of the above-mentioned functional blocks in the environment specifying device 200.
  • the memory 292 temporarily stores the program loaded from the storage medium of the storage 293 and the calculation result by the processor 291.
  • the processor 291 constitutes each functional block of the environment specifying device 200 by executing the above program in cooperation with the memory 292.
  • the communication port 294 communicates with the robot controller 300 via the network line NW according to a command from the processor 291.
  • the input / output port 295 inputs / outputs information to / from the luminance camera 7 and the distance camera 8 in accordance with a command from the processor 291.
  • the robot controller 300 has a circuit 390.
  • the circuit 390 includes one or more processors 391, a memory 392, a storage 393, a communication port 394, and a driver circuit 395.
  • the storage 393 has a computer-readable storage medium, such as a non-volatile semiconductor memory.
  • the storage 393 identifies an interlock area that moves together with the work 90 based on the current position of the work 90, and determines whether or not the work 90 can be performed by the robots 3A, 3B, and 3C.
  • the robot 3A which determines based on whether or not it overlaps with the occupied area of an object other than 3C, and when it is determined that work is possible, works on the work 90 based on the current position of the work 90. It stores a program for controlling 3B and 3C and for causing the robot controller 300 to execute.
  • the storage 393 stores a program for configuring each of the above-mentioned functional blocks in the robot controller 300.
  • the memory 392 temporarily stores the program loaded from the storage medium of the storage 393 and the calculation result by the processor 391.
  • the processor 391 constitutes each functional block of the robot controller 300 by executing the above program in cooperation with the memory 392.
  • the communication port 394 communicates with the environment specifying device 200 via the network line NW according to a command from the processor 391.
  • the driver circuit 395 outputs drive power to the robots 3A, 3B, and 3C in accordance with a command from the processor 391.
  • circuits 290 and 390 are not necessarily limited to those that configure each function by a program.
  • the circuits 290 and 390 may have at least a part of their functions configured by a dedicated logic circuit or an ASIC (Application Specific Integrated Circuit) that integrates the dedicated logic circuits.
  • ASIC Application Specific Integrated Circuit
  • Control procedure Subsequently, as an example of the control method, a control procedure executed by the control system 100 will be illustrated.
  • This procedure includes an environment identification procedure executed by the environment identification device 200 and a robot control procedure executed by the robot controller 300.
  • environment identification procedure executed by the environment identification device 200
  • robot control procedure executed by the robot controller 300.
  • each procedure will be illustrated in detail.
  • step S01 the image data acquisition unit 211 acquires the environmental image data generated by the environment imaging device 6.
  • step S02 the work position detection unit 213 identifies the current position of the work 90 based on the environment image data.
  • step S03 the occupied area detection unit 214 identifies the occupied area of one or more objects based on the environmental image data.
  • the environment identification device 200 repeats the above procedure.
  • the robot control procedure is common to the robot controllers 300A, 300B, and 300C. Therefore, in the following, only the robot control procedure executed by the robot controller 300A will be described, and the description of the robot control procedure executed by the robot controllers 300B and 300C will be omitted.
  • the interlock area that moves together with the work 90 is specified based on the current position of the work 90, and whether or not the robot 3A can work on the work 90 is determined by the interlock area occupying an object other than the robot 3A. This includes determining based on whether or not the area overlaps, and controlling the robot 3A to work on the work 90 based on the current position of the work 90 when it is determined that the work is possible.
  • the robot controller 300 first executes steps S11, S12, S13, S14, and S15.
  • step S11 the work target selection unit 312 has two or more based on the progress information stored in the progress storage unit 216, the current position of the work 90 specified by the work position detection unit 213, and the current position of the robot 3A. Select one of the jurisdictions.
  • step S12 the work target selection unit 312 requests the progress management unit 217 to change the selected part to “reserved”.
  • the progress management unit 217 updates the progress information of the progress storage unit 216 so that the selected part is "reserved”.
  • step S13 the program modification unit 313 modifies the operation program for the selected portion based on the current position of the work 90.
  • the interlock area specifying unit 315 specifies an interlock area that moves together with the work 90 based on the current position of the work 90.
  • whether or not the work 90 can be performed by the robot 3A is determined based on whether or not the interlock area overlaps with the occupied area of an object other than the robot 3A (for example, the robot 3B, 3C or the worker 9).
  • the workability determination unit 316 determines.
  • step S15 If it is determined in step S15 that the work on the work 90 by the robot 3A is not possible, the robot controller 300 returns the process to step S13. After that, until it is determined that the work on the work 90 by the robot 3A is possible, the operation program is modified based on the current position of the work 90, the interlock area is specified based on the current position of the work 90, and the work is determined. And are repeated.
  • step S15 When it is determined in step S15 that the work 90 by the robot 3A can be performed, the robot controller 300 repeatedly executes the control of the robot 3A based on the modified program in a predetermined control cycle.
  • the robot controller 300 executes steps S21 and S22.
  • step S21 the control execution unit 317 calculates the target position and target posture of the tip unit 18 in the current control cycle based on the modified program.
  • step S22 the control execution unit 317 confirms whether or not the tip portion 18 has reached a predetermined fine adjustment start position.
  • the fine adjustment start position is a position where at least a part of the selected portion is included in the work target image data.
  • step S22 If it is determined in step S22 that the tip portion 18 has not reached the fine adjustment start position, the robot controller 300 executes steps S25 and S26. In step S25, the joints 31, 32, 33, 34, by the actuators 41, 42, 43, 44, 45, 46 so that the control execution unit 317 makes the tip portion 18 follow the calculated target position and target posture. Drives 35 and 36. In step S26, the control execution unit 317 confirms whether or not the control according to all the motion commands of the operation program is completed.
  • step S26 If it is determined in step S26 that the control according to some motion commands of the operation program has not been completed, the robot controller 300 returns the process to step S21. After that, the control of the robot 3A based on the modified program is repeated in the above control cycle until the control according to all the motion commands is completed.
  • step S22 determines that the tip portion 18 has reached the fine adjustment start position
  • the robot controller 300 executes steps S23 and S24 before step S25.
  • step S23 the work target position detection unit 318 acquires the work target image data generated by the work target camera 51.
  • step S24 the control execution unit 317 identifies the deviation of the position / posture of the tip portion 18 with respect to the selected portion based on the work target image data, and the target position / posture of the tip portion 18 is reduced so as to reduce the specified deviation. Correct the target posture.
  • the control of the robot 3A based on the modified program and the work target image data is repeated in the above control cycle until the control according to all the motion commands is completed.
  • step S26 when it is determined that the control according to all the motion commands of the operation program is completed, the robot controller 300 executes step S27.
  • step S27 the work target selection unit 312 requests the progress management unit 217 to change the selected portion to “completed”.
  • the progress management unit 217 updates the progress information of the work availability determination unit 316 so that the selected portion is set to "completed”. This completes the robot control procedure.
  • the robot system 1 refers to the transfer device 2 for transporting the work 90, the environment specifying device 200 for specifying the current position of the work 90 and the occupied area of one or more objects, and the work 90.
  • a robot controller 300 that controls robots 3A, 3B, and 3C to work is provided, and the robot controller 300 specifies an interlock area that specifies an interlock area that moves with the work 90 based on the current position of the work 90.
  • Work to determine whether or not the work 90 can be performed by the robots 3A, 3B, and 3C based on whether the interlock area and the unit 315 overlap with the occupied area of an object other than the robots 3A, 3B, and 3C. It has a workability determination unit 316 and a control execution unit 317 that controls the robots 3A, 3B, and 3C based on the current position of the work 90 when the workability determination unit 316 determines that the work is possible.
  • the robot system 1 determines whether or not the robots 3A, 3B, and 3C can work on the work 90 based on whether or not the interlock area moving together with the work 90 interferes with the occupied area of another object. Therefore, even in a situation where the work 90 to be worked is moved while being transported to the transfer device 2, the robots 3A, 3B, and 3C collide with other objects when the robot works on the work 90 to be worked. It is possible to appropriately evaluate whether or not to obtain the robot and appropriately determine whether or not the robots 3A, 3B, and 3C can work. Therefore, the robot system 1 is effective for flexible adaptation to environmental changes.
  • the robot controller 300 further includes a program modification unit 313 that modifies a predetermined operation program based on the current position of the work 90, and the control execution unit 317 determines that the work is possible when the work availability determination unit 316 determines that the work is possible.
  • the robots 3A, 3B, and 3C may be controlled based on the modified operation program.
  • the position of the work 90 when it is determined that the work is possible changes depending on which timing during the transportation the work is possible. Therefore, it is necessary to adapt the operation of the robots 3A, 3B, and 3C to the position of the work 90 when it is determined that the work is possible.
  • the robot system 1 modifies a predetermined operation program based on the current position of the work 90. Therefore, the movements of the robots 3A, 3B, and 3C can be easily adapted to the position of the work 90 when it is determined that the work is possible.
  • the environment specifying device 200 may specify the occupied area of one or more objects in the confirmation target area 93 that moves together with the work 90.
  • the processing load on the robot controller 300 can be reduced by reducing the area to be checked for duplication with the interlock area among the one or more occupied areas.
  • the robot system 1 controls a robot controller 300 (second robot) that controls the robots 3A, 3B, 3C (second robot) so as to work on the work 90 in an operation range that overlaps with the operation range of the robots 3A, 3B, 3C.
  • the second controller further includes an interlock area specifying unit 315 that specifies a second interlock area that moves together with the work 90 based on the current position of the work 90, and the second interlock area is the second robot.
  • a work propriety determination unit (second work feasibility determination unit) for determining work feasibility for the work 90 by the second robot based on whether or not it overlaps with an occupied area of another object other than the above, and a second work feasibility determination unit.
  • the unit may have a control execution unit 317 that controls the second robot based on the current position of the work 90.
  • the flexible adaptability to changes in the environment can be effectively utilized for adjusting the operation timings of the robots 3A, 3B, and 3C whose operation ranges overlap each other.
  • the occupied area of an object other than the robots 3A, 3B, and 3C may include a human occupied area occupied by the worker 9. In this case, even in a work environment in which a person and the robots 3A, 3B, 3C collaborate, it is possible to appropriately determine whether or not the robots 3A, 3B, 3C can work.
  • the robot system 1 further includes an environment imaging device 6 that captures a target area including a work to be transported by the transport device 2 and generates environment image data
  • the environment identification device 200 further includes an environment imaging device 6 of the work 90 based on the environment image data.
  • the current position and the occupied area of one or more objects may be specified. In this case, by improving the reliability of the environmental information, the reliability of the operation of the robots 3A, 3B, and 3C based on the environmental information can also be improved.
  • the environment imaging device 6 generates environment image data including distance image data and brightness image data for the target area, and the environment specifying device 200 generates one or more objects based on the distance image data and the brightness image data.
  • the occupied area of may be specified. In this case, the reliability of the environmental information can be further improved by using the distance image data and the luminance image data together.
  • the environment identification device 200 may recognize the marker 91 attached to the work 90 based on the environment image data, and specify the current position of the work 90 based on the position of the marker 91 in the target area.
  • the environment image data can also be used to detect the position of the work 90.
  • the interlock area specifying unit 315 specifies the planned occupied area of the robots 3A, 3B, and 3C when working on the work 90 based on the modified operation program, and specifies the interlock area based on the planned occupied area. You may. In this case, by specifying a more appropriate first interlock area, it is possible to reduce the determination that the work is not possible even though the work is actually possible, and improve the work efficiency of the robots 3A, 3B, and 3C. Can be made to.
  • the interlock area specifying unit 315 may specify the interlock area so as to surround the work target positions of the robots 3A, 3B, and 3C with a predetermined margin based on the current position of the work 90. In this case, it is possible to simplify the process of specifying the interlock area and reduce the processing load on the robot controller 300.
  • the confirmation target area includes a plurality of sections
  • the environment identification device 200 specifies the occupied area of one or more objects in a plurality of section units
  • the interlock area specifying unit 315 specifies the interlock area in a plurality of section units. It may be specified.
  • the processing for specifying one or more robot overlapping areas and the processing for specifying the interlock area can be simplified, and the processing load on the environment specifying device 200 and the robot controller 300 can be further reduced.
  • the environment identification device 200 has an image recognition model generated by machine learning and a new distance so as to output an occupied area of one or more objects based on input data including distance image data and brightness image data.
  • a new occupied area of one or more objects may be specified based on the image data and the brightness image data.
  • machine learning it is possible to more appropriately use the distance image data and the luminance image data together to specify one or more robot occupied areas.
  • the robots 3A, 3B, and 3C include a robot main body 4, a transport trolley 5 that holds and conveys the robot main body 4, and a work target camera 51 (work) that captures a work area by the robot main body 4 and generates work target image data.
  • the target imaging device) and the control execution unit 317 may control the robots 3A, 3B, and 3C based on the work target image data. In this case, the working accuracy of the robots 3A, 3B, and 3C with respect to the work 90 can be maintained even in a situation where the position of the transport carriage 5 may be displaced.
  • Robot system 1 ... Robot system, 2 ... Transport device, 3A, 3B, 3C ... Robot, 4 ... Robot body, 5 ... Transport trolley (trolley), 6 ... Environmental imaging device, 9 ... Worker, 51 ... Work target camera (work target) Imaging device), 90 ... Work, 91 ... Marker, 93 ... Confirmation target area, 200 ... Environment identification device, 300 ... Robot controller (controller), 313 ... Program modification unit, 315 ... Interlock area identification unit, 316 ... Work availability Judgment unit, 317 ... Control execution unit.

Landscapes

  • Engineering & Computer Science (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Multimedia (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Orthopedic Medicine & Surgery (AREA)
  • Manipulator (AREA)

Abstract

ロボットシステム1は、ワーク90を搬送する搬送装置2と、ワーク90の現在位置と、1以上の物体の占有領域とを特定する環境特定装置200と、ワーク90に対し作業するようにロボット3A,3B,3Cを制御するロボットコントローラ300と、を備え、ロボットコントローラ300は、ワーク90の現在位置に基づいて、ワーク90と共に移動するインタロック領域を特定するインタロック領域特定部315と、インタロック領域が、ロボット3A,3B,3C以外の他の物体の占有領域と重複しているか否かに基づいて、ロボット3A,3B,3Cによるワーク90に対する作業可否を判定する作業可否判定部316と、作業可否判定部316が作業可と判定した場合、ワーク90の現在位置に基づいてロボット3A,3B,3Cを制御する制御実行部317と、を有する。

Description

ロボットシステム、コントローラ及び制御方法
 本開示は、ロボットシステム、コントローラ及び制御方法に関する。
 特許文献1には、複数のロボット毎に、自身の占有領域が他のロボットの占有領域と重なり合う干渉領域が存在した場合に、他のロボットとの通信によって当該他のロボットが干渉領域内に進入したことを検出したとき、自身の占有領域の内側であって干渉領域へ進入する前で動作を停止し、自身の占有領域から他のロボットが退出したとき、自身の目標位置へ移動する動作を再開するロボットの干渉回避方法が開示されている。
特開2007-148527号公報
 本開示は、環境変化に対する柔軟な適応に有効なロボットシステムを提供する。
 本開示の一側面に係るロボットシステムは、ワークを搬送する搬送装置と、ワークの現在位置と、1以上の物体の占有領域とを特定する環境特定装置と、ワークに対し作業するようにロボットを制御するコントローラと、を備え、コントローラは、ワークの現在位置に基づいて、ワークと共に移動するインタロック領域を特定するインタロック領域特定部と、インタロック領域が、ロボット以外の他の物体の占有領域と重複しているか否かに基づいて、ロボットによるワークに対する作業可否を判定する作業可否判定部と、作業可否判定部が作業可と判定した場合、ワークの現在位置に基づいてロボットを制御する制御実行部と、を有する。
 本開示の他の側面に係るコントローラは、ワークの現在位置に基づいて、ワークと共に移動するインタロック領域を特定するインタロック領域特定部と、ロボットによるワークに対する作業可否を、インタロック領域がロボット以外の他の物体の占有領域と重複しているか否かに基づいて判定する作業可否判定部と、作業可否判定部が作業可と判定した場合、ワークの現在位置に基づいてワークに対し作業するようにロボットを制御する制御実行部と、を備える。
 本開示の更に他の側面に係る制御方法は、ワークの現在位置に基づいて、ワークと共に移動するインタロック領域を特定することと、ロボットによるワークに対する作業可否を、インタロック領域がロボット以外の他の物体の占有領域と重複しているか否かに基づいて判定することと、作業可と判定した場合、ワークの現在位置に基づいてワークに対し作業するようにロボットを制御することと、を含む。
 本開示によれば、環境変化に対する柔軟な適応に有効なロボットシステムを提供することができる。
ロボットシステムの全体構成を例示する模式図である。 ロボットの構成を例示する模式図である。 環境特定装置及びロボットコントローラの構成を例示するブロック図である。 ロボットの占有領域を例示する模式図である。 作業者の占有領域を例示する模式図である。 進捗データを例示するテーブルである。 インタロック領域を例示する模式図である。 インタロック領域と占有領域とが重複する場合を例示する模式図である。 インタロック領域と占有領域とが重複する場合を例示する模式図である。 インタロック領域と占有領域とが重複しない場合を例示する模式図である。 インタロック領域と占有領域とが重複しない場合を例示する模式図である。 環境特定装置及びロボットコントローラのハードウェア構成を例示するブロック図である。 環境特定手順を例示するフローチャートである。 ロボット制御手順を例示するフローチャートである。
 以下、実施形態について、図面を参照しつつ詳細に説明する。説明において、同一要素又は同一機能を有する要素には同一の符号を付し、重複する説明を省略する。
〔ロボットシステム〕
 図1に示すロボットシステム1は、搬送装置と、少なくとも一台のロボットとの協働によって、ワークの生産を行うシステムである。以下、ワークの生産過程において、各ローカル機器の作業対象となる物体の全てを「ワーク」という。例えば「ワーク」は、ロボットシステム1における最終生産物、最終生産物の部品、及び複数の部品を組み合わせたユニット等を含む。一例として、ロボットシステム1は、搬送装置2と、複数台(例えば三台)のロボット3A,3B,3Cと、制御システム100とを備える。
 搬送装置2は、例えば電動モータ等の動力によりワーク90を搬送する。一例として、搬送装置2は、水平面に沿ってワーク90を一方向に搬送する。このような搬送装置2の具体例としては、ベルトコンベヤ、ローラコンベヤ等が挙げられる。
 ロボット3A,3B,3Cのそれぞれは、搬送装置2が搬送するワーク90に対して予め定められた作業を行う。ロボット3A,3B,3Cは、互いに動作範囲が重複する二台以上のロボットを含んでいてもよい。一例として、ロボット3Bは、ロボット3Aの動作範囲と重複する動作範囲にて、ワーク90に対し作業を行い、ロボット3Cは、ロボット3Aの動作範囲及びロボット3Bの動作範囲と重複する動作範囲にてワーク90に対し作業を行う。ワーク90に対する作業の具体例としては、搬送装置2が搬送するワーク90(例えばベースパーツ)に対する他のワーク90(例えばサブパーツ)の組付け、搬送装置2が搬送するワーク90におけるパーツ同士の締結(例えばボルト締結)・接合(例えば溶接)等が挙げられる。
 ロボット3A,3B,3Cの少なくともいずれかは、自律走行可能なロボットであってもよい。図1は、ロボット3A,3B,3Cの全てが自律走行可能である場合を例示している。図2に示すように、ロボット3A,3B,3Cのそれぞれは、ロボット本体4と、搬送台車5とを有する。搬送台車5(台車)は、ロボット本体4を保持し、当該ロボット本体4を搬送するように搬送装置2の周囲を自律走行する。搬送台車5の具体例としては、電動式の所謂AGV(Automated Guided Vehicle)が挙げられる。
 ロボット本体4は、6軸の垂直多関節ロボットであり、基部11と、旋回部12と、第1アーム13と、第2アーム14と、第3アーム17と、先端部18と、アクチュエータ41,42,43,44,45,46とを有する。
 基部11は、搬送台車5の上に固定されている。旋回部12は、鉛直な軸線21まわりに旋回するように基部11上に設けられている。第1アーム13は、軸線21に交差(例えば直交)する軸線22まわりに揺動するように旋回部12に接続されている。交差は、所謂立体交差のようにねじれの関係にある場合も含む。第2アーム14は、軸線22に実質的に平行な軸線23まわりに揺動するように第1アーム13の先端部に接続されている。第2アーム14は、アーム基部15とアーム端部16とを含む。アーム基部15は、第1アーム13の先端部に接続され、軸線23に交差(例えば直交)する軸線24に沿って延びている。アーム端部16は、軸線24まわりに旋回するようにアーム基部15の先端部に接続されている。第3アーム17は、軸線24に交差(例えば直交)する軸線25まわりに揺動するようにアーム端部16の先端部に接続されている。先端部18は、軸線25に交差(例えば直交)する軸線26まわりに旋回するように第3アーム17の先端部に接続されている。
 このように、ロボット本体4は、基部11と旋回部12とを接続する関節31と、旋回部12と第1アーム13とを接続する関節32と、第1アーム13と第2アーム14とを接続する関節33と、第2アーム14においてアーム基部15とアーム端部16とを接続する関節34と、アーム端部16と第3アーム17とを接続する関節35と、第3アーム17と先端部18とを接続する関節36とを有する。
 アクチュエータ41,42,43,44,45,46は、例えば電動モータ及び減速機を含み、関節31,32,33,34,35,36をそれぞれ駆動する。例えばアクチュエータ41は、軸線21まわりに旋回部12を旋回させ、アクチュエータ42は、軸線22まわりに第1アーム13を揺動させ、アクチュエータ43は、軸線23まわりに第2アーム14を揺動させ、アクチュエータ44は、軸線24まわりにアーム端部16を旋回させ、アクチュエータ45は、軸線25まわりに第3アーム17を揺動させ、アクチュエータ46は、軸線26まわりに先端部18を旋回させる。
 先端部18には、作業ツールが設けられる。作業ツールの具体例としては、把持又は吸着により対象物を保持する保持ツール、ねじ締めツール、溶接トーチ等が挙げられる。ロボット本体4は、アクチュエータ41,42,43,44,45,46により関節31,32,33,34,35,36をそれぞれ駆動することで、作業ツールの位置及び姿勢を可動範囲内で自在に調節する。
 ロボット3A,3B,3Cの具体的な構成は適宜変更可能である。例えばロボット3A,3B,3Cは、上記6軸の垂直多関節ロボットに更に1軸の関節を追加した7軸の冗長型ロボットであってもよく、所謂スカラー型の多関節ロボットであってもよい。ロボット3A,3B,3Cは必ずしも自律走行可能でなくてもよく、基部11が搬送装置2の周囲に固定されていてもよい。
 ロボット3A,3B,3Cのそれぞれは、作業対象カメラ51を更に有してよい。作業対象カメラ51(作業対象撮像装置)は、ロボット本体4による作業領域を撮影して作業対象画像データを生成する。作業対象カメラ51の具体例としては、CCD(Charge Coupled Device)イメージセンサ又はCMOS(Complementary Metal-Oxide-Semiconductor)イメージセンサ等の固体撮像素子と、撮像素子に作業領域を結像させる光学系とを有する電子カメラが挙げられる。
 例えば作業対象カメラ51は、作業ツールと共に先端部18に取り付けられる。これにより、作業ツールを作業領域に向ける際に、作業対象カメラ51を作業領域に向けることができ、作業領域をより確実に撮影することができる。なお、作業対象カメラ51の設置位置は必ずしも先端部18に限られない。作業領域を撮影し得る限り、作業対象カメラ51はロボット3A,3B,3Cのいずれの部位に設けられていてもよい。
 ロボットシステム1は、環境撮像装置6を更に備えてもよい。環境撮像装置6は、搬送装置2が搬送するワーク90を含む対象エリアを撮影して環境画像データを生成する。例えば環境撮像装置6は、搬送装置2を鉛直上方から撮影する。環境撮像装置6は、複数種類の画像データを生成するように構成されていてもよい。例えば環境撮像装置6は、対象エリアに対する距離画像データと、輝度画像データとを含む環境画像データを生成してもよい。輝度画像は、対象エリア内の各部の明るさを色彩の分布で表した二次元画像である。距離画像は、対象エリア内の各部までの距離を色彩の分布で表した二次元画像である。色彩の分布で表すことは、色の三属性(色相、明度、及び彩度)の少なくともいずれかの分布で表すことを意味する。
 例えば環境撮像装置6は、輝度画像データを生成する輝度カメラ7と、距離画像データを生成する距離カメラ8とを含む。輝度カメラ7の具体例としては、CCD(Charge Coupled Device)イメージセンサ又はCMOS(Complementary Metal-Oxide-Semiconductor)イメージセンサ等の固体撮像素子と、撮像素子に作業領域を結像させる光学系とを有する電子カメラが挙げられる。距離カメラ8の具体例としては、赤外光等を対象エリアに出射した後、その反射光が戻ってくるまでの時間に基づいて距離情報を得るTOF(Time of Flight)カメラが挙げられる。なお、環境撮像装置6は、必ずしも複数種類の画像データを生成しなくてもよく、例えば輝度画像データのみを生成するように構成されていてもよい。
 制御システム100は、環境特定装置200と、ロボットコントローラ300と、搬送コントローラ400とを有する。搬送コントローラ400は、例えばワーク90を所定の速度で搬送するように搬送装置2を制御する。環境特定装置200は、搬送装置2におけるワーク90の現在位置と、ワーク90の近傍における1以上の物体の占有領域とを特定する。物体の具体例としては、ロボット3A,3B,3Cが挙げられる。物体は、ロボット3A,3B,3C以外の他の装置であってもよく、ロボット3A,3B,3Cと協働する作業者(人)であってもよい。
 環境特定装置200は、環境撮像装置6が生成した環境画像データに基づいて、ワーク90の現在位置と、1以上の物体の占有領域とを特定するように構成されていてもよい。例えば図3に示すように、環境特定装置200は、機能上の構成要素(以下、「機能ブロック」という。)として、画像データ取得部211と、環境画像データ記憶部212と、ワーク位置検出部213と、占有領域検出部214とを有する。
 画像データ取得部211は、環境撮像装置6が生成した環境画像データを取得する。環境画像データ記憶部212は、画像データ取得部211が取得した環境画像データを記憶する。ワーク位置検出部213は、環境画像データに基づいて、ワーク90の現在位置を特定する。ワーク位置検出部213は、輝度画像データに基づいてワーク90の現在位置を特定してもよい。ワーク位置検出部213は、輝度画像データに基づいて、ワーク90に付されたマーカを認識し、上記対象エリア(環境撮像装置6による撮影対象エリア)内におけるマーカの位置に基づいてワーク90の現在位置を特定する。
 図4は、搬送装置2を鉛直上方から見た図であり、環境撮像装置6は、図中の対象エリアTA1を撮影する。ワーク90は、複数の作業対象部位92を有する。作業対象部位92は、ロボット3A,3B,3C又は作業者による作業の対象部位である。作業対象部位92に対し行われる作業内容に特に制限はない。例えば、ロボット3A,3B,3C又は作業者によって、作業対象部位92に部品を組み付ける作業等が行われる。
 ワーク90には、マーカ91が付されている。例えばマーカ91は、ワーク90において、複数の作業対象部位92に含まれない位置に付されている。マーカ91は、画像処理により認識可能であればいかなるものであってもよい。マーカ91の具体例としては、二次元バーコード等が挙げられる。図4の例において、ワーク位置検出部213は、対象エリアTA1におけるマーカ91の位置に基づいて、ワーク90の現在位置を特定する。なお、ワーク位置検出部213は、マーカ91に代えて、ワーク90上の特徴(例えば円形の凹凸等)又はワーク90そのものを画像処理により認識することで、ワーク90の現在位置を特定してもよい。
 図3に戻り、占有領域検出部214は、環境画像データに基づいて、1以上の物体の占有領域を特定する。占有領域検出部214は、距離画像データと、輝度画像データとに基づいてワーク90の現在位置を特定してもよい。占有領域検出部214は、ワーク90と共に移動する確認対象領域内における1以上の物体の占有領域を特定してもよい。確認対象領域は、複数の区画を含んでもよく、占有領域検出部214は、1以上の物体の占有領域を複数の区画単位で特定してもよい。
 図4は、占有領域検出部214によるロボット3Aの占有領域の特定結果を例示している。図4の例においては、ワーク90の全ての作業対象部位92を含むように確認対象領域93が定められている。確認対象領域93は、複数の区画として、複数の作業対象部位92を含んでいる。複数の区画は必ずしも複数の作業対象部位92に対応していなくてもよく、複数の作業対象部位92よりも細分化されていてもよい。
 占有領域検出部214は、環境画像データに基づいて、ロボット3Aのロボット本体4を内包するように内包領域A01を特定し、確認対象領域93と内包領域A01との重複領域を確認対象領域93内におけるロボット3Aの占有領域A02として特定する。
 この際に、占有領域検出部214は、複数の区画単位で占有領域A02を特定する。例えば占有領域検出部214は、複数の作業対象部位92のうち、内包領域A01と重なる作業対象部位92D,92E,92F,92G,92N,92Pを確認対象領域93内におけるロボット3Aの占有領域A02として特定する。
 図5は、占有領域検出部214による作業者9が占める占有領域(人占有領域)の特定結果を例示している。占有領域検出部214は、環境画像データに基づいて、作業者9を内包するように内包領域A11を特定し、確認対象領域93と内包領域A11との重複領域を確認対象領域93内における作業者9の占有領域A12として特定する。
 この際に、占有領域検出部214は、複数の区画単位で占有領域A12を特定する。例えば占有領域検出部214は、複数の作業対象部位92のうち、内包領域A11と重なる作業対象部位92A,92B,92C,92D,92L,92Mを確認対象領域93内における作業者9の占有領域A12として特定する。
 環境特定装置200は、距離画像データと、輝度画像データとを含む入力データに基づいて、1以上の物体の占有領域を出力するように、機械学習により生成された画像認識モデルと、新たな距離画像データ及び輝度画像データとに基づいて1以上の物体の新たな占有領域を特定するように構成されていてもよい。
 例えば環境特定装置200は、モデル記憶部215を更に有する。モデル記憶部215は、上記画像認識モデルを記憶する。画像認識モデルの具体例としては、距離画像データ及び輝度画像データ(入力ベクトル)が入力されるのに応じ、1以上の物体の占有領域を表す座標点列データ(出力ベクトル)を出力するニューラルネットワークが挙げられる。
 ニューラルネットワークは、入力層と、一層又は複数層の中間層と、出力層とを有する。入力層は、入力ベクトルをそのまま次の中間層に出力する。中間層は、一つ前の層からの入力を活性化関数により変換して次の層に出力する。出力層は、入力層から最も遠い中間層からの入力を活性化関数により変換し、変換結果を出力ベクトルとして出力する。このようなニューラルネットワークは、入力ベクトルと出力ベクトルとを対応付けた教師データセットを蓄積した学習データに基づき、各層の活性化関数を最適化することにより生成される。
 占有領域検出部214は、モデル記憶部215が記憶する画像認識モデルに、新たな距離画像データ及び輝度画像データを入力することで、1以上の物体の新たな占有領域を特定する。
 なお、機械学習による画像認識モデルに基づいて1以上の物体の占有領域を特定することは必須ではない。占有領域検出部214は、パターンマッチングなどによる画像内の境界認識等、機械学習によらない手法で1以上の物体の占有領域を特定してもよい。
 環境特定装置200は、ワーク90に対する作業の進捗情報を記憶し、実際の作業の進捗に合わせて進捗情報を更新するように構成されていてもよい。例えば環境特定装置200は、進捗記憶部216と、進捗管理部217とを更に有する。
 進捗記憶部216は、作業対象部位92に対する作業の進捗情報を記憶する。例えば図6に示すように、進捗記憶部216は、複数の作業対象部位92ごとに、作業の進捗情報を記憶する。図6における進捗情報は、「未」、「済み」、「予約あり」により表されている。「未」は、作業が未完了であることを意味する。「済み」は、作業が完了していることを意味する。「予約あり」は、ロボット3A,3B,3Cのいずれかが作業を行うことを予定していることを意味する。
 進捗管理部217は、実際の作業の進捗に合わせて、進捗記憶部216が記憶する進捗情報を更新する。例えば進捗管理部217は、後述のロボットコントローラ300A,300B,300Cによるロボット3A,3B,3Cの制御状況と、環境画像データとに基づいて進捗情報を更新する。
 ロボットコントローラ300(コントローラ)は、ワーク90に対し作業するようにロボット3A,3B,3Cを制御する。ロボットシステム1が複数のロボット3A,3B,3Cを備える場合、制御システム100は、複数のロボット3A,3B,3Cをそれぞれ制御する複数のロボットコントローラ300を備えていてもよい。一例として、ロボットコントローラ300は、ロボット3A,3B,3Cをそれぞれ制御するロボットコントローラ300A,300B,300Cを有する。
 ロボットコントローラ300Aは、ワーク90の現在位置に基づいて、ワーク90と共に移動するインタロック領域を特定することと、ロボット3Aによるワーク90に対する作業可否を、インタロック領域がロボット3A以外の他の物体の占有領域と重複しているか否かに基づいて判定することと、作業可と判定した場合、ワーク90の現在位置に基づいてワーク90に対し作業するようにロボット3Aを制御することと、を実行するように構成されている。
 図3に示すように、ロボットコントローラ300Aは、機能ブロックとして、プログラム保持部311と、作業対象選択部312と、プログラム修正部313と修正済みプログラム保持部314と、インタロック領域特定部315と、作業可否判定部316と、制御実行部317とを有する。
 プログラム保持部311は、ワーク90に対する作業をロボット3Aに行わせるように予め生成された動作プログラムを記憶する。例えばプログラム保持部311は、複数の作業対象部位92のうち、2以上の作業対象部位92(以下、「2以上の管轄部位」という。)ごとに生成された2以上の動作プログラムを記憶する。全ての作業対象部位92が管轄部位となっていてもよい。例えば動作プログラムは、時系列に並ぶ複数のモーション指令を含む。複数のモーション指令のそれぞれは、先端部18の目標位置・目標姿勢を含む。
 作業対象選択部312は、進捗記憶部216が記憶する進捗情報と、ワーク位置検出部213が特定したワーク90の現在位置と、ロボット3Aの現在位置とに基づいて、2以上の管轄部位のうちいずれかを選択する。例えば作業対象選択部312は、2以上の管轄部位のうち、作業が未完了で、且つロボット3Aから最も近くに位置する部位を選択する。以下、選択した部位を「選択済み部位」という。
 プログラム修正部313は、ワーク90の現在位置に基づいて、選択済み部位に対する動作プログラムを修正する。例えば動作プログラムは、ワーク90が所定の基準位置にあることを前提として生成されている。プログラム修正部313は、基準位置と、現在位置との差に基づいて、上記複数のモーション指令のそれぞれにおける目標位置・目標姿勢を修正する。
 修正済みプログラム保持部314は、プログラム修正部313により修正された動作プログラムを記憶する。以下、修正済みプログラム保持部314が記憶する動作プログラムを「修正済みプログラム」という。
 インタロック領域特定部315は、ワーク90の現在位置に基づいて、ワーク90と共に移動するインタロック領域を特定する。インタロック領域は、選択済み部位に対する作業をロボット3Aが実行する際に、他の物体の存在を許容できない領域である。他の物体の存在を許容できないことの具体例としては、インタロック領域内に他の物体が存在する場合に、当該他の物体とロボット3Aとの衝突が生じ得ることが挙げられる。
 インタロック領域特定部315は、上記修正済みプログラムに基づいてワーク90に対し作業を行う場合のロボット3Aの占有予定領域を特定し、占有予定領域に基づいてインタロック領域を特定してもよい。インタロック領域特定部315は、インタロック領域を確認対象領域の複数の区画単位で特定してもよい。
 図7の(a)は、インタロック領域特定部315によるインタロック領域の特定結果を例示している。インタロック領域特定部315は、修正済みプログラムに基づいて、選択済み部位である作業対象部位92Mに対し作業を行う場合のロボット3Aの占有予定領域A21を特定し、確認対象領域93と占有予定領域A21との重複領域をインタロック領域A22として特定する。
 この際に、インタロック領域特定部315は、複数の区画単位でインタロック領域A22を特定する。例えばインタロック領域特定部315は、複数の作業対象部位92のうち、占有予定領域A21と重なる作業対象部位92C,92D,92K,92L,92M,92Nをインタロック領域A22として特定する。
 なお、作業対象部位が同一であっても、ロボット3Aの配置によってインタロック領域は変わり得る。例えば図7の(b)は、図7の(a)と同じ作業対象部位92Mに対し作業を行う場合であっても、ロボット3Aの配置によってインタロック領域A22が変わることを例示している。具体的に図7の(b)においては、92D,92E,92L,92M,92N,92Pがインタロック領域A22として選択されている。
 図7の(a)におけるインタロック領域A22と、図7の(b)におけるインタロック領域A22との両方を含む程度に大きなマージンを設定することが許される場合、インタロック領域特定部315は、単に所定のマージンを持って作業対象位置(例えば作業対象部位92M)を取り囲むようにインタロック領域を設定してもよい。
 例えば、2区画のマージンを持って作業対象部位92Mを取り囲むインタロック領域は、作業対象部位92B,92C,92D,92E,92F,92K,92L,92M,92N,92Pを含むように特定される。このインタロック領域は、図7の(a)におけるインタロック領域A22と、図7の(b)におけるインタロック領域A22との両方を含む。
 作業可否判定部316は、インタロック領域が、ロボット3A以外の他の物体(例えばロボット3B,3C又は作業者9)の占有領域と重複しているか否かに基づいて、ロボット3Aによるワーク90に対する作業可否を判定する。例えば作業可否判定部316は、インタロック領域が、ロボット3A以外の他の物体の占有領域と重複していない場合に、ロボット3Aによる選択済み部位への作業は可であると判定する。一方、作業可否判定部316は、インタロック領域が、ロボット3A以外の他の物体の占有領域と重複している場合にロボット3Aによる選択済み部位への作業は不可であると判定する。
 一例として、図8は、選択済み部位である作業対象部位92Mに対するインタロック領域A31が、ロボット3Bの占有領域A32と重複している場合を例示している。この場合、作業可否判定部316は、ロボット3Aによる作業対象部位92Mへの作業は不可であると判定する。
 図9は、選択済み部位である作業対象部位92Mに対するインタロック領域A41が、作業者9の占有領域A42と重複している場合を例示している。この場合も、作業可否判定部316は、ロボット3Aによる作業対象部位92Mへの作業は不可であると判定する。
 図10は、選択済み部位である作業対象部位92Kに対するインタロック領域A51が、ロボット3Cの占有領域A52と重複していない場合を例示している。この場合、作業可否判定部316は、ロボット3Aによる作業対象部位92Kへの作業は可であると判定する。これにより、同一のワーク90に対し、ロボット3A,3Cが同時に作業を行うことが可能となる(図11参照)。
 制御実行部317は、作業可否判定部316が作業可と判定した場合、ワーク90の現在位置に基づいてロボット3Aを制御する。例えば制御実行部317は、ワーク90の現在位置に基づいて修正された上記修正済みプログラムに基づいて、ロボット3Aを制御する。より具体的には、ロボット3Aの先端部18を上記修正済みプログラムに従って変位させるように、逆運動学演算により関節31,32,33,34,35,36の角度目標値を算出し、アクチュエータ41,42,43,44,45,46によって、関節31,32,33,34,35,36のそれぞれの角度を角度目標値に追従させる。
 ロボットコントローラ300は、ロボット3Aに設けられた作業対象カメラ51により生成された作業対象画像データに更に基づいてロボット3Aを制御するように構成されていてもよい。例えばロボットコントローラ300は、作業対象位置検出部318を更に有してもよい。
 作業対象位置検出部318は、作業対象カメラ51が生成した作業対象画像データを取得する。制御実行部317は、作業対象位置検出部318が取得した作業対象画像データに更に基づいて、ロボット3Aを制御する。例えば制御実行部317は、作業対象画像データに基づいて、選択済み部位に対する先端部18の位置・姿勢のずれを特定し、特定したずれを縮小するように先端部18の目標位置・目標姿勢を補正し、補正後の目標位置・目標姿勢に基づいてロボット3Aを制御する。
 以上においては、作業可否判定部316が作業可と判定した後に、選択済み部位に対する作業をロボット3Aに開始させる構成を例示したが、これに限られない。制御実行部317は、選択済み部位に対する作業をロボット3Aに途中まで遂行させた後にロボット3Aを一時停止させ、作業可否判定部316が作業可と判定するのを待機してもよい。
 制御実行部317は、予め生成された動作プログラムに基づくことなく、ワーク90の現在位置に応じた動作プログラムをリアルタイムで生成し、生成した動作プログラムに基づいてロボット3Aを制御してもよい。この場合、プログラム修正部313及び修正済みプログラム保持部314は省略可能となる。
 ロボットコントローラ300Aと同様に、ロボットコントローラ300Bは、ワーク90の現在位置に基づいて、ワーク90と共に移動するインタロック領域を特定することと、ロボット3Bによるワーク90に対する作業可否を、インタロック領域がロボット3B以外の他の物体の占有領域と重複しているか否かに基づいて判定することと、作業可と判定した場合、ワーク90の現在位置に基づいてワーク90に対し作業するようにロボット3Bを制御することと、を実行するように構成されている。
 ロボットコントローラ300Cは、ワーク90の現在位置に基づいて、ワーク90と共に移動するインタロック領域を特定することと、ロボット3Cによるワーク90に対する作業可否を、インタロック領域がロボット3C以外の他の物体の占有領域と重複しているか否かに基づいて判定することと、作業可と判定した場合、ワーク90の現在位置に基づいてワーク90に対し作業するようにロボット3Cを制御することと、を実行するように構成されている。
 ロボットコントローラ300B,300Cの具体的な構成はロボットコントローラ300Aと共通である。よって、ロボットコントローラ300B,300Cについての詳細な説明は省略する。
 図12は、環境特定装置200及びロボットコントローラ300のハードウェア構成を例示するブロック図である。図12に示すように、環境特定装置200は、回路290を有する。回路290は、一つ又は複数のプロセッサ291と、メモリ292と、ストレージ293と、通信ポート294と、入出力ポート295とを含む。ストレージ293は、例えば不揮発性の半導体メモリ等、コンピュータによって読み取り可能な記憶媒体を有する。ストレージ293は、搬送装置2におけるワーク90の現在位置と、ワーク90の近傍における1以上の物体の占有領域とを特定することを環境特定装置200に実行させるためのプログラムを記憶している。例えばストレージ293は、上述した各機能ブロックを環境特定装置200に構成させるためのプログラムを記憶している。
 メモリ292は、ストレージ293の記憶媒体からロードしたプログラム及びプロセッサ291による演算結果を一時的に記憶する。プロセッサ291は、メモリ292と協働して上記プログラムを実行することで、環境特定装置200の各機能ブロックを構成する。通信ポート294は、プロセッサ291からの指令に従って、ネットワーク回線NWを介して、ロボットコントローラ300との間で通信を行う。入出力ポート295は、プロセッサ291からの指令に従って、輝度カメラ7及び距離カメラ8との間で情報の入出力を行う。
 ロボットコントローラ300は、回路390を有する。回路390は、一つ又は複数のプロセッサ391と、メモリ392と、ストレージ393と、通信ポート394と、ドライバ回路395とを含む。ストレージ393は、例えば不揮発性の半導体メモリ等、コンピュータによって読み取り可能な記憶媒体を有する。ストレージ393は、ワーク90の現在位置に基づいて、ワーク90と共に移動するインタロック領域を特定することと、ロボット3A,3B,3Cによるワーク90に対する作業可否を、インタロック領域がロボット3A,3B,3C以外の他の物体の占有領域と重複しているか否かに基づいて判定することと、作業可と判定した場合、ワーク90の現在位置に基づいてワーク90に対し作業するようにロボット3A,3B,3Cを制御することと、をロボットコントローラ300に実行させるためのプログラムを記憶している。例えばストレージ393は、上述した各機能ブロックをロボットコントローラ300に構成させるためのプログラムを記憶している。
 メモリ392は、ストレージ393の記憶媒体からロードしたプログラム及びプロセッサ391による演算結果を一時的に記憶する。プロセッサ391は、メモリ392と協働して上記プログラムを実行することで、ロボットコントローラ300の各機能ブロックを構成する。通信ポート394は、プロセッサ391からの指令に従って、ネットワーク回線NWを介して、環境特定装置200との間で通信を行う。ドライバ回路395は、プロセッサ391からの指令に従って、ロボット3A,3B,3Cに駆動電力を出力する。
 なお、回路290,390は、必ずしもプログラムにより各機能を構成するものに限られない。例えば回路290,390は、専用の論理回路又はこれを集積したASIC(Application Specific Integrated Circuit)により少なくとも一部の機能を構成してもよい。
〔制御手順〕
 続いて、制御方法の一例として、制御システム100が実行する制御手順を例示する。この手順は、環境特定装置200が実行する環境特定手順と、ロボットコントローラ300が実行するロボット制御手順とを含む。以下、各手順を詳細に例示する。
(環境特定手順)
 図13に示すように、環境特定装置200は、ステップS01,S02,S03を実行する。ステップS01では、画像データ取得部211が、環境撮像装置6が生成した環境画像データを取得する。ステップS02では、ワーク位置検出部213が、環境画像データに基づいて、ワーク90の現在位置を特定する。ステップS03では、占有領域検出部214が、環境画像データに基づいて、1以上の物体の占有領域を特定する。環境特定装置200は、以上の手順を繰り返す。
(ロボット制御手順)
 ロボット制御手順は、ロボットコントローラ300A,300B,300Cで共通である。そこで、以下においては、ロボットコントローラ300Aが実行するロボット制御手順のみを説明し、ロボットコントローラ300B,300Cが実行するロボット制御手順の説明は省略する。
 この手順は、ワーク90の現在位置に基づいて、ワーク90と共に移動するインタロック領域を特定することと、ロボット3Aによるワーク90に対する作業可否を、インタロック領域がロボット3A以外の他の物体の占有領域と重複しているか否かに基づいて判定することと、作業可と判定した場合、ワーク90の現在位置に基づいてワーク90に対し作業するようにロボット3Aを制御することと、を含む。
 図14に示すように、ロボットコントローラ300は、まずステップS11,S12,S13,S14,S15を実行する。ステップS11では、作業対象選択部312が、進捗記憶部216が記憶する進捗情報と、ワーク位置検出部213が特定したワーク90の現在位置と、ロボット3Aの現在位置とに基づいて、2以上の管轄部位のうちいずれかを選択する。ステップS12では、作業対象選択部312が、選択済み部位を「予約あり」に変更することを進捗管理部217に要求する。進捗管理部217は、選択済み部位を「予約あり」にするように、進捗記憶部216の進捗情報を更新する。ステップS13では、プログラム修正部313が、ワーク90の現在位置に基づいて、選択済み部位に対する動作プログラムを修正する。
 ステップS14では、インタロック領域特定部315が、ワーク90の現在位置に基づいて、ワーク90と共に移動するインタロック領域を特定する。ステップS15では、インタロック領域が、ロボット3A以外の他の物体(例えばロボット3B,3C又は作業者9)の占有領域と重複しているか否かに基づいて、ロボット3Aによるワーク90に対する作業可否を作業可否判定部316が判定する。
 ステップS15において、ロボット3Aによるワーク90に対する作業が可でないと判定した場合、ロボットコントローラ300は処理をステップS13に戻す。以後、ロボット3Aによるワーク90に対する作業が可であると判定されるまで、ワーク90の現在位置に基づく動作プログラムの修正と、ワーク90の現在位置に基づくインタロック領域の特定と、作業可否の判定とが繰り返される。
 ステップS15において、ロボット3Aによるワーク90に対する作業が可であると判定した場合、ロボットコントローラ300は、所定の制御周期で、修正済みプログラムに基づくロボット3Aの制御を繰り返し実行する。
 まず、ロボットコントローラ300は、ステップS21,S22を実行する。ステップS21では、制御実行部317が、修正済みプログラムに基づいて、現在の制御周期における先端部18の目標位置・目標姿勢を算出する。ステップS22では、制御実行部317が、先端部18が所定の微調開始位置に到達しているか否かを確認する。一例として、微調開始位置は、選択済み部位の少なくとも一部が作業対象画像データに含まれる位置とされている。
 ステップS22において、先端部18が微調開始位置に到達していないと判定した場合、ロボットコントローラ300は、ステップS25,S26を実行する。ステップS25では、制御実行部317が、算出済みの目標位置・目標姿勢に先端部18を追従させるように、アクチュエータ41,42,43,44,45,46により関節31,32,33,34,35,36を駆動する。ステップS26では、制御実行部317が、動作プログラムの全てのモーション指令に従った制御が完了したか否かを確認する。
 ステップS26において、動作プログラムの一部のモーション指令に従った制御が完了していないと判定した場合、ロボットコントローラ300は処理をステップS21に戻す。以後、全てのモーション指令に従った制御が完了するまでは、修正済みプログラムに基づくロボット3Aの制御が上記制御周期で繰り返される。
 この繰り返しにおいて、ステップS22において先端部18が微調開始位置に到達していると判定した場合、ロボットコントローラ300は、ステップS25の前にステップS23,S24を実行する。ステップS23では、作業対象位置検出部318が、作業対象カメラ51が生成した作業対象画像データを取得する。ステップS24では、制御実行部317が、作業対象画像データに基づいて、選択済み部位に対する先端部18の位置・姿勢のずれを特定し、特定したずれを縮小するように先端部18の目標位置・目標姿勢を補正する。以後、全てのモーション指令に従った制御が完了するまでは、修正済みプログラムと、作業対象画像データとに基づくロボット3Aの制御が上記制御周期で繰り返される。
 ステップS26において、動作プログラムの全てのモーション指令に従った制御が完了したと判定した場合、ロボットコントローラ300はステップS27を実行する。ステップS27では、作業対象選択部312が、選択済み部位を「済み」に変更することを進捗管理部217に要求する。進捗管理部217は、選択済み部位を「済み」にするように、作業可否判定部316の進捗情報を更新する。以上でロボット制御手順が完了する。
〔本実施形態の効果〕
 以上に説明したように、ロボットシステム1は、ワーク90を搬送する搬送装置2と、ワーク90の現在位置と、1以上の物体の占有領域とを特定する環境特定装置200と、ワーク90に対し作業するようにロボット3A,3B,3Cを制御するロボットコントローラ300と、を備え、ロボットコントローラ300は、ワーク90の現在位置に基づいて、ワーク90と共に移動するインタロック領域を特定するインタロック領域特定部315と、インタロック領域が、ロボット3A,3B,3C以外の他の物体の占有領域と重複しているか否かに基づいて、ロボット3A,3B,3Cによるワーク90に対する作業可否を判定する作業可否判定部316と、作業可否判定部316が作業可と判定した場合、ワーク90の現在位置に基づいてロボット3A,3B,3Cを制御する制御実行部317と、を有する。
 本ロボットシステム1は、ワーク90と共に移動するインタロック領域が、他の物体の占有領域と干渉しているか否かに基づいて、ロボット3A,3B,3Cによるワーク90に対する作業可否を判定する。このため、搬送装置2に搬送されて作業対象のワーク90が移動する状況においても、作業対象のワーク90に対しロボットが作業を行う際に、ロボット3A,3B,3Cが他の物体と衝突し得るかを適切に評価し、ロボット3A,3B,3Cによる作業可否を適切に判定することができる。従って、本ロボットシステム1は、環境変化に対する柔軟な適応に有効である。
 ロボットコントローラ300は、ワーク90の現在位置に基づいて、予め定められた動作プログラムを修正するプログラム修正部313を更に備え、制御実行部317は、作業可否判定部316が作業可と判定した場合、修正後の動作プログラムに基づいて、ロボット3A,3B,3Cを制御してもよい。作業可と判定される際のワーク90の位置は、搬送中のいずれのタイミングで作業可となるかによって変わる。このため、作業可と判定される際のワーク90の位置にロボット3A,3B,3Cの動作を適応させる必要がある。これに対し、本ロボットシステム1は、予め定められた動作プログラムを、ワーク90の現在位置に基づいて修正する。このため、作業可と判定される際のワーク90の位置にロボット3A,3B,3Cの動作を容易に適応させることができる。
 環境特定装置200は、ワーク90と共に移動する確認対象領域93内における1以上の物体の占有領域を特定してもよい。この場合、1以上の占有領域のうち、インタロック領域との重複確認の対象となる領域を縮小することによって、ロボットコントローラ300における処理負担を軽減することができる。
 ロボットシステム1は、ロボット3A,3B,3Cの動作範囲と重複する動作範囲にて、ワーク90に対し作業するようにロボット3A,3B,3C(第2ロボット)を制御するロボットコントローラ300(第2コントローラ)を更に備え、第2コントローラは、ワーク90の現在位置に基づいて、ワーク90と共に移動する第2インタロック領域を特定するインタロック領域特定部315と、第2インタロック領域が第2ロボット以外の他の物体の占有領域と重複しているか否かに基づいて、第2ロボットによるワーク90に対する作業可否を判定する作業可否判定部(第2作業可否判定部)と、第2作業可否判定部が作業可と判定した場合、ワーク90の現在位置に基づいて第2ロボットを制御する制御実行部317と、を有していてもよい。この場合、環境変化に対する柔軟な適応性を、動作範囲が互いに重複するロボット3A,3B,3C同士の動作タイミングの調整にも有効活用することができる。
 ロボット3A,3B,3C以外の他の物体の占有領域は、作業者9が占める人占有領域を含んでいてもよい。この場合、人とロボット3A,3B,3Cとが協働する作業環境においても、ロボット3A,3B,3Cによる作業可否を適切に判断することができる。
 ロボットシステム1は、搬送装置2が搬送するワークを含む対象エリアを撮影して環境画像データを生成する環境撮像装置6を更に備え、環境特定装置200は、環境画像データに基づいて、ワーク90の現在位置と、1以上の物体の占有領域とを特定してもよい。この場合、環境情報の信頼性を向上させることで、環境情報に基づくロボット3A,3B,3Cの動作の信頼性も向上させることができる。
 環境撮像装置6は、対象エリアに対する距離画像データと、輝度画像データとを含む環境画像データを生成し、環境特定装置200は、距離画像データと、輝度画像データとに基づいて、1以上の物体の占有領域を特定してもよい。この場合、距離画像データと輝度画像データとの併用により、環境情報の信頼性を更に向上させることができる。
 環境特定装置200は、環境画像データに基づいて、ワーク90に付されたマーカ91を認識し、対象エリア内におけるマーカ91の位置に基づいてワーク90の現在位置を特定してもよい。この場合、環境画像データをワーク90の位置の検出にも活用することができる。
 インタロック領域特定部315は、修正後の動作プログラムに基づいてワーク90に対し作業を行う場合のロボット3A,3B,3Cの占有予定領域を特定し、占有予定領域に基づいてインタロック領域を特定してもよい。この場合、より適切な第1インタロック領域を特定することで、実際には作業可であるにもかかわらず作業不可と判定してしまうことを減らし、ロボット3A,3B,3Cの作業効率を向上させることができる。
 インタロック領域特定部315は、ワーク90の現在位置に基づいて、所定のマージンをもってロボット3A,3B,3Cの作業対象位置を取り囲むようにインタロック領域を特定してもよい。この場合、インタロック領域の特定処理を簡素化し、ロボットコントローラ300における処理負担を軽減することができる。
 確認対象領域は、複数の区画を含み、環境特定装置200は、1以上の物体の占有領域を複数の区画単位で特定し、インタロック領域特定部315は、インタロック領域を複数の区画単位で特定してもよい。この場合、1以上のロボット重複領域の特定処理と、インタロック領域の特定処理とを簡素化し、環境特定装置200及びロボットコントローラ300における処理負担を更に軽減することができる。
 環境特定装置200は、距離画像データと、輝度画像データとを含む入力データに基づいて、1以上の物体の占有領域を出力するように、機械学習により生成された画像認識モデルと、新たな距離画像データ及び輝度画像データとに基づいて1以上の物体の新たな占有領域を特定してもよい。この場合、機械学習の活用により、距離画像データと輝度画像データとをより適切に併用して1以上のロボット占有領域を特定することができる。
 ロボット3A,3B,3Cは、ロボット本体4と、ロボット本体4を保持して搬送する搬送台車5と、ロボット本体4による作業領域を撮影して作業対象画像データを生成する作業対象カメラ51(作業対象撮像装置)と、を有し、制御実行部317は、作業対象画像データに更に基づいてロボット3A,3B,3Cを制御してもよい。この場合、搬送台車5の位置ずれが生じ得る状況においても、ワーク90に対するロボット3A,3B,3Cの作業精度を維持することができる。
 以上、実施形態について説明したが、本開示は必ずしも上述した実施形態に限定されるものではなく、その要旨を逸脱しない範囲で様々な変更が可能である。
 1…ロボットシステム、2…搬送装置、3A,3B,3C…ロボット、4…ロボット本体、5…搬送台車(台車)、6…環境撮像装置、9…作業者、51…作業対象カメラ(作業対象撮像装置)、90…ワーク、91…マーカ、93…確認対象領域、200…環境特定装置、300…ロボットコントローラ(コントローラ)、313…プログラム修正部、315…インタロック領域特定部、316…作業可否判定部、317…制御実行部。

Claims (15)

  1.  ワークを搬送する搬送装置と、
     前記ワークの現在位置と、1以上の物体の占有領域とを特定する環境特定装置と、
     前記ワークに対し作業するようにロボットを制御するコントローラと、を備え、
     前記コントローラは、
      前記ワークの現在位置に基づいて、前記ワークと共に移動するインタロック領域を特定するインタロック領域特定部と、
      前記インタロック領域が、前記ロボット以外の他の物体の占有領域と重複しているか否かに基づいて、前記ロボットによる前記ワークに対する作業可否を判定する作業可否判定部と、
      前記作業可否判定部が作業可と判定した場合、前記ワークの現在位置に基づいて前記ロボットを制御する制御実行部と、を有するロボットシステム。
  2.  前記コントローラは、前記ワークの現在位置に基づいて、予め定められた動作プログラムを修正するプログラム修正部を更に備え、
     前記制御実行部は、前記作業可否判定部が作業可と判定した場合、修正後の動作プログラムに基づいて、前記ロボットを制御する、請求項1記載のロボットシステム。
  3.  前記環境特定装置は、前記ワークと共に移動する確認対象領域内における前記1以上の物体の占有領域を特定する、請求項1又は2記載のロボットシステム。
  4.  前記ロボットの動作範囲と重複する動作範囲にて、前記ワークに対し作業するように第2ロボットを制御する第2コントローラを更に備え、
     前記第2コントローラは、
      前記ワークの現在位置に基づいて、前記ワークと共に移動する第2インタロック領域を特定するインタロック領域特定部と、
      前記第2インタロック領域が前記第2ロボット以外の他の物体の占有領域と重複しているか否かに基づいて、前記第2ロボットによる前記ワークに対する作業可否を判定する第2作業可否判定部と、
      前記第2作業可否判定部が作業可と判定した場合、前記ワークの現在位置に基づいて前記第2ロボットを制御する制御実行部と、を有する、請求項1~3のいずれか一項記載のロボットシステム。
  5.  前記ロボット以外の他の物体の占有領域は、作業者が占める人占有領域を含む、請求項1~4のいずれか一項記載のロボットシステム。
  6.  前記搬送装置が搬送する前記ワークを含む対象エリアを撮影して環境画像データを生成する環境撮像装置を更に備え、
     前記環境特定装置は、前記環境画像データに基づいて、前記ワークの現在位置と、前記1以上の物体の占有領域とを特定する、請求項1~5のいずれか一項記載のロボットシステム。
  7.  前記環境撮像装置は、前記対象エリアに対する距離画像データと、輝度画像データとを含む前記環境画像データを生成し、
     前記環境特定装置は、前記距離画像データと、前記輝度画像データとに基づいて、前記1以上の物体の占有領域を特定する、請求項6記載のロボットシステム。
  8.  前記環境特定装置は、前記環境画像データに基づいて、前記ワークに付されたマーカを認識し、前記対象エリア内における前記マーカの位置に基づいて前記ワークの現在位置を特定する、請求項6又は7記載のロボットシステム。
  9.  前記インタロック領域特定部は、前記修正後の動作プログラムに基づいて前記ワークに対し作業を行う場合の前記ロボットの占有予定領域を特定し、前記占有予定領域に基づいて前記インタロック領域を特定する、請求項2記載のロボットシステム。
  10.  前記インタロック領域特定部は、前記ワークの現在位置に基づいて、所定のマージンをもって前記ロボットの作業対象位置を取り囲むように前記インタロック領域を特定する、請求項1~8のいずれか一項記載のロボットシステム。
  11.  前記確認対象領域は、複数の区画を含み、
     前記環境特定装置は、前記1以上の物体の占有領域を前記複数の区画単位で特定し、
     前記インタロック領域特定部は、前記インタロック領域を前記複数の区画単位で特定する、請求項3記載のロボットシステム。
  12.  前記環境特定装置は、前記距離画像データと、前記輝度画像データとを含む入力データに基づいて、前記1以上の物体の占有領域を出力するように、機械学習により生成された画像認識モデルと、新たな距離画像データ及び輝度画像データとに基づいて前記1以上の物体の新たな占有領域を特定する、請求項7記載のロボットシステム。
  13.  前記ロボットは、ロボット本体と、ロボット本体を保持して搬送する台車と、前記ロボット本体による作業領域を撮影して作業対象画像データを生成する作業対象撮像装置と、を有し、
     前記制御実行部は、前記作業対象画像データに更に基づいて前記ロボットを制御する、請求項1~12のいずれか一項記載のロボットシステム。
  14.  ワークの現在位置に基づいて、前記ワークと共に移動するインタロック領域を特定するインタロック領域特定部と、
     ロボットによる前記ワークに対する作業可否を、前記インタロック領域が前記ロボット以外の他の物体の占有領域と重複しているか否かに基づいて判定する作業可否判定部と、
     前記作業可否判定部が作業可と判定した場合、前記ワークの現在位置に基づいて前記ワークに対し作業するように前記ロボットを制御する制御実行部と、を備えるコントローラ。
  15.  ワークの現在位置に基づいて、前記ワークと共に移動するインタロック領域を特定することと、
     ロボットによる前記ワークに対する作業可否を、前記インタロック領域がロボット以外の他の物体の占有領域と重複しているか否かに基づいて判定することと、
     作業可と判定した場合、前記ワークの現在位置に基づいて前記ワークに対し作業するように前記ロボットを制御することと、を含む制御方法。
PCT/JP2020/047245 2019-12-17 2020-12-17 ロボットシステム、コントローラ及び制御方法 WO2021125288A1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2021565653A JP7302672B2 (ja) 2019-12-17 2020-12-17 ロボットシステム、コントローラ及び制御方法
US17/840,616 US20220339791A1 (en) 2019-12-17 2022-06-15 Robot operation for a moving workpiece

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201962948820P 2019-12-17 2019-12-17
US62/948,820 2019-12-17

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US17/840,616 Continuation US20220339791A1 (en) 2019-12-17 2022-06-15 Robot operation for a moving workpiece

Publications (1)

Publication Number Publication Date
WO2021125288A1 true WO2021125288A1 (ja) 2021-06-24

Family

ID=76478813

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2020/047245 WO2021125288A1 (ja) 2019-12-17 2020-12-17 ロボットシステム、コントローラ及び制御方法

Country Status (3)

Country Link
US (1) US20220339791A1 (ja)
JP (1) JP7302672B2 (ja)
WO (1) WO2021125288A1 (ja)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010188515A (ja) * 2009-01-26 2010-09-02 Fanuc Ltd 人間とロボットとの協調動作領域を有する生産システム
JP2013139075A (ja) * 2011-12-30 2013-07-18 Cama 1 Spa 梱包ラインにおいて共有の作業領域を有するピッキング装置の衝突防止の制御および管理のための方法
JP2017013180A (ja) * 2015-06-30 2017-01-19 ライフロボティクス株式会社 ロボットシステム

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010188515A (ja) * 2009-01-26 2010-09-02 Fanuc Ltd 人間とロボットとの協調動作領域を有する生産システム
JP2013139075A (ja) * 2011-12-30 2013-07-18 Cama 1 Spa 梱包ラインにおいて共有の作業領域を有するピッキング装置の衝突防止の制御および管理のための方法
JP2017013180A (ja) * 2015-06-30 2017-01-19 ライフロボティクス株式会社 ロボットシステム

Also Published As

Publication number Publication date
JP7302672B2 (ja) 2023-07-04
US20220339791A1 (en) 2022-10-27
JPWO2021125288A1 (ja) 2021-06-24

Similar Documents

Publication Publication Date Title
TWI673148B (zh) 遠端操作機器人系統及其運轉方法
US11045954B2 (en) Robot system and method of controlling the same
US9110466B2 (en) Programming method for a robot, programming apparatus for a robot, and robot control system
US20100185327A1 (en) Movable robot
CN106853639A (zh) 一种手机电池自动化装配系统及其控制方法
KR101745064B1 (ko) 산업용 로봇을 제어하는 제어 시스템, 제어 장치, 용접물 제조 방법 및 기록 매체에 기록된 프로그램
CN101896321A (zh) 对象的位置获取
US20220063099A1 (en) Framework of robotic online motion planning
KR20190044496A (ko) 자동화 장치
CN106997201B (zh) 多机器人协作的路径规划方法
JP5686279B2 (ja) ワーク姿勢検出装置、ワーク処理実行装置及びワーク姿勢検出方法
WO2022024455A1 (ja) 搬送システム、搬送システムの制御方法、および搬送システムの制御プログラム
TWI645946B (zh) Robot operation method, computer program, and robot system
JP6754883B1 (ja) 制御システム、ローカルコントローラ及び制御方法
WO2021125288A1 (ja) ロボットシステム、コントローラ及び制御方法
CN104950799B (zh) 焊接机器人动态闭环控制系统及其实时动态修正算法
US11964391B2 (en) Robot system
JP7093881B1 (ja) システム、及び自動搬送車
CN111230267B (zh) 一种双工位协作混焊焊接生产线
JP6832408B1 (ja) 生産システム
CN112276392A (zh) 一种用于焊接的智能机器人通讯控制方法及其系统
JP2021086609A (ja) 制御システム、ローカルコントローラ及び制御方法
CN110732814A (zh) 一种基于视觉技术的智能焊接机器人
Baymukhamedov et al. ADAPTIVE MANAGEMENT OF MANIPULATORS OF INDUSTRIAL ROBOTS
CN112059490B (zh) 一种机器人现场焊接装置和焊接方法

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: 20901108

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2021565653

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 20901108

Country of ref document: EP

Kind code of ref document: A1