US20240042603A1 - Controller of robot and control method - Google Patents
Controller of robot and control method Download PDFInfo
- Publication number
- US20240042603A1 US20240042603A1 US18/489,629 US202318489629A US2024042603A1 US 20240042603 A1 US20240042603 A1 US 20240042603A1 US 202318489629 A US202318489629 A US 202318489629A US 2024042603 A1 US2024042603 A1 US 2024042603A1
- Authority
- US
- United States
- Prior art keywords
- force
- information
- robot
- information related
- acquire
- Prior art date
- Legal status (The legal status 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 status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims description 59
- 238000012545 processing Methods 0.000 claims description 44
- 230000008859 change Effects 0.000 claims description 29
- 238000012937 correction Methods 0.000 claims description 7
- 238000004519 manufacturing process Methods 0.000 claims 2
- 230000002093 peripheral effect Effects 0.000 claims 2
- 230000008569 process Effects 0.000 description 30
- 230000006870 function Effects 0.000 description 21
- 238000010586 diagram Methods 0.000 description 11
- 238000003780 insertion Methods 0.000 description 9
- 230000037431 insertion Effects 0.000 description 9
- 230000033001 locomotion Effects 0.000 description 8
- 238000012790 confirmation Methods 0.000 description 7
- 230000001172 regenerating effect Effects 0.000 description 7
- 239000012636 effector Substances 0.000 description 6
- 230000008929 regeneration Effects 0.000 description 5
- 238000011069 regeneration method Methods 0.000 description 5
- 238000013519 translation Methods 0.000 description 5
- 230000001360 synchronised effect Effects 0.000 description 4
- 238000012935 Averaging Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 238000009499 grossing Methods 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 238000012217 deletion Methods 0.000 description 2
- 230000037430 deletion Effects 0.000 description 2
- 230000004438 eyesight Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000005070 sampling Methods 0.000 description 2
- 230000006399 behavior Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 238000006073 displacement reaction Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000002372 labelling Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000010355 oscillation Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000008685 targeting Effects 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
Images
Classifications
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J13/00—Controls for manipulators
- B25J13/06—Control stands, e.g. consoles, switchboards
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1628—Programme controls characterised by the control loop
- B25J9/163—Programme controls characterised by the control loop learning, adaptive, model based, rule based expert control
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J13/00—Controls for manipulators
- B25J13/08—Controls for manipulators by means of sensing devices, e.g. viewing or touching devices
- B25J13/085—Force or torque sensors
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J13/00—Controls for manipulators
- B25J13/08—Controls for manipulators by means of sensing devices, e.g. viewing or touching devices
- B25J13/088—Controls for manipulators by means of sensing devices, e.g. viewing or touching devices with position, velocity or acceleration sensors
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1602—Programme controls characterised by the control system, structure, architecture
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1602—Programme controls characterised by the control system, structure, architecture
- B25J9/161—Hardware, e.g. neural networks, fuzzy logic, interfaces, processor
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/42—Recording and playback systems, i.e. in which the programme is recorded from a cycle of operations, e.g. the cycle of operations being manually controlled, after which this record is played back on the same machine
- G05B19/421—Teaching successive positions by mechanical means, e.g. by mechanically-coupled handwheels to position tool head or end effector
Definitions
- the present invention relates to a controller and a control method of a robot that enable a teacher to perform direct teaching of teaching an operation of a robot arm by manually manipulating the robot arm.
- a teacher used to perform an operation of moving an end effector or the like to a teaching position by using an operation portion such as a teaching pendant and to store the teaching position while visually confirming the position.
- the teacher needs to repeat an operation of minutely moving the robot arm by inputting coordinates in the teaching pendant or by operating the teaching pendant, the teacher cannot teach efficiently because such works are cumbersome.
- the direct teaching is what a teacher holds a predetermined part of a robot to manually manipulate a robot arm, to acquire position and orientation data of a tip of the robot arm at that time, to generate an operation command value of the robot arm based on the data and to reproduce an assembling operation at the time of teaching.
- the direct teaching enables to generate teaching data that operates the robot arm simply without cumbersome works because it enables to teach intuitively just by manually guiding the robot arm.
- a robot controller executes a control called a compliance control or an impedance control in general. For instance, the robot controller operates the robot arm in a direction in which the teacher has applied a force by controlling the robot arm such that a force applied to the tip of the robot arm is zeroed.
- Japanese Patent Application Laid-open No. 2008-134903 discloses a method of acquiring time series data of force torque data together with position and orientation data as a teacher manually manipulates a robot arm to generate force teaching data related with a contact force.
- the method disclosed in Japanese Patent Application Laid-open No. 2008-134903 is what generates the force teaching data related to the contact force. Due to that, even if the robot arm is operated regeneratively in accordance to the force teaching data described in Japanese Patent Application Laid-open No. 2008-134903, the robot arm does not necessarily operate as instructed by the teacher at part where precision works such as assembling works are required.
- a controller of a robot including a handling portion handled in teaching an operation of a robot arm, a first sensor configured to acquire data of a first force acting on a tip of the robot arm, a second sensor configured to acquire data of a second force acting on the handling portion and a third sensor configured to acquire data of position and orientation of the tip of the robot arm
- the controller includes a generating portion configured to generate teaching data having a first period and a second period based on analytical results of the first and second force data at a time of teaching the robot arm, the first period being a period in which the robot arm is controlled by position and orientation control based on the position and orientation data of the third sensor, the second period being a period in which the robot arm is controlled by force control based on the first and second force data, and a storage portion configured to store the generated teaching data.
- a control method of a controller controlling a robot provided with a handling portion which is handled in teaching an operation of a robot arm includes acquiring data of first force acting on a tip of the robot by using a first sensor, data of a second force acting on the handling portion by using a second sensor and data of position and orientation of the tip of the robot arm, and generating teaching data having a first period and a second period based on analytical results of the first and second force data at a time of teaching the robot arm, the first period being a period in which the robot arm is controlled by position and orientation control based on the position and orientation data of the third sensor, the second period being a period in which the robot arm is controlled by force control based on the first and second force data.
- FIG. 1 illustrates a robot system of a first embodiment of the present disclosure.
- FIG. 2 is a block diagram illustrating a control system of the robot system of the first embodiment.
- FIG. 3 illustrates forces measured by sensors of the first embodiment.
- FIG. 4 is a control block diagram of the control system illustrated in FIG. 2 .
- FIG. 5 illustrates time series data of an operational force and a contact force of the first embodiment.
- FIG. 6 illustrates a third section of the first embodiment.
- FIG. 7 A is a graph indicating data of the operational force in the third section.
- FIG. 7 B is a graph indicating data of the operational force in the third section in a case where a condition is different from that in FIG. 7 A .
- FIG. 7 C is a graph indicating data of the operational force in the third section in a case where a condition is still different from that in FIG. 7 A .
- FIG. 8 illustrates a case of conducting a retrying operation in teaching of connecter connection by the robot of the first embodiment.
- FIG. 9 illustrates a processing of a comparison portion illustrated in FIG. 4 .
- FIG. 10 is a flowchart illustrating one exemplary robot teaching method of the first embodiment.
- FIG. 11 is a flowchart illustrating a force command value generating process in FIG. 10 .
- FIG. 12 A illustrates how an exploring operation of the robot arm of the first embodiment is taught.
- FIG. 12 B illustrates a condition in which a work comes near an insertion hole in the exploring operation of the robot arm.
- FIG. 12 C illustrates a condition in which the work enters the insertion hole.
- FIG. 12 D illustrates a condition in which the work enters the insertion hole further from the condition in FIG. 12 C .
- FIG. 13 illustrates specific examples of complementing trajectories of the first embodiment.
- FIG. 14 illustrates a robot system of a second embodiment.
- FIG. 15 illustrates a robot system of a third embodiment.
- FIG. 16 is a block diagram illustrating a control system of a robot system of a fourth embodiment.
- FIG. 17 is a control block diagram of the control system in FIG. 16 .
- FIG. 18 A is a schematic diagram illustrating a display area of a manipulator.
- FIG. 18 B is a schematic diagram illustrating a manipulation portion of the manipulator.
- FIG. 19 is a schematic diagram illustrating a display area of a manipulator of a fifth embodiment.
- FIG. 1 illustrates a robot system of a first embodiment of the present disclosure.
- the robot system 100 in FIG. 1 includes a robot 200 and a control system 300 which is one exemplary controller for controlling the robot 200 .
- the control system 300 includes a robot controller 350 and a servo controller 360 .
- the robot 200 is a vertical articulated industrial robot.
- the robot 200 includes a robot arm 201 , a hand 202 which is one exemplary end effector and a handling portion 203 .
- the handling portion 203 is attached at a tip of the robot arm 201 .
- the hand 202 is supported at the tip of the robot arm 201 through the handling portion 203 . That is, the handling portion 203 is provided between the tip of the robot arm 201 and the hand 202 .
- the handling portion 203 is a part manipulated by a teacher when an operation of the robot arm 201 is directly taught and is formed into such a shape that enables the teacher to grip and to manipulate.
- the robot arm 201 includes a plurality of, e.g., seven, links 210 through 216 connected in series and a base end (fixed end) thereof is fixed to a base B on which a work target object for example is placed.
- the seven links 210 through 216 are connected by six joints J 1 through J 6 .
- the number of links is not limited to be seven.
- Each of the joints J 1 through J 6 is either a linear motion joint, a swing joint or a rotational joint (also called as a torsion joint).
- joints J 2 , J 3 and J 5 are the swing joints and joints J 1 , J 4 and J 6 the rotational joints.
- the link 210 is a base end of the robot arm 201 .
- the link 216 is a distal end (free end) of the robot arm 201 .
- the hand 202 includes a plurality of fingers 220 and is enabled to grip a workpiece or the like by operating the plurality of fingers 220 .
- a force sensor 251 which is one exemplary first sensor is disposed between the hand 202 and the handling portion 203 .
- the hand 202 is supported by the force sensor 251
- the force sensor 251 is supported by the handling portion 203 .
- the force sensor 251 is built in the hand 202 .
- the force sensor 251 may be disposed between the hand 202 and the handling portion 203 or may be built in the handling portion 203 .
- the force sensor 251 is used to measure six-axial forces acting on the hand 202 .
- the six-axial forces are translation forces in three axis directions orthogonal with each other and rotational forces around each axis, i.e., a rotational moment.
- the force acting on the hand 202 is a reaction force (referred to as a “contact force” hereinafter) generated when the hand 202 or a gripped body gripped by the hand 202 comes into contact with a work target object.
- the contact force is also a force of the hand 202 applied to the work target object.
- the force sensor 251 outputs a signal corresponding to a force acting on itself, i.e., a contact force, with a predetermined frequency to the robot controller 350 of the control system 300 . Based on the signal obtained from the force sensor 251 , the robot controller 350 performs a process of finding force acting on the hand 202 .
- the control system 300 i.e., the robot controller 350 can measure the force acting on the hand 202 by using the force sensor 251 . That is, the force sensor 251 is configured so as to acquire data of a first force F 1 acting on the tip of the robot 200 .
- the device including the end effector is called as the robot in the present embodiment as described above. Therefore, if the end effector is attached, a tip of the end effector is the tip of the robot.
- a driver 230 is disposed in each of the joints J 1 through J 6 of the robot arm 201 .
- Each driver 230 includes a motor 231 rotationally driving a corresponding joint.
- An orientation of the robot arm 201 can be changed by operating the motor 231 disposed in each of the joints J 1 through J 6 .
- the hand 202 supported at the tip of the robot arm 201 can be changed to an arbitrary position and orientation by changing the orientation of the robot arm 201 .
- the “position and orientation” at the tip of the robot arm 201 will be referred simply as a “position” hereinafter.
- Each of the drivers 230 also includes a torque sensor 252 . That is, a plurality of torque sensors 252 , which is one example a second sensor, is disposed in the joints J 1 through J 6 . Each of the torque sensors 252 outputs a signal corresponding to a torque acting on each of the joints J 1 through J 6 , i.e., a torque acting between a pair of links connecting each of the joints J 1 through J 6 , with a predetermined frequency to the robot controller 350 . Based on the signals acquired from the plurality of torque sensors 252 , the robot controller 350 performs a process of finding a force acting on the tip of the robot arm 201 , i.e., on the handling portion 203 attached to the link 216 .
- the robot controller 350 can measure the force acting on the tip of the robot arm 201 , i.e., on the handling portion 203 , by using the plurality of torque sensors 252 . That is, the torque sensor 252 is configured so as to acquire data of the second force F 2 acting on the handling portion 203 .
- the force acting on the handling portion 203 includes a contact force besides an operational force applied to the handling portion 203 when a teacher holds and manipulates the handling portion 203 .
- the force sensor 251 serving as the first sensor is disposed closer to the tip of the robot (closer to the end effector) than the torque sensor 252 serving as the second sensor.
- Each driver 230 also includes an encoder 253 . That is, a plurality of encoders 253 which is one example of a third sensor is disposed in the joints J 1 through J 6 of the robot arm 201 .
- Each encoder 253 is a rotary encoder and outputs a signal corresponding to a rotational angle of a rotary shaft of the motor 231 to the robot controller 350 and a servo controller 360 with predetermine frequency.
- the robot controller 350 Based on the signals acquired from the plurality of encoders 253 , the robot controller 350 performs a process of finding a position of the tip of the robot arm 201 .
- the robot controller 350 is enabled to measure the position of the tip of the robot arm 201 by using the plurality of encoders 253 . That is, the encoder 253 is configured so as to acquire position and orientation data of the tip of the robot arm 201 .
- FIG. 2 is a block diagram illustrating a control system of the robot system 100 of the first embodiment.
- the robot controller 350 is composed of a computer and includes a CPU (Central Processing Unit) 301 which is one exemplary processing unit.
- the robot controller 350 includes also a ROM (Read Only Memory) 302 , a RAM (Random Access Memory) 303 and an HDD (Hard Disk Drive) 304 .
- the robot controller 350 also includes a recording disk drive 305 and I/Os 311 through 314 which are input/output interfaces.
- the CPU 301 , the ROM 302 , the RAM 303 , the HDD 304 , the recording disk drive 305 and the I/Os 311 through 314 are connected through a bus 310 so as to be communicable with each other.
- the I/O 311 is connected with the servo controller 360 and the I/O 312 is connected with the encoder 253 .
- the I/O 313 is connected with the torque sensor 252 and the I/O 314 is connected with the force sensor 251 .
- the motor 231 and the encoder 253 corresponding to each of the joints J 1 through J 6 is connected with the servo controller 360 .
- FIG. 2 illustrates the motor 231 , the encoder 253 and the torque sensor 252 of only one joint, there are the six joints in the first embodiment. Therefore, there are six each of the motors 231 , encoders 253 and torque sensors 252 in FIG. 2 although not illustrated.
- the CPU 301 controls an operation of the robot arm 201 by controlling the motor 231 driving each of the joints J 1 through J 6 of the robot arm 201 through the servo controller 360 .
- the HDD 304 which is one exemplary storage unit stores a controlling and calculating program 325 and a teaching data 320 .
- a recording disk drive 305 enables to read out various data and programs recorded in a recording disk 326 .
- a program 325 causes the CPU 301 to perform various arithmetic operations and various controls described later.
- Teaching data 320 is generated by the CPU 301 when the robot arm 201 is taught and is time series data of operation command values given with a predetermined frequency of 1 [ms] for example.
- the CPU 301 is set either in a teaching mode or in a regeneration operating mode through a switch not illustrated, provided in the robot controller 350 and manipulated by a person.
- the CPU 301 controls the robot arm 201 so as to operate following a direction of a force acting on the robot arm 201 by impedance controlling the robot arm 201 . Then, the CPU 301 generates the teaching data 320 and stores it in the HDD 304 . In a case where the CPU 301 is set in the regeneration operating mode, the CPU 301 operates the robot arm 201 following the teaching data 320 stored in the HDD 304 .
- the teaching data 320 is called also as trajectory data.
- the operation command value included in the teaching data 320 is either a position command value or a force command value.
- the position command value is composed of three parameters indicating a position and three parameters indicating an orientation.
- the force command value is composed of three parameters indicating a translation force and three parameters indicating a moment.
- the time series data of the position command value is the position teaching data 321 and the teaching data of the force command value is the force teaching data 322 .
- the CPU 301 controls the position and orientation of the robot arm 201 based on the position teaching data 321 and controls a force of the robot arm 201 based on the force teaching data 322 .
- position and orientation control will be referred to as “positional control” hereinafter.
- the position teaching data 321 may be composed of time series data of an angle command value indicating a target angle of each of the joints J 1 through J 6 or of an angle command value indicating a target angle of each of the motors 231 .
- the CPU 301 converts the position command value of the teaching data 320 into the angle command value indicating a target value of an angle of each of the joints J 1 through J 6 .
- the CPU 301 further converts the angle command value of each of the joints J 1 through J 6 into an angle command value indicating a target value of a rotational angle of the motor 231 disposed in each of the joints J 1 through J 6 .
- the CPU 301 outputs the angle command value to the motor 231 of each of the joints J 1 through J 6 to the servo controller 360 with a predetermined frequency.
- the servo controller 360 controls an electric current supplied to the motor 231 such that an angle detected by the encoder 253 approaches the angle command value.
- the position of the tip of the robot arm 201 is brought closer to the position command value by the position control described above.
- the CPU 301 calculates a torque command value with respect to each of the motors 231 such that a force generated at the tip of the robot arm 201 is equalized with a force command value of the teaching data 320 and outputs the calculated torque command value to the servo controller 360 .
- the servo controller 360 controls an electric current supplied to the motor 231 such that a torque generated in each joint approaches the torque command value based on an angular value of each encoder 253 .
- Each motor 231 generates a driving force by being energized by the current and thereby generates a torque in each joint such that a force is generated at the tip of the robot arm 201 .
- Each encoder 253 outputs a signal indicating an angular value of each motor 231 to the CPU 301 .
- Each torque sensor 252 outputs a signal indicating each torque value to the CPU 301 .
- the CPU 301 calculates an angular value of each the joints J 1 through J 6 based on a robot model described later and the angular value of the encoder 253 .
- the CPU 301 also calculates a position of the tip of the robot arm 201 based on the robot model and the angular value of each of the joints J 1 through J 6 .
- the CPU 301 calculates a force generated at the tip of the robot arm 201 based on the angle value of each joint and the torque value of each joint. The force generated at the tip of the robot arm 201 is approached the force command value by the force control described above.
- the angle command value and the torque command value outputted from the CPU 301 to the servo controller 360 are drive command values.
- the CPU 301 can perform the position control and the force control by feedback control by generating the drive command values corresponding to the motor 231 of each of the joints J 1 through J 6 of the robot arm 201 from the teaching data 320
- FIG. 3 illustrates a relationship between a force F 1 measured by using the force sensor 251 and a force F 2 measured by using the torque sensor 252 .
- An operational force required for the teacher to manipulate the handling portion 203 is denoted by F, and a contact force generated when the hand 202 or a supporting structure supported by the hand 202 comes into contact with the work target object is denoted by f
- the plurality of torque sensors 252 is handled all together as one sensor as illustrated in FIG. 3 .
- the force sensor 251 and the torque sensor 252 are disposed with an operation point P indicating the handling portion 203 between the sensors.
- a force F 1 measured by using the force sensor 251 is the contact force f itself with the work target object.
- a force F 2 measured by using the torque sensor 252 is a resultant force of the contact force f and the operational force F (f+F). That is, the contact force f also acts on the handling portion 203 in addition to the operational force F applied by the teacher.
- the robot controller 350 can perform force feedback control of changing the drive command value corresponding to the motor 231 of each of the joints J 1 through J 6 based on the contact force f and the operational force F. More specifically, the robot controller 350 can perform a control of pressing the gripping object to the work target object with a predetermined force by changing the drive command value corresponding to the motor 231 of each of the joints J 1 through J 6 such that the contact force f becomes a predetermined force. The robot controller 350 also change the drive command value corresponding to the motor 231 of each of the joints J 1 through J 6 based on an impedance model of information of the operational force F and virtual viscosity and inertia.
- This arrangement makes it possible for a person to move the robot arm 201 based on the operational force F applied to the handling portion 203 . That is, the robot controller 350 performs impedance control on the robot arm 201 such that the robot arm 201 operates following a direction of the operational force F acting on the robot arm 201 .
- FIG. 4 is a control block diagram of the control system 300 in FIG. 2 .
- the CPU 301 illustrated in FIG. 2 functions as each of portions 331 through 344 illustrated in FIG. 4 by executing the program 325 .
- the HDD 304 in FIG. 2 functions as a storage unit 346 in FIG. 4 .
- the robot model 347 is information (data) such as a shape and size of the robot arm 201 and is stored in the HDD 304 in advance.
- Hand information 348 is information such as a shape and dimensions of the hand 202 and is stored in advance in the HDD 304 .
- the robot controller 350 performs the impedance control on the robot arm 201 such that the robot arm 201 operates following a direction of the operational force F acting on the robot arm 201 .
- the direct teaching there is also a method of generating teaching data by determining teaching points determined by the teacher by pressing a determination button at main points while manually manipulating the robot arm 201 and by connecting these teaching points.
- the robot controller 350 thoroughly acquires a series of operational data generated when the teacher manipulates the robot arm 201 and after the acquisition of the series of time series data, generates the teaching data 320 based on this data. This arrangement makes it possible to improve reproducibility of reproducing the operation of the robot arm 201 that has been taught by the teacher in an automatic operation of reproductively operating the robot arm 201 following the teaching data 320 .
- the robot controller 350 receives signals outputted from the force sensor 251 , the torque sensor 252 and the encoder 253 with a predetermined frequency, e.g., 1 [ms].
- a first measuring portion 331 measures a first force F 1 based on the signal from the force sensor 251 , i.e., calculates data of the force F 1 , and stores the data of the force F 1 in the storage unit 346 .
- a second measuring portion 332 measures a second force F 2 based on the signals from the plurality of torque sensors 251 , i.e., calculates data of the force F 2 , and stores the data of the force F 2 in the storage unit 346 .
- a third measuring portion 333 finds each rotational angle of the plurality of motors 231 based on signals from each of the plurality of encoders 253 and stores the data of each rotational angle of the plurality of motors 231 in the storage unit 346 .
- the data of the force F 1 , the data of the force F 2 and the data of the rotational angles stored in the storage unit 346 are time series data of every 1 [ms] for example. The respective data are synchronized so as to correspond with each other on time base.
- An orientation calculating portion 334 calculates an orientation of the robot arm 201 based on the data of the rotational angle of each encoder 253 stored in the robot model 347 and the storage unit 346 .
- the orientation of the robot arm 201 is interpreted as an angle of each of the joints J 1 through J 6 of the robot arm 201 .
- a hand calculating portion 335 calculates coordinates of the tip of the robot arm 201 , i.e., the handling portion 203 , based the orientation data and the hand information 348 of the robot arm 201 . That is, the orientation calculating portion 334 and the hand calculating portion 335 measure the position of the tip of the robot arm 201 in a time series manner.
- the measurement of the position of the tip of the robot arm 201 is not limited to the case performed by using the encoder 253 .
- it may be arranged such that the position of the tip of the robot arm 201 is measured by using a vision sensor disposed around the robot arm 201 .
- a contact force calculating portion 336 calculates a contact force f from the force F 1 measure by using the force sensor 251 .
- the force F 1 measured by using the force sensor 251 is the contact force f.
- An operational force calculating portion 337 calculates a differential value (F 2 ⁇ F 1 ) between the data of the force F 1 measured by using the force sensor 251 and the data of the force F 2 measured by using the torque sensor 252 .
- the differential value (F 2 ⁇ F 1 ) is data of the operational force F.
- the setting portion 338 divides an entire section of the time series data into a first section in which the position of the robot arm 201 is controlled while regenerating the operation and a second section in which the force of the robot arm 201 is controlled while regenerating the operation.
- the setting portion 338 divides the entire section of the time series data depending on whether magnitude of the calculated contact force f is zeroed. More specifically, the setting portion 338 sets the first section where the magnitude of the contact force f is zero and sets the second section in which the magnitude of the contact force f is not zero.
- the first section can be said to be a first period in which the control of the position and orientation of the robot arm 201 is made such the data of the position and orientation of the third sensor described above (the encoder 253 in the present embodiment) is regenerated.
- the second section can be said to a second period in which the force of the robot arm 201 is controlled such that the first force data and the second force data described above are regenerated.
- FIG. 5 illustrates the time series data of the operational force and the contact force.
- FIG. 5 illustrates an assembling operation in which the hand 202 is cause to grip a connector W 1 which is one exemplary first part and to assemble the connector W 1 with a connector W 2 which is an exemplary second part.
- FIG. 5 also illustrates the operational force and the contact force based on an orthogonal coordinate system of X-Y-Z axes. It is noted that in order to simplify the following description, the operational force will be indicated only by operational forces Fx, Fy and Fz which are translation forces in the X, Y and Z directions. In the same manner, the contact force will be indicated only by contact forces fx, fy and fz which are translation forces in the X, Y and Z directions.
- the setting portion 338 divides the entire sections during which the time series data is measured into a section S 1 which is a first section in which magnitude of the three contact forces fx, fy and fz are all zeroed and a section S 2 which is a second section in which magnitude of the three contact forces fx, fy and fz are not zeroed. That is, a case where there is no contact force is the section S 1 , and a case where there is the contact force is the section S 2 .
- the section S 1 no contact force is generated. That is, the three contact forces fx, fy and fz are zeroed. Specifically, it is a condition before the connectors W 1 and W 2 come into contact with each other.
- the operational forces Fx, Fy and Fz fluctuate corresponding to a force applied by an operator to the handling portion 203 .
- What is important in assembling the connectors W 1 and W 2 is a behavior after when the connectors W 1 and W 2 come into contact with each other. A locus of the motion and the fluctuation of the force are not important before the connectors W 1 and W 2 come into contact with each other.
- the force is divided into the contact force f and the operational force F in the present embodiment. Therefore, it is possible to divide the entire section into the section S 1 in which the connectors W 1 and W 2 are not in contact with each other and the section S 2 in which the connectors W 1 and W 2 are in contact with each other.
- the position teaching data generating portion 339 illustrated in FIG. 4 generates the position teaching data 321 based on the data of the position of the tip of the robot arm 201 in the section S 1 .
- the position teaching data generating portion 339 generates the position teaching data 321 by interpolating between two points of data of a position of a starting point and of data of a position of an ending point in the section S 1 by a predetermined interpolation method, e.g., linear interpolation and joint interpolation.
- the position teaching data 321 may be the data itself of the measured time series position. Even in such a case, the motion of the robot arm 201 can be quickened as compared to a case of performing the force control. Still further, because the robot controller 350 automatically divides into the sections S 1 and S 2 in the present embodiment, the teacher can save a labor. Note that although it is preferable to set two points of starting and ending points to be interpolated as the starting and ending points of the section S 1 , the present disclosure is not limited to that and the two points may be a point before or after the starting point of the section S 1 and a point before or after the ending point of the section S 1 .
- a force teaching data generating portion 342 illustrated in FIG. 4 generates a 322 such that the robot arm 201 operates with a force (third force) corresponding to the differential value (F 2 ⁇ F 1 ), i.e., the operational force F, during the regenerated operation in the section S 2 .
- a teaching data generating portion 343 connects the position teaching data 321 and the force teaching data 322 generated as described above in a time series manner to generate a teaching data 320 and stores the generated teaching data 320 in the HDD 304 serving as the storage unit.
- the teaching data generating portion 343 composes a generating portion generating the teaching data having the first and second periods described above together with the position teaching data generating portion 339 , the force teaching data generating portion 342 , the correcting portion 340 , the comparison portion 341 and others.
- an operation command portion 344 reads out the teaching data 320 stored in the HDD 304 to generate an operation command value and to output it to the servo controller 360 .
- the motor 231 of each of the joints J 1 through J 6 generate a torque that generates a force corresponding to the operational force F at the tip of the robot arm 201 .
- This arrangement makes it possible to cause the robot arm 201 to regenerate the same operation with what the teacher (expert) has manipulated the robot arm 201 .
- an operation of the robot arm 201 taught by the teacher can be accurately regenerated at a part where a precision work is necessary among a series of operations of the robot arm 201 . That is, it is possible to control the robot arm with a desirable mode based on the operation of the robot arm taught by the teacher.
- the series of time series data includes wasteful operations such as hand-shake of the teacher and a preceding operation when a retry operation is made. Then, a correcting portion 340 and a comparison portion 341 correct the data of the operational force F in order to remove wasteful operations.
- the force teaching data generating portion 342 generates a force command value contained in the force teaching data 322 from the corrected data of the operational force F.
- the correcting portion 340 divides the section S 2 in which the force control is performed into a plurality of sections S 3 - 1 , S 3 - 2 and S 3 - 3 .
- the S 3 - 1 in FIG. 5 represents a condition right after when the connectors W 1 and W 2 come into contact with each other.
- the contact forces fx, fy and fz change sharply.
- the operational force Fy in the Y-direction is remarkably changed, meaning that the teacher tries to move the robot arm 201 in the Y-direction.
- the force is applied temporally in the ⁇ Y-direction.
- the teacher intentionally returns the robot arm 201 in the ⁇ Y-direction after moving the robot arm 201 once in the +Y-direction.
- the operational force Fy is stabilized near an end of the section S 3 - 1 , indicating a condition in which a constant force is applied in the +yd.
- the teacher often finds the force required in assembling in such case where the force is stable.
- the operational force Fx and the contact force fx in the x-direction vary sharply.
- the directions of the operational force Fx varies frequently, indicating that the teacher is applying the operational force vibrationally to the handling portion 203 .
- the teacher intentionally manipulates the handling portion 203 vibrationally in this case.
- the direction of the operational force is inverted and is continuous in the data of the recorded force, it is determined to be an intentional operation and the force teaching data 322 is generated without excluding the operational force data during that time.
- the operational force in this condition is simply corrected by moving average or the like, data without change of the operational force is generated, disabling to regenerate the operation intended by the teacher.
- the determination has been made by that the direction of the operational force is inverted and is continuous in the abovementioned description, the determination may be made by level of frequency of the inversion of the operational force. Because a response of several KHz or more is not what is manipulated by human, whether a correction is made or not may be decided by providing a threshold value before and after frequency around several Hz of a case where a person intentionally operates the handling portion 203 vibrationally.
- the data of the operational force F, the data of the contact force f and the data of the position are a continuous non-divisional data group.
- a method for sectioning the section S 2 into the plurality of sections S 3 - 1 , S 3 - 2 and S 3 - 3 will be specifically described.
- the correcting portion 340 analyzes frequency of the data of the operational force F in the section S 2 and based on the analyzed result, divides the section S 2 into the plurality of sections S 3 - 1 , S 3 - 2 and S 3 - 3 .
- the CPU 301 performs the frequency analysis on the data of the operational force F and samples out a change point of the frequency to set the change point of the frequency as a point for sectioning the section.
- This arrangement makes it possible to sample the change point of the operation of the teacher i.e., to divide the section S 2 into the plurality of sections by the change point of the operation of the teacher.
- the section S 3 is one section among the three sections which are sectioned from the section S 2 .
- FIG. 6 illustrates the section S 3 , i.e., the third section.
- the CPU 301 divides the section S 3 further into a plurality of subsections SA.
- Each of the subsections SA has a same time interval and is set as data sampling period of 1 [ms] for example in the present embodiment.
- the correcting portion 340 finds magnitude of a change of the operational force F at an ending point with respect to a starting point in each of the plurality of subsections SA and stores it in the HDD 304 serving as the storage unit.
- the magnitude of the change of the operational force F is proportional to an angle of a vector indicated by an arrow in the graph in FIG. 6 .
- a label “S” is given in a case where the magnitude of the change of the operational force F is lower than a threshold value set in advance and a label “L” is given in a case where the magnitude is higher than the threshold value to store by correlating with the data of the magnitude of the change of the operational force F in the HDD 304 .
- a label “+” is given in a direction away from zero and “ ⁇ ” is given in a direction approaching to zero.
- a section in which subsections SA given the label of “S” continue by a predetermine number set in advance will be denoted as a continuous section SB. Sections other than the continuous section will be denoted as a section SC.
- the correcting portion 340 smooths the data of the operational force F contained in the continuous section SB by an averaging process or the like. That is, the correcting portion 340 smooths the operational force F applied from the handling portion 203 during teaching for a specific period within the second period set by analysis of the first and second force data.
- the force teaching data generating portion 342 generates the force teaching data 322 from the smoothed data (operational force).
- the correcting portion 340 and the force teaching data generating portion 342 generate the force teaching data 322 such that the force generated in the robot arm 201 is smoothed in the continuous section SB. It is possible to remove wasteful operations such as hand-shake of the teacher by thus smoothing the minute changes.
- FIGS. 7 A, 7 B and 7 C illustrate the data of the operational force in the section S 3 .
- a broken line indicates the data of the operational force F before correction and a solid line indicates the data of the operational force F after the correction.
- a portion in which the broken line overlaps with the solid line indicates that the data of the operational force F is not corrected.
- the correcting portion 340 does not correct the data of the operational force F. Therefore, the force teaching data generating portion 342 sets the data of the operational force F as the force teaching data 322 as it is. It is because there is a possibility that the teacher intentionally vibrates the robot arm 201 when the plus and minus of the operational force is inverted.
- the data of the operational force F crosses zero means that plus and minus signs of the data of the operational force F are switched.
- the correcting portion 340 does not correct the data of the operational force F in a case where the operational force F at the end point of the continuous section SB exists within a predetermined range R including zero. Therefore, the force teaching data generating portion 342 sets the data of the operational force F as the force teaching data 322 as it is. It is because in a case where the operational force F is in the vicinity of zero in the continuous section SB, force teaching zero data in which the operational force is all ignored is generated if the force teaching data is generated by smoothing the data. In order to avoid that, the data of the operational force F is not corrected in the section SC in a case of FIG. 7 B .
- the correcting portion 340 corrects and smooths the data of the operational force F in a case where the operational force F does not cross zero as illustrated in FIG. 7 C and where the operational force F at the ending point of the continuous section SB exists outside of the predetermined range R including zero. Specifically, in the section SC, the correcting portion 340 smooths the data of the operational force F at a latter half section, with respect to a former half section, heading to the same operational force with the starting point of the continuous section SB.
- the force teaching data generating portion 342 generates the force teaching data 322 from the corrected data of the operational force F.
- the section SC is a set of subsections before the continuous section SB.
- the correcting portion 340 and the force teaching data generating portion 342 generate the force teaching data 322 such that the force (third force) generated by the robot arm 201 in a section before the continuous section SB is smoothed in the present embodiment.
- the force teaching data 322 is generated such that the operational force F increases with a largest inclination of the force vector in the former half of the section SC and the force teaching data within the continuous section SB is set as a final command value within the latter half of the section SC.
- FIG. 8 illustrates a case when a retry operation is made in teaching connection of connectors.
- the flexible object W deforms largely or an orientation of the connector W 1 is shifted largely with respect to an assembling direction if an excessive force is applied.
- the teacher performs an operation of returning to an original position and performs the retry operation to adjust the force to be applied.
- FIG. 9 illustrates the process of the comparison portion 341 .
- a value of position data when the return operation is finished is equal with a value of position data before the assembling work is made. Accordingly, in a case where the retry operation in the latter half is made, the operations in the former half are all unnecessary.
- the comparison portion 341 removes data between the two time series position data having the equal values and removes the operational force data synchronized with the removed position data out of the time series operational force data.
- the comparison portion 341 refers to the position data synchronized with the operational force data corrected by the correcting portion 340 to determine whether there is similar time series position data.
- the comparison portion 341 removes the similar time series position data together with synchronized force teaching data.
- the force teaching data generating portion 342 generates the force teaching data 322 from the operational force data partially removed.
- the comparison portion 341 and the force teaching data generating portion 342 generate the force teaching data 322 such that the operations of the robot arm 201 between the two position data assuming the equal value among the time series position data in the section S 2 .
- the “equal value” includes a case where the position data shift with each other within a tolerance set in advance in the storage unit such as the HDD 304 . For instance, in a case where the tolerance is set at 0.1 [mm], values of coordinates X: 200.0 [mm], Y: 200.0 [mm] and Z: 200.0 [mm] are considered to be equal with values of coordinates X: 199.9 [mm], Y: 200.0 [mm] and Z: 200.0 [mm].
- the generating portion determines whether the retry operation is made in teaching the robot arm based on the position and orientation data acquired by the third sensor and in a case where the determination is made such that the retry operation has been made, generates the teaching data so as not to regenerate failed operations.
- the generating portion determines whether the retry operation is made in teaching the robot arm based on the position and orientation data acquired by the third sensor and in a case where the determination is made such that the retry operation has been made, generates the teaching data so as not to regenerate failed operations.
- FIG. 10 is a flowchart summarizing the series of the processes of the robot controller 350 . That is, FIG. 10 is a flowchart illustrating one exemplary robot teaching method of the first embodiment.
- the CPU 301 acquires the time series position data, the operation force data and the contact force data of the robot arm 201 at the time of teaching in Step S 101 .
- the CPU 301 reads the sectioning setting of the sections of the teaching data set manually in advance, the threshold value in labelling the subsection, the setting in determining similarity of the position data and others.
- the CPU 301 performs the sectioning process in accordance to the setting reading each data during teaching in Step S 102 . Specifically, the CPU 301 divides as the sections S 1 , S 3 - 1 , S 3 - 2 , and S 3 - 3 and so on as illustrated in FIG. 5 .
- the CPU 301 applies section numbers 1 through N max to the sectioned data in a time series manner in Step S 103 . After that, the CPU 301 generates the teaching data per each section.
- the CPU 301 determines whether there exists a contact force in an N th section in Step S 105 . If there is no contact force, i.e., No in Step S 105 , the CPU 301 executes, based on a position control in Step S 106 , a process of generating a position command value in Step S 107 .
- Step S 107 the CPU 301 connects positions of starting and ending points of the N th section by a predetermined interpolation method, i.e., corrects the position data to generate the position command value. That is, the CPU 301 serving as the generating portion generates the position teaching data regenerating the first period (first section) by interpolating between the two points of the position and orientation data acquired by the third sensor by the predetermined interpolation method.
- FIG. 11 is a flowchart illustrating the force command value generating process.
- the CPU 301 determines whether there is a similar part in the position data in Step S 121 . In a case where there is a similar part, i.e., YES in Step S 121 , the CPU 301 executes a deleting process of deleting the position data of the part determined to be similar except of final data of the similar part together with the force data in the same time series in Step S 122 .
- the CPU 301 further divides of data of the N th section per sampling frequency of the force sensor to define as subsections in Step S 123 . Then, the CPU 301 applies numbers 1 through n max to the respective subsections in Step S 124 . Note that the CPU 301 determines whether magnitude of a change of the operational force data in the subsection is large or small by a threshold value and applies a label. At this time, the CPU 301 sets a group of subsections in which the subsection having a small change continues as a continuous section.
- the CPU 301 determines whether a subsection of the N th section is a continuous section in Step S 126 . If it is the continuous section, i.e., YES in Step S 126 , the CPU 301 generates a smooth force command value by implementing an averaging process on the operational force data in Step S 127 .
- the CPU 301 determines whether the operational force F crosses zero in Step S 128 . If the operational force F crosses zero, i.e., YES in Step S 128 , the CPU 301 generates the force command value without processing the operational force data. In a case where the operational force F does not cross zero, i.e., NO in Step S 128 , the CPU 301 executes data processing of the operational force in Step S 129 . In a case where the continuous section exists in the N th section as described above, the CPU 301 generates a force command value targeting a value in starting the continuous section.
- the CPU 301 determines wither n ⁇ n max in Step S 130 .
- n ⁇ n max i.e., YES in Step S 130
- the CPU 301 increments n by one in Step S 131 and returns to the process in Step S 126 .
- the CPU 301 shifts to the process in Step S 110 in FIG. 10 .
- FIGS. 12 A through 12 D illustrate an exploring operation in teaching the robot arm.
- Axes in directions along an upper surface of the workpiece W 12 are denoted as X and Y and an axis in a direction orthogonal to the X and Y directions is denoted as Z.
- the robot arm is caused to perform the exploring operation (search position) in inserting a rod workpiece W 11 into an insertion hole H 12 of the workpiece W 12 .
- An insertion position is explored in the X and Y directions while abutting the work W 11 gripped by the hand with the upper surface of the workpiece W 12 , i.e., the target of insertion, and while pressing against the upper surface with a certain force in the Z direction.
- the assembling operation can be regenerated by setting the change of the contact force as the step enabling condition of the operation in a case where the gap during the regenerating operation exists within an operational range into which the workpiece W 11 comes near the insertion hole H 12 , it is unable to regenerate the operation when the gap of the parts exists outside of the operational range during teaching.
- the exploring operation it is necessary to complement the operation from the time of teaching so as to be able to deal with the gap of the parts.
- the CPU 301 judges such an operation in which the contact force does not change or changes less even though the operational force continuously fluctuates as the exploring operation and complements the regenerating operation from a tendency of the operation.
- FIG. 13 illustrates a specific example of complementing a trajectory.
- FIG. 13 illustrates three exploring operations ⁇ , ⁇ and ⁇ . That is, the CPU 301 can deal with the gap or the like of the parts and improve versatility by analyzing the tendency of the exploring operation from displacements of the respective coordinates until reaching to the insertion hole H 12 , i.e., until when the contact force changes, and by complementing the operation not included at the time of teaching.
- FIG. 14 illustrates a robot system 100 A of a second embodiment.
- the second sensor is the force sensor 252 A.
- the force sensor 252 A is disposed between the tip of the robot arm 201 and the handling portion 203 .
- the force sensor 252 A is built in the handling portion 203 .
- the 252 A is constructed in the same manner with the force sensor 251 .
- the force sensor 252 A a signal corresponding to a force applied to the handling portion 203 to the robot controller 350 with a predetermined frequency.
- the operational force F can be calculated by subtracting a force F 1 measured by using the force sensor 251 from a force F 2 measured by using the force sensor 252 A also in the second embodiment.
- FIG. 15 illustrates a robot system 100 B of a third embodiment.
- the first sensor is a force sensor 251 B provided on the base B on which a work target object W 22 is placed.
- the force sensor 251 B is configured in the same manner with the force sensor 251 described in the first embodiment.
- the WS 21 comes into contact with the work target object W 22 .
- a contact force at this time acts on the force sensor 251 B.
- the force sensor 251 B outputs a signal corresponding to the force which has acted on itself to the robot controller 350 with a predetermined frequency.
- the robot controller 350 can measure the contact force by using the force sensor 251 B.
- FIG. 16 is a block diagram illustrating a control system of a robot system of the fourth embodiment.
- the operating portion 254 is connected with the bus 310 through an I/O 315 . That is, the operating portion 254 is connected with the robot controller 350 and is arranged to be able to acquire position and orientation information of the robot 200 and force sensor information from the force sensor 251 , the torque sensor 252 and others through the robot controller 350 .
- the operating portion 254 includes a display area 256 , an operating portion 257 , an external input/output portion 258 , a display controller 259 and a communication interface portion 260 .
- the operating portion 254 processes data acquired from the robot controller 350 to display on the display area 256 and to inform of change of state of the operating portion 257 to the robot controller 350 .
- the operating portion 257 is a control portion controlling so as to be able to perform a change operation on the display information displayed on the display area 256 by receiving an operation from a user (teaching operator).
- An external input/output portion 258 is an interface for inputting/outputting an arbitral sensor signal, a trigger signal and others from/to the outside.
- the display controller 259 is an output portion for outputting display information corresponding to the teaching data generated by the teaching data generating portion 343 on a display area.
- the display controller 259 displays the display information as time series information discernible as the first section (first period) and the second section (second period) on the display area 256 .
- the display area 256 renders the screen and displays data at the time of teaching as illustrated in a teaching data confirmation screen in FIG. 18 A .
- the teaching data confirmation screen may be displayed always on the display area 256 or may be switched as another screen by making transition of the screen.
- the position information of the robot 200 and the force sensor information of the robot 200 at the time of teaching are displayed as time series data (time series raw data) in the teaching data confirmation screen.
- the position information and the teaching data automatically generated from the force sensor information are also displayed together with the time series (time series teaching data).
- the display area 256 may be also arranged such that the teaching data can be corrected while confirming the display. Note that although the data are displayed in upper and lower graphs in FIG. 18 A for convenience, the data may be displayed by overlapping the graphs with each other.
- the time series raw data is automatically sectioned and split as described above, and data processing is executed corresponding to a feature per each section to generate the teaching data.
- the section is split at least in unit of a first section (first period) and a second section (second period), and the operating portion 257 can execute selection and change operations independently in these split sections.
- the first and second sections are subdivided further and are displayed by the section split described above. That is, a first subsection (first subsection) in which the first section is subdivided further and/or a second subsection (second short period) in which the second period is subdivided further are displayed on the display area 256 , and these first and second subsection are arranged such that selecting and changing operations respectively independently.
- first and second subsection are arranged such that selecting and changing operations respectively independently.
- the time series raw data and the time series data are displayed respectively such that divisions of the sections are discernible.
- the split section can be selected by directly clicking the screen.
- the selected section is indicated by being displayed by half-tone dot meshing, by reversing, by another color and the like such that it can be seen that the section has been selected to enable to select and to specify a method for generating the teaching data in the selected section.
- information that indicates how the teaching data has been generated from the time series raw data without the selection of the section may be always displayed.
- a selection UI is displayed to enable to select a desirable process among various processes set in advance. For instance, it is possible to reselect a teaching data generating method such as averaging process, linear approximation, zero-valued, omission, generation of fastest trajectory, no-correction (teaching data is faithfully regenerated) or the like to regenerate the teaching data.
- a confirmation screen questioning if the teaching data is to be regenerated is displayed. However, the regeneration may be automatically performed without the confirmation screen questioning if the teaching data is to be regenerated.
- the time series teaching data is updated and displayed on the display area 256 . That is, if a changing operation on the display information being displayed on the display area 256 is executed through the operating portion 257 , the teaching data is updated based on the changing operation described above by the display controller 259 serving as an updating portion.
- the confirmation screen of the reselection and regeneration of the teaching data generating method may be made by displaying a popup screen or selecting by the button or the like allotted to the operating portion 257 .
- the button provided on the operating portion 257 and the display area 256 of the operating portion 254 are rendered as the touch panel, it is also possible not only to select the section but also the division itself of the section described above by directly clicking the screen. It is also arranged such that a move of the division of the section automatically processed and generated on the time base, deletion and addition of the division can be made and such that the time width of the section can be changed.
- the selection of the division of the section is made by the same manner in selecting the section described above.
- an additional screen may be popped up by selecting a place where there is no division on the screen or may be made by the button allotted to the operating portion 257 .
- the operating portion 257 is configured integrally with the display area 256 . Still further, the changing operation described above is arranged to be executable based on the button on the operating portion 257 or the operation of the touch panel.
- the button or the switch on the operating portion 257 may be physical button and/or switch or may be button/switch displayed as images on the touch panel.
- the configuration of the operating portion 257 will be described in detail with reference to FIG. 18 B .
- the operating portion 257 will be described as an example of a button displayed on the display area 256 on the operating portion 254 in FIG. 16 , it may be a physical button provided on the operating portion 254 .
- the operating portion 257 includes a teaching valid/invalid switch 257 a for switching whether a teaching work is valid or invalid, and when the teaching valid/invalid switch 257 a is valid, the time series raw data is updated and displayed.
- the teaching valid/invalid switch 257 a is provided for a purpose of avoiding a load of the controller from increasing due to drawing or the like which are unnecessary, other than the teaching works. While a period during which the update and display is made can be set arbitrarily in advance, the period should be set appropriately by the operator because data display density increases it becomes hard to watch by the operator if the period is too long.
- the operating portion 257 also includes a teaching data acquisition button 257 b and is arranged such that the time series raw data being displayed is reset and the display can be made from the beginning by operating the external input/output portion 258 b . That is, the operating portion 257 realizes the function of the teaching data acquisition button 257 b by a selecting portion enabling to select whether the first and second force data can be acquired in operating the handling portion 203 . In a case where the teaching data acquisition button 257 b is pressed down or the teaching data acquisition button 257 b is released, the robot stops right away at that position.
- the teaching data acquisition button 257 b may be also provided in the handling portion 203 of the robot side.
- the operating portion 257 also includes an execute button 257 c that regenerates and operates the time series teaching data, and when the execute button 257 c is pressed, the robot 200 (the robot arm 201 ) operates based on the selected time series teaching data.
- Teaching of the robot 200 is started by validating the teaching valid/invalid switch 257 a .
- the time series raw data is displayed on the display area 256 of the operating portion 254 for an arbitral period set in advance.
- the teaching operator advances the examination such as the assembling works of the workpieces while watching the time series raw data.
- the teaching operator presses the teaching data acquisition button 257 b to start to accumulate the time series raw data.
- the accumulated time series raw data is displayed in split in the plurality of sections as described above, and the teacher can select or delete the data even when the teaching work is evaluated. It is possible to acquire the teaching data again from a beginning of a deleted section and to connect the teaching data by pressing the teaching data acquisition button 257 b in a condition in which the deleted section is selected.
- the time series teaching data is automatically generated from the acquired time series raw data and is displayed on the display area 256 of the operating portion 254 .
- the operator confirms the displayed time series teaching data, edits appropriately and stores the teaching data.
- the teaching data is regenerated by pressing the execute button 257 c .
- the operator arranges various conditions in executing the teaching works such as an initial position of an assembly target object and an initial position and orientation of the robot for example and presses the execute button 257 c .
- a position on the time base is displayed in the time series teaching data on the display area 256 of the operating portion 254 such that a part being regenerated can be seen. For example, it is such an indication or highlighted indication that a bar vertical to the time base moves with an elapse of time. This arrangement makes it possible for the operator to confirm a successful or problematic part in the teaching work and to edit the teaching data more readily.
- time series raw data and the time series teaching data in the storage unit of the robot controller 350 may be managed as set data such that they can be read again and to be edited again from the operating unit 254 , and an arbitral file name may be given to the teaching data to be stored.
- the abovementioned operation may be executed by the teaching pendant for teaching the robot or may be executed by a predetermined application on an arbitrary computer.
- the present embodiment is arranged such that the time series raw data and the time series teaching data are not displayed on the display area 256 in parallel by matching the time bases. For instance, as illustrated in FIG. 19 , a part of the time base of the time series teaching data such as unnecessary operation is compressed, and corresponding lines 400 are indicated such that corresponding part of the section can be recognized and such that the compression amount of the data on the time bases can be readily seen.
- the present disclosure can be realized also by a process by which a program realizing one or more functions of the embodiments described above is supplied to the system or the apparatus through a network or a storage medium and by which one or more processors in a computer of the system or the apparatus reads and executes the program. It is also possible to realize by a circuit, e.g., ASIC, realizing one or more functions.
- a circuit e.g., ASIC
- the present disclosure is not limited to such case and any storage medium such as a recording disk 326 may be used. More specifically, various storage media such as a flexible disk, an optical disk, e.g., CD-ROM and DVD-ROM, a magneto-optical disk, a magnetic tape, and a non-volatile memory such as a USB memory, a ROM and others may be used as the storage medium.
- the program 325 in the abovementioned embodiments may be also downloaded through a network to execute by the computer.
- the present disclosure is not also limited to realizing the functions of the abovementioned embodiments by executing the program code read out by the computer.
- the present disclosure includes also a case where an OS (Operating System) or the like operated on the computer performs a part or whole of actual processes based on instructions of the program code and a case where the functions of the abovementioned embodiments are realized by such processes.
- OS Operating System
- the program code read out of the storage medium may be written into a memory provided in a function extension board inserted into the computer or in a function extension unit connected with the computer. That is, the present disclosure includes also a case where a CPU and others provided in the function extension board or the function extension unit actually performs a part or whole of the actual processes and realize the functions of the abovementioned embodiments by the processes.
- Embodiment(s) of the present invention can also be realized by a computer of a system or apparatus that reads out and executes computer executable instructions (e.g., one or more programs) recorded on a storage medium (which may also be referred to more fully as a ‘non-transitory computer-readable storage medium’) to perform the functions of one or more of the above-described embodiment(s) and/or that includes one or more circuits (e.g., application specific integrated circuit (ASIC)) for performing the functions of one or more of the above-described embodiment(s), and by a method performed by the computer of the system or apparatus by, for example, reading out and executing the computer executable instructions from the storage medium to perform the functions of one or more of the above-described embodiment(s) and/or controlling the one or more circuits to perform the functions of one or more of the above-described embodiment(s).
- computer executable instructions e.g., one or more programs
- a storage medium which may also be referred to more fully as a
- the computer may comprise one or more processors (e.g., central processing unit (CPU), micro processing unit (MPU)) and may include a network of separate computers or separate processors to read out and execute the computer executable instructions.
- the computer executable instructions may be provided to the computer, for example, from a network or the storage medium.
- the storage medium may include, for example, one or more of a hard disk, a random-access memory (RAM), a read only memory (ROM), a storage of distributed computing systems, an optical disk (such as a compact disc (CD), digital versatile disc (DVD), or Blu-ray Disc (BD)TM), a flash memory device, a memory card, and the like.
Landscapes
- Engineering & Computer Science (AREA)
- Robotics (AREA)
- Mechanical Engineering (AREA)
- Automation & Control Theory (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- Evolutionary Computation (AREA)
- Fuzzy Systems (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Artificial Intelligence (AREA)
- General Physics & Mathematics (AREA)
- Manipulator (AREA)
- Numerical Control (AREA)
Abstract
A robot includes a handling portion handled in teaching an operation of a robot arm, a first sensor acquiring data of a first force acting on a tip of the robot arm, a second sensor acquiring data of a second force acting on the handling portion and a third sensor acquiring data of position and orientation of the tip of the robot arm. A controller of the robot is configured to generate teaching data having a first period and a second period based on analytical results of the first and second force data at a time of teaching the robot arm. The robot arm is controlled by position and orientation control based on the position and orientation data of the third sensor in the first period. The robot arm is controlled by force control based on the first and second force data in the second period.
Description
- The present invention relates to a controller and a control method of a robot that enable a teacher to perform direct teaching of teaching an operation of a robot arm by manually manipulating the robot arm.
- Hitherto, in teaching an operation of a robot arm, a teacher used to perform an operation of moving an end effector or the like to a teaching position by using an operation portion such as a teaching pendant and to store the teaching position while visually confirming the position. In such a case, while the teacher needs to repeat an operation of minutely moving the robot arm by inputting coordinates in the teaching pendant or by operating the teaching pendant, the teacher cannot teach efficiently because such works are cumbersome.
- Then, as one of methods of improving the operability in teaching, there is a technology called direct teaching. The direct teaching is what a teacher holds a predetermined part of a robot to manually manipulate a robot arm, to acquire position and orientation data of a tip of the robot arm at that time, to generate an operation command value of the robot arm based on the data and to reproduce an assembling operation at the time of teaching. The direct teaching enables to generate teaching data that operates the robot arm simply without cumbersome works because it enables to teach intuitively just by manually guiding the robot arm. In a case where the teacher manually manipulates the robot arm, a robot controller executes a control called a compliance control or an impedance control in general. For instance, the robot controller operates the robot arm in a direction in which the teacher has applied a force by controlling the robot arm such that a force applied to the tip of the robot arm is zeroed.
- Japanese Patent Application Laid-open No. 2008-134903 discloses a method of acquiring time series data of force torque data together with position and orientation data as a teacher manually manipulates a robot arm to generate force teaching data related with a contact force.
- However, the method disclosed in Japanese Patent Application Laid-open No. 2008-134903 is what generates the force teaching data related to the contact force. Due to that, even if the robot arm is operated regeneratively in accordance to the force teaching data described in Japanese Patent Application Laid-open No. 2008-134903, the robot arm does not necessarily operate as instructed by the teacher at part where precision works such as assembling works are required.
- According to a first aspect of the present invention, a controller of a robot including a handling portion handled in teaching an operation of a robot arm, a first sensor configured to acquire data of a first force acting on a tip of the robot arm, a second sensor configured to acquire data of a second force acting on the handling portion and a third sensor configured to acquire data of position and orientation of the tip of the robot arm, the controller includes a generating portion configured to generate teaching data having a first period and a second period based on analytical results of the first and second force data at a time of teaching the robot arm, the first period being a period in which the robot arm is controlled by position and orientation control based on the position and orientation data of the third sensor, the second period being a period in which the robot arm is controlled by force control based on the first and second force data, and a storage portion configured to store the generated teaching data.
- According to a second aspect of the present invention, a control method of a controller controlling a robot provided with a handling portion which is handled in teaching an operation of a robot arm, the control method includes acquiring data of first force acting on a tip of the robot by using a first sensor, data of a second force acting on the handling portion by using a second sensor and data of position and orientation of the tip of the robot arm, and generating teaching data having a first period and a second period based on analytical results of the first and second force data at a time of teaching the robot arm, the first period being a period in which the robot arm is controlled by position and orientation control based on the position and orientation data of the third sensor, the second period being a period in which the robot arm is controlled by force control based on the first and second force data.
- Further features of the present invention will become apparent from the following description of exemplary embodiments with reference to the attached drawings.
-
FIG. 1 illustrates a robot system of a first embodiment of the present disclosure. -
FIG. 2 is a block diagram illustrating a control system of the robot system of the first embodiment. -
FIG. 3 illustrates forces measured by sensors of the first embodiment. -
FIG. 4 is a control block diagram of the control system illustrated inFIG. 2 . -
FIG. 5 illustrates time series data of an operational force and a contact force of the first embodiment. -
FIG. 6 illustrates a third section of the first embodiment. -
FIG. 7A is a graph indicating data of the operational force in the third section. -
FIG. 7B is a graph indicating data of the operational force in the third section in a case where a condition is different from that inFIG. 7A . -
FIG. 7C is a graph indicating data of the operational force in the third section in a case where a condition is still different from that inFIG. 7A . -
FIG. 8 illustrates a case of conducting a retrying operation in teaching of connecter connection by the robot of the first embodiment. -
FIG. 9 illustrates a processing of a comparison portion illustrated inFIG. 4 . -
FIG. 10 is a flowchart illustrating one exemplary robot teaching method of the first embodiment. -
FIG. 11 is a flowchart illustrating a force command value generating process inFIG. 10 . -
FIG. 12A illustrates how an exploring operation of the robot arm of the first embodiment is taught. -
FIG. 12B illustrates a condition in which a work comes near an insertion hole in the exploring operation of the robot arm. -
FIG. 12C illustrates a condition in which the work enters the insertion hole. -
FIG. 12D illustrates a condition in which the work enters the insertion hole further from the condition inFIG. 12C . -
FIG. 13 illustrates specific examples of complementing trajectories of the first embodiment. -
FIG. 14 illustrates a robot system of a second embodiment. -
FIG. 15 illustrates a robot system of a third embodiment. -
FIG. 16 is a block diagram illustrating a control system of a robot system of a fourth embodiment. -
FIG. 17 is a control block diagram of the control system inFIG. 16 . -
FIG. 18A is a schematic diagram illustrating a display area of a manipulator. -
FIG. 18B is a schematic diagram illustrating a manipulation portion of the manipulator. -
FIG. 19 is a schematic diagram illustrating a display area of a manipulator of a fifth embodiment. - Embodiments for carrying out the present disclosure will be described below with reference to the drawings.
-
FIG. 1 illustrates a robot system of a first embodiment of the present disclosure. Therobot system 100 inFIG. 1 includes arobot 200 and acontrol system 300 which is one exemplary controller for controlling therobot 200. Thecontrol system 300 includes arobot controller 350 and aservo controller 360. - The
robot 200 is a vertical articulated industrial robot. Therobot 200 includes arobot arm 201, ahand 202 which is one exemplary end effector and ahandling portion 203. Thehandling portion 203 is attached at a tip of therobot arm 201. Thehand 202 is supported at the tip of therobot arm 201 through thehandling portion 203. That is, the handlingportion 203 is provided between the tip of therobot arm 201 and thehand 202. The handlingportion 203 is a part manipulated by a teacher when an operation of therobot arm 201 is directly taught and is formed into such a shape that enables the teacher to grip and to manipulate. - The
robot arm 201 includes a plurality of, e.g., seven,links 210 through 216 connected in series and a base end (fixed end) thereof is fixed to a base B on which a work target object for example is placed. In the present embodiment, the sevenlinks 210 through 216 are connected by six joints J1 through J6. Note that the number of links is not limited to be seven. Each of the joints J1 through J6 is either a linear motion joint, a swing joint or a rotational joint (also called as a torsion joint). In the present embodiment, joints J2, J3 and J5 are the swing joints and joints J1, J4 and J6 the rotational joints. Thelink 210 is a base end of therobot arm 201. Thelink 216 is a distal end (free end) of therobot arm 201. Thehand 202 includes a plurality offingers 220 and is enabled to grip a workpiece or the like by operating the plurality offingers 220. - A
force sensor 251 which is one exemplary first sensor is disposed between thehand 202 and the handlingportion 203. Thehand 202 is supported by theforce sensor 251, and theforce sensor 251 is supported by the handlingportion 203. Theforce sensor 251 is built in thehand 202. Note that although theforce sensor 251 is built in thehand 202 in the present embodiment, theforce sensor 251 may be disposed between thehand 202 and the handlingportion 203 or may be built in the handlingportion 203. Theforce sensor 251 is used to measure six-axial forces acting on thehand 202. The six-axial forces are translation forces in three axis directions orthogonal with each other and rotational forces around each axis, i.e., a rotational moment. The force acting on thehand 202 is a reaction force (referred to as a “contact force” hereinafter) generated when thehand 202 or a gripped body gripped by thehand 202 comes into contact with a work target object. The contact force is also a force of thehand 202 applied to the work target object. - The
force sensor 251 outputs a signal corresponding to a force acting on itself, i.e., a contact force, with a predetermined frequency to therobot controller 350 of thecontrol system 300. Based on the signal obtained from theforce sensor 251, therobot controller 350 performs a process of finding force acting on thehand 202. Thus, thecontrol system 300, i.e., therobot controller 350 can measure the force acting on thehand 202 by using theforce sensor 251. That is, theforce sensor 251 is configured so as to acquire data of a first force F1 acting on the tip of therobot 200. Note that the device including the end effector is called as the robot in the present embodiment as described above. Therefore, if the end effector is attached, a tip of the end effector is the tip of the robot. - A
driver 230 is disposed in each of the joints J1 through J6 of therobot arm 201. Eachdriver 230 includes amotor 231 rotationally driving a corresponding joint. An orientation of therobot arm 201 can be changed by operating themotor 231 disposed in each of the joints J1 through J6. Thehand 202 supported at the tip of therobot arm 201 can be changed to an arbitrary position and orientation by changing the orientation of therobot arm 201. The “position and orientation” at the tip of therobot arm 201 will be referred simply as a “position” hereinafter. - Each of the
drivers 230 also includes atorque sensor 252. That is, a plurality oftorque sensors 252, which is one example a second sensor, is disposed in the joints J1 through J6. Each of thetorque sensors 252 outputs a signal corresponding to a torque acting on each of the joints J1 through J6, i.e., a torque acting between a pair of links connecting each of the joints J1 through J6, with a predetermined frequency to therobot controller 350. Based on the signals acquired from the plurality oftorque sensors 252, therobot controller 350 performs a process of finding a force acting on the tip of therobot arm 201, i.e., on the handlingportion 203 attached to thelink 216. Thus, therobot controller 350 can measure the force acting on the tip of therobot arm 201, i.e., on the handlingportion 203, by using the plurality oftorque sensors 252. That is, thetorque sensor 252 is configured so as to acquire data of the second force F2 acting on the handlingportion 203. The force acting on the handlingportion 203 includes a contact force besides an operational force applied to the handlingportion 203 when a teacher holds and manipulates the handlingportion 203. Note that theforce sensor 251 serving as the first sensor is disposed closer to the tip of the robot (closer to the end effector) than thetorque sensor 252 serving as the second sensor. - Each
driver 230 also includes anencoder 253. That is, a plurality ofencoders 253 which is one example of a third sensor is disposed in the joints J1 through J6 of therobot arm 201. Eachencoder 253 is a rotary encoder and outputs a signal corresponding to a rotational angle of a rotary shaft of themotor 231 to therobot controller 350 and aservo controller 360 with predetermine frequency. Based on the signals acquired from the plurality ofencoders 253, therobot controller 350 performs a process of finding a position of the tip of therobot arm 201. Thus, therobot controller 350 is enabled to measure the position of the tip of therobot arm 201 by using the plurality ofencoders 253. That is, theencoder 253 is configured so as to acquire position and orientation data of the tip of therobot arm 201. -
FIG. 2 is a block diagram illustrating a control system of therobot system 100 of the first embodiment. Therobot controller 350 is composed of a computer and includes a CPU (Central Processing Unit) 301 which is one exemplary processing unit. Therobot controller 350 includes also a ROM (Read Only Memory) 302, a RAM (Random Access Memory) 303 and an HDD (Hard Disk Drive) 304. Therobot controller 350 also includes arecording disk drive 305 and I/Os 311 through 314 which are input/output interfaces. - The
CPU 301, theROM 302, theRAM 303, theHDD 304, therecording disk drive 305 and the I/Os 311 through 314 are connected through abus 310 so as to be communicable with each other. The I/O 311 is connected with theservo controller 360 and the I/O 312 is connected with theencoder 253. The I/O 313 is connected with thetorque sensor 252 and the I/O 314 is connected with theforce sensor 251. - The
motor 231 and theencoder 253 corresponding to each of the joints J1 through J6 is connected with theservo controller 360. Note that althoughFIG. 2 illustrates themotor 231, theencoder 253 and thetorque sensor 252 of only one joint, there are the six joints in the first embodiment. Therefore, there are six each of themotors 231,encoders 253 andtorque sensors 252 inFIG. 2 although not illustrated. - The
CPU 301 controls an operation of therobot arm 201 by controlling themotor 231 driving each of the joints J1 through J6 of therobot arm 201 through theservo controller 360. TheHDD 304 which is one exemplary storage unit stores a controlling and calculatingprogram 325 and ateaching data 320. Arecording disk drive 305 enables to read out various data and programs recorded in arecording disk 326. Aprogram 325 causes theCPU 301 to perform various arithmetic operations and various controls described later. -
Teaching data 320 is generated by theCPU 301 when therobot arm 201 is taught and is time series data of operation command values given with a predetermined frequency of 1 [ms] for example. TheCPU 301 is set either in a teaching mode or in a regeneration operating mode through a switch not illustrated, provided in therobot controller 350 and manipulated by a person. - In a case where the
CPU 301 is set in the teaching mode, theCPU 301 controls therobot arm 201 so as to operate following a direction of a force acting on therobot arm 201 by impedance controlling therobot arm 201. Then, theCPU 301 generates theteaching data 320 and stores it in theHDD 304. In a case where theCPU 301 is set in the regeneration operating mode, theCPU 301 operates therobot arm 201 following theteaching data 320 stored in theHDD 304. Theteaching data 320 is called also as trajectory data. - The operation command value included in the
teaching data 320 is either a position command value or a force command value. The position command value is composed of three parameters indicating a position and three parameters indicating an orientation. The force command value is composed of three parameters indicating a translation force and three parameters indicating a moment. - In the present embodiment, the time series data of the position command value is the
position teaching data 321 and the teaching data of the force command value is theforce teaching data 322. TheCPU 301 controls the position and orientation of therobot arm 201 based on theposition teaching data 321 and controls a force of therobot arm 201 based on theforce teaching data 322. Note that the “position and orientation control” will be referred to as “positional control” hereinafter. Note also that instead of the position command value, theposition teaching data 321 may be composed of time series data of an angle command value indicating a target angle of each of the joints J1 through J6 or of an angle command value indicating a target angle of each of themotors 231. - One exemplary feedback control in the positional control will be described. The
CPU 301 converts the position command value of theteaching data 320 into the angle command value indicating a target value of an angle of each of the joints J1 through J6. TheCPU 301 further converts the angle command value of each of the joints J1 through J6 into an angle command value indicating a target value of a rotational angle of themotor 231 disposed in each of the joints J1 through J6. Then, theCPU 301 outputs the angle command value to themotor 231 of each of the joints J1 through J6 to theservo controller 360 with a predetermined frequency. Theservo controller 360 controls an electric current supplied to themotor 231 such that an angle detected by theencoder 253 approaches the angle command value. The position of the tip of therobot arm 201 is brought closer to the position command value by the position control described above. - One exemplary feedback control in the force control will be described. The
CPU 301 calculates a torque command value with respect to each of themotors 231 such that a force generated at the tip of therobot arm 201 is equalized with a force command value of theteaching data 320 and outputs the calculated torque command value to theservo controller 360. Theservo controller 360 controls an electric current supplied to themotor 231 such that a torque generated in each joint approaches the torque command value based on an angular value of eachencoder 253. Eachmotor 231 generates a driving force by being energized by the current and thereby generates a torque in each joint such that a force is generated at the tip of therobot arm 201. Eachencoder 253 outputs a signal indicating an angular value of eachmotor 231 to theCPU 301. Eachtorque sensor 252 outputs a signal indicating each torque value to theCPU 301. Thereby, the angular value of eachencoder 253 and the torque value of eachtorque sensor 252 are fed back to theCPU 301. TheCPU 301 calculates an angular value of each the joints J1 through J6 based on a robot model described later and the angular value of theencoder 253. TheCPU 301 also calculates a position of the tip of therobot arm 201 based on the robot model and the angular value of each of the joints J1 through J6. TheCPU 301 calculates a force generated at the tip of therobot arm 201 based on the angle value of each joint and the torque value of each joint. The force generated at the tip of therobot arm 201 is approached the force command value by the force control described above. - The angle command value and the torque command value outputted from the
CPU 301 to theservo controller 360 are drive command values. TheCPU 301 can perform the position control and the force control by feedback control by generating the drive command values corresponding to themotor 231 of each of the joints J1 through J6 of therobot arm 201 from theteaching data 320 -
FIG. 3 illustrates a relationship between a force F1 measured by using theforce sensor 251 and a force F2 measured by using thetorque sensor 252. An operational force required for the teacher to manipulate the handlingportion 203 is denoted by F, and a contact force generated when thehand 202 or a supporting structure supported by thehand 202 comes into contact with the work target object is denoted by f Note that the plurality oftorque sensors 252 is handled all together as one sensor as illustrated inFIG. 3 . - As illustrated in
FIG. 3 , theforce sensor 251 and thetorque sensor 252 are disposed with an operation point P indicating the handlingportion 203 between the sensors. A force F1 measured by using theforce sensor 251 is the contact force f itself with the work target object. Meanwhile, a force F2 measured by using thetorque sensor 252 is a resultant force of the contact force f and the operational force F (f+F). That is, the contact force f also acts on the handlingportion 203 in addition to the operational force F applied by the teacher. - The
robot controller 350 can perform force feedback control of changing the drive command value corresponding to themotor 231 of each of the joints J1 through J6 based on the contact force f and the operational force F. More specifically, therobot controller 350 can perform a control of pressing the gripping object to the work target object with a predetermined force by changing the drive command value corresponding to themotor 231 of each of the joints J1 through J6 such that the contact force f becomes a predetermined force. Therobot controller 350 also change the drive command value corresponding to themotor 231 of each of the joints J1 through J6 based on an impedance model of information of the operational force F and virtual viscosity and inertia. This arrangement makes it possible for a person to move therobot arm 201 based on the operational force F applied to the handlingportion 203. That is, therobot controller 350 performs impedance control on therobot arm 201 such that therobot arm 201 operates following a direction of the operational force F acting on therobot arm 201. - A case of performing the direct teaching on the
robot arm 201 will be described below.FIG. 4 is a control block diagram of thecontrol system 300 inFIG. 2 . TheCPU 301 illustrated inFIG. 2 functions as each ofportions 331 through 344 illustrated inFIG. 4 by executing theprogram 325. TheHDD 304 inFIG. 2 functions as astorage unit 346 inFIG. 4 . Therobot model 347 is information (data) such as a shape and size of therobot arm 201 and is stored in theHDD 304 in advance.Hand information 348 is information such as a shape and dimensions of thehand 202 and is stored in advance in theHDD 304. - In performing the direct teaching, the
robot controller 350 performs the impedance control on therobot arm 201 such that therobot arm 201 operates following a direction of the operational force F acting on therobot arm 201. As the direct teaching, there is also a method of generating teaching data by determining teaching points determined by the teacher by pressing a determination button at main points while manually manipulating therobot arm 201 and by connecting these teaching points. Meanwhile, in the direct teaching of the present embodiment, therobot controller 350 thoroughly acquires a series of operational data generated when the teacher manipulates therobot arm 201 and after the acquisition of the series of time series data, generates theteaching data 320 based on this data. This arrangement makes it possible to improve reproducibility of reproducing the operation of therobot arm 201 that has been taught by the teacher in an automatic operation of reproductively operating therobot arm 201 following theteaching data 320. - The process of generating the
teaching data 320 will be described below. When therobot controller 350 is taught, i.e., therobot controller 350 is set in the teaching mode, therobot controller 350 receives signals outputted from theforce sensor 251, thetorque sensor 252 and theencoder 253 with a predetermined frequency, e.g., 1 [ms]. Afirst measuring portion 331 measures a first force F1 based on the signal from theforce sensor 251, i.e., calculates data of the force F1, and stores the data of the force F1 in thestorage unit 346. Asecond measuring portion 332 measures a second force F2 based on the signals from the plurality oftorque sensors 251, i.e., calculates data of the force F2, and stores the data of the force F2 in thestorage unit 346. Athird measuring portion 333 finds each rotational angle of the plurality ofmotors 231 based on signals from each of the plurality ofencoders 253 and stores the data of each rotational angle of the plurality ofmotors 231 in thestorage unit 346. The data of the force F1, the data of the force F2 and the data of the rotational angles stored in thestorage unit 346 are time series data of every 1 [ms] for example. The respective data are synchronized so as to correspond with each other on time base. - An
orientation calculating portion 334 calculates an orientation of therobot arm 201 based on the data of the rotational angle of each encoder 253 stored in therobot model 347 and thestorage unit 346. The orientation of therobot arm 201 is interpreted as an angle of each of the joints J1 through J6 of therobot arm 201. Ahand calculating portion 335 calculates coordinates of the tip of therobot arm 201, i.e., the handlingportion 203, based the orientation data and thehand information 348 of therobot arm 201. That is, theorientation calculating portion 334 and thehand calculating portion 335 measure the position of the tip of therobot arm 201 in a time series manner. Note that the measurement of the position of the tip of therobot arm 201 is not limited to the case performed by using theencoder 253. For instance, it may be arranged such that the position of the tip of therobot arm 201 is measured by using a vision sensor disposed around therobot arm 201. - A contact
force calculating portion 336 calculates a contact force f from the force F1 measure by using theforce sensor 251. In the present embodiment, the force F1 measured by using theforce sensor 251 is the contact force f. An operationalforce calculating portion 337 calculates a differential value (F2−F1) between the data of the force F1 measured by using theforce sensor 251 and the data of the force F2 measured by using thetorque sensor 252. In the present embodiment, the differential value (F2−F1) is data of the operational force F. Thus, it is possible to sample only the data of the operational force F by the differential value (F2−F1). - Based on the measure result of the position of the
robot arm 201, the settingportion 338 divides an entire section of the time series data into a first section in which the position of therobot arm 201 is controlled while regenerating the operation and a second section in which the force of therobot arm 201 is controlled while regenerating the operation. In the present embodiment, the settingportion 338 divides the entire section of the time series data depending on whether magnitude of the calculated contact force f is zeroed. More specifically, the settingportion 338 sets the first section where the magnitude of the contact force f is zero and sets the second section in which the magnitude of the contact force f is not zero. It is noted that in the present embodiment, the first section can be said to be a first period in which the control of the position and orientation of therobot arm 201 is made such the data of the position and orientation of the third sensor described above (theencoder 253 in the present embodiment) is regenerated. Still further, the second section can be said to a second period in which the force of therobot arm 201 is controlled such that the first force data and the second force data described above are regenerated. These first and second periods are set by the settingportion 338 based on analytical results of the first and second force data as described above. It is noted that not only executing totally same robot motions but also executing different robot motions, as long as the motions are based on taught robot motions, are included in a conceptual range of the term “regenerate” in the present embodiment. That is, as long as the robot can be appropriately operated by the position control in the first period and the force control in the second period, the operation of the robot may be different from the taught operation. -
FIG. 5 illustrates the time series data of the operational force and the contact force.FIG. 5 illustrates an assembling operation in which thehand 202 is cause to grip a connector W1 which is one exemplary first part and to assemble the connector W1 with a connector W2 which is an exemplary second part.FIG. 5 also illustrates the operational force and the contact force based on an orthogonal coordinate system of X-Y-Z axes. It is noted that in order to simplify the following description, the operational force will be indicated only by operational forces Fx, Fy and Fz which are translation forces in the X, Y and Z directions. In the same manner, the contact force will be indicated only by contact forces fx, fy and fz which are translation forces in the X, Y and Z directions. The settingportion 338 divides the entire sections during which the time series data is measured into a section S1 which is a first section in which magnitude of the three contact forces fx, fy and fz are all zeroed and a section S2 which is a second section in which magnitude of the three contact forces fx, fy and fz are not zeroed. That is, a case where there is no contact force is the section S1, and a case where there is the contact force is the section S2. - In the section S1, no contact force is generated. That is, the three contact forces fx, fy and fz are zeroed. Specifically, it is a condition before the connectors W1 and W2 come into contact with each other. The operational forces Fx, Fy and Fz fluctuate corresponding to a force applied by an operator to the handling
portion 203. What is important in assembling the connectors W1 and W2 is a behavior after when the connectors W1 and W2 come into contact with each other. A locus of the motion and the fluctuation of the force are not important before the connectors W1 and W2 come into contact with each other. The force is divided into the contact force f and the operational force F in the present embodiment. Therefore, it is possible to divide the entire section into the section S1 in which the connectors W1 and W2 are not in contact with each other and the section S2 in which the connectors W1 and W2 are in contact with each other. - Because no contact force is generated as described above before the connectors W1 and W2 are in contact with each other, it is not necessary to perform the force control on the
robot arm 201. Accordingly, the position teachingdata generating portion 339 illustrated inFIG. 4 generates theposition teaching data 321 based on the data of the position of the tip of therobot arm 201 in the section S1. In the present embodiment, the position teachingdata generating portion 339 generates theposition teaching data 321 by interpolating between two points of data of a position of a starting point and of data of a position of an ending point in the section S1 by a predetermined interpolation method, e.g., linear interpolation and joint interpolation. This arrangement makes it possible to simplify a trajectory on the way and to quicken the motion of therobot arm 201. Note that theposition teaching data 321 may be the data itself of the measured time series position. Even in such a case, the motion of therobot arm 201 can be quickened as compared to a case of performing the force control. Still further, because therobot controller 350 automatically divides into the sections S1 and S2 in the present embodiment, the teacher can save a labor. Note that although it is preferable to set two points of starting and ending points to be interpolated as the starting and ending points of the section S1, the present disclosure is not limited to that and the two points may be a point before or after the starting point of the section S1 and a point before or after the ending point of the section S1. - Because a contact force is generated, i.e., either one of the three translation forces fx, fy and fz is not zero in the section S2, it is necessary to perform the force control on the
robot arm 201. A force teachingdata generating portion 342 illustrated inFIG. 4 generates a 322 such that therobot arm 201 operates with a force (third force) corresponding to the differential value (F2−F1), i.e., the operational force F, during the regenerated operation in the section S2. - A teaching
data generating portion 343 connects theposition teaching data 321 and theforce teaching data 322 generated as described above in a time series manner to generate ateaching data 320 and stores the generatedteaching data 320 in theHDD 304 serving as the storage unit. In the present embodiment, the teachingdata generating portion 343 composes a generating portion generating the teaching data having the first and second periods described above together with the position teachingdata generating portion 339, the force teachingdata generating portion 342, the correctingportion 340, thecomparison portion 341 and others. - When the regeneration operating mode is set, an
operation command portion 344 reads out theteaching data 320 stored in theHDD 304 to generate an operation command value and to output it to theservo controller 360. By regeneratively operating therobot arm 201 in accordance to theforce teaching data 322, themotor 231 of each of the joints J1 through J6 generate a torque that generates a force corresponding to the operational force F at the tip of therobot arm 201. This arrangement makes it possible to cause therobot arm 201 to regenerate the same operation with what the teacher (expert) has manipulated therobot arm 201. That is, an operation of therobot arm 201 taught by the teacher can be accurately regenerated at a part where a precision work is necessary among a series of operations of therobot arm 201. That is, it is possible to control the robot arm with a desirable mode based on the operation of the robot arm taught by the teacher. - While the data of the operational force F may be used as the
force teaching data 322 as it is, i.e., without correcting the differential value (F2−F1), the series of time series data includes wasteful operations such as hand-shake of the teacher and a preceding operation when a retry operation is made. Then, a correctingportion 340 and acomparison portion 341 correct the data of the operational force F in order to remove wasteful operations. In a case where the data of the operational force F is corrected, the force teachingdata generating portion 342 generates a force command value contained in theforce teaching data 322 from the corrected data of the operational force F. - A method for generating the
force teaching data 322, i.e., the force command value, will be specifically described below. The correctingportion 340 divides the section S2 in which the force control is performed into a plurality of sections S3-1, S3-2 and S3-3. - The S3-1 in
FIG. 5 represents a condition right after when the connectors W1 and W2 come into contact with each other. In the section S3-1, the contact forces fx, fy and fz change sharply. After that, the operational force Fy in the Y-direction is remarkably changed, meaning that the teacher tries to move therobot arm 201 in the Y-direction. Noticing the operational force Fy further, although the force is mostly applied in the +Y-direction, the force is applied temporally in the −Y-direction. The teacher intentionally returns therobot arm 201 in the −Y-direction after moving therobot arm 201 once in the +Y-direction. The operational force Fy is stabilized near an end of the section S3-1, indicating a condition in which a constant force is applied in the +yd. The teacher often finds the force required in assembling in such case where the force is stable. - In the section S3-2, the operational force Fx and the contact force fx in the x-direction vary sharply. The directions of the operational force Fx varies frequently, indicating that the teacher is applying the operational force vibrationally to the handling
portion 203. Because there is a case where the connectors W1 and W2 can be readily assembled by performing the assembling work while vibrating the connector W1, the teacher intentionally manipulates the handlingportion 203 vibrationally in this case. In a case where the direction of the operational force is inverted and is continuous in the data of the recorded force, it is determined to be an intentional operation and theforce teaching data 322 is generated without excluding the operational force data during that time. Thus, it is possible to reflect the operation intended by the teacher in regenerating the operation. If the operational force in this condition is simply corrected by moving average or the like, data without change of the operational force is generated, disabling to regenerate the operation intended by the teacher. Note that although the determination has been made by that the direction of the operational force is inverted and is continuous in the abovementioned description, the determination may be made by level of frequency of the inversion of the operational force. Because a response of several KHz or more is not what is manipulated by human, whether a correction is made or not may be decided by providing a threshold value before and after frequency around several Hz of a case where a person intentionally operates the handlingportion 203 vibrationally. - In the section S3-3, butting and assembling of the connectors W1 and W2 are completed, and the operational force is vanished after a sharp change of the contact force, indicating that the teaching operation has been finished.
- The data of the operational force F, the data of the contact force f and the data of the position are a continuous non-divisional data group. A method for sectioning the section S2 into the plurality of sections S3-1, S3-2 and S3-3 will be specifically described.
- Working speed of human tends to be lowered in precision works. Due to that, a section in which the
robot arm 201 is operated fast is considered to be an operation which requires no precision or a controlled oscillation. Then, in the present embodiment, the correctingportion 340 analyzes frequency of the data of the operational force F in the section S2 and based on the analyzed result, divides the section S2 into the plurality of sections S3-1, S3-2 and S3-3. Specifically, theCPU 301 performs the frequency analysis on the data of the operational force F and samples out a change point of the frequency to set the change point of the frequency as a point for sectioning the section. This arrangement makes it possible to sample the change point of the operation of the teacher i.e., to divide the section S2 into the plurality of sections by the change point of the operation of the teacher. Note that it is also possible to sample the change point of the operation of the teacher from changes of a main force component of the operational forces Fx, Fy and Fz and from changes of plus and minus of the direction of the respective forces. For instance, if the condition changes from a condition in which the operational force is applied only in the x-direction to a condition in which the force is applied in the y-direction, it can be seen that the teacher has somehow changed the operation intentionally. - The section S3 is one section among the three sections which are sectioned from the section S2.
FIG. 6 illustrates the section S3, i.e., the third section. As illustrated inFIG. 6 , theCPU 301 divides the section S3 further into a plurality of subsections SA. Each of the subsections SA has a same time interval and is set as data sampling period of 1 [ms] for example in the present embodiment. - The correcting
portion 340 finds magnitude of a change of the operational force F at an ending point with respect to a starting point in each of the plurality of subsections SA and stores it in theHDD 304 serving as the storage unit. The magnitude of the change of the operational force F is proportional to an angle of a vector indicated by an arrow in the graph inFIG. 6 . A label “S” is given in a case where the magnitude of the change of the operational force F is lower than a threshold value set in advance and a label “L” is given in a case where the magnitude is higher than the threshold value to store by correlating with the data of the magnitude of the change of the operational force F in theHDD 304. Still further, as for the direction of the change of the operational force F, a label “+” is given in a direction away from zero and “−” is given in a direction approaching to zero. As for the stored labels, a section in which subsections SA given the label of “S” continue by a predetermine number set in advance will be denoted as a continuous section SB. Sections other than the continuous section will be denoted as a section SC. - The correcting
portion 340 smooths the data of the operational force F contained in the continuous section SB by an averaging process or the like. That is, the correctingportion 340 smooths the operational force F applied from the handlingportion 203 during teaching for a specific period within the second period set by analysis of the first and second force data. The force teachingdata generating portion 342 generates theforce teaching data 322 from the smoothed data (operational force). Thus, the correctingportion 340 and the force teachingdata generating portion 342 generate theforce teaching data 322 such that the force generated in therobot arm 201 is smoothed in the continuous section SB. It is possible to remove wasteful operations such as hand-shake of the teacher by thus smoothing the minute changes. - The correcting
portion 340 processes in the section SC other than the continuous section SB as follows.FIGS. 7A, 7B and 7C illustrate the data of the operational force in the section S3. A broken line indicates the data of the operational force F before correction and a solid line indicates the data of the operational force F after the correction. A portion in which the broken line overlaps with the solid line indicates that the data of the operational force F is not corrected. - In a case where the operational force F crosses zero as illustrated in
FIG. 7A , the correctingportion 340 does not correct the data of the operational force F. Therefore, the force teachingdata generating portion 342 sets the data of the operational force F as theforce teaching data 322 as it is. It is because there is a possibility that the teacher intentionally vibrates therobot arm 201 when the plus and minus of the operational force is inverted. Here, the data of the operational force F crosses zero means that plus and minus signs of the data of the operational force F are switched. - Even in a case where the operational force F does not cross zero in the section SC as illustrated in
FIG. 7B , the correctingportion 340 does not correct the data of the operational force F in a case where the operational force F at the end point of the continuous section SB exists within a predetermined range R including zero. Therefore, the force teachingdata generating portion 342 sets the data of the operational force F as theforce teaching data 322 as it is. It is because in a case where the operational force F is in the vicinity of zero in the continuous section SB, force teaching zero data in which the operational force is all ignored is generated if the force teaching data is generated by smoothing the data. In order to avoid that, the data of the operational force F is not corrected in the section SC in a case ofFIG. 7B . - The correcting
portion 340 corrects and smooths the data of the operational force F in a case where the operational force F does not cross zero as illustrated inFIG. 7C and where the operational force F at the ending point of the continuous section SB exists outside of the predetermined range R including zero. Specifically, in the section SC, the correctingportion 340 smooths the data of the operational force F at a latter half section, with respect to a former half section, heading to the same operational force with the starting point of the continuous section SB. The force teachingdata generating portion 342 generates theforce teaching data 322 from the corrected data of the operational force F. Here, the section SC is a set of subsections before the continuous section SB. Thereby, the correctingportion 340 and the force teachingdata generating portion 342 generate theforce teaching data 322 such that the force (third force) generated by therobot arm 201 in a section before the continuous section SB is smoothed in the present embodiment. In a case ofFIG. 7C , theforce teaching data 322 is generated such that the operational force F increases with a largest inclination of the force vector in the former half of the section SC and the force teaching data within the continuous section SB is set as a final command value within the latter half of the section SC. This arrangement makes it possible to remove fluctuations of the force during when the teacher makes trial and error and to reflect a result of the final operational force from the beginning. - Next, a process of the
comparison portion 341 will be described.FIG. 8 illustrates a case when a retry operation is made in teaching connection of connectors. In a case where connectors W1 and W2 illustrated inFIG. 8 are connected with each other and in a case where a flexible object W such as a flexible flat cable is gripped by thehand 202, the flexible object W deforms largely or an orientation of the connector W1 is shifted largely with respect to an assembling direction if an excessive force is applied. In such a case, the teacher performs an operation of returning to an original position and performs the retry operation to adjust the force to be applied. -
FIG. 9 illustrates the process of thecomparison portion 341. As illustrated inFIG. 9 , a value of position data when the return operation is finished is equal with a value of position data before the assembling work is made. Accordingly, in a case where the retry operation in the latter half is made, the operations in the former half are all unnecessary. - Then, in the present embodiment, the
comparison portion 341 removes data between the two time series position data having the equal values and removes the operational force data synchronized with the removed position data out of the time series operational force data. In other words, thecomparison portion 341 refers to the position data synchronized with the operational force data corrected by the correctingportion 340 to determine whether there is similar time series position data. In a case where there is the similar time series position data, thecomparison portion 341 removes the similar time series position data together with synchronized force teaching data. The force teachingdata generating portion 342 generates theforce teaching data 322 from the operational force data partially removed. Thus, thecomparison portion 341 and the force teachingdata generating portion 342 generate theforce teaching data 322 such that the operations of therobot arm 201 between the two position data assuming the equal value among the time series position data in the section S2. Here, the “equal value” includes a case where the position data shift with each other within a tolerance set in advance in the storage unit such as theHDD 304. For instance, in a case where the tolerance is set at 0.1 [mm], values of coordinates X: 200.0 [mm], Y: 200.0 [mm] and Z: 200.0 [mm] are considered to be equal with values of coordinates X: 199.9 [mm], Y: 200.0 [mm] and Z: 200.0 [mm]. Note that in a case where the operation of therobot arm 201 between the two position data is omitted, it is preferable to omit an operation corresponding to either one position data among the two position data and to leave an operation corresponding to the other position data. In the case ofFIG. 9 , operations in a section S4 during which the assembling work is failed is omitted. That is, the generating portion (341, 342) determines whether the retry operation is made in teaching the robot arm based on the position and orientation data acquired by the third sensor and in a case where the determination is made such that the retry operation has been made, generates the teaching data so as not to regenerate failed operations. Thus, it is possible to remove the wasteful operation effectively by making the data processing together with the position data. - The operations of the
robot controller 350 have been described above along the block diagram illustrated inFIG. 4 .FIG. 10 is a flowchart summarizing the series of the processes of therobot controller 350. That is,FIG. 10 is a flowchart illustrating one exemplary robot teaching method of the first embodiment. - At first, the
CPU 301 acquires the time series position data, the operation force data and the contact force data of therobot arm 201 at the time of teaching in Step S101. Note that theCPU 301 reads the sectioning setting of the sections of the teaching data set manually in advance, the threshold value in labelling the subsection, the setting in determining similarity of the position data and others. - Next, the
CPU 301 performs the sectioning process in accordance to the setting reading each data during teaching in Step S102. Specifically, theCPU 301 divides as the sections S1, S3-1, S3-2, and S3-3 and so on as illustrated inFIG. 5 . - The
CPU 301 appliessection numbers 1 through Nmax to the sectioned data in a time series manner in Step S103. After that, theCPU 301 generates the teaching data per each section. TheCPU 301 defines a section processing number N and sets as N=1 at first in Step S104. - The
CPU 301 determines whether there exists a contact force in an Nth section in Step S105. If there is no contact force, i.e., No in Step S105, theCPU 301 executes, based on a position control in Step S106, a process of generating a position command value in Step S107. In Step S107, theCPU 301 connects positions of starting and ending points of the Nth section by a predetermined interpolation method, i.e., corrects the position data to generate the position command value. That is, theCPU 301 serving as the generating portion generates the position teaching data regenerating the first period (first section) by interpolating between the two points of the position and orientation data acquired by the third sensor by the predetermined interpolation method. - In a case where there exists the contact force, i.e., YES in Step S105, the
CPU 301 executes. Based on the force control in Step S108, a process of generating a force command value in Step S109. After generating the position command value or the force command value, theCPU 301 determines whether N<Nmax in Step S110. In a case where N<Nmax, i.e., YES in Step S110, theCPU 301 increments N by one in Step S111 and returns to the process in Step S105. In a case where N=Nmax, theCPU 301 generates theteaching data 320 in which command values of the entire sections are arrayed in a time series manner in Step S112. - The process in Step S109 in
FIG. 10 will be specifically described below.FIG. 11 is a flowchart illustrating the force command value generating process. TheCPU 301 determines whether there is a similar part in the position data in Step S121. In a case where there is a similar part, i.e., YES in Step S121, theCPU 301 executes a deleting process of deleting the position data of the part determined to be similar except of final data of the similar part together with the force data in the same time series in Step S122. - Next, the
CPU 301 further divides of data of the Nth section per sampling frequency of the force sensor to define as subsections in Step S123. Then, theCPU 301 appliesnumbers 1 through nmax to the respective subsections in Step S124. Note that theCPU 301 determines whether magnitude of a change of the operational force data in the subsection is large or small by a threshold value and applies a label. At this time, theCPU 301 sets a group of subsections in which the subsection having a small change continues as a continuous section. - The
CPU 301 defines a subsection processing number n and sets as n=1 at first in Step S125. TheCPU 301 determines whether a subsection of the Nth section is a continuous section in Step S126. If it is the continuous section, i.e., YES in Step S126, theCPU 301 generates a smooth force command value by implementing an averaging process on the operational force data in Step S127. - In a case where it is not the continuous section, i.e., NO in Step S126, the
CPU 301 determines whether the operational force F crosses zero in Step S128. If the operational force F crosses zero, i.e., YES in Step S128, theCPU 301 generates the force command value without processing the operational force data. In a case where the operational force F does not cross zero, i.e., NO in Step S128, theCPU 301 executes data processing of the operational force in Step S129. In a case where the continuous section exists in the Nth section as described above, theCPU 301 generates a force command value targeting a value in starting the continuous section. - Then the
CPU 301 then determines wither n<nmax in Step S130. In a case where n<nmax, i.e., YES in Step S130, theCPU 301 increments n by one in Step S131 and returns to the process in Step S126. In a case where n=nmax, i.e., NO in Step S130, theCPU 301 shifts to the process in Step S110 inFIG. 10 . - While the assembling operation of assembling the connectors W1 and W2 illustrated in
FIG. 5 with each other has been described above, there is also a case of causing therobot arm 201 to perform an exploring operation for example as a work to be performed by therobot 200. - There is a case where a human performs an assembling work by sense of hands without relying on eyesight. After visually setting a rough target position, that person carries out the assembling work by relying on the sense of hands. Because it is considered to be more efficient to find an assembling method of settling a part into a certain condition while abutting the part at a rough position and while pressing the part in a certain direction rather than assembling the part while correcting the target position visually corresponding to the part. The same applies to the assembling works using the
robot 200. -
FIGS. 12A through 12D illustrate an exploring operation in teaching the robot arm. Axes in directions along an upper surface of the workpiece W12 are denoted as X and Y and an axis in a direction orthogonal to the X and Y directions is denoted as Z. As illustrated inFIG. 12A , the robot arm is caused to perform the exploring operation (search position) in inserting a rod workpiece W11 into an insertion hole H12 of the workpiece W12. An insertion position is explored in the X and Y directions while abutting the work W11 gripped by the hand with the upper surface of the workpiece W12, i.e., the target of insertion, and while pressing against the upper surface with a certain force in the Z direction. In a case where the workpiece W11 comes near the insertion hole H12 as illustrated inFIG. 12B , the person senses a change of the contact force, changes the operational force and advances the assembling work to next stages as illustrated inFIGS. 12C and 12D . In a case where there is a change of the contact force during when the operational force changes, an assembling operation that enables to absorb a gap or the like is regenerated by setting the change of the contact force in a step enabling condition of the operation. However, in a case where although the operational force continuously fluctuates but the contact force does not change or changes less like the exploring operation (position search), a process different from the conventional one is required. Although the assembling operation can be regenerated by setting the change of the contact force as the step enabling condition of the operation in a case where the gap during the regenerating operation exists within an operational range into which the workpiece W11 comes near the insertion hole H12, it is unable to regenerate the operation when the gap of the parts exists outside of the operational range during teaching. As for the exploring operation, it is necessary to complement the operation from the time of teaching so as to be able to deal with the gap of the parts. - Then, according to the present embodiment, the
CPU 301 judges such an operation in which the contact force does not change or changes less even though the operational force continuously fluctuates as the exploring operation and complements the regenerating operation from a tendency of the operation.FIG. 13 illustrates a specific example of complementing a trajectory.FIG. 13 illustrates three exploring operations α, β and γ. That is, theCPU 301 can deal with the gap or the like of the parts and improve versatility by analyzing the tendency of the exploring operation from displacements of the respective coordinates until reaching to the insertion hole H12, i.e., until when the contact force changes, and by complementing the operation not included at the time of teaching. -
FIG. 14 illustrates arobot system 100A of a second embodiment. In the first embodiment, the case where the second sensor is the plurality of torque sensors and is disposed in each of the joints of therobot arm 201 has been described. In the second embodiment, the second sensor is theforce sensor 252A. Preferably, theforce sensor 252A is disposed between the tip of therobot arm 201 and the handlingportion 203. In the present embodiment, theforce sensor 252A is built in the handlingportion 203. The 252A is constructed in the same manner with theforce sensor 251. Theforce sensor 252A a signal corresponding to a force applied to the handlingportion 203 to therobot controller 350 with a predetermined frequency. Similarly to the first embodiment, the operational force F can be calculated by subtracting a force F1 measured by using theforce sensor 251 from a force F2 measured by using theforce sensor 252A also in the second embodiment. -
FIG. 15 illustrates arobot system 100B of a third embodiment. The case where theforce sensor 251 serving as the first sensor is mounted in therobot 200 has been described in the first embodiment. In the third embodiment, the first sensor is aforce sensor 251B provided on the base B on which a work target object W22 is placed. Theforce sensor 251B is configured in the same manner with theforce sensor 251 described in the first embodiment. - In a case where the
hand 202 grips the work W21, the WS21 comes into contact with the work target object W22. A contact force at this time acts on theforce sensor 251B. Theforce sensor 251B outputs a signal corresponding to the force which has acted on itself to therobot controller 350 with a predetermined frequency. Thus, therobot controller 350 can measure the contact force by using theforce sensor 251B. - Next, a fourth embodiment will be described with reference to
FIGS. 16 through 18B . In the fourth embodiment, only points different from the first embodiment will be described and the same configuration with the first embodiment will be denoted by the same reference numerals and description thereof will be omitted here.FIG. 16 is a block diagram illustrating a control system of a robot system of the fourth embodiment. As illustrated inFIG. 16 , the operatingportion 254 is connected with thebus 310 through an I/O 315. That is, the operatingportion 254 is connected with therobot controller 350 and is arranged to be able to acquire position and orientation information of therobot 200 and force sensor information from theforce sensor 251, thetorque sensor 252 and others through therobot controller 350. - As illustrated in
FIG. 17 , the operatingportion 254 includes adisplay area 256, an operatingportion 257, an external input/output portion 258, adisplay controller 259 and acommunication interface portion 260. The operatingportion 254 processes data acquired from therobot controller 350 to display on thedisplay area 256 and to inform of change of state of the operatingportion 257 to therobot controller 350. Here, the operatingportion 257 is a control portion controlling so as to be able to perform a change operation on the display information displayed on thedisplay area 256 by receiving an operation from a user (teaching operator). An external input/output portion 258 is an interface for inputting/outputting an arbitral sensor signal, a trigger signal and others from/to the outside. Thedisplay controller 259 is an output portion for outputting display information corresponding to the teaching data generated by the teachingdata generating portion 343 on a display area. Thedisplay controller 259 displays the display information as time series information discernible as the first section (first period) and the second section (second period) on thedisplay area 256. - Next, a configuration of the
display area 256 will be described in detail. Thedisplay area 256 renders the screen and displays data at the time of teaching as illustrated in a teaching data confirmation screen inFIG. 18A . The teaching data confirmation screen may be displayed always on thedisplay area 256 or may be switched as another screen by making transition of the screen. The position information of therobot 200 and the force sensor information of therobot 200 at the time of teaching are displayed as time series data (time series raw data) in the teaching data confirmation screen. The position information and the teaching data automatically generated from the force sensor information are also displayed together with the time series (time series teaching data). It is possible to discriminate and to confirm a region in which an intention of the operator is faithfully reflected and a region in which omission, smoothing and deletion are made by comparing the time series raw data thus obtained with the time series teaching data as the generated teaching data. Thedisplay area 256 may be also arranged such that the teaching data can be corrected while confirming the display. Note that although the data are displayed in upper and lower graphs inFIG. 18A for convenience, the data may be displayed by overlapping the graphs with each other. - The time series raw data is automatically sectioned and split as described above, and data processing is executed corresponding to a feature per each section to generate the teaching data. The section is split at least in unit of a first section (first period) and a second section (second period), and the operating
portion 257 can execute selection and change operations independently in these split sections. More specifically, according to the present embodiment, the first and second sections are subdivided further and are displayed by the section split described above. That is, a first subsection (first subsection) in which the first section is subdivided further and/or a second subsection (second short period) in which the second period is subdivided further are displayed on thedisplay area 256, and these first and second subsection are arranged such that selecting and changing operations respectively independently. It is noted that although the present embodiment is arranged such that first and second sections are automatically split into the subsections, it is also possible to arrange such that those sections are manually split into the subsections, and naturally, these subsections may be arranged so as to be selected, edited or deleted. - On the teaching data confirmation screen, the time series raw data and the time series data are displayed respectively such that divisions of the sections are discernible. In a case where the buttons provided on the operating
portion 257 and thedisplay area 256 of the operatingportion 254 are formed in the touch panel, the split section can be selected by directly clicking the screen. The selected section is indicated by being displayed by half-tone dot meshing, by reversing, by another color and the like such that it can be seen that the section has been selected to enable to select and to specify a method for generating the teaching data in the selected section. However, such information that indicates how the teaching data has been generated from the time series raw data without the selection of the section may be always displayed. - Still further, if a certain section is selected, a selection UI is displayed to enable to select a desirable process among various processes set in advance. For instance, it is possible to reselect a teaching data generating method such as averaging process, linear approximation, zero-valued, omission, generation of fastest trajectory, no-correction (teaching data is faithfully regenerated) or the like to regenerate the teaching data. In a case where the teaching data generating method is reselected, a confirmation screen questioning if the teaching data is to be regenerated is displayed. However, the regeneration may be automatically performed without the confirmation screen questioning if the teaching data is to be regenerated. In a case where the teaching data is regenerated, the time series teaching data is updated and displayed on the
display area 256. That is, if a changing operation on the display information being displayed on thedisplay area 256 is executed through the operatingportion 257, the teaching data is updated based on the changing operation described above by thedisplay controller 259 serving as an updating portion. The confirmation screen of the reselection and regeneration of the teaching data generating method may be made by displaying a popup screen or selecting by the button or the like allotted to the operatingportion 257. - In the case where the button provided on the operating
portion 257 and thedisplay area 256 of the operatingportion 254 are rendered as the touch panel, it is also possible not only to select the section but also the division itself of the section described above by directly clicking the screen. It is also arranged such that a move of the division of the section automatically processed and generated on the time base, deletion and addition of the division can be made and such that the time width of the section can be changed. The selection of the division of the section is made by the same manner in selecting the section described above. As for the addition of the division, an additional screen may be popped up by selecting a place where there is no division on the screen or may be made by the button allotted to the operatingportion 257. Note that in a case where thedisplay area 256 is rendered in the touch panel, the operatingportion 257 is configured integrally with thedisplay area 256. Still further, the changing operation described above is arranged to be executable based on the button on the operatingportion 257 or the operation of the touch panel. In addition to that, the button or the switch on the operatingportion 257 may be physical button and/or switch or may be button/switch displayed as images on the touch panel. - In succession, the configuration of the operating
portion 257 will be described in detail with reference toFIG. 18B . Note that the operatingportion 257 will be described as an example of a button displayed on thedisplay area 256 on the operatingportion 254 inFIG. 16 , it may be a physical button provided on the operatingportion 254. - The operating
portion 257 includes a teaching valid/invalid switch 257 a for switching whether a teaching work is valid or invalid, and when the teaching valid/invalid switch 257 a is valid, the time series raw data is updated and displayed. Although the time series raw data may be always updated and displayed on thedisplay area 256, the teaching valid/invalid switch 257 a is provided for a purpose of avoiding a load of the controller from increasing due to drawing or the like which are unnecessary, other than the teaching works. While a period during which the update and display is made can be set arbitrarily in advance, the period should be set appropriately by the operator because data display density increases it becomes hard to watch by the operator if the period is too long. - The operating
portion 257 also includes a teachingdata acquisition button 257 b and is arranged such that the time series raw data being displayed is reset and the display can be made from the beginning by operating the external input/output portion 258 b. That is, the operatingportion 257 realizes the function of the teachingdata acquisition button 257 b by a selecting portion enabling to select whether the first and second force data can be acquired in operating the handlingportion 203. In a case where the teachingdata acquisition button 257 b is pressed down or the teachingdata acquisition button 257 b is released, the robot stops right away at that position. The teachingdata acquisition button 257 b may be also provided in the handlingportion 203 of the robot side. - The operating
portion 257 also includes an executebutton 257 c that regenerates and operates the time series teaching data, and when the executebutton 257 c is pressed, the robot 200 (the robot arm 201) operates based on the selected time series teaching data. - Next, a flow at a time of teaching will be explained in detail. Teaching of the
robot 200 is started by validating the teaching valid/invalid switch 257 a. When the teaching valid/invalid switch 257 a is validated, the time series raw data is displayed on thedisplay area 256 of the operatingportion 254 for an arbitral period set in advance. Then, the teaching operator advances the examination such as the assembling works of the workpieces while watching the time series raw data. Then, when the examination reaches a state in which the trial and error operation is finished and the teaching data is to be actually generated, the teaching operator presses the teachingdata acquisition button 257 b to start to accumulate the time series raw data. - The accumulated time series raw data is displayed in split in the plurality of sections as described above, and the teacher can select or delete the data even when the teaching work is evaluated. It is possible to acquire the teaching data again from a beginning of a deleted section and to connect the teaching data by pressing the teaching
data acquisition button 257 b in a condition in which the deleted section is selected. - However, in a case where there is a difference more than a threshold value set in advance between final time series raw data (the position and orientation information in particular) of a section right before the deleted section and time series raw data acquired again, an alarm is indicated to avoid the connection of the data. It is also possible to provide a function of assisting the operator such that the data can be appropriately connected. For instance, it is a function of automatically operating at low speed so as to trace the section right before the deleted section and of informing the operator of an arrival when the tracing operation reaches in a vicinity of a final part of the section. In this case, the operator presses the teaching
data acquisition button 257 b to continue the teaching works after receiving the notification. Also, there may be a function of assisting in the same manner as described above concerning the connection with the next section right after the deleted section and of automatically interpolating to position and orientation at a beginning of the next section right after the deleted section at a moment of time when the teachingdata acquisition button 257 b is released. That is, what is important is not to generate a sharp change of the position and orientation at the connecting part of the teaching data. However, it is necessary to be careful because the continuity of the force information is lost. - When the teaching
data acquisition button 257 b is pressed, the time series teaching data is automatically generated from the acquired time series raw data and is displayed on thedisplay area 256 of the operatingportion 254. The operator confirms the displayed time series teaching data, edits appropriately and stores the teaching data. - Next, the teaching data regenerating operation will be described. The teaching data is regenerated by pressing the execute
button 257 c. The operator arranges various conditions in executing the teaching works such as an initial position of an assembly target object and an initial position and orientation of the robot for example and presses the executebutton 257 c. A position on the time base is displayed in the time series teaching data on thedisplay area 256 of the operatingportion 254 such that a part being regenerated can be seen. For example, it is such an indication or highlighted indication that a bar vertical to the time base moves with an elapse of time. This arrangement makes it possible for the operator to confirm a successful or problematic part in the teaching work and to edit the teaching data more readily. - It is possible to manage the time series raw data and the time series teaching data in the storage unit of the
robot controller 350 as set data such that they can be read again and to be edited again from theoperating unit 254, and an arbitral file name may be given to the teaching data to be stored. The abovementioned operation may be executed by the teaching pendant for teaching the robot or may be executed by a predetermined application on an arbitrary computer. - With the functions described above, it is possible to simply and readily execute the automatic generation and the correction of the teaching data. Therefore, it is possible to provide a UI that enables a person from a beginner's class user to a talent who is accustomed in handing a robot to simply execute the generation and correction of the teaching data. Still further, because the talent whose is accustomed in handling the robot can teach the robot while confirming the teaching data and can operate the robot in trial and error to generate the teaching data, it is possible to teach the robot in high level with the simple operation.
- Next, a fifth embodiment will be described with reference to
FIG. 19 . In the fifth embodiment, only points different from the fourth embodiment will be described and the same configuration with the fourth embodiment will be denoted by the same reference numerals and description thereof will be omitted here. The present embodiment is arranged such that the time series raw data and the time series teaching data are not displayed on thedisplay area 256 in parallel by matching the time bases. For instance, as illustrated inFIG. 19 , a part of the time base of the time series teaching data such as unnecessary operation is compressed, and correspondinglines 400 are indicated such that corresponding part of the section can be recognized and such that the compression amount of the data on the time bases can be readily seen. - It is noted that the present disclosure is not limited to the embodiments described above and may be modified within a technological thought of the present disclosure. The inventions described in the respective embodiments may be also combined in any ways. Still further, the effects described in the embodiments are merely enumeration of the most preferable effects brought about from the present disclosure, and the effects of the present disclosure is not limited to what described in the embodiments.
- The present disclosure can be realized also by a process by which a program realizing one or more functions of the embodiments described above is supplied to the system or the apparatus through a network or a storage medium and by which one or more processors in a computer of the system or the apparatus reads and executes the program. It is also possible to realize by a circuit, e.g., ASIC, realizing one or more functions.
- Still further, a case where the computer readable storage medium is the
HDD 304 has been described, the present disclosure is not limited to such case and any storage medium such as arecording disk 326 may be used. More specifically, various storage media such as a flexible disk, an optical disk, e.g., CD-ROM and DVD-ROM, a magneto-optical disk, a magnetic tape, and a non-volatile memory such as a USB memory, a ROM and others may be used as the storage medium. Theprogram 325 in the abovementioned embodiments may be also downloaded through a network to execute by the computer. - The present disclosure is not also limited to realizing the functions of the abovementioned embodiments by executing the program code read out by the computer. The present disclosure includes also a case where an OS (Operating System) or the like operated on the computer performs a part or whole of actual processes based on instructions of the program code and a case where the functions of the abovementioned embodiments are realized by such processes.
- Still further, the program code read out of the storage medium may be written into a memory provided in a function extension board inserted into the computer or in a function extension unit connected with the computer. That is, the present disclosure includes also a case where a CPU and others provided in the function extension board or the function extension unit actually performs a part or whole of the actual processes and realize the functions of the abovementioned embodiments by the processes.
- Embodiment(s) of the present invention can also be realized by a computer of a system or apparatus that reads out and executes computer executable instructions (e.g., one or more programs) recorded on a storage medium (which may also be referred to more fully as a ‘non-transitory computer-readable storage medium’) to perform the functions of one or more of the above-described embodiment(s) and/or that includes one or more circuits (e.g., application specific integrated circuit (ASIC)) for performing the functions of one or more of the above-described embodiment(s), and by a method performed by the computer of the system or apparatus by, for example, reading out and executing the computer executable instructions from the storage medium to perform the functions of one or more of the above-described embodiment(s) and/or controlling the one or more circuits to perform the functions of one or more of the above-described embodiment(s). The computer may comprise one or more processors (e.g., central processing unit (CPU), micro processing unit (MPU)) and may include a network of separate computers or separate processors to read out and execute the computer executable instructions. The computer executable instructions may be provided to the computer, for example, from a network or the storage medium. The storage medium may include, for example, one or more of a hard disk, a random-access memory (RAM), a read only memory (ROM), a storage of distributed computing systems, an optical disk (such as a compact disc (CD), digital versatile disc (DVD), or Blu-ray Disc (BD)™), a flash memory device, a memory card, and the like.
- While the present invention has been described with reference to exemplary embodiments, it is to be understood that the invention is not limited to the disclosed exemplary embodiments. The scope of the following claims is to be accorded the broadest interpretation so as to encompass all such modifications and equivalent structures and functions.
- This application claims the benefit of Japanese Patent Application No. 2018-023368, filed Feb. 13, 2018, and Japanese Patent Application No. 2018-227346, filed Dec. 4, 2018, which are hereby incorporated by reference herein in their entirety.
Claims (26)
1.-20. (canceled)
21. A controller of a robot system, the robot system comprising a robot having a predetermined portion which a user can move, a first sensor configured to acquire first information related to a force acting on the predetermined portion, a second sensor configured to acquire second information related to a position of the predetermined portion, the controller comprising a processing part,
wherein the processing part is configured to acquire the first information and the second information during the user moves the predetermined portion, and
wherein the processing part is configured to simplify, based on the first information, information related to a trajectory of the predetermined portion based on the second information acquired.
22. The controller according to claim 21 ,
wherein the processing part is configured to acquire information related to a contact force generated by a contact of the predetermined portion and a peripheral object based on the first information, and
wherein the processing part is configured to set a first section in which the information related to the trajectory during the user moves the predetermined portion is simplified based on the contact force.
23. The controller according to claim 22 , wherein the processing part is configured to acquire simplified information related to the trajectory as position control data.
24. The controller according to claim 23 , wherein the processing part is configured to acquire the position control data by interpolating between two points of the second information by a predetermined interpolation method.
25. The controller according to claim 24 , wherein the processing part is configured to perform linear interpolation or joint interpolation as the predetermined interpolation method.
26. The controller according to claim 24 , wherein the processing part is configured to set one point among a starting point of the first section and a point before or after the starting point of the first section, and another point among an ending point of the first section and a point before or after the ending point of the first section as the two points.
27. The controller according to claim 22 , wherein the processing part is configured to perform a position control and not to perform a force control in the first section.
28. The controller according to claim 21 , wherein the processing part is configured to move the predetermined portion by performing direct teaching of the user.
29. The controller according to claim 21 ,
wherein the processing part is configured to acquire information related to a contact force generated by a contact of the predetermined portion and a peripheral object based on the first information, and
wherein the processing part is configured to set a second section in which perform a force control in the information related to the trajectory based on the information related to the contact force.
30. The controller according to claim 29 ,
wherein the robot system includes a handling portion handled by the user, and
wherein the processing part is configured to move the predetermined portion by the user handling the handling portion.
31. The controller according to claim 30 ,
wherein the robot system includes a third sensor configured to acquire third information related to a force acting on the handling portion,
wherein the processing part is configured to acquire third information during the user moves the predetermined portion, and
wherein the processing part is configured to acquire information related to a handling force given to the handling portion by handling of the user during the predetermined portion is moved by the user based on the first information and the third information.
32. The controller according to claim 31 , wherein the processing part is configured to acquire force control data to perform the force control of the robot in the second section based on the information related to the handling force.
33. The controller according to claim 29 ,
wherein the robot system includes a handling portion handled by the user,
wherein the robot system includes a third sensor configured to acquire third information related to a force acting on the handling portion,
wherein the processing part is configured to acquire third information during the user moves the predetermined portion,
wherein the processing part is configured to acquire information related to a handling force given to the handling portion by handling of the user during the predetermined portion is moved by the user based on the first information and the third information, and
wherein in a case where although the information related to the handling force continuously fluctuates but the contact force does not change or a number of a change is a predetermine number or less in a section, the processing part is configured to determine the section as a section of an exploring operation.
34. The controller according to claim 31 ,
wherein the processing part is configured to acquire force control data to perform the force control of the robot in the second section based on the information related to the handling force, and
wherein the processing part is configured to smooth the information related to the handling force and acquire the force control data based on the information related to a handling force smoothed.
35. The controller according to claim 31 ,
wherein the processing part is configured to acquire force control data to perform the force control of the robot in the second section based on the information related to the handling force, and
wherein the processing part is configured to set one section in which the processing part acquires the information related to the handling force as the force control data by correcting based on change of the information related to the handling force, and other section in which the processing part acquires the information related to the handling force as the force control data without the correction.
36. The controller according to claim 31 ,
wherein the processing part is configured to acquire force control data to perform the force control of the robot in the second section based on the information related to the handling force, and
wherein the processing part is configured to determine whether a retry operation is made in teaching the robot based on the first information, the second information, and the third information, and in a case where a determination is made such that the retry operation has been made, the processing part is configured to acquire the force control data so as not to regenerate failed operations.
37. The controller according to claim 27 ,
wherein the processing part is configured to set a second section in which perform a force control in the information related to the trajectory based on the information related to the contact force,
wherein the controller includes an output portion configured to output display information corresponding to the first section in which the position control is performed and the second section in which the force control is performed on a display unit, and
wherein the output portion is configured to display the display information as time series information such that the first section and the second section are discernible on the display unit.
38. A robot system comprising:
a robot having a predetermined portion which a user can move;
a first sensor configured to acquire first information related to a force acting on the predetermined portion of the robot;
a second sensor configured to acquire second information related to a position of the predetermined portion of the robot; and
a controller,
wherein the controller is configured to acquire the first information and the second information during the user moves the predetermined portion, and
wherein the controller is configured to simplify, based on the first information, information related to a trajectory of the predetermined portion based on the second information acquired.
39. A product manufacturing method manufacturing a product by using the robot system as set forth in claim 38 .
40. A control method of a robot system comprising a robot having a predetermined portion which a user can move, a first sensor configured to acquire first information related to a force acting on the predetermined portion of the robot, and a second sensor configured to acquire second information related to a position of the predetermined portion of the robot,
the control method comprising:
acquiring the first information and the second information during the user moves the predetermined portion, and
simplifying, based on the first information, information related to a trajectory of the predetermined portion based on the second information acquired.
41. A non-transitory computer readable medium storing a program causing a computer to execute the control method as set forth in claim 40 .
42. A controller of a robot system, the robot system comprising a robot having a predetermined portion which a user can move, a first sensor configured to acquire first information related to a force acting on the predetermined portion, a second sensor configured to acquire information related to a handling force during the user moves the predetermined portion as second information, the controller comprising a processing part,
wherein the processing part is configured to acquire the first information and the second information during the user moves the predetermined portion, and
wherein the processing part is configured to simplify, based on the first information, the information related to the handling force based on the second information acquired.
43. A robot system comprising:
a robot having a predetermined portion which a user can move;
a first sensor configured to acquire first information related to a force acting on the predetermined portion of the robot;
a second sensor configured to acquire information related to a handling force during the user moves the predetermined portion as second information; and
a controller,
wherein the controller is configured to acquire the first information and the second information during the user moves the predetermined portion, and
wherein the controller is configured to simplify, based on the first information, the information related to the handling force based on the second information acquired.
44. A control method of a robot system comprising a robot having a predetermined portion which a user can move, a first sensor configured to acquire first information related to a force acting on the predetermined portion of the robot, and a second sensor configured to acquire information related to a handling force during the user moves the predetermined portion as second information,
the control method comprising:
acquiring the first information and the second information during the user moves the predetermined portion, and
simplifying, based on the first information, the information related to the handling force based on the second information acquired.
45. A non-transitory computer readable medium storing a program causing a computer to execute the control method as set forth in claim 44 .
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US18/489,629 US20240042603A1 (en) | 2018-02-13 | 2023-10-18 | Controller of robot and control method |
Applications Claiming Priority (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018023368 | 2018-02-13 | ||
JP2018-023368 | 2018-02-13 | ||
JP2018227346A JP7483321B2 (en) | 2018-02-13 | 2018-12-04 | Control device, control method, robot system, article manufacturing method, display device, program, and recording medium |
JP2018-227346 | 2018-12-04 | ||
US16/269,306 US11872698B2 (en) | 2018-02-13 | 2019-02-06 | Controller of robot and control method |
US18/489,629 US20240042603A1 (en) | 2018-02-13 | 2023-10-18 | Controller of robot and control method |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US16/269,306 Continuation US11872698B2 (en) | 2018-02-13 | 2019-02-06 | Controller of robot and control method |
Publications (1)
Publication Number | Publication Date |
---|---|
US20240042603A1 true US20240042603A1 (en) | 2024-02-08 |
Family
ID=67540708
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US16/269,306 Active 2039-06-29 US11872698B2 (en) | 2018-02-13 | 2019-02-06 | Controller of robot and control method |
US18/489,629 Pending US20240042603A1 (en) | 2018-02-13 | 2023-10-18 | Controller of robot and control method |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US16/269,306 Active 2039-06-29 US11872698B2 (en) | 2018-02-13 | 2019-02-06 | Controller of robot and control method |
Country Status (3)
Country | Link |
---|---|
US (2) | US11872698B2 (en) |
JP (1) | JP2024028392A (en) |
CN (2) | CN116604589A (en) |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6484265B2 (en) * | 2017-02-15 | 2019-03-13 | ファナック株式会社 | Robot system having learning control function and learning control method |
JP7427358B2 (en) | 2017-07-20 | 2024-02-05 | キヤノン株式会社 | Robot system, article manufacturing method, control method, control program, and recording medium |
JP6969447B2 (en) * | 2018-03-05 | 2021-11-24 | 日本電産株式会社 | Robotic controller, record creation method and program |
DE102019107975B3 (en) * | 2019-03-28 | 2020-08-13 | Franka Emika Gmbh | Teaching in a holding force for an object in a robotic gripper |
JP7375345B2 (en) * | 2019-06-27 | 2023-11-08 | セイコーエプソン株式会社 | robot |
JP7451940B2 (en) * | 2019-10-31 | 2024-03-19 | セイコーエプソン株式会社 | Control method and calculation device |
US20230047834A1 (en) * | 2020-01-22 | 2023-02-16 | Abb Schweiz Ag | System and method for controlling the robot, electronic device and computer readable medium |
KR102386009B1 (en) * | 2020-07-30 | 2022-04-13 | 네이버랩스 주식회사 | Method for learning robot task and robot system using the same |
US20220134557A1 (en) * | 2020-10-30 | 2022-05-05 | Sintokogio, Ltd. | Control device, robot control system, program, and control method |
US11673264B2 (en) * | 2021-03-25 | 2023-06-13 | Mitsubishi Electric Research Laboratories, Inc. | System and method for robotic assembly based on adaptive compliance |
US12032352B2 (en) * | 2021-06-14 | 2024-07-09 | Mantis Robotics, Inc. | Servo joint safety position monitoring apparatus and method |
CN113771044B (en) * | 2021-10-09 | 2022-11-11 | 北京卫星环境工程研究所 | Robot tail end load dynamic stress sensing method |
WO2023245600A1 (en) * | 2022-06-24 | 2023-12-28 | Abb Schweiz Ag | Method, device and computer readable media for use with robot |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0259287A (en) | 1988-08-26 | 1990-02-28 | Nippon Telegr & Teleph Corp <Ntt> | Control method for manipulator |
JP3235535B2 (en) * | 1997-09-26 | 2001-12-04 | 松下電器産業株式会社 | Robot control device and control method thereof |
JPH11231925A (en) | 1998-02-10 | 1999-08-27 | Yaskawa Electric Corp | Hand of direct teaching robot |
JP2003136450A (en) * | 2001-10-26 | 2003-05-14 | Communication Research Laboratory | Remote control system of robot arm by providing audio information |
US8676379B2 (en) * | 2006-07-04 | 2014-03-18 | Panasonic Corporation | Device and method for controlling robot arm, robot, and robot arm control program |
JP2008134903A (en) | 2006-11-29 | 2008-06-12 | Yaskawa Electric Corp | Reproduction device for robot teaching |
JP5338297B2 (en) | 2008-12-19 | 2013-11-13 | 株式会社安川電機 | Robot control device |
US20170028557A1 (en) * | 2015-07-28 | 2017-02-02 | Comprehensive Engineering Solutions, Inc. | Robotic navigation system and method |
WO2013035244A1 (en) * | 2011-09-06 | 2013-03-14 | パナソニック株式会社 | Robotic arm control device and control method, robot, control program and integrated electronic circuit |
CN104552291B (en) * | 2013-10-10 | 2018-05-18 | 精工爱普生株式会社 | Robot controller, robot system, robot and robot control method |
JP6100727B2 (en) * | 2014-04-09 | 2017-03-22 | ファナック株式会社 | Human cooperative industrial robot with read-through function |
JP6379874B2 (en) * | 2014-08-29 | 2018-08-29 | 株式会社安川電機 | Teaching system, robot system, and teaching method |
JP6052918B2 (en) | 2015-02-27 | 2016-12-27 | 株式会社神戸製鋼所 | Setting support apparatus, setting support method, and program |
JP6648469B2 (en) | 2015-10-07 | 2020-02-14 | セイコーエプソン株式会社 | Robot system and robot controller |
JP2017124455A (en) | 2016-01-12 | 2017-07-20 | キヤノン株式会社 | Robot device, robot control method, program and record medium |
JP6434446B2 (en) * | 2016-04-28 | 2018-12-05 | ファナック株式会社 | Processing system |
-
2019
- 2019-02-06 US US16/269,306 patent/US11872698B2/en active Active
- 2019-02-13 CN CN202310781806.8A patent/CN116604589A/en active Pending
- 2019-02-13 CN CN201910111920.3A patent/CN110154018B/en active Active
-
2023
- 2023-10-18 US US18/489,629 patent/US20240042603A1/en active Pending
-
2024
- 2024-01-05 JP JP2024000566A patent/JP2024028392A/en active Pending
Also Published As
Publication number | Publication date |
---|---|
JP2024028392A (en) | 2024-03-04 |
CN110154018A (en) | 2019-08-23 |
US11872698B2 (en) | 2024-01-16 |
US20190248006A1 (en) | 2019-08-15 |
CN110154018B (en) | 2023-07-21 |
CN116604589A (en) | 2023-08-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20240042603A1 (en) | Controller of robot and control method | |
US11685042B2 (en) | Working robot and control method for working robot | |
JP7483321B2 (en) | Control device, control method, robot system, article manufacturing method, display device, program, and recording medium | |
JP5545534B2 (en) | Robot teaching reproduction device, teaching reproducing method, and teaching data creation method | |
JP5176790B2 (en) | Robot teaching reproducing apparatus and teaching reproducing method | |
JP5311294B2 (en) | Robot contact position detector | |
JP5338297B2 (en) | Robot control device | |
CN109834695B (en) | Teaching device and teaching method for teaching operation of robot | |
EP2450157A2 (en) | Robot controlling device | |
JP7049069B2 (en) | Robot system and control method of robot system | |
JP2018167334A (en) | Teaching device and teaching method | |
JP2008134903A (en) | Reproduction device for robot teaching | |
US11833687B2 (en) | Robot apparatus, control method for the robot apparatus, assembly method using the robot apparatus, and recording medium | |
JP3577124B2 (en) | Method of acquiring mating data using force control robot | |
CN114055460B (en) | Teaching method and robot system | |
JPH08281584A (en) | Joy stick signal processing device | |
JP2709001B2 (en) | Work Object Position Detector for Force Control Robot | |
JPH0724758A (en) | Position teaching system of positioning device | |
JP2577003B2 (en) | Robot control method | |
US20240066700A1 (en) | Device for simulating operation of robot, device for controlling robot, and method for simulating operation of robot | |
US20240131699A1 (en) | Robot system, learning apparatus, information processing apparatus, learned model, control method, information processing method, method for manufacturing product, and recording medium | |
US20230264353A1 (en) | Manipulation apparatus, robot system, manipulation apparatus control method, and robot system control method | |
JP2007121146A (en) | Surface roughness/shape-measuring apparatus and program for controlling the same | |
JP2022033934A (en) | Robot system and robot system control method | |
CN118450969A (en) | Action path generation device, action path generation method, and action path generation program |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
STPP | Information on status: patent application and granting procedure in general |
Free format text: DOCKETED NEW CASE - READY FOR EXAMINATION |