WO2018180148A1 - 情報処理装置及び情報処理方法、コンピュータ・プログラム、並びにプログラム製造方法 - Google Patents
情報処理装置及び情報処理方法、コンピュータ・プログラム、並びにプログラム製造方法 Download PDFInfo
- Publication number
- WO2018180148A1 WO2018180148A1 PCT/JP2018/007482 JP2018007482W WO2018180148A1 WO 2018180148 A1 WO2018180148 A1 WO 2018180148A1 JP 2018007482 W JP2018007482 W JP 2018007482W WO 2018180148 A1 WO2018180148 A1 WO 2018180148A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- control
- unit
- program
- information processing
- value
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/04—Programme control other than numerical control, i.e. in sequence controllers or logic controllers
- G05B19/042—Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/04—Programme control other than numerical control, i.e. in sequence controllers or logic controllers
- G05B19/042—Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
- G05B19/0426—Programming the control sequence
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/04—Programme control other than numerical control, i.e. in sequence controllers or logic controllers
- G05B19/042—Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
- G05B19/0423—Input/output
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/04—Programme control other than numerical control, i.e. in sequence controllers or logic controllers
- G05B19/10—Programme control other than numerical control, i.e. in sequence controllers or logic controllers using selector switches
- G05B19/102—Programme control other than numerical control, i.e. in sequence controllers or logic controllers using selector switches for input of programme steps, i.e. setting up sequence
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/20—Pc systems
- G05B2219/26—Pc applications
- G05B2219/2609—Process control
Definitions
- the technology disclosed in this specification relates to an information processing apparatus and information processing method, a computer program, and a program manufacturing method that are used in or support the development of a control program for a control device having a movable part.
- the robot is composed of, for example, a plurality of links and joints connecting the links, and the robot operates by driving each node using a joint driving actuator such as a motor.
- a robot or animation character motion editing method using a key frame is known (see, for example, Patent Document 1).
- a GUI Graphic User Interface
- target values such as the position (joint angle) and speed of each movable part such as a joint in the key frame at the start and end of movement in a certain section. It is possible to edit an intuitive and easy-to-understand operation such as “move the joint from Y degree to Z over X seconds” by designating on the screen.
- An object of the technology disclosed in the present specification is to provide an information processing device and an information processing method, a computer program, and a program manufacturing method that are used in or support the development of a control program of a control device having a movable part. It is in.
- a first aspect thereof is an information processing apparatus that processes a control program including a target value for a movable part of a control target apparatus.
- a first holding unit that holds a control parameter of the movable unit according to a control method and a characteristic value of the movable unit;
- a control output unit that calculates an output value of the movable unit according to the target value using the control parameter and the characteristic value held by the first holding unit;
- a physical calculation unit that causes the control target device to execute a physical behavior according to the calculated output value of the movable unit; Is an information processing apparatus.
- the control output unit calculates a control input value according to a deviation between the target value and a current value of the movable unit using the control parameter held by the first holding unit, and the control output value with respect to the control input value The output value of the movable part corresponding to the characteristic value held by the first holding part is calculated.
- the first holding unit holds at least one control parameter of a proportional gain, an integral gain, or a differential gain according to a control method of the movable unit, and a manufacturer of a motor that drives the movable unit Name, model number, mounting angle dimensions, type, shaft type, presence or absence of electromagnetic brake, driver type, rated output, rated rotational speed, maximum rotational speed, maximum input rotational speed, rated torque, instantaneous maximum torque, excitation maximum static torque, Speed range, rotor inertia moment, moment of inertia, resolution (motor shaft) (P / R), detector (encoder), backlash, reduction ratio, power input voltage, power input frequency, power input rated voltage, speed / position At least one characteristic value among the control command, the maximum input pulse frequency, or the motor unit mass is held.
- the information processing apparatus further includes a second holding unit that holds the characteristic value of the control target device.
- the second holding unit holds at least one of the weight, the center of gravity, the inertia, the joint movable range, and the friction coefficient of each component constituting the device to be controlled. Then, the physical calculation unit causes the control target device to execute a physical behavior using the characteristic value held by the second holding unit.
- a second aspect of the technology disclosed in the present specification is an information processing method for processing a control program including a target value for a movable part of a device to be controlled, A first holding step for holding a control parameter of the movable part according to a control method and a characteristic value of the movable part; A control output step of calculating an output value of the movable part according to the target value using the control parameter and the characteristic value held by the first holding step; A physical calculation step for causing the control target device to execute a physical behavior according to the calculated output value of the movable part; Is an information processing method.
- a third aspect of the technology disclosed in the present specification is a computer program written in a computer-readable format so that a process for a control program including a target value for a movable part of a control target device is executed on a computer.
- said computer A first holding unit for holding a control parameter of the movable unit according to a control method and a characteristic value of the movable unit;
- a control output unit that calculates an output value of the movable unit with respect to the target value using the control parameter and the characteristic value held by the first holding unit;
- a physical calculation unit that causes the control target device to execute a physical behavior according to the calculated output value of the movable unit; It is a computer program that functions as
- the computer program according to the third aspect of the technology disclosed in the present specification defines a computer program written in a computer-readable format so as to realize predetermined processing on the computer.
- a cooperative action is exhibited on the computer, and the same effect as the information processing apparatus according to the first aspect can be obtained. it can.
- a fourth aspect of the technology disclosed in the present specification is an information processing apparatus that performs processing for controlling a control target device having a movable part according to a control program,
- a setting unit configured to set a control parameter of the movable unit according to a control method included in the control program in a controller that drives the movable unit in the control target device;
- An operation control unit that controls driving of the movable part by the controller according to a target value of the movable part specified by the control program; Is an information processing apparatus.
- a fifth aspect of the technology disclosed in the present specification is a program manufacturing method for manufacturing a control program for controlling a control target device having a movable part, A control parameter setting step for setting a control parameter used for causing the controller of the device to be controlled to control the movable part in the control program; A target value setting step for setting a target value to be input to the control program to control the drive of the movable part to the controller of the device to be controlled; This is a program manufacturing method.
- an information processing apparatus and information processing method, a computer program, and a program manufacturing method that are used in or support development of a control program for a control device having a movable part are provided. Can do.
- FIG. 1 is a diagram schematically illustrating an example of a control program development environment.
- FIG. 2 is a diagram illustrating a distributed development environment for a control program via a network.
- FIG. 3 is a diagram illustrating a development environment of a control program for developing a robot.
- FIG. 4 is a diagram illustrating a development environment of a control program for developing an autonomous vehicle.
- FIG. 5 is a diagram illustrating a development environment of a control program for developing an unmanned aerial vehicle (drone).
- FIG. 6 is a diagram illustrating a configuration example of hardware and software architecture mounted on the actual device of the autonomous operation device 100.
- FIG. 7 is a diagram schematically illustrating a configuration example of an application program.
- FIG. 1 is a diagram schematically illustrating an example of a control program development environment.
- FIG. 2 is a diagram illustrating a distributed development environment for a control program via a network.
- FIG. 3 is a diagram illustrating a development environment of a control program for
- FIG. 8 is a flowchart showing a processing procedure when installing the program and data of the application program for controlling the actual machine in the actual machine.
- FIG. 9 is a diagram schematically showing a configuration example of each data file of the action plan and the definition operation.
- FIG. 10 is a flowchart showing the processing procedure of the actual operation of the application program.
- FIG. 11 is a flowchart showing a detailed processing procedure for executing the definition operation.
- FIG. 12 is a diagram schematically illustrating a functional configuration of the development device 1200 for creating the definition operation of the autonomous operation device 100.
- FIG. 13 is a diagram illustrating internal operations of the motor control output unit 1220 and the physical calculation unit 1230.
- FIG. 14 is a diagram showing a control block diagram of an actual motor.
- FIG. 15 is a flowchart showing a processing procedure for executing an application program on a development tool program.
- FIG. 16 is a flowchart showing a processing procedure for realizing the definition operation by the virtual machine and a processing procedure for performing data correction input through the GUI during the processing of the definition operation.
- FIG. 17 is a diagram illustrating how the control parameters are changed during the execution of the definition operation.
- FIG. 18 is a diagram showing a modification of the data format of the definition operation.
- FIG. 1 schematically shows an example of a control program development environment.
- an autonomous operation device (actual machine) 100 to be developed and a development device 200 for creating a control program in the autonomous operation device 100 are arranged.
- the autonomous operation device 100 is a device that controls its own behavior by autonomous or adaptive control, and includes various forms such as a robot, an unmanned aerial vehicle, and an autonomous vehicle.
- the autonomous operation device 100 includes a main body unit 110 that controls the overall operation of the system 100 and a plurality of module units 120-1, 120-2,. Although only three module parts are drawn in FIG. 1 for the sake of simplicity, an autonomous operation apparatus including four or more module parts and an autonomous operation apparatus including only two or less module parts are also assumed.
- One module unit 120 includes an actuator 121, a sensor 124, a processor 122, a memory 123, and a communication modem 125. Although not shown for simplification, it is assumed that the units 121 to 125 in the module unit 120 are interconnected by an internal bus.
- the actuator 121 is, for example, a motor for rotationally driving a joint, a driver for a speaker, or the like.
- the sensor 124 is a sensor that detects an output state of an actuator such as a joint rotation angle or angular velocity, a speaker volume, or a sensor that detects an external force or other external environment.
- the processor 122 controls the operation in the module including the drive control (motor controller) of the actuator 121 and the recognition processing of the detection signal from the sensor 124.
- the memory 123 is used by the processor 122 to store control information of the actuator 121, sensor detection values, and the like.
- the communication modem 125 is hardware for performing mutual communication between the module unit 120 and the main body unit 110 or between the module unit 120 and another module unit, and may be either a wireless modem or a wired modem.
- the processor 122 receives a command signal such as driving of the actuator 121 from the main body 110 via the communication modem 125, and transmits data detected by the sensor 124 to the main body 110.
- the module unit 120 can also communicate with an external device such as the development device 200 via the communication modem 125.
- the main body 110 includes a processor 111, a memory 112, a communication modem 113, a battery 114, a USB (Universal Serial Bus) port 115, and a GPS (Global Positioning System) 116. Although illustration is omitted for simplification, it is assumed that the units 111 to 116 in the main body 110 are interconnected by an internal bus.
- the processor 111 controls the overall operation of the autonomous operation device 100 according to a program stored in the memory 112.
- the battery 114 is a driving power source for the autonomous operation device 100 and supplies power to the main body 110 and each module unit 120.
- the communication modem 113 is hardware for performing mutual communication between the main body unit 120 and each module unit 120, and may be either a wireless modem or a wired modem.
- the processor 111 transmits a command signal such as driving of the actuator 121 to each module unit 120 via the communication modem 113 or receives a recognition result based on a detection value of the sensor 124 in each module unit 120.
- the main body 110 can also communicate with an external device such as the development device 200 via the communication modem 113.
- the USB port 115 is used for connecting an external device to the main body 110 using a USB bus (cable).
- a USB bus (cable)
- the development device 200 is connected to the main body 110 using the USB port 115.
- a control program created on the development device 200 can be installed in the autonomous operation device 100 via the USB port 115.
- USB is an example of an interface standard for connecting an external device to the autonomous operation device 100, and the external device can be configured to be connected according to another interface standard.
- the development apparatus 200 is configured by, for example, a personal computer, and includes a computer main body 210, a display 220 such as a liquid crystal panel, and a user interface (UI) unit 230 including a mouse and a keyboard.
- the computer main unit 210 includes a processor 211, a GPU (Graphic Processing Unit) 212, a memory 213, a USB port 214, and a communication modem 215.
- a configuration example in which the function of the GPU 212 is included in the processor 211 is also conceivable.
- the computer main unit 210 includes hardware components other than those shown in the drawing, and the respective units are interconnected by a bus.
- an operating system (OS) is operating.
- the processor 211 can load a desired application program into the memory 212 and execute the application program under an execution environment provided by the OS.
- a development tool program for creating a control program for the autonomous device 100 is assumed as one of the application programs.
- This development tool program is developed on the memory 213 of the development apparatus 200 together with data necessary for executing the program.
- the development tool / program presents a GUI (Graphical User Interface) for program development on the screen of the display 220.
- GUI Graphic User Interface
- the program developer can input data and programs via the user interface 230 while confirming the contents of the GUI screen.
- the development tool program has a compiler, debugger, simulation, and a function for checking the operation of the control program using 3D graphics / animation related to the created control program. It is possible to instruct execution of these functions.
- the control program created using the development tool program includes a control program executed on the processor 111 of the main body 110 on the actual machine of the autonomous operation device 100, data such as parameters used by the control program,
- the processor 122 of the module unit 120 includes a control program for controlling the driving of the actuator 121 and data such as parameters used by the control program.
- the parameters used by the control program include data such as control parameters such as P (proportional control), I (integral control), and D (differential control) of the motor as an actuator.
- the program part and the data may be collectively referred to as a “control program”.
- control program created using the development tool program is stored in the memory 213. Further, the control program on the memory 213 can be transferred to the autonomous operation device 100 side via the USB port 214. Alternatively, the control program on the memory 213 can be transferred to the module unit 120 in the autonomous operation device 100 via the communication modem 215.
- a control program created by using a development tool / program on the development apparatus 200 can be used to develop a development tool / program or data having a 3D graphics / animation function (hereinafter referred to as “development of the development tool program and data together” It is also possible to verify operations and correct control data and programs using a tool program.
- this type of development tool program has a function of generating 3D graphics animation of actual machine operation of the autonomous operation device 100 according to a control program, and the developer can display 3D graphics animation displayed on the display 220. Can be used to verify the operation of the control program developed by itself and to modify data and programs in parallel.
- the development tool program has a function called a physics engine.
- the physics engine is a computer program having a function of calculating a physical phenomenon based on the laws of physics based on the physical operation of the actual autonomous operation device 100.
- the physical characteristics of the autonomous operation device 100 and a realistic external environment are also provided. Is taken into consideration, and an action similar to that in reality is generated and the result is displayed on the display 220.
- the virtual machine (for 3D graphics / animation) is a virtual autonomous machine 100 that operates in the 3D graphics / animation space using a physical engine instead of the motor of the actual machine. Computer program and data).
- the autonomous operation device 100 is a robot
- the physical engine is modeled after the robot in consideration of characteristics such as each link of the robot arm, the weight and moment of the joint, and the actuator for driving the joint.
- the physical action ground contact with the ground, collision with an obstacle, etc.
- the motion of the entire virtual machine is calculated as if the actuator of the robot is actually driven, and the 3D graphics animation that reproduces the realistic motion of the robot by the virtual machine is displayed on the display 220. indicate.
- the virtual machine is a control program and data configured to operate on a development tool program including a physical engine and 3D graphics / animation, and is stored in the memory 213.
- the control program of the virtual machine is a unit that operates on the processor 122 of each module unit 120 of the real machine 100, and the control program and data are modularized.
- the control program for the virtual machine has a function corresponding to the operation of the processor (for example, the motor controller) 122 of the actual machine. As realized.
- the virtual machine control program is an API (Application Programming Interface) or function that reproduces a physical engine function corresponding to an actuator 121 (for example, a motor) for each module unit 120 of the real machine by 3D graphics animation. Is programmed to be called using. Further, data used for physical calculation in the physical engine (control parameters set for the actuator, link weight, inertia, etc.) are stored in the memory 213 together with the control program. Are read from the memory 213 and used in the control program.
- API Application Programming Interface
- the API or function for issuing an instruction to the program module for realizing the physical engine function is the same as that provided by the basic OS operating on the actual machine, that is, the autonomous operation device 100 side.
- the program created by the development tool program can be directly operated by the OS on the actual machine.
- a program developed using the development tool / program is directly uploaded to the autonomous operation device 100 via the USB port 214 and executed. The operation confirmed by the development tool / program can be realized on the actual machine.
- control program for the autonomous operation device 100 by dividing it into module units by using a development tool program.
- the control program can be uploaded to the autonomous operation device 100 in module units.
- a developer who is in charge of developing hardware and a control program for only the module unit 120-1 connects his development device 200 to the corresponding module unit 120-1 of the autonomous operation device 100 via the communication modem 215.
- the created program and data can be uploaded to the memory 123 in the module unit 120-1.
- the development of the entire autonomous operation device 100 can be promoted in a distributed development environment by sharing the development of hardware and programs in units of modules by a plurality of developers or a plurality of development vendors.
- Fig. 2 illustrates a distributed development environment for control programs via a network.
- development is entrusted to individual developers or development vendors for each module.
- the module referred to in FIG. 2 may refer to a module of control software of the autonomous operation device 100 in addition to the module unit 120 that is a hardware component of the autonomous operation device 100 illustrated in FIG.
- Each program developer entrusted with the development of a control program in units of the main body 110 or the module unit 120 of the autonomous operation device 100 controls the main body 110 or the module unit 120 that he or she is responsible for using the module development computer.
- the development tool program described above is operating.
- Each module development computer is connected to a network.
- Each program developer can control the self-developed control in the shared storage on the cloud server, own storage (that is, main unit developer storage, module developer storage), or the storage provided in the dedicated server.
- a program or the like may be provided.
- a control program or the like may be shared by an administrator, a developer, a customer, or a user who has an account in a storage such as a server.
- a developer who is responsible for or supervises the development of the control program for the entire real machine of the autonomous operation device 100 is provided with control programs for the main unit 110 and each module unit 120 via the network.
- the actual program development computer used by the developers of the entire actual machine can be obtained by direct communication with the shared storage or developer storage on the cloud server, the dedicated server, or the module development computer of each developer.
- Each control program is received.
- the network that receives the provision of the control program may be configured by either wired or wireless.
- the actual program development computer used by the developers of the entire actual machine is equivalent to the development apparatus 200 shown in FIG. 1, performs computation using the physical engine on the development tool program, and uses the 3D graphics animation to perform the actual machine. It has a function that can display the operation of the virtual machine corresponding to. Therefore, the computer for developing a real machine program operates the control program for the main body 110 and all the module parts 120 through the display of the 3D graphics animation of the virtual machine by using the physical engine function provided in the development tool program. Can be confirmed and verified.
- each control program can be corrected in parallel with the execution of the developed control program. Accordingly, the developer of the entire real machine and the developer in charge of each module unit can efficiently jointly develop the control program for the entire real machine. Further, it is possible to provide the control program modified on the actual program development computer again to the developer who is responsible for the module unit to complete the final program product. For example, collaborative development can be facilitated by managing the control program in units of modules, for example, by arranging a storage dedicated to the main unit and each module on a cloud server.
- the control program whose operation is confirmed and verified (that is, completed) on the computer for developing the actual machine program used by the developer of the entire actual machine is directly transferred from the development apparatus 200 to the autonomous operation apparatus 100 of the actual machine via the USB port 214. Can be uploaded. Alternatively, a control program for the entire real machine or each module unit can be uploaded to the real machine via a wired or wireless network.
- control program is uploaded from the dedicated server to the actual machine.
- a control program in which a user of a real machine logs in to a dedicated server using his / her account via a user interface (keyboard, mouse, touch panel, etc.) of his / her user terminal, and further downloads or uploads to the real machine You may select and perform download or upload.
- FIG. 3 illustrates a development environment of a control program when a legged robot is a development target as a specific example of the autonomous operation device 100.
- program development is performed using a single development device 200, but it is also possible to use a distributed development environment via a network as shown in FIG.
- the legged robot 100 has a main body part 110 and a module part 120 corresponding to a head part and left and right leg parts. Although not shown, there is a data bus and a control bus for coupling between the main body 110 and hardware such as each module 120 such as the head and left and right legs.
- the legged robot 100 may further include a module unit (not shown) such as an upper limb.
- a module unit such as an upper limb.
- functions such as a processor and a memory in at least a part of the module unit are integrated with the main unit and controlled by the processor of the main unit.
- the main body 110 includes a processor 111, a memory 112, a wireless or wired communication modem 113, a battery 114, a USB port 115, and a GPS 116.
- the left and right leg module sections 120-2 and 120-3 include a motor 121 for driving joints (or for walking) such as a hip joint, a knee joint, and an ankle as an actuator, and a motor for controlling the driving of the motor as a processor.
- a controller 122 is provided.
- the sensor 124 includes a torque sensor that detects an external force generated on the output side of the motor 121, an encoder that detects a rotation angle on the output side of the motor 121, a ground sensor on the sole.
- the head module unit 120-1 includes a head rotation motor 121 as an actuator and an image sensor 124 that images the surroundings as a sensor.
- a control program for the main body 110 and each module unit 120 of the legged robot 100 is created, and further on the development tool program.
- the operation of the operating physical engine can be used to check and verify the operation through the display of 3D graphics and animation of the virtual machine.
- a control program created using the development apparatus 200 a control program for the entire real machine 100 developed in the development environment (or other development environment) as shown in FIG.
- the data is uploaded to the memory 112 of the main unit 110 or the memory 123 of each module unit 120 by wired or wireless communication via the USB port 115 of the main unit 110 or the communication modem 125 of each module unit 120.
- the uploaded program is appropriately operated when the legged robot 100 is activated.
- FIG. 4 illustrates a development environment of a control program when an autonomous vehicle is a development target as another specific example of the autonomous operation device 100.
- the self-driving vehicle 100 is an automobile (or an unmanned operation vehicle for work or transportation) in which automatic driving technology is introduced.
- an automatic driving mode and a manual driving mode are switched. It includes vehicles that are traveling in the automatic driving mode of possible vehicles.
- a program is developed using a single development device, but it is of course possible to use a distributed development environment via a network as shown in FIG.
- the automatic traveling vehicle 100 normally includes many module units (not shown) in addition to the transmission control module unit 120-2 and the indoor air conditioning control module unit 120-1, but they are omitted for simplification of description.
- the main control unit 110 includes an ECU (Electronic Control Unit) 111 as a processor, a memory 112, a communication modem 113, an ECU interface 115, a GPS 116, and a battery 114.
- the communication modem 113 assumes Wi-Fi (Wireless Fidelity), LTE (Long Term Evolution), short-range wireless communication, and the like.
- the ECU interface 115 is assumed to be an interface to a CAN (Controller Area Network) bus (not shown), and is connected to the development device 200 side using a communication standard such as Ethernet (registered trademark).
- the indoor air conditioning module unit 120-1 includes an air conditioner 121 as an actuator, an air conditioning control ECU 122 as a processor, a memory 123, an indoor temperature sensor 124 as a sensor, and a communication modem 125 such as Bluetooth (registered trademark) communication. ing.
- the air conditioner 121 is controlled by connecting to an information terminal (not shown) such as a smartphone carried by the passenger by Bluetooth (registered trademark) communication.
- the transmission control module unit 120-2 includes a drive wheel motor 121 as an actuator, a transmission control ECU 122 as a processor, a memory 123, a speed / acceleration sensor 124, a steering angle sensor, and the like as sensors.
- the ECU is arranged in the main control unit 110 and each module unit 120.
- the ECU 111 in the main control unit 110 is configured to centrally manage all the module units 120. It is also possible.
- the main control unit 110 As in FIG. 1, using the development tool program operating on the development apparatus 200, the main control unit 110, the indoor air conditioning control module unit 120-1, and the transmission control module unit 120-2 of the above-described autonomous vehicle 100 are used.
- the control program can be created, and further, the operation of the physics engine operating on the development tool program can be used, and the operation can be confirmed and verified through the display of 3D graphics and animation of the virtual machine.
- a control program created using the development apparatus 200 a control program for the entire real machine 100 developed in the development environment (or other development environment) as shown in FIG.
- the data is uploaded to the memory 112 of the main control unit 110 or the memory 123 of each module unit 120 by wired or wireless communication via the ECU interface 115 of the main control unit 110 or the communication modem 125 of each module unit 120.
- the uploaded program is appropriately operated when the automatic traveling vehicle 100 is activated.
- FIG. 5 illustrates a development environment of a control program when an unmanned aerial vehicle (drone) is a development target as another specific example of the autonomous operation device 100.
- program development is performed using a single development device 200, but it is of course possible to use a distributed development environment via a network as shown in FIG.
- the wireless aircraft 100 may incorporate a module unit other than the camera control module unit 120-1 and the propeller control module unit 120-2.
- the main control unit 110 includes a processor 111, a memory 112, a communication modem 113, a USB port 115, a GPS 116, and a battery 114.
- the communication modem 113 is assumed to be a wireless modem such as Wi-Fi, LTE, or short-range wireless communication, and communicates with a remote controller (not shown) operated by a pilot.
- the development device 200 is connected using the USB port 115, and the developed control program is uploaded.
- the camera control module unit 120-1 includes a camera unit (including an image sensor) 124 as a sensor, a camera unit rotation motor 121 as an actuator, a motor controller 122 as a processor, a memory 123, and a communication modem. 125 is provided.
- the camera unit rotation motor 121 can be rotated, for example, in the range of 360 degrees in the horizontal direction, and further can be tilted.
- the communication modem 125 is assumed to be a wireless modem such as Wi-Fi, LTE, or short-range wireless communication, and the camera unit 124 rotates according to commands from a remote controller or a smartphone (not shown) operated by the operator. And do photography.
- the propeller control module 120-2 includes, for example, three propellers (including a rotation motor) 121 as actuators, a processor 122 that controls the rotation motor of the propeller 121, a memory 123, and a propeller rotation detection sensor as a sensor. 124 is provided.
- the control program for the main control unit 110, the camera control module 120-1, and the propeller control module unit 120-2 of the unmanned aerial vehicle 100 using a development tool program operating on the development apparatus 200. Furthermore, the operation of the physics engine that operates on the development tool / program can be used to check and verify the operation through display of 3D graphics / animation of the virtual machine.
- a control program created using the development apparatus 200 a control program for the entire real machine 100 developed in the development environment (or other development environment) as shown in FIG.
- the data is uploaded to the memory 112 of the main control unit 110 or the memory 123 of each module unit 120 by wired or wireless communication via the communication modem of the main control unit 110 or each module unit 120.
- the uploaded program is appropriately operated when the unmanned aircraft 100 is activated.
- FIG. 6 shows a configuration example of hardware and software architecture mounted on the actual machine of the autonomous operation device 100.
- the actual machine has a main unit (or main control unit) and a plurality of hardware modules (HW 1 , HW 2 ,...) Such as a plurality of module units incorporated in a housing. Composed. There may also be an actual machine configured by distributing each hardware module in two or more housings.
- the OS directly controls these hardware modules (HW 1 , HW 2 ,).
- the control program uploaded to the memory 123 in the module unit 120 instead of the OS, directly controls the hardware module (specifically, the processor 122 executes the control program and the actuator 121 is controlled).
- the main system unit 110 controls the entire system 100.
- the main OS operates to control the control program being executed in each module unit 120 directly or indirectly.
- FIG. 6 shows an example in which a plurality of OSs (for example, OS 1 , OS 2 ,...) Operate in addition to the main OS, and each OS provides an execution environment for application programs. 6, for example, when it is desired to drive the hardware modules OS 1 is under the management of the main OS, by the OS 1 to communicate with the main OS First, indirectly controls the desired module section 120 The program can be controlled. Further, communication between the OS 1 and the main OS can be realized using a technique such as RPC (Remote Procedure Call).
- RPC Remote Procedure Call
- FIG. 6 also shows an architecture constructed using a virtualization technology (virtualization). That is, a plurality of different operating systems (for example, OS 1 , OS 2 ,...) Are operated on the virtualized OS. Each application program that has been developed to provide different OS (e.g., the AP 1 that has been developed to provide OS 1, AP 2, which has been developed to provide OS 2), and mix on the same actual 100 It is possible.
- a virtualization technology virtualization
- an application program developed in an autonomous vehicle an application program that requires high reliability, such as drive system control (DSU, etc.), and infotainment related to services for users (audio equipment, air conditioning, etc.)
- DSU drive system control
- infotainment related to services for users audio equipment, air conditioning, etc.
- the application program is broadly divided into two types as shown in Fig. 2), the former AP 1 was developed assuming a more reliable OS1, and the latter AP 2 was developed with more versatility. It is developed assuming OS2 that can be developed by a user.
- the drive system control application program AP 1 and the infotainment application program AP 2 developed on the assumption of different OSs can easily control the corresponding hardware by the intervention of the virtual OS. Therefore, they can be mixed on the same autonomous vehicle.
- An application program developer can develop an application program using an API provided by a system (for example, middleware).
- a system for example, middleware
- API use of functions such as “map display”, “switching to voice dialogue mode”, and “recognition of surrounding people” can be considered.
- an application program developer can develop an application program including a program that instructs the OS using a system call.
- the system call here is an interface for using a function related to system control. Examples of system calls include changing parameters of a processor 122 (for example, a motor controller) in the module unit 120 and setting a network address in the communication modem 125.
- FIG. 7 schematically shows a configuration example of the application program.
- the application program is developed, for example, on the development apparatus 200 in FIG. 1 (that is, using a development tool program).
- Application program contains one or more defined actions and one or more action plans. Both the definition operation and the action plan are control programs for the autonomous operation device 100.
- Defined action consists of a target value instructed to the controller of an actuator represented by a motor etc. in hardware, and is also called “motion”.
- One definition operation may consist of only a target value instructed to the controller at a certain point in time, or may consist of a series of target values instructed to the controller in a time series in a certain section. As will be described later, in the present embodiment, it is assumed that the definition operation is created using a key frame (described later).
- the definition operation is also a program and data for instructing the controller to set basic parameters.
- parameters include P (proportional control), I (integral control), and D (differential control).
- parameters that can be set in the controller (processor) in accordance with the characteristics of the actuator to be controlled such as a motor can be set in the defining operation as basic parameters.
- An action plan consists of a program and data that call up one or more defined action functions.
- the autonomous operation device 100 such as a robot implements one “behavior” by executing one or more definition operations called according to the action plan.
- the action plan is a program and data describing a series of operations of the autonomous operation device 100 by negotiating a definition operation to be activated for each situation. For example, an action plan describing a conditional branch for selecting a definition action in a tree structure format can be given. Since the action plan controls the autonomous operation apparatus 100 according to the recognition result, it can be positioned in an action control program based on environment (situation) recognition. In this sense, the action plan corresponds to a part of AI (artificial intelligence) functions in a broad sense.
- AI artificial intelligence
- Application programs can also include programs and data for using functions of the OS or middleware.
- the application program further defines an API for allowing the application function of the actual device of the autonomous operation device 100 to be used from the outside. Therefore, the development device 200 used for creating the application program, and the external device such as the user terminal and the server can call the API through the communication while the actual device is operating or performing the test operation, thereby functioning the application program. Can be used.
- the application program can include a program and data for changing the program and data of the action plan or the definition operation by learning during actual machine operation.
- the application program is composed of a plurality of components, but all the components may be integrated into a single file, but each component may be configured as a separate file. May be. These files are stored in the shared storage on the cloud server in FIG. 2, their own dedicated storage (that is, main unit developer storage, module developer storage), storage provided in the dedicated server, etc. May be shared by an administrator, developer, customer, or user who has access to the storage.
- the application program can be created by the application program developer using the development tool program on the development apparatus 200.
- the development tool program has functions such as a 3D graphics animation linked with a compiler, a debugger, and a physics engine. An application program developer can instruct execution of these functions on a GUI screen.
- the development tool program has a function called a physics engine.
- the physics engine is a function that reproduces a phenomenon based on a physical law on a computer to reproduce the actual operation of the autonomous operation device 100, and considers the physical characteristics of the autonomous operation device 100 and a realistic external environment.
- the application program developer can verify the operation of the actual machine while viewing the 3D graphics animation, and can appropriately modify the application program.
- the accuracy of the physics engine has improved, and the application program that controls the actual operation of the autonomous operation device 100 is operated on the development tool program having the physics engine and the function of 3D graphics animation. It has become possible to reproduce the actual machine operation more accurately with a virtual machine.
- a physical engine that performs high-performance physical operations plays a role corresponding to the hardware of a real machine (for example, a motor controller), so that the control program can be verified without using the real machine. And development costs are reduced.
- an application program including the control program created in this way is operated on an actual machine, the expected operation can be reproduced on the actual machine.
- PID control is used in motor control.
- the proportional gain KP, the integral gain KI, and the differential gain KD are parameters that determine the characteristics of the control, and are important in determining the operation of the hardware.
- control parameters such as KP, KI, and KD
- the control parameters can be set on the development tool / program.
- the physics engine reads these control parameters, performs calculations, and displays them on the display using 3D graphics animation, so that it is possible to easily confirm the expected operation in the actual machine. .
- the efficiency of developing application programs for actual machines can be greatly improved.
- control program As an example of a real machine, development of an application program for a robot (hereinafter, mainly referred to as “control program”) will be described.
- a definition operation creation method using a key frame has been used on a GUI screen or the like.
- An example of a key frame is a definition operation of “moving the joint from Y degree to Z over X seconds”.
- motor control parameters such as proportional gain KP, integral gain KI, and differential gain KD, and motor hardware characteristics.
- the actual operation of the autonomous operation device 100 (such as a robot) to be controlled is described.
- the following provides a technique that provides a means for developers to easily input and change hardware characteristics and control parameters.
- a control program that takes into account the hardware characteristics and control parameters of the actual machine is developed, and the physical phenomena on the development tool program with the physics engine and 3D graphics animation function are developed. Can be reproduced, and the operation of the actual machine can be grasped more accurately.
- the developer confirms whether the control parameters input / changed in the development environment are useful for realizing the predetermined operation through the physical engine operating on the development tool program and the 3D graphics animation. be able to. Therefore, this specification provides a means to record in the development environment the control parameters that the developer determines to be useful in realizing the predetermined operation so that the control parameters can be selected during actual machine operation. We will further propose the technology to do below. Therefore, the recorded control parameters can be mounted on the actual machine together with the control program developed through the development tool program and used for selecting the operation of the actual machine.
- the motor control of the key frame is combined with the physical calculation provided by the physical engine.
- the implementation method is also proposed below. According to such a method of developing a control program using a physics engine and 3D graphics / animation, it is possible to check a real-world behavior by a definition operation created using a key frame without using an actual machine. . Therefore, in a single development environment, the developer can easily create a definition operation (or a key frame included in the definition operation), and can check the behavior in the real world. .
- the control program (application program) developed in the development environment proposed in this specification can include a set of controller characteristic data for each hardware component such as a motor control parameter (hardware The component corresponds to each module unit 120 in FIG. 1).
- a developer inputs controller characteristic data for each hardware component such as a motor control parameter, or displays a 3D displayed by a control program operating on a development tool / program. You can see and change graphics and animations.
- FIG. 8 shows a processing procedure in the form of a flowchart when installing the program and data of the application program including the control program developed on the development tool program according to the method proposed in this specification in the actual machine.
- an application program including a control program developed by the development device 200 in FIG. 1 is installed in the autonomous operation device (actual machine) 100.
- the development tool / program is equipped with a library that provides the same API as the OS (including middleware) operating on the actual machine, the actual machine includes the same control program as that developed by the development tool / program.
- Application programs can be installed.
- the application program is uploaded from the memory 213 of the development apparatus 200 to the real machine 100 via the USB port 214 or the like (step S801).
- the application program includes a program such as a set of action plans and a set of defined actions (see FIG. 7), and control parameters for the processor 111 for each hardware component (module part) (for example, for motor controller). Data set of PID data).
- step S802 the application program uploaded from the development apparatus 200 is stored in the memory 112 in the main body 110 (step S802). Then, initial values of control parameters for each module unit 120 described in the application program are set in the processor 122 (motor controller, etc.) that controls the actuator 121 (motor, etc.) (step S803), This processing routine ends.
- FIG. 9 schematically shows a configuration example of each data file of the action plan and the definition operation included in the application program.
- the data in the file is described in a natural language format that does not depend on a specific programming language.
- a data file as shown in the figure can be coded by using some kind of programming language.
- the action plan data file 901 is a set of data in which conditional branches for selecting a definition action are described in a tree structure format.
- the data of the action plan 901 including a simple IF statement is shown, but it may be a complicated conditional statement including a nested structure.
- the definition operation data file 902 includes a plurality of definition operation data sets used in the action plan 901 and initial values of control parameters for each hardware component.
- the definition operation data file 902 includes data of definition operations of “walk around”, “lie down”, and “stop”.
- Each definition operation data includes a key frame data set and a control parameter for each hardware component (for example, a PID parameter to be set in the motor controller).
- the key frame includes data of target values set in each module unit 120 (for example, target values such as a rotation position and a rotation angle with respect to the motor as the actuator 121).
- One definition operation consists of a data set of one or a plurality of key frames.
- control parameter specified in the definition operation is a control parameter that should be set in the definition operation.
- an optimal control parameter can be derived based on the calculation result of the physics engine and the display result of the 3D graphics / animation in the development process of the control program such as the definition operation, The program developer can describe the optimal control parameters for each definition operation in the definition operation.
- key frame data and the controller characteristic data of the definition operation “stop” are NULL. NULL may be an initial value.
- FIG. 10 shows a processing procedure when the application program is operated on the autonomous operation device (actual machine) 100 (that is, actual machine operation) in the form of a flowchart.
- actual machine that is, actual machine operation
- FIG. 10 shows a processing procedure when the application program is operated on the autonomous operation device (actual machine) 100 (that is, actual machine operation) in the form of a flowchart.
- an application program consisting of a set of action plans and a set of defined actions as shown in FIG. 9 is uploaded to the memory 112 of the main body 110 of the real machine 100.
- step S1001 When the real machine 100 is powered on (step S1001), the processor 111 reads out the action plan data file from the memory 112 (step S1002).
- the action plan describes a conditional branch for selecting a definition action according to environmental information.
- the processor 111 selects the definition operation according to the action plan according to the environment information recognized based on the detection result of the sensor 123 of each module unit 120. Then, the processor 111 reads data such as a key frame and a control parameter necessary for executing the selected definition operation from the memory 112 (step S1003).
- the processor 111 checks whether or not the control parameter read for executing the definition operation is NULL (step S1004). If the control parameter is not NULL (No in step S1004), the processor 111 sets the read control parameter in the processor 122 of the corresponding module unit 120 (step S1005). If the control parameter is NULL (Yes in step S1004), the setting process (that is, optimization of the control parameter) is unnecessary, and step S1005 is skipped.
- Each module unit 120 can set drive parameters (such as motor control parameters) suitable for the definition operation, and then perform drive control to the target value instructed by the definition operation.
- drive parameters such as motor control parameters
- FIG. 11 shows a detailed processing procedure for executing the definition operation performed in step S1006 in the flowchart shown in FIG. 10 in the form of a flowchart.
- the processor 111 reads the data of the definition operation from the memory 112, and acquires the target value (for example, the rotation angle of the motor) of each module unit 120 specified by the next key frame (step S1101).
- the target value for example, the rotation angle of the motor
- the processor 111 transfers the acquired target value to each module unit 120 and inputs the target value to the processor 122 of each module unit 120 (step S1102).
- the target value of the rotation angle of the motor is input to the motor controller.
- the processor 122 drives the actuator 121 according to the input target value (step S1103).
- the motor controller drives the motor according to the target value of the rotation angle.
- FIG. 12 schematically shows a functional configuration of the development device 1200 proposed in this specification for creating and verifying the definition operation of the autonomous operation device 100 to be controlled.
- the autonomous operation apparatus 100 is assumed to be a real machine including a movable part that is driven by a motor such as a joint, such as a robot.
- the development device 1200 corresponds to, for example, the development device 200 that executes the development tool program in FIG. 1, and each functional block shown in FIG. 12 is implemented as, for example, a software module included in the development tool program. .
- the illustrated development apparatus 1200 includes a motion editing unit 1210 that edits a definition operation of a control target in the form of a key frame by a developer, and control by a motor controller according to an input or set control parameter based on the input or set control parameter.
- a motor control output unit 1220 that calculates an output and a physical calculation unit 1230 that performs a physical calculation through a program execution call API of a physical engine that calculates a physical behavior when the motor is driven are provided.
- the motion editing unit 1210 creates a key frame to be controlled.
- the motion editing unit 1210 presents a GUI for designating a target value such as a joint angle of each movable unit to be controlled such as a robot to the developer, and creates a key frame through an instruction via the GUI by the developer.
- a predetermined memory not shown
- the data is stored in a predetermined format (for example, “key frame data” in the definition operation shown in FIG. 18 (described later)).
- a key frame is a set of data that specifies a target value such as the position and speed of a movable part at the start and end of an operation in a certain section.
- a GUI for inputting a target value of each movable part for each key frame may be used.
- a method for creating a key frame using IK (Inverse Kinematics) calculation by specifying a position and posture in a specific part such as the head and left and right limbs using a 3D model to be controlled. You may apply.
- IK Inverse Kinematics
- the motion editing unit 1210 receives input of control parameters and motor hardware characteristic values of the motor that drives each movable unit to be controlled via the GUI, and stores the predetermined values in a predetermined memory (not shown).
- a predetermined memory for example, a format such as “control parameter data set 1” in the definition operation shown in FIG. 18 (described later)).
- the motion editing unit 1210 also accepts input of 3D model data describing the hardware characteristic values of the real machine to be controlled, and holds the data on a predetermined memory (not shown).
- the GUI screen configuration for inputting the motor control parameters and the motor hardware characteristic values is arbitrary.
- the motor control output unit 1220 reads a key frame including a target value such as a joint angle in each movable unit to be controlled, a motor control parameter, a hardware characteristic value of the motor, and the like from a predetermined memory (described above) and moves each movable unit. The force or torque output by the motor driving the unit is calculated. Next, the physical calculation unit 1230 calculates a current value such as a joint angle of each movable unit based on the motor force or torque obtained by the physical calculation.
- the current posture of the controlled object can be drawn by 3D graphics and displayed on the display. For example, display the animation of the behavior of the controlled object when it is driven based on the definition operation edited in the key frame format by calculating the current posture of the controlled object at a predetermined frame rate and performing drawing processing Can do. Therefore, the developer can confirm the definition operation edited by himself / herself by watching the animation.
- the motor control output unit 1220 is input or set in advance with characteristic values of the motor itself that drives each movable unit and control parameters according to the motor control method. (For example, input is performed by the motion editing unit 1210).
- characteristic values on hardware of an actual machine to be controlled by the definition operation are input or set in advance. Further, the calculation by the motor control output unit 1220 is performed together with the calculation by the physical calculation unit 1230.
- the motor control output unit 1220 and the physical calculation unit 1230 are configured as software modules in a single application program (the software module does not include software modules provided in development tool programs such as a physical engine, API calls functions such as physics engine). “It is configured as each software module in a single application program” means that the motor control output unit 1220 has a key frame and a hardware characteristic value according to the operation of one application program on the development tool program. It means that the physical operation unit 1230 performs an operation called by the API using the motor control output calculated based on the control parameter. Also, the characteristic value of the motor itself, the motor control parameter, and the hardware characteristic value of the actual machine to be controlled can be set using the GUI within the same development tool / program.
- control parameters corresponding to the motor control method are, for example, a proportional gain KP, an integral gain KI, and a differential gain KD.
- control parameters other than PID are used depending on the motor control method employed in the actual machine.
- the motor hardware characteristic values include, for example, motor manufacturer name, model number, mounting angle dimensions, type, shaft type, presence or absence of electromagnetic brake, driver type, rated output, rated rotational speed, maximum rotational speed, maximum Input rotation speed, rated torque, instantaneous maximum torque, excitation maximum static torque, speed range, rotor inertia moment, inertia moment, resolution (motor shaft) (P / R), detector (encoder), backlash, reduction ratio, Power input voltage, power input frequency, power input rated voltage, speed / position control command, maximum input pulse frequency, motor part mass, etc.
- control parameters and characteristic values of these motors can be taken into the tool (development apparatus 1200) in the form of a setting file or the like.
- a developer may be provided with a GUI for setting or changing the control parameters of the motor in the editing process of the definition operation.
- the hardware characteristic values of the actual machine are, for example, the weight, center of gravity, inertia, joint movable range, friction coefficient, etc. of each part such as each arm and joint motor. .
- These real machine (motor, etc.) hardware characteristic values may be imported into the tool (development apparatus 1200) in the form of a predetermined file describing data together with a 3D model of a virtual machine that imitates the real machine. Good. Further, modeling of 3D model (data creation) may be performed using a predetermined GUI provided on the development tool program, and characteristic values on hardware may be input or edited. Further, the 3D model and the hardware characteristic value may be managed separately. For example, in the shared storage on the cloud server shown in FIG.
- ID identification information
- the hardware characteristic value and 3D model of the actual machine provided in a predetermined format are stored in the file. It can be managed as information that can be shared on the database. In another embodiment, the hardware characteristic value and the 3D model may be stored and managed in separate files. In addition, each developer manufacturer or information provider for commercial transactions can use these sharable information (that is, 3D models, hardware characteristic values, etc. on development tools / programs) in their own commercial database.
- Information managed as electronic files such as manufacturer name, model number, hardware type (motor type (stepping motor, DC motor, ultrasonic motor, etc.)) and sensor type (CMOS image sensor, CCD image sensors, ranging image sensors, InGaAs image sensors, photodiode arrays with amplifiers, X-ray image sensors, etc.) for information acquisition and purchasers such as users and developers To be viewed as an online transaction target. It can also be adapted to.
- FIG. 13 shows the internal operations of the motor control output unit 1220 and the physical calculation unit 1230 in detail.
- the motor control output unit 1220 inputs a motor target value (joint angle) to the physical calculation unit 1230 as key frame data edited by the motion editing unit 1210.
- the motor control output unit 1220 is configured to receive the current value of the motor changed as a calculation result from the physical calculation unit 1230 and obtain a deviation between the target value and the current value. Then, the motor control output unit 1220 adds the P control input, the I control input, and the D control input based on each of the proportional gain KP, the integral gain KI, and the differential gain KD to obtain a control input value to the motor.
- the force or torque is calculated as the motor output value for this control input value.
- the logic can be changed to a logic other than the PID calculation according to the motor control method employed in the actual machine.
- the motor control output unit 1220 performs processing such as correction on the output value if there is a significant mechanical or electrical hardware characteristic value (described above) of the motor.
- the physical calculation unit 1230 takes into account the hardware characteristic values such as the weight, center of gravity, inertia, joint movable range, and friction coefficient of each component such as an arm and a joint motor, and the output value calculated by the motor control output unit 1220 Based on (force or torque), the physical engine is instructed through the API to perform a calculation corresponding to the physical behavior of the actual machine when the motor is driven. For the physical operation, a library incorporated in the development tool / program may be used, or an external library available through the Internet may be incorporated. Further, the current value of the motor calculated by the physical calculation unit 1230 is fed back to the motor control output unit 1220.
- the hardware characteristic values such as the weight, center of gravity, inertia, joint movable range, and friction coefficient of each component such as an arm and a joint motor
- the current posture of the control target can be drawn and displayed on the display. For example, it is possible to display a 3D graphics animation of the behavior of the controlled object when it is driven based on the edited definition operation by calculating the current posture of the controlled object at a predetermined frame rate and performing drawing processing. it can.
- Developers can check the 3D graphics animation of the virtual machine reproduced by executing the application program on the development tool program, and confirm the definition operation edited by himself. For example, when the behavior of the control target is different from the image that the developer has drawn when editing the definition operation, or when the control target falls or collides with an obstacle, the motion editing unit 1210 By changing the key frame, it is possible to create a definition operation that makes the controlled object behave as it is imaged, or avoids a fall or collision.
- the developer changes, reproduces, and confirms the behavior of the controlled object in real time by dynamically updating the target value of the motor while observing the animation of the controlled object obtained as a result of performing the physical calculation. be able to.
- the developer when the developer corrects the key frame according to the physical calculation result, the developer not only corrects the target value of the motor but also sets the control parameter values of the motor such as the proportional gain KP, the integral gain KI, and the differential gain KD. It is also possible to set appropriate control parameters. As already described with reference to FIG. 9, a control parameter can be designated for each defining operation. Further, when the definition operation is defined by a plurality of key frames, the developer may be able to specify an appropriate control parameter for each key frame (described later).
- the optimal control parameter value of the motor when executing the definition operation can be incorporated into the definition operation and taken out.
- the initial value of the control parameter and the control parameter for each definition operation are described in the definition operation data file.
- the control parameter may be taken out as another file (attribute file or the like) linked to the definition operation data.
- the initial value of the control parameter when executing the action plan is the module unit 120.
- the control parameter specified by the definition operation is set in each module unit 120. Is done. Therefore, on the actual machine 100, the motor controller 122 controls the motor 121 according to the target value specified by the definition operation using the control parameter whose operation is confirmed in combination with the definition operation in the development tool program. Therefore, the expected behavior similar to the result of checking the operation with the physical development tool / program can be reproduced on the actual machine.
- FIG. 14 shows an actual motor control block diagram as a comparison with the processing in the motor control output unit 1220 and the physical calculation unit 1230 shown in FIGS. 12 and 13.
- the motor controller inputs the target value (joint angle) of the motor specified by the key frame, and inputs the current value of the motor measured by the encoder installed on the output shaft side of the motor, for example. Find the deviation of the current value. Then, the motor controller adds the P control, the I control, and the D control based on each of the proportional gain KP, the integral gain KI, and the differential gain KD, and calculates a voltage value or a current value that becomes a control input to the motor. .
- the motor When the motor is driven by being supplied with the voltage value or current value calculated by the motor controller, the motor outputs a force or torque according to the mechanical and electrical characteristics of the motor itself. In the real world, the interaction between the motor output and the surrounding environment occurs, and the current value of the motor is measured by a sensor such as an encoder.
- FIG. 15 shows a processing procedure for executing the developed application program on the development tool program including the physical engine and the 3D graphics / animation function in the development apparatus 200 in the form of a flowchart.
- the behavior of the virtual machine by the developed application program is reproduced by software modules such as the motor control output unit 1220 and the physical calculation unit 1230 shown in FIG.
- the application program includes an action plan data file and a definition operation data file as shown in FIG. 9, but is already stored in the memory 213 of the development apparatus 200.
- the development device 200 uses a virtual machine that operates in a 3D graphics space using a physical engine instead of the actual motor 121 of the autonomous operation device 100.
- the virtual machine consists of a computer program and data including data for 3D graphics animation (described above).
- the virtual machine is a software component corresponding to each module unit 120 of the real machine (autonomous operation apparatus 100) (when downloaded to the real machine, a processor of each hardware component (when processed by one processor in the real machine) Is equivalent to a control program that operates on the one processor) or a part thereof) in the application program.
- the processor 211 reads an initial value of a control parameter for each hardware component specified in the definition operation data file from the memory 213, and controls a motor controller (software) that controls driving of each motor constituting the virtual machine. Set to the memory area in the component) (step S1501).
- the processor 211 reads the action plan data file from the memory 213.
- the action plan describes a conditional branch for selecting a definition action according to environmental information.
- the processor 211 selects the definition operation according to the action plan according to the assumed virtual environment or the like.
- the processor 211 reads out data such as key frames and control parameters necessary for executing the selected definition operation from the memory 213 (step S1503).
- the processor 211 checks whether or not the control parameter read for executing the definition operation is NULL (step S1504). If the control parameter is not NULL (No in step S1504), the processor 211 sets the read control parameter in the controller of the corresponding software component (step S1505). If the control parameter is NULL (Yes in step S1504), the setting process (that is, optimization of the control parameter) is unnecessary, and step S1505 is skipped.
- a definition operation by a virtual machine is performed (step S1506).
- Each software component can set the control parameters (motor control parameters, etc.) designated by the definition operation and then perform drive control to the target value instructed by the definition operation.
- FIG. 16 illustrates a definition operation by a virtual machine using a development tool program having a physics engine and a 3D graphics / animation function implemented in step S1506 in the flowchart shown in FIG. A detailed processing procedure is shown in the form of a flowchart.
- the developer sets the target value of the actuator (motor, etc.) of each module part, and the control parameter (PID parameter, etc.) set in the processor (motor controller, etc.) that controls the driving of the actuator. It is assumed that a GUI for inputting corrections at any time is presented.
- target values and control parameters input via such a GUI are appropriately rewritten on the memory 213, and application programs operating on the development tool program are corrected through an API provided by the development tool program.
- the latest latest target value and control parameter later can be read out from a predetermined memory (described above), and the definition operation process is executed using the updated data.
- the processor 211 reads the data of the definition operation from the memory 213, and acquires the target value (for example, the rotation angle of the motor) of each software component specified by the next key frame (step S1601).
- the target value for example, the rotation angle of the motor
- the processor 211 reads out the control parameters designated for each software component from the memory 213 (step S1602).
- the processor 211 obtains a deviation between the target value and the current value of the motor in each software component as a process corresponding to the motor control output unit 1220 described above, such as a proportional gain KP, an integral gain KI, and a differential gain KD.
- a proportional gain KP a proportional gain KP
- an integral gain KI a proportional gain KD
- a differential gain KD a proportional gain KP, an integral gain KI, and a differential gain KD.
- the motor hardware characteristic values are also taken into account when calculating the motor control output.
- the motor hardware characteristic values are, for example, motor manufacturer name, model number, mounting angle dimensions, type, shaft type, presence / absence of electromagnetic brake, driver type, rated output, rated rotational speed, maximum rotational speed, maximum input rotational speed , Rated torque, instantaneous maximum torque, excitation maximum static torque, speed range, rotor inertia moment, inertia moment, resolution (motor shaft) (P / R), detector (encoder), backlash, reduction ratio, power input voltage , Power input frequency, power input rated voltage, speed / position control command, maximum input pulse frequency, or motor unit mass.
- the processor 211 inputs the output value of the motor from the motor control output unit 1220 as the processing of the physical calculation unit 1230 described above, the weight, the center of gravity, the inertia, the joint movable range, the friction of each component such as the arm and the joint motor, and the like.
- the physical behavior of the actual machine is calculated by causing the physical engine to perform calculation in consideration of the characteristic value of the actual machine such as the coefficient (step S1604).
- step S1604 a library incorporated in the development tool / program may be used, or an external library available through the Internet may be incorporated. Further, the current value of the motor calculated by the physical calculation unit 1230 is fed back to the motor control output unit 1220.
- step S1605 based on the current value of each movable part calculated by the physics computing unit 1230, the current orientation of the control target is drawn, and 3D graphics / animation of the actual machine is displayed and output on the display (step S1605).
- Drawing of the calculation result by the physics engine may be performed every key frame, but may be performed at intervals of several key frames. Developers can check the 3D graphics / animation of the virtual machine that is reproduced by the calculation of the physics engine, and check whether or not the definition operation edited by him / her is expected.
- the target values of the actuators (motors, etc.) of each software module and the control parameters (PID parameters, etc.) set in the processors (motors, controllers, etc.) that control the actuator drive are corrected as needed.
- a GUI for input is presented (described above). The developer can appropriately modify the target value and control parameter input via such a GUI.
- the rewritten contents of the motor control parameters and target values are reflected in real time on the processing of the application program operating on the development tool program.
- the developer confirms the processing result of the virtual machine by the application program that operates on the development tool program, and when editing of the definition operation that is satisfied is completed, the developer issues an instruction to stop the application program (Yes in step S1606).
- the application program including the motor control output unit 1220 and the physical calculation unit 1230 is stopped, and the present process ends.
- the control parameter value of the actuator such as a motor is incorporated into the data file of the definition operation and is taken out.
- the control parameters of the actuator may be taken out as another file linked to the definition operation data file.
- FIG. 16 also shows a flowchart of a processing procedure for inputting and outputting control parameters and target values of the definition operation to the development tool program through the GUI during the definition operation processing. Yes.
- step S1611 If a control parameter correction input is performed via the GUI while the definition operation process is being executed (Yes in step S1611), the corrected input control parameter is written to a corresponding address on the memory 213 (step S1612).
- Step S1614 when the definition operation target value correction input is performed via the GUI during the definition operation processing (Yes in step S1613), the corrected control parameter is written to the corresponding address in the memory 213. (Step S1614).
- the data file for the definition operation shown in FIG. 9 has a data format that specifies only one set of control parameters for each definition operation. Further, in the actual machine operation process of the application program shown in FIG. 10, when the definition operation is selected according to the action plan, the process procedure is to set the control parameter in each module unit only once. In other words, only one set of control parameters is specified in one definition operation, and it is not assumed that the control parameters are changed midway.
- the control parameter may be changed during the execution of the definition operation.
- a data format in which a control parameter can be designated for each key frame may be used.
- the actual machine executes such a defining operation, it is possible to realize an operation in which the joint shifts from a soft movement to a hard movement according to the elapsed time.
- FIG. 18 shows a data format example 1800 of a definition operation in which a control parameter can be specified for each key frame.
- Each key frame includes a data set for specifying a joint target value and a data set for specifying a control parameter.
- the timing for setting the control parameter for each hardware component may be individually specified.
- the time for setting the control parameter of the motor 1 is designated as T1
- the time for setting the control parameter of the motor 2 is designated as T2.
- the definition operation “lie down” if the initial value of the control parameter is to be set in the controller of the actual machine, NULL may be specified as the control parameter.
- the initial values of the control parameters are described at the beginning of the definition operation data file 1800.
- a control program (application program) using a development tool program having a physics engine capable of reproducing a physical phenomenon close to a real environment and a function of 3D graphics animation.
- the motor controller can control the motor according to the control program using the control parameters whose operation has been confirmed in combination with the control program on the development tool program. The expected behavior similar to the result above can be reproduced on a real machine.
- a development environment that can input both target values such as the angle of each movable part created using a key frame and hardware characteristics such as motor control parameters is provided.
- target values such as the angle of each movable part created using a key frame
- hardware characteristics such as motor control parameters
- a simple control program such as a definition operation is created in a single development environment while correcting control parameters in real time.
- the technology disclosed in this specification may be used for evaluating and verifying the operation of application programs that realize autonomous or adaptive behavior of autonomous operation devices such as robots, autonomous vehicles, and unmanned aerial vehicles (drones). it can.
- the technology disclosed in the present specification can also be applied to AI development of a video game character that controls actions using an action plan.
- An information processing apparatus that processes a control program including a target value for a movable part of a device to be controlled, A first holding unit that holds a control parameter of the movable unit according to a control method and a characteristic value of the movable unit; A control output unit that calculates an output value of the movable unit according to the target value using the control parameter and the characteristic value held by the first holding unit; A physical calculation unit that causes the control target device to execute a physical behavior according to the calculated output value of the movable unit; An information processing apparatus comprising: (2) The control output unit calculates a control input value according to a deviation between the target value and a current value of the movable unit using the control parameter held by the first holding unit, and the control input Calculating an output value of the movable part according to the characteristic value held by the first holding part with respect to a value; The information processing apparatus according to (1) above.
- the first holding unit holds at least one control parameter of proportional gain, integral gain, or differential gain according to a control method of the movable unit.
- the information processing apparatus according to any one of (1) or (2) above.
- the first holding part is the manufacturer name, model number, mounting angle dimension, type, shaft type, presence / absence of electromagnetic brake, driver type, rated output, rated rotational speed, maximum speed of the motor that drives the movable part.
- the information processing apparatus according to any one of (1) to (3) above. (5) further comprising a second holding unit that holds a characteristic value of the device to be controlled;
- the physical calculation unit causes the control target device to execute a physical behavior using the characteristic value held by the second holding unit.
- the information processing apparatus according to any one of (1) to (4).
- the second holding unit holds at least one of the weight, the center of gravity, the inertia, the joint movable range, and the friction coefficient of each component constituting the control target device.
- the information processing apparatus according to (5) above.
- the information processing apparatus according to any one of (1) to (6) above.
- the first acquisition unit acquires the control parameter of the movable unit or the characteristic value of the movable unit from the setting file of the control program.
- the information processing apparatus according to (7) above. (9) The first acquisition unit acquires a control parameter of the movable unit according to a user input operation.
- the information processing apparatus further includes a second acquisition unit that acquires a characteristic value of the control target device held in the second holding unit.
- the information processing apparatus according to any one of (5) to (9) above.
- the second acquisition unit acquires a characteristic value of the control target device from a file describing a three-dimensional model of the control target device.
- the information processing apparatus according to (10) above.
- the information processing apparatus according to any one of (1) to (11) above.
- the information processing apparatus according to any one of (1) to (12) above.
- the output unit outputs the control program in which at least a part of information held in the first holding unit is incorporated.
- the output unit outputs at least a part of information held in the first holding unit in a separate file from the control program.
- An information processing method comprising: (17) A computer program described in a computer-readable format so that a process for a control program including a target value for a movable part of a control target device is executed on a computer, the computer comprising: A first holding unit for holding a control parameter of the movable unit according to a control method and a characteristic value of the movable unit; A control output unit that calculates an output value of the movable unit with respect to the target value using the control parameter and the characteristic
- An information processing apparatus that performs processing for controlling a control target device having a movable part according to a control program, A setting unit configured to set a control parameter of the movable unit according to a control method included in the control program in a controller that drives the movable unit in the control target device; An operation control unit that controls driving of the movable part by the controller according to a target value of the movable part specified by the control program;
- An information processing apparatus comprising: (19) A program manufacturing method for manufacturing a control program for controlling a control target device having a movable part, A control parameter setting step for setting a control parameter used for causing the controller of the device to be controlled to control the movable part in the control program; A target value setting step for setting a target value to be input to the control program to control the drive of the movable part to the controller of the device to be controlled; A method for manufacturing a program.
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Automation & Control Theory (AREA)
- Stored Programmes (AREA)
- Manipulator (AREA)
- Programmable Controllers (AREA)
Abstract
Description
制御方式に応じた前記可動部の制御パラメータと前記可動部の特性値を保持する第1の保持部と、
前記第1の保持部が保持する前記制御パラメータ及び特性値を用いて、前記目標値に応じて前記可動部の出力値を計算する制御出力部と、
算出された前記可動部の出力値に応じて前記制御対象装置に物理挙動を実行させる物理演算部と、
を具備する情報処理装置である。
制御方式に応じた前記可動部の制御パラメータと前記可動部の特性値を保持する第1の保持ステップと、
前記第1の保持ステップにより保持される前記制御パラメータ及び特性値を用いて、前記目標値に応じて前記可動部の出力値を計算する制御出力ステップと、
算出された前記可動部の出力値に応じた前記制御対象装置に物理挙動を実行させる物理演算ステップと、
を有する情報処理方法である。
制御方式に応じた前記可動部の制御パラメータと前記可動部の特性値を保持する第1の保持部、
前記第1の保持部が保持する前記制御パラメータ及び特性値を用いて、前記目標値に対する前記可動部の出力値を計算する制御出力部、
算出された前記可動部の出力値に応じた前記制御対象装置に物理挙動を実行させる物理演算部、
として機能させるコンピュータ・プログラムである。
前記制御プログラムに含まれる、制御方式に応じた前記可動部の制御パラメータを、前記制御対象装置内の前記可動部を駆動するコントローラに設定する設定部と、
前記制御プログラムで指定される前記可動部の目標値に従って、前記コントローラによる前記可動部の駆動を制御する動作制御部と、
を具備する情報処理装置である。
前記制御プログラムに、前記制御対象装置のコントローラに前記可動部を制御させるために用いる制御パラメータを設定する制御パラメータ設定ステップと、
前記制御プログラムに、前記制御対象装置のコントローラに前記可動部の駆動を制御するために入力する目標値を設定する目標値設定ステップと、
を有するプログラム製造方法である。
(1)制御対象装置の可動部に対する目標値を含む制御プログラムを処理する情報処理装置であって、
制御方式に応じた前記可動部の制御パラメータと前記可動部の特性値を保持する第1の保持部と、
前記第1の保持部が保持する前記制御パラメータ及び特性値を用いて、前記目標値に応じて前記可動部の出力値を計算する制御出力部と、
算出された前記可動部の出力値に応じて前記制御対象装置に物理挙動を実行させる物理演算部と、
を具備する情報処理装置。
(2)前記制御出力部は、前記第1の保持部が保持する前記制御パラメータを用いて前記目標値と前記可動部の現在値の偏差に応じた制御入力値を計算するとともに、前記制御入力値に対する前記第1の保持部が保持する前記特性値に応じた前記可動部の出力値を計算する、
上記(1)に記載の情報処理装置。
(3)前記第1の保持部は、前記可動部の制御方式に応じて、比例ゲイン、積分ゲイン、又は微分ゲインのうち少なくとも1つの制御パラメータを保持する、
上記(1)又は(2)のいずれかに記載の情報処理装置。
(4)前記第1の保持部は、前記可動部を駆動するモータのメーカー名、型番、取付角寸法、タイプ、軸タイプ、電磁ブレーキの有無、ドライバ・タイプ、定格出力、定格回転速度、最高回転速度、最大入力回転速度、定格トルク、瞬時最大トルク、励磁最大静止トルク、速度範囲、回転子慣性モーメント、慣性モーメント、分解能(モータ軸)(P/R)、検出器(エンコーダ)、バックラッシュ、減速比、電源入力電圧、電源入力周波数、電源入力定格電圧、速度・位置制御指令、最大入力パルス周波数、又はモータ部質量のうち少なくとも1つの特性値を保持する、
上記(1)乃至(3)のいずれかに記載の情報処理装置。
(5)前記制御対象装置の特性値を保持する第2の保持部をさらに備え、
前記物理演算部は、前記第2の保持部が保持する前記特性値を用いて、前記制御対象装置に物理挙動を実行させる、
上記(1)乃至(4)のいずれかに記載の情報処理装置。
(6)前記第2の保持部は、前記制御対象装置を構成する各部品の重量、重心、イナーシャ、関節可動範囲、摩擦係数のうち少なくとも1つを保持する、
上記(5)に記載の情報処理装置。
(7)前記第1の保持部に保持する前記可動部の制御パラメータ又は前記可動部の特性値を取得する第1の取得部をさらに備える、
上記(1)乃至(6)のいずれかに記載の情報処理装置。
(8)前記第1の取得部は、前記制御プログラムの設定ファイルから前記可動部の制御パラメータ又は前記可動部の特性値を取得する、
上記(7)に記載の情報処理装置。
(9)前記第1の取得部は、ユーザの入力操作に応じて前記可動部の制御パラメータを取得する、
上記(7)又は(8)のいずれかに記載の情報処理装置。
(10)前記第2の保持部に保持する前記制御対象装置の特性値を取得する第2の取得部をさらに備える、
上記(5)乃至(9)のいずれかに記載の情報処理装置。
(11)前記第2の取得部は、前記制御対象装置の3次元モデルを記述したファイルから前記制御対象装置の特性値を取得する、
上記(10)に記載の情報処理装置。
(12)ユーザの入力操作に応じて前記制御プログラムを修正又は変更する編集部をさらに備える、
上記(1)乃至(11)のいずれかに記載の情報処理装置。
(13)前記物理演算部による物理挙動の計算を経た前記制御プログラムを出力する出力部をさらに備える、
上記(1)乃至(12)のいずれかに記載の情報処理装置。
(14)前記出力部は、前記第1の保持部に保持されている少なくとも一部の情報を組み込んだ前記制御プログラムを出力する、
上記(13)に記載の情報処理装置。
(15)前記出力部は、前記制御プログラムとは別ファイルで前記第1の保持部に保持されている少なくとも一部の情報を出力する、
上記(13)に記載の情報処理装置。
(16)制御対象装置の可動部に対する目標値を含む制御プログラムを処理する情報処理方法であって、
制御方式に応じた前記可動部の制御パラメータと前記可動部の特性値を保持する第1の保持ステップと、
前記第1の保持ステップにより保持される前記制御パラメータ及び特性値を用いて、前記目標値に応じて前記可動部の出力値を計算する制御出力ステップと、
算出された前記可動部の出力値に応じた前記制御対象装置に物理挙動を実行させる物理演算ステップと、
を有する情報処理方法。
(17)制御対象装置の可動部に対する目標値を含む制御プログラムに対する処理をコンピュータ上で実行するようにコンピュータ可読形式で記述されたコンピュータ・プログラムであって、前記コンピュータを、
制御方式に応じた前記可動部の制御パラメータと前記可動部の特性値を保持する第1の保持部、
前記第1の保持部が保持する前記制御パラメータ及び特性値を用いて、前記目標値に対する前記可動部の出力値を計算する制御出力部、
算出された前記可動部の出力値に応じた前記制御対象装置に物理挙動を実行させる物理演算部、
として機能させるコンピュータ・プログラム。
(18)可動部を有する制御対象装置を制御プログラムに従って制御するための処理を実施する情報処理装置であって、
前記制御プログラムに含まれる、制御方式に応じた前記可動部の制御パラメータを、前記制御対象装置内の前記可動部を駆動するコントローラに設定する設定部と、
前記制御プログラムで指定される前記可動部の目標値に従って、前記コントローラによる前記可動部の駆動を制御する動作制御部と、
を具備する情報処理装置。
(19)可動部を有する制御対象装置を制御するための制御プログラムを製造するプログラム製造方法であって、
前記制御プログラムに、前記制御対象装置のコントローラに前記可動部を制御させるために用いる制御パラメータを設定する制御パラメータ設定ステップと、
前記制御プログラムに、前記制御対象装置のコントローラに前記可動部の駆動を制御するために入力する目標値を設定する目標値設定ステップと、
を有するプログラム製造方法。
110…本体部
111…プロセッサ、112…メモリ、113…通信モデム
114…バッテリー、115…USBポート、116…GPS
120…モジュール部
121…アクチュエータ、122…プロセッサ
123…メモリ、124…センサ、125…通信モデム
200…開発装置、210…コンピュータ本体部
211…プロセッサ、212…GPU
213…メモリ、214…USBポート、215…通信モデム
220…ディスプレイ、230…ユーザ・インターフェース
1200…開発装置、1210…モーション編集部
1220…モータ制御出力部、1230…物理演算部
Claims (19)
- 制御対象装置の可動部に対する目標値を含む制御プログラムを処理する情報処理装置であって、
制御方式に応じた前記可動部の制御パラメータと前記可動部の特性値を保持する第1の保持部と、
前記第1の保持部が保持する前記制御パラメータ及び特性値を用いて、前記目標値に応じて前記可動部の出力値を計算する制御出力部と、
算出された前記可動部の出力値に応じて前記制御対象装置に物理挙動を実行させる物理演算部と、
を具備する情報処理装置。 - 前記制御出力部は、前記第1の保持部が保持する前記制御パラメータを用いて前記目標値と前記可動部の現在値の偏差に応じた制御入力値を計算するとともに、前記制御入力値に対する前記第1の保持部が保持する前記特性値に応じた前記可動部の出力値を計算する、
請求項1に記載の情報処理装置。 - 前記第1の保持部は、前記可動部の制御方式に応じて、比例ゲイン、積分ゲイン、又は微分ゲインのうち少なくとも1つの制御パラメータを保持する、
請求項1に記載の情報処理装置。 - 前記第1の保持部は、前記可動部を駆動するモータのメーカー名、型番、取付角寸法、タイプ、軸タイプ、電磁ブレーキの有無、ドライバ・タイプ、定格出力、定格回転速度、最高回転速度、最大入力回転速度、定格トルク、瞬時最大トルク、励磁最大静止トルク、速度範囲、回転子慣性モーメント、慣性モーメント、分解能(モータ軸)(P/R)、検出器(エンコーダ)、バックラッシュ、減速比、電源入力電圧、電源入力周波数、電源入力定格電圧、速度・位置制御指令、最大入力パルス周波数、又はモータ部質量のうち少なくとも1つの特性値を保持する、
請求項1に記載の情報処理装置。 - 前記制御対象装置の特性値を保持する第2の保持部をさらに備え、
前記物理演算部は、前記第2の保持部が保持する前記特性値を用いて、前記制御対象装置に物理挙動を実行させる、
請求項1に記載の情報処理装置。 - 前記第2の保持部は、前記制御対象装置を構成する各部品の重量、重心、イナーシャ、関節可動範囲、摩擦係数のうち少なくとも1つを保持する、
請求項5に記載の情報処理装置。 - 前記第1の保持部に保持する前記可動部の制御パラメータ又は前記可動部の特性値を取得する第1の取得部をさらに備える、
請求項1に記載の情報処理装置。 - 前記第1の取得部は、前記制御プログラムの設定ファイルから前記可動部の制御パラメータ又は前記可動部の特性値を取得する、
請求項7に記載の情報処理装置。 - 前記第1の取得部は、ユーザの入力操作に応じて前記可動部の制御パラメータを取得する、
請求項7に記載の情報処理装置。 - 前記第2の保持部に保持する前記制御対象装置の特性値を取得する第2の取得部をさらに備える、
請求項5に記載の情報処理装置。 - 前記第2の取得部は、前記制御対象装置の3次元モデルを記述したファイルから前記制御対象装置の特性値を取得する、
請求項10に記載の情報処理装置。 - ユーザの入力操作に応じて前記制御プログラムを修正又は変更する編集部をさらに備える、
請求項1に記載の情報処理装置。 - 前記物理演算部による物理挙動の計算を経た前記制御プログラムを出力する出力部をさらに備える、
請求項1に記載の情報処理装置。 - 前記出力部は、前記第1の保持部に保持されている少なくとも一部の情報を組み込んだ前記制御プログラムを出力する、
請求項13に記載の情報処理装置。 - 前記出力部は、前記制御プログラムとは別ファイルで前記第1の保持部に保持されている少なくとも一部の情報を出力する、
請求項13に記載の情報処理装置。 - 制御対象装置の可動部に対する目標値を含む制御プログラムを処理する情報処理方法であって、
制御方式に応じた前記可動部の制御パラメータと前記可動部の特性値を保持する第1の保持ステップと、
前記第1の保持ステップにより保持される前記制御パラメータ及び特性値を用いて、前記目標値に応じて前記可動部の出力値を計算する制御出力ステップと、
算出された前記可動部の出力値に応じた前記制御対象装置に物理挙動を実行させる物理演算ステップと、
を有する情報処理方法。 - 制御対象装置の可動部に対する目標値を含む制御プログラムに対する処理をコンピュータ上で実行するようにコンピュータ可読形式で記述されたコンピュータ・プログラムであって、前記コンピュータを、
制御方式に応じた前記可動部の制御パラメータと前記可動部の特性値を保持する第1の保持部、
前記第1の保持部が保持する前記制御パラメータ及び特性値を用いて、前記目標値に対する前記可動部の出力値を計算する制御出力部、
算出された前記可動部の出力値に応じた前記制御対象装置に物理挙動を実行させる物理演算部、
として機能させるコンピュータ・プログラム。 - 可動部を有する制御対象装置を制御プログラムに従って制御するための処理を実施する情報処理装置であって、
前記制御プログラムに含まれる、制御方式に応じた前記可動部の制御パラメータを、前記制御対象装置内の前記可動部を駆動するコントローラに設定する設定部と、
前記制御プログラムで指定される前記可動部の目標値に従って、前記コントローラによる前記可動部の駆動を制御する動作制御部と、
を具備する情報処理装置。 - 可動部を有する制御対象装置を制御するための制御プログラムを製造するプログラム製造方法であって、
前記制御プログラムに、前記制御対象装置のコントローラに前記可動部を制御させるために用いる制御パラメータを設定する制御パラメータ設定ステップと、
前記制御プログラムに、前記制御対象装置のコントローラに前記可動部の駆動を制御するために入力する目標値を設定する目標値設定ステップと、
を有するプログラム製造方法。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2019509031A JPWO2018180148A1 (ja) | 2017-03-31 | 2018-02-28 | 情報処理装置及び情報処理方法、コンピュータ・プログラム、並びにプログラム製造方法 |
CN201880020375.0A CN110462533A (zh) | 2017-03-31 | 2018-02-28 | 信息处理装置和信息处理方法、计算机程序以及程序制造方法 |
EP18776209.1A EP3605250A4 (en) | 2017-03-31 | 2018-02-28 | INFORMATION PROCESSING DEVICE AND INFORMATION PROCESSING PROCESS, COMPUTER PROGRAM AND PROGRAM MANUFACTURING PROCESS |
US16/489,526 US20190377312A1 (en) | 2017-03-31 | 2018-02-28 | Information processing apparatus and information processing method, computer program, and program manufacturing method |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017-070634 | 2017-03-31 | ||
JP2017070634 | 2017-03-31 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2018180148A1 true WO2018180148A1 (ja) | 2018-10-04 |
Family
ID=63675441
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2018/007482 WO2018180148A1 (ja) | 2017-03-31 | 2018-02-28 | 情報処理装置及び情報処理方法、コンピュータ・プログラム、並びにプログラム製造方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US20190377312A1 (ja) |
EP (1) | EP3605250A4 (ja) |
JP (1) | JPWO2018180148A1 (ja) |
CN (1) | CN110462533A (ja) |
WO (1) | WO2018180148A1 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2021144627A (ja) * | 2020-03-13 | 2021-09-24 | オムロン株式会社 | 制御システムおよびサポート装置 |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110825121B (zh) * | 2018-08-08 | 2023-02-17 | 纬创资通股份有限公司 | 控制装置与无人机控制方法 |
CN112636647B (zh) * | 2020-12-29 | 2024-01-09 | 视田科技(天津)有限公司 | 一种扩大投影移动范围的电机精确控制方法及装置 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH1069302A (ja) * | 1996-08-27 | 1998-03-10 | Matsushita Electric Works Ltd | Pid命令を持つプログラマブルコントローラ |
JP2002074382A (ja) | 2000-09-04 | 2002-03-15 | Sony Corp | アニメーション生成方法および装置 |
JP2003030251A (ja) * | 2001-07-19 | 2003-01-31 | Fujitsu Ltd | シミュレーションシステム、方法、プログラム及び記録媒体 |
JP2004078729A (ja) * | 2002-08-21 | 2004-03-11 | Toshiba Mach Co Ltd | Pid内部演算値のモニタリング機能を有するシーケンス制御装置 |
JP2016001358A (ja) * | 2014-06-11 | 2016-01-07 | アズビル株式会社 | エンジニアリング装置、エンジニアリングシステム、およびダウンロード処理方法 |
JP2016189106A (ja) * | 2015-03-30 | 2016-11-04 | シャープ株式会社 | Pid制御装置及びpid制御方法 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0973302A (ja) * | 1995-09-01 | 1997-03-18 | Fujitsu Ltd | サーボモータの制御係数設定方法 |
US6445964B1 (en) * | 1997-08-04 | 2002-09-03 | Harris Corporation | Virtual reality simulation-based training of telekinegenesis system for training sequential kinematic behavior of automated kinematic machine |
DE10354642A1 (de) * | 2003-11-22 | 2005-06-16 | Bayerische Motoren Werke Ag | Vorrichtung und Verfahren zum Programmieren eines Industrieroboters |
US8326469B2 (en) * | 2006-07-14 | 2012-12-04 | Irobot Corporation | Autonomous behaviors for a remote vehicle |
US7957583B2 (en) * | 2007-08-02 | 2011-06-07 | Roboticvisiontech Llc | System and method of three-dimensional pose estimation |
US8694296B2 (en) * | 2010-10-22 | 2014-04-08 | Agile Planet, Inc. | Method and apparatus for integrated simulation |
US20130150984A1 (en) * | 2011-12-13 | 2013-06-13 | Richard M. Nigro | Test system with configurable closed loop |
JP5966372B2 (ja) * | 2012-01-17 | 2016-08-10 | セイコーエプソン株式会社 | ロボット制御装置、ロボットシステム、ロボット制御方法及びロボット |
JP5898134B2 (ja) * | 2013-06-27 | 2016-04-06 | トヨタ自動車株式会社 | リハビリテーション装置、制御方法及び制御プログラム |
US9868209B2 (en) * | 2013-12-02 | 2018-01-16 | Seiko Epson Corporation | Robot |
-
2018
- 2018-02-28 JP JP2019509031A patent/JPWO2018180148A1/ja active Pending
- 2018-02-28 US US16/489,526 patent/US20190377312A1/en not_active Abandoned
- 2018-02-28 WO PCT/JP2018/007482 patent/WO2018180148A1/ja active Application Filing
- 2018-02-28 EP EP18776209.1A patent/EP3605250A4/en not_active Withdrawn
- 2018-02-28 CN CN201880020375.0A patent/CN110462533A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH1069302A (ja) * | 1996-08-27 | 1998-03-10 | Matsushita Electric Works Ltd | Pid命令を持つプログラマブルコントローラ |
JP2002074382A (ja) | 2000-09-04 | 2002-03-15 | Sony Corp | アニメーション生成方法および装置 |
JP2003030251A (ja) * | 2001-07-19 | 2003-01-31 | Fujitsu Ltd | シミュレーションシステム、方法、プログラム及び記録媒体 |
JP2004078729A (ja) * | 2002-08-21 | 2004-03-11 | Toshiba Mach Co Ltd | Pid内部演算値のモニタリング機能を有するシーケンス制御装置 |
JP2016001358A (ja) * | 2014-06-11 | 2016-01-07 | アズビル株式会社 | エンジニアリング装置、エンジニアリングシステム、およびダウンロード処理方法 |
JP2016189106A (ja) * | 2015-03-30 | 2016-11-04 | シャープ株式会社 | Pid制御装置及びpid制御方法 |
Non-Patent Citations (1)
Title |
---|
See also references of EP3605250A4 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2021144627A (ja) * | 2020-03-13 | 2021-09-24 | オムロン株式会社 | 制御システムおよびサポート装置 |
JP7375632B2 (ja) | 2020-03-13 | 2023-11-08 | オムロン株式会社 | 制御システムおよびサポート装置 |
Also Published As
Publication number | Publication date |
---|---|
EP3605250A4 (en) | 2020-07-29 |
US20190377312A1 (en) | 2019-12-12 |
JPWO2018180148A1 (ja) | 2020-02-06 |
EP3605250A1 (en) | 2020-02-05 |
CN110462533A (zh) | 2019-11-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2018180143A1 (ja) | 情報処理装置及び情報処理方法、コンピュータ・プログラム、並びにプログラム製造方法 | |
WO2018180148A1 (ja) | 情報処理装置及び情報処理方法、コンピュータ・プログラム、並びにプログラム製造方法 | |
Rossmann et al. | A new approach to 3d simulation technology as enabling technology for erobotics | |
Balakirsky et al. | Usarsim/ros: A combined framework for robotic control and simulation | |
WO2019097793A1 (ja) | 情報処理装置及び情報処理方法、コンピュータ・プログラム、並びにプログラム製造方法 | |
WO2008069366A1 (en) | Robot simulation system using the network | |
KR101363092B1 (ko) | 로봇시스템의 rils 구현 방법 및 시스템 | |
Ily et al. | Development of a graphical user interface for a crawler mobile robot servosila engineer | |
Zhang et al. | A simulation system for testing robotic navigation based on coppeliasim and ROS | |
Kohlbrecher et al. | A comprehensive software framework for complex locomotion and manipulation tasks applicable to different types of humanoid robots | |
Raje | Evaluation of ros and gazebo simulation environment using turtlebot3 robot | |
Udugama | Mini bot 3D: A ROS based Gazebo Simulation | |
Machado et al. | CoopDynSim: a 3D robotics simulator | |
JP2024509342A (ja) | 別個の装置を使用してインテリジェント車両を操作するための装置、システム、および方法 | |
Saraiji et al. | Virtual Telesar-designing and implementation of a modular based immersive virtual telexistence platform | |
López et al. | ROS2 and Unity based Simulation for telepresence robot | |
Fukuda et al. | Proposal of Robot Software Platform with High Sustainability | |
Indri et al. | P&P-Standard architecture to enable fast software prototyping for robot arms | |
Chen et al. | A simulation environment for OpenRTM-aist | |
Horváth et al. | A use case of the simulation-based approach to mobile robot algorithm development | |
Salt et al. | REACT-R and Unity integration | |
Chauhan et al. | ROS OS based environment mapping of Cyber Physical System Lab by Depth sensor | |
Harris | Design and implementation of an autonomous robotics simulator | |
Thule et al. | Considering abstraction levels on a case study | |
Ilnytska et al. | Experimental Investigation of Multi-GNSS in Static Mode |
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: 18776209 Country of ref document: EP Kind code of ref document: A1 |
|
ENP | Entry into the national phase |
Ref document number: 2019509031 Country of ref document: JP Kind code of ref document: A |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
WWE | Wipo information: entry into national phase |
Ref document number: 2018776209 Country of ref document: EP |
|
ENP | Entry into the national phase |
Ref document number: 2018776209 Country of ref document: EP Effective date: 20191031 |