FIROSOPHY (Finite State Machine for RT System reconstruction)


FIROSOPHY is a development tool which realizes “mode-change”, “error-handling”, and “scenario description”.
FIROSOPHY automatically destroys and reconstructs RT-system.

*RT System is a robot system (or system built of robotic elements like sensors and actuators) which is constructed of the Robotics Technologies Components (RTCs). RTC is a controller software which manages robotic elements. See what is RT middleware?

Demonstration Video

Demo 1


Introduction of FIROSOPHY


In this video, the mode changing function is realized by FIROSOPHY by reconstructing the RT-system.

In the video, a simulator is shown. In the simulated world, a fungus eater robot is shown. The robot searches fungus as energy supply, and collects ore as its task.

In this system, FIROSOPHY uses the battery level to change the robot’s mode. If battery is low, the robot searches for fungus. If battery high, it collects ore.

If battery is enough, the robot’s direction is given by the direction of the nearest ore. The battery level is measured by an RTC named “LowerThan” which simply checks the value received by its InPort, and it turns to INACTIVE state spontaneously if the value is lower than a specific value defined by the RTC’s configuration. When the RTC’s state is changed, FIROSOPHY deactivate all RTCs and destroy the connection. Then, FIROSOPHY reconstruct the “battery low” mode system. In this system, the robot’s direction is given by the nearest fungi. The battery level is monitored by the “GreaterThan” RTC which changes its state if the battery level is greater than its configuration.

FIROSOPHY


This video shows basic usages of FIROSOPHY. Its interface is really intuitive and you can just draw a finite state machine diagram to describe its behavior.

FIROSOPHY


In this demonstration, FIROSOPHY is used for error-handling.

When RTCs turn to ERROR state, FIROSOPHY can reset the RTC.
Suppose a byped walking robot.
An RTC monitors its posture (maybe 3 axis acceleration sensor) and it turns to ERROR state when the robot falls.
FIROSOPHY provides the error management system. It can changes the system connection to the “stand-up mode system” by checking the monitor RTC’s state.
This framework enables developers to focus on the primitive behaviors. This might be suitable for developers to make prural motions and behaviors using one-type platform robot.

Abstract
FIROSOPHY (FInite RObotics System OPeration Handler Ysuga) is a software which provides robot developers a Model Driven Architectures (MDA).

RT-middleware abstracts the robot’s hardware dependencies and gives standardized interfaces.

However, the RT-middleware’s framework is not enough to describe more complicated, service-oriented system.

Using current RT-middleware framework, most of the robotic system is center oriented controlling system. The center controller RTC manages all input and output, so the behavior rules and sequences are coded into the center RTC. This would be unsuitable for continuously improving the whole service.

In FIROSOPHY, robotic systems are described as finitestate machie. Each state implies the robot’s motion elemen’ and the sequence of the motion is described as a transition of states.


Using RT middleware, each state is an RT system condition (connection and configuration), and transition implies RTCs’ activation/deactivation and connect/disconnect. Therefore, developers prepare the RT systems which realize periodic or one shot motion, and describe the serviceby arranging and connecting those RT system.

Each state in FIROSOPHY is RT-System (connected RTCs), and the transition is destruct/reconstruct the connections and/or activate/deactivate RTCs. Therefore, developers can describe a sequential behavior by connecting those states. For example, you can connect “Walk”->”Cratch”->”Reach”->”Grasp”->”Stand Up”->”Walk”, this will realize a service.

This will integrate motion primitives, and developers can focus on the development of the RT-system that simply realize one motion primitive.
Moreover, suppose if the manuevour is changed. At first the upper body humanoid robot is on the vehicle platform. The vehicle has SLAM mechanism and can be navigated in a specific position. According to the improvement of the development, the robot’s platform is changed to the quad-pod biped mechanism (like centaurus). The service layer (FIROSOPHY) is re-usable if the manuevouring RT-system is exchanged to one for biped mechanism. You can reuse the framework that provides your own service.

Download

License


GPL v2.

GITHUB

FIROSOPHYは以下のパッケージに分割して開発しています.
すべてのファイルにEclipseのプロジェクトファイルが追加されていますので,Eclipseにインポートしてください.EGitを使うと便利です.
OpenRTSystemBuilderはOpenRTM-aistが必要になるので,プロジェクトのビルドパスをOpenRTM-aist-Java***.jarと,付属してるcommons-cli-***.jarに設定してください.Windowsのインストーラでインストールすると,C:\Program Files\OpenRTM-aist\1.0\jarの中にあります.

OpenStateMachine


有限状態マシンを構成するためのライブラリで,FIROSOPHYの根幹です.
各イベントにおける処理の追加や,ガードの追加がしやすいように工夫してあります.
http://github.com/ysuga/OpenStateMachine

OpenStateMachineUI


有限状態マシンのライブラリを表示するためのパネルが中心です.
http://github.com/ysuga/OpenStateMachineUI

OpenRTSystemBuilder


RTシステムを構築,変更,破棄するためのライブラリです.RT System Editorと同じ形式のXMLファイルを編集できます.
OpenRTM-aist-Java-1.0に依存しています.
http://github.com/ysuga/OpenRTSystemBuilder

FIROSOPHYEngine


OpenStateMachineとOpenRTSystemBuilderを合わせたライブラリです.FIROSOPHYの処理エンジンで,GUI無しでも動くことを目指しています.
http://github.com/ysuga/FIROSOPHYEngine

FIROSOPHY


FIROSOPHYを使うためのGUIです.なるたけリッチなシステムを目指しています.
http://github.com/ysuga/FIROSOPHY

使い方
Under Construction…