ROS-SysML Converter

ROS + SysML (astah-plugin)

ROS (Robot Operating System) is quite easy for prototyping  robotic systems.
However, have you ever thought that the ROS is not familiar to the system designing process?
I propose one solution “SysML with ROS”. SysML is standardized modeling language which is similar to UML.
For more information of ROS, please visit official web.

1. Author

Yuki Suga, Ph.D.
@Sugar Sweet Robotics (http://ssr.tokyo)
@Tokyo Opensource Robotics Kyokai Association (http://opensource-robotics.tokyo.jp)
@Waseda University (http://ogata-lab.jp)
@Sibaura Institute of Tech (http://www.hri.ee.shibaura-it.ac.jp)

2. GOAL

Fully support ROS system design where …
1. Importing ValueTypes from ROS file system (rosmsg, rossrv …)
2. Importing Existing ROS system (like rqt_graph)
3. Exporting package from SysML model.

3. SysML – ROS mapping

!! I NEED DISCUSSION !!

3.1 Block Definition Diagram

Block definition diagram can define the static condition of the package.

Package

Package of SysML is catkin’s package.

launch

Block with <roslaunch> stereotype.

node

Block with <<rospy_node>> or <<roscpp_node>> stereotype

msg

Value Types.

srv

Interfaces.

Topic

Value Types. Their data-types are the generalization of the topic.
The value types must have <rostopic> stereotype.

Parameter

Value properties of node block represent parameter.

3.2 Internal Block Diagram

Launch includes nodes as parts. The connection among the nodes can be defined in IDD.

Name of node

Name of part is name of node. It can have constraints that are the parameter settings in launch.

Topics published/subscribed by node

Ports’ name of the node is topic name.

Remapping Topics

Ports must have connections to other ports. Connection must be Item flow, and its convey parameters are Value types.


In the figure, rosnode “controller0” ‘s topic named “vel_out” is remapped to “/velocity”.

4. Implementation

I implemented the modeling tool as a astah-SysML plugin.
For astah-SysML, please visit official page.

5. Current Status

Currently, “Value Type Import” function and “Exporting SysML to ROS catkin” is partly supported.

Support Environment: Ubuntu 14.04 + ROS Indigo + astah-SysML

6. Download

Source : Sugar Sweet Robotics’s github
How to build : http://astah.net/features/sdk
Binary : Constructing…

7. Tasks

I need more discussion of the mapping problem between ROS and SysML.

1. Mapping ROS and SysML
Current Mapping supports very simple model, but this might be difficult to explain “tf”, “topics without connection”, and “dynamic reconfigurable parameters”.

2. Importing function of ROS nodes and topics
The collectable information of active ROS systems is lacking for
A. The original topic name remapped from,
B. Which node is using/owning the parameter
C. Which node is using the service

If you had any ideas, please contact me.

8. Contact

Use contact tab of this page, or follow my twitter @ysuga.