Robotics middleware: Difference between revisions

Content deleted Content added
m Cleaned up using AutoEd
Ysuga (talk | contribs)
Robotics middleware projects: Add RT-middleware Projects. RTM is a robotic software standardization project mainly discussed/defined in OMG.
Line 50:
* <u>Fault tolerance and robustness aspects:</u> Though the Player project has been active for quite a long time, there have been no considerable developments to improve its fault tolerant capabilities. One of the features which can be accounted for is the libplayererror library, which can be used to perform error reporting. Also, there are some procedures to perform thread locking in order to avoid conflicts. From the perspective of robustness, it should be possible to implement planning, learning, state estimation or similar functionalities for an application based on Player. In the future the authors want to implement a resource awareness attribute, i.e. enable the programs to perform resource discovery and change their behavior according to the availability of resources.
 
|}
 
 
=== RT-middleware Projects ===
{| class="wikitable" style="border:1px solid lightblue" align="justify" valign="center"
|-
| style="border:1px solid lightblue" align="justify" valign="center" |
* <u>System organization/decomposition</u> - [[RT_middleware|RT-middleware]] (Robotics Technology Middleware) is a common platform standards for Robots based on the distributed object technology.<ref>Noriaki ANDO, Takashi SUEHIRO, Kosei KITAGAKI, Tetsuo KOTOKU, Woo-Keun Yoon, "RT-Middleware: Distributed Component Middleware for RT (Robot Technology)", 2005 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS2005), pp.3555-3560, 2005.08, Edmonton, Canada</ref> RT-middleware supports the construction of various networked robotic systems by the integration of various network enabled robotic elements called [[RT-Components]]. The specification standard of the RT-component is discussed / defined by the [[Object Management Group]] (OMG).<ref>[http://www.omg.org/spec/RTC/1.1/ Robotics Technology Component Specification version 1.1], Object Management Group (OMG)</ref>
|-
| style="border:1px solid lightblue" align="justify" valign="center" |
* <u>System organization/decomposition</u> - In the RT-middleware, robotics elements, such as actuators, are regarded as [[RT-components]], and the whole robotic system is constructed by connecting those RT-components. This distributed architecture helps developers to re-use the robotic elements, and boosts the reliability of the robotic system. Each RT-component has port as an endpoint for communicating other RT-components. Every port has its type and the ports which have the same type can be connected each other. RT-components also has its state, so the RT-components behaves as state machines. The states that RT-components can have are CREATED, INACTIVE, ACTIVE, and ERROR, and the states and behaviors are controlled by the execution-context. If developers want to change the behavior of their RT-components, the execution-context can be replaced at run-time.
|-
| style="border:1px solid lightblue" align="justify" valign="center" |
* <u>Implementations</u> - RT-middleware is just standard of the Robotics platform softwares. Therefore, there are several implementations of RTM. RT-middleware does not assure the communicability between the RTM implementations, however, the bridging tools that intermediate the communication can be easily created because the state machines and their programming model is defined. Indeed, almost all RTMs have already prepared the bridge tools (or native support) for communication with OpenRTM-aist. Implementations of the RT-middleware are as follows:
** "[[OpenRTM-aist]]" is an implementation of the RT-middleware on the basis of [[CORBA]] platform developed by [[National Institute of Advanced Industrial Science and Technology]]. Using CORBA's characteristics, OpenRTM-aist is available for multi-platform (Windows, Linux, OSX, VxWorks, TOPPERS, QNX ...) and multi-language (C++, Python, Java ..) environment.<ref>OpenRTM-aist official website, http://www.openrtm.org/</ref>
** "OpenRTM.NET" is an implementation of the RT-middleware for the [[.NET Framework]] platform.<ref>SEC. Co., Ltd., [SEC, Robot Site http://www.sec.co.jp/robot/download_rtm.html]</ref>
** "RTM on Android" is an implementation on [[Android OS]] that is communicable with OpenRTM-aist<ref>SEC. Co., Ltd., [SEC, Robot Site http://www.sec.co.jp/robot/download_rtm.html]</ref>.
** "RTC Lite" is a modified RT-middleware for embedded or small-resource systems such as PIC (Microchip), ARM, H8 (Runesus), and so on<ref>SEC. Co., Ltd., [SEC, Robot Site http://www.sec.co.jp/robot/download_rtm.html]</ref>.
** "RTM Safety" is a market available implementation of RTM to pass the IEC 61508 standard.<ref>SEC. Co., Ltd., [RTM Safety http://www.sec.co.jp/english/business/rtmsafety/index.html]</ref>
|}