The present invention relates to processing for enabling different development support devices to operate in cooperation.
In advanced development support or advanced development of automated driving, mainstream development is development using MATLAB/Simulink (MATLAB (registered trademark), Simulink (registered trademark)) for development of control algorithms and signal processing or using Robot Operating System (ROS), which is an open software providing libraries or tools for supporting development in the robot development field.
Now there is a demand for connecting these different development support devices via a network to be able to perform simulation.
This would enable the advantages and features of each of development support devices to be incorporated individually, facilitating implementation of simulation using mixed technologies in cooperation.
PTL 1 describes an information processing device and a method for using a plurality of simulators in cooperation. The disclosed device and method are a device and a method in which a scenario execution unit gives each of simulators an execution instruction of an operation scenario having time information necessary for the simulator so as to allow each of the simulators to work in synchronization.
PTL 2 describes a simulation device having a cooperative simulation environment including a system simulator and a CPU simulator using a microcomputer, in which time-stamped data is exchanged between both of the simulators and the CPU simulator generates an interrupt in accordance with the time-stamped data to perform synchronization.
PTL 1: JP 2014-29639 A
PTL 2: JP 2013-84163 A
In the technique of PTL 1, an external input is used to generate a scenario and the scenario is executed to allow the simulators to work in cooperation. At this time, the input and output required by each of the simulators need to be set in advance.
In the technique of PTL 2, the CPU simulator synchronizes one of the simulators and emphasizes it in accordance with a synchronization signal. Similarly to PTL 1, the input and output required by each of the simulators need to be set in advance.
In a cooperative simulation, as described above, connecting a plurality of development support devices capable of performing different simulation verifications, there occurs a Problem of connection of these devices in a case where there is a difference in the simulation model or network model between one development support device and the other development support device. In a case where one development support device uses the time period as the activation factor, and the other development support device uses the transmission/reception event with the communication partner as the activation factor, there is a need to set communication models and transmission/reception processing with the connection destination so as to match each of the development support devices.
For this purpose, there has been a need to set a message to be transmitted or received on one development support device and manually perform setting on the other development support device, adapted to match the network model and the specifications of the message to be transmitted or received of the one development support device, which has been a problem of increased development man-hours.
In order to solve the above-described problem, there is provided a technology, in cooperative simulation of development support devices in which network models of the communication partner or messages to be transmitted or received are different, in which a communication definition file executable by one development support device is generated by the other development support device, and the one development support device reads a communication definition file to automatically establish a message to be transmitted or received by the other development support device.
With the configuration in which one development support device generates a communication definition file and the other development support device reads the communication definition file in a cooperative simulation between development support devices in which network models and messages to be transmitted or received are different, it is possible to automatically construct a network and establish a message to be transmitted or received, enabling activation of the other development support device at the timing of the one development support device. The configuration described above eliminates a need to perform installation processing on the other development support device, leading to enhancement of the development efficiency.
Embodiments of the present invention will be described below with reference to the accompanying drawings.
A mechanism for constructing a network environment and activating and terminating a system as a cooperation partner in a cooperative simulation environment using MATLAB/Simulink (MATLAB (registered trademark), Simulink (registered trademark)) and Robot Operating System (ROS) according to a first embodiment will be described with reference to the drawings.
Examples of the external data transmission/reception device 9 include Robotics System Toolbox that can construct a network model of the Robot Operating System (ROS) provided by MATLAB/Simulink (MATLAB (registered trademark), Simulink (registered trademark)). The development support device 1 further includes an external setting file read execution device 3 and a synchronization device 8.
The development support device 2 is an example of using a simulator that uses a communication event as an activation factor, and includes a distributed system in which a plurality of pieces of software having individual functions is executed simultaneously as nodes with the nodes exchanging data with each other. This device is provided as a personal computer having a publish-subscribe network model, including the simulator 15 installed to be executed by a simulator execution unit 16, and further equipped with an external data transmission/reception device 17.
Examples of this include Robot Operating System (ROS), which is a software framework for robots as open source software that provides a variety of libraries and drivers for robot development. In the present embodiment, the simulator 15 includes a calculation function group developed by a developer and a library group provided by ROS in addition to the simulator to be verified. The development support device 2 further includes a communication definition generation device 10 and a development support device management device 12.
Although
The communication definition generation device 10 is a device that preliminarily generates a communication definition file 11 before simulation verification. The communication definition file 11 is a file generated in a scripting language that is a simple program language. Here, although the file is defined as a scripting language, there is no limitation in the language or file. In the present embodiment, it is assumed that MATLAB/Simulink (MATLAB (registered trademark), Simulink (registered trademark)) includes a MATLAB source code that can be read and executed.
The communication definition reading unit 5 reads and executes the communication definition file 11, whereby the development support device 1 automatically reads and executes the defined nodes, messages to be received, and messages to be transmitted so as to allow the messages to be automatically established. The embodiment is not limited to the programs. Alternatively, a graphical user interface and other methods may be used.
In communicating between the development support device and the development support device 2, it is necessary to manually install messages to be transmitted and received between the development support devices, which increases the development man-hours. However, generating the communication definition file on the development support device 2 would eliminate necessity of performing installation on the development support device 1, leading to the reduction of the development man-hours. Furthermore, the development support device 1 automatically reads the definition file, leading to enhancement of the development efficiency.
The development support device management device 12 includes an external development support device management unit 13 and a development support device activation unit 14. The development support device management device 12 mainly manages the system and is formed by a program or a graphical user interface (GUI).
The development support device activation unit 14 manages the simulator 15 and the external development support device management unit 13.
The external development support device management unit 13 is a device that instructs the cooperation target development support device to perform activation and execution. In response to an activation instruction from the external development support device management unit 13, the development support device execution unit 4 activates the development support device 1 and the simulation model 6 in response to the request.
The synchronization device 8 is a device that adds time information to a message transmitted or received from the development support device 2 and transmits or receives information in accordance with the execution period of the development support device 1. For example, a message transmitted by the development support device 2 and received by the development support device 1 might have an indefinite delay due to the fact that the message is a result of calculation performed 1 [s] before, for example. For this reason, it is possible to enhance the reliability of the simulation result by performing control to minimize the time difference in simulation performed by the development support device 1 and the development support device 2.
After the activation processing of the development support device 1, the simulation model 6 is executed in accordance with the sampling period (S114), and the simulation model processing results or the like are stored in the model storage device (S115). Information to be transmitted by the simulation model 6 is stored in the synchronization device 8 (S116). Time information is added (S117) to the information to be transmitted that has been stored in the synchronization device 8, and then, the information to be transmitted is transmitted to the development support device 2 in accordance with the transmission period set in the communication definition file (S118). The above processing is repeated until an end signal from the development support device 2 is received.
After the activation processing in the development support device 2 as described above, the external data transmission/reception device 17 receives information and transmits the received information to the simulator execution unit (S124). The simulator execution unit 16 gives an execution instruction to the simulator 15 from the received information (S125). The simulator 15 executes processing in accordance with the execution instruction from the simulator execution unit 16 (S126), and transmits the execution result of the simulator to the outside (S127). The above processing is repeated until the simulator 15 is finished. When the simulator 15 is finished (S128), an end signal is transmitted to the development support device 1 (S129), so as to finish the cooperative simulator.
According to the first embodiment, one development support device creates a communication definition file that defines a communication model of the other development support device, and the other development support device automatically incorporates the communication definition file, enabling easy construction of an environment for mutual communication. Moreover, in the case of a development support device that performs reception from a publish-subscribe communication model such as ROS, input/output is performed in synchronization with the control period between the development support devices by the synchronization device 8, making it possible to implement a highly accurate cooperative simulation.
A second embodiment will describe an example of communication definition for achieving cooperative simulation in a cooperative simulation in which a plurality of development support devices is connected.
Based on the above configuration, the following will describe generation of a communication definition file in a case, for example, where the development support devices that cooperate with Simulink1 are ROS1 and ROS3, and where the development support device that cooperates with Simulink2 is ROS2.
Since the cooperative simulation of Simulink 2 and ROS2 is similar to the case of the first embodiment, detailed description will be omitted. In a case where each of ROS1 and ROS3 cooperates with the same Simulink1, ROS1 and ROS3 individually generate communication definition files.
Since the processing content of each of lines has been described in
The above embodiments would not limit a combination, and individual embodiments may be combined.
In the case of the above-described cooperative simulation environment including the plurality of development support devices with different functions, each of ROS1, ROS2, and ROS3 flexibly defines, in the communication definition file, information to be transmitted to or received from Simulink1 or Simulink2, and then, the corresponding MATLAB/Simulink (MATLAB (registered trademark), Simulink (registered trademark)) performs automatic setting for this, enabling communication to be easily established, leading to implementation of a plurality of cooperative simulations. In addition, parallel distributed processing that requires a lot of man-hours for installation can be easily implemented by a device that can generate and read communication definition files, enabling the developer to perform parallel development and reduce the development man-hours.
The present invention is not limited to the above-described embodiments, but may include various types of modification. For example, the above-described embodiments give detailed explanation just to allow the present invention to be clearly understood. Therefore, the present invention is not limited to the case having all of components in the configuration. In addition, a portion of configuration of an embodiment can be replaced with a portion of configuration of another embodiment. A portion or the configuration of another embodiment can be added to a certain embodiment. Moreover, regarding the portions of the configuration of each of the embodiments, addition, deletion, and replacement from another configuration would be possible. Moreover, the above configurations, functions, processing devices, or the like, may be implemented by hardware by designing a portion or all with an integrated circuit, for example. Moreover, each of the above-described configurations, functions, or the like, may be implemented with software by a processor by interpreting and executing a program designed to implement individual functions. Information such as programs, tables, files used to implement each of functions can also be located in a recording device such as memory, a hard disk, a solid state drive (SSD), or a recording medium such as an IC card, SD card, and DVD.
1 development support device
2 development support device
3 external setting file read execution device
4 development support device execution unit
5 communication definition reading unit
6 simulation model
7 model storage device
8 synchronization device
9 external data transmission/reception device
10 communication definition generation device
11 communication definition file
12 development support device management device
13 external development support device management unit
14 development support device activation unit
15 simulator
16 simulator execution unit
17 external data transmission/reception device
19 network connecting each of development support devices
21 external setting file read execution device
22 communication definition reading unit
23 communication definition generation device
24 communication definition file a
25 communication definition generation device
26 communication definition file b
Number | Date | Country | Kind |
---|---|---|---|
2017-143188 | Jul 2017 | JP | national |
Filing Document | Filing Date | Country | Kind |
---|---|---|---|
PCT/JP2018/026819 | 7/18/2018 | WO | 00 |