WO2021019801A1 - Guiコントローラ設計支援装置、リモートコントロールシステム、およびプログラム - Google Patents

Guiコントローラ設計支援装置、リモートコントロールシステム、およびプログラム Download PDF

Info

Publication number
WO2021019801A1
WO2021019801A1 PCT/JP2019/049488 JP2019049488W WO2021019801A1 WO 2021019801 A1 WO2021019801 A1 WO 2021019801A1 JP 2019049488 W JP2019049488 W JP 2019049488W WO 2021019801 A1 WO2021019801 A1 WO 2021019801A1
Authority
WO
WIPO (PCT)
Prior art keywords
controller
user program
gui
editing
engine
Prior art date
Application number
PCT/JP2019/049488
Other languages
English (en)
French (fr)
Inventor
邦人 石迫
Original Assignee
株式会社LC-Studio
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 株式会社LC-Studio filed Critical 株式会社LC-Studio
Priority to US17/044,596 priority Critical patent/US11249732B2/en
Priority to JP2020508061A priority patent/JP6684513B1/ja
Priority to EP19926726.1A priority patent/EP3798821B1/en
Priority to CN201980043175.1A priority patent/CN112840315B/zh
Publication of WO2021019801A1 publication Critical patent/WO2021019801A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/33Intelligent editors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/20Software design
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60KARRANGEMENT OR MOUNTING OF PROPULSION UNITS OR OF TRANSMISSIONS IN VEHICLES; ARRANGEMENT OR MOUNTING OF PLURAL DIVERSE PRIME-MOVERS IN VEHICLES; AUXILIARY DRIVES FOR VEHICLES; INSTRUMENTATION OR DASHBOARDS FOR VEHICLES; ARRANGEMENTS IN CONNECTION WITH COOLING, AIR INTAKE, GAS EXHAUST OR FUEL SUPPLY OF PROPULSION UNITS IN VEHICLES
    • B60K35/00Instruments specially adapted for vehicles; Arrangement of instruments in or on vehicles
    • B60K35/10Input arrangements, i.e. from user to vehicle, associated with vehicle functions or specially adapted therefor
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/042Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/041Digitisers, e.g. for touch screens or touch pads, characterised by the transducing means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • G06F3/0482Interaction with lists of selectable items, e.g. menus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0487Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
    • G06F3/0488Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/34Graphical or visual programming
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/656Updates while running
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60KARRANGEMENT OR MOUNTING OF PROPULSION UNITS OR OF TRANSMISSIONS IN VEHICLES; ARRANGEMENT OR MOUNTING OF PLURAL DIVERSE PRIME-MOVERS IN VEHICLES; AUXILIARY DRIVES FOR VEHICLES; INSTRUMENTATION OR DASHBOARDS FOR VEHICLES; ARRANGEMENTS IN CONNECTION WITH COOLING, AIR INTAKE, GAS EXHAUST OR FUEL SUPPLY OF PROPULSION UNITS IN VEHICLES
    • B60K2360/00Indexing scheme associated with groups B60K35/00 or B60K37/00 relating to details of instruments or dashboards
    • B60K2360/143Touch sensitive instrument input devices
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B64AIRCRAFT; AVIATION; COSMONAUTICS
    • B64UUNMANNED AERIAL VEHICLES [UAV]; EQUIPMENT THEREFOR
    • B64U2201/00UAVs characterised by their flight controls
    • B64U2201/20Remote controls
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/38Creation or generation of source code for implementing user interfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • GPHYSICS
    • G08SIGNALLING
    • G08CTRANSMISSION SYSTEMS FOR MEASURED VALUES, CONTROL OR SIMILAR SIGNALS
    • G08C2201/00Transmission systems of control signals via wireless link
    • G08C2201/20Binding and programming of remote control devices
    • GPHYSICS
    • G08SIGNALLING
    • G08CTRANSMISSION SYSTEMS FOR MEASURED VALUES, CONTROL OR SIMILAR SIGNALS
    • G08C2201/00Transmission systems of control signals via wireless link
    • G08C2201/30User interface
    • GPHYSICS
    • G08SIGNALLING
    • G08CTRANSMISSION SYSTEMS FOR MEASURED VALUES, CONTROL OR SIMILAR SIGNALS
    • G08C2201/00Transmission systems of control signals via wireless link
    • G08C2201/90Additional features
    • G08C2201/93Remote control using other portable devices, e.g. mobile phone, PDA, laptop

Definitions

  • the present invention relates to a GUI controller design support device that supports controller design and programming realized by a GUI (Graphical User Interface).
  • the control after receiving the signal is fixed or only a simple change (for example, a change in polarity or gain for a certain operation parameter) is possible. It is configured as follows. For this reason, it is not possible to add new behaviors or dynamically add parameters themselves, and in order to realize complex control such as autopilot by programming, repeat until the desired control is successful. It took a lot of time because it was necessary to restart the device under investigation after each trial and error.
  • An object of the present invention is to provide a GUI controller design support device that solves the above problems and supports programming of a controller device that can flexibly and change control and graphic representation in real time.
  • the GUI controller design support device supports the design of a GUI controller that is displayed on the touch panel display of the input device and accepts operation inputs for operating the target device.
  • the GUI controller design support device is composed of a plurality of controller parts, and is a controller set editing means for editing a controller set that defines a GUI controller, and a controller part editing for editing each controller part included in the controller set. It includes means and user program editing means for editing a user program that defines control of a target device in response to an operation input to a controller part.
  • the GUI controller design support device is in a state where the engine running the driver, which is an object called and used from the user program to control the target device, has started the execution environment for executing the user program.
  • the GUI controller registration means for registering the controller set edited by the GUI controller editing means in the input device may be further provided.
  • the GUI controller design support device is an object that is called from the user program and used to control the target device.
  • the user is in a state where the engine running the driver is running the execution environment for executing the user program. It is preferable to further provide a user program registration means for registering the user program edited by the program editing means in the engine.
  • the remote control system includes any of the above GUI controller design support devices and a touch panel display, and an input device for displaying the GUI controller on the touch panel display and a target device. It is equipped with an engine on which a driver, which is an object called and used by a user program to control the controller, operates.
  • the input device receives the user's operation input to the GUI controller displayed on the touch panel display, transmits the content of the operation input to the engine, and the engine uses the content of the operation input received from the input device. Based on this, the driver is operated to control the target device.
  • the input device makes it possible to update the controller set of the GUI controller associated with the user program while the engine is running the execution environment for executing the user program.
  • the engine makes it possible to update the user program while the execution environment for executing the user program is running.
  • the program according to the present invention causes the computer to function as any of the above GUI controller design support devices.
  • FIG. 1 An example of a remote control environment to which the GUI controller design support device 1 is applied is shown. It is a flowchart which shows the procedure when the target device 4 is controlled through the engine 3 by the GUI controller registered in the input device 2. It is a flowchart which shows the process procedure at the time of editing and updating an existing GUI controller and a user program.
  • FIG. 1 shows an example of a remote control environment to which the GUI controller design support device 1 according to the present embodiment is applied. That is, in this remote control environment, a control signal is transmitted to the target device 4 to be operated via the engine 3 in response to the user's operation input to the input device 2, and the control of the target device 4 is realized.
  • the GUI controller design support device 1 designs an operation screen displayed on the input device 2, edits a program executed by the engine 3 in response to an operation input to the input device 2, and updates these as appropriate.
  • the GUI controller design support device 1, the input device 2, and the engine 3 can communicate with each other via the network NW. All or part of the GUI controller design support device 1, the input device 2, and the engine 3 may be realized by common hardware. Further, the engine 3 and the target device 4 can communicate with each other by wireless communication means (whether or not via the network NW is arbitrary).
  • the GUI controller design support device 1 is an object that is called from the user program to control the GUI controller, the user program, the execution environment that is the environment on the engine 3 on which the user program is executed, and the target device 4. It is a device that provides a user with a function of editing a driver, etc., and is realized by a computer or the like.
  • the GUI controller design support device 1 includes a control unit 10, a storage unit 11, a display unit 12, an input unit 13, and a communication unit 14.
  • the control unit 10 realizes the function of the GUI controller design support device 1 by executing various programs stored in the storage unit 11. Specifically, the control unit 10 realizes various functions such as a GUI controller editing function and a user program editing function, which will be described later.
  • the control unit 10 is realized by, for example, a CPU or the like.
  • the storage unit 11 stores a program executed by the control unit 10, data used in the program, and the like. That is, the storage unit 11 stores programs and data for realizing the GUI controller editing function and the user program editing function.
  • the storage unit 11 may store a template or the like of a controller part that can be used by the user by the GUI controller editing function.
  • the display unit 12 is a display element such as a liquid crystal display or an organic EL display, and displays various information under the control of the control unit 10.
  • the input unit 13 accepts an operation by the user.
  • the input unit 13 may be, for example, a keyboard, a mouse, a touch panel provided on the display unit 12, or the like.
  • the communication unit 14 communicates with the input device 2, the engine 3, and the like via the network NW and other communication lines.
  • the input device 2 displays the screen of the GUI controller created / edited by the GUI controller design support device 1, receives the operation input for the GUI controller, and transmits the contents of the received operation input to the engine 3.
  • the input device 2 includes a control unit 20, a storage unit 21, a display unit 22, an input unit 23, and a communication unit 24.
  • the control unit 20 realizes the function of the input device 2 by executing various programs stored in the storage unit 21. Specifically, the control unit 20 has a function of displaying the screen of the GUI controller on the input unit 23, receives a user's operation input for each controller part constituting the GUI controller, and transmits the contents of the received operation input to the communication unit 24. A function of transmitting to the engine 3 via the engine 3 and the like are realized.
  • the control unit 20 is realized by, for example, a CPU or the like.
  • the storage unit 21 stores a program executed by the control unit 20, data used in the program, and the like. Specifically, the storage unit 21 stores a drawing program or the like for displaying the screen of the GUI controller on the display unit 22 according to the controller set CL and the controller set CL that define the GUI controller. Further, the storage unit 21 stores an index that defines an inputtable coordinate range for each controller part that constitutes the GUI controller.
  • the display unit 22 is a display element such as a liquid crystal display or an organic EL display, and displays various information such as a GUI controller screen under the control of the control unit 20.
  • the input unit 23 accepts operation input by the user.
  • the input unit 23 may be, for example, a keyboard, a mouse, a touch panel provided on the display unit 22, or the like.
  • the coordinates touched by the touch panel are detected, and the detected coordinates are referred to the index and detected. It will be accepted as an operation input to the controller part corresponding to the coordinates.
  • an acceleration sensor may be provided as the input unit 23 to detect the posture change (tilt) of the input device 2 as a user's operation input.
  • An input device or sensors other than the above may be provided as the input unit 23.
  • the communication unit 24 communicates with the GUI controller design support device 1, the engine 3, and the like via the network NW and other communication lines.
  • the communication unit 24 transmits, for example, the contents of the operation input for each controller part to the engine 3.
  • the engine 3 includes a control unit 30, a storage unit 31, and a communication unit 34.
  • the control unit 30 realizes the function of the engine 3 by executing various programs stored in the storage unit 31.
  • the control unit 30 is realized by, for example, a CPU, a microcomputer (microcomputer), or the like.
  • the storage unit 31 stores a program executed by the control unit 30, data used in the program, and the like. Specifically, the storage unit 31 stores a program for realizing the execution environment, a driver corresponding to the target device 4, data used in these programs, and the like.
  • the execution environment is the runtime for executing the user's program.
  • the execution environment accepts an execution request caused by an operation input or the like to the target device 4, and sequentially processes the functions and start blocks of the user program corresponding to the execution request.
  • a plurality of types of execution environments may be prepared so as to support various programming languages.
  • the driver is a program that manages the input / output of the target device 4 exchanged via the communication unit 34 and the execution environment.
  • the driver for example, outputs a control signal that can be processed by the target device 4 in response to the control instruction based on a user program executed in the execution environment, or executes information such as a sensor output sent from the target device 4. Realize the function to be provided to the user program running in the environment.
  • the communication unit 34 communicates with the GUI controller design support device 1, the input device 2, the target device 4, etc. via the network NW or other communication lines. Specifically, the engine 3 receives the user program from the GUI controller design support device 1, receives the content of the operation input from the input device 2, and transmits the control signal to the target device 4 via the communication unit 34. It receives the sensor output from the target device 4 and the like.
  • the target device 4 is a device to be operated by the GUI controller.
  • the target device 4 may be, for example, a physical device such as a drone, a radio-controlled car, or a robot, or a device that operates in a virtual space such as a 3D model.
  • the target device 4 includes a control unit 40, a storage unit 41, a drive unit 42, a sensor unit 43, and a communication unit 44.
  • the control unit 40 controls the target device 4 by executing a program such as firmware stored in the control unit 40.
  • the control unit 40 is realized by, for example, a microcomputer, a CPU, or the like.
  • the storage unit 41 stores a program (so-called firmware) that operates in response to a transmission signal from the driver that operates in the engine 3.
  • the drive unit 42 is a member that realizes the operation of the target device 4, and is composed of, for example, a motor, an actuator, a driver thereof, and the like.
  • the sensor unit 43 is composed of sensors that acquire various information from the surroundings of the target device 4.
  • the sensor unit 43 may include, for example, a camera, an acceleration sensor, a GPS receiving device, a distance measuring sensor, an infrared sensor, and the like.
  • the communication unit 44 communicates with the engine 3 via the network NW or other communication line. That is, the target device 4 receives the control signal from the engine 3 via the communication unit 44, and transmits the information acquired by the sensor unit 43 to the engine 3 as needed.
  • the controller set CL includes a set of instances of controller parts (list) and a program (user program) that defines processing according to an operation created by the user.
  • each controller part that constitutes the controller set CL are defined by the user using the controller part editing function described later.
  • the appearance of the GUI controller is defined by combining a plurality of controller parts included in the controller set CL.
  • the user program uses the predefined controller parts and implements an arbitrary program.
  • the controller set CL manages UUID (Universally Unique Identifier), which is identification information for uniquely identifying the GUI controller globally, the controller name, which is the name given to the controller, and the change history of the controller. Change history number, driver type indicating the device targeted by the controller, device orientation indicating the orientation (vertical / horizontal) of the input device 2 when displaying the GUI controller defined by the controller set, each part of the GUI controller, etc. It includes skin information indicating an image for expressing (drawing) the background, selection settings of an execution environment for executing a user program included in the controller set CL, and the like.
  • UUID Universally Unique Identifier
  • the controller part is a part that can be placed and used in the GUI controller, and realizes various control patterns according to the operation input by the user. It is permissible to add multiple instances as controller parts to one controller set, and each controller part is given unique identification information. In the user program, the instance of each controller part can be identified and used by this identification information.
  • controller parts There are various types of controller parts.
  • the controller parts have attributes, states, and behaviors unique to each type, and can be instantiated indefinitely, identified for each instance, and used from the user program.
  • Each controller part includes a part name that is a unique name in the controller as a common attribute.
  • Joysticks, cross keys, buttons, switches, sliders, dials, gestures, character string output areas, video / image output areas, etc. are prepared as controller parts types.
  • configurable definition attributes static attributes
  • state attributes input state
  • the definition attribute is a predefined attribute that does not change.
  • the state attribute is an attribute that changes according to the execution state of the program and the controller operation state of the user.
  • definition attributes a program that indicates the display size, minimum value, maximum value, display position, display color in the active state, out-of-frame judgment accuracy, trajectory judgment touch count, and frequency of notifying the user program of operation input. Notification frequency etc. are defined.
  • the display position of each controller part is defined so that it does not overlap on the display except for the parts that can be overlaid.
  • the state attributes the active flag, the start coordinate information, the coordinate information before the movement, the coordinate information after the movement, and the like are recorded and held according to the execution state of the program and the controller operation state of the user.
  • controller set editing function the execution environment editing function, the driver editing function, the controller parts editing function, and the user program editing function provided by the GUI controller design support device 1 will be described.
  • the execution environment editing function is realized as a program executed by the control unit 10.
  • the execution environment editing function creates an instance of the execution environment, which is the environment on the engine 3 on which the user program is executed, and displays a screen for inputting setting values for various setting items for the generated instance. provide. The set value can be changed by the input of the user through this screen.
  • engine 3 it is possible to use multiple types of execution environments (for example, those that handle different script languages) at the same time, and in the execution environment editing function, select one of the available execution environments and set the settings. Can be edited.
  • the driver editing function is realized as a program executed by the control unit 10.
  • the driver is an object called and used by a user program to control the target device 4.
  • the driver editing function provides a screen that allows the user to select a driver that controls the target device 4. When the user selects a desired driver on this screen, an instance of the selected driver is generated in the engine 3, and a process of giving identification information to the generated instance is executed.
  • the user program specifies this identification information and realizes control of the target device 4 via a desired driver.
  • the driver editing function provides a screen for inputting setting items for the generated driver instance. The set value can be changed by the input of the user through this screen.
  • the controller set editing function is realized as a program executed by the control unit 10.
  • the controller set editing function is started when the user selects edit of the GUI controller in the menu displayed on the display unit 12.
  • the controller set editing function it is possible to create a new controller set or edit an existing controller set.
  • the user selects a menu to that effect.
  • the existing controller set stored in the storage unit 11.
  • an instance of the corresponding controller set is created.
  • the execution environment corresponding to the controller set is started, and the user program included in the controller set is registered in the started execution environment.
  • a reference to an instance of the controller set may be passed to the input device 2.
  • the controller part editing function is a function for editing various attributes of each controller part constituting the controller set.
  • the controller part editing function is started by the user selecting editing of the controller part in the menu displayed on the display unit 12 after the controller set editing function is executed.
  • the editing area R1 is displayed on the display unit 12.
  • the editing area R1 is a display area for editing while visually checking the arrangement, appearance, and the like of the controller parts to be displayed on the screen of the input device 2.
  • the editing area R1 at startup is left blank.
  • the saved GUI controller based on the controller set selected at startup is displayed in the edit area R1.
  • the user can freely create a GUI controller by arranging a desired controller part in the editing area R1, moving, deleting, editing (changing various attribute values), etc. of the arranged controller part. Can be edited.
  • the model of the controller part that can be arranged in the editing area R1 is stored in advance in the storage unit 11. Then, these templates are configured so that the user can appropriately select and arrange them at arbitrary positions via the user interface.
  • the placed controller parts can be selected by tapping the touch panel or clicking with the mouse cursor placed on the touch panel, and can be moved by a so-called drag operation.
  • double-clicking or double-tapping the placed controller part it is possible to edit the definition attribute for the controller part.
  • the controller part corresponding to the edited GUI controller is stored in the storage unit 11.
  • the input device 2 registers or updates the controller parts included in the controller set in the index based on the instance of the controller set to be referenced.
  • the user program editing function is realized as a program executed by the control unit 10.
  • the user program editing function is started when the user selects editing of the user program in the menu displayed on the display unit 12.
  • the user program editing function it is possible to create a new user program or edit an existing user program.
  • the user selects a menu to that effect.
  • the user selects the existing user program stored in the storage unit 11.
  • the editing area R2 When the user program editing function is started, the editing area R2 is displayed on the display unit 12.
  • the editing area R2 may be, for example, a text editor capable of editing the source code of the user program, an editor for realizing GUI block programming, or the like, depending on the programming language used.
  • the editing area R2 at startup is left blank.
  • the user program selected at startup is displayed in the editing area R2.
  • the user can edit the source code of the user program in the editing area R2.
  • the controller parts included in the GUI controller created by the GUI controller editing function and the driver instances corresponding to the target device 4 are distinguished by the identification information, and the activation block, entry point (function), and Or it can be used as a variable. These available instances are configured so that the user can appropriately select and insert them anywhere in the source code via the user interface. In this way, the user associates the program (function, start block) to be started with the operation input and the driver for each controller part.
  • the control unit 10 of the GUI controller design support device 1 When the editing of the user program is confirmed (registration operation, etc.), the control unit 10 of the GUI controller design support device 1 immediately evaluates the context of the program. Then, if there is no problem in context, the program context is maintained in the execution environment of the engine 3. In addition, when the context is guaranteed as a block as in so-called block programming, it is not necessary to evaluate the context.
  • the edited user program is stored in the storage unit 11 by the operation of saving the changed contents or the automatic saving function, and the edited user program is transmitted to the engine 3 having an execution environment corresponding to the program language edited by the user.
  • User programs can be registered.
  • the editing information is immediately registered in the execution environment in conjunction with the user operation.
  • FIG. 2 is a flowchart showing a procedure when the target device 4 is controlled via the engine 3 by the GUI controller registered in the input device 2.
  • the user creates an instance of the controller set by using the controller set editing function as described above (step S100).
  • the execution environment of the engine 3 required for executing the user program according to the controller set instance is started (step S110).
  • the controller set is registered in the input device 2.
  • the user program is registered in the execution environment of the engine 3.
  • the "execution environment is running" state is a state in which the execution environment is waiting for some event such as a program execution request, registration, or update request while executing an infinite loop as a "main” function. Is.
  • the controller set instance generation (step S100) and the execution environment startup (step S110) are in no particular order.
  • the input device 2 receives the user's operation input to the input unit 23 (for example, the touch panel superimposed on the display unit 22) while displaying the registered GUI controller on the display unit 22 (step S120).
  • the content of the received operation input is sent to the execution environment started by the engine 3 as an execution request event including the identification information corresponding to the instance of the operated controller part, the parameter value detected by the operation, and the like. (Step S130).
  • the driver that can be used in the engine 3 is connected to the target device 4 in the activated state, and is in a state in which control signals and sensor outputs can be transmitted and received.
  • the driver should manage the connection status by the so-called KeepAlive method.
  • the driver transmits a control signal to the target device 4 in response to a call from a user program executed in the execution environment. Further, the driver sends an execution request including identification information corresponding to the instance of the driver, a value associated with the sensor output, and the like due to the sensor output from the target device 4 to the execution environment started by the engine 3. ..
  • step S140 When an execution request event is issued to the execution environment due to an operation on the GUI controller of the input device 2 or a request from the driver, the start block or function corresponding to the controller part or driver instance that is the source of the execution request is displayed. It is registered as a program execution stack for the execution environment (step S140). The processing registered in the program execution stack is sequentially executed together with the event processing for each loop of the infinite loop executed as the "main" function (step S150).
  • the input device 2 receives the user's operation input to the input unit 23 (for example, the touch panel superimposed on the display unit 22) while displaying the registered GUI controller on the display unit 22, and the contents are activated by the engine 3.
  • the GUI expression (appearance) of the controller parts is changed (for example, animation display, etc.) according to the operation input while sending to the existing execution environment.
  • the corresponding entry point of the user program is executed in the execution environment started by the engine 3 in response to the operation input to the GUI controller displayed on the input device 2, and the target device 4 is executed via the driver. Control is performed on.
  • FIG. 3 is a flowchart showing a processing procedure when editing and updating an existing GUI controller or user program.
  • the GUI controller design support device 1 uses the GUI controller editing function and the user program editing function to define, arrange, edit the user program, and the like (step S200).
  • the controller set is registered in the input device 2 and the user program is registered in the engine 3 (step S220).
  • Step S240 Editing and registration of the GUI controller and user program can be performed at any time without restarting the input device 2, engine 3, and target device 4, and thereby operating each controller part constituting the GUI controller. Then, the behavior of the target device 4 can be reflected in the system in real time.
  • the engine 3 links the received execution request and the entry point (function or start block) by using the identification information of the instance of the controller part included in the execution request. ..
  • the correspondence between the identification information of the instance of the controller part and the entry point may be changed, but this relationship is defined in the edited user program, and the engine 3 It will be registered in the execution environment (step S260).
  • the display of the GUI controller displayed on the input device 2 and the notification from the controller parts are changed according to the content of the update.
  • the running execution environment continues to execute the infinite loop as the main function before and after registration.
  • the function or variable with the same name may be replaced with a new value, but for the function associated with the execution request registered in the program execution stack before the update,
  • the function specified in the user program before the update is executed.
  • the function specified in the new user program is executed for the execution request registered in the program execution stack after the update (step S280).
  • GUI controller design support device in the present embodiment described above, it is possible to support programming of a controller device that can flexibly and change control and graphic expression in real time.
  • the present invention is not limited to these examples.
  • the GUI controller design support device 1, the input device 2, and the engine 3 are realized as separate hardware, but a plurality or all of these are realized as one hardware (for example, one unit). It may be realized by the computer).
  • those skilled in the art appropriately adding, deleting, or changing the design of each of the above-described embodiments, and those in which the features of each embodiment are appropriately combined are also provided with the gist of the present invention. As long as it is included in the scope of the present invention.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Automation & Control Theory (AREA)
  • Computer Security & Cryptography (AREA)
  • Chemical & Material Sciences (AREA)
  • Combustion & Propulsion (AREA)
  • Transportation (AREA)
  • Mechanical Engineering (AREA)
  • Stored Programmes (AREA)
  • Programmable Controllers (AREA)

Abstract

柔軟かつリアルタイムに制御やグラフィック表現を変更可能なコントローラ装置のプログラミングを支援することのできるGUIコントローラ設計支援装置を提供する。 GUIコントローラ設計支援装置は、入力デバイスのタッチパネルディスプレイに表示され、ターゲットデバイスを操作するための操作入力を受け付けるGUIコントローラの設計を支援する。GUIコントローラ設計支援装置は、複数のコントローラパーツにより構成されGUIコントローラを定義するコントローラセットを編集するためのGUIコントローラ編集手段と、GUIコントローラに対する操作入力に応じたターゲットデバイスの制御を規定するユーザプログラムを編集するためのユーザプログラム編集手段と、を備える。

Description

GUIコントローラ設計支援装置、リモートコントロールシステム、およびプログラム
 本発明は、GUI(Graphical User Interface)により実現されるコントローラの設計やプログラミングを支援するGUIコントローラ設計支援装置に関する。
 従来から、ラジオコントロール(RC)カー、ドローン、ロボット、ゲームなどを無線通信により遠隔操作するためのコントローラ装置をスマートフォンなどの画面に表示される操作ボタン等によるGUIとして提供することが実現されている(例えば、特許文献1を参照)。
特開2019-85041号公報
 このようなGUIによるコントローラ装置では、操作対象の装置を起動した後は信号を受け付けてからの制御が固定されているか、単純な変更(例えば、ある操作パラメータに対する極性やゲインの変更等)しかできないように構成されている。このため、新たな挙動を追加したり、パラメータそのものを動的に追加したりすることはできず、プログラミングによる自動操縦などの複雑な制御を実現するには、所望の制御に成功するまでに繰り返す試行錯誤の都度、捜査対象の装置を再起動することが必要であるため、非常に多くの時間要していた。
 本発明の課題は、上記の問題を解決し、柔軟かつリアルタイムに制御やグラフィック表現を変更可能なコントローラ装置のプログラミングを支援するGUIコントローラ設計支援装置を提供することにある。
 上記の課題を解決すべく、本発明に係るGUIコントローラ設計支援装置は、入力デバイスのタッチパネルディスプレイに表示され、ターゲットデバイスを操作するための操作入力を受け付けるGUIコントローラの設計を支援する。GUIコントローラ設計支援装置は、複数のコントローラパーツを含んで構成されGUIコントローラを定義するコントローラセットを編集するためのコントローラセット編集手段と、コントローラセットに含まれる各コントローラパーツを編集するためのコントローラパーツ編集手段と、コントローラパーツに対する操作入力に応じたターゲットデバイスの制御を規定するユーザプログラムを編集するためのユーザプログラム編集手段と、を備える。
 本発明では、GUIコントローラ設計支援装置は、ターゲットデバイスを制御するためにユーザプログラムから呼び出して利用するオブジェクトであるドライバが動作するエンジンがユーザプログラムを実行するための実行環境を起動している状態において、GUIコントローラ編集手段にて編集されたコントローラセットを、入力デバイスに登録するGUIコントローラ登録手段をさらに備えるとよい。
 また、GUIコントローラ設計支援装置は、ターゲットデバイスを制御するためにユーザプログラムから呼び出して利用するオブジェクトであるドライバが動作するエンジンがユーザプログラムを実行するための実行環境を起動している状態において、ユーザプログラム編集手段にて編集されたユーザプログラムを、エンジンに登録するユーザプログラム登録手段をさらに備えるとよい。
 また、上記の課題を解決すべく、本発明に係るリモートコントロールシステムは、上記いずれかのGUIコントローラ設計支援装置と、タッチパネルディスプレイを備え、当該タッチパネルディスプレイにGUIコントローラを表示する入力デバイスと、ターゲットデバイスを制御するためにユーザプログラムから呼び出して利用するオブジェクトであるドライバが動作するエンジンと、を備える。このリモートコントロールシステムにおいて、入力デバイスは、タッチパネルディスプレイに表示されたGUIコントローラに対するユーザの操作入力を受け付け、当該操作入力の内容をエンジンに送信し、エンジンは、入力デバイスから受け取った操作入力の内容に基づき、ターゲットデバイスを制御すべくドライバを動作させる。入力デバイスは、エンジンがユーザプログラムを実行するための実行環境を起動している状態において、ユーザプログラムと関連付けられたGUIコントローラのコントローラセットを更新可能とする。また、エンジンは、ユーザプログラムを実行するための実行環境を起動している状態において、ユーザプログラムを更新可能とする。
 また、上記の課題を解決すべく、本発明に係るプログラムは、コンピュータを、上記いずれかのGUIコントローラ設計支援装置として機能させる。
GUIコントローラ設計支援装置1が適用される、リモートコントロール環境の一例を示している。 入力デバイス2に登録されたGUIコントローラにより、エンジン3を介してターゲットデバイス4を制御する際の手順を示すフローチャートである。 既存のGUIコントローラやユーザプログラムを編集し更新する際の処理の手順を示すフローチャートである。
 以下、本発明の実施形態を図面に基づいて説明する。なお、以下の説明では、同一の部材には同一の符号を付し、一度説明した部材については適宜その説明を省略する。
〔リモートコントロール環境の構成〕
 図1は、本実施形態に係るGUIコントローラ設計支援装置1が適用される、リモートコントロール環境の一例を示している。すなわち、このリモートコントロール環境では、入力デバイス2に対するユーザの操作入力に応じて、エンジン3を介して操作対象であるターゲットデバイス4に制御信号が送信され、ターゲットデバイス4の制御が実現される。GUIコントローラ設計支援装置1は、入力デバイス2に表示される操作画面の設計、入力デバイス2への操作入力に応じてエンジン3で実行されるプログラムの編集等を行い、これらを適宜更新するための環境を提供する。GUIコントローラ設計支援装置1、入力デバイス2及びエンジン3は、ネットワークNWを介して通信可能とされる。なお、GUIコントローラ設計支援装置1、入力デバイス2、エンジン3の全て又は一部は共通のハードウェアにより実現されてもよい。また、エンジン3とターゲットデバイス4は、無線通信手段(ネットワークNWを介するか否かは任意)にて通信可能とされる。
 GUIコントローラ設計支援装置1は、GUIコントローラ、ユーザプログラムの編集、ユーザプログラムが実行されるエンジン3上の環境である実行環境の編集、ターゲットデバイス4を制御するためにユーザプログラムから呼び出して利用するオブジェクトであるドライバの編集等を行う機能をユーザに提供する装置であり、コンピュータ等により実現される。GUIコントローラ設計支援装置1は、制御部10、記憶部11、表示部12、入力部13、及び通信部14を備える。
 制御部10は、記憶部11に記憶されている各種のプログラムを実行することにより、GUIコントローラ設計支援装置1の機能を実現する。具体的には、制御部10は、後述するGUIコントローラ編集機能、ユーザプログラム編集機能等の諸機能を実現する。制御部10は、例えばCPU等により実現される。
 記憶部11は、制御部10にて実行するプログラムや、当該プログラムで用いられるデータ等を記憶する。すなわち、記憶部11は、GUIコントローラ編集機能及びユーザプログラム編集機能を実現するためのプログラム及びデータを記憶する。例えば、記憶部11は、GUIコントローラ編集機能にてユーザが利用可能なコントローラパーツのテンプレート等を記憶するとよい。
 表示部12は、液晶ディスプレイ、有機ELディスプレイ等の表示素子であり、制御部10による制御の下、各種の情報を表示する。入力部13は、ユーザによる操作を受け付ける。入力部13は、例えば、キーボード、マウス、表示部12に重ねて設けられるタッチパネル等とするとよい。通信部14は、ネットワークNWやその他の通信回線を介して、入力デバイス2、エンジン3等との通信を行う。
 入力デバイス2は、GUIコントローラ設計支援装置1で作成・編集したGUIコントローラの画面を表示し、当該GUIコントローラに対する操作入力を受け付けて、受け付けた操作入力の内容をエンジン3に送信する。入力デバイス2は、制御部20、記憶部21、表示部22、入力部23、及び通信部24を備える。
 制御部20は、記憶部21に記憶されている各種のプログラムを実行することにより、入力デバイス2の機能を実現する。具体的には、制御部20は、GUIコントローラの画面を入力部23に表示させる機能、GUIコントローラを構成する各コントローラパーツに対するユーザの操作入力を受け付け、受け付けた操作入力の内容を通信部24を介してエンジン3に送信する機能等を実現する。制御部20は例えばCPU等により実現される。
 記憶部21は、制御部20にて実行するプログラムや、当該プログラムで用いられるデータ等を記憶する。具体的には、記憶部21は、GUIコントローラを定義するコントローラセットCL、コントローラセットCLに従ってGUIコントローラの画面を表示部22に表示させるための描画プログラム等を記憶する。また、記憶部21は、GUIコントローラを構成する各コントローラパーツについて、入力可能な座標範囲を規定したインデックスを記憶する。
 表示部22は、液晶ディスプレイ、有機ELディスプレイ等の表示素子であり、制御部20による制御の下、GUIコントローラの画面等の各種の情報を表示する。
 入力部23は、ユーザによる操作入力を受け付ける。入力部23は、例えば、キーボード、マウス、表示部22に重ねて設けられるタッチパネル等とするとよい。表示部22にGUIコントローラが表示された状態で、ユーザが表示部22に重ねて設けられたタッチパネルを操作すると、タッチパネルがタッチされた座標を検出し、検出した座標がインデックスに照会され、検出した座標に対応するコントローラパーツへの操作入力として受け付けられることになる。また、入力部23として、加速度センサを設け、入力デバイス2の姿勢変化(傾き)をユーザの操作入力として検知するようにしてもよい。入力部23としれ上記に以外の入力デバイスやセンサ類を設けてもよい。通信部24は、ネットワークNWやその他の通信回線を介して、GUIコントローラ設計支援装置1、エンジン3等との通信を行う。通信部24は、例えば、各コントローラパーツに対する操作入力の内容をエンジン3に送信する。
 エンジン3は、制御部30、記憶部31、及び通信部34を備える。
 制御部30は、記憶部31に記憶されている各種のプログラムを実行することにより、エンジン3の機能を実現する。制御部30は例えばCPU、マイコン(マイクロコンピュータ)等により実現される。
 記憶部31は、制御部30にて実行するプログラムや、当該プログラムで用いられるデータ等を記憶する。具体的には、記憶部31は、実行環境を実現するためのプログラム、ターゲットデバイス4に対応したドライバ、及びこれらのプログラムで用いられるデータ等を記憶する。
 実行環境は、ユーザのプログラムを実行するためのランタイム(Runtime)である。実行環境は、ターゲットデバイス4に対する操作入力等に起因する実行要求を受け付け、当該実行要求に対応するユーザプログラムの関数や起動ブロックを順次処理する。実行環境は、各種のプログラミング言語に対応可能なように複数種類用意されてよい。
 ドライバは、通信部34を介してやり取りされるターゲットデバイス4の入出力と、実行環境との間を取り持つプログラムである。ドライバは、例えば、実行環境で実行されるユーザプログラムに基づき、当該制御命令に応じてターゲットデバイス4にて処理可能な制御信号を出力したり、ターゲットデバイス4から送られるセンサ出力等の情報を実行環境で実行されているユーザプログラムに提供したりする機能を実現する。
 通信部34は、ネットワークNWやその他の通信回線を介して、GUIコントローラ設計支援装置1、入力デバイス2、ターゲットデバイス4等との通信を行う。具体的には、エンジン3は、通信部34を介し、GUIコントローラ設計支援装置1からのユーザプログラムの受信、入力デバイス2からの操作入力の内容の受信、ターゲットデバイス4への制御信号の送信、ターゲットデバイス4からのセンサ出力の受信等を行う。
 ターゲットデバイス4は、GUIコントローラによる操作の対象となるデバイスである。ターゲットデバイス4は、例えば、ドローン、ラジコンカー、ロボット等の物理デバイスや、3Dモデル等の仮想空間で動作するデバイスとするとよい。ターゲットデバイス4は、制御部40、記憶部41、駆動部42、センサ部43及び通信部44を備える。
 制御部40は、制御部40に記憶されているファームウェア等のプログラムを実行することによりターゲットデバイス4の制御を司る。制御部40は例えば、マイコン、CPU等により実現される。
 記憶部41は、エンジン3にて動作するドライバからの送信信号に応じて動作するプログラム(いわゆるファームウェア)を記憶する。駆動部42は、ターゲットデバイス4の動作を実現する部材であり、例えば、モータ、アクチュエータ、及びこれらのドライバ等により構成される。センサ部43は、ターゲットデバイス4の周囲から種々の情報を取得するセンサ類により構成される。センサ部43は、例えば、カメラ、加速度センサ、GPS受信装置、測距センサ、赤外線センサ等を備えるとよい。
 通信部44は、ネットワークNWやその他の通信回線を介して、エンジン3との通信を行う。すなわち、ターゲットデバイス4は、通信部44を介してエンジン3から制御信号を受信し、必要に応じてセンサ部43で取得した情報をエンジン3に送信する。
〔コントローラセット〕
 続いて、GUIコントローラを定義するコントローラセットCLについて説明する。
 コントローラセットCLは、コントローラパーツのインスタンスの集合(リスト)、ユーザが作成した操作に応じた処理を定義するプログラム(ユーザプログラム)を含んでいる。
 コントローラセットCLを構成する各コントローラパーツは、後述のコントローラパーツ編集機能を用いてユーザにより配置や外観が定義される。GUIコントローラは、コントローラセットCLに含まれる複数のコントローラパーツを組み合わせてその外観が定義されることになる。ユーザプログラムは定義済みのコントローラパーツを利用し、任意のプログラムを実装したものである。
 コントローラセットCLは静的属性として、GUIコントローラをグローバルで一意に特定するための識別情報であるUUID(Universally Unique Identifier)、コントローラ付与された名称であるコントローラ名称、コントローラの変更履歴を管理するための変更履歴番号、コントローラが対象とするデバイスを示すドライバタイプ、当該コントローラセットにより定義されるGUIコントローラを表示する際の入力デバイス2の向き(縦/横)を示すデバイスオリエンテーション、GUIコントローラの各パーツや背景を表現(描画)するための画像を示すスキン情報、コントローラセットCLに含まれるユーザプログラムを実行する実行環境の選択設定等を含んでいる。
 コントローラパーツは、GUIコントローラに配置して利用できる部品であり、ユーザによる操作入力に応じて様々な制御パターンを実現する。1つのコントローラセットにコントローラパーツとして複数のインスタンスを追加することが許容され、個々のコントローラパーツにはユニークな識別情報が付与される。ユーザプログラムでは、この識別情報で各コントローラパーツのインスタンスを識別して利用することができる。
 コントローラパーツにはさまざまなタイプが存在する。コントローラパーツは、それぞれのタイプごとに特有の属性や状態、振る舞いを持っており、無制限にインスタンス化し、インスタンス毎に識別してユーザプログラム上から利用することが可能とされる。
 各コントローラパーツは、共通属性として、コントローラ内で一意の名称であるパーツ名称を含んでいる。コントローラパーツのタイプとしては、ジョイスティック、十字キー、ボタン、スイッチ、スライダ、ダイヤル、ジェスチャ、文字列出力エリア、動画/画像出力エリア等が準備されている。これらのコントローラパーツの各タイプについて、設定可能な定義属性(静的属性)や状態属性(入力状態)が保持される。
 定義属性は、予め定義された変化しない属性である。状態属性は、プログラムの実行状態や、ユーザのコントローラ操作状態に応じて変化する属性である。例えば、ジョイスティックについては、定義属性として、表示サイズ、最小値、最大値、表示位置、アクティブ状態での表示色、枠外判定精度、軌道判定タッチ回数、ユーザプログラムに操作入力を通知する頻度を示すプログラム通知頻度等が定義される。各コントローラパーツは、オーバーレイ設定可能なパーツ以外、表示上重ならないようその表示位置が定義される。また、状態属性としては、アクティブフラグ、開始座標情報、移動前座標情報、移動後座標情報等がプログラムの実行状態や、ユーザのコントローラ操作状態に応じて記録・保持される。
 続いて、GUIコントローラ設計支援装置1により提供される、コントローラセット編集機能、実行環境編集機能、ドライバ編集機能、コントローラパーツ編集機能、及びユーザプログラム編集機能について説明する。
〔実行環境編集機能〕
 実行環境編集機能は、制御部10が実行するプログラムとして実現される。実行環境編集機能は、ユーザプログラムが実行されるエンジン3上の環境である実行環境について、そのインスタンスを生成し、当該生成したインスタンスに対して様々な設定項目についての設定値の入力をする画面を提供する。この画面を介したユーザの入力により、設定値を変更することができる。エンジン3では、複数の種類の実行環境(例えば扱うスクリプト言語が異なるもの)を同時に利用することが可能とされ、実行環境編集機能では、利用可能な実行環境のいずれかを選択してその設定を編集することができる。
〔ドライバ編集機能〕
 ドライバ編集機能は、制御部10が実行するプログラムとして実現される。ドライバは、ターゲットデバイス4を制御するためにユーザプログラムから呼び出して利用するオブジェクトである。ドライバ編集機能は、ターゲットデバイス4を制御するドライバをユーザに選択させる画面を提供する。この画面にて、ユーザが所望のドライバを選択すると、エンジン3において選択したドライバのインスタンスが生成され、生成されたインスタンスに対し識別情報を付与する処理が実行される。ユーザプログラムは、この識別情報を指定して、所望のドライバを介したターゲットデバイス4の制御を実現する。ドライバ編集機能は、生成済みのドライバのインスタンスに対する設定項目を入力する画面を提供する。この画面を介したユーザの入力により、設定値を変更することができる。
〔コントローラセット編集機能〕
 コントローラセット編集機能は、制御部10が実行するプログラムとして実現される。コントローラセット編集機能は、表示部12に表示されるメニューにおいて、ユーザがGUIコントローラの編集を選択することで開始される。コントローラセット編集機能では、新規にコントローラセットを作成することも、既存のコントローラセットを編集することも可能とされる。新規にコントローラセットを作成する場合には、ユーザはその旨のメニューを選択する。また、既存のコントローラセットを編集する場合には、ユーザは記憶部11に記憶された既存のコントローラセットを選択する。新規作成、または、既存のGUIコントローラセットが選択されると、対応するコントローラセットのインスタンスが生成される。そして、そのコントローラセットに対応する実行環境を起動し、起動した実行環境に当該コントローラセットに含まれるユーザプログラムを登録する。また、コントローラセットのインスタンスへの参照が入力デバイス2に渡されるようにするとよい。
〔コントローラパーツ編集機能〕
 コントローラパーツ編集機能は、コントローラセットを構成する各コントローラパーツについて、様々な属性を編集する機能である。コントローラパーツ編集機能は、コントローラセット編集機能が実行された後に、表示部12に表示されるメニューにおいて、ユーザがコントローラパーツの編集を選択することで開始される。
 コントローラパーツ編集機能が開始されると、表示部12には、編集領域R1が表示される。編集領域R1は、入力デバイス2の画面に表示するコントローラパーツの配置、外観等を視覚的に確認しながら編集するための表示領域である。新規にGUIコントローラを作成する場合には、起動時の編集領域R1は空白の状態とされる。一方、既存のGUIコントローラを編集する場合には、編集領域R1には、起動時に選択されたコントローラセットに基づき保存済みのGUIコントローラが表示された状態とされる。
 ユーザは、編集領域R1内に所望のコントローラパーツを配置したり、配置済みのコントローラパーツを移動、削除、編集(各種属性値の変更)等を行ったりすることにより、自由にGUIコントローラを作成・編集することができる。編集領域R1に配置することができるコントローラパーツのひな形は記憶部11に予め記憶されている。そして、これらのひな形は、ユーザインタフェースを介してユーザが適宜選択して任意の位置に配置することができるように構成される。また、配置済みのコントローラパーツについては、タッチパネルに対するタップやマウスカーソルを合わせた状態でのクリックによって選択が可能とされ、いわゆるドラッグ操作により移動が可能とされる。また、配置済みのコントローラパーツに対しダブルクリック又はダブルタップをすると、当該コントローラパーツについての定義属性を編集することが可能とされる。
 変更内容を保存する操作や自動保存機能により、コントローラパーツの編集が確定されると、編集後のGUIコントローラに対応するコントローラパーツが記憶部11に記憶される。この時点で入力デバイス2では、参照するコントローラセットのインスタンスに基づき、インデックスにコントローラセットに含まれるコントローラパーツを登録、もしくは更新を実施する。
〔ユーザプログラム編集機能〕
 ユーザプログラム編集機能は、制御部10が実行するプログラムとして実現される。ユーザプログラム編集機能は、表示部12に表示されるメニューにおいて、ユーザがユーザプログラムの編集を選択することで開始される。ユーザプログラム編集機能では、新規にユーザプログラムを作成することも、既存のユーザプログラムを編集することも可能とされる。新規にユーザプログラムを作成する場合には、ユーザはその旨のメニューを選択する。また、既存のユーザプログラムを編集する場合には、ユーザは記憶部11に記憶された既存のユーザプログラムを選択する。
 ユーザプログラム編集機能が開始されると、表示部12には、編集領域R2が表示される。編集領域R2は、例えば、使用するプログラミング言語に応じて、ユーザプログラムのソースコードを編集可能なテキストエディタ、GUIブロックプログラミングを実現するためのエディタ等とするとよい。新規にユーザプログラムを作成する場合には、起動時の編集領域R2は空白の状態とされる。一方、既存のユーザプログラムを編集する場合には、編集領域R2には、起動時に選択されたユーザプログラムが表示された状態とされる。
 ユーザは、編集領域R2内においてユーザプログラムのソースコードを編集することができる。ユーザプログラムの中では、GUIコントローラ編集機能により作成したGUIコントローラに含まれているコントローラパーツや、ターゲットデバイス4に対応するドライバのインスタンスをそれぞれ識別情報により区別し、起動ブロック、エントリポイント(関数)、または変数として利用することができる。これらの利用可能なインスタンスは、ユーザインタフェースを介してユーザが適宜選択してソースコード内の任意の位置に挿入することができるように構成される。このようにして、ユーザは、各コントローラパーツに対する操作入力やドライバに対し、起動するプログラム(関数、起動ブロック)を紐づける。
 ユーザプログラムの編集が確定(登録操作など)すると、GUIコントローラ設計支援装置1の制御部10は、即座にプログラムの文脈を評価する。そして、文脈的に問題が無ければ、エンジン3の実行環境内でプログラム文脈が保持されることとなる。なお、いわゆるブロックプログラミングのように、ブロックとして文脈が保証されている場合には、文脈の評価を行わなくてもよい。
 変更内容を保存する操作や自動保存機能により、編集後のユーザプログラムが記憶部11に記憶され、ユーザが編集したプログラム言語に応じた実行環境を有するエンジン3に編集後のユーザプログラムを送信してユーザプログラムを登録することができる。なお、いわゆるブロックプログラミングのように、ブロックとして文脈が保証されている場合には、編集情報はユーザ操作に連動して即座に実行環境に登録される。
 続いて、以上で説明したGUIコントローラ設計支援装置1が適用されるリモートコントロール環境において、入力デバイス2に表示されるGUIコントローラによりターゲットデバイス4を制御する手順、および既存のGUIコントローラやユーザプログラムを編集し更新する際の処理の手順について説明する。
 編集が行われる前の状態として、入力デバイス2には編集前のGUIコントローラのコントローラセットが登録されており、エンジン3には編集前のユーザプログラムが登録されているものとする。
 図2は、入力デバイス2に登録されたGUIコントローラにより、エンジン3を介してターゲットデバイス4を制御する際の手順を示すフローチャートである。はじめにユーザは、上述のようにコントローラセット編集機能を用いてコントローラセットのインスタンスを生成する(ステップS100)。次に、コントローラセットインスタンスに応じたユーザプログラムの実行に必要なエンジン3の実行環境を起動する(ステップS110)。このとき、入力デバイス2にコントローラセットが登録される。また、エンジン3の実行環境にはユーザプログラムが登録された状態となる。ここで、「実行環境が起動している」状態とは、実行環境が、”main”関数として無限ループを実行しつつ、プログラム実行要求や登録、更新要求など、何らかのイベントを待機している状態である。なお、コントローラセットインスタンス生成(ステップS100)と実行環境の起動(ステップS110)は順不同である。
 入力デバイス2は、登録済みのGUIコントローラを表示部22に表示しつつ、入力部23(例えば表示部22に重畳されたタッチパネル)に対するユーザの操作入力を受け付ける(ステップS120)。受け付けられた操作入力の内容は、操作されたコントローラパーツのインスタンスに対応する識別情報、操作に伴い検知されたパラメータ値等を含む実行要求イベントとして、エンジン3で起動されている実行環境に送られる(ステップS130)。
 エンジン3において利用可能とされているドライバは、起動状態のターゲットデバイス4と接続され、制御信号やセンサ出力の送受信が可能な状態となっている。ドライバは、いわゆるKeep Alive方式により、接続状態を管理するとよい。一般に、ドライバは、実行環境で実行されるユーザプログラムからの呼び出しに応じて、ターゲットデバイス4に対し制御信号を送信する。また、ドライバは、ターゲットデバイス4からのセンサ出力に起因して、当該ドライバのインスタンスに対応する識別情報、センサ出力に伴う値等を含む実行要求を、エンジン3で起動されている実行環境に送る。
 入力デバイス2のGUIコントローラに対する操作やドライバからの要求により実行環境に対し実行要求イベントが発行されると、当該実行要求の元となったコントローラパーツやドライバのインスタンスに対応する起動ブロックもしくは関数が、当該実行環境に対するプログラム実行スタックとして登録される(ステップS140)。プログラム実行スタックに登録された処理は、”main”関数として実行されている無限ループのループ毎にイベント処理と共に順次実行されていくことになる(ステップS150)。
 入力デバイス2は、登録済みのGUIコントローラを表示部22に表示しつつ、入力部23(例えば表示部22に重畳されたタッチパネル)に対するユーザの操作入力を受け付け、その内容をエンジン3で起動されている実行環境に送るとともに、操作入力に応じてコントーローラパーツのGUI表現(外観)を変更する(例えばアニメーション表示等)。
 このような環境で、入力デバイス2に表示されたGUIコントローラに対する操作入力に応じて、エンジン3で起動している実行環境においてユーザプログラムの対応するエントリポイントが実行され、ドライバを介してターゲットデバイス4に対する制御が実行される。
 続いて、既存のGUIコントローラやユーザプログラムを編集し更新する際の処理について説明する。図3は、既存のGUIコントローラやユーザプログラムを編集し更新する際の処理の手順を示すフローチャートである。
 GUIコントローラやユーザプログラムを編集する場合、GUIコントローラ設計支援装置1にて、GUIコントローラ編集機能やユーザプログラム編集機能を用いて、コントローラパーツ定義、配置、ユーザプログラムの編集等を行う(ステップS200)。編集を終えた後、コントローラパーツ編集機能やユーザプログラム編集機能においてそれぞれの編集が確定すると(ステップS220)、コントローラセットについては入力デバイス2に、ユーザプログラムについてはエンジン3に、それぞれ登録がおこなわれる(ステップS240)。GUIコントローラやユーザプログラムの編集や登録は任意のタイミングで、入力デバイス2、エンジン3、ターゲットデバイス4の再起動を要さずに行うことができ、これによりGUIコントローラを構成する各コントローラパーツに対する操作と、ターゲットデバイス4の挙動をリアルタイムで系に反映させることができる。
 本実施形態のリモートコントロール環境では、上述とおり、エンジン3が、受け取った実行要求とエントリポイント(関数や起動ブロック)とを、実行要求に含まれるコントローラパーツのインスタンスの識別情報を利用して紐づける。編集後のGUIコントローラやユーザプログラムの登録が行われると、コントローラパーツのインスタンスの識別情報とエントリポイントとの対応関係が変更され得るが、この関係は編集後のユーザプログラムにおいて規定され、エンジン3の実行環境に登録されることになる(ステップS260)。また、GUIコントローラの構成を示すコントローラセットの更新が入力デバイス2に登録されると、更新の内容に応じて、入力デバイス2に表示されるGUIコントローラの表示、コントローラパーツからの通知等が変更される。
 起動している実行環境は、登録の前後に亘ってmain関数として無限ループを実行し続ける。更新後のGUIコントローラやユーザプログラムが登録されると、同名の関数や変数は新たな値に置き換わる場合があるが、更新の前にプログラム実行スタックに登録された実行要求に紐づく関数については、更新前のユーザプログラムにて規定されている関数が実行される。そして、更新後にプログラム実行スタックに登録された実行要求については新しいユーザプログラムにて規定されている関数が実行される(ステップS280)ことになる。
 以上で説明した本実施形態におけるGUIコントローラ設計支援装置によれば、柔軟かつリアルタイムに制御やグラフィック表現を変更可能なコントローラ装置のプログラミングを支援することが可能となる。
 なお、上記に本実施形態を説明したが、本発明はこれらの例に限定されるものではない。例えば、上記の実施形態では、GUIコントローラ設計支援装置1、入力デバイス2、およびエンジン3が個別のハードウェアとして実現されたが、これらのうちの複数又は全てを1つのハードウェア(例えば、1台のコンピュータ)により実現してもよい。また、前述の各実施形態に対して、当業者が適宜、構成要素の追加、削除、設計変更を行ったものや、各実施形態の特徴を適宜組み合わせたものも、本発明の要旨を備えている限り、本発明の範囲に含有される。
1 GUIコントローラ設計支援装置
2 入力デバイス
3 エンジン
4 ターゲットデバイス
NW ネットワーク

 

Claims (5)

  1.  入力デバイスのタッチパネルディスプレイに表示され、ターゲットデバイスを操作するための操作入力を受け付けるGUIコントローラの設計を支援するGUIコントローラ設計支援装置であって、
     複数のコントローラパーツを含んで構成され前記GUIコントローラを定義するコントローラセットを編集するためのコントローラセット編集手段と、
     前記コントローラセットに含まれる各コントローラパーツを編集するためのコントローラパーツ編集手段と、
     前記コントローラパーツに対する操作入力に応じた前記ターゲットデバイスの制御を規定するユーザプログラムを編集するためのユーザプログラム編集手段と、
     を備えるGUIコントローラ設計支援装置。
  2.  前記ターゲットデバイスを制御するために前記ユーザプログラムから呼び出して利用するオブジェクトであるドライバが動作するエンジンが前記ユーザプログラムを実行するための実行環境を起動している状態において、前記コントローラセット編集手段、および、コントローラパーツ編集手段にて編集された前記コントローラセットを、前記入力デバイスに登録するGUIコントローラ登録手段をさらに備える、請求項1に記載のGUIコントローラ設計支援装置。
  3.  前記ターゲットデバイスを制御するために前記ユーザプログラムから呼び出して利用するオブジェクトであるドライバが動作するエンジンが前記ユーザプログラムを実行するための実行環境を起動している状態において、前記ユーザプログラム編集手段にて編集された前記ユーザプログラムを、前記エンジンに登録するユーザプログラム登録手段をさらに備える、請求項1または2に記載のGUIコントローラ設計支援装置。
  4.  請求項1から3のいずれか1項に記載のGUIコントローラ設計支援装置と、
     タッチパネルディスプレイを備え、当該タッチパネルディスプレイにGUIコントローラを表示する入力デバイスと、
     前記ターゲットデバイスを制御するために前記ユーザプログラムから呼び出して利用するオブジェクトであるドライバが動作するエンジンと、
     を備えるリモートコントロールシステムであって、
     前記入力デバイスは、前記タッチパネルディスプレイに表示されたGUIコントローラに対するユーザの操作入力を受け付け、当該操作入力の内容を前記エンジンに送信し、
     前記エンジンは、前記入力デバイスから受け取った操作入力の内容に基づき、前記ターゲットデバイスを制御すべくドライバを動作させ、
     前記入力デバイスは、前記エンジンが前記ユーザプログラムを実行するための実行環境を起動している状態において、前記ユーザプログラムと関連付けられた前記GUIコントローラのコントローラセットを更新可能とし、
     前記エンジンは、前記ユーザプログラムを実行するための実行環境を起動している状態において、前記ユーザプログラムを更新可能とすることを特徴とするリモートコントロールシステム。
  5.  コンピュータを、請求項1から3のいずれか1項に記載のGUIコントローラ設計支援装置として機能させるプログラム。
PCT/JP2019/049488 2019-07-26 2019-12-17 Guiコントローラ設計支援装置、リモートコントロールシステム、およびプログラム WO2021019801A1 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
US17/044,596 US11249732B2 (en) 2019-07-26 2019-12-17 GUI controller design support device, system for remote control and program
JP2020508061A JP6684513B1 (ja) 2019-07-26 2019-12-17 Guiコントローラ設計支援装置、リモートコントロールシステム、およびプログラム
EP19926726.1A EP3798821B1 (en) 2019-07-26 2019-12-17 Gui controller design assistance device, remote control system, and program
CN201980043175.1A CN112840315B (zh) 2019-07-26 2019-12-17 Gui控制器设计支持装置、远程控制系统和程序

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2019-137463 2019-07-26
JP2019137463 2019-07-26

Publications (1)

Publication Number Publication Date
WO2021019801A1 true WO2021019801A1 (ja) 2021-02-04

Family

ID=73747854

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2019/049488 WO2021019801A1 (ja) 2019-07-26 2019-12-17 Guiコントローラ設計支援装置、リモートコントロールシステム、およびプログラム

Country Status (4)

Country Link
EP (1) EP3798821B1 (ja)
JP (1) JP2021022363A (ja)
CN (1) CN112840315B (ja)
WO (1) WO2021019801A1 (ja)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011193382A (ja) * 2010-03-16 2011-09-29 Toshiba Corp 監視操作装置および監視制御システム
WO2014061093A1 (ja) * 2012-10-16 2014-04-24 三菱電機株式会社 画面作成装置および画面作成方法
JP2017123148A (ja) * 2015-10-19 2017-07-13 パロット ドローンズ 操縦コマンドを保持するようになっているドローン操縦装置及び関連する制御方法
JP2019085041A (ja) 2017-11-09 2019-06-06 株式会社Clue ドローンを操作するための端末、方法及びそのためのプログラム

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030226068A1 (en) * 2002-05-28 2003-12-04 Rule John Scott Run time method of control system interface design and device control
US9632665B2 (en) * 2004-09-08 2017-04-25 Universal Electronics Inc. System and method for flexible configuration of a controlling device

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011193382A (ja) * 2010-03-16 2011-09-29 Toshiba Corp 監視操作装置および監視制御システム
WO2014061093A1 (ja) * 2012-10-16 2014-04-24 三菱電機株式会社 画面作成装置および画面作成方法
JP2017123148A (ja) * 2015-10-19 2017-07-13 パロット ドローンズ 操縦コマンドを保持するようになっているドローン操縦装置及び関連する制御方法
JP2019085041A (ja) 2017-11-09 2019-06-06 株式会社Clue ドローンを操作するための端末、方法及びそのためのプログラム

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP3798821A4

Also Published As

Publication number Publication date
EP3798821A1 (en) 2021-03-31
CN112840315A (zh) 2021-05-25
EP3798821C0 (en) 2023-12-06
CN112840315B (zh) 2022-11-01
EP3798821B1 (en) 2023-12-06
JP2021022363A (ja) 2021-02-18
EP3798821A4 (en) 2021-07-07

Similar Documents

Publication Publication Date Title
KR102042115B1 (ko) 로봇의 동작프로그램 생성방법 및 로봇의 동작프로그램 생성장치
US7713126B2 (en) Video game control program and video game device
AU2015201798B2 (en) Graph display control apparatus, graph display control method, and graph display control program
JP2014032529A (ja) Plcシステム、その作画エディタ装置、プログラマブル表示器
CN111176780A (zh) 一种轨道交通站场图通用按钮显示及控制的装置和方法
KR20150074345A (ko) 로컬 기기에서의 리모트 앱 실행 방법
JP2017107355A (ja) スケジュール作成支援装置および方法
WO2021019801A1 (ja) Guiコントローラ設計支援装置、リモートコントロールシステム、およびプログラム
JP6684513B1 (ja) Guiコントローラ設計支援装置、リモートコントロールシステム、およびプログラム
JP6939662B2 (ja) プログラミング支援装置、プログラミング支援方法及びプログラム
JP5087031B2 (ja) 表示制御装置、入力操作装置、表示システム、及び管制システム
JP2008310442A5 (ja)
US11709584B2 (en) User interface development assistance device, user interface development assistance method, and non-transitory computer-readable recording medium
JP2009163750A (ja) 情報処理装置
JP2008310442A (ja) 遠隔操作システム、制御方法及びプログラム
JP7247239B2 (ja) iOSを搭載する移動機端末のポインタを操作する自動設定プログラム
JP2018088262A (ja) 情報処理システム、情報処理装置、その制御方法とプログラム
JP7424028B2 (ja) ロボット操作端末
KR100946672B1 (ko) 햅틱 인터페이스를 이용한 3차원 장면에서의 카메라 네비게이션 방법 및 시스템
JP2001022492A (ja) 情報処理装置
JP2002207546A (ja) 入力装置および入力方法
JP4350256B2 (ja) プロパティ設定方法及びプロパティ設定処理を含むcadプログラムを記憶してなる媒体
JP2021094624A (ja) ロボットのプログラム作成支援装置
JP2981563B2 (ja) 電子機器
JPH03134713A (ja) Nc装置付き工作機械のリモート診断制御装置およびそのリモート診断制御方法

Legal Events

Date Code Title Description
ENP Entry into the national phase

Ref document number: 2020508061

Country of ref document: JP

Kind code of ref document: A

ENP Entry into the national phase

Ref document number: 2019926726

Country of ref document: EP

Effective date: 20201103

NENP Non-entry into the national phase

Ref country code: DE