I would like to thank Peng Cheng (UIUC) and Dr. Emilio Frazzoli (UCLA) for the collaborative work with the Trikke. I would also like to thank all the Graspees who ...
DYNAMICS AND CONTROL OF A CLASS OF MODULAR LOCOMOTION SYSTEMS Sachin Chitta A DISSERTATION
in
Mechanical Engineering and Applied Mechanics
Presented to the Faculties of the University of Pennsylvania in Partial Fulfillment of the Requirements for the Degree of Doctor of Philosophy
2005
Professor Vijay Kumar Supervisor of Dissertation
Professor P. S. Ayyaswamy Graduate Group Chairperson
c COPYRIGHT Sachin Chitta 2005
Acknowledgements I would like to thank my advisor, Dr. Vijay Kumar, for all his help and support. I would also like to thank Dr. Dan Koditschek, Dr. Dan Lee, Dr. Jim Ostrowski and Dr. Mark Yim for agreeing to serve on my committee and for their valuable feedback. I am grateful to Dr. Jim Ostrowski for giving me the chance to work on the RoboCup team and for introducing me to research in locomotion. I have been fortunate to work with several excellent graduate and undergraduate colleagues through my involvement with the Penn RoboCup team. In particular, I enjoyed working with Aveek Das, Julie Neiling, Bill Sacks, Itamar Dreschler, Lawrence Chen and Ken McIsaac for the RoboCup team. Pradyumna (PK) Mishra was a constant source of inspiration, camaraderie and encouragement during the course of his stay at the Grasp Lab. Alice Lux was a cheerful and energetic collaborator on the project. Fred Heger, probably the smartest undergraduate student I will ever know, deserves a special thanks for his efforts in building the rollerblading robot and for his meticulous style of working. I will not forget the late nights spent writing code and carrying out experiments. I would like to thank Peng Cheng (UIUC) and Dr. Emilio Frazzoli (UCLA) for the collaborative work with the Trikke. I would also like to thank all the Graspees who made the Grasp Lab such an enjoyable place to work in over the years including Sarangi Patel, Volkan Isleri, Luiz iii
Chaimowicz, Valdir Grassi, Calin Belta, Sang Hack, Jongwoo Kim, Barry Mukundakrishnan, Zhang Fan, Oleg Naroditsky, Rafael Fierro, John Spletzer, Hong Zhang, Bert Tanner, Matt Ulrich, Ani Hsieh, Ethan Stump, Dan Gomez, Arvind Bhusnurmath, Jim Keller, Adnan Ansar, Erdinc Altug, Rahul Swaminathan and Meghann Lomas. A special mention must be made of my office mates/cubicle mates Peng Song and (Aussie) Ben Grocholsky for being such nice people. I enjoyed the many conversations with you guys. I need to thank my friends Rahul Rao, PK Mishra, Ashwin Sridharan, Karthik Mukundakrishnan, Pranav Srivastava, Shashank Sinha, Ameesh Makadia, Nikhil Kelshikar and Nilesh Mankame for helping preserve my sanity through these years. Terry Kientz in the GM lab was of constant help in all my attempts at building robots. Ray McKendall was a valuable source of advice for everything from Perl scripts to serial communication. I would like to thank my parents, my brother and the rest of my family for all their support.
iv
ABSTRACT DYNAMICS AND CONTROL OF A CLASS OF MODULAR LOCOMOTION SYSTEMS Sachin Chitta Professor Vijay Kumar This thesis addresses the dynamics, gait generation and motion planning of dynamic locomotion systems. These systems differ from traditional wheeled and legged systems in their often unconventional modes of locomotion and offer advantages in performing tasks where wheeled and legged systems often fail, for example crawling through pipes, skating on ice, or climbing fences. We are particularly interested in a special class of locomotion systems that we refer to as modular locomotion systems which consist of a central base module with additional locomotion modules like legs, powered wheels or passive wheeled skate modules attached to ports on the base. Modularity implies the ability to change the configuration of the system. This flexibility allows modular locomotion systems to adapt easily to varying terrain. This thesis makes three main contributions to the study of modular locomotion systems in enumeration, dynamic analysis and motion planning. One, we present a scheme to enumerate the different robot configurations possible given a set of locomotive modules. Two, we show how nonholonomic impacts can be modeled using techniques from Lagrangian reduction. Three, we carry out gait generation and motion planning for two experimental systems, a rollerblading robot and a single input system called the RoboTrikke, and a bicycle that can be propelled without pedaling. We start with a central module and a finite number of locomotive modules and present a scheme to enumerate all the possible configurations that can be formed with this set of modules. We carry out a kinematic analysis for some of these systems and present a motion planning algorithm that incorporates the effect of intermittent contact that occur when legged modules make or break contact with the ground. v
The analysis is independent of the geometry of the legs since it is formulated using the contact points of the legs as configuration variables. We present application of this theory to a novel wheel-legged robot. For certain systems, a kinematic analysis is insufficient to recover the complete motion of the robot. A dynamic analysis method is presented for analyzing systems with multiple nonholonomic constraints. The analysis is carried out using both the Lagrange D’Alembert equations of motion and a process of Lagrangian reduction. The analysis relies on the natural division of the configuration space for the robot into two sets of variables, base or fiber variables that represent the net motion of the central platform for the robot and shape variables that represent the motion of individual modules. The motion of the modules can be related to the net motion of the robot using a connection derived from the nonholonomic constraints acting on the robot. We show how nonholonomic impacts, which occur when passive wheel modules make or break contact with the ground, can be incorporated into this analysis. Gait generation for the systems we study is usually achieved using periodic inputs for the shape variables. Motion planning involves composing the gaits appropriately to achieve the desired motion. We study the dynamics and gait generation for three example systems in this thesis: a rollerblading robot, a single input system called the Trikke and a bike that can be propelled without pedaling. The three dynamic systems we study share the common traits of an unconventional actuation scheme and multiple nonholonomic constraints because of the presence of passive wheeled modules. The Rollerblader is a robot with two three degree-of-freedom legs with passive wheels mounted at the end. Simulation and experimental results are presented for the Rollerblader for two gaits that move the robot forward and turn it in place. We show that, starting from rest, these gaits result in the robot coming back to rest after one full cycle of the gait. We prove that these gaits can be composed to move vi
the robot from point to point. We also present rollerblading gaits that attempt to mimic human rollerblading motion by bringing the legs into and out of contact with the ground. The RoboTrikke consists of a two wheeled central platform with a steering wheel attached to it. The system has a single input - the rotation of the steering axis. Using a periodic input and visual feedback from an overhead camera, the system is controlled to track a straight line trajectory by varying the offset for the steering input over each gait cycle. We can generalize the RoboTrikke to the case of a system that combines the problem of propulsion using periodic inputs with the necessity to balance an unstable system. A bicycle without pedals is an example of such a system. We present a controller that balances the bicycle while a periodic input to the steering axis results in forward motion of the bicycle. Once the bicycle gains some speed it is easily stabilizable using a feedback linearized controller. Further, a bicycle at speed can also be easily steered to achieve motion planning tasks like a lane change or motion along a circular trajectory.
vii
Contents Acknowledgements
iii
Abstract
v
List of Tables
xiii
List of Figures
xiv
1 Introduction
1
1.1
Modular Robotics . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2
1.2
Motivation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3
1.3
Related research . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6
1.3.1
Modular Robots . . . . . . . . . . . . . . . . . . . . . . . . . .
6
1.3.2
Locomotion . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9
1.3.3
Analysis of hybrid systems . . . . . . . . . . . . . . . . . . . .
10
1.3.4
Motion Control for dynamic systems . . . . . . . . . . . . . .
11
1.3.5
Bicycle Dynamics . . . . . . . . . . . . . . . . . . . . . . . . .
13
1.4
Overview of Research . . . . . . . . . . . . . . . . . . . . . . . . . . .
13
1.5
Contributions of this thesis . . . . . . . . . . . . . . . . . . . . . . . .
16
1.5.1
Enumeration . . . . . . . . . . . . . . . . . . . . . . . . . . .
16
1.5.2
Analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
16
1.5.3
Modular locomotion systems . . . . . . . . . . . . . . . . . . .
17
viii
1.5.4 1.6
Gait generation and motion planning . . . . . . . . . . . . . .
18
Organization of this thesis . . . . . . . . . . . . . . . . . . . . . . . .
19
2 Background
21
2.1
Lie groups . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
21
2.2
Lie algebras . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
23
2.2.1
Philip Hall Basis . . . . . . . . . . . . . . . . . . . . . . . . .
24
2.2.2
Campbell-Baker-Hausdorff(CBH) Formula . . . . . . . . . . .
25
Principal fibers and fiber bundles . . . . . . . . . . . . . . . . . . . .
26
2.3
3 Enumeration
29
3.1
Graph and matrix representation of modular robots . . . . . . . . . .
3.2
Enumerating distinct robot configurations:
29
Pattern enumeration . . . . . . . . . . . . . . . . . . . . . . . . . . .
31
3.2.1
Symmetric rotations . . . . . . . . . . . . . . . . . . . . . . .
32
3.2.2
Assembly patterns for a single link . . . . . . . . . . . . . . .
33
3.2.3
Enumeration of equivalence classes using Polya’s theorem . . .
33
Distinct modular robot configurations . . . . . . . . . . . . . . . . . .
35
3.3.1
Graph isomorphism . . . . . . . . . . . . . . . . . . . . . . . .
35
3.3.2
Equivalence of two modular robot configurations . . . . . . . .
36
3.3.3
Example - Application to modular locomotion system . . . . .
38
3.4
Two port configurations . . . . . . . . . . . . . . . . . . . . . . . . .
39
3.5
Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
41
3.3
4 Modular Robot Kinematics
43
4.1
Modular description of the kinematics . . . . . . . . . . . . . . . . . .
43
4.2
Equations of motion . . . . . . . . . . . . . . . . . . . . . . . . . . .
45
4.3
Stratified spaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
49
4.4
One-form approach . . . . . . . . . . . . . . . . . . . . . . . . . . . .
49
4.5
Controllability of Kinematic Systems . . . . . . . . . . . . . . . . . .
52
ix
4.6
4.7
4.8
4.9
Lie Algebra Rank Condition . . . . . . . . . . . . . . . . . . . . . . .
53
4.6.1
Example: STLC of modular kinematic robot . . . . . . . . . .
54
Steering Algorithm . . . . . . . . . . . . . . . . . . . . . . . . . . . .
56
4.7.1
The Steering Method . . . . . . . . . . . . . . . . . . . . . . .
56
4.7.2
An example . . . . . . . . . . . . . . . . . . . . . . . . . . . .
58
4.7.3
Extension to Stratified spaces . . . . . . . . . . . . . . . . . .
59
4.7.4
Condition for projecting vector fields onto the bottom stratum
60
4.7.5
Composition of two flows . . . . . . . . . . . . . . . . . . . . .
61
Example : Wheel-Legged Hybrid Robot . . . . . . . . . . . . . . . . .
63
4.8.1
Equations of motion . . . . . . . . . . . . . . . . . . . . . . .
63
4.8.2
Results : Translation . . . . . . . . . . . . . . . . . . . . . . .
64
Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
65
5 Modular Robot Dynamics
67
5.1
Lagrange’s equations . . . . . . . . . . . . . . . . . . . . . . . . . . .
68
5.2
Dynamics of Constrained Systems . . . . . . . . . . . . . . . . . . . .
69
5.2.1
Constraints . . . . . . . . . . . . . . . . . . . . . . . . . . . .
69
5.2.2
Lagrange Multipliers . . . . . . . . . . . . . . . . . . . . . . .
70
5.2.3
Lagrange D’Alembert Formulation . . . . . . . . . . . . . . .
71
Reduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
74
5.3.1
Lagrangian . . . . . . . . . . . . . . . . . . . . . . . . . . . .
74
5.3.2
Constraints . . . . . . . . . . . . . . . . . . . . . . . . . . . .
75
5.3.3
Connections . . . . . . . . . . . . . . . . . . . . . . . . . . . .
75
5.3.4
Constrained Fiber Distribution . . . . . . . . . . . . . . . . .
78
5.3.5
Generalized Momentum . . . . . . . . . . . . . . . . . . . . .
78
5.4
Modular Description of Dynamics . . . . . . . . . . . . . . . . . . . .
80
5.5
Automatic generation of equations of motion . . . . . . . . . . . . . .
83
5.6
Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
84
5.3
x
6 Modular Locomotion Systems: Two port systems 6.1
6.2
6.3
The Rollerblader . . . . . . . . . . . . . . . . . . . . . . . . . . .
86
6.1.1
Design of the Rollerblader . . . . . . . . . . . . . . . . . .
87
6.1.2
Dynamics of the Rollerblader . . . . . . . . . . . . . . . .
93
6.1.3
Reduced Equations for the Rollerblader . . . . . . . . . .
99
6.1.4
Contact Transitions . . . . . . . . . . . . . . . . . . . . . . . . 108
Bicycle without pedals . . . . . . . . . . . . . . . . . . . . . . . . . . 110 6.2.1
Nonlinear Model of the Bicycle . . . . . . . . . . . . . . . . . 111
6.2.2
Linear Analysis . . . . . . . . . . . . . . . . . . . . . . . . . . 119
Trikke . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120 6.3.1
6.4
85
Trikke Model . . . . . . . . . . . . . . . . . . . . . . . . . . 121
Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
7 Gait Generation and Control of Modular Locomotion Systems
127
7.1
Controllability . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128
7.2
The Rollerblader . . . . . . . . . . . . . . . . . . . . . . . . . . . 129 7.2.1
7.3
7.4
Gait generation for the Rollerblader- simulation and experiments 132 7.3.1
Inverse kinematics . . . . . . . . . . . . . . . . . . . . . . . . 133
7.3.2
Type 1 gaits . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134
7.3.3
Type 2 gaits . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136
7.3.4
Simulation and Experimental Results . . . . . . . . . . . . . . 139
7.3.5
Forward motion gait . . . . . . . . . . . . . . . . . . . . . . . 139
7.3.6
Rotary gait . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
Kinematic Abstraction for the Rollerblader . . . . . . . . . . . . 141 7.4.1
7.5
Small Time Local Controllability . . . . . . . . . . . . . . . . 129
Discussion of experimental results. . . . . . . . . . . . . . . . 146
Control of a Bicycle . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146 7.5.1
Input Output Linearization . . . . . . . . . . . . . . . . . . . 147
7.5.2
Balancing Controllers at low speeds . . . . . . . . . . . . . . . 151 xi
7.6
Propulsion of the bicycle without pedaling . . . . . . . . . . . . . . . 155 7.6.1
Periodic input . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
7.6.2
Balancing Controllers . . . . . . . . . . . . . . . . . . . . . . . 156
7.6.3
Balancing Controller at higher speeds . . . . . . . . . . . . . . 156
7.6.4
Simulation results . . . . . . . . . . . . . . . . . . . . . . . . . 156
7.7
Motion Planning for a Bicycle . . . . . . . . . . . . . . . . . . . . . . 158
7.8
Gait Generation for the RoboTrikke . . . . . . . . . . . . . . . . . 164
7.9
7.8.1
RoboTrikke . . . . . . . . . . . . . . . . . . . . . . . . . . . 164
7.8.2
Trikke w/ Rider . . . . . . . . . . . . . . . . . . . . . . . . 165
Experimental Results . . . . . . . . . . . . . . . . . . . . . . . . . . . 167 7.9.1
Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167
7.9.2
Forward motion . . . . . . . . . . . . . . . . . . . . . . . . . . 169
7.9.3
Moving on a curve . . . . . . . . . . . . . . . . . . . . . . . . 170
7.9.4
Closed loop control . . . . . . . . . . . . . . . . . . . . . . . . 171
7.9.5
Discussion of experimental results . . . . . . . . . . . . . . . . 171
7.10 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173 8 Conclusion 8.1
174
Future Work . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177
A Derivation of Noethers Theorem
179
B Model parameters
183
xii
List of Tables 3.1
The symmetric rotation group for a six port link . . . . . . . . . . . .
3.2
Number of distinct configurations for a 6 port base with different
38
numbers of legs and wheels. . . . . . . . . . . . . . . . . . . . . . . .
39
5.1
Twist coordinates for modular systems. . . . . . . . . . . . . . . . . .
82
7.1
Rider parameters. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166
B.1 RoboTrikke Model parameters. . . . . . . . . . . . . . . . . . . . . 183 B.2 Bike parameters. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184 B.3 Twist coordinates for a bicycle. . . . . . . . . . . . . . . . . . . . . . 185
xiii
List of Figures 1.1
Example modular robots. . . . . . . . . . . . . . . . . . . . . . . . . .
6
1.2
Base and Locomotive modules.
. . . . . . . . . . . . . . . . . . . . .
14
3.1
A prism and cubic module with ports. . . . . . . . . . . . . . . . . .
31
3.2
Example: Hybrid Robot and its graph representation. . . . . . . . . .
32
3.3
Symmetric rotations and assembly patterns . . . . . . . . . . . . . . .
34
3.4
Possible configurations for a robot with a six-port base, three legs and three wheel modules. . . . . . . . . . . . . . . . . . . . . . . . . . . .
40
3.5
Two port locomotion systems . . . . . . . . . . . . . . . . . . . . . .
42
4.1
Parameters for modules. . . . . . . . . . . . . . . . . . . . . . . . . .
44
4.2
Two possible skate modules. . . . . . . . . . . . . . . . . . . . . . . .
45
4.3
A hybrid robot with two legs and two wheels. . . . . . . . . . . . . .
47
4.4
A hybrid robot with four legs and two independently steerable wheels. 50
4.5
Parallel parking like motion. . . . . . . . . . . . . . . . . . . . . . . .
66
5.1
Robot with three passive wheels. . . . . . . . . . . . . . . . . . . . .
77
6.1
Two port modular locomotion systems. . . . . . . . . . . . . . . . . .
86
6.2
The Rollerblader. . . . . . . . . . . . . . . . . . . . . . . . . . . .
87
6.3
Simplified planar version of the Rollerblader used for analysis. (x, y, θ) are the group variables and (γ1 , d1 , γ2, d2 ) are the shape variables. φ1 and φ2 are fixed at π2 . . . . . . . . . . . . . . . . . . . . . .
88
6.4
A schematic diagram of the Rollerblader . . . . . . . . . . . . . .
90
6.5
The leg assembly for the Rollerblader. . . . . . . . . . . . . . . .
92
xiv
6.6
Workspace for one leg. The bottom yellow (big) plane in the figure is the ground plane. The top green (small) plane represents the horizontal plane containing the axis of Joint 2 of the robot. All dimensions are in meters. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
92
6.7
Physical interpretation of the generalized momentum. . . . . . . . . . 101
6.8
Transitions between configurations with one and two rollerblades in contact with the ground. Sq is two dimensional or one-dimensional. . 108
6.9
Physical interpretation of the generalized momenta with only one rollerblade on the ground. . . . . . . . . . . . . . . . . . . . . . . . . 109
6.10 The Bicycle model. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112 6.11 Modular description of a bicycle. . . . . . . . . . . . . . . . . . . . . 112 6.12 A rolling, falling disc. . . . . . . . . . . . . . . . . . . . . . . . . . . . 113 6.13 Eigenvalues for linearized bicycle with rider. . . . . . . . . . . . . . . 119 6.14 Modular description of real Trikke. γ represents the pitching motion of central module about port of attachment of real passive wheeled module. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122 6.15 Turning the steering axle affects the pitch of rear platform. . . . . . . 123 7.1
Gait 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133
7.2
Gait 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136
7.3
Gait 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137
7.4
Snapshots of forward motion. . . . . . . . . . . . . . . . . . . . . . . 138
7.5
Simulated forward motion using a symmetric gait. . . . . . . . . . . . 140
7.6
Experimental results for symmetric gait. . . . . . . . . . . . . . . . 141
7.7
Snapshots of rotary motion. . . . . . . . . . . . . . . . . . . . . . . . 142
7.8
Simulated rotary motion using an anti-symmetric gait . . . . . . . . . 143
7.9
Experimental results for anti-symmetric gait: rotary motion. . . . . 144
7.10 Linear relationship for symmetric and anti-symmetric gaits. . . . . . . 145 7.11 Eigenvalues : Input-output linearized system with output (φr , ρ). xv
. . 148
7.12 Zero Dynamics of bicycle : response of ρ . . . . . . . . . . . . . . . . 150 7.13 Eigen values : Input-output linearized system with output (φr , δ). . . 151 7.14 Eigen values : Input-output linearized system with output (ρ). . . . . 152 7.15 The Acrobot. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153 7.16 Simulation results with controller based on Acrobot model. . . . . . . 160 7.17 Simulation results with pole-placement based controller. . . . . . . . . 161 7.18 Simulation results for tracking a circular trajectory. . . . . . . . . . . 162 7.19 Simulation results for a lane change.
. . . . . . . . . . . . . . . . . . 163
7.20 RoboTrikke (Simulation): Response to sinusoidal input. . . . . . . 165 7.21 Trajectory of the RobotTrikke (simulated), Roller Racer (simulated) and RoboTrikke (experimental). . . . . . . . . . . . . . . . . 166 7.22 Trikke w/ Rider (Simulation): Trajectory of system for in-phase, out of phase and zero lean input. . . . . . . . . . . . . . . . . . . . . 167 7.23 Trikke w/ Rider (Simulation): Angular velocity of rear wheel for in-phase, out of phase and zero lean input. . . . . . . . . . . . . . . . 168 7.24 RoboTrikke model used in the experiments. . . . . . . . . . . . . . 168 7.25 RoboTrikke (Experiment): Open-loop response to zero-offset sinusoidal inputs. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169 7.26 RoboTrikke (Experiment): Motion of the system for zero-offset sinusoidal input. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170 7.27 RoboTrikke (Experiment): Open-loop turning experiments. . . . . 170 7.28 RoboTrikke (Experiment): Closed loop control to yd = constant = 0.625, starting orientation θ = 0. . . . . . . . . . . . . . . . . . . . . . 172
xvi
Chapter 1 Introduction The aim of our research is to develop a general control framework for robot locomotion applicable to a set of robots called modular robots. There exist multiple interpretations of the word modular but in the general sense, modular systems can be considered to be made up of a set of parts which can be easily disassembled, interchanged or replaced. The concept of modularity is especially relevant when describing software systems. In software, modularity often indicates the ability to easily incorporate additional modules or independent pieces of code or data into an existing software setup or framework. Modularity also represents the ability of individual pieces of a system to function with relative autonomy and yet stay connected and share important information and decisions. In particular, each module may be able to make its own decisions given a specified task for the whole system. Research in modular robotics is primarily motivated by the desire to create systems that are capable of performing very different tasks using a single platform. Modularity can also, in certain cases, give rise to redundancy thus creating more robust systems. 1
1.1
Modular Robotics
The robotics literature contains a wealth of examples of modular robots, with differing interpretations of the concept of modularity. A common thread running through these views is the concept of a module. A module is a basic building block of a modular robot. A module is not just a part or component of the robot, a distinction highlighted by the following feature: • A module is easily interchangeable, i.e. it can be easily replaced with a new module of the same or different type. A module may not be just an actuating part of the robot. It could also be a sensory or computing module. Thus, the concept of modularity encompasses all aspects of the robot: hardware, software and control. There are two important classifications for modular robots: homogeneous and heterogeneous, manually reconfigurable and self-reconfigurable. A homogeneous robot has modules of the same type, e.g. a robot with four legs. Homogeneous robots are sometimes also referred to as uni-modular robots. A robot made up of different types of modules is called a heterogeneous or hybrid robot. An example of a hybrid robot is a robot with a combination of wheels and legs as shown in Figure (3.4). Reconfiguration of a modular robot is achieved by attaching or detaching modules from the robot. It may involve a redistribution of the modules of the robot into a different configuration. Manually reconfigurable robots, as the name suggests, are those that must be reconfigured using an external agent. This is done with the robot stationary and not performing any task. In most cases, the robot is powered down in advance of this procedure. Self-reconfigurable robots, on the other hand, are able to carry out such reconfiguration on their own. In most cases the reconfiguration is done statically, i.e. the robot is stationary and not performing any task, but some robots could reconfigure dynamically while they are in motion or executing a task. 2
Modular robots offer several advantages over conventional robots: 1. Task specific reconfiguration Modular robots can be easily reconfigured to perform multiple tasks, eg. a robot could navigate different terrain by using a combination of wheels and legs and then use a tail-like module to locomote in water. This inherent versatility of the robots is probably their strongest attribute. In particular, modules that are added to the original system could be individual robots themselves. The combined system would then be strong and big enough to perform larger tasks that cannot be performed by individual robots. Depending on the task, different sensor modules could also be attached to the robot, eg. an infra-red camera for low-light operations. The key point to note here is that modular robots are designed so that such flexibility is inbuilt and easy to implement vis-a-vis conventional robots. 2. Robustness The ease of interchangeability of the modules allows for the manual or automatic replacement of faulty modules. Thus, a robot can react easier to power or control failure of one of its modules. 3. Lower Cost The design and use of modules that can perform multiple tasks could reduce the cost of a system. In the case of homogeneous robots, this cost reduction comes about in lower manufacturing costs due to standardization of components.
1.2
Motivation
The biggest advantage of modular systems is their flexibility. In most cases, given a specialized task for a system, it would be best to use a dedicated system or machines 3
specifically designed for that purpose. However, in Robotics, there are several scenarios that require a single system to perform an array of different tasks. Consider, for example, the following task: A robotic system is required to walk over rugged terrain to the edge of a frozen lake and move over the ice to a target located at the middle of the lake. A specialized walking or wheeled robot would fail to perform this task by itself. However a modular robot with the capability to walk and skate over ice would be better suited to a job of this nature. While there are different types of modular robotic systems as noted earlier, our research focus is on modular robots that are capable of locomotion. In particular, we look at modular systems for locomotion that consist of a base and locomotive modules that can be attached to the base. This is in contrast to the work in [81], where the modules are all essentially of the same type. Locomotive modules could include legs, wheels, tails, fins, thrusters, etc. In addition, we assume that the robots are manually reconfigured. A natural question to ask is whether there is anything special about such modular robots that would require a different approach from that applied to conventional robots? An analysis of a robotic system (for motion generation and planning) typically requires the following steps : • Equations of motion The first step is to develop the equations of motion for the robot. This usually involves the choice of an appropriate set of coordinates to describe the system and the development of equations that specify the evolution of these coordinates, their first and (possibly) second and higher derivatives, i.e. the evolution of the states of the system. • Controllability analysis An analysis of the controllability of such a robot reveals what it can and cannot do. In particular, this analysis reveals whether the robot can reach a part or the whole of its configuration space and the instantaneous motions the robot is capable of. 4
• Motion planning Given the controllability analysis, different controllers can now be applied to the system to generate a desired motion of the robot. A prerequisite to this step is the specification of a task. The motion planning scheme is usually divided into three steps:
1. Path planning A path is generated for the robot that takes into account any obstacles. 2. Trajectory generation A trajectory is then generated for the robot to follow based upon this path. The trajectory generation takes into account any kinematic and dynamic constraints on the robot. 3. Control Controls are generated to allow the robot to follow the required trajectory. Feedback may be used as necessary to correct the motion of the robot when it deviates from the desired trajectory.
It is quite clear that the same steps need to be followed for the analysis of modular robots. However, the main challenge for modular robots is the need to generate a general framework that can be automatically applied to a variety of modular robot configurations. (It is easy to see that an additional step is usually required as compared to conventional robots, the enumeration of all possible configurations of the robot given a particular base and set of modules.) Most of the existing research into motion planning for modular robots has focused on generating algorithms for particular examples, i.e. the schemes outlined for each robot are usually specialized schemes that are applicable only to that robot. This is not surprising, considering that most modular robots locomote using very novel means. However, the robots we consider fall under a more rigid framework. It should be possible then to apply motion generation analysis and algorithms found in literature to such robots. 5
(a) Polybot.
(b) Molecule.
(c) Metamorphic robot.
(d) MTRAN2.
Figure 1.1: Example modular robots.
1.3 1.3.1
Related research Modular Robots
Modular robotic systems have been widely studied in recent years. Figure 1.1 shows some examples of modular robotic systems. In [81], Yim presented the Polypod, a unit-modular reconfigurable robot. The Polypod consisted of multiple two-degree-of-freedom modules attached to each other. Although two types of modules were used, the robot was still considered a unitmodular robot since more of one type of module was used than the other. Locomotion was achieved by using gait tables that specified the individual module motions necessary to generate net motion of the robot. Subsequently, Yim et al. presented the Polybot [82], an advanced version of the Polypod. It has successfully accomplished a wide array of tasks – from crossing an obstacle course to riding a tricycle. 6
Each module of the robot has its own actuators, processor, sensors and a latching mechanism to attach to other modules. The robot can reconfigure by detaching and attaching modules as needed. By reconfiguration, it can form a new type of robot more suited to the task, eg locomotion over a difficult terrain. Murata et al. built a 2D planar robot [51] made up of homogeneous units (called Fracta) that moves by alternate repulsive and attractive forces generated by an electromagnet. It is capable of self-repair by replacing a dead or defective module with a working module. Murata, et al. [52] also developed a 3D reconfigurable robot. The robot had modules that could attach and detach to neighboring modules. Net motion of the robot was achieved by repeated reconfiguration (connection and detachment of modules), i.e., a set of modules move over the top of another set firmly fixed on the ground and then themselves form the base for the hitherto fixed set to move over. More recent self-reconfigurable robots called MTRAN (Modular Transformer) and its newer version MTRAN2 have demonstrated impressive reconfiguration capabilities ([53], [36] and [83]). Each module of the robot consists of a pair of semi-cylindrical links attached to each other by a rotary joint. Each link has three mating surfaces that can be used to attach to other modules using magnets and shape-memory alloys actuators. The connection surfaces also facilitate the transfer of power and communication signals. The robot has demonstrated reconfiguration from a crawler type vehicle to a quadruped and motion in both configurations. Chirkjian et.al. [17] presented a modular robot composed of 2D hexagonal modules. The modules move by attaching to other modules along the sides of the hexagon. Again, net motion was achieved by reconfiguration of the whole lattice like structure of the robot. This motion, similar to the motion of Murata’s 2D and 3D robots, is in contrast to the motion of the Polybot (and Polypod). The Polybot does not need to reconfigure to achieve net motion of its body. Robots that move solely by reconfiguration are restricted by the geometric dimensions of their 7
individual modules and are much slower than robots like the Polybot. A Crystalline robot consisting of individual compressible unit modules was presented in [64]. The modules are cube like structures that can expand and contract. The modules also attach to each other using the faces of the cubes. The robot composed of such modules exhibits an inchworm like gait motion. The Molecule is another reconfigurable robot [41]. The Molecule consist of two individual modules called Atoms attached at right angles to each other. The Molecule can attach to other molecules to perform different tasks. Simulation results have been presented by the authors that show a 8 Molecule robot climbing a staircase. The CONRO project designed a unit-modular robot that could be manually reconfigured into different configurations. The project demonstrated snake-like locomotion, rolling-track locomotion [71] as well as quadruped and hexapod walking motion [13] using robots built out of the same set of modules. Another robotic system capable of dynamic reconfiguration is the I-Cubes [76], a class of modular self-reconfigurable bipartite robots. The robot consists of a set of links and cubical passive connection elements. The links are capable of connecting and disconnecting to the cubes and also of moving a cube relative to another cube. The CMU Reconfigurable Modular Manipulator System RMMS [62] applied the concept of modularity to manipulators. The system consists of a set of joint and link modules that are interchangeable. Thus, the RMMS can be manually reconfigured to conform to the specified task. It can also automatically calculate the necessary kinematics, dynamics and controls for a given configuration of links and joints. An interesting research issue raised is the problem of determining the optimal configuration of a modular manipulator given a task at hand, an issue important for modular mobile robots as well (but one that will not be addressed in this work). Motion planning and control for modular robots has also received considerable interest. Most of the work mentioned earlier also examines motion planning. However, in most cases, the issues of motion planning and control are dealt with for a 8
specific robot and cannot be applied to other modular robots. There have been a few attempts to devise a general framework that can apply to different kinds of modular robots. The work in [15] dealt with automatic generation of kinematics and dynamics for modular robots. The authors examined modular robots with branching tree like structures. They used a graph search algorithm to determine a traversing order from the base module to each module of the robot. The kinematics of the robot can then be recursively solved for. A recursive Newton-Euler approach was then used to determine the dynamics of the robot. However, this approach can be used only for a branch type robot with a fixed base. Further, no closed loop geometry can exist in the branching structure of the robot. In contrast, our work deals with mobile robots with multiple constraints, i.e. the robots have a floating base. In addition, some of the constraints acting on the robot may be nonholonomic.
1.3.2
Locomotion
Research in Locomotion is a rich source of work that could be applied to mobile modular robots. Approaches for generation of gaits, controllability formulations and motion planning techniques used in locomotion can be adapted to apply to our system. In particular, the last decade has seen a great deal of interest in undulatory robotic locomotion systems, including the Eel [49], the Snakeboard [59], the Variable Geometric truss [42], the Roller Racer [43] and various snake like robots [33]. The configuration space for such robots consists of two types of variables, group variables which represent the aggregate motion of the robot and shape variables. Propulsion or net motion of these robots is a result of cyclic shape variations. Such cyclic shape variations are often referred to as gaits. Unlike more conventional locomotion systems, the dynamics of such systems are quite complicated and it is often difficult to determine how shape motions can be synthesized and controlled to generate desired group motions. 9
Novel locomotion techniques allow robots to carry out tasks that cannot be tackled using more conventional means like walking and powered wheeled motion. Indeed, research in this area draws a lot of motivation from the motion of biological systems. Some examples of this include the inchworm like gaits for a Crystalline robot consisting of individual compressible unit modules [64] and various serpentine gaits used for snake-like robots. However, the synthesis of gaits is often difficult to carry out for these robots. In particular, for robots like the Snakeboard and Roller Racer that have passive wheels, the mode of locomotion is non-intuitive. Unconventional locomotion strategies often help in negotiating difficult terrain. A recent example of such a robot is RHex [1], a six legged robot that has demonstrated a remarkable capability to negotiate varied terrain. Some unconventional robots also have the ability to switch between different modes of locomotion for different terrains. A novel robot design that exploits this strategy is the Roller Walker [35]. This quadruped robot has the ability to switch between walking and skating modes. Passive wheels at the end of each leg fold flat to allow the robot to walk. In the skating mode, the wheels are rotated into place to allow the robot to carry out skating motion. In fact, the Rollerblader is inspired by the design of the Roller Walker. An experimental prototype of the Roller Walker was shown to be able to generate skating motions in the forward and rotary directions and also follow a figure-eight path [28].
1.3.3
Analysis of hybrid systems
The most relevant work in the analysis of systems like the Rollerblader with contact is presented in [11] and [12] where the authors presented an analysis of transitions between smooth dynamic regimes. They modeled the resultant system as a hybrid system and presented results for a simple example with transitions at rest. In contrast, in the Rollerblader transitions occur dynamically, ie when the leg in contact is in motion. There is no general motion planning scheme that can 10
deal with such systems at present.
1.3.4
Motion Control for dynamic systems
There are a lot of approaches to motion planning for dynamic locomotion systems that may also be applicable to the motion planning problem of our systems. Among the three most promising approaches are the ones that use techniques from optimal control, averaging theory and a kinematic reduction based method. The first approach of interest is the work in [9] and [10]. There, the authors introduce the notion of decoupling vector fields and kinematic controllability of a system. Decoupling vector fields are vector fields along which a dynamic system can slow down or speed up as necessary. These vector fields can then be used as motion primitives and the motion planning problem reduces to the inverse kinematics like problem of finding an appropriate sequence of primitives to reach the desired goals. The notion of decoupled vector fields was applied to, among other systems, a blimp-like vehicle and the snakeboard. The notion of kinematic controllability captures the controllability properties of a system that evolves along decoupled vector fields. The notion of using motion primitives in this form is similar to the work in [29]. There the authors defined motion primitives as those that belonged to a restricted class of trajectories. These trajectories were relative equilibria for the systems under consideration and are also called trim trajectories. Along trim trajectories, the control inputs are constant. Further, the base velocities are also constant. Trim trajectories are thus, in a sense, less general versions of decoupled vector fields. Again, the motion planning problem using trim trajectories narrows down to the task of finding a sequence of such trajectories that can take a system to the desired point. Transitions between trajectories are achieved using maneuvers, dynamic motions that start and end on trim trajectories. Necessary conditions for optimal controls for Lagrangian mechanical control systems with symmetry were studied in [40]. The conditions were used to derive the 11
conditions that the optimal control curves to steer the snakeboard must satisfy. An optimal control scheme for nonholonomic systems was examined in [26] and applied to the snakeboard in [60]. The scheme involved a solution of the optimal control problem numerically. The optimal control problem, with a cost function that was a measure of the energy input to the systems, was reformulated as an unconstrained variational problem. The states and control inputs for the system were approximated by linear combinations of piecewise smooth basis functions of time. The scheme results in a set of nonlinear equations in the discretized states and inputs that were solved numerically using a Newton-Raphson method.
Averaging theory is the study of the evolution of the averaged dynamics for a system. It is useful for studying systems with periodic inputs where the averaged dynamics are usually of more use than the actual motion of the system. This is particularly true for the kind of systems we are interested in. In [8], Bullo presented a first-order averaging result for mechanical systems and applied it to simple example systems. In the same work the author also proved stability results connecting the stability of the averaged system to the stability of original system. In [78], Vela presented higher order expansions for averaging and applied the theory to systems like the Snakeboard and to carangiform locomotion [77].
An interesting system that has been well studied, but not in the manner we will study it later in this thesis, is the bicycle. In this thesis, we will examine the bicycle as a novel locomotion system that can be driven without pedaling. This is a problem that has not been looked at before. However, the bicycle, being a relatively complex and interesting dynamic system, has been very well studied. In particular, several authors have examined the dynamics and control of the bicycle especially at higher speeds. We will now review some of this previous work. 12
1.3.5
Bicycle Dynamics
The dynamics of a bicycle have been widely studied for more than two centuries. The first published study of the dynamics of an uncontrolled upright bicycle was by Whipple [80]. Bicycle dynamics and stability were also studied by, among others, Rankine [63], Timoshenko [75], Ne˘imark and Fufaev [56], Kane( [37], [61]). Weir studied the dynamics of motorcycles and the effect of rider control in his PhD thesis [79]. Motorcycle dynamics was also examined by Sharp [67]. Hand [32] presented a detailed review and comparison of previous work and corrected some of the earlier approaches. More recently, Suryanarayanan et al [72] studied the control of front and rear wheel steered bicycles at very high speeds (80-100 mph). Getz [30] presented a controller to balance and drive a bike along a time-parameterized path using a combination of steering and rear-wheel torque. A recent paper by Schwab et al. [66] presented benchmark linearized equations for an uncontrolled upright bicycle. Using linear analysis, they showed that uncontrolled bicycles are stable over a certain range of speeds.
1.4
Overview of Research
We consider modular locomotion systems to consist of two types of modules, a base and locomotive modules. The locomotive modules can be of several types: legs, wheels, thrusters, tails, etc. This is different from the type of modules presented in [14] where the authors considered robots to be made up of links and joints. In contrast, we consider, for example, one leg as a distinct module and do not attempt to break it up into its constituent parts. A base module and some of the locomotive modules we consider are shown in Figure (1.2). The base has multiple ports where the modules can be attached. The ports serve as transfer points for control and communication signals. Our approach starts in Chapter 3 with the application of Polya’s theorem to 13
Central Platform
Passive Wheel
Powered Wheel
Skate
Leg
Figure 1.2: Base and Locomotive modules. a given set of base and locomotive modules. This allows an enumeration of the different configurations possible. In particular, we enumerate all possible two port systems. Three particular two port systems represent actual systems that we study in greater detail in subsequent chapters. We then look at the automatic generation of the equations of motion for such systems. In Chapter 4 we examine the formulation of the kinematics for such systems while in Chapter 5 we present the formulation of the dynamics for such systems. In both cases, the method we present automatically calculates the equations of motion by exploiting the modular nature of our systems. Central to our approach is the natural division of the configuration space Q for such robots into two sets of variables: shape variables, denoted by r and group variables, denoted by g. We make a simplifying assumption and restrict g to belong to SE(2), the special Euclidean group. In particular this means that we restrict the base module to stay parallel to the horizontal ground plane. We neglect dynamic effects in the vertical plane caused by picking up or setting down of legs. This 14
condition is often enforced by the use of caster wheels mounted on the base to maintain the balance of the base module at all times. The systems we deal with often exhibit a symmetry with respect to the action of a symmetric group like SE(2), the group of translations and rotations in a plane. This property can be exploited to reduce the system [3]. We use the concepts of reduction to express the equations of motion for these robots in terms of a smaller set of reduced variables. Nonholonomic and holonomic constraints can be handled by this approach. In certain cases, we find conserved quantities called generalized momenta for the system. In other cases, the evolution of these generalized momenta can be described by differential equations. We also look at the use of the classical Lagrange D’Alembert equations for modeling dynamic systems. Although this formulation is widely used, our presentation of this method is especially suitable for use with symbolic manipulation software. In Chapter 6, we analyze three two-port systems that represent actual physical systems. The systems that we examine include the Rollerblader, the Trikke and a bicycle without pedals. All three systems are characterized by the presence of passive wheeled modules that lead to nonholonomic constraints. The use of skate modules with passive wheels in the Rollerblader results in the need to model nonholonomic impacts. Nonholonomic impacts occur when passive wheel modules come into and out of contact with the ground. A transfer of momentum occurs every time a skate module comes into contact with ground. We model this effect in Chapter 5 by projecting the momentum of the system onto the new set of unconstrained directions after impact. We then examine the problem of generating gaits for such systems. It may often be possible to use feedback (dynamic or static) so that direct control is achieved over the shape variables. The motion generation problem then reduces to actuating the shape variables in the right manner to generate corresponding motion of the group variables. This relation is captured by a connection that relates motion in 15
the shape space to motion in the group. We can now examine the controllability of the robot. A variety of controllability results are available for both drift-free and driftless systems. We apply some of these results to modular locomotion systems. We examine the use of different types of inputs to actuate the system, including sinusoidal and bang-bang inputs. We present multiple applications of this theory. We present motion planning and controllability results for a hybrid robot with two wheels and legs [25] in Chapter 4. In Chapter 7 we present results for the rollerblading robot [22](Rollerblader). We examine a very novel method of riding a bike without pedaling. We also present experimental and simulation results for a novel locomotion system called the Trikke and its robotic counterpart, the RoboTrikke.
1.5
Contributions of this thesis
The contributions of this thesis are multi-fold and are grouped below into different categories.
1.5.1
Enumeration
We present a scheme to enumerate the distinct configurations possible given a particular set of locomotive modules and a base module. The scheme uses Polya’s theorem to enumerate the required configurations. The enumeration serves as the first step in analyzing further the dynamics of modular locomotion systems.
1.5.2
Analysis
Our approach to kinematic analysis of modular systems utilizes a top-down methodology that we believe is more natural and conducive for use with motion planning algorithms. Our approach pushes out motion plans from the central module to the individual locomotive modules. This is particularly conducive to the modular approach as well where the central modules makes the decision on which direction to 16
move and passes this onto the locomotive modules. Each locomotive module can then calculate locally the shape inputs needed to execute the overall motion plan. The top-down nature of this approach is a subtle but important characteristic whose advantages may not be immediately obvious but will be apparent when we present more examples in Chapter 4. We can automatically analyze the kinematics and dynamics of modular locomotion systems. We use the product of exponentials formulation to calculate the required Lagrangian and constraints. In carrying out dynamic analysis of modular locomotion systems, we incorporate the effects of nonholonomic impacts into our analysis. To our knowledge, this is the first instance of such impacts being modeled. This allows us to analyze the effects of putting down a passive wheel module on the ground at the end of a gait cycle.
1.5.3
Modular locomotion systems
We present synthesis results for the generation of gaits for kinematic systems. We also model several novel dynamic locomotion systems. The Rollerblader is the first attempt to model human like rollerblading motion where the legs come into and out of contact with the ground. Our work differs from the Roller Walker in the ability to pick up the rollerblades off the ground. This allows us to use gaits that mimic those used by human rollerbladers, for example those that combine walking or running with skating motion. We also present several novel gaits and a method for composition of gaits that can move the Rollerblader from point to point. In addition, we present a geometric analysis of the Rollerblader, including an analysis of momentum transfer due to impact, that has not been carried out for the Roller-Walker. While bicycle dynamics has been widely studied, no attempt had been made so far to explain the dynamics of bicycles at lower speeds. Our analysis of the bicycle without pedals is unique as it deals with the control of a system where the mode 17
of locomotion is unconventional and dynamic stability is of paramount importance. Our analysis of the bicycle is also a complete rigid body analysis and our method of analysis serves as a template for modeling such systems easily using symbolic manipulation software. In analyzing the Trikke, we attempted to explain the unconventional mode of locomotion for a real system. We also simulated the effect of rider behavior on the Trikke system. In addition, using a simplified robotic model of the Trikke called the RoboTrikke, we were able to obtain excellent closed-loop motion planning results using a discrete controller and visual feedback. The controller that we used may be applicable to other systems with nonholonomic constraints and periodic inputs. The controller essentially implements an averaging control where changes in the control are made only at the end of a cycle. This allows the system to follow the desired trajectory on average.
1.5.4
Gait generation and motion planning
Gait generation for the systems we study is a very hard problem in general. We have been able to successfully design and implement different kinds of gaits. We showed that a set of simple gaits can be used to control and move the Rollerblader. We showed (analytically) that these gaits execute the desired motion, a fact that was confirmed by experimentation. We also show how a set of simple gaits can be used to achieve the desired result of point to point motion for such systems. Thus, it might not be necessary to always look for complicated dynamic gaits for such systems. Instead it may be worthwhile finding a smaller set of simple gaits and composing them together to achieve point to point motion. We have shown that a bicycle can be driven without pedaling. We show how the two goals of balancing an unstable system and achieving desired locomotion can be combined to drive a bicycle. We also presented controllers that can be used to track trajectories for the bicycle. Using a combination of these controllers, the bicycle can 18
first attain a speed where it is easier to stabilize and then achieve required behaviors like lane changes or tracking a circular trajectory. We applied a discrete controller to the closed loop control of the RoboTrikke. This kind of controller uses concepts from averaging theory where the control parameters are kept constant for one full gait cycle and changed based on discrete feedback. This kind of approach can also be used in other situations where the shape inputs are restricted to periodic motion. Now, the behavior of the system is determined, on average, by the magnitude, frequency and offset of the periodic input. An appropriate feedback control law can now be formulated in terms of these quantities to achieve desired control of the system.
1.6
Organization of this thesis
This thesis is organized as follows. In Chapter 2, we present some mathematical background to the material that will follow in later chapters. In Chapter 3, we present an enumeration algorithm to list out the possible configurations of such robots. In particular, we list the possible configurations for a two-port systems with four types of modules- a passive wheeled module, a powered wheel module, a skate module and a leg module. We then look at the automatic generation of kinematics for such systems. In Chapter 4 we present the kinematic formulation of modular locomotion system. We show how a systematic approach can be used in formulating the equations of motion for kinematic modular mobile systems and present details of a motion planning algorithm that takes into account intermittent contact by legged systems. Chapter 5 deals with modeling the dynamic behavior of modular locomotion systems. We show how the modular nature of these systems can be useful in simplifying the derivation of the dynamics for these systems. We then examine three configurations from among the two-port systems enumerated in Chapter 3. These three configurations closely represent three real systems that we 19
would like to examine in greater detail. Using some of the techniques developed in Chapter 5, we model the three novel dynamic locomotion systems in Chapter 6, a planar rollerblading robot called the Rollerblader, a bicycle without pedals and a novel system called the RoboTrikke. In Chapter 7, we study condition for controllability for dynamic systems. We also present gait generation and motion planning algorithms and their application to the three dynamic locomotion systems analyzed earlier. In Chapter 8, we conclude by presenting a summary of work done and future directions for this research.
20
Chapter 2 Background We begin by providing some background for the notation and concepts that will be used in subsequent chapters. The material in this chapter is based on [4], [38], [65] and [57]. We denote by M an m-dimensional manifold. The tangent space of M at a point q ∈ M is denoted by Tq M. The tangent space represents the best linear vector space that approximates M at q. An element in the tangent space is denoted by vq . Let f denote a mapping f : M → N. Then the differential of f is given by the mapping Tq f : Tq M → Tf (q) N. The differential is also often denoted as Df, df or f∗ .
2.1
Lie groups
The motion of modular robots can be represented using Lie Groups. In particular, planar motion of the base platform can be represented using the special Euclidean group, SE(2), of which we shall make extensive use. It will be useful to review a few definitions and properties of Lie groups. We start with a definition. Let G be a group that is also a differentiable manifold. For h, g ∈ G, let hg denote their product. Definition 2.1.1 G is a Lie group if the mappings (g, h) ∈ G × G → gh ∈ G and 21
g ∈ G → g −1 ∈ G are C ∞ . Associated with a Lie group is the action of the Lie group on a Manifold. Definition 2.1.2 A left action of a Lie group on a smooth manifold Q is a smooth mapping Φh : G × Q → Q such that: 1. Φ(e, q) = q, for all q ∈ Q and where e denotes the identity element in G. 2. for g, h ∈ G, Φ(g, Φ(h, q)) = Φ(gh, q), for all q ∈ Q. Definition 2.1.3 An action is called free if Φg (q) = q implies g = e, i.e. the action has no fixed points. An example of a Lie group is the special Euclidean group SE(2). SE(2) represents the set of rotations and translations in a plane. An element g ∈ SE(2) is often specified as g = (x, y, θ), or in matrix form as cos θ − sin θ x g = sin θ cos θ y 0 0 1 The left action of the group on itself is given by Lg : G → G : h → gh. Thus, the resultant of the action is calculated simply by multiplying the two relevant matrices. Thus, given h = (x1 , y1 , α) gh = (x1 cos θ − y1 sin α + x, x1 sin θ + y1 cos θ + y, θ + α). The differential of the Left action is given by the mapping Tg Lg : Tg G → Tg G. cos θ − sin θ 0 Tg Lg h = sin θ cos θ 0 h 0 0 1 It is worth noting that SE(2) is a non-Abelian group because of the non-commutativity of matrix multiplication, i.e. for h, g ∈ SE(2), hg = gh. Thus, 22
a right action is also defined for the group as Rg : G → G : h → hg. Also associated with a non-Abelian group is an adjoint action. Definition 2.1.4 An adjoint action is defined on the Lie group as Adg : G → G : h → Lg Rg−1 h = ghg −1. The adjoint action, in a sense, is a measure of the non-commutativity of the left and right actions. It is also a similarity transformation and is used to express the rigid body displacement given by h in a different frame of reference.
2.2
Lie algebras
We use [4] for the definition of a Lie algebra. A vector space g over R is a (real) Lie algebra if it possesses a product g × g → g : (X, Y ) → [X, Y ], that has the following properties: 1. Bilinearity: for X1 , X2 , X, Y1 , Y2 , Y ∈ g and α1 , α2 ∈ R, [α1 X1 + α2 X2 , Y ] = α1 [X1 , Y ] + α2 [X2 , Y ] , [X, α1 Y1 + α2 Y2 ] = α1 [X, Y1 ] + α2 [X, Y2 ] . 2. Skew commutativity: [X, Y ] = − [Y, X] . 3. Jacobi identity : [X, [Y, Z]] + [Y, [Z, X]] + [Z, [X, Y ]] = 0. The lie algebra corresponding to SE(2) is denoted as se(2). An element ξ ∈ se(2) can be represented as a ordered pair (v, ω). 0 −1 0 0 A1 = 1 0 0 , A2 = 0 0 0 0 0 23
A basis often used 0 1 0 0 0 , A3 = 0 0 0 0
for se(2) is given by: 0 0 0 1 . 0 0
Thus ξ is given as:
0 −ω v1
ξ = ωA1 + v1 A2 + v2 A3 = ω 0
0 0
v2 . 0
An element of se(2) can be used to generate an element in SE(2) using an exponential map. Given ξ = (v, ω) ∈ se(2), the corresponding element in SE(2) is given by: v v2 v2 v1 1 sin ωt + (cos ωt − 1) , sin ωt + (1 − cos ωt) , ωt exp(tξ) = ω ω ω ω Now, consider the (left) action of this element of SE(2) on a manifold : Φξ : R×Q → Q : Φ(exp(tξ)), q). This constitutes a flow on Q. This also defines a vector field on Q called the infinitesimal generator corresponding to ξ: ξQ (q) =
d Φ(exp(tξ), q)|t=0 dt
The infinitesimal generator corresponding to ξ q = ωA1 + v1 A2 + v2 A3 ∈ g is q = (v1 − yω) ξQ
∂ ∂ ∂ + (v2 + xω) +ω . ∂x ∂y ∂θ
q ∂ ∂ ∂ Conversely, a given vector field ξQ = ν1 ∂x + ν2 ∂y + ν3 ∂θ can be considered as the
infinitesimal generator of an element ξ q ∈ g = se(2), under the group action Φ. Then, ξ q = ν3 A1 + (ν1 + yν3)A2 + (ν2 − xν3 )A3 .
2.2.1
Philip Hall Basis
Let g(g1, . . . , gm ) be the Lie Algebra generated by a set of vector fields g1 , . . . , gm . A basis for g(g1, . . . , gm ) can be generated by using all the vector fields and their Lie products. However, these products may not be linearly independent because of skew symmetry and the Jacobi identity. The Philip Hall basis is a systematic method of generating a basis for the Lie algebra g(g1, . . . , gm ) that takes into account skew symmetry and the Jacobi identity. 24
Given a set of vector fields (g1 , . . . , gm ), the length of a Lie product is defined recursively as l(gi ) = 1, i = 1, . . . , m, l([A, B]) = l(A) + l(B). where A and B are themselves Lie products. A Lie algebra is called nilpotent if there exists an integer k such that all Lie products of length greater than k are zero. The integer k is called the order of nilpotency. Definition 2.2.1 Philip Hall Basis [65] A Philip Hall basis is an ordered set of Lie products H = {Bi } that satisfies the following properties: 1. gi ∈ H, i = 1, . . . , m. 2. If l(Bi ) < l(Bj ), then Bi < Bj . 3. [Bi , Bj ] ∈ H iff (a) Bi , Bj ∈ H and Bi < Bj , (b) either Bj = gk for some k or Bj = [Bl , Br ] with Bl , Br ∈ H and Bl ≤ Bi . We will use the Philip Hall basis later in Chapter 4 when we present a motion planning scheme for kinematic systems.
2.2.2
Campbell-Baker-Hausdorff(CBH) Formula
The CBH formula is a measure of the commutativity of two Lie algebra elements over their exponential. It is useful in calculating the resultant flow on a manifold, due to the composition of two consecutive flows generated by two vector fields on the manifold, in terms of the Lie algebra generated by the two vector fields. We will use the CBH formula in Chapter 4 when we discuss a motion planning scheme for kinematic systems. 25
Proposition 2.2.2 Consider a neighborhood U of the identity element I of a Lie group G such that every element in U can be represented as exp(ξ) for some ξ ∈ g. Then, for any two elements exp(ξ1 ) and exp(ξ2 ) ∈ U there exists ξ3 ∈ g(G) such that exp(ξ3 ) = exp(ξ1 ).exp(ξ2 ). The element ξ3 is given by 1 1 1 [ξ1 , ξ2 ] + [ξ1 , [ξ1 , ξ2 ]] + [ξ2 , [ξ2 , ξ1]] + . . . 2 12 12 ∞ (−1)m−1 adαξ2m adβξ1m . . . adαξ21 adβξ11
m m = m ( (α + β ) i i i=1 i=1 (αi !βi !)) m=1
ξ3 = ξ1 + ξ2 +
where the inner sum is over all m-tuples of pairs of non-negative integers (αi , βi ) such that αi + βi > 0, and in order to simplify the notation, we denote adξ1 = ξ1 and adξ2 = ξ2 for the final terms in the multiplication.
2.3
Principal fibers and fiber bundles
The Lie group structure defined above can be used to represent the position and orientation of the robot. The other variables associated with the robot are usually called the shape variables, denoted by R. These variables span a sub-manifold of the configuration space Q. This sub-manifold can be viewed as a quotient space : Qr = Q/G. It is usually referred to as a reduced or base space. Thus the configuration space consists of the group and shape variables : q ∈ Q = (g, r), g ∈ G, r ∈ Qr . These can be put together into a principal fiber bundle structure. The definition for principal fiber bundles presented here is based on [38] but has been modified to use the left group action instead of the right group action. Definition 2.3.1 A differentiable manifold Q is called a principal fiber bundle if: 1. The left action of G on Q is free and differentiable, 26
2. Qr is the quotient space of Q by the equivalence relation induced by G, i.e. Qr = Q/G and the canonical projection π : Q → Qr is differentiable, 3. Q is locally trivial, i.e. every point r ∈ Qr has a neighborhood U such that π −1 (U) is isomorphic to G × U. Thus, there exists a diffeomorphism ψ : π −1 (U) → G × U given by ψ(q) = (φ(q), π(q)), for which φ : π −1 (U) → G satisfies φ(Φg q) = Lg φ(q) for all g ∈ G and q ∈ U. The principal fiber bundle is often denoted by Q(Qr , G). In most cases, we will be dealing with a trivial principal fiber bundle since we can write Q = Qr × G globally. Definition 2.3.2 A trivial principal fiber bundle is a principal fiber bundle where the left action of G on Q is obtained trivially by the action of Lg on Q. This implies that Φh (g, r) = (Lh g, r), given h ∈ G and (g, r) ∈ G × Qr = Q. Associated with a trivial principal fiber bundle are the two canonical maps that give the group and shape components of the bundle : π1 : Q → G : q → g π2 : Q → Qr : q → r The trivial bundle structure is often visualized as a base manifold Qr with fiber G at each r ∈ Qr . Hence, the group variables are also called the fiber variables. It is easy to note that in a trivial fiber bundle structure the infinitesimal generator is simply given by ξQ (q) = (Te Rg ξ, 0) For SE(2), we have
1 0 −y Te Rg = 0 1 x . 0 0 1 and so, ξQ (q) = (v1 − ωy, v2 + ωx, ω, 0). 27
We will also require the effect of the group action on the complete tangent space T Q. Definition 2.3.3 The effect of the left action on T Q is given by T Φh : T Q → T Q : (q, v) → (Φh q, Tq Φh v for h ∈ G and (q, v) ∈ T Q.
28
Chapter 3 Enumeration The first step in the analysis of modular locomotion systems involves the enumeration of possible configurations for the system. In this chapter, we discuss an algorithm that enumerates the distinct modular configurations for a given set of locomotion modules. The algorithm takes into account symmetric configurations of the system, i.e. cases in which two configurations are related by a symmetric rotation. We first discuss graph and matrix representations for modular robots. We then present the enumeration algorithm and apply it to a few example configurations. A method for such enumeration was presented by Chen and Burdick in [14]. The authors defined two possible types of modules, a link and a joint module. Although our definition of the types of modules is different, the same ideas can still be used to enumerate the different configurations of a modular robot.
3.1
Graph and matrix representation of modular robots
Kinematic chains of links and joint are often represented as graphs. By replacing the joints in a chain by edges and the links by vertices, a kinematic graph representation can be created. The graph consists of a set of vertices and edges. Each edge links 29
two different vertices. In a labeled graph, the vertices and edges are assigned labels. If the vertices and edges are of different kinds, like in a heterogeneous modular robot, a specialized graph structure can be defined. Consider a labeled graph with a set of vertices V = (v1 , . . . , vn ) and edges E = (e1 , . . . , en ). If V and E are the set of types of vertices and edges, then a mapping fv : V → V and fe : E → E assigns a particular vertex and edge type to each of the vertices and edges of the graph respectively. In case of the representation scheme for modular robots, the types of vertices and edges are the types of link and joint modules respectively. The graph representation is often converted into a matrix representation for convenience. The type of matrix representation used here is known as a vertex-edge incidence matrix. The element mij of this matrix has value 1 if edge ej is incident on vertex vi , otherwise it has value 0. Thus, each row of a matrix representation contains information about one vertex of the graph while each column contains information about a edge of the graph. To represent specialized graphs an additional row or column is added to the matrix to indicate the type of the vertex and edge respectively. The resulting matrix representation for a specialized graph is known as an extended incidence matrix. In representing modular robots, the non-zero elements of this matrix are replaced by the port numbers of the links where the corresponding joints are attached thus giving an assembly incidence matrix [14]. Figure 3.2 shows an example of a hybrid modular robot. Its extended incidence and assembly incidence matrices are given by:
1 1 1 v2 0 1 0 M(G) = v3 1 0 0 v4 0 0 1 P P R v1
e1 e2 e3 30
L
C L . C 0
2
1 9
4
3
Figure 3.1: A prism and cubic module with ports.
9 v2 0 A(G) = v3 10 v4 0 P v1
6
2
L
0 C 0 0 L . 0 2 C P R 0 1
e1 e2 e3 This representation scheme is general enough to be used with different kinds of modules.
3.2
Enumerating distinct robot configurations: Pattern enumeration
The problem of enumerating all possible distinct arrangements of modular systems given a set of modules is important. In [14], a method for such an enumeration is presented. The method is based on testing for two conditions for a given pair of modular robots: the equivalence of individual link assembly patterns and the isomorphism of the underlying graph structure. These methods are now described in more detail. To illustrate the method, we use two kinds of link modules: a prism module with 10 ports and a cubic module with 6 ports (Figure 3.1) with ports on the faces. The ports in the modules are numbered in a particular order for identification.
31
V4 2 e 3 2 V1
4
e1
1 3
9
10
V3
6 e2
V2(C) e2(P)
1
V2
e3(R)
V1(L) e1(P)
V3(L)
V4(C)
Figure 3.2: Example: Hybrid Robot and its graph representation.
3.2.1
Symmetric rotations
A symmetric rotation for a link is a rotation about a body axis after which the original and rotated links cannot be distinguished. Symmetric rotations of a module can be identified with certain features of the module. Here, the port numbers on a link are used to identify a symmetric rotation as a permutation on the set of port numbers. For example consider a prism link rotated through 90o about the z axis. As can be seen from Figure (3.3(a)), port 1 now occupies the position where port 3 originally was while port 3 occupies the space where port 5 originally was and so on. Thus, the symmetric rotation can be represented as π=
1 2 3 4 5 6 7 8 9 10
.
3 4 5 6 7 8 1 2 9 10
Each link has a set of symmetric rotations associated with it that are represented as permutations on the set of port numbers for the link. Let PORT = (1, 2, 3, 4, 5, 6, 7, 8, 9, 10) denote the set of port numbers for the prism link. Let π ∈ S denote a permutation on PORT. S is the set of permutations corresponding to symmetric rotations of the prism link. 32
3.2.2
Assembly patterns for a single link
An assembly pattern f for a single link is a unique assignment of joints from a set (denoted by ATT1 ) of possible joints to each port of the link. Thus, f : PORT → ATT. For example, ATT = (R, P, H, C, 0) denoting a rotary, prismatic, helical and cylindrical joint respectively. The set of possible joints includes a null joint indicating that no joint has been attached to that particular port of the link. Let m = |ATT| and n = |PORT|. Then the number of assembly patterns possible is mn. Let F denote the set of all possible assembly patterns. Two assembly patterns fi and fj : PORT → ATT are equivalent iff ∃π ∈ S such that fi = fj ◦ π. Since the cubic and prism links possess axes of symmetry, two assembly patterns may look alike after a symmetric rotation of the link. Consider the assembly patterns fa and fb shown in Figure 3.3(b). If π is a rotation of the prism about the z axis by 90o, fa (1) = fb oπ(1) = fb (3) = R, fa (2) = fb oπ(2) = fb (4) = R, fa (9) = fb oπ(9) = fb (9) = P, fa (i) = fb oπ(1) = 0 for all other i. Thus, both the assembly patterns will perform identically in a modular robot.
3.2.3
Enumeration of equivalence classes using Polya’s theorem
The set of symmetric rotations divides the set of assembly patterns F into disjoint subsets called equivalence classes. The assembly patterns belonging to a particular equivalence class are all related by a symmetric rotation. Thus, the problem of finding the number of distinct assembly patterns is converted into one of finding the number of such equivalence classes. Polya’s theorem is used to find this number. 1
from the word attachments
33
2
1
X 9
4
3 Y
2
8
1
3
1 9
9 4
2
7
Z
2
1
9
4
(a) Symmetric rotation of a prism link module.
3
(b) Assembly patterns for a prism link with two rotary joints and one prismatic joint.
Figure 3.3: Symmetric rotations and assembly patterns To use Polya’s theorem, we first need to establish some notation. A permutation π operating on PORT splits the index set into cycles. Length of a cycle = m if π m (s) = s ∈ PORT and s, π(s), . . . , π m−1 (s) ∈ PORT .The type of a permutation, type(π) = (b1 , . . . , bn ) where bi = no. of cycles of length i. For example, rotation through 90o splits PORT into four cycles (1, 3, 5, 7), (2, 4, 6, 8), (9), (10) and hence type (π) = (2, 0, 0, 2, 0, 0, 0, 0, 0, 0). We now define the cycle index of a permutation group S to be a polynomial in dummy variables x1 , . . . , xn as: 1 b1 b2 x x . . . xbnn , Ps (x1 , . . . , xn ) = S π∈S 1 2 where type(π) = (b1 , b2 , . . . , bn ). Now, consider J = set of joints (J1 , J2 , . . . , Jm ), e.g.(R, P, 0). Assign a dummy variable yi to Ji , i =, 1, 2, . . . , m = |J|. In the cycle index polynomial substitute xk =
|J|
yik
i=1
Then the coefficient of
y1d1 y2d2
dm . . . ym
gives the number of distinct patterns or equiv-
alence classes for a single link with d1 joints of type J1 ,. . . , dm joints of type Jm . Having found the number of distinct equivalence classes, an algorithm is now required for enumerating the distinct classes. The algorithm for this purpose is essentially a brute force algorithm and is presented below. 34
Algorithm 3.2.1 Algorithm PatternEnumerate Input to Algorithm Set of Assembly patterns (F ) Symmetric rotation group (S) Algorithm Step 1 : Queue = F ; Step 2 : v = First(Queue); Queue = Rest(F ); Dpattern = (); Step 3 : Vpattern = (voπ, π ∈ S) Step 4 : ∀fi ∈ Queue, if fi ∈ Vpattern then Queue = Queue -(fi ) Step 5 : Dpattern = Dpattern + (v) Step 6 : If Queue = (k), Dpattern = Dpattern + (k) Step 7 : Repeat from Step 2. Output of Algorithm The set (Dpattern) of distinct assembly patterns under S. END.
3.3 3.3.1
Distinct modular robot configurations Graph isomorphism
Having found the distinct assembly patterns for a single link, the problem now is to find distinct modular robot assemblies. The concept of graph isomorphisms is useful in solving this problem. Two graphs G1 and G2 are said to be isomorphic to each other if their incidence matrices M1 and M2 are related to each other by row or column permutations. If γ12 is the isomorphism between the two graphs then Mγ12 (G1 ) = M(G2 ) A graph may be isomorphic to itself in which case Mγ (G1 ) = M(G2 ) 35
When testing for pattern equivalence on specialized graphs it is important to take into account the type of edge or vertex.
3.3.2
Equivalence of two modular robot configurations
Topological equivalence The problem of enumerating distinct modular robot configurations can now be addressed. Given two modular robot assembly configurations, their graph representations G1 and G2 and their assembly incidence matrices (AIMs) A(G1 ) and A(G2 ), the first step is to test for the topological equivalence of the two robot configurations. Two robot configurations and their AIMs, A(G1 ) and A(G2 ), are topologically equivalent iff G1 and G2 are isomorphic. Physically, an isomorphism represents a re-labeling of the links and edges of a modular robot and does not affect the actual physical structure of the robot. For specialized graphs that represent hybrid robots, the test for topological equivalence is the same except that the type of link must be taken into account when carrying out the test for isomorphism.
Pattern equivalence If A(G1 ) and A(G2 ) are topologically equivalent, let γ12 denote the isomorphism from G to G . Let w 1 = (a1 , a1 , . . . ) and w 2 = (a2 , a2 . . . ) be ith row vectors 1
2
of Aγ12 and A(G2 ).
i
wi1
and
i1
i2
wi2
i
i1
i2
will have non-zero elements in the same position
in the row. wi1 and wi2 are pattern equivalent iff ∃π : PORT → PORT such that ∀a1ij ∈ PORT, π(a1ij ) = a2ij , i.e. iff they are related by a symmetric rotation. When checking for pattern equivalence, it is important to take into account automorphisms of the graph to itself. It is necessary to compare all automorphisms as well when checking for pattern equivalence of these two rows. For specialized graphs which represent hybrid robots the test for pattern equivalence is the same except that the symmetric rotation group for each different type of link will be different. 36
Algorithm 3.3.1 Enumeration Algorithm The enumeration algorithm to enumerate and list out distinct modular robot configurations follows.
1. Generate non-isomorphic trees Gi and corresponding incidence matrices for a given number of vertices. Several computer algorithms are present which can be used to carry out this step.
2. Find the automorphism groups for each of the trees.
3. The algorithm PatternEnumerate is used to find distinct assignments from Link(the set of all types of links) and Joint(the set of all types of joints) to vertices and edges of Gi . This problem is similar to the problem of finding distinct assembly patterns for a link except that the set PORT is now replaced by the set VERTEX or EDGE and the set ATT is now replaced by JOINT or LINK. Construct non-isomorphic specialized graphs Gi and corresponding extended incidence matrices for each of these assignments.
4. Find the automorphism groups for each non-isomorphic specialized graph Gi .
5. For every Gi , generate distinct assembly patterns for every link. This is done by using algorithm PatternEnumerate, since the number of joints on each link is known from the rows of the incidence matrix. All the labeled joints are treated as different since they will be attached to different links. Combine all pattern inequivalent row vectors for every link to construct inequivalent AIMs.
6. Use automorphism groups to eliminate equivalent AIMs.
7. Repeat Step 5 for every Gi . 37
3.3.3
Example - Application to modular locomotion system
We will now apply the enumeration concepts discussed in this chapter to the case of a modular locomotion system. The base module present in every modular locomotion system serves as a logical starting point to the enumeration. We assume that only one locomotive module can be attached to every port of the base module. Further, the locomotive modules can be attached only to the base module, i.e. locomotive modules cannot be attached to other locomotive modules. Consider an example of a mobile robot with a 6 port base (as in Figure 1.2) and 3 legs and 3 wheels. In the case of a mobile robot of this form, only one module can be attached to each port of the base link, either a wheel or a leg module. The set of symmetric rotations for the six port base is shown in Table (3.1). This problem can be solved by the application of Polya’s theorem. The set of joints is now the set of Permutations on Port → Rotation Identity About x(180o ) About y(180o) About z(180o )
1 2 3
4 5
6
Type
1 4 3 6
4 1 6 3
6 3 4 1
(6,0,0,0,0,0) (0,3,0,0,0,0) (2,2,0,0,0,0) (0,3,0,0,0,0)
2 5 2 5
3 6 1 4
5 2 5 2
Table 3.1: The symmetric rotation group for a six port link modules =(Leg, Wheel, Null). The cycle index polynomial is now 1 PS = ((y1 + y2 + y3 )6 + (y12 + y22 + y32 )3 4 + (y1 + y2 + y3 )2 (y12 + y22 + y32)2 + (y12 + y22 + y32 )3 ). The number of distinct configurations for a robot with 3 legs and 3 wheels is given by the coefficient of y13 y23 in the above polynomial which is 6. These 6 configurations are shown in Figure 3.4. Thus, the algorithm can be successfully applied to determine the distinct configurations for a mobile robot. We have only presented the enumeration of distinct configurations for a robot with three legs and three wheels. The distinct 38
Number of wheels 0 1 Number of legs 6 5 Number of distinct configurations 1 2
2 3 4 3 6 6
4 5 6 2 1 0 6 2 1
Table 3.2: Number of distinct configurations for a 6 port base with different numbers of legs and wheels. configurations possible for a robot with all 6 ports filled, i.e. there is either a leg or a wheel module on each of the ports, is given in Table 3.2. Using the above polynomial, the number of distinct configuration with different number of ports filled can be easily found.
3.4
Two port configurations
In subsequent chapters, we will look in particular at two port configurations. Such systems are made up of a central platform with only two ports and two locomotive modules. We consider four different types of modules and assume that each port has only one locomotive module attached to it. The four modules considered here are a leg module, a powered wheel module, a passive wheel module and a skate module. The total number of distinct configurations possible is 10 and the configurations are shown in Figure 3.4. We assume that the central platform of the robot is balanced on omnidirectional castors. Thus, we ignore the problem associated with dynamic balancing of the central platform. This also means that the configuration of the central platform can be fully described in SE(2), the group of planar translation and rotation in a plane. Some of these configurations are more interesting and represent real systems that we study in further detail. The robot in Figure 3.5(a) is a standard wheeled mobile robot that has been widely studied. Figure 3.5(h) represents a biped robot, i.e. a robot with two legs. Figure 3.5(j) represents a configuration with two skate 39
(a) Configuration 1
(b) Configuration 2
(c) Configuration 3
(d) Configuration 4
(e) Configuration 5
(f) Configuration 6
Figure 3.4: Possible configurations for a robot with a six-port base, three legs and three wheel modules.
40
modules. The skate module is an articulated module with a passive wheel at the end. Figure 3.5(g) is a system with one passive wheel module and one skate module. This configuration is similar to a commercial system called the Trikke.
3.5
Conclusion
In this chapter we have introduced our concept of what a modular mobile system would look like. We have presented algorithms to enumerate the different configurations for such robots. We have also listed out all possible two-port configurations given a set of four locomotive modules- a passive wheeled module, a powered wheel module, a skate module and a leg module. Additional information about the material in this chapter can be found in [23]. Some of these two port system represent real systems which we will examine in greater detail in Chapters 6 and 7. In Chapter 4, we will examine the automatic formulation of kinematics for such systems and the generation of gaits for kinematic systems. In Chapters 5 we will examine the generation of dynamics for such systems. In Chapter 6, we will examine in further detail three of the systems shown in Figure 3.4. These include the Rollerblader (Figure 3.5(j)), the Trikke (a variation on the configuration in Figure 3.5(g)) and the bicycle (a generalization of the Trikke).
41
(a) A wheeled mobile robot
(b) A cart with one passive and one actuated wheel module
(c) A cart with one leg and one actuated wheel module
(d) A cart with one actuated wheel and one skate module
(e) A cart with two wheels
(f) Skateboarder- One passive and one leg module
(g) Trikke-like robot
(h) Cart with two legs
(i) A cart with one leg and one skate module
(j) Rollerblader
Figure 3.5: Two port locomotion systems
42
Chapter 4 Modular Robot Kinematics The motion of some modular robots may be fully described by their kinematics alone. For robots with a large number of modules, the formulation of kinematic equations is not trivial. In particular, the presence of multiple non-holonomic constraints can make this task harder. Here, we present a simple approach to formulating the kinematics of modular robots and then present a steering algorithm for kinematic modular robots.
4.1
Modular description of the kinematics
A modular description of the kinematics of a system can be achieved by specifying a set of parameters for each module. To better explain this concept, Figure 4.1 shows the relevant geometric parameters for different locomotive modules. For the two port base or central module, the distance between the two ports b is the important geometric parameter. The important variables for this module are the group variables (x, y, θ) in SE(2) that represent the position and orientation of the central module. For the four-port module(e.g., Figure 4.3), the other important geometric parameter is the distance l along the length of the robot between two ports. 43
Js
dd Passive Wheel
ds
dw Powered Wheel
Skate
dl Leg
Figure 4.1: Parameters for modules.
For a leg module, the shape variables are the coordinates (xi , yi, zi ) of the endeffector(feet or contact point with the ground) of the legs. For the skate module, the shape variables are the rotation of the skate γ in the vertical plane and the extension of the skate (the distance from the port to the skate wheel), ds . The important geometric parameter for the skate is the angle φ that the axle of the skate wheel makes with the direction of prismatic extension of the leg and the angle α that the rotary axis of the skate makes with the vertical(Figure 4.2. We will consider two cases, α =
π 2
and α = 0. The first case corresponds to the type of module that used
for modeling the Trikke while the second case corresponds to the type of module used for modeling the Rollerblader in subsequent chapters. Further, the module used in Trikke has no prismatic extension, i.e. ds = constant while the module used in the Rollerblader has α = 0. The powered wheel module has one constant geometric parameter, the distance of the contact point of the wheel from the port. A similar parameter describes the passive wheeled model. In addition, each module with a wheel has associated with it a shape variable ψ that represents the rotation of the wheel about its axle and a constant parameter Rw that denotes the radius of 44
Js
Js D ds
I
(a) Skate module used in the Rollerblader
ds
I S
(b) Skate module used in the Trikke
Figure 4.2: Two possible skate modules. the wheel.
4.2
Equations of motion
The kinematics of a modular robot can usually be described as q˙ = f (q) + h(q)u, where q represents the configuration space for the robot. If f (q) = 0, the system is known as a drift-free system. In this chapter, we will only consider drift-free systems of the form: q˙ =
m
hi (q)ui.
(4.1)
i=1
It is often useful to formulate the equations of motion in terms of a set of general inputs. There can be two kinds of general inputs for a robot. Shape inputs represent local changes in the shape of the robot, i.e., changes in joint angles, position of the end effector, etc. Body inputs specify the overall motion of the body in terms of its position or relative orientation with respect to a coordinate reference frame. For a drift-free system we have q˙ = h(g, r)u, where q = (g, r). g represents the time parameterized trajectory of the mobile robot (g ∈ G, a Lie group such as SE(2)) and r represents the shape variables for the robot. We can write 45
q˙ = hg ug + hr ur .
(4.2)
Here ug is the set of allowable body or non-shape inputs while ur is the set of shape inputs to the system. But for g ∈ G, we know that g −1g˙ = ξ, where ξ is the body velocity of the robot. This body velocity can be further represented in terms of allowable body motions. Frequently, the shape inputs, (ur ), may also drive the body velocity. Combining the effects of the allowable inputs, (ug ), and the shape inputs on the body velocity, ξ, we have ξ = hξr ur + hξg ug .
(4.3)
Extracting the terms corresponding to the evolution of the shape variables from Equation 4.2, we can write r˙ = hrr ur + hrg ug .
(4.4)
A common approach to formulating the equations of motion for mobile robots involves a bottom-up approach where the effects of each individual module on the body velocity is examined. This is the case for example, in most work on kinematic locomotion systems to date, where the equations of motion are given by g −1g˙ = −A(r)ur , r˙ = ur .
(4.5)
Here, hξr = −A(r), hξg = 0, highlighting the dependence of the position on changes in shapes. We have found that a top-down approach may sometimes be preferable, especially for legged systems, where the effect of the body velocity is pushed out to the individual modules. This approach is motivated by the classical problem of solving inverse kinematics vs. solving the direct kinematics for parallel mechanisms. Kinematic legged systems are essentially like parallel mechanisms where the solution of the direct kinematics is harder than the solution of inverse kinematics. Thus, it makes more sense to formulate the equations of motion for such systems by examining the effect of the body inputs on the legs instead of trying to work upwards from the motion of the legs. 46
Y
- Contact Points of the legs A
(x , y ) 1
1
Yb
Xb
θ l
(x,y) (x , y ) 2
2
Q PORTS
X
Figure 4.3: A hybrid robot with two legs and two wheels. To illustrate the use of group and shape inputs, we present two different approaches to formulate the body velocity of a mobile robot. For a differential drive wheeled robot (such as the wheel configuration in Figure 4.3), the set of allowable inputs can be thought of as a drive velocity, V , along a direction perpendicular to the axis of the wheels and the rate of change, ω, of the orientation of the robot, θ, with respect to an inertial reference frame. There is no dependence of the body inputs on the shape inputs (hξr = 0). So, 1 0 ξx V . ξ = ξy = hξg ug = 0 l ω ξθ 0 1
(4.6)
Using another approach, we can consider the angular rotation of each wheel (of radius R) about its axle as a shape variable and use the corresponding angular velocities as shape inputs. Let the angular rotation of the left and right wheels be denoted by ψl and ψr respectively. Now, hξg = 0 and the body velocity is given by 47
ξ R/2 R/2 x ξ = ξy = hξr ur = Rl/w −Rl/w ξθ R/w −R/w
ψ˙ r ψ˙ l
,
(4.7)
where w is the distance between the centers of the two wheels. When a leg is in contact with the ground, its motion is constrained by the allowable body inputs. Also, hrr = 0 since there are no independent shape inputs available for control of the leg. Assuming a constant body height, the equations describing the motion of the point of contact of leg 1 with the ground, in a body fixed coordinate frame are,
x˙ 1 y˙ 1
= hrξ ξ =
−1 0
0
y1
−1 −x1
ξ.
(4.8)
Since ξ is already assumed to depend on the group inputs, ug , via Equation 4.6 we have
x˙ 1 y˙ 1
= hrg ug =
−1
y1
0
−x1 − l
V
.
(4.9)
ω
When the leg is not in contact with the ground, we have direct control of x1 and y1 using two additional inputs ux1 and uy1 . Thus, x˙ 1 = ux1 and y˙ 1 = uy1 . The complete equations of motion for this kind of robot can now be easily written down, as is done later in Section 4.8.1. Since a large number of modules can be attached to the ports of a modular robot, it is often difficult to determine what kinds of body inputs are available. The methods presented in the previous section are one approach to formulating these equations of motion where the available inputs are easy to determine. Another approach that we will examine later involves the use of one-forms to depict the constraints placed by each individual module on the robot (see [74] for similar work in formation control). We digress briefly now to introduce the concept of Stratified spaces. This concepts will be especially useful when dealing with legged systems. 48
4.3
Stratified spaces
The legs of a legged robot continuously make and break contact with the surface over which the robot is moving. For a modular robot with wheels and legs, the wheels of the robot can be lifted off the ground (by the legs, for example) or, as in the systems in [27] and [25], wheels may be placed at the end of the legs. The equations of motion of such robots change continuously with the contact of different modules and depend on the type and number of modules in contact. To deal with this discontinuity in the equations of motion, the concept of stratified configuration spaces was introduced by Goodwine and Burdick in [31]. The configuration space for a legged robot can be considered to be made up of a number of strata. Each stratum describes the space over which the states of the system evolve with a fixed number of legs/wheels in contact. Let Sijkl..p denote the sub-manifold or stratum over which the system evolves. For example S12 would denote the stratum with feet 1 and 2 in contact with the ground. The sub-manifold with more legs in contact is said to be lower than the sub-manifold with lower number of legs in contact. The bottom stratum is the sub-manifold with all the legs/wheels in contact with the ground.
4.4
One-form approach
Constraints are often represented using the dual-space to the tangent space of the manifold on which the system evolves. Such representation involves the use of differential forms and helps in highlighting the relationship between constraints and the velocities of the system (see [65] for an introduction to 1-forms and exterior differential systems). A 0-form on a manifold M is a function f : M → R. The differential df of a 0-form f is defined pointwise as the 1-form:
df (p)(Xp ) = Xp (f ). 49
(4.10)
Let, x : M → Rn be the coordinate function in the neighborhood of a point p. The differentials of the coordinate functions are: dxi (p)(Xp ) = Xp (xi ).
(4.11)
Evaluating the differential at the basis tangent vectors of Tp M we obtain: dxi (p)(
∂ ) = δij . ∂xj
(4.12)
Thus, 1-forms form a dual basis for the tangent space to M at p and can be utilized to represent constraints for the systems we consider. The use of one-forms for the formulation of the equations of motion is presented using an example. Consider the robot of Figure 4.4. The robot has two independently steerable wheels and four legs. It is not immediately obvious whether this robot would be able to move at all or which trajectories it would be able to follow. - Contact Points of the legs (x , y )
Y
1
1
Yb
φ1
(x 4 , y4 )
l S
Q
Xb
θ
P
φ2
(x , y ) 2
LEG MODULE
R
2
PORTS
(x 3 , y3 )
X
Figure 4.4: A hybrid robot with four legs and two independently steerable wheels. Wheel 1 places a non-holonomic constraint on the motion of its point of attachment (Point Q) with the robot. Wheel 2 places a similar constraint on the motion 50
of point R on the robot. These constraints are given in the form of one-forms by Equations 4.13 and 4.14 for Wheels 1 and 2 respectively. cos(θ + φ1 )dyQ − sin(θ + φ1 )dxQ = 0.
(4.13)
cos(θ + φ2 )dyR − sin(θ + φ2 )dxR = 0.
(4.14)
The constraint on point P due to wheels 1 and 2 is given by the one-forms in Equations 4.15 and 4.16, respectively. sin(θ + φ1 )dx − cos(θ + φ1 )dy − l cos φ1 dθ.
(4.15)
sin(θ + φ2 )dx − cos(θ + φ2 )dy + l cos φ2 dθ.
(4.16)
The input vector fields for the robot must lie in the kernel of the constraints. Thus, any trajectory for the robot must lie in the kernel of the constraints as well. The form of a basis for the input vector fields (bi ’s) for the robot (corresponding to a configuration space q = (x, y, θ, φ1, φ2 )T ) can be derived as b1 = (0, 0, 0, 1, 0)T , b2 = (0, 0, 0, 0, 1)T b3 = (−l(cos φ2 cos(φ1 + θ) + cos φ1 cos(φ2 + θ)), −l(cos φ2 sin(φ1 + θ) + cos φ1 sin(φ2 + θ)), sin(φ2 − φ1 ), 0, 0)T . Only the wheels are considered in this formulation since the legs do not place any constraints on the body velocity. Thus, the equations of motion for the legs can be derived separately once the form of the allowable inputs is known. The formulation helps in the choice of possible inputs for the robotic system. It is clear in this case that there are only three available inputs. Two inputs allow the change in the steering angle for each of the wheels while the third allows motion along a circular arc with its instantaneous center at the point of intersection (point S) of two lines coincident with the axes of the two wheels. When the two wheels are parallel to each other, this point lies at infinity allowing only motion along a straight line. Using this property, it can be shown that the body velocity of the robot is constrained to lie in the span of {−2l cos φ1 cos φ2 , −l sin(φ1 + φ2 ), sin(φ2 − φ1 }T . 51
When φ1 = −φ2 , the form of the body velocity after simplification is given as {l cos φ1 , 0, sin φ1 }T and the robot has no body velocity in the transverse (y) direction. The above results can be expressed more formally. Consider a stratum Sij..k with constraints (w1 , ..., wk ) defined on the robot. On this particular stratum, the input vector fields for the robot are those which lie in the kernel of the constraints. Thus, given ⊥ = span{w1 , ..., wk }, the chosen input vector fields must satisfy the condition bi ∈ Kernel( ⊥ ). The system is assumed to be kinematic and hence we have full control of inputs in the unconstrained directions represented by these vector fields. Remarks: • The use of the one-form approach aids in resolving redundant constraints. This is useful when there are a large number of modules placing different constraints and it is not immediately obvious what their effect on the system as a whole might be. • Singularities show up naturally using the approach in the form of rank deficiencies of the resultant set of input vector fields.
4.5
Controllability of Kinematic Systems
At this point, before examining motion planning schemes, we will look at controllability issues for kinematic systems. We first define the notion of accessibility for general nonlinear systems of the form q˙ = f (q) +
k
hi (q)ui,
(4.17)
i=1
where q ∈ M, an m dimensional manifold. Denote by RV (q0 , T ) the set of all points reachable from q0 at time T > 0, such that the trajectories remain in the neighborhood V of q0 for all t ≤ T . Also, let RTV (q0 ) = ∪t≤T RV (q0 , t) be the set of all reachable points from q0 within time T . 52
Definition 4.5.1 (Local Accessibility) [57] The system 4.17 is locally accessible if for all q ∈ M, RTV (q) contains a non-empty open set of M for all neighborhoods V of q and all T > 0. Accessibility is usually determined by using the Lie Algebra Rank Condition.
4.6
Lie Algebra Rank Condition
Define a sequence of distributions of the form ∆0 = span(f, h1 , ..., hk ),
(4.18)
∆i = ∆i−1 + span([Y, Z]|Y, Z ∈ ∆i−1 ).
(4.19)
This sequence terminates at some if , given certain regularity conditions. ∆if is referred to as the accessibility distribution. Let C = ∆if = ∆∞ . The Lie Algebra Rank Condition(LARC) relates the local accessibility of a system to the dimension of C. Theorem 4.6.1 (LARC) If dim C(q) = dim Tq M for all q ∈ M, then the system in Equation 4.17 is locally accessible. We will now define a notion of controllability called small-time local controllability.
Definition 4.6.2 (STLC) The system 4.17 is said to be small-time locally controllable (STLC) if for any neighborhood V , time T > 0 and q ∈ M, q is an interior point of RTV (q) for all T > 0. For drift-free (kinematic systems), local accessibility also implies STLC. We will define conditions for STLC of non-drift free systems later when we deal with the dynamics of modular robot systems. 53
4.6.1
Example: STLC of modular kinematic robot
We can apply the Lie Algebra Rank Condition to the robot in Figure (4.4). We start with the equations of motion for the robot, again using only the wheels in the formulation, as we had done in Section 4.4. The configuration space for the robot is given by q = (x, y, θ, φ1, φ2 ) and we have, (4.20) q˙ = h1 u1 + h2 u2 + h3 u3 0 0 −l(cos φ2 cos(φ1 + θ)+cos φ1 cos(φ2 + θ)) 0 0 −l(cos φ2 sin(φ1 + θ)+cos φ1 sin(φ2 + θ)) = 0 u1 + 0 u2 + u3 . sin(φ2 − φ1 ) 1 0 0 0 0 1 We need to calculate only two Lie brackets,
l(cos φ2 sin(φ1 + θ)+sin φ1 cos(φ2 + θ))
−l(cos φ2 cos(φ1 + θ)−sin φ1 sin(φ2 + θ)) [h1 , h3 ] = − cos(φ2 − φ1 ) 0 0 l(sin φ2 cos(φ1 + θ)+cos φ1 sin(φ2 + θ)) −l(cos φ1 cos(φ2 + θ)−sin φ2 sin(φ1 + θ)) [h2 , h3 ] = cos(φ2 − φ1 ) 0 0 and we find that dim(C) = dim(Tq M) = 5, where C = span{h1 , h2 , h3 , [h1 , h3 ] , [h2 , h3 ]}. This implies that the system is locally accessible. Since we have assumed that the system is drift-free, local accessibility implies small time local controllability. 54
We will examine this example robot in a little more detail. In particular we need to derive an expression for the angular velocities of the wheels (ψ˙ 1 , ψ˙ 2 ) that would generate the input u3 required in Equation 4.20. The derivation of this expression highlights the advantages of our top-down approach. We start with an expression for the velocity of points Q and R on the robot.
x˙ Q y˙Q x˙ R y˙R
1 0 −l sin θ 0 0 = q. ˙ 0 1 l cos θ 0 0
(4.21)
Given the wheel velocities, we can write the velocities of points Q and R as
x˙ Q y˙ Q x˙ R y˙ R
cos(θ + φ1 ) 0 sin(θ + φ1 ) 0 = 0 cos(θ + φ2 ) 0 sin(θ + φ2 )
r ψ˙ 1 . ˙ r ψ2
where r indicates the radius of the two wheels. Thus,
r ψ˙ 1 r ψ˙ 2
x˙ Q y˙ cos(θ + φ1 ) sin(θ + φ1 ) 0 0 = Q 0 0 cos(θ + φ2 ) sin(θ + φ2 ) x˙ R y˙R
(4.22)
We can now use Equations 4.20, 4.21 and 4.22 to derive the required expression for the wheel angular velocities in terms of the allowable input velocities u1 , u2 and u3 . Note that this result allows us to use the non-real input u3 in Equation 4.20 in subsequent motion planning schemes since we can now compute the required wheel velocities to generate u3 . The required motion of the legs can also be derived using an approach similar to the one used earlier in Equation 4.8. The body velocity ξ required in that expression 55
is given by
ξ=
cos θ sin θ 0 0 0 − sin θ cos θ 0 0 0 0 0 1 0 0
x˙
y˙ ˙θ . ˙ φ1 ˙ φ2
Using this expression for ξ in Equation 4.8, x˙ 1 − cos θ − sin θ y1 0 0 = ξ. y˙1 sin θ − cos θ −x1 0 0
(4.23)
We will now look at a steering algorithm for drift-free systems.
4.7
Steering Algorithm
Frequently, the robotic system in consideration may not have enough inputs to directly drive each of its states to the desired values. Following the approach of Lafferriere and Sussmann [44], an extended system is defined with an additional set of fictitious inputs. A set of vector fields for the extended system is chosen from the Philip Hall basis for the system. Then the required motion of the system can be represented as a sequence of flows along these vector fields. Flows involving the fictitious inputs must be implemented by a sequence of flows along the vector fields for which the system has real inputs. The method for steering is presented in detail in [44]. It is described here in brief.
4.7.1
The Steering Method
Consider a drift free system given as q˙ = h1 u1 + h2 u2 + · · · + hm um , q ∈ Rn , hi ∈ Rn , i = 1, 2, . . . , m. 56
(4.24)
In general m < n, i.e., the system does not have enough inputs to directly drive each of the states to the desired values. Therefore, an additional set of vector fields is added to the above system to span the entire configuration space. An extended system based on the system given above is defined as q˙ = b1 v1 + b2 v2 + · · · + bm vm + bm+1 vm+1 + · · · + bs vs .
(4.25)
dim(span(b1 , b2 , . . . , bm , bm+1 , . . . , bs )) = dim(M).
(4.26)
where
The bi ’s are chosen from the Phillip Hall basis which is a basis for the Lie algebra defined by the set of vector fields gi (x). Here bi = hi , i = 1, 2, . . . , m and bm+1 , . . . , bs correspond to higher order Lie brackets chosen from the Philip Hall basis.The v i ’s are called fictitious inputs to the system since they may not correspond to the real inputs to the system. Let qi and qd denote the initial and desired states of the system respectively. Define a curve γ(t) going from qi to qd . The vi ’s can be solved for by solving a set of simultaneous equations formed from Equation 4.25. The solution involves taking a pseudo inverse when s < n. The actual inputs can be determined from the fictitious inputs in the following manner: Determine the bi ’s which span the configuration space M from the Phillip Hall basis for the Lie algebra generated by h1 , h2 , . . . , hm . Then all the flows of equation (4.24) can be represented as S(t) = eµs (t)bs eµs−1 (t)bs−1 . . . eµ2 (t)b2 eµ1 (t)b1 .
(4.27)
The µi ’s are called the (backward) Philip Hall coordinates. Differentiating the above equation we get ˙ S(t) =
n
S(t)e−µ1 (t)b1 . . . eµj−1 (t)bj−1 bj µ˙ j
j=1
eµj−1 (t)bj−1 . . . eµ1 (t)b1 .
(4.28)
This simplifies to ˙ S(t) =
n
S(t)Ade−µ1 (t)b1 ...eµj−1 (t)bj−1 bj µ˙ j (t).
j=1
57
(4.29)
where the adjoint mapping is defined as Ade−µi bi bj = e−µi bi bj eµi bi .
(4.30)
s Ade−µ1 (t)b1 ...eµj−1 (t)bj−1 bj µ˙ j (t) = ( pj,k (µ)bk )h˙ j .
(4.31)
Further, we can represent
k=1
where pj,k (µ) is a polynomial in the µi ’s. S(t) also satisfies another differential equation given by ˙ S(t) = S(t)(b1 v1 + · · · + bs vs ); S(0) = 1.
(4.32)
Using equations (4.29), (4.31) and (4.32) and equating the coefficients of the bi ’s , we get a set of differential equations in the µi ’s. These differential equations can be solved for the µi ’s at time t =1s. µ˙ = A(µ)v, µ(0) = 0.
(4.33)
These equations specify the evolution of the Philip Hall basis in response to the evolution of the fictitious inputs. The determination of the actual inputs is easier to do given the forward Philip Hall coordinates which can be determined from the backward Philip Hall coordinates by a simple algebraic transformation. However, this transformation can be avoided by assuming that the system is nilpotent of order 2 or can be approximated as a system of nilpotent order 2. This is a reasonable assumption in most cases. A higher order approximation will lead to smaller error. However, usually a higher order Lie bracket direction is harder to achieve physically. Thus, backward Philip Hall coordinates are used henceforth. The conversion to the real inputs is illustrated with a simple example.
4.7.2
An example
Suppose the required backward Philip Hall coordinates have been found and the resultant flow is of the form eµ3 [h1 ,h2 ] eµ2 h2 eµ1 h1 . The flow eµi hi can be achieved by 58
setting the input ui = µi for a time of 1 second. Let ai denote the required input to achieve the flow ehi . Then, the flow eµ3 [h1 ,h2 ] is achieved by a sequence of inputs √ √ √ √ µ3 a1 # µ3 a2 # − µ3 a2 # − µ3 a2 where the # indicates a concatenation. The flow eµ3 [h1 ,h2 ] eµ2 h2 eµ1 h1 thus corresponds to a sequence of inputs given as u1 = u2 =
√ √
µ3
for t = 0 to 1s
µ3 for t = 1 to 2s √ u3 = − µ3 for t = 2 to 3s √ u4 = − µ3 for t = 3 to 4s u 5 = µ2
for t = 4 to 5s
u 6 = µ1
for t = 5 to 6s.
(4.34)
Using, the Campbell-Baker-Hausdorff formula it can be proved that the sequence of √ √ √ √ inputs µ3 a1 # µ3 a2 # − µ3 a2 # − µ3 a2 actually gives rise to eµ3 [h1,h2 ] eα[h1 ,[h1 ,h2 ] eα[h2 ,[h1,h2 ]] ...(higher order terms) where α =
3
1 2 µ . 2 3
However,
since the system has been assumed to be nilpotent of order 2, the higher order terms are neglected.
4.7.3
Extension to Stratified spaces
When extended to stratified spaces, the method remains essentially the same except in the manner in which the vector fields needed to represent the system are chosen. For stratified systems, the equations of motion differ for different strata. The number of inputs on the strata may differ since there could be additional constraints, other than the ones on M (the top stratum), which reduce the number of inputs to the system on that particular stratum. The bi ’s, which are the vector fields chosen to represent the extended system, are now chosen so that they span the tangent space of the bottom stratum. The vector fields from the higher strata are assumed to be defined through projection on the bottom stratum. An extended system is thus formed by using vector fields from all the strata. The extended system, however, does not represent the equations of motion on the bottom stratum since the vector 59
fields from higher strata may not necessarily be part of the equations of motion for the system on the bottom stratum.
4.7.4
Condition for projecting vector fields onto the bottom stratum
The vector fields from the higher strata cannot always be directly used to describe the extended system on the bottom stratum. They need to satisfy certain conditions. Let S123 and S1234 denote the stratum corresponding to feet 1,2,3 in contact and all feet in contact respectively for a quadruped. Consider a flow sequence of the form. eαhl,4
eβhS123,1
e−αhl,4
S1234 → S123
onS123
S123 → S1234 .
(4.35)
This sequence of flows can be visualized as a flow along hl,4 which lifts up one leg, a flow along hS123 and a flow along -hl,4 which should bring the leg back into contact with the ground. If at the end of this flow, leg 4 is back in contact with the ground then the resultant flow can be described as a flow in S1234 . The above flow will not, however, bring the leg back into contact with the ground all the time since hS123,1 may move the leg to a different height. For example, let the flow along hl,4 be a motion that changes only the height of the leg 4 above the ground and brings it into and out of contact with the ground. Then the flow will change the height of leg 4 from zero to say z1 . If the flow along hS123,1 changes the height of the leg above the ground as well, then the flow e−αhl,4 will not bring the leg back into contact with the ground. This can be avoided if the flow along any other strata is tangent to the bottom stratum. In addition to this condition, it is also necessary that the vector field which picks the leg off the ground must not affect the motion of the robot in stratum S123 . This condition is satisfied if [hS123 , hl,4] = 0. These condition can be represented more formally. The bottom stratum is defined by a set of constraints Φ(x1 , x2 , ....xn ) = constant. Let hl denote a vector field which moves the robot from the bottom stratum onto a higher stratum. A vector field h 60
defined on a higher stratum can be projected down into the bottom stratum if the following two conditions are satisfied: 1. dΦ · h = 0 and 2. [h, hl ] = 0. The first condition is equivalent to h ∈ Ω⊥ where Ω = span(dΦ1 , dΦ2 , ....., dΦk ) and k is the number of constraints defined for the bottom stratum. If a vector field that needs to be projected down is not tangent to the bottom stratum, it may be possible to determine a suitable transformation to make it tangent to the bottom stratum. Let h1 and h2 be two vector fields such that dΦ.h1 = f1 (x) = 0 and dΦ.h2 = f2 (x) = 0. Then the vector field, h3 = h1 −
f1 h, f2 2
is tangent to the bottom
stratum and can be used to define the extended system on the bottom stratum. We assume that the vector fields on the higher strata are tangent to the bottom strata or can be made tangent to the lower strata as above.
4.7.5
Composition of two flows
It is obvious that motion using two different inputs may sometimes be decoupled. Consider a four legged robot with one foot out of contact with the ground. There are now two control inputs available which can move the foot which is off the ground in the x and y directions with respect to the body of the robot. Motion along one of these directions does not affect motion along the other and so they can be composed and executed simultaneously. Consider a motion plan which involves the execution of two consecutive inputs, u1 and u2 , which move the system along two decoupled vector field directions b1 and b2 in the same stratum. The condition for executing the two motions simultaneously is [b1 , b2 ] = 0. Also, the system cannot move simultaneously along two vector fields from different strata unless this condition is satisfied. In general, implementing a flow along 61
vector fields in different strata may lead to stability problems. If stability requirements are satisfied, an additional condition is still required. Consider a quadruped. Let b1 be the vector field which moves the body forward in the stratum S1234 and let b2 be the vector field corresponding to motion in S234 of leg 1 in the x direction with respect to a body fixed reference frame. Let eαb1 eβb2 be a required flow. This can be rewritten as eα(b1 −b2 )+αb2 eβb2 . If the condition for composing flows is satisfied, this can be further written as eα(b1 −b2 ) eαb2 eβb2 which in turn is eα(b1 −b2 ) e(α+β)b2 . If there exists an input which can drive the system in the direction (b1 − b2 ) in S234 , then both the flows which make up the resultant flow can be executed in S234 . Further, since [b1 − b2 , b2 ] = 0, the two flows in the stratum above can still be executed simultaneously. Consider the following sequence of flows • Move the robot body forward in S1234 by 1 cm, • Pick up leg 1 (Now the robot is in stratum S234 ), • Move leg 1 forward by 2 cm in S234 . • Bring leg 1 back into contact with the ground. This sequence of flows can be achieved in a different manner by composing the forward motion of the body in S1234 and the forward motion of the foot in S234 into a combined motion in S234 . This would involve the following sequence of steps, • Pick up leg 1 (Now the robot is in stratum S234 ), • Move body forward by 1 cm in S234 and simultaneously using the independent input now available in S234 move leg 1 forward by 1 cm, • Bring leg 1 back into contact with the ground. Thus, in certain cases, it is possible to compose motion in different strata into motion along vector fields in the same stratum. However, the stability of the robot remains the over-riding factor in choosing the flows for which this composition can be carried out. The composition of flows in this manner shortens the time required to achieve 62
a set of flows. It can also bring out the traditional concept of a gait. The above sequence of steps can be repeated with legs 2, 3 and 4 coming out of contact with the ground in succession. This would result in a cyclic gait for the robot. However, the legs of the robot would have to be initially phased properly to achieve such a gait. Criteria for selecting the right phasing of the feet for a certain direction of motion for a four legged robot have been presented in [24].
4.8
Example : Wheel-Legged Hybrid Robot
Consider again the hybrid robot of Figure 4.3. The use of the contact points of the legs as shape variables means that it is now possible to formulate the required equations of motion without needing to know more about the actual kinematics of the legs. Thus, the formulation can now be easily used for different number and geometries of legs. The only constraint necessary is that the contact point of the leg on the ground must have two degrees of freedom. The configuration space for the robot, given by X = (x, y, θ, x1, y1 , x2 , y3 ), includes the position of the center of mass (x, y), the orientation of the robot (θ) and the positions of the contact points of each of the feet (xi , yi). Thus, the bottom stratum S12 = SE(2) × R4 and dim(S12 ) = 7.
4.8.1
Equations of motion
The equations of motion for the contact points of the feet when the foot is on the ground have already been developed in Section 4.2 in Equation 4.9. We can now write down the complete equations of motion for the robot with the inputs chosen as above. The equations of motion with both legs on the ground are X˙ = b1 V + b2 ω.
(4.36)
The equations of motion with leg1 in the air are given as X˙ = b3 V + b4 ω + b5 ux1 + b6 uy1 . 63
(4.37)
Here,
cos(θ)
sin(θ) 0 b1 = −1 , b2 = 0 −1 0
0 0 0 0 0 0 0 0 l cos(θ) 0 0 0 0 1 , b3 = 1 , b4 = 0 , b5 = 0 , b6 = 0 . y1 0 1 0 0 −x1 − l 0 0 1 0 y2 0 0 0 1 −x2 − l
−l sin(θ)
ux1 and uy1 describe the inputs which are used to control the motion of leg 1 in the air. The set of vector fields (bi , i = 1 to 6) along with the vector field b7 = [b1 , b2 ] = (sin(θ), − cos(θ), 0, 0, 1, 0, 1)T are chosen to span the tangent space of the bottom manifold. Here b1 and b2 actually lie on the bottom stratum while the other four vector fields are chosen 2 each from the other strata and projected to the bottom stratum.
4.8.2
Results : Translation
We now illustrate the application of this method to the simple case of translation of such a hybrid robot. The translation is along a direction perpendicular to the axle of the wheels. The required motion is consequently similar to the parallel parking of a car. Let the required translation be from xi = (0, 0, 0, 1, 1, 1, −1) to xf = (0, 0.1, 0, 1, 1, 1, −1). Using the steering method described in Section 4.7 the required inputs are found automatically for the given robot motion. The end result of the method is a sequence of flows which move the robot to the desired configuration. In terms of a gait representation involving transitions between strata, the sequence of flows can be visualized as follows √ 1. Turn the robot to θ = 0.1 radians. 2. Move along vector field b1 . 64
3. Turn the robot in the opposite direction until θ = 0. Move along the negative x axis of a body fixed reference frame. 4. Pick up and reset leg 2 to its initial position and then replace it on the ground. Pick up and reset leg 1. The order in which legs 1 and 2 are reset can be interchanged since the flows corresponding to these two motions commute. The robot reaches its final position in the first iteration with an error of less than 2 %. A further iteration of the method from the new position to the desired position reduces the error. The simulation results for the system are shown in Figures (4.5(a)) to (4.5(c)). Figure (4.5(a) shows the path of the robot. Figure (4.5(b)) plots the motion of leg 1. Figure (4.5(d)) plots the variation of θ.
4.9
Conclusion
In this chapter, we have analyzed kinematic modular systems. We have presented a systematic method for generating the equations of motion for such systems. We have also presented a controllability analysis for the system to determine what kind of motion it is capable of. And, we have presented a motion planning algorithm that automatically generates the required controls to move from one point to another. More details on the material in this chapter can be found in [23] and [25]. In the next chapter, we will examine the dynamic behavior of modular mobile systems.
65
1.05 0.45
1
0.4
0.95
y position of center of mass
0.35
0.3
0.9
0.25
0.85 x y
0.2
0.8 0.15
0.75 0.1
0.7
0.05
0 −0.05
0
0.05
0.1 0.15 0.2 x position of center of mass
0.25
0.3
0.65
0.35
0
1
2
3
4
5
6
7
time(s)
(a) Path of robot from initial to desired position.
(b) Motion of contact point of leg 1 with respect to a body fixed frame.
0.35
1 0.3
x y
0.5
Orientation of robot
0.25
0
0.2
0.15
−0.5
0.1
−1 0.05
−1.5 0
−0.05
0
1
2
3
4
5
6
−2
7
0
1
2
3
4
5
6
time (s)
time (s)
(c) Variation of θ with time.
(d) Motion of contact point of leg 2.
Figure 4.5: Parallel parking like motion.
66
7
Chapter 5 Modular Robot Dynamics In the previous chapter we examined a scheme for formulating the kinematics of modular robots and generating motion plans. In some cases, a kinematic description of the system may be insufficient. This is particularly true for underactuated systems, i.e. systems where the number of degrees of freedom is more than the number of actuators. A kinematic analysis for such systems may reveal that no motion is possible or may not be able to account for the evolution of some of the degrees of freedom. The dynamics have to be considered to give a meaningful description for these systems, a fact that will be clearer when we examine some of these systems in more detail in subsequent chapters. In this chapter, we will investigate the dynamics of modular robots. In particular we are interested in the dynamics of robots in the presence of multiple constraints. We will first discuss two methods to formulate the dynamics of a modular locomotion system. The first is the classical Lagrange D’Alembert approach to formulation of the equations of motion for a system with multiple constraints. The second method uses the concept of generalized momenta which essentially represent the projection of the momentum of a system onto its unconstrained directions. In formulating the dynamics, we can take advantage of the modular nature of our systems. In Section 5.4, we will present a modular description for calculating 67
the dynamics. This will allow us to automatically generate the dynamics for all the systems enumerated in Chapter 3 using a limited set of parameters that describe each module. This procedure will be used in Chapter 6 to formulate the dynamics of three two-port systems from among those enumerated in Chapter 3. We first present some background material necessary to develop our ideas.
5.1
Lagrange’s equations
The Lagrangian formulation of the equations of motion for a system has the advantage that it only needs the kinetic and potential energies of the system. Thus, there is no need to put together the individual Coriolis, centrifugal and actuator forces for each link of the robotic manipulator. This reduces the risk of error during the formulation phase. The following notation will be used in this section: • L - Lagrangian for the system, • q = (q1 , q2 , ..., qn ) generalized coordinates for the system, • Qc = (Qc1 , Qc2 , ..., Qcn ) conservative generalized forces acting on the system, nc nc • Qnc = (Qnc 1 , Q2 , ..., Qn ) nonconservative generalized forces acting on the sys-
tem. • T - Kinetic energy of the system. Given conservative external forces acting on the system, there exists a potential function, V (q1 , q2 , .., qn , t) such that all the corresponding conservative generalized forces can be expressed as the partial derivatives of the potential function: Qcj = −
∂V , j = 1, . . . , n. ∂qj
The Lagrangian for the system is defined as: L = T − V. 68
Then, Lagrange’s equations are given by ∂L d ∂L = Qnc − j , j = 1, ..., n. dt ∂ q˙j ∂qj It was assumed here that there are no nonholonomic constraints acting on the system. The presence of such constraints is dealt with in later sections.
5.2 5.2.1
Dynamics of Constrained Systems Constraints
The motion of a dynamic system could be restricted by the presence of constraints. Two forms of the constraints are considered here, holonomic and nonholonomic constraints. Holonomic constraints are of the form: Φi (q1 , . . . , qn , t) = 0, i = 1, . . . , k.
(5.1)
Holonomic constraints can be handled when formulating Lagrange’s equations in multiple ways. In some cases, the k equations in Equation 5.1 can be solved to express k of the generalized coordinates in terms of the other m = n − k coordinates. This may involve considerable algebraic manipulation. Alternatively, the generalized coordinates can be chosen so that they are independent of each other. Two of the other alternatives, the use of Lagrange’s multipliers and Lagrange D’Alemberts’ equations, are discussed later in this chapter. Nonholonomic constraints are nonintegrable constraints that can be written in the form n
Aij (q1 , q2 , . . . , qn , t)q˙k + Di (q1 , q2 , . . . , qn , t) = 0, i = 1, . . . , l.
(5.2)
j=1
The non-integrability of these constraints implies that there exists no function F such that the above equation can be written in the form dF ∂F + dq = 0. dt ∂qi i i=1 n
69
Such constraints are also called Pfaffian constraints. A sufficient and necessary condition for a constraint of the form in Equation 5.2 to be integrable (and thus not nonholonomic) is: ∂Aij ∂Aik = , ∂qk ∂qj ∂Di ∂Aik = . ∂t ∂qk
5.2.2
Lagrange Multipliers
Holonomic constraints are relatively easier to incorporate into Lagrange’s equations than nonholonomic constraints. One method for incorporating nonholonomic constraints uses the concept of Lagrange multipliers. Lagrange multipliers represent the relative magnitudes of constraint forces acting on the system to ensure that the constraints are not violated. Given the l nonholonomic constraints in Equation 5.2, Lagrange’s equations are modified using l Lagrange multipliers (λi , i = 1, . . . , l). d dt
∂L ∂ q˙j
∂L − = Qnc + λk Akj , j = 1, . . . , n. j ∂qj l
(5.3)
k=1
Equations 5.3 and 5.2 give n + l equations in n + l unknowns : the n qi s and the l λ s. Given n configuration variables and m total constraints, n−m of the speeds of the system can be chosen independently. These speeds, also known as generalized speeds correspond to motions of the system along unconstrained directions and are usually denoted by vi ,
i = 1, . . . , n − m. Often, the generalized speeds can be chosen
as actual velocities of the system, i.e. we can choose vi = q˙j ,
i, j = 1, . . . , n −
m for some ordering of the configuration variables q. Thus, we can separate the configuration into two parts q = (qk , qd ) where q˙d are the generalized speeds and q˙k are the dependent speeds. Then, we can separate Equation 5.2 into two parts: Ak (q)q˙k + Ad (q)q˙d = 0. 70
(5.4)
Thus, q˙k = −A−1 k (q)Ad (q)q˙d .
(5.5)
This separation is valid as long as Ak is non-singular.
5.2.3
Lagrange D’Alembert Formulation
In solving for the dynamics of a system, we are often not interested in solving for the constraint forces. The constraint forces can be eliminated from the dynamics by projecting the motion of the system onto the allowable directions. The Lagrange D’Alemberts equations are the result of formulating the equations in this form. Given a set of m independent nonholonomic constraints, there exists a set of allowable directions that a system can move in. These allowable directions are given by the basis for the null space of the m × n matrix A that defines the nonholonomic constraints in Equation 5.2. Let Γ denote the n × p matrix whose columns form a basis for A. Here p = n − m denotes the number of unconstrained directions the system can move in. Thus, A Γ = 0. (It is easy to see that Γ can often be directly derived using Equation 5.5.) Further, using the definition of the generalized speeds we can write, q˙ = Γv.
(5.6)
where v is a vector of p generalized speeds. Define P as the n × 1 vector with l ∂L d ∂L nc − − Qj − λk Akj . Pi = dt ∂ q˙j ∂qj
(5.7)
k=1
Then, the Lagrange D’Alembert’s equations are given by projecting these equations on the allowable directions to give p new equations, P . Γ = 0. 71
(5.8)
Since the columns of Γ lie in the nullspace of the matrix A, the terms involving the Lagrange multipliers are eliminated from the equations above. The equations can be further simplified by using the m nonholonomic constraints to express the derivatives of m generalized coordinates in terms of the derivatives of p generalized coordinates. In general, the equations generated using this approach may seem more complex than those using Lagrange multipliers but the dimensionality of the problem is reduced from n + m equations in n + m unknowns to n equations (Equation 5.2 and Equation 5.8) in n unknowns. It is worthwhile examining this process in more detail for the case where the configuration space can be split as q = (qd , qk ) since it can lead to significant simplification of the resultant equations, especially when the set of equations is computed symbolically. Equation 5.3 can be written in matrix form as i q˙j q˙k + Ni (q, q) ˙ + (AT (q)λ)i = τi , i = 1, . . . , n. Mij q¨j + Cjk
(5.9) 2
∂ L i . Cjk ’s Here M represents the mass matrix for the system and is given by Mij = ∂q i qj ∂M ∂M i ik . N = 12 ∂qkij + ∂M − ∂qkj represent the Christoffel symbols for the system. Cjk ∂qj i
represents the remaining terms given by Ni =
∂V . ∂qi
τ is a one-form of actuator forces
acting on the system. The notation C(q)[q, ˙ q] ˙ for the centrifugal and Coriolis terms indicates their bilinear dependence on the velocities. Equation 5.9 can be split, after writing it in matrix form, as ˙ q] ˙ + N(q, q) ˙ + AT (q)λ = τ. Mk q¨k + Md q¨d + C(q)[q, Differentiating Equation 5.5, we can write ∂ A−1 ∂ A−1 k (q)Ad (q) k (q)Ad (q) q˙k q˙d − q˙d q˙d − A−1 qd . q¨k = − k (q)Ad (q)¨ ∂qk ∂qd
(5.10)
(5.11)
Using Equation 5.5 to substitute for q˙k , we write ∂ A−1 ∂ A−1 k (q)Ad (q) k (q)Ad (q) −1 −Ak (q)Ad (q) q˙d − q¨k = − q˙d q˙d ∂qk ∂qd − A−1 qd . (5.12) k (q)Ad (q)¨ 72
Substituting for q¨k in Equation 5.10 and then pre-multiplying by ΓT to eliminate the Lagrange multipliers, we find ˜ q¨d + C(q)[ ˜ ˜ q˙d ) = τ˜. M q˙d , q˙d ] + N(q,
(5.13)
Here, ˜ = ΓT Md + ΓT Mk (−A−1 (q)Ad (q)), M k ∂ A−1 (q)A (q) d k C˜ = ΓT Mk − −A−1 k (q)Ad (q)q˙d q˙d ∂qk −1 ∂ Ak (q)Ad (q) − q˙d q˙d + ΓT C(q)[q, ˙ q], ˙ ∂qd ˜ = ΓT ∂V , N ∂q τ˜ = ΓT τ. ∂A−1 k ∂q
is often difficult to compute symbolically while
∂Ak ∂q
is easier to compute.
∂A−1 k ∂q
may be computed numerically using the following equation: ∂A−1 ∂Ak −1 k = −A−1 A . k ∂q ∂q k Equations 5.5 and 5.13 together represent the complete reduced dynamics of the system using a reduced set of variables (qk , qd , q˙d ). Note that this formulation is valid even in the case where the generalized speeds v’s are not time derivatives of the configuration space variables. In this case, the final dynamic equations will be defined on the reduced space (qk , qd , v). Since we know q˙ = Γv, we can write ∂Γ qv ˙ + Γv. ˙ ∂q Substituting for q¨ and q˙ in Equation 5.9 q¨ =
Mij
∂Γjk i q˙l vk + Cjk Γjl vl Γjr vr + Ni (q, Γv) + (AT (q)λ)i = τi , i = 1, . . . , n. ∂ql
(5.14)
(5.15)
These equations can now be projected onto the unconstrained directions by premultiplying by ΓT resulting in a set of equations in the form ˜ v˙ + C(q)[v, ˜ ˜ v) = τ˜. M v] + N(q, 73
(5.16)
Now, Equations 5.6 and 5.16 together represent the complete set of dynamic equations for the system using the reduced set of state variables (qd , qk , v).
5.3
Reduction
We now present, in brief, the process of Reduction due to Bloch, et al. [3], an alternative to the two approaches for handling nonholonomic constraints mentioned earlier, which leads to simplified equations of motion allowing us to write them in a lower-dimensional space. It also provides insight into the geometry of the system. In the course of reduction of a system, the externally applied constraints and certain internal constraints which often represent momentum conservation laws are used to define a connection on the principal fiber bundle. The connection relates the fiber velocities to the shape motions. In the presence of nonholonomic constraints, while no conservation laws may exist for the system, there may exist one or more momenta along the unconstrained directions. The evolution of this momentum vector, referred to as the generalized momentum, is governed by a generalized momentum equation (first derived in [3]). The connection and the generalized momentum equation can then be used to reduce the dynamics of the base space. A fairly detailed approach to carrying out such a reduction can be found in [3] and [59].
5.3.1
Lagrangian
We start with the Lagrangian L(q, q) ˙ for the system. We will first define the property of left-invariance for a Lagrangian. We assume that the systems we deal with can be represented using a trivial principle fiber bundle structure.
Recall from
Definition 2.3.2 that for a trivial principle fiber bundle the left action acts only on the group variables of the system, i.e., Φh (g, r) = (Lh g, r), given h ∈ G and (g, r) ∈ G × Qr = Q. Now, a left-invariant Lagrangian can be defined as a Lagrangian that is invariant under the left action of the group G. 74
Definition 5.3.1 Given the Lagrangian L(q, v) and a Lie group G, the Lagrangian is said to be left-invariant under the left action of the Lie group if L(q, v) = L(Φh q, T Φh v) for h ∈ G and (q, v) ∈ T Q. This property of left-invariance will be of importance later in proving Noether’s theorem, a theorem that specifies the evolution of the generalized momentum for a system.
5.3.2
Constraints
We will express the constraints given by Equation 5.2 in a slightly different form as ωij q˙j = 0,
i = 1, . . . , m. j = 1, . . . , n.
(5.17)
The constraint distribution D is defined as the intersection of the kernels of the constraint one-forms given in Equation 5.17, i.e., D = {X ∈ Tq Q | ωX = 0}.
5.3.3
Connections
We would like to split the dynamics of the system into two subspaces: one that contains only motion of the system along the fiber directions and the other that captures the dynamics in the shape direction. In general, we choose a vertical subbundle as the space of vectors that lie in the kernel of the shape directions. Definition 5.3.2 Given a general principal fiber bundle with canonical transformations π1 and π2 , the vertical sub-bundle V Q is given by the bundle of vectors that lie in the kernel of the tangent space to the shape directions. Thus, V Q = ∪ Vq Q = ∪ {vq ∈ Tq Q | vq ∈ kerTq π2 }. q∈Q
q∈Q
75
V Q is often referred to as the fiber distribution. For a trivial fiber bundle, the choice of vertical sub-bundle is easy to make. The vertical sub-bundle for a trivial fiber bundle will consist solely of vectors with zero components in the shape directions, i.e. vectors of the form vq = (vg , 0) where the vectors vg are tangent to the fiber directions. A vertical sub-bundle comes along with a horizontal sub-bundle. For a principal fiber bundle, in the absence of constraints, one choice of the horizontal sub-bundle consists of vectors that lie in the kernel of the tangent space to the fiber directions, i.e. the horizontal sub-bundle consists of vectors of the form vq = (0, vr ). The choice of an appropriate horizontal sub-bundle leads to the concept of a connection that relates the shape velocities to the velocities in T Q. We present now the definition for a connection from [38]. Definition 5.3.3 Let Q(Qr , G) be a principal fiber bundle over a manifold Qr with group G. Let Vq Q denote the vertical subspace at q consisting of vectors tangent to the fiber through q. A connection is an assignment of a subspace Hq Q to each q ∈ Q such that 1. Tq Q = Vq Q ⊕ Hq Q. 2. Tq Φg (Hq Q) = Hg.q Q, for q ∈ Q and g ∈ G. (This condition implies that the horizontal subspace is G-invariant). 3. Hq Q is smooth (in q). The principal kinematic case The choice of a connection varies with the number of nonholonomic constraints acting on the system. Consider, for example, the robot shown in Figure 5.1, with three passive wheels. The wheels are mounted with rotary joints at the end of one degree of freedom legs that are also attached to a central platform by an actuated rotary joints. (The angles α1 , α2 and α3 are fixed at −π/6, π/2 and 7π/6 respectively.) 76
φ2
y
γ2
α3 γ3
α2 α1
φ3
φ1 γ1
x
Figure 5.1: Robot with three passive wheels.
The configuration space for the robot is given by (x, y, θ, γ1, φ1 , γ2, φ2 , γ3 , φ3 ) where (x, y, θ) represents the position and orientation of the central platform for the robot. γ1 , γ2 and γ3 represent the rotary joints that attach the legs to the robot while φ1 , φ2 and φ3 represent the rotary joints that attach the passive wheels to the legs.
The three nonholonomic constraints acting on the robot completely determine its motion, i.e. the body velocity of the robot can be completely specified by inverting the constraints themselves. This case is often referred to as the Chaplygin or principal kinematic case. This robot actually has multiple singularities but serves as a good example for explaining connections. This robot is also a good example of a system where a top-down approach is beneficial, i.e. the fiber velocities are completely specified first and the individual shape variables (joints) are tasked to follow the motion of the body. 77
The constraints are given by the following three equations: −x˙ 1 sin(θ + α1 + γ1 + φ1 ) + y˙ 1 cos(θ + α1 + γ1 + φ1 ) = 0,
(5.18)
−x˙ 2 sin(θ + α2 + γ2 + φ2 ) + y˙ 2 cos(θ + α2 + γ2 + φ2 ) = 0,
(5.19)
−x˙ 3 sin(θ + α3 + γ3 + φ3 ) + y˙ 3 cos(θ + α3 + γ3 + φ3 ) = 0.
(5.20)
˙ In fact, since the sysThese three equations can be inverted to solve for (x, ˙ y, ˙ θ). tem is left-invariant, θ can be easily eliminated from these equations to obtain an expression for ξ, the body velocity of the robot in terms of the shape velocities: r˙ = (γ˙ 1 , φ˙ 1 , γ˙ 2, φ˙ 2 , γ˙ 3 , φ˙ 3 ). We can write the final result in the following form: ξ = −A(r)r. ˙
(5.21)
Equation 5.21 represents a local form of the connection that relates the fiber velocities to the shape velocities.
5.3.4
Constrained Fiber Distribution
To derive the generalized momentum equations, we need to calculate the unconstrained directions of the system in the presence of the nonholonomic constraints. These directions are represented by the constrained fiber distribution(S) which is defined as the intersection of the constraint distribution D and the fiber distribution VQ. The fiber distribution contains all the infinitesimal motions of the system that q q )1 , . . . , (ξQ )pn ). Here pn is do not alter the shape of the system. Let S = sp((ξQ
the number of directions in which the system can move with all the shape variables locked in place.
5.3.5
Generalized Momentum
Given the constrained fiber distribution and a Lagrangian, L, for the given system the generalized momentum, p, is given by p=
∂L q i ξ . ∂ q˙i Q 78
(5.22)
where summation over the index i is implied. We will now digress briefly to present a theorem needed to specify the evolution of the momentum. This theorem has been presented and proved elsewhere [59], however its proof is often presented in a complicated and non-intuitive manner. For the sake of clarity and to make the concept clearer, we will explicitly write it out for systems with group g ∈ SE(2) in Appendix A. Theorem 5.3.4 Noether’s theorem specifies the evolution of the generalized momentum and states that: ∂L dp = dt ∂ q˙i
dξ q dt
i q i + τi (ξQ ).
(5.23)
Q
Here, τ is the one-form of the input torques and forces. Proof: Differentiating Equation 5.22, d ∂L ∂L d dp (ξQ )i + = (ξQ )i dt dt ∂ q˙i ∂ q˙i dt We know that, d (ξQ )i = dt Thus,
d i ξ . T ξQ .q˙ + dt Q
(5.24)
d i d ∂L ∂L dp i = ξ T ξQ .q˙ + (ξQ ) + dt dt ∂ q˙i ∂ q˙i dt Q
(5.25)
Now, we can use the invariance of the Lagrangian to the left group action: L Φexp(sξ) q, Tq Φexp(sξ) vq = L (q, vq ) . Differentiating the above equation and evaluating at s = 0, ∂L ∂L d d Φexp(sξ)q + Tq Φexp(sξ) vq ∂ Φexp(sξ) q ds ∂ Tq Φexp(sξ)vq ds s=0
This simplifies to
i ∂L i ∂L ξ + . q ˙ = 0. T ξ Q Q ∂q i ∂ q˙i 79
= 0. s=0
The above equation can be used to rewrite Equation 5.25 as: ∂L d i ∂L d ∂L dp i ) + (ξ = ξ − i (ξQ )i . Q i i dt dt ∂ q˙ ∂ q˙ dt Q ∂q
(5.26)
Since ξQ belongs in the set of allowable motions for the system, we know that: d ∂L ∂L − i − τi (ξQ )i = 0. (5.27) dt ∂ q˙i ∂q Now, we can use Equation 5.26 and 5.27 to derive the required modified version of Noether’s theorem:
dp ∂L d i = i ξ + τi (ξQ )i . dt ∂ q˙ dt Q
(5.28)
We will examine the form of the terms on the R.H.S of Equation 5.24 in Appendix A. We do this in part to show how these terms are derived for the case when G = SE(2) and also to demystify the heavy notation often used in presenting these equations.
5.4
Modular Description of Dynamics
A modular description for the dynamics can help in the formulation of the dynamics of the system. Such a modular description can be achieved by specifying a set of inertial parameters parameters (in addition to the geometric and kinematics parameters in Section 4.1) and using a product of exponentials formulation to incorporate the module into the expression for the dynamics of the system. The mass distribution for each module needs to be explicitly specified as well. Here, we make the simplifying assumption that each of the modules has a point mass mmod at the end of the module as shown in the figure. In addition, each module is also assumed to have a moment of inertia Imod about a vertical axis passing through the center of mass of the module. Here mod indicates the name of the module. We neglect components of the moment of inertia about other axes. Now, the contribution 80
of each module to the total Lagrangian of the system can be easily specified. The inertia matrix for each module is specified as 0 0 m mod 0 0 mmod 0 0 mmod 0 0 0 0 0 0 0 0 0
0 0
0
0 0
0
0 0
0
0 0
0
0 0
0
(5.29)
0 0 Imod
The inertia matrix for the central(base) module is given by M 0 0 0 0 0 0 M 0 0 0 0 0 0 M 0 0 0 Ib = 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 I1
(5.30)
The contribution of the central module to the Lagrangian is ξbT Ib ξb where ξb is the body velocity of the central module. The contributions of the individual modules can be easily calculated using the product of exponentials formulation (See [55] for an introduction to twists and the product of exponentials formulation). This formulation is best explained using the example of a skate module attached to a central module, e.g. in the Rollerblader configuration of Fig. 3.5(j). The position and orientation of the skate module is given by ˆ
ˆ
ˆ
ˆ
ˆ
gs = eξ1 x eξ2 y eξ3 θ eξ4 γs eξ5 ds gs (0), Here, ξ1 , ξ2 , ξ3 , ξ4 and ξ5 represent twists corresponding to the variables x, y, θ, γs and ds respectively and are given in Table 5.1. gs (0) is the position and orientation of the skate module in the home position and takes into account the value of α as 81
Twist
Twist Vector
ξ1 ξ2 ξ3 ξ4 ξ5
1 01×5 [0, 1, 01×4 ] [01×5 , 1] [ 2b , 01×2 , 0, 0, 1] [01×3 , 0, −1, 0]
Twist Variable (qi ) x y θ γs ds
Description
translation along X. translation along Y . orientation of central module. Rotation of skate. extension of skate.
Table 5.1: Twist coordinates for modular systems. well. Now, the body velocity of the skate module can be calculated as ξˆs =
5
ˆ ˆ ˆ ˆ ˆ ˆ gs (0)−1 e−ξ5 ds e−ξ4 γs . . . e−ξi Xi ξˆi X˙ i eξi Xi . . . eξ4 γs eξ5 ds gs (0).
(5.31)
i=1
The contribution of this module to the Lagrangian of the system is given by ξsT Is ξs . In a similar manner, the contributions of individual modules can be taken into account. The presence of some of the modules may also add to the constraints acting on the system. The constraints for the wheeled modules are nonholonomic while the constraints for the leg modules are holonomic. We will illustrate the method for formulating the constraints using the skate module. Equation 5.31 is again the starting point for formulating the constraints. Let ξsx and ξsy (the first two components of ξs ) denote the body velocity of the skate parallel to and perpendicular to the direction of rolling of the skate wheel respectively. Then, the nonholonomic constraint corresponding to the skate module is simply given by ˙ ξ y = 0. ξsx = Rw ψ, s
(5.32)
Using this approach, we can find all the nonholonomic constraints acting on the system due to the different wheeled modules present in the system. An additional holonomic constraint restricts the height of the skate center above the ground when the skate wheel is in contact with the ground and is given by zw = Rw , where zw 82
(obtained from Equation 5.31) denotes the height of the front wheel of the skate above the ground and Rw is the radius of the wheel. For a leg module, the constraints are specified by restricting the translational velocity of the point of contact of the module with the ground. Thus, for a leg module ξxl = ξyl = ξzl = 0.
5.5
Automatic generation of equations of motion
We now have all the required information to automatically generate the equations of motion for a given robot configuration. The method for achieving this goal is now presented. 1. Assemble the configuration space for the robot by appending the shape variables for each module to the configuration space SE(2) that represents the central module. 2. Calculate the Lagrangian using techniques from Section 5.4. This is achieved by stepping through the different modules in the configuration and calculating the individual contribution of each module (including the central module) to the total Lagrangian. 3. List all the constraints acting on the system using the constraints for each module. 4. Using the constraints, calculate the relationship between the generalized speeds and the velocities of the system (Equation 5.6). 5. Calculate the dynamic equations representing the evolution of the generalized speeds (Equation 5.16). The resultant equations 5.6 and 5.16 together represent the complete dynamics of the system. 83
5.6
Conclusion
In this chapter, we examined the process of dynamic modeling for modular locomotion systems. We have presented different approaches to formulating the dynamic equations for such robots. The Lagrange D’Alembert equations are a classical method for deriving the dynamics of constrained systems. The process of Reduction exploits the left invariance of systems that we are interested in to reduce the dynamics onto a lower dimensional space. The reduced equations also provide more insight into the behavior of the system. In Section 5.4, we showed how the modular structure of the systems we are interested in can be exploited while formulating the dynamic equations for the system. Thus, using a pre-specified set of geometric, kinematic and inertial parameter for each module we can calculate the complete dynamics of the system automatically. This procedure is especially suitable for use with symbolic manipulation software and has been implemented by us (in a semi-automated manner) using a combination of Mathematica and Matlab.
84
Chapter 6 Modular Locomotion Systems: Two port systems We will now examine the dynamics of three two port modular locomotion systems: the Rollerblader, a bicycle with no pedals and a novel single-input system called the RoboTrikke. These systems are of interest because they represent real systems. The Rollerblader (Fig. 6.1(a) is the most interesting two port system as it involves a very novel form of locomotion. It consists of two skate modules attached to a two port central platform that allow the system to exhibit human rollerblader like behavior. The RoboTrikke (Fig. 6.1(b)) is also a two port robot with a passive wheel and skate-like module without extension of the skate. It resembles a commercial system called the Trikke and is operated by the action of the single skate. The geometry of the RoboTrikke can be extended to 3D by allowing the central platform and front wheel to lean. Note that the bicycle retains one important property common to our systems : its Lagrangian and constraints are still invariant under the action of SE(2). A theoretical model for the Rollerblader was first presented in [22]. Experimental results based on a prototype robot were presented in [20] and [19]. Novel bicycle dynamics are examined in detail in [21]. Simulation and experimental results 85
(a) The Rollerblader.
(b) The Trikke.
Figure 6.1: Two port modular locomotion systems. for the RoboTrikke were presented in [18].
6.1
The Rollerblader
We apply our approach first to the case of the Rollerblader(Figure 6.2). The Rollerblader is a two port system with two skate modules. The Rollerblader considered here has the simplest geometry needed to perform rollerblading motion. As shown in Figure 6.3, we model the robot as a central platform with two extensible links attached to two ports on the platform. Each link has a rotary actuator mounted at the joint joining the link to the central platform and a linear actuator that controls the extension of the link. The links make contact with the ground using an inline skate at the end of each link. The skate is fixed perpendicular to the link. Thus the system considered here has four inputs that control the movement of each leg, and seven degrees of freedom. It is possible to include additional legs, and to add additional degrees of freedom to each leg. For example, articulating the in-line skate with respect to the leg provides 86
Figure 6.2: The Rollerblader. an additional input in the system. This degree of freedom will not be examined here. We are not considering issues of balance that will introduce an additional level of complexity in terms of analysis and development.
6.1.1
Design of the Rollerblader
The primary motivation in building the Rollerblader was to create a robot capable of imitating human skating motion. Our focus is on generation of gaits that allow the robot to move. In order to keep the design of the robot simple and avoid the complexity associated with dynamic balancing, the robot was designed as a planar, statically stable robot. The robot consists of a central platform supported by omnidirectional casters which ensures that the robot is always stable. Designs with more that two legs were initially considered as well. The main reason for picking a two legged model was its similarity to human rollerblading motion with two legs. However, the concepts presented in this section can be easily extended to a robot with more than two legs. The two legs attached to the central platform can be 87
φ2 (x2, y2) y
γ2 y
x b
d2
θ
(x, y)
d1
γ1
φ1
(x1, y1) x
Figure 6.3: Simplified planar version of the Rollerblader used for analysis. (x, y, θ) are the group variables and (γ1 , d1, γ2 , d2 ) are the shape variables. φ1 and φ2 are fixed at π2 . picked up and placed back on the ground allowing repositioning of the legs from one propulsive stroke to another.
Central Platform The central platform of the robot is a hexagon-shaped polyethylene plate (Figure 6.4). Two six-inch square Lazy Susan turntables mounted on the base support the legs and provide a rotational degree of freedom for the legs relative to the base. The base is supported by four casters with 0.75 inch diameter stainless steel balls and ball bearings, allowing the robot to move in any direction. The base also carries the batteries required for power and a controller for the servos. The mass of the robot (including leg assembly and batteries) is approximately 6.6 kg.
Leg Assembly The legs of the robot needed to provide at least three degree of freedom for the rollerblades placed at the end of each leg. It was important that the legs allow easy motion of the rollerblades on the ground. Further, the ability to pick up and put the 88
legs back on the ground was also necessary. The most important design parameter for the legs was the size of the workspace. The legs needed to have as large a stroke as possible. The degrees of freedom required for the robot are depicted in Figure 6.3. Note that Figure 6.3 represents a simplified planar form of the actual robot and not the actual geometry of the robot. This simplified planar form is used later for analysis of the robot as well. γi represents the first degree of freedom, a rotation of the leg with respect to the base of the robot. di represents the second degree of freedom, the extension of the leg. φi represents the third degree of freedom, the rotation of the skate with respect to the leg. An additional degree of freedom is required to lift the leg off the ground. A combination of prismatic and rotary actuators could have been used to achieve the required motion but it was decided that only rotary joints would be used throughout the design to make construction easier. Rotary servos were chosen as the actuators. As explained later, the φi degree of freedom is not yet present in our prototype. The final leg design chosen is shown in Figure 6.5. It consists of three actuated rotary joints and one passive rotary joint. Two orientations were initially considered for the legs. In the first design the leg lies in the plane of the robot while in the second design the leg lies in a vertical plane. The second design was chosen as it offered a larger workspace and a fore-aft symmetry of the robot, i.e., forward and backward directions for the robot can be interchanged. Two legs are attached symmetrically to the central base of the robot (Figure 6.4). Each leg presently has three degrees of freedom. The legs are made from Aluminum U channels. Frelon-backed aluminum bearings are used to reduce friction in the joints. All the servos used to actuate the legs are mounted on the central platform to reduce the weight of the legs. While Servo 2 is directly attached to Joint 2 (Figure 6.4), Servo 3 is attached to Joint 3 using a gear and belt system with a 2:1 reduction. The placement of the servos on the central platform gives rise to a coupling between the 89
2:1 gear and belt reduction
Joint 3
Link 1 Link 2 0.25 m Joint 2 Turntable
Servo 3
Servo 2
Link 3 Servo 1
Central platform Rollerblade wheels
Omnidirectional casters
Joint 1
Figure 6.4: A schematic diagram of the Rollerblader two joints of the legs. If u2 and u3 denote the velocities of Servos 2 and 3 respectively, and if α2 and α3 denote joint angles for Joints 2 and 3 respectively (Figure 6.5), we have α˙ 2 = u2 , α˙ 3 =
u3 − u2 . 2
This shows that Servo 3 directly controls the angle β3 = α2 + α3 which is the angle that link 2 makes with the horizontal. Servo 1 directly actuates the angle α1 . Comparing the simplified planar model in Figure 6.3 to the actual geometry of the robot, it can be noted that Servo 1 represents the rotary degree of freedom γi. The prismatic extension of each leg, di , is achieved using a combination of Servos 2 and 3. As will be discussed later, we analyze, design and specify the gaits for the robot using the simplified planar model. These gaits are then mapped onto the actual robot geometry using inverse kinematics as described later in Section 7.3.1. The legs can be picked up using the combined motion of Servos 2 and 3. A bracket is attached at the end of each leg to mount the rollerblading assembly. A gear and belt assembly couples this bracket to the base of the robot. The coupling forces the bracket to always remain horizontal and therefore the rollerblade axle remains horizontal for any motion of the leg. The usable workspace for the leg is shown in Figure 6.6. The workspace was calculated assuming that the robot would never lift its leg more than 0.05 m above the ground. The workspace is limited by 90
the range of motion for the servos, the reduction in going from Servo 3 to Joint 3 and clearance constraints imposed by the belt systems. The legs have a maximum stroke of approximately 0.45 m. Joint 1 can range from
π 2
to
−π 2
but is limited to
about 90% of its range to keep it from hitting the central platform.
Rollerblades One to three pairs of rollerblade wheels can be mounted on the end bracket (Link 3) of the legs. Each wheel of a pair is mounted on its own independent axle. The rollerblades were taken from a pair of recreational inline skates and have two ABEC-3 quality ball bearings for reduced roll resistance. An additional degree of freedom can be introduced by allowing the rollerblades to rotate about a vertical axis. However, this feature has not yet been implemented in our prototype. Our present implementation has only one pair of rollerblade wheels mounted at the end of the leg. This is partly because our gaits were designed to function with one pair of wheels mounted at the end of the leg. The use of more than one pair of rollerblade wheels at the end of each leg restricts the ability to turn the leg about the vertical axis. In addition, human rollerbladers rotate their ankles to change the angle at which the rollerblades make contact with the ground. Presently, our prototype does not have that extra degree of freedom. The presence of a pair of rollerblades at the end of each leg also helps in keeping the rollerblade axle parallel to the ground upon contact. Although the leg mechanism was designed to ensure that the rollerblade axle always stays parallel to the ground, a small amount of play in the gear and belt mechanism allows each rollerblade in a pair to rotate about joint 4 (joint between link 3 and the rollerblading assembly) when the leg is on the ground. However, this tendency to rotate about Joint 4 is mutually canceled among a pair of rollerblades on each leg. The presence of a pair of rollerblade wheels also considerably improves the traction available at the wheels.
91
3
l1=0.35 m
3
1
l2=0.35 m 2
0.135 m 0.025 m
Figure 6.5: The leg assembly for the Rollerblader.
0.2 0.15 0.1 0.05 0 −0.05 −0.1 −0.15 −0.2 −1
0
−0.5
0.2 0.4
0 0.6
0.5
0.8 1
1
Figure 6.6: Workspace for one leg. The bottom yellow (big) plane in the figure is the ground plane. The top green (small) plane represents the horizontal plane containing the axis of Joint 2 of the robot. All dimensions are in meters.
92
Actuation The robot has 6 actuated joints. Each joint is actuated by a Hitech HS-805BB+ quarter scale hobby servo motor. The servos are rated for 320 oz of peak holding torque at 6.0 V. Power is delivered to Servos 2 and 3 using 2000 mAh NiCd batteries. Servo 1 is powered by a separate battery pack rated at 1800 mAh. Servos 2 and 3 pick up most of the load, especially when picking up the leg, and draw a large amount of current.
Servo Control The servos are controlled using a MiniSSC II board. The board is interfaced through a serial port to a Pentium III laptop. The board accepts a byte value between 0 and 255 for each port and generates the required pulse width modulated signal to move the servo to the right position. Each servo has a range of 180 degrees and a resolution of 0.72 degrees. MATLAB is used for all simulation and generation of the gaits and also for interfacing with the servo control board. The servos were first calibrated and a linear function was used to approximate the calibration curve. The calibration was done separately for each leg with the leg out of contact with the ground throughout the procedure. Subsequent testing with the rollerblade touching the ground showed that the servos behaved reasonably well even under load.
6.1.2
Dynamics of the Rollerblader
Configuration The configuration manifold for the robot is given by Q = SE(2) × S × R × S × R. S denotes the group of rotations on R2 . We choose q = (x, y, θ, γ1, d1 , γ2, d2 )T to represent the configuration of the system where (x, y) is the position of the central platform in a inertial reference frame, θ is the orientation of the robot in the inertial reference frame, (γ1 , γ2 ) denotes the 93
angular position of links 1 and 2 with respect to the central platform, (d1 , d2 ) are the extensions of links 1 and 2. The configuration space can be naturally put into a trivial principal fiber bundle denoted by Q(M, G). M = S × R × S × R represents the shape or base space. The shape variables are r = (γ1 , d1 , γ2, d2 ) ∈ M. G = SE(2) represents the fiber space and g = (x, y, θ) ∈ SE(2) are the fiber variables or fiber directions. For our system, ˙ γ˙ 1, d˙1 , γ˙ 2 , d˙2 ). We will use ξ to denote the body velocity of the ˙ y, ˙ θ, vq ∈ Tq (Q) = (x, robot.
Dynamic Model
We now derive the full dynamics for the robot. Let the mass and rotational inertia of the central platform of the robot be M and Ic respectively. Let each link have rotational inertial Ip . The mass of the link is assumed to be negligible. Each skate has mass m, but is assumed to have no rotational inertia. Then, using the techniques developed earlier in Section 5.4, the Lagrangian for the robot can be built up by combining the Lagrangians for the individual skate modules and the central module. The Lagrangian for the central module is
1 1 1 1 1 L = Ic θ˙2+ Ip (θ˙ + γ˙ 1 )2+ Ip (θ˙ + γ˙ 2 )2+ M(x˙ 2 + y˙ 2 ) + m(x˙ 21 + y˙ 12 ) 2 2 2 2 2 1 + m(x˙ 22 + y˙22 ). (6.1) 2
The Lagrangian for the skate modules is given by
1 1 m(x˙ 21 + y˙12 ) + m(x˙ 22 + y˙ 22). 2 2 94
(6.2)
where (x1 , y1 ) and (x2 , y2 ) represent the position of the skates in the inertial reference frame: x1 = x + b sin θ + d1 sin(θ + γ1 ), y1 = y − b cos θ − d1 cos(θ + γ1 ). x2 = x − b sin θ − d2 sin(θ + γ2 ), y2 = y + b cos θ + d2 cos(θ + γ2 ). Differentiating, we get ˙ 1 cos(θ+γ1 )(θ+ ˙ γ˙ 1)+ d˙1 sin(θ+γ1 ), x˙ 1 = x+b ˙ cos θθ+d ˙ 1 sin(θ+γ1 )(θ+ ˙ γ˙ 1)− d˙1 cos(θ+γ1 ). ˙ sin θθ+d y˙ 1 = y+b ˙ 2 cos(θ+γ2 )(θ+ ˙ γ˙ 2 )− d˙2 sin(θ+γ2 ), x˙ 2 = x−b ˙ cos θθ−d
(6.3)
˙ 2 sin(θ+γ2)(θ+ ˙ γ˙ 2)+ d˙2 cos(θ+γ2). ˙ sin θθ−d y˙ 2 = y−b Using the body velocity ξ = (ξx , ξy , ξθ ) of the system, the Lagrangian can be seen to simplify to 1 L = [(M + 2m)ξx2 + (M + 2m)ξy2 + Ip (ξθ + γ˙ 1 )2 + Ip (ξθ + γ˙ 2 )2 + (Ic + 2mb2 )ξθ 2 2 + m(d˙2 + d˙2 + d2 (ξθ + γ˙ 1 )2 + d2 (ξθ + γ˙ 2 )2 + (2d1 cos γ1 (ξθ + γ˙ 1 ) 1
2
1
2
− 2d2 cos γ2 (ξθ + γ˙ 2 ) + 2d˙1 sin γ1 + 2d˙2 sin γ2 )ξx + 2bd1 ξθ cos γ1 (ξθ + γ˙ 1 ) + 2bd2 ξθ cos γ2 (ξθ + γ˙ 2 ) + (2bd˙1 sin γ1 + 2bd˙2 sin γ2 )ξθ + (2d1 sin γ1 (ξθ + γ˙ 1) − 2d˙1 cos γ1 −2d2 sin γ2 (ξθ + γ˙ 2 )+2d˙2 cos γ2 )ξy )] (6.4) where ξx = x˙ cos θ + y˙ sin θ, ξy = −x˙ sin θ + y˙ cos θ, ˙ ξθ = θ. The Lagrangian defined here is invariant to the left group action, i.e., L(Φh q, Th Φq vq ) = L(q, vq ). The invariance of the Lagrangian to the left action is also 95
evident from the fact that the group g = (x, y, θ) does not appear in the expression for the Lagrangian written in terms of the body velocity in Equation 6.4. Nonholonomic Constraints The nonholonomic constraints are those that act on the two skate modules on the robot and were determined in Section 5.4 as: ξsy = 0.
(6.5)
where ξs represents the body velocity of the skate. In this case, we ignore the dynamics of the rotation of the wheels. Rewriting the constraints for the two skates we have: y˙ 1 cos(θ + γ1 ) − x˙ 1 sin(θ + γ1 ) = 0, y˙2 cos(θ + γ2 ) − x˙ 2 sin(θ + γ2 ) = 0. Using Equation 6.3, we have − sin(θ + γ1 )x˙ + cos(θ + γ1 )y˙ − b sin(γ1 )θ˙ − d˙1 = 0, − sin(θ + γ2 )x˙ + cos(θ + γ2 )y˙ + b sin(γ2 )θ˙ + d˙2 = 0. We can now define the constraint one-forms as ωq1 = − sin(θ + γ1 )dx+cos(θ + γ1 )dy−b sin(γ1 )dθ−dd1 , ωq2 = − sin(θ + γ2 )dx+cos(θ + γ2 )dy−b sin(γ2)dθ+dd2 . We can also put these equations in the standard form of Equation 6.37 and we find, A11 = − sin(θ + γ1 ), A12 = cos(θ + γ1 ), A13 = −b sin γ1 , A14 = 0, A15 = −1, A16 = A17 = 0, A21 = − sin(θ + γ2 ), A22 = cos(θ + γ2 ), A23 = b sin γ2 , A24 = A25 = 0, A26 = 0, A27 = 1. 96
(6.6)
The constraint distribution D, which contains the allowable directions the system can move in, is given by the intersection of the kernels of the two one-forms given above. There are n = 7 configuration variables and 2 nonholonomic constraints so we can expect the system to have 5 generalized speeds. A basis for the constraint distribution can be written as − cos(γ2 +θ) 0 0 sin(γ1 −γ2 ) − sin(γ2 +θ) 0 sin(γ1 −γ2 ) 0 0 0 0 0 2 3 4 1 ,ξ , ξ , ξ = = = = ξQ 1 , 0 0 0 Q Q Q 0 0 0 1 1 0 0 0 0 0 1 0 −b(cos(γ2 + θ) sin(γ1 ) + cos(γ1 + θ) sin(γ2 )) −b(sin(γ2 ) sin(γ1 + θ) + sin(γ1 ) sin(γ2 + θ)) sin(γ1 − γ2 ) 5 ξQ = . 0 0 0 0
− cos(γ1 +θ) sin(γ1 −γ2 ) − sin(γ1 +θ) sin(γ1 −γ2 )
The constraint distribution is thus given by 1 2 3 4 5 , ξQ , ξQ , ξQ , ξQ . D = sp ξQ
(6.7)
The Lagrange’s equations of motion with the constraints contain all the relevant information on the dynamics and we will now derive them by embedding the constraints into the equations using Lagrange’s multipliers and also by using the Lagrange D’Alembert form of the equations to eliminate the Lagrange multipliers. 97
Lagrange multipliers The equations using Lagrange’s multipliers are given by Equation 5.3 and the required coefficients are given in Equation 6.6. We will not write out the partial differentials of the Lagrangian explicitly. d ∂L ∂L − dt ∂ x˙ ∂x ∂L d ∂L − dt ∂ y˙ ∂y ∂L d ∂L − dt ∂ θ˙ ∂θ ∂L d ∂L − dt ∂ γ˙ 1 ∂γ1 d ∂L ∂L − dt ∂ d˙1 ∂d1 d ∂L ∂L − dt ∂ γ˙ 2 ∂γ2 d ∂L ∂L − ˙ dt ∂ d2 ∂d2
= −λ1 sin(θ + γ1 ) − λ2 sin(θ + γ2 ), = λ1 cos(θ + γ1 ) + λ2 cos(θ + γ2 ), = −bλ1 sin γ1 + bλ2 sin γ2 , = τγ1 ,
(6.8)
= fd1 − λ1 , = τγ2 , = fd2 + λ2 ,
Here τγ1 , fd1 , τγ2 and fd2 are the input torques/forces corresponding to the γ1 , d1 , γ2 and d2 degrees of freedom respectively. Note that combining the seven equations above with the two constraint equations, we have a total of 9 equations in 9 unknowns (the 7 configuration variables + two λ ’s.)
Lagrange D’Alembert Formulation We are not interested in the constraint forces and so can eliminate them using D’Alembert’s form for Lagrange’s equations. We start with the constraint distribution D defined in Equation 6.7. Define
|
|
|
|
|
1 2 3 4 5 Γ = ξQ ξQ ξQ ξQ ξQ | | | | | 98
.
i.e., Γ is a matrix whose columns form a basis for D. Now, using the definition of the Pi ’s in Equation 5.7, we can write Equation 5.8 as −P1
cos(γ1 + θ) sin(γ1 + θ) − P2 + P7 = 0, sin(γ1 − γ2 ) sin(γ1 − γ2 ) P6 = 0,
−P1
cos(γ2 + θ) sin(γ2 + θ) − P2 + P5 = 0, sin(γ1 − γ2 ) sin(γ1 − γ2 ) P4 = 0,
− P1 b (cos(γ2 +θ) sin(γ1 )+cos(γ1 +θ) sin γ2 )−P2 b(sin(γ2 +θ) sin(γ1 ) + sin(γ1 + θ) sin γ2 ) + P3 sin(γ1 − γ2 ) = 0. Note that the Lagrange multipliers will not appear in the above equations.
6.1.3
Reduced Equations for the Rollerblader
We will now derive the reduced equations for the Rollerblader. We first derive the unconstrained directions and then the generalized momentum equation. In addition, we also derive the connection for the system and the reduced equations for the evolution of the base variables. This set of equations then defines the complete dynamics of the system. A process of Reconstruction can then be used to recover any variables which were removed in the Reduction process.
Constrained Fiber Distribution To derive the generalized momentum equations, we need to calculate the unconstrained directions of the system in the presence of the nonholonomic constraints. These directions are represented by the constrained fiber distribution(S) which is defined as the intersection of the constraint distribution D and the fiber distribution VQ. The fiber distribution contains all the infinitesimal motions of the system that 99
do not alter the shape of the system. The fiber distribution can be written as ∂ ∂ ∂ , , . VQ = sp ∂x ∂y ∂θ q ∈ S must be in both the fiber distribution and the constraint Every vector ξQ q in terms of the basis elements for D and VQ. distribution. Thus, we can write ξQ q = ν1 ξQ
∂ ∂ ∂ + ν2 + ν3 , ∂x ∂y ∂θ
q 1 2 3 4 5 = u 1 ξQ + u 2 ξQ + u 3 ξQ + u 4 ξQ + u 5 ξQ . ξQ
(6.9) (6.10)
Using Equations 6.9 and 6.10 and the basis for the constraint distribution, we can write u1 = 0, u2 = 0, u3 = 0, u4 = 0, ν1 = a1 u5 , ν2 = a2 u5 , ν3 = a3 u5 , where, 5 a1 = (ξQ )1 = −b(cos(γ2 + θ) sin(γ1 ) + cos(γ1 + θ) sin(γ2 )), 5 a2 = (ξQ )2 = −b(sin(γ2 ) sin(γ1 + θ) + sin(γ1 ) sin(γ2 + θ)),
a3 = sin(γ1 − γ2 ). Thus, S is one-dimensional except at the singular point (γ1 = γ2 = 0) and we can write q }. S = sp{ξQ
where, q = a1 ξQ
∂ ∂ ∂ + a2 + a3 . ∂x ∂y ∂θ
After differentiation, we find: q ∂ ∂ ∂ dξ = (a˙ 1 + a3 y) ˙ ˙ + (a˙ 2 − a3 x) + a˙ 3 . dt Q ∂x ∂y ∂θ 100
(6.11)
(6.12)
y P
x Figure 6.7: Physical interpretation of the generalized momentum. Generalized Momentum Given the constrained fiber distribution and a Lagrangian, L, for the given system the generalized momentum, p, is given by p=
∂L q i ξ . ∂ q˙i Q
(6.13)
q is given by Equation 6.11. where summation over the index i is implied. ξQ
As shown in Figure 6.7, the generalized momentum of the system can be physically interpreted (after a scaling factor) as the angular momentum of the system around the center of rotation defined by the two skate constraints. The center of rotation has coordinates (a2 /a3 , a1 /a3 ) in an inertial reference frame fixed at the center of the robot. The angular momentum of the robot about the point of rotation is then given as a1 a2 p = Ic θ˙ + M x˙ + M y˙ + Ip (θ˙ + γ˙ 1 ) + Ip (θ˙ + γ˙ 2 ). a3 a3 Evaluating Equation 6.13, we find p is given by p multiplied by a scaling factor(a3 ). 101
Using Noether’s theorem [59], the generalized momentum equation specifying the evolution of the momentum can be written as i ∂L dξ q dp q i = + τi (ξQ ). dt ∂ q˙i dt Q
(6.14)
Here, τ is the one-form of the input torques and forces. For the Rollerblader, this is given as τ = (0, 0, 0, τγ1 , fd1 , τγ2 , fd2 )T where τγ1 , fd1 , τγ2 and fd2 are the input torques/forces corresponding to the γ1 , d1 , γ2 and d2 degrees of freedom respectively. q The expression for dξdt Q is given by Equation 6.12. The Reduced Equations To carry out the required reduction, we use the invariance of the momentum under the group action. Evaluating Equations 6.1.2, 6.1.2 and 6.13 at (x, y, θ) = (0, 0, 0) gives us the required connection, i.e., a set of three equations which can be solved for the body velocities in terms of the base velocities and the momentum. Noether’s theorem specifies the evolution of the generalized momentum. We can write the resultant reduced equations in the form [59] ξ = g −1 g˙ = −A(r)r˙ + I˜−1 p,
(6.15)
1 p˙ = r˙ T σr˙ r˙ (r)r˙ + pT σpr˙ (r)r˙ + pT σpp (r)p + τ˜, 2
(6.16)
In addition, we will prove in the next section that the shape dynamics can be decoupled from the base variables and expressed on a reduced base-momentum space in the following form, ˜ r, ˜ r˙ + ∂V + N(r, ˜ (r)¨ ˙ p) = B(r)τ. M r + r˙ T C(r) ∂r g −1 g˙ represents the action of Tg Lg−1 on G, i.e., cos θ sin θ 0 Tg Lg−1 g˙ = − sin θ cos θ 0 0 0 1 102
x˙
y˙ . ˙θ
(6.17)
Using Equations 6.15 and 6.16, we can numerically solve for the evolution of the ˙ using Equation 6.15. body velocities and momentum. We can then solve for (x, ˙ y, ˙ θ)
Shape dynamics We will now derive the shape dynamics explicitly for the Rollerblader. We will show that the shape dynamics can be reduced to a shape-momentum space. We begin with the reduced Lagrangian for the system: 1 l = [(M + 2m)ξx2 + (M + 2m)ξy2 + Ip (ξθ + γ˙ 1 )2 + Ip (ξθ + γ˙ 2 )2 + (Ic + 2mb2 )ξθ 2 2 +m(d˙21 + d˙22 + d21 (ξθ + γ˙ 1 )2 + d22 (ξθ + γ˙ 2 )2 + (2d1 cos γ1 (ξθ + γ˙ 1 ) − 2d2 cos γ2 (ξθ + γ˙ 2 ) +2d˙1 sin γ1 + 2d˙2 sin γ2 )ξx + 2bd1 ξθ cos γ1 (ξθ + γ˙ 1 ) + 2bd2 ξθ cos γ2 (ξθ + γ˙ 2 ) +(2bd˙1 sin γ1 + 2bd˙2 sin γ2 )ξθ + (2d1 sin γ1 (ξθ + γ˙ 1) −2d˙1 cos γ1 −2d2 sin γ2 (ξθ + γ˙ 2)+2d˙2 cos γ2 )ξy )],
where (ξx , ξy , ω) represents the body velocity of the system. We need to rewrite Lagrange’s equations in terms of the reduced Lagrangian. We will first rewrite each of the terms in Lagrange’s equations in terms of the reduced Lagrangian. We will use the notation gi to denote the ith component of the group g = (x, y, θ). We will use the double subscript notation, gij , to denote the element in the ith row and j th column of the matrix: cos θ − sin θ 0 Tg Lg = sin θ cos θ 0 . 0 0 1 where Lg represents the left group action. We will not use the summation convention for repeated indices but will instead explicitly specify the summations. The body 103
velocity is expressed in terms of the group velocities as: ξx = x˙ cos θ + y˙ sin θ, ξy = −x˙ sin θ + y˙ cos θ,
(6.18)
˙ ω = θ. Now, d ∂L d ∂l ∂ξb = dt ∂ g˙ a dt ∂ξb ∂ g˙ a b=1 3
3 d ∂l ∂ξb ∂l d ∂ξb = + dt ∂ξb ∂ g˙ a ∂ξb dt ∂ g˙ a b=1 3 ∂l d −1 d ∂l −1 = gba + gba . dt ∂ξ ∂ξ b b dt b=1
We will now write this out explicitly for each case. d ∂L d ∂l d ∂l cos θ − sin θ = dt ∂ x˙ dt ∂ξx dt ∂ξy d ∂l d ∂l ∂l ∂l ˙ = − sin θθ˙ − cos θθ. cos θ + sin θ − dt ∂ξx ∂ξx dt ∂ξy ∂ξy Similarly, d ∂L dt ∂ y˙ and
=
d ∂l d ∂l ∂l ∂l ˙ cos θθ˙ + sin θ + cos θ − sin θθ. dt ∂ξx ∂ξx dt ∂ξy ∂ξy d ∂L d ∂l = dt ∂ θ˙ dt ∂ξθ
Further, ∂L =0 ∂x ∂L = 0. ∂y and ∂L ∂l ∂l − sin θx˙ + cos θy˙ + − cos θx˙ − sin θy˙ = ∂θ ∂ξx ∂ξy ∂l ∂l ξy − ξx . = ∂ξx ∂ξy 104
We now recall the equations derived earlier using the method of Lagrange multipliers in Equation 6.8. We can rewrite the first three equations in Equation 6.8 using the reduced Lagrangian: d ∂l d ∂l ∂l ∂l − sin θθ˙ − cos θ + sin θ − cos θθ˙ dt ∂ξx ∂ξx dt ∂ξy ∂ξy = −λ1 sin(θ + γ1 ) − λ2 sin(θ + γ2 ), (6.19)
d ∂l d ∂l ∂l ∂l ˙ sin θ + cos θ − sin θθ˙ cos θθ + dt ∂ξx ∂ξx dt ∂ξy ∂ξy = λ1 cos(θ + γ1 ) + λ2 cos(θ + γ2 ), (6.20) ∂l ∂l d ∂l ξy + ξx = −bλ1 sin γ1 + bλ2 sin γ2 . − dt ∂ξθ ∂ξx ∂ξy
(6.21)
Multiplying (6.19) by (cos θ) and (6.20) by (sin θ) and adding the two resulting equations, we get d ∂l ∂l ξθ = −λ1 sin γ1 − λ2 sin γ2 . − dt ∂ξx ∂ξy
(6.22)
Now, multiplying (6.19) by (− sin θ) and (6.20) by (cos θ) and adding the two resulting equations we get d ∂l ∂l = λ1 cos γ1 + λ2 cos γ2 . ξθ + ∂ξx dt ∂ξy
(6.23)
Now, we can solve for λ1 and λ2 using (6.22) and (6.23).
d ∂l ∂l cos γ2 d ∂l sin γ2 ∂l ξθ ξθ + − + , (6.24) dt ∂ξx ∂ξy sin(γ2 − γ1 ) ∂ξx dt ∂ξy sin(γ2 − γ1 )
d ∂l d ∂l cos γ1 ∂l sin γ1 ∂l ξθ ξθ + − + . (6.25) dt ∂ξx ∂ξy sin(γ1 − γ2 ) ∂ξx dt ∂ξy sin(γ1 − γ2 )
λ1 =
λ2 =
105
The shape dynamics equations stay the same using the reduced Lagrangian: ∂l d ∂l = τγ1 , − dt ∂ γ˙ 1 ∂γ1 ∂l d ∂l = fd1 − λ1 , − dt ∂ d˙1 ∂d1 (6.26) d ∂l ∂l = τγ2 , − dt ∂ γ˙ 2 ∂γ2 ∂l d ∂l = fd2 + λ2 , − dt ∂ d˙2 ∂d2 We first recall an equation that we will need for further analysis: ξ = −A(r)r˙ + I˜−1 p. We can now express the equations of motion using the constrained Lagrangian, lc . The constrained Lagrangian is given by the reduced Lagrangian with the constraints substituted in: lc = l|ξ=−A(r)r+ ˙ I˜−1 p . Thus, we have ∂l ∂ξa ∂lc ∂l = + ∂ r˙i ∂ r˙i a=1 ∂ξa ∂ r˙i 3
∂l ∂l = − Aai . ∂ r˙i a=1 ∂ξa 3
3 3 d ∂l ∂l ˙ d ∂l d ∂lc Aai − = − Aai . dt ∂ r˙i dt ∂ r˙i ∂ξ dt ∂ξ a a a=1 a=1
∂l ∂ξa ∂lc ∂l = + ∂ri ∂ri a=1 ∂ξa ∂ri nr 3 3 ∂l ∂ ∂l ∂ I˜a−1 p ∂l j=1 −Aaj r˙j = + + . ∂ri a=1 ∂ξa ∂ri ∂ξa ∂ri a=1 3
106
Thus, 3 3 ∂l ˙ d ∂l d ∂l ∂l d ∂lc ∂lc Aai − = − − − Aai dt ∂ r˙i ∂ri dt ∂ r˙i ∂ri a=1 ∂ξa dt ∂ξa a=1 nr 3 3 ∂l ∂ ∂l ∂ I˜−1 p j=1 −Aaj r˙j − − ∂ξa ∂ri ∂ξa ∂ri a=1 a=1
Unfortunately, this does not seem to simplify out. We can, however, use Equation 6.26 to rewrite the above equation. We will do this explicitly for all the r’s. 3 3 ∂l ˙ d ∂l d ∂lc ∂lc Aai − − Aai =τγ1 − dt ∂ γ˙ 1 ∂γ1 ∂ξa dt ∂ξa a=1 a=1 nr 3 3 ∂l ∂ ∂l ∂ I˜a−1 p j=1 −Aaj r˙j − − ∂ξa ∂γ1 ∂ξa ∂γ1 a=1 a=1
3 3 d ∂lc ∂lc ∂l ˙ d ∂l Aai − − Aai =fd1 − λ1 − dt ∂ d˙1 ∂d1 ∂ξa dt ∂ξa a=1 a=1 nr 3 3 ∂l ∂ ∂l ∂ I˜a−1 p j=1 −Aaj r˙j − − ∂ξa ∂d1 ∂ξa ∂d1 a=1 a=1
3 3 d ∂lc ∂lc ∂l ˙ d ∂l Aai − − Aai =τγ2 − dt ∂ γ˙ 2 ∂γ2 ∂ξ dt ∂ξ a a a=1 a=1 nr 3 3 −A r ˙ ∂l ∂ ∂l ∂ I˜a−1 p aj j j=1 − − ∂ξ ∂γ ∂ξa ∂γ2 a 2 a=1 a=1
3 3 d ∂lc ∂lc ∂l ˙ d ∂l Aai − − Aai =fd2 + λ2 − dt ∂ d˙2 ∂d2 ∂ξ dt ∂ξ a a a=1 a=1 nr 3 3 ∂l ∂ ∂l ∂ I˜a−1 p j=1 −Aaj r˙j − − ∂ξa ∂d2 ∂ξa ∂d2 a=1 a=1
We can now substitute the λ’s into the above equations to get the required shape dynamic equations. 107
(one rollerblade in contact with ground)
(both rollerblades in contact with ground)
Figure 6.8: Transitions between configurations with one and two rollerblades in contact with the ground. Sq is two dimensional or one-dimensional.
6.1.4
Contact Transitions
We will now examine the effects of transition on the system. Each time a leg is placed back on the ground an additional nonholonomic constraint acts on the robot. Each time a leg is picked up, one of the nonholonomic constraints acting on the robot disappears. When the robot transitions from one configuration to another, the generalized momentum needs to be transferred correctly from one basis to another. Figure 6.8 depicts the effect of transitions on the system. With the addition of a constraint, the number of unconstrained directions goes down by one while with the removal of a constraint it goes up by one. Thus, the number of generalized momenta required to describe the dynamics of the system changes with every transition. There are two types of transitions:
1. A rollerblade comes into contact with the ground and the number of generalized momenta goes down by one,
2. A rollerblade goes out of contact with the ground and the number of generalized momenta increases by one. We will examine the two cases separately.
108
y
x Figure 6.9: Physical interpretation of the generalized momenta with only one rollerblade on the ground.
Rollerblade coming into contact The case of a rollerblade coming into contact with the ground will in general be accompanied by some loss of energy. This is because the system loses momentum in the direction of the new constraint. Thus, the only momentum that is now present will be in the new unconstrained direction(s) corresponding to the new configuration of the robot. We propose the following simple rule for this transformation of generalized momenta: When transitioning from one basis to another, the new generalized momentum in a particular direction is given by the projections of the generalized momenta before transition on the new unconstrained direction. This rule can be stated in a more formal manner. Let (pi )+ denote the ith generalized momentum, just after a rollerblade has been put down, in a direction q )i . (We will use the + subscript to denote quantities just after transition and the (ξQ
109
− subscript to denote quantities just before transition). Let n denote the size of the configuration space for the robot. Then, we can write: n ∂L q l (ξ ) . (pi )+= ∂ q˙l − Q i l=1
(6.27)
Rollerblading going out of contact The case of a rollerblade going out of contact with the ground results in the addition of a new unconstrained direction for the system. Thus, the momentum of the system gets distributed among the new set of directions. This effect can be modeled in a manner similar to Equation 6.27. For the specific case of the Rollerblader, if p1 and p2 denote the two generalized momenta for the robot configuration with only one leg in contact with the ground, we have (after one leg is picked up): n ∂L q l (ξQ )1 , p1= ∂ q ˙ l − l=1
n ∂L q l p2= (ξQ )2 . ∂ q ˙ l − l=1
(6.28)
q q )1 and (ξQ )2 are the new unconstrained directions. Equation 6.28 defines the (ξQ
initial conditions for the two generalized momenta needed for the configuration with only one leg on the ground. They can now be used along with the shape inputs in the new configuration to solve Equation 6.15. The two generalized momenta of the Rollerblader with only one foot on the ground can also be interpreted physically as the momentum of the system for translation along the rollerblade and rotation about the point of contact of the rollerblade (Figure 6.9). We now have all the necessary equations to completely describe the dynamics of the system. We will assume that we have direct control over the shape inputs.
6.2
Bicycle without pedals
While the dynamics and control of bicycles at higher speeds has received a lot of attention (refer the corresponding literature review in Section 1.3.5), the problem 110
of riding a bicycle at low speeds without pedaling has not yet been addressed. In Chapter 7, we will show that a bike can be propelled forward from rest without pedaling using only a periodic motion of the steering handle bars. We will also show that the rider can balance the bike during the course of this motion. Once the bike reaches a higher speed, the self-stabilizing property of bicycles at higher speeds allows it to be easily stabilized. Our motivation for studying this problem comes from the observation that some bicycle riders can often balance almost at rest without pedaling (this can frequently be seen at traffic stops). They achieve this by small adjustments to the steering axis of the bicycle and their body positions during the course of which the bicycles also move by small amounts. In this section, we present a detailed and complete nonlinear model for the bike. These equations have been derived earlier but mostly with the intention of calculating the resultant linearized equations. Thus, the derivations tend to drop higher order terms from the beginning itself. We present here a complete nonlinear derivation using Lagrange D’Alembert equations. We treat the bicycle as a combination of two rolling disks with the front and rear frames attached to the front and rear disks respectively. Our approach greatly simplifies the derivation of the equations of motion for the system.
6.2.1
Nonlinear Model of the Bicycle
We choose to model the bike as a set of 4 modules attached to each other by rotary joints. Figure 6.11 shows a modular description of a standard bicycle. The four modules include a central module, a passive wheeled module representing the rear wheel, a skate module similar to the one in Figure 4.2(b) and the rider. The model for the central module is different from earlier in that we allow the module to lean from side to side and pitch up and down. We also break the front module into a front frame and front wheel. This better represents the geometry of a bicycle. The front and rear wheels of the bike are represented as rolling falling disks. The model 111
Y
ψr
ψf (a)
ρ
RIDER
δ
θr γ
Z RF
φr
φr
RW
θf FF FW
φf
head angle
X
(xr, yr)
(xf, yf) w
(b)
trail
(c)
Figure 6.10: The Bicycle model.
for the bike is completed by the addition of a rider module. Figure 6.10 shows a more detailed and conventional model of a bicycle with the important geometric parameters needed for further analysis. We will henceforth refer to Figure 6.10 when carrying out further analysis.
Rider Module Front Skate Module
Rear Passive Wheel Module
J
U
I
Central Module
Figure 6.11: Modular description of a bicycle. 112
Zb
φ
ψ
Yb
θ (x, y)
Figure 6.12: A rolling, falling disc. Rolling, falling disc We start with a model for a rolling and falling disk as shown in Figure 6.12. The generalized coordinates required to describe the disk are (x, y, θ, φ, ψ). Here, (x, y) represent the coordinates of the contact point of the disk in a global reference frame A. θ represents the angle the disk makes with the positive x axis, φ represents the lean or roll angle of the disk, ie the angle a line joining the contact point on the ground and the highest point on the disk makes with the positive z axis. ψ represents the net rotation of the disk about the body fixed Yb axis as shown in Figure 6.12. The generalized coordinates required to describe the two wheels are given by (xf , yf , θf , φf , ψf ) and (xr , yr , θr , φr , ψr ) where the subscripts f and r represent the front and rear wheels respectively. The rear frame of the bike is attached by a rotary joint to the center of the rear wheel. Let γ represent the pitch of the rear frame with respect to the rear wheel. γ = 0 when the bicycle is in its equilibrium position. The front frame of the bicycle is attached to the rear frame by a steering axis tilted backwards at an angle α. Let δ represent the angle through which the handle bars are rotated. δ = 0 when the bicycle is in its upright equilibrium position. The rider is modeled as a rotary link attached to the rear frame that can rotate about 113
the body fixed x axis of the rear frame. Thus, the bicycle (with rider) can be completely described by the set of generalized coordinates q = (xr , yr , θr , φr , ψr , γ, δ, ρ, xf , yf , θf , φf , ψf ). Let n = 13 denote the number of generalized coordinates. The set of parameters needed to describe the bike are presented in Table B.2 in Appendix B. Most of these parameters are based on the data in [66]. All inertia parameters are specified with respect to a body fixed reference frame fixed at the center of mass of the system. All coordinates (for centers of mass, etc.) are specified with the bicycle in its upright equilibrium position and with respect to the Frame XY Z in Figure 6.10. Lagrangian To derive the complete model for the bicycle we make use of twist vectors and the product of exponentials formulation as done earlier in Section 5.4. The required twist coordinates and variables are given in Table B.3 in Appendix B. We can now use the product of exponentials formula to represent the position of the center of mass of the rear wheels and the rear frame in terms of the twist variables (which are also the generalized coordinates representing the rear wheel and rear frame). The position and orientation of the rear wheel module is represented by ˆ
ˆ
ˆ
ˆ
ˆ
grw = eξ1 xr eξ2 yr eξ3 θr eξ4 φr eξ5 ψr grw (0)
(6.29)
where grw (0) represents the position and orientation of a reference frame attached to the center of the rear wheel when the bicycle is in its equilibrium position and is given by:
1 0 0
0
0 1 0 0 grw (0) = 0 0 1 Rrw 0 0 0 1
.
The front wheel of the bicycle can be represented using a similar procedure and the 114
corresponding generalized coordinates and axes. We can write similar equations for the central module(grf ) that represents the rear frame of the bicycle and the front frame( gf f ) of the bicycle. ˆ
ˆ
ˆ
ˆ
ˆ
grf = eξ1 xr eξ2 yr eξ3 θr eξ4 φr eξ6 γ grf (0), ˆ
ˆ
ˆ
ˆ
ˆ
ˆ
gf f = eξ1 xr eξ2 yr eξ3 θr eξ4 φr eξ6 γ eξ7 δ gf f (0).
1 0 0 1 grf (0) = 0 0 0 0
0 xrf
1 0 0 1 0 yrf , gf f (0) = 0 0 1 zrf 0 1 0 0
0 xf f
0 yf f . 1 zf f 0 1
We will also derive the position of the center of the front wheel and the orientation of its axle in terms of the generalized coordinates used to describe the rear wheel, the rear frame and the steering column. Thus, ˆ
ˆ
ˆ
ˆ
ˆ
ˆ
gfRw = eξ1 xr eξ2 yr eξ3 θr eξ4 φr eξ6 γ eξ7 δ gfRf (0)
where we have used the superscript R to denote that this expression is derived using the generalized coordinates for the rear frame and steering column. Given g ∈ SE(3) representing the position and orientation of a rigid body, the body velocity of the body is given by ˙ ξb = g −1 g. As noted earlier, the product of exponentials formulation makes the calculation of this velocity easier. For example, the body velocity of the rear wheel is now given by ξˆb =
5
ˆ ˆ ˆ ˆ ˆ ˆ grw (0)−1 e−ξ5 X5 e−ξ4 X4 . . . e−ξi Xi ξˆi X˙ i eξi Xi . . . eξ4 X4 eξ5 q5 grw (0).
i=1
115
! " where X = xr , yr , θr , φr , ψr . Let ξb represent the body velocity in vector form. The kinetic energy of the rear wheel is now given by Trw = ξbT I˜rw ξb. where I˜rw
mrw I3×3 03×3 . = 03×3 Irw
while the potential energy is Vrw = mrw ggrw (3, 4). Here grw (3, 4) is the z coordinate of the center of the rear wheel and g is the acceleration due to gravity. Similar calculations are used to derive the kinetic and potential energy of the other modules of the bicycle. The total Lagrangian for the system is now given by L = Trw + Trf + Tf f + Tf w + Trider − (Vrw + Vrf + Vf f + Vf w + Vrider ). Constraints The bicycle model derived above uses a total of 13 generalized coordinates. However, the bicycle does not have as many degrees of freedom due to the presence of holonomic and nonholonomic constraints. While we have used five generalized coordinates to represent the front wheel, the position and orientation of the front wheel (xf , yf , θf , φf ) is completely determined by the position and orientation of the rear frame and the rear wheel and the steering angle. In addition, the pitch of the rear frame (γ) is similarly constrained. Thus, a set of 5 constraints is needed to represent this dependence. A first set of 3 constraints is obtained by equating the position of the center of the front wheel derived through the rear frame with the position of the same point derived through the front wheel. 116
This leads to the following set of equations: f1 = gfRw (1, 4) − gf w (1, 4) = 0, f2 = gfRw (2, 4) − gf w (2, 4) = 0, f3 = gfRw (3, 4) − gf w (3, 4) = 0. Two further constraints can be obtained by equating the direction of the body fixed y axis of the front wheel obtained using the two approaches: f4 = gfRw (1, 2) − gf w (1, 4) = 0, f5 = gfRw (3, 2) − gf w (3, 4) = 0. A set of four nonholonomic constraints also acts on the bicycle and can be found using the techniques in Section 5.4: ω1 = x˙ r + Rrw ψ˙ r cos θr = 0, ω2 = y˙r + Rrw ψ˙ r sin θr = 0, ω3 = x˙ f + Rf w ψ˙ f cos θf = 0, ω4 = y˙ f + Rf w ψ˙ f sin θf = 0.
Thus, our approach models the bicycle using 13 generalized coordinates. There are 5 holonomic and 4 nonholonomic constraints acting on the system. Lagrange D’Alembert equations The first step in deriving the dynamic equations of the bicycle is to differentiate the holonomic constraints. This gives rise to a set of 5 equations linear in the velocities of the system. Combining these equations with the four nonholonomic constraints gives a set of 9 equations linear in the velocities that can be written in the form: A(q)q˙ = 0. 117
(6.30)
Since there are 13 generalized coordinates for the system, we conclude that there are 4 independent speeds for the bicycle with a rider. These speeds are any set of 4 that can be chosen from the velocities of the system. However, we choose the ˙ ρ). following four generalized speeds as a set of independent speeds: (ψ˙ r , φ˙ r , δ, ˙ These represent the angular velocity of the rear wheel, the roll rate for the rear frame, the steering angle rate and the lean rate of the rider respectively. Let the corresponding set of generalized coordinates be denoted by qd = (φr , ψr , δ, ρ). Further, let the remaining coordinates be denoted by qk = (xr , yr , θr , γ, xf , yf , θf , φf , ψf ). As noted earlier in Chapter 5, we can separate Equation 6.30 into two parts: Ak (q)q˙k + Ad (q)q˙d = 0.
(6.31)
q˙k = −A−1 k (q)Ad (q)q˙d .
(6.32)
Thus,
τ is a one-form of actuator forces acting on the system. There are only two actuators on the system, 1. A steering actuator corresponding to the steering angle δ. This corresponds to a rider applying a torque with his hands to turn the handle bars. 2. A rider lean actuator corresponding to the angle ρ. This corresponds to the torque applied at the hip by a human rider on a bicycle to lean his upper body from side to side. " ! Thus, τ = 01×6 τδ τρ 01×5 . Using the techniques presented in Chapter 5, we can derive the required reduced set of equations for the bicycle in the form ˜ q¨d + C(q)[ ˜ ˜ q˙d ) = τ˜. M q˙d , q˙d ] + N(q,
(6.33)
Equations 6.32 and 6.33 together represent the complete reduced dynamics of the Bicycle using a reduced set of variables (qk , qd , q˙d ). 118
5
0
−5
−10
−15
−20 0
2
4
v
6
8
10
Figure 6.13: Eigenvalues for linearized bicycle with rider.
6.2.2
Linear Analysis
A linear analysis similar to [66] can be carried out for the Bike with a rider. The analysis is carried out about a straight ahead, vertical position of the bike with a forward velocity v. It results in a set of equations of the form ML q¨d + C1.v q˙d + K0 + K2.v 2 qd = BL τL .
(6.34)
where qd = (φr , ψr , δ, ρ), τL = (τδ , τρ ) and 93.3121 0 −1.18547 44 0 0 −26.2328 0 0 6.0857 0 0 0 0 , C1 = ML = −1.18547 0.7292 0 1.4703 0 0.2863 −0.4464 44.000 0 −0.4464 30.0000 0 0 −7.0686 −588.1095 0 19.1697 −196.2 0 0 −55.3864 0 0 0 0 0 0 0 0 0 K0 = , K2 = 19.1697 0 −6.0620 0 0 2.0528 0 0 −196.2 0 0 −196.2 0 0 −18.6016 0
0 0 , 0 0
Figure 6.13 shows a plot of the real part of the eigenvalues for the open loop response of the system vs. the forward speed v. 119
It can be seen that one of the eigenvalues (corresponding to the uncontrolled rider) is always in the right half plane. Further, two other eigenvalues have positive real parts for all v except for a certain range of values. This is well known for an uncontrolled bike without a rider [66]. It is also clear that except for the one eigenvalue corresponding to the uncontrolled rider, the bike would be easily controllable at higher speeds since all the other eigenvalues either have negative real parts or (for one eigenvalue) a very small positive real part that can be easily controlled.
6.3
Trikke
The Trikke1 (Figure 6.14(a)) is a three-wheeled human-powered scooter. It can be propelled by a single rider using a combination of swaying and cyclic inputs to the steering axis. The rider’s feet never move from fixed footrests on the Trikke, and do not come into contact with the ground. Thus there is no pushing off unlike in riding a skateboard or rollerblading. The Trikke can achieve a speed of 18 mph on flat ground. The rider starts out by turning the steering axis from side to side. The Trikke then starts moving in a sinusoidal manner. The motion then progresses with the rider rocking the steering axis from side to side. The motion can be further complemented by an appropriate weight transfer onto different feet corresponding to the direction in which the Trikke is instantaneously turning. In their work with the Roller-Racer [43], Krishnaprasad and Tsakiris showed that the primary source of propulsion for the system is the periodic motion of the steering handles. Further, they also showed that the Roller-Racer is not STLC which implies that a Roller-Racer in motion cannot be brought back to rest using the single input on the system. At first glance, the Trikke seems to have similar properties. However, the models of the Trikke that we present here differ from the Roller-Racer in two salient features: 1
A Trikke Tech Inc. product, see http://www.trikke.com.
120
Y
δ
θ
(a)
Z
ρ
FF
RIDER
α
γ
RF
FW
(x, y)
X
(xf, yf) w
(b)
(a) The commercial Trikke.
trail
(c)
(b) The Trikke model used for analysis.
• The Roller-Racer has a vertical steering axis while the Trikke has a tilted steering axis and a steering arrangement more like that of a bike. • A modified Trikke with a rider that we call the Trikke w/ Rider system has an extra degree of freedom: the ability of the rider to swing from side to side.
6.3.1
Trikke Model
A side and top view of the model for the Trikke is shown in Figure 6.14(b). The system consists of a steerable front wheel and two back wheels. When steering forward, the point of intersection of the steering axis with the ground is in front of the contact point (xf , yf ) of the front wheel with the ground. To simplify the dynamic analysis of the system, we make a few assumptions. We assume that the rear platform does not roll from side to side. Further, as shown in Figure 6.14(b), the steering handle has only one degree of freedom δ. This angle, henceforth referred to as the steering angle, is actuated using a torque τδ applied to the handle bars similar to that applied by a bicycle rider to turn the handlebars of a bicycle. 121
Rear Passive Wheel Module
Front Skate Module
J
Central Module
Figure 6.14: Modular description of real Trikke. γ represents the pitching motion of central module about port of attachment of real passive wheeled module.
We divide the system into a set of three modules (Fig. 6.14): the rear platform, rear set of wheels (which we will model as a single module), and the front skate module similar to the module in Figure 4.2(b). We choose to break the front skate module of the system into two smaller parts - the front wheel and the front frame. This model for the Trikke is slightly different from the one in Fig 6.1(b). Here, the central platform is allowed to pitch up and down and the front skate module is divided into two parts - the front frame and the front wheel. However, the approach to calculating the equations of motion is still the same as that specified in Section 5.4. The two rigid bodies could be combined into a single skate module as done in Section 5.4. However, we choose to break the front skate module into two to better explain the dynamics and geometry of the real system. The configuration space for the rear wheel of the Trikke is represented by SE(2). In the global frame, the position (x, y) of the Trikke is characterized by the position of point of contact of the rear wheel with the ground. The orientation θ of the Trikke is the orientation of the rear wheel with respect to an inertial reference frame. The steering angle δ is the angle through which the handle bars have been turned. The pitch γ is the pitch angle for the rear platform. The steering axis is attached to the Trikke at an angle α as shown in Figure 6.14(b). A wheel of radius Rf w is attached to the end of the steering axis. As shown in Fig 6.15, when the steering handle is turned, the rear platform of the 122
Figure 6.15: Turning the steering axle affects the pitch of rear platform. Trikke will pitch up and down, i.e., the pitch angle of the rear platform γ is related to the steering angle δ. The front wheel is represented as a rolling falling disk (Figure 6.12) with generalized coordinates (xf , yf , θf , φf , ψf ). The complete set of generalized coordinates for the RoboTrikke is given by q = (x, y, θ, ψr , γ, δ, xf , yf , θf , φf , ψf ) where ψf and ψr represent the angular rotations of the front and rear wheels about their axles respectively. The inertial parameters for the different components of the RoboTrikke (Figure 7.24) are given in Table B.1 in Appendix B. Let (Trw , Trf , Tf f , Tf w ) and (Vrw , Vrf , Vf f , Vf w ) represent the kinetic and potential energy of the rear wheel module, base module, the front frame and the front wheel respectively. We use the techniques from Section 5.4 to calculate the Lagrangian and constraints required for further analysis. The total Lagrangian for the system is now given by L = Trw + Trf + Tf f + Tf w − (Vrw + Vrf + Vf f + Vf w ).
(6.35)
Constraints There are a total of four nonholonomic constraints acting on the system at the front and rear wheels and they can be found easily using the techniques from Section 5.4. ω1 = x˙ + Rrw ψ˙ r cos θ = 0, ω2 = y˙ + Rrw ψ˙ r sin θ = 0, ω3 = x˙ f + Rf w ψ˙ f cos θf = 0, ω4 = y˙ f + Rf w ψ˙ f sin θf = 0. 123
In addition the system is subject to a set of holonomic constraints that constrain some of the configuration variables of the motion. As mentioned earlier, the pitch of the rear platform γ is constrained by the steering angle. Further, the position and orientation of the front wheel of the RoboTrikke can be completely determined given the other configuration variables. Thus, given (x, y, θ, δ), the variables (γ, xf , yf , θf , φf ) can be completely determined. These constraints take the form of algebraic equations in the configuration variables. A first set of 3 constraints is obtained by equating the position of the center of the front wheel derived through the rear frame with the position of the same point derived through the front wheel. Two further constraints can be obtained by equating the direction of the body fixed y axis of the front wheel from the two approaches. This leads to a set of five holonomic constraints of the form fi (q) = 0, i = 1, . . . , 5.
(6.36)
Dynamic Equations The first step in deriving the dynamic equations of the RoboTrikke is to differentiate the holonomic constraints. This gives rise to a set of 5 equations linear in the velocities of the system. Combining these equations with the four nonholonomic constraints gives a set of 9 equations linear in the velocities that can be written in the form: A(q)q˙ = 0.
(6.37)
Now, we choose an appropriate basis for the nullspace of A(q) so that the allowable velocities for the system are given by q˙ = Γq˙d .
(6.38)
Here, the columns of Γ are the basis vectors for the nullspace of A(q). There are 9 constraints and the configuration space has dimension 11. Hence there exist only 2 degrees of freedom. Thus, of the 11 velocities in q˙ we can choose only the 2 in 124
q˙d independently. We choose the basis such that the two independent velocities correspond to the angular rotation of the rear wheel of the system and the steering ˙ angle rate, i.e., q˙d = (ψ˙ r , δ). Remark: In this case the q˙d represent actual velocities of generalized coordinates. In general, as mentioned in Section 5.2.3, they may just be generalized speeds. Now, using the Lagrange-D’Alembert equations, we can write the dynamic equations of the system as, ˜ q¨d + C(q)[ ˜ ˜ q˙d ) = τ˜. M q˙d , q˙d ] + N(q, Here,
05×1 τ˜ = ΓT τ = ΓT τδ 05×1
Here, τδ , the steering torque, is the only torque acting on the system.
(6.39)
(6.40)
Equa-
tions 6.38, 6.39 and 6.40 represent the complete dynamics of the RoboTrikke model on the reduced state space (q, q˙d ).
6.4
Conclusion
In this chapter, we have used the approaches presented in Chapter 5 to derive the equations of motion for three novel locomotion systems. We presented the nonlinear model for a novel rollerblading robot called the Rollerblader. We also presented an approach to modeling nonholonomic contact transitions. These transitions arise when wheeled modules come into contact with the ground or break contact with the ground. We also presented a complete nonlinear model for a bicycle. While such a model has been derived elsewhere in other forms, we believe our approach to modeling the bicycle is especially suitable for use with symbolic manipulation software. We also presented nonlinear models for a related system called the Trikke. The Trikke is a novel system that shares several attributes with the bicycle. It is 125
obvious that all the systems under consideration share some common traits- the presence of nonholonomic constraints and passive wheels. We will now look at the problem of gait generation for such systems.
126
Chapter 7 Gait Generation and Control of Modular Locomotion Systems
A gait is often defined as a periodic motion of the shape inputs that gives rise to net motion of the system. The problem of generating gaits for modular locomotion systems is non-trivial. The requirement for periodic inputs arises from the geometric nature of these systems and the need to reposition the shape inputs after each cycle. For example, in walking, at the end of each push the pushing leg must return to its starting position due to workspace constraints and also to be able to generate a propulsive force again. Similarly, in the classic human rollerblading technique, each foot is repositioned relative to the body after the finish of a propulsive stroke. In this chapter, we will examine the generation of gaits for modular locomotion systems. We will present a composition of gaits methodology for the Rollerblader. We will examine controllers for the bicycle that balance and propel the bicycle without pedaling. We will look at a novel controller for the RoboTrikke that allows control (in an averaging sense) to a straight line trajectory. We will first examine the concept of small time local controllability for dynamic systems. 127
7.1
Controllability
For a driftless control system, i.e. a system of the form in Eqn. 4.17 where f (q) = 0, accessibility is equivalent to STLC. However, for a system with a drift term, controllability is harder to prove. The strongest condition of controllability for systems with drift is due to Sussman [73]. We first provide a brief description of Sussman’s condition for a system to be STLC. For more details, the reader is referred to [73]. Before proceeding to the theorem, we will introduce some required terms. The material presented here follows [58] and is repeated here for completeness. Consider Z = (Z0 , ..., Zm ) to be a finite set of vector fields and denote by Br(Z) the set of all possible iterated Lie brackets involving Z0 , . . . , Zm . Definition 7.1.1 Let the degree of B ∈ Br(Z) relative to Za , denoted δ a (B), be the integer number of times that Za appears in the bracket B. The degree of B is then given by δ(B) =
m
δ a (B).
a=0
The notion of degree of a vector field can now be related to the degree of a Lie bracket. A result in [46] states that Proposition 7.1.2 Every element of the free Lie algebra LZ can be written as a linear combination of repeated brackets of the form [Zk , [Zk−1 , [..., [Z2 , Z1 ]...]]], where Zi ∈ Z, i = 1, ..., k. Let h0 = f . Let Z = (h0 , h1 , ..., hm ) and let the set of all vector fields be denoted by Br(q). We can then state the following theorem due to Sussman [58]. Theorem 7.1.3 Given the system in Equation 4.17 with h0 (q0 ) = f (q0 ) = 0 at an equilibrium point q0 ∈ M, if 128
• Z = (h0 , h1 , ..., hm ) satisfies the LARC at q0 and • for any Z ∈ Br(Z) such that δ 0 (q) is odd and δ 1 (Z), ..., δ m (Z) are all even, there exist brackets Y1 , ..., Yk such that Z = α i Yi , where α1 , ..., αk ∈ R, and δ(Yi) ≤ δ(Z), i = 1, ..., m. then the system in Equation 4.17 is STLC from q0 . A bad bracket is then defined as a bracket in which the drift vector field appears an odd number of times and the input vector fields appear an even number of times each. Thus, the main requirement of the above theorem is that any bad bracket should be expressible in terms of brackets of lower degree. Note that, by definition, a bracket of even degree is good.
7.2
The Rollerblader
In this section we will present controllability and gait generation results for the Rollerblader. We start by trying to prove small time local controllability for the system. We will eventually show that the Rollerblader can execute pointto-point motion using a composition of gaits. We also present experimental results for the different gaits we have designed using the experimental prototype of the Rollerblader.
7.2.1
Small Time Local Controllability
We will now consider the small time local controllability and accessibility of the Rollerblader. Both these concepts were examined earlier for kinematic systems 129
(Section 4.5) where we found that they are equivalent. However, as shown earlier, we can no longer assume this for dynamic systems.
Accessibility of the Rollerblader We use the results presented in Section 4.5 to prove the accessibility of the Rollerblader. This requires that the dynamics of the Rollerblader be written in the form of Equation 4.17. The system is completely described by Equations 6.15, 6.16 and 6.17. We assume that there are proprioceptive sensors on the robot which provide us with measurements of (r, r). ˙ Consider a feedback control of the form
˜ +M ˜ u˜], τ = B −1 (r)[r˙ T C˜ r˙ + N where u˜ = (uγ1 , ud1 , uγ2 , ud2 ).
We have assumed that V (r) = 0, i.e. there is no potential component of the Lagrangian. This allows us to reduce the base dynamics to
γ¨1 = uγ1 , d¨1 = ud1 , γ¨2 = uγ2 , d¨2 = ud2 .
Using these equations we can now express the dynamics of the system in the form:
q˙ =
m
hi (q)ui.
i=1
130
(7.1)
with
h1 =
−1 −gA(r)r˙ + gIm p
1 T T T 2 r˙ σr˙ r˙ (r)r˙ + p σpr˙ (r)r˙ + p σpp (r)p + τ˜ γ˙ 1 ˙ d1 γ2 , f (q) = d˙2 0 0 0 0 08×1 0 0 0 8×1 8×1 8×1 0 0 0 1 0 , h2 = 1 , h3 = 0 , h4 = 0 0 1 0 0 0 0 0 1
(7.2)
.
(7.3)
Here q = (x, y, θ, p, γ1, d1 , γ2 , d2 , γ˙ 1, d˙1 , γ˙ 2 , d˙2 ). We can now compute the accessibility distribution for the system in 7.2. Computing the required Lie Brackets we find that span(h1 , h2 , h3 , h4 , [f, h1 ], [f, h2 ], [f, h3 ], [f, h4 ], [f, [f, h1 ]], [f, [f, h2 ]], [f, [f, h3 ]], [f, [f, h4 ]])) = Tq M. Thus, the system in Equation 7.2 is locally accessible. For the system in Equation 7.2, brackets upto degree 3 have been used to prove local accessibility. Hence, we need to prove that the brackets of degree 3 are either 0 or expressible in terms of brackets of lower degree. The only bracket of degree 1 is the drift vector field itself, f . We need to show that this field is zero at the equilibrium point. The equilibrium point is chosen as the zero vector, q0 = (0)12×1 . Evaluating the drift vector field at the q0 , we find f (q0 ) = 0. The bad brackets 131
of degree 3 are [h1 , [h1 , f ]], [h2 , [h2 , f ]], [h3 , [h3 , f ]] and [h4 , [h4 , f ]]. The brackets [h2 , [h2 , f ]] and [h4 , [h4 , f ]] do not evaluate to zero at the equilibrium point. Thus, the Rollerblader cannot be proved to be STLC at q0 using this condition. An alternative (but equivalent) method can also be used to prove that a system is STLC. For systems of the form given in 7.2, Ostrowski and Burdick proved the following proposition in [58] Proposition 7.2.1 Assume that the system defined in Equation 7.2 is locally accessible, the map σr˙ r˙ is onto, and that (σr˙ r˙ )ii = 0 for i = 1, ..., m (no summation over i). Then this system is STLC from all equilibrium points, q0 ∈ M. Here, the map σr˙ r˙ : T M × T M → Rp is defined 0 (σr˙ r˙ )ij [hi , [hj , f ]] = 0 0
using the fact that .
Thus, the σr˙ r˙ terms affect the momentum variables directly via the bracket above and the mapping represents this coupling. For Sussman’s condition to be satisfied it is required that the (σr˙ r˙ )ii terms be zero. The system in Equation 7.2 cannot be proved to be STLC using this condition as these terms are not zero. It is important to note that the above theorems are only sufficient conditions and so we cannot conclude from the results in this section that the Rollerblader system is not STLC.
7.3
Gait generation for the Rollerblader- simulation and experiments
In deriving gaits for the Rollerblader, we were inspired in part by human rollerblading motion and walking. We designed and implemented two types of gaits. The first type involves picking up and placing the legs back on the ground. The second type 132
of gait has the legs on the ground throughout the course of the gait. For simplicity, we assumed that we have direct control over the shape inputs and are able to drive them directly. This is equivalent to assuming the motors are controlled by a feedback controller that cancels the dynamics in Equation 6.17 allowing the direct control of r(t). In the experimental prototype, the servos give us direct control of the joint angles.
z
LEFT LEG RESET
COAST
0.2
PUSH
0
RIGHT LEG COAST
PUSH
RESET
−0.2 −1
COAST
0 −0.5
x
0
1
CYCLE TIME
0.1 o
0 0.5
0.3 1
(a) Phasing of legs for GAIT 1.
0.2
40
y
0.4
(b) Leg motion for Gait 1: The blue (solid) plot is the trajectory of the end point of the leg. The green plane represents the horizontal plane containing the axis of Joint 2 of the robot. The dashed lines indicate the initial position of the leg.
Figure 7.1: Gait 1
7.3.1
Inverse kinematics
Given the leg geometry in Fig. 6.5, the inverse kinematics for the robot can be easily calculated. In particular it is important to know the relationship between the parameters used in the model for analysis and the parameters for the actual robot. Thus, given the extension of the leg, d1 and the angle made by the leg with the body of the robot, γ1 , the position of the rollerblade in a local reference frame is given by 133
x1 = d1 sin γ1 , y1 = −b − d1 cos γ1 , z1 = h1 . Here h1 is the height of Link 3 above Joint 2. The required angles in the actual robot corresponding to a particular configuration of the planar robot used for analysis can now be calculated in terms of (x1 , y1 , z1 ). They are given by the following relations: α1 = atan2(x1 , −y1 − b),
# α3 = atan2(pz1 , px1 ) + acos(a2 / (px21 + pz12 )), α2 = (asin((z1 − l1 ∗ sin(α3 ))/l2 ) − α3 ), where, mx1 =
#
(x21 + y12),
px1 = 2l1 mx1 , py1 = y1 , pz1 = 2l1 z1 , a2 = mx21 + z12 + l12 − l22 .
7.3.2
Type 1 gaits
In Type 1 gaits, the legs are picked up and reset to their original starting position. It is easy to see that we need to push off against the nonholonomic constraint to achieve motion of the system. Hence, the gaits that we tried were simple gaits where each leg does one of three motions: COAST, PUSH, RETURN. In the COAST part of the motion, the leg stays at a constant relative position with respect to the body. In the PUSH part of the motion, the leg pushes off in a direction parallel 134
to the constraint. The RETURN part involves picking the leg off the ground and returning the leg to a new position after the end of a PUSH. GAIT 1 The first gait (labeled GAIT 1) that was designed and implemented is represented in Fig. 7.1(a) by a timing diagram that shows the relative time that the leg spends in each part of the gait. It can be seen that the duty factor (the fraction of a cycle that the rollerblade is on the ground) for this gait is 0.75. The two legs are phased 0.5 cycles apart from each other. The motion of the leg is depicted in Fig. 7.1(b). The simulated motion of the robot for this gait is shown in Fig. 7.2(a) and the experimental trajectory is shown in Fig. 7.2(b). The significant drift in the positive y direction in the experimental plot is caused by asymmetry of the prototype due to unequal weight distribution and a weaker motor on one of the legs. Lack of significant undulation in the experimental trajectory is partly caused by slipping of the rollerblades which prevented them from executing the PUSH phase effectively. GAIT 2 The second gait (labeled as GAIT 2) is similar to GAIT 1. The only difference is that the duty cycle for GAIT 2 is 0.5, i.e. each leg spends only
1 2
of the gait cycle
on the ground. The legs come into contact with the ground alternately. Thus, in this case there is no COAST part in the gait cycle. Experimental results for this gait are presented in Fig. 7.3. The undulations in the trajectory are more pronounced in this case because of the much higher stroke length than in GAIT 1: each leg pushes for 50% of the gait cycle as compared to only 25% of the gait cycle for Gait 1(although slipping does occur in both cases, the net effect is a doubling of stroke length for GAIT 2). 135
0.8 0.7
0.8
0.6
0.6
0.5 0.4
y (m)
y(m)
0.4 0.2 0
0.3 0.2 0.1
−0.2
0 −0.1
−0.4
−0.2
−0.6 0
0.5
1x (m)
1.5
0
2
(a) Simulated trajectory of Rollerblader for gait 1. Motion is from left to right.
0.2
0.4
0.6
0.8
x (m)
1
1.2
(b) Experimental trajectory for Gait 1. Motion is from left to right.
Figure 7.2: Gait 1
7.3.3
Type 2 gaits
The generation of gaits for the roller-blading robot is a complex problem. Periodic/vibratory motion of the shape variables has often been used to generate motion. In [7], Brockett presented a mathematical formulation to understanding such actuation. Periodic inputs have since been used to drive a variety of robots including the Roller-Racer [42] and the Snakeboard [59]. In [49], McIsaac and Ostrowski used a periodic input traveling down the length of an articulated Eel-like robot to generate motion. Periodic inputs were also used to generate motion for snake-like robots [34]. Motivated by these examples, we examined the use of periodic inputs to generate motion for the roller-blading robot. For simplicity, we assume that we have direct control over the shape inputs and are able to drive them directly. This is equivalent to assuming the motors are controlled by a feedback controller that cancels the dynamics in Equation 6.17 allowing the direct control of r(t). Now, the simplest possible gait that can be used is the one where the motions 136
0.3
0.4 0.2
0.3 0.1 0
θ
y (m)
0.2 0.1
−0.1
0
−0.2 −0.3
−0.1
−0.4
−0.2 0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
−0.5 0
0.8
2
4
6
8
10
12
14
t
x (m)
(a) Experimental trajectory of Rollerblader for gait 2. Motion is from left to right.
(b) θ(radians) vs. t(s).
Figure 7.3: Gait 2 of the two legs are symmetric with respect to the longitudinal axis of symmetry (x axis of the body fixed frame - see Figure 6.3). We call such a gait, where γ2 = −γ1 and d1 = d2 , a symmetric gait. Thus, γ1 = −γ2 , γ˙ 1 = −γ˙ 2 , d1 = d2 , d˙1 = d˙2 .
(7.4)
σpp = 0, τ˜ = 0.
(7.5)
Now, substituting the conditions in Equation 7.4, we find: σr˙ r˙ = 0.
(7.6)
˙ p˙ = pσpr˙ (r)r.
(7.7)
Thus, Equation (6.16) simplifies to
We note that the above equation is linear in p. This implies that, for a system starting from rest, the generalized momentum stays at 0 for all t, i.e. p(t = 0) = 0 ⇒ p(t) = 0. Using this fact, we can simplify Equation (6.15) to ˙ ξ = g −1 g˙ = −A(r)r. 137
Using the conditions in Equation (7.4), the above equation simplifies to T ξ = −d˙1 /(sin γ1 ), 0, 0 .
(7.8)
Thus, for a system starting from rest, the symmetric gait generates motion only in the forward direction. 1
0.25 0.2
2
0.25 0.2
3
0.25 0.2
0.2
0.15
0.15
0.15
0.1
0.1
0.1
0.1
0.05
0.05
0.05
0.05
0
0
0
0
−0.05
−0.05
−0.05
−0.05
−0.1
−0.1
−0.1
−0.1
−0.15
−0.15
−0.15
−0.15
−0.2
−0.2
−0.2
−0.25
−0.25
−0.25
−0.2
−0.1
0
0.1
0.2
0.3
0.4
5
0.25 0.2
−0.2
−0.1
0
0.1
0.2
0.3
0.4
6
0.25 0.2
4
0.25
0.15
−0.2 −0.25
−0.2
−0.1
0
0.1
0.2
0.3
0.4
7
0.25 0.2
−0.2
−0.1
0.15
0.15
0.1
0.1
0.1
0.1
0.05
0
0
0
−0.05
−0.05
−0.05
−0.1
−0.1
−0.1
−0.1
−0.15
−0.15
−0.15
−0.15
−0.2
−0.2
−0.2
−0.2
−0.25
−0.25
−0.25
−0.25
−0.1
0
0.1
0.2
0.3
0.4
−0.2
−0.1
0
0.1
0.2
0.3
0.4
−0.2
0.3
0.4
8
0.05
0 −0.05
−0.2
0.2
0.2
0.15
0.05
0.1
0.25
0.15
0.05
0
−0.1
0
0.1
0.2
0.3
0.4
−0.2
−0.1
0
0.1
0.2
0.3
0.4
Figure 7.4: Snapshots of forward motion.
A similar analysis can be conducted for an anti-symmetric gait, i.e. a gait for which (γ1 = γ2 , d1 = d2 ). For an anti-symmetric gait we have γ1 = γ2 , γ˙ 1 = γ˙ 2 , d1 = d2 , d˙1 = d˙2 .
(7.9)
Again, we find that the generalized momentum for the system starting from rest is conserved. Now, Equation 6.15 simplifies to T ξ = 0, 0, −d˙1 /(b sin γ1 ) .
(7.10)
Thus, an anti-symmetric gait gives rise to pure rotational motion of the robot. Note that both these gaits are characterized by zero generalized momentum. This of course does not mean that no motion is possible but that the resultant motion of the Rollerblader represents a geometric phase. 138
7.3.4
Simulation and Experimental Results
We now present simulation results for a forward and rotary gait of the robot. The physical parameters used for the simulations are (m = 2, M = 25, Ic = 20, Ip = 10, b = 0.05).
7.3.5
Forward motion gait
A symmetric gait with γ1 = −γ2 can be used to generate forward motion. Since the base variables are considered to be directly controllable, they are used directly as inputs. The inputs are specified as sinusoids: 2πt 2πt +φd1 ), γ1=γ1o+γ1c sin( +φγ1 ), Td1 Tγ1 2πt 2πt +φd2 ), γ2=γ2o+γ2c sin( +φγ2 ). d2=d2o+d2c sin( Td2 Tγ2
d1=d1o+d1c sin(
(7.11)
where (d1o = d2o = 0.345, γ2o = 0), (d1c = d2c = 0.075, γ2c = −γ1c = 0.3) are the , φd2 = 3π , φγ1 = 0, φγ2 = 0) and (Td1 = amplitudes of the sinusoidal inputs, (φd1 = 3π 2 2 Td2 = Tγ1 = Tγ2 = 1) are phase offsets and time periods respectively for the inputs. Fig. 7.4 shows snapshots of the forward motion at t = (0, 0.05, 0.31, 0.46, 0.51, 0.76, 0.96, 1) seconds. Fig. 7.5(a) and Fig. 7.5(b) show the trajectory of the robot and the inputs (d1 , γ1) for the forward motion. As seen in Fig. 7.5(a), a straight line trajectory is generated while Fig. 7.5(c) shows that the generalized momentum p stays at zero as proved earlier. Note that a closer investigation (not shown) of Fig. 7.5(a) reveals that the forward velocity, ξx , is not constant. Fig. 7.6 shows the actual (experimental) trajectory of the robot for the implementation of this gait.
7.3.6
Rotary gait
By using a gait with in-phase movements of the legs, we can get the robot to turn in place. The inputs for the gait are still given by Equation 7.11 but now γ1c = γ2c = 0.3. 139
0.5 1.6
0.4
0.6
1.4
0.3
0.4
1.2
0.2 0.2
1
0
0 −0.2
0.6
−0.1
0.4
−0.2
0.2
−0.3
0 0
p
x
0.1
0.8
0.2
0.4
t
0.6
0.8
1
(a) x(m) vs. t(s).
−0.4 0
−0.4
γ1 d1 0.2
0.4
t
0.6
0.8
−0.6
1
(b) Shape variables for symmetric gait.
0
0.2
0.4
0.6
0.8
t
1
1.2
1.4
1.6
1.8
2
(c) Evolution of generalized momentum.
Figure 7.5: Simulated forward motion using a symmetric gait.
All the other parameters have the same values as in the forward motion gait. Thus, the gait is similar to the one for the forward motion except that γ1 = γ2 . Figure 7.7 shows snapshots for the rotary motion at t = (0, 0.085, 0.26, 0.41, 0.58, 0.68, 0.76, 0.91, 0.99) seconds. Figures 7.8(a) and 7.8(b) show the orientation of the robot and the inputs to the robot for rotary motion. It can be shown, in a manner similar to the derivation of the generalized momentum equation for the forward motion gait in Section 7.3.3, that p(t) = 0 if p(0) = 0. Thus, no additional momentum is generated for a system starting from rest using the rotary motion gait. Fig. 7.9 shows the experimental results. Note that the (x, y) position of the robot does not vary too much for this gait (Fig. 7.9(b)). The spike in the value of θ at the end of the gait is due to the fact that θ wraps around from −π to π. Experimental data was obtained using an overhead camera running at approximately 10 Hz. The trajectory of the robot was found by tracking the motion of a bright orange square marker attached to the robot. The orientation of the robot was recovered from the orientation of one of the edges of the square marker. It was observed that the tracking method had a maximum error of 2.5 cm in tracking the (x, y) position of the robot. 140
0.6 1.6 1.4
0.4
1.2 1
x (m)
y (m)
0.2
0
0.8 0.6 0.4
−0.2
0.2
−0.4 0
0
0.2
0.4
0.6
0.8
1
1.2
−0.2 0
1.4
x (m)
5
10
15
20
25
30
t
(a) Trajectory of the Rollerblader. The motion is from left to right.
(b) x(m) vs. t(s).
Figure 7.6: Experimental results for symmetric gait.
7.4
Kinematic Abstraction for the Rollerblader
The nature of the Type 2 gaits discussed in the previous section leads to the possibility that these gaits could be used to derive a simpler kinematic abstraction for the Rollerblader. The use of a simpler model to abstract a complex system allows the lower-level details and complexity of the system to be hidden away when carrying out motion planning. This kind of abstraction has been carried out in different forms. In [50], McIsaac and Ostrowski used a reduced set of periodic inputs to carry out the first level of abstraction. The system was then further approximated as a kinematic system and motion planning is carried out at this level. Related work was also carried out using the notion of kinematically decoupled vector fields by Lynch et al.( [9, 10]). Kinematically decoupled vector fields are defined as vector fields along which the system can speed up or slow down at will. The notion of kinematic controllability allows simple motion plans to be developed for such systems. A kinematically controllable system is a system that can reach any zero-velocity position using motions along different kinematically decoupled vector fields. In most 141
0.25
0.25
1
0.2
0.25
2
0.2
0.25
3
0.2
0.15
0.15
0.15
0.1
0.1
0.1
0.1
0.05
0.05
0.05
0.05
0
0
0
0
−0.05
−0.05
−0.05
−0.05
−0.1
−0.1
−0.1
−0.1
−0.15
−0.15
−0.15
−0.15
−0.2
−0.25 −0.25
−0.2
−0.2
−0.15
−0.1
−0.05
0
0.05
0.1
0.15
0.2
0.25
0.25
−0.25 −0.25
−0.2
−0.2
−0.15
−0.1
−0.05
0
0.05
0.1
0.15
0.2
0.25
0.25
5
0.2
−0.25 −0.25
−0.2
−0.2
−0.15
−0.1
−0.05
0
0.05
0.1
0.15
0.2
0.25
0.25
6
0.2
−0.25 −0.25
0.15
0.15
0.1
0.1
0.1
0.1
0.05
0.05
0.05
0.05
0
0
0
0
−0.05
−0.05
−0.05
−0.05
−0.1
−0.1
−0.1
−0.1
−0.15
−0.15
−0.15
−0.15
−0.2
−0.2
−0.15
−0.1
−0.05
0
0.05
0.1
0.15
0.2
0.25
−0.25 −0.25
−0.2
−0.2
−0.15
−0.1
−0.05
0
0.05
0.1
0.15
0.2
0.25
−0.25 −0.25
−0.15
−0.1
−0.05
0
0.05
0.1
0.15
0.2
0.25
8
0.2
0.15
−0.2
−0.2
0.25
7
0.2
0.15
−0.25 −0.25
4
0.2
0.15
−0.2
−0.2
−0.15
−0.1
−0.05
0
0.05
0.1
0.15
0.2
0.25
−0.25 −0.25
−0.2
−0.15
−0.1
−0.05
0
0.05
0.1
0.15
0.2
0.25
Figure 7.7: Snapshots of rotary motion.
cases, only one kinematically decoupled vector field can be active at any point of time. Further, the transition between two vector fields must generally happen with the system at rest. In [29], Frazzoli et al. used motion primitives to carry out motion planning for aerial vehicles. Two types of behaviors were composed: trim trajectories in which the systems holds its inputs constant and maneuvers which are used to transition from one trajectory to another. Our approach to the composition of gaits differs from the above approaches. We will use a composition of the two Type 2 gaits derived earlier. Each gait is used for integral multiples of a complete cycle, i.e. transitions between the two gaits can happen only after the complete cycle of the previous gait is finished. Thus, the two gaits share a common starting position with (γ1 = 0, d1 = d1c , γ2 = 0, d2 = d2c ). Note that since we have assumed complete control over the shape variables, (γ1 , d1 , γ2 , d2), we can always start and stop the system from rest. ˆ represent the position and orientation of the Rollerblader at the Let (ˆ x, yˆ, θ) end of each cycle of an input gait. We assume that the frequency of the gaits stays 142
0.5
0
0.4 −2
0.3 −4
0.2 −6
θ
0.1 −8
0
−10
−0.1
−12 −14 0
d1 γ1
−0.2
0.2
0.4
t
0.6
0.8
−0.3 0
1
(a) Orientation of the robot.
0.2
0.4
t
0.6
0.8
1
(b) Shape variables.
Figure 7.8: Simulated rotary motion using an anti-symmetric gait constant. Now, we can reduce the Rollerblader to a system of the form xˆ˙ cos θ − sin θ 0 1 0 ˙ yˆ = sin θ cos θ 0 0 0 u ˙ ˆ θ 0 0 1 0 1
(7.12)
max ], ur ∈ [umin , umax ]. The where u = (u1 , u2 ) ∈ {(uf , 0), (0, ur )}, and uf ∈ [umin r r f , uf
conditions on the inputs represent the fact that only one of the gaits can be active at any point of time. A closer look at Equations 7.8 and 7.10 reveals an interesting observation. It can be easily seen that the forward body velocity for the symmetric gait is directly proportional to d1c , i.e. the magnitude of prismatic extension of the legs of the Rollerblader. Similarly, the angular velocity of the robot for the anti-symmetric gait is also proportional to d1c . Figures 7.10(a) and 7.10(b) depict the resultant linear relationship for the symmetric and anti-symmetric gaits by plotting the distance traveled and net rotation of the robot respectively, after one cycle of input. Let lf and rf represent the slopes of the curves in Figures 7.10(a) and 7.10(b) respectively. Further, let the maximum possible value of d1c be given by dmax . 143
4
0.8
3
0.6
2
0.4 0.2
y (m)
θ
1 0 −1 −2
−0.4
−3 −4 0
0 −0.2
−0.6 5
10
15
20
25
30
35
−0.8 0
40
t
(a) θ(radians) vs. t(s).
0.5
x (m)
1
1.5
(b) x(m) vs. y(m).
Figure 7.9: Experimental results for anti-symmetric gait: rotary motion. We can rewrite Equation 7.12 as ˙xˆ cos θ − sin θ 0 l 0 f ˙ yˆ = sin θ cos θ 0 0 0 d1c ukin ˙ 0 rf θˆ 0 0 1 where ukin ∈ {(±1, 0), (0, ±1)} and d1c ∈ [0, dmax ]. We can control the system to go forward or rotate at a rate which is, on average, directly proportional to d1c . Thus, using a combination of symmetric and anti-symmetric gaits, we should be able to move the Rollerblader from point to point, a proposition that we will now prove. Proposition 7.4.1 Given an initial position Xi : (x, y, θ, p) = (xi , yi, θi , 0) and a final position Xf : (x, y, θ, p) = (xf , yf , θf , 0), there exists a sequence of symmetric and anti-symmetric gaits that moves the Rollerblader from Xi to Xf . Proof: The proof is by construction. Let lt be the Euclidean distance between Xi and Xf . Further let δr ∈ [−π, π] represent the relative angle to the final destination Xf from the initial position of the Rollerblader. Now, we can execute the following sequence of steps to go from Xi to Xf . 144
d1c
d1c
(a) Distance traveled in one cycle vs. magnitude of prismatic extension of leg.
(b) Net rotation of robot in one cycle vs. magnitude of prismatic extension of leg.
Figure 7.10: Linear relationship for symmetric and anti-symmetric gaits.
1. The first step involves turning through δr to face the desired destination point. r This can be achieved by executing ns = floor (rf dδmax cycles of the anti) symmetric gait with d1c = dmax followed by one cycle of the anti-symmetric gait with d1c =
(δr −ns rf dmax ) . rf
2. Now, the robot must execute the symmetric gait to move to the desired final t cycles position (xf , yf ). This can be achieved by executing ns = floor (lf dlmax )
of the symmetric gait with d1c = dmax and 1 cycle with d1c =
(lt −ns lf dmax ) . lf
3. The last step involves turning in place to the desired heading angle. Let δf δf cycles represent the amount of this final turn. Execute ns = floor (rf dmax ) of the anti-symmetric gait with d1c = dmax followed by one cycle of the antisymmetric gait with d1c =
(δf −ns rf dmax ) . rf
Remark: Note that we have proved earlier that the generalized momentum p stays zero for both the symmetric and anti-symmetric gaits. This implies that the Rollerblader comes to rest at the end of each gait cycle. Thus, the condition that p = 0 at the end of a gait is satisfied. 145
7.4.1
Discussion of experimental results.
Several practical problems arose in the experimental implementation of the gaits. The most important was the effect of friction on the robot. The rollerblades do not provide enough traction in the lateral direction. Thus, the legs of the robot were continuously slipping, violating the nonholonomic constraints. This limited the ability of the legs to push off the nonholonomic constraints. Thus, the robot was not able to match the simulated motion. Increasing the weight of the robot will improve friction at the blades but will also increase friction at the casters. The requirement for a central platform supported by omnidirectional casters can only be removed by developing a dynamically stable rollerblader.
7.5
Control of a Bicycle
In this section, we will examine controllers for propelling a bike and maintaining balance with a rider on the bicycle. It is assumed that the bicycle has no pedals and so cannot be ridden in the normal manner. We will show that a periodic motion of the front steering axis will provide the necessary driving input to move the bicycle. However, in contrast to the Rollerblader where we assumed static stability at all times, the bicycle needs to be balanced as well. It is well known (see [66] for details) that while a bicycle at rest is inherently unstable, a bicycle in motion can be easily stabilized. Thus, we will first examine strategies for balancing the bicycle at low speed. At higher speed, we will see that the bicycle can be easily stabilized using just a feedback linearizing controller. We will first examine input-output linearizing controllers and show that these controllers are unsuitable for bicycles at rest. We will then look at two controllers derived using linearized models for the bike. We will then look at combining these controllers with a periodic input to the steering axis of the bicycle. Finally, after the bicycle has gained some speed, we will present controllers that allow it to perform 146
tasks like lane changes and driving around in a circle. We recall some of the notation from Chapter 6. The configuration space for the bicycle is 13 dimensional: q = (xr , yr , θr , φr , ψr , γ, δ, ρ, xf , yf , θf , φf , ψf ). ψr represents the lean angle for the rear frame of the bicycle, δ represents the steering angle, i.e., the angle through which the steering handle has been turned and ρ represents the lean angle for the rider on the bicycle.
7.5.1
Input Output Linearization
The bicycle derived in Chapter 6 has two inputs- the steering input and the rider lean input. It seems conceivable that we could carry out an input-output linearization of the bicycle to linearize the response of two outputs using the two inputs. Input-output linearization with output (φr , ρ) Choose the output for the bicycle as z = (φr , ρ). Using Equation 5.13 and extracting the relevant terms, we can express the evolution of the output in the following form, ¨ τ Eφr φr + F(φr ,ρ) δ . (7.13) z¨ = = ρ¨ Eρ τρ Now, a control law to linearize the response of the output z = (φr , ρ) is given by, ! " E v τ δ = −F −1 φr + φr . (φr ,ρ) τρ Eρ vρ Substituting this controller into Equation 7.13, we find vφr z¨ = . vρ
(7.14)
We can now choose vφr and vρ to regulate (φr , ρ) to the equilibrium position (0, 0). v φ φ˙ φr = −Kp r − Kd r . (7.15) vρ ρ ρ˙ 147
Here, Kp and Kd are chosen as positive definite matrices such that the resulting error dynamics for (φr , ρ) exponentially converge to (0, 0). The linearizing controller
20
vc
0 −20 −40 −60 −80 −100 −120 0
2
4
v
6
8
10
Figure 7.11: Eigenvalues : Input-output linearized system with output (φr , ρ).
is substituted back into the dynamic equations for the system and a linear analysis is carried out by linearizing the system about a straight ahead, vertical position of the system with forward velocity v. The eigenvalues corresponding to this linearized system are plotted versus the forward speed v in Figure 7.11. The system starts off with an eigenvalue with positive real part at v = 0. The eigenvector corresponding to this eigenvalue represents rotary motion of the steering axis (δ). The real part of this eigenvalue becomes negative at a critical speed v = vc = 0.5906 m/s after which the controller easily stabilizes the system. The critical speed vc corresponds to a rear wheel angular velocity of approximately −2 rad/s. It should be noted that the imaginary parts of the eigenvalues are very small (of the order of 10−6 ). 148
Input-output linearization with output (φr , δ) An alternative set of outputs can be chosen as (φr , δ). Let the desired behavior of the output be defined as: φd = 0, φ˙ d = 0, δd = 0, δ˙d = 0. Input-output linearization using the choice of output given above results in zero dynamics for the bicycle system. We are particularly interested in the zero dynamics of the rider lean angle, ie what is the evolution of ρ corresponding to the case where the output is forced to follow its desired behavior exactly? The answer is found by substituting φr = φd , φ˙ r = φ˙ d , δ = δd , δ˙ = δ˙d . into the bicycle dynamics. Fig. 7.12 shows a section of the behavior of ρ corresponding to an initial condition of (ρ, ρ) ˙ = (0.3, 0). A linearized analysis of the zero dynamics for ρ reveals the existence of a center at (ρ, ρ) ˙ = (π, 0), the vertical down position of the rider. Thus, linearizing the response of φr , δ results in oscillatory motion of the rider about the vertical down position. This behavior is obviously not desired. Figure 7.13 shows the eigen values for the controller described here. It is easy to see that this controller is always unstable. This behavior, where linearizing the response of the first link of a two-link underactuated systems leads to undesirable zero-dynamics for the actuated second link, has also been observed for the Acrobot model [70] described later in Section 7.5.2. Input-Output Linearization: Single Output Motivated by the actual behavior of a bicycle, a single output can also be chosen for input-output linearization. As was shown in [66], an unactuated bicycle is stable over a small range of forward velocity of the bike. The difference between the model used in [66] and our model is the presence of the rider and the two actuated inputs. 149
10 8 6 4
ρ˙
2 0 −2 −4 −6 −8 −10 0
1
2
3
ρ
4
5
6
Figure 7.12: Zero Dynamics of bicycle : response of ρ Thus, it may be possible to stabilize the bicycle at a higher speed by using the lean input τρ to regulate the output ρ to ρd = 0. The basic idea here is to have the rider and bike behave as a single rigid body. The resultant system now has properties similar to the system in [66], ie a range of speed (different from the range for the system in [66]) over which the system is stable. Choose the output for the bicycle as ρ. We will also use only one input τρ and set τδ = 0. We can gain more insight into the behavior of the system through a linear analysis. Figure 7.14 represents the real parts of the eigen values of the resultant linearized system after substituting the input-output linearizing controller for ρ. The system starts off with two eigenvalues with positive real parts at zero speed. As the forward velocity v of the bike increases, these two eigen values coalesce into a pair of conjugate values whose real part becomes negative for v = vc1 = 3.64 m/s. For v > vc2 = 4.685 m/s, the real part of one of the eigen values becomes positive again. Thus, for vc1 < v < vc2 the controller derived with output ρ will be stable. It is obvious from the results of this section that input-output linearization is a bad choice for control of the bicycle at zero velocity since it results in undesirable zero dynamics. We will now derive two balancing controllers for the bicycle at zero 150
4
2
0
−2
−4
−6
−8 0
2
4
v
6
8
10
Figure 7.13: Eigen values : Input-output linearized system with output (φr , δ). speed based on a linear analysis of the system. The first controller will be derived by approximating the dynamics of the bicycle in the transverse plane by that of an underactuated system called the Acrobot. The second controller will be derived using pole-placement for the linear model of the bicycle derived earlier.
7.5.2
Balancing Controllers at low speeds
Acrobot model for transverse dynamics of the bicycle The Acrobot(Fig. 7.15) is a widely studied underactuated system consisting of two links in a vertical plane with two rotary joints. Only the second joint is actuated. The Acrobot is unstable about its vertical, straight-up equilibrium position. The dynamics and control of the Acrobot have been investigated by, among others, Berkemeier and Fearing [2], Bortoff and Spong [6], Bortoff [5], Murray and Hauser [54] and Spong [68, 69, 70]. The model for the Acrobot is easily available (see [70]) and will be presented here only in brief. The model is based on the two link Acrobot shown in Fig. 7.15. Let β = (β1 , β2 ) represent the joint angles of the two joints as shown in the figure. Only 151
5
0
vc 1
−5
vc 2
−10
−15
−20
−25 0
2
4
v
6
8
10
Figure 7.14: Eigen values : Input-output linearized system with output (ρ). Joint 2, corresponding to the angle β2 , is actuated. The dynamics of the system are given by the following equation, β β ˙ β] ˙ β¨1 C1β [β, 0 Nβ D12 D11 + + 1 = . β β ˙ β] ˙ τβ β¨2 D21 D22 N2β C2β [β,
(7.16)
The terms in the above equation are given by, 2 + 2l1 lc2 cos β2 + I1 + I2 , D11 = m1 lc1 + m2 (l12 + lc2
(7.17)
2 D12 = D21 = m2 (lc2 + l1 lc2 cos q2 ) + I2 ,
(7.18)
2 + I2 , D22 = m2 lc2
(7.19)
C1β = −m2 l1 lc2 sin q2 q˙22 − 2m2 l1 lc2 sin q2 q˙2 q˙1 ,
(7.20)
C2β = m2 l1 lc2 sin q2 q˙12 ,
(7.21)
N1β = (m1 lc1 + m2 l1 )g cos q1 + m2 lc2 g cos(q1 + q2 ),
(7.22)
N2β = m2 lc2 g cos(q1 + q2 ).
(7.23)
We can now represent the dynamics of the bicycle and rider in a transverse frame using the model above. This model will be approximate and will generally only be valid near the upright equilibrium position of the robot. Our objective is to use 152
β2
m2 ,I2 l1
.
lc1
.
m1 ,I1
lc2
β1
Figure 7.15: The Acrobot.
a linearized version of this model to derive a linear controller to balance the bike about its upright position using only the rider as input. Since we assume only small deviations about the equilibrium condition, this model will be adequate for deriving a catching controller that balances the bike after moderate disturbances. In the transverse plane, the bicycle and rider dynamics can be represented as a two link Acrobot system. The first link represents the bike while the second link represents the rider. The actuator at the second joint of the Acrobot allows the rider to lean from side to side. The link parameters for the Acrobot can be derived from the parameters of the bicycle as
m1 = mrf + mf f + mf w + mrw , xx xx + Ifxxf + Irw + Ifxxw , I1 = Irf
lc1 =
(mrf zrf + mf f zf f + mf w zf w + mrw zf w ) m1 lc2 = lri − lle , m2 = mri , I2 = Iri . 153
Also, about the upright equilibrium position of the Bike, we have β1 =
π + φr , 2
β2 = ρ,
τβ = τρ .
Equation 7.16 can be linearized about its equilibrium position π ˙ ˙ β1 β2 β1 β2 = 2 0 0 0 . This gives us a set of linear equations q˙β = Aβ qβ + Bβ uβ . where
qβ = β1 −
π 2
0 0 1 0 0 0 Aβ = 10.55 −3.216 0 −8.93 11.26 0
˙ ˙ β2 β1 β2 , 0 0 1 0 , Bβ = , −0.0515 0 0 0.1089
uβ = τβ . Based on the linear model, we can now use an LQR based controller to balance the bike about its upright position. The controller is derived using MATLAB with weighting matrices Q = 10 × I4×4 , R = 1. It results in a feedback control law of the form uβ = −Kqβ ,
K = −5374, −1792.9, −2104.3, −878.1 .
(7.24)
Recall that τρ = τβ = uβ . Thus, we have derived a controller that allows the rider lean actuator to balance the bike. Note that the steering actuator plays no active part in balancing the bike. This was one of our intentions in deriving this controller, ie decoupling the controllers for balancing and propelling the robot. Pole-placement based linear controller Using the linear model for the bicycle derived in Section 6.2.2, a linear controller for balancing the bike can be easily derived using pole-placement techniques. The poles 154
of the system were placed at (−10, −7.5, −6, −5, −3, −2). This results in a feedback ˙ ρ, ˙ φr , δ, ρ). Also, law of the form τ = −KXr where τ = (τδ , τρ ) and Xr = (φ˙ r , δ,
−2.93 0.09 −1.29 −7.40 0.36 −2.70 K=100 −55.00 1.24 −24.02 −138.22 4.09 −49.95
7.6
(7.25)
Propulsion of the bicycle without pedaling
We will now present the main result for this section, ie the propulsion of the bicycle without pedaling. The propulsion is achieved by commanding the steering axis of the bicycle to follow a desired sinusoidal trajectory.
7.6.1
Periodic input
We start with the complete nonlinear equations of the bike given by Equation 5.13. The desired trajectory for the steering angle δ is given by: t δd = δa sin(2π ). T To derive a control law that makes δ follow δd , we will linearize the dynamics corresponding to δ. This is achieved using nonlinear feedback involving terms in (qk , qd , q˙d ). We assume that these quantities are available to us from different sensors, either encoders or an inertial measurement unit. From Equation 5.13, we have ˜ ˜ −1 N(q, ˜ q) ˜ −1 τ˜. ˜ −1 C(q)[ q, ˙ q] ˙ +M ˙ =M q¨d + M
(7.26)
The equation for δ¨ is given by the 3rd row of Equation 7.26 and is given by δ¨ = Eδ (qk , qd , q˙d ) + Fδ τδ + Fρ τρ .
(7.27)
Here Eδ represents all the terms in the equation that are dependent on (qk , qd , q˙d ) while Fδ and Fρ are the coefficients to the steering and rider lean torques respectively. 155
7.6.2
Balancing Controllers
We will now illustrate the derivation of the complete control laws using the balancing controllers derived in Section 7.5.2. For the controller derived using the Acrobot model, we can derive a (approximate) linearizing feedback control law for δ as τδ =
1 ˙ − E(qk , qd , q˙d ) − Fρ τρ . Kp (δd − δ) + Kd (δ˙d − δ) Fδ
(7.28)
Kp and Kd are chosen as positive numbers so that the resulting error dynamics asymptotically converge to 0. Equations 7.24 and 7.28 are the required control laws that govern the actuator torques corresponding to ρ and δ respectively. For the balancing controller derived using pole-placement techniques, the controller torques are calculated in a similar manner: ! "T ˙ ˙ τρ = −K2p φr δ ρ˙ φr δ ρ τδ =
1 ˙ − E(qk , qd , q˙d ) − Fρ τρ . Kp (δd − δ) + Kd (δ˙d − δ) Fδ
(7.29) (7.30)
where K2p is the second row of the gain matrix K in Equation 7.25.
7.6.3
Balancing Controller at higher speeds
Once the bicycle has gained speed and is traveling at more than approximately 0.6 m/s, the input-output linearizing controller derived in Section 7.5.1 can be used to stabilize the bicycle.
7.6.4
Simulation results
Simulation results for the generation of motion for the bicycle are presented in Fig. 7.16 and Fig. 7.17. Figure 7.16 presents simulation results for the case where the LQR controller based on the Acrobot model is used to control the system. The initial condition for the state of the system is q = (04×1 , −0.0001, 0, 0.1, 0, w, 0.0075, −0.0949, −0.0316, 0) and q˙d = (−0.1, 0, 0, 0). 156
The motion of the system is simulated for 10 s. The system uses the control law described in Section 7.6.1 for a period of 4 seconds. During this period the steering angle is subjected to a sinusoidal motion with an amplitude of 0.4 and a frequency of 1Hz. The system builds up momentum for 12 seconds. Note that the system also recovers from its initial falling roll velocity. Further, although the system deviates considerably from its equilibrium position, the linear controller is still able to balance the bike. It should be noted that the bicycle at rest is a very unstable system and may not be able to recover from bigger disturbances. However, as noted earlier a bicycle in motion exhibits better stability.
After 12 seconds, the forward speed of the bicycle is greater than the critical speed vc required for the input-output controller derived in Section 7.6.3 to stabilize the system. We now use the input-output linearizing controller derived in Section 7.6.3 that attempts to regulate the roll of the rear frame (φr ) and the lean of the rider (ρ) to the equilibrium upright position. As can be seen from the system response, the bicycle is easily stabilized at the higher speed. The system finally stabilizes to an upright position with a constant forward velocity.
Figure 7.17 presents similar results for the case where the pole placement based balancing controller is used during the initial stages. The initial condition is the same as earlier. Comparing the results from the two cases in Figures 7.16 and 7.17, the oscillations in (φr , ρ) are smaller for the case where the pole placement controller is used, ie the pole placement based controller does a better job of regulating the bike and rider lean angles. This also means that the bicycle gains speed more slowly when the pole placement based controller is used as can be seen from the plots for ψ˙ r in both cases. Thus, the input-output linearizing controller derived in Section 7.6.3 can only be switched on after 12 s when the forward speed of the bicycle is greater than the critical speed vc required for the controller to be able to stabilize the system. 157
7.7
Motion Planning for a Bicycle
Once the bike has gained some velocity, it can be steered by the rider by leaning from side to side. In this section, we present a rudimentary controller that lets a rider converge to a desired trajectory. The controller functions by exploiting a phenomenon commonly referred to as counter-steering. Counter-steering is a wellknown method for steering motorcycles. A turn is initiated by turning the steering handle in the opposite direction (to the intended direction of the turn). This leans the bicycle into the turn. After a certain point, because of the stability of the bike at speed, the steering angle turns back to the right angle for the turn to continue. Thus, the bicycle first turns in a direction opposite to the intended direction. To use this kind of behavior to initiate the turn, we specify a desired angle φd for the bike and rider and use the feedback linearized controller from Section 7.5.1. The effect of this controller is shown in Fig. 7.18. Here, we start off by generating motion for the bike using a sinusoidal input as before. After a certain period of time, the sinusoidal input is stopped and the bicycle stabilizes to a straight forward motion. Now, the bike can be made to track a desired angular velocity. Given a forward velocity V and a desired angular velocity ωd , the radius of the circular trajectory followed by the bike is Rc =
V ωd
and the lean angle φd can be easily determined. φd is
given by setting the moment due to the weight of the bike about the point of contact with the ground equal to the moment due to the centrifugal force at the mass center of the bike. Thus, mt ωd2 Rc lt cos φd = mt glt sin φd
(7.31)
Hence φd = arctan
ω 2 Rc . g
Here mt is the total mass of the bike and lt =
m1 lc1 + m2 lc2 mt 158
(refer Fig. 7.15)
(7.32)
In Fig. 7.18, note the non-zero roll angle required to keep the bike moving in a circle. Also note that ρ = 0 when the bike is traversing the circular trajectory, i.e. the rider stays fixed relative to the bike. Counter-steering can be seen more clearly in a different case. Here, the goal is to converge to a trajectory with (xd , yd , θd ) = (0, −3, 0), i.e. yd = constant = −3. This task represent a lane change. The controller used here is the same as in Equation 7.32 except ωd is now specified by the following control law ωd = Kpω (yd − yr ) + Kdω V sin θr .
(7.33)
Fig. 7.19 plots these results. The controller that converges on the desired trajectory is switched on at t = 15s. It can be clearly seen from the plot of θ vs. t that the system turns initially in the counter-clockwise direction before turning back in the clockwise direction and converging on the desired trajectory. (Note that because of the convention adopted, positive δ is the result of turning the steering handle clockwise).
159
5
0.1
4
0.08
3
0.06
2
0.04
0.3 0.2
0.02
1
y
0.4
θ
0
φ
0
−1
−0.02
−2
−0.04
−3
−0.06
−4
−0.08
0.1 0 −0.1 −0.2
−5 2
4
6
x
8
10
−0.1 0
12
5
(a) Trajectory of contact point of rear wheel.
t
10
−0.3 0
15
(b) θ vs. t
5
t
10
15
(c) Roll Angle of Bike.
−3
6
x 10
4
0.5
0.8
0.4
0.6
0.3
2
0.2
0.1
0
γ
0.4
0.2
δ
ρ
0
0 −0.2
−2
−0.1 −0.4
−0.2
−4
−0.6
−0.3
−6
−0.8
−0.4
−8 0
5
10
t
−0.5 0
15
5
(d) Pitch angle of rear frame.
10
t
−1 0
15
(e) Steering angle.
t
10
15
(f) Lean angle. 7
0
2
5
6 1.5
5
−1
1
4 −2
0.5
φ˙ r
ψr˙
0
δ˙
−3
3 2 1
−0.5
−4
0
−1
−1 −5
−1.5 −2 0
−2 5
t
10
−6 0
15
(g) Roll velocity.
5
t
10
15
(h) Angular velocity of rear wheel.
−3 0
5
t
10
(i) Steering angle velocity.
5 4 3 2
ρ˙
1 0 −1 −2 −3 −4 −5 0
5
t
10
15
(j) Rider Lean velocity.
Figure 7.16: Simulation results with controller based on Acrobot model.
160
15
0.2
0.25
0.15
0.15
2
0.2
1.5 1
0.1
0.5
y
0.1
φ
θ
0
0.05 0
0.05
−0.05
0
−0.15
−0.5 −0.1
−1 −1.5
−0.2
−2 0
1
2
3
4
x
5
6
7
−0.05 0
8
5
10
15
−0.25 0
20
5
t(s)
(a) Trajectory of contact point of rear wheel.
10
15
20
t(s)
(b) θ vs. t
(c) Roll Angle of Bike.
−3
5
x 10
0.4
4
0.6
0.3
3
0.4
0.2
2
0.2
0.1
1
γ
−0.1
−1
0
ρ
0
δ
0
−0.2
−0.2
−2
−0.4
−3
−0.3
−4
−0.4
−5 0
5
10
15
20
−0.6
−0.5 0
5
10
t(s)
15
−0.8 0
20
5
t(s)
(d) Pitch angle of rear frame.
10
15
20
t(s)
(e) Steering angle.
(f) Lean angle. 4
1.5
0.5
3 0
1
2 −0.5
0.5
φ˙ r
ψr˙
0
δ˙
−1
−0.5
−1
−2
−1
−1.5 0
−2
−2.5
5
10
15
−3 0
20
5
t(s)
10
15
20
−3 0
5
10
(h) Angular velocity of rear wheel.
(i) Steering angle velocity.
3
2
1
ρ˙
0
−1
−2
−3 0
5
10
15
20
t(s)
(j) Rider Lean velocity.
Figure 7.17: Simulation results with pole-placement based controller.
161
15
t(s)
t(s)
(g) Roll velocity.
1 0
−1.5
20
14
0.4
10 12
0.3
8
10 0.2
6
y
8
θ
4
φ
6
0.1 0
4
2
−0.1
2
0
−0.2
0
−2 0
2
4
6
8
x
10
12
14
−2 0
16
5
10
15
20
25
30
35
−0.3 0
40
5
10
15
t(s)
(a) Trajectory of contact point of rear wheel.
20
25
30
35
40
t(s)
(b) θ vs. t
(c) Roll Angle of Bike.
−3
6
x 10
0.8
4
0.6
2
0.4
0.8 0.6 0.4 0.2
0
γ
0.2
δ −2
0
−4
−0.2
−6
−0.4
ρ
0 −0.2 −0.4 −0.6
−8 0
5
10
15
20
25
30
35
40
−0.8
−0.6 0
5
10
15
20
t(s)
25
30
35
−1 0
40
5
10
15
t(s)
(d) Pitch angle of rear frame.
(e) Steering angle.
2
0
1.5
−1
20
25
30
35
40
35
40
t(s)
(f) Lean angle. 12 10 8
1
6
−2 0.5
φ˙ r
ψr˙
0
δ˙
−3
−0.5
4 2 0
−4
−1
−2 −5
−4
−1.5 −2 0
5
10
15
20
25
30
35
−6 0
40
5
10
15
20
25
30
35
40
(g) Roll velocity.
−6 0
5
10
15
20
(h) Angular velocity of rear wheel. 4 3 2 1 0 −1 −2 −3 −4 −5 0
5
10
15
20
25
30
35
40
t(s)
(j) Rider Lean velocity.
Figure 7.18: Simulation results for tracking a circular trajectory.
162
30
(i) Steering angle velocity.
5
ρ˙
25
t(s)
t(s)
t(s)
0.3
0.4
0
0.2
0.3
−0.5
0.1
−1
0
0.5
θ
y −1.5
0.2
φ
0.1
−0.1
0
−0.2
−0.1
−2 −2.5
−0.3
−0.2
−3 −3.5 0
10
20
30
40
x
50
−0.4 0
60
5
10
15
20
25
30
35
−0.3 0
40
5
10
15
t(s)
(a) Trajectory of contact point of rear wheel.
20
25
30
35
40
t(s)
(b) θ vs. t
(c) Roll Angle of Bike.
−3
6
x 10
4
0.5
0.8
0.4
0.6
0.3
2
0.2
0.1
0
γ
0.4
0.2
δ
ρ
0
0 −0.2
−2
−0.1 −0.4
−0.2
−4
−0.6
−0.3
−6
−0.8
−0.4
−8 0
5
10
15
20
25
30
35
40
−0.5 0
5
10
15
20
t(s)
25
30
35
−1 0
40
5
10
15
t(s)
(d) Pitch angle of rear frame.
(e) Steering angle.
2
0
1.5
−1
20
25
30
35
40
35
40
t(s)
(f) Lean angle. 8 6 4
1
−2 0.5
φ˙ r
ψr˙
0
2
δ˙
−3
−4
−4
−1
−5
−6
−1.5 −2 0
0 −2
−0.5
5
10
15
20
25
30
35
−6 0
40
5
10
15
20
25
30
35
40
−8 0
5
(g) Roll velocity.
(h) Angular velocity of rear wheel. 4 3 2 1 0 −1 −2 −3 −4 −5 0
5
10
15
20
25
30
35
40
t(s)
(j) Rider Lean velocity.
Figure 7.19: Simulation results for a lane change.
163
15
20
25
30
(i) Steering angle velocity.
5
ρ˙
10
t(s)
t(s)
t(s)
7.8
Gait Generation for the RoboTrikke
In this section, we will look at the generation of gaits for the RoboTrikke. The RoboTrikke was simulated by applying different controls on the steering angle δ. A sinusoid was used to specify the desired trajectories for the control variable: δd = δo + δa sin(ωδ t + φδ ),
(7.34)
Feedback linearization can be used to obtain direct control of the input variable. Thus, using an appropriate control law, we have δ¨ = u1 where u1 is a control inputs. In practice, the use of a servo motor on our robot allows us to directly specify the desired angles and thus justifies our assumption of direct control on the input variables. We will now present simulation results and compare our results to those for a simulated Roller Racer and to actual experimental results.
7.8.1
RoboTrikke
Figure 7.20 shows the resultant motion of the RoboTrikke using a sinusoid of amplitude δa = 0.9, frequency ωδ = 2π rad/s and offset δo = 0. As expected, the system moves forward in a sinusoidal gait. As energy is pumped into the system by the periodic input, the momentum of the system increases continuously with time. For this particular δa , Fig 7.21 shows a comparison of the trajectories of a RoboTrikke, a Roller-Racer and our experimental prototype. The Roller-Racer model was derived from the RoboTrikke model by setting the steering tilt α = 0. It can be seen that for the same input, the RoboTrikke travels faster than the Roller-Racer. This is a consequence of the tilted steering axis of the RoboTrikke which causes the rear body of the RoboTrikke to pitch up and down affecting the dynamics of the system. It is clear that the Roller Racer and the RoboTrikke share the same basic method of propulsion. However, propulsion is enhanced in the RoboTrikke by the 164
−3
1.5
0.8
2
0.6
0 −2
0.4
1
x 10
−4 0.2
0.5
y
θ
0
γ
0
−0.5
−10
−0.4
−1
−12
−0.6
−1.5 0
1
2
x
3
4
5
−14
−0.8 0
2
(a) Trajectory of contact point of rear wheel.
4
6
t
8
−16 0
10
(b) θ vs. t
2
4
t
6
8
10
(c) Pitch angle of rear frame.
6
1
5
0.8
0
0.6
4
−5
0.4
2
−10
0.2
δ
−6 −8
−0.2
ψr˙
0 −0.2
δ˙
−15 −20
0
−25
−2 −0.4
−30
−0.6
−35
−0.8 −1 0
−4
−40
2
4
t
6
8
(d) Steering angle.
10
−45 0
2
4
t
6
8
(e) Angular velocity of rear wheel.
10
−6 0
2
4
t
6
8
10
(f) Steering angle velocity.
Figure 7.20: RoboTrikke (Simulation): Response to sinusoidal input.
tilted steering axis.
7.8.2
Trikke w/ Rider
We also modeled the effect of a rider sitting on the Trikke and rolling from side to side. The derivation of the model for the rider requires the introduction of a new configuration variable ρ. The rider is modeled as a rotary joint with a point mass at one end that can swing from side to side. The inertial and other parameters for the rider are given in Table 7.1. It is assumed that an actuator is present at the pivot point that allows direct control of ρ. This corresponds to the torque exerted at the hip by a human rider to swing his upper body from side to side. The input for the 165
Trikke (simulated) Roller Racer (simulated) Trikke (experimental)
2 1.5 1 0.5
y
0 −0.5 −1 −1.5 −2 0
1
2
3
x
4
5
6
Figure 7.21: Trajectory of the RobotTrikke (simulated), Roller Racer (simulated) and RoboTrikke (experimental). Parameter Description Rider (xri , yri, zri ) Position center of mass (xle , yle , zle ) Rider Lean/Rotary hinge position mri Mass Iri Mass moments of inertia
Value (0.12, 0, 0.12) m (0.12, 0, 0.08) m 0.5 kg 0.1kgm2
Table 7.1: Rider parameters. rider is also specified as a sinusoid. ρd = ρo + ρa sin(ωρ t + φρ ).
(7.35)
Figures 7.22 and 7.23 show the response of the system to 3 different inputs: (1) A zero-lean input where the rider is controlled so that ρ = 0, (2) In-phase inputs specified as ρa = δa and φρ = φδ = 0 and (3) Out of phase inputs where ρa = δa and φρ = π and φδ = 0. The simulations confirm that rider input has a definite effect on the motion of the system. The case of in-phase inputs corresponds to the rider leaning away from 166
the direction in which the steering handle is turned. This kind of rider input slows down the system. The out of phase motion corresponds to the rider leaning into the direction the steering handle is turned which is seen to speed up the system. This kind of behavior is exploited by human riders of the system who rock from side to side to impart greater momentum to their vehicles.
0.25 In−phase inputs Out of phase inputs Zero lean input
0.2 0.15 0.1
y
0.05 0 −0.05 −0.1 −0.15 −0.2 −0.25 −0.5
0
0.5
1
1.5
x
2
2.5
3
3.5
4
Figure 7.22: Trikke w/ Rider (Simulation): Trajectory of system for in-phase, out of phase and zero lean input.
7.9
Experimental Results
We now present experimental results for RoboTrikke1 , a small robotic model of the Trikke. We describe the experimental setup and open-loop experiments and then present closed-loop results.
7.9.1
Model
The experiments are based on the small model RoboTrikke shown in Fig. 7.9.1. The model has no rider on it, ie there is only one input present on the system - the 1
We would like to thank Geoff Bower of UIUC for building the model of the RoboTrikke.
167
5 In phase inputs Out of phase inputs Zero lean inputs
0 −5
˙ ψ r
−10 −15 −20 −25 −30 0
2
4
t
6
8
10
Figure 7.23: Trikke w/ Rider (Simulation): Angular velocity of rear wheel for in-phase, out of phase and zero lean input. steering angle. The model has a steering axis tilted at approximately 18 degrees. The steering angle is actuated directly using a servo. The experiments were carried
Figure 7.24: RoboTrikke model used in the experiments. out by specifying a control for the steering angle of the form, δd = δo + δa sin(ωδ t + φδ ).
(7.36)
The input was converted into the appropriate PWM signal for the servo and transmitted using a MINI SSC board interfaced to a laptop. 168
A camera based visual tracking system was used to track the motion of the robot. Three colored markers of different colors were placed on the robot and tracked using an overhead camera (Fig. 7.24). One of the markers was placed on the handlebars to aid in recovery of the actual values of δ. The other two markers were used to recover the position and orientation of the body of the RoboTrikke. The tracking system was run at approximately 30 Hz.
7.9.2
Forward motion
In the first set of experiments, the amplitude of the input, δa , was varied while the other parameters were held constant at (δo = 0, ω = 2π rad/s, φδ = 0). The experiments were run for 10 cycles of the periodic input. The net motion of the robot was expected to be along the positive Y axis. This input leads to forward motion of the RoboTrikke. Experimental trajectories are shown in Fig. 7.25(a). In Fig. 7.25(b), ds is the actual distance traveled by the system along its path, while Fig. 7.25(c) plots xf , the amount by which the final position of the system is offset laterally from the y axis. Representative results for one particular trajectory are shown in Figures 7.26(a) to 7.26(c).
3
2.5
1.5
2.5
2
1
2
y
1.5
ds 1.5
xf
0.5
0
1 1
0.5
0
−0.5
0.5
0
−1
−0.5
0
x
0.5
1
1.5
(a) Experimental trajectories for different δa .
0.7
0.8
0.9
1
1.1
1.2
δa
(b) Distance traveled along the path of the robot.
1.3
−1
0.7
0.8
0.9
1
1.1
1.2
1.3
δa
(c) Lateral deviation at the end of 10 cycles
Figure 7.25: RoboTrikke (Experiment): Open-loop response to zero-offset sinusoidal inputs.
169
0.8
1.5
1.5
0.7 1
0.6 0.5
1
0.5
0.4
y
θ
δ
0.3
0
0.2
0.5
−0.5
0.1 0
−1
−0.1
0 −1.2
−1
−0.8 −0.6 −0.4 −0.2
x
0
0.2
0.4
0.6
−0.2 0
(a) Forward motion for δa = 0.9.
2
4
6
t
8
10
−1.5 0
(b) Orientation vs t for δa = 0.9.
2
4
t
6
8
10
(c) Variation of δ for δa = 0.9.
Figure 7.26: RoboTrikke (Experiment): Motion of the system for zero-offset sinusoidal input.
7.9.3
Moving on a curve
If the input to δ is offset from 0, the RoboTrikke moves along a curve. To quantify this motion, we chose constant parameters (δa = 1, ω = 2π rad/s, φδ = 0) and varied δo from -0.5 to 0.5. Experimental trajectories for this set of experiments are shown in Fig. 7.27(a). The variation of the final orientation of the Trikke after 10 cycles of periodic input is shown in Fig. 7.27(b) while the distance traveled along the curve is shown in Fig. 7.27(c).
3
1.6
1.2
1.55
2
1.5
1 1
1.45
0.8
θf
y 0.6
ds
0
1.4 1.35
0.4
−1
1.3 1.25
0.2 −2
1.2
0 −0.6
−0.4
−0.2
0
0.2
x
0.4
0.6
0.8
1
(a) Experimental curved trajectories for different offsets δo .
−3 −0.5
0
δo
(b) Final orientation of the system for different offsets.
0.5
1.15 −0.5
0
δo
(c) Distance traveled along the path of the robot.
Figure 7.27: RoboTrikke (Experiment): Open-loop turning experiments.
170
0.5
7.9.4
Closed loop control
Using the visual tracking system, we were able to get feedback for the position and orientation of the RoboTrikke Using this information and the experimental results and observations from the open-loop control of the system, we carried out closed loop control of the RoboTrikke. Using the fact that the system starts rotating when the input is offset, we developed a simple feedback control law. From the open loop control experiments, we had observed the variation of turn angle rate with δo . This helped us tune the gains for the controller. The desired trajectory for the system was specified as motion along yd = constant = 0.625 with respect to a global inertial frame. The control input is the same as the one in Equation 7.36. The amplitude of the commanded input gait for δ was fixed, ie δa = constant = 1.0. Thus, the only parameter that was varied was the input offset δo . The other parameters for the gait are ωδ = 2π rad/s. The control law chosen to drive the system is given by: δo = Kp (yd − y) − Kd y. ˙
(7.37)
However, the velocity data y˙ required for feedback was noisy and inaccurate. Hence, we modified the feedback law to the following form δo = Kp (yd − y) − Kd2 sin θ.
(7.38)
The controller updates the desired offset angle δo at 4 Hz. Experimental results are shown in Figures 7.9.4. The system starts from a zero orientation but with a large offset in the Y direction.
7.9.5
Discussion of experimental results
The quantitative behavior of RoboTrikke does not match the simulated system. There are several reasons for this. Friction plays a big part in slowing down the motion of the real robot. Further, the inertia parameters chosen for simulation 171
1.4 1.2 1
y
0.8 0.6 0.4 0.2 0 −0.2
0.5
1
1.5
x
2
2.5
Figure 7.28: RoboTrikke (Experiment): Closed loop control to yd = constant = 0.625, starting orientation θ = 0.
may not match the real parameters. Slipping was observed at the wheels of the RoboTrikke. The real model was also observed to be biased towards one side. Errors in calibration of the actuator also play a big part in the deviation from ideal behavior. Disturbances like a gentle upward slope or a small crack in the surface also contributed to the deviation from simulated behavior. Actuator limitations also played a part in the observed differences.
As can be seen from the closed-loop experiments, the RoboTrikke under control performed reasonably well. The system was able to correct for fairly large lateral and orientation deviations. Because of limited workspace and the limited field of view of the camera, the robot frequently reached the limits of the workspace before it could converge to the desired trajectory. This also contributed to the errors in the lateral position of the robot under closed-loop control. Visual feedback from the camera was also significantly affected by lighting conditions. 172
7.10
Conclusion
In this chapter, we have presented gait generation and motion planning results for 3 novel locomotion systems. Gait generation for the Rollerblader was carried out by using a set of simple gaits that move the robot forward and rotate it in place. The composition of these two gaits allows the robot to move from point to point. We also presented an analysis, simulation and experimental results for rollerblading gaits that move the robot by using gaits that mimic human rollerbladers, i.e. gaits in which the legs of the robot make and break contact with the ground. We also presented a very novel method for propelling a bike without pedaling. Combining the use of periodic inputs and controllers that balance the bike, we were able to show that it is possible to ride a bike without pedals and carry out simple motion planning for it as well. We also presented results for a novel robot called the RoboTrikke where a discrete feedback control law was used to control the average behavior of the system onto a straight line trajectory using visual feedback. The controllers and algorithms presented in this chapter are not unique to the set of systems presented here. They can be applied to a variety of systems, particularly of the kind where multiple nonholonomic constraints act on the system. The controllers used for the Rollerblader highlight the utility of finding a set of simple gaits that can be combined to execute the desired motion. The dynamic Type I gaits presented later have the advantage of faster motion for the robot. however, such gaits are harder to analyze and combine. The balancing controller for the bicycle shows how the two different goals of motion planning and maintaining dynamic stability for an unstable system can be combined and executed at the same time. The discrete feedback controller used for the RoboTrikke is an example of averaging control. Here, the state of the system tracks the desired trajectory in an averaged sense. Thus, even though the actual motion of the robot is not along a straight line, the robot does follow the straight line on average.
173
Chapter 8 Conclusion In this thesis, we have studied the dynamic analysis, gait generation and motion planning for modular locomotion systems. The ideas developed in this thesis are not restricted to the class of systems discussed here but can be applied to a wider variety of systems. This thesis makes multiple main contributions to the study of modular locomotion systems in enumeration, dynamic analysis and motion planning. We present a scheme to enumerate the different robot configurations possible given a set of locomotive modules. We show how the kinematic and dynamic equations for such robots can be automatically generated. We present synthesis results for the generation of gaits for kinematic systems. We show how nonholonomic impacts can be modeled using techniques from Lagrangian reduction. We carry out gait generation and motion planning for two experimental two port systems, a rollerblading robot and a single input system called the RoboTrikke, and a bicycle that can be propelled without pedaling. In Chapter 1, we defined our problem formally and broke it down into smaller parts. In Chapter 2, we presented some of the necessary background information and notation used throughout this thesis. In Chapter 3, we examined the first part of our problem, the enumeration of different robot configurations given a set of locomotion modules. We showed how Polya’s theorem can be used to generate the required 174
result. This step is similar to type synthesis for mechanisms and serves to list all the possible configurations. In particular, we list all possible two port configurations using a set of locomotion modules including a skate module, a powered wheel module, a passive wheeled module and a leg module. In Chapter 4, we started examining the next stage of our problem, the analysis of modular locomotion systems. Chapter 4 deals primarily with kinematic systems. We present a top-down approach to formulating its equations of motion. This approach allows us to push out the motion of the central platform to the individual modules and is better suited to modular locomotion systems. We formulate the equations of motion for legged systems in terms of the contact points of the legs thus abstracting away the geometric and kinematic complexity of the individual legs. A kinematic motion planning approach is used to carry out motion planning for such systems. The approach involves choosing a set of vector fields from the Philip Hall basis for the system and calculating the magnitude and composition of flows required along these vector fields to generate the desired motion. We showed how this method can be extended to legged systems where the equations of motion for the system change when legs are picked up or placed back on the ground. In Chapter 5, we present methods for dynamic analysis of modular locomotion systems including the classical Lagrange D’ Alembert equations and Lagrangian reduction techniques. We show how to systematically formulate the dynamics of such a system by building the Lagrangian and constraints module by module. Dynamic analysis is necessary for some of the systems we study since a kinematic analysis is often insufficient to determine the complete motion of the system. We present an alternative formulation of these approaches that is especially suited for use with symbolic manipulation software. In Chapter 6, we present an application of these approaches to three systems of interest including two prototypes. The Rollerblader is a planar rollerblading robot with a central platform and two three degree of freedom legs. Passive rollerblading wheels are mounted at the 175
end of each of these legs. The analysis of the Rollerblader is carried out for two different cases, one where the rollerblades are in contact with the ground at all times and the other case where the legs can be picked up and placed back on the ground. The second case involves nonholonomic impacts when passive wheeled modules impact the ground. The analysis for the Rollerblader is done using techniques from Lagrangian reduction and we show how nonholonomic impacts can be incorporated into this formulation. In Chapter 7, we presented gait generation results for the Rollerblader. We presented two types of gaits and showed how a composition of gaits can be used to achieve point to point motion for the Rollerblader. The RoboTrikke is a novel single input robot inspired by a commercial system called the Trikke. In Chapter 6, we presented analysis and simulation results for the RoboTrikke using a sinusoidal input. We showed that the main source of locomotion for the RoboTrikke, the periodic motion of its steering axis, is similar to that for the Roller Racer. We also showed the effect of the addition of a rider. The rider can help or hinder the motion of the system by leaning from side to side inphase or out of phase with the sinusoidal motion of the Trikke. Lastly, we showed how feedback control of the RoboTrikke can be achieved using visual feedback to get motion along a straight-line trajectory. The Trikke can be generalized in three dimensions to the case of a bicycle without pedals. Motion of this system can now be achieved only by periodic motion of the handlebars. However, a bicycle is unstable at rest and an additional controller is needed to balance the bike. We show how a rider on the bike can control its balance while at the same time propelling it using a periodic motion of the steering handle. Once the bicycle reaches a higher speed, it can be easily controlled to follow a desired trajectory while the rider maintains balance. Thus, starting from rest, we can achieve novel locomotion for the bicycle without using any pedals. The gait generation and motion planning methods we present in Chapter 7 can be applied to other locomotion systems as well. We were able to achieve point to 176
point motion for the Rollerblader using only simple gaits that moved the robot forward or rotated it in place. It would be worthwhile and much simpler to find such gaits for other locomotion systems. The motion planning scheme used for the bicycle can be easily applied to other systems. The scheme would involve finding a gait that builds up speed or momentum in the system. This would be followed by the use of a simpler controller that guides the system onto the desired trajectory. The closed loop feedback control achieved for the RoboTrikke points to the feasibility of using such averaging control like methods for the control of systems with periodic inputs.
8.1
Future Work
This work has opened a range of possibilities for future exploration and study. The most interesting future application lies in further study of systems with nonholonomic impacts, the most common example of which is human rollerbladers and iceskaters. The biomechanics of human rollerblading and ice-skating have been widely studied( [48, 47, 39]). Ice skating and rollerblading differ significantly from running and walking in the gliding action of the skate during forward motion. The start in ice skating, especially in speed skating, resembles running like motion with a pushoff occurring against a fixed surface. Once the skater has gained some speed, the push-off stroke is directed more sideways with respect to the body. In running, the propulsive force is always applied in a direction opposite to the direction of motion. In skating, the propulsive force is applied at an angle to the direction of motion of the body. While the biomechanics of ice-skating has been well studied, no attempt has been made to analyze the technique of skating using analysis similar to that carried out in this thesis. In fact, the discussion on Type I gaits presented in this thesis is the first step in attempting to analyze the dynamics of skating action. The analysis could be extended to the case of human skating by including the problem 177
of balance for a dynamic biped skating system. The analysis of the human skating stroke would also provides valuable insight for the design of gaits for such a system. The success in using periodic motion inputs combined with a balancing controller for a bicycle indicates that a similar controller could be used for a dynamic biped rollerblader. A biped rollerblading robot would need more degrees of freedom than available currently on the Rollerblader. Further, the problem of balancing the biped in addition to generating skating motion presents a challenging control problem. Gait generation for dynamic locomotion systems is still a hard problem. One of the more promising approaches to gait generation for systems with periodic inputs is the use of averaging theory. Averaging theory was recently applied to the control of dynamic locomotion systems like the snakeboard in [78]. Averaging theory uses a series expansion for mechanical system to formulate the averaged dynamics of the system over a gait cycle. The averaged system dynamics can then be linearized and used to calculate the desired gains for a discrete controller. In fact, the closed loop feedback control scheme used for the RoboTrikke has the flavor of averaging control theory. Averaging control could be applied to systems like the Rollerblader after extending it to handle impacts. The difficulty in analyzing and generating meaningful results for such complex dynamic systems indicates that it may be possible to use randomized methods to generate gaits. Rapidly exploring Random Trees (RRTs) have been used for generating open-loop trajectories for nonlinear systems [45, 16]. RRTs can be computationally intensive to calculate but may provide solutions in cases where other methods of generating gaits fail.
178
Appendix A Derivation of Noethers Theorem In this appendix, we will look at the form of the terms on the R.H.S of Eq. 5.24. For the sake of simplicity, we will drop the superscript q for all the terms involved in this derivation. We start by differentiating ξQ . " d d !d ξQ = Φexp(sξ)q dt dt ds s=0 $ % " d d! = Φexp(sξ)q ds dt s=0 $ % " " dξ ! ∂! dq d ∂ + = Φexp(sξ)q Φexp(sξ) q ds ∂q dt ∂ξ dt The first term in the above equation is given by: ! " dq " dq d ∂! d Φexp(sξ)q = Tq Φexp(sξ) q ds ∂q dt ds dt s=0
(A.1)
s=0
.
s=0
We now restrict the problem to g = SE(2). Let ξ = ωA1 + v1 A2 + v2 A3 where (A1 , A2 , A3) represents a basis for se(2) given 0 −1 0 0 0 A1 = 1 0 0 , A2 = 0 0 0 0 0 0 0 179
by: 1
0 0 0
= , A 0 3 0 0 1 . 0 0 0 0
Using the exponential formula that takes elements in se(2) to elements in SE(2), we write the element in SE(2) corresponding to ξ in vector form as
exp(sξ) =
v2 v2 v1 v1 sin ωs + cos(ωs − 1), sin ωs + (1 − cos ωs), ωs . ω ω ω ω
Let q = (x, y, θ, r) where r denotes the shape variables. Then,
Φexp(sξ) q = (x cos ωs − y sin ωs + b1 , x sin ωs + y cos ωs + b2 , θ + ωs, r)
where,
v1 sin ωs + ω v2 sin ωs + b2 = ω b1 =
v2 (cos ωs − 1) ω v1 (1 − cos ωs) ω
Thus, cos ωs − sin ωs sin ωs cos ωs " ! 0 0 Tq Φexp(sξ) q = 0 0 . . . . . . . . . . . . 0 0 180
0 0 ... 0
0 0 . . . 0 1 0 . . . 0 0 1 . . . 0 . . . . . . . . . 0 0 ... 1
Now,
! " dq d Tq Φexp(sξ) q ds dt
s=0
0 −ω 0 0 . . . 0
ω 0 0 0 = 0 0 . . . . . 0 0 −ω y˙ ω x˙ 0 = 0 ... 0
0 0 ... 0 0 ... 0 0 ... ........ 0 0 ...
0 0 dq 0 dt . . 0
(which is just ω × q). ˙ Thus, the first term essentially represents the term obtained when differentiating quantities in moving reference frames. We now simplify the second term in A.1: ! " d ∂ dξ Φexp(sξ)q ds ∂ξ dt
.
s=0
Now, " ∂! ∂ Φexp(sξ)q = x cos ωs − y sin ωs + b1 , x sin ωs + y cos ωs + b2 , θ + ωs, r ∂ξ ∂ξ (cos ωs−1) sin ωs L13 0 ω ω 1−cos ωs sin ωs ω L23 0 ω = 0 0 s 0 0 0 0 0 where, L13 = −
v2 v2 v1 v1 sin ωs + s cos ωs − s sin ωs − 2 (cos ωs − 1) 2 ω ω ω ω − sx sin ωs − sy cos ωs, 181
L23 =
v2 v2 v1 v1 s cos ωs − 2 sin ωs − 2 (1 − cos ωs) + s sin ωs ω ω ω ω + xs cos ωs − ys sin ωs.
Thus, " ! dξ d ∂ Φexp(sξ) q ds ∂ξ dt
s=0
0 −y 0 1 x 0 dξ 0 1 0 dt 0 0 0 dξ . =Te Rg dt 1 0 = 0 0
But, we know that the infinitesimal generator corresponding to dξ dξ . = Te Rg dt dt Q
Thus,
" dξ d ∂! Φexp(sξ) q ds ∂ξ dt
s=0
182
=
dξ dt
. Q
dξ dt
is given by
Appendix B Model parameters
Parameter Description w Wheel base t Trail α Steering tilt Rear wheel(RW) Rrw Radius mrw Mass Irw Moment of inertia about Y axis Rear frame (RF) (xrf, yrf, zrf) Position center of mass mrf Mass (Iyy , Izz ) Mass moment of inertia Front frame (FF) (xf f, yf f, zf f) Position center of mass mf f Mass (Ixx , Iyy , Izz ) Moment of inertia Front wheel (FW) Rf w Radius mf f Mass (Ixx , Iyy , Izz ) Moments of inertia
Value 0.26 m 0.03 m 72deg 0.03 m 0.1 kg 0.012kgm2
(0.12, 0, 0.08) m 0.5 kg (0.12, 0.12)kgm2 (0.28, 0, 0.07) m 0.15 kg (0.06, 0.06, 0.012)kgm2 0.03 m 0.1 kg (0.006, 0.012, 0.006)kgm2
Table B.1: RoboTrikke Model parameters.
183
Parameter Description w Wheel base t Trail α Head Angle Rear wheel(RW) Rrw Radius mrw Mass
Value 1.02 m 0.08 m arctan(3) 0.3 m 2 kg 0.06 0 0 0 0.12 0 kgm2 0 0 0.06
Irw
Mass moments of inertia Rear frame (RF) (xrf, yrf, zrf) Position center of (0.3, 0, 0.5) m mass mrf Mass 15 kg 9.2 0 −2.4 11 0 kgm2 Irf Mass moments of iner- 0 tia −2.4 0 2.8 Front frame (FF) (xf f, yf f, zf f) Position center of (0.9, 0, 0.7) m mass mf f Mass 4 kg 0.0546 0 −0.0162 kgm2 0 0.06 0 Irf Mass moments of iner- −0.0162 0 0.0114 tia Front wheel (FW) Rf w Radius 0.35 m mf f Mass 3 kg 0.14 0 0 If w Mass moments of iner- 0 0.28 0 kgm2 0 0 0.14 tia Rider (xri , yri, zri ) Position center of (0.3, 0, 1.2) m mass (xle , yle , zle ) Rider hinge position (0.3, 0, 0.7) m mri Mass 40 kg 20 0 0 Iri Mass moments of iner- 0 0 0 kgm2 0 0 0 tia Table B.2: Bike parameters. 184
Twist
ξ1 ξ2 ξ3 ξ4 ξ5 ξ6 ξ7 ξ8 ξ9 ξ10 ξ11 ξ12 ξ13
Twist Vector
Twist Variable (qi ) 1 01×5 xr [0, 1, 01×4 ] yr [01×5 , 1] θr [01×3 , −1, 01×2 ] φr [Rrw , 01×3 , −1, 0] ψr [Rrw , 01×3 , −1, 0] γ [0, (w + t) sin α, 0, δ cos(α), 0, − sin(α)] [1, 01×5 ] xf [0, 1, 0, 01×4 ] yf [01×5 , 1] θf [01×3 , −1, 01×2 ] φf [Rf w , 01×3 , −1, 0] ψf [0, −yle , 0, −1, 01×2 ] ρ
Description
translation along X. translation along Y . orientation of rear wheel. roll angle of rear wheel. rotation of rear wheel. pitch angle of rear frame. Steering angle. translation along X. translation along Y . orientation of front wheel. roll angle of front wheel. rotation of front wheel. lean of rider.
Table B.3: Twist coordinates for a bicycle.
185
Bibliography [1] R. Altendorfer, E. Z. Moore, H. Komsuoglu, M. Buehler, H. B. B. Jr., D. McMordie, U. Saranli, R. Full, and D. E. Koditschek. Rhex: A biologically inspired hexapod runner. Autonomous Robots, 11:207–213, 2001. [2] M. Berkemeier and R. S. Fearing. Control of a two-link robot to achieve sliding and hopping gaits. In Proceedings of the 1992 IEEE International Conference on Robotics and Automation, pages 286–291, Nice, France, 1992. [3] A. M. Bloch, P. S. Krishnaprasad, J. E. Marsden, and R. M. Murray. Nonholonomic mechanical systems with symmetry. Archive for Rational Mechanics and Analysis, 136(1):21–99, 1996. [4] W. M. Boothby. An Introduction to Differentiable Manifolds and Riemannian Geometry. Academic Press, 1986. [5] S. A. Bortoff. Pseudolinearization Using Spline Functions with Application to the Acrobot. PhD thesis, University of Illinois at Urbana-Champaign, UrbanaChampaign, 1992. [6] S. A. Bortoff and M. W. Spong. Observer-based pseudo-linearization using splines: The rolling acrobot example. In ASME Winter Annual Meeting, Anaheim, CA, 1992. [7] R. W. Brockett. On the rectification of vibratory motion. Sensors and Actuators, 20, no. 1-2:91–96, 1989. 186
[8] F. Bullo. Averaging and vibrational control of mechanical systems. SIAM Journal of Control and Optimization, 41(2):542–62, 2002. [9] F. Bullo and K. M. Lynch. Kinematic controllability for decoupled trajectory planning in underactuated mechanical systems. IEEE Transactions on Robotics and Automation, 17(4):402–412, 2001. [10] F. Bullo and K. M. Lynch. Kinematic controllability and motion planning for the snakeboard. IEEE Transactions on Robotics and Automation, 19(3):494– 498, June 2002. [11] F. Bullo and M. Zefran. On modeling and locomotion of hybrid mechanical systems with impacts. In Proceedings of the 37th IEEE Conference on Decision and Control, volume 3, pages 2633–2638, Tampa, Florida, December 1998. [12] F. Bullo and M. Zefran. Modeling and controllability for a class of hybrid mechanical systems. IEEE Transactions on Robotics and Automation, 18(4):563– 573, August 2002. [13] A. Castano, W. M. Shen, and P. Will. CONRO: Towards deployable robots with inter-robot metamorphic capabilities. Autonomous Robots Journal, 8(3):309– 324, July 2000. [14] I. M. Chen and J. Burdick. Enumerating the non-isomorphic assembly configurations of a modular robotic system. International Journal of Robotics Research, 17(7):702–719, 1996. [15] I. M. Chen and G. Yang. Automatic generation of dynamics for modular robots with hybrid geometry. In Proceedings of the IEEE International Conference on Robotics and Automation, pages 2288–93, Albuquerque, New Mexico, April 1997. 187
[16] P. Cheng, Z. Shen, and S. M. LaValle. RRT-based trajectory design for autonomous automobiles and spacecraft.
Archives of Control Sciences, 11(3-
4):167–194, 2001. [17] G. S. Chirikjian, A. Pamecha, and I. Ebert-Uphoff. Evaluating efficiency of self-reconfiguration in a class of modular robots. Journal of Robotic Systems, 13(5):317–338, May 1996. [18] S. Chitta, P. Cheng, E. Frazzoli, and V. Kumar. Robotrikke: A novel undulatory locomotion system. To appear in 2005 IEEE Intl. Conf. on Robotics and Automation, Barcelona, Spain. [19] S. Chitta, F. Heger, and V. Kumar. Design, analysis, simulation and experimental results for a rollerblading robot. In The 2004 ASME Design Engineering Technical Conference, Salt Lake City, September 2004. [20] S. Chitta, F. Heger, and V. Kumar. Design and gait control of a rollerblading robot. In Proc. IEEE Intl. Conf. on Robotics and Automation, New Orleans, April 2004. [21] S. Chitta and V. Kumar. Biking without pedaling. in preparation. [22] S. Chitta and V. Kumar.
Dynamics and generation of gaits for a planar
rollerblader. In Proc. IEEE Intl. Conf. on Intelligent Robots and Systems, Las Vegas, October 2003. [23] S. Chitta and J. Ostrowski. Technical report # MS-CIS-01-08 : Enumeration and motion planning for modular mobile robots. Technical report, Department of Computer and Information Science, University of Pennsylvania., 2001. [24] S. Chitta and J. P. Ostrowski. New insights into quasi-static and dynamic omnidirectional quadruped walking. In Proc. IEEE Intl. Conf. on Intelligent Robots and System, Maui, October 2001. 188
[25] S. Chitta and J. P. Ostrowski. Motion planning for heterogeneous modular mobile systems. In Proc. IEEE Intl. Conf. on Robotics and Automation, Washington, D.C., May 2002. [26] J. P. Desai and V. Kumar. Motion planning for cooperating mobile manipulators. Journal of Robotic Systems, 10:557–579, October 1999. [27] G. Endo and S. Hirose. Study on Roller-Walker : System integration and basic experiments. In Proc. IEEE Int. Conf. Robotics and Automation, pages 2032– 2037, Detroit, 1999. [28] G. Endo and S. Hirose. Study on Roller-Walker : Multi-mode steering control and self-contained locomotion. In Proc. IEEE Int. Conf. Robotics and Automation, pages 2808–2814, San Francisco, April 2000. [29] E. Frazzoli, M. A. Dahleh, and E. Feron. A hybrid control architecture for aggressive maneuvering of autonomous helicopters. In Proceedings of the IEEE Conference on Decision and Control, pages 2471–2476, Phoenix, AZ, December 1999. [30] N. H. Getz and J. E. Marsden. Control for an autonomous bicycle. In IEEE International Conference on Robotics and Automation, Nagoya, Japan, May 1995. [31] B. Goodwine and J. Burdick. Trajectory generation for legged robotic systems. In Proc. IEEE Int. Conf. Robotics and Automation, Albuquerque, New Mexico, April 1997. [32] R. S. Hand. Comparisons and stability analysis of linearized equations of motion for a basic bicycle model. Master’s thesis, Cornell University, May 1988. 189
[33] S. Hirose and A. Morishima. Design and control of a mobile robot with an articulated body. The International Journal of Robotics Research, 9(2):99–114, 1990. [34] S. Hirose and Peter Cave (Translated by) and Charles Goulden (Translated by). Biologically Inspired Robots : Serpentile Locomotors and Manipulators. Oxford University Press, July 1993. [35] S. Hirose and H. Takeuchi. Study on Roller-Walker (Basic Characteristics and its Control). In Proc. IEEE Int. Conf. Robotics and Automation, pages 3265– 3270, Minneapolis, 1996. [36] A. Kamimura, S. Murata, E. Yoshida, H. Kurokawa, K. Tomita, and S. Kokaji. Self-reconfigurable modular robot - experiments on reconfiguration and locomotion. In Proceedings of 2001 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS200), pages 606–612, Maui, Hawaii, October 2001. [37] T. R. Kane. Fundamental kinematic relationships for single-track vehicles. International Journal for Mechanical Sciences, 17:499–504, 1975. [38] S. Kobayashi and K. Nomizu. Foundations of Differential Geometry. WileyInterscience, 1963. [39] J. J. D. Koning, R. Thomas, M. Berger, G. D. Groot, and G. J. van Ingen Schenau. The start in speed skating: From running to gliding. Medicine and Science in Sports and Exercise, 27(12):1703–1708, 1995. [40] W.-S. Koon and J. E. Marsden. Optimal control for holonomic and nonholonomic mechanical systems with symmetry and Lagrangian reduction. SIAM Journal of Control and Optimization, 35(3):901–929, May 1997. 190
[41] K. Kotay, D. Rus, M. Vona, and C. McGray. The self-reconfiguring robotic molecule : Design and control algorithms. In P. Agarwal, L. Kavraki, M. Mason, and A. Peters, editors, Workshop on Algorithmic Foundations of Robotics (WAFR) ’98, Houston, Texas, March 1998. [42] P. S. Krishnaprasad and D. P. Tsakiris. G-snakes: Nonholonomic kinematic chains on Lie groups. In Proc. 33rd IEEE Conf. on Decision and Control, Buena Vista, FL, 1994. [43] P. S. Krishnaprasad and D. P. Tsakiris. Oscillations, SE(2)-Snakes and Motion Control: A Study of the Roller Racer. Technical report, Center for Dynamics and Control of Smart Structures (CDCSS), University of Maryland, College Park, 1998. [44] G. Lafferriere and H. Sussmann. Motion planning for controllable systems without drift. In Proc. IEEE Int. Conf. Robotics and Automation, Sacramento, CA, April 1991. [45] S. M. LaValle and J. J. Kuffner. Randomized kinodynamic planning. International Journal of Robotics Research, 20(5):378–400, May 2001. [46] A. D. Lewis. Aspects of Geometric Mechanics and Control of Mechanical Systems. PhD thesis, California Institute of Technology, Pasadena, CA, April 1995. [47] G. W. Marino. Kinematics of ice skating at different velocities. Research Quarterly, 48(1):93–97, 1980. [48] G. W. Marino and R. G. Weese. A kinematic analysis of the ice skating stride. In Terauds J, Gros HJ, eds. Science in skiing, skating and hockey. Proceedings of the International Symposium of Biomechanics in Sports, pages 65–74, Del Mar, CA: Academic Publishers, 1979. 191
[49] K. A. McIsaac and J. P. Ostrowski. Motion planning for dynamic eel-like robots. In Proc. IEEE Int. Conf. on Robotics and Automation, San Francisco, April 2000. [50] K. A. McIsaac and J. P. Ostrowski. A framework for steering dynamic robotic locomotion systems. International Journal of Robotics Research, 22(2):83–98, 2003. [51] S. Murata, H. Kurokawa, and S. Kokaji. Self-assembling machine. In Proc. IEEE Int. Conf. on Robotics and Automation, San Diego, California, May 1994. [52] S. Murata, H. Kurokawa, E. Yoshida, K. Tomita, and S. Kokaji. A 3-d selfreconfigurable structure. In Proc. IEEE Int. Conf. on Robotics and Automation, Belgium, May 1998. [53] S. Murata, E. Yoshida, K. Tomita, H. Kurokawa, A. Kamimura, and S. Kokaji. Hardware design of modular robotic system. In Proc. IEEE/RSJ Int. Conf. on Intelligent Robots and Systems, Takamatsu, Japan, October 2000. [54] R. M. Murray and J. Hauser. A case study in approximate linearization: The acrobot example. In Proceedings of the American Control Conference, 1992. [55] R. M. Murray, Z. Li, and S. S. Sastry. A Mathematical Introduction to Robotic Manipulation. CRC, 1993. [56] J. I. Ne˘imark and N. A. Fufaev. Dynamics of Nonholonomic Systems. A. M. S., Providence, RI, 1972. Translated from the Russian edition, Nauka, Moscow, 1967. [57] H. Nijmeijer and A. J. van der Schaft. Nonlinear Dynamic Control Systems. Springer-Verlag, New York, 1990. 192
[58] J. Ostrowski and J. Burdick. Controllability tests for mechanical systems with symmetries and constraints. J. Applied Mathematics and Computer Science, 7(2):305–331, 1997. [59] J. P. Ostrowski. The Mechanics and Control of Undulatory Robotic Locomotion. PhD thesis, California Institute of Technology, Pasadena, CA, 1995. [60] J. P. Ostrowski, J. P. Desai, and V. Kumar. Optimal gait selection for nonholonomic locomotion systems. The International Journal of Robotics Research, 19(3):1–13, March 2000. [61] J. M. Papadopoulos. Bicycle steering dynamics and self-stability: a summary report on work in progress. Technical report, Cornell Bicycle Research Project, 1987. available at http://tam.cornell.edu/~ruina/hplab/bicycles.html. [62] C. J. J. Paredis, H. B. Brown, and P. K. Khosla. A rapidly deployable manipulator system. In Proc. IEEE Int. Conf. Robotics and Automation, Minneapolis, MN, April 1996. [63] W. J. M. Rankine. On the dynamical principles of the motion of velocipedes. The Engineer, 28, 1869. [64] D. Rus and M. Vona. Self-reconfiguration planning with compressible unit modules. In Proceedings of the IEEE International Conference on Robotics and Automation, Detroit, 1999. [65] S. Sastry. Nonlinear Systems: Analysis, Stability and Control. Springer, 1999. [66] A. L. Schwab, J. P. Meijaard, and J. M. Papadopoulos. Benchmark results on the linearized equations of motion of an uncontrolled bicycle. In Proceedings of the Asian Conference on Multibody Dynamics, Seoul, Korea, August 2004. [67] R. S. Sharp. The stability and control of motorcycles. Journal of Mechanical Engineering Science, 13(5):316–329, 1971. 193
[68] M. W. Spong. Swing up control of the acrobot. In 1994 IEEE International Conference on Robotics and Automation, pages 2356–2361, San Diego, CA, May 1994. [69] M. W. Spong. Swing up control of the Acrobot using partial feedback linearization. In Proceedings of the SYROCO’ 94, Capri, September 1994. [70] M. W. Spong. The swingup control problem for the Acrobot. IEEE Control Systems Magazine, 15(1):49–55, February 1995. [71] K. Støy, W. M. Shen, and P. Will. Global locomotion from local interaction in self-reconfigurable robots. In Proceedings of the 7th international conference on intelligent autonomous systems (IAS-7), Marina del Rey, California, March 25-27 2002. [72] S. Suryanarayanan, M. Tomizuka, and M. Weaver. System dynamics and control of bicycles at high speeds. In Proceedings of the American Control Conference, Anchorage, 2002. [73] H. J. Sussman. A general theorem on local controllability. SIAM Journal on Control and Optimization, 25(1):158–194, January 1987. [74] P. Tabuada, G. J. Pappas, and P. Lima. Feasible formations of multi-agent systems. In Proc. of 2001 American Control Conference, Arlington,VA, June 2001. [75] S. Timoshenko and D. H. Young. Advanced Dynamics. McGraw-Hill Book Company, New York, 1948. ¨ [76] C. Unsal, H. K´ yl´ yc¸¸c¨ote, and P. K. Khosla.
ICES-cubes: A modular self-
reconfigurable bipartite robotic system. In Proceedings of SPIE, Sensor Fusion and Decentralized Control in Robotic Systems II, pages 258–269, 1999. 194
[77] P. Vela and J. W. Burdick. Control of biomimetic locomotion via averaging theory. In Proceedings of the IEEE International Conference on Robotics and Automation, Taiwan, September 2003. [78] P. A. Vela. Averaging and Control of Nonlinear Systems (with Application to Biomimetic Locomotion). PhD thesis, California Institute of Technology, Pasadena, CA, 2003. [79] D. H. Weir. Motorcycle Handling Dynamics and Rider Control and the Effect of Design Configuration on Response and Performance. PhD thesis, University of California, LA, 1972. [80] F. J. W. Whipple. The stability of the motion of a bicycle. The Quarterly Journal of Pure and Applied Mathematics, 30:312–348, 1899. [81] M. Yim. Locomotion with a Unit-Modular Reconfigurable Robot. PhD thesis, Stanford University, Palo Alto, CA, December 1994. [82] M. Yim, D. Duff, and K. Roufas. Polybot: a modular reconfigurable robot. In Proc. of the IEEE International Conference on Robotics and Automation, San Francisco, April 2000. [83] E. Yoshida, S. Murata, A. Kamimura, K. Tomita, H. Kurokawa, and S. Kokaji. A motion planning method for a self-reconfigurable modular robot. In Proc. of the 2001 IEEE/RSJ Int. Conf. on Intelligent Robots and Systems, Maui, Hawaii, 2001.
195