In this paper we present a formal approach to robot motion specification. This motion specification takes into account three elementary behaviors that suffice to define any robot interaction with the environment, i.e. free motion, exerting generalized forces and the transition between both of these behaviors. These behaviors provide a foundation for general motion generation taking into account any sensors, any effectors and the capability to exchange information between embodied agents. This specification can be used both for the definition of robot tasks and implementation of robot control software, hence both of those aspects are presented in this paper. This formal approach was used for the implementation of the MRROC++ robot programming framework. Two-handed manipulation of a Rubik’s cube is used as an exemplary task. Extensive experimentation both with the presented formalism and the MRROC++ framework showed that the imposed formal rigor eliminates many errors at the software specification phase, produces well-structured control software and significantly speeds up and simplifies its implementation. These advantages are mainly due to the fact that the proposed formal specification tool is derived from operational semantics used in computer science for the definition of programming languages, thus a close relationship between abstract definition and the implementation of the control system resulted.
Robots, in contrast to typical computational systems, affect the physical environment directly. Therefore, other assumptions must be considered for task management procedures in these system types. Robots coexist with humans in the environment and act upon potentially dangerous objects (e.g., a cooker); hence, extra safety procedures in robot task harmonisation must be ensured. Additionally, an algorithm that schedules tasks for a robot and optimises the robot's operation needs to consider the robot motion time, dynamics of the physical processes, changes in the robot user preferences and changes in the environment made by other habitants. In this article, we investigate the problem of switching between various independent tasks safely and state requirements for a control system resolving it. The tasks are uploaded to a store, launched on a robot at the user's request (similar to smartphone applications) and scheduled following a configurable algorithm. Furthermore, we design a model of systems satisfying the requirements. The systems are structured with agents of different classes. We propose a task-switching procedure and dedicated states of the finite-state machines describing the operation of the agents. Finally, we present a TaskER framework implementing the model, and we verify the model through the execution of an exemplary system in scenarios showing the benefits of the model implementation. As a result of our approach application, the robot tasks can be safely interrupted, postponed, resumed, and potential danger (e.g., leaving a cooker on for a long time) can be minimised.
The paper presents the Embodied Agent-based Robot control system modelling Language (EARL). EARL follows a Model-Driven Software Development approach (MDSD), which facilitates robot control system development. It is based on a mathematical method of robot controller specification, employing the concept of an Embodied Agent, and a graphical modelling language: System Modelling Language (SysML). It combines the ease of use of SysML with the precision of mathematical specification of certain aspects of the designed system. It makes the whole system specification effective, from the point of view of the time needed to create it, conciseness of the specification and the possibility of its analysis. By using EARL it is possible to specify systems both with fixed and variable structure. This was achieved by introducing a generalised system model and presenting particular structures of the system in terms of modelling block configurations adapted by using instances. FABRIC framework was created to support the implementation of EARL-based controllers. EARL is compatible with component based robotic middlewares (e.g., ROS and Orocos).
This paper addresses the problem of grasped object weight compensation in the one-handed manipulation of impedance controlled robots. In an exemplary identification procedure, the weight of an object and its centre of mass together with gripper kinematic configuration are identified. The procedure is based on the measurements from a 6-axis force/torque sensor mounted near the gripper. The proposed method reduces trajectory tracking errors coming from the model imprecision without compromising the main advantages of impedance control. The whole approach is applied according to the embodied agent paradigm and verified on the two-arm service robot both in simulation and on hardware. Due to the general description that follows system engineering standards, the method can be easily modified or applied to similar systems.
28 August 2007 in Industrial Robot: the international journal of robotics research and application
Purpose – This paper seeks to develop universal software (a programming framework) enabling the implementation of service robot controllers. The software should distinguish the hardware-oriented part of the system from the task-oriented one. Moreover, force, vision as well as other sensors should be taken into account. Multi-effector systems have to be considered. Design/methodology/approach – The robot programming framework MRROC++ has been implemented as a hierarchical structure composed of processes, potentially consisting of threads. All of the software is written in an object-oriented manner using C++ and is supervised by a QNX real-time operating system. The framework has been verified on several systems executing diverse tasks. Here, a Rubik's cube puzzle-solving system, consisting of two arms and utilizing force control and visual servos, is presented. Findings – The presented framework is well suited to tasks requiring two-handed manipulation with force sensing, visual servoing and online construction of plans of actions. The Rubik's cube puzzle is a reasonable initial benchmark for validation of fundamental service robot capabilities. It requires force sensing and sight coupled with two-handed manipulation and logical reasoning, as do the majority of service tasks. Owing to the use of force sensing during manipulation, jamming of the faces has always been avoided; however, visual servoing could only cope with slow handing over of the cube due to the volume of computations associated with vision processing. Research limitations/implications – The proposed software structure does not limit the implementation of service robot controllers. However, some of the specific algorithms used for the solution of the benchmark task (i.e. Rubik's cube puzzle) need to be less time-consuming. Practical implications – The MRROC++ robot programming framework can be applied to the implementation of diverse robot controllers executing complex service tasks. Originality/value – A demanding benchmark task for service robots has been formulated. This task, as well as many others, has been used to validate the MRROC++ robot programming framework which significantly facilitates the implementation of diverse robot systems.