WO2022168634A1 - ロボット制御装置、ロボット制御方法、及びロボット制御プログラム - Google Patents

ロボット制御装置、ロボット制御方法、及びロボット制御プログラム Download PDF

Info

Publication number
WO2022168634A1
WO2022168634A1 PCT/JP2022/002177 JP2022002177W WO2022168634A1 WO 2022168634 A1 WO2022168634 A1 WO 2022168634A1 JP 2022002177 W JP2022002177 W JP 2022002177W WO 2022168634 A1 WO2022168634 A1 WO 2022168634A1
Authority
WO
WIPO (PCT)
Prior art keywords
state
particles
orientation
robot
manipulated
Prior art date
Application number
PCT/JP2022/002177
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 EP22749509.0A priority Critical patent/EP4289564A1/en
Priority to US18/274,194 priority patent/US20240100698A1/en
Priority to CN202280011668.9A priority patent/CN116829313A/zh
Publication of WO2022168634A1 publication Critical patent/WO2022168634A1/ja

Links

Images

Classifications

    • 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/1656Programme controls characterised by programming, planning systems for manipulators
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1679Programme controls characterised by the tasks executed
    • B25J9/1687Assembly, peg and hole, palletising, straight line, weaving pattern movement
    • 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
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • G06Q10/063Operations research, analysis or management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/04Manufacturing
    • 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/40Robotics, robotics mapping to robotics vision
    • G05B2219/40034Disassembly, for recycling
    • 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/40Robotics, robotics mapping to robotics vision
    • G05B2219/40111For assembly

Definitions

  • the present disclosure relates to a robot control device, a robot control method, and a robot control program.
  • the relative position and orientation of the end effector and the gripped object are known and do not change during manipulation, and the target position and orientation of the object in the robot coordinate system are The condition was that the value was known.
  • the robot moves the target position and orientation of the object by performing a predetermined action without paying attention to the position and orientation of the grasped object.
  • the relative position and orientation of the end effector and the gripped object are uncertain and can change during operation.
  • the values of the target position and orientation of the object in the robot coordinate system are uncertain.
  • these uncertainties increase when the position and orientation of the object to be gripped or the object to be assembled are not determined with high precision by jigs. Therefore, in the conventional technology, even if the robot itself moves according to the predetermined motion, the position and orientation of the gripped object does not reach the target position and orientation, and therefore the operation of gripping the object and attaching it to another object fails. There was a problem that there was a case to do.
  • the present disclosure has been made in view of the above circumstances, and aims to provide a robot control device, a robot control method, and a robot control program for controlling a robot so as to operate an operation object with high accuracy. .
  • a robot control device changes from a state in which an operation object, which is an operation target, is separated from an object of interest located in an environment to a state in which the operation object is in contact with the object of interest in a specific manner.
  • a robot control device for controlling a robot that manipulates the manipulation object so as to transition to the completion state of is an intermediate target state that is a target state in the course of movement of the manipulation object to the completion state, or the a target state setting unit that sets a completed state as a target state of the current movement; an observation unit that acquires sensor observation results regarding the position and orientation of the manipulated object and presence or absence of contact between the manipulated object and the object of interest; setting a set of particles representing uncertainties of a position and orientation of an object to be manipulated, wherein each particle included in the set of particles represents one of possible positions and orientations of the object to be manipulated; and a particle set setting unit that increases the weight of a particle that represents a position and orientation closer to the position and orientation of the operation object indicated by the observation result, and that the observation result indicates that the contact has occurred.
  • a particle set adjustment unit that increases the weight of the corresponding particles as the state is closer to the state, and calculates an estimated state that is the position and orientation of the manipulated object estimated based on the set of particles in which the weight of each of the particles is adjusted.
  • a state estimating unit that plans the action for moving the manipulated object from the estimated state to the target state of the current movement; and an action unit that commands the robot to execute the planned action.
  • the estimated state is the and a processing control unit that repeats until the complete state matches within a predetermined error.
  • a robot control method moves from a state in which an operation object to be operated is separated from an object of interest located in an environment to a state in which the operation object is in contact with the object of interest in a specific manner.
  • a robot control method for controlling a robot that manipulates the manipulation object so as to transition to the completion state of is an intermediate target state that is a target state in the course of movement of the manipulation object to the completion state, or the A completed state is set as a target state of the current movement, sensor observation results regarding the position and orientation of the manipulated object and presence/absence of contact between the manipulated object and the object of interest are obtained, and the position and orientation of the manipulated object are uncertain.
  • each particle included in the set of particles represents one of the possible orientations of the manipulation object; Particles whose position and orientation are closer to the position and orientation of the manipulated object indicated by the result are weighted larger, and when the observation result indicates that the contact has occurred, the object of interest and the manipulated object In the virtual space where the shape and relative positional relationship are expressed, the weight of the corresponding particle is increased as the state of contact between the object of interest and the operation object arranged in the position and orientation represented by each of the particles is closer. calculating an estimated state, which is a position and orientation of the manipulated object estimated based on the set of particles in which the weights of the particles are adjusted, and moving the manipulated object from the estimated state to the target state of the current movement.
  • a computer is caused to execute a process of repeating the calculation of the state, the planning of the action, and the execution of the action until the estimated state matches the completed state within a predetermined error.
  • a robot control program changes from a state in which an operation object to be operated is separated from an object of interest located in an environment to a state in which the operation object is in contact with the object of interest in a specific manner.
  • a robot control program for controlling a robot that manipulates the manipulation object so as to transition to the completion state of is an intermediate target state that is a target state in the middle of the movement of the manipulation object to the completion state.
  • the completed state is set as a target state of the current movement, observation results of the position and orientation of the manipulated object and the presence/absence of contact between the manipulated object and the object of interest are acquired by a sensor, and the position and orientation of the manipulated object are acquired.
  • an estimated state which is the position and orientation of the manipulated object estimated based on the set of particles in which the weight of each of the particles is adjusted, and moving the manipulated object from the estimated state to the target state of the current movement; planning an action to move to the robot, commanding the robot to execute the planned action, setting the target state, obtaining the observation result, setting the particle set, adjusting the particle set;
  • the robot can be controlled so as to operate the manipulation object with high precision.
  • FIG. 1 is a diagram showing a schematic configuration of a robot as an example of an object to be controlled;
  • FIG. It is a block diagram which shows the hardware constitutions of a motion planning apparatus and a control apparatus.
  • 3 is a block diagram showing an example of functional configurations of a motion planning device and a control device;
  • FIG. 4 is a diagram showing an example of an assembly procedure using parts A to D;
  • FIG. 5 is a diagram showing an example of relative positions of grip data;
  • 4 is a block diagram showing an example of the functional configuration of an execution unit of the control device;
  • FIG. FIG. 4 is a diagram for explaining a method of generating a guide;
  • FIG. It is a sequence diagram showing the flow of processing of the control system of the present embodiment. 4 is a flowchart showing the flow of control processing of the control device;
  • FIG. 1 is a diagram showing the configuration of a control system for controlling a robot according to this embodiment.
  • the control system 1 has a robot 10 , a state observation sensor 14 , a contact observation sensor 16 , a motion planning device 20 , a state transition control section 25 and a control device 30 .
  • the state transition control unit 25 may be part of the operation planning device 20, may be part of the control device 30, or may be a part of the operation planning device 20 and the control device 30 as in the present embodiment. may be configured as an independent device from any of
  • FIG. 2 and 3 are diagrams showing a schematic configuration of the robot 10.
  • FIG. The robot 10 in this embodiment is a 6-axis vertical articulated robot, and an end effector 12 is provided at the tip 11 a of an arm 11 via a flexible portion 13 .
  • the robot 10 grips the parts by the end effector 12 and performs the work of assembling the assembly.
  • the end effector 12 is configured to have a pair of hands of the holding portion 12a, but the end effector 12 may be used as a suction pad to suck a component.
  • “holding a component” includes sucking the component. In other words, holding a component includes gripping and sucking the component.
  • the robot 10 has an arm 11 with 6 degrees of freedom with joints J1 to J6.
  • the joints J1 to J6 connect the links so as to be rotatable in the directions of arrows C1 to C6 by motors (not shown).
  • a gripper is connected as an end effector 12 to the tip of the arm 11 .
  • a vertical articulated robot is taken as an example, but a horizontal articulated robot (scalar robot) may be used.
  • a 6-axis robot has been exemplified, a multi-joint robot with other degrees of freedom such as a 5-axis or 7-axis robot, or a parallel link robot may be used.
  • the state observation sensor 14 observes the state of the robot 10 and outputs observed data as state observation data.
  • a joint encoder of the robot 10 for example, a visual sensor (camera), a motion capture, a force-related sensor, or the like is used.
  • the position and orientation of the tip 11a of the arm 11 can be identified from the angles of the joints, and the orientation of the part (work target) can be estimated from the visual sensor and/or the force-related sensor.
  • a motion capture marker is attached to the end effector 12
  • the position and orientation of the end effector 12 can be identified as the state of the robot 10, and the orientation of the part (workpiece) can be determined from the position and orientation of the end effector 12. can be estimated.
  • Force-related sensor is a general term for force sensors and torque sensors, and also includes tactile sensors when sensors are provided in areas that come into contact with parts.
  • a force-related sensor may be provided on the surface of the part where the end effector 12 grips the part or on the joint inside the end effector 12 so as to detect the force that the end effector of the robot 10 receives from the part.
  • a force-related sensor is, for example, a sensor that detects a single-element or multi-element, single-axis, three-axis, or six-axis force as the state of the robot 10 . By using the force-related sensor, it is possible to accurately grasp how the end effector 12 grips the part, that is, the posture of the part, and to perform appropriate control.
  • the visual sensor can also detect the position and orientation of the end effector 12 itself and the part gripped by the end effector 12 as the state of the robot 10 .
  • various sensors that are the state observation sensor 14 can detect the state of the end effector 12 and the gripped part. Moreover, detection results of various sensors can be acquired as state observation data.
  • the contact observation sensor 16 is a pressure sensor, force sensor, or touch sensor.
  • a tactile sensor is a sensor that detects pressure distribution, or a sensor that can detect forces in orthogonal three-axis directions and moments around three orthogonal axes.
  • a pressure sensor or a tactile sensor is provided, for example, on a portion of the finger of the end effector 12 that comes into contact with the object to be grasped.
  • a force sensor is provided, for example, on the wrist portion between the arm 11 and the end effector 12 of the robot 10 .
  • FIG. 3 is a block diagram showing the hardware configuration of the motion planning device 20 and the control device 30 according to this embodiment.
  • the motion planning device 20 and the control device 30 can be implemented with similar hardware configurations.
  • the operation planning device 20 includes a CPU (Central Processing Unit) 20A, a ROM (Read Only Memory) 20B, a RAM (Random Access Memory) 20C, a storage 20D, an input section 20E, a display section 20F, and a communication interface (I/F) 20G. have Each component is communicably connected to each other via a bus 20H.
  • the control device 30 has a CPU 30A, a ROM 30B, a RAM 30C, a storage 30D, an input section 30E, a display section 30F, and a communication I/F 30G. Each component is communicably connected to each other via a bus 30H.
  • the case of the motion planning device 20 will be described below.
  • programs are stored in the ROM 20B or the storage 20D.
  • the CPU 20A is a central processing unit that executes various programs and controls each configuration. That is, the CPU 20A reads a program from the ROM 20B or the storage 20D and executes the program using the RAM 20C as a work area. The CPU 20A performs control of each configuration and various arithmetic processing according to programs recorded in the ROM 20B or the storage 20D.
  • the ROM 20B stores various programs and various data.
  • the RAM 20C temporarily stores programs or data as a work area.
  • the storage 20D is configured by a HDD (Hard Disk Drive), SSD (Solid State Drive), or flash memory, and stores various programs including an operating system and various data.
  • the input unit 20E includes a keyboard and a pointing device such as a mouse, and is used for various inputs.
  • the display unit 20F is, for example, a liquid crystal display, and displays various information.
  • the display unit 20F may employ a touch panel system and function as the input unit 20E.
  • the communication interface (I/F) 20G is an interface for communicating with other devices, and uses standards such as Ethernet (registered trademark), FDDI, or Wi-Fi (registered trademark), for example.
  • FIG. 4 is a block diagram showing an example of the functional configuration of the motion planning device 20 and the control device 30. As shown in FIG. Note that the motion planning device 20 and the control device 30 may be integrated.
  • the motion planning device 20 has a transition creating unit 110 and a grasped data specifying unit 112 as functional configurations.
  • Each functional configuration of the operation planning device 20 is realized by the CPU 20A reading a program stored in the ROM 20B or the storage 20D, developing it in the RAM 20C, and executing it.
  • the control device 30 has an acquisition unit 130 and an execution unit 132 as functional configurations.
  • Each functional configuration of the control device 30 is realized by the CPU 30A reading a program stored in the ROM 30B or the storage 30D, developing it in the RAM 30C, and executing it.
  • the assembly process by the work of the robot 10 is represented by a state transition diagram.
  • the entire state transition diagram is decomposed into individual parts or assemblies, and the data representing the transition of the elements is represented as unit state transition data.
  • the operation planning device 20 creates each piece of unit state transition data as an operation plan, and accepts registration information necessary for creating unit state transition data by input from the user.
  • the registration information includes various types of information such as part information (part ID, type, etc.), CAD information for each type of end effector 12, assembly procedure (including disassembly procedure), and part gripping position (including orientation).
  • the assembly procedure includes relative trajectories of parts recorded during assembly (or disassembly) on the simulation.
  • the transition creation unit 110 creates state transition data including each unit state transition data. Each unit state transition data is created from the assembly procedure in the registration information.
  • the transition creation unit 110 represents a transition from a state in which the first element and the second element exist independently to a state in which the third element, which is an assembly composed of the first element and the second element, is assembled.
  • Create unit state transition data A first element is a part or assembly.
  • the second element is also a part or assembly.
  • FIG. 5 is a diagram showing an example of an assembly procedure using parts A to D.
  • each of (1) to (3) corresponds to the initial state included in the unit state transition data.
  • part A and part B correspond to the first element and second element, respectively, and assemble part A and part B
  • the assembly of (2) corresponds to the third element.
  • the third element is the target state included in the unit state transition data with (1) as the initial state. (2) and later can be similarly applied to the unit state transition data.
  • the gripping data identification unit 112 will be described using the procedure for assembling parts A to D as an example.
  • the gripped data identifying unit 112 identifies gripped data for each piece of unit state transition data based on the gripped position of the part in the registration information.
  • the gripped data specifying unit 112 specifies gripped data when the end effector 12 of the robot 10 grips the first element or the second element, which is the gripped object, for assembly.
  • the gripping data is planned values of the relative position and orientation of the end effector 12 and the gripped object when the end effector 12 grips the gripped object.
  • the relative position and orientation in the grip data will be described below.
  • the planned values of the relative position and orientation are the planned values of the gripping position and gripping orientation when the end effector 12 grips the element.
  • the other element for the element set as the object to be grasped becomes the object to be incorporated.
  • the position and orientation are represented by six degrees of freedom.
  • FIG. 6 is a diagram showing an example of the relative position and orientation of grip data.
  • the relative position/orientation R1 of the end effector 12 with respect to the component A is represented by an arrow when the end effector 12 is a suction pad.
  • FIG. 6A shows the relative position and orientation R1 of the end effector 12 with respect to the component A when the end effector 12 is a suction pad.
  • FIG. 6B shows the relative position and orientation R2 of the end effector 12 with respect to the part B when the end effector 12 is a gripper (hand) having a pair of holding portions.
  • Part C and part D are represented similarly.
  • the left side represents the component coordinate system
  • the right side represents the relative position and orientation (position and orientation) from the end effector 12 .
  • the grasping data is calculated as, for example, CAD data with identification ID of the end effector 12 used at the time of grasping and planned values of the target relative position and orientation of the grasped object.
  • the planned value of the relative position/orientation may be entered by the user who is the administrator, including the part gripping position (the position to be gripped on the part surface) in the registration information, or may be automatically calculated by an existing method such as a gripping plan. can be calculated by
  • the motion planning device 20 outputs the created unit state transition data and the gripping data, which is control data, to the state transition control unit 25 .
  • One state transition represented by unit state transition data is also called a task. Instead of outputting each time a task is updated from the action planning device 20, all the unit state transition data and control data included in the state transition data are output to the state transition control unit 25, and the state transition control unit 25
  • the side may manage which unit state transition data is to be output. Alternatively, the grasped data may be directly output to the control device 30 without going through the state transition control section 25 and managed by the control device 30 side.
  • the state transition control unit 25 outputs unit state transition data corresponding to the task to be processed among the state transition data to the execution unit 132 of the control device 30 .
  • the processing target is specified at the start of the assembly work, and is updated each time a notification of task completion is received from the control device 30 .
  • the state transition control unit 25 may be included in the motion planning device 20, may be included in the control device 30, or may be a device different from any of them. Further, the entire control system including the operation planning device 20, the control device 30 and the state transition control section 25 may be one device.
  • the acquisition unit 130 acquires unit state transition data and grip data to be processed from the state transition control unit 25 .
  • the acquisition unit 130 also acquires state observation data obtained by observing the position of the first element and the position of the second element from the state observation sensor 14 . Note that the position of the first element and the position of the second element include posture.
  • the acquisition unit 130 also acquires contact observation data, which are sensor values obtained from the contact observation sensor 16 .
  • the execution unit 132 uses the unit state transition data output from the state transition control unit 25 to execute tasks.
  • a task is, for example, a task to complete the state in which the third element is assembled in the unit state transition data.
  • the execution unit 132 causes the end effector 12 to grasp a grasped object, which is one of the first element and the second element, based on the observation data and the grasped data, and obtains a target relative position including a guide described later in the final part.
  • the object to be grasped is moved relative to the other element along the trajectory.
  • an object located in the environment is called an object of interest
  • an object manipulated by the robot 10 with the end effector 12 is called a manipulated object.
  • CAD models of both objects are given, both objects are rigid bodies, and there is no error between the CAD model and the actual object shape. It is also assumed that the position and orientation of the object of interest do not change due to some external force. It is assumed that the relative positions and orientations, which are the completion states of the target object and the manipulation object, are given as unit state transition data of the task.
  • the target object is the part to be assembled
  • the manipulated object is the grasped part.
  • the completed state is a relative position/orientation in which the gripped part is assembled to the assembly destination.
  • the object of interest is a landmark in the environment
  • the manipulated object is the grasped part.
  • the completed state is the relative position and orientation from the landmark of the desired destination position.
  • the relative position and orientation of the target object and the manipulated object are recognized by visual observation using the state observation sensor 14.
  • the positions and orientations of the target object and the manipulated object in the camera coordinate system are recognized by CAD matching.
  • the position and orientation of the CAD origin of the manipulation object viewed from the CAD origin of the object of interest is defined as the relative position and orientation.
  • the obtained relative position and orientation also include an error.
  • the deviation between the true value of the relative position and orientation and the observed value is called observation noise of the system.
  • observation noise is also conceptual and cannot be obtained.
  • Observed values of the relative position and orientation of the object of interest and the manipulated object are obtained by processing an image captured by a camera. After gripping, it may be acquired by performing calculations based on the angles of the joints of the robot 10 that are measured by encoders.
  • the contact between the target object and the manipulated object is recognized from the contact observation sensor 16, which is a pressure sensor, a force sensor, or a tactile sensor.
  • the contact observation value of the contact observation sensor 16 is correct and whether or not contact has occurred can be accurately observed.
  • the actual movement amount of the manipulation object is The amount of change in a given relative position and orientation differs from the commanded amount of movement. For example, there may be an error in the amount of movement of the TCP (tool center point) due to an error in the mounting position of the robot 10 or an error in computation of forward kinematics. In actual use of the robot 10, some pre-calibration is performed, so the magnitude of these errors is usually small. do.
  • the grasping force was insufficient during the period from observation to movement of the manipulated object to the guide start point.
  • the position and orientation of the manipulation object with respect to the end effector 12 may change.
  • an external force is applied to the manipulation object such as contacting the object of interest while the manipulation object is moving along a guide, which will be described later, the position and orientation of the manipulation object with respect to the end effector 12 may change.
  • the manipulation object cannot be moved by the commanded amount of movement.
  • the deviation of the actual amount of movement from the commanded amount of movement is called the system noise of the system.
  • the coordinate system of the state s be an object coordinate system, which is a relative coordinate system based on the object of interest.
  • xt be the position and orientation of the TCP in the robot coordinate system at time t
  • Tt be the homogeneous transformation matrix of the position and orientation between xt and st.
  • Expression (1) describes the transformation of the position and orientation.
  • s t , T t , and x t are homogeneous coordinate systems.
  • the homogeneous transformation matrix T t not only transforms the position and orientation of the TCP from the robot coordinate system to the object coordinate system, but also converts the relative position and orientation of the TCP to the relative position and orientation of the manipulated object. It also includes the conversion of That is, while xt is the position and orientation of the TCP, the state st, which is the result of transforming xt by Tt , is the relative position and orientation of the manipulated object, not the TCP.
  • the state s t and the position and orientation x t of the TCP are a matrix of 4 rows and 4 columns. can be treated as The fourth column and fourth row are components for handling infinity. Since rotation matrices inherently have only three-dimensional information, these matrices can be effectively treated as six-dimensional.
  • the homogeneous transformation matrix Tt is also a matrix of 4 rows and 4 columns. The product of two matrices in homogeneous coordinate system notation corresponds to the addition of positions and orientations in vector notation.
  • ⁇ t be the system noise of the system, and let the system noise ⁇ t follow some probability distribution P ⁇ . Note that ⁇ t is also a homogeneous coordinate system.
  • the homogeneous transformation matrix T t of st and x t changes by ⁇ t .
  • the modified homogeneous transformation matrix is is.
  • Equation (2) The state equation of the system is expressed in Equation (2) in terms of matrix operations.
  • ⁇ t , u t and a t are homogeneous coordinate systems.
  • equation (4) is obtained as the relationship between ⁇ ta t and u t .
  • observation action by the state observation sensor 14 and the contact observation sensor 16 will be considered.
  • an observation act yields an observed value yt .
  • Observations y t are composed of state observations s t ' and contact observations c t '.
  • s t ' is the observed value of the relative pose of the object coordinate system. However, it is assumed that s t ' has an error from the true value s t due to observation noise ⁇ .
  • ⁇ t be the observed noise of the system, and let the observed noise ⁇ t follow some probability distribution P ⁇ . Note that ⁇ t is also a homogeneous coordinate system.
  • Formula (8) describes the state space model as a probability model.
  • the state is controlled from the state space model of formula (8) and the probability of obtaining the state when the observation of formula (9) is obtained. That is, the robot 10 manipulates the relative position and orientation between two objects.
  • the execution unit 132 performs the task so that, from the initial state in which the operable object to be operated is separated from the target object located in the environment, the operable object comes into contact with the target object in a specific manner.
  • the robot 10 that manipulates the manipulation object is controlled so as to transition to the completed state, which is the state in which the manipulation object is being executed.
  • the execution unit 132 controls the robot 10 for each task.
  • the task is a task of assembling a gripped part to another part, a task of moving the gripped part to another position in the environment, or a task of gripping a part, which will be described later.
  • the execution unit 132 includes a guide setting unit 140, an initial setting unit 142, an action planning unit 144, a command conversion unit 146, an observation unit 148, a time update unit 150, an observation update unit 152, as shown in FIG. , a state estimation unit 154 , an iteration determination unit 156 and a target setting unit 158 .
  • the target setting unit 158 is an example of a target state setting unit
  • the time update unit 150 is an example of a particle set setting unit
  • the observation update unit 152 is an example of a particle set adjustment unit
  • 146 is an example of an action unit
  • the repetition determination unit 156 is an example of a processing control unit.
  • the guide setting unit 140 sets a guide.
  • the guide is the final part of the relative trajectory of the object to be manipulated with respect to the object of interest, and is a trajectory that is a common target relative trajectory regardless of the initial relative position of the object to be manipulated with respect to the object of interest.
  • the guide includes a completed state and a series of intermediate goal states leading up to the completed state.
  • the completed state and the intermediate goal state are represented by the object coordinate system.
  • the guide setting unit 140 creates a guide for the unit state transition data based on the assembly procedure included in the registration information.
  • a guide is a sequence of discrete relative orientations leading to a completed state.
  • the completed state is the end of the guide.
  • the guide setting unit 140 may be provided in the motion planning device 20. In that case, the guide is also acquired by the control device 30 in the same manner as the unit state transition data.
  • FIG. 8 shows a state in which the part D is assembled in the assembled body of the parts A to C and then moved in a direction in which the part D can move without interfering with the assembled body of the parts A to C. It is an example of the trajectory of the position and orientation of D. A trajectory obtained by reversing the movement direction starting from the end point of the trajectory is created as a guide G1.
  • the spacing of the states that make up the guide need not be uniform, for example, the states may be densely set in areas where contact is expected.
  • the initial setting unit 142 sets the intermediate target state during guiding, which is farthest from the completed state, as the target state of the current movement.
  • the initial setting unit 142 is a set of particles representing the uncertainty of the position and orientation of the manipulation object, and each particle included in the set of particles represents one possible position and orientation of the manipulation object. Initialize the set of .
  • the position and orientation of the manipulated object represented by the particles are represented by the object coordinate system.
  • the action planning unit 144 plans actions for moving the operation object from the initial state or an estimated state described later to the target state of the current movement.
  • the estimated state and behavior are represented by an object coordinate system.
  • the command conversion unit 146 converts the planned action into a command that can be executed by the robot 10 and outputs the command to the robot 10 .
  • the observation unit 148 acquires observation results regarding the relative position and orientation of the target object and the manipulation object from the state observation data acquired by the acquisition unit 130 .
  • the observation unit 148 acquires the relative position and orientation of the target object and the manipulation object as observation results represented by the object coordinate system.
  • the observation unit 148 acquires observation results regarding the presence or absence of contact between the operation object and the object of interest from the contact observation data acquired by the acquisition unit 130 .
  • the contact observation data is converted into a binary value corresponding to contact or non-contact and recognized as a contact observation value.
  • the method for converting the sensor value into binary values is not limited, and an existing method may be used.
  • the time update unit 150 updates the set of particles in the next step.
  • the observation updating unit 152 updates the weight of each particle included in the set of particles. At this time, among the particles, the weights of the particles that represent the position and orientation closer to the position and orientation of the manipulation object indicated by the observation result are updated with a larger weight, and if the observation result indicates that contact has occurred, the object of interest and the In the virtual space where the shapes and relative positional relationships of the manipulated objects are represented, the closer the object of interest and the manipulated objects arranged in the positions and orientations represented by the respective particles are in contact, the greater the weight of the corresponding particles is updated.
  • the virtual space is the space described by the object coordinate system.
  • the state estimation unit 154 calculates an estimated state, which is the position and orientation of the manipulated object estimated based on the set of particles whose weights have been adjusted.
  • the iteration determination unit 156 determines whether the calculated estimated state matches the completed state within a predetermined error. Further, the iterative determination unit 156 performs each process of the goal setting unit 158, the action planning unit 144, the command conversion unit 146, the observation unit 148, the time update unit 150, the observation update unit 152, and the state estimation unit 154 until the estimated state is completed. Repeat until the states match within a given error.
  • the target setting unit 158 sequentially sets the intermediate target states being guided from the far side to the near side with respect to the completed state as the target state of the current movement, and sets the completed state as the final target state of the current movement.
  • FIG. 9 is a sequence diagram showing the processing flow of the control system 1 of this embodiment.
  • the CPU 20A functions as each unit of the operation planning device 20 to perform the operation planning process
  • the CPU 30A functions as each unit of the control device 30 to perform control processing.
  • step S100 the operation planning device 20 creates state transition data and control data including each unit state transition data.
  • the control data is each grip data corresponding to each unit state transition data created.
  • step S102 the operation planning device 20 outputs state transition data and control data to the state transition control unit 25.
  • step S104 the state transition control unit 25 receives a series of task start instructions and starts the task to be processed.
  • the task start instruction is received, the first task to be processed is started, and the tasks are sequentially updated according to the progress of the tasks.
  • the task start instruction may be received by the control device 30 .
  • step S108 the state transition control unit 25 outputs unit state transition data corresponding to the task to be processed and control data corresponding to the unit state transition data to the control device 30. Note that the state transition control unit 25 first outputs unit state transition data corresponding to the first task in the order of repeated processing, and then outputs unit state transition data corresponding to the next task as the task progresses. do.
  • step S114 the acquisition unit 130 of the control device 30 acquires state observation data and contact observation data observed by the state observation sensor 14 and the contact observation sensor 16, and the execution unit 132 executes the task to be processed.
  • the task transitions from the initial state in which the operable object to be operated is separated from the target object located in the environment to the completed state in which the operable object is in contact with the target object in a specific manner.
  • the robot 10 is controlled as follows.
  • step S118 the execution unit 132 of the control device 30 notifies the state transition control unit 25 of task completion.
  • step S120 the state transition control unit 25 determines whether or not processing has been completed up to the final state of the state transition data. If it is determined that the process has been completed up to the final state, the process proceeds to step S124. If it is determined that the processing has not ended up to the final state, the process proceeds to step S122.
  • step S122 the state transition control unit 25 updates the task to be processed, and returns to step S108. Updating a task is a process of updating the task to be processed to the next task.
  • step S108 after updating the task, the unit state transition data and control data (grip data) corresponding to the task to be processed are output to the control device 30, and the subsequent processes are repeated.
  • step S124 the state transition control unit 25 ends the task and ends the processing of the control system 1.
  • FIG. 10 is a flowchart showing the flow of control processing of the control device 30 in step S114.
  • step S130 the guide setting unit 140 generates and sets a guide for the unit state transition data based on the assembly procedure in the registration information. Specifically, a start state s 0 * and an end state s M * for the relative position and orientation of the object of interest and the manipulation object are defined, and a set of M+1 states as a guide.
  • the state set s 0:M * is a guide, and the guide is generated using the CAD models of the target object and the manipulation object.
  • the manipulation object can be manipulated in a direction in which the manipulation object can move without interfering with the object of interest.
  • a trajectory of the position and orientation of the manipulated object is created when the object is gradually moved over M stages. Then, a trajectory is generated as a guide by starting from the end point of the trajectory and reversing the movement direction.
  • the spacing of the states that make up the guide need not be uniform, for example, the states may be densely set in areas where contact is expected.
  • step S132 the initial setting unit 142 sets the initial value of the target state to the state s0 * of the starting point of the guide.
  • step S ⁇ b>134 the observation unit 148 acquires the relative position and orientation of the manipulation object from the state observation data obtained by the state observation sensor 14 .
  • the initial setting unit 142 sets particle set Determine the initial value of Some prior knowledge may determine the initial value s 0 (n) of the particles. For example, the initial value s 0 (n) may be determined so as to be uniformly distributed in the region within the maximum error range expected for the observed values of the relative position and orientation of the manipulated object.
  • the particle set represents the uncertainty of the relative position and orientation of the manipulated object.
  • Each particle represents one of the possible relative orientations of the manipulated object.
  • the state estimate ⁇ s t is the relative pose representing the particle set.
  • the particle scattering variable ⁇ corresponds to the hypothetical system noise.
  • step S138 when the action planning unit 144 designates the current element as s t * and the element of the next step as s t +1 * among the elements s m * of the set of states forming the guide, s t +1 * and the estimated value ⁇ s t of the current state, the amount of movement at in the object coordinate system is determined.
  • the estimated value ⁇ s t of the state s t is obtained in step S148, which will be described later.
  • the initial value of ⁇ s t is the relative position and orientation obtained in step S134.
  • the movement amount may be determined by performing route planning using CAD each time.
  • ⁇ Tt corresponds to the estimated value of Tt .
  • the operation object is moved by the determined movement amount at.
  • the estimated ⁇ T t is used to convert the movement amount at to the TCP control amount ⁇ u t , and the robot 10 is controlled by ⁇ u t .
  • control amount u t is obtained by converting the net relative position/orientation movement v ta t into the movement amount of TCP in the robot coordinate system, but u t can not be obtained because v t is unknown. Therefore, control is performed using ⁇ u t .
  • step S140 the command conversion unit 146 converts the TCP movement amount ⁇ ut in the robot coordinate system into a command amount for rotation of each joint of the robot 10 by inverse kinematics, and issues an action command to the robot 10. .
  • forward kinematics obtains xt as the position and orientation values of the TCP in the robot coordinate system.
  • step S144 the time update unit 150 updates the particle set after the action in step S140. by a t and the particle scattering variable ⁇ t update to. Also, the particle weights are normalized to 1/N.
  • step S146 the observation update unit 152 updates the weight of each particle included in the set of particles.
  • interference is determined as follows. An object of interest drawn using CAD shape data is placed in a simulation space (virtual space) for interference determination. Further, for each particle included in the particle set, the manipulated object having the position and orientation represented by the particle is arranged in the simulation space using the CAD shape data. If the manipulated object arranged based on a certain particle overlaps with the object of interest, it is determined that there is interference, and if the manipulated object and the object of interest are separated and do not overlap, it is determined that there is no interference. Thus, the presence or absence of interference is determined for each particle. Also, an interference distance, which is the closest distance between the surface of the object of interest and the surface of the manipulation object in the simulation, is calculated.
  • the particle ensemble is used to perform interference judgment using CAD on a simulation, and the set of obtained interference judgments is and let the set of interference distances be and
  • the interference distance d t (n) is the shortest distance between the target object surface and the manipulation object surface of the n-th particle in the simulation. n) >0.
  • Equation (16) The likelihood L(y t
  • the delta function included in the equation for no real contact returns a value of 1 for particles with no simulated interference and a value of 0 for particles with interference.
  • the exponential function part included in formula (16) is a Gaussian function.
  • a Gaussian function may not be used as the function system, and a function may be used in which the likelihood is high when the distance is short and the likelihood is low when the distance is long. For example, exponential decay or the like may be used.
  • the particle weight W is updated by Equation (17) using the likelihood value obtained from the likelihood function.
  • the likelihood function sets the weight of particles with interference in the simulation (particles contrary to the observation result of no contact) to 0, and For a particle, the weight is increased as the state s t (n) of the particle is closer to the observed state s t ′ of the manipulation object.
  • the likelihood function weights the particle more as its state s t (n) is closer to the observed state s t ' of the manipulated object. and the effect of increasing the weight of the particles as the shortest distance between the surface of the object of interest and the surface of the manipulated object is smaller.
  • the weight of the particles representing a state close to the state in which the surfaces of the target object and the manipulation object are in contact with each other in the simulation is updated to be large, and the manipulation object becomes larger than the target object.
  • the weights of the particles representing the state that the object is far away or that the manipulation object penetrates deeply into the object of interest are updated to be smaller.
  • step S148 the state estimation unit 154 calculates an estimated state, which is the position and orientation of the manipulated object estimated based on the set of particles whose weights have been adjusted.
  • the estimated value ⁇ s t of the state of the manipulated object is corrected so as to approach the observed position and orientation of the manipulated object, and the actual contact is observed by the contact observation sensor 16. If there is, the simulation is modified so that the surfaces of the operation object and the object of interest are in contact with each other.
  • Equation (18) the estimated value ⁇ s t of the state at time t is obtained from Equation (18) as the expected value for the particle set.
  • log means the logarithm of the matrix
  • exp means the exponent of the matrix.
  • step S150 the iterative determination unit 156 determines whether or not the state estimate ⁇ s t matches the guide end state s M * within a predetermined error range. If the state estimate ⁇ s t matches the end state s M * of the guide within a predetermined error range, the control process ends. If they do not match, the process proceeds to S152.
  • step S152 the target setting unit 158 sets the target state to the next state during guidance. Also, the time is advanced by one step, and t+1 up to that point is set as a new t. Then, the process returns to step S138.
  • step S142 may be performed after step S144.
  • the robot 10 may be controlled as follows for the part where the manipulation object is moved from the gripped position to the guide start point.
  • the movement path from the place where the manipulated object is grasped to the guide start point is created by connecting straight lines or using the conventional Motion Planning method. Further, the movement of the operation object from the gripped position to the guide start point is performed, for example, as follows.
  • the position and orientation of the target object in the camera coordinate system are observed from the state observation data obtained by the camera of the state observation sensor 14, and a virtual space having an object coordinate system, which is a coordinate system based on the target object, is developed. . This allows the camera coordinate system and the object coordinate system to be mutually transformed.
  • the guide represents the trajectory of the manipulated object rather than the end effector 12 .
  • the position and orientation of the manipulated object before being grasped in the camera coordinate system are observed, converted into the position and orientation of the object coordinate system, and the manipulated object is placed in the virtual space. Then, the position and orientation of the end effector 12 in the robot coordinate system are acquired from the state observation data obtained by the encoder.
  • the position and orientation of the end effector 12 in the camera coordinate system are observed from the state observation data obtained by the camera, converted into the position and orientation of the object coordinate system, and the end effector 12 is placed in the virtual space. This enables conversion between the robot coordinate system and the object coordinate system. If the correspondence between the camera coordinate system and the robot coordinate system is calibrated in advance, observation of the end effector 12 by the camera can be omitted.
  • the end effector 12 grips the object to be manipulated.
  • a movement path is planned from the initial position and orientation of the manipulated object when it is gripped to the position and orientation at the guide start point.
  • the path plan in the virtual space is converted into a path plan in the robot coordinate system space, and the manipulated object is moved according to the path plan. Note that the error is not eliminated during movement.
  • the position and orientation of the manipulated object and the end effector 12 after movement are acquired from the state observation data obtained by the camera, and the manipulated object is moved so as to match the position and orientation at the guide start point.
  • the likelihood of each particle is obtained from the observation information and the likelihood function, and the relative positions and orientations are calculated.
  • the movement amount of the object is determined from the estimated relative position/posture and the target relative position/posture at the next time.
  • a homogeneous transformation matrix for transforming the estimated relative position/orientation into the TCP position/orientation in the robot coordinate system is obtained, the movement amount of the object is converted into the TCP movement amount from the transformation matrix, the robot 10 is controlled, and the two objects are relative to each other. Bring the position/posture to the target relative position/posture.
  • the relative position and orientation of the two objects are estimated by the contact detection result between the objects and the collision judgment simulation using CAD, and the movement of the manipulation object is based on the estimation result. Determine quantity.
  • the recognition of the relative position and orientation by the state observation sensor 14 includes an error. Even in such an environment where observation is uncertain, it is possible to bring the relative position and orientation between two objects to the target state.
  • the operation planning process or control process executed by the CPU reading the software (program) in the above embodiment may be executed by various processors other than the CPU.
  • the processor is a PLD (Programmable Logic Device) whose circuit configuration can be changed after manufacturing, such as an FPGA (Field-Programmable Gate Array), and an ASIC (Application Specific Integrated Circuit) to execute specific processing.
  • a dedicated electric circuit or the like which is a processor having a specially designed circuit configuration, is exemplified.
  • the motion planning process or control process may be executed by one of these various processors, or by a combination of two or more processors of the same or different kind (e.g., multiple FPGAs, and a CPU and an FPGA). , etc.).
  • the hardware structure of these various processors is an electric circuit in which circuit elements such as semiconductor elements are combined.
  • the program is pre-stored (installed) in the ROM 20B (30B) or the storage 20D (30D), but the present invention is not limited to this.
  • the program may be provided in a form recorded on a recording medium such as CD-ROM (Compact Disk Read Only Memory), DVD-ROM (Digital Versatile Disk Read Only Memory), and USB (Universal Serial Bus) memory.
  • the program may be downloaded from an external device via a network.
  • the end effector 12 is a gripper having a holding portion 12a or a suction pad
  • the present invention is not limited to this.
  • Other configurations may be used as long as they are configured to hold an object.
  • the end effector 12 may be a vacuum chuck, a magnetic chuck, a spatula for scooping an object, or the like.
  • unit state transition data not only the completed state but also a series of discrete relative positions and orientations leading to the completed state may be given.
  • the guide may be a series of discrete relative positions and orientations leading to a state that is not a complete state.
  • the task may be a task of grasping a part that is an object of interest.
  • an object positioned in the environment is set as the object of interest, and an object gripped by the end effector 12 is set as the manipulated object.
  • the object placed in the environment is the object of interest, and the end effector 12 itself is the object to be manipulated. Since the end effector 12 is manipulated by a robot arm, the end effector 12 can also be considered an object manipulated by the robot.
  • the state in which the end effector 12, which is the operation object has gripped the object of interest placed in the environment and has not yet moved the object of interest is the completed state.
  • Appendix 1 moving the operable object so as to transition from a state in which the operable object to be operated is separated from the object of interest located in the environment to a complete state in which the operable object is in contact with the object of interest in a specific manner;
  • a robot control device for controlling a robot to be operated, memory; at least one processor connected to the memory; including The processor setting an intermediate target state or the completed state, which is a target state in the middle of the movement of the operation object until reaching the completed state, as a target state of the current movement; Acquiring sensor observation results regarding the position and orientation of the manipulated object and presence/absence of contact between the manipulated object and the object of interest;
  • a set of particles representing uncertainties in the position and orientation of the manipulation object, wherein each of the particles included in the set of particles represents one possible position and orientation of the manipulation object.
  • a non-temporary storage medium storing a program executable by a computer to execute a robot control process for controlling a robot to be operated,
  • the robot control process includes: setting an intermediate target state or the completed state, which is a target state in the middle of the movement of the operation object until reaching the completed state, as a target state of the current movement; Acquiring sensor observation results regarding the position and orientation of the manipulated object and presence/absence of contact between the manipulated object and the object of interest;
  • a set of particles representing uncertainties in the position and orientation of the manipulation object, wherein each of the particles included in the set of particles represents one possible position and orientation of the manipulation object.

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Human Resources & Organizations (AREA)
  • Strategic Management (AREA)
  • Economics (AREA)
  • Tourism & Hospitality (AREA)
  • General Business, Economics & Management (AREA)
  • Marketing (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Manufacturing & Machinery (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Development Economics (AREA)
  • Educational Administration (AREA)
  • Primary Health Care (AREA)
  • Game Theory and Decision Science (AREA)
  • Operations Research (AREA)
  • Quality & Reliability (AREA)
  • Manipulator (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

観測更新部(152)は、観測結果が示す操作物体の位置姿勢に近い位置姿勢を表す粒子ほど粒子の重みを大きくし、かつ、観測結果が接触が生じていることを示す場合には注目物体及び操作物体の形状及び相対位置関係が表現される仮想空間において注目物体とそれぞれの粒子が表す位置姿勢で配置された操作物体とが接触している状態に近いほど対応する粒子の重みを大きくする。状態推定部(154)は、各粒子の重みが調整された粒子の集合に基づいて推定された操作物体の位置姿勢である推定状態を算出する。行動計画部(144)は、操作物体を推定状態から今回移動の目標状態に移動させるための行動を計画し、指令変換部(146)は、計画された行動の実行をロボットに指令する。反復判定部(156)は、目標状態の設定、観測結果の取得、粒子の集合の設定、粒子の集合の調整、推定状態の算出、行動の計画、及び行動の実行を、推定状態が完了状態に所定の誤差内で一致するまで繰り返させる。

Description

ロボット制御装置、ロボット制御方法、及びロボット制御プログラム
 本開示は、ロボット制御装置、ロボット制御方法、及びロボット制御プログラムに関する。
 従来、ロボットを用いて物体の位置姿勢を操作する場合は、エンドエフェクタと把持している物体の相対位置姿勢は既知で操作中に変化せず、かつ、物体の目標位置姿勢のロボット座標系における値が既知であることが条件であった。上記の条件下におけるロボット制御では、制御中は把持している物体の位置姿勢には注意せずに、ロボットは定められた動作を行うことで物体の位置姿勢を目標に至らせている。
 また、従来技術として、カメラによる視覚的観測行為によって物体の位置姿勢を認識し、それを元にロボットを制御する方法も存在する。このような方法の場合、組み付け先の物体の位置姿勢を認識することで目標位置姿勢のロボット座標系における値を認識することも可能である。
 また、組み立て作業を行うロボットの動作生成に関する技術がある。例えば、機械学習を利用して、遂行する作業をロボットに習得させる手法が研究されている(Dmitry Kalashnikov, et al. "QT-Opt: Scalable Deep Reinforcement Learning for Vision-Based Robotic Manipulation" arXiv preprint arXiv:1806.10293, 2018.参照)。この技術では、カメラから得られる画像データに基づいて対象物を把持する動作を強化学習によりロボットに習得させる手法が提案されている。この手法によれば、対象物を把持する動作をロボットに教示する一連の処理の少なくとも一部を自動化することができる。
 しかしながら、現実においてはエンドエフェクタと把持している物体の相対位置姿勢は不確実であり、また、操作中に変化しうる。しかも、物体の目標位置姿勢のロボット座標系における値は不確実である。特に、把持しようとする物体や組付け先の物体の位置姿勢を治具によって高精度に定めない場合には、これらの不確実性は大きくなる。よって、従来技術では、定められた動作によってロボット自体は動作したとしても、把持している物体の位置姿勢は目標位置姿勢には至らないため、物体を把持して他の物体に組み付ける操作が失敗する場合がある、という問題が存在した。
 また、カメラによる認識手法ではイメージャーの量子化、1画素に入射する光子数の揺らぎ、照明変動等の要因により、センサ値に誤差が発生するため、認識した位置姿勢も誤差を含んだものとなる。そのため、認識した位置姿勢を元にロボットを制御しても、物体の位置姿勢を目標状態に至らせるようロボットを制御することは困難であった。
 本開示は、上記事情を鑑みてなされたものであり、操作物体を精度よく操作させるようにロボットを制御するためのロボット制御装置、ロボット制御方法、及びロボット制御プログラムを提供することを目的とする。
 本開示の第1態様に係るロボット制御装置は、操作対象である操作物体が環境中に位置する注目物体から離れている状態から前記操作物体が前記注目物体に特定の態様で接触している状態である完了状態に遷移するように前記操作物体を操作するロボットを制御するロボット制御装置であって、前記操作物体の前記完了状態に至るまでの移動の途中の目標状態である中間目標状態又は前記完了状態を今回移動の目標状態として設定する目標状態設定部と、前記操作物体の位置姿勢及び前記操作物体と前記注目物体との接触の有無についてのセンサによる観測結果を取得する観測部と、前記操作物体の位置姿勢の不確定さを表す粒子の集合であって、前記粒子の集合に含まれるそれぞれの前記粒子は前記操作物体のありうる位置姿勢の一つを表す、前記粒子の集合を設定する粒子集合設定部と、前記粒子のうち前記観測結果が示す前記操作物体の位置姿勢に近い位置姿勢を表す粒子ほど粒子の重みを大きくし、かつ、前記観測結果が前記接触が生じていることを示す場合には前記注目物体及び前記操作物体の形状及び相対位置関係が表現される仮想空間において前記注目物体とそれぞれの前記粒子が表す位置姿勢で配置された前記操作物体とが接触している状態に近いほど対応する前記粒子の重みを大きくする粒子集合調整部と、各前記粒子の重みが調整された前記粒子の集合に基づいて推定された前記操作物体の位置姿勢である推定状態を算出する状態推定部と、前記操作物体を前記推定状態から前記今回移動の目標状態に移動させるための行動を計画する行動計画部と、計画された前記行動の実行を前記ロボットに指令する行動部と、前記目標状態の設定、前記観測結果の取得、前記粒子の集合の設定、前記粒子の集合の調整、前記推定状態の算出、前記行動の計画、及び前記行動の実行を、前記推定状態が前記完了状態に所定の誤差内で一致するまで繰り返させる処理制御部と、を含んで構成されている。
 本開示の第2態様に係るロボット制御方法は、操作対象である操作物体が環境中に位置する注目物体から離れている状態から前記操作物体が前記注目物体に特定の態様で接触している状態である完了状態に遷移するように前記操作物体を操作するロボットを制御するロボット制御方法であって、前記操作物体の前記完了状態に至るまでの移動の途中の目標状態である中間目標状態又は前記完了状態を今回移動の目標状態として設定し、前記操作物体の位置姿勢及び前記操作物体と前記注目物体との接触の有無についてのセンサによる観測結果を取得し、前記操作物体の位置姿勢の不確定さを表す粒子の集合であって、前記粒子の集合に含まれるそれぞれの前記粒子は前記操作物体のありうる位置姿勢の一つを表す、前記粒子の集合を設定し、前記粒子のうち前記観測結果が示す前記操作物体の位置姿勢に近い位置姿勢を表す粒子ほど粒子の重みを大きくし、かつ、前記観測結果が前記接触が生じていることを示す場合には前記注目物体及び前記操作物体の形状及び相対位置関係が表現される仮想空間において前記注目物体とそれぞれの前記粒子が表す位置姿勢で配置された前記操作物体とが接触している状態に近いほど対応する前記粒子の重みを大きくし、各前記粒子の重みが調整された前記粒子の集合に基づいて推定された前記操作物体の位置姿勢である推定状態を算出し、前記操作物体を前記推定状態から前記今回移動の目標状態に移動させるための行動を計画し、計画された前記行動の実行を前記ロボットに指令し、前記目標状態の設定、前記観測結果の取得、前記粒子の集合の設定、前記粒子の集合の調整、前記推定状態の算出、前記行動の計画、及び前記行動の実行を、前記推定状態が前記完了状態に所定の誤差内で一致するまで繰り返させる処理をコンピュータに実行させる。
 本開示の第3態様に係るロボット制御プログラムは、操作対象である操作物体が環境中に位置する注目物体から離れている状態から前記操作物体が前記注目物体に特定の態様で接触している状態である完了状態に遷移するように前記操作物体を操作するロボットを制御するためのロボット制御プログラムであって、前記操作物体の前記完了状態に至るまでの移動の途中の目標状態である中間目標状態又は前記完了状態を今回移動の目標状態として設定し、前記操作物体の位置姿勢及び前記操作物体と前記注目物体との接触の有無についてのセンサによる観測結果を取得し、前記操作物体の位置姿勢の不確定さを表す粒子の集合であって、前記粒子の集合に含まれるそれぞれの前記粒子は前記操作物体のありうる位置姿勢の一つを表す、前記粒子の集合を設定し、前記粒子のうち前記観測結果が示す前記操作物体の位置姿勢に近い位置姿勢を表す粒子ほど粒子の重みを大きくし、かつ、前記観測結果が前記接触が生じていることを示す場合には前記注目物体及び前記操作物体の形状及び相対位置関係が表現される仮想空間において前記注目物体とそれぞれの前記粒子が表す位置姿勢で配置された前記操作物体とが接触している状態に近いほど対応する前記粒子の重みを大きくし、各前記粒子の重みが調整された前記粒子の集合に基づいて推定された前記操作物体の位置姿勢である推定状態を算出し、前記操作物体を前記推定状態から前記今回移動の目標状態に移動させるための行動を計画し、計画された前記行動の実行を前記ロボットに指令し、前記目標状態の設定、前記観測結果の取得、前記粒子の集合の設定、前記粒子の集合の調整、前記推定状態の算出、前記行動の計画、及び前記行動の実行を、前記推定状態が前記完了状態に所定の誤差内で一致するまで繰り返させる処理をコンピュータに実行させるためのプログラムである。
 本発明のロボット制御装置、ロボット制御方法、及びロボット制御プログラムによれば、操作物体を精度よく操作させるようにロボットを制御することができる。
本実施形態に係るロボットを制御するための制御システムの構成を示す図である。 制御対象の一例としてのロボットの概略構成を示す図である。 動作計画装置及び制御装置のハードウェア構成を示すブロック図である。 動作計画装置及び制御装置の機能構成の例を示すブロック図である。 部品A~部品Dを用いた組み立て手順の一例を示す図である。 把持データの相対位置の一例を示す図である。 制御装置の実行部の機能構成の例を示すブロック図である。 ガイドを生成する方法を説明するための図である。 本実施形態の制御システムの処理の流れを示すシーケンス図である。 制御装置の制御処理の流れを示すフローチャートである。
 以下、本開示の実施形態の一例を、図面を参照しつつ説明する。なお、各図面において同一又は等価な構成要素及び部分には同一の参照符号を付与している。また、図面の寸法比率は、説明の都合上誇張されており、実際の比率とは異なる場合がある。
 図1は、本実施形態に係るロボットを制御するための制御システムの構成を示す図である。図1に示すように、制御システム1は、ロボット10と、状態観測センサ14と、接触観測センサ16と、動作計画装置20と、状態遷移制御部25と、制御装置30とを有する。なお、状態遷移制御部25は、動作計画装置20の一部であってもよいし、制御装置30の一部であってもよいし、本実施形態のように動作計画装置20及び制御装置30のいずれからも独立した装置として構成されていてもよい。
(ロボット)
 図2及び図3は、ロボット10の概略構成を示す図である。本実施形態におけるロボット10は、6軸垂直多関節ロボットであり、アーム11の先端11aに柔軟部13を介してエンドエフェクタ12が設けられる。ロボット10は、エンドエフェクタ12によって部品を把持して組み立て体の組立作業を行う。図3の例ではエンドエフェクタ12は1組の挟持部12aのハンドを有する構成としているが、エンドエフェクタ12を吸着パッドとして、部品を吸着するようにしてもよい。以下の説明においては、部品を吸着することも含めて部品を把持するという。部品を把持することと吸着することとを含めて部品を保持すると言い換えてもよい。
 図2に示すように、ロボット10は、関節J1~J6を備えた6自由度のアーム11を有する。各関節J1~J6は、図示しないモータによりリンク同士を矢印C1~C6の方向に回転可能に接続する。アーム11の先端にはエンドエフェクタ12としてグリッパが接続されている。ここでは、垂直多関節ロボットを例に挙げたが、水平多関節ロボット(スカラーロボット)であってもよい。また、6軸ロボットを例に挙げたが、5軸や7軸などその他の自由度の多関節ロボットであってもよく、パラレルリンクロボットであってもよい。
(状態観測センサ)
 状態観測センサ14は、ロボット10の状態を観測し、観測したデータを状態観測データとして出力する。状態観測センサ14としては、例えば、ロボット10の関節のエンコーダ、視覚センサ(カメラ)、モーションキャプチャ、力関連センサ等が用いられる。ロボット10の状態として、各関節の角度からアーム11の先端11aの位置及び姿勢が特定でき、視覚センサ及び/又は力関連センサから部品(作業対象物)の姿勢が推定できる。モーションキャプチャ用のマーカーがエンドエフェクタ12に取り付けられている場合には、ロボット10の状態としてエンドエフェクタ12の位置及び姿勢が特定でき、エンドエフェクタ12の位置及び姿勢から部品(作業対象物)の姿勢が推定できる。
 力関連センサとは、力覚センサ及びトルクセンサの総称であり、さらにセンサを部品と接触する部位に設ける場合には触覚センサも含む総称である。力関連センサは、ロボット10のエンドエフェクタが部品から受ける力を検出するように、エンドエフェクタ12が部品を把持する部分の表面や、エンドエフェクタ12内の関節部分に設けてもよい。力関連センサは、例えば、1要素または多要素の、1軸、3軸、又は6軸の力をロボット10の状態として検出するセンサである。力関連センサを用いることで、エンドエフェクタ12が部品をどのように把持しているか、すなわち部品の姿勢をより精度良く把握でき、適切な制御が可能となる。
 また、視覚センサによっても、エンドエフェクタ12自体やエンドエフェクタ12が把持している部品の位置及び姿勢をロボット10の状態として検出できる。
 このように、状態観測センサ14である各種センサによって、エンドエフェクタ12、及び把持されている部品についての状態を検出することができる。また、各種センサの検出結果を状態観測データとして取得することができる。
(接触観測センサ)
 接触観測センサ16は、圧力センサ、力覚センサ、又は触覚センサである。触覚センサは、圧力分布を検出するセンサ、又は直交3軸方向の力および直交3軸まわりのモーメントを検出できるセンサである。圧力センサや触覚センサは、たとえばエンドエフェクタ12の指の把持対象物に接触する部分に設けられる。力覚センサは、たとえばロボット10のアーム11とエンドエフェクタ12との間の手首部分に設けられる。
(動作計画装置/制御装置)
 次に、動作計画装置20及び制御装置30の構成について説明する。
 図3は、本実施形態に係る動作計画装置20及び制御装置30のハードウェア構成を示すブロック図である。動作計画装置20及び制御装置30は同様のハードウェア構成で実現できる。動作計画装置20は、CPU(Central Processing Unit)20A、ROM(Read Only Memory)20B、RAM(Random Access Memory)20C、ストレージ20D、入力部20E、表示部20F、及び通信インタフェース(I/F)20Gを有する。各構成は、バス20Hを介して相互に通信可能に接続されている。制御装置30は、CPU30A、ROM30B、RAM30C、ストレージ30D、入力部30E、表示部30F、及び通信I/F30Gを有する。各構成は、バス30Hを介して相互に通信可能に接続されている。以下、動作計画装置20の場合について説明する。
 本実施形態では、ROM20B又はストレージ20Dには、プログラムが格納されている。CPU20Aは、中央演算処理ユニットであり、各種プログラムを実行したり、各構成を制御したりする。すなわち、CPU20Aは、ROM20B又はストレージ20Dからプログラムを読み出し、RAM20Cを作業領域としてプログラムを実行する。CPU20Aは、ROM20B又はストレージ20Dに記録されているプログラムに従って、上記各構成の制御及び各種の演算処理を行う。
 ROM20Bは、各種プログラム及び各種データを格納する。RAM20Cは、作業領域として一時的にプログラム又はデータを記憶する。ストレージ20Dは、HDD(Hard Disk Drive)、SSD(Solid State Drive)、又はフラッシュメモリにより構成され、オペレーティングシステムを含む各種プログラム、及び各種データを格納する。
 入力部20Eは、キーボード、及びマウス等のポインティングデバイスを含み、各種の入力を行うために使用される。表示部20Fは、例えば、液晶ディスプレイであり、各種の情報を表示する。表示部20Fは、タッチパネル方式を採用して、入力部20Eとして機能してもよい。
 通信インタフェース(I/F)20Gは、他の機器と通信するためのインタフェースであり、例えば、イーサネット(登録商標)、FDDI又はWi-Fi(登録商標)等の規格が用いられる。
 図4は、動作計画装置20及び制御装置30の機能構成の例を示すブロック図である。なお、動作計画装置20及び制御装置30を一体として構成するようにしてもよい。
 図4に示すように、動作計画装置20は、機能構成として、遷移作成部110と、把持データ特定部112とを有する。動作計画装置20の各機能構成は、CPU20AがROM20B又はストレージ20Dに記憶されたプログラムを読み出し、RAM20Cに展開して実行することにより実現される。制御装置30は、機能構成として、取得部130と、実行部132とを有する。制御装置30の各機能構成は、CPU30AがROM30B又はストレージ30Dに記憶されたプログラムを読み出し、RAM30Cに展開して実行することにより実現される。
 本実施形態では、ロボット10の作業による組み立て工程を状態遷移図で表す。全体の状態遷移図を、部品又は組み立て体を要素単位に分解して、要素の遷移を表したデータを単位状態遷移データとして表す。
 動作計画装置20では、動作計画として単位状態遷移データの各々を作成するが、単位状態遷移データの作成のために必要な登録情報をユーザからの入力により受け付ける。登録情報は、部品の情報(部品のID、種類等)、エンドエフェクタ12の種類別のCAD情報、組み立て手順(分解手順を含む)、及び部品の把持位置(姿勢を含む)等の各種情報である。なお、組み立て手順にはシミュレーション上で組み立て(又は分解)の際に記録された部品の相対軌道を含む。
 遷移作成部110は、単位状態遷移データの各々を含む状態遷移データを作成する。単位状態遷移データの各々は登録情報のうちの組み立て手順から作成する。
 例えば、遷移作成部110は、第1要素と第2要素とが独立に存在する状態から第1要素及び第2要素からなる組み立て体である第3要素が組み立てられている状態への遷移を表す単位状態遷移データを作成する。第1要素は部品又は組み立て体である。第2要素もまた部品又は組み立て体である。
 ここで把持データ特定部112について説明する前に、状態遷移データに対応する組み立て手順の具体的な例を説明する。図5は、部品A~部品Dを用いた組み立て手順の一例を示す図である。状態遷移に当てはめると、(1)~(3)の各々が単位状態遷移データに含まれる初期状態に対応する。(1)の部品A及び部品Bを組み立てる作業工程を当該上記の単位状態遷移データに当てはめると、部品A及び部品Bがそれぞれ第1要素及び第2要素に対応し、部品A及び部品Bを組み立てた(2)の組み立て体が第3要素に対応する。第3要素が(1)を初期状態とする単位状態遷移データに含まれる目標状態である。(2)以降についても同様に単位状態遷移データに当てはめることができる。以下では、この部品A~部品Dの組み立て手順を例に、把持データ特定部112について説明する。
 把持データ特定部112は、登録情報のうちの部品の把持位置に基づいて、単位状態遷移データの各々について、把持データを特定する。把持データ特定部112は、組み立てのためにロボット10のエンドエフェクタ12が把持対象物である第1要素又は第2要素を把持したときの把持データを特定する。把持データは、エンドエフェクタ12が把持対象物を把持したときの、エンドエフェクタ12及び把持対象物の相対位置姿勢の計画値である。以下、把持データにおける相対位置姿勢について説明する。ここで相対位置姿勢の計画値とは、エンドエフェクタ12が要素を把持したときの、把持位置及び把持姿勢の計画値である。また、把持対象物とした要素に対する、もう一方の要素が組み込み先対象物となる。また、位置姿勢は、6自由度で表される。
 図6は把持データの相対位置姿勢の一例を示す図である。図6(A)は、エンドエフェクタ12を吸着パッドとした場合において、部品Aに対するエンドエフェクタ12の相対位置姿勢R1が矢印として表される。図6(A)は、エンドエフェクタ12を吸着パッドとした場合において、部品Aに対するエンドエフェクタ12の相対位置姿勢R1を表している。図6(B)は、エンドエフェクタ12を一組の挟持部を備えたグリッパ(ハンド)とした場合において、部品Bに対するエンドエフェクタ12の相対位置姿勢R2を表している。部品C及び部品Dについても同様に表される。
 相対位置姿勢は次の式により求められる。
(Tobj→tcp-1=Ttcp→obj
 左辺が部品座標系を表しており、右辺がエンドエフェクタ12からの相対位置姿勢(位置及び姿勢)を表している。把持データは、例えば、把持時に使用するエンドエフェクタ12の識別ID付きCADデータと把持対象物の目標とする相対位置姿勢の計画値として計算する。相対位置姿勢の計画値は、管理者であるユーザが登録情報の部品の把持位置(部品表面上の把持されるべき位置)に含めて入力してもよいし、把持計画など既存の手法により自動で算出してもよい。
 動作計画装置20は、作成した単位状態遷移データ、並びに制御データである把持データを状態遷移制御部25に出力する。単位状態遷移データによって表される1つの状態遷移のことをタスクともいう。なお、動作計画装置20からタスク更新のたびに都度出力するのではなく、状態遷移データに含まれる単位状態遷移データ及び制御データを全て状態遷移制御部25に出力しておき、状態遷移制御部25側でいずれの単位状態遷移データを出力するかを管理するようにしてもよい。また、把持データは、状態遷移制御部25を介さず、制御装置30に直接出力し、制御装置30側で管理してもよい。
 状態遷移制御部25は、状態遷移データのうちの処理対象のタスクに対応する単位状態遷移データを制御装置30の実行部132に出力する。処理対象は、組み立て作業の開始時に指定し、制御装置30からタスク完了の通知を受け付けるたびに更新される。状態遷移制御部25は、動作計画装置20に含まれていてもよいし、制御装置30に含まれていてもよいし、いずれとも異なる装置であってもよい。また、動作計画装置20、制御装置30及び状態遷移制御部25を含む制御システム全体が1つの装置であってもよい。
 以降、制御装置30の各処理部について説明する。
 取得部130は、処理対象の単位状態遷移データ及び把持データを、状態遷移制御部25から取得する。また、取得部130は、第1要素の位置及び第2要素の位置を観測した状態観測データを状態観測センサ14から取得する。なお、第1要素の位置及び第2要素の位置は姿勢を含む。
 また、取得部130は、接触観測センサ16から得られるセンサ値である接触観測データを取得する。
 実行部132は、状態遷移制御部25から出力された単位状態遷移データを用いてタスクを実行する。タスクは、例えば、単位状態遷移データにおいて第3要素が組み立てられた状態を完成させるタスクである。実行部132は、タスクの実行により、観測データ及び把持データに基づいてエンドエフェクタ12により第1要素及び第2要素の一方である把持対象物を把持させ、後述のガイドを最終部分に含む目標相対軌道に沿って把持対象物を他方の要素に対して相対的に移動させる。
 実行部132のタスクの具体的な実行方法について以下に説明する。
 ここで、ロボット10の動作によって2つの物体の相対位置姿勢を操作する問題を考える。
 ここでは環境中に位置している物体を注目物体、ロボット10がエンドエフェクタ12によって操作する物体を操作物体と呼称する。前提として、両物体のCADモデルは与えられており、両物体は剛体でCADモデルと現実の物体形状に誤差はないものとする。また、なんらかの外力によって注目物体の位置姿勢が変化しないことを前提とする。注目物体と操作物体の完了状態である相対位置姿勢は、タスクの単位状態遷移データとして与えられるものとする。
 把持した部品を他の部品に組み付けるタスクの場合、注目物体は組み付け先の部品であり、操作物体は把持している部品である。完了状態は、把持している部品が組み付け先に組み付けられた相対位置姿勢である。
 把持した部品を環境中の他の位置に移し変えるタスクの場合、注目物体は環境中のランドマークであり、操作物体は把持している部品である。完了状態は、所望の移動先位置のランドマークからの相対位置姿勢である。
 注目物体と操作物体の相対位置姿勢は、状態観測センサ14を用いた視覚的観測で認識する。例えば、状態観測センサ14であるカメラから得られる画像とそれぞれのCADモデルを用いて、CADマッチングによって注目物体と操作物体のそれぞれのカメラ座標系における位置姿勢を認識する。2つの位置姿勢を用いて、注目物体のCAD原点から見た操作物体のCAD原点の位置姿勢を相対位置姿勢とする。なお、前述のようにそれぞれの物体の観測したカメラ座標系における位置姿勢は誤差が生じているため、求めた相対位置姿勢にも誤差が含まれている。相対位置姿勢の真値と観測値との乖離を系の観測ノイズと呼称する。なお、相対位置姿勢の真値を知る手段はないため、観測ノイズも概念上のものであってその値を求めることはできない。注目物体と操作物体の相対位置姿勢の観測値は、カメラで撮像した画像を処理して取得するほか、カメラによる観測値との間で較正ができている場合には、ロボット10が操作物体を把持した後はエンコーダによって計測されるロボット10の各関節の角度に基づいて演算することにより取得してもよい。
 また注目物体と操作物体の接触を、接触観測センサ16である圧力センサあるいは力覚センサや触覚センサから認識する。本実施形態では、接触観測センサ16の接触観測値には誤りがなく接触したかどうかを正確に観測できることを前提とする。
 エンドエフェクタ12が操作物体を把持しているとき、指令された移動量だけ操作物体を移動することで相対位置姿勢を変化させようとロボット10を制御したとき、実際に操作物体が移動した量である相対位置姿勢の変化量は、指令された移動量とは異なる。例えば、ロボット10の取り付け位置の誤差やフォワードキネマティクスの演算誤差によってTCP(ツールセンターポイント)の移動量自体に誤差が生じる場合があり得る。現実のロボット10の使用場面ではそれなりの事前較正が行われているので、通常これらの誤差の大きさは小さいが、それでも挿入操作のような高精度を要する操作はわずかな誤差があっても失敗する。あるいは、エンドエフェクタ12に対する操作物体の位置姿勢を把持直後に観測し、その後観測し直していない場合は、観測してから操作物体をガイド始点まで移動させる間に、把持する力が不十分だったためエンドエフェクタ12に対する操作物体の位置姿勢が変化する場合があり得る。さらに、操作物体を後述のガイドに沿って移動させる間に、操作物体が注目物体に接触するなど操作物体に外力が加わると、エンドエフェクタ12に対する操作物体の位置姿勢が変化する場合があり得る。いずれにせよ、これらの誤差があると、指令された移動量だけ操作物体を移動することはできない。実際の移動量の指令された移動量からの乖離を系のシステムノイズと呼称する。
 ここでは注目物体から見た操作物体の相対位置姿勢を状態sとし、離散的な時刻t=0,1,・・・,Mにおける状態sを考える対象とする。状態sの座標系を、注目物体を基準とする相対座標系である物体座標系とする。また時刻tにおけるロボット座標系でのTCPの位置姿勢をxとし、xとsとの位置姿勢の同次変換行列をTとする。
 位置姿勢の変換を数式(1)に記す。s、T、xは同次座標系である。
Figure JPOXMLDOC01-appb-I000001

 
 数式(1)から明らかなように、同次変換行列Tは、TCPの位置姿勢のロボット座標系から物体座標系への変換だけでなく、TCPの相対位置姿勢から操作物体の相対位置姿勢への変換も含んでいる。すなわち、xがTCPの位置姿勢であるのに対し、xがTによって変換された結果である状態sは、TCPではなく操作物体の相対位置姿勢である。
 なお、状態sやTCPの位置姿勢xは4行4列の行列であり、その左上3行3列の成分が回転行列を表しており、第4列の第1~3行が位置ベクトルとして扱える。第4列第4行は無限遠を扱うための成分である。回転行列は性質上3次元分の情報しか持たないため、これらの行列は実質6次元として扱うことができる。同次変換行列Tも4行4列の行列である。同次座標系表記の2つの行列の積は、ベクトル表記した位置姿勢の足し算に相当する。
 いまロボット10がエンドエフェクタ12によって操作物体を把持していることを考える。
 ある時刻tにおいてTCPの位置姿勢xに制御量uを作用させることで、時刻t+1にTCPの位置姿勢がxt+1に遷移する系を考える。このとき操作物体はエンドエフェクタ12に把持されているため、動作に伴って状態sから状態st+1に遷移する。制御量uによって変化した物体座標系での相対位置姿勢の移動量をaとおく。ただし移動中に操作物体の把持姿勢はノイズνだけ変化しうるとし、aにνが影響した移動量が操作物体の正味の移動量であると考える。
 νを系のシステムノイズとし、システムノイズνはある確率分布Pνに従うものとする。なおνも同次座標系である。
 また動作中に把持姿勢がνだけ変化することにより、sとxの同次変換行列Tはνだけ変化することとなる。変化した同次変換行列が
Figure JPOXMLDOC01-appb-I000002

 
である。
 系の状態方程式を行列演算の記述で数式(2)に記す。νとuおよびaは同次座標系である。
Figure JPOXMLDOC01-appb-I000003

 
 数式(1)と(2)より、νとuの関係として数式(4)を得る。
Figure JPOXMLDOC01-appb-I000004

 
 次に、状態観測センサ14及び接触観測センサ16による観測行為を考える。観測行為によって観測値yが得られるものとする。観測値yは状態の観測値s’と接触観測値c’から構成される。
=(s’,c’)
 s’は物体座標系の相対位置姿勢の観測値である。ただし観測ノイズωによってs’は真値sからの誤差を有するものとする。c’は注目物体と操作物体の接触観測値である。c’の観測には誤差は生じないものとする。注目物体と操作物体が接触していない場合はc’=0であり、接触している場合はc’=1である。
 ωを系の観測ノイズとし、観測ノイズωはある確率分布Pωに従うものとする。なおωも同次座標系である。
 観測方程式を同次座標系の形で数式(5)に記す。
Figure JPOXMLDOC01-appb-I000005

 
 以上より、状態空間モデルを以下に定める。
Figure JPOXMLDOC01-appb-I000006

 
 状態空間モデルを確率モデルとして記述したものが数式(8)である。
Figure JPOXMLDOC01-appb-I000007

 
 ある時刻tまで時間が遷移した際に、観測値の集合
Figure JPOXMLDOC01-appb-I000008

 
が与えられる。y0:tが与えられた際にsが得られる確率は以下の数式(9)で表される。
Figure JPOXMLDOC01-appb-I000009

 
ただし、
Figure JPOXMLDOC01-appb-I000010

 
 数式(8)の状態空間モデル、および数式(9)の観測が得られた際の状態が得られる確率から、状態の制御を行う。すなわちロボット10によって2物体間の相対位置姿勢を操作する。
 以上説明したタスクの実行方法に従って、実行部132は、当該タスクについて、操作対象である操作物体が環境中に位置する注目物体から離れている初期状態から操作物体が注目物体に特定の態様で接触している状態である完了状態に遷移するように操作物体を操作するロボット10を制御する。実行部132は、タスク毎にロボット10を制御する。
 ここで、タスクは、把持した部品を他の部品に組み付けるタスク、把持した部品を環境中の他の位置に移し変えるタスク、又は後述の部品を把持するタスクである。
 具体的には、実行部132は、図7に示すように、ガイド設定部140、初期設定部142、行動計画部144、指令変換部146、観測部148、時間更新部150、観測更新部152、状態推定部154、反復判定部156、及び目標設定部158を備えている。なお、目標設定部158が、目標状態設定部の一例であり、時間更新部150が、粒子集合設定部の一例であり、観測更新部152が、粒子集合調整部の一例であり、指令変換部146が、行動部の一例であり、反復判定部156が、処理制御部の一例である。
 ガイド設定部140は、ガイドを設定する。ガイドは、注目物体に対する操作対象物体の相対軌道の最終部分であって、注目物体に対する操作対象物体の初期相対位置にかかわらない共通の目標相対軌道とされる軌道である。ガイドは、完了状態及び完了状態に至るまでの一連の中間目標状態を含む。ここで、完了状態及び中間目標状態は、物体座標系によって表される。
 例えば、ガイド設定部140は、単位状態遷移データについて、登録情報のうちの組み立て手順に基づいて、ガイドを作成する。ここで、ガイドは、完了状態に至る離散的な相対位置姿勢の系列である。完了状態はガイドの終端である。
 ガイド設定部140は、動作計画装置20に備えるようにしてもよい。その場合、ガイドも単位状態遷移データと同様にして制御装置30に取得させる。
 以下、ガイドの作成手法の一例を説明する。
 図8は、部品Dを、部品A~Cの組み立て体に組み付けた状態から、部品A~Cの組み立て体に干渉せずに部品Dが移動可能な方向に部品Dを移動させた場合の部品Dの位置姿勢の軌跡の一例である。その軌跡の終点から始めて移動方向を逆転させた軌跡をガイドG1として作成する。ガイドを構成する状態の間隔は均一である必要はなく、例えば接触が予想される領域では状態を密に設定してもよい。
 初期設定部142は、完了状態に対して一番遠い、ガイド中の中間目標状態を、今回移動の目標状態として設定する。
 また、初期設定部142は、操作物体の位置姿勢の不確定さを表す粒子の集合であって、粒子の集合に含まれるそれぞれの粒子は操作物体のありうる位置姿勢の一つを表す、粒子の集合を初期設定する。ここで、粒子が表す操作物体の位置姿勢は、物体座標系によって表される。
 行動計画部144は、操作物体を初期状態又は後述する推定状態から今回移動の目標状態に移動させるための行動を計画する。ここで、推定状態、及び行動は、物体座標系によって表される。
 指令変換部146は、計画された行動をロボット10が実行できる指令に変換して出力し、ロボット10に指令する。
 観測部148は、取得部130によって取得した状態観測データから、注目物体と操作物体の相対位置姿勢についての観測結果を取得する。ここで、観測部148は、注目物体と操作物体の相対位置姿勢を、物体座標系によって表される観測結果として取得する。
 また、観測部148は、取得部130によって取得した接触観測データから、操作物体と注目物体との接触の有無についての観測結果を取得する。具体的には、接触観測データから、接触あるいは非接触に対応する二値に変換して、接触観測値として認識する。センサ値を二値に変換する手法は限定せず、既存の手法を用いてよい。
 時間更新部150は、次のステップにおける粒子の集合に更新する。
 観測更新部152は、粒子の集合に含まれる各粒子の重みを更新する。このとき、粒子のうち観測結果が示す操作物体の位置姿勢に近い位置姿勢を表す粒子ほど粒子の重みを大きく更新し、かつ、観測結果が接触が生じていることを示す場合には注目物体及び操作物体の形状及び相対位置関係が表現される仮想空間において注目物体とそれぞれの粒子が表す位置姿勢で配置された操作物体とが接触している状態に近いほど対応する粒子の重みを大きく更新する。ここで、仮想空間は、物体座標系により記述される空間である。
 状態推定部154は、各粒子の重みが調整された粒子の集合に基づいて推定された操作物体の位置姿勢である推定状態を算出する。
 反復判定部156は、算出される推定状態が完了状態に所定の誤差内で一致するか否かを判定する。また、反復判定部156は、目標設定部158、行動計画部144、指令変換部146、観測部148、時間更新部150、観測更新部152、状態推定部154の各処理を、推定状態が完了状態に所定の誤差内で一致するまで繰り返させる。
 目標設定部158は、完了状態に対して遠い方から近い方に向かってガイド中の中間目標状態を今回移動の目標状態として順次設定し、完了状態を最後の今回移動の目標状態として設定する。
 次に、制御システム1の作用について説明する。
 図9は、本実施形態の制御システム1の処理の流れを示すシーケンス図である。CPU20Aが動作計画装置20の各部として機能することにより動作計画処理を行い、CPU30Aが制御装置30の各部として機能することにより制御処理を行う。
 ステップS100では、動作計画装置20が、単位状態遷移データの各々を含む状態遷移データ及び制御データを作成する。制御データは、作成した単位状態遷移データの各々に対応する把持データの各々である。
 ステップS102では、動作計画装置20が、状態遷移データ及び制御データを状態遷移制御部25に出力する。
 ステップS104では、状態遷移制御部25が、一連のタスク開始指示を受け付け、処理対象のタスクを開始する。タスク開始指示を受け付けた時点では処理対象として最初のタスクを開始し、タスクの進行に応じて、順次、タスクを更新していく。なお、タスク開始指示は制御装置30で受け付けるようにしてもよい。
 ステップS108では、状態遷移制御部25が、処理対象のタスクに対応する単位状態遷移データ及び当該単位状態遷移データに対応する制御データを制御装置30に出力する。なお、状態遷移制御部25は、最初に、繰り返し処理の順序の最初のタスクに対応する単位状態遷移データを出力し、タスクの進行に応じて、次のタスクに対応する単位状態遷移データを出力する。
 ステップS114では、制御装置30の取得部130が、状態観測センサ14及び接触観測センサ16が観測した状態観測データ及び接触観測データを取得すると共に、実行部132が、処理対象のタスクを実行する。これにより、当該タスクについて、操作対象である操作物体が環境中に位置する注目物体から離れている初期状態から操作物体が注目物体に特定の態様で接触している状態である完了状態に遷移するようにロボット10が制御される。
 ステップS118では、制御装置30の実行部132が、状態遷移制御部25にタスク完了を通知する。
 ステップS120では、状態遷移制御部25が、状態遷移データの最終状態まで処理を終了したか否かを判定する。最終状態まで処理終了したと判定した場合にはステップS124へ移行する。最終状態まで処理終了していないと判定した場合には、ステップS122へ移行する。
 ステップS122では、状態遷移制御部25が、処理対象のタスクを更新し、ステップS108に戻る。タスクの更新とは、処理対象のタスクを、次のタスクに更新する処理である。タスク更新後のステップS108では、処理対象のタスクに対応した単位状態遷移データ及び制御データ(把持データ)を制御装置30に出力し、以降の処理を繰り返す。
 ステップS124では、状態遷移制御部25が、タスクを終了し、制御システム1の処理を終了する。
 図10は、ステップS114の制御装置30の制御処理の流れを示すフローチャートである。
 ステップS130では、ガイド設定部140が、単位状態遷移データについて、登録情報のうちの組み立て手順に基づいて、ガイドを生成し、設定する。具体的には、注目物体と操作物体の相対位置姿勢に対する開始状態s 、終了状態s を定め、M+1個の状態の集合
Figure JPOXMLDOC01-appb-I000011

 
をガイドとして決定する。
 ここで、状態集合s0:M はガイドであり、注目物体と操作物体のCADモデルを活用してガイドが生成される。たとえば、図8を参照して説明したように、CADモデルにおいて、終了状態である注目物体に操作物体が組み付けられた状態から始めて、注目物体に干渉せずに操作物体が移動可能な方向に操作物体をM段階かけて少しずつ移動させた場合の操作物体の位置姿勢の軌跡を作成する。そして、その軌跡の終点から始めて移動方向を逆転させた軌跡をガイドとして生成する。ガイドを構成する状態の間隔は均一である必要はなく、例えば接触が予想される領域では状態を密に設定してもよい。
 ステップS132では、初期設定部142が、目標状態の初期値をガイドの始点の状態s にする。
 ステップS134では、観測部148が、操作物体の相対位置姿勢を、状態観測センサ14により得られた状態観測データから取得する。
 ステップS136では、初期設定部142が、初期時刻t=0における任意のN個の状態の集合である、粒子集合
Figure JPOXMLDOC01-appb-I000012

 
の初期値を定める。何らかの事前知識によって粒子の初期値s (n)を定めてもよい。たとえば、操作物体の相対位置姿勢の観測値について想定される最大誤差の範囲内の領域に均一に分布するように初期値s (n)を定めてもよい。
 ここで、粒子集合は、操作物体の相対位置姿勢の不確定さを表している。個々の粒子は、操作物体のありうる相対位置姿勢の中の一つを表している。
 状態の推定値^sは、粒子集合を代表する相対位置姿勢である。
 また、N個の粒子にそれぞれ対応するN個の粒子重みの集合
Figure JPOXMLDOC01-appb-I000013

 
の初期値を定める。初期値では重みをすべてw(n)=1/Nとする。
 最後に、粒子の時間更新に使用する粒子散布変数φを生成する確率分布Pφを定める。
Figure JPOXMLDOC01-appb-I000014

 
 粒子散布変数φは、仮想的に想定したシステムノイズに相当する。
 ステップS138では、行動計画部144が、ガイドを構成する状態の集合の要素s のうち、現在の要素をs 、次のステップの要素をst+1 としたときに、st+1 と現在の状態の推定値^sから物体座標系における移動量aを決定する。
Figure JPOXMLDOC01-appb-I000015

 
 なお、数式中のXの上付きの”^(ハット)”を、^Xと示している。
 状態sの推定値^sは、後述するステップS148において求められる。^sの初期値は、上記ステップS134で取得した相対位置姿勢とする。なお、都度CADを使った経路計画を行い、移動量を決定してもよい。ガイドを用いない場合には、現在の状態を起点として、数式(1)で記したように状態sと位置姿勢xはs=Tの関係を持つ。この関係を基に、数式(12)で記したように、推定した状態^sとロボット座標系におけるTCPの位置姿勢の値xを変換する同次変換行列^Tを得る。^Tは、Tの推定値に対応する。
Figure JPOXMLDOC01-appb-I000016

 
 決定した移動量aで操作物体を移動させる。ロボット10で操作物体を移動するにあたり、推定した^Tを用いて移動量aをTCPに対する制御量^uに変換することで、^uによってロボット10を制御する。
Figure JPOXMLDOC01-appb-I000017

 
 ただし、実際には、システムノイズνが生じるため、操作物体はνだけ移動する。正味の相対位置姿勢の移動νを、ロボット座標系のTCPの移動量に変換したものが、実際の制御量uであるが、νは未知のためuを求めることはできないので、制御は^uを用いて行う。
 ステップS140において、指令変換部146が、ロボット座標系におけるTCPの移動量^uをインバースキネマティクスによりロボット10の各関節の回転の指令量に変換して、ロボット10に対して行動を指令する。
 ステップS142において、観測部148が、状態観測センサ14及び接触観測センサ16から得られた状態観測データ及び接触観測データから、前述した物体座標系の相対位置姿勢、注目物体と操作物体との接触状態を一つにまとめた観測値y=(s’,c’)を得る。
 また、エンコーダによるロボット10の各関節の角度の計測値を用いて、Forward Kinematicsによりロボット座標系におけるTCPの位置姿勢の値としてxを得る。
  ステップS144において、時間更新部150は、上記ステップS140での行動後、粒子集合
Figure JPOXMLDOC01-appb-I000018

 
をaと粒子散布変数φによって
Figure JPOXMLDOC01-appb-I000019

 
に更新する。また粒子重みを1/Nに正規化する。
Figure JPOXMLDOC01-appb-I000020

 
 ステップS146において、観測更新部152が、粒子の集合に含まれる各粒子の重みを更新する。
 具体的には、まず、次のようにして干渉判定を行う。干渉判定を行うためのシミュレーション空間(仮想空間)内にはCADの形状データを用いて描写される注目物体を配置しておく。さらに、粒子集合に含まれる個々の粒子について、その粒子が表している位置姿勢の操作物体をCADの形状データを用いてシミュレーション空間内に配置する。ある粒子に基づいて配置された操作物体が注目物体と重なる部分があれば干渉ありと判定し、操作物体と注目物体とが離れていて重なる部分がなければ干渉なしと判定する。このようにして、粒子ごとに干渉の有無を判定する。また、シミュレーション上で注目物体の表面と操作物体の表面との最も近い距離である干渉距離も算出する。
 このように、粒子集合
Figure JPOXMLDOC01-appb-I000021

 
を用いてシミュレーション上でCADを用いた干渉判定を行い、得られる干渉判定の集合を
Figure JPOXMLDOC01-appb-I000022

 
とし、干渉距離の集合を
Figure JPOXMLDOC01-appb-I000023

 
とする。
 干渉判定c (n)はシミュレーション上でのn番目の粒子の注目物体と操作物体の干渉の有無であり、干渉時はc (n)=0であり、非干渉時はc (n)=1である。
 干渉距離d (n)はシミュレーション上でのn番目の粒子の注目物体表面と操作物体表面の最短距離であり、干渉時はd (n)<0であり、非干渉時はd (n)>0である。
 確率p(y|s (n))に対応する尤度L(y|s (n))を数式(16)に定める。l(s (n)|s’)は粒子の状態と観測状態との距離である。δ(・)はデルタ関数、τおよびσはハイパーパラメータである。
Figure JPOXMLDOC01-appb-I000024

 
 すなわち、接触観測センサ16によって検出される注目物体と操作物体との現実の接触がない(c’=0)場合は数式(16)の上側の式が用いられ、現実の接触がある(c’=1)場合は下側の式が用いられる。現実の接触がない場合の式に含まれるデルタ関数は、シミュレーション上で干渉がない粒子について値1を返し、干渉がある粒子について値0を返す。
 数式(16)に含まれる指数関数の部分はガウス関数である。関数系はガウス関数にせず、距離が近ければ尤度が高く、距離が遠ければ尤度が低くなる関数を使用してよい。例えば指数関数的減衰などを使用してよい。
 尤度関数から得られた尤度値を用いて数式(17)で粒子重みWを更新する。
Figure JPOXMLDOC01-appb-I000025

 
 すなわち、注目物体と操作物体との現実の接触がない場合、尤度関数は、シミュレーション上で干渉がある粒子(接触なしの観測結果に反する粒子)の重みを0にし、シミュレーション上で干渉がない粒子についてはその粒子の状態s (n)が操作物体の観測された状態s’に近いほど重みを大きくする。
 一方、注目物体と操作物体との現実の接触がある場合、尤度関数は、粒子の状態s (n)が操作物体の観測された状態s’に近いほどその粒子の重みを大きくする作用と、注目物体表面と操作物体表面との最短距離が小さいほど粒子の重みを大きくする作用とを有する。その結果、現実の接触がある場合にはシミュレーション上で注目物体と操作物体の表面同士が接触している状態に近い状態を表している粒子の重みが大きく更新され、操作物体が注目物体から大きく離れていたり操作物体が注目物体に深く侵入したりしている状態を表している粒子の重みが小さく更新される。
 ステップS148において、状態推定部154が、各粒子の重みが調整された粒子の集合に基づいて推定された操作物体の位置姿勢である推定状態を算出する。このとき、上記のようにして、操作物体の状態の推定値^sは、操作物体の観測された位置姿勢に近づくように修正され、かつ、接触観測センサ16により現実の接触が観測されている場合にはシミュレーション上でも操作物体と注目物体の表面同士が接触している状態に近づくように修正される。
 具体的には、時刻tにおける状態の推定値^sは、粒子集合に対する期待値として数式(18)から求められる。数式(18)中のlogは行列の対数、expは行列の指数をそれぞれ意味している。
Figure JPOXMLDOC01-appb-I000026

 
 更新された粒子重み
Figure JPOXMLDOC01-appb-I000027

 
に比例する確率で粒子集合
Figure JPOXMLDOC01-appb-I000028

 
から粒子を無作為に選択し、
Figure JPOXMLDOC01-appb-I000029

 
のリサンプリングを行う。
 ステップS150において、反復判定部156が、状態の推定値^sが所定の誤差範囲内でガイドの終了状態s と一致するか否かを判定する。状態の推定値^sが所定の誤差範囲内でガイドの終了状態s と一致していれば制御処理を終了する。一致していなければS152に進む。
 ステップS152では、目標設定部158が、目標状態をガイド中の次の状態に設定する。また、時刻を1ステップ進め、それまでのt+1を新たなtとする。そして、ステップS138に戻る。
 なお、上記図10のフローチャートに示した処理の順序は、目的が達成できる限り適宜変更してもよい。例えば、ステップS142の観測は、上記ステップS144の後に行ってもよい。
 また、操作物体を把持した場所からガイド始点まで移動させる部分について、以下のようにロボット10を制御してもよい。
 まず、操作物体を把持した場所からガイド始点までの移動経路は、直線でつなぐ、もしくは従来のMotion Planningの手法を用いて作成する。また、把持した場所からガイド始点までの操作物体の移動は、例えば次のようにして行う。
 まず、状態観測センサ14のカメラで得られた状態観測データから、注目物体のカメラ座標系における位置姿勢を観測し、注目物体を基準とした座標系である物体座標系を持つ仮想空間を展開する。これにより、カメラ座標系と物体座標系とが互いに変換可能になる。
 次に、ガイドを仮想空間内に配置する。ここで、ガイドはエンドエフェクタ12ではなく操作物体の軌道を表す。
 次に、カメラで得られた状態観測データから、カメラ座標系における把持前の操作物体の位置姿勢を観測し、物体座標系の位置姿勢に変換して操作物体を仮想空間内に配置する。そして、エンコーダで得られた状態観測データから、ロボット座標系におけるエンドエフェクタ12の位置姿勢を取得する。
 次に、カメラで得られた状態観測データから、カメラ座標系におけるエンドエフェクタ12の位置姿勢を観測し、物体座標系の位置姿勢に変換してエンドエフェクタ12を仮想空間に配置する。これにより、ロボット座標系と物体座標系とが変換可能になる。あらかじめカメラ座標系とロボット座標系の対応付けが較正されているならカメラによるエンドエフェクタ12の観測は省略可能である。
 次に、エンドエフェクタ12で操作物体を把持する。
 把持後にカメラで得られた状態観測データから、カメラ座標系における操作物体の位置姿勢を観測し、物体座標系における操作物体の位置姿勢を修正する。これにより、把持誤差が解消される。
 そして、仮想空間内で、操作物体の初期の、把持されたときの位置姿勢からガイド始点における位置姿勢までの移動の経路を計画する。
 次に、仮想空間内の経路計画をロボット座標系空間内の経路計画に変換し、経路計画に従って操作物体を移動させる。なお、移動中は、誤差が解消されない。
 そして、移動後の操作物体およびエンドエフェクタ12の位置姿勢を、カメラで得られた状態観測データから取得し、ガイド始点における位置姿勢に一致するように操作物体を移動させる。カメラ座標系、物体座標系、ロボット座標系相互の変換関係を修正する。これにより、ガイド始点における操作物体の位置姿勢誤差が解消される。また、座標系相互の変換誤差も小さくなる。
 以上のように、本実施形態の制御システム1によれば、2物体の相対位置姿勢についての粒子集合を想定し、観測情報と尤度関数から各粒子の尤度を求めて、相対位置姿勢を推定する。推定した相対位置姿勢と次時刻での目標相対位置姿勢から、物体の移動量を決定する。推定した相対位置姿勢をロボット座標系におけるTCPの位置姿勢に変換する同次変換行列を求め、変換行列から物体の移動量をTCPの移動量に変換してロボット10を制御し、2物体の相対位置姿勢を目標相対位置姿勢に至らせる。このとき、操作物体と注目物体とが接触したという情報を用いて、物体間の接触検知結果とCADを使った干渉判定シミュレーションによって2物体の相対位置姿勢を推定し、推定結果から操作物体の移動量を決定する。これにより、観測や行動にノイズが加わる不確実な環境下においてロボット10を用いて物体を操作し、2物体の相対位置姿勢を精度よく目標の状態に至らせることができる。また、エンドエフェクタ12と操作物体の相対位置姿勢が不明であり、かつ、制御中に変化するという制御が不確かな環境下でも、また状態観測センサ14による相対位置姿勢の認識が誤差を含んでいるという観測が不確かな環境下でも、2物体間の相対位置姿勢を目標の状態に至らせることが可能である。
 なお、上記実施形態でCPUがソフトウェア(プログラム)を読み込んで実行した動作計画処理又は制御処理を、CPU以外の各種のプロセッサが実行してもよい。この場合のプロセッサとしては、FPGA(Field-Programmable Gate Array)等の製造後に回路構成を変更可能なPLD(Programmable Logic Device)、及びASIC(Application Specific Integrated Circuit)等の特定の処理を実行させるために専用に設計された回路構成を有するプロセッサである専用電気回路等が例示される。また、動作計画処理又は制御処理を、これらの各種のプロセッサのうちの1つで実行してもよいし、同種又は異種の2つ以上のプロセッサの組み合わせ(例えば、複数のFPGA、及びCPUとFPGAとの組み合わせ等)で実行してもよい。また、これらの各種のプロセッサのハードウェア的な構造は、より具体的には、半導体素子等の回路素子を組み合わせた電気回路である。
 また、上記実施形態では、プログラムがROM20B(30B)又はストレージ20D(30D)に予め記憶(インストール)されている態様を説明したが、これに限定されない。プログラムは、CD-ROM(Compact Disk Read Only Memory)、DVD-ROM(Digital Versatile Disk Read Only Memory)、及びUSB(Universal Serial Bus)メモリ等の記録媒体に記録された形態で提供されてもよい。また、プログラムは、ネットワークを介して外部装置からダウンロードされる形態としてもよい。
 また、上記実施形態では、エンドエフェクタ12が、挟持部12aを有するグリッパ、又は吸着パッドである場合を例に説明したが、これに限定されない。物体を保持する構成であれば、他の構成でもよく、例えば、エンドエフェクタ12が、真空吸着チャック、磁力吸着チャック、対象物をすくうヘラなどであってもよい。
 また、単位状態遷移データの完了状態からガイドを生成する場合を例に説明したが、これに限定されない。単位状態遷移データとして完了状態のみでなく、完了状態に至る離散的な相対位置姿勢の系列が与えられていてもよい。
 また、ガイドとして、相対位置姿勢の系列を自動的に生成する場合を例に説明したが、ガイドを生成しないようにしてもよい。この場合は、上記実施形態において、ガイドが単一の状態で構成される特殊な事例と見なせばよい。
 また、ガイドが、完了状態ではない状態に至る離散的な相対位置姿勢の系列であってもよい。
 また、タスクは、注目物体である部品を把持するタスクであってもよい。上記実施形態では、環境中に位置している物体を注目物体とし、エンドエフェクタ12が把持する物体を操作物体としてきたが、部品を把持するタスクでは、エンドエフェクタ12によって操作(把持)されるために環境中に置かれた物体を注目物体とし、エンドエフェクタ12自体を操作物体とする。エンドエフェクタ12はロボットアームによって操作されるものであるので、エンドエフェクタ12もロボットによって操作される物体とみなすことができる。部品を把持するタスクでは、操作物体であるエンドエフェクタ12が環境中に置かれた注目物体を把持した状態であってまだ注目物体を移動させていない状態が完了状態となる。
(付記)
 以上の実施形態に関し、更に以下の付記を開示する。
 (付記項1)
 操作対象である操作物体が環境中に位置する注目物体から離れている状態から前記操作物体が前記注目物体に特定の態様で接触している状態である完了状態に遷移するように前記操作物体を操作するロボットを制御するロボット制御装置であって、
 メモリと、
 前記メモリに接続された少なくとも1つのプロセッサと、
 を含み、
 前記プロセッサは、
 前記操作物体の前記完了状態に至るまでの移動の途中の目標状態である中間目標状態又は前記完了状態を今回移動の目標状態として設定し、
 前記操作物体の位置姿勢及び前記操作物体と前記注目物体との接触の有無についてのセンサによる観測結果を取得し、
 前記操作物体の位置姿勢の不確定さを表す粒子の集合であって、前記粒子の集合に含まれるそれぞれの前記粒子は前記操作物体のありうる位置姿勢の一つを表す、前記粒子の集合を設定し、
 前記粒子のうち前記観測結果が示す前記操作物体の位置姿勢に近い位置姿勢を表す粒子ほど粒子の重みを大きくし、かつ、前記観測結果が前記接触が生じていることを示す場合には前記注目物体及び前記操作物体の形状及び相対位置関係が表現される仮想空間において前記注目物体とそれぞれの前記粒子が表す位置姿勢で配置された前記操作物体とが接触している状態に近いほど対応する前記粒子の重みを大きくし、
 各前記粒子の重みが調整された前記粒子の集合に基づいて推定された前記操作物体の位置姿勢である推定状態を算出し、
 前記操作物体を前記推定状態から前記今回移動の目標状態に移動させるための行動を計画し、
 計画された前記行動の実行を前記ロボットに指令し、
 前記目標状態の設定、前記観測結果の取得、前記粒子の集合の設定、前記粒子の集合の調整、前記推定状態の算出、前記行動の計画、及び前記行動の実行を、前記推定状態が前記完了状態に所定の誤差内で一致するまで繰り返させる、
ロボット制御装置。
 (付記項2)
 操作対象である操作物体が環境中に位置する注目物体から離れている状態から前記操作物体が前記注目物体に特定の態様で接触している状態である完了状態に遷移するように前記操作物体を操作するロボットを制御するためのロボット制御処理を実行するようにコンピュータによって実行可能なプログラムを記憶した非一時的記憶媒体であって、
 前記ロボット制御処理は、
 前記操作物体の前記完了状態に至るまでの移動の途中の目標状態である中間目標状態又は前記完了状態を今回移動の目標状態として設定し、
 前記操作物体の位置姿勢及び前記操作物体と前記注目物体との接触の有無についてのセンサによる観測結果を取得し、
 前記操作物体の位置姿勢の不確定さを表す粒子の集合であって、前記粒子の集合に含まれるそれぞれの前記粒子は前記操作物体のありうる位置姿勢の一つを表す、前記粒子の集合を設定し、
 前記粒子のうち前記観測結果が示す前記操作物体の位置姿勢に近い位置姿勢を表す粒子ほど粒子の重みを大きくし、かつ、前記観測結果が前記接触が生じていることを示す場合には前記注目物体及び前記操作物体の形状及び相対位置関係が表現される仮想空間において前記注目物体とそれぞれの前記粒子が表す位置姿勢で配置された前記操作物体とが接触している状態に近いほど対応する前記粒子の重みを大きくし、
 各前記粒子の重みが調整された前記粒子の集合に基づいて推定された前記操作物体の位置姿勢である推定状態を算出し、
 前記操作物体を前記推定状態から前記今回移動の目標状態に移動させるための行動を計画し、
 計画された前記行動の実行を前記ロボットに指令し、
 前記目標状態の設定、前記観測結果の取得、前記粒子の集合の設定、前記粒子の集合の調整、前記推定状態の算出、前記行動の計画、及び前記行動の実行を、前記推定状態が前記完了状態に所定の誤差内で一致するまで繰り返させる、
 非一時的記憶媒体。
 日本出願2021-017687の開示はその全体が参照により本明細書に取り込まれる。
 本明細書に記載された全ての文献、特許出願、及び技術規格は、個々の文献、特許出願、及び技術規格が参照により取り込まれることが具体的かつ個々に記載された場合と同程度に、本明細書中に参照により取り込まれる。

Claims (7)

  1.  操作対象である操作物体が環境中に位置する注目物体から離れている状態から前記操作物体が前記注目物体に特定の態様で接触している状態である完了状態に遷移するように前記操作物体を操作するロボットを制御するロボット制御装置であって、
     前記操作物体の前記完了状態に至るまでの移動の途中の目標状態である中間目標状態又は前記完了状態を今回移動の目標状態として設定する目標状態設定部と、
     前記操作物体の位置姿勢及び前記操作物体と前記注目物体との接触の有無についてのセンサによる観測結果を取得する観測部と、
     前記操作物体の位置姿勢の不確定さを表す粒子の集合であって、前記粒子の集合に含まれるそれぞれの前記粒子は前記操作物体のありうる位置姿勢の一つを表す、前記粒子の集合を設定する粒子集合設定部と、
     前記粒子のうち前記観測結果が示す前記操作物体の位置姿勢に近い位置姿勢を表す粒子ほど粒子の重みを大きくし、かつ、前記観測結果が前記接触が生じていることを示す場合には前記注目物体及び前記操作物体の形状及び相対位置関係が表現される仮想空間において前記注目物体とそれぞれの前記粒子が表す位置姿勢で配置された前記操作物体とが接触している状態に近いほど対応する前記粒子の重みを大きくする粒子集合調整部と、
     各前記粒子の重みが調整された前記粒子の集合に基づいて推定された前記操作物体の位置姿勢である推定状態を算出する状態推定部と、
     前記操作物体を前記推定状態から前記今回移動の目標状態に移動させるための行動を計画する行動計画部と、
     計画された前記行動の実行を前記ロボットに指令する行動部と、
     前記目標状態の設定、前記観測結果の取得、前記粒子の集合の設定、前記粒子の集合の調整、前記推定状態の算出、前記行動の計画、及び前記行動の実行を、前記推定状態が前記完了状態に所定の誤差内で一致するまで繰り返させる処理制御部と
     を備えたロボット制御装置。
  2.  さらに、前記完了状態及び前記完了状態に至るまでの一連の前記中間目標状態を含むガイドを設定するガイド設定部を備え、
     前記目標状態設定部は、前記完了状態に対して遠い方から近い方に向かって前記ガイド中の前記中間目標状態を前記今回移動の目標状態として順次設定し、前記完了状態を最後の前記今回移動の目標状態として設定する
     請求項1に記載のロボット制御装置。
  3.  前記完了状態、前記中間目標状態、前記粒子が表す前記操作物体の位置姿勢、前記推定状態、及び前記行動は、前記注目物体を基準とする相対座標系である物体座標系によって表され、
     前記仮想空間は、前記物体座標系により記述される空間であり、
     前記観測部は、前記センサにより検出された前記操作物体の位置姿勢を前記物体座標系によって表される観測結果として提供し、
     前記行動部は、前記行動を前記ロボットが実行できる指令に変換して出力する
     請求項1又は請求項2に記載のロボット制御装置。
  4.  前記操作物体は、前記ロボットのエンドエフェクタによって操作される物体である
     請求項1~請求項3の何れか1項に記載のロボット制御装置。
  5.  前記操作物体は、前記ロボットのアームに取り付けられているエンドエフェクタであり、前記注目物体は、前記完了状態において前記エンドエフェクタによる保持が完了する保持対象物体である
     請求項1~請求項3の何れか1項に記載のロボット制御装置。
  6.  操作対象である操作物体が環境中に位置する注目物体から離れている状態から前記操作物体が前記注目物体に特定の態様で接触している状態である完了状態に遷移するように前記操作物体を操作するロボットを制御するロボット制御方法であって、
     前記操作物体の前記完了状態に至るまでの移動の途中の目標状態である中間目標状態又は前記完了状態を今回移動の目標状態として設定し、
     前記操作物体の位置姿勢及び前記操作物体と前記注目物体との接触の有無についてのセンサによる観測結果を取得し、
     前記操作物体の位置姿勢の不確定さを表す粒子の集合であって、前記粒子の集合に含まれるそれぞれの前記粒子は前記操作物体のありうる位置姿勢の一つを表す、前記粒子の集合を設定し、
     前記粒子のうち前記観測結果が示す前記操作物体の位置姿勢に近い位置姿勢を表す粒子ほど粒子の重みを大きくし、かつ、前記観測結果が前記接触が生じていることを示す場合には前記注目物体及び前記操作物体の形状及び相対位置関係が表現される仮想空間において前記注目物体とそれぞれの前記粒子が表す位置姿勢で配置された前記操作物体とが接触している状態に近いほど対応する前記粒子の重みを大きくし、
     各前記粒子の重みが調整された前記粒子の集合に基づいて推定された前記操作物体の位置姿勢である推定状態を算出し、
     前記操作物体を前記推定状態から前記今回移動の目標状態に移動させるための行動を計画し、
     計画された前記行動の実行を前記ロボットに指令し、
     前記目標状態の設定、前記観測結果の取得、前記粒子の集合の設定、前記粒子の集合の調整、前記推定状態の算出、前記行動の計画、及び前記行動の実行を、前記推定状態が前記完了状態に所定の誤差内で一致するまで繰り返させる
     処理をコンピュータに実行させるロボット制御方法。
  7.  操作対象である操作物体が環境中に位置する注目物体から離れている状態から前記操作物体が前記注目物体に特定の態様で接触している状態である完了状態に遷移するように前記操作物体を操作するロボットを制御するためのロボット制御プログラムであって、
     前記操作物体の前記完了状態に至るまでの移動の途中の目標状態である中間目標状態又は前記完了状態を今回移動の目標状態として設定し、
     前記操作物体の位置姿勢及び前記操作物体と前記注目物体との接触の有無についてのセンサによる観測結果を取得し、
     前記操作物体の位置姿勢の不確定さを表す粒子の集合であって、前記粒子の集合に含まれるそれぞれの前記粒子は前記操作物体のありうる位置姿勢の一つを表す、前記粒子の集合を設定し、
     前記粒子のうち前記観測結果が示す前記操作物体の位置姿勢に近い位置姿勢を表す粒子ほど粒子の重みを大きくし、かつ、前記観測結果が前記接触が生じていることを示す場合には前記注目物体及び前記操作物体の形状及び相対位置関係が表現される仮想空間において前記注目物体とそれぞれの前記粒子が表す位置姿勢で配置された前記操作物体とが接触している状態に近いほど対応する前記粒子の重みを大きくし、
     各前記粒子の重みが調整された前記粒子の集合に基づいて推定された前記操作物体の位置姿勢である推定状態を算出し、
     前記操作物体を前記推定状態から前記今回移動の目標状態に移動させるための行動を計画し、
     計画された前記行動の実行を前記ロボットに指令し、
     前記目標状態の設定、前記観測結果の取得、前記粒子の集合の設定、前記粒子の集合の調整、前記推定状態の算出、前記行動の計画、及び前記行動の実行を、前記推定状態が前記完了状態に所定の誤差内で一致するまで繰り返させる
     処理をコンピュータに実行させるためのロボット制御プログラム。
PCT/JP2022/002177 2021-02-05 2022-01-21 ロボット制御装置、ロボット制御方法、及びロボット制御プログラム WO2022168634A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
EP22749509.0A EP4289564A1 (en) 2021-02-05 2022-01-21 Robot control device, robot control method, and robot control program
US18/274,194 US20240100698A1 (en) 2021-02-05 2022-01-21 Robot Control Device, Robot Control Method, and Robot Control Program
CN202280011668.9A CN116829313A (zh) 2021-02-05 2022-01-21 机器人控制装置、机器人控制方法以及机器人控制程序

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2021-017687 2021-02-05
JP2021017687A JP2022120650A (ja) 2021-02-05 2021-02-05 ロボット制御装置、ロボット制御方法、及びロボット制御プログラム

Publications (1)

Publication Number Publication Date
WO2022168634A1 true WO2022168634A1 (ja) 2022-08-11

Family

ID=82741747

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2022/002177 WO2022168634A1 (ja) 2021-02-05 2022-01-21 ロボット制御装置、ロボット制御方法、及びロボット制御プログラム

Country Status (5)

Country Link
US (1) US20240100698A1 (ja)
EP (1) EP4289564A1 (ja)
JP (1) JP2022120650A (ja)
CN (1) CN116829313A (ja)
WO (1) WO2022168634A1 (ja)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009169581A (ja) * 2008-01-15 2009-07-30 Toyota Motor Corp 移動体、移動体システム、及びその故障診断方法
JP2013024864A (ja) * 2011-07-15 2013-02-04 Mitsubishi Electric Corp 複数の姿勢においてプローブを用いて物体をプロービングすることによってプローブを物体とレジストレーションする方法およびシステム
JP2016528483A (ja) * 2013-06-11 2016-09-15 ソマティス センサー ソリューションズ エルエルシー 物体を検知するシステム及び方法
JP2020011339A (ja) * 2018-07-18 2020-01-23 キヤノン株式会社 ロボットシステムの制御方法、およびロボットシステム
JP2021017687A (ja) 2019-07-17 2021-02-15 中日本高速道路株式会社 床版取替工法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009169581A (ja) * 2008-01-15 2009-07-30 Toyota Motor Corp 移動体、移動体システム、及びその故障診断方法
JP2013024864A (ja) * 2011-07-15 2013-02-04 Mitsubishi Electric Corp 複数の姿勢においてプローブを用いて物体をプロービングすることによってプローブを物体とレジストレーションする方法およびシステム
JP2016528483A (ja) * 2013-06-11 2016-09-15 ソマティス センサー ソリューションズ エルエルシー 物体を検知するシステム及び方法
JP2020011339A (ja) * 2018-07-18 2020-01-23 キヤノン株式会社 ロボットシステムの制御方法、およびロボットシステム
JP2021017687A (ja) 2019-07-17 2021-02-15 中日本高速道路株式会社 床版取替工法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
DMITRY KALASHNIKOV ET AL.: "QT-Opt: Scalable Deep Reinforcement Learning for Vision-Based Robotic Manipulation", ARXIV PREPRINT ARXIV: 1806.10293, 2018

Also Published As

Publication number Publication date
EP4289564A1 (en) 2023-12-13
US20240100698A1 (en) 2024-03-28
CN116829313A (zh) 2023-09-29
JP2022120650A (ja) 2022-08-18

Similar Documents

Publication Publication Date Title
Asfour et al. Armar-6: A high-performance humanoid for human-robot collaboration in real-world scenarios
CN109202942B (zh) 手控制装置、手控制方法以及手的模拟装置
US9862090B2 (en) Surrogate: a body-dexterous mobile manipulation robot with a tracked base
CN110076772B (zh) 一种机械臂的抓取方法及装置
JP5114019B2 (ja) エフェクタの軌道を制御するための方法
JP5580850B2 (ja) シリアルロボットのための迅速な把持接触計算
JP2019014030A (ja) ロボットの制御装置、ロボット、ロボットシステム、並びに、カメラの校正方法
JP7295421B2 (ja) 制御装置及び制御方法
CN114516060A (zh) 用于控制机器人装置的设备和方法
Shahverdi et al. A simple and fast geometric kinematic solution for imitation of human arms by a NAO humanoid robot
Waltersson et al. Planning and control for cable-routing with dual-arm robot
Sanchez et al. Four-arm collaboration: Two dual-arm robots work together to manipulate tethered tools
Ajwad et al. Emerging trends in robotics–a review from applications perspective
WO2022168634A1 (ja) ロボット制御装置、ロボット制御方法、及びロボット制御プログラム
Grasshoff et al. 7dof hand and arm tracking for teleoperation of anthropomorphic robots
Shauri et al. Sensor integration and fusion for autonomous screwing task by dual-manipulator hand robot
JP7159525B2 (ja) ロボット制御装置、学習装置、及びロボット制御システム
WO2022168609A1 (ja) 制御システム、動作計画装置、制御装置、動作計画及び制御方法、動作計画方法、並びに制御方法
CN114080304A (zh) 控制装置、控制方法及控制程序
Lane et al. Aspects of the design and development of a subsea dextrous grasping system
Asfour et al. Armar-6
US20220301209A1 (en) Device and method for training a neural network for controlling a robot
Nazarova et al. HyperPalm: DNN-based hand gesture recognition interface for intelligent communication with quadruped robot in 3D space
US11921492B2 (en) Transfer between tasks in different domains
US20230311331A1 (en) Device and method for controlling a robot to perform a task

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

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 18274194

Country of ref document: US

Ref document number: 202280011668.9

Country of ref document: CN

NENP Non-entry into the national phase

Ref country code: DE

ENP Entry into the national phase

Ref document number: 2022749509

Country of ref document: EP

Effective date: 20230905