Control of a Biped Robot Using the Robot Operating Systemfetter/robocontrol2014.pdf · 2014. 10....

6
Control of a Biped Robot Using the Robot Operating System Eduardo Henrique Maciel, Renato Ventura Bayan Henriques and Walter Fetter Lages Department of Electrical Engineering Federal University of Rio Grande do Sul Porto Alegre, RS, Brazil Emails: [email protected], [email protected], [email protected] Abstract—This paper presents the development of a simplified model of the lower limbs of a biped robot, composed, basically, of a waist, two femurs, two tibiae and two feet. This mechanical structure has six degrees of freedom and has the approximate dimensions of a human being. The control system was imple- mented on the Robot Operating System (ROS). Contrariwise to most ROS controllers, a multi-input, multi-output (MIMO) controller using the computed-torque technique is proposed. The Gazebo simulator is used to validate the model and the control system. I. I NTRODUCTION The most used methods for motion on land are wheels, rails other legs [1]. The motion using legs presents a discontinuous motion on land, thus being able to overcome obstacles, slopes, stairs and other irregular structures. Many research groups are focusing on the development of biped robots [2] which are able to imitate the motion or even the behavior of human beings [3]. In the beginning of the development of biped robots, the focus was only on the motion and not on the applicability of those robots in a real environment [4]. However, due to the structural similarity between biped robots and human beings, the use of such robots as operational workers, replacing human workers in risky operations, was a natural path. In Principle, biped robots can act in unstructured environments perform- ing supervision, maintenance and assistance in environments designed for human beings [5]. The capabilities of a human are different from those of a biped robot. For example, human beings can move fast while biped robots are slow when compared to the human agility. Structural factors, such as kinematic mapping and energy consumption make it difficult for a biped robot to achieve a performance comparable to humans being using the current technology. In recent years, the Robot Operating System (ROS) [6] has emerged as a dominant platform for research in robotics and there are already some some biped robots using ROS such as the Tulip [7] and the NAO [8]. However, most robots using ROS employ a simple control structure based on independent (SISO) PID controllers on each joint. Nonetheless, robots are nonlinear MIMO plants, which, in general require nonlinear MIMO controllers. In this paper, a biped robot based on the human structure and using ROS is proposed. Contrariwise to most robots using ROS, a multi-input, multi-output (MIMO) nonlinear controller based on computed torque is implemented. II. METODOLOGY Figure 1 shows the methodology used to develop the robot, named Orbit. Fig. 1. Development flow. A. Mechanical Structure Figure 2 presents the evolution of the proposed prototype: The design tries to follow a simplified model of the inferior members of the human body, composed of a hib, two femurs, two tibiae and two feet . The inferior members of humans have a total of 30 degrees of freedom in each leg [9]. A biped robot should have at least 8 DoF in order to be a good approximation of the human body [10]. However, the Orbit robot uses a simpler kinematic approximation, with 6 DoF but with dimensions similar to those a human being, as shown in Figure 3. B. Robot Operating System (ROS) ROS implements libraries and tools to help in development of robotic platforms, including, hardware abstraction, drivers, specific libraries, viewers, message transmission and many other functionalities. ROS is organized by using the concept of packages. A package can contain, nodes, libraries, configuration files and external plugins. The objective of those packages is to offer a simple functionality, so that the package can be reused.

Transcript of Control of a Biped Robot Using the Robot Operating Systemfetter/robocontrol2014.pdf · 2014. 10....

Page 1: Control of a Biped Robot Using the Robot Operating Systemfetter/robocontrol2014.pdf · 2014. 10. 19. · biped robots can act in unstructured environments perform-ing supervision,

Control of a Biped Robot Using the Robot

Operating System

Eduardo Henrique Maciel, Renato Ventura Bayan Henriques and Walter Fetter Lages

Department of Electrical Engineering

Federal University of Rio Grande do Sul

Porto Alegre, RS, Brazil

Emails: [email protected], [email protected], [email protected]

Abstract—This paper presents the development of a simplifiedmodel of the lower limbs of a biped robot, composed, basically,of a waist, two femurs, two tibiae and two feet. This mechanicalstructure has six degrees of freedom and has the approximatedimensions of a human being. The control system was imple-mented on the Robot Operating System (ROS). Contrariwiseto most ROS controllers, a multi-input, multi-output (MIMO)controller using the computed-torque technique is proposed. TheGazebo simulator is used to validate the model and the controlsystem.

I. INTRODUCTION

The most used methods for motion on land are wheels, rails

other legs [1]. The motion using legs presents a discontinuous

motion on land, thus being able to overcome obstacles, slopes,

stairs and other irregular structures.

Many research groups are focusing on the development of

biped robots [2] which are able to imitate the motion or even

the behavior of human beings [3].

In the beginning of the development of biped robots, the

focus was only on the motion and not on the applicability of

those robots in a real environment [4]. However, due to the

structural similarity between biped robots and human beings,

the use of such robots as operational workers, replacing human

workers in risky operations, was a natural path. In Principle,

biped robots can act in unstructured environments perform-

ing supervision, maintenance and assistance in environments

designed for human beings [5].

The capabilities of a human are different from those of a

biped robot. For example, human beings can move fast while

biped robots are slow when compared to the human agility.

Structural factors, such as kinematic mapping and energy

consumption make it difficult for a biped robot to achieve

a performance comparable to humans being using the current

technology.

In recent years, the Robot Operating System (ROS) [6] has

emerged as a dominant platform for research in robotics and

there are already some some biped robots using ROS such as

the Tulip [7] and the NAO [8]. However, most robots using

ROS employ a simple control structure based on independent

(SISO) PID controllers on each joint. Nonetheless, robots are

nonlinear MIMO plants, which, in general require nonlinear

MIMO controllers.

In this paper, a biped robot based on the human structure

and using ROS is proposed. Contrariwise to most robots using

ROS, a multi-input, multi-output (MIMO) nonlinear controller

based on computed torque is implemented.

II. METODOLOGY

Figure 1 shows the methodology used to develop the robot,

named Orbit.

Fig. 1. Development flow.

A. Mechanical Structure

Figure 2 presents the evolution of the proposed prototype:

The design tries to follow a simplified model of the inferior

members of the human body, composed of a hib, two femurs,

two tibiae and two feet . The inferior members of humans

have a total of 30 degrees of freedom in each leg [9].

A biped robot should have at least 8 DoF in order to be

a good approximation of the human body [10]. However, the

Orbit robot uses a simpler kinematic approximation, with 6

DoF but with dimensions similar to those a human being, as

shown in Figure 3.

B. Robot Operating System (ROS)

ROS implements libraries and tools to help in development

of robotic platforms, including, hardware abstraction, drivers,

specific libraries, viewers, message transmission and many

other functionalities.

ROS is organized by using the concept of packages. A

package can contain, nodes, libraries, configuration files and

external plugins. The objective of those packages is to offer a

simple functionality, so that the package can be reused.

Page 2: Control of a Biped Robot Using the Robot Operating Systemfetter/robocontrol2014.pdf · 2014. 10. 19. · biped robots can act in unstructured environments perform-ing supervision,

(a) Orbit 2011 (b) Orbit 2013 (c) Orbit 2014

Fig. 2. Evolution of the Orbit prototype.

Fig. 3. Dimensions of the proposed robot (m).

To describe a robot in ROS, a way is to use the package

named Unified Robot Description Format) (URDF) [11]. This

package enables the description of the kinematics, the dy-

namics, the collision model, material, color and texture of the

robot. An important restriction is that the robots must follow

a tree structure and hence URDF can not be used to describe

parallel robots.

Figure 4, shows a generic kinematic chain which uses a

tree-like topology. There are 4 links connected by 3 joints.

This kinematic chain can be describe in URDF as shown in

listing 1.

The robot tag starts a block with the description of the

name, links and joints of the robot. This description is available

to all ROS subsystems. The link tag describes the link.

The inertial tag enables the specification of the inertia

parameters of the link: center of mass (xyz), orientation of

the principal axis (rpy) and mass (mass) of the link. I the

example shown in Figure 4 there are 4 links named link1 to

link4 and 3 joints. Joints are described by the joint tag,

which includes the specification of the parent (parent) and

child (child) links. The joint enables also, the naming

of the joint, select its type, specify its position (xyz) and

orientation (rpy) with respect to the parent link, and moving

axis.

(a) Generic model (b) Diagram

Fig. 4. Kinematic chain with a tree-like topology.

The simulation of a robot described in URDF can be done

using the Gazebo 3D simulator [12].

1) OROCOS Kinematics and Dynamics Library (KDL):

The computations required by the kinematic and dynamic

models of a robot can be done by using a packages named

OROCOS Kinematics and Dynamics Library (KDL) [13].

For the implementation of the controller for the Orbit robot,

the Chain class was used. This class abstracts a kinematic

chain and is used by the ChainIdSolver_RNE class, which

implements the well-known Newton-Euler algorithm [14].

The dynamic model of the robot is described by [15]:

Page 3: Control of a Biped Robot Using the Robot Operating Systemfetter/robocontrol2014.pdf · 2014. 10. 19. · biped robots can act in unstructured environments perform-ing supervision,

τ = D(q)q + H(q, q) + G(q) (1)

Listing 1. URDF for the kinematic chain shown in Figure 4.

<?xml version="1.0"?>

<robot name="robot_generic">

<link name="link1">

<inertial>

<origin xyz="0 0 0" rpy="0 0 0"/>

<mass value="1.0" />

<inertia ixx="1.0" ixy="0.0" ixz="0.0"

iyy="1.0" iyz="0.0" izz="1.0"/>

</inertial>

</link>

<link name="link2">

<inertial>

<origin xyz="0 0 0" rpy="0 0 0"/>

<mass value="1.0" />

<inertia ixx="1.0" ixy="0.0" ixz="0.0"

iyy="1.0" iyz="0.0" izz="1.0"/>

</inertial>

</link>

<link name="link3">

<inertial>

<origin xyz="0 0 0" rpy="0 0 0"/>

<mass value="1.0" />

<inertia ixx="1.0" ixy="0.0" ixz="0.0"

iyy="1.0" iyz="0.0" izz="1.0"/>

</inertial>

</link>

<link name="link4">

<inertial>

<origin xyz="0 0 0" rpy="0 0 0"/>

<mass value="1.0" />

<inertia ixx="1.0" ixy="0.0" ixz="0.0"

iyy="1.0" iyz="0.0" izz="1.0"/>

</inertial>

</link>

<joint name="joint1" type="continuous">

<parent link="link1"/>

<child link="link2"/>

<origin xyz="5 3 0" rpy="0 0 0" />

<axis xyz="-0.9 0.15 0" />

</joint>

<joint name="joint2" type="continuous">

<parent link="link1"/>

<child link="link3"/>

<origin xyz="-2 5 0" rpy="0 0 1.57" />

<axis xyz="-0.707 0.707 0" />

</joint>

<joint name="joint3" type="continuous">

<parent link="link3"/>

<child link="link4"/>

<origin xyz="5 0 0" rpy="0 0 -1.57" />

<axis xyz="0.707 -0.707 0" />

</joint>

</robot>

where:

q: Joint position;

D(q): Inertia matrix;

H(q, q): Vector of centrifugal and Coriolis forces;

G(q): Vector of gravitational forces;

τ : Joint torques.

2) Control System: The control system developed for the

Orbit robot uses the computed torque technique [15], whose

structure is shown in Figure 5. Note that there is an abuse

with respect to the usual semantics of a block diagram.

The variables are represented in time domain and while the

continuous lines denote inputs which are multiplied by the

block ”gain”, the dashed lines denote inputs which are just

need by the block computation.

Fig. 5. Block diagram of the computed torque control.

The computed torque control uses the dynamic model of

the robot to implement a feedback linearization. Then, a PD

controller is used to control the resulting linear system. The

computed torque control law is given by:

τ =Dn(q)[qr + Kd(qr − q) + Kp(qr − q)]+

Hn(q, q) + Gn(q)(2)

where:

qr: Position reference;

Kp: Proportional gain matrix;

Kd: Differential gain matrix;

Dn(q): Nominal inertia matrix;

Hn(q, q): Nominal vector of centrifugal and Coriolis forces;

Gn(q): Nominal vector of gravitational forces.

Note that to compute the computed torque control law (2),

it is possible to use the classical form of the Newton-Euler

iteration (1) by letting:

q = qr + Kd(qr − q) + Kp(qr − q) (3)

If there is not model mismatch, then D(q) =Dn(q),H(q, q) = Hn(q, q), G(q) = Gn(q), and it is possible

to obtain:

e + Kde + Kpe = 0 (4)

where,

e = qr − q. (5)

Expression (4) shows that by choosing the matrices Kp and

Kd in a diagonal form, it is possible to obtain a decoupled

Page 4: Control of a Biped Robot Using the Robot Operating Systemfetter/robocontrol2014.pdf · 2014. 10. 19. · biped robots can act in unstructured environments perform-ing supervision,

closed-loop system, where the behavior of each joint error

is given by a second order differential equation. The natural

frequency ωn and the damping coefficient ξn of each equation

are determined by choosing the gain matrices: Kp = diag(

ω2

n

)

and Kd = diag(2ξωn). By choosing ξ = 0.7 and ωn = 100πrad/s: Kp = diag(98696) and Kd = diag(628.319).

Figure 6 shows a diagram of the control signal flux in ROS.

Fig. 6. Control signal flux in ROS.

The ControllerManager block is responsible for

loading the controller through a plugin, implemented by

the GazeboROSControlPlugin block, which connects

a hardware interface between Gazebo and ROS. The

DefaultRobotHWSim block is the hardware interface,

which in the case of a simulation implements a generic

interface to Gazebo. The computerTorqueController

block is the implementation of the computed torque controller

and sends a vector of efforts (joints_efforts) to the

JointGroupEffortController block. This block is

just a bypass, with its output reflecting its inputs values, using

a MIMO structure and making it possible to apply the control

signal to all joints simultaneously. This is need because the

default controllers existing in ROS are all SISO controllers.

The JointHandle block is used to interface to sensors and

actuators. The dotted lines means that the respective variables

are accessed directly through pointers instead of having its

values returned by functions.

III. SIMULATION

Figure 7 shows the diagram of ROS nodes and topics used

to simulate the control system.

The /robot_state_publisher node publishes

the poses of the links in the tf topic. The

/orbit/joint_states topic is published by the

/gazebo node, and informs the position and velocity

of each joint. The /computed_torque_controller

node implements the computed torque controller, while

the JointGroupEffortController controller, which

implements the MIMO interface for the ROS is not

represented in this diagram because it is not a ROS node, but

a plugin loaded by the /orbit/joint_group_effort_

controller_spawner node. In Figure 8 is shown a

picture of animation of the Orbit robot simulated in Gazebo.

Fig. 8. Orbit robot simulated in Gazebo.

In Figure 9 is shown the step response for a position step

applied in the joint 1 of the left leg of the robot. The rise

time is 15 ms, the maximum overshoot is 82%, at 31 ms. The

setting time is 387 ms.

Fig. 9. Reference and position of joint 1 of the left leg.

Page 5: Control of a Biped Robot Using the Robot Operating Systemfetter/robocontrol2014.pdf · 2014. 10. 19. · biped robots can act in unstructured environments perform-ing supervision,

Fig. 7. Diagram of nodes and topics for the Orbit robot.

In Figure 10 is shown the input torque applied to joint 1.

There is a peak of 400 Nm associated to the position overshoot

shown in Figure 9. It is important to note that those values are

for the joint axis and not for the actuator axis since a reduction

was not included in the model.

Fig. 10. Torque applied to the joint 1 of the left leg.

The peaks shown in Figures 9 and 10 are intrinsic to

feedback linearization controllers, such as the computed torque

controller, which are known to generate large effort signals for

step references. This problem is mitigated in robotics by not

applying a step input directly to the joints, but using a trajec-

tory generator to smooth the reference applied to the joint con-

troller. Furthermore, as the model used to compute the control

law was implemented by using the ChainIdSolver_RNE

from KDL and the simulation performed by Gazebo is based

on the ODE library [16], it is possible that some model

mismatch remain. Results using a smooth trajectory presented

a much more adequate behavior, with an overshoot that is not

visible. However, due to space limitations, those results will

be published elsewhere.

In Figure 11 is shown the step response for the joint 2 of

the left leg. The rise time is 4 ms, the maximum overshoot is

20% at 9 ms and the settling time is 275 ms.

Fig. 11. Reference and position of the joint 2 of the left leg.

In Figure 12 is shown the torque applied to joint 2. The peak

is associated to the position overshoot is 240 Nm. Again, this

is the joint torque and not the actuator torque.

In Figure 13 is shown the step response for the joint 3 of

the left leg. The rise time is 4 ms, the maximum overshoot is

20% at 9 ms and the settling time is 275 ms.In Figure 14 is shown the torque applied to joint 3 of the

left leg, again with a peak of 55 Nm associated to the position

overshoot. The torque is on the joint and not on the actuator.

IV. CONCLUSION

This paper presented the development of a simplified model

of the lower members of a biped robot with six degrees o

freedom.

The use of ROS reduced the implementation time due

to reuse of components such as the joint_states_

publiser and the robot_state_publisher. Most

controllers implemented in ROS use a SISO architecture with

a PID control law. Contrariwise, in this paper a MIMO no

linear controller based on the computed torque controller was

implemented. There is a lack of documentation on how to

write controllers for ROS, in special for general nonlinear

Page 6: Control of a Biped Robot Using the Robot Operating Systemfetter/robocontrol2014.pdf · 2014. 10. 19. · biped robots can act in unstructured environments perform-ing supervision,

Fig. 12. Torque applied to the joint 2 of the left leg.

Fig. 13. Reference and position of joint 3 of the left leg.

Fig. 14. Torque applied to joint 3 of the left leg.

and/or MIMO controllers and this paper intents to fill a part

of this gap in the literature. After some improvements in its

documentation, the package developed in this work will be

made available to ROS users.

ACKNOWLEDGMENT

Authors would like to thank to Coordenacao de Aperfeioa-

mento de Pessoal de Nıvel Superior (CAPES) and Fundacao de

Apoio a Pesquisa do Estado do Rio Grande do Sul (FAPERGS)

for the financial support.

REFERENCES

[1] H. K. Lum, M. Zribi, and Y. C. Soh, “Planning and control of a bipedrobot,” International Journal of Engineering Science, vol. 37, no. 10,pp. 1319–1349, 1999.

[2] Y. Hasehawa, T. Arakawa, and F. Fukuda, “Trajectory generation forbipedal locomotion robots,” Mechatronics, vol. 10, no. 1-2, pp. 67–89,2000.

[3] M. de Waard, M. Inja, and A. Visser, “Analysis of flat terrain for theatlas robot,” in Proceedings of the 3rd Joint Conference of AI & Robotics

and 5th RoboCup Iran Open International Symposium, vol. 3, 2013, pp.1–6.

[4] M. J. Riezenman, “Robots stand on own two feet,” in IEEE Spectrum,vol. 39, 2002, pp. 24–25.

[5] P. Sardain, M. Rostami, and G. Bessonnet, “Open robot control software:the OROCOS project,” in Proceedings of the IEEE Transactions on

systems, man and cybernetics - Part A: Systems and Humans, vol. 28,1998, pp. 823–828.

[6] M. Quigley, K. Conley, B. P. Gerkey, J. Faust, T. Foote, J. Leibs,R. Wheeler, and A. Y. Ng, “ROS: an open-source robot operating sys-tem,” in Proceedings of the ICRA Workshop on Open Source Software.Kobe, Japan: IEEE Press, 2009.

[7] P. W. M. Van Zutven, T. M. Assman, J. Caarls, C. Cilli, T. P. M.Boshoven, E. Ilhan, J. A. J. Baelemans, D. J. F. Heck, M. P. A. Spoelstra,and H. Nijmeijer, “Tech united eindhoven robocup adult size humanoidteam description 2013,” in Proceedings of the 17th Annual RoboCup

International Symposium, 2013.[8] D. Gouaillier, V. Hugel, P. Blazevic, C. Kilner, J. Monceaux, P. Lafour-

cade, B. Marnier, J. Serre, and B. Maisonnier, “Mechatronic design ofNAO humanoid,” in Proceedings of the IEEE International Conference

on Robotics and Automation (ICRA), Kobe, Japan, 2009, pp. 769–774.[9] A. Morecki, J. Ekiel, and K. Fidelus, Cybernetic systems of limb

movements in man, animals, and robots. E. Horwood, 1984.[10] J. Fred, R. Sias and Y. F. Zheng, “How many degrees-of-freedom does

a biped need,” in Proceedings of the IEEE International Workshop on

Intelligent Robtots and System, California, USA, 1990, pp. 297–302.[11] I. Sucan, “Wiki of the unified robot description format (URDF),” 〈http:

//wiki.ros.org/urdf〉, Feb. 2009, [Online; acessado em 07.02.2014].[12] N. Koenig and A. Howard, “Design and use paradigms for gazebo,

an open-source multi-robot simulator,” in Proceedings of the IEEE/RSJ

International Conference on Intelligent Robots and Systems, 2004, pp.2149–2154.

[13] H. Bruyninckx, “Open robot control software: the OROCOS project,”in Proceedings of the IEEE International Conference on Robotics and

Automation (ICRA), 2001, pp. 2523–2528.[14] R. Featherstone, Robot Dynamics Algorithms, ser. Kluwer international

series in engineering and computer science: Robotics. Springer, 2008.[15] K. S. Fu, R. C. Gonzalez, and C. S. G. Lee, Robotics Control, Sensing,

Vision and Intelligence, 2nd ed. New York, USA: Mcgraw-Hill BookCompany, Jul. 1987.

[16] R. Smith, “Open dynamics engine,” 〈http://www.ode.org〉, 2005.