WO2020075589A1 - 情報処理装置、情報処理方法、及びプログラム - Google Patents

情報処理装置、情報処理方法、及びプログラム Download PDF

Info

Publication number
WO2020075589A1
WO2020075589A1 PCT/JP2019/038905 JP2019038905W WO2020075589A1 WO 2020075589 A1 WO2020075589 A1 WO 2020075589A1 JP 2019038905 W JP2019038905 W JP 2019038905W WO 2020075589 A1 WO2020075589 A1 WO 2020075589A1
Authority
WO
WIPO (PCT)
Prior art keywords
vibration
data
information processing
control unit
command
Prior art date
Application number
PCT/JP2019/038905
Other languages
English (en)
French (fr)
Inventor
佳和 古山
和仁 若菜
慶直 袖山
一生 本郷
Original Assignee
ソニー株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ソニー株式会社 filed Critical ソニー株式会社
Publication of WO2020075589A1 publication Critical patent/WO2020075589A1/ja

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J15/00Gripping heads and other end effectors
    • B25J15/08Gripping heads and other end effectors having finger members
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J19/00Accessories fitted to manipulators, e.g. for monitoring, for viewing; Safety devices combined with or specially adapted for use in connection with manipulators
    • B25J19/02Sensing devices
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01HMEASUREMENT OF MECHANICAL VIBRATIONS OR ULTRASONIC, SONIC OR INFRASONIC WAVES
    • G01H17/00Measuring mechanical vibrations or ultrasonic, sonic or infrasonic waves, not provided for in the preceding groups

Definitions

  • the present disclosure relates to an information processing device, an information processing method, and a program.
  • robots that place an object held by a robot hand on an object are known.
  • the object may fall or fall from the object.
  • a technique capable of detecting contact between an object and an object in order to stably pass the object held by the robot hand to the object is released before the object contacts the object.
  • the present disclosure proposes an information processing device, an information processing method, and a program that can detect contact between an object and an object.
  • a vibration control unit that outputs a vibration command that vibrates an object held by a holding device, and a vibration that acquires vibration data of the object that vibrates based on a vibration condition defined by the vibration command.
  • An information processing apparatus including a data acquisition unit and a contact detection unit that detects contact between the object and an object based on the vibration data is provided.
  • FIG. 1 It is a figure which shows an example of the robot which concerns on the 1st Embodiment of this indication. It is a figure which shows an example of operation
  • 3 is a diagram showing an example of a method for detecting contact between an object and an object according to the first embodiment of the present disclosure.
  • 3 is a flowchart showing an example of an information processing method according to the first embodiment of the present disclosure. It is a figure which shows an example of the vibrating method of the object which concerns on the 1st modification of 1st Embodiment of this indication. It is a figure which shows an example of the vibrating method of the object which concerns on the 2nd modification of 1st Embodiment of this indication. It is a figure which shows an example of the detection method of the contact of the object and object which concern on the 2nd modification of 1st Embodiment of this indication.
  • FIG. 2 is a hardware configuration diagram illustrating an example of a computer that realizes functions of an information processing device.
  • First Embodiment 1-1 Configuration of robot according to first embodiment 1-2. Configuration of information processing apparatus according to first embodiment 1-3. Procedure of information processing method according to first embodiment 1-4. Effects according to the first embodiment 2.
  • Second embodiment 4-1 Configuration of information processing apparatus according to second embodiment 4-2.
  • Third embodiment 6-1 Configuration of information processing apparatus according to third embodiment 6-2. Procedure of information processing method according to third embodiment 6-3. Effects of the third embodiment 7.
  • FIG. 1 is a diagram illustrating an example of a robot 1 according to the first embodiment of the present disclosure.
  • the robot 1 operates in the work space.
  • the robot 1 executes the work of transferring the object B from the storage position Ps to the target position Pt.
  • an XYZ orthogonal coordinate system is set in the work space, and the positional relationship of each part will be described with reference to the XYZ orthogonal coordinate system.
  • the XYZ orthogonal coordinate system is a local coordinate system set in the work space.
  • the direction parallel to the X axis in the predetermined plane is the X axis direction.
  • the direction parallel to the Y axis in a predetermined plane orthogonal to the X axis is defined as the Y axis direction.
  • the direction parallel to the Z axis orthogonal to the predetermined plane is the Z axis direction.
  • a rotation direction or an inclination direction around the X axis is defined as ⁇ X direction.
  • a rotation direction or an inclination direction around the Y axis is defined as a ⁇ Y direction.
  • a rotation direction or an inclination direction around the Z axis is defined as ⁇ Z direction.
  • the predetermined surface is appropriately referred to as an XY plane.
  • the XY plane is parallel to the horizontal plane.
  • the XY plane may be inclined with respect to the horizontal plane.
  • the robot 1 includes a body portion 2, a head 3, a traveling device 5 having a traveling motor 4, a robot arm 7 having an arm actuator 6, a hand actuator 8 and a vibration actuator 9.
  • the robot hand 10 a position sensor 11, a distance sensor 12, an angle sensor 13, a vibration sensor 14, and an information processing device 100 are provided.
  • the body 2 is long in the Z-axis direction.
  • the reference position P0 of the robot 1 is set on the body 2.
  • the head 3 is connected to the upper part of the body 2.
  • the head 3 is rotatably supported by the body 2.
  • the traveling device 5 moves the body 2.
  • the traveling device 5 is attached to the lower portion of the body 2.
  • the traveling device 5 travels on the floor of the work space.
  • the body portion 2 moves in the XY plane parallel to the floor surface.
  • the traveling device 5 has wheels 15 that are rotated by the driving force generated by the traveling motor 4. When the wheels 15 rotate, the traveling device 5 travels on the floor surface.
  • the robot arm 7 includes an articulated robot arm.
  • the robot arm 7 is connected to each of the one side portion and the other side portion of the body portion 2.
  • the robot arm 7 is operated by the driving force generated by the arm actuator 6.
  • the robot arm 7 has a plurality of links 16 and a plurality of joints 17.
  • the link 16 includes a first link 16A and a second link 16B.
  • the joint 17 includes a first joint 17A that connects the body portion 2 and the first link 16A, a second joint 17B that connects the first link 16A and the second link 16B, a second link 16B, and the robot hand 10. And a third joint 17C for connecting.
  • the arm actuator 6 generates a driving force that operates the link 16.
  • a servomotor is exemplified as the arm actuator 6.
  • the arm actuator 6 includes a first arm actuator 6A that generates a driving force that operates the first link 16A, a second arm actuator 6B that generates a driving force that operates the second link 16B, and a drive that operates the robot hand 10. And a third arm actuator 6C that generates a force.
  • the first arm actuator 6A By driving the first arm actuator 6A, the first link 16A rotates about the rotation axis of the first joint 17A.
  • the second arm actuator 6B By driving the second arm actuator 6B, the second link 16B rotates about the rotation axis of the second joint 17B.
  • the robot hand 10 rotates about the rotation axis of the third joint 17C.
  • the robot hand 10 is a holding device that holds the object B.
  • the robot hand 10 is connected to the tip of the robot arm 7.
  • the robot hand 10 is operated by the driving force generated by the hand actuator 8.
  • the robot hand 10 has a base member 18 connected to the tip of the second link 16B via a third joint 17C, and a pair of holding members 19 movably supported by the base member 18.
  • the one holding member 19 is movably supported by the base member 18 so as to approach the other holding member 19 or separate from the other holding member 19. Both holding members 19 may be movably supported by the base member 18.
  • the hand actuator 8 generates a driving force that operates the holding member 19.
  • a linear actuator is exemplified as the hand actuator 8.
  • the hand actuator 8 When the hand actuator 8 is driven, one holding member 19 moves so as to approach the other holding member 19 or move away from the other holding member 19.
  • the object B is sandwiched by the pair of holding members 19 by moving the one holding member 19 so as to approach the other holding member 19 in a state where the object B is arranged between the pair of holding members 19.
  • the robot hand 10 holds the object B by sandwiching the object B between the pair of holding members 19. By moving the pair of holding members 19 away from the other holding member 19, the holding of the object B by the robot hand 10 is released.
  • the vibration actuator 9 generates a vibration force that vibrates the object B held by the robot hand 10.
  • the vibration actuator 9 at least one of a piezoelectric element, an eccentric motor, and a linear vibrator (Linear Resonant Actuator: LRA) is exemplified.
  • the vibration actuator 9 is provided on the base member 18.
  • the vibration actuator 9 vibrates the base member 18 to vibrate the object B held by the robot hand 10.
  • the vibration actuator 9 may be provided on the holding member 19.
  • the vibration actuator 9 may vibrate the object B held by the robot hand 10 by vibrating the holding member 19.
  • the three vibration actuators 9 can vibrate the object B held by the robot hand 10 in at least one of the X-axis direction, the Y-axis direction, and the Z-axis direction.
  • the position sensor 11 detects the position of the robot 1 in the work space.
  • the position sensor 11 is provided in the body portion 2.
  • the position sensor 11 detects the reference position P0 of the robot 1 set on the body 2.
  • An example of the position sensor 11 is a GNSS sensor that detects the position of the robot 1 by using the Global Navigation Satellite System (GNSS).
  • GNSS Global Navigation Satellite System
  • a gyro sensor may be used as the position sensor 11.
  • As the position sensor 11, at least one of a laser sensor and a radar sensor that detects the position of the robot 1 by detecting the relative position with respect to a reference member provided in the work space may be used.
  • a pulse sensor that estimates the position of the robot 1 by detecting the rotation speed of the wheels 15 may be used.
  • the distance sensor 12 detects the distance Da between the distance sensor 12 and the object S.
  • Examples of the distance sensor 12 include at least one of an ultrasonic sensor, a laser sensor, a laser range finder, and a distance image sensor.
  • the angle sensor 13 detects the angle of the link 16.
  • a rotary encoder is exemplified as the angle sensor 13.
  • the angle sensor 13 includes a first angle sensor 13A that detects an angle ⁇ A of the first link 16A with respect to the body portion 2 and a second angle sensor 13B that detects an angle ⁇ B of the second link 16B with respect to the first link 16A.
  • the vibration sensor 14 detects the vibration of the object B.
  • the vibration sensor 14 acquires the vibration data of the object B that vibrates when the vibration actuator 9 is driven.
  • the vibration sensor 14 at least one of an inertial measurement unit (Inertial Measurement Unit: IMU), an acceleration sensor, a speed sensor, and a displacement sensor is exemplified.
  • IMU Inertial Measurement Unit
  • the vibration sensor 14 is provided on the holding member 19.
  • the vibration sensor 14 acquires the vibration data of the object B held by the robot hand 10 by detecting the vibration of the holding member 19.
  • the vibration sensor 14 may be provided on the base member 18.
  • the vibration sensor 14 may acquire the vibration data of the object B held by the robot hand 10 by detecting the vibration of the base member 18.
  • the information processing device 100 includes a computer system that controls the robot 1.
  • the information processing device 100 is mounted on the robot 1.
  • FIG. 2 is a diagram showing an example of an operation of the robot 1 according to the first embodiment of the present disclosure.
  • the information processing apparatus 100 controls the robot 1 so as to transfer the object B from the storage position Ps to the target position Pt.
  • the target position Pt is set on the object S.
  • the information processing apparatus 100 controls the robot 1 so that the object B existing at the storage position Ps is held by the robot hand 10 and passed to the object S.
  • the object S includes a table having a mounting surface.
  • the target position Pt is set on the mounting surface of the table.
  • the information processing apparatus 100 controls the robot 1 so that the object B is placed on the placement surface of the object S.
  • the information processing apparatus 100 controls the robot arm 7 so that the object B held by the robot hand 10 approaches the object S.
  • the information processing apparatus 100 controls the vibration actuator 9 so that the object B held by the robot hand 10 vibrates while the object B is approaching the target S due to the operation of the robot arm 7.
  • the information processing device 100 vibrates the object B under a prescribed vibration condition.
  • the vibration condition includes a target value of the vibration parameter.
  • As the vibration parameter at least one of an amplitude, a frequency, and a vibration direction for vibrating the object B is exemplified.
  • the vibration condition includes at least one of a target value of an amplitude that vibrates the object B, a target value of a vibration frequency that vibrates the object B, and a target direction of a vibration direction that vibrates the object B.
  • the information processing apparatus 100 detects the contact between the object B and the target S held by the robot hand 10, based on the vibration data of the object B acquired by the vibration sensor 14.
  • FIG. 3 is a diagram showing a vibration state of the object B held by the robot hand 10 according to the first embodiment of the present disclosure.
  • FIG. 3 schematically shows a first vibration state VS1 of the object B before the object B and the object S are in contact with each other, and a second vibration state VS2 of the object B after the object B and the object S are in contact with each other. Shown in.
  • the first vibration state VS1 and the second vibration state VS2 are different.
  • the vibration of the object B is attenuated by the contact between the object B and the object S.
  • the vibration intensity of the object B in the second vibration state VS2 is smaller than the vibration intensity of the object B in the first vibration state VS1.
  • the information processing apparatus 100 detects the contact between the object B and the object S when it is determined that the vibration of the object B is attenuated based on the vibration data of the object B acquired by the vibration sensor 14.
  • the object B Even after contact between the object B and the object S, the object B continues to vibrate for a certain period of time.
  • the vibration sensor 14 detects the vibration of the object B that continues to be generated for a certain period of time even after being damped.
  • the information processing apparatus 100 determines whether or not the object B and the object S are sufficiently in contact with each other, based on the vibration data of the object B that continues to be generated for a certain time even after the object B and the object S are in contact with each other. can do.
  • the information processing apparatus 100 controls the robot hand 10 so that the holding of the object B by the robot hand 10 is released after detecting the contact between the object B and the object S. Since the holding of the object B by the robot hand 10 is released after the object B comes into contact with the object S, the object B is prevented from falling down or falling from the object S.
  • FIG. 4 is a functional block diagram showing an example of the information processing device 100 according to the first embodiment of the present disclosure.
  • the information processing device 100 includes a position data storage unit 101, a dimension data storage unit 102, a travel control unit 103, a drive control unit 104, a holding control unit 105, a distance calculation unit 106, a vibration control unit 107, and The vibration data acquisition unit 108 and the contact detection unit 109 are included.
  • the position data storage unit 101 stores the storage position data indicating the storage position Ps and the target position data indicating the target position Pt.
  • the storage position data and the target position data are stored in advance in the position data storage unit 101 by, for example, teaching processing.
  • the dimension data storage unit 102 stores robot dimension data indicating the dimension La of the first link 16A, the dimension Lb of the second link 16B, and the dimension Lc of the robot hand 10 of the robot arm 7.
  • the robot dimension data is known data derived from the specifications of the robot 1, for example, and is stored in the dimension data storage unit 102 in advance.
  • the traveling control unit 103 outputs a traveling command for controlling the traveling device 5.
  • the traveling control unit 103 outputs a traveling command to the traveling motor 4.
  • the traveling control unit 103 acquires the detection data of the position sensor 11.
  • the detection data of the position sensor 11 includes reference position data indicating the reference position P0 of the robot 1.
  • the traveling control unit 103 acquires the storage position data and the target position data from the position data storage unit 101.
  • the travel control unit 103 outputs a travel command based on the detection data of the position sensor 11 and the storage position data and the target position data so that the object B is transferred from the storage position Ps to the target position Pt.
  • the travel control unit 103 outputs a travel command to the travel motor 4 based on the detection data of the position sensor 11 and the storage position data so that the robot 1 moves to the storage position Ps.
  • the traveling control unit 103 outputs a traveling command to the traveling motor 4 based on the detection data of the position sensor 11 and the target position data so that the robot 1 moves to the target position Pt.
  • the drive control unit 104 outputs a drive command for moving the robot hand 10.
  • the drive control unit 104 outputs a drive command for controlling the robot arm 7 so that the robot hand 10 connected to the tip of the robot arm 7 moves.
  • the drive control unit 104 outputs a drive command to the arm actuator 6.
  • the drive control unit 104 acquires the detection data of the position sensor 11.
  • the drive control unit 104 acquires the storage position data and the target position data from the position data storage unit 101. Based on the detection data of the position sensor 11 and the storage position data, the drive control unit 104 causes the robot hand 10 to approach the object B existing at the storage position Ps and raise the robot hand 10 holding the object B.
  • a drive command is output to the arm actuator 6.
  • the drive control unit 104 outputs a drive command to the arm actuator 6 based on the detection data of the position sensor 11 and the target position data so that the object B held by the robot hand 10 approaches the target position Pt.
  • the hold control unit 105 outputs a hold command for causing the robot hand 10 to hold the object B and a release command for releasing the hold of the object B by the robot hand 10.
  • the hold control unit 105 outputs a hold command and a release command to the hand actuator 8.
  • the holding control unit 105 acquires the detection data of the position sensor 11.
  • the holding control unit 105 acquires the storage position data and the target position data from the position data storage unit 101.
  • the holding control unit 105 outputs a holding command to the hand actuator 8 based on the detection data of the position sensor 11 and the storage position data so that the object B existing at the storage position Ps is held by the robot hand 10.
  • the holding control unit 105 outputs a release command to the hand actuator 8 based on the detection data of the position sensor 11 and the target position data so that the holding of the object B by the robot hand 10 at the target position Pt is released.
  • the distance calculation unit 106 calculates the distance Db between the object B held by the robot hand 10 and the target position Pt defined by the target S.
  • the distance calculation unit 106 acquires the detection data of the position sensor 11, the detection data of the distance sensor 12, and the detection data of the angle sensor 13.
  • the distance calculation unit 106 acquires robot dimension data from the dimension data storage unit 102.
  • the distance calculation unit 106 calculates the distance Db based on the detection data of the position sensor 11, the detection data of the distance sensor 12, the detection data of the angle sensor 13, and the robot dimension data.
  • FIG. 5 is a diagram showing an example of a method of calculating the distance Db between the object B and the target S according to the first embodiment of the present disclosure.
  • the distance calculator 106 detects the detection data of the first angle sensor 13A, the detection data of the second angle sensor 13B, the dimension La of the first link 16A, the dimension Lb of the second link 16B, and the dimension Lc of the robot hand 10. Based on, the relative position between the reference position P0 and the tip of the robot hand 10 is calculated.
  • the tip of the robot hand 10 is the tip of the holding member 19.
  • the distance calculation unit 106 calculates the angle ⁇ A of the first link 16A with respect to the reference axis of the body portion 2 passing through the reference position P0, based on the detection data of the first angle sensor 13A.
  • the distance calculation unit 106 calculates the angle ⁇ B of the second link 16B with respect to the first link 16A based on the detection data of the second angle sensor 13B.
  • Dimension La of the first link 16A is the distance between the first joint 17A and the second joint 17B.
  • the dimension Lb of the second link 16B is the distance between the second joint 17B and the base member 18.
  • the dimension Lc of the robot hand 10 is the distance between the third joint 17C and the tip of the holding member 19.
  • the dimension La, the dimension Lb, the dimension Lc, and the relative position between the reference position P0 and the first joint 17A are known data and are stored in the dimension data storage unit 102.
  • the distance calculation unit 106 can calculate the relative position between the reference position P0 and the tip of the holding member 19 based on the angle ⁇ A, the angle ⁇ B, the dimension La, the dimension Lb, and the dimension Lc.
  • the distance sensor 12 detects the distance Da between the distance sensor 12 and the target position Pt set on the object S.
  • the relative position between the reference position P0 and the distance sensor 12 is known data and is stored in the dimension data storage unit 102.
  • the distance calculation unit 106 holds based on the relative position between the reference position P0 and the tip of the holding member 19, the relative position between the reference position P0 and the distance sensor 12, and the distance Da between the distance sensor 12 and the target position Pt. The distance between the tip of the member 19 and the target position Pt can be calculated.
  • the position of the tip of the holding member 19 is substantially equal to the position of the lower end of the object B held by the robot hand 10. Therefore, the distance calculation unit 106 calculates the distance between the tip end of the holding member 19 and the target position Pt to determine the object B held by the robot hand 10 and the target position Pt set for the target S.
  • the distance Db can be calculated.
  • the robot 1 when the object B held by the robot hand 10 is mounted on the mounting surface of the target object S, the robot 1 The object B can be mounted on the mounting surface by adjusting the angle of the object B in the ⁇ Y direction with respect to the mounting surface.
  • the vibration control unit 107 outputs a vibration command for vibrating the object B held by the robot hand 10.
  • the vibration control unit 107 outputs a vibration command to the vibration actuator 9.
  • the vibration control unit 107 outputs a vibration command to the vibration actuator 9 when a drive command is output from the drive control unit 104 to the arm actuator 6 so that the object B held by the robot hand 10 approaches the target S. Is output.
  • the vibration control unit 107 starts outputting a vibration command to the vibration actuator 9 when the distance Db between the object B and the target S calculated by the distance calculation unit 106 becomes equal to or less than the specified value Ds.
  • the specified value Ds is a predetermined value.
  • FIG. 6 is a diagram showing an example of a vibrating method of the object B according to the first embodiment of the present disclosure.
  • the moving direction Fm of the object B when passing the object B held by the robot hand 10 to the object S is defined by the drive command output from the drive control unit 104.
  • the drive control unit 104 causes the arm actuator to move the object B from above the object S in the ⁇ Z direction.
  • the drive command is output to 6. That is, the moving direction Fm of the object B is the ⁇ Z direction.
  • the vibration control unit 107 does not output a vibration command when the distance Db between the object B and the target S held by the robot hand 10 is larger than the specified value Ds.
  • the vibration actuator 9 is not driven.
  • the vibration control unit 107 starts outputting the vibration command when the distance Db between the object B and the target S held by the robot hand 10 becomes equal to or less than the specified value Ds.
  • the vibration actuator 9 is activated.
  • the vibration control unit 107 starts outputting the vibration command and activates the vibration actuator 9.
  • the vibration control unit 107 vibrates the vibration actuator 9 so that the moving direction Fm of the object B defined by the drive command output from the drive control unit 104 and the vibration direction Fv of the object B by the vibration actuator 9 match. Output a command.
  • the vibration control unit 107 outputs a vibration command to the vibration actuator 9 so that the object B vibrates in the Z axis direction.
  • the vibration control unit 107 vibrates the object B in only one direction.
  • the vibration control unit 107 vibrates the object B only in the Z axis direction, and does not vibrate in the X axis direction, the Y axis direction, the ⁇ X direction, the ⁇ Y direction, and the ⁇ Z direction.
  • the vibration data acquisition unit 108 acquires the detection data of the vibration sensor 14.
  • the detection data of the vibration sensor 14 indicates the vibration data of the object B.
  • the vibration data acquisition unit 108 acquires the vibration data of the object B that vibrates based on the vibration condition specified by the vibration command output from the vibration control unit 107.
  • the vibration condition specified by the vibration command includes at least one of a target value of amplitude for vibrating the object B, a target value of frequency, and a target direction of vibration direction.
  • the vibration data acquired by the vibration sensor 14 includes at least one of the detected value of the amplitude of the object B, the detected value of the frequency, and the detected direction of the vibration direction.
  • the contact detection unit 109 detects contact between the object B and the object S based on the vibration data acquired by the vibration data acquisition unit 108.
  • the contact detection unit 109 detects contact between the object B and the object S when it is determined that the detected amplitude value is smaller than the target amplitude value.
  • FIG. 7 is a diagram showing an example of a method for detecting contact between the object B and the target S according to the first embodiment of the present disclosure.
  • the horizontal axis represents time and the vertical axis represents the amplitude of the object B detected by the vibration sensor 14.
  • the time point t0 indicates the time point when the vibration by the vibration actuator 9 is started.
  • a time point t0 indicates a time point when the distance Db between the object B approaching the object S and the object S changes from a state where the distance Db is larger than the specified value Ds to a specified value Ds or less.
  • a time point t1 indicates a time point when the object B approaching the object S and the object S come into contact with each other.
  • the period between the time point t0 and the time point t1 indicates the period before the vibrating object B and the object S come into contact with each other.
  • the period after the time point t1 has elapsed indicates the period after the vibrating object B and the object S have come into contact with each other.
  • the detected value of the amplitude of the object B is substantially equal to the target value of the amplitude. After the contact between the object B and the object S, the detected value of the amplitude of the object B becomes smaller than the target value of the amplitude.
  • the contact detection unit 109 can detect contact between the object B and the object S when it is determined that the detected value of the amplitude is smaller than the target value of the amplitude.
  • the holding control unit 105 outputs a release command for releasing the holding of the object B by the robot hand 10 after the contact detection unit 109 detects the contact between the object B and the target S.
  • FIG. 8 is a flowchart showing an example of the information processing method according to the first embodiment of the present disclosure.
  • the traveling control unit 103 outputs a traveling command to the traveling motor 4 based on the storage position data stored in the position data storage unit 101 so that the robot 1 moves to the storage position Ps.
  • the drive control unit 104 outputs a drive command to the arm actuator 6 based on the storage position data so that the robot hand 10 approaches the object B existing at the storage position Ps.
  • the holding control unit 105 outputs a holding command to the hand actuator 8 so that the object B existing at the storage position Ps is held by the robot hand 10.
  • the drive control unit 104 outputs a drive command to the arm actuator 6 so that the object B held by the robot hand 10 moves up from the storage position Ps.
  • the traveling control unit 103 moves the robot 1 to the target S based on the target position data stored in the position data storage unit 101. As described above, the travel command is output to the travel motor 4 (step S110).
  • the drive control unit 104 sets the object B held by the robot hand 10 to approach the target position Pt set on the target S based on the target position data. Then, the drive command is output to the arm actuator 6 (step S120).
  • the distance calculation unit 106 calculates the distance Db between the object B held by the robot hand 10 and the target position Pt set on the target S. As described with reference to FIG. 5, the distance calculation unit 106 is a robot stored in the detection data of the position sensor 11, the detection data of the distance sensor 12, the detection data of the angle sensor 13, and the dimension data storage unit 102. The distance Db is calculated based on the dimension data (step S130).
  • the vibration control unit 107 determines whether the distance Db calculated by the distance calculation unit 106 is equal to or less than the specified value Ds (step S140).
  • step S140 When it is determined in step S140 that the distance Db is larger than the specified value Ds (step S140: No), the drive control unit 104 sets the object B held by the robot hand 10 as the target object S. A drive command is output to the arm actuator 6 so as to approach the target position Pt further. The drive control unit 104 outputs a drive command so that the object B held by the robot hand 10 approaches the target S until the distance Db is determined to be equal to or less than the specified value Ds.
  • step S140 When it is determined in step S140 that the distance Db is equal to or less than the specified value Ds (step S140: Yes), the vibration control unit 107 starts outputting a vibration command (step S150).
  • the vibration actuator 9 By outputting the vibration command, the vibration actuator 9 is activated, and the vibration of the object B held by the robot hand 10 is started.
  • the vibration control unit 107 outputs a vibration command so that the object B vibrates under a specified vibration condition. As described with reference to FIG. 6, the vibration control unit 107 outputs the vibration command so that the moving direction Fm of the object B and the vibration direction Fv of the object B match.
  • the drive control unit 104 issues a drive command to the arm actuator 6 so that the object B held by the robot hand 10 contacts the object S. Output (step S160).
  • the drive control unit 104 outputs a drive command so that the object B held by the robot hand 10 further approaches the target S after it is determined that the distance Db has become equal to or less than the specified value Ds.
  • the vibration control unit 107 continues to output the vibration command. The object B approaches the object S while vibrating.
  • the vibration data acquisition unit 108 acquires the vibration data of the object B that vibrates based on the vibration condition defined by the vibration command (step S170).
  • the contact detection unit 109 determines whether the detected value of the amplitude of the object B acquired by the vibration data acquisition unit 108 is smaller than the target value of the amplitude specified by the vibration command (step S180).
  • step S180 determines that the detected value of the amplitude of the object B is equal to or larger than the target value of the amplitude (step S180: No)
  • the contact detection unit 109 determines that the object B and the object S are in contact with each other. It is determined that and are not in contact.
  • the drive control unit 104 outputs a drive command so that the object B held by the robot hand 10 approaches the target S until it is determined that the object B and the target S are in contact with each other.
  • step S180 When it is determined in step S180 that the detected value of the amplitude of the object B is smaller than the target value of the amplitude (step S180: Yes), the contact detection unit 109 determines that the object B and the target S have contacted each other. .
  • the holding control unit 105 After the contact detection unit 109 detects the contact between the object B and the object S, the holding control unit 105 outputs a release command to release the holding of the object B by the robot hand 10 (step S190). As a result, the object B is placed on the target S.
  • the vibration control unit 107 outputs the vibration command that vibrates the object B held by the robot hand 10.
  • the vibration data acquisition unit 108 acquires vibration data of a vibrating object based on a vibration condition defined by a vibration command.
  • the contact detection unit 109 can easily detect the contact between the object B and the object S based on the vibration data.
  • the first vibration state VS1 of the object B before the object B and the object S contact each other and the second vibration state VS1 of the object B after the object B and the object S contact each other. It is different from the vibration state VS2.
  • the vibration intensity of the object B in the second vibration state VS2 is smaller than the vibration intensity of the object B in the first vibration state VS1. Therefore, the contact detection unit 109 can easily detect the contact between the object B and the object S by detecting the attenuation of the vibration of the object B.
  • the vibration data acquisition unit 108 acquires vibration data of the object B that continues to occur for a certain period of time even after being damped.
  • the contact detection unit 109 accurately determines whether or not the object B and the object S are in contact with each other based on the vibration data of the object B that continues to be generated for a certain period of time even after the object B and the object S are in contact with each other. can do.
  • the contact detection unit 109 By detecting the contact between the object B and the object S based on the vibration data of the object B, even if the moving speed of the robot hand 10 when the object B approaches the object S is high, the contact detection unit 109 , The contact between the object B and the object S can be detected.
  • the contact detection unit 109 can detect the contact between the object B and the target S based on the data indicating the vibration attenuation.
  • the vibration condition specified by the vibration command includes the target value of the amplitude for vibrating the object B.
  • the vibration data acquired by the vibration data acquisition unit 108 includes the detected value of the amplitude of the object B.
  • the amplitude of the object B is different. Therefore, the contact detection unit 109 can detect the contact between the object B and the object S when it is determined that the detected amplitude value is smaller than the target amplitude value.
  • the holding control unit 105 outputs a release command for releasing the holding of the object B by the robot hand 10 after the contact detection unit 109 detects the contact between the object B and the target S. Since the holding of the object B by the robot hand 10 is released after the object B comes into contact with the object S, the object B is prevented from falling down or falling from the object S.
  • the robot hand 10 moves by driving the arm actuator 6 of the robot arm 7.
  • the drive control unit 104 outputs a drive command for moving the robot hand 10 to the arm actuator 6.
  • the vibration control unit 107 outputs a vibration command for driving the vibration actuator 9 when the drive command is output so that the object B held by the robot hand 10 approaches the target S.
  • the contact detection unit 109 can detect a change in the vibration state with high accuracy.
  • the distance calculation unit 106 calculates the distance Db between the object B and the target S held by the robot hand 10.
  • the vibration control unit 107 starts the output of the vibration command and activates the vibration actuator 9 when the distance Db becomes equal to or less than the specified value Ds.
  • the vibration actuator 9 is activated, so that the vibration actuator 9 is prevented from being driven unnecessarily.
  • the vibration control unit 107 outputs a vibration command so that the moving direction Fm of the object B defined by the drive command and the vibration direction Fv match.
  • the contact detection unit 109 can detect the contact between the object B and the target S with high accuracy based on the change in the vibration state.
  • FIG. 9 is a figure which shows an example of the vibrating method of the object B which concerns on the 1st modification of 1st Embodiment of this indication.
  • the vibration control unit 107 causes the moving direction Fm of the object B defined by the drive command output from the drive control unit 104 and the vibration direction Fv of the object B by the vibration actuator 9 to be orthogonal to each other. Then, the vibration command is output to the vibration actuator 9.
  • the vibration control unit 107 may output a vibration command to the vibration actuator 9 so that the object B vibrates in the Y-axis direction.
  • the contact detection unit 109 can detect contact between the object B held by the robot hand 10 and another object approaching the object B in the Y-axis direction. .
  • the contact detection unit 109 can determine that another object approaching the object B in the Y-axis direction is an obstacle based on the vibration data acquired by the vibration data acquisition unit 108.
  • the drive control unit 104 may stop the movement of the robot hand 10. If the other object is determined to be an obstacle, the information processing apparatus 100 may output a warning.
  • the vibration control unit 107 vibrates the object B in only one direction, so that the direction of detection with respect to the object can be made directional.
  • the vibration control unit 107 may output a vibration command to the vibration actuator 9 so that the object B vibrates in the X axis direction.
  • FIG. 10 is a figure which shows an example of the vibrating method of the object which concerns on the 2nd modification of 1st Embodiment of this indication.
  • the vibration control unit 107 outputs a vibration command to the vibration actuator 9 so that the object B held by the robot hand 10 vibrates at different frequencies in a plurality of vibration directions. Good.
  • the vibration control unit 107 vibrates the object B at the first frequency in the vibration direction Fvx parallel to the X-axis direction.
  • the vibration control unit 107 vibrates the object B in a vibration direction Fvy parallel to the Y-axis direction at a second frequency different from the first frequency.
  • the vibration control unit 107 vibrates the object B in a vibration direction Fvz parallel to the Z-axis direction at a third frequency different from the first frequency and the second frequency.
  • the vibration control unit 107 simultaneously vibrates the object B held by the robot hand 10 in each of the vibration direction Fvx, the vibration direction Fvy, and the vibration direction Fvz.
  • FIG. 11 is a diagram illustrating an example of a method of detecting contact between the object B and the target S according to the second modification example of the first embodiment of the present disclosure.
  • the horizontal axis represents time and the vertical axis represents the amplitude of the object B detected by the vibration sensor 14.
  • the line Lx shows the relationship between the amplitude of the object B and the time in the vibration direction Fvx.
  • the line Ly indicates the relationship between the amplitude of the object B and the time in the vibration direction Fvy.
  • the line Lz indicates the relationship between the amplitude of the object B and the time in the vibration direction Fvz.
  • Time point t0 indicates the time point when the vibration by the vibration actuator 9 is started.
  • a time point t1 indicates a time point when the object B approaching the object S and the object S come into contact with each other.
  • the amplitude of vibration in the vibration direction Fvz becomes small at time t1, as shown in FIG.
  • the amplitude of vibration in the vibration direction Fvx becomes small at time t1.
  • the amplitude of vibration in the vibration direction Fvy becomes small at time t1.
  • the vibration data acquisition unit 108 can acquire the vibration data for each of the plurality of vibration directions Fvx, Fvy, Fvz as shown in FIG. 11. it can.
  • the contact detection unit 109 can specify the contact direction between the object B and the target object S by specifying the vibration direction in which the amplitude is reduced based on the vibration data acquired by the vibration data acquisition unit 108. .
  • the object B vibrates at different frequencies in the plurality of vibration directions Fvx, Fvy, Fvz, so that the contact detection unit 109 can easily distinguish the vibration data related to each of the plurality of vibration directions.
  • the contact detection unit 109 can specify the contact direction between the object B and the object S with high accuracy.
  • the vibration control unit 107 may vibrate the object B in the ⁇ X direction, the ⁇ Y direction, or the ⁇ Z direction.
  • the drive control unit 104 may stop the movement of the robot hand 10. Further, when it is determined that the contact direction between the object B and the target S is an unintended contact direction, the information processing apparatus 100 may output a warning.
  • FIG. 12 is a functional block diagram showing an example of the information processing device 100 according to the second embodiment of the present disclosure.
  • the information processing apparatus 100 according to the second embodiment of the present disclosure has an object identifying unit 110 and a vibration condition storage unit 111 in addition to the components of the information processing apparatus 100 according to the first embodiment. Further, the robot 1 according to the second embodiment of the present disclosure includes the object sensor 20.
  • the object sensor 20 detects the unique data of the object B held by the robot hand 10. As the unique data of the object B, at least one of the weight of the object B and the resonance frequency of the object B is exemplified.
  • At least one of a weight sensor capable of detecting the weight of the object B and a camera sensor capable of acquiring image data of the object B is exemplified.
  • the object identifying unit 110 identifies the object B held by the robot hand 10 based on the detection data of the object sensor 20.
  • the object identifying unit 110 can identify the weight of the object B based on the detection data of the object sensor 20.
  • the object identifying unit 110 can perform image processing on the image data acquired by the object sensor 20 to estimate the weight of the object B and the resonance frequency of the object B.
  • Correlation data indicating the relationship between the feature amount of the image data of the object B, the weight of the object B, and the resonance frequency of the object B is stored in the object specifying unit 110 in advance.
  • the object identifying unit 110 can identify the weight of the object B and the resonance frequency of the object B based on the image data and the correlation data acquired by the camera sensor.
  • the vibration condition storage unit 111 stores the vibration condition of the object B for which the detected value of the amplitude in the proper range can be acquired.
  • the vibration condition storage unit 111 stores the correlation data between the peculiar data of the object B and the vibration condition of the object B for which the detected value of the amplitude in the proper range can be acquired.
  • the detection value of the amplitude in the proper range is an amplitude that can maintain the detection accuracy when the contact detection unit 109 detects the contact between the object B and the object S based on the detection value of the amplitude of the object B. Refers to the detected value.
  • the vibration condition of the object B for which the detected value of the amplitude in the proper range can be acquired is acquired by a preliminary experiment or a simulation and is stored in the vibration condition storage unit 111 in advance.
  • the vibration condition storage unit 111 stores the correlation data between the weight of the object B and the target amplitude value for which the detected amplitude value in the proper range can be obtained.
  • the detected value of the amplitude acquired by the vibration data acquisition unit 108 becomes small.
  • the contact detection unit 109 has a high possibility that the contact between the object B and the object S cannot be detected with high accuracy based on the detected value of the amplitude.
  • the vibration condition storage unit 111 stores the correlation data in which the larger the weight of the object B, the larger the target value of the amplitude, and the smaller the weight of the object B, the smaller the target value of the amplitude.
  • the vibration condition storage unit 111 stores the correlation data between the resonance frequency of the object B and the target value of the frequency at which the detected value of the amplitude in the proper range can be acquired.
  • the object B When the object B is vibrated at the same frequency as the resonance frequency of the object B, the object B resonates, the detected value of the amplitude acquired by the vibration data acquisition unit 108 becomes excessively large, or the object B is affected. there's a possibility that.
  • the vibration condition storage unit 111 stores correlation data between the resonance frequency of the object B and a target value of a frequency different from the resonance frequency of the object B. By making the target value of the frequency of the object B held by the robot hand 10 different from the resonance frequency of the object B, the vibration data acquisition unit 108 can acquire the detected value of the amplitude in the proper range.
  • the vibration control unit 107 changes the vibration condition based on the unique data of the object B specified by the object specifying unit 110.
  • the vibration control unit 107 changes the target value of the amplitude for vibrating the object B as the vibration condition.
  • the vibration control unit 107 can acquire the detected value of the amplitude in the proper range based on the unique data of the object B specified by the object specifying unit 110 and the correlation data stored in the vibration condition storage unit 111. Determine the target value for the possible amplitude.
  • the vibration control unit 107 outputs a vibration command so that the object B vibrates at the target value of the determined amplitude.
  • the vibration control unit 107 changes the target value of the frequency for vibrating the object B as the vibration condition.
  • the vibration control unit 107 can acquire the detected value of the amplitude in an appropriate range based on the unique data of the object B specified by the object specifying unit 110 and the correlation data stored in the vibration condition storage unit 111. Determine the target value of the possible frequency.
  • the vibration control unit 107 outputs a vibration command so that the object B vibrates at the target value of the determined frequency.
  • the vibration control unit 107 may vibrate the object B at the same frequency as the resonance frequency of the object B. .
  • the amplitude of the object B increases even if the driving force generated by the vibration actuator 9 is small.
  • the increase in the amplitude of the object B allows the vibration data acquisition unit 108 to acquire the detected value of the amplitude in the proper range.
  • the vibration control unit 107 may vibrate the object B at the same frequency as the resonance frequency of the robot hand 10.
  • the vibration control unit 107 instructs the vibration actuator 9 to acquire the detected amplitude value in the proper range.
  • a vibration command may be output.
  • FIG. 13 is a flowchart showing an example of the information processing method according to the second embodiment of the present disclosure.
  • the traveling control unit 103 outputs a traveling command to the traveling motor 4 so that the robot 1 moves to the storage position Ps.
  • the object sensor 20 detects the object B existing at the storage position Ps.
  • the object sensor 20 detects the object B before the robot hand 10 holds the object B.
  • the object identification unit 110 identifies the object B held by the robot hand 10 based on the detection data of the object sensor 20 (step S100).
  • the vibration control unit 107 acquires the detected value of the amplitude in the proper range based on the unique data of the object B specified by the object specifying unit 110 in step S100 and the correlation data stored in the vibration condition storage unit 111.
  • the target value of the amplitude that can be set is determined (step S102).
  • the drive control unit 104 After the object B is detected by the object sensor 20, the drive control unit 104 outputs a drive command to the arm actuator 6 so that the robot hand 10 approaches the object B existing at the storage position Ps.
  • the holding control unit 105 outputs a holding command to the hand actuator 8 so that the object B existing at the storage position Ps is held by the robot hand 10.
  • step S110 to step S140 are executed as in the procedure of the information processing method according to the first embodiment of the present disclosure.
  • step S140 When it is determined in step S140 that the distance Db is equal to or less than the specified value Ds (step S140: Yes), the vibration control unit 107 starts outputting a vibration command (step S150).
  • the vibration control unit 107 outputs a vibration command so that the object B vibrates at the target value of the amplitude determined in step S102.
  • step S190 After the output of the vibration command is started so that the object B vibrates at the target value of the amplitude determined in step S102, the steps from step S160 are performed in the same manner as the procedure of the information processing method according to the first embodiment of the present disclosure. The process of step S190 is executed.
  • the vibration condition of the object B is changed based on the unique data of the object B.
  • the vibration data acquisition unit 108 can acquire the detected value of the amplitude in the proper range. Therefore, the contact detection unit 109 can highly accurately detect the contact between the object B and the object S based on the vibration data acquired by the vibration data acquisition unit 108.
  • the object identifying unit 110 can identify the form of the object B as the unique data of the object B based on the detection data of the object sensor 20.
  • the form of the object B includes at least one of the shape and the usage form of the object B.
  • the object identifying unit 110 can perform image processing on the image data acquired by the object sensor 20 to estimate the form of the object B.
  • the vibration condition storage unit 111 stores the vibration condition for maintaining the shape of the object B before being held by the robot hand 10.
  • the vibration condition storage unit 111 stores the correlation data between the unique data of each of the plurality of objects B and the vibration condition in which the shape of the object B is maintained. For example, when another object is held by the object B, the vibration condition for maintaining the form of the object B includes the vibration condition for another object being continuously held by the object B. Further, the vibration condition in which the shape of the object B is maintained includes the vibration condition in which the object B is not destroyed. For example, when the object B is a cup that stores an object such as a liquid, the vibration condition storage unit 111 stores unique data indicating that the object B is a cup and a vibration condition that the object B is continuously contained. Store correlation data.
  • the vibration condition storage unit 111 stores the vibration condition in which the contained substance does not spill from the cup.
  • the vibration condition storage unit 111 stores the correlation data between the unique data indicating that the object B is the plate and the vibration condition in which the mounted object is continuously mounted on the plate. . That is, the vibration condition storage unit 111 stores the vibration condition under which the mounted object does not drop from the plate.
  • the vibration condition storage unit 111 stores the correlation data between the unique data indicating that the object B is a glass product and the vibration condition that the glass product is not broken.
  • the vibration condition for maintaining the shape of the object B is derived by preliminary experiments or simulations and stored in advance in the vibration condition storage unit 111.
  • an object B such as a cup containing a contained object is held by the robot hand 10.
  • the information processing apparatus 100 performs a process of placing the object B on the target S while vibrating the object B held by the robot hand 10 under each of a plurality of vibration conditions. For each of the plurality of vibration conditions, it is detected whether or not the contained object is spilled from the object B.
  • the detection of whether or not the contained item has spilled may be performed by a camera sensor, or may be performed by a weight sensor or a force sensor provided in the robot hand 10.
  • the vibration condition in which the content is not spilled from the object B is stored in the vibration condition storage unit 111 as the vibration condition capable of maintaining the shape of the object B.
  • an easily breakable object B such as a glass product is held by the robot hand 10.
  • the information processing apparatus 100 performs a process of placing the object B on the target S while vibrating the object B held by the robot hand 10 under each of a plurality of vibration conditions. For each of the plurality of vibration conditions, it is detected whether the object B is destroyed.
  • the detection of whether or not the object B is destroyed may be performed by a camera sensor, or may be performed by a weight sensor or a force sensor provided in the robot hand 10.
  • the vibration condition in which the object B is not destroyed is stored in the vibration condition storage unit 111 as the vibration condition capable of maintaining the shape of the object B.
  • the vibration control unit 107 causes the object B to vibrate under a vibration condition in which the shape of the object B before being held by the robot hand 10 is maintained based on the unique data of the object B specified by the object specifying unit 110. , Vibration command is output.
  • the object identifying unit 110 can identify the form of the object B based on the detection data of the object sensor 20 in step S100 of the flowchart shown in FIG.
  • the vibration control unit 107 determines a vibration condition for maintaining the shape of the object B based on the unique data of the object B specified by the object specifying unit 110 and the correlation data stored in the vibration condition storage unit 111. can do.
  • the vibration control unit 107 can output a vibration command so that the object B vibrates under the vibration condition in which the shape of the object B before being held by the robot hand 10 is maintained.
  • the second object held by the object B are prevented from falling from the object B and the object B from being damaged.
  • FIG. 14 is a functional block diagram showing an example of the information processing device 100 according to the third embodiment of the present disclosure.
  • the information processing apparatus 100 according to the third embodiment of the present disclosure has a state estimation unit 112 and a state observation unit 113 in addition to the components of the information processing apparatus 100 according to the first embodiment and the second embodiment. And a learning model storage unit 115.
  • the state estimation unit 112 estimates the state of at least one of the object B and the target S based on the vibration data acquired by the vibration data acquisition unit 108.
  • the state observing unit 113 shows the relationship between the vibration data observed when the object B is vibrated under each of a plurality of vibration conditions and the state of at least one of the object B and the object S when the vibration data is observed. Acquire the teacher data shown.
  • the learning unit 114 executes machine learning based on the teacher data acquired by the state observing unit 113, inputs one or both of the vibration condition and the vibration data, and outputs the state of at least one of the object B and the target S. To generate a learning model.
  • the learning model storage unit 115 stores the learning model generated by the learning unit 114.
  • the state estimation unit 112 acquires vibration data from the vibration data acquisition unit 108 and acquires a learning model from the learning model storage unit 115.
  • the state estimation unit 112 inputs the vibration data acquired by the vibration data acquisition unit 108 to the learning model and estimates the state of at least one of the object B and the target S.
  • the drive control unit 104 outputs a drive command for moving the robot hand 10 to the arm actuator 6 based on the state of at least one of the object B and the target S estimated by the state estimation unit 112.
  • the state of at least one of the object B and the object S includes the contact form between the object B and the object S.
  • the contact form between the object B and the object S includes at least one of a form in which the object B and the object S are in point contact, a line contact, and a surface contact.
  • the state observation unit 113 shows the relationship between the vibration data observed when the object B is vibrated under each of a plurality of vibration conditions and the contact form between the object B and the object S when the vibration data is observed.
  • Get teacher data The learning unit 114 executes machine learning based on the teacher data acquired by the state observing unit 113, inputs one or both of the vibration condition and the vibration data, and outputs the contact form between the object B and the target S.
  • Generate learning model The state estimating unit 112 inputs the vibration data acquired by the vibration data acquiring unit 108 into the learning model and estimates the contact form between the object B and the target S.
  • FIG. 15 and 16 are flowcharts illustrating an example of the information processing method according to the third embodiment of the present disclosure.
  • FIG. 15 is a flowchart showing an example of the learning phase.
  • FIG. 16 is a flowchart showing an example of the analysis control phase.
  • the learning phase a learning model is generated in which a plurality of vibration data when the object B is vibrated under each of a plurality of vibration conditions is input and a contact form between the object B and the object S is output.
  • the vibration data acquired by the vibration data acquisition unit 108 is input to the learning model to estimate the contact form between the object B and the target S.
  • the vibration control unit 107 vibrates the object B under each of a plurality of vibration conditions while the object B held by the robot hand 10 and the object S are in point contact with each other.
  • the vibration control unit 107 vibrates the object B under each of a plurality of vibration conditions while the object B held by the robot hand 10 and the object S are in line contact with each other.
  • the vibration control unit 107 vibrates the object B under each of a plurality of vibration conditions while the object B held by the robot hand 10 and the object S are in surface contact with each other.
  • the vibration condition includes at least one of a vibration amplitude, a frequency, a vibration direction, and a delay time from when the vibration command is output from the vibration control unit 107 to when the object B actually starts to vibrate.
  • the vibration data acquisition unit 108 acquires a plurality of vibration data when the object B is vibrated under each of a plurality of contact forms and a plurality of vibration conditions.
  • the state observing unit 113 determines a plurality of vibration data when the object B is vibrated under each of a plurality of vibration conditions and a plurality of contact forms between the object B and the target S when each of the plurality of vibration data is observed.
  • Teacher data including is acquired (step S210).
  • the learning unit 114 executes machine learning based on the teacher data acquired by the state observation unit 113 (step S220).
  • machine learning algorithms Neural Network, Support Vector Machine (SVM), Decision Tree, Random Forest, Booting, and Support Vector Machine (Support) At least one of Vector Machine (SVM) is exemplified.
  • the learning unit 114 generates a learning model in which one or both of the vibration condition and the vibration data are input and the contact form between the object B and the target S is output by executing machine learning (step S230).
  • the learning unit 114 stores the generated learning model in the learning model storage unit 115 (step S240).
  • steps S110 to S150 are executed, similar to the procedure of the information processing method according to the first embodiment of the present disclosure. Note that, in FIG. 16, illustration of steps S110 to S150 is omitted.
  • step S150 After the processing of step S150 is executed and the vibration actuator 9 is activated, the drive control unit 104 outputs a drive command to the arm actuator 6 so that the object B held by the robot hand 10 contacts the object S. Yes (step S160).
  • the vibration data acquisition unit 108 acquires the vibration data of the object B (step S170).
  • the contact detection unit 109 determines whether the detected value of the amplitude of the object B acquired by the vibration data acquisition unit 108 is smaller than the target value of the amplitude (step S180). When it is determined in step S180 that the detected value of the amplitude of the object B is smaller than the target value of the amplitude (step S180: Yes), the contact detection unit 109 compares the object B held by the robot hand 10 with the target. It is determined that the object S has come into contact.
  • the state estimation unit 112 acquires vibration data from the vibration data acquisition unit 108 and acquires a learning model from the learning model storage unit 115.
  • the state estimation unit 112 inputs the vibration data acquired by the vibration data acquisition unit 108 to the learning model to estimate the contact form between the object B and the target S held by the robot hand 10 (step S182). .
  • step S150 when the vibration data is acquired in step S150, if the vibration is performed under the vibration condition in which the contact mode classification success rate is the highest in the learning phase, the deterioration of the estimation accuracy is suppressed in step S180.
  • the vibration condition may be input to the learning model in step S182. Both the vibration condition and the vibration data may be input to the learning model.
  • the state estimation unit 112 determines whether the contact form between the object B and the target object S estimated in step S180 is surface contact (step S184).
  • step S184 When it is determined in step S184 that the contact form between the object B and the object S is surface contact (step S184: Yes), the holding control unit 105 issues a release command for releasing the holding of the object B by the robot hand 10. Output (step S190). As a result, the object B is placed on the target S.
  • step S184 When it is determined in step S184 that the contact form between the object B and the target S is not surface contact (step S184: No), the drive control unit 104 causes the object B and the target S held by the robot hand 10 to contact with each other. A drive command for moving the robot hand 10 so as to move away is output to the arm actuator 6. The drive control unit 104 changes the drive condition of the arm actuator 6 (step S186).
  • the drive control unit 104 changes the object B held by the robot hand 10 and the object S after the change.
  • a drive command is output to the arm actuator 6 based on the drive condition.
  • step S184 when it is determined in step S184 that the contact form between the object B and the target S is not surface contact, the drive control unit 104 redoes the contact between the object B and the target S held by the robot hand 10. Execute the process.
  • the drive control unit 104 changes the drive condition of the arm actuator 6 and performs a process of recontacting the object B with the object S until it is determined that the contact form between the object B and the object S is surface contact. repeat.
  • the drive control unit 104 When it is determined in step S184 that the contact form between the object B and the target S is not surface contact, the drive control unit 104 does not separate the object B and the target S held by the robot hand 10 from each other.
  • the drive command may be output to the arm actuator 6 so that the object B and the object S come into surface contact with each other.
  • the drive control unit 104 may output a drive command for moving the robot hand 10 in at least one of the ⁇ Z direction, the ⁇ X direction, the ⁇ Y direction, and the ⁇ Z direction.
  • the object B held by the robot hand 10 is pressed against the target object S, and the robot hand 10 moves to the robot hand 10.
  • the held object B and the object S are in surface contact with each other.
  • the contact form between the object B and the target S may include a state where the object B and the target S are not in contact with each other.
  • the state estimating unit 112 may execute the determination as to whether or not the object B and the target object S are in contact with each other, without the contact detecting unit 109 executing.
  • the third embodiment of the present disclosure not only the presence / absence of contact between the object B and the target S, but also the contact mode between the object B and the target S is estimated. In order to stably mount the object B on the object S, it is preferable that the contact area between the object B and the object S is large.
  • the state estimation unit 112 determines that the object B placed on the target S is unstable.
  • the drive control unit 104 changes the drive condition of the arm actuator 6 that moves the robot hand 10 to change the object B and the object S.
  • the learning unit 114 may generate a learning model in which one or both of the vibration condition and the vibration data are input, and the contact area between the object B and the target S held by the robot hand 10 is output.
  • the drive control unit 104 brings the object B vibrating under each of the plurality of vibration conditions into contact with the target object S.
  • a contact boundary between the object B and the target object S is detected by a plurality of cameras around the object B.
  • the learning unit 114 vibrates based on teacher data including a plurality of vibration data when the object B is vibrated under each of a plurality of vibration conditions and a plurality of contact areas when each of the plurality of vibration data is acquired. It is possible to generate a learning model that inputs data and outputs the contact area.
  • the state of at least one of the object B and the object S may include physical properties of at least one of the object B and the object S.
  • the physical property of at least one of the object B and the object S includes at least one of elasticity of the object B, viscosity of the object B, elasticity of the object S, and viscosity of the object S.
  • the vibration control unit 107 vibrates the object B under each of a plurality of vibration conditions while the object B held by the robot hand 10 is in contact with each of the plurality of objects S. For example, the vibration control unit 107 vibrates the object B under each of a plurality of vibration conditions while the object B held by the robot hand 10 and the object S having the first physical characteristic are in contact with each other. The vibration control unit 107 vibrates the object B under each of a plurality of vibration conditions while the object B held by the robot hand 10 and the target S having the second physical characteristic are in contact with each other.
  • the state observation unit 113 acquires teacher data indicating a relationship between vibration data observed when the object B is vibrated under each of a plurality of vibration conditions and physical characteristics of the object S when the vibration data is observed. To do.
  • the learning unit 114 executes machine learning based on the teacher data acquired by the state observing unit 113. At least one of a neural network and a linear regression is exemplified as the machine learning algorithm.
  • the learning unit 114 executes machine learning to generate a learning model in which one or both of the vibration condition and the vibration data are input and the physical characteristics of the object are output.
  • the learning unit 114 stores the generated learning model in the learning model storage unit 115.
  • FIG. 17 is a flowchart showing an example of the information processing method according to the second modified example of the third embodiment of the present disclosure.
  • FIG. 17 is a flowchart showing an example of the analysis control phase.
  • steps S110 to S150 are executed, similar to the procedure of the information processing method according to the first embodiment of the present disclosure. Note that, in FIG. 17, illustration of steps S110 to S150 is omitted.
  • the drive control unit 104 outputs a drive command to the arm actuator 6 so that the object B held by the robot hand 10 contacts the target S (step S160).
  • the vibration data acquisition unit 108 acquires the vibration data of the object B (step S170).
  • the contact detection unit 109 compares the object B held by the robot hand 10 with the target. It is determined that the object S has come into contact.
  • the state estimation unit 112 acquires vibration data from the vibration data acquisition unit 108 and acquires a learning model from the learning model storage unit 115.
  • the state estimation unit 112 inputs the vibration data acquired by the vibration data acquisition unit 108 to the learning model and estimates the physical characteristics of the target object S that contacts the object B held by the robot hand 10 (step S187). ).
  • the resonance frequency and the damping rate of the object S are determined based on the elasticity or viscosity of the object S. Therefore, the state estimation unit 112 can estimate the physical characteristics of the object S by inputting the vibration data into the learning model.
  • the vibration condition may be input to the learning model in step S187. Both the vibration condition and the vibration data may be input to the learning model.
  • the drive control unit 104 outputs a drive command for adjusting the contact force between the object B held by the robot hand 10 and the target S based on the physical characteristics of the target S estimated in step S187 (step S107). S188).
  • the drive control unit 104 outputs a drive command to move the robot hand 10 so that the contact force between the object B and the target object S becomes small. As a result, the object B is placed on the target S while the deformation of the target S is suppressed.
  • the drive control unit 104 outputs a drive command to move the robot hand 10 so that the contact force between the object B and the target object S becomes large.
  • step S188 after the drive control unit 104 places the object B on the target S while adjusting the contact force, the holding control unit 105 outputs a release command to release the holding of the object B by the robot hand 10 ( Step S190).
  • the physical characteristic of the target object S is estimated.
  • the contact force when the object B is placed on the target S is adjusted based on the estimated physical characteristics.
  • the object B is placed on the object S with a contact force that is optimal for the physical characteristics of the object S.
  • a learning model may be generated.
  • the physical characteristics of the object B may be estimated in the analysis control phase.
  • the drive control unit 104 may output a drive command for adjusting the contact force between the object B held by the robot hand 10 and the object S based on the estimated physical characteristics of the object B.
  • At least one of the learning unit 114 and the learning model storage unit 115 used in the learning phase may be provided outside the robot 1.
  • the information processing apparatus 100 and at least one of the learning unit 114 and the learning model storage unit 115 are connected via a network such as the Internet. May be connected.
  • At least one of the learning unit 114 and the learning model storage unit 115 may be provided in, for example, a cloud computing server provided by a cloud service.
  • the learning model may be shared by a plurality of robots.
  • Machine learning may be executed by GPGPU (General Purpose Graphics Processing Unit) or large-scale PC cluster.
  • the moving direction Fm of the object B held by the robot hand 10 is the ⁇ Z direction, and the object B is placed on the table mounting surface.
  • the moving direction Fm of the object B may be the X-axis direction or the Y-axis direction.
  • the drive control unit 104 causes the arm actuator 6 to move the object B held by the robot hand 10 in the XY plane.
  • the drive command may be output to. If the holding of the object B by the robot hand 10 is released before the object B contacts another robot hand, the object B may fall.
  • the hold control unit 105 After the contact detection unit 109 detects contact between the object B held by the robot hand 10 and another robot hand, the hold control unit 105 outputs a release command for releasing the holding of the object B by the robot hand 10. As a result, the object B held by the robot hand 10 can be stably delivered to another robot hand which is the target S.
  • the robot hand 10 is a gripper type robot hand that holds the object B by sandwiching the object B with a pair of holding members 19.
  • the robot hand 10 only needs to be able to hold the object B in a releasable manner.
  • the robot hand 10 may be a multi-finger type robot hand that holds the object B with a plurality of fingers or a suction type robot hand that holds the object B by a suction force.
  • the vibration actuator 9 is provided on the robot hand 10.
  • the object B held by the robot hand 10 may be vibrated by the vibration force generated by the arm actuator 6. Further, the object B may be vibrated by utilizing mechanical vibration caused by the bending of the robot arm 7.
  • three vibration actuators 9 are provided, and the object B held by the robot hand 10 can vibrate in at least one of the X-axis direction, the Y-axis direction, and the Z-axis direction.
  • the number of vibration actuators 9 may be one or two.
  • the object B may be able to vibrate only in the Z-axis direction.
  • the object B may be vibrable in the Z-axis direction and the X-axis direction, may be vibrated in the Z-axis direction and the Y-axis direction, or may be vibrable in the X-axis direction and the Y-axis direction.
  • the object B held by the robot hand 10 may be capable of vibrating in at least one of the X axis direction, the Y axis direction, the Z axis direction, the ⁇ X direction, the ⁇ Y direction, and the ⁇ Z direction.
  • the vibration force generated by the arm actuator 6 causes the object B held by the robot hand 10 to vibrate in six directions of the X-axis direction, the Y-axis direction, the Z-axis direction, the ⁇ X direction, the ⁇ Y direction, and the ⁇ Z direction. You may.
  • the robot 1 may be a service robot that conveys the object B in the living space, or a cooking robot that puts foodstuffs on dishes.
  • the robot 1 may be a physical distribution robot that carries the object B out of or into the shelf in a warehouse.
  • the holding device is the robot hand 10 of the robot 1.
  • the holding device is not limited to the robot hand 10 as long as it can releasably hold the object B.
  • each component of each illustrated device is functionally conceptual, and does not necessarily have to be physically configured as illustrated. That is, the specific form of distribution / integration of each device is not limited to that shown in the figure, and all or a part of the device may be functionally or physically distributed / arranged in arbitrary units according to various loads and usage conditions. It can be integrated and configured.
  • the traveling control unit 103, the drive control unit 104, and the hold control unit 105 illustrated in FIG. 1 may be integrated.
  • FIG. 18 is a hardware configuration diagram illustrating an example of a computer 1000 that realizes the functions of the information processing device 100.
  • the computer 1000 has a CPU 1100, a RAM 1200, a ROM (Read Only Memory) 1300, an HDD (Hard Disk Drive) 1400, a communication interface 1500, and an input / output interface 1600.
  • the respective units of the computer 1000 are connected by a bus 1050.
  • the CPU 1100 operates based on a program stored in the ROM 1300 or the HDD 1400, and controls each part. For example, the CPU 1100 loads a program stored in the ROM 1300 or the HDD 1400 into the RAM 1200, and executes processing corresponding to various programs.
  • the ROM 1300 stores a boot program such as a BIOS (Basic Input Output System) executed by the CPU 1100 when the computer 1000 starts up, a program dependent on the hardware of the computer 1000, and the like.
  • BIOS Basic Input Output System
  • the HDD 1400 is a computer-readable recording medium that non-temporarily records a program executed by the CPU 1100, data used by the program, and the like.
  • the HDD 1400 is a recording medium that records the image processing program according to the present disclosure, which is an example of the program data 1450.
  • the communication interface 1500 is an interface for connecting the computer 1000 to an external network 1550 (for example, the Internet).
  • the CPU 1100 receives data from another device via the communication interface 1500 or transmits data generated by the CPU 1100 to another device.
  • the input / output interface 1600 is an interface for connecting the input / output device 1650 and the computer 1000.
  • the CPU 1100 receives data from an input device such as a keyboard and a mouse via the input / output interface 1600.
  • the CPU 1100 transmits data to an output device such as a display, a speaker, or a printer via the input / output interface 1600.
  • the input / output interface 1600 may function as a media interface that reads a program or the like recorded on a predetermined recording medium (media).
  • the media are, for example, optical recording media such as DVD (Digital Versatile Disc) and PD (Phase change rewritable Disk), magneto-optical recording media such as MO (Magneto-Optical disk), tape media, magnetic recording media, or semiconductor memory. Is.
  • optical recording media such as DVD (Digital Versatile Disc) and PD (Phase change rewritable Disk)
  • magneto-optical recording media such as MO (Magneto-Optical disk), tape media, magnetic recording media, or semiconductor memory.
  • the CPU 1100 of the computer 1000 executes the image processing program loaded on the RAM 1200, thereby causing the vibration control unit 107 and the vibration data acquisition. Functions of the unit 108, the contact detection unit 109, and the like are realized.
  • the HDD 1400 stores the image processing program according to the present disclosure and the data in the position data storage unit 101 and the dimension data storage unit 102. Note that the CPU 1100 reads and executes the program data 1450 from the HDD 1400. However, as another example, the CPU 1100 may acquire these programs from another device via the external network 1550.
  • the program outputs a vibration command for vibrating the object B held by the robot hand 10 to the computer 1000, acquires vibration data of the vibrating object B based on a vibration condition defined by the vibration command, and the vibration data It is possible to execute the process of detecting the contact between the object B and the object S based on
  • a vibration control unit that outputs a vibration command to vibrate the object held by the holding device
  • a vibration data acquisition unit that acquires vibration data of the object that vibrates based on a vibration condition defined by the vibration command
  • a contact detection unit that detects contact between the object and the object based on the vibration data
  • An information processing apparatus comprising: (2) The vibration condition includes a target value of amplitude for vibrating the object, The vibration data includes a detected value of the amplitude of the object, The contact detection unit detects contact between the object and the object when it is determined that the detected value of the amplitude is smaller than the target value of the amplitude, The information processing device according to (1).
  • a holding control unit that outputs a release command for releasing the holding of the object by the holding device, The information processing device according to (2).
  • a drive control unit that outputs a drive command to move the holding device, The vibration control unit outputs the vibration command when the drive command is output so that the object held by the holding device approaches the object.
  • the information processing apparatus according to any one of (1) to (3) above.
  • a distance calculation unit that calculates a distance between the object held by the holding device and the object, The vibration control unit starts the output of the vibration command when the distance between the object and the object becomes equal to or less than a specified value, The information processing device according to (4).
  • the vibration condition includes a vibration direction that vibrates the object, The vibration control unit outputs the vibration command so that the moving direction of the object defined by the drive command and the vibration direction match.
  • the vibration condition includes a vibration direction that vibrates the object, The vibration control unit outputs the vibration command so that the moving direction of the object defined by the drive command and the vibration direction are orthogonal to each other, The information processing apparatus according to any one of (4) to (6).
  • the vibration condition includes a vibration direction and a frequency for vibrating the object, The vibration control unit outputs the vibration command so that the object vibrates at different frequencies in each of a plurality of vibration directions, The information processing apparatus according to any one of (1) to (7) above.
  • the vibration control unit changes the vibration condition based on unique data of the object, The information processing apparatus according to any one of (1) to (8) above.
  • the unique data of the object includes the weight of the object,
  • the vibration condition includes a target value of amplitude for vibrating the object,
  • the characteristic data of the object includes a resonance frequency of the object,
  • the vibration condition includes a target value of a frequency for vibrating the object,
  • the vibration control unit outputs the vibration command so that the object vibrates under a vibration condition in which the state of the object before being held by the holding device is maintained,
  • the information processing apparatus according to any one of (1) to (11).
  • a vibration condition storage unit that stores vibration conditions for maintaining the state of the object; The vibration control unit outputs the vibration command so as to vibrate the object under the vibration condition stored in the vibration condition storage unit, The information processing device according to (12).
  • a second object is retained in the object, The vibration condition includes a vibration condition in which the second object continues to be held by the object, The information processing device according to (12) or (13) above.
  • the vibration condition includes a vibration condition in which the object is not destroyed, The information processing apparatus according to any one of (12) to (14).
  • a state estimation unit that estimates the state of at least one of the object and the object based on the vibration data, The information processing device according to any one of (1) to (15).
  • the state includes physical properties of at least one of the object and the object,
  • the information processing apparatus according to any one of (16) to (19).
  • (21) Outputs a vibration command to vibrate the object held in the holding device, Obtaining vibration data of the object that vibrates based on a vibration condition defined by the vibration command, Detecting contact between the object and the object based on the vibration data, Information processing method.
  • (22) Outputs a vibration command to vibrate the object held in the holding device, Obtaining vibration data of the object that vibrates based on a vibration condition defined by the vibration command, Executing a process of detecting contact between the object and the object based on the vibration data, program.
  • Robot hand 14 Vibration sensor 100 Information processing device 101 Position data storage part 102 Dimension data storage part 103 Travel control part 104 Drive control part 105 Holding control part 106 Distance calculation unit 107 Vibration control unit 108 Vibration data acquisition unit 109 Contact detection unit 110 Object identification unit 111 Vibration condition storage unit 112 State estimation unit 113 State observation unit 114 Learning unit 115 Learning model storage unit B Object S Object

Landscapes

  • Engineering & Computer Science (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Manipulator (AREA)

Abstract

情報処理装置(100)は、保持装置に保持されている物体を振動させる振動指令を出力する振動制御部(107)と、振動指令により規定される振動条件に基づいて振動する物体の振動データを取得する振動データ取得部(108)と、振動データに基づいて、物体と対象物との接触を検出する接触検出部(109)と、を備える。

Description

情報処理装置、情報処理方法、及びプログラム
 本開示は、情報処理装置、情報処理方法、及びプログラムに関する。
 ロボットに係る技術分野において、ロボットハンドに保持された物体を対象物に載置するロボットが知られている。
特開2015-182172号公報
 物体が対象物に接触する前に、ロボットハンドによる物体の保持が解除されてしまうと、物体が倒れたり対象物から落下したりする可能性がある。ロボットハンドに保持されている物体を対象物に安定して渡すために、物体と対象物との接触を検出できる技術が要望される。
 そこで、本開示では、物体と対象物との接触を検出できる情報処理装置、情報処理方法、及びプログラムを提案する。
 本開示によれば、保持装置に保持されている物体を振動させる振動指令を出力する振動制御部と、前記振動指令により規定される振動条件に基づいて振動する前記物体の振動データを取得する振動データ取得部と、前記振動データに基づいて、前記物体と対象物との接触を検出する接触検出部と、を備える情報処理装置が提供される。
本開示の第1の実施形態に係るロボットの一例を示す図である。 本開示の第1の実施形態に係るロボットの動作の一例を示す図である。 本開示の第1の実施形態に係るロボットハンドに保持されている物体の振動状態を示す図である。 本開示の第1の実施形態に係る情報処理装置の一例を示す機能ブロック図である。 本開示の第1の実施形態に係る物体と対象物との距離の算出方法の一例を示す図である。 本開示の第1の実施形態に係る物体の振動方法の一例を示す図である。 本開示の第1の実施形態に係る物体と対象物との接触の検出方法の一例を示す図である。 本開示の第1の実施形態に係る情報処理方法の一例を示すフローチャートである。 本開示の第1の実施形態の第1変形例に係る物体の振動方法の一例を示す図である。 本開示の第1の実施形態の第2変形例に係る物体の振動方法の一例を示す図である。 本開示の第1の実施形態の第2変形例に係る物体と対象物との接触の検出方法の一例を示す図である。 本開示の第2の実施形態に係る情報処理装置の一例を示す機能ブロック図である。 本開示の第2の実施形態に係る情報処理方法の一例を示すフローチャートである。 本開示の第3の実施形態に係る情報処理装置の一例を示す機能ブロック図である。 本開示の第3の実施形態に係る情報処理方法の一例を示すフローチャートである。 本開示の第3の実施形態に係る情報処理方法の一例を示すフローチャートである。 本開示の第3の実施形態の第2変形例に係る情報処理方法の一例を示すフローチャートである。 情報処理装置の機能を実現するコンピュータの一例を示すハードウェア構成図である。
 以下、本開示の実施形態について図面に基づいて詳細に説明する。なお、以下の各実施形態において、同一の構成要素には同一の符号を付することにより重複する説明を省略する。
 また、以下に示す項目順序に従って本開示を説明する。
  1.第1の実施形態
   1-1.第1の実施形態に係るロボットの構成
   1-2.第1の実施形態に係る情報処理装置の構成
   1-3.第1の実施形態に係る情報処理方法の手順
   1-4.第1の実施形態に係る効果
  2.第1の実施形態の第1変形例
  3.第1の実施形態の第2変形例
  4.第2の実施形態
   4-1.第2の実施形態に係る情報処理装置の構成
   4-2.第2の実施形態に係る情報処理方法の手順
   4-3.第2の実施形態に係る効果
  5.第2の実施形態の変形例
  6.第3の実施形態
   6-1.第3の実施形態に係る情報処理装置の構成
   6-2.第3の実施形態に係る情報処理方法の手順
   6-3.第3の実施形態に係る効果
  7.第3の実施形態の第1変形例
  8.第3の実施形態の第2変形例
  9.その他の実施形態
  10.ハードウェア構成
(1.第1の実施形態)
[1-1.第1の実施形態に係るロボットの構成]
 図1は、本開示の第1の実施形態に係るロボット1の一例を示す図である。ロボット1は、作業空間において稼働する。ロボット1は、物体Bを保管位置Psから目標位置Ptに移送する作業を実行する。以下の説明においては、作業空間にXYZ直交座標系を設定し、XYZ直交座標系を参照しながら各部の位置関係について説明する。XYZ直交座標系は、作業空間に設定されたローカル座標系である。所定面内のX軸と平行な方向をX軸方向とする。X軸と直交する所定面内のY軸と平行な方向をY軸方向とする。所定面と直交するZ軸と平行な方向をZ軸方向とする。X軸を中心とする回転方向又は傾斜方向をθX方向とする。Y軸を中心とする回転方向又は傾斜方向をθY方向とする。Z軸を中心とする回転方向又は傾斜方向をθZ方向とする。また、以下の説明においては、所定面を適宜、XY平面、と称する。XY平面は、水平面と平行である。なお、XY平面は、水平面に対して傾斜してもよい。
 図1に示すように、ロボット1は、胴体部2と、頭部3と、走行モータ4を有する走行装置5と、アームアクチュエータ6を有するロボットアーム7と、ハンドアクチュエータ8及び振動アクチュエータ9を有するロボットハンド10と、位置センサ11と、距離センサ12と、角度センサ13と、振動センサ14と、情報処理装置100とを備える。
 胴体部2は、Z軸方向に長い。胴体部2にロボット1の基準位置P0が設定される。頭部3は、胴体部2の上部に接続される。頭部3は、胴体部2に回転可能に支持される。
 走行装置5は、胴体部2を移動させる。走行装置5は、胴体部2の下部に装着される。走行装置5は、作業空間の床面を走行する。走行装置5が床面を走行することにより、胴体部2は、床面と平行なXY平面内において移動する。走行装置5は、走行モータ4が発生する駆動力により回転する車輪15を有する。車輪15が回転することにより、走行装置5は、床面を走行する。
 ロボットアーム7は、多関節型ロボットアームを含む。ロボットアーム7は、胴体部2の一方の側部及び他方の側部のそれぞれに連結される。ロボットアーム7は、アームアクチュエータ6が発生する駆動力により作動する。
 ロボットアーム7は、複数のリンク16及び複数のジョイント17を有する。リンク16は、第1リンク16Aと、第2リンク16Bとを含む。ジョイント17は、胴体部2と第1リンク16Aとを連結する第1ジョイント17Aと、第1リンク16Aと第2リンク16Bとを連結する第2ジョイント17Bと、第2リンク16Bとロボットハンド10とを連結する第3ジョイント17Cとを含む。
 アームアクチュエータ6は、リンク16を作動させる駆動力を発生する。アームアクチュエータ6として、サーボモータが例示される。アームアクチュエータ6は、第1リンク16Aを作動させる駆動力を発生する第1アームアクチュエータ6Aと、第2リンク16Bを作動させる駆動力を発生する第2アームアクチュエータ6Bと、ロボットハンド10を作動させる駆動力を発生する第3アームアクチュエータ6Cとを含む。第1アームアクチュエータ6Aが駆動することにより、第1リンク16Aが第1ジョイント17Aの回転軸を中心に回転する。第2アームアクチュエータ6Bが駆動することにより、第2リンク16Bが第2ジョイント17Bの回転軸を中心に回転する。第3アームアクチュエータ6Cが駆動することにより、ロボットハンド10が第3ジョイント17Cの回転軸を中心に回転する。
 ロボットハンド10は、物体Bを保持する保持装置である。ロボットハンド10は、ロボットアーム7の先端部に連結される。ロボットハンド10は、ハンドアクチュエータ8が発生する駆動力により作動する。
 ロボットハンド10は、第3ジョイント17Cを介して第2リンク16Bの先端部に連結されるベース部材18と、ベース部材18に移動可能に支持される一対の保持部材19とを有する。一方の保持部材19は、他方の保持部材19に近付くように又は他方の保持部材19から離れるように、ベース部材18に移動可能に支持される。なお、両方の保持部材19が、ベース部材18に移動可能に支持されてもよい。
 ハンドアクチュエータ8は、保持部材19を作動させる駆動力を発生する。ハンドアクチュエータ8として、リニアアクチュエータが例示される。ハンドアクチュエータ8が駆動することにより、一方の保持部材19が他方の保持部材19に近付くように又は他方の保持部材19から離れるように移動する。一対の保持部材19の間に物体Bが配置されている状態で、一方の保持部材19が他方の保持部材19に近付くように移動することにより、物体Bは一対の保持部材19に挟まれる。ロボットハンド10は、一対の保持部材19で物体Bを挟むことにより、物体Bを保持する。一対の保持部材19が他方の保持部材19から離れるように移動することにより、ロボットハンド10による物体Bの保持が解除される。
 振動アクチュエータ9は、ロボットハンド10に保持されている物体Bを振動させる振動力を発生する。振動アクチュエータ9として、圧電素子、偏心モータ、及びリニアバイブレータ(Linear Resonant Actuator:LRA)の少なくとも一つが例示される。振動アクチュエータ9は、ベース部材18に設けられる。振動アクチュエータ9は、ベース部材18を振動させることによって、ロボットハンド10に保持されている物体Bを振動させる。なお、振動アクチュエータ9は、保持部材19に設けられてもよい。振動アクチュエータ9は、保持部材19を振動させることによって、ロボットハンド10に保持されている物体Bを振動させてもよい。
 本開示においては、振動アクチュエータ9は3つ設けられる。3つの振動アクチュエータ9により、ロボットハンド10に保持されている物体Bは、X軸方向、Y軸方向、及びZ軸方向の少なくとも一つの方向に振動することができる。
 位置センサ11は、作業空間におけるロボット1の位置を検出する。位置センサ11は、胴体部2に設けられる。位置センサ11は、胴体部2に設定されているロボット1の基準位置P0を検出する。位置センサ11として、全地球測位システム(Global Navigation Satellite System:GNSS)を利用してロボット1の位置を検出するGNSSセンサが例示される。なお、位置センサ11として、ジャイロセンサが使用されてもよい。位置センサ11として、作業空間に設けられている基準部材との相対位置を検出することによってロボット1の位置を検出するレーザセンサ及びレーダセンサの少なくとも一方が使用されてもよい。位置センサ11として、車輪15の回転数を検出することによってロボット1の位置を推定するパルスセンサが使用されてもよい。
 距離センサ12は、距離センサ12と対象物Sとの距離Daを検出する。距離センサ12として、超音波センサ、レーザセンサ、レーザレンジファインダ、及び距離画像センサの少なくとも一つが例示される。
 角度センサ13は、リンク16の角度を検出する。角度センサ13として、ロータリーエンコーダが例示される。角度センサ13は、胴体部2に対する第1リンク16Aの角度θAを検出する第1角度センサ13Aと、第1リンク16Aに対する第2リンク16Bの角度θBを検出する第2角度センサ13Bとを含む。
 振動センサ14は、物体Bの振動を検出する。振動センサ14は、振動アクチュエータ9の駆動により振動する物体Bの振動データを取得する。振動センサ14として、慣性計測装置(Inertial Measurement Unit:IMU)、加速度センサ、速度センサ、及び変位センサの少なくとも一方が例示される。振動センサ14は、保持部材19に設けられる。振動センサ14は、保持部材19の振動を検出することによって、ロボットハンド10に保持されている物体Bの振動データを取得する。なお、振動センサ14は、ベース部材18に設けられてもよい。振動センサ14は、ベース部材18の振動を検出することによって、ロボットハンド10に保持されている物体Bの振動データを取得してもよい。
 情報処理装置100は、ロボット1を制御するコンピュータシステムを含む。情報処理装置100は、ロボット1に搭載される。
 図2は、本開示の第1の実施形態に係るロボット1の動作の一例を示す図である。情報処理装置100は、物体Bを保管位置Psから目標位置Ptに移送するように、ロボット1を制御する。
 目標位置Ptは、対象物Sに設定される。情報処理装置100は、保管位置Psに存在する物体Bをロボットハンド10で保持して対象物Sに渡すように、ロボット1を制御する。
 対象物Sは、載置面を有するテーブルを含む。目標位置Ptは、テーブルの載置面に設定される。情報処理装置100は、物体Bが対象物Sの載置面に載置されるように、ロボット1を制御する。
 情報処理装置100は、物体Bを対象物Sに載置するとき、ロボットハンド10に保持されている物体Bが対象物Sに接近するように、ロボットアーム7を制御する。
 情報処理装置100は、ロボットアーム7の作動により物体Bが対象物Sに接近している状態で、ロボットハンド10に保持されている物体Bが振動するように、振動アクチュエータ9を制御する。
 情報処理装置100は、規定の振動条件で物体Bを振動させる。振動条件は、振動パラメータの目標値を含む。振動パラメータとして、物体Bを振動させる振幅、周波数、及び振動方向の少なくとも一つが例示される。振動条件は、物体Bを振動させる振幅の目標値、物体Bを振動させる振動周波数の目標値、及び物体Bを振動させる振動方向の目標方向の少なくとも一つを含む。
 情報処理装置100は、振動センサ14により取得される物体Bの振動データに基づいて、ロボットハンド10に保持されている物体Bと対象物Sとの接触を検出する。
 図3は、本開示の第1の実施形態に係るロボットハンド10に保持されている物体Bの振動状態を示す図である。図3は、物体Bと対象物Sとが接触する前の物体Bの第1振動状態VS1と、物体Bと対象物Sとが接触した後の物体Bの第2振動状態VS2とを模式的に示す。第1振動状態VS1と第2振動状態VS2とは異なる。物体Bの振動は、物体Bと対象物Sとが接触することにより減衰する。第2振動状態VS2における物体Bの振動強度は、第1振動状態VS1における物体Bの振動強度よりも小さい。情報処理装置100は、振動センサ14により取得される物体Bの振動データに基づいて、物体Bの振動が減衰したと判定したときに、物体Bと対象物Sとの接触を検出する。
 物体Bと対象物Sとが接触した後においても、物体Bは一定時間振動し続ける。振動センサ14は、減衰後においても一定時間発生し続ける物体Bの振動を検出する。情報処理装置100は、物体Bと対象物Sとが接触した後においても一定時間発生し続ける物体Bの振動データに基づいて、物体Bと対象物Sとが十分に接触したか否かを判定することができる。
 情報処理装置100は、物体Bと対象物Sとの接触を検出した後、ロボットハンド10による物体Bの保持が解除されるように、ロボットハンド10を制御する。物体Bが対象物Sに接触した後に、ロボットハンド10による物体Bの保持が解除されるため、物体Bが倒れたり対象物Sから落下したりすることが抑制される。
[1-2.第1の実施形態に係る情報処理装置の構成]
 図4は、本開示の第1の実施形態に係る情報処理装置100の一例を示す機能ブロック図である。情報処理装置100は、位置データ記憶部101と、寸法データ記憶部102と、走行制御部103と、駆動制御部104と、保持制御部105と、距離算出部106と、振動制御部107と、振動データ取得部108と、接触検出部109とを有する。
 位置データ記憶部101は、保管位置Psを示す保管位置データ及び目標位置Ptを示す目標位置データを記憶する。保管位置データ及び目標位置データは、例えばティーチング処理によって、位置データ記憶部101に予め記憶される。
 寸法データ記憶部102は、ロボットアーム7の第1リンク16Aの寸法La、第2リンク16Bの寸法Lb、及びロボットハンド10の寸法Lcを示すロボット寸法データを記憶する。ロボット寸法データは、例えばロボット1の諸元から導出される既知データであり、寸法データ記憶部102に予め記憶される。
 走行制御部103は、走行装置5を制御する走行指令を出力する。走行制御部103は、走行モータ4に走行指令を出力する。走行制御部103は、位置センサ11の検出データを取得する。位置センサ11の検出データは、ロボット1の基準位置P0を示す基準位置データを含む。走行制御部103は、位置データ記憶部101から保管位置データ及び目標位置データを取得する。走行制御部103は、位置センサ11の検出データと、保管位置データ及び目標位置データとに基づいて、物体Bが保管位置Psから目標位置Ptに移送されるように、走行指令を出力する。走行制御部103は、位置センサ11の検出データ及び保管位置データに基づいて、ロボット1が保管位置Psに移動するように、走行モータ4に走行指令を出力する。走行制御部103は、位置センサ11の検出データ及び目標位置データに基づいて、ロボット1が目標位置Ptに移動するように、走行モータ4に走行指令を出力する。
 駆動制御部104は、ロボットハンド10を移動させる駆動指令を出力する。駆動制御部104は、ロボットアーム7の先端部に連結されているロボットハンド10が移動するように、ロボットアーム7を制御する駆動指令を出力する。駆動制御部104は、アームアクチュエータ6に駆動指令を出力する。駆動制御部104は、位置センサ11の検出データを取得する。駆動制御部104は、位置データ記憶部101から保管位置データ及び目標位置データを取得する。駆動制御部104は、位置センサ11の検出データ及び保管位置データに基づいて、保管位置Psに存在する物体Bにロボットハンド10が接近し、物体Bを保持したロボットハンド10が上昇するように、アームアクチュエータ6に駆動指令を出力する。駆動制御部104は、位置センサ11の検出データ及び目標位置データに基づいて、ロボットハンド10に保持されている物体Bが目標位置Ptに接近するように、アームアクチュエータ6に駆動指令を出力する。
 保持制御部105は、ロボットハンド10に物体Bを保持させる保持指令、及びロボットハンド10による物体Bの保持を解除する解除指令を出力する。保持制御部105は、ハンドアクチュエータ8に保持指令及び解除指令を出力する。保持制御部105は、位置センサ11の検出データを取得する。保持制御部105は、位置データ記憶部101から保管位置データ及び目標位置データを取得する。保持制御部105は、位置センサ11の検出データ及び保管位置データに基づいて、保管位置Psに存在する物体Bがロボットハンド10に保持されるように、ハンドアクチュエータ8に保持指令を出力する。保持制御部105は、位置センサ11の検出データ及び目標位置データに基づいて、目標位置Ptにおいてロボットハンド10による物体Bの保持が解除されるように、ハンドアクチュエータ8に解除指令を出力する。
 距離算出部106は、ロボットハンド10に保持されている物体Bと対象物Sに規定されている目標位置Ptとの距離Dbを算出する。距離算出部106は、位置センサ11の検出データ、距離センサ12の検出データ、及び角度センサ13の検出データを取得する。距離算出部106は、寸法データ記憶部102からロボット寸法データを取得する。距離算出部106は、位置センサ11の検出データ、距離センサ12の検出データ、角度センサ13の検出データ、及びロボット寸法データに基づいて、距離Dbを算出する。
 図5は、本開示の第1の実施形態に係る物体Bと対象物Sとの距離Dbの算出方法の一例を示す図である。
 距離算出部106は、第1角度センサ13Aの検出データと、第2角度センサ13Bの検出データと、第1リンク16Aの寸法Laと、第2リンク16Bの寸法Lbと、ロボットハンド10の寸法Lcとに基づいて、基準位置P0とロボットハンド10の先端部との相対位置を算出する。ロボットハンド10の先端部は、保持部材19の先端部である。
 距離算出部106は、第1角度センサ13Aの検出データに基づいて、基準位置P0を通る胴体部2の基準軸に対する第1リンク16Aの角度θAを算出する。距離算出部106は、第2角度センサ13Bの検出データに基づいて、第1リンク16Aに対する第2リンク16Bの角度θBを算出する。
 第1リンク16Aの寸法Laは、第1ジョイント17Aと第2ジョイント17Bとの距離である。第2リンク16Bの寸法Lbは、第2ジョイント17Bとベース部材18との距離である。ロボットハンド10の寸法Lcは、第3ジョイント17Cと保持部材19の先端部との距離である。
 寸法La、寸法Lb、寸法Lc、及び基準位置P0と第1ジョイント17Aとの相対位置は、既知データであり、寸法データ記憶部102に記憶されている。距離算出部106は、角度θA、角度θB、寸法La、寸法Lb、及び寸法Lcに基づいて、基準位置P0と保持部材19の先端部との相対位置を算出することができる。
 距離センサ12は、距離センサ12と対象物Sに設定されている目標位置Ptとの距離Daを検出する。基準位置P0と距離センサ12との相対位置は、既知データであり、寸法データ記憶部102に記憶されている。
 距離算出部106は、基準位置P0と保持部材19の先端部との相対位置、基準位置P0と距離センサ12との相対位置、及び距離センサ12と目標位置Ptとの距離Daに基づいて、保持部材19の先端部と目標位置Ptとの距離を算出することができる。
 保持部材19の先端部の位置は、ロボットハンド10に保持される物体Bの下端部の位置と実質的に等しい。したがって、距離算出部106は、保持部材19の先端部と目標位置Ptとの距離を算出することによって、ロボットハンド10に保持されている物体Bと対象物Sに設定されている目標位置Ptとの距離Dbを算出することができる。
 本開示においては、第3ジョイント17C及び第3アームアクチュエータ6Cが設けられているので、ロボットハンド10に保持されている物体Bを対象物Sの載置面に載置するとき、ロボット1は、載置面に対する物体BのθY方向の角度を調整して、物体Bを載置面に載置することができる。
 振動制御部107は、ロボットハンド10に保持されている物体Bを振動させる振動指令を出力する。振動制御部107は、振動アクチュエータ9に振動指令を出力する。
 振動制御部107は、ロボットハンド10に保持されている物体Bが対象物Sに接近するように駆動制御部104からアームアクチュエータ6に駆動指令が出力されているときに、振動アクチュエータ9に振動指令を出力する。
 振動制御部107は、距離算出部106により算出された物体Bと対象物Sとの距離Dbが規定値Ds以下になったときに、振動アクチュエータ9に対する振動指令の出力を開始する。規定値Dsは、予め定められている値である。
 図6は、本開示の第1の実施形態に係る物体Bの振動方法の一例を示す図である。ロボットハンド10に保持されている物体Bを対象物Sに渡すときの物体Bの移動方向Fmは、駆動制御部104から出力される駆動指令により規定される。ロボットハンド10に保持されている物体Bを対象物Sの載置面に載置する場合、駆動制御部104は、対象物Sの上方から物体Bが-Z方向に移動するように、アームアクチュエータ6に駆動指令を出力する。すなわち、物体Bの移動方向Fmは、-Z方向である。
 振動制御部107は、ロボットハンド10に保持されている物体Bと対象物Sとの距離Dbが規定値Dsよりも大きい状態において、振動指令を出力しない。距離Dbが規定値Dsよりも大きい状態において、振動アクチュエータ9は駆動しない。
 振動制御部107は、ロボットハンド10に保持されている物体Bと対象物Sとの距離Dbが規定値Ds以下になったときに、振動指令の出力を開始する。振動指令の出力が開始されることにより、振動アクチュエータ9は起動する。ロボットハンド10に保持されている物体Bが対象物Sに接近するようにロボットアーム7が駆動されている状態において、距離Dbが規定値Dsよりも大きい状態から規定値Ds以下に遷移したときに、振動制御部107は、振動指令の出力を開始して、振動アクチュエータ9を起動する。
 振動制御部107は、駆動制御部104から出力される駆動指令により規定される物体Bの移動方向Fmと、振動アクチュエータ9による物体Bの振動方向Fvとが一致するように、振動アクチュエータ9に振動指令を出力する。物体Bの移動方向Fmが-Z方向である場合、振動制御部107は、物体BがZ軸方向に振動するように、振動アクチュエータ9に振動指令を出力する。
 振動制御部107は、物体Bを一方向にのみ振動させる。振動制御部107は、物体BをZ軸方向にのみ振動させ、X軸方向、Y軸方向、θX方向、θY方向、及びθZ方向には振動させない。
 振動データ取得部108は、振動センサ14の検出データを取得する。振動センサ14の検出データは、物体Bの振動データを示す。振動データ取得部108は、振動制御部107から出力された振動指令により規定される振動条件に基づいて振動する物体Bの振動データを取得する。
 振動指令により規定される振動条件は、物体Bを振動させる振幅の目標値、周波数の目標値、及び振動方向の目標方向の少なくとも一つを含む。振動センサ14により取得される振動データは、物体Bの振幅の検出値、周波数の検出値、及び振動方向の検出方向の少なくとも一つを含む。
 接触検出部109は、振動データ取得部108により取得された振動データに基づいて、物体Bと対象物Sとの接触を検出する。接触検出部109は、振幅の検出値が振幅の目標値よりも小さいと判定したときに、物体Bと対象物Sとの接触を検出する。
 図7は、本開示の第1の実施形態に係る物体Bと対象物Sとの接触の検出方法の一例を示す図である。図7に示すグラフにおいて、横軸は時間を示し、縦軸は振動センサ14によって検出された物体Bの振幅を示す。
 時点t0は、振動アクチュエータ9による振動が開始された時点を示す。時点t0は、対象物Sに接近する物体Bと対象物Sとの距離Dbが規定値Dsよりも大きい状態から規定値Ds以下に遷移した時点を示す。時点t1は、対象物Sに接近する物体Bと対象物Sとが接触した時点を示す。時点t0と時点t1との間の期間は、振動する物体Bと対象物Sとが接触する前の期間を示す。時点t1が経過した後の期間は、振動する物体Bと対象物Sとが接触した後の期間を示す。
 物体Bと対象物Sとが接触する前においては、物体Bの振幅の検出値は、振幅の目標値に実質的に等しい。物体Bと対象物Sとが接触した後においては、物体Bの振幅の検出値は、振幅の目標値よりも小さくなる。接触検出部109は、振幅の検出値が振幅の目標値よりも小さいと判定したときに、物体Bと対象物Sとの接触を検出することができる。
 保持制御部105は、接触検出部109により物体Bと対象物Sとの接触が検出された後に、ロボットハンド10による物体Bの保持を解除する解除指令を出力する。
[1-3.第1の実施形態に係る情報処理方法の手順]
 図8は、本開示の第1の実施形態に係る情報処理方法の一例を示すフローチャートである。走行制御部103は、位置データ記憶部101に記憶されている保管位置データに基づいて、ロボット1が保管位置Psに移動するように、走行モータ4に走行指令を出力する。駆動制御部104は、保管位置データに基づいて、ロボットハンド10が保管位置Psに存在する物体Bに接近するように、アームアクチュエータ6に駆動指令を出力する。保持制御部105は、保管位置Psに存在する物体Bがロボットハンド10に保持されるように、ハンドアクチュエータ8に保持指令を出力する。物体Bがロボットハンド10に保持された後、駆動制御部104は、ロボットハンド10に保持された物体Bが保管位置Psから上昇するように、アームアクチュエータ6に駆動指令を出力する。
 保管位置Psに存在する物体Bがロボットハンド10に保持された後、走行制御部103は、位置データ記憶部101に記憶されている目標位置データに基づいて、ロボット1が対象物Sに移動するように、走行モータ4に走行指令を出力する(ステップS110)。
 ロボット1が対象物Sに移動した後、駆動制御部104は、目標位置データに基づいて、ロボットハンド10に保持されている物体Bが対象物Sに設定されている目標位置Ptに接近するように、アームアクチュエータ6に駆動指令を出力する(ステップS120)。
 距離算出部106は、ロボットハンド10に保持されている物体Bと対象物Sに設定されている目標位置Ptとの距離Dbを算出する。図5を参照して説明したように、距離算出部106は、位置センサ11の検出データ、距離センサ12の検出データ、角度センサ13の検出データ、及び寸法データ記憶部102に記憶されているロボット寸法データに基づいて、距離Dbを算出する(ステップS130)。
 振動制御部107は、距離算出部106により算出された距離Dbが規定値Ds以下か否かを判定する(ステップS140)。
 ステップS140において、距離Dbが規定値Dsよりも大きいと判定された場合(ステップS140:No)、駆動制御部104は、ロボットハンド10に保持されている物体Bが対象物Sに設定されている目標位置Ptに更に接近するように、アームアクチュエータ6に駆動指令を出力する。駆動制御部104は、距離Dbが規定値Ds以下であると判定されるまで、ロボットハンド10に保持されている物体Bが対象物Sに接近するように、駆動指令を出力する。
 ステップS140において、距離Dbが規定値Ds以下であると判定された場合(ステップS140:Yes)、振動制御部107は、振動指令の出力を開始する(ステップS150)。
 振動指令が出力されることにより、振動アクチュエータ9が起動し、ロボットハンド10に保持されている物体Bの振動が開始される。振動制御部107は、規定の振動条件で物体Bが振動するように、振動指令を出力する。図6を参照して説明したように、振動制御部107は、物体Bの移動方向Fmと物体Bの振動方向Fvとが一致するように、振動指令を出力する。
 駆動制御部104は、振動アクチュエータ9が起動し、物体Bの振動が開始された後、ロボットハンド10に保持されている物体Bが対象物Sに接触するように、アームアクチュエータ6に駆動指令を出力する(ステップS160)。
 すなわち、駆動制御部104は、距離Dbが規定値Ds以下になったと判定された後、ロボットハンド10に保持されている物体Bが対象物Sに更に接近するように、駆動指令を出力する。ロボットハンド10に保持されている物体Bが対象物Sに接近するように駆動指令が出力されている状態において、振動制御部107は、振動指令の出力を継続する。物体Bは、振動しながら対象物Sに接近する。
 振動データ取得部108は、振動指令により規定される振動条件に基づいて振動する物体Bの振動データを取得する(ステップS170)。
 接触検出部109は、振動データ取得部108により取得された物体Bの振幅の検出値が、振動指令により規定される振幅の目標値よりも小さいか否かを判定する(ステップS180)。
 ステップS180において、物体Bの振幅の検出値が振幅の目標値に等しい又は振幅の目標値よりも大きいと判定された場合(ステップS180:No)、接触検出部109は、物体Bと対象物Sとが接触していないと判定する。駆動制御部104は、物体Bと対象物Sとが接触したと判定されるまで、ロボットハンド10に保持されている物体Bが対象物Sに接近するように、駆動指令を出力する。
 ステップS180において、物体Bの振幅の検出値が振幅の目標値よりも小さいと判定された場合(ステップS180:Yes)、接触検出部109は、物体Bと対象物Sとが接触したと判定する。
 接触検出部109により物体Bと対象物Sとの接触が検出された後、保持制御部105は、ロボットハンド10による物体Bの保持を解除する解除指令を出力する(ステップS190)。これにより、物体Bは、対象物Sに載置される。
[1-4.第1の実施形態に係る効果]
 以上説明したように、本開示の第1の実施形態によれば、振動制御部107は、ロボットハンド10に保持されている物体Bを振動させる振動指令を出力する。振動データ取得部108は、振動指令により規定される振動条件に基づいて振動する物体の振動データを取得する。これにより、接触検出部109は、振動データに基づいて、物体Bと対象物Sとの接触を簡単に検出することができる。図3を参照して説明したように、物体Bと対象物Sとが接触する前の物体Bの第1振動状態VS1と、物体Bと対象物Sとが接触した後の物体Bの第2振動状態VS2とは、異なる。第2振動状態VS2における物体Bの振動強度は、第1振動状態VS1における物体Bの振動強度よりも小さい。そのため、接触検出部109は、物体Bの振動の減衰を検出することにより、物体Bと対象物Sとの接触を簡単に検出することができる。
 ロボットハンド10に保持されている物体Bと対象物Sとが接触した後においても、物体Bは一定時間振動し続ける。振動データ取得部108は、減衰後においても一定時間発生し続ける物体Bの振動データを取得する。接触検出部109は、物体Bと対象物Sとが接触した後においても一定時間発生し続ける物体Bの振動データに基づいて、物体Bと対象物Sとが接触したか否かを精度良く判定することができる。
 物体Bの振動データに基づいて物体Bと対象物Sとの接触を検出することにより、物体Bを対象物Sに接近させるときのロボットハンド10の移動速度が高くても、接触検出部109は、物体Bと対象物Sとの接触を検出することができる。
 振動センサ14の検出データに基づいて物体Bと対象物Sとの接触を検出することにより、安価で簡単な構成で、物体Bと対象物Sとの接触を検出することができる。物体Bの大きさ又は形状を示すデータを取得しなくても、接触検出部109は、振動の減衰を示すデータに基づいて、物体Bと対象物Sとの接触を検出することができる。
 振動指令により規定される振動条件は、物体Bを振動させる振幅の目標値を含む。振動データ取得部108により取得される振動データは、物体Bの振幅の検出値を含む。物体Bと対象物Sとが接触する前の物体Bの第1振動状態VS1と、物体Bと対象物Sとが接触した後の物体Bの第2振動状態VS2とでは、物体Bの振幅が異なる。そのため、接触検出部109は、振幅の検出値が振幅の目標値よりも小さいと判定したときに、物体Bと対象物Sとの接触を検出することができる。
 保持制御部105は、接触検出部109により物体Bと対象物Sとの接触が検出された後に、ロボットハンド10による物体Bの保持を解除する解除指令を出力する。物体Bが対象物Sに接触した後に、ロボットハンド10による物体Bの保持が解除されるため、物体Bが倒れたり対象物Sから落下したりすることが抑制される。
 ロボットハンド10は、ロボットアーム7のアームアクチュエータ6の駆動により移動する。駆動制御部104は、ロボットハンド10を移動させる駆動指令をアームアクチュエータ6に出力する。振動制御部107は、ロボットハンド10に保持されている物体Bが対象物Sに接近するように駆動指令が出力されているときに、振動アクチュエータ9を駆動させる振動指令を出力する。対象物Sに接近する状態で物体Bが振動することにより、接触検出部109は、振動状態の変化を高精度に検出することができる。
 距離算出部106は、ロボットハンド10に保持されている物体Bと対象物Sとの距離Dbを算出する。振動制御部107は、距離Dbが規定値Ds以下になったときに、振動指令の出力を開始して、振動アクチュエータ9を起動する。距離Dbが規定値Ds以下になったときに振動アクチュエータ9が起動することにより、振動アクチュエータ9が不必要に駆動されることが抑制される。
 振動制御部107は、駆動指令により規定される物体Bの移動方向Fmと振動方向Fvとが一致するように、振動指令を出力する。移動方向Fmに一致するように振動方向Fvが定められることにより、接触検出部109は、振動状態の変化に基づいて、物体Bと対象物Sとの接触を高精度に検出することができる。
(2.第1の実施形態の第1変形例)
 図9は、本開示の第1の実施形態の第1変形例に係る物体Bの振動方法の一例を示す図である。図9に示すように、振動制御部107は、駆動制御部104から出力される駆動指令により規定される物体Bの移動方向Fmと、振動アクチュエータ9による物体Bの振動方向Fvとが直交するように、振動アクチュエータ9に振動指令を出力する。例えば、物体Bの移動方向Fmが-Z方向である場合、振動制御部107は、物体BがY軸方向に振動するように、振動アクチュエータ9に振動指令を出力してもよい。物体BがY軸方向に振動することにより、接触検出部109は、ロボットハンド10に保持されている物体Bと物体BにY軸方向から接近する他の物体との接触を検出することができる。接触検出部109は、振動データ取得部108により取得された振動データに基づいて、物体BにY軸方向から接近する他の物体が障害物であると判定することができる。他の物体が障害物であると判定された場合、駆動制御部104は、ロボットハンド10の移動を停止してもよい。なお、他の物体が障害物であると判定された場合、情報処理装置100は、警告を出力してもよい。
 また、振動制御部107が物体Bを一方向にのみ振動させることにより、対象物との検出方向に指向性を持たせることができる。
 なお、物体Bの移動方向Fmが-Z方向である場合、振動制御部107は、物体BがX軸方向に振動するように、振動アクチュエータ9に振動指令を出力してもよい。
(3.第1の実施形態の第2変形例)
 図10は、本開示の第1の実施形態の第2変形例に係る物体の振動方法の一例を示す図である。図10に示すように、振動制御部107は、ロボットハンド10に保持されている物体Bが複数の振動方向のそれぞれに異なる周波数で振動するように、振動アクチュエータ9に振動指令を出力してもよい。例えば、振動制御部107は、X軸方向と平行な振動方向Fvxに第1周波数で物体Bを振動させる。振動制御部107は、Y軸方向と平行な振動方向Fvyに第1周波数とは異なる第2周波数で物体Bを振動させる。振動制御部107は、Z軸方向と平行な振動方向Fvzに第1周波数及び第2周波数とは異なる第3周波数で物体Bを振動させる。振動制御部107は、ロボットハンド10に保持されている物体Bを、振動方向Fvx、振動方向Fvy、及び振動方向Fvzのそれぞれに同時に振動させる。
 図11は、本開示の第1の実施形態の第2変形例に係る物体Bと対象物Sとの接触の検出方法の一例を示す図である。図11に示すグラフにおいて、横軸は時間を示し、縦軸は振動センサ14によって検出された物体Bの振幅を示す。ラインLxは、振動方向Fvxにおける物体Bの振幅と時間との関係を示す。ラインLyは、振動方向Fvyにおける物体Bの振幅と時間との関係を示す。ラインLzは、振動方向Fvzにおける物体Bの振幅と時間との関係を示す。時点t0は、振動アクチュエータ9による振動が開始された時点を示す。時点t1は、対象物Sに接近する物体Bと対象物Sとが接触した時点を示す。
 物体BのZ軸方向の端面と対象物Sとが接触した場合、図11に示すように、振動方向Fvzにおける振動の振幅が時点t1において小さくなる。なお、物体BのX軸方向の端面と対象物Sとが接触した場合、振動方向Fvxにおける振動の振幅が時点t1において小さくなる。物体BのY軸方向の端面と対象物Sとが接触した場合、振動方向Fvyにおける振動の振幅が時点t1において小さくなる。
 物体Bが複数の振動方向のそれぞれに振動することにより、振動データ取得部108は、図11に示したような、複数の振動方向Fvx,Fvy,Fvzのそれぞれに係る振動データを取得することができる。接触検出部109は、振動データ取得部108により取得された振動データに基づいて、振幅が小さくなった振動方向を特定することにより、物体Bと対象物Sとの接触方向を特定することができる。
 また、物体Bが複数の振動方向Fvx,Fvy,Fvzのそれぞれに異なる周波数で振動することにより、接触検出部109は、複数の振動方向のそれぞれに係る振動データを容易に区別することができる。これにより、接触検出部109は、物体Bと対象物Sとの接触方向を高精度に特定することができる。
 なお、物体Bの振動方向は一例である。振動制御部107は、物体Bを、θX方向に振動させてもよいし、θY方向に振動させてもよいし、θZ方向に振動させてもよい。
 なお、物体Bと対象物Sとの接触方向が意図しない接触方向であると判定された場合、駆動制御部104は、ロボットハンド10の移動を停止してもよい。また、物体Bと対象物Sとの接触方向が意図しない接触方向であると判定された場合、情報処理装置100は、警告を出力してもよい。
(4.第2の実施形態)
[4-1.第2の実施形態に係る情報処理装置の構成]
 次に、第2の実施形態について説明する。図12は、本開示の第2の実施形態に係る情報処理装置100の一例を示す機能ブロック図である。本開示の第2の実施形態に係る情報処理装置100は、第1の実施形態に係る情報処理装置100の構成要素に加えて、物体特定部110と、振動条件記憶部111とを有する。また、本開示の第2の実施形態に係るロボット1は、物体センサ20を備える。
 物体センサ20は、ロボットハンド10に保持される物体Bの固有データを検出する。物体Bの固有データとして、物体Bの重量及び物体Bの共振周波数の少なくとも一方が例示される。
 物体センサ20として、物体Bの重量を検出可能な重量センサ、及び物体Bの画像データを取得可能なカメラセンサの少なくとも一つが例示される。
 物体特定部110は、物体センサ20の検出データに基づいて、ロボットハンド10に保持される物体Bを特定する。物体センサ20が重量センサである場合、物体特定部110は、物体センサ20の検出データに基づいて、物体Bの重量を特定することができる。物体センサ20がカメラセンサである場合、物体特定部110は、物体センサ20により取得された画像データを画像処理して、物体Bの重量及び物体Bの共振周波数を推定することができる。物体Bの画像データの特徴量と物体Bの重量及び物体Bの共振周波数との関係を示す相関データが物体特定部110に予め保有される。物体特定部110は、カメラセンサにより取得された画像データと相関データとに基づいて、物体Bの重量及び物体Bの共振周波数を特定することができる。
 振動条件記憶部111は、適正範囲の振幅の検出値を取得することができる物体Bの振動条件を記憶する。振動条件記憶部111は、物体Bの固有データと、適正範囲の振幅の検出値を取得することができる物体Bの振動条件との相関データを記憶する。適正範囲の振幅の検出値とは、接触検出部109が物体Bの振幅の検出値に基づいて物体Bと対象物Sとの接触を検出する場合において、検出精度を維持することができる振幅の検出値をいう。適正範囲の振幅の検出値を取得することができる物体Bの振動条件は、予備実験又はシミュレーションにより取得され、振動条件記憶部111に予め記憶される。
 振動条件記憶部111は、物体Bの重量と、適正範囲の振幅の検出値を取得することができる振幅の目標値との相関データを記憶する。物体Bの重量が大きい場合、物体Bを振動させる振幅の目標値が小さいと、振動データ取得部108により取得される振幅の検出値は小さくなる。振幅の検出値が小さい場合、接触検出部109は、振幅の検出値に基づいて物体Bと対象物Sとの接触を高精度に検出できない可能性が高くなる。振動条件記憶部111は、物体Bの重量が大きいほど振幅の目標値が大きくなり、物体Bの重量が小さいほど振幅の目標値が小さくなる相関データを記憶する。物体Bの重量が大きいほどロボットハンド10に保持されている物体Bの振幅の目標値を大きくすることにより、振動データ取得部108は、適正範囲の振幅の検出値を取得することができる。
 振動条件記憶部111は、物体Bの共振周波数と、適正範囲の振幅の検出値を取得することができる周波数の目標値との相関データを記憶する。物体Bの共振周波数と同一の周波数で物体Bを振動させると、物体Bが共振し、振動データ取得部108により取得される振幅の検出値が過度に大きくなったり、物体Bに影響を及ぼしたりする可能性がある。振動条件記憶部111は、物体Bの共振周波数と、物体Bの共振周波数とは異なる周波数の目標値との相関データを記憶する。ロボットハンド10に保持されている物体Bの周波数の目標値を物体Bの共振周波数とは異ならせることにより、振動データ取得部108は、適正範囲の振幅の検出値を取得することができる。
 振動制御部107は、物体特定部110により特定された物体Bの固有データに基づいて、振動条件を変更する。
 物体Bの固有データとして物体Bの重量が特定された場合、振動制御部107は、振動条件として、物体Bを振動させる振幅の目標値を変更する。振動制御部107は、物体特定部110により特定された物体Bの固有データと、振動条件記憶部111に記憶されている相関データとに基づいて、適正範囲の振幅の検出値を取得することができる振幅の目標値を決定する。振動制御部107は、決定した振幅の目標値で物体Bが振動するように、振動指令を出力する。
 物体Bの固有データとして物体Bの共振周波数が特定された場合、振動制御部107は、振動条件として、物体Bを振動させる周波数の目標値を変更する。振動制御部107は、物体特定部110により特定された物体Bの固有データと、振動条件記憶部111に記憶されている相関データとに基づいて、適正範囲な振幅の検出値を取得することができる周波数の目標値を決定する。振動制御部107は、決定した周波数の目標値で物体Bが振動するように、振動指令を出力する。
 なお、物体Bの重量が大きく、振動データ取得部108により取得される振幅の検出値が小さい場合、振動制御部107は、物体Bの共振周波数と同一の周波数で物体Bを振動させてもよい。これにより、振動アクチュエータ9が発生する駆動力が小さくても、物体Bの振幅が大きくなる。物体Bの振幅が大きくなることにより、振動データ取得部108は、適正範囲の振幅の検出値を取得することができる。なお、振動制御部107は、ロボットハンド10の共振周波数と同一の周波数で物体Bを振動させてもよい。
 なお、物体Bの重量が大きく、振動データ取得部108により取得される振幅の検出値が小さい場合、振動制御部107は、適正範囲の振幅の検出値が取得されるように、振動アクチュエータ9に振動指令を出力してもよい。
[4-2.第2の実施形態に係る情報処理方法の手順]
 図13は、本開示の第2の実施形態に係る情報処理方法の一例を示すフローチャートである。走行制御部103は、ロボット1が保管位置Psに移動するように、走行モータ4に走行指令を出力する。物体センサ20は、保管位置Psに存在する物体Bを検出する。物体センサ20は、ロボットハンド10が物体Bを保持する前に、物体Bを検出する。物体特定部110は、物体センサ20の検出データに基づいて、ロボットハンド10に保持される物体Bを特定する(ステップS100)。
 振動制御部107は、ステップS100において物体特定部110により特定された物体Bの固有データと、振動条件記憶部111に記憶されている相関データとに基づいて、適正範囲の振幅の検出値を取得することができる振幅の目標値を決定する(ステップS102)。
 物体センサ20により物体Bが検出された後、駆動制御部104は、ロボットハンド10が保管位置Psに存在する物体Bに接近するように、アームアクチュエータ6に駆動指令を出力する。保持制御部105は、保管位置Psに存在する物体Bがロボットハンド10に保持されるように、ハンドアクチュエータ8に保持指令を出力する。
 保管位置Psに存在する物体Bがロボットハンド10に保持された後、本開示の第1の実施形態に係る情報処理方法の手順と同様に、ステップS110からステップS140の処理が実行される。
 ステップS140において、距離Dbが規定値Ds以下であると判定された場合(ステップS140:Yes)、振動制御部107は、振動指令の出力を開始する(ステップS150)。
 振動制御部107は、ステップS102において決定した振幅の目標値で物体Bが振動するように、振動指令を出力する。
 ステップS102において決定された振幅の目標値で物体Bが振動するように振動指令の出力が開始された後、本開示の第1の実施形態に係る情報処理方法の手順と同様に、ステップS160からステップS190の処理が実行される。
[4-3.第2の実施形態に係る効果]
 以上説明したように、本開示の第2の実施形態によれば、物体Bの固有データに基づいて、物体Bの振動条件が変更される。これにより、振動データ取得部108は、適正範囲の振幅の検出値を取得することができる。したがって、接触検出部109は、振動データ取得部108により取得された振動データに基づいて、物体Bと対象物Sとの接触を高精度に検出することができる。
(5.第2の実施形態の変形例)
 物体特定部110は、物体センサ20の検出データに基づいて、物体Bの固有データとして、物体Bの形態を特定することができる。物体Bの形態は、物体Bの形状及び使用形態の少なくとも一つを含む。例えば物体センサ20がカメラセンサである場合、物体特定部110は、物体センサ20により取得された画像データを画像処理して、物体Bの形態を推定することができる。
 振動条件記憶部111は、ロボットハンド10に保持される前の物体Bの形態が維持される振動条件を記憶する。振動条件記憶部111は、複数の物体Bのそれぞれの固有データと、物体Bの形態が維持される振動条件との相関データを記憶する。例えば、物体Bに他の物体が保持される場合、物体Bの形態が維持される振動条件は、他の物体が物体Bに保持され続ける振動条件を含む。また、物体Bの形態が維持される振動条件は、物体Bが破壊されない振動条件を含む。例えば物体Bが液体のような収容物を収容するカップである場合、振動条件記憶部111は、物体Bがカップであることを示す固有データと、カップに収容物が収容され続ける振動条件との相関データを記憶する。すなわち、振動条件記憶部111は、カップから収容物がこぼれない振動条件を記憶する。物体Bが搭載物を搭載するプレートである場合、振動条件記憶部111は、物体Bがプレートであることを示す固有データと、プレートに搭載物が搭載され続ける振動条件との相関データを記憶する。すなわち、振動条件記憶部111は、プレートから搭載物が落下しない振動条件を記憶する。物体Bが例えば破壊され易いガラス製品である場合、振動条件記憶部111は、物体Bがガラス製品であることを示す固有データと、ガラス製品が破壊されない振動条件との相関データを記憶する。
 物体Bの形態が維持される振動条件は、予備実験又はシミュレーションにより導出され、振動条件記憶部111に予め記憶される。
 例えば予備実験においては、収容物が収容されたカップのような物体Bがロボットハンド10に保持される。情報処理装置100は、複数の振動条件のそれぞれでロボットハンド10に保持されている物体Bを振動させながら、対象物Sに載置する処理を実行する。複数の振動条件のそれぞれについて、物体Bから収容物がこぼれたか否かが検出される。収容物がこぼれたか否かの検出は、カメラセンサにより実行されてもよいし、ロボットハンド10に設けられている重量センサ又は力センサにより実行されてもよい。物体Bから収容物がこぼれない振動条件が、物体Bの形態を維持することができる振動条件として、振動条件記憶部111に記憶される。
 例えば予備実験においては、ガラス製品のような破壊され易い物体Bがロボットハンド10に保持される。情報処理装置100は、複数の振動条件のそれぞれでロボットハンド10に保持されている物体Bを振動させながら、対象物Sに載置する処理を実行する。複数の振動条件のそれぞれについて、物体Bが破壊されたか否かが検出される。物体Bが破壊されたか否かの検出は、カメラセンサにより実行されてもよいし、ロボットハンド10に設けられている重量センサ又は力センサにより実行されてもよい。物体Bが破壊されない振動条件が、物体Bの形態を維持することができる振動条件として、振動条件記憶部111に記憶される。
 振動制御部107は、物体特定部110により特定された物体Bの固有データに基づいて、ロボットハンド10に保持される前の物体Bの形態が維持される振動条件で物体Bが振動するように、振動指令を出力する。
 物体特定部110は、図13に示したフローチャートの例えばステップS100において、物体センサ20の検出データに基づいて、物体Bの形態を特定することができる。振動制御部107は、物体特定部110により特定された物体Bの固有データと、振動条件記憶部111に記憶されている相関データとに基づいて、物体Bの形態が維持される振動条件を決定することができる。振動制御部107は、ステップS150において、ロボットハンド10に保持される前の物体Bの形態が維持される振動条件で物体Bが振動するように、振動指令を出力することができる。
 以上説明したように、本開示の第2の実施形態の変形例によれば、物体Bの形態が維持される振動条件で物体Bが振動するので、物体Bに保持されている第2の物体が物体Bから落下したり、物体Bが破損したりすることが抑制される。
(6.第3の実施形態)
[6-1.第3の実施形態に係る情報処理装置の構成]
 次に、第3の実施形態について説明する。図14は、本開示の第3の実施形態に係る情報処理装置100の一例を示す機能ブロック図である。本開示の第3の実施形態に係る情報処理装置100は、第1の実施形態及び第2の実施形態に係る情報処理装置100の構成要素に加えて、状態推定部112と、状態観測部113と、学習部114と、学習モデル記憶部115とを有する。
 状態推定部112は、振動データ取得部108により取得された振動データに基づいて、物体B及び対象物Sの少なくとも一方の状態を推定する。
 状態観測部113は、複数の振動条件のそれぞれで物体Bを振動させたときに観測された振動データと振動データが観測されたときの物体B及び対象物Sの少なくとも一方の状態との関係を示す教師データを取得する。
 学習部114は、状態観測部113により取得された教師データに基づいて機械学習を実行して、振動条件及び振動データの一方又は両方を入力とし物体B及び対象物Sの少なくとも一方の状態を出力とする学習モデルを生成する。
 学習モデル記憶部115は、学習部114により生成された学習モデルを記憶する。
 状態推定部112は、振動データ取得部108から振動データを取得し、学習モデル記憶部115から学習モデルを取得する。状態推定部112は、振動データ取得部108により取得された振動データを学習モデルに入力して、物体B及び対象物Sの少なくとも一方の状態を推定する。
 駆動制御部104は、状態推定部112により推定された物体B及び対象物Sの少なくとも一方の状態に基づいて、ロボットハンド10を移動させる駆動指令をアームアクチュエータ6に出力する。
 物体B及び対象物Sの少なくとも一方の状態は、物体Bと対象物Sとの接触形態を含む。物体Bと対象物Sとの接触形態は、物体Bと対象物Sとが点接触する形態、線接触する形態、及び面接触する形態の少なくとも一つを含む。
 状態観測部113は、複数の振動条件のそれぞれで物体Bを振動させたときに観測された振動データと振動データが観測されたときの物体Bと対象物Sとの接触形態との関係を示す教師データを取得する。学習部114は、状態観測部113により取得された教師データに基づいて機械学習を実行して、振動条件及び振動データの一方又は両方を入力とし物体Bと対象物Sとの接触形態を出力とする学習モデルを生成する。状態推定部112は、振動データ取得部108により取得された振動データを学習モデルに入力して、物体Bと対象物Sとの接触形態を推定する。
[6-2.第3の実施形態に係る情報処理方法の手順]
 図15及び図16は、本開示の第3の実施形態に係る情報処理方法の一例を示すフローチャートである。図15は、学習フェーズの一例を示すフローチャートである。図16は、解析制御フェーズの一例を示すフローチャートである。学習フェーズにおいて、複数の振動条件のそれぞれで物体Bを振動させたときの複数の振動データを入力とし物体Bと対象物Sとの接触形態を出力とする学習モデルが生成される。解析制御フェーズにおいて、振動データ取得部108により取得された振動データを学習モデルに入力して、物体Bと対象物Sとの接触形態が推定される。
 学習フェーズにおいて、振動制御部107は、ロボットハンド10に保持されている物体Bと対象物Sとが点接触する状態で、複数の振動条件のそれぞれで物体Bを振動させる。振動制御部107は、ロボットハンド10に保持されている物体Bと対象物Sとが線接触する状態で、複数の振動条件のそれぞれで物体Bを振動させる。振動制御部107は、ロボットハンド10に保持されている物体Bと対象物Sとが面接触する状態で、複数の振動条件のそれぞれで物体Bを振動させる。振動条件は、振動の振幅、周波数、振動方向、及び振動制御部107から振動指令が出力されてから物体Bが実際に振動を開始するまでの遅延時間の少なくとも一つを含む。
 振動データ取得部108は、複数の接触形態及び複数の振動条件のそれぞれで物体Bを振動させたときの複数の振動データを取得する。状態観測部113は、複数の振動条件のそれぞれで物体Bを振動させたときの複数の振動データ及び複数の振動データのそれぞれが観測されたときの物体Bと対象物Sとの複数の接触形態を含む教師データを取得する(ステップS210)。
 学習部114は、状態観測部113により取得された教師データに基づいて機械学習を実行する(ステップS220)。機械学習アルゴリズムとして、ニューラルネットワーク(Neural Network)、サポートベクターマシン(Support Vector Machine:SVM)、決定木(Decision Tree)、及びランダムフォレスト(Random Forest)、ブーティング(Booting)、及びサポートベクターマシン(Support Vector Machine:SVM)の少なくとも一つが例示される。
 学習部114は、機械学習を実行することにより、振動条件及び振動データの一方又は両方を入力とし物体Bと対象物Sとの接触形態を出力とする学習モデルを生成する(ステップS230)。
 学習部114は、生成した学習モデルを学習モデル記憶部115に記憶させる(ステップS240)。
 解析識別フェーズにおいては、本開示の第1の実施形態に係る情報処理方法の手順と同様に、ステップS110からステップS150の処理が実行される。なお、図16において、ステップS110からステップS150の図示は省略する。
 ステップS150の処理が実行され、振動アクチュエータ9が起動した後、駆動制御部104は、ロボットハンド10に保持されている物体Bが対象物Sに接触するように、アームアクチュエータ6に駆動指令を出力する(ステップS160)。振動データ取得部108は、物体Bの振動データを取得する(ステップS170)。接触検出部109は、振動データ取得部108により取得された物体Bの振幅の検出値が振幅の目標値よりも小さいか否かを判定する(ステップS180)。ステップS180において、物体Bの振幅の検出値が、振幅の目標値よりも小さいと判定された場合(ステップS180:Yes)、接触検出部109は、ロボットハンド10に保持されている物体Bと対象物Sとが接触したと判定する。
 状態推定部112は、振動データ取得部108から振動データを取得し、学習モデル記憶部115から学習モデルを取得する。状態推定部112は、振動データ取得部108により取得された振動データを学習モデルに入力して、ロボットハンド10に保持されている物体Bと対象物Sとの接触形態を推定する(ステップS182)。
 なお、ステップS150において振動データを取得するとき、学習フェーズにおいて接触形態の分類成功率が最も高かった振動条件で振動させると、ステップS180において推定精度の低下が抑制される。なお、ステップS182において、振動条件が学習モデルに入力されてもよい。振動条件及び振動データの両方が学習モデルに入力されてもよい。
 状態推定部112は、ステップS180において推定した物体Bと対象物Sとの接触形態が面接触か否かを判定する(ステップS184)。
 ステップS184において物体Bと対象物Sとの接触形態が面接触であると判定された場合(ステップS184:Yes)、保持制御部105は、ロボットハンド10による物体Bの保持を解除する解除指令を出力する(ステップS190)。これにより、物体Bは、対象物Sに載置される。
 ステップS184において物体Bと対象物Sとの接触形態が面接触でないと判定された場合(ステップS184:No)、駆動制御部104は、ロボットハンド10に保持されている物体Bと対象物Sとが離れるようにロボットハンド10を移動させる駆動指令をアームアクチュエータ6に出力する。駆動制御部104は、アームアクチュエータ6の駆動条件を変更する(ステップS186)。
 ロボットハンド10に保持されている物体Bと対象物Sとが離れた後、駆動制御部104は、ロボットハンド10に保持されている物体Bと対象物Sとが接触するように、変更後の駆動条件に基づいて、アームアクチュエータ6に駆動指令を出力する。
 すなわち、ステップS184において物体Bと対象物Sとの接触形態が面接触でないと判定された場合、駆動制御部104は、ロボットハンド10に保持されている物体Bと対象物Sとの接触のやり直し処理を実行する。駆動制御部104は、物体Bと対象物Sとの接触形態が面接触であると判定されるまで、アームアクチュエータ6の駆動条件の変更と、物体Bを対象物Sとの接触のやり直し処理とを繰り返す。
 なお、ステップS184において物体Bと対象物Sとの接触形態が面接触でないと判定された場合、駆動制御部104は、ロボットハンド10に保持されている物体Bと対象物Sとを離すことなく、物体Bと対象物Sとが面接触するように、アームアクチュエータ6に駆動指令を出力してもよい。例えば、駆動制御部104は、-Z方向、θX方向、θY方向、及びθZ方向の少なくとも一つの方向にロボットハンド10を移動させる駆動指令を出力してもよい。-Z方向、θX方向、θY方向、及びθZ方向の少なくとも一つの方向にロボットハンド10が移動することにより、ロボットハンド10に保持されている物体Bが対象物Sに押し付けられ、ロボットハンド10に保持されている物体Bと対象物Sとが面接触する。
 なお、物体Bと対象物Sとの接触形態が、物体Bと対象物Sとが非接触の状態を含んでもよい。物体Bと対象物Sとが接触したか否かの判定は、接触検出部109が実行せずに、状態推定部112が実行してもよい。
[6-3.第3の実施形態に係る効果]
 以上説明したように、本開示の第3の実施形態によれば、物体Bと対象物Sとの接触の有無のみならず、物体Bと対象物Sとの接触形態が推定される。物体Bを対象物Sに安定して載置するためには、物体Bと対象物Sとの接触面積が大きいことが好ましい。推定された接触状態が点接触又は線接触である場合、状態推定部112は、対象物Sに載置される物体Bは不安定であると判定する。対象物Sに載置される物体Bが不安定であると判定された場合、駆動制御部104は、ロボットハンド10を移動させるアームアクチュエータ6の駆動条件を変更して、物体Bと対象物Sとを接触させる処理をやり直したり、ロボットハンド10に保持されている物体Bを対象物Sに押し付けたりすることができる。これにより、物体Bと対象物Sとは面接触することができる。物体Bと対象物Sとが面接触することにより、物体Bは、対象物Sに安定して載置される。
(7.第3の実施形態に係る第1変形例)
 学習部114は、振動条件及び振動データの一方又は両方を入力としロボットハンド10に保持されている物体Bと対象物Sとの接触面積を出力とする学習モデルを生成してもよい。例えば学習フェーズにおいて、駆動制御部104は、複数の振動条件のそれぞれで振動する物体Bを対象物Sに接触させる。物体Bと対象物Sとが接触している状態で、物体Bの周囲から複数のカメラで物体Bと対象物Sとの接触境界が検出される。学習部114は、複数の振動条件のそれぞれで物体Bを振動させたときの複数の振動データ及び複数の振動データのそれぞれが取得されたときの複数の接触面積を含む教師データに基づいて、振動データを入力とし接触面積を出力とする学習モデルを生成することができる。
(8.第3実施形態の第2変形例)
 物体B及び対象物Sの少なくとも一方の状態は、物体B及び対象物Sの少なくとも一方の物理特性を含んでもよい。物体B及び対象物Sの少なくとも一方の物理特性は、物体Bの弾性、物体Bの粘性、対象物Sの弾性、及び対象物Sの粘性の少なくとも一つを含む。
 学習フェーズにおいて、異なる物理特性を有する複数の対象物Sが使用される。学習フェーズにおいて使用される対象物Sの物理特性は、既知データである。振動制御部107は、ロボットハンド10に保持されている物体Bと複数の対象物Sのそれぞれとが接触する状態で、複数の振動条件のそれぞれで物体Bを振動させる。例えば、振動制御部107は、ロボットハンド10に保持されている物体Bと第1の物理特性を有する対象物Sとが接触する状態で、複数の振動条件のそれぞれで物体Bを振動させる。振動制御部107は、ロボットハンド10に保持されている物体Bと第2の物理特性を有する対象物Sとが接触する状態で、複数の振動条件のそれぞれで物体Bを振動させる。
 状態観測部113は、複数の振動条件のそれぞれで物体Bを振動させたときに観測された振動データと振動データが観測されたときの対象物Sの物理特性との関係を示す教師データを取得する。
 学習部114は、状態観測部113により取得された教師データに基づいて機械学習を実行する。機械学習アルゴリズムとして、ニューラルネットワーク(Neural Network)、及び線形回帰の少なくとも一方が例示される。
 学習部114は、機械学習を実行することにより、振動条件及び振動データの一方又は両方を入力とし対象物の物理特性を出力とする学習モデルを生成する。学習部114は、生成した学習モデルを学習モデル記憶部115に記憶させる。
 図17は、本開示の第3の実施形態の第2変形例に係る情報処理方法の一例を示すフローチャートである。図17は、解析制御フェーズの一例を示すフローチャートである。
 解析識別フェーズにおいては、本開示の第1の実施形態に係る情報処理方法の手順と同様に、ステップS110からステップS150の処理が実行される。なお、図17において、ステップS110からステップS150の図示は省略する。
 駆動制御部104は、ロボットハンド10に保持されている物体Bが対象物Sに接触するように、アームアクチュエータ6に駆動指令を出力する(ステップS160)。振動データ取得部108は、物体Bの振動データを取得する(ステップS170)。ステップS180において、物体Bの振幅の検出値が、振幅の目標値よりも小さいと判定された場合(ステップS180:Yes)、接触検出部109は、ロボットハンド10に保持されている物体Bと対象物Sとが接触したと判定する。
 状態推定部112は、振動データ取得部108から振動データを取得し、学習モデル記憶部115から学習モデルを取得する。状態推定部112は、振動データ取得部108により取得された振動データを学習モデルに入力して、ロボットハンド10に保持されている物体Bに接触する対象物Sの物理特性を推定する(ステップS187)。
 例えば対象物Sの共振周波数及び減衰率は、対象物Sの弾性又は粘性に基づいて決定される。したがって、状態推定部112は、振動データを学習モデルに入力することにより、対象物Sの物理特性を推定することができる。
 なお、ステップS187において、振動条件が学習モデルに入力されてもよい。振動条件及び振動データの両方が学習モデルに入力されてもよい。
 駆動制御部104は、ステップS187において推定された対象物Sの物理特性に基づいて、ロボットハンド10に保持されている物体Bと対象物Sとの接触力を調整する駆動指令を出力する(ステップS188)。
 対象物Sの弾性が低い場合、対象物Sは変形し易い可能性が高い。そのため、推定された対象物Sの弾性が低い場合、駆動制御部104は、物体Bと対象物Sとの接触力が小さくなるように、ロボットハンド10を移動させる駆動指令を出力する。これにより、対象物Sの変形が抑制された状態で、物体Bが対象物Sに載置される。推定された対象物Sの弾性が高い場合、駆動制御部104は、物体Bと対象物Sとの接触力が大きくなるように、ロボットハンド10を移動させる駆動指令を出力する。
 ステップS188において、駆動制御部104が接触力を調整しながら物体Bを対象物Sに載置した後、保持制御部105は、ロボットハンド10による物体Bの保持を解除する解除指令を出力する(ステップS190)。
 以上説明したように、本開示の第3の実施形態の第2変形例によれば、対象物Sの物理特性が推定される。推定された物理特性に基づいて、物体Bを対象物Sに載置するときの接触力が調整される。これにより、物体Bは、対象物Sの物理特性に最適な接触力で対象物Sに載置される。
 なお、学習フェーズにおいて、複数の振動条件のそれぞれで物体Bを振動させたときに観測された振動データと振動データが観測されたときの物体Bとの物理特性の関係を示す教師データに基づいて、学習モデルが生成されてもよい。解析制御フェーズにおいて、物体Bの物理特性が推定されてもよい。駆動制御部104は、推定された物体Bの物理特性に基づいて、ロボットハンド10に保持されている物体Bと対象物Sとの接触力を調整する駆動指令を出力してもよい。
 なお、学習フェーズで使用される学習部114及び学習モデル記憶部115の少なくとも一方が、ロボット1の外部に設けられてもよい。学習部114及び学習モデル記憶部115の少なくとも一方がロボット1の外部に設けられる場合、情報処理装置100と学習部114及び学習モデル記憶部115の少なくとも一方とは、インターネットのようなネットワークを介して接続されてもよい。学習部114及び学習モデル記憶部115の少なくとも一方は、例えばクラウドサービス(cloud service)により提供されるクラウドコンピューティング(cloud computing)のサーバに設けられてもよい。また、学習モデルは、複数のロボットで共有されてもよい。機械学習は、GPGPU(General Purpose Graphics Processing Unit)又は大規模PCクラスタ等により実行されてもよい。
(9.その他の実施形態)
 上述した各実施形態に係る処理は、上記各実施形態以外にも種々の異なる形態にて実施されてよい。
 上述の実施形態においては、ロボットハンド10に保持されている物体Bの移動方向Fmが-Z方向であり、物体Bがテーブルの載置面に載置されることとした。物体Bの移動方向Fmは、X軸方向でもよいし、Y軸方向でもよい。例えば、ロボットハンド10に保持されている物体を他のロボットハンドに渡す場合において、駆動制御部104は、ロボットハンド10に保持されている物体BがXY平面内において移動するように、アームアクチュエータ6に駆動指令を出力してもよい。物体Bが他のロボットハンドに接触する前に、ロボットハンド10による物体Bの保持が解除されてしまうと、物体Bが落下する可能性がある。ロボットハンド10に保持されている物体Bと他のロボットハンドとの接触を接触検出部109が検出した後に、保持制御部105がロボットハンド10による物体Bの保持を解除する解除指令を出力されることにより、ロボットハンド10に保持されている物体Bを対象物Sである他のロボットハンドに安定して渡すことができる。
 上述の実施形態においては、ロボットハンド10は、一対の保持部材19で物体Bを挟むことにより物体Bを保持するグリッパ方式ロボットハンドであることとした。ロボットハンド10は、物体Bを解放可能に保持することができればよい。ロボットハンド10は、複数の指により物体Bを保持する多指方式ロボットハンドでもよいし、吸引力により物体Bを保持する吸引方式ロボットハンドでもよい。
 上述の実施形態においては、振動アクチュエータ9がロボットハンド10に設けられることとした。アームアクチュエータ6が発生する振動力により、ロボットハンド10に保持されている物体Bを振動させてもよい。また、ロボットアーム7の撓みに起因する機械振動を利用して物体Bを振動させてもよい。
 上述の実施形態においては、振動アクチュエータ9が3つ設けられ、ロボットハンド10に保持されている物体BがX軸方向、Y軸方向、及びZ軸方向の少なくとも一つの方向に振動可能であることとした。振動アクチュエータ9の数は、1つでもよいし2つでもよい。物体BはZ軸方向のみに振動可能でもよい。物体Bは、Z軸方向及びX軸方向に振動可能でもよいし、Z軸方向及びY軸方向に振動可能でもよいし、X軸方向及びY軸方向に振動可能でもよい。また、ロボットハンド10に保持されている物体Bは、X軸方向、Y軸方向、Z軸方向、θX方向、θY方向、及びθZ方向の少なくとも一つの方向に振動可能でもよい。例えばアームアクチュエータ6が発生する振動力により、ロボットハンド10に保持されている物体Bは、X軸方向、Y軸方向、Z軸方向、θX方向、θY方向、及びθZ方向の6つの方向に振動してもよい。
 ロボット1は、生活空間で物体Bを搬送するサービスロボットでもよいし、食材を食器に盛り付ける調理ロボットでもよい。ロボット1は、倉庫において物体Bを棚から搬出したり棚に搬入したりする物流ロボットでもよい。
 上述の実施形態においては、保持装置が、ロボット1が有するロボットハンド10であることとした。保持装置は、物体Bを解放可能に保持することができればよく、ロボットハンド10に限定されない。
 また、上記各実施形態において説明した各処理のうち、自動的に行われるものとして説明した処理の全部または一部を手動的に行うこともでき、あるいは、手動的に行われるものとして説明した処理の全部または一部を公知の方法で自動的に行うこともできる。この他、上記文書中や図面中で示した処理手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。例えば、各図に示した各種情報は、図示した情報に限られない。
 また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、図1に示した走行制御部103、駆動制御部104、及び保持制御部105は統合されてもよい。
 また、上述してきた各実施形態及び変形例は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
 また、本明細書に記載された効果はあくまで例示であって限定されるものでは無く、また他の効果があってもよい。
(10.ハードウェア構成)
 上述してきた各実施形態に係る情報処理装置100は、例えば図18に示すような構成のコンピュータ1000によって実現される。以下、第1の実施形態に係る情報処理装置100を例に挙げて説明する。図18は、情報処理装置100の機能を実現するコンピュータ1000の一例を示すハードウェア構成図である。コンピュータ1000は、CPU1100、RAM1200、ROM(Read Only Memory)1300、HDD(Hard Disk Drive)1400、通信インターフェイス1500、及び入出力インターフェイス1600を有する。コンピュータ1000の各部は、バス1050によって接続される。
 CPU1100は、ROM1300又はHDD1400に格納されたプログラムに基づいて動作し、各部の制御を行う。例えば、CPU1100は、ROM1300又はHDD1400に格納されたプログラムをRAM1200に展開し、各種プログラムに対応した処理を実行する。
 ROM1300は、コンピュータ1000の起動時にCPU1100によって実行されるBIOS(Basic Input Output System)等のブートプログラムや、コンピュータ1000のハードウェアに依存するプログラム等を格納する。
 HDD1400は、CPU1100によって実行されるプログラム、及び、かかるプログラムによって使用されるデータ等を非一時的に記録する、コンピュータが読み取り可能な記録媒体である。具体的には、HDD1400は、プログラムデータ1450の一例である本開示に係る画像処理プログラムを記録する記録媒体である。
 通信インターフェイス1500は、コンピュータ1000が外部ネットワーク1550(例えばインターネット)と接続するためのインターフェイスである。例えば、CPU1100は、通信インターフェイス1500を介して、他の機器からデータを受信したり、CPU1100が生成したデータを他の機器へ送信したりする。
 入出力インターフェイス1600は、入出力デバイス1650とコンピュータ1000とを接続するためのインターフェイスである。例えば、CPU1100は、入出力インターフェイス1600を介して、キーボードやマウス等の入力デバイスからデータを受信する。また、CPU1100は、入出力インターフェイス1600を介して、ディスプレイやスピーカーやプリンタ等の出力デバイスにデータを送信する。また、入出力インターフェイス1600は、所定の記録媒体(メディア)に記録されたプログラム等を読み取るメディアインターフェイスとして機能してもよい。メディアとは、例えばDVD(Digital Versatile Disc)、PD(Phase change rewritable Disk)等の光学記録媒体、MO(Magneto-Optical disk)等の光磁気記録媒体、テープ媒体、磁気記録媒体、または半導体メモリ等である。
 例えば、コンピュータ1000が第1の実施形態に係る情報処理装置100として機能する場合、コンピュータ1000のCPU1100は、RAM1200上にロードされた画像処理プログラムを実行することにより、振動制御部107、振動データ取得部108、及び接触検出部109等の機能を実現する。また、HDD1400には、本開示に係る画像処理プログラムや、位置データ記憶部101及び寸法データ記憶部102内のデータが格納される。なお、CPU1100は、プログラムデータ1450をHDD1400から読み取って実行するが、他の例として、外部ネットワーク1550を介して、他の装置からこれらのプログラムを取得してもよい。プログラムは、コンピュータ1000に、ロボットハンド10に保持されている物体Bを振動させる振動指令を出力し、振動指令により規定される振動条件に基づいて振動する物体Bの振動データを取得し、振動データに基づいて、物体Bと対象物Sとの接触を検出する処理を実行させることができる。
 なお、本技術は以下のような構成も取ることができる。
(1)
 保持装置に保持されている物体を振動させる振動指令を出力する振動制御部と、
 前記振動指令により規定される振動条件に基づいて振動する前記物体の振動データを取得する振動データ取得部と、
 前記振動データに基づいて、前記物体と対象物との接触を検出する接触検出部と、
を備える情報処理装置。
(2)
 前記振動条件は、前記物体を振動させる振幅の目標値を含み、
 前記振動データは、前記物体の振幅の検出値を含み、
 前記接触検出部は、前記振幅の検出値が前記振幅の目標値よりも小さいと判定したときに、前記物体と前記対象物との接触を検出する、
前記(1)に記載の情報処理装置。
(3)
 前記接触検出部により前記物体と前記対象物との接触が検出された後に、前記保持装置による前記物体の保持を解除する解除指令を出力する保持制御部を備える、
前記(2)に記載の情報処理装置。
(4)
 前記保持装置を移動させる駆動指令を出力する駆動制御部を備え、
 前記振動制御部は、前記保持装置に保持されている前記物体が前記対象物に接近するように前記駆動指令が出力されているときに、前記振動指令を出力する、
前記(1)から前記(3)のいずれか一つに記載の情報処理装置。
(5)
 前記保持装置に保持されている前記物体と前記対象物との距離を算出する距離算出部を備え、
 前記振動制御部は、前記物体と前記対象物との距離が規定値以下になったときに、前記振動指令の出力を開始する、
前記(4)に記載の情報処理装置。
(6)
 前記振動条件は、前記物体を振動させる振動方向を含み、
 前記振動制御部は、前記駆動指令により規定される前記物体の移動方向と前記振動方向とが一致するように、前記振動指令を出力する、
前記(4)又は前記(5)に記載の情報処理装置。
(7)
 前記振動条件は、前記物体を振動させる振動方向を含み、
 前記振動制御部は、前記駆動指令により規定される前記物体の移動方向と前記振動方向とが直交するように、前記振動指令を出力する、
前記(4)から前記(6)のいずれか一つに記載の情報処理装置。
(8)
 前記振動条件は、前記物体を振動させる振動方向及び周波数を含み、
 前記振動制御部は、前記物体が複数の振動方向のそれぞれに異なる周波数で振動するように、前記振動指令を出力する、
前記(1)から前記(7)のいずれか一つに記載の情報処理装置。
(9)
 前記振動制御部は、前記物体の固有データに基づいて、前記振動条件を変更する、
前記(1)から前記(8)のいずれか一つに記載の情報処理装置。
(10)
 前記物体の固有データは、前記物体の重量を含み、
 前記振動条件は、前記物体を振動させる振幅の目標値を含む、
前記(9)に記載の情報処理装置。
(11)
 前記物体の固有データは、前記物体の共振周波数を含み、
 前記振動条件は、前記物体を振動させる周波数の目標値を含む、
前記(9)又は前記(10)に記載の情報処理装置。
(12)
 前記振動制御部は、前記保持装置に保持される前の前記物体の状態が維持される振動条件で前記物体が振動するように、前記振動指令を出力する、
前記(1)から前記(11)のいずれか一つに記載の情報処理装置。
(13)
 前記物体の状態が維持される振動条件を記憶する振動条件記憶部を備え、
 前記振動制御部は、前記振動条件記憶部に記憶されている振動条件で前記物体を振動させるように、前記振動指令を出力する、
前記(12)に記載の情報処理装置。
(14)
 前記物体に第2物体が保持され、
 前記振動条件は、前記第2物体が前記物体に保持され続ける振動条件を含む、
前記(12)又は前記(13)に記載の情報処理装置。
(15)
 前記振動条件は、前記物体が破壊されない振動条件を含む、
前記(12)から前記(14)のいずれか一つに記載の情報処理装置。
(16)
 前記振動データに基づいて、前記物体及び前記対象物の少なくとも一方の状態を推定する状態推定部を備える、
前記(1)から前記(15)のいずれか一つに記載の情報処理装置。
(17)
 複数の前記振動条件のそれぞれで前記物体を振動させたときに観測された前記振動データと前記状態との関係を示す教師データに基づいて、前記振動条件及び前記振動データの一方又は両方を入力とし前記状態を出力とする学習モデルを生成する学習部を備え、
 前記状態推定部は、前記振動データ取得部により取得された前記振動データを前記学習モデルに入力して、前記状態を推定する、
前記(16)に記載の情報処理装置。
(18)
 前記状態推定部により推定された前記状態に基づいて、前記保持装置を移動させる駆動指令を出力する駆動制御部を備える、
前記(16)又は前記(17)に記載の情報処理装置。
(19)
 前記状態は、前記物体と前記対象物との接触形態を含む、
前記(16)から前記(18)のいずれか一つに記載の情報処理装置。
(20)
 前記状態は、前記物体及び前記対象物の少なくとも一方の物理特性を含む、
前記(16)から前記(19)のいずれか一つに記載の情報処理装置。
(21)
 保持装置に保持されている物体を振動させる振動指令を出力し、
 前記振動指令により規定される振動条件に基づいて振動する前記物体の振動データを取得し、
 前記振動データに基づいて、前記物体と対象物との接触を検出する、
情報処理方法。
(22)
 保持装置に保持されている物体を振動させる振動指令を出力し、
 前記振動指令により規定される振動条件に基づいて振動する前記物体の振動データを取得し、
 前記振動データに基づいて、前記物体と対象物との接触を検出する処理を実行させる、
プログラム。
1 ロボット
2 胴体部
6 アームアクチュエータ
7 ロボットアーム
8 ハンドアクチュエータ
9 振動アクチュエータ
10 ロボットハンド
14 振動センサ
100 情報処理装置
101 位置データ記憶部
102 寸法データ記憶部
103 走行制御部
104 駆動制御部
105 保持制御部
106 距離算出部
107 振動制御部
108 振動データ取得部
109 接触検出部
110 物体特定部
111 振動条件記憶部
112 状態推定部
113 状態観測部
114 学習部
115 学習モデル記憶部
B 物体
S 対象物

Claims (18)

  1.  保持装置に保持されている物体を振動させる振動指令を出力する振動制御部と、
     前記振動指令により規定される振動条件に基づいて振動する前記物体の振動データを取得する振動データ取得部と、
     前記振動データに基づいて、前記物体と対象物との接触を検出する接触検出部と、
    を備える情報処理装置。
  2.  前記振動条件は、前記物体を振動させる振幅の目標値を含み、
     前記振動データは、前記物体の振幅の検出値を含み、
     前記接触検出部は、前記振幅の検出値が前記振幅の目標値よりも小さいと判定したときに、前記物体と前記対象物との接触を検出する、
    請求項1に記載の情報処理装置。
  3.  前記接触検出部により前記物体と前記対象物との接触が検出された後に、前記保持装置による前記物体の保持を解除する解除指令を出力する保持制御部を備える、
    請求項2に記載の情報処理装置。
  4.  前記保持装置を移動させる駆動指令を出力する駆動制御部を備え、
     前記振動制御部は、前記保持装置に保持されている前記物体が前記対象物に接近するように前記駆動指令が出力されているときに、前記振動指令を出力する、
    請求項1に記載の情報処理装置。
  5.  前記保持装置に保持されている前記物体と前記対象物との距離を算出する距離算出部を備え、
     前記振動制御部は、前記物体と前記対象物との距離が規定値以下になったときに、前記振動指令の出力を開始する、
    請求項4に記載の情報処理装置。
  6.  前記振動条件は、前記物体を振動させる振動方向を含み、
     前記振動制御部は、前記駆動指令により規定される前記物体の移動方向と前記振動方向とが一致するように、前記振動指令を出力する、
    請求項4に記載の情報処理装置。
  7.  前記振動条件は、前記物体を振動させる振動方向及び周波数を含み、
     前記振動制御部は、前記物体が複数の振動方向のそれぞれに異なる周波数で振動するように、前記振動指令を出力する、
    請求項1に記載の情報処理装置。
  8.  前記振動制御部は、前記物体の固有データに基づいて、前記振動条件を変更する、
    請求項1に記載の情報処理装置。
  9.  前記物体の固有データは、前記物体の重量を含み、
     前記振動条件は、前記物体を振動させる振幅の目標値を含む、
    請求項8に記載の情報処理装置。
  10.  前記物体の固有データは、前記物体の共振周波数を含み、
     前記振動条件は、前記物体を振動させる周波数の目標値を含む、
    請求項8に記載の情報処理装置。
  11.  前記振動制御部は、前記保持装置に保持される前の前記物体の形態が維持される振動条件で前記物体が振動するように、前記振動指令を出力する、
    請求項1に記載の情報処理装置。
  12.  前記振動データに基づいて、前記物体及び前記対象物の少なくとも一方の状態を推定する状態推定部を備える、
    請求項1に記載の情報処理装置。
  13.  複数の前記振動条件のそれぞれで前記物体を振動させたときに観測された前記振動データと前記状態との関係を示す教師データに基づいて、前記振動条件及び前記振動データの一方又は両方を入力とし前記状態を出力とする学習モデルを生成する学習部を備え、
     前記状態推定部は、前記振動データ取得部により取得された前記振動データを前記学習モデルに入力して、前記状態を推定する、
    請求項12に記載の情報処理装置。
  14.  前記状態推定部により推定された前記状態に基づいて、前記保持装置を移動させる駆動指令を出力する駆動制御部を備える、
    請求項13に記載の情報処理装置。
  15.  前記状態は、前記物体と前記対象物との接触形態を含む、
    請求項12に記載の情報処理装置。
  16.  前記状態は、前記物体及び前記対象物の少なくとも一方の物理特性を含む、
    請求項12に記載の情報処理装置。
  17.  保持装置に保持されている物体を振動させる振動指令を出力し、
     前記振動指令により規定される振動条件に基づいて振動する前記物体の振動データを取得し、
     前記振動データに基づいて、前記物体と対象物との接触を検出する、
    情報処理方法。
  18.  保持装置に保持されている物体を振動させる振動指令を出力し、
     前記振動指令により規定される振動条件に基づいて振動する前記物体の振動データを取得し、
     前記振動データに基づいて、前記物体と対象物との接触を検出する処理を実行させる、
    プログラム。
PCT/JP2019/038905 2018-10-09 2019-10-02 情報処理装置、情報処理方法、及びプログラム WO2020075589A1 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2018191228 2018-10-09
JP2018-191228 2018-10-09

Publications (1)

Publication Number Publication Date
WO2020075589A1 true WO2020075589A1 (ja) 2020-04-16

Family

ID=70164077

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2019/038905 WO2020075589A1 (ja) 2018-10-09 2019-10-02 情報処理装置、情報処理方法、及びプログラム

Country Status (1)

Country Link
WO (1) WO2020075589A1 (ja)

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06221806A (ja) * 1992-12-03 1994-08-12 Mitsutoyo Corp タッチ信号プローブ
JPH07198364A (ja) * 1993-12-28 1995-08-01 Mitsutoyo Corp タッチ信号プローブ
JPH10176917A (ja) * 1996-12-18 1998-06-30 Mitsutoyo Corp タッチ信号プローブの接触検出方式
JP2000346717A (ja) * 1999-06-03 2000-12-15 Matsushita Electric Ind Co Ltd 圧電センサと圧電センサ荷重検出装置および挟み込み防止装置
JP2001275995A (ja) * 2000-03-29 2001-10-09 Olympus Optical Co Ltd 共振広域化回路及び共振広域化回路を用いた触覚センサ
JP2010149262A (ja) * 2008-12-26 2010-07-08 Nihon Univ 把持部を有するロボットハンドシステム
JP2010286254A (ja) * 2009-06-09 2010-12-24 Seiko Epson Corp 触覚センサー装置およびそれを用いたロボット
JP2012206206A (ja) * 2011-03-29 2012-10-25 Seiko Epson Corp ロボットの制御方法、及びロボット

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06221806A (ja) * 1992-12-03 1994-08-12 Mitsutoyo Corp タッチ信号プローブ
JPH07198364A (ja) * 1993-12-28 1995-08-01 Mitsutoyo Corp タッチ信号プローブ
JPH10176917A (ja) * 1996-12-18 1998-06-30 Mitsutoyo Corp タッチ信号プローブの接触検出方式
JP2000346717A (ja) * 1999-06-03 2000-12-15 Matsushita Electric Ind Co Ltd 圧電センサと圧電センサ荷重検出装置および挟み込み防止装置
JP2001275995A (ja) * 2000-03-29 2001-10-09 Olympus Optical Co Ltd 共振広域化回路及び共振広域化回路を用いた触覚センサ
JP2010149262A (ja) * 2008-12-26 2010-07-08 Nihon Univ 把持部を有するロボットハンドシステム
JP2010286254A (ja) * 2009-06-09 2010-12-24 Seiko Epson Corp 触覚センサー装置およびそれを用いたロボット
JP2012206206A (ja) * 2011-03-29 2012-10-25 Seiko Epson Corp ロボットの制御方法、及びロボット

Similar Documents

Publication Publication Date Title
US11780083B2 (en) Determining and utilizing corrections to robot actions
JP6632106B1 (ja) 制御装置、移送装置、プログラム、及び、制御方法
US11640517B2 (en) Update of local features model based on correction to robot action
JP6950638B2 (ja) マニピュレータ制御装置、マニピュレータ制御方法、及びマニピュレータ制御プログラム
JP6643020B2 (ja) ロボット制御装置、ロボット制御方法及びコンピュータプログラム
JP7447944B2 (ja) シミュレーション装置、シミュレーションプログラムおよびシミュレーション方法
TWI750939B (zh) 控制機器人脫困的方法、機器人、電子設備和電腦可讀儲存介質
JP7188574B2 (ja) 吸着パッド、および変形計測装置
WO2020075589A1 (ja) 情報処理装置、情報処理方法、及びプログラム
JP2011232815A (ja) 移動体装置及び移動制御プログラム
Jentoft et al. Determining object geometry with compliance and simple sensors
JP4577697B2 (ja) 移動装置および移動装置システム
EP4148374A1 (en) Workpiece holding apparatus, workpiece holding method, program, and control apparatus
CN112603202B (zh) 离地检测方法、装置、移动机器人及存储介质
JP3918732B2 (ja) 非接触式三次元相対変位計測装置
WO2021044751A1 (ja) 情報処理装置、情報処理方法及び情報処理プログラム
JP6670712B2 (ja) 自己位置推定装置、移動体及び自己位置推定方法
JP6982666B2 (ja) 表示制御システム、検査管理システム、表示制御方法、プログラム、及び記憶媒体
WO2023166868A1 (ja) 移動型撮像ロボットシステム及びその制御方法
WO2023190012A1 (ja) ロボットハンド、処理装置、駆動機構制御部、プログラム及び制御システム
Ćwikła et al. The Use of Line Simplification and Vibration Suppression Algorithms to Improve the Quality of Determining the Indoor Location in RTLSs
JP2012256209A (ja) 移動ロボット

Legal Events

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

Ref document number: 19870899

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 19870899

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: JP