Safety-related Tasks within the Set-Based Task-Priority Inverse Kinematics Framework

by   Paolo Di Lillo, et al.

In this paper we present a framework that allows the motion control of a robotic arm automatically handling different kinds of safety-related tasks. The developed controller is based on a Task-Priority Inverse Kinematics algorithm that allows the manipulator's motion while respecting constraints defined either in the joint or in the operational space in the form of equality-based or set-based tasks. This gives the possibility to define, among the others, tasks as joint-limits, obstacle avoidance or limiting the workspace in the operational space. Additionally, an algorithm for the real-time computation of the minimum distance between the manipulator and other objects in the environment using depth measurements has been implemented, effectively allowing obstacle avoidance tasks. Experiments with a Jaco^2 manipulator, operating in an environment where an RGB-D sensor is used for the obstacles detection, show the effectiveness of the developed system.



page 1

page 2

page 3

page 4

page 5

page 6


Handling robot constraints within a Set-Based Multi-Task Priority Inverse Kinematics Framework

Set-Based Multi-Task Priority is a recent framework to handle inverse ki...

Obstacle Avoidance Using Stereo Camera

In this paper we present a novel method for obstacle avoidance using the...

Real-time Whole-body Obstacle Avoidance for 7-DOF Redundant Manipulators

Mainly because of the heavy computational costs, the real-time whole-bod...

Recursive Hierarchical Projection for Whole-Body Control with Task Priority Transition

Redundant robots are desired to execute multitasks with different priori...

A Duality-based Approach for Real-time Obstacle Avoidance between Polytopes with Control Barrier Functions

Developing controllers for obstacle avoidance between polytopes is a cha...

A Set-Theoretic Approach to Multi-Task Execution and Prioritization

Executing multiple tasks concurrently is important in many robotic appli...

Safety-Augmented Operation of Mobile Robots Using Variable Structure Control

The design process and complexity of existing safety controls are heavil...
This week in AI

Get the week's most popular data science and artificial intelligence research sent straight to your inbox every Saturday.

I Introduction

In the last years we are experiencing the spread of robots in several fields of the human life. Human-Robot collaboration, unthinkable until few years ago, now represents a growing topic of research in many areas such as industrial, medical and assistive and service robotics. An explanatory example is the industrial field. During 70’s and 80’s robots were mainly used for substituting humans in dirty, hard and repetitive jobs but they were forced to work in safety cages, preventing the cooperation between human operators and robots for clear safety issues. During the years robots have gained more and more capabilities, due to several factors such as the falling of the sensor prices, the increase in computing power and the spread of the open-source development. All this resources allowed the spread of a new paradigm for the manufacturing industry based on the cooperation between human and robots [lu2017industry]. In this perspective acquires a major importance the problem of the safety of the operations [avanzini2014safety, zanchettin2016safety].

Robotic manipulators are often required to perform tasks in the operational space, such as to move the end-effector at a certain position and/or orientation. However, a number of additional tasks have to be taken into account while controlling the system in order to assure the safety and the effectiveness of the operation. The arm has to avoid obstacles, respect its mechanical joint limits, handle the occurrence of kinematic singularities. In the following, this kind of tasks will be called set-based, because the control objective is to keep them in a certain set of values rather that a specific one. One of the first attempts to handle the obstacle avoidance task for a mobile robot is conducted in [khatib1986] where the it is pushed away from the obstacle by defining a virtual force or potential field. This kind of approach presents drawbacks: it is not possible to set a minimum distance from the obstacle that the robot has to maintain, and an undesirable oscillating behavior of the system in presence of some kind of obstacles can occur [koren1991potential]. More recently, a popular way to handle set-based tasks is to express the inverse kinematics problem in a sequence of QP (Quadratic Programming) problems [kanoun_tro11, Mansard_tro2009]. This method requires the usage of iterative algorithms to solve the optimization problems, and usually they are computationally heavy and slow. In [Simetti_jirs2016]

set-based tasks are successfully added to a prioritized hierarchy and the transitions are handled by proper activation functions that guarantee the smoothness of the output reference velocity. However, during the transitions, the strict priority order among the tasks is lost, potentially leading to undesirable behaviors.

In this paper we present a system that allows the execution of the operational tasks, such as the control of the end-effector position and orientation, while all the safety-related ones such as the obstacle avoidance and the mechanical joint limits are automatically handled by the system. Regarding the control algorithm, the key idea is to exploit the system redundancy. A robotic system is defined as redundant if it has more DOFs than those strictly needed for the accomplishment of a certain task. In this case, it is possible to perform multiple tasks simultaneously [chiaverini1997singularity]. The approach has been further extended to multiple prioritized tasks in [AntArrChi_paladyn2010] and [AntArrChi_cdc2008], in which a priority order among the tasks can be fixed and the velocity contributions of the lower priority tasks that would conflict with higher priority ones are filtered. The outcomes of these works have been extended to handle also set-based tasks [MoeAnt2016frontiers], [arrichiello2017assistive]. Regarding the obstacle avoidance task, we used a Kinect 2 sensor for monitoring the environment, exploiting the algorithm presented in [flacco2015depth] for the detection of the closest obstacles using depth measurements.

The paper is organized as follows: Section II describes the Multi-Task Inverse Kinematics Framework and the algorithm for handling the set-based tasks; Section III shows the algorithm for the obstacles detection using depth measurements; in Section IV experimental results are shown; Section V describes the conclusions and the future work.

Ii Multi-Task Priority Framework including set-based tasks

For a general robotic system with

DOF (Degrees Of Freedom), the state is described by the joint values

. Defining a task as a generic -dimensional control objective as a function of the system state , the following differential relationship between the system velocity and the task-space velocity holds [siciliano2010robotics]:


where is the task Jacobian matrix, and

is the joint velocity vector. The reference velocity that brings the task value

to a desired can be computed resorting to the Closed-Loop Inverse-Kinematics algorithm [chiaverini1997singularity]:


where is a positive-definite matrix of gains, is the task error and


is the Moore-Penrose psudoinverse of the Jacobian matrix .

If the system is redundant () it is possible to perform multiple tasks simultaneously, setting a priority level among them and then projecting the velocity components coming from a lower priority task into the null space of the higher priority ones. In this way the fulfilment of the primary task is guaranteed. Thus for a prioritized hierarchy composed by tasks, the reference system velocity can be computed resorting to the Null-Space Based Inverse Kinematics control [AntArrChi_paladyn2010] [AntArrChi_ISR08]:


where is the reference velocity that fulfills the -th task and is the null space of the augmented Jacobian:


computed as:


where is the by identity matrix.

The aforementioned framework has been developed to handle control objectives in which the goal is to bring the task value to a specific one, e.g. moving the arm end-effector to a target position. This kind of tasks are usually referred as equality-based. However, several control objectives may require their value to lie in an interval, i.e. above a lower threshold and below an upper threshold. These are usually called set-based tasks. Classic examples of set-based tasks for a robotic manipulator are the mechanical joint limits, the obstacle avoidance and arm manipulability tasks. In the last years, a great effort has been made in order to extend task-priority frameworks to handle set-based tasks, as for example done in [Simetti_jirs2016]. In particular, the singularity-robust multi-task priority inverse kinematic framework has been extended to handle set-based tasks in [MoeAnt2016frontiers].

The key idea is that a set-based task can be seen as an equality-based one which gets active or inactive depending on its current value. In particular, it is necessary to set different reference values for each set-based task: physical thresholds (), safety thresholds (), and activation thresholds (). Figure 1 shows all the mentioned thresholds. When the task value exceeds an activation threshold, it has to be added to the task hierarchy as a new equality-based task with desired value:


Active[1pt][1pt][0.6]Active Inactive[1pt][1pt][0.6]Inactive epsilon[1pt][1pt][0.8] sigmam[1pt][1pt][0.8] sigmaM[1pt][1pt][0.8] sigmaSL[1pt][1pt][0.8] sigmaSU[1pt][1pt][0.8] sigmaAL[1pt][1pt][0.8] sigmaAU[1pt][1pt][0.8]

Fig. 1: Activation and physical thresholds of a set-based task

Then it can be deactivated when the solution of the hierarchy that contains only the other tasks would push its value toward the valid set. More specifically, it is possible to check whether a generic solution makes a set-based task go beyond the desired limit or not by evaluating its projection in the task space. Defining as the Jacobian matrix of , if the solution would increase the set-based task value, otherwise if the solution would decrease it. In this way, can be deactivated if




Ii-a Kinematic singularity handling

A configuration is defined as kinematically singular when the corresponding jacobian matrix loses rank, and it is associated with a loss of mobility of the manipulator’s end-effector. The reference velocity in output from the inverse kinematics algorithm diverges, leading the system to instability [chiaverini1994review]. This kind of situations are undesirable and need to be properly handled or avoided in order to guarantee the safety of the operations. The most popular way is to exploit the Damped Least-Square pseudoinverse, defined as:

in which a proper choice of the damping factor can avoid the undesirable effects of the kinematic singularity. In literature there are many different algorithm for determining

in function of the minimum singular value of the Jacobian matrix and the task error norm. In

[DivNatAnt_ifac17] a comparison among different algorithms is carried out. For this work, the dynamic threshold for the damping factor presented in [Baerlocher_phd2001] has been chosen:


where is the task error norm and is the maximum joint velocity norm.

Ii-B Implemented tasks

For the presented system several set-based and equality-based tasks have been implemented.

  • End-effector configuration (equality-based): assign a combination of end-effector position and orientation;

  • Mechanical joints limits (set-based): set thresholds on joints positions;

  • Obstacle avoidance (set-based): make the end-effector of the manipulator keep a minimum distance from a target obstacle;

  • Virtual walls (set-based): keep the end-effector at a minimum distance from a virtual plane;

In order to effectively and safely operate the manipulator, it is useful to divide all these tasks in three groups and assign them a priority level [ceriani2015reactive].

  1. Safety related tasks: this group contains all the safety-related tasks, such as mechanical joint limits, obstacle avoidance and virtual walls. Since they assure the integrity of the system and of the environment in which it operates, the highest priority level needs to be assigned to them.

  2. Operational tasks: this group contains all the tasks aimed at the accomplishment of the mission, such as the end-effector position, orientation or configuration.

  3. Optimization tasks: this group contains all those tasks that are not strictly necessary for the effective accomplishment of the operation, but they might help in making it in a more efficient way. In this category lie tasks such as the arm manipulability and the field of view.

Iii Minimum distance evaluation using depth measurements

We consider a depth sensor used for monitoring the environment in which the robot operates and our goal is to evaluate the distance between a Control Point and an obstacle point using their depth space representation. The Depth space is a -dimensional space in which the first two coordinates represent the projection of a point in the camera plane and the third coordinate is the distance between the point and the camera. The depth sensor is usually modelled as a pin-hole camera, which is composed by two matrices expressing the intrinsic parameters that model the projection of a point in the image plane, and the extrinsic parameters that represent the transformation between the reference and the sensor:

where is the focal length of the camera, and are the pixel dimensions, and are the coordinates of the center of the image plane. Given a control point in the depth space, its projection in the cartesian sensor space is given by:

and its distance vector , expressed in cartesian sensor space, from an obstacle point can be computed as:

For further details about this formulation see [flacco2015depth].

We are interested in monitoring the environment and in detecting all the obstacle points close to three different control points placed on the manipulator. In particular the control points are placed on the fourth, the sixth and the seventh joint, namely on the elbow, on the wrist and on the hand of the manipulator. For each one of these control points it is useful to define a region of surveillance composed by a cube of side centered at . It is necessary to compute the distances among all the points in the depth image contained in these three regions of surveillance and all the control points and select the closest ones.

It is important to notice that the manipulator needs to be removed from the depth image, otherwise the obstacle points closest to the chosen control points would always belong to the manipulator itself, and the computed minimum distance would be equal to zero. For this purpose, the Real-Time URDF filter ROS package [urdf_filter] has been used. It receives as input the URDF model of the arm, the joint positions and the transformation between the robot frame and the camera frame and computes the depth image without the manipulator.

Figure 2 shows the output of the minimum distance evaluation algorithm. The three control points are placed on the manipulator (light grey circles) and the corresponding minimum distance points (white circles) are computed in real time. Notice that the original meshes of the manipulator have been replaced by larger boxes, in order to avoid irregularities in the manipulator removal procedure.

Fig. 2: Minimum distance computation: control points (light grey circles) and corresponding closest points (white circles) )

In the controller three set-based obstacle avoidance tasks are defined, one for each control point. The distance computation algorithm outputs the coordinates of the three points closest to the selected control points, and they are sent to the control algorithm that activates the corresponding task if the computed distance is lower than the chosen activation threshold. The vectors , being the distance vectors expressed in the arm base frame, are additionally used for the task jacobians computation. The -th obstacle avoidance task value is:

where , and are the position of the fourth, the sixth and the seventh joint expressed in the arm base frame and is the corresponding closest point expressed in the arm base frame. The associated Jacobian is computed as:

where is the matrix composed by the first columns of the position Jacobian, with equal to the index of the joint taken as control point, filled with zeros from the column to .

Iv Experiments

Iv-a Experimental setup

In order to validate the proposed system a number of experiments have been carried out on the Kinova Jaco 7 DOF manipulator. The arm base frame is labelled with a marker which is detected in real-time using the Aruco library [Aruco2014]. The transformation between the arm base frame and the camera frame is given as input to the real-time URDF filter for removing the arm from the depth image and it is used for the transformation of the closest obstacle points in the arm base frame. The sensor used for the depth image acquisition is a Microsoft Kinect 2 [iai_kinect2], and the library used for the minimum distance computation is the PCL (Point Cloud Library) [Rusu_ICRA2011_PCL]. The arm is controlled at 100 Hz, while the distance computation algorithm run at 30 Hz, which is the maximum acquisition frequency of the Kinect sensor.

In the following, the results of two case studies are shown, demonstrating the effectiveness of the developed system.

Iv-B First case study

In the first case study the following prioritized task hierarchy has been chosen:

  1. Second, fourth and sixth joints limits

  2. Obstacle avoidance for the three control points

  3. End effector position

The joint limits have been chosen matching their actual mechanical limits, in order to avoid that the manipulator hits its own structure. The minimum distance from the obstacles for the three control points placed on the manipulator has been set at 35 cm. The end-effector is asked to sequentially reach two different predefined waypoints and expressed in the arm base frame. Figure 3 shows the position error over time during the experiment, while Fig. 4 shows the distance between the closest obstacle points and the three control points, together with their minimum thresholds.

Fig. 3: First case study: position error. From s to s the arm is free to reach sequentially the two predefined waypoints. From s to s a person steps into the scene and the obstacle avoidance tasks get activated, stopping the motion of the manipulator. From s the person steps away from the manipulator, which is free to continue its movement toward the desired waypoints.
Fig. 4: First case study: distance between the control points and the respective closest obstacle points. The desired minimum thresholds are highlighted (red lines). At s a person steps into the scene and the obstacle avoidance tasks for the second and third control points get active, keeping the distance above the chosen thresholds. At s the person exits from the scene and the tasks deactivates.

At the beginning of the experiment a person stands near the arm, keeping the distance above the activation thresholds of the obstacle avoidance tasks. The arm is free to move reaching sequentially the two predefined waypoints. At s the person steps into the scene, getting closer to the manipulator. Two obstacle avoidance tasks get activated (the ones corresponding to the hand and the wrist), and the control algorithm stops the motion of the manipulator, preventing the collision. Figure 4 shows that the minimum threshold for the obstacle avoidance tasks is respected, while in Fig. 3 it is clear that the position error is high while the obstacle avoidance tasks are active. At s the person steps back, triggering the deactivation of the obstacle avoidance tasks and allowing the manipulator to continue its movement toward the desired waypoints. Figure 5 shows the joint values and their upper and lower thresholds during all the experiments.

Fig. 5: First case study: second, fourth and sixth joint value (blue line) and minimum/maximum thresholds (red line). The fourth joint limit task gets active during the trajectory and the control algorithm stops its motion respecting the desired threshold.

It is worth noticing that the fourth joint task gets active during the trajectory, and the control algorithm stops its motion in order to respect the given threshold.

Iv-C Second case study

For the second case study a more complex task hierarchy has been chosen:

  • Second, fourth and sixth joints limits

  • Virtual walls: the end-effector is forced to stay within six virtual walls, creating a virtual box around the manipulator

  • Obstacle avoidance for the three control points

  • End effector position

The end-effector is asked to keep a constant position, while a person tries to touch the control points on the manipulator. When the distances reach the chosen thresholds the obstacle avoidance tasks get active and the arm starts moving in order to avoid the collision with the person. Figure 6 and Fig. 7 show a sequence of screenshots of the experiment.

Fig. 6: Screenshots of the experiment. The person tries to touch the end-effector and the arm moves away.
Fig. 7: Screenshots of the experiment. The person steps away from the arm and it returns in the initial position

The six virtual walls impose the following limits on the , and coordinates in the arm base frame of the end-effector:

  • and make the end-effector stay between 0.2 m and 0.9 m on the axis

  • and make the end-effector stay between -0.5 m and 0.5 m on the axis

  • and make the end-effector stay between -0.5 m and 0.5 m on the axis

These thresholds have been chosen in order to avoid that the arm reaches the boundary of its workspace, thus the corresponding singular configuration. Additionally the limit on the coordinate prevents the end-effector to hit the table it is attached on. Figure 8 shows the end-effector position over time, together with the limits imposed by the virtual walls. The person tries to push the end-effector beyond the walls but the associated tasks get active, stopping the motion in that direction at the chosen thresholds.

Fig. 8: Second case study: end-effector (top), (middle) and (bottom) coordinates (blue) and thresholds imposed by the virtual walls (red). The end-effector stays within the chosen box even if the person tries to push it beyond the virtual walls.

During all the experiment the minimum distance between the person and the three control points on the manipulator is kept above the chosen thresholds, as shown in Fig. 9. Notice that the chattering phenomenon is due to the fact that the person is moving and the points at minimum distance change over time.

Fig. 9: Second case study: distance from the three control points (blue) and corresponding minimum thresholds (red). The arm tries to keep the distance beyond the chosen limits.

Finally, Fig. 10 shows the joint values with their corresponding limits. It is clear the their positions never exceeds the imposed limits during all the experiment.

Fig. 10: Second case study: joint positions (blue) and corresponding threshodls (red)

V Conclusions and future work

In this paper we presented a system that allows safety operations with a robotic manipulator. The control algorithm that handles a task hierarchy has been explained, focusing the attention on the obstacle avoidance, the joint limits and the virtual walls tasks. The algorithm for the real-time evaluation of the closest obstacles to the manipulator from depth measurements has been described, together with its integration in the motion controller. Finally experimental results on a 7 DOF Kinova Jaco using a Kinect sensor for the obstacles detection have been shown, proving the effectiveness of the developed system.

Further efforts will be used in two main directions. First of all we want to improve the obstacles detection phase by using multiple Kinect sensors, increasing the field of view of the overall system and minimizing occlusions issues. The second direction will be making the system robust with respect to the occurring in local minima problems, that are very likely in gradient-based methods. The idea would be to integrate in the framework a motion planner, capable of detecting such situations and of replanning the motion of the system.


This work was supported by the European Community through the projects EUMR (H2020-731103-2), ROBUST (H2020-690416), DexROV (H2020-635491) and AEROARMS(H2020-635491).