Real-time safety for human–robot interaction

Real-time safety for human–robot interaction

Robotics and Autonomous Systems 54 (2006) 1–12 http://www.elsevier.com/locate/robot Real-time safety for human–robot interactionI Dana Kuli´c ∗ , Eli...

1MB Sizes 1 Downloads 47 Views

Robotics and Autonomous Systems 54 (2006) 1–12 http://www.elsevier.com/locate/robot

Real-time safety for human–robot interactionI Dana Kuli´c ∗ , Elizabeth A. Croft Department of Mechanical Engineering, University of British Columbia, 6250 Applied Science Lane, Vancouver, BC, V6T 1Z4, Canada Received 17 February 2005; received in revised form 23 October 2005; accepted 24 October 2005 Available online 5 December 2005

Abstract This paper presents a strategy for ensuring safety during human–robot interaction in real time. A measure of danger during the interaction is explicitly computed, based on factors affecting the impact force during a potential collision between the human and the robot. This danger index is then used as an input to real-time trajectory generation when the index exceeds a predefined threshold. The danger index is formulated to produce a provably stable, fast response in the presence of multiple surrounding obstacles. A motion strategy to minimize the danger index is developed for articulated multi-degree-of-freedom robots. Simulations and experiments show the efficacy of this approach. c 2005 Elsevier B.V. All rights reserved.

Keywords: Human–robot interaction; Robotic safety; Safety level estimation; On-line trajectory planning

1. Introduction As robots move from the industrial to human environments such as the home or office, the safety of humans interacting with robots becomes a key issue [1,2]. Some robots, which are intended primarily for social interaction [3–5], avoid safety issues by virtue of their small size and mass and limited manipulability. However, when the tasks of the interaction also include manipulation tasks, such as picking up and carrying items, opening and closing doors, etc., larger, more powerful robots will be needed. These larger robots, such as articulated robots, must be able to interact with humans in a safe and intuitive manner while performing their tasks. The robot system must provide a mechanism to ensure human safety within an uncertain environment and when interacting with untrained users. Safety improvements can be made through structural design, however, on-line strategies are also required to respond to unanticipated changes in the environment [6]. To ensure the safety and intuitiveness of the interaction, the complete system must incorporate (i) safe mechanical design, (ii) human friendly interfaces such as natural language interaction and (iii) safe planning and control strategies. Our I This work is supported by the Natural Sciences and Engineering Research Council of Canada. ∗ Corresponding author. Fax: +1 604 822 2403. E-mail address: [email protected] (D. Kuli´c).

c 2005 Elsevier B.V. All rights reserved. 0921-8890/$ - see front matter doi:10.1016/j.robot.2005.10.005

work focuses on this third item. In particular, the goal is to develop strategies to ensure that unsafe contact does not occur between any point on an articulated robot and a human in the robot’s workspace. The design of these safe planning and control strategies is divided into three components: safe planning, human reaction monitoring, and safe control, as described in [7]. The human monitoring component of our method deals with monitoring the human participant of the interaction, and estimating the level of attention and approval the human exhibits towards the robot’s actions. This aggregate measure of the user’s response is the intent estimate. Discussion of the human monitoring and control system components can be found in [7–9]. This paper focuses specifically on the real time safety aspects of the system. 1.1. Related work In industrial applications, the safety of human–robot interaction is implemented by isolating the robot from the human [1,10,11]. In effect there is no interaction. As robots move from isolated industrial environments to interactive environments, this approach is no longer tenable [1]. Existing safety standards have identified three main approaches have been identified for mitigating the risk during human–robot interaction: (i) redesign the system to eliminate the hazard, (ii) control the hazard through electronic or physical safeguards, and, (iii) warn the operator/user, either during operation

2

D. Kuli´c, E.A. Croft / Robotics and Autonomous Systems 54 (2006) 1–12

Fig. 1. System overview.

or by training [10]. While the warn/train option has been used in industry, it had not been deemed effective in that setting [10], and would be less suitable for robot interaction with untrained users. Examples of redesign include using a whole-body robot visco-elastic covering [12], and the use of spherical and compliant joints [13,14], and the use of distributed actuation [15,16]. In unstructured environments, mechanical design alone is not adequate to ensure safe and human friendly interaction. While mechanical measures can be used to decrease the force experienced upon impact, planning and control measures can also be used to avoid impact. Several approaches have been proposed for ensuring safety through control. They focus on either slowing down or stopping when a hazardous situation is identified [14,17,18], moving to evade contact [19], or trying to minimize the impact force if contact occurs [20]. A key problem for all of these control methods is to identify when safety is threatened. One approach is to use tactile sensors and force/torque sensors to identify a hazard when unplanned contact occurs [12]. Another approach is to consider every object in the environment, including any humans, as an obstacle, and use a real-time obstacle avoidance strategy, such as [21,22]. These strategies are all based on considering the distance between the robot and the obstacle as the primary decision factor. Ikuta and Nokata [23] developed a danger evaluation method using the potential impact force as an evaluation measure. In their work, the danger index is defined as a product of factors which affect the potential impact force between the robot and the human, such as relative distance, relative velocity, robot inertia and robot stiffness. The danger index is then proposed as a factor for improved mechanical design and control [23] and end-effector motion planning [24]; however, a real-time control based implementation of the danger index was not presented in those works. The work described herein develops a danger evaluation method, specifically for real-time control application of the entire robot-arm configuration (i.e., not just the robot end-effector). The danger index is formulated as a type of

non-linear impedance controller, which is estimated within the control cycle, and is used to generate a real-time motion trajectory to move the robot to a safe location during a potential collision event. This formulation is described in Section 2, followed by an investigation of the stability of this control. Finally, simulations and experiments show the feasibility of our approach. 1.2. System overview The proposed system architecture assumes a user-directed robot system. The user must initiate each interaction, but the robot has sufficient autonomy to perform commanded actions without detailed instructions from the user. An overview of the system is presented in Fig. 1. The system architecture is similar to the hybrid deliberative and reactive paradigm described in [25]. An approximate geometric path is generated in a slower outer loop, while the detailed trajectory planning and control are performed reactively in real time. The user issues a command to the robot to initiate the interaction. The command interpreter translates the natural language command (e.g.: pick up the red cup) into a set of target locations and actions (e.g., execute a grip maneuver at coordinates [x, y, z]). The planning module is divided into two parts: the global path planner and the local trajectory planner. The global planner module begins planning a geometric path for the robot over large segments of the task, utilizing the safety strategy described in [8]. Segment end points are defined by locations where the robot must stop and execute a grip or release maneuver. For example, one path segment is defined from the initial position of the robot to the object to be picked up. The local planner generates the trajectory along the globally planned path, based on realtime information obtained during task execution. The local planner generates the required control signal at each control point. Because the local planner utilizes real-time information, it generates the trajectory in short segments. The trajectory planning algorithm of MacFarlane and Croft [26] is used to implement the local planner. During the interaction, the user is

D. Kuli´c, E.A. Croft / Robotics and Autonomous Systems 54 (2006) 1–12

monitored to assess the user’s level of approval of robot actions. The local planner uses this information to modify the velocity of the robot along the planned path. The safety control module evaluates the safety of the plan generated by the trajectory planner at each control step. If a change in the environment is detected that threatens the safety of the interaction, the safety control module initiates a deviation from the planned path. This deviation will move the robot to a safer location. Meanwhile, the recovery evaluator will initiate a re-assessment of the plan and initiate re-planning if necessary. This paper describes the strategy used by the safety control module; other components of the system are described in [7–9]. 2. Proposed algorithm The safety module is responsible for moving the robot to a safe location, if a real-time change in the environment threatens the safety of the human in the interaction. The module is responsible for reacting to sudden changes in the environment, not anticipated during the planning stage. The inputs into the safety module consist of the proposed next configuration of the robot from the trajectory planner, which includes the velocity and acceleration information, the current user configuration, and an estimate of the user’s level of intent. Based on this information, the safety module evaluates the current level of danger of the interaction. If the level of danger is low, the proposed plan can proceed, otherwise, a corrective decision is made and an alternate trajectory is generated and passed to the low-level controller. The alternate trajectory generated by the safety module tries to lower the danger present in the interaction. Our approach is most similar to the impedance type strategies presented in [21,22]. A virtual force, calculated by the safety module, pushes the robot away from the person or obstacle. The safety module performs as a one-step-ahead local planner in realtime, moving the robot to a location of lowest danger. The virtual force generated is based on a set of factors affecting the potential impact force during a collision, such as the relative distance and velocity between the robot and the obstacle [22] and the effective impedance at the impact point [21]. However, unlike [21,22], the algorithm executes in joint space, and is therefore able to perform safely and accurately at all points in the workspace, including any robot singularities. 2.1. Danger index formulation The key element of the safety module is the estimation of the level of danger, i.e., the danger index. The danger index is constructed from measures that have an effect on the potential impact force during a collision. As suggested by Ikuta and Nokata [23], the danger index should include the distance between the robot and the human, the relative velocity between them, as well as the inertia and stiffness of the robot. Since the robot is an articulated linkage of bodies, for the real-time control application in this work it is not sufficient to consider only the end effector as done in [23]; instead the entire robot body must be considered as a potential source of impact. For

3

each link, the point closest to the person is considered; this point is called a critical point. The danger index is estimated for each critical point. The factors included are the distance between the robot and the person at the critical point being considered, their relative velocity, and the effective inertia at the critical point. The stiffness can be more effectively lowered through mechanical design [23,27]. The distance factor f D is given in Eq. (1),   2 1 1  : s ≤ Dmax f D (s) = k D s − Dmax (1)  0: s > Dmax , where s is the distance from the critical point to the nearest point on the person. The scaling constant k D is used to scale the distance factor function such that the value of the function is zero when the distance between the human and the robot is large enough (larger than Dmax ), and is one when the distance between the human and the robot is the minimum allowable distance (Dmin ).   Dmin Dmax 2 . (2) kD = Dmin − Dmax Values of the distance factor above one indicate an unsafe distance. The velocity factor f V is based on the magnitude of the velocity component, v, between the critical point and the nearest point on the person along the line joining these two points (the approach velocity). The approach velocity, v, is defined to be positive when the robot and the human are moving towards each other.  k (v − Vmin )2 : v ≥ Vmin (3) f V (v) = V 0: v < Vmin . The scaling constant, k V , is used to scale the velocity factor function such that the value of the function is zero when the velocity is lower than Vmin and one when the velocity is Vmax . Vmin is set to a negative value (i.e., f V is zero when the robot is moving away from the person).  kV =

1 Vmax − Vmin

2

.

(4)

Values of the velocity factor above one indicate an unsafe approach velocity. The inertia factor is defined as: f I (ICP ) =

ICP Imax

(5)

where, ICP is the effective inertia at the critical point, and Imax is the maximum safe value of the robot inertia. The danger index is then the product of the distance, velocity and inertia factors. DI = f D · f V · f I .

(6)

The use of a product of factors rather than a sum formulates the danger index as a combination of dependent factors [8]. As a

4

D. Kuli´c, E.A. Croft / Robotics and Autonomous Systems 54 (2006) 1–12

Fig. 2. Point robot moving between obstacles (one-dimensional case).

result, the danger index is zero through most of the workspace, and is only non-zero when all the conditions for a potential impact are present: namely, small distance, positive relative velocity with respect to the person and high robot inertia. This formulation avoids false positives that would be present if a sum of factors was used. Since the danger index is used to activate evasive action, it is important to avoid false positives, which would induce unnecessary evasive action. Once the danger index is calculated, it is used to generate the virtual force to push the robot away from the human as in [21,22].

Fig. 3. Comparison between linear impedance and the danger index for a 1DoF system.

2.2. A one-dimensional example To visualize the action of the danger index, it is helpful to first consider the one-dimensional case. Consider a point robot acting moving along a line. Three scenarios are possible: (i) there are no (human) obstacles on either side of the robot, (ii) there is an obstacle on one side of the robot, or (iii) there is an obstacle on both sides of the robot, as shown in Fig. 2. Since the safety module always acts to decrease the danger at the highest critical point, only the nearest obstacles are considered; additional obstacles farther away from the robot do not affect module behavior. If there are no obstacles on either side of the robot, the robot proceeds as planned, as the danger index is zero. If the obstacle is on one side of the robot only, and the danger index is non-zero, a virtual force (FSO ) pushing the robot in the direction away from the obstacle is generated, proportional to the danger index. FSO = K m · DI(s, v).

robot is moving between them, as shown in Fig. 2. In this case, v1 = −v2 . The system is then characterized by a second order differential equation:

(7)

This is analogous to a virtual impedance between the robot and the obstacle, similar to [22]. However, unlike [22], the impedance is non-linear, resulting in a stronger evasive action as the danger increases. Fig. 3 shows a comparison between the linear impedance (LI) and the proposed danger index (DI) method for the single degree of freedom system. The robot initial configuration is at 0.2 m away from the obstacle, with a velocity of 1 m/s towards the obstacle. Close to the obstacle, when the danger index is high, the non-linear impedance results in a faster reaction to move away from the obstacle. If obstacles are present on both sides of the robot, two virtual impedances are present, one between each obstacle and the robot. In this case, the resultant force (FTO ) is the difference between the two impedances, based on the danger index calculated with respect to each obstacle. FTO = K m · [DI(s1 , v1 ) − DI(s2 , v2 )] .

Fig. 4. Phase portrait of the two obstacle case (1DoF).

(8)

To illustrate the behavior of the two-obstacle case, consider the simple case when both obstacles are stationary and the

a=

1 · FTO , m

(9)

where a is the acceleration and m is the mass of the point robot. Fig. 4 shows the phase portrait of the system, and Fig. 5 shows a sample time trajectory. The system is stable about the equilibrium point s = 0.5, v = 0, at the midpoint between the two obstacles. However, care must be chosen when selecting the danger index parameters, to avoid oscillatory behavior about the equilibrium point. Parameter selection is discussed in more detail in the following section and in Section 2.6. 2.3. Stability analysis For the case where two obstacles are present on opposite sides of the robot, we consider the case where the two obstacles are stationary. Let the distance between the two obstacles be equal to 2d. Let x1 be the distance away from the midpoint between the two obstacles, and x2 the velocity. Then, assuming that Dmax > 2d, the system will be described by the following

5

D. Kuli´c, E.A. Croft / Robotics and Autonomous Systems 54 (2006) 1–12

To examine the extent of the stability region defined by this method, the Lyapunov function corresponding to the linear estimation is given by: V1 = x T P x

(13)

where the matrix P is positive definite and is the solution to P A + AT P = −Q,

(14)

where Q is any positive definite matrix. Taking Q as the identity matrix, and substituting (11) into (14), the matrix P is given by: #   " a22 a21 −1 − 2a121 p11 p12 2a21 + 2a22 . (15) P= = 1−a21 p12 p22 − 2a121 2a21 a22 Fig. 5. Sample time trajectory for the two obstacle case (1DoF).

Since a21 and a22 are both negative, p11 , p12 and p22 are all positive. The derivative of this Lyapunov function along the trajectories of (10) is given by

set of differential equations: x˙1 = x2 1 x˙2 = F = m 2   1 1   − k · D   d + x1 Dmax     · k · + V : x2 ≤ Vmin (x )2  V 2 min   2    1 1  k D · −   d + x1 Dmax      · k V · (x2 + Vmin )2 − k D  2 × 1 1  · −   d − x1 Dmax     · k V · (x2 − Vmin )2 : V < x2 < −Vmin   2 min     1 1   − −k D ·    d − x1 Dmax   2  · k · − V x2 ≥ −Vmin . (x )  V 2 min 

V˙1 = 2 p11 x1 x2 + 2 p12 x22 + 2 ( p12 x1 + p22 x2 ) F.

(10)

This system has an equilibrium point at x1 = x2 = 0. Distance measures, i.e., d, Dmax and Dmin are always positive. The coefficients k D and k V are always positive. The mass m is always positive. Using Lyapunov’s first method, we can show that the system is stable at the origin. The Jacobian matrix at the origin of the differential equation (10) is given by: A= "

0 V2

− m4 ·k D ·k V · dmin 2 ·   a a12 = 11 . a21 a22

#

1 1 d



1 Dmax



4 1 m ·k D ·k V ·Vmin · d



 1 2 Dmax (11)

The eigenvalues of A are: q 1 1 2 . 4a21 + a22 (12) λ1,2 = a22 ± 2 2 The origin will be stable if the real part of both eigenvalues is negative; i.e., if a22 and a21 are both negative. Since k D , k V and m are always positive, and d > Dmax , a21 is, by inspection, negative, and for a22 negative, Vmin must be less than zero.

(16)

V˙1 will be negative in the neighborhood of the origin, however, the second term is always positive and proportional to x22 , making V˙1 positive when the robot velocity is large. In addition, the last term becomes large and positive when x2 is small and x1 is close to an obstacle, i.e., x1 → −d, d, and p12 x1 < p22 x2 . A different Lyapunov function is needed to show stability throughout the state space. To find a function covering the region where repulsive forces from both obstacles affect the robot (i.e., −Vmin < x2 < Vmin ), a non-quadratic Lyapunov function is required. To find the structure required, we first analyze the structure of the forcing function F. For the case where |x2 | ≤ |Vmin |, the force F defined in (10) can be re-written as follows:   2 (17) F = − Vmin + x22 H (x1 ) + 2Vmin x2 R(x1 ) where 

2 D + x1 ) (d (d + x1 ) max  2 1 + − 2 Dmax (d − x1 ) (d − x1 ) ( 2 1 1 k D kV − R(x1 ) = m d + x1 Dmax  2 ) 1 1 + − . d − x1 Dmax

k D kV H (x1 ) = − m

1

2



(18)

(19)

The forcing function F can be compared to a linear impedance controller, where the forcing function is of the form: Flinear =

1 (−kx1 − bx2 ) . m

(20)

A plot of H (x1 ) is shown in Fig. 6. H (x1 ) is comparable to a non-linear spring element, which becomes stiffer the more the spring is compressed. The forcing function F is analogous to a

6

D. Kuli´c, E.A. Croft / Robotics and Autonomous Systems 54 (2006) 1–12

This results in: V˙2 = (β(x) + 2δ(x)Vmin R(x)) x22   2 − γ (x) Vmin + x22 H (x1 )x1 .

(25)

Selecting δ(x) = δ(x2 ) =

δc , + x22

2 Vmin

(26)

where δc is a positive constant, and choosing β(x) and γ (x) as positive constants βc and γc respectively, and substituting into (24) gives α(x) = α(x1 ) = Fig. 6. Plot of non-linear stiffness function H (x1 ).

(21)

where g(x1 , x2 ) is the gradient of a positive definite function V2 . We seek a gradient of the form [28]:   α(x)x1 + β(x)x2 g(x) = . (22) γ (x)x1 + δ(x)x2 Substituting (22) and (17) into (21), the Lyapunov function takes the following form:   2 V˙2 = α(x)x1 x2 + β(x)x22 − γ (x) Vmin + x22 H (x1 )x1   2 + 2γ (x)Vmin R(x1 )x1 x2 − δ(x) Vmin + x22 H (x1 )x2 + 2δ(x)Vmin R(x)x22 .

(23)

Note that H (x1 )x1 is always positive, so the third term in (23) is always negative. We now wish to choose α(x), β(x), γ (x) and δ(x) such that the coupled non-negative terms cancel out, i.e., (α(x)x1 + 2γ (x)Vmin R(x1 )x1   2 − δ(x) Vmin + x22 H (x1 ))x2 = 0.

(27)

To make sure g(x) is a gradient, we need

spring–damper system, where the spring becomes stiffer (i.e., provides greater resistance) closer to the obstacle. The spring is also scaled by the velocity term, which means that it becomes stiffer at higher approach velocities. This means that a slow approach trajectory can move closer to the human “obstacle” than a fast trajectory, as is desirable for human–robot interaction. The damping term 2Vmin x2 R(x1 ) is also analogous to the linear damping (recall that Vmin < 0). The damping is scaled by the function R(x1 ). R(x1 ) is always positive and increases quadratically as the robot position approaches the obstacle. This means that the closer the robot approaches the obstacle, the more damping is applied, as compared to the linear system where the applied damping is constant. Using the variable gradient method [28], stability can be shown for a dynamic system with the forcing function F. A Lyapunov function candidate is sought, where the derivative of the function has the form: V˙2 = g1 (x1 , x2 ) · x˙1 + g2 (x1 , x2 ) · x˙2 ,

δc H (x1 ) − 2γc Vmin R(x1 )x1 . x1

(24)

∂α(x1 ) ∂βc ∂γc ∂δ(x2 ) x1 + = γc + x1 + x2 ∂ x2 ∂ x2 ∂ x1 ∂ x1 βc = γc .

βc +

The resulting gradient is:   δc H (x1 ) − 2γc Vmin R(x1 )x1 + γc x2 δc . g(x) =  γc x1 + 2 Vmin + x22

(28)

(29)

The Lyapunov function with the desired gradient g is found by integrating along the axes: Z x2 Z x1 V2 = g1 (y1 , 0) dy1 + g2 (x1 , y2 ) dy2 0 0 Z x1 V2 = (δc H (y1 ) − 2γc Vmin R(y1 )y1 ) dy1 0 (30) ! Z x2 δc x 2 dy2 + γc x1 + 2 Vmin + x22 0 V2 = T1 (x1 ) + T2 (x1 ) + T3 (x1 , x2 ) + T4 (x2 ) where T1 (x1 ) =

k D k V δc m +

2 Dmax

1 1 2 + − d + x1 d − x1 d !! d 2 − x12 ln d2

x12 2k D k V γc Vmin d d + + 2 m d + x1 d − x1 Dmax !!   d 2 − x12 2d − 2+ 1+ ln Dmax d2

T2 (x1 ) = −

(31)

T3 (x1 , x2 ) = γc x1 x2 δc T4 (x1 ) = ln 2

2 + x2 Vmin 2

!

2 Vmin

T1 , T2 and T4 are always positive, while T3 can be negative. The constants γc and δc can be chosen such that V2 is always

D. Kuli´c, E.A. Croft / Robotics and Autonomous Systems 54 (2006) 1–12

7

positive and V˙2 is always negative in the region |x1 | ≤ |d|, |x2 | ≤ |Vmin |. To ensure that V˙2 is always negative, γc < −2δc Vmin R(0), since R(x1 ) has a minimum at 0,  2 2k D k V 1 1 . R(0) = − m d Dmax

(32)

(33)

V2 will be positive in the region where both obstacles are exerting a force if δc ln(2). (34) d In the region of the state space where |x2 | > |Vmin |, only the force pushing the robot away from a single (closer) obstacle is applied (Eq. (10)). In this case, the applied force always opposes the direction of motion, slowing down the robot and forcing it into the region |x2 | ≤ |Vmin |, where forces resulting from both obstacles are applied. γc <

2.4. Real-time algorithm When the algorithm is extended to an articulated robot operating in three-dimensional task-space, each robot joint is evaluated sequentially as a one degree of freedom system. This results in a local sequential planner, where backtracking motion is not considered [29]. Backtracking motion requires global planning, which cannot be executed in real time. The goal of the safety module is to generate a plan to move the robot to the safest possible location in real time, and then issue a request to the planner module to generate a global plan — either for retraction or to continue the initiated task. The one-dimensional algorithm must be modified when applied to a multi-link manipulator, because the position and velocity of each link is affected by motion of any proximal links. Proximal joints must consider not only critical points at the corresponding link, but all critical points at links distal to the joint. Fig. 7 shows pseudo-code for the full algorithm. The algorithm proceeds in two steps. First, the danger index at each potential collision location is calculated (procedure CalculateDangerIndex, shown on line 1 of Fig. 7). In this procedure, all non-zero locations are stored as critical points. If the danger index at any critical point is above a defined threshold, DI TH, then the planned trajectory is discarded and a new trajectory is generated by the safety module. The desired safe motion for each joint is calculated, starting with the base joint (procedure GetNextCommand, shown on line 21 of Fig. 7). For each joint, all critical points distal to the joint are considered (i.e., not just critical points at that joint) (line 24). Analogous to the one-dimensional case, three scenarios are possible: (i) there are no critical points distal to this joint, (ii) all critical points generate virtual forces in a single direction, or (iii) critical points generate forces in opposing directions. If no critical points are present, a virtual damping force (Fd ) is applied to stop any motion of that joint (that is, the prior motion assigned by the planned trajectory). Fd = −B q, ˙

(35)

Fig. 7. Pseudo-code for the multi-DoF algorithm.

Fig. 8. Safety module state diagram.

where B is a damping constant and q˙ is the measured joint velocity. If all critical points generate virtual forces in a single direction, FSO is applied as specified in Eq. (7) above (line 30). If opposing critical points are present, FTO is applied as specified in Eq. (8) (line 32). For each joint, a new trajectory is then generated based on the desired acceleration and the current position and velocity.

8

D. Kuli´c, E.A. Croft / Robotics and Autonomous Systems 54 (2006) 1–12

Fig. 9. Person representation (hands close to body).

Fig. 10. Person representation (hands away from body).

2.5. Implementation The safety module is implemented as a state machine. The state machine diagram is shown in Fig. 8. The danger index is calculated in each state. If the danger index is low and the module is not “Engaged,” the planned trajectory is passed on to the low-level robot-controller. The module switches from any state to engaged when the highest danger index is above a threshold. Once evasive action has been taken, the module goes to “Slowdown” to damp any remaining motion at which point a request is generated to the recovery evaluator module to generate a new plan, and then transitions to the “Wait for Plan” state, until a new plan is generated. In the current implementation, the inertia factor is set to 1. To calculate the distances and velocities between each robot link and the human (or other obstacles) a set of spheres representation is used to represent the environment, illustrated in Figs. 9 and 10. This representation is based on the approach described in [30]. When the person’s hands are close to the body, the body and hands are represented by a single sphere (Fig. 9); when the hands are outside the body sphere, separate spheres for the hands are generated, as shown in Fig. 10. In each figure, the left hand image shows the projection of the spheres

onto the 3D image, while the right hand image shows the 3D wire frame of the generated spheres. 2.6. Parameter selection Selecting the parameters for the distance and velocity factors will determine the onset and magnitude of the control action in the event that a hazard is detected. In particular, the minimum safe distance (Dmin ) and the maximum safe velocity (Vmax ) determine when the danger index climbs above 1 and control action strongly increases. These should be based on the physical characteristics and capabilities of the robot. Dmin can be estimated based on the maximum robot deceleration and velocity, while Vmax can be estimated based on indices of injury severity, such as the Gadd Severity Index or the Head Injury Criterion, as proposed in Bicchi et al. [27,31]. The largest distance (Dmax ) and lowest velocity (Vmin ) at which the safety module begins to consider a potential hazard are then selected. The distance Dmax should be based on the physical size of the robot, and the geometry of the workspace. Vmin should be smaller than zero to ensure stability. It is desirable to set the ranges between Dmin and Dmax , and Vmin and Vmax large, so that there is time to react before the danger is imminent.

D. Kuli´c, E.A. Croft / Robotics and Autonomous Systems 54 (2006) 1–12

9

Fig. 11. Planar robot simulation (robot clears obstacles).

Table 1 Parameter values for simulations Parameter

Value

Dmin Dmax Vmin Vmax DI TH

0.4 0.8 −0.2 1 0.3

However, making these ranges excessively large prevents the robot from operating in more cluttered environments. Too large a range between Vmin and Vmax also reduces the effective damping, which can result in oscillations in the second order system at each joint. False positive reactions of the safety module can be significantly reduced by setting the reaction threshold, DI TH, above zero. In the simulations below, the reaction threshold was set to 0.3. 3. Simulations To illustrate the behavior of the safety module, simulations on a 3-DoF planar robot were generated. Each of the robot links is 0.4 m long. The obstacles have a radius of 0.2 m. Table 1 shows the settings for all the algorithm parameters. In each case, the initial robot trajectory was from [0,0,0] (horizontally stretched out) to [pi/2;0;0] (upright). The robot is animated using the Robotics Toolbox for Matlab [32]. Fig. 11 shows the behavior of the safety module in a sample simulation. The higher obstacle is stationary, while the lower obstacle moves 0.5 m vertically up starting from rest at the start of the simulation and stopping halfway through. In this case, the safety module is able to generate a trajectory to clear the robot from the obstacles. As can be seen in the figure, the robot stays further away from the lower obstacle, since the lower obstacle is moving towards the robot, therefore the velocity factor at the critical point between that obstacle and the robot will be higher than the velocity factor at the upper obstacle. Fig. 12 shows the joint positions along the generated trajectory. The initially

Fig. 12. Joint trajectory for planar robot simulation (robot clears obstacles).

commanded (planned) robot trajectory is shown in gray, while the actual trajectory generated by the safety module is shown in black. Fig. 13 shows frames of a sample trajectory in a case when the safety module is unable to generate an escape trajectory. In this case, the upper obstacle blocks the possible escape of joint 1, while the lower obstacle moves upwards. In this case, the robot remains between the obstacles, equidistant between the two obstacles in terms of the danger index. Fig. 14 shows the joint trajectories. While the lower obstacle is moving towards the robot, the robot is closer to the upper obstacle. Once the lower obstacle stops, the robot moves to the middle, between the two obstacles. 4. Experiments The safety module was tested with the CRS A460 6-DoF manipulator. The robot was controlled by an in-house open architecture controller, based on the Quanser MultiQ PCI card and WinCon software [33]. The controller was implemented on a Pentium 4 2.8 GHz computer. The low level control was PID.

10

D. Kuli´c, E.A. Croft / Robotics and Autonomous Systems 54 (2006) 1–12

Fig. 13. Planar robot simulation (robot cannot clear obstacles).

Table 2 Parameter values for experiments

Fig. 14. Joint trajectory for planar robot simulation (robot cannot clear obstacles).

Both the safety module and the low level controller executed at a frequency of 1 kHz. Information about the human location was obtained from a Point Grey Bumblebee [34] stereo camera mounted in front of the robot base and facing the approximate human location. The camera algorithms ran on a second Pentium 4 2.8 GHz computer, linked to the controller via a serial connection. The Point Grey stereo routines were used to extract a depth map of the environment. The depth map was then used to generate the set of spheres information used by the safety module. The safety module was tested as a standalone unit, without the planner or recovery evaluator. A default trajectory was issued to simulate the planned trajectory. The person would then move to block the robot’s path, and the safety module would engage to move the robot to a safe location. Table 2 shows the values of the parameters used during the experiments.

Parameter

Value

Dmin Dmax Vmin Vmax DI TH

0.6 1.0 −0.5 0.5 0.3

Fig. 15 shows video frames from a sample experiment.1 In this case, the initial trajectory moves the robot from the upright position towards the table in front of the human. As the human raises his hands towards the robot, the safety module activates and the robot moves upwards and away from the human. Fig. 16 shows the joint position trajectories for the lower three joints during the sample experiment. The gray lines show the initial (planned) trajectory, while the black lines show the trajectory generated by the safety module. 5. Conclusions and future work This paper presents a methodology for ensuring human safety during a human–robot interaction in real time. The level of danger in the interaction due to a potential collision is explicitly defined as the danger index. A sequential onestep ahead trajectory planner (the safety module) is presented which generates robot motion by minimizing the danger index. The danger index is shown to act as a non-linear impedance which reacts faster at smaller distances and higher velocities than a comparable linear impedance and is provably stable. The full algorithm can be used for redundant or non-redundant manipulators, and operates correctly at all robot configurations, including singularities.

1 The experiment video can be viewed at http://www.mech.ubc.ca/∼dana/ ThesisFiles/CtrlExpt1.WMV.

D. Kuli´c, E.A. Croft / Robotics and Autonomous Systems 54 (2006) 1–12

11

Fig. 15. CRS robot experiment video frames.

Fig. 16. Joints 1–3 trajectory during CRS robot experiment.

References [1] P.I. Corke, Safety of advanced robots in human environments, Discussion Paper for IARP, Online 1999. [2] C.W. Lee, Z. Bien, G. Giralt, P.I. Corke, M. Kim, Report on the First IART/IEEE-RAS Joint Workshop: Technical Challenge for Dependable Robots in Human Environments, IART/IEEE-RAS, 2001. [3] Aibo Robotic Dog, http://www.us.aibo.com/. [4] Sony Qrio, http://www.sony.net/SonyInfo/QRIO/technology/index5.html. [5] C. Breazeal, Socially intelligent robots: research, development, and applications, in: IEEE International Conference on Systems, Man and Cybernetics, 2001, pp. 2121–2126. [6] B.J.W. Waarsing, M. Nuttin, H. Von Brussel, B. Corteville, From biological inspiration toward next-generation manipulators: manipulator control focused on human tasks, IEEE Transactions on Systems, Man and Cybernetics—Part C: Applications and Reviews 35 (2005) 53–65. [7] D. Kuli´c, E. Croft, Strategies for safety in human robot interaction, in: IEEE International Conference on Advanced Robotics, 2003, pp. 644–649. [8] D. Kuli´c, E. Croft, Safe planning for human–robot interaction, in: IEEE International Conference on Robotics and Automation, 2004, pp. 1882–1887. [9] D. Kuli´c, E. Croft, Estimating intent for human–robot interaction, in: IEEE International Conference on Advanced Robotics, 2003, pp. 810–815.

[10] RIA/ANSI R15.06—1999 American National Standard for Industrial Robots and Robot Systems—Safety Requirements, American National Standards Institute, New York, 1999. [11] S.P. Gaskill, S.R.G. Went, Safety issues in modern applications of robots, Reliability Engineering and System Safety 52 (1996) 301–307. [12] Y. Yamada, Y. Hirawawa, S. Huang, Y. Umetani, K. Suita, Human–robot contact in the safeguarding space, IEEE/ASME Transactions on Mechatronics 2 (1997) 230–236. [13] Y. Yamada, T. Yamamoto, T. Morizono, Y. Umetani, FTA-based issues on securing human safety in a human/robot coexistance system, in: IEEE Systems, Man and Cybernetics SMC’99, 1999, pp. 1063–1068. [14] Y. Yamada, Y. Hirawawa, S. Huang, Y. Umetani, K. Suita, Human–robot contact in the safeguarding space, IEEE/ASME Transactions on Mechatronics 2 (1997) 230–236. [15] M. Zinn, O. Khatib, B. Roth, J.K. Salisbury, Towards a humancentered intrinsically safe robotic manipulator, in: IARP–IEEE/RAS Joint Workshop on Technical Challenges for Dependable Robots in Human Environments, 2002. [16] M. Zinn, O. Khatib, B. Roth, A new actuation approach for human friendly robot design, in: IEEE International Conference on Robotics and Automation, 2004, pp. 249–254. [17] A.J. Bearveldt, Cooperation between man and robot: interface and safety, in: IEEE International Workshop on Robot Human Communication, 1993, pp. 183–187. [18] J. Zurada, A.L. Wright, J.H. Graham, A neuro-fuzzy approach for robot system safety, IEEE Transactions on Systems, Man and Cybernetics— Part C: Applications and Reviews 31 (2001) 49–64. [19] V.J. Traver, A.P. del Pobil, M. Perez-Francisco, Making service robots human-safe, in: IEEE/RSJ International Conference on Intelligent Robots and Systems, IROS 2000, 2000, pp. 696–701. [20] J.Y. Lew, Y.T. Jou, H. Pasic, Interactive control of human/robot sharing same workspace, in: IEEE/RSJ International Conference on Intelligent Robots and Systems, 2000, pp. 535–539. [21] O. Khatib, Real-time obstacle avoidance for manipulators and mobile robots, The International Journal of Robotics Research 5 (1986) 90–98. [22] T. Tsuji, M. Kaneko, Noncontact impedance control for redundant manipulators, IEEE Transactions on Systems, Man and Cybernetics—Part A: Systems and Humans 29 (1999) 184–193. [23] K. Ikuta, M. Nokata, Safety evaluation method of design and control for human-care robots, The International Journal of Robotics Research 22 (2003) 281–297. [24] M. Nokata, K. Ikuta, H. Ishii, Safety-optimizing method of human-care robot design and control, in: Proceedings of the 2002 IEEE International Conference on Robotics and Automation, 2002, pp. 1991–1996. [25] R. Bischoff, V. Graefe, HERMES—a versatile personal robotic assistant, Proceedings of the IEEE 92 (2004) 1759–1779. [26] S. Macfarlane, E. Croft, Jerk-bounded robot trajectory planning— design for real-time applications, IEEE Transactions on Robotics and Automation 19 (2003) 42–52.

12

D. Kuli´c, E.A. Croft / Robotics and Autonomous Systems 54 (2006) 1–12

[27] A. Bicchi, S.L. Rizzini, G. Tonietti, Compliant design for intrinsic safety: general issues and preliminary design, in: IEEE/RSJ International Conference on Intelligent Robots and Systems, 2001, pp. 1864–1869. [28] H.K. Khalil, Nonlinear Systems, 3rd edition, Prentice Hall, Upper Saddle River, New Jersey, 2002. [29] K.K. Gupta, Z. Guo, Motion planning for many degrees of freedom: sequential search with backtracking, IEEE Transactions on Robotics and Automation 11 (1995) 897–906. [30] B. Martinez-Salvador, A.P. del Pobil, M. Perez-Francisco, A hierarchy of detail for fast collision detection, in: IEEE/RSJ International Conference on Intelligent Robots and Systems, IROS 2000, 2000, pp. 745–750. [31] A. Bicchi, G. Tonietti, Fast and soft-arm tactics, IEEE Robotics and Automation Magazine 11 (2004) 22–33. [32] P.I. Corke, A robotics toolbox for Matlab, IEEE Robotics and Automation Magazine 3 (1996) 24–32. [33] Quanser Q8, http://www.quanser.com/english/html/solutions/fs Q8.html. [34] Pt. Grey Bumblebee, http://www.ptgrey.com/products/bumblebee/index. html.

Dana Kuli´c received a combined B.A.Sc. and M.Eng. degree in electro-mechanical engineering from the University of British Columbia, Canada in 1998. She is currently a doctoral student in the Department of mechanical engineering at the University of British Columbia.

From 1997–1999 and 2001–2002 she was employed at Ballard Power Systems working on fuel cell control systems for both vehicle and home generator systems. From 1999 to 2000, she worked at MacDonald Dettwiler on the design and development of the Operational Control Software for the Space Station Remote Manipulator System (the Canadarm II). Her research interests include human–robot interaction, robot motion planning, robot perception and learning and robotic vision.

Elizabeth A. Croft received the B.A.Sc. degree in mechanical engineering in 1988 from the University of British Columbia, the M.A.Sc. degree from the University of Waterloo in 1992 and the Ph.D. degree from the University of Toronto, Ontario, Canada in 1995. She is currently an Associate Professor in Mechanical Engineering at the University of British Columbia, Vancouver, BC, Canada. From 1988 to 1990 she was employed in the consulting industry in the field of motor vehicle dynamics. In 1995 she joined the Industrial Automation Laboratory in the Department of Mechanical Engineering at UBC, as the BC Packers Junior Chair of Industrial Automation and a member of the Centre for Integrated Computer Systems Research. She received a Peter Wall Early Career Scholar award in 2001 and the Association of Professional Engineers and Geoscientists (BC) Professional Service Award in 2005. Her research interests include industrial robotics, robot–human interaction, sensor and device fusion, and mechatronics. She is a registered Professional Engineer, and a member of ASME and IEEE.