WO2021181804A1 - シミュレーション装置およびプログラム - Google Patents
シミュレーション装置およびプログラム Download PDFInfo
- Publication number
- WO2021181804A1 WO2021181804A1 PCT/JP2020/047255 JP2020047255W WO2021181804A1 WO 2021181804 A1 WO2021181804 A1 WO 2021181804A1 JP 2020047255 W JP2020047255 W JP 2020047255W WO 2021181804 A1 WO2021181804 A1 WO 2021181804A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- simulation
- behavior
- virtual space
- axes
- robot
- Prior art date
Links
Images
Classifications
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1656—Programme controls characterised by programming, planning systems for manipulators
Definitions
- the present disclosure relates to a simulation device and a program for estimating the behavior of a device.
- Patent Document 1 Japanese Patent Application Laid-Open No. 2019-36014 is for designing a control program for controlling the movement of a machine in advance. Disclose the simulation.
- the FA is equipped with an industrial robot with articulated joints.
- each joint operates in conjunction with the movement of the corresponding axis, and as a result, the robot conveys or processes the work.
- the movable range of each axis was set to a predetermined value.
- the movable range excessively limits the movement of the joint, that is, it acts to limit the movement of transporting or machining the work, etc.
- the range may not be appropriate. Therefore, it has been desired to provide an environment in which the movable range of each axis of the robot can be set individually, but the simulation of Patent Document 1 does not provide the environment.
- One object of the present disclosure is to provide a configuration capable of simulating the behavior of a device based on a movable range set for each axis.
- the simulation device is a simulation device that estimates the behavior of a device having a plurality of joints, and each device has a plurality of axes corresponding to the joints of the device and corresponds to each of the plurality of axes.
- the joint operates in conjunction with the movement of the axis, and the simulation device selects one or more axes from a plurality of axes according to the operation reception unit for receiving the user operation for the simulation device and the user operation.
- a simulation that calculates the behavior of the target placed in the virtual space corresponding to the device based on the setting unit that sets the movable range of each one or more selected axes and the movable range of each selected axis. It includes a first simulator to be implemented, and an image generation unit that generates an image that visualizes a virtual space.
- the movable range of the selected axis is set according to the user operation, and the first simulator is arranged in the virtual space corresponding to the device based on the movable range of each selected axis. Simulate the behavior of the target.
- the simulation apparatus further comprises a range change section that changes the range of motion of each selected axis, and the first simulator is further based on the range of motion of each selected axis. , Perform a simulation to calculate the behavior of the target placed in the virtual space corresponding to the device.
- the simulation device can repeat the simulation while changing the movable range of the axis set by the user.
- an object different from the object corresponding to the device is arranged in the virtual space, the different object includes the object corresponding to the peripheral device of the device, and the behavior of the object corresponding to the device is the object.
- the range changer changes the movable range of each selected axis when the relative relationship between the positions of the target and the different target corresponding to the device in the virtual space indicates a specific positional relationship. do.
- the simulation apparatus changes the movable range of each selected axis when the relative relationship between the positions of the objects in the virtual space indicates a specific positional relationship, and the changed movable range.
- the simulation can be performed again based on.
- an object different from the object corresponding to the device is arranged, and the different object includes the object arranged in the virtual space corresponding to the cable attached to the device, and the virtual corresponding to the device.
- a second simulator that calculates the behavior of the target placed in the virtual space corresponding to the cable by using the parameters related to the attachment of the cable based on the behavior of the target placed in the space.
- the simulation device can calculate the behavior of the target placed in the virtual space corresponding to the cable attached to the device based on the behavior of the target placed in the virtual space corresponding to the device.
- the simulation apparatus calculates the load applied to the target based on the behavior of the target corresponding to the cable calculated by the second simulator, and the range changing unit satisfies the predetermined load with the calculated load. When, change the range of motion of each selected axis.
- the simulation apparatus changes the movable range of each selected axis when the load applied to the target based on the behavior of the target corresponding to the cable satisfies a predetermined condition, and the movable range after the change.
- the simulation can be performed again based on.
- the setting unit further sets a teaching point indicating the position and orientation to be taken by the device according to the user operation
- the first simulator further sets the position and orientation indicated by the set teaching point and selected. Based on the movable range of each axis, the behavior of the target placed in the virtual space corresponding to the device is calculated.
- the teaching point and the movable range of the selected axis are set according to the user operation, and the first simulator sets the position and orientation indicated by the set teaching point and the movable range of each selected axis. Based on the above, the behavior of the target placed in the virtual space corresponding to the device can be simulated.
- the program according to this disclosure is a program for causing a computer to execute a method of estimating the behavior of a device having a plurality of joints, and each device includes a plurality of axes corresponding to the joints of the device.
- the joints corresponding to each of the plurality of axes operate in conjunction with the movement of the axis, and the method is to select one or more axes from the plurality of axes and select one or more of each according to the user operation.
- Visualize the virtual space including the step of setting the movable range of the axes, the step of performing a simulation to calculate the behavior of the target placed in the virtual space corresponding to the device based on the movable range of each selected axis, and the step of performing a simulation. It is provided with a step of generating a created image.
- the movable range of the selected axis is set according to the user operation, and the simulation corresponds to the device based on the movable range of each selected axis. Simulate the behavior of objects placed in space. This makes it possible to simulate the behavior of the device based on the movable range for each axis set by the user.
- the simulation device 1 is typically applicable to an application for controlling the operation of a robot, which is an example of a device for transporting or processing a work. Further, the simulation device 1 can comprehensively simulate the behavior of the device even for a system including the robot and one or more devices that operate in connection with the transfer or processing of the work.
- the robot which is an example of the device, includes a plurality of joints and axes corresponding to each joint. Each joint operates in conjunction with the movement of the corresponding axis.
- the transfer of the work will be described as the movement to be simulated.
- “Pick and place” will be described as an example of transportation.
- pick and place when the work to be transported reaches a predetermined tracking area, the robot grips the work in the tracking area, transports the work to the predetermined area, and arranges the work in the predetermined area.
- a robot hand corresponding to an "end effector" attached to the tip of the robot arm is used.
- the robot application to be simulated is not limited to the transfer of the work, and may be an application for assembling or processing the work.
- the "teaching point” indicates the position and posture representing the behavior that the robot should take.
- the robot can convey the work along the target trajectory by sequentially changing the position and posture according to a plurality of teaching points set corresponding to the target trajectory of pick and place.
- FIG. 1 is a schematic diagram showing an application example of the simulation device 1 according to the present embodiment.
- the simulation apparatus 1 includes a virtual space and virtual space information 105 that defines objects arranged in the virtual space. By calculating the behavior of each object in the virtual space, the contents of the virtual space information 105 are updated as appropriate.
- the simulation device 1 carries out a simulation using the data group 180 for simulation.
- the data group 180 includes teaching point data 184, movable range data 185 set corresponding to each of one or more teaching points, confirmation item data 186 indicating items to be confirmed in the simulation result, and position / orientation data 187.
- the teaching point data 184 indicates a plurality of teaching points.
- the teaching point data 184 indicates, for example, a plurality of teaching points corresponding to a pick-and-place target trajectory.
- the movable range data 185 indicates the movable range of the axis set corresponding to each of the one or more axes.
- the position / posture data 187 indicates the position / posture representing the behavior of the peripheral device, the cable, and the work arranged around the robot on the production line.
- Peripheral devices include, but are not limited to, for example, a conveyor for transporting workpieces, a tray for accommodating workpieces, various sensors, and the like.
- the simulation device 1 includes a robot simulator 160 that calculates the behavior of a robot that conveys a work arranged in a virtual space.
- the robot simulator 160 is an embodiment of the “first simulator”.
- the simulation device 1 includes a visualizer 164 that generates an image that visualizes a virtual space.
- the visualizer 164 is an embodiment of the "image generation unit”.
- the simulation device 1 includes a user operation reception unit 202 that receives a user operation 201 for the simulation device 1, and a setting tool 190.
- the setting tool 190 assists the user in setting simulation parameters and inputting instructions to the simulation device 1.
- the setting tool 190 includes an axis setting tool 191 which is an embodiment of the "axis setting unit” and a teaching point setting tool 192 which is an embodiment of the "teaching point setting unit".
- the teaching point setting tool 192 sets one or more teaching points from the plurality of teaching points indicated by the teaching point data 184.
- the axis setting tool 191 sets one or more axes from the plurality of axes of the robot in association with each of the set one or more teaching points.
- the setting tool 190 sets the movable range of the axis in association with each of the set one or more axes.
- the setting tool 190 generates and generates movable range data 185 indicating the movable range of each of the one or more axes set by the user in association with each of the one or more teaching points set by the user.
- the movable range data 185 is stored.
- the robot simulator 160 performs a simulation for calculating the behavior of an object (hereinafter referred to as an object) corresponding to the robot 30 in the virtual space for each of the one or more teaching points indicated by the movable range data 185. Specifically, the robot simulator 160 is based on the position and orientation indicated by the teaching point and the movable range of each of the one or more axes corresponding to the teaching point, and the behavior of the object arranged in the virtual space corresponding to the robot. Is calculated. The behavior information calculated by the robot simulator 160 is reflected in the virtual space information 105. In the present embodiment, reflecting the information in the virtual space information 105 means updating the virtual space information 105 by describing the information in the virtual space information 105.
- the visualizer 164 generates and outputs an image that visualizes the virtual space information 105.
- the simulation device 1 provides an environment in which the behavior of the device can be simulated based on the movable range of each axis set by the user according to the position and posture that the robot can take.
- FIG. 2 is a diagram schematically showing an example of a robot and peripheral devices in the production line according to the present embodiment.
- the simulation device 1 is configured to be capable of calculating the behavior of a device including a robot 30 which is an actual machine controlled by a programmable logic controller 200 (hereinafter referred to as PLC200) of a control system 2 provided in an FA production line. Will be done.
- the simulation device 1 can be mounted on an information processing device 100 composed of, for example, a stationary PC (Personal Computer), a general-purpose computer including a portable tablet terminal, or the like, and performs information processing.
- the device 100 executes a simulation for calculating the behavior of the device including the robot 30 by executing a predetermined program.
- the information processing device 100 provides a support tool for assisting the user in operating the control system 2.
- the support tool includes a setting tool for preparing a simulation execution environment, an environment for designing and executing a control program for the control system 2, a communication environment for the control system 2, and the like.
- These assistive tools include a configuration tool 190, which is provided to the user by, for example, a UI (User Interface).
- the information processing device 100 is communicably connected to the PLC 200, but the simulation can be performed in a manner in which the information processing device 100 is not connected to the PLC 200.
- the control system 2 includes a PLC200, a robot controller 310 and servomotor drivers 531 and 532.
- the PLC 200, the robot controller 310, and the servo motor drivers 531 and 532 are connected by a daisy chain via the field network 22.
- the field network 22 for example, EtherCAT (registered trademark) is adopted.
- EtherCAT registered trademark
- the field network 22 is not limited to EtherCAT.
- the information processing device 100 may be connected to the PLC 200 via a network. Any wired or wireless communication means may be adopted for this network.
- the PLC 200 and the information processing device 100 communicate according to, for example, USB (Universal Serial Bus).
- the PLC200 executes the designed control program based on the field values including the output value of the sensor from the field network 22, and sets the target values for the robot controller 310 or the servomotor drivers 531 and 532 according to the execution result, respectively. By giving, the equipment related to the transfer of the robot 30 and the conveyor 230 is controlled.
- the servo motor drivers 531 and 532 drive the servo motors 41 and 42 of the conveyor 230.
- Encoders 236 and 238 are arranged on the rotation axes of the servomotors 41 and 42. The encoder outputs the position (rotation angle), rotation speed, cumulative rotation speed, etc. of the servomotors to the PLC200 as feedback values of the servomotors 41 and 42.
- the robot 30 and the conveyor 230 move the work 232 while cooperating with each other.
- the movement of the work 232 will be described here for the sake of simplicity, the movement is not limited to the movement.
- the robot 30 may process the work 232 placed on the tray 9 on the conveyor 230 and convey the processed work 232 by pick and place.
- a vertical articulated robot is shown as an example of the articulated robot 30, but the robot is not limited to the vertical articulated robot as long as it is articulated.
- a motor M provided in the joints 1300, 1301, 1302, 1303, 1304 for moving a shaft (not shown) corresponding to each joint of the robot 30 (hereinafter, the motor M of each joint is referred to as a “robot servomotor”.
- the robot controller 310 for driving the robot servomotor will be illustrated.
- the servomotor drivers 531 and 532 for driving the servomotors 41 and 42 provided on the conveyor 230 will be illustrated.
- the robot controller 310 drives the robot servomotor of the robot 30 in accordance with the command of the target value from the PLC 200.
- the axis of the corresponding joint is connected to the axis of rotation of each robot servomotor.
- an encoder (not shown) is arranged on the rotation axis of each robot servomotor.
- the encoder outputs a rotation amount such as a position (rotation angle), a rotation speed, and a cumulative rotation speed of the servomotor to the robot controller 310 as a feedback value of the robot servomotor.
- the robot controller 310 transmits a field value indicating the amount of rotation from the robot 30 to the PLC 200 as a response to the above command.
- the PLC 200 receives the field value, executes the control program based on the received field value, and transmits a command indicating the target value based on the execution result to the robot controller 310.
- the servo motor drivers 531 and 532 drive the corresponding servo motors 41 and 42 in accordance with the command from the PLC 200.
- the control system 2 further includes a photoelectric sensor 6 and an openable / closable stopper 8 in connection with the conveyor 230.
- the photoelectric sensor 6 detects that the tray 9 provided on the transport surface of the conveyor 230 has reached the front of the predetermined work tracking area, and transmits the detected value to the PLC 200.
- the stopper 8 closes so as to stop (fix) the tray 9 that has reached the tracking area in accordance with the command.
- the robot 30 is detachably attached with a robot hand 210 of a type according to the process via the connector 7.
- the type of the robot hand 210 includes, for example, a parallel hand, a multi-finger hand, a multi-finger joint hand, and the like, but is not limited thereto, and may include, for example, a type that holds the work 232 by a suction type.
- the robot 30 performs pick and place according to a command value received from the PLC 200 via the robot controller 310. Specifically, the robot 30 picks the work 232 placed on the tray 9 on the conveyor 230 with the robot hand 210, moves the work 232 to the tray 55 at a predetermined position while picking, and works on the tray 55. Place (place) 232.
- the robot hand 210 controls the opening / closing operation of the hand for picking or placing the work 232 according to the command.
- the simulation device 1 executes a simulation program that calculates the behavior of the robot 30 and a simulation program that calculates the behavior of the cable 341 that transmits power or a signal attached to the outer surface of the robot 30.
- the information processing device 100 can design a control program using the results of such a simulation.
- the control program designed by the information processing apparatus 100 is transmitted (or downloaded) to the PLC 200.
- the peripheral device of the robot 30 includes a photoelectric sensor 6, a stopper 8, a tray 9, a tray 55, a conveyor 230, and the like as shown in FIG.
- the robot 30 operates these joints in conjunction with the movement of the axes connected to the robot servomotors of the joints 1300 to 1305.
- the arm 301 connected to each joint changes its position and posture in a three-dimensional direction in conjunction with the movement of the axis.
- the behavior of the robot 30 is realized by such an operation of each arm 301.
- the conveyor 230 and the tray 9 on the transport surface move as the servomotors 41 and 42 rotate.
- This amount of movement is determined by the amount of rotation (direction of rotation, angle) of the servomotors 41 and 42.
- the PLC 200 controls the amount of rotation of each axis of the robot 30 according to a target value that changes in time series, whereby the speed of movement of the arm 301 connected to each joint and the trajectory that is the change in position and posture due to the movement are It changes so that the velocity and trajectory follow the target value.
- the target value of the robot 30 is stored in advance in, for example, the PLC 200.
- the robot controller 310 receives a command indicating a target value from the PLC 200, determines the rotation amount of each robot servomotor based on the target value indicated by the reception command, and instructs a command (voltage or current signal) to indicate the determined rotation amount. ) Is output to each robot servomotor.
- the simulation device 1 calculates, for example, the amount of rotation of the servomotors of the joints 1300 to 1305 when calculating the behavior of the object corresponding to the robot 30 in the world coordinate system, that is, the position and orientation of the object corresponding to each arm 301, respectively. , A, B, C, D, E, F.
- the simulation device 1 performs an operation using a predetermined function on the rotation amount (A, B, C, D, E, F) of the servomotor. As a result, the simulation device 1 calculates a value PA (x, y, z, x ⁇ , y ⁇ , z ⁇ ) indicating the position and orientation of the arm 301 connected to the joint 1300 at the tip in the virtual space.
- the simulation device 1 also calculates the values PA (x, y, z, x ⁇ , y ⁇ , z ⁇ ) indicating the position and orientation of the arms 301 connected to each of the joints 1301 to 1305 by the same calculation as described above. Thereby, the simulation device 1 can calculate the behavior of the object corresponding to each arm 301 of the robot 30 in the virtual space, that is, the behavior of the object corresponding to the robot 30.
- the values PA (x, y, z, x ⁇ , y ⁇ , z ⁇ ) indicating the behavior described above are the coordinate values (x, y, z) in the virtual space as the positions and the X-axis, Y-axis and Z-axis as the postures. It is shown in combination with the values of roll angle ⁇ , pitch angle ⁇ , and yaw angle ⁇ (x ⁇ , y ⁇ , z ⁇ ), which are acceleration components of.
- the simulation device 1 calculates the behavior (position / posture) of the object corresponding to the robot 30 in the virtual space, and reflects the calculated behavior in the virtual space information 105.
- FIG. 3 is a schematic diagram showing an example of a hardware configuration for realizing the simulation device 1 according to the present embodiment.
- the simulation device 1 can be mounted on the information processing device 100 as shown in FIG. Specifically, the simulation device 1 is realized by executing a program required by the processor 102 of the information processing device 100.
- the information processing device 100 has, as main components, an OS (Operating System), a processor 102 that executes various programs as described later, and a main memory that provides an area and a work area for storing data necessary for executing the programs.
- various networks including an operation unit 106 constituting an "operation reception unit” for receiving user operations such as a keyboard and a mouse, an output unit 108 such as a display 109, various indicators, and a printer, and a network for communicating with the PLC 200.
- These components are connected to each other via an internal bus 118 or the like so that data can be communicated with each other.
- the information processing device 100 uses an optical drive 112 to display various programs from a computer-readable storage medium 114 including an optical storage medium (for example, a DVD (Digital Versatile Disc)) that non-temporarily stores a computer-readable program.
- a computer-readable storage medium 114 including an optical storage medium (for example, a DVD (Digital Versatile Disc)) that non-temporarily stores a computer-readable program.
- the data is read and installed in the storage 120 or the like.
- Various programs or data executed by the information processing device 100 may be installed via a computer-readable storage medium 114, but may be downloaded from a server device (not shown) on the network via the network interface 110. It may be installed.
- the storage 120 is composed of, for example, an HDD (Hard Disk Drive) or an SSD (Flash Solid State Drive), and stores a program executed by the processor 102.
- the storage 120 includes a physical simulation program 122, a peripheral information setting program 125, a setting tool program 126, a range change program 128, and other simulation programs for realizing the simulation according to the present embodiment.
- the robot simulation program 130 and the integrated program 136 are stored.
- the storage 120 includes an image processing program 133 for outputting the simulation result and an evaluation program 135 for evaluating the simulation result.
- the storage 120 includes physical simulation parameters 124, robot parameters 132 including parameters necessary for reproducing the behavior of the object corresponding to the robot 30, and data group 180 shown in FIG. 1 as data for simulation. , Stores image data 137 for visualizing objects in virtual space.
- the physics simulation program 122 When the physics simulation program 122 is executed, the behavior of the target is calculated by a physics calculation using the physics simulation parameter 124.
- the physics simulation program 122 includes a cable simulation program 131 that calculates the behavior of an object in the virtual space corresponding to the cable 341 and outputs information on the calculated behavior.
- the integrated program 136 When the integrated program 136 is executed, the integrated program 136 realizes a process for linking the physics simulation program 122, the peripheral information setting program 125, and the robot simulation program 130 with each other. Specifically, the integrated program 136 typically generates and updates virtual space information 105 that describes the state of an object in virtual space on the main memory 104. Information indicating the execution results of the physics simulation program 122, the peripheral information setting program 125, and the robot simulation program 130 is received and reflected in the virtual space information 105. The function provided by the integrated program 136 reproduces the behavior and processing according to the coordination between the peripheral device, the robot 30 having the robot hand 210, and the cable 341.
- the image processing program 133 generates 3D (three-dimensional) visualization data using the information indicating the behavior of each object of the virtual space information 105 and the image data 137, and outputs the 3D (three-dimensional) visualization data to the display 109.
- the display 109 displays the behavior of the object in the virtual space as a stereoscopic image by being driven according to the drawing data indicated by the 3D visualization data.
- the image data 137 is image data for drawing the object of the robot 30, the object of the peripheral device, the object of the robot hand 210, the object of the cable 341, the object of the work 232, and the like, respectively, and is, for example, CAD. (Computer Aided Design) Includes data.
- the evaluation program 135 carries out an evaluation process for evaluating the result of the simulation. The details of the evaluation process will be described later.
- FIG. 3 shows an example in which the simulation device 1 is realized by a single information processing device 100
- the simulation device 1 may be realized by linking a plurality of information processing devices.
- a part of the processing necessary for realizing the simulation device 1 may be executed by the information processing apparatus 100, and the remaining processing may be executed by a server (cloud) on the network or the like.
- FIG. 4 is a schematic diagram showing an example of a functional configuration for realizing the simulation device 1 according to the present embodiment.
- the function shown in FIG. 4 is typically realized by the processor 102 of the information processing apparatus 100 executing a program.
- the simulation device 1 has, as its functional configuration, a virtual space information management module 150, a cable simulator 154, an evaluation module 155, a robot simulator 160, a peripheral information setting module 170, and a visualizer 164. , Includes a range change module 166 and a setting tool 190.
- the virtual space information management module 150 is realized by executing the integrated program 136 (FIG. 3), and defines information such as a position and orientation representing the behavior of each object in the virtual space where the simulation is performed. To manage.
- the cable simulator 154 is realized by executing the cable simulation program 131. Specifically, the cable simulator 154 calculates the behavior of the object corresponding to the cable 341 based on the physics simulation parameter 124 according to the behavior information of the robot 30, and reflects the calculated behavior information in the virtual space information 105. do.
- the evaluation module 155 evaluates the simulation result and outputs the evaluation result via the output unit 108 such as the display 109. Specifically, the evaluation module 155 is realized by executing the evaluation program 135. The evaluation module 155 detects the presence or absence of interference between objects based on the behavior information of each object indicated by the virtual space information 105, which is the result of the simulation, and also detects the presence or absence of the possibility of damage to the cable 341. Perform an evaluation. The process of detecting the presence / absence of interference between objects and the presence / absence of possibility of damage to the cable 341 will be described later.
- the robot simulator 160 is realized by executing the robot simulation program 130.
- the robot simulator 160 creates a virtual space corresponding to the robot 30 based on the movable range of each axis selected by the user via the position / orientation and the setting tool 190 indicated by the teaching point data 184 of the robot parameter 132 and the data group 180.
- the behavior of the object corresponding to each of the arranged arms 301, that is, the behavior of the robot 30 is calculated.
- the information on the behavior of the robot 30 calculated by the robot simulator 160 is reflected in the virtual space information 105.
- the visualizer 164 is realized by executing the image processing program 133.
- the visualizer 164 visualizes the behavior of each object in the virtual space (peripheral device, robot 30 to which the robot hand 210 is attached, cable 341, etc.) based on the virtual space information 105 managed by the virtual space information management module 150. Generate image data to draw.
- the range change module 166 is realized by executing the range change program 128.
- the range change module 166 changes the movable range of the axis set by the user.
- the movable range data 185 of the data group 180 is changed.
- the robot simulator 160 can perform the simulation again using the data group 180 having the changed movable range data 185.
- the peripheral information setting module 170 is realized by executing the peripheral information setting program 125.
- the peripheral information setting module 170 searches the data group 180 for information indicating the behavior (positional posture) of the peripheral device and the work 232.
- the searched behavior information is reflected in the virtual space information 105.
- the setting tool 190 is realized by executing the setting tool program 126.
- the setting tool 190 selects one or more axes from the plurality of axes possessed by the robot 30 according to the user operation, and sets the movable range of each one or more selected axes in association with the teaching points of the robot 30. ..
- the set information is stored as movable range data 185 of the data group 180.
- the cable simulator 154 executes a cable simulation that calculates the behavior of the object corresponding to the cable 341 attached to the robot 30 in the three-dimensional virtual space.
- This three-dimensional virtual space is the same space as the three-dimensional virtual space for calculating the behavior of the robot 30.
- the cable simulation calculates the behavior of the object corresponding to the cable 341 based on the behavior of the robot 30 indicated by the virtual space information 105.
- the behavior of the robot 30 indicated by the virtual space information 105 is based on the changed posture of the shaft each time the posture of the shaft is changed by a predetermined amount ( ⁇ AR described later) within the movable range set by the user.
- the time-series behavior of the robot 30 calculated by the robot simulator 160 is shown.
- Cable simulator 154 is an example of the "second simulator".
- the cable simulator 154 is a cable arranged in the same virtual space as the robot 30 by using the cable parameters related to the attachment of the cable 341 to the robot 30 based on the time-series behavior of the robot 30 in the three-dimensional virtual space, for example, the position.
- the behavior of 341 is calculated.
- Cable parameters include, but are not limited to, for example, the length of the cable 341, the mounting position of the cable 341 (ie, the mounting position of the cable on the arm of the robot 30), and the like.
- parameters that affect the behavior such as parameters that depend on the material of the cable 341 (for example, parameters that represent the hardness of the cable 341) may be included.
- the cable parameter is set as the physics simulation parameter 124.
- the cable simulator 154 executes a physics simulation using the physics simulation parameter 124.
- the object corresponding to the cable 341 is treated as a modeled rigid body link in which a plurality of rigid bodies are connected by joining adjacent rigid bodies with a joint.
- the cable simulation is based on the given behavior of an object in the three-dimensional virtual space corresponding to the robot 30, by using cable parameters to calculate a given constraint equation containing a constraint condition representing a model of a rigid body link.
- the behavior of the object corresponding to the cable 341 in the three-dimensional virtual space is calculated.
- the behavior of the object corresponding to the cable 341 includes the position and orientation of the object on each of the X, Y, and Z axes in the three-dimensional virtual space. More specifically, this posture is represented by a combination of roll angle ⁇ , pitch angle ⁇ , and yaw angle ⁇ , which are acceleration components for, for example, the X-axis, Y-axis, and Z-axis of each rigid body constituting the rigid body link.
- FIG. 5 is a diagram schematically showing an example of the movable range of each axis of the robot 30 according to the embodiment.
- the robot servomotor M provided in each of the joints 1300, 1301, 1302, 1303, 1304 of the robot 30 is driven according to the rotation amount based on the command from the robot controller 310, each joint is driven.
- the corresponding shaft moves according to the amount of rotation.
- the axes corresponding to the joints 1300, 1301, 1302, 1303, 1304, 1305 are set to the sixth axis, the fifth axis, the fourth axis, the third axis, and the second axis. It is referred to separately from the first axis.
- the arm 301 connected to the joint corresponding to each of these six axes changes its behavior in a three-dimensional direction as shown by arrows 1400 to 1405 in the figure in conjunction with the movement of the axis.
- the arrow 1400 shows the behavior in the direction of bending the arm 301 of the wrist
- the arrow 1401 shows the behavior in the direction of turning the arm 301 of the wrist
- the arrows 1402 and 1403 show the behavior in the direction of moving the arm 301 of the upper arm up and down.
- 1404 indicates the behavior in the direction of moving the lower arm arm 301 back and forth
- arrow 1405 indicates the behavior in the direction of turning the lower arm arm 301.
- the user can set the movable range of each axis indicated by the arrows 1400 to 1405 as the movable range data 185 in the data group 180 via the setting tool 190.
- the robot simulator 160 calculates the behavior of the robot 30 by performing a simulation according to the movable range set by the user for each axis.
- FIG. 6 is a diagram showing an example of teaching point data 184 and position / orientation data 187 according to the embodiment.
- a plurality of teaching points 1841 of the robot 30 and position / orientation data 187 are shown in association with each teaching point 1841.
- the plurality of teaching points 1841 indicate, for example, a plurality of teaching points 1841 set corresponding to a pick-and-place target trajectory.
- the robot 30 can convey the work 232 along the target trajectory by sequentially changing the position and orientation of the arm tip according to a plurality of teaching points 1841, for example, LOC1 ⁇ LOC2 ⁇ LOC3 ⁇ ... LOCi ⁇ . can.
- the position / orientation data 187 corresponding to each teaching point 1841 indicates the position / orientation that the peripheral device, the cable 341, and the work 232 would take when the robot 30 takes the position / orientation indicated by the teaching point. For example, when the robot 30 takes LOC1 as the teaching point 1841, it indicates that the peripheral device, the cable 341, and the work 232 take the position / posture PA1, PC1 and PD1, respectively.
- the data in FIG. 6 is preset.
- FIG. 7 is a diagram schematically showing an example of a UI screen provided by the setting tool 190 according to the embodiment.
- the screen of display 109 includes areas 1091 and 1092.
- An image modeling the outer shape of the robot 30 is displayed in the area 1091, and a set value of the movable range for each axis of the robot 30 is displayed in the area 1092.
- the user can change the posture of the model image of the robot 30 in the area 1091 via the operation unit 106.
- the current value 1627 representing the current tilt angle (posture) of the axis and the set value of the current movable range of the axis are displayed.
- the current value 1627 indicates the angle of each axis corresponding to the posture of the model of the robot 30 displayed in the area 1091.
- the set value of the movable range is indicated by a combination of the lower limit value 1628 and the upper limit value 1629.
- the teaching point is not limited to "LOC1", and the user can similarly set the movable range of each axis for other teaching points.
- the user operates the operation unit 106 when setting the movable range of one or more axes corresponding to the teaching point "LOC1".
- the setting tool 190 accepts the user operation 201, selects one or more axes from the six axes based on the received user operation 201, and teaches the movable range of each one or more selected axes. Set in association with.
- the setting tool 190 selects and selects the second axis, the third axis, the fifth axis, and the sixth axis from the six axes according to the received user operation 201.
- the setting tool 190 sets the setting based on the user operation 201 in the data group 180 as the movable range data 185.
- the user can set the movable range numerically, but he can also set the movable range sensuously by manipulating the model image of the area 1091.
- the setting tool 190 detects and detects the operation amount of the user who changes the posture of the model of the robot 30 in the area 1091, and more specifically, the operation amount 1093 which changes the posture of the arm of the model.
- the quantity 1093 is converted into a movable range of the shaft (a set of a lower limit value 1628 and an upper limit value 1629) and set.
- FIG. 8 is a diagram schematically showing an example of movable range data 185 according to the embodiment.
- the movable range data 185 is set by the user corresponding to one or more axes 1622 selected by the user and each of the axes 1622 corresponding to “LOC1” of the teaching point 1621. Includes a movable range of 1624.
- the movable range 1624 is indicated by a combination of the lower limit value 1628 and the upper limit value 1629.
- a default value corresponding to the teaching point "LOC1" is set for the movable range 1624 of the non-selected shaft.
- FIG. 8 shows the movable range data 185 corresponding to each axis set for the teaching point “LOC1”, but the movable range data 185 corresponding to each axis can be similarly set for the other teaching points. ..
- FIG. 9 is a diagram schematically showing an example of confirmation item data 186 according to the embodiment.
- the confirmation item data 186 should be confirmed using the simulation results in order to evaluate whether or not the movable range of each axis set by the user is appropriate, that is, whether or not an abnormality has occurred in the simulation.
- the confirmation item 1630 is shown.
- Confirmation item 1630 includes, for example, "robot-peripheral device interference” 1631, "robot-hand interference” 1632, "hand-peripheral device interference” 1633, and "cable breakage” 1634.
- the types of confirmation items 1630 are not limited to these.
- the user selects one or more of the abnormality confirmation items 1630.
- the setting tool 190 selects one or more confirmation items from the plurality of confirmation items based on the user operation 201, and sets the selected confirmation items as confirmation item data 186.
- confirmation item data 186 of FIG. 9 for example, "interference between the robot and the peripheral device" 1631, "interference between the robot and the hand” 1632, and "damaged cable” 1634 are set as items to be confirmed.
- the evaluation module 155 evaluates the result of the simulation performed by the simulation device 1. Specifically, the evaluation module 155 detects the presence or absence of interference between the objects and the possibility of damage to the cable 341 based on the position and orientation of the objects indicated by the virtual space information 105 which is the simulation result.
- the evaluation module 155 detects the presence or absence of "interference” based on the position and orientation of each object indicated by the virtual space information 105. For example, in “interference”, an object corresponding to the robot 30 in the virtual space and one or more objects different from the object are arranged. Different objects include objects corresponding to peripheral devices, workpieces 232, cables 341 and the like.
- Interference is the coordinates of one of the objects of the robot 30 and a plurality of objects composed of different objects (this is referred to as coordinate P) and the coordinates of another object (this is referred to as coordinate Q). When the condition that the relative relationship between the two indicates a specific positional relationship is satisfied, it is detected that there is “interference”.
- the specific positional relationship includes, for example, that the distance between the two is a specific distance including a distance below the threshold value. Further, the specific positional relationship is, for example, the behavior of the robot 30 (more specifically, the behavior of each arm) when the simulation is performed while continuously changing the movable range of the axis corresponding to the joint of the robot 30. This includes the fact that the locus connecting the indicated coordinate P and the next-order coordinate P intersects the coordinate Q of another object.
- the specific positional relationship for detecting "interference" between objects is not limited to these positional relationships.
- the threshold value described above may be a value based on the size of each object (width, height, etc.), for example, the threshold value or the size of the object may be included in the CAD data of each object of the image data 137, for example. ..
- the evaluation module 155 detects the possibility of cable breakage based on the behavior of the object corresponding to the cable 341 calculated by the cable simulator 154. This evaluates the behavior of the object corresponding to the cable.
- the evaluation module 155 evaluates the behavior based on, for example, a load applied to the object calculated from the behavior of the object of the cable 341, and more specifically, a type of load that affects the behavior.
- the type of such load may include, but is not limited to, at least one such as stretching, bending and twisting.
- the evaluation module 155 calculates the load based on the behavior of the object of the cable 341, and when it is determined that the calculated load satisfies a predetermined condition, the cable 341 detects that the cable 341 may be damaged. When it is determined that the predetermined condition is not satisfied, it is detected that there is no possibility of damage. The evaluation module 155 outputs an evaluation result indicating the detection result.
- the above predetermined condition indicates, for example, a condition that the calculated bending radius exceeds the minimum bending radius of the cable 341 (the value specified by the specifications of the cable 341). Note that this predetermined condition is not limited to the bending radius condition.
- Processing procedure> 10 and 11 are diagrams showing an example of a flowchart of processing executed in the simulation apparatus 1 according to the embodiment.
- 12 and 13 are diagrams schematically showing a mode of simulation according to the embodiment.
- FIG. 14 is a diagram schematically showing an example of changing the movable range according to the embodiment.
- the processor 102 of the information processing apparatus 100 typically programs (physical simulation program 122, setting tool program 126, range change program 128, robot simulation program 130, image processing program 133). , Evaluation program 135, and integration program 136, etc.).
- the user When executing the simulation, the user operates the operation unit 106 to set the information processing device 100 for the simulation.
- the information processing device 100 receives the settings for simulation based on the user operation 201 received via the operation unit 106 (steps S3 to S9).
- the information processing apparatus 100 sets one teaching point selected from a plurality of teaching points based on the user operation 201 (step S3), and one or more selected from a plurality of axes. Accepts the axis setting (step S5), the setting of the movable range of each selected axis (step S7), and the setting of one or more confirmation items selected from a plurality of abnormality confirmation items (step S9). ..
- the information processing device 100 stores the settings received in steps S3 to S9 as movable range data 185 and confirmation item data 186.
- the teaching point “LOC1” is set.
- the movable range of each axis can be set by the process of FIG.
- Step S10 When the information processing device 100 receives an instruction to start executing the simulation based on the user operation 201 (step S10), the information processing device 100 executes the simulation process based on the settings received in steps S3 to S7. (Step S11).
- the simulation of step S11 is executed using the movable range 1624 set for the axis.
- the axis that is the target of the simulation will be referred to as the "target axis" to distinguish it from other axes.
- the virtual space information 105 reflects information indicating the behavior of the objects corresponding to each of the peripheral device, the work 232, the robot 30 having the robot hand 210, and the cable 341 in the virtual space.
- the information processing device 100 evaluates the simulation result based on the information indicating the behavior of the object reflected in the virtual space information 105, and outputs (displays) the evaluation information indicating the evaluation result (step S12).
- the information processing device 100 detects the presence or absence of interference or breaks the cable for each of the one or more confirmation items 1630 indicated by the confirmation item data 186, based on the information indicating the behavior of each object indicated by the virtual space information 105. Detect the possibility of.
- the information processing device 100 determines whether or not to change the movable range of the "target axis" based on the user operation 201 (step S13). When the information processing apparatus 100 determines that the movable range of the "target axis" is not changed (NO in step S13), it determines whether or not the simulation has been performed for all the axes set in the movable range data 185 (step). S15). When the information processing apparatus 100 determines that the simulation has not yet been performed for all the axes (NO in step S15), the information processing apparatus 100 changes the "target axis" to the next axis indicated by the movable range data 185, and changes the "target". A simulation is performed for the "axis" (step S11). When it is determined that the simulation has been performed for all the axes (YES in step S15), the process ends.
- the information processing device 100 determines that the movable range of the "target axis" is changed based on the user operation 201 (YES in step S13)
- the information processing device 100 determines that the movable range of the "target axis" in the movable range data 185 is 1624. Is changed (step S16). Then, in step S11, a simulation is performed for the "target axis" using the changed movable range 1624.
- step S13 for example, when the evaluation result of the simulation indicates that "interference” or "possibility of cable breakage” has been detected, the user operates the information processing device 100 to determine the movable range of the target axis. The information processing device 100 is instructed to make the change.
- step S16 the information processing apparatus 100 changes the movable range of the "target axis" as the range change module 166 in response to the user's instruction.
- the lower limit value of the "target axis”, for example, the second axis in the movable range data 185 is changed to be smaller, and the lower limit value of the "target axis", for example, the fifth axis is changed. Change to reduce the upper limit.
- the user should change the movable range 1624 of the target axis from the evaluation result of the simulation output in step S12, and perform the simulation again using the changed movable range 1624. It is possible to obtain a criterion for determining whether or not.
- the user can adjust the movable range 1624 of the target axis to an optimum value, that is, a value at which there is no possibility of interference and cable breakage. can.
- step S11 The simulation processing procedure of step S11 will be described with reference to FIG.
- the variable AR representing the posture of the “target axis” (combination of the roll angle ⁇ , pitch angle ⁇ , and yaw angle ⁇ of the axis) is used.
- the value of the variable AR can be added (or subtracted) by the value of ⁇ AR in the range of the lower limit value 1628 to the upper limit value 1629 indicated by the movable range 1624 of the “target axis”.
- ⁇ AR is not limited, but can be set to, for example, 1 degree as an angle, and can be set by the user.
- the information processing device 100 carries out a robot simulation using the variable AR in which the initial value is set as the posture of the "target axis" (step S31).
- the information processing device 100 behaves when the angle of the "target axis" is changed by the angle of the variable AR based on the behavior (positional posture) of the robot 30 indicated by the teaching point LOC (i) which is the target of the simulation. That is, the behavior of the object in the virtual space corresponding to the robot 30 is calculated.
- the method shown in (c1. Coordinate system of virtual space) can be used.
- the information processing device 100 reflects the behavior of the object corresponding to the robot 30 calculated by the simulation in the virtual space in the virtual space information 105.
- the information processing apparatus 100 executes a robot simulation using the variable AR in which the updated value is set (step S31). ).
- steps S31 to S35 the behavior of the object corresponding to the robot 30 is calculated each time the posture of the "target axis" is changed by ⁇ AR within the movable range 1624, and the calculated behavior is reflected in the virtual space information 105. .. Therefore, the virtual space information 105 reflects the behavior of the object corresponding to the robot 30 in the virtual space that changes in time series.
- the information processing device 100 sets information on the behavior of peripheral devices and the like (step S37). Specifically, the information processing apparatus 100 searches the position / orientation data 187 corresponding to the teaching point “LOC1” from the data group 180, and reflects the searched position / orientation data 187 in the virtual space information 105. As a result, the virtual space information 105 reflects the position and orientation of the objects corresponding to the peripheral device, the cable 341, and the work 232 when the robot 30 takes the position and orientation of the teaching point “LOC1”.
- the information processing device 100 performs a cable simulation based on the time-series behavior of the objects of the robot 30 calculated in steps S31 to S33 (step S39).
- the time-series changes in the behavior of the objects calculated by the cable simulation are reflected in the virtual space information 105.
- the virtual space information 105 includes the position and orientation of the objects corresponding to the peripheral device, the cable 341 and the work 232 when the robot 30 takes the position and orientation indicated by the teaching point “LOC1”, and the “target”.
- the time-series behavior of the robot 30 object obtained by changing the posture of the "axis" in the movable range 1624 and the time-series behavior of the cable 341 object linked to the time-series behavior are reflected.
- FIG. 12 schematically shows the movable range in the simulation when the fifth axis is the “target axis”
- FIG. 13 shows the movable range in the simulation when the sixth axis is the “target axis”.
- the range is schematically shown.
- FIG. 15 is a diagram showing an example of displaying the simulation result according to the embodiment. For example, an example of the screen displayed on the display 109 in step S12 of FIG. 10 is shown. In the screen of FIG. 15, the area 1100 is operated to select the movable range data 1096 as the simulation result, the confirmation result 1097 for each abnormality confirmation item, and whether or not to change the setting of the movable range of the target axis. Button 1098 is displayed. Button 1098 is operated by the user in step S13.
- the movable range data 1096 indicates, for example, a set value of the movable range at the end of the simulation when the second axis is set as the “target axis”.
- the confirmation result 1097 indicates the result of evaluation of the presence / absence of interference between objects or the possibility of cable breakage for each confirmation item set by the user in step S9. Further, the confirmation result 1097 includes a button 1099 that can be operated by the user.
- the information processing device 100 displays (reproduces) an image representing the detected abnormality in the area 1200.
- the image includes an image showing a state in which an abnormality (interference) occurs when there is interference between objects, and also shows a state in which an abnormality (possibility of damage) occurs when there is a possibility of cable breakage. Includes images.
- the information processing apparatus 100 displays in the area 1200 data 1021 indicating an identifier of the “target axis” when an abnormality occurs and its posture (for example, the angle indicated by the variable AR). In the image of the region 1200 of FIG.
- the object of the arm 301 of the robot 30 is a peripheral device (for example, the tray 55). Includes a polygon mark 342 indicating that it has interfered with the object of.
- FIG. 16 is a diagram showing an example of another image displayed in the area 1200 of FIG.
- the image of FIG. 16 is an image when there is a possibility that the cable is broken.
- the image includes a polygon mark 342 indicating that the cable 341 near the sixth axis, which is the "target axis", may be damaged.
- the polygon mark 342 is shown in association with the object 340 of the cable 341.
- the simulation exemplifies the configurations provided by the processor 102 of the information processing apparatus 100 of FIG. 3 by executing a program stored in a memory such as the storage 120, but some or all of these provided configurations are used.
- the main part of the information processing apparatus 100 may be realized by using hardware that follows a general-purpose architecture. In this case, virtualization technology may be used to execute a plurality of OSs having different uses in parallel, and to execute necessary applications on each OS.
- the information processing device 100 may include a plurality of processors.
- the cable simulation can be performed by multiple processors.
- the processor 102 includes a plurality of cores
- the cable simulation can be executed by the plurality of cores in the processor 102.
- the storage medium 114 of the information processing device 100 can read the information of the program or the like recorded by the computer or other device, the machine or the like by electrically, magnetically, optically, mechanically or. It is a medium that accumulates by chemical action.
- the processor 102 of the information processing device 100 may acquire the program or parameters related to the cable simulation described above from these storage media.
- the movable range of the shaft corresponding to each joint of the robot 30 can be adjusted to be an appropriate range within a range in which interference and cable breakage can be avoided.
- the default movable range 1624 (lower limit value 1628 and upper limit value 1629) of the “target axis” is changed in the direction of narrowing when the possibility of interference and cable breakage is detected.
- the movable range 1624 of the "target axis” can be determined to be as wide as possible.
- the movable range of the robot 30 can also be set as wide as possible.
- the set movable range of each axis can be set to the threshold value of the movable range referred to by the robot control program executed by the PLC 200.
- the robot 30 may move to the teaching point in a posture different from the posture at the time of teaching.
- the posture of the work 232 is detected by the image sensor and the pick position or the place position is corrected at the site according to the detection result, the posture of the robot is also corrected, and as a result, the posture of the robot 30 is changed. In some cases, the posture is different from the posture designed by the robot control program.
- the movable range referred to by the robot control program can be set to the widest possible range determined by the simulation. Therefore, even in such a case, the work transfer using the robot 30 can be realized while avoiding the damage of the cable 341, the interference between the robot 30 and the peripheral device, the interference between the robot hand 210 and the peripheral device, and the like. ..
- a simulation device (1) that estimates the behavior of a device (30) having a plurality of joints (1300 to 1305). Each of the devices has a plurality of axes corresponding to the joints of the device. The joints corresponding to each of the plurality of axes operate in conjunction with the movement of the axes.
- the simulation device An operation reception unit (202) for accepting user operations on the simulation device, and A setting unit (190) that selects one or more axes from the plurality of axes and sets the movable range of each of the selected one or more axes according to the user operation.
- a first simulator (160) that performs a simulation that calculates the behavior of an object placed in the virtual space corresponding to the device based on the movable range of each of the selected axes.
- a simulation device including an image generation unit (164) that generates an image that visualizes the virtual space.
- a range changing unit (166) for changing the movable range of each of the selected axes is further provided.
- the first simulator further The simulation apparatus according to configuration 1, wherein a simulation for calculating the behavior of an object arranged in a virtual space corresponding to the device is performed based on the changed movable range of each of the selected axes.
- FIG. 4 In the virtual space, an object different from the object corresponding to the device is arranged.
- the different object includes an object (340) placed in the virtual space corresponding to a cable (341) attached to the device.
- a second simulator that calculates the behavior of the target placed in the virtual space corresponding to the cable by using the parameters related to the attachment of the cable based on the behavior of the target placed in the virtual space corresponding to the device. 154)
- the simulation apparatus according to configuration 2 or 3, further comprising 154).
- the setting unit further According to the user operation, a teaching point indicating the position and posture that the device should take is set.
- the first simulator further One of configurations 1 to 5 that calculates the behavior of an object placed in the virtual space corresponding to the device based on the set position and orientation indicated by the teaching point and the movable range of each of the selected axes.
- the simulation apparatus according to item 1.
- [Structure 7] A program for causing a computer (100) to execute a method of estimating the behavior of a device (30) having a plurality of joints (1300 to 1305). Each of the devices has a plurality of axes corresponding to the joints of the device. The joints corresponding to each of the plurality of axes operate in conjunction with the movement of the axes.
- the method is A step of selecting one or more axes from the plurality of axes and setting a movable range of each of the selected one or more axes according to a user operation.
- a program comprising the steps of generating an image that visualizes the virtual space.
- 1 simulation device, 2 control system, 30 robots 100 information processing device, 122 physical simulation program, 124 physical simulation parameters, 125 peripheral information setting program, 126 setting tool program, 128 range change program, 130 robot simulation program, 131 cable simulation Program, 132 robot parameters, 133 image processing program, 135 evaluation program, 136 integrated program, 137 image data, 150 virtual space information management module, 154 cable simulator, 155 evaluation module, 160 robot simulator, 164 visualizer, 166 range change module, 170 Peripheral information setting module, 180 data group, 184 teaching point data, 185, 1096 movable range data, 186 confirmation item data, 187 position / orientation data, 190 setting tool, 191 axis setting tool, 192 teaching point setting tool, 201 user operation , 202 user operation reception unit, 210 robot hand, 341 cable, 1624 movable range.
Landscapes
- Engineering & Computer Science (AREA)
- Robotics (AREA)
- Mechanical Engineering (AREA)
- Manipulator (AREA)
- Numerical Control (AREA)
Abstract
軸毎に設定された可動範囲に基づき、機器の挙動をシミュレーションする。機器は、それぞれが当該機器の関節に対応した複数の軸を備え、各軸に対応の関節は、当該軸の動きに連動して動作し、シミュレーション装置(1)は、ユーザー操作(201)に従い、複数の軸から1つ以上の軸を選択するとともに選択された各1つ以上の軸の可動範囲を設定する設定部(190)と、選択された各軸の可動範囲に基づいて、機器に対応する仮想空間に配置された対象の挙動を算出するシミュレーションを実施する第1のシミュレータ(160)と、仮想空間をビジュアル化した画像を生成する画像生成部(164)と、を備える。
Description
本開示は、機器の挙動を推定するシミュレーション装置およびプログラムに関する。
コンピュータを用いたシミュレーションは様々な技術分野に応用されている。このようなシミュレーションをファクトリオートメーション(FA:Factory Automation)に利用した例として、例えば、特開2019-36014号公報(特許文献1)は、機械の動きを制御する制御プログラムを事前に設計するためのシミュレーションを開示する。
FAでは、多関節を有した産業用ロボットが備えられる。ロボットの制御プログラムが実行されることによって、各関節は対応の軸の動きに連動して動作し、その結果、ロボットは、ワークを搬送または加工する。制御プログラムの設計時には、各軸の可動範囲は、所定値に設定されていた。ロボットがとり得る位置姿勢(位置および姿勢)によっては、設定された所定値では、可動範囲が関節の動作を過度に制限する、すなわちワークの搬送または加工の動作を制限するように作用するなど可動範囲が適正でない可能性があった。したがって、ロボットの各軸の可動範囲を個別に設定できる環境の提供が望まれていたが、特許文献1のシミュレーションは、当該環境を提供しない。
本開示は、軸毎に設定された可動範囲に基づき、機器の挙動をシミュレーションできる構成を提供することを1つの目的とする。
この開示にかかるシミュレーション装置は、複数の関節を有した機器の挙動を推定するシミュレーション装置であって、機器は、それぞれが当該機器の関節に対応した複数の軸を備え、各複数の軸に対応の関節は、当該軸の動きに連動して動作し、シミュレーション装置は、当該シミュレーション装置に対するユーザー操作を受付けるための操作受付部と、ユーザー操作に従い、複数の軸から1つ以上の軸を選択するとともに選択された各1つ以上の軸の可動範囲を設定する設定部と、選択された各軸の可動範囲に基づいて、機器に対応する仮想空間に配置された対象の挙動を算出するシミュレーションを実施する第1のシミュレータと、仮想空間をビジュアル化した画像を生成する画像生成部と、を備える。
上述の開示によれば、ユーザー操作に従い、選択された軸の可動範囲が設定されて、第1のシミュレータは、選択された各軸の可動範囲に基づいて、機器に対応する仮想空間に配置された対象の挙動をシミュレーションする。
これにより、シミュレーション装置は、ユーザーによって設定された軸毎の可動範囲に基づき、機器の挙動をシミュレーションできる。
上述の開示において、シミュレーション装置は、選択された各軸の可動範囲を変更する範囲変更部を、さらに備え、第1のシミュレータは、さらに、選択された各軸の変更された可動範囲に基づいて、機器に対応する仮想空間に配置された対象の挙動を算出するシミュレーションを実施する。
上述の開示によれば、シミュレーション装置は、ユーザーが設定した軸の可動範囲を変更しながらシミュレーションを繰り返すことができる。
上述の開示において、仮想空間には、機器に対応の対象とは異なる対象が配置され、異なる対象は、機器の周辺装置に対応する対象を含み、機器に対応する対象の挙動は、当該対象の仮想空間における位置を含み、範囲変更部は、仮想空間における機器に対応の対象と異なる対象との位置間の相対的な関係が特定位置関係を示すとき、選択された各軸の可動範囲を変更する。
上述の開示によれば、シミュレーション装置は、仮想空間における各対象の位置間の相対的な関係が特定位置関係を示すとき、選択されている各軸の可動範囲を変更し、変更後の可動範囲に基づいてシミュレーションを再度実施できる。
上述の開示において、仮想空間には、機器に対応の対象とは異なる対象が配置され、異なる対象は、機器に取付けられるケーブルに対応する仮想空間に配置された対象を含み、機器に対応する仮想空間に配置された対象の挙動に基づき、ケーブルの取付けに関するパラメータを用いて、当該ケーブルに対応する仮想空間に配置された対象の挙動を算出する第2のシミュレータを、さらに備える。
上述の開示によれば、シミュレーション装置は、機器に取付けられるケーブルに対応する仮想空間に配置された対象の挙動を、機器に対応する仮想空間に配置された対象の挙動に基づき算出できる。
上述の開示において、シミュレーション装置は、第2のシミュレータによって算出されたケーブルに対応する対象の挙動に基づき、当該対象にかかる負荷を算出し、範囲変更部は、算出された負荷が所定条件を満たすとき、選択された各軸の可動範囲を変更する。
上述の開示によれば、シミュレーション装置は、ケーブルに対応する対象の挙動に基づく当該対象にかかる負荷が所定条件を満たすとき、選択されている各軸の可動範囲を変更し、変更後の可動範囲に基づいてシミュレーションを再度実施できる。
上述の開示において、設定部は、さらに、ユーザー操作に従い、機器がとるべき位置姿勢を示す教示点を設定し、第1のシミュレータは、さらに、設定された教示点が示す位置姿勢および選択された各軸の可動範囲に基づいて、機器に対応する仮想空間に配置された対象の挙動を算出する。
上述の開示によれば、ユーザー操作に従い、教示点と選択された軸の可動範囲が設定されて、第1のシミュレータは、設定された教示点が示す位置姿勢と選択された各軸の可動範囲とに基づいて、機器に対応する仮想空間に配置された対象の挙動をシミュレーションできる。
この開示にかかるプログラムは、コンピュータに、複数の関節を有した機器の挙動を推定する方法を実行させるためのプログラムであって、機器は、それぞれが当該機器の関節に対応した複数の軸を備え、各複数の軸に対応の関節は、当該軸の動きに連動して動作し、方法は、ユーザー操作に従い、複数の軸から1つ以上の軸を選択するとともに選択された各1つ以上の軸の可動範囲を設定するステップと、選択された各軸の可動範囲に基づいて、機器に対応する仮想空間に配置された対象の挙動を算出するシミュレーションを実施するステップと、仮想空間をビジュアル化した画像を生成するステップと、を備える。
上述の開示によれば、プログラムが実行されると、ユーザー操作に従い、選択された軸の可動範囲が設定されて、シミュレーションは、選択された各軸の可動範囲に基づいて、機器に対応する仮想空間に配置された対象の挙動をシミュレーションする。これにより、ユーザーによって設定された軸毎の可動範囲に基づき、機器の挙動をシミュレーションできる。
本開示によれば、軸毎に設定された可動範囲に基づき、機器の挙動をシミュレーションする構成を提供できる。
以下に、図面を参照しつつ、各実施の形態について説明する。以下の説明では、同一の部品および構成要素には同一の符号を付してある。それらの名称および機能も同じである。したがってそれらについての詳細な説明は繰返さない。
<A.適用例>
まず、本発明が適用される場面の一例について説明する。本実施の形態に係るシミュレーション装置1は、典型的には、ワークを搬送または加工する機器の一例であるロボットの動作を制御するアプリケーションに適用可能である。また、シミュレーション装置1は、ロボットと、ワークの搬送または加工に関連して動作する1つ以上の機器とを備えるシステムについても総合的に機器の挙動をシミュレーションできる。
まず、本発明が適用される場面の一例について説明する。本実施の形態に係るシミュレーション装置1は、典型的には、ワークを搬送または加工する機器の一例であるロボットの動作を制御するアプリケーションに適用可能である。また、シミュレーション装置1は、ロボットと、ワークの搬送または加工に関連して動作する1つ以上の機器とを備えるシステムについても総合的に機器の挙動をシミュレーションできる。
この実施の形態では、機器の一例であるロボットは、複数の関節と、各関節に対応した軸とを備える。各関節は、対応する軸の動きに連動して動作する。
また、ロボットの動作のうち、シミュレーションの対象となる動作として、例えばワークの搬送を説明する。搬送の一例として「ピックアンドプレース」を説明する。「ピックアンドプレース」は、搬送されるワークが所定のトラッキングエリアまで到達すると、トラッキングエリア内のワークをロボットで把持して、所定エリアまで搬送し、所定エリアにワークを配置するという、ロボットによる把持・搬送・配置の一連の動作を表す。搬送には、ロボットのアームの先端に装着される「エンドエフェクタ」に相当するロボットハンドが利用される。シミュレーションの対象となるロボットのアプリケーションは、ワークの搬送に限定されず、ワークの組立てまたは加工を実施するアプリケーションであってもよい。
この実施の形態では、「教示点」はロボットがとるべき挙動を表す位置姿勢を示す。例えば、ロボットは、ピックアンドプレースの目標軌道に対応して設定された複数の教示点に従って、位置姿勢を順次変化させることによって、ワークを目標軌道に沿って搬送することができる。
図1は、本実施の形態に係るシミュレーション装置1の適用例を示す模式図である。図1を参照して、シミュレーション装置1は、仮想空間および仮想空間に配置されたオブジェクトを規定する仮想空間情報105を含む。仮想空間における各オブジェクトの挙動が算出されることで、仮想空間情報105の内容は適宜更新される。
シミュレーション装置1は、シミュレーションのためのデータ群180を用いてシミュレーションを実施する。データ群180は、教示点データ184、1以上の教示点のそれぞれに対応して設定される可動範囲データ185、シミュレーションの結果において確認すべき項目を示す確認項目データ186、および位置姿勢データ187を含む。教示点データ184は、複数の教示点を示す。教示点データ184は、例えば、ピックアンドプレースの目標軌道に対応する複数の教示点を示す。可動範囲データ185は、1つ以上の軸のそれぞれに対応して設定された当該軸の可動範囲を示す。位置姿勢データ187は、生産ラインにおいてロボットの周辺に配置される周辺装置と、ケーブルと、ワークとの挙動を表す位置姿勢を示す。周辺装置は、例えば、ワーク搬送のコンベア、ワークを収容するトレイ、各種センサなどを含むが、これらに限定されない。
シミュレーション装置1は、仮想空間に配置されたワークを搬送するロボットの挙動を算出するロボットシミュレータ160を含む。ロボットシミュレータ160は、「第1のシミュレータ」の一実施例である。シミュレーション装置1は、仮想空間をビジュアル化した画像を生成するビジュアライザ164を含む。ビジュアライザ164は、「画像生成部」の一実施例である。
シミュレーション装置1は、当該シミュレーション装置1に対するユーザー操作201を受付けるユーザー操作受付部202と、設定ツール190とを含む。設定ツール190は、ユーザーが、シミュレーションのパラメータの設定およびシミュレーション装置1に対して指示を入力するとき、ユーザーの操作を支援する。
設定ツール190は、「軸設定部」の一実施例である軸設定ツール191および「教示点設定部」の一実施例である教示点設定ツール192を含む。ユーザー操作201に従い、教示点設定ツール192は、教示点データ184が示す複数の教示点のうちから、1つ以上の教示点を設定する。ユーザー操作201に従い、軸設定ツール191は、設定された1つ以上の教示点のそれぞれに対応付けて、ロボットの複数の軸のうちから1つ以上の軸を設定する。ユーザー操作201に従い、設定ツール190は、設定された1つ以上の軸のそれぞれに対応付けて当該軸の可動範囲を設定する。これにより、設定ツール190は、ユーザーが設定した1つ以上の教示点のそれぞれに対応付けて、ユーザーが設定した1つ以上の軸のそれぞれの可動範囲を示す可動範囲データ185を生成し、生成された可動範囲データ185を格納する。
ロボットシミュレータ160は、可動範囲データ185が示す1つ以上の教示点のそれぞれについて、仮想空間におけるロボット30に対応の対象(以下、オブジェクトと呼ぶ)の挙動を算出するシミュレーションを実施する。具体的には、ロボットシミュレータ160は、教示点が示す位置姿勢と当該教示点に対応の1つ以上の軸それぞれの可動範囲とに基づいて、ロボットに対応する仮想空間に配置されたオブジェクトの挙動を算出する。ロボットシミュレータ160により算出される挙動の情報は、仮想空間情報105に反映される。本実施の形態では、仮想空間情報105に情報を反映するとは、仮想空間情報105に当該情報を記述することにより、仮想空間情報105を更新することを意味する。
ビジュアライザ164は、仮想空間情報105をビジュアル化した画像を生成し、出力する。
これらのコンポーネントおよびモジュールが互いに連携することで、現実のロボットが存在しなくても、現実のロボットがワークを搬送したときに生じるであろうロボットの挙動を正確に算出、すなわち推定できる。また、この算出は、ユーザーが設定した教示点が示す位置姿勢と、ユーザーが設定した1つ以上の軸の可動範囲とに基づいて実施される。これにより、シミュレーション装置1は、ロボットがとり得る位置姿勢に応じてユーザーが設定した各軸の可動範囲に基づき、機器の挙動をシミュレーションできる環境を提供する。
以下、この実施の形態のより具体的な応用例について説明する。
<B.制御システムの例>
図2は、本実施の形態にかかる生産ラインにおけるロボットと周辺装置の一例を模式的に示す図である。シミュレーション装置1は、FAの生産ラインに備えられる制御システム2のプログラマブルロジックコントローラ200(以下、PLC200と呼ぶ)が制御する実機であるロボット30を含む機器の挙動を算出することが可能なように構成される。図2を参照して、シミュレーション装置1は、たとえば、据え置き型のPC(Personal Computer)、または携帯型のタブレット端末などを含む汎用コンピュータで構成される情報処理装置100に実装され得て、情報処理装置100は、所定のプログラムを実行することにより、ロボット30を含む機器の挙動を算出するシミュレーションを実施する。情報処理装置100は、ユーザーが制御システム2を運用するのを支援するための支援ツールを提供する。支援ツールは、シミュレーションの実行環境、制御システム2のための制御プログラムの設計および実行のための環境、および制御システム2の通信環境等を準備するための設定ツールを含む。これらの支援ツールには、設定ツール190が含まれて、例えばUI(User Interface)によってユーザーに提供される。
<B.制御システムの例>
図2は、本実施の形態にかかる生産ラインにおけるロボットと周辺装置の一例を模式的に示す図である。シミュレーション装置1は、FAの生産ラインに備えられる制御システム2のプログラマブルロジックコントローラ200(以下、PLC200と呼ぶ)が制御する実機であるロボット30を含む機器の挙動を算出することが可能なように構成される。図2を参照して、シミュレーション装置1は、たとえば、据え置き型のPC(Personal Computer)、または携帯型のタブレット端末などを含む汎用コンピュータで構成される情報処理装置100に実装され得て、情報処理装置100は、所定のプログラムを実行することにより、ロボット30を含む機器の挙動を算出するシミュレーションを実施する。情報処理装置100は、ユーザーが制御システム2を運用するのを支援するための支援ツールを提供する。支援ツールは、シミュレーションの実行環境、制御システム2のための制御プログラムの設計および実行のための環境、および制御システム2の通信環境等を準備するための設定ツールを含む。これらの支援ツールには、設定ツール190が含まれて、例えばUI(User Interface)によってユーザーに提供される。
図2では、情報処理装置100は、PLC200に通信可能に接続されているが、PLC200と接続されない態様で、シミュレーションを実施することもできる。
図2を参照して、制御システム2は、PLC200、ロボットコントローラ310およびサーボモータドライバ531,532を含む。PLC200、ロボットコントローラ310およびサーボモータドライバ531,532は、フィールドネットワーク22を介してデイジーチェーンで接続されている。フィールドネットワーク22には、たとえば、EtherCAT(登録商標)が採用される。但し、フィールドネットワーク22は、EtherCATに限定されない。PLC200には、ネットワークを介して情報処理装置100が接続され得る。このネットワークには、有線または無線の任意の通信手段が採用され得る。PLC200および情報処理装置100は、例えばUSB(Universal Serial Bus)に従い通信する。
PLC200は、設計された制御プログラムをフィールドネットワーク22からのセンサの出力値などを含むフィールド値に基づき実行し、実行の結果に従ってロボットコントローラ310またはサーボモータドライバ531,532に対して、それぞれ目標値を与えることで、ロボット30およびコンベア230の搬送に関連する機器などを制御する。
サーボモータドライバ531,532は、コンベア230のサーボモータ41,42を駆動する。サーボモータ41,42の回転軸にはエンコーダ236,238が配置されている。当該エンコーダは、サーボモータ41,42のフィードバック値として、サーボモータの位置(回転角度)、回転速度、累積回転数などをPLC200へ出力する。
ロボット30とコンベア230は、相互に連携しながらワーク232を移動させる。なお、ここでは説明を簡単にするために、ワーク232の移動を説明するが、移動に限定されない。例えば、ロボット30は、コンベア230上のトレイ9に載置されたワーク232を加工し、加工後のワーク232をピックアンドプレースによって搬送してもよい。
この実施の形態では、図2のように、多関節型のロボット30の一例として、垂直多関節型ロボットが示されるが、多関節型であればよく垂直多関節型に限定されない。図2では、ロボット30の各関節に対応の軸(図示しない)を動かすための関節1300,1301,1302,1303,1304に備えられるモータM(以下、各関節のモータMを「ロボットサーボモータ」とも総称する。)と、ロボットサーボモータを駆動するロボットコントローラ310を例示する。同様に、コンベア230のドライブ装置の一例として、コンベア230に設けられるサーボモータ41,42を駆動するサーボモータドライバ531,532を例示する。
ロボットコントローラ310は、PLC200からの目標値の指令に従い、ロボット30のロボットサーボモータを駆動する。各ロボットサーボモータの回転軸には、対応の関節の軸が連接される。また、各ロボットサーボモータの回転軸にはエンコーダ(図示しない)が配置されている。当該エンコーダは、ロボットサーボモータのフィードバック値として、サーボモータの位置(回転角度)、回転速度、累積回転数などの回転量をロボットコントローラ310へ出力する。ロボットコントローラ310は、ロボット30からの、回転量を示すフィールド値を、上記の指令に対する応答としてPLC200に送信する。PLC200は、フィールド値を受信し、受信したフィールド値に基づき制御プログラムを実行し、実行結果に基づく目標値を示す指令をロボットコントローラ310に送信する。
サーボモータドライバ531,532は、PLC200からの指令に従い、対応するサーボモータ41,42を駆動する。制御システム2は、さらに、コンベア230に関連して光電センサ6および開閉可能なストッパ8を備える。光電センサ6は、コンベア230の搬送面上に備えられるトレイ9が所定のワークトラッキングエリアの前に到達したことを検出し、検出値をPLC200に送信する。ストッパ8は、指令に従い、トラッキングエリア内に到達したトレイ9を停止(固定)させるように閉動作する。
ロボット30は、コネクタ7を介して、工程に応じた種類のロボットハンド210が脱着自在に装着される。ロボットハンド210の種類は、例えば平行ハンド、多指ハンド、多指関節ハンドなどを含むが、これら限定されず、例えば吸着式によりワーク232を保持する種類も含み得る。
ロボット30は、ロボットコントローラ310を介して受信するPLC200からの指令値に従い、ピックアンドプレースを実施する。具体的には、ロボット30は、コンベア230上のトレイ9に載置されたワーク232をロボットハンド210によりピックし、ピックしたまま所定位置のトレイ55までワーク232を移動させてトレイ55上にワーク232を置く(プレースする)。ロボットハンド210は、指令に従い、ワーク232をピックまたはプレースするためのハンドの開閉動作が制御される。
シミュレーション装置1は、ロボット30の挙動を算出するシミュレーションプログラムと、ロボット30の外部表面に取り付けられる電力または信号を伝送するケーブル341の挙動を算出するシミュレーションプログラムとを実行する。
情報処理装置100は、制御プログラムを、このようなシミュレーションの結果を用いて設計することができる。情報処理装置100によって設計された制御プログラムは、PLC200に送信(またはダウンロード)される。
ここでは、ロボット30の周辺装置は、図2に示されるような、光電センサ6、ストッパ8、トレイ9、トレイ55、コンベア230などを含む。
<C.制御と仮想空間の位置>
図2を参照して、ロボット30の制御と仮想空間の挙動について説明する。
図2を参照して、ロボット30の制御と仮想空間の挙動について説明する。
ロボット30は、関節1300~1305のロボットサーボモータそれぞれに連接される軸の動きに連動して、これら関節が動作する。各関節に繋がるアーム301は、軸の動きに連動して3次元の方向に位置姿勢を変更する。このような各アーム301の動作により、ロボット30の挙動が実現される。
同様に、コンベア230も、サーボモータ41,42が回転することでコンベア230および搬送面上のトレイ9が移動する。この移動量(移動の速度、向き、距離など)は、サーボモータ41,42の回転量(回転の向き、角度)により決まる。このようなサーボモータ41,42の駆動により、コンベア230およびトレイ9などの機器の挙動が実現される。
PLC200は、ロボット30の各軸の回転量を時系列に変化する目標値に従い制御し、これにより、各関節に繋がるアーム301の移動の速度と移動に伴う位置姿勢の変化である軌道とは、目標値に従う速度および軌道となるように変化する。
ロボット30の目標値は、例えばPLC200に予め格納されている。ロボットコントローラ310は、PLC200から目標値を示す指令を受信し、受信指令が示す目標値に基づき各ロボットサーボモータの回転量を決定し、決定した回転量を指示する指令(電圧、または電流の信号)を、各ロボットサーボモータに対し出力する。
(c1.仮想空間の座標系)
本実施の形態にかかるロボット30の関節1300~1305のそれぞれに繋がるアーム301の3次元の仮想空間における位置姿勢を算出する過程の一例を説明する。本実施の形態のシミュレーションでは、ロボットハンド210と、先端のアーム301とは一体化された剛体として扱われる。また、本実施の形態では、3次元の仮想空間における座標系として、ロボット30およびPLC200などが共有するX軸、Y軸およびZ軸で規定されるワールド座標系を例示する。
本実施の形態にかかるロボット30の関節1300~1305のそれぞれに繋がるアーム301の3次元の仮想空間における位置姿勢を算出する過程の一例を説明する。本実施の形態のシミュレーションでは、ロボットハンド210と、先端のアーム301とは一体化された剛体として扱われる。また、本実施の形態では、3次元の仮想空間における座標系として、ロボット30およびPLC200などが共有するX軸、Y軸およびZ軸で規定されるワールド座標系を例示する。
シミュレーション装置1は、ワールド座標系におけるロボット30に対応のオブジェクトの挙動、すなわち各アーム301に対応のオブジェクトの位置姿勢を算出する際に、例えば、関節1300~1305のサーボモータの回転量を、それぞれ、A、B、C、D、E、Fとして扱う。シミュレーション装置1は、サーボモータの回転量(A、B、C、D、E、F)に対して、所定関数を用いた演算を施す。これにより、シミュレーション装置1は、先端の関節1300に繋がるアーム301の仮想空間における位置姿勢を示す値PA(x,y,z,xα,yβ,zγ)を算出する。シミュレーション装置1は、関節1301~1305それぞれに繋がるアーム301についても、上記と同様の演算により、位置姿勢を示す値PA(x,y,z,xα,yβ,zγ)を算出する。これにより、シミュレーション装置1は、ロボット30の各アーム301に対応するオブジェクトの仮想空間における挙動、すなわちロボット30に対応するオブジェクトの挙動を算出することができる。上記に述べた挙動を示す値PA(x,y,z,xα,yβ,zγ)は、位置として仮想空間における座標値(x,y,z)と、姿勢としてX軸、Y軸およびZ軸についての加速度成分であるロール角α、ピッチ角βおよびヨー角γの値(xα,yβ,zγ)との組合せで示される。
シミュレーション装置1は、ロボット30に対応するオブジェクトの仮想空間における挙動(位置姿勢)を算出し、算出された挙動を仮想空間情報105に反映する。
<D.制御システムの全体構成>
次に、本実施の形態にかかるシミュレーション装置1のハードウェア構成の一例について説明する。
次に、本実施の形態にかかるシミュレーション装置1のハードウェア構成の一例について説明する。
図3は、本実施の形態にかかるシミュレーション装置1を実現するためのハードウェア構成の一例を示す模式図である。本実施の形態では、シミュレーション装置1は、図3に示すような情報処理装置100に実装され得る。具体的には、情報処理装置100のプロセッサ102が必要なプログラムを実行することでシミュレーション装置1が実現される。
情報処理装置100は、主たるコンポーネントとして、OS(Operating System)および後述するような各種プログラムを実行するプロセッサ102と、プログラムを実行するために必要なデータを格納する領域および作業領域を提供する主メモリ104と、キーボードやマウスなどのユーザ操作を受付ける「操作受付部」を構成する操作ユニット106と、ディスプレイ109、各種インジケータ、プリンタなどの出力ユニット108と、PLC200と通信するためのネットワークを含む各種ネットワークに接続されるネットワークインターフェイス110と、光学ドライブ112と、外部装置と通信するローカル通信インターフェイス116と、ストレージ120とを含む。これらのコンポーネントは、内部バス118などを介して相互にデータ通信可能に接続される。
情報処理装置100は、光学ドライブ112によって、コンピュータ読取可能なプログラムを非一時的に格納する光学記憶媒体(例えば、DVD(Digital Versatile Disc)など)を含むコンピュータ読取可能な記憶媒体114から、各種プログラムまたはデータを読取ってストレージ120などにインストールする。
情報処理装置100で実行される各種プログラムまたはデータは、コンピュータ読取可能な記憶媒体114を介してインストールされてもよいが、ネットワーク上の図示しないサーバ装置などからネットワークインターフェイス110を介してダウンロードする態様でインストールされてもよい。
ストレージ120は、例えば、HDD(Hard Disk Drive)またはSSD(Flash Solid State Drive)などで構成され、プロセッサ102で実行されるプログラムを格納する。具体的には、ストレージ120は、本実施の形態にかかるシミュレーションを実現するためのシミュレーションプログラムとして、物理シミュレーションプログラム122と、周辺情報設定プログラム125と、設定ツールプログラム126と、範囲変更プログラム128と、ロボットシミュレーションプログラム130と、統合プログラム136とを格納する。また、ストレージ120は、シミュレーションの結果を出力するために画像処理プログラム133と、シミュレーションの結果を評価するための評価プログラム135とを含む。また、ストレージ120は、シミュレーションのためのデータとして、物理シミュレーションパラメータ124と、ロボット30に対応するオブジェクトの挙動の再現に必要なパラメータを含むロボットパラメータ132と、図1に示されたデータ群180と、仮想空間におけるオブジェクトをビジュアライズするための画像データ137とを格納する。
物理シミュレーションプログラム122は、実行されると、物理シミュレーションパラメータ124を用いた物理演算によって対象の挙動を算出する。物理シミュレーションプログラム122は、ケーブル341に対応する仮想空間におけるオブジェクトの挙動を算出し、算出された挙動の情報を出力するケーブルシミュレーションプログラム131を含む。
統合プログラム136は、実行されると、物理シミュレーションプログラム122と、周辺情報設定プログラム125と、ロボットシミュレーションプログラム130とを互いに連携させるための処理を実現する。具体的には、統合プログラム136は、典型的には主メモリ104上に、仮想空間のオブジェクトの状態を記述する仮想空間情報105を生成および更新する。物理シミュレーションプログラム122と、周辺情報設定プログラム125と、ロボットシミュレーションプログラム130の実行結果を示す情報を受付けて、仮想空間情報105に反映する。統合プログラム136が提供する機能は、周辺装置と、ロボットハンド210を有するロボット30と、ケーブル341との間の連携に従う挙動および処理を再現する。
画像処理プログラム133は、仮想空間情報105の各オブジェクトの挙動を示す情報と、画像データ137とを用いて、3D(three-dimensional)ビジュアライズデータを生成し、ディスプレイ109に出力する。ディスプレイ109は、3Dビジュアライズデータが示す描画データに従って駆動されることにより、仮想空間におけるオブジェクトの挙動を立体視可能な画像として表示する。画像データ137は、ロボット30のオブジェクトと、周辺装置のオブジェクトと、ロボットハンド210のオブジェクトと、ケーブル341のオブジェクトと、ワーク232のオブジェクトなどを、それぞれ描画するための画像データであって、例えばCAD(Computer Aided Design)データを含む。
評価プログラム135は、シミュレーションの結果を評価する評価処理を実施する。評価処理の詳細は後述する。
図3には、単一の情報処理装置100でシミュレーション装置1を実現する例を示したが、複数の情報処理装置を連係させてシミュレーション装置1を実現するようにしてもよい。この場合には、シミュレーション装置1を実現するために必要な処理の一部を情報処理装置100で実行させるとともに、残りの処理をネットワーク上のサーバ(クラウド)などで実行するようにしてもよい。
<E.機能構成>
次に、本実施の形態にかかるシミュレーション装置1の機能構成の一例について説明する。図4は、本実施の形態にかかるシミュレーション装置1を実現するための機能構成の一例を示す模式図である。図4に示す機能は、典型的には、情報処理装置100のプロセッサ102がプログラムを実行することで実現される。
次に、本実施の形態にかかるシミュレーション装置1の機能構成の一例について説明する。図4は、本実施の形態にかかるシミュレーション装置1を実現するための機能構成の一例を示す模式図である。図4に示す機能は、典型的には、情報処理装置100のプロセッサ102がプログラムを実行することで実現される。
図4を参照して、シミュレーション装置1は、その機能構成として、仮想空間情報管理モジュール150と、ケーブルシミュレータ154と、評価モジュール155と、ロボットシミュレータ160と、周辺情報設定モジュール170と、ビジュアライザ164と、範囲変更モジュール166と、設定ツール190とを含む。
仮想空間情報管理モジュール150は、統合プログラム136(図3)が実行されることで実現され、シミュレーションが実施される仮想空間の各オブジェクトの挙動を表す位置姿勢などの情報を規定する仮想空間情報105を管理する。
ケーブルシミュレータ154は、ケーブルシミュレーションプログラム131が実行されることで実現される。具体的には、ケーブルシミュレータ154は、ロボット30の挙動の情報に従い、物理シミュレーションパラメータ124に基づきケーブル341に対応するオブジェクトの挙動を算出し、算出された挙動の情報を、仮想空間情報105に反映する。
評価モジュール155は、シミュレーションの結果を評価し、評価結果をディスプレイ109などの出力ユニット108を介して出力する。具体的には、評価モジュール155は、評価プログラム135が実行されることにより実現される。評価モジュール155は、シミュレーションの結果である仮想空間情報105が示す各オブジェクトの挙動の情報に基づきオブジェクトどうしの干渉の有無を検出するとともに、ケーブル341の破損の可能性の有無を検出することにより、評価を実施する。オブジェクトどうしの干渉の有無およびケーブル341の破損の可能性の有無を検出する処理は後述する。
ロボットシミュレータ160は、ロボットシミュレーションプログラム130が実行されることで実現される。ロボットシミュレータ160は、ロボットパラメータ132およびデータ群180の教示点データ184が示す位置姿勢および設定ツール190を介してユーザーにより選択された各軸の可動範囲に基づいて、ロボット30に対応する仮想空間に配置された各アーム301に対応するオブジェクトの挙動、すなわちロボット30の挙動を算出する。ロボットシミュレータ160により算出されるロボット30の挙動の情報は、仮想空間情報105に反映される。
ビジュアライザ164は、画像処理プログラム133が実行されることで実現される。ビジュアライザ164は、仮想空間情報管理モジュール150が管理する仮想空間情報105に基づいて、仮想空間の各オブジェクト(周辺装置、ロボットハンド210を装着すするロボット30、ケーブル341など)の挙動をビジュアル化して描画する画像データを生成する。
範囲変更モジュール166は、範囲変更プログラム128が実行されることにより実現される。範囲変更モジュール166は、ユーザーが設定した軸の可動範囲を変更する。これにより、データ群180の可動範囲データ185が変更される。ロボットシミュレータ160は、変更後の可動範囲データ185を有するデータ群180を用いて、再度、シミュレーションを実施することができる。
周辺情報設定モジュール170は、周辺情報設定プログラム125が実行されることにより実現される。周辺情報設定モジュール170は、データ群180から周辺装置およびワーク232の挙動(位置姿勢)を示す情報を検索する。検索された挙動の情報は、仮想空間情報105に反映される。
設定ツール190は、設定ツールプログラム126が実行されることにより実現される。設定ツール190は、ユーザー操作に従い、ロボット30が有する複数の軸から1つ以上の軸を選択するとともに選択された各1つ以上の軸の可動範囲を、ロボット30の教示点に関連付けて設定する。設定された情報は、データ群180の可動範囲データ185として格納される。
図4に示すような各機能が互いに連携することで、シミュレーション対象のワーク搬送システムを構成するロボットハンド210を有したロボット30、周辺装置、ワーク232およびケーブル341などの挙動を再現できる。
<F.ケーブルシミュレーション>
ケーブルシミュレータ154は、ロボット30に取付けられるケーブル341に対応するオブジェクトの3次元の仮想空間における挙動を算出するケーブルシミュレーションを実行する。この3次元の仮想空間は、ロボット30の挙動を算出するための3次元の仮想空間と同一の空間である。
ケーブルシミュレータ154は、ロボット30に取付けられるケーブル341に対応するオブジェクトの3次元の仮想空間における挙動を算出するケーブルシミュレーションを実行する。この3次元の仮想空間は、ロボット30の挙動を算出するための3次元の仮想空間と同一の空間である。
ケーブルシミュレーションは、仮想空間情報105が示すロボット30の挙動に基づいて、ケーブル341に対応するオブジェクトの挙動を算出する。
実施の形態では、仮想空間情報105が示すロボット30の挙動は、ユーザーが設定した可動範囲内で軸の姿勢を所定量(後述するΔAR)ずつ変化させる毎に、変化後の軸の姿勢に基づきロボットシミュレータ160によって算出されたロボット30の時系列の挙動を示す。
ケーブルシミュレータ154は、「第2のシミュレータ」の一実施例である。ケーブルシミュレータ154は、3次元の仮想空間におけるロボット30の時系列の挙動、例えば位置に基づき、ケーブル341のロボット30への取付けに関するケーブルパラメータを用いて、ロボット30と同一仮想空間に配置されたケーブル341の挙動を算出する。ケーブルパラメータは、例えば、ケーブル341の長さ、ケーブル341の取付け位置(すなわち、ロボット30のアームにおけるケーブルの取付け位置)などを含むが、これらに限定されない。例えば、挙動に影響を及ぼすようなパラメータ、例えばケーブル341の材料に依存するパラメータ(例えば、ケーブル341の硬さを表すパラメータ)を含んでもよい。ケーブルパラメータは、物理シミュレーションパラメータ124として設定される。
具体的には、ケーブルシミュレータ154は、物理シミュレーションパラメータ124を用いて、物理シミュレーションを実行する。この物理シミュレーションは、ケーブル341に対応するオブジェクトを、隣接する剛体間をジョイントで接合することで複数の剛体が連なるモデル化された剛体リンクとして扱う。
ケーブルシミュレーションは、ロボット30に対応する3次元の仮想空間におけるオブジェクトの所与の挙動に基づき、ケーブルパラメータを用いて、剛体リンクのモデルを表す拘束条件を含む所定の拘束方程式を演算することによって、ケーブル341に対応するオブジェクトの3次元の仮想空間における挙動を算出する。ケーブル341に対応するオブジェクトの挙動は、3次元の仮想空間におけるX,Y,Zの各軸における当該オブジェクトの位置と姿勢を含む。この姿勢は、より特定的には、剛体リンクを構成する各剛体の例えばX軸、Y軸およびZ軸についての加速度成分であるロール角α、ピッチ角βおよびヨー角γの組合せで示される。
<G.軸の可動範囲>
ロボット30の各関節に対応した軸の可動範囲を説明する。図5は、実施の形態にかかるロボット30の各軸の可動範囲の一例を模式的に示す図である。図5を参照して、ロボット30の関節1300,1301,1302,1303,1304のそれぞれに備えられるロボットサーボモータMが、ロボットコントローラ310からの指令に基づく回転量に従い駆動されると、各関節に対応の軸は回転量に従い動く。本実施の形態では、関節1300,1301,1302,1303,1304,1305それぞれに対応の軸を、第6の軸、第5の軸、第4の軸、第3の軸、第2の軸、第1の軸とそれぞれ区別して称する。
ロボット30の各関節に対応した軸の可動範囲を説明する。図5は、実施の形態にかかるロボット30の各軸の可動範囲の一例を模式的に示す図である。図5を参照して、ロボット30の関節1300,1301,1302,1303,1304のそれぞれに備えられるロボットサーボモータMが、ロボットコントローラ310からの指令に基づく回転量に従い駆動されると、各関節に対応の軸は回転量に従い動く。本実施の形態では、関節1300,1301,1302,1303,1304,1305それぞれに対応の軸を、第6の軸、第5の軸、第4の軸、第3の軸、第2の軸、第1の軸とそれぞれ区別して称する。
これら6個の各軸に対応する関節に繋がるアーム301は、軸の動きに連動して、図中の矢印1400~1405に示されるような、3次元の方向に挙動を変化させる。例えば、矢印1400は手首のアーム301を曲げる方向の挙動を示し、矢印1401は手首のアーム301を旋回する方向の挙動を示し、矢印1402と1403は、上腕のアーム301を上下に動かす方向の挙動を示し、矢印1404は下腕のアーム301を前後に動かす方向の挙動を示し、矢印1405は下腕のアーム301を旋回させる方向の挙動を示す。
ユーザーは、矢印1400~1405が示す各軸の可動範囲を、設定ツール190を介して、データ群180に可動範囲データ185として設定することができる。ロボットシミュレータ160は、ユーザーが各軸について設定した可動範囲に従って、シミュレーションを実施することにより、ロボット30の挙動を算出する。
<H.データ群180と設定>
データ群180のデータと当該データの設定について説明する。
データ群180のデータと当該データの設定について説明する。
(h1.教示点データと周辺データ)
図6は、実施の形態にかかる教示点データ184と位置姿勢データ187の一例を示す図である。図6を参照して、ロボット30の複数の教示点1841と、各教示点1841に対応付けて位置姿勢データ187が示される。複数の教示点1841は、例えば、ピックアンドプレースの目標軌道に対応して設定された複数の教示点1841を示す。例えば、ロボット30は、アーム先端の位置姿勢を、複数の教示点1841に従って、例えばLOC1→LOC2→LOC3→…LOCi→…と順次変化させることによって、ワーク232を目標軌道に沿って搬送することができる。
図6は、実施の形態にかかる教示点データ184と位置姿勢データ187の一例を示す図である。図6を参照して、ロボット30の複数の教示点1841と、各教示点1841に対応付けて位置姿勢データ187が示される。複数の教示点1841は、例えば、ピックアンドプレースの目標軌道に対応して設定された複数の教示点1841を示す。例えば、ロボット30は、アーム先端の位置姿勢を、複数の教示点1841に従って、例えばLOC1→LOC2→LOC3→…LOCi→…と順次変化させることによって、ワーク232を目標軌道に沿って搬送することができる。
各教示点1841に対応の位置姿勢データ187は、ロボット30が当該教示点によって示される位置姿勢をとる場合に、周辺装置、ケーブル341およびワーク232がとるであろう位置姿勢を示す。例えば、ロボット30が教示点1841としてLOC1をとる場合、周辺装置、ケーブル341およびワーク232は、それぞれ、位置姿勢PA1、PC1およびPD1をとることを示す。図6のデータは、予め設定される。
(h2.軸の選択と可動範囲の設定)
図7は、実施の形態にかかる設定ツール190が提供するUIの画面の一例を模式的に示す図である。図7を参照して、ディスプレイ109の画面は、領域1091と1092とを含む。領域1091には、ロボット30の外形をモデル化した画像が表示されて、領域1092には、ロボット30の軸毎の可動範囲の設定値が表示される。ユーザーは、操作ユニット106を介して、領域1091のロボット30のモデル画像の姿勢を変化させることができる。
図7は、実施の形態にかかる設定ツール190が提供するUIの画面の一例を模式的に示す図である。図7を参照して、ディスプレイ109の画面は、領域1091と1092とを含む。領域1091には、ロボット30の外形をモデル化した画像が表示されて、領域1092には、ロボット30の軸毎の可動範囲の設定値が表示される。ユーザーは、操作ユニット106を介して、領域1091のロボット30のモデル画像の姿勢を変化させることができる。
領域1092では、例えば、ロボット30の教示点“LOC1”に対応して、第1の軸、第2の軸、第3の軸、第4の軸、第5の軸および第6の軸の6個の軸のそれぞれについて、当該軸の現在の傾き角度(姿勢)を表す現在値1627と、当該軸の現在の可動範囲の設定値が表示される。現在値1627は、領域1091で表示されるロボット30のモデルの姿勢に対応した各軸の角度を示す。可動範囲の設定値は、下限値1628と上限値1629の組合せで示される。なお、教示点は、“LOC1”に限定されず、ユーザーは、他の教示点についても同様に各軸の可動範囲を設定することができる。
ユーザーは、教示点“LOC1”に対応して1つ以上の軸の可動範囲を設定する場合、操作ユニット106を操作する。設定ツール190はユーザー操作201を受付けて、受付けたユーザー操作201に基づき、6個の軸から1つ以上の軸を選択するとともに選択された各1つ以上の軸の可動範囲を教示点“LOC1”に関連付けて設定する。
例えば、図7では、設定ツール190は、受付けたユーザー操作201に従い、6個の軸のうちから第2の軸、第3の軸、第5の軸、および第6の軸を選択し、選択された各軸の可動範囲を設定する。設定ツール190は、ユーザー操作201に基づく設定を、可動範囲データ185としてデータ群180に設定する。
ユーザーは、可動範囲を数値で設定できるが、領域1091のモデル画像を操作することで感覚的に可動範囲を設定することもできる。具体的には、設定ツール190は、領域1091のロボット30のモデルの姿勢を変更するユーザーの操作量、より特定的にはモデルのアームの姿勢を変更する操作量1093を検出し、検出した操作量1093を軸の可動範囲(下限値1628と上限値1629の組)に変換して設定する。
(h3.可動範囲データ)
図8は、実施の形態にかかる可動範囲データ185の一例を模式的に示す図である。図8を参照して、可動範囲データ185は、教示点1621の“LOC1”に対応して、ユーザーによって選択された1つ以上の軸1622と、軸1622のそれぞれに対応して、ユーザーにより設定された可動範囲1624とを含む。可動範囲1624は、下限値1628と上限値1629の組合せで示される。なお、非選択の軸の可動範囲1624は、教示点“LOC1”に対応のデフォルト値が設定される。図8は、教示点“LOC1”について設定される各軸に対応の可動範囲データ185を示したが、他の教示点についても同様に各軸に対応の可動範囲データ185を設定することができる。
図8は、実施の形態にかかる可動範囲データ185の一例を模式的に示す図である。図8を参照して、可動範囲データ185は、教示点1621の“LOC1”に対応して、ユーザーによって選択された1つ以上の軸1622と、軸1622のそれぞれに対応して、ユーザーにより設定された可動範囲1624とを含む。可動範囲1624は、下限値1628と上限値1629の組合せで示される。なお、非選択の軸の可動範囲1624は、教示点“LOC1”に対応のデフォルト値が設定される。図8は、教示点“LOC1”について設定される各軸に対応の可動範囲データ185を示したが、他の教示点についても同様に各軸に対応の可動範囲データ185を設定することができる。
(h4.確認項目データ186)
図9は、実施の形態にかかる確認項目データ186の一例を模式的に示す図である。確認項目データ186は、ユーザーが設定した各軸の可動範囲が適切であるか否か、すなわちシミュレーションにおいて異常が発生していないか否かを評価するために、シミュレーションの結果を用いて確認するべき確認項目1630を示す。確認項目1630は、例えば、「ロボットと周辺装置の干渉」1631と、「ロボットとハンドの干渉」1632と、「ハンドと周辺装置の干渉」1633と、「ケーブルの破損」1634とを含む。確認項目1630の種類は、これらに限定されない。
図9は、実施の形態にかかる確認項目データ186の一例を模式的に示す図である。確認項目データ186は、ユーザーが設定した各軸の可動範囲が適切であるか否か、すなわちシミュレーションにおいて異常が発生していないか否かを評価するために、シミュレーションの結果を用いて確認するべき確認項目1630を示す。確認項目1630は、例えば、「ロボットと周辺装置の干渉」1631と、「ロボットとハンドの干渉」1632と、「ハンドと周辺装置の干渉」1633と、「ケーブルの破損」1634とを含む。確認項目1630の種類は、これらに限定されない。
ユーザーは、異常の確認項目1630のうちから1つ以上を選択する。具体的には、設定ツール190は、ユーザー操作201に基づき、複数の確認項目のうちから1つ以上の確認項目を選択し、選択された確認項目を確認項目データ186として設定する。図9の確認項目データ186では、例えば、「ロボットと周辺装置の干渉」1631と、「ロボットとハンドの干渉」1632と、「ケーブルの破損」1634とが確認するべき項目として設定されている。
<I.オブジェクトの干渉とケーブルの破損の検出>
評価モジュール155は、シミュレーション装置1によって実施されたシミュレーションの結果を評価する。具体的には、評価モジュール155は、シミュレーション結果である仮想空間情報105が示すオブジェクトの位置姿勢に基づき、オブジェクトどうしの干渉の有無の検出、およびケーブル341の破損の可能性を検出する。
評価モジュール155は、シミュレーション装置1によって実施されたシミュレーションの結果を評価する。具体的には、評価モジュール155は、シミュレーション結果である仮想空間情報105が示すオブジェクトの位置姿勢に基づき、オブジェクトどうしの干渉の有無の検出、およびケーブル341の破損の可能性を検出する。
(i1.干渉の検出)
評価モジュール155は、仮想空間情報105が示す各オブジェクトの位置姿勢に基づき、「干渉」の有無を検出する。例えば、「干渉」は、仮想的空間におけるロボット30に対応のオブジェクトと、当該オブジェクトとは異なる1つ以上のオブジェクトが配置される。異なるオブジェクトは、周辺装置、ワーク232、ケーブル341などに対応するオブジェクトを含む。
評価モジュール155は、仮想空間情報105が示す各オブジェクトの位置姿勢に基づき、「干渉」の有無を検出する。例えば、「干渉」は、仮想的空間におけるロボット30に対応のオブジェクトと、当該オブジェクトとは異なる1つ以上のオブジェクトが配置される。異なるオブジェクトは、周辺装置、ワーク232、ケーブル341などに対応するオブジェクトを含む。
「干渉」は、ロボット30のオブジェクトおよび異なるオブジェクトからなる複数のオブジェクトのうちのいずれかのオブジェクトの座標(これを、座標Pとする)と他のオブジェクトの座標(これを、座標Qとする)との両者間の相対的な関係が特定の位置関係を示すとの条件が満たされるとき、「干渉」が有ると検知される。
特定の位置関係は、例えば、両者の距離が、閾値以下の距離を含む特定距離であるとことを含む。また、特定位置関係は、例えば、ロボット30の関節に対応の軸の可動範囲を連続的に変化させながらシミュレーションを実施する場合に、ロボット30の挙動(より特定的には各アームの挙動)を示す座標Pと次位の座標Pとを結ぶ軌跡が、他のオブジェクトの座標Qと交差したこと等を含む。オブジェクトどうしの「干渉」を検出するための、特定の位置関係は、これらの位置関係に限定されない。
上記に述べた閾値は、各オブジェクトのサイズ(幅、高さなど)に基づく値であってもよく、例えば、閾値またはオブジェクトのサイズは、例えば画像データ137の各オブジェクトのCADデータに含まれ得る。
(i2.ケーブル破損の可能性の検出)
評価モジュール155は、ケーブルシミュレータ154が算出したケーブル341に対応するオブジェクトの挙動に基づき、ケーブルの破損の可能性の有無を検出する。これにより、ケーブルに対応するオブジェクトの挙動が評価される。評価モジュール155は、例えば、ケーブル341のオブジェクトの挙動から算出される当該オブジェクトにかかる負荷、より特定的には挙動に影響を及ぼすような種類の負荷に基づき、当該挙動を評価する。このような負荷の種類は、限定されないが、例えば伸び、曲げおよびひねり等の少なくとも1つを含み得る。
評価モジュール155は、ケーブルシミュレータ154が算出したケーブル341に対応するオブジェクトの挙動に基づき、ケーブルの破損の可能性の有無を検出する。これにより、ケーブルに対応するオブジェクトの挙動が評価される。評価モジュール155は、例えば、ケーブル341のオブジェクトの挙動から算出される当該オブジェクトにかかる負荷、より特定的には挙動に影響を及ぼすような種類の負荷に基づき、当該挙動を評価する。このような負荷の種類は、限定されないが、例えば伸び、曲げおよびひねり等の少なくとも1つを含み得る。
具体的には、評価モジュール155は、ケーブル341のオブジェクトの挙動に基づき、負荷を算出し、算出された負荷が所定条件を満たすと判定したとき、ケーブル341は破損する可能性がある検出し、当該所定条件が満たされないと判定したとき破損する可能性はないと検出する。評価モジュール155は、検出の結果を示す評価結果を出力する。
上記の所定条件は、例えば、算出された曲げ半径が、ケーブル341の最小曲げ半径(ケーブル341の仕様によって指定された値)を超えるとの条件を示す。なお、この所定条件は、曲げ半径の条件に限定されない。
<J.処理手順>
図10と図11は、実施の形態にかかるシミュレーション装置1において実行される処理のフローチャートの一例を示す図である。図12と図13は、実施の形態にかかるシミュレーションの態様を模式的に示す図である。図14は、実施の形態にかかる可動範囲の変更の一例を模式的に示す図である。
図10と図11は、実施の形態にかかるシミュレーション装置1において実行される処理のフローチャートの一例を示す図である。図12と図13は、実施の形態にかかるシミュレーションの態様を模式的に示す図である。図14は、実施の形態にかかる可動範囲の変更の一例を模式的に示す図である。
図10と図11に示す各ステップは、典型的には、情報処理装置100のプロセッサ102がプログラム(物理シミュレーションプログラム122、設定ツールプログラム126、範囲変更プログラム128、ロボットシミュレーションプログラム130、画像処理プログラム133、評価プログラム135、および、統合プログラム136など)を実行することで実現される。
シミュレーションの実施に際して、ユーザーは操作ユニット106を操作して、情報処理装置100に対して、シミュレーションのための設定を実施する。情報処理装置100は、操作ユニット106を介して受付けるユーザー操作201に基づき、シミュレーションのための設定を受付ける(ステップS3~S9)。
具体的には、情報処理装置100は、ユーザー操作201に基づき複数の教示点のうちから選択された1つの教示点の設定(ステップS3)、複数の軸のうちから選択された1つ以上の軸の設定(ステップS5)、選択された各軸の可動範囲の設定(ステップS7)、および複数の異常の確認項目のうちから選択された1つ以上の確認項目の設定(ステップS9)を受付ける。情報処理装置100は、ステップS3~S9において受付けた設定を、可動範囲データ185および確認項目データ186として格納する。ここでは、ステップS3において、例えば、教示点“LOC1”が設定される。なお、他の教示点であっても、図10の処理によって、各軸の可動範囲を設定することができる。
情報処理装置100は、ユーザー操作201に基づき、シミュレーションの実行開始の指示を受付けると(ステップS10)、情報処理装置100は、ステップS3~ステップS7で受付けられた設定に基づきシミュレーションの処理を実施する(ステップS11)。実施の形態では、ステップS5で設定された軸毎に、当該軸について設定された可動範囲1624を用いてステップS11のシミュレーションが実行される。以下では、シミュレーションの対象となっている軸を、他の軸と区別するために「対象軸」と呼ぶ。
シミュレーションが実行されることによって、仮想空間情報105には、仮想空間における周辺装置、ワーク232、ロボットハンド210を有するロボット30およびケーブル341のそれぞれに対応するオブジェクトの挙動を示す情報が反映される。
情報処理装置100は、仮想空間情報105に反映されたオブジェクトの挙動を示す情報に基づき、シミュレーションの結果を評価するとともに、評価の結果を示す評価情報を出力(表示)する(ステップS12)。情報処理装置100は、確認項目データ186が示す1つ以上の確認項目1630のそれぞれについて、仮想空間情報105が示す各オブジェクトの挙動を示す情報に基づき、干渉の有無を検出し、または、ケーブル破損の可能性を検出する。
情報処理装置100は、ユーザー操作201に基づき、「対象軸」の可動範囲を変更するか否かを判定する(ステップS13)。情報処理装置100は、「対象軸」の可動範囲を変更しないと判定すると(ステップS13でNO)、可動範囲データ185において設定された全ての軸についてシミュレーションが実施されたか否かを判定する(ステップS15)。情報処理装置100は、未だ全ての軸についてシミュレーションが実施されていないと判定すると(ステップS15でNO)、「対象軸」を可動範囲データ185が示す次の軸に変更し、変更後の「対象軸」についてシミュレーションを実施する(ステップS11)。全ての軸についてシミュレーションが実施されたと判定されると(ステップS15でYES)、処理は終了する。
情報処理装置100は、ユーザー操作201に基づき、「対象軸」の可動範囲を変更すると判定すると(ステップS13でYES)、情報処理装置100は、可動範囲データ185における「対象軸」の可動範囲1624を変更する(ステップS16)。その後、ステップS11において「対象軸」について、変更後の可動範囲1624を用いてシミュレーションが実施される。
ステップS13では、例えば、ユーザーは、シミュレーションの評価結果が「干渉」または「ケーブル破損の可能性」が検知されたことを示す場合は、情報処理装置100を操作して、対象軸の可動範囲を変更するよう情報処理装置100に対して指示する。
ステップS16では、ユーザーの指示に応答して、情報処理装置100は範囲変更モジュール166として、「対象軸」の可動範囲を変更する。例えば、図14に示すように、可動範囲データ185における「対象軸」である例えば第2の軸の下限値を小さくするように変更し、また、「対象軸」である例えば第5の軸の上限値を小さくするように変更する。
図10の処理によれば、ユーザーは、ステップS12で出力されるシミュレーションの評価結果から、対象軸の可動範囲1624を変更して、変更後の可動範囲1624を用いてシミュレーションを再度、実施するべきか否かの判断基準を得ることができる。
したがって、対象軸の可動範囲1624を変更しながら、シミュレーションを繰返し実施することにより、ユーザーは、対象軸の可動範囲1624を最適値、すなわち干渉およびケーブル破損の可能性がない値に調整することができる。
図11を参照して、ステップS11のシミュレーションの処理手順を説明する。図11のシミュレーションでは、「対象軸」の姿勢(軸のロール角α、ピッチ角βおよびヨー角γの組合せ)を表す変数ARを用いる。変数ARの値は、「対象軸」の可動範囲1624が示す下限値1628~上限値1629の範囲で、ΔARの値だけ加算(または減算)され得る。ΔARは、限定されないが、例えば角度として1度とすることができて、ユーザーが設定することもできる。
まず、情報処理装置100は、「対象軸」の姿勢として初期値が設定された変数ARを用いてロボットシミュレーションを実施する(ステップS31)。情報処理装置100は、シミュレーションの対象となっている教示点LOC(i)が示すロボット30の挙動(位置姿勢)に基づき、変数ARの角度だけ「対象軸」の角度を変化させた場合の挙動、すなわちロボット30に対応する仮想空間のオブジェクトの挙動を算出する。この算出は、(c1.仮想空間の座標系)で示された方法を用いることができる。
情報処理装置100は、シミュレーションによって算出されたロボット30に対応のオブジェクトの仮想空間における挙動を、仮想空間情報105に反映する。情報処理装置100は、(AR=AR+ΔAR)に従い変数ARの値をΔARの所定値ずつ更新し(ステップS33)、更新後の変数ARの値が「対象軸」の可動範囲1624内の値であるか否かを判定する(ステップS35)。
変数ARは可動範囲1624内の値を示すと判定されると(ステップS35でYES)、情報処理装置100は、更新後の値が設定された変数ARを用いてロボットシミュレーションを実施する(ステップS31)。ステップS31~S35では、「対象軸」の姿勢を可動範囲1624内でΔARずつ変化させる毎にロボット30に対応するオブジェクトの挙動が算出されて、算出された挙動は仮想空間情報105に反映される。したがって、仮想空間情報105には、仮想空間におけるロボット30に対応するオブジェクトの時系列に変化する挙動が反映される。
変数ARは可動範囲1624内の値を示さないと判定されると(ステップS35でNO)、情報処理装置100は、周辺装置などの挙動の情報を設定する(ステップS37)。具体的には、情報処理装置100は、教示点“LOC1”に対応する位置姿勢データ187をデータ群180から検索し、検索された位置姿勢データ187を仮想空間情報105に反映する。これにより、仮想空間情報105には、ロボット30が教示点“LOC1”の位置姿勢をとった場合の周辺装置、ケーブル341およびワーク232に対応するオブジェクトの位置姿勢が反映される。
情報処理装置100は、ステップS31~S33で算出されたロボット30のオブジェクトの時系列の挙動に基づき、ケーブルシミュレーションを実施する(ステップS39)。ケーブルシミュレーションにより算出されたオブジェクトの挙動の時系列の変化は、仮想空間情報105に反映される。
図11の処理によって、仮想空間情報105には、ロボット30が教示点“LOC1”が示す位置姿勢をとった場合における、周辺装置、ケーブル341およびワーク232に対応するオブジェクトの位置姿勢と、「対象軸」の姿勢を可動範囲1624で変化させて得られたロボット30のオブジェクトの時系列の挙動と、当該時系列の挙動に連動したケーブル341のオブジェクトの時系列の挙動とが反映される。
図12には、第5の軸が「対象軸」である場合のシミュレーションにおける可動範囲が模式的に示され、図13には、第6の軸が「対象軸」である場合のシミュレーションにおける可動範囲が模式的に示される。
<K.シミュレーション結果と評価の表示>
図15は、実施の形態にかかるシミュレーション結果の表示の一例を示す図である。例えば、図10のステップS12でディスプレイ109に表示される画面の一例が示される。図15の画面では、領域1100に、シミュレーション結果として可動範囲データ1096と、異常の確認項目毎の確認結果1097と、対象軸の可動範囲の設定を変更するか否かを選択するために操作されるボタン1098とが表示される。ボタン1098は、ステップS13において、ユーザーによって操作される。
図15は、実施の形態にかかるシミュレーション結果の表示の一例を示す図である。例えば、図10のステップS12でディスプレイ109に表示される画面の一例が示される。図15の画面では、領域1100に、シミュレーション結果として可動範囲データ1096と、異常の確認項目毎の確認結果1097と、対象軸の可動範囲の設定を変更するか否かを選択するために操作されるボタン1098とが表示される。ボタン1098は、ステップS13において、ユーザーによって操作される。
シミュレーション結果として可動範囲データ1096は、例えば、第2の軸を「対象軸」とした場合のシミュレーション終了時における可動範囲の設定値を示す。確認結果1097は、ユーザーがステップS9において設定した確認項目毎に、オブジェクトどうしの干渉の有無、またはケーブルの破損の可能性の有無の評価の結果を示す。また、確認結果1097は、ユーザーが操作可能なボタン1099を含む。
情報処理装置100は、ボタン1099が操作されると、検出された異常を表す画像を領域1200に表示(再生)する。画像は、オブジェクトどうしの干渉が有る場合は異常(干渉)が発生する状態を表す画像を含み、また、ケーブルの破損の可能性が有る場合は異常(破損の可能性)が発生する状態を表す画像を含む。情報処理装置100は、領域1200に、異常が発生したときの「対象軸」の識別子と、その姿勢(例えば、変数ARが示す角度)を示すデータ1021を表示する。図15の領域1200の画像は、例えば、「対象軸」である第2の軸の姿勢の変数ARが52度を示す場合に、ロボット30のアーム301のオブジェクトが周辺装置(例えば、トレイ55)のオブジェクトと干渉したことを示すポリゴンマーク342を含む。
図16は、図15の領域1200において表示される他の画像の一例を示す図である。図16の画像は、ケーブルの破損の可能性が有る場合の画像である。画像は、「対象軸」である第6の軸付近のケーブル341に破損の可能性があることを示すポリゴンマーク342を含む。図16では、ポリゴンマーク342は、ケーブル341のオブジェクト340に関連付けて示される。
<L.プログラム>
シミュレーションは、図3の情報処理装置100のプロセッサ102がストレージ120などのメモリに格納されるプログラムを実行することにより提供される構成を例示したが、これらの提供される構成の一部または全部を、専用のハードウェア回路(たとえば、ASIC(Application Specific Integrated Circuit)またはFPGA(Field-Programmable Gate Array)など)を用いて実装してもよい。あるいは、情報処理装置100の主要部を、汎用的なアーキテクチャに従うハードウェアを用いて実現してもよい。この場合には、仮想化技術を用いて、用途の異なる複数のOSを並列的に実行させるとともに、各OS上で必要なアプリケーションを実行させるようにしてもよい。
シミュレーションは、図3の情報処理装置100のプロセッサ102がストレージ120などのメモリに格納されるプログラムを実行することにより提供される構成を例示したが、これらの提供される構成の一部または全部を、専用のハードウェア回路(たとえば、ASIC(Application Specific Integrated Circuit)またはFPGA(Field-Programmable Gate Array)など)を用いて実装してもよい。あるいは、情報処理装置100の主要部を、汎用的なアーキテクチャに従うハードウェアを用いて実現してもよい。この場合には、仮想化技術を用いて、用途の異なる複数のOSを並列的に実行させるとともに、各OS上で必要なアプリケーションを実行させるようにしてもよい。
また、情報処理装置100は、プロセッサを複数個備えてもよい。この場合は、ケーブルシミュレーションは、複数のプロセッサにより実行することが可能である。また、プロセッサ102が複数のコアを含む場合は、ケーブルシミュレーションは、プロセッサ102内の複数のコアにより実行することが可能である。
情報処理装置100の記憶媒体114は、コンピュータその他装置、機械等が記録されたプログラム等の情報を読み取り可能なように、当該プログラム等の情報を、電気的、磁気的、光学的、機械的または化学的作用によって蓄積する媒体である。情報処理装置100のプロセッサ102は、これら記憶媒体から、上記に述べたケーブルシミュレーションにかかるプログラムまたはパラメータを取得してもよい。
<M.利点>
実施の形態にかかるシミュレーションを利用することにより、ロボット30の各関節に対応の軸の可動範囲を、干渉およびケーブル破損を回避可能な範囲である適正範囲となるように調整することができる。また、シミュレーションでは、「対象軸」の初期設定の可動範囲1624(下限値1628および上限値1629)は、干渉およびケーブル破損の可能性が検出されると、狭める方向に変更される。これにより、「対象軸」の可動範囲1624を、可能な限り広い範囲に決定することができる。「対象軸」の可動範囲1624は可能な限り広い範囲に決定されることで、ロボット30の可動範囲も可能な限り広い範囲に設定することができる。設定された各軸の可動範囲は、PLC200が実行するロボット制御プログラムが参照する可動範囲の閾値に設定することができる。
実施の形態にかかるシミュレーションを利用することにより、ロボット30の各関節に対応の軸の可動範囲を、干渉およびケーブル破損を回避可能な範囲である適正範囲となるように調整することができる。また、シミュレーションでは、「対象軸」の初期設定の可動範囲1624(下限値1628および上限値1629)は、干渉およびケーブル破損の可能性が検出されると、狭める方向に変更される。これにより、「対象軸」の可動範囲1624を、可能な限り広い範囲に決定することができる。「対象軸」の可動範囲1624は可能な限り広い範囲に決定されることで、ロボット30の可動範囲も可能な限り広い範囲に設定することができる。設定された各軸の可動範囲は、PLC200が実行するロボット制御プログラムが参照する可動範囲の閾値に設定することができる。
実施の形態の背景として、ロボット30が備えられる生産ラインでは、例えばワーク搬送を行う際に、ロボット30は、教示時の姿勢とは異なる姿勢で教示点に移動するケースが発生する。例えば、画像センサでワーク232の姿勢を検知し、検知結果に応じて、ピック位置またはプレース位置が現場で補正される場合は、ロボットの姿勢も補正されて、その結果、ロボット30の姿勢は、ロボット制御プログラムによって設計された姿勢とは異なる姿勢をとるケースが発生する。
このようなケースであっても、ロボット制御プログラムが参照する可動範囲は、シミュレーションによって決定された可能な限り広い範囲に設定することができる。したがって、このようなケースであっても、ケーブル341の破損またはロボット30と周辺装置との干渉、またはロボットハンド210と周辺装置の干渉などを回避しながら、ロボット30を用いたワーク搬送を実現できる。
<N.付記>
上述したような本実施の形態は、以下のような技術思想を含む。
上述したような本実施の形態は、以下のような技術思想を含む。
[構成1]
複数の関節(1300~1305)を有した機器(30)の挙動を推定するシミュレーション装置(1)であって、
前記機器は、それぞれが当該機器の関節に対応した複数の軸を備え、
各前記複数の軸に対応の関節は、当該軸の動きに連動して動作し、
前記シミュレーション装置は、
当該シミュレーション装置に対するユーザー操作を受付けるための操作受付部(202)と、
前記ユーザー操作に従い、前記複数の軸から1つ以上の軸を選択するとともに選択された各前記1つ以上の軸の可動範囲を設定する設定部(190)と、
前記選択された各軸の可動範囲に基づいて、前記機器に対応する仮想空間に配置された対象の挙動を算出するシミュレーションを実施する第1のシミュレータ(160)と、
前記仮想空間をビジュアル化した画像を生成する画像生成部(164)と、を備える、シミュレーション装置。
複数の関節(1300~1305)を有した機器(30)の挙動を推定するシミュレーション装置(1)であって、
前記機器は、それぞれが当該機器の関節に対応した複数の軸を備え、
各前記複数の軸に対応の関節は、当該軸の動きに連動して動作し、
前記シミュレーション装置は、
当該シミュレーション装置に対するユーザー操作を受付けるための操作受付部(202)と、
前記ユーザー操作に従い、前記複数の軸から1つ以上の軸を選択するとともに選択された各前記1つ以上の軸の可動範囲を設定する設定部(190)と、
前記選択された各軸の可動範囲に基づいて、前記機器に対応する仮想空間に配置された対象の挙動を算出するシミュレーションを実施する第1のシミュレータ(160)と、
前記仮想空間をビジュアル化した画像を生成する画像生成部(164)と、を備える、シミュレーション装置。
[構成2]
前記選択された各軸の可動範囲を変更する範囲変更部(166)を、さらに備え、
前記第1のシミュレータは、さらに、
前記選択された各軸の変更された前記可動範囲に基づいて、前記機器に対応する仮想空間に配置された対象の挙動を算出するシミュレーションを実施する、構成1に記載のシミュレーション装置。
前記選択された各軸の可動範囲を変更する範囲変更部(166)を、さらに備え、
前記第1のシミュレータは、さらに、
前記選択された各軸の変更された前記可動範囲に基づいて、前記機器に対応する仮想空間に配置された対象の挙動を算出するシミュレーションを実施する、構成1に記載のシミュレーション装置。
[構成3]
前記仮想空間には、前記機器に対応の対象とは異なる対象が配置され、
前記異なる対象は、前記機器の周辺装置に対応する対象を含み、
前記機器に対応する対象の挙動は、当該対象の前記仮想空間における位置を含み、
前記範囲変更部は、前記仮想空間における前記機器に対応の対象と前記異なる対象との位置間の相対的な関係が特定位置関係を示すとき、前記選択された各軸の可動範囲を変更する、構成2に記載のシミュレーション装置。
前記仮想空間には、前記機器に対応の対象とは異なる対象が配置され、
前記異なる対象は、前記機器の周辺装置に対応する対象を含み、
前記機器に対応する対象の挙動は、当該対象の前記仮想空間における位置を含み、
前記範囲変更部は、前記仮想空間における前記機器に対応の対象と前記異なる対象との位置間の相対的な関係が特定位置関係を示すとき、前記選択された各軸の可動範囲を変更する、構成2に記載のシミュレーション装置。
[構成4]
前記仮想空間には、前記機器に対応の対象とは異なる対象が配置され、
前記異なる対象は、前記機器に取付けられるケーブル(341)に対応する前記仮想空間に配置された対象(340)を含み、
前記機器に対応する仮想空間に配置された対象の挙動に基づき、前記ケーブルの取付けに関するパラメータを用いて、当該ケーブルに対応する前記仮想空間に配置された対象の挙動を算出する第2のシミュレータ(154)を、さらに備える、構成2または3に記載のシミュレーション装置。
前記仮想空間には、前記機器に対応の対象とは異なる対象が配置され、
前記異なる対象は、前記機器に取付けられるケーブル(341)に対応する前記仮想空間に配置された対象(340)を含み、
前記機器に対応する仮想空間に配置された対象の挙動に基づき、前記ケーブルの取付けに関するパラメータを用いて、当該ケーブルに対応する前記仮想空間に配置された対象の挙動を算出する第2のシミュレータ(154)を、さらに備える、構成2または3に記載のシミュレーション装置。
[構成5]
前記シミュレーション装置は、
前記第2のシミュレータによって算出された前記ケーブルに対応する対象の挙動に基づき、当該対象にかかる負荷を算出し、
前記範囲変更部は、算出された前記負荷が所定条件を満たすとき、前記選択された各軸の可動範囲を変更する、構成4に記載のシミュレーション装置。
前記シミュレーション装置は、
前記第2のシミュレータによって算出された前記ケーブルに対応する対象の挙動に基づき、当該対象にかかる負荷を算出し、
前記範囲変更部は、算出された前記負荷が所定条件を満たすとき、前記選択された各軸の可動範囲を変更する、構成4に記載のシミュレーション装置。
[構成6]
前記設定部は、さらに、
前記ユーザー操作に従い、機器がとるべき位置姿勢を示す教示点を設定し、
前記第1のシミュレータは、さらに、
設定された前記教示点が示す位置姿勢および前記選択された各軸の可動範囲に基づいて、前記機器に対応する前記仮想空間に配置された対象の挙動を算出する、構成1から5のいずれか1項に記載のシミュレーション装置。
前記設定部は、さらに、
前記ユーザー操作に従い、機器がとるべき位置姿勢を示す教示点を設定し、
前記第1のシミュレータは、さらに、
設定された前記教示点が示す位置姿勢および前記選択された各軸の可動範囲に基づいて、前記機器に対応する前記仮想空間に配置された対象の挙動を算出する、構成1から5のいずれか1項に記載のシミュレーション装置。
[構成7]
コンピュータ(100)に、複数の関節(1300~1305)を有した機器(30)の挙動を推定する方法を実行させるためのプログラムであって、
前記機器は、それぞれが当該機器の関節に対応した複数の軸を備え、
各前記複数の軸に対応の関節は、当該軸の動きに連動して動作し、
前記方法は、
ユーザー操作に従い、前記複数の軸から1つ以上の軸を選択するとともに選択された各前記1つ以上の軸の可動範囲を設定するステップと、
前記選択された各軸の可動範囲に基づいて、前記機器に対応する仮想空間に配置された対象の挙動を算出するシミュレーションを実施するステップと、
前記仮想空間をビジュアル化した画像を生成するステップと、を備える、プログラム。
コンピュータ(100)に、複数の関節(1300~1305)を有した機器(30)の挙動を推定する方法を実行させるためのプログラムであって、
前記機器は、それぞれが当該機器の関節に対応した複数の軸を備え、
各前記複数の軸に対応の関節は、当該軸の動きに連動して動作し、
前記方法は、
ユーザー操作に従い、前記複数の軸から1つ以上の軸を選択するとともに選択された各前記1つ以上の軸の可動範囲を設定するステップと、
前記選択された各軸の可動範囲に基づいて、前記機器に対応する仮想空間に配置された対象の挙動を算出するシミュレーションを実施するステップと、
前記仮想空間をビジュアル化した画像を生成するステップと、を備える、プログラム。
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した実施の形態の説明ではなくて請求の範囲によって示され、請求の範囲と均等の意味及び範囲内でのすべての変更が含まれることが意図される。
1 シミュレーション装置、2 制御システム、30 ロボット、100 情報処理装置、122 物理シミュレーションプログラム、124 物理シミュレーションパラメータ、125 周辺情報設定プログラム、126 設定ツールプログラム、128 範囲変更プログラム、130 ロボットシミュレーションプログラム、131 ケーブルシミュレーションプログラム、132 ロボットパラメータ、133 画像処理プログラム、135 評価プログラム、136 統合プログラム、137 画像データ、150 仮想空間情報管理モジュール、154 ケーブルシミュレータ、155 評価モジュール、160 ロボットシミュレータ、164 ビジュアライザ、166 範囲変更モジュール、170 周辺情報設定モジュール、180 データ群、184 教示点データ、185,1096 可動範囲データ、186 確認項目データ、187 位置姿勢データ、190 設定ツール、191 軸設定ツール、192 教示点設定ツール、201 ユーザー操作、202 ユーザー操作受付部、210 ロボットハンド、341 ケーブル、1624 可動範囲。
Claims (7)
- 複数の関節を有した機器の挙動を推定するシミュレーション装置であって、
前記機器は、それぞれが当該機器の関節に対応した複数の軸を備え、
各前記複数の軸に対応の関節は、当該軸の動きに連動して動作し、
前記シミュレーション装置は、
当該シミュレーション装置に対するユーザー操作を受付けるための操作受付部と、
前記ユーザー操作に従い、前記複数の軸から1つ以上の軸を選択するとともに選択された各前記1つ以上の軸の可動範囲を設定する設定部と、
前記選択された各軸の可動範囲に基づいて、前記機器に対応する仮想空間に配置された対象の挙動を算出するシミュレーションを実施する第1のシミュレータと、
前記仮想空間をビジュアル化した画像を生成する画像生成部と、を備える、シミュレーション装置。 - 前記選択された各軸の可動範囲を変更する範囲変更部を、さらに備え、
前記第1のシミュレータは、さらに、
前記選択された各軸の変更された前記可動範囲に基づいて、前記機器に対応する仮想空間に配置された対象の挙動を算出するシミュレーションを実施する、請求項1に記載のシミュレーション装置。 - 前記仮想空間には、前記機器に対応の対象とは異なる対象が配置され、
前記異なる対象は、前記機器の周辺装置に対応する対象を含み、
前記機器に対応する対象の挙動は、当該対象の前記仮想空間における位置を含み、
前記範囲変更部は、前記仮想空間における前記機器に対応の対象と前記異なる対象との位置間の相対的な関係が特定位置関係を示すとき、前記選択された各軸の可動範囲を変更する、請求項2に記載のシミュレーション装置。 - 前記仮想空間には、前記機器に対応の対象とは異なる対象が配置され、
前記異なる対象は、前記機器に取付けられるケーブルに対応する前記仮想空間に配置された対象を含み、
前記機器に対応する仮想空間に配置された対象の挙動に基づき、前記ケーブルの取付けに関するパラメータを用いて、当該ケーブルに対応する前記仮想空間に配置された対象の挙動を算出する第2のシミュレータを、さらに備える、請求項2または3に記載のシミュレーション装置。 - 前記シミュレーション装置は、
前記第2のシミュレータによって算出された前記ケーブルに対応する対象の挙動に基づき、当該対象にかかる負荷を算出し、
前記範囲変更部は、算出された前記負荷が所定条件を満たすとき、前記選択された各軸の可動範囲を変更する、請求項4に記載のシミュレーション装置。 - 前記設定部は、さらに、
前記ユーザー操作に従い、機器がとるべき位置姿勢を示す教示点を設定し、
前記第1のシミュレータは、さらに、
設定された前記教示点が示す位置姿勢および前記選択された各軸の可動範囲に基づいて、前記機器に対応する前記仮想空間に配置された対象の挙動を算出する、請求項1から5のいずれか1項に記載のシミュレーション装置。 - コンピュータに、複数の関節を有した機器の挙動を推定する方法を実行させるためのプログラムであって、
前記機器は、それぞれが当該機器の関節に対応した複数の軸を備え、
各前記複数の軸に対応の関節は、当該軸の動きに連動して動作し、
前記方法は、
ユーザー操作に従い、前記複数の軸から1つ以上の軸を選択するとともに選択された各前記1つ以上の軸の可動範囲を設定するステップと、
前記選択された各軸の可動範囲に基づいて、前記機器に対応する仮想空間に配置された対象の挙動を算出するシミュレーションを実施するステップと、
前記仮想空間をビジュアル化した画像を生成するステップと、を備える、プログラム。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2020041722A JP7424122B2 (ja) | 2020-03-11 | 2020-03-11 | シミュレーション装置およびプログラム |
JP2020-041722 | 2020-03-11 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2021181804A1 true WO2021181804A1 (ja) | 2021-09-16 |
Family
ID=77671554
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2020/047255 WO2021181804A1 (ja) | 2020-03-11 | 2020-12-17 | シミュレーション装置およびプログラム |
Country Status (2)
Country | Link |
---|---|
JP (1) | JP7424122B2 (ja) |
WO (1) | WO2021181804A1 (ja) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH10275007A (ja) * | 1997-03-31 | 1998-10-13 | Nissan Motor Co Ltd | ロボット動作シミュレーション方法 |
JP2009274148A (ja) * | 2008-05-12 | 2009-11-26 | Kanto Auto Works Ltd | シミュレーション装置 |
JP2018134703A (ja) * | 2017-02-21 | 2018-08-30 | 株式会社安川電機 | ロボットシミュレータ、ロボットシステム及びシミュレーション方法 |
-
2020
- 2020-03-11 JP JP2020041722A patent/JP7424122B2/ja active Active
- 2020-12-17 WO PCT/JP2020/047255 patent/WO2021181804A1/ja active Application Filing
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH10275007A (ja) * | 1997-03-31 | 1998-10-13 | Nissan Motor Co Ltd | ロボット動作シミュレーション方法 |
JP2009274148A (ja) * | 2008-05-12 | 2009-11-26 | Kanto Auto Works Ltd | シミュレーション装置 |
JP2018134703A (ja) * | 2017-02-21 | 2018-08-30 | 株式会社安川電機 | ロボットシミュレータ、ロボットシステム及びシミュレーション方法 |
Also Published As
Publication number | Publication date |
---|---|
JP2021142595A (ja) | 2021-09-24 |
JP7424122B2 (ja) | 2024-01-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9149931B2 (en) | Robot system, robot control device and method for controlling robot | |
JP3946753B2 (ja) | ロボットプログラム評価・修正方法及びロボットプログラム評価・修正装置 | |
US9387589B2 (en) | Visual debugging of robotic tasks | |
EP2282873B1 (en) | A method and a system for facilitating calibration of an off-line programmed robot cell | |
CN107530879B (zh) | 多轴机械装置仿真器、运转指令装置的设计辅助装置、电动机控制装置的设计辅助装置以及电动机的容量选定装置 | |
JP4137909B2 (ja) | ロボットプログラム補正装置 | |
JP7388074B2 (ja) | シミュレーション装置、シミュレーションプログラムおよびシミュレーション方法 | |
KR20180059888A (ko) | 로봇교시방법 및 로봇 암 제어장치 | |
KR20180069031A (ko) | 로봇의 다이렉트 교시방법 | |
JP2017094407A (ja) | シミュレーション装置、シミュレーション方法、およびシミュレーションプログラム | |
WO2007113112A1 (en) | Apparatus and method for automatic path generation for an industrial robot | |
JP2019089201A (ja) | 教示データ作成装置、教示データ作成装置の制御方法及びロボットシステム | |
JP7447568B2 (ja) | シミュレーション装置およびプログラム | |
WO2022137581A1 (ja) | シミュレーション装置およびシミュレーションプログラム | |
CN108568816A (zh) | 用于控制自动化工作单元的方法 | |
WO2021181804A1 (ja) | シミュレーション装置およびプログラム | |
WO2021149419A1 (ja) | シミュレーション装置およびシミュレーションプログラム | |
JP2007136671A (ja) | ロボットプログラム評価・修正方法及びロボットプログラム評価・修正装置 | |
JP2007260834A (ja) | オフセット・ロボット総合管理システム | |
CN115008439A (zh) | 信息处理设备和方法、机器人系统、产品制造方法 | |
JP7275840B2 (ja) | シミュレーション装置 | |
JP2012196720A (ja) | ロボットの制御方法およびロボットの制御装置 | |
Lai | A fast task planning system for 6R articulated robots based on inverse kinematics | |
da Rosa et al. | Design and Implementation of a Platform for Controlling the Mentor Robotic Arm | |
JP2022135939A (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: 20924719 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: 20924719 Country of ref document: EP Kind code of ref document: A1 |