View
11
Download
0
Category
Preview:
Citation preview
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: eduardo.maciel@ufrgs.br, rventura@ece.ufrgs.br, fetter@ece.ufrgs.br
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.
(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]:
τ = 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
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.
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
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.
Recommended