In the context of human-robot collaboration, the operator interacts with the robot with no fences and influences the task execution. Thus, taking into account the context and more generally the environment for task definition is both mandatory and challenging at the modeling level. Human-robot collaboration raises also important safety requirements related to the robot, the tool, the task and the environment. Therefore, safety and more particularly risk assessment is a major feature that this pilot aims to realize for reducing risk occurence. The objective of this Pilot is to validate the RobMoSys methodology in the context of advanced manufacturing where humans and robots are working together in the same production site.
The pilot demonstrates task and environment definition for a human-robot collaboration use case: Assembly through RobMoSys tools.
The pilot was initially intended for the use with ISybot collaborative robot and we extended its usage with another collaborative robot with another gripper: Franka Emika Panda. This pilot focuses on task specification, reusability and monitoring, and safety functions. We started by developing a pick and place task with ISybot collaborative robot and we built upon the pick and place task to develop an assembly use case. We use a new gripper for manipulating objects like gears, screws, washers, etc. while in the pick and place we used another gripper meant for manipulating paper. The operator interacts with the robot for teaching the task to the robot. Then the robot executes the assembly task. The modeling tool used for this pilot is Papyrus for Robotics.
This pilot aims at showing the task reusability with another robot (Franka Emika Panda) and at extending the first pick and place task with more skills that will help to build an assembly task. The user plays the role of a Behaviour developer for modeling an assembly task in a behavior tree based on the robot, the vision, and the Human- Machine interface skills. At run-time, the task is executed with respect to the behavior tree model and the task constraints are checked continuously based on the environment actual data. In case of deviation or unexpected behavior, the orchestrator orders the robot to go to a safe position and raises an event through the human-machine interface to call for human intervention. Once the error fixed, the human indicates that he finished his intervention and the orchestrator continues with the next planned actions.
The pilot is fully supported by Papyrus for Robotics toolchain, a Papyrus-based domain specific modeling language for robotics. Papyrus for Robotics features a modeling front-end which conforms to RobMoSys foundational principles of separation of roles and concerns. For more information, see the following resources:
The task demands the execution of specific procedures to initialize and prepare the robot. The actual assembly task description prescribes a set of skills calls to perform an assembly task (these spaces are known and assigned as input parameters through programming by demonstration functionality to the BT leaves representing concrete actions). These skills are implemented inside the module Robot Skills Service that communicated directly with the robot controller. The manner that the skills are implemented is not of interest here, we only need to know that the skills are available and that they propose the necessary strategies for the objects present in the task. So the objects positions are known by the robot. The role of the orchestrator is to coordinate the task execution.
For the pick-and-place we modeled 3 skill definitions, namely Grasp, Ungrasp and MoveTo, with the corresponding (3) coordination service models and 4 data types, representing the coordination information between the task and the service level. In addition, we defined three Tier 3 models: 1 component definition representing the ISybot, with 3 coordination ports, each one providing a coordination service to realize the corresponding skill from the skill set above; 1 behavior tree model describing the pick-and-place task as a sequence of skills from the same skill set; and finally, 1 system model where the ISybot component is instantiated and the task assignment is specified.
From this base, we created 3 new skill models (including their coordination services) representing the additional skills for the assembly task; 1 new robot component model (RobotSkillServer) representing the Franka Emika arm and 1 HMI component (AdaptiveHMI), each one providing the right coordination interfaces to realize all the skills (the 3 from the pick-and-place task, plus the 3 new skills for the assembly task); 1 behavior tree model describing the assembly task including the new skills and reusing a number of pick-and-place sequences from the initial base model. Finally, the system model is now composed of the 2 component instances and the assembly task assignment. The models of the assembly task are given below. The orchestrator triggers the first action of the robot for the adapted skill to the current object. Once the skill is done, the next action is launched (insertion, screwing, etc.). If a problem occurs (e.g object lacking or action failure), the orchestrator asks the robot to go to a safe position and a message is displayed for the operator via an HMI so that he can intervene to fix the problem.
The development and deployment of the application can be done easily through a new release of the virtual machine with an updated version of Papyrus for Robotics and ROS2 stack for ISybot.
In order to run the demo, download the virtual machine and follow the steps described in the README file or the video below
The examples were built to show several aspects of RobMoSys related to task specification, world models and safety functionality.