This action might not be possible to undo. Are you sure you want to continue?

Welcome to Scribd! Start your free trial and access books, documents and more.Find out more

1. 1.1 1.2 1.3 1.4 1.5 LITERATURE REVIEW AND PAST WORKS ......................................................................... 10 FISH SWIMMING MODES: ............................................................................................ 10 LIGHTHILL’S WORKS: .................................................................................................... 10 SIMPLIFIED PROPULSIVE MODEL FOR CARANGIFORM PROPULSION: ........................ 11 GRAY’S PARADOX: ........................................................................................................ 14 PAST PROJECTS: ........................................................................................................... 14 ROBOTUNA I, II AND CHARLIE I (MIT): .................................................................. 14 ROBOPIKE (MIT) 1998: .......................................................................................... 15 PPF-04 (NMRI): ..................................................................................................... 16 ROBOTIC FISH SPC-03 BUAA-CASIA (CHINA): ....................................................... 16 ROBOTIC EEL - ROBEA PROJECT CNRS (FRANCE): ................................................. 17 BOXYBOT BIRG-EPFL (SUISS): ................................................................................ 18 ESSEX ROBOTIC FISH (GREAT BRITAIN): ............................................................... 18 ROBOTIC KOI - RYOMEI ENGINEERING – JAPAN:.................................................. 19 JESSIKO - ROBOTSWIM - FRANCE: ........................................................................ 19 ROBOFISH - UNIVERSITY OF WASHINGTON - U.S.A.: ............................................ 20 STINGRAY – KNIFEFISH – NANYANG UNIVERSITY – SINGAPORE:.......................... 20 TAI-ROBOT-KUN - UNIVERSITY OF KITAKYUSHU - JAPAN:..................................... 21 POLYMER ACTUATED (PPy) ROBOTIC FISH: ........................................................... 21 BIOMIMETIC CONTROLLED CURVATURE ROBOTIC PECTORAL FIN: ...................... 22

1.5.1 1.5.2 1.5.3 1.5.4 1.5.5 1.5.6 1.5.7 1.5.8 1.5.9 1.5.10 1.5.11 1.5.12 1.5.13 1.5.14 2. 2.1 2.2

SYSTEM MODELLING ........................................................................................................ 23 MODELLING TECHNIQUES: ........................................................................................... 23 LAGRANGIAN MODELLING: .......................................................................................... 24 DENAVIT HARTENBERG NOTATION: ..................................................................... 24 REFERENCE FRAMES: ............................................................................................ 25 MATRICES AND VECTORS: .................................................................................... 25 EQUATIONS OF MOTION: ..................................................................................... 27 ROBOFISH AND HEAD 3D CONFIGURATION: ........................................................ 28 KINETIC AND POTENTIAL ENERGIES: .................................................................... 29

2.2.1 2.2.2 2.2.3 2.2.4 2.2.5 2.2.6 2.3

HYDRODYNAMIC MODELLING: .................................................................................... 35

i

2.3.1 2.3.2 2.3.3 2.3.4 2.3.5 2.3.6 2.3.7 2.3.8 3. 3.1 3.2 3.3

ASSUMPTIONS: ..................................................................................................... 36 HYDRODYNAMIC FORCES APPROXIMATION: ....................................................... 37 PRESSURE ON LINKS: ............................................................................................ 37 APPROACH STREAM PRESSURE: ........................................................................... 38 FRICTION DRAG:.................................................................................................... 38 PRESSURE ON PECTORAL FINS:............................................................................. 38 COMPOSITION OF HYDRODYNAMIC FORCES: ...................................................... 39 LIMITATIONS: ......................................................................................................... 39

MECHANICAL DESIGN: ..................................................................................................... 40 DIFFICULTIES IN BIOMIMETIC ROBOFISH DESIGN: ...................................................... 40 ASSUMPTIONS: ............................................................................................................ 41 SOLIDWORKS MODEL:.................................................................................................. 42 HEAD DESIGN: ....................................................................................................... 42 LINK I DESIGN: ....................................................................................................... 43 LINK II-III DESIGN: ................................................................................................. 43 CAUDAL FIN DESIGN: ............................................................................................ 43 PECTORAL FIN DESIGN: ......................................................................................... 43

3.3.1 3.3.2 3.3.3 3.3.4 3.3.5 3.4 3.5 3.6 3.6.1 3.6.2 3.6.3 3.6.4 3.6.5 3.6.6 3.6.7 3.7

CUSTOM VISUALIZATION: ............................................................................................ 44 DESIGN PARAMETERS: ................................................................................................. 45 SOLIDWORKS TO SIMMECHANICS: .............................................................................. 48 ADVANTAGES OF USING SIMMECHANICS: .............................................................. 48 EXPORTING CAD ASSEMBLIES INTO SIMMECHANICS: ............................................. 49 REQUIREMENTS FOR CAD EXPORT AND MECHANICAL IMPORT: ............................ 49 IMPORTING THE XML AND GENERATING A MODEL: ............................................... 51 INTRODUCING ACTUATORS AND SENSORS TO PHYSICAL MODEL: ......................... 52 SIMULATING THE SIMMECHANICS MODEL: ......................................................... 54 ACTIVATING AND CONTROLLING ANIMATION RECORDING: ............................... 54

SOLIDWORKS TO VIRTUALREALITY TOOLBOX: ............................................................ 56 VISUALIZING WITH A VIRTUAL REALITY CLIENT: .................................................. 56 REPRESENTING BODIES AS VIRTUAL OBJECTS: ..................................................... 56 ISSUE WITH WRL FILE IMPORT: ............................................................................ 58 INTERFACING SIMMECHANICS MODELS WITH VIRTUAL WORLDS: ..................... 58

3.7.1 3.7.2 3.7.3 3.7.4

ii

3.7.5 3.7.6 4. 4.1

ANIMATING THE VIRTUAL WORLD BODIES: ......................................................... 59 CONVERTING BODY SENSOR SIGNALS INTO VRML FORMAT: .............................. 60

SIMULATION AND RESULTS ............................................................................................. 63 SPEED CONTROL: .......................................................................................................... 63 SPEED CONTROL BASED ON OSCILLATING FREQUENCY: ...................................... 63 SPEED CONTROL BASED ON OSCILLATORY AMPLITUDE: ...................................... 64 COMPUTED TORQUE CONTROL METHOD:........................................................... 64

4.1.1 4.1.2 4.1.3 5. 5.1 5.2 5.3

FUTURE WORKS AND THINGS TO EXPLORE: .................................................................... 66 OPEN AREAS OF RESEARCH: ......................................................................................... 66 CENTRAL PATTERN GENERATOR (CPG): ....................................................................... 67 CONCLUSION: ............................................................................................................... 67

APPENDIX A: MATLAB CODES .................................................................................................. 68 APPENDIX B: SYSTEM EQUATIONS AND MATRICES................................................................. 77 APPENDIX C: REFERENCES ....................................................................................................... 88

iii

....................16 RoboFish developed by University of Washington U........................................................8 RoboPike (MIT) 1998 swimming in the MIT Towing Tank (on the left) and internal wooden structure of the links with ribs (on the right)... Link based body wave fitting........15 Jessiko V4 Robotic Fish developed in France by RobotSwim ................ 20 Fig 1......... General Carangiform Swimming Motion................... ................. 11 Fig 1.............. Shaded areas contribute to thrust generation........ 13 Fig 1............................. 15 Fig 1........LIST OF FIGURES Fig 1.... .................3.. 17 Fig 1............................7 RoboPike (MIT) 1998 [12] concept gets its birth in the design board.............................. Japan ................... 15 Fig 1....................... pulley and ball bearing mechanisms and b) Improved Rib Cage design for RoboTuna II (MIT) for reduced drag and friction..... .A with only tail joints..... 12 Fig 1.....13 a) Essex G8 Robotic Fish diving mode in water b) internal structure of the fish......................................9 PPF-04 Uni-link robot fish design by NMRI............ ...... 20 Fig 1.................... a BCF swimming mode with 2 links....... 19 Fig 1............6 a) RoboTuna II built in MIT 1994 with lever............. servo locations and water proofing .2.......................................................................................................................S................................................. 16 Fig 1. ........................... ....... b) KnifeFish developed in NTU....... LightHill equation and Tail Phase relationship.................... ...............EPFL (Suiss) ......... 21 iv ........12 BoxyBot Fish developed in BIRG .....................................................4.........14 Carp Koi Robotic Fish by Ryomei Engineering ..................................... 18 Fig 1.............18 Tai Robot Kun Robotic Fish with unique exoskeleton design designed in University of Kitakyushu...............10 Robotic Fish Chinois SPC-03 developed in BUAA-CASIA China for underwater exploration .................... 19 Fig 1.1...................... Physical Model of Carangiform Swimming showing the undulation motion in 2/3rd part of posterior body...... Different swimming modes of natural fish locomotion a) BCF (Body Caudal Fin) and b) MPF (Median Pectoral Fin)............................................................ Singapore using undulating fin mechanism and c) Arowana Robot... Notice that a 4-link mechanism is used as the model of body wave fitting................... 13 Fig 1....... 16 Fig 1............. 17 Fig 1..........................11 Robotic Eel Angulliform Fish (Robea Project) developed in CNRS France .................................17 a) StingRay....... 18 Fig 1................................................ Japan ..Japan.....

........................................... and f) Caudal Fin Assembly with motor coupling .......... Coordinate system used in thesis is also shown .................................7 Importing a Physical Modelling XML file into a model................. 50 Fig 3.........................10 SimMechanics animation of the physical model as Ellipsoids .............5 Successful translation of CAD Assembly to Physical Modelling XML file from SolidWorks......... 50 Fig 3..................................... c) Link 2..... b) Link 1 with HS 5085MG motor and motor couplings..................11 SimMechanics animation of the physical model as External Animation File (STL) ................. and top design views of fin system Servos push the ‘push rods’ to controllably bend the ribs (Left) and Rib bending curvature and tip deflection analysis and Rib FEA analysis to design for rib damage prevention (Right) .......................... 46 Fig 3............. 50 Fig 3.... ................................ 22 Fig 2................. 51 Fig 3.................................................................. e) Left Pectoral Fin Assembly with pectoral shaft and holder.....................8 Import Physical Modelling dialog box option to load the XML model............. 𝛼𝑖.......1 DH parameters a 𝑎𝑖...2.............12 Virtual Reality Export settings from SolidWorks ........ frontal........ ... 21 Fig 1.................................. 57 v .......................... 52 Fig 3..................1 SolidWorks Model of the Carangiform Fish (BCF Swimming Motion) .19 Polymer Actuated Robotic Fish propelled by Conducting Polymer Trilayer Polypyrrole (PPy).................... ............20 Isometric..........................2 Individual Assemblies of a) Head with HS 485HB Motor.......... d) Right Pectoral Fin Assembly with pectoral shaft and holder..................................... 53 Fig 3...................3 Forces acting on a swimming fish with velocity U....... 55 Fig 3......................... coaxial holder..........3 Individual Parts designed in SolidWorks which are assembled in the different assemblies shown in Fig 3............. 36 Fig 3......13........ 𝜃𝑖 defined for joint i and link (i) . 47 Fig 3...........................Fig 1............................. 44 Fig 3...... 28 Fig 2............9 SimMechanics Subsystem of the imported Physical Model with Actuators and Sensors .........b) VR World created in VR Realm Builder with transforms for each link ............2 Multi-link Robotic Fish Configuration with system parameters and joint variables ................... 55 Fig 3.. ...............6 Complete translation of CAD Assembly into Visualizable model ........4 Exporting CAD Model from SolidWorks into a SimMechanics XML file ..... 24 Fig 2....................... 𝑑𝑖............................................. 56 Fig 3.............................................. ... batteries and HS 5085MG Motors......................

.............................................3 Functional Block Diagram of the RoboFish Control System using the control method shown in Fig 4................................. 57 Fig 3.............2...................................14..............................17 Subsystem connecting Body Sensor block from SimMechanics system to VR Block ...... velocities and accelerations generated using the Trajectory Generator.............................................. 62 Fig 3........Fig 3................a) VR World imported into VR Realm Builder from SolidWorks for each link ..................................................... ..............b) VR World created in VR Realm Builder with transforms for each link with inlined url files .z) and Rotation Matrix [3x3] are enabled to measure the rotation parameters............................. 65 vi ...............13........2 General Block Diagram of the Computed Torque Control Method using the desired joint angles.....1 Simulink block diagram of the whole system with SimMechanics and VR subsystems....19 Virtual Reality Simulation in Simulink using VR Sink Block................... 57 Fig 3...........15 Body Sensor SimMechanics block added to the Links...........................16 VR Sink Block Parameters dialog box .. . 64 Fig 4............................. 59 Fig 3........... 60 Fig 3.................................. 64 Fig 4.............y........a) VR World created in VR Realm Builder from imported SolidWorks inlined wrl file ..... 63 Fig 4.............................4 Joint theta values obtained from the Open Loop SimMechanics System ........................................ Position (x...................... 61 Fig 3........................ 62 Fig 4.........................14............. ........ 57 Fig 3...................18 Virtual Reality Subsystem with VR Sink Block ........ ............

LIST OF TABLES Table 1. 44 Table 4. …………………………………………. 13 Table 2.1. Optimal Swimming Parameters derived by Barett [5] …………………………………………. 64 vii .1 Denavit-Hartenberg Parameters for the 4 Link RoboFish with 2 identical Pectoral Fins considering the head is fixed.………………………………………………….1 Custom Visualization of the designed Solidworks Model ……………………………………… 43 Table 3.1 Optimal values of Oscillating Frequency and Oscillating Amplitude of each of the links and pectoral fins …………………………………………………………………………………………………………..2 Design Specifications of the Solidworks Model ……………………………………………………. 24 Table 3.

viii .

rajiform. which employ their fin(s) and/or body to produce propulsive and manoeuvring force. and water absorption capability are those important criteria for selection. and marine environmental protection. Proper material selection is inevitable in the design of the flexible membrane. Fish exhibits a variety of swimming movements.ABSTRACT Underwater robots are widely used in the fields of ocean development. The need for higher efficiency and improved propulsion mechanism for underwater robots essentially requires fish-like movement. ocean investigation. ix . Material density. The material is required to have a density near that of water so that no or little work is done to lift and orientate the membrane. subcarangiform. which might suit biomimetic underwater robot application using undulatory fins as main thrust-generator. strength. One of the main objectives of the AUV’s (Autonomous Underwater Vehicle) research is intended to investigate various swimming modes: anguilliform. The design of energy efficient biomimetic fish like propulsion system is desirable. and gymnotiform. Investigation on the manoeuvrability and control aspect of a multi mode biomimetic fish robot with modular mechanical fin and undulating fins are required. amiiform. The scope of this project is to focus mainly on the biomimetic design of multi mode robotic fish and flexible fins with a specially designed modular fin mechanism.

Consider the fish: highly manoeuvrable and an effortless swimmer. These problems lead to short mission times. it is helpful for us to be conscious of fish’s classification and functions [1].1 FISH SWIMMING MODES: In the past decades. and these attempts include multiscrew. Therefore. imaginative solutions from nature may serve as the inspiration for new technologies. biology-inspired approaches are recently harder for practical applications.'s) for oceanographic observation. but they are expected to be comparatively effective and feasible.V. Certainly. as follows 10 . and enhanced manoeuvrability. It is well-known that Sir M. and so on. Existing A. and control problems.V. various fishes may possess different functions and provide distinct enlightenments. biology-inspired propulsor. both scientists and engineers have devoted themselves to overcome the drawbacks of the conventional vehicles. Hereinto. restricted payloads.CHAPTER 1 LITERATURE REVIEW AND PAST WORKS There is currently an increased interest in the use of long range/long duration Autonomous Undersea Vehicles (A.J. into two styles: BCF (body and/or caudal fin) and MPF (median and/or paired fin). low cost (fully autonomous vehicles have a significant probability of being lost). The space required for the batteries often approaches 70% of the hull volume. military surveillance and commercial search missions. According to P. As matters of energy economy and greater locomotion performance are desired in engineered systems. They are powered by small rotary propellers driven by electric motors.U.'s are relatively small vehicles for three reasons. in terms of propulsors. Webb [2]. 1. and safety (to minimize the danger to manned ships and installations). W. Lighthill considered many aspects of fluid mechanics. Among them. The propellers typically operate at fairly low efficiencies and suffer from serious lag times in transient response. ease of deployment (to allow operations from conventional ships). reduced detection. several rudders. BCF locomotion prevails in high speed and superb accelerating ability.U. It is obvious that the potential benefits from biological innovations can be applied to systems operating in water with a high speed.2 LIGHTHILL’S WORKS: James Lighthill Memorial Paper [3] bears only upon part of the many activities of Sir James Lighthill. aquatic locomotion can be classified. 1. while MPF locomotion has a great potential to achieve better manoeuvrability as well as higher efficiency than BCF locomotion. Several physicomechanical designs in fish evolution have recently inspired robotic devices for propulsion and manoeuvring purposes in underwater vehicles. this animal 160 million years in the making is superbly adapted to its watery environment. energy economy. namely upon the mathematical theory of the swimming of fish and cetaceans.

Besides his mathematical approach to fish locomotion Lighthill went. 1. It traverses at a speed greater than the forward speed. 𝑡 = 𝑐1 𝑥 + 𝑐2 𝑥 2 2𝜋 𝜆 sin 𝑘𝑥 + 𝜔𝑡 − − (1. 𝜔 is the body wave frequency 11 . 𝑦𝑏𝑜𝑑𝑦 𝑥. A typical swimming mode for carangiform has been presented by Barrett et al. Different swimming modes of natural fish locomotion a) BCF (Body Caudal Fin) and b) MPF (Median Pectoral Fin).1) where 𝑦𝑏𝑜𝑑𝑦 is the transverse displacement of body. 𝑐2 is the quadratic wave amplitude envelope. The propulsive wave behaves as lateral curvature in spine and musculature.1. which begins posterior of head and increases with amplitude as it moves posteriorly. Shaded areas contribute to thrust generation. 𝑐1 is the linear wave amplitude envelope. Fig 1. The spline curve starts from the fish's center of inertia to the caudal joint. [5] which are composed of two basic components.3 SIMPLIFIED PROPULSIVE MODEL FOR CARANGIFORM PROPULSION: It is common in literature [1+ that the passage of a wave underlies the fish’s propulsive structure. 𝑥 is the displacement along main axis. 𝑘 is the body wave number 𝑘 = . λ is the body wave length. the fish body represented by a planar spline curve and its lunate caudal tail by an oscillating foil. Along with Lighthill. which is assumed to take the form of a travelling wave originally suggested by Lighthill. Wu must also be mentioned as the author of a number of papers which contribute to the mathematical foundation of the subject. deeply into the biological background of the different phenomena that he investigated. as he says himself with the help of colleagues in zoology.from his collected papers which are covered by four volumes [4].

we assume that joints are actuated by servomotors). the travelling body wave is decomposed into two parts: the time independent spline curve sequence y_body (x. 𝑘.3) where 𝑖 is the variable of spline curve sequence. Clearly. 𝑐2 .e. y_body (x. 𝑀 is the body wave resolution that represents the discrete degree of the overall travelling wave. Physical Model of Carangiform Swimming showing the undulation motion in 2/3 part of posterior body.) for a desired swimming motion. 𝑐1 .(𝜔 = 2𝜋𝑓 = 2𝜋/𝑇) − − (1. 𝑦𝑏𝑜𝑑𝑦 𝑥. 𝑖 = 𝑐1 𝑥 + 𝑐2 𝑥 2 sin 𝑘𝑥 + 2𝜋 𝑖 𝑀 𝑓𝑜𝑟 𝑖 = 0. For simplicity.1. In other words.i)(i=0. which is restricted by the maximum oscillation frequency of servomotors (here. the task of the following analysis is to determine the proper body-wave constants (i.2) Fig 1. dimensions and shapes. for various species. oscillating frequency f is separated from the body wave function. it is a tough task to optimize the fish's swimming efficiency and manoeuvrability in general. there are different parameter sets. rd Once given this body-wave. a discrete planar spline curve is considered i. which is described by the Eqn (1.2. 12 . In literature [6].2…M-1) in an oscillation cycle. 𝜔 etc.t).e.3) and the time dependent oscillation frequency f [6]. Hence..1 … 𝑀 − 1 − − (1. a set of seven key parameters for the kinematic model of RoboTuna's swimming was captured and a genetic algorithm was used to guide the search for an optimal swimming efficiency.

This led to hydrodynamics getting a strong foothold in research on the swimming of fish. many other mathematically oriented articles using reactive theories followed.3. Fig 1. Link based body wave fitting.Fig 1. After Lighthill’s seminal paper ‘Note on the swimming of slender fish’ *8] and the fundamental paper of Wu ‘Swimming of a waving plate’ *9].1 below. The values are listed in the Table 1. 13 .4) David Barrett derived self-propelled optimal values for “RoboTuna” at MIT *5] for the kinematic variables in the above equations. LightHill equation and Tail Phase relationship. General Carangiform Swimming Motion. as it has been analyzed that most of the thrust is produced by it. Notice that a 4-link mechanism is used as the model of body wave fitting.4. The angular motion of the caudal fin has a special phase relationship with the body motion [7] described by 𝜃𝑡𝑎 𝑖𝑙 𝑡 = 𝜃0 sin 𝜔𝑡 + 𝜙 − − (1. The caudal fin motion is extremely important in fish propulsion.

II AND CHARLIE I (MIT): The RoboTuna project [11] was started in 1993 with the objective to develop a better system of propulsion for the autonomous underwater vehicles. Optimal Swimming Parameters derived by Barett [5] 1.002 Peak-to-Peak Amplitude of Caudal Fin Tip (Body Attack of Maximum Angle ofLengths) Caudal Fin Phase of Caudal Fin Motion with respect to Body Motion Propulsive Wavelength (Body Lengths) Coefficient of Linear Term Coefficient of Quadratic Term Table 1. It is a question of understanding how a fish can generate enough energy to reach such speeds. Variable U St 𝐴𝑇𝐼𝑃 α Ф λ 𝑐1 𝑐2 Description Swimming Speed (Body Lengths / Second) Strouhal Number: 𝑓𝐴𝑇𝐼𝑃 𝑈 Value 0. Gray estimated among other things the power needed for a dolphin of length 1·82 m to swim at a speed of 10·1 m/s. The envelope is made up of a fine and flexible layer of foam covered with Lycra to approach the flexibility and smoothness of the tuna skin. The tuna was selected as model for its speed (a blue fin tuna can go up to 74 km/h) and its accelerations. He found that the required power was possibly about seven times the estimated muscular power available for propulsion. This one includes 8 vertebrae and a system of cables which is used as tendons and muscles.156 0.00372 0.5. The paradox is.1.1.1 PAST PROJECTS: ROBOTUNA I.65 0.27 0. The propulsion power of the dolphin’. Gray in his article ‘Studies in animal locomotion VI.115 16. see for instance M. This yields the paradox which is considered by a large number of investigators. however. RoboTuna was suspended by a mast which is fixed 14 . This he did by calculating the dolphin’s resistance by means of a drag coefficient based on a turbulent boundary layer.4 GRAY’S PARADOX: There is a famous paradox formulated by J.2° 75 . rather difficult to tackle because of the lack of a common opinion among investigators on the influence of the swimming motion on the resistance of the body.J. Lighthill’s ‘Large-amplitude elongated-body theory of fish locomotion’ [10].5 1.95° 1. Some opinions are that the resistance of the swimming body can be increased by a factor of three with respect to the resistance of the body when it glides motionless through the water.

1. pulley and ball bearing mechanisms and b) Improved Rib Cage design for RoboTuna II (MIT) for reduced drag and friction. Thus. These tendon drives are the mechanical analogy of the biological fish's muscles. 15 . The major structural component of the robot fish is a segmented backbone made up from 8 discrete rigid vertebras which are driven through an elaborate system of pulleys and cable tendons by 6 brushless DC servo motors.6 a) RoboTuna II built in MIT 1994 with lever.7 RoboPike (MIT) 1998 [12] concept gets its birth in the design board.5.at a system which slides along the tank allowing it to rotate and pulled out of the water for robot maintenance and storage.2 ROBOPIKE (MIT) 1998: Fig 1. Fig 1. The mast is also used to pass the cables which connect the robot to the controllers. the controllers receive information from the sensors in entry and return instructions to RoboTuna.

9 PPF-04 Uni-link robot fish design by NMRI. Japan 1. etc. Wang Tianmiao (BUAA) and Tan Min (CASE). This robotic fish is intended for underwater archaeological exploration but the two persons in charge for the project. on the relation between the speed and the amplitude of the oscillations of the caudal fin. Fig 1.5. transport of small object. 1. very handy. and is controlled remotely by technicians. The study carried. inter alia.Fig 1. The PPF-04 is one small robotic fish of 19 cm and 400 g.8 RoboPike (MIT) 1998 swimming in the MIT Towing Tank (on the left) and internal wooden structure of the links with ribs (on the right). the capacities of fish to our boats and submarines.3 PPF-04 (NMRI): The NMRI (National Maritime Research Institute) developed many projects [13] of robotic fish (series PF and series PPF) with a view to apply. in the future.5. consider many other uses such as underwater photography. remote controlled. 16 .4 ROBOTIC FISH SPC-03 BUAA-CASIA (CHINA): The SPC-03 measures 1.23m length and is stable. cartography of the underwater flora and fauna.. Its size makes it possible to test it in a small tank (like a bath-tub). It can work 2 to 3 hours in immersion. at the maximum speed of 4 km/h.

Thus.ROBEA PROJECT CNRS (FRANCE): The objective of the ROBEA-Eel project [14] was to "design. the robot was tested in August 2004 on the site of a marooned warship. 1.10 Robotic Fish Chinois SPC-03 developed in BUAA-CASIA China for underwater exploration Result of several years of research. Certain fish as tuna have a mode of locomotion based on oscillations of the body. Laboratoire of automatic of Grenoble.. whereas the locomotion of anguilliform fish (eel. imitating the vertebrae of eel.m over 6 hours of immersion.11 Robotic Eel Angulliform Fish (Robea Project) developed in CNRS France 17 . LAG.5. Fig 1. study and produce a robotic eel able to swim in three dimensions". The prototype of project ROBEA [14] consists of a stacking of platforms of the kneecap type. It is the high number of internal degrees of freedom of this fish which enables it to thread in the most difficult places of access. speed) as well as stabilization in rolling of the robot.Fig 1. It took many photographs and transmitted to the surface. the swimming of eel presents remarkable performances in term of manoeuvrability..) is based on undulations of the body. set up the control systems of the movements of the eel (orientation.5 ROBOTIC EEL . lamprey. The robotic fish explored a surface of more than 4000 sq.

20sec). the pectoral fins are used for the propulsion and the caudal fin is used as rudder. Fig 1.1. like the labriform type and ostraciiform.6 BOXYBOT BIRG-EPFL (SUISS): Fig 1. In fish of the labriform type. They thus indexed the various behaviours in a library used by the computer to generate varied and unexpected trajectories of stroke. servo locations and water proofing Several models were designed. It can plunge.5.5. The speed depends on the amplitude and the frequency of the oscillations on the fins and also size and rigidity of those. 1.12 BoxyBot Fish developed in BIRG . Robotic Fish [16] (50 cm length) is able to curve its body according to a great angle in a much reduced time (approx 90°/0. behind. the BoxyBot project [15] aimed at the realization of an autonomous robot of various forms and those which uses the fins. BoxyBot is 25 cm long and can swim up to 0. swim ahead.37 m/s. The researchers continue to work on the improvement of the algorithms of training which make it 18 . These fish have a rigid body and a low speed but a great manoeuvrability thanks to their fins. turns.7 ESSEX ROBOTIC FISH (GREAT BRITAIN): A fish has various modes of displacement (speed. since G1 in 2003 until G8 [16] and G9 in 2005.EPFL (Suiss) Developed with the BIRG (Biologically Inspired Robotics Group). accelerations and braking) and the challenge of the researchers of Essex was to obtain an autonomous robot-fish G8 [16] which can reproduce all these behaviours and not in one or two instances but in a more or less uniform way. on the side and carry out gimlets.13 a) Essex G8 Robotic Fish diving mode in water b) internal structure of the fish.

Japan A robot-fish inspired by the “carp koi” *17] was presented in March 2006 in Japan.FRANCE: Fig 1.5.9 JESSIKO .RYOMEI ENGINEERING – JAPAN: Fig 1. The robot. Thanks to its communication potential and its artificial intelligence. In a second step. was a key player.15 Jessiko V4 Robotic Fish developed in France by RobotSwim Jessiko [18] is one of the smallest robotic fish in the world (20cm/100g). 1. Thanks to its camera.8 ROBOTIC KOI .possible for the robot to generate adaptive behaviours in a changing environment and thus remain unpredictable. information essential if one wants to supervise the health of fish. Jessiko [18] can swim in a school of 10 19 . was remote controlled.14 Carp Koi Robotic Fish by Ryomei Engineering .ROBOTSWIM . 1. a subsidiary company of Mitsubishi Heavy Industries. It was developed by three companies of which Ryomei Engineering. the robot could be sent in recognition to examine the resources present in the depths. the researchers want to make their robot autonomous. It could be also used to inspect the oil platforms to locate and supervise possible damage. Its mouth was equipped with sensors being used to control the oxygen concentration in water. which are already at the origin of the series "Mitsubishi Animatronics". which measures 80 cm and weighs 12 kg.5.

S. Thus.5. it will be possible to explore large areas. 20 . so that they make attractive aquatic and luminous choreographies. b) KnifeFish developed in NTU.S. a system that allows robots to communicate was studied through this project. Since radio signals travel badly in salt water. It is highly manoeuvrable and can swim backwards by inverting pectoral fins. and used any information received to adjust their own courses.showing that the system was relatively robust.A. 1. track a pollution spill. The "Robofish" of the University of Washington [19] measures a half meter long and weighs 3kg.16 RoboFish developed by University of Washington U. the group remained coordinated despite about half of all information packets being lost .10 ROBOFISH . 3 Robofish broadcasted their headings to each other. 1. it was announced to mass market as a kit to enliven pools during long summer nights. a Knifefish Robot. a BCF swimming mode with 2 links.17 a) StingRay.fish or more. for experiments they designed different types of robotic fish like a Stingray Robot.A with only tail joints. an Arowana Robot and more [21]. Researchers of the School of Mechanical and Aerospace Engineering from Nanyang Technological University study fish propulsion.UNIVERSITY OF WASHINGTON . Singapore using undulating fin mechanism and c) Arowana Robot. During the experiment [20]. With the same technique. Their objective is to design and optimize robotic fish using undulating fin mechanisms.5. it is designed for the events market and aquatic museums.11 STINGRAY – KNIFEFISH – NANYANG UNIVERSITY – SINGAPORE: Fig 1. At first. According to Kristi Morgansen. After.: Fig 1. or to report the location of marine animals.U.

UNIVERSITY OF KITAKYUSHU . Waterproofing packaging was designed to protect the electronics. The robot is propelled by a trilayer polypyrrole (PPy) polymer actuator. It has a silicone body covered in realistically hand-painted scales. a Lithium coin cell battery.13 POLYMER ACTUATED (PPy) ROBOTIC FISH: Conducting polymer (CP) materials exhibit significant volume change in response to electrical stimulation.12 TAI-ROBOT-KUN . and can go for as long as an hour with a full battery.5.5. Japan 1. Fig 1. Different configurations of actuators were investigated and justified using experimental results [23].19 Polymer Actuated Robotic Fish propelled by Conducting Polymer Trilayer Polypyrrole (PPy). It cruises using the actuated tail fin. Tai-robot-kun weighs 7kg and mimics a real fish swimming silently in the water.JAPAN: Engineers at the University of Kitakyushu have developed one of the most realistic biomimetic robots in the world.18 Tai Robot Kun Robotic Fish with unique exoskeleton design designed in University of Kitakyushu. This red snapper is actually a robotic fish known as “Tai-robotkun” *22]. Fig 1. Experiments were conducted to characterize the properties of PPy polymer.1. This project has 21 . The robotic fish embeds a microcontroller. features a unique propulsion system that allows it to move its tail and drift silently through the water like a real fish. and necessary circuitry for navigation and control.

14 BIOMIMETIC CONTROLLED CURVATURE ROBOTIC PECTORAL FIN: Fig 1. with many shape-changing intricacies. fluid dynamics. contributes significantly to propulsive ability. fin kinematics. Only a few designs with flapping pectoral fin with an actively controlled quantitatively specified curvature time-history has been developed. To ignore the importance of a controlled fin curvature will only result in designs with reduced operational performance. 1. It was found that an actively controlled deforming fin curvature.successfully demonstrated that PPy polymers can be used to design robotic fish actuators. especially the leading-edge curvature as identified in the bird wrasse. The design and rationale of the physically constructed device that can produce the required fin kinematics was provided. and anatomy was done and a parametric study was given to aid in future pectoral fin design. frontal. In-depth analysis of the common bird wrasse pectoral fin.20 Isometric. 22 . and top design views of fin system Servos push the ‘push rods’ to controllably bend the ribs (Left) and Rib bending curvature and tip deflection analysis and Rib FEA analysis to design for rib damage prevention (Right) The pectoral fin is a very complex propulsor. A self-contained prototype is demonstrated with 10~12 hours operation lifetime.5.

but instead contain the forces of constraint between joints. the Newton-Euler and the Lagrangian approach. taking into account the torques caused by inertia. Therefore. a “free-body” approach is taken in the classical dynamics sense where the linkage is conceptually disassembled and torques are balanced about each joint pivot.1 MODELLING TECHNIQUES: The dynamics of any rigid body can be completely described by the translation of the centroid and the rotation of the body about its centroid. The dynamics equations for the four link system described in Section 3.CHAPTER 2 SYSTEM MODELLING 2. as they do not involve the actuator torques explicitly.1 are derived by defining the inertia torques of each link and the reaction torques from the connecting links. There are two basic approaches to deriving the dynamics equations. centrifugal and Coriolis forces. The Lagrangian approach to dynamics involves energy methods namely. The resultant intermediate equations are not in useful form. The links are interdependent in two major respects: 1) 2) The torque produced on or by a link produces a reaction torque on the other links. the Lagrangian approach was used according to [7]. DISADVANTAGES Resultant set of equations not in “closed form”. These must be eliminated by back-substitution to arrive at the useful form called the “closed form” dynamics equations. gravity and actuator forces are also accounted for. Due to the shortcomings in this case for the Newton-Euler approach. the system is first described by the work and energy stored therein. however. which changes the inertia seen by previous links (links closer to the bridge). This leads to the ability to derive the actuator torques necessary to produce the tail motion that is desired. The motion of the links changes the shape of the linkage. Deriving 23 . Lagrangian In the Newton-Euler formulation. Energy method approach not as intuitive as NewtonEuler. the result for the four link system is a rather complicated interdependent set of dynamics equations. External forces such as reactions from other joints. each having its advantages and disadvantages listed below: METHOD Newton-Euler ADVANTAGES Uses intuitive concepts of torque balance and free-body diagram. Resultant set of equations are in “closed form”.

𝑦𝑖 = 𝑧𝑖 ∗ 𝑥𝑖 . pointing from the 𝑧𝑖−1 to the 𝑧𝑖 -axis. which may be translational or rotational. li. Link twist 𝛼𝑖 is the required rotation of the 𝑧𝑖−1 -axis about the 𝑥𝑖 axis to become parallel to the 𝑧𝑖 -axis. 𝑎𝑖 is the kinematic length of link (i) .2. Fig 2. known as DenavitHartenberg (DH) method.the work and energy of the system as a whole is a relatively simple undertaking and although the dynamics equations are still complicated. 24 . 𝜃𝑖 defined for joint i and link (i) . 𝑑𝑖 𝑎𝑛𝑑 𝜃𝑖 . 𝛼𝑖 . the closed form dynamics are quickly produced without having to back-substitute to eliminate the constraint forces. The 𝑦𝑖 -axis is determined by the right-hand rule. a local coordinate frame B is rigidly attached to each link (i) at joint (i + 1) based on the following standard method. The zi axis is aligned with the (i + 1) joint axis. 1) 2) Link length 𝑎𝑖 is the distance between 𝑧𝑖−1 and 𝑧𝑖 axes along the 𝑥𝑖 -axis. 𝛼𝑖 . The xi -axis is defined along the common normal between the 𝑧𝑖−1 and 𝑧𝑖 axes.1 is a schematic of the RoboFish. To relate the kinematic information of robot components. 𝑑𝑖 .1 DH parameters a 𝑎𝑖 . qi and the kinematic length of each link.2 2. showing the relative angular displacement between each link. 2. Fig 2.1 LAGRANGIAN MODELLING: DENAVIT HARTENBERG NOTATION: Every joint is indicated by its axis. A DH coordinate frame is identified by four parameters: 𝑎𝑖 .

2. The Denavit-Hartenberg parameters of the RoboFish system are tabulated in Table 2. Homogeneous transformation from the ith frame to the zeroth frame. Zeroth coordinate frame fixed at the head. Coordinate frame of the first link.2 FG FB F0 F1 Fi 2.1) H(0.0) H(0.3 H(I.B) H(B.1 Denavit-Hartenberg Parameters for the 4 Link RoboFish with 2 identical Pectoral Fins considering the head is fixed.j) H(I.i) REFERENCE FRAMES: Inertial Ground fixed frame of the robotic fish system. Homogeneous transformation from the first frame to the zeroth frame. Homogeneous transformation from the Zeroth frame to the Bth frame. Joint angle 𝜃𝑖 is the required rotation of 𝑥𝑖−1 -axis about the 𝑧𝑖−1 -axis to become parallel to the 𝑥𝑖 -axis. Homogeneous transformation from the Bth frame to the Ith frame. Base frame located at the head center of mass of the robotic fish.2.1. MATRICES AND VECTORS: Homogeneous transformation from the jth frame to the Ith frame. a Link 1 Link 2 Link 3 Caudal Left Pectoral Right Pectoral li l2 l3 l4 l5 l6 α 0 0 0 0 𝜋 2 d 0 0 0 0 0 0 θ qi q2 q3 q4 q5 q6 − 𝜋 2 Table 2. Coordinate frame of the ith link. is the distance between 𝑥𝑖−1 and 𝑥𝑖 axes along the 𝑧𝑖−1 -axis. 2. Joint distance is also called link offset. 25 .3) 4) Joint distance 𝑑𝑖 .

Position of point on the base relative to and projected onto frame FI. Position of frame F0 relative to and projected onto frame F0. Generalised coordinates for the links. Coriolis-Centripetal matrix. Maximum joint torques. Position of frame FB relative to and projected onto frame FI. Manipulator inertia matrix. Gravity matrix. Position of frame Fi relative to and projected onto frame F0. Position of point on the base relative to and projected onto frame FB. Pseudo inertia matrix of link i. Position of point on link i relative to and projected onto frame Fi. Kinetic energy of link i. Pseudo inertia matrix of the base. Position of point on link i relative to and projected onto frame F0.T6 Desired end-effector position or transformation matrix from the sixth frame to the zeroth frame. Disturbance term matrix. Velocity of point on the base relative to and projected onto frame FI. Position of frame F0 relative to and projected onto frame FB. Length of link i. Velocity of point on link i relative to and projected onto frame FI. Potential energy of the link i. Maximum joint velocities. Rotation of base in frame FI. JI JB M V G F P Φ rB rI di ri ρi vi b bB vB qi Vj τj Ki Pi li 26 .

𝒒 + 𝑮 𝒒 = 𝑸 or in a summation form 𝑛 𝑛 𝑛 − − (2.2. 𝑛 − − (2. and 𝐹 is the external force system applied on the 𝑒 end-effector.2. 27 .2. The Lagrangian is defined as the difference between the kinematic and potential energies 𝐿 = 𝐾 − 𝑉 − − (2. The equations of motion for an n link serial manipulator can be set in a matrix form 𝑴 𝒒 𝒒 + 𝑽 𝒒.4 EQUATIONS OF MOTION: The Lagrange equation of motion provides a systematic approach to obtain the dynamics equations for robots.2) where 𝑞𝑖 is the coordinates by which the energies are expresses. … .1) The Lagrangian equation of motion for a robotic system can be found by applying the Lagrange equation 𝑑 𝜕𝐿 𝜕𝐿 − = 𝑄𝑖 𝑑𝑡 𝜕𝑞𝑖 𝜕𝑞𝑖 𝑖 = 1.3) 𝑀𝑖𝑗 (𝑞)𝑞𝑗 + 𝑗 =1 𝑘=1 𝑚 =1 𝑉𝑖𝑘𝑚 𝑞𝑘 𝑞𝑚 + 𝐺𝑖 = 𝑄𝑖 𝑀(𝑞) is an n x n inertial type symmetric matrix n 𝑀 = i=1 1 𝑇 𝑇 𝐽𝐷𝑖 𝑚𝑖 𝐽𝐷𝑖 + 𝐽𝑅𝑖 𝐼𝑖 𝐽𝑅𝑖 2 𝑉𝑖𝑘𝑚 is the velocity coupling vector or Coriolis and Centrifugal force vector 𝑛 𝑛 𝑉𝑖𝑗𝑘 = 𝑗 =1 𝑘=1 𝜕𝑀𝑖𝑗 1 𝜕𝑀𝑗𝑘 − 𝜕𝑞𝑘 2 𝜕𝑞𝑖 and 𝐺𝑖 is the gravitational vector 𝐺𝑖 = 𝑛 𝑚𝑗 𝑔𝑇 𝐽𝐷𝑗 𝑗 =1 (𝑖) The generalized forces of the Lagrange equations are 𝑄𝑖 = 𝑄𝑖 + 𝐽𝑇 𝐹 𝑒 where 𝑄𝑖 is the ith actuator force at joint i. and 𝑄𝑖 is the corresponding generalized non potential force that drives 𝑞𝑖 .

2 Multi-link Robotic Fish Configuration with system parameters and joint variables 28 . They consist of a rotation submatrix and a position vector. These form an Euler angle system. The translational coordinates of the head are defined as 𝑃 = (𝑃1 . the frames. Homogeneous transformation matrices 𝐻(. which correspond to the following current frame rotational sequence. one for each link. Ф3 }.1. 𝑷 Fig 2. the head has 6 degrees of freedom and the robot body has n degrees of freedom. In 3 dimensions.2. along with scaling and perspective information. The homogeneous matrix for a link will reflect whether the link is either translational or rotational. Y and Z axes in the 𝐹𝐼 frame. This corresponds to translations along X.) are 4 x 4 matrices which map position vectors expressed in homogeneous coordinates from one coordinate frame to another. If a link is revolute or prismatic 𝑞𝑖 is represented by either 𝜃𝑖 or 𝑑𝑖 respectively. 1)𝑇 . 𝑃3 . Ф2 . 𝑃2 . The generalized coordinate for each link will be denoted as 𝑞𝑖 . From Figure 2.2. The rotational coordinates are defined as Ф = {Ф1 . known as a 3-2-3 system. This gives the system 6+n degrees of freedom or one degree of freedom for each generalized coordinate.5 ROBOFISH AND HEAD 3D CONFIGURATION: The configuration of the robotic fish and non-fixed head is as shown in the Fig 2.1. matrices and vectors are defined.

𝐵) 𝐻(𝐵.0 𝜕𝐻 0.𝑖 𝜕𝑞 𝑗 𝜌𝑖 𝑞𝑗 Knowing that the velocity squared of a vector is 𝑑𝑟 𝑖 2 𝑑𝑡 = 𝑡𝑟𝑎𝑐𝑒 𝑟𝑟 𝑇 we can write the kinetic energy of a particle of mass dm on link i at 𝜌𝑖 as 𝑑𝐾𝑖 = 2𝑡𝑟𝑎𝑐𝑒 𝑟𝑟 𝑇 𝑑𝑚 1 29 .𝑖 is a function of the ith link generalized coordinate.6 KINETIC AND POTENTIAL ENERGIES: Referring to the Figure 2.2.1) 𝐻(1.𝐵 𝐻 𝐵.0 𝑑𝑡 =0 Since 𝐻 𝐺. 𝑟𝑖 = 𝐻(𝐺.𝑖 𝜌𝑖 𝑧𝐻 + 𝑗 =1 𝐻 𝐺.0 𝑑 𝐻 0. and 𝐻 0.0) 𝐻(0.1.𝑖 𝑑𝜌𝑖 𝜌𝑖 + 𝐻 𝐺. the position of a point on link i relative to and projected onto frame 𝐹𝐼 is 𝑟𝑖 = 𝐻(𝐺.𝐵) 𝐻(𝐵. 𝐻 𝐺.𝑖 𝑑𝑡 𝑑𝑡 𝑑 𝑟𝑖 𝑑𝑡 It should be noted that all the homogeneous matrices are functions of joint coordinates which are time dependant (eg.0) 𝐻(0.0 𝐻 0. 𝑣𝑖 = 𝑑 𝐻 𝐺.𝐵 𝐻 𝐵.0 𝐻 0.𝑖) 𝜌𝑖 The velocity of a point on link i is then 𝑣𝑖 = or performing the differentiation.𝑖) 𝜌𝑖 or simplifying.2) … 𝐻(𝑖−1.𝐵 𝐻 0.2.𝐵 is a function of the six base generalized coordinates 𝑧𝐻 .0 𝐻 𝐵.0 𝐻 0.𝐵 𝜕𝑧 𝐻 𝑟𝑖 = 𝑣𝑖 = 𝑠=1 𝐻 𝐵.𝑖 𝜌𝑖 + 𝐻 𝐺.𝐵 𝜃 𝑡 ). Assuming the links are rigid we obtain 𝑑𝜌𝑖 =0 𝑑𝑡 The head is also assumed rigid [24] so it can be written as 𝑑 𝐻 𝐵. we write the above equation compactly as 6 𝑖 𝜕𝐻 𝐺.𝐵 𝐻 𝐵.𝐵 𝑑 𝐻 𝐵.𝑖 𝜌𝑖 + 𝑑𝑡 𝑑𝑡 𝐻 𝐺.

𝑖 𝜕𝑞𝑗 𝐻 𝑇 𝐻 𝑇 𝐵.0 𝐻 0.𝐵 𝑧𝑠 𝑞𝑗 + 𝜕𝑧𝑠 𝜕𝑞𝑗 30 .0 𝐻 0. the mass moment of inertia is written as 𝐼𝑥𝑥 = 𝑦𝑖2 + 𝑧𝑖2 𝜌𝑖 𝑑𝑥𝑑𝑦𝑑𝑧 combining terms and using the fact that 𝑡𝑟𝑎𝑐𝑒 𝐴 = 𝑡𝑟𝑎𝑐𝑒(𝐴𝑇 ).0 𝐺.𝑖 𝜕𝑞𝑗 𝐻 𝑇 𝐻 𝑇 𝐵.𝑖 𝐽𝑖 𝐻 𝑇 𝐻 𝑇 𝐵.𝐵 𝑧𝑠 𝑞𝑗 𝑑𝑚 + 𝑠=1 𝑗 =1 𝑖 6 1 𝑡𝑟 2 𝑠=1 𝑗 =1 6 𝑖 𝜕𝐻 𝐺.𝑖 𝜌𝑖 𝜌𝑖 𝐻 𝑇 𝐻 𝑇 𝐵.0 𝐻 0. the total kinetic energy of the manipulator can be obtained as 𝑛 6 𝑖 𝐾𝐿 = 𝑖=1 𝑠=1 𝑗 =1 𝜕𝐻 𝑇 𝜕𝐻 𝐺.𝐵 𝑞𝑗 𝑞𝑘 𝑑𝑚 − − (2.𝐵 𝜕𝑧𝑠 𝐻 𝐵.4) 𝑠=1 𝑗 =1 The total kinetic energy of the links is given by integrating Eqn 2.6 𝑖 𝜕𝐻 𝐺 .𝑖 𝜌𝑖 𝜌𝑖 𝑇 𝜕𝐻 𝑇 0.0 𝐺.𝑖 𝜕𝐻 𝑇 0.𝐵 𝜕𝑧𝑠 𝐻 𝐵.𝑖 𝜌𝑖 𝜌𝑖 𝑇 𝜕𝐻 𝑇 0.𝐵 𝑧𝐻 𝑧𝑡 𝑑𝑚 + 𝜕𝑞𝑗 6 1 𝑡𝑟 2 𝑖 𝜕𝐻 𝐺 .4 over the mass for each link and then summing as follows 𝑛 𝑛 𝐾𝐿 = 𝑖=1 𝐾𝑖 = 𝑖=1 𝑑𝐾𝑖 We also know that the integral of the term 𝜌𝑖 𝜌𝑖 𝑇 over link i is termed the pseudo inertia matrix 𝐽𝑖 = 𝜌𝑖 𝜌𝑖 𝑇 𝑑𝑚 For a 3-D rigid body the pseudo inertia matrix can be written as where 𝐼𝑥𝑥 .0 𝐻 0.𝐵 0.0 𝐺.0 𝐺.𝐵 𝑧𝑠 𝑞𝑗 𝑑𝑚 + 𝜕𝑞𝑗 𝑇 1 𝑡𝑟 2 𝑠=1 𝑗 =1 𝜕𝐻 𝐺 .0 𝐻 0.0 𝐺.𝐵 𝜕𝑧𝑠 𝑑𝐾𝑖 = 1 𝑡𝑟 2 𝐻 𝐵.𝐵 𝜕𝑧𝑠 𝐻 𝐵.𝑖 𝑡𝑟 𝐻 𝐵.𝑖 𝐻 𝑇 𝐻 𝑇 𝐵.𝑖 𝜌𝑖 𝜌𝑖 𝑇 𝜕𝐻 𝑇 0.

𝐵 𝑞𝑗 𝑞𝑘 𝜕𝑞𝑗 𝜕𝑞𝑘 − − (2.𝐵 𝜕𝐻(𝐺 1 𝑡𝑟 𝜕𝑧 .𝑖 𝑡𝑟 𝐻 𝐵.𝐵 𝐻 𝐵.𝐵 𝑇 𝑇 𝐻 𝐵.0 𝐺.0 𝜕𝑧𝑠 𝜕𝑧𝑡 𝐻 𝐺.𝑖 𝐽𝑖 𝐻 0.𝐵 𝐻 𝐵.𝑖 𝜕𝐻 𝑇 0.0 6 6 𝑖=1 𝑗 =1 𝑘=1 1 𝑡𝑟 2 𝜕𝐻 0.𝑖 𝐻 𝐵.0 𝐺.𝐵 0. The Lagrangian becomes 𝑛 6 𝑖 𝐿 = 𝑖=1 𝑠=1 𝑗 =1 𝑛 6 6 1 𝑡𝑟 2 𝑛 𝑖 𝑡𝑟 𝜕𝐻 𝑇 𝜕𝐻 𝐺.𝐵 )𝐽𝐵 𝜕𝑧 ) 2 𝑠 𝑡 𝑧𝑠 𝑧𝑡 Substituting K and P in Lagrange equation stated above where 𝑞𝑖 is the generalized coordinate and 𝜏𝑖 is the generalized force or torque at joint i.𝐵 𝑞𝑗 𝑞𝑘 + 𝜕𝑞𝑗 𝜕𝑞𝑘 𝑇 𝑠=1 𝑡=1 𝜕𝐻(𝐺.𝑖 𝐵.𝑖 𝐽𝑖 𝐻 𝑇 𝐻 𝑇 𝐵.𝑖 𝐻 𝐵.0 𝐺.0 𝐻 0.𝐵 𝐻 𝐵.0 𝐻 0.𝑛 6 6 1 𝑡𝑟 2 𝑖=1 𝑠=1 𝑡=1 𝑛 𝑖 𝑖 1 𝑡𝑟 2 𝜕𝐻 𝑇 𝜕𝐻 𝐺.𝐵 𝑧𝑠 𝑞𝑗 + 𝜕𝑧𝑠 𝜕𝑞𝑗 𝑖=1 𝑠=1 𝑡=1 𝑛 𝑖 𝑖 𝜕𝐻 𝑇 𝜕𝐻 𝐺.𝑖 𝐽𝑖 𝐻 𝑇 𝐻 𝑇 𝑧𝑠 𝑧𝑡 + 0.𝐵 𝑧𝑠 𝑞𝑗 + 𝜕𝑧𝑠 𝜕𝑞𝑗 𝑖=1 𝑠=1 𝑡=1 𝜕𝐻 𝑇 𝜕𝐻 𝑇 𝜕𝐻 𝐺.𝑖 𝐽𝑖 𝐻 0.𝑖 𝐽𝑖 𝐻 𝑇 𝐻 𝑇 𝐵.𝐵 𝐺.0 𝐻 0.𝐵 𝐺.0 𝑧𝑠 𝑧𝑡 + 𝜕𝑧𝑠 𝜕𝑧𝑡 𝜕𝐻 0.𝑖 𝐽𝑖 𝐻 𝑇 𝐻 𝑇 𝐵.𝐵 0.𝐵) 𝐻(𝐵.𝐵 𝜕𝐻 𝐺.𝑖 𝜕𝐻 𝑇 0.𝑖) 𝑟𝑖 If the head frame is at the center of mass of the head an equivalent simpler form of the head Kinetic Energy can be written as 𝐾𝐵 = 2𝑚𝑏 𝑅 𝑅 𝑇 + 2𝑤𝐼𝐵 𝑤 𝑇 Thus the total kinetic energy of the robotic fish system is 𝑛 6 𝑖 1 1 𝐾𝑆 = 𝐾𝐿 + 𝐾𝐵 = 𝑖=1 𝑠=1 𝑗 =1 𝑛 6 6 1 𝑡𝑟 2 𝜕𝐻 𝑇 𝜕𝐻 𝐺.0 𝑖=1 𝑗 =1 𝑘=1 𝜕𝐻 0.0 + 𝐽𝐵 𝑧𝑠 𝑧𝑡 + 𝜕𝑧𝑠 𝜕𝑧𝑡 𝜕𝑧𝑠 𝜕𝑧𝑡 𝑖 1 𝑡𝑟 2 𝐻 𝐺.5) 𝐻 𝐺.𝐵 𝐺.𝐵 𝐻 𝐵.𝑖 𝐻 𝐵.0) 𝐻(0.𝐵 𝐺.𝐵 𝑇 𝑇 𝐻 𝐵.0 𝐻 0.𝐵 𝑞𝑗 𝑞𝑘 + 𝜕𝑞𝑗 𝜕𝑞𝑘 31 .𝑖 𝐽𝑖 𝐻 𝑇 𝐻 𝑇 𝐵.0 𝐺.0 𝑖=1 𝑗 =1 𝑘=1 The potential energy of link i is written as 𝑃𝑖 = −𝑚𝑖 𝑔𝑖 𝐻(𝐺.0 𝐻 0.𝑖 𝐽𝑖 𝐻 𝑇 𝐻 𝑇 𝐵.0 𝐺.𝑖 𝜕𝐻 𝑇 0.

0) (G.i) T ∂H G. 𝜕𝐻 (0.𝐵 𝑞𝑘 − − (2.0) (G.0) H(G.B) q k zs + ∂zs ∂q p ∂q k i=p k=1 s=1 32 .6) For the link dynamic equations.B tr H B.i) ∂H(0.i) ∂H(0.B) ∂H(0.B) s t i=p s=1 m=1 n 6 i T ∂H(G.7) Combining terms 2 and 3 because of similar indices and also because 𝑡𝑟𝑎𝑐𝑒 𝐴 = 𝑡𝑟𝑎𝑐𝑒(𝐴𝑇 ).0 H 0.B) tr H(B.𝑖 𝑖=𝑝 𝑘=1 𝑇 𝜕𝐻 0.B) s i=p s=1 6 tr i=p s=1 t=1 n 6 i T ∂H(0.i) T ∂2 H(G.𝑖) 𝑟𝑖 + 𝑚𝑏 𝑔𝑖 𝐻(𝐺.i) T T tr H(B.0) Ji H(B.𝑖) 𝜕𝑞 𝑝 =0 Taking the time derivative of the Eqn 2.0 𝐺.𝑖) 𝜕𝑞 𝑝 𝐻 𝑇 𝐻 𝑇 𝐵. For p > i.0) H(0.i) Ji H(B.0) zs zt + ∂zs ∂q p ∂zt i=p s=1 m=1 n 6 6 tr i=p s=1 t=1 n i i=p k=1 n i 6 T ∂H(0.i) T tr H(B.𝑖 𝜕𝐻 0.i) Ji H HT zq + ∂zs ∂q m ∂q p (B.𝐵 𝑧𝑠 + 𝑡𝑟 𝐻 𝐺.B) ∂H(0.i) Ji H HT zz + ∂zt ∂zs ∂q p (B.i) T ∂H(G.i) ∂H(0.i) T tr H(G. 𝜕𝐿 = 𝜕𝑝𝑖 𝑛 𝑖 𝑛 6 𝑡𝑟 𝑖=𝑝 𝑠=1 𝜕𝐻(𝐺 .𝑖) 𝐽𝑖 𝑇 𝜕𝐻(0.B) ∂H(I.B) k T ∂H(G.𝑛 𝑚𝑖 𝑔𝑖 𝐻(𝐺.0) H(0. the link generalized coordinates be represented as 𝑞𝑝 .B) H(B.B) H(B.𝑖 𝐽𝑖 𝜕𝑞 𝜕𝑞 𝑝 𝑝 𝐻 𝑇 𝐻 𝑇 𝐵.𝐵 𝐻 0.7 d ∂L = dt ∂q i n 6 n 6 T ∂H(0. Taking the derivative of L with respect to 𝑞𝑝 .B) H(B.i Ji H HT z + ∂zs ∂q p (B.0) J H HT q + ∂q p i ∂q k (B.𝐵 ) 𝜕𝑧𝑠 𝐻(𝐵.0) (G.𝐵) 𝑏 𝑖=1 − − (2.B) s m T T ∂H(0.0 𝐺.B) s m T ∂2 H(0.0) J H HT zq + ∂zs ∂q m i ∂q p (B.i) T ∂H(G.0) 𝐻(0.0) 𝐻(0.0) H(0.0) (G.𝐵) 𝐻(𝐵.0) (G.

n

i

i

i=p k=1 m=1 n i i

T ∂2 H(0,i) ∂H(0,i) T tr H(I,B) H(B,0) J H HT q q + ∂q m ∂q p i ∂q k (B,0) (G,B) k m T ∂H(0,i) ∂2 H(0,i) T T tr H(I,B) H(B,0) Ji H(B,0) H(G,B) q k q m + ∂q p ∂q m ∂q k

i=p k=1 m=1 n i 6

i=p k=1 s=1

T ∂H(0,i) ∂H(0,i) T tr H(I,B) H(B,0) J H HT q z ∂q p i ∂q k (B,0) (G,B) k s

− −(2.8)

**For the second term in the Lagrangian equation for the links, ∂L = ∂pi
**

n 6 i

i=1 s=1 j=1 n 6 i

∂H I,B ∂H 0,i ∂H T0,i T tr H B,0 Ji H B,0 H TG,B zs q j + ∂zs ∂q p ∂q j ∂H I,B ∂2 H 0,i T H B,0 H 0,i Ji H HT zq ∂zs ∂q p ∂q j B,0 G,B s j

tr

i=1 s=1 j=1 n 6 6

i=1 s=1 t=1 n 6 6

∂H TG,B ∂H 0,i 1 ∂H I,B T T tr H B,0 JH H zs zt + 2 ∂zs ∂q p i 0,i B,0 ∂zt ∂H T0,i T ∂H TG,B 1 ∂H I,B tr H B,0 H 0,i Ji H B,0 zs zt + 2 ∂zs ∂q j ∂zt ∂2 H 0,i ∂H T0,i T 1 tr H I,B H B,0 J H B,0 H TG,B q j q k + 2 ∂q j ∂q p i ∂q k

i=1 s=1 t=1 n i i

i=1 j=1 k=1 n i i

i=1 j=1 k=1 n

∂H T 0,i ∂2 H T0,i T 1 tr H I,B H B,0 J H HT qj qk + 2 ∂q j i ∂q k ∂q p B,0 G,B ∂H G,0 r ∂q p i − −(2.9)

mi g i H G,B H B,0

i=1

Forming the Lagrange equation with Eqns 2.8 and 2.9, after many cancellations and index substitutions, the dynamic equations for the robotic fish system with multiple links are obtained [24]. With the generalized coordinate for the link denoted as q i and the generalized force or torque as τi the equation of motion becomes

n 6

i=p s=1

∂H T0,i T ∂H(G,B) tr H(B,0) H(0,i) Ji H B,0 H TG,B zs + ∂zs ∂q p

33

n

i

i=p k=1 n 6 6

∂H(0,i) ∂H T0,i T tr H(G,B) H(B,0) J H B,0 H TG,B q k + ∂q p i ∂q k ∂H T0,i T ∂2 H(G,B) H(B,0) H(0,i) Ji H B,0 H TG,B zs zt + ∂zt ∂zs ∂q p

tr

i=p s=1 t=1 n i i

i=p k=1 m=1 n 6 i

∂H(0,i) ∂2 H T0,i T tr H(G,B) H(B,0) J H HT qk qm + ∂q p i ∂q m ∂q k B,0 G,B

i=p s=1 m=1 n

∂H(G,B) ∂H(0,i) ∂H T0,i T 2 ∗ tr H(B,0) J H B,0 H TG,B zs q m + ∂zs ∂q m i ∂q p ∂H(G,0) r = τp ∂q p i − − (2.10)

mi g i H(G,B) H(B,0)

i=1

p = 1 gives the equation for link 1 in q1 p = x gives the nth equation for link x in qx To obtain the dynamic equations of the head, the Lagrange equation is applied to the Lagrangian function in Eqn 2.6, except this time zw will be the generalised head coordinate d ∂L ∂L − = 0 dt ∂zw ∂zw

− − (2.11)

The zero on the right hand side of the equation is because there are no external forces or torques acting on the head. The derivation of the dynamic equation for the base follows similar algebra as for the links, and after simplifications becomes

n 6

i=p s=1

**∂H TG,B ∂H(G,B) ∂H(G,B) ∂H TG,B T T tr H(B,0) H(0,i) Ji H 0,i H B,0 + J zt + ∂zw ∂zt ∂zw B ∂zt
**

n i

i=1 j=1 n 6 6

∂H T0,i T ∂H(G,B) tr H(B,0) H(0,i) Ji H B,0 H TG,B q j + ∂zw ∂q j

tr

i=1 t=1 s=1 n

**∂2 H TG,B ∂H(G,B) ∂H(G,B) ∂2 H TG,B H(B,0) H(0,i) Ji H T0,i H TB,0 + J zz + ∂zw ∂zs ∂zt ∂zw B ∂zs ∂zt s t
**

i i

i=1 j=1 m=1

∂H(G,B) ∂2 H T (0,i) T tr H(B,0) H(0,i) Ji H B,0 H TG,B q j q m + ∂zw ∂q m ∂q j

34

n

6

i

i=1 j=1 s=1

∂H T0,i T ∂H G,B 2 ∗ tr H B,0 H 0,i Ji H B,0 H TG,B zs q j zs + ∂zw ∂q j − −(2.12)

mb g i

∂H(I,B) b=0 ∂zw

w = 1 gives the 1st equation for zw w = 6 gives the 6th equation for z6 𝑞 = 𝜃1 𝜃2 𝜃3 𝜃4 𝜃5 𝜃6 𝑇 𝑧𝐻

= 𝑃1 𝑃

2 𝑃

3 𝜙

1 𝜙

2 𝜙

3 𝑇

The RoboFish system dynamic equations 2.10 and 2.12 have been developed in three dimensions for an n link system connected to a 6 degree of freedom head, assuming there is gravity acting on the system. For a zero buoyant system, gravity would be set to zero since the buoyancy force acting upwards on the fish body cancels the weight force acting downwards. These dynamic equations can also be written in matrix form as 𝑴 𝒒 𝒒 + 𝑽 𝒒, 𝒒 + 𝑮 𝒒 = 𝝉 where 𝑴 𝒒 is the inertia matrix, 𝑽 is the Coriolis-centripetal matrix, 𝑮 is the gravity matrix, 𝝉 is the generalized force (torque) vector, and 𝒒 is the generalized coordinate. If a disturbance term, 𝑭 𝒒 , is added to the above equation the manipulator dynamic equation becomes 𝑴 𝒒 𝒒 + 𝑽 𝒒, 𝒒 + 𝑭 𝒒 + 𝑮 𝒒 = 𝝉 Or more compactly, 𝑴 𝒒 𝒒 + 𝑵 𝒒, 𝒒 = 𝝉 where 𝑵 𝒒, 𝒒 represents all the non-linear terms.

2.3

HYDRODYNAMIC MODELLING:

The forces acting on a swimming robotic fish are weight, buoyancy and hydrodynamic lift in the vertical direction. In the horizontal heading direction, thrust, friction and inertia drag are found. In the classification of fish swimming modes, the robotic fish prototype developed between the sub-carangiform mode and the carangiform mode. Both modes are sorted as BCF locomotion modes. For these two swimming modes, the hydrodynamic model which is related with the wake thrust generated, was found to be associated with the added-mass method [11]. As the propulsive wave passes backward along the fish, the momentum of the water passing backward is changed by the movement of the fish tail, which causes a reaction force 𝐹𝑅 from

35

water to fish. 𝐹𝑅 is decomposed into a lateral 𝐹𝐿 and a thrust component 𝐹𝑇 which contributes to overall forward propulsion for fish.

Fig 2.3 Forces acting on a swimming fish with velocity U. Coordinate system used in thesis is also shown

2.3.1

ASSUMPTIONS:

To simplify the real time challenges, the following preconditions are followed in the simulation environment: • The water in which robotic fishes swim is quasi-steady fluid. Most of fish swimming mechanism researches are based on this supposition which also makes it easy to build hydrodynamic model. • For a given parameter vector 𝐸 = {𝑐1 , 𝑐2 , 𝑘, 𝜔} for the movement of the robotic fish tail, the value and the direction of thrust force acting on the robotic fish are determined with no respect to the velocity of the robotic fish. • The viscous drag is considered as the only resistance when the robotic fish swimming. The swimming friction drag is supposed as the only resistance against thrust, which is only determined by the travelling wave parameter vector 𝐸 = {𝑐1 , 𝑐2 , 𝑘, 𝜔}. The longer and faster the fish, the more resistance it would be encountered. So, in case of a given Ε, there must be a maximum robotic fish velocity 𝑈𝑚𝑎𝑥 to make the friction drag equal to the thrust. At the same time, the robotic fish will keep a constant swimming velocity. The friction drag could be calculated using the standard Newtonian equation 𝐷𝑣 = 0.5𝐶𝑓 𝑆𝑈 2 𝜌 where 𝐶𝑓 is the drag coefficient which depends on the Reynolds number, S is the wetted surface area, U is the forward velocity of the robotic fish and ρ is the water density. The Reynolds number is defined as 𝑅𝑒 = 𝐿𝑈/𝑣

36

where 𝐿 is the tail length and 𝑣 is the kinematics viscosity of water (1.12 mm2/s, fresh water in 60°F). The laminar and the turbulent drag coefficients are 1.328𝑅𝑒 −0.5 and 0.074𝑅𝑒 −0.2 respectively [25]. In this paper, the drag coefficients 𝐶𝑓 are set as the sum of two drag coefficients. There is a stabile prominent parameter named Strouhal number for BCF movement [39] 𝑆𝑡 = 𝑓𝐴/𝑈 where 𝐴 = 2 𝑐1 𝑥 + 𝑐2 𝑥 2 |𝑥=𝑡𝑎𝑖𝑙𝑙𝑒𝑛𝑔𝑡 is the tail-beat peak-to-peak amplitude and 𝑓 is the oscillating frequency. The 𝑆𝑡 lies in a specific range (namely 0.25< 𝑆𝑡 <0.40) for a constant velocity swimming. For our robotic fish, 𝑆𝑡 is about 0.3. Above equation could be used to compute the maximum velocity 𝑈𝑚𝑎𝑥 . Then the maximum viscous drag 𝐷𝑣𝑚𝑎𝑥 could be calculated. Let thrust force 𝐹𝑡𝑟𝑢𝑠𝑡 equal to 𝐷𝑣𝑚𝑎𝑥 we get

2 𝐹𝑡𝑟𝑢𝑠𝑡 = 0.5𝐶𝑓𝑚𝑎𝑥 𝑆𝑈𝑚𝑎𝑥 𝜌
𝐶𝑓𝑚𝑎𝑥

= 1.328(𝐿𝑈𝑚𝑎𝑥 𝑣 )−0.5 + 0.074(𝐿𝑈𝑚𝑎𝑥 𝑣)−0.2 and 𝑈𝑚𝑎𝑥 = 𝑓𝐴/𝑆𝑡 2.3.2 HYDRODYNAMIC FORCES APPROXIMATION:

Robot swimming underwater interacted with the fluid flow remains an unresolved problem. In many cases some simplifications are necessary. In order to calculate the resultant forces, a large Reynolds number is applied and all forces acting on a propulsive element are due to the motion of that element in the fluid, i.e. the effects of the fluid’s motion are not considered based on above Assumption 2. The resultant hydrodynamic force perpendicular to the surface of the moving body takes the form [26]: 𝐹 = −𝜇𝑣|𝑣| where 𝜇 = 𝜌𝐶𝑆/2 is the drag coefficient, ρ is the density of the fluid, 𝐶 is the shape dependent drag coefficient, 𝑆 is the effective area of the element that confronts the fluid, and 𝑣 is the velocity of the element. This force can be resolved into components which act parallel and perpendicular to the surface of each element. Then, the robot is acted upon by four types of forces: pressure on links, pressure on pectoral fins, approach stream pressure and friction drag. 2.3.3 PRESSURE ON LINKS:

While oscillating, the hydrodynamic force acting perpendicular to the surface of the 𝑖 𝑡 link is the thrust force for advancement, which is given by [26]: 𝐹𝑖⊥ = −𝜇𝑖⊥ 𝑣𝑖⊥ |𝑣𝑖⊥ |

37

𝑆𝐿 is the effective area of the left ⊥ pectoral fin. 𝑆∆ is the cross section area of the head. 2. the pectoral fin produces the perpendicular pressure and parallel friction drag to the surface. the drag forces acting on the other links can be ignored except for the head.3. The drag force on the head is given by [26]: = = = = 𝐹1 = −𝜇1 𝑣1 |𝑣1 | ⊥ where 𝑣1 = 𝑑𝑥 1 𝑑𝑡 𝑓 𝑠𝑖𝑛𝜃1 − 𝑑𝑦 1 𝑑𝑡 𝑓 𝑐𝑜𝑠𝜃1 is the projection of the velocity vector along the direction = parallel to the head. While oscillating. 𝜇𝑖⊥ = 𝜌𝐶1 𝑆𝑖 /2 is the drag coefficient with 𝐶1 of flat plate type [26]. the approach stream pressure acting on the head in opposition to the motion of the RoboFish. 𝑣𝐿 is the normal velocity perpendicular to the surface of the left pectoral fin which can be calculated from: ⊥ 𝑣𝐿 = 𝑥𝐿 𝑐𝑜𝑠𝜃1 𝑠𝑖𝑛𝜃𝐿 + 𝑦𝐿 𝑠𝑖𝑛𝜃1 𝑠𝑖𝑛𝜃𝐿 𝑓 𝑓 38 . the robot is more agile to turn or keep balance in water.295.. The different pressures on the two sides also gives a drag force on the object. This makes the fluid in front move away and return again behind the object. Likewise.6 PRESSURE ON PECTORAL FINS: Thanks to pectoral fins mounted on bilateral positions of the head. i.5)𝐹1 .e.28. Similar to the links. 2.4 APPROACH STREAM PRESSURE: Motion of any object through a stationary fluid causes an increase in pressure in front of it and a decrease behind it. 2 1 𝐿 where 𝐶1 is the shape coefficient using the flat plate type. 𝜇1 = 𝜌𝐶2 𝑆∆ /2 is the drag coefficient with 𝐶2 of bullet type [26]. The thickness of the pectoral fin is small and the friction drag can be ignored by just considering the pressure perpendicular to the surface which contributes to thrust generation.2 ~ 0. 2. that is. calculated by substituting the centroid for the barycentre. that is 𝐶1 = 1. resulting in drag forces which act in opposition to the motion. 𝑆𝑖 is the effective area of the 𝑖𝑡 link. 𝐹𝑓 = (0. 𝐶2 = 0.3. the pressure on the left pectoral fin is given by [26]: ⊥ ⊥ ⊥ ⊥ ⊥ 𝐹𝐿 = −𝜇𝐿 𝑣𝐿 𝑣𝐿 .where 𝑣𝑖⊥ = 𝑑𝑥 𝑖 𝑑𝑡 𝑓 𝑠𝑖𝑛𝜃𝑖 − 𝑑𝑦 𝑖 𝑑𝑡 𝑓 𝑐𝑜𝑠𝜃𝑖 is the component of the velocity perpendicular to the surface of the 𝑖 𝑡 link. 𝜇𝐿 = 1 𝜌𝐶 𝑆 . that is. counteracting the movement. Owing to a larger cross-section of the head followed by small-amplitude oscillation of the rear body.5 FRICTION DRAG: The movement of the robot’s propelling units through the fluid causes friction drag parallel to the propelling units.3. = It is evaluated empirically of the approach stream pressure [26].

8 LIMITATIONS: In the current version.3. 2. the hydrodynamic models of turning and up-down movement of the robotic fish are not considered. … . 𝑅 𝑘 = 𝐿.2.𝑥𝐿 = 𝑥2 − 𝑙𝐿 − 𝑙𝐿 𝑐𝑜𝑠𝜃𝐿 𝑐𝑜𝑠𝜃1 + 𝑙𝑐 𝑠𝑖𝑛𝜃1 𝑦𝐿 = 𝑦2 − 𝑙𝑐 𝑐𝑜𝑠𝜃1 − 𝑙𝐿 − 𝑙𝐿 𝑐𝑜𝑠𝜃𝐿 𝑠𝑖𝑛𝜃1 The analysis of the right pectoral fin can be similarly available [26]. 𝑁 = = 𝐹1𝑥 = 𝐹1 𝑐𝑜𝑠𝜃1 = = 𝐹1𝑦 = 𝐹1 𝑠𝑖𝑛𝜃1 ⊥ ⊥ 𝐹𝑘𝑥 = 𝐹𝑘 𝑠𝑖𝑛𝜃𝑘 𝑐𝑜𝑠𝜃1 ⊥ ⊥ 𝐹𝑘𝑦 = 𝐹𝑘 𝑠𝑖𝑛𝜃𝑘 𝑠𝑖𝑛𝜃1 = 𝐹𝑓 = 50%𝐹1 𝑘 = 𝐿. A simple kinematics model is adopted to compute the turning locomotion and the model of up-down movement is not included temporarily. 𝑁 𝑖 = 1.2. the components of the forces in the direction of X-axis and Y-axis can be rewritten as [26]: ⊥ 𝐹𝑖𝑥 = 𝐹𝑖⊥ 𝑠𝑖𝑛𝜃𝑖 ⊥ 𝐹𝑖𝑦 = −𝐹𝑖⊥ 𝑐𝑜𝑠𝜃𝑖 𝑖 = 1. 𝑅 2. 39 .7 COMPOSITION OF HYDRODYNAMIC FORCES: 𝑓 𝑓 𝑓 𝑓 By resolving all the above forces in the world resolved coordinate system (WRCS).3. … .

the RoboTuna's body is only a low-order copy of a vastly richer biological system. hydrodynamics of fishlike swimming. For the convenience of description we define a robot fish as a fishlie aquatic vehicle that is based on the swimming skills and anatomic structure of a fish primarily the undulatory/oscillatory body motions. more and more research has focused on the development of novel fish-like vehicles. At present. The dynamic interaction of the RoboTuna's undulating body with the passing fluid is (currently) too complex to accurately model. the highly controllable fins and the large aspect ratio lunate tail. The actual dynamic shape of a swimming tuna has never been accurately measured.1 DIFFICULTIES IN BIOMIMETIC ROBOFISH DESIGN: This is a difficult task for a number of reasons. so there is no well defined target to aim for. As a combination of bio-mechanism and engineering technology. Harper et al. In any case. the robot fish is a multidisciplinary field that mainly involves hydrodynamics-based control and actuation technology. proposed the design of optimal spring constant to actuate the oscillating foil [29]. because the design goals are the same: 40 . new materials. actuators and control technology. and so it's not clear that attempting to precisely reproduce the biological motion is either practical or desirable. some artificial systems are developed to investigate fish-like locomotion mechanism. Development of 8-link foil flapping robotic mechanism acquired detailed measurements of the forces on an actively controlled body [28] [29]. On the other hand attempting to derive the proper motion by purely analytical means is arrested by two problems.CHAPTER 3 MECHANICAL DESIGN Based on progress in robotics. Sean Andrew Mellott (MIT) developed a CAM based mechanism for complaint body biomimetic robot [31]. The advantages of biological propulsion systems are best seen in comparison of fish to human-built underwater vehicles with similar scale. In particular few of the unique mechanical designs that are intriguing are 1) 2) 3) 4) Oscillating foil has been proposed as an alternative propulsor to the conventional screw propeller. And the hyperredundant planar kinematic chain nature of the body itself creates a situation is which there are infinite possible solutions as to how to move the body from one kinematic position to the next. 3.

good manoeuvrability and high efficiency. power utility. they are probably not even capable for this task. 4) Pike (BCF) overcomes its prey with short bursts of acceleration that can exceed that of gravity by about 20 times. 3. 5) The pressure differentials in the directions parallel to the moving body are decoupled from pressure differentials perpendicular to the body. and the forces acting on a single link are due only to the motion of that link. BCF swimming mode in Carangiform model is chosen and Servo Motor actuation is preferred. This is due to the complexity in the design. 3) Chinook and sockeye salmon (BCF) travel over 1400 km and climb nearly 2100 m from the Pacific Ocean as they return to spawn without eating on their journey while artificial underwater vehicles would need many replacement batteries.2 ASSUMPTIONS: For the convenience of theoretical analysis. some suppositions are made below: 1) The RoboFish can be simplified as a five-link serial mechanism coupled with a pair of pectoral fins of feathering motion. modular construction. water proofing criterion and body mass index of the whole system. 3) The deformation of robot’s body can be ignored except the motion of the links and pectoral fins. and both the pectoral fins are of identical mechanical dimension. 2) The fluid is stationary. efficiency of propulsion.high cruising speed and acceleration. 41 . 4) The motion is limited in the horizontal plane and the middle positions of pectoral fins are modulated on this plane at the initial moment. Man-made devices are able to achieve higher speed levels. Taking all the factors stated above into consideration. 2) Some species of BCF can reverse direction without slowing down and with a turning radius only 1/10 of their body lengths while underwater vehicles must reduce their speed by more than 50 percent and their turning radius is at least 10 times larger than the corresponding value for fish. Though a lot of different actuation mechanisms are suggested. The three dimensional dynamic analysis is not considered temporarily. Some examples of their supremacy are following: 1) Yellow fin tuna (BCF) can obtain speeds up to 5 body lengths per second or 40 knots while still maintaining superior agility. but lose most of the controllability. Moreover. only a few have been developed into actual working models. degrees of freedom.

Since the system designed is a prototype model.2. Wall thickness of 10 mm is maintained throughout the head hull. it is found that maximum forward velocity and higher degree of manoeuvrability can be achieved when the number of links or modes is fixed to be 4. these 2 motors are placed perpendicular to the pectoral fin shafts and coupled with bevel gears to alter the direction of rotation. Rather than attempt to attain this goal in one giant leap. the SolidWorks model is developed. this high torque servo motor is opted. From the literature [26]. So with this design criterion in mind.3 SOLIDWORKS MODEL: Incorporating all of the sophisticated engineering suggested by a live biological tuna into a man-made robotic vehicle capable of autonomous free swimming and manoeuvring in an ocean environment is a daunting task. Since the developed model is a prototype. Due to space constraint and to achieve efficient system architecture.1 below. head part C. Material used for the head hull design is acrylic. So the place constraints for sensor systems.3. This modularity in the head hull design decreased the machining cost by 70%. 3. head part B. maximum dexterity and multi mode propagation are the design challenges that are taken into account and not the payload and actual usage of the system in real world situations. This modular design procedure is followed so that if a design change has to be made in any individual part.1 and then the model is developed by creating an assembly of all the assemblies. The head assembly consists of the 1 Hitec HS 485HB [31] and 2 Hitec HS 5085MG [32] high performance servo motors.3. Considering machining complexity. The front side of the head hull is curved to a radius of 20mm on both sides. gyros. the hydrodynamic curvatures of the surface are not taken into design consideration. it has been pursued in a number of shorter pragmatically achievable steps. head part D and head part island. it will automatically be carried forward to all the assemblies that use it. Each part of the model is created separately in SolidWorks with the dimensions given in Table 3.1 HEAD DESIGN: Hull design of head structure for the carangiform fish model is designed with dimensions 130 x 50 x 65 mm approximately (tolerance 1%). HS 5085MG motors drive the pectoral fins. the head hull part is divided in to 5 sub parts: head part A. HS 485HB is connected to the link 1 connecting shaft and since it drives the whole posterior portion of the fish model. The individual assembles are grouped together in the Fig 3. the system design in SolidWorks was started. 42 . Separate assemblies are made for each of the item defined in the Table 3. on board processing unit and on board cameras are not considered in this phase of the design. With all the advantages of the carangiform model that is explained in previous sections.

00.95 gms. After many trials.2 LINK I DESIGN: Since water proofing the motors can be easily done using materials like Epoxy Resins. Link Holder and HS 5085HB.10. The material used for the design is acrylic. Y = 4. Head Joint Bottom. Motor Coupling.84.2 c) which consists of Joint Bottom. The material used for the design is acrylic.62 gms where the head hull part alone weighs 285. Since the subsequent links are lesser weight assemblies.64 cubic millimetres. As already mentioned in Section 3.64. a open body structure is opted for the RoboFish’s links (I. Caudal Shaft Top and Caudal Shaft Bottom. Motor Coupling. Y = -1. the overall volume of the caudal assembly is 38694. The overall mass of the Link II (III) assembly is 78. Pectoral Shaft. 3.94 cubic millimetres.3.3 LINK II-III DESIGN: The mechanical design parameters of both the links II and III are approximately the same. Link Holder and HS 5085MG. Without taking into account.3. Approximate dimension of the Link I assembly is 115 x 20 x 81 mm.62 gms. The overall volume of the designed head assembly is 245384. The complete assembly of the head can be seen in Figure 3. Links II and III assemblies are shown in the Figure 3.3.2 a).2 b). Link Design 2 Bottom.48 and Z = -0. consists of Pectoral Fin. normal spline tools are used to design the surface of both 43 . the height of the pectoral fin shaft from the base of head link hull part is fixed as 30mm that is calculated to provide maximum forward thrust to the system. The overall volume of the designed Link I assembly is 46855. Motor Shaft.mms.1. The overall weight of the pectoral assembly is approximately 50 gms and volume is 17222. The complete assembly can be seen in the Figure 3.2 f) has Caudal Fin. the driving motor is chosen to be HS 5085MG which is much smaller in weight and dimension when compared to HS 485HB. Pectoral Coupling and Bevel Gear.3.2 d) and e). hydrodynamic surface design consideration is not taken into account for prototype design and simple spline curves are used for designing the caudal fin surface.5 PECTORAL FIN DESIGN: Pectoral fin assembly as shown in the Figure 3. The Link I assembly consists of Head Joint. Link Design 2 Bottom.69 cubic millimetres and the overall mass is 106. The mass center of the head assembly is at X = -13. Link Design 2. the hydrodynamics of the fin surface.45 gms and the overall volume is 27624.00. Z = 0. Joint Top. 3.02 cu.4 CAUDAL FIN DESIGN: Caudal assembly shown in the Figure 3. 3. 3.A unique coaxial shaft holder is designed that supports both the pectoral fins shafts.II and III). Link Design 2.3. 60% of the system mass is concentrated in the head assembly that provides more stability for the overall system. Weighing around 47 gms.89 cubic millimetres and the overall mass is 455. Mass center of the assembly is at X = 46.

0.70 Iy = (-0.82 mm 149.the pectoral fins.00. Ix = (1.04.59 millimeters^2 X = 48. Aluminium. 1.49 gms 422042.00) Pz = 6059653.04) Px = 406991. -0. Silicone Foam 163677. 1.11 cubic millimetres Acrylic.08.mms. Y = 1.04 millimetres Taken at the center of mass.62.00. Z = 2. 0. 0. Calculations revealed that the maximum thrust is produced when the dimension of fin is 67.35 x 45 x 10.4 CUSTOM VISUALIZATION: PROPERTY VALUE 521.1 Custom Visualization of the designed Solidworks Model Fig 3.01.82 mm which produces a surface area of 8372.1 SolidWorks Model of the Carangiform Fish (BCF Swimming Motion) 44 .53 mm 905.65 1) 2) 3) 4) 5) 6) 7) 8) Length Width Height Mass Volume Material Surface Area Center of Mass Principal axes of inertia and principal moments of inertia: (grams * square millimetres ) 9) Table 3.01.47 sq.25.88 mm 106.08) Py = 6032018.66 Iz = (-0. 3.

2V 1.5 DESIGN PARAMETERS: WIDTH(mm) HEIGHT(mm) WEIGHT(gm) MATERIAL 50 45 STD STD 50 (MAX) 20 20 20 20 149.82 Table 3.38 905.69 90.51 47.5 106.82 STD STD 20 (MAX) 81.5 47.3.95 33.62 24.49 ACRYLIC ACRYLIC / SILICONE FOAM Hitec HS 485HB Hitec HS 5085 MG 7.37 521.88 65 10.69 114.69 90.53 285.6 Ah Ni Mh ACRYLIC ACRYLIC ACRYLIC ACRYLIC / SILICONE FOAM PARTNAME LENGTH(mm) HEAD PECTORAL FIN HEAD MOTOR PECTORAL MOTOR BATTERIES LINK 1 LINK 2 LINK 3 CAUDAL FIN TOTAL 130 67.35 STD STD 40 (MAX) 115.2 Design Specifications of the Solidworks Model 45 .53 106.32 70 45 100 (MAX) 61.45 47.45 33.

b) Link 1 with HS 5085MG motor and motor couplings. d) Right Pectoral Fin Assembly with pectoral shaft and holder.2 Individual Assemblies of a) Head with HS 485HB Motor.a) b) c) d) e) f) Fig 3. and f) Caudal Fin Assembly with motor coupling 46 . c) Link 2. coaxial holder. batteries and HS 5085MG Motors. e) Left Pectoral Fin Assembly with pectoral shaft and holder.

3 Individual Parts designed in SolidWorks which are assembled in the different assemblies shown in Fig 3.2. 47 .Head Link Caudal Fin HS 485HB HS 5085HB Coaxial Holder Battery Bevel Gear Link Holder Motor Shaft Caudal Fin Caudal Joint Top Head Joint Bottom Head Joint Pectoral Shaft Joint Bottom Joint Top Caudal Joint Bottom Pectoral Coupling Link Design Bottom Link Design 2 Pectoral Fin Motor Coupling Fig 3.

nonlinear plant models in Simulink to support the development and testing of control systems Provides a SolidWorks translator to enable the use of CAD tools to define mechanical models.6 SOLIDWORKS TO SIMMECHANICS: SimMechanics toolbox in MATLAB Simulink is very much used in Robotic Systems simulation. actuators like Body Actuator. “Base” frame or the “Follower” frame. Three basic concepts behind the mechanical system modelling in SimMechanics are “ENV” and “RootGround” blocks forms the base of the robot. Six DoF and Spherical. 3. each link or a joint is associated with the system through a coordinate frame that measures position and orientation with respect to the “World” frame. Body Sensor and Constraints and Driver Sensors. joint and constraint configurations. SimMechanics automatically creates a 3-D visualization of the mechanical model that can be animated during the simulation. Screw. Each link and joint of the Robotic system can be modelled with different utilities in the toolbox. Variable Mass and Inertia Actuator and Driver Actuator are readily available in the toolbox. and initial conditions These modes of analysis enable to test mechanical performance. Joint Actuator. Different types of joints like Revolute.6. Sensor systems can also be modelled with this powerful toolbox using the Joint Sensor.1 1) ADVANTAGES OF USING SIMMECHANICS: Provides a modelling environment for building three-dimensional rigid-body mechanical systems. The geometry in the visualization can be generated from 48 . select proper actuation systems and develop optimal control. Includes a variety of simulation techniques for analyzing motion and sizing mechanical components Enables the visualization and animation of mechanical system dynamics Enables the implementation of high-fidelity. Prismatic.3. 2) 3) 4) It supports four motion analysis modes: Forward Dynamics: Assigns driving forces and torques to the motion-driving actuators and calculates the resulting motions of the entire system Inverse Dynamics and Kinematics: Determines the forces and torques that the actuators must exert to produce user-specified motions Trimming: Identifies the steady-state equilibrium points to be used for linearization and system analysis Linearization: Extracts a linear model that predicts the system’s response to perturbations in driving forces.

SimMechanics Link exports critical data and mate information to a file that can be imported by SimMechanics.6.2 EXPORTING CAD ASSEMBLIES INTO SIMMECHANICS: Using SimMechanics Link. 3. The export also automatically creates STL files containing body geometry information that you need for visualizing the bodies in the model.3 REQUIREMENTS FOR CAD EXPORT AND MECHANICAL IMPORT: The full CAD translation is composed of two distinct steps with different requirements.6. a SimMechanics model can be automatically generated from a CAD assembly. Saving the animation produced during simulation to a separate file helps in further analysis independent of the simulation. The translator is an add-on which can be downloaded from [33]. ellipses representing the mass and inertia of each part can be displayed. The second step is the import of the Physical Modelling XML file and generation of the SimMechanics model. 1) 2) The first step is the export of the CAD assembly. which creates the Physical Modelling XML file and one or more STL file(s). The mate definitions in the CAD assembly are converted into the appropriate joints in the SimMechanics model. Step 2: The SimMechanics Link utility is the necessary intermediary that lets you convert CAD assemblies into SimMechanics models. In addition. Geometry from the CAD assembly is automatically converted into geometry files and associated with the proper body in SimMechanics. 49 . or realistic 3-D geometry can be attached to the bodies in the model. The intermediate step between CAD assembly and SimMechanics model is exporting an XML file in Physical Modelling format from the assembly.the coordinate systems defined in the model. The mass and inertia of each part in the assembly are converted to rigid bodies in SimMechanics. which references the STL files to visualize the bodies. 3. The SimMechanics importer then converts this XML file into a mechanical model. Step 1: MathWorks provides a CAD Translator for SolidWorks and other 3D CAD tools to convert the existing 3D model into SimMechanics model.

5 Successful translation of CAD Assembly to Physical Modelling XML file from SolidWorks.Fig 3. Fig 3.4 Exporting CAD Model from SolidWorks into a SimMechanics XML file Fig 3.6 Complete translation of CAD Assembly into Visualizable model 50 .

51 .3.xml’). Or dialog box option can be used by entering the “mech_import” command or “import_physmod” command in MATLAB command window. To generate a new model from a physical modelling XML file. links and environment information from the CAD model. Fig 3. This creates a SimMechanics model in Simulink with joints. the Physical Modelling XML file is converted into a SimMechanics model. command line option or dialog box option can be used.7 Importing a Physical Modelling XML file into a model.4 IMPORTING THE XML AND GENERATING A MODEL: To complete the CAD translation. To open the model from command line mech_import(‘cad_assembly. This SimMechanics model can be edited to make any necessary changes to the physical model or can be used as such as a sub system in the Robotic system. The XML model can be loaded from the GUI given below.6.

8 Import Physical Modelling dialog box option to load the XML model. The sensor and actuator blocks described in Section 3. 52 .5 INTRODUCING ACTUATORS AND SENSORS TO PHYSICAL MODEL: The SimMechanics model imported will not have any actuators or sensors to drive the model in a controlled environment.Fig 3. 3.6 can be included here to actuate the joints and measure the joint variables (angular position and velocity) for closed loop control.6. Tags (local or global) can be used to construct the overall system as a group of individual sub systems that will be easy to understand and also easy to edit.

Fig 3.9 SimMechanics Subsystem of the imported Physical Model with Actuators and Sensors 53 .

Select Update Diagram from the Edit menu. 3. For the input provided. In the SimMechanics menu of the visualization window. However static animation is the default option for SimMechanics Simulation which makes the model fixed to the RootGround. There is an option in Recording Settings to compress 54 .3. animating it is possible through SimMechanics itself. Detailed procedure for setting up the Visualization environment and animation is provided in [34]. The SimMechanics visualization window opens. If recording is activated.mdl is “modelname. in the status bar. Even though an actuator can be attached to the RootGround to make the whole model moving in the frame. select Configuration Parameters. Click the Start button. the AVI File Location file browser opens. This can be changed to “External Graphics File” *34] to import body geometries from external files (STL files) created from SolidWorks translation. To visualize the body motions: 1) 2) 3) 4) 5) From the Simulation menu.avi”. If the animation is stopped. The default is deactivated. the recording is stopped and saved as well. as discussed next. but it can be changed. By default the model properties are fed to the two inbuilt animation options. then Ellipsoids. Click OK. more options can be ventured using Virtual Reality Toolbox. Observe the robot arm motion in the SimMechanics window.6. If it is activated. Click Save to complete the AVI files specification. below the display. the kinematics and dynamics can be visualized through the visualization option in SimMechanics. Select Display machines after updating diagram and show animation during simulation. Location can be specified and name for your AVI file recording by selecting “Choose AVI File Location” from the Simulation menu. an AVI File Location file browser opens and requires selecting a location and specifying an AVI name.6.6 SIMULATING THE SIMMECHANICS MODEL: Once the SimMechanics block is constructed from the physical model. The default AVI name for a model called modelname. This major disadvantage in the SimMechanics Animation can be overcome by interfacing the SimMechanics Physical Model to VirtualReality toolbox. this AVI file name appears in the bottom middle of the full visualization window. The display now shows the robot fish’s component bodies as ellipsoids. then the SimMechanics node. Convex Hull or Ellipsoid Bodies. When recording is activated. select Machine Display.7 ACTIVATING AND CONTROLLING ANIMATION RECORDING: • Animation recording can be activated by clicking the “Store Animation in AVI File” button on the toolbar. The simulation begins. • Recording settings can be controlled using the Simulation menu.

Fig 3.11 SimMechanics animation of the physical model as External Animation File (STL) 55 .10 SimMechanics animation of the physical model as Ellipsoids Fig 3.

compressing it gives acceptable video quality at a lower file size.2 REPRESENTING BODIES AS VIRTUAL OBJECTS: Each body can be represented by a virtual object encoded in a . Few settings that need to be followed up while making this translation are 1) 2) 3) “Save all components of the assembly in a single file” option should be disabled to create inlined URL files in the virtual world created. 56 . Fig 3. Appropriate unit should be selected from the list for the entire model. The Simulink 3D Animation documentation [34] and VRML books explain how to create virtual objects and assemble them into virtual worlds.wrl file should be created to represent the virtual world that refers to body wrl files and to place and orient these bodies in the larger scene. VRML 97 standard should be selected from the Output as Version drop down list.wrl file using the Virtual Reality Markup Language (VRML) translation. A master .7. Creating a virtual animation requires a new or existing virtual world for a specific model and an interface between them. 3.wrl file. A Virtual World can be created and populated with bodies represented as virtual objects using Virtual Reality Modelling Language (VRML). A virtual object’s position and orientation can be defined with respect to: • The overall virtual world. corresponding to the SimMechanics coordinate system World. When animation is very long.12 Virtual Reality Export settings from SolidWorks 3.1 VISUALIZING WITH A VIRTUAL REALITY CLIENT: SimMechanics visualization can be bypassed and a mechanical animation can be created in a virtual world of specific design. Then interfacing the virtual world with the SimMechanics model is a piece of cake to get any kind of complicated animation. 3.7.the video file generated.7 SOLIDWORKS TO VIRTUALREALITY TOOLBOX: Solidworks provides a support to Virtual Reality tool by which the CAD model developed in SolidWorks can be converted to a .

13.a) VR World created in VR Realm Builder from imported SolidWorks inlined wrl file Fig 3.• Another body in the machine. corresponding to SimMechanics Body coordinate systems.a) VR World imported into VR Realm Builder from SolidWorks for each link Fig 3. but at least one body’s position and orientation with respect to the overall virtual world must be defined.b) VR World created in VR Realm Builder with transforms for each link Fig 3. Fig 3. 57 .b) VR World created in VR Realm Builder with transforms for each link with inlined url files Body references to other bodies can be nested in VRML hierarchies.14.13.14.

To avoid this issue. And when the wrl files inlined are called as per the tree hierarchy as show in Figure 3. 3. its position and orientation are defined with respect to the next body up the hierarchy. Background. One problem with converting the SolidWorks model is when the wrl file is created. • If a body should be only translated. This requires connecting Body Sensor blocks to the Bodies that should be animated in the model.4 INTERFACING SIMMECHANICS MODELS WITH VIRTUAL WORLDS: To animate a body.wrl file contains a hierarchical tree starting with the Transform node. 3. View Points.7.3 ISSUE WITH WRL FILE IMPORT: When the SolidWorks model is exported into VRML file with the settings mentioned above. If a body is nested below another body. Example: Define a new Body CS on a body to connect the Body Sensor. omit translation field from its Transform node. neighbouring body in the VRML files. Connect the Body Sensors to Body coordinate systems (CSs) on the bodies whose motions should be animated. Extra steps need to be taken to export the signals of a body sensor to your virtual world: 1) 2) The Body Sensor’s CS reference origin and orientation should follow the body’s defining VRML hierarchy. the “Translated from origin of” field of the new Body CS should be set to the origin of the CG CS of the second body. then creating an interface that animates the virtual bodies with the body sensor motion signals [35]. a blank space is prefixed and post fixed to the file name. The Body block reference [35] discusses how to create and configure Body CSs. all the parts or assemblies in the model are added as inlined URLs.Initial states of the bodies should be placed and oriented corresponding to the initial state of the SimMechanics simulation.13 a) and the files are not getting loaded. omit rotation field from its Transform node.7. If VRML body’s position is defined with respect to the center of gravity (CG) of a second. Among Transform’s fields. Directional Light and Navigation Info can be added to enhance the functionalities of the Virtual World created [34]. those blank spaces need to be manually deleted or else after opening the file in V Realm Builder “save as” the wrl file as a new file to solve this issue. the motion has to be measured in SimMechanics simulation and that information has to be exported to the virtual world. Each body’s . Creating a virtual world gives great flexibility in representing the machine: • Inclusion or omission of bodies is possible. 58 . • If a body should be only rotated. translation and rotation fields are used to specify the body’s position and orientation in space.

enter the name of the VRML file that represents the model’s virtual world in the “Source file” field in the World properties area. the [x.wrl files. VR Sink block in Simulation 3D Animation block library can be used to accomplish this. “vrlib” at the command line opens the Virtual Reality Library. Choose Absolute (World) or Local (Body CS). The [3 x 3] Rotation matrix check box should be selected if the body’s rotational motion needs to be animated. Position (x.15 Body Sensor SimMechanics block added to the Links.7. VR Sink block can be dragged and dropped into the model.z) and Rotation Matrix [3x3] are enabled to measure the rotation parameters. Fig 3. This coordinate system should be the same as the coordinate system used to define the body’s position and orientation in the VRML files. 5) Choose the coordinate system in which the body motions are measured in the “With respect to coordinate system” pull-down menu.5 1) 2) 3) 59 . z] Position check box should be selected if the body’s translational motion needs to be animated. While opening the VR Sink dialog box.3) 4) In the Body Sensor dialog. This is 3.y. ANIMATING THE VIRTUAL WORLD BODIES: Animating the virtual bodies requires interfacing the body sensor signals in the SimMechanics model with the VRML translation and/or rotation fields in the . y.

• Directly connecting the rotational motion signal line to the VR Sink is not possible.translation” input port on the VR Sink. enter the file’s path relative to the model.wrl files representing the component bodies of the model.z). In the VRML Tree window. If the virtual world VRML file is not in the same folder as the model.6 CONVERTING BODY SENSOR SIGNALS INTO VRML FORMAT: Before connecting the Body Sensor Output signals to the VR Sink block. • Translational motion signal line should be connected directly from the output port of the Body Sensor to the “node. Rotation and/or translation check boxes can be selected as needed for each body.16 VR Sink Block Parameters dialog box 3. The translational motion signal should refer to the same coordinate system used to define the body’s position in the VRML files.7. A Simulink input port appears on the block icon for each of these selected check boxes.4) the file that refers to the other .wrl file appears. The VRML node tree directly accepts translation motion as a 3-vector signal of rectangular coordinates (x. the node list of the virtual world . following modifications need to be done for valid use in VRML. Tree of each component body in the list after expanding shows the body’s check box list. The Body Sensor output represents orientation with a 3-by-3 rotation matrix R. while VRML 60 . Fig 3.y.

Animation videos are published in [41].17 Subsystem connecting Body Sensor block from SimMechanics system to VR Block 61 . Then the latter block is connected to the corresponding “node. where n=(nx.accepts orientation represented as the axis-angle 4-vector form * n θ +. In the SimMechanics Utilities library. For each rotational motion signal. The Rotation signal from the Body Sensor block should be connected to the RotationMatrix2VR block. This block converts the 3-by-3 R matrix signal into the 4-vector VRML form required for animation.rotation” input port on VR Sink for that body. ny. a “RotationMatrix2VR” block should be added into the model. Fig 3. SimMechanics model now animates the virtual world using the VRML tools. nz) is a 3-vector representing the rotation axis and θ is the rotation angle. there is a “RotationMatrix2VR” block.

19 Virtual Reality Simulation in Simulink using VR Sink Block.18 Virtual Reality Subsystem with VR Sink Block Fig 3. 62 .Fig 3.

CHAPTER 4 SIMULATION AND RESULTS Since the controllability and manoeuvrability of the fish relies on the internal shape (the joint angle) and the oscillating frequency f of the tail for speed. 𝑡 = 𝑐1 𝑥 + 𝑐2 𝑥 2 [sin 𝑘𝑥 + 2𝜋𝑓 ∗ 𝑡 ] 63 . Oscillating frequency 𝑓. speed control of the RoboFish in 2D plane is considered. are utilized in our method to achieve different swimming speeds [37]. oscillatory amplitude of the posterior body and length of the oscillatory part. in particular.1 Simulink block diagram of the whole system with SimMechanics and VR subsystems 4. Fig 4.1.1 as: 𝑦𝑏𝑜𝑑𝑦 𝑥. For an up-down-motioned robot fish. the robot fish’s motion control in a 2-D plane is decomposed into the speed control and the orientation control. 4. For now. another form of body-wave equation is easily derived from Eqn 1.1 SPEED CONTROL: It is observed that fish in nature uses a combination of frequency and amplitude for speed control.1 SPEED CONTROL BASED ON OSCILLATING FREQUENCY: Substituting 𝜔 for 2𝜋𝑓. submerging/ascending control can be implemented in a 3-D workspace.

2 General Block Diagram of the Computed Torque Control Method using the desired joint angles.1. 4.2. When a closed loop system is formulated. Thrust is hence changed and so did the swimming speed.3. it is better to go for oscillatory frequency control because the joint velocities are directly related to the frequency term of the body wave and speed controller of the 6 Servo Motors can be driven using a trajectory generator which calculates the desired joint parameters from the expected forward velocity and attack angle of the RoboFish using Inverse Kinematic approach on the system dynamics equations. 64 . oscillatoryamplitude-based speed control method adjusts the transverse movement at a constant oscillating frequency. the swimming speed increases with the oscillating 𝑓. 𝑡 = 𝑐1 𝑥 + 𝑐2 𝑥 2 is chosen to produce different body-waves by different values of 𝑐1 and 𝑐2 .1. Fig 4. and 𝑓 will approximate a constant when the desired speed is achieved.2 SPEED CONTROL BASED ON OSCILLATORY AMPLITUDE: A second order amplitude envelop 𝑦𝑎𝑚𝑝𝑒𝑛𝑣𝑒𝑙𝑜𝑝 𝑥. 4.3 COMPUTED TORQUE CONTROL METHOD: In the general Lagrangian system equations Eqn 2. computed torque control is the most intuitive method to implement. Fig 4.As a general tendency. In practice.3 Functional Block Diagram of the RoboFish Control System using the control method shown in Fig 4. velocities and accelerations generated using the Trajectory Generator.

65 0. and the optimized value that provides maximum forward velocity [26] is given in the Table 4. The joint theta values are obtained from the SimMechanics joint blocks and plotted below. various combinations of Oscillating Frequencies and Amplitudes for all the six joints (links.325 Pectoral 1.19 2nd Link 1.275 4thLink (Caudal) 1.65 0.225 3rd Link 1. Fig 4.The system is first driven with zero input and gravity acting on it in –y axis.65 0.65 0.65 0. 1st Link Oscillating Frequency (Hz) Oscillating Amplitude (rad scaled) 1.30 Table 4.1 Optimal values of Oscillating Frequency and Oscillating Amplitude of each of the links and pectoral fins The system is driven with the above given optimal frequencies and amplitudes. caudal and pectoral fins).4 Joint theta values obtained from the Open Loop SimMechanics System 65 . After analyzing and verifying the system response.1.

comes the questions such as: What exactly is going on in the flow above and behind 66 . consider the fundamental questions rose.CHAPTER 5 FUTURE WORKS AND THINGS TO EXPLORE Based on this background. As with coordinate or modal systems. The RoboFish only experimentally [39] reduced its drag by about half. redesigned based on the information collected? These results also raise a host of intriguing new questions such as: What happens at higher speed. in such a way as to be easy to observe. but obviously. and to comprehend. 2) What are the parameters which control this tuning? The parameters which control this tuning are the set of travelling body-wave/tail-foil control parameters given by: the forward speed.1 OPEN AREAS OF RESEARCH: In terms of possible direction of future work. this flow can be altered by the correct body-wave/tail-foil motion to use the hydrodynamics in a beneficial way. the tail fins maximum angle of attack. and how the RoboFish's experimental results address them: 1) Can the flow past an undulating body propelled by an oscillating foil be "tuned" such that the body's drag is reduced and its thrust is enhanced in a beneficial way? Yes. three main areas of research stick out. assuming the RoboFish has a purely internal mechanical efficiency in the range of 90%. as both Gray's paradox suggests and the results of the experiments [39] conclusively show. clearly it can be. it can. there is probably an infinite variety of ways to express the same characteristics. what is actually going on in the flow above and behind the body and can this be replicated in a free swimming fish? 5. For the sake of argument. These may not be the only or the optimal set of such parameters. it can be claimed that its apparent reduction in drag is in fact probably in the range of 60%. to measure. by the biological data. but this particular set is explicitly tied to body dynamics. the wavelength of the travelling body wave. 4) Can a man-made (non-biological) system successfully exploit this phenomenon? Yes. Obviously Mother Nature is the better engineer. by extension. 3) What is the maximum benefit that can be achieved? Gray's paradox implies that a seven-fold reduction in drag be achieved. But a more appropriate question is: What level of performance can be achieved by a man-made system. there may still be a way to go. linear amplitude of the body wave a set of fluid dynamics parameters. First.

faststarting. it is possible that much better levels of swimming performance can be achieved. 5. If this THD can pick up on and be excited by the dynamics of the fish. even greater levels of performance may occur. Secondly. CPG can be adopted to drive the multi-fin propulsor for RoboFish’s propulsion and manoeuvring. Are there as of yet unknown. namely fin rays’ oscillation about their bases. They can potentially accelerate at levels exceeding 10 g and turn in less than half a body length at full speed. the RoboFish prototype is designed to really only do one thing. This is a new thought of making use of the achievements in biological cybernetics to improve the performance of robots. Rough calculations indicate that installing a carefully designed THD can reduce the power requirements of a direct drive by half. The most common questions asked are: When are you going to take it off the sled and when will it be free swimming? The level of complexity involved in a free swimming RoboFish is many times greater than in the current design. 67 . inspection of the power data revealed the importance of incorporating some form of Tuned-Harmonic-Drive (THD) into the design of any future oscillation system. Thirdly.the RoboFish as it swims and what is the effect of variations in the body-wave/tail-foil parameters on this flow? Speculating on the answers to these questions is well beyond this discussion. "beneficial hydrodynamics" that biological fish exploit to perform their amazing manoeuvres? We believe that the understanding. actuators and controller technologies. technology and design expertise is there to build a free-swimming RoboFish. Biological fish add a whole host of amazing manoeuvres in their swimming. swim in a straight line well. The amount of fundamental new information that could be collected by such a free swimming system is immense. but using flow visualization techniques is clearly the next logical step to take. the development of an accurate (numerical) model of the flow would be invaluable. 5. If the main structural element of future fish can be carefully designed such that its primary model shape corresponds to the wave form required for swimming.2 CENTRAL PATTERN GENERATOR (CPG): CPG neural network control imitates motion-controlling mechanism of animals to organize structures and properties of control network for rhythmic motion.3 CONCLUSION: A free-swimming RoboFish could be used to explore a wide range of efficiency. but is the next logical step in the progression. In addition. Given that the control surface of the multi-fin propulsor obviously performs typically rhythmic motion. sharp turning and three-dimensional manoeuvring issues as well as act as a test bed for a whole host of new marine sensors.

6).0.45 47.00]. m = [61. subs(T.th3}.96 -0.93 64.dh_link.84 -33. 0.dh_link.00 -0.83. real .00 1. sin(th) cos(th)*cos(alp) -cos(th)*sin(alp) a*sin(th). 0.96 -0.29 0.dh_link6).01]. % all units are in mm % l = [167.dh_link3).89 -0. 0.90 56.29 0. {l(6).0.00 0. {l(3).01].m M Matrix calculation. % i_head = [1.00 1.0.01 -0. 0.00.00 -0.30].00 1.32]. {l(2). i_pect_r = [-0. D=zeros(6.00.0.0.dh_link.85 56.th4}.29 167.00 0.32 24.dh_link.00 -1.th}.03 -0.00].00 1.99 73.00 0.45 33.00.00]. 0.00 -0.00.68 89.*1e-003.01 0.03 -1.03 -0. -0.th6}. subs(T. subs(T.00 0.0.00].th5}.38 24. subs(T.00 -0.03 1.th2}. i_caudal = [0.30 -33. dh_link1 dh_link2 dh_link3 dh_link4 dh_link5 dh_link6 T10 T21 T32 T43 T51 T61 = = = = = = = = = = = = {l(1).pi/2.00].*1e-003. if (size(q.0. {l(5).2) < 7) disp('Not enough arguments to work with.85].. Inertial Mass Matrix for the Robotic Fish with 3 Links. T20 = T10*T21. -0. dh_link = {a.00 -0.dh_link4). subs(T.dh_link.').dh_link. % System Model Parameters % a1 = 28. 0. -0. i_link2 = [0. 0 0 0 1]. 1 Caudal Fin and 2 Pectoral Fins (identical). real . -0.56. return end T=[cos(th) -sin(th)*cos(alp) sin(th)*sin(alp) a*cos(th).0.96 -0.. input vector 'q' has 6 joint theta values function D = DParams_Fish_Withvalues(q) syms alp a d th .00 -0.00 0.th1}.APPENDIX A APPENDIX A: MATLAB CODES % % % % DParams_Fish_Withvalues.00. i_link3 = [0.56 -0.00.29.83.83 64. i_pect_l = [0.46 0.56 -0.00 1.alp. 0. 0.dh_link5). syms t th1 th2 th3 th4 th5 th6 th1d th2d th3d th4d th5d th6d .96 0.96 -0. 0 sin(alp) cos(alp) d. i_link1 = [0.0.46 0. 0.29 0.83 0. l =[14 89.d.dh_link2). subs(T. {l(4).95 33. % Homogeneous Transformation Matrices % T10=T10.00.83 -0.96..56.0.dh_link1).00.29 0. 68 .-pi/2.29 -0..1)+size(q.89 -0.00 0. -0.

q(2). {th. old_thd={'diff(th1(t). subs(R.0}). T60temp = diff(subs(T60(1:3.new_q).old_th. alp}.new_q).new_th).old_th.t).4). T10temp = diff(subs(T10(1:3.new_th. JD1 = subs(JD1.old_th. {q(4).old_th.new_th). {q(5). {th.*JD3.'*JD4)+(m(5).*JD1.th6}. T30temp = diff(subs(T30(1:3.'diff(th4(t).q(3). JD4 = subs(JD4.4). % R10 R20 = R30 = R40 = R50 = 69 . 'th5(t)'.'*JD3).'diff(th5(t).0}). {q(3).new_thd). JD3 = subs(jacobian(subs(T30temp. old_th = {th1.'*JD1)+(m(2).'th6(t)'}. JD2 = subs(jacobian(subs(T20temp. {q(1). T50temp = diff(subs(T50(1:3.new_thd).old_thd.v).t). sin(th) cos(th)*cos(alp) -cos(th)*sin(alp).new_th).. +(m(4).old_th).v).new_th).-pi/2}).new_thd).new_q).. R20*R32.t).new_q).0}).old_th.old_th.*JD4.*JD6. alp}..th2.new_th. subs(R.new_th.4). t)'. {q(2).th3. 0 sin(alp) cos(alp)].old_th).'*JD2)+(m(3).'th2(t)'.*JD2. JD6 = subs(JD6. t)' . % Jacobian Vector v=[th1d th2d th3d th4d th5d th6d].old_th).'*JD6).old_th.t).pi/2}). alp}. {q(6).old_th.'th4(t)'.old_th.'diff(th6(t).4).th5. JD4 = subs(jacobian(subs(T40temp. % D Matrix for Rotational Motion % Rotation Matrices R=[cos(th) -sin(th)*cos(alp) sin(th)*sin(alp). JD1 = subs(jacobian(subs(T10temp.th3d. .new_th. JD5 = subs(jacobian(subs(T50temp.T30 T40 T50 T60 = = = = T20*T32. JD2 = subs(JD2. JD3 = subs(JD3.old_thd. alp}.q(6)}. subs(R.old_thd. R10 R21 R32 R43 R51 R61 = = = = = = subs(R. t)'}.0}). R10*R51. T30*T43.new_q). t)'.old_th.old_thd.old_th.th4.4).th4d. T20temp = diff(subs(T20(1:3.v). new_q = {q(1). 'th3(t)'.new_q).'diff(th2(t).th6d}. alp}. % D matrix of Transational Motion D_Trans = (m(1).t). {th. T10*T61.new_thd). subs(R. t)'. R10*R21.new_thd).old_th.t). {th.4).old_th). new_th = {'th1(t)'.new_th).new_th).old_thd. T40temp = diff(subs(T40(1:3. subs(R. new_thd={th1d.q(4).v). JD5 = subs(JD5. = R10. t)'.th5d.q(5).v). R30*R43.th2d.v).new_th.old_thd.'diff(th3(t).new_thd).old_th).old_th). T10*T51. {th. JD6 = subs(jacobian(subs(T60temp.*JD5. {th. alp}..'*JD5)+(m(6).new_th.

5 0.83 64.93 64. JR4.' for 0 0 0 0 0 0 0 0 0 0 0 0 * * * * * * Moment 0 0 0. sin(th) cos(th)*cos(alp) -cos(th)*sin(alp) a*sin(th).' JR6. 1 1 1 0 0 0]. % AI=inv(A).') * * * * * * JR1. syms alp a d th ms ls .5 0. % left fin params I66 = (1/12)*m(6)*l(6)^2*i_pect_r. 1 1 0 0 0 0].') R50. syms th1 th2 th3 th4 th5 th6 th1d th2d th3d th4d th5d th6d . % Moment of Inertia Matrices Calculation % 1st link params I11 = (1/12)*m(1)*l(1)^2*i_link1. 0 0 0 0.R60 = R10*R61. % Jacobian JR1=[0 0 0 JR2=[0 0 0 JR3=[0 0 0 JR4=[0 0 0 JR5=[0 0 0 JR6=[0 0 0 DRot1 DRot2 DRot3 DRot4 DRot5 DRot6 = = = = = = 0. real .') R30. % 2nd link params I22 = (1/12)*m(2)*l(2)^2*i_link2.. 0 0 0.. qd) % clear all. end -------------------------------------------------------------------------------------------------------------------------function H = HParams_Fish_Withvalues(q.5 0.' JR3.') R60. % -inv(A*CI*D-B) -inv(C*AI*B-D)].' JR4.') R40. 0 0 0. CI=inv(C).5 Matrices 0 0 0. 0 0 0.5 0.') R20.30]. 0 0 0. % inv(A B.' JR5.84 -33. % caudal fin params I44 = (1/12)*m(4)*l(4)^2*i_caudal. % D inverse calculation % D_inv = inv(D). BI=inv(B). JR2. JR5. % right fin params I55 = (1/12)*m(5)*l(5)^2*i_pect_l. % Model Parameters l =[14 89. 1 0 0 0 0 1]. C D) = [AI+inv(A*CI*D*BI*A-A) CI+inv(C*AI*B*DI*C-C).*1e-003. * * * * * * R10. 1 0 0 0 1 0]. % clc. * * * * * * of inertia terms 1 0 0 0 0 0]. T=[cos(th) -sin(th)*cos(alp) sin(th)*sin(alp) a*cos(th). JR6.30 -33. 0 0 0. 0 0 0 0. 0 0 0 0. 0 * * * * * * JR1.5 0. 1 1 1 1 0 0]. real . 0 0 0 0. % peduncle params I33 = (1/12)*m(3)*l(3)^2*i_link3. % Inertial type symmetric Matrix D = D_Trans + D_Rot.. (R10 (R20 (R30 (R40 (R50 (R60 I11 I22 I33 I44 I55 I66 D_Rot = DRot1 + DRot2 + DRot3 + DRot4 + DRot5 + DRot6. 0 0 0 1]. % length in m 70 .. DI=inv(D). 0 sin(alp) cos(alp) d.' JR2. JR3. 0 0 0 0.

th3.0.q(5).dh_link. for j = 1:n s10 = genvarname(['H' int2str(i) int2str(j)]). 0 -1/2*m(4)*l(4). IP33 = [ 1/3*m(3)*l(3)^2 0 *m(3)*l(3) 0 0 m(3)].dh_link.dh_link. T51=subs(T. qd(4).q(2). for k = 1:n s9 = genvarname(['H' int2str(i) int2str(j) int2str(k)])... IP66 = [ 1/3*m(6)*l(6)^2 0 *m(6)*l(6) 0 0 m(6)]. 0 -1/2*m(2)*l(2).alp. -1/2 . -1/2 .32 24. T10=subs(T.0 0 0 0 . % H Parameter 2nd Term n=6.dh_link.-pi/2. eval([s11 '=0.q(6)}.dh_link. 0 -1/2*m(3)*l(3). % Subs parameters vectors old_th = {th1.dh_link. -1/2 . 71 .. T61=subs(T. for i =1:n s11 = genvarname(['H' int2str(i)]).0.. -1/2 .d.95 33.. 0 -1/2*m(6)*l(6).0. 0 0 0 0 .m = [61. th4. {l(5).38 24. eval([s10 '=0.th3d.th6}. T32=subs(T.th4d. dh_link1 dh_link2 dh_link3 dh_link4 dh_link5 dh_link6 = = = = = = {l(1). 0 0 0 0 . qd(6)].th3}. th2.dh_link5).. 0 0 0 0 .th2d. 0 0 0 0 . IP55 = [ 1/3*m(5)*l(5)^2 0 *m(5)*l(5) 0 0 m(5)].']). IP44 = [ 1/3*m(4)*l(4)^2 0 *m(4)*l(4) 0 0 m(4)]. 0 0 0 0 .0. 0 -1/2*m(5)*l(5). new_q = {q(1). -1/2 .0. % mass in Kg new_qd = [qd(1).th2}.q(3). {l(2).0 0 0 0 .q(4).. new_thd={th1d.th6d}.45 33... dh_link = {a. % Homogeneous Transformation Matrices % T10=T10.0. qd(5).0.0 0 0 0 . th6}. th5.']).pi/2.*1e-003.th1}.. qd(2). {l(4).dh_link1).0 0 0 0 . qd(3).0.th4}.0 0 0 0 .45 47. T30=T20*T32. T21=subs(T.0. T40=T30*T43..th}. -1/2 . T50=T10*T51.th5}. {l(3). T60=T10*T61.0 0 0 0 .. T20=T10*T21.dh_link6). {l(6).0.32]. IP22 = [ 1/3*m(2)*l(2)^2 0 *m(2)*l(2) 0 0 m(2)]. 0 -1/2*m(1)*l(1).th5d. 0 0 0 0 . T43=subs(T. % Pseudo Moment of Inertia Matrices IP11 = [ 1/3*m(1)*l(1)^2 0 *m(1)*l(1) 0 0 m(1)].dh_link4).dh_link3).dh_link2).

''. syms alp a d th .th6}.old_th..0. 0 0 0 1]. 72 . sin(th) cos(th)*cos(alp) -cos(th)*sin(alp) a*sin(th). temp_2 = []. dh_link1 dh_link2 dh_link3 dh_link4 dh_link5 dh_link6 = = = = = = {l(1).0.30 -33. real .']).32 24.d.45 33.. H4. real .th5}. T10=subs(T.']). end eval([s11 '=' s11 '+' s10 '. syms th1 th2 th3 th4 th5 th6 th1d th2d th3d th4d th5d th6d .th1}. T32=subs(T.m % Gravity Vector for the Robotic Fish System.0.dh_link. temp_1 = subs(temp_1. {l(4). {l(6). = [61.th2}. for x=r:n temp_1 = [].th' int2str(i) ').dh_link4).0.0.th4}.30].32]. H3.th' int2str(k) ').alp. T=[cos(th) -sin(th)*cos(alp) sin(th)*sin(alp) a*cos(th). H2.dh_link3).83 64. = 9. T61=subs(T.th3}.*1e-003.0.eval([s9 '= 0. {l(2).']).45 47.95 33.']). end eval(['H' int2str(i) '.old_th. temp_2 = subs(temp_2. eval(['temp_1 = diff(diff(T' int2str(x) '0.dh_link.th' int2str(j) ').']).93 64.dh_link5). eval([s9 ' = ' s9 '+ trace(temp_1 * IP' int2str(x) int2str(x) '* temp_2)..dh_link2).-pi/2.']). {l(3).dh_link6). Input term ‘q’ is a 6 element vector % providing the joint theta values to the function.*1e-003. r=max([i j k]).0.0. function G = GParams_Fish_Withvalues(q) % clear all.pi/2. % l m g System Model Parameters =[14 89.38 24. end -------------------------------------------------------------------------------------------------------------------------% GParams_Fish_Withvalues. H5. T21=subs(T.dh_link. T51=subs(T. H6].84 -33.new_q).new_q).dh_link. 0 sin(alp) cos(alp) d.dh_link.81. end eval([s10 '=' s10 '+' s9 '* qd(j) * qd(k).th}. {l(5). % in m/s^2 dh_link = {a..0. % clc. T43=subs(T.']).dh_link1). eval(['temp_2 = diff(T' int2str(x) '0.dh_link. end H=[H1.0.

th3.']). l2 = 89.G6]. r33 = [-l(3)/2. clear all..q(2).new_q).1]. % Gravity Vector Parameters Calculation from Homogeneous Transformation % Matrices n=6.30. th6}. r55 = [-l(5)/2.0.']).1].. int2str(i) ')*r' int2str(j) int2str(j) '. lc = 14. r66 = [-l(6)/2.30. =0.93.0. =0. =0. r22 = [-l(2)/2. eval([s14 '=0.84.0.0.84.G5.52*89. % Subs parameters vectors old_th = {th1. T40=T30*T43. % lc is a constant. end -------------------------------------------------------------------------------------------------------------------------% HydroDynamic_Forces. l6 = -33.m(j) *G*diff(T' int2str(j) '0. =0.old_th. T30=T20*T32. l1 = 14. T60=T10*T61. eval([s14 '=subs(' s14 '.. l3 = 64.39*-33. 82 mm syms t t1 t2 t3 t4 t5 t6 t1d t2d t3d t4d t5d t6d . l5 = -33.83.0.52*64.q(6)}.q(3). for j = i:n eval([s14 '=' s14 '. T20=T10*T21.G4.52*64. real . % Gravitational Matrix for any link i G=[0 -g 0 0].30.m % Generalized hydrodynamic forces acting on each link are summarized. th5. lc1 lc2 lc3 lc4 lc5 lc6 =0. th4.1].1].q(5).1].60.83.q(4).1]. T50=T10*T51.0. l4 = 64. new_q = {q(1). 73 .93. clc. th2.0.0.0. =0. r44 = [-l(4)/2. end end G=[G1.G2.0.G3.39*-33. for i=1:n s14 = genvarname(['G' int2str(i)]). r11 = [-l(1)/2..']).% Homogeneous Transformation Matrices % T10=T10.0.0.52*14.th' .

x2f = l1*cos(t1) + (lc2)*cos(t2). x5f = lc5*cos(t5)*cos(t1) + lc*sin(t1).2 % Velocity Calculation 74 . y1f = (lc1)*sin(t1). new_t). y3f = l1*sin(t1) + (l2)*sin(t2) + (lc3)*sin(t3).t)*cos(t1) + diff(y1f. old_t = {'t1'. % effective area of the link-1 in mm^2 mu1per = p * C1 * S1/2. 't2'.'t2(t)'. v1per = diff(x1f.'diff(t6(t).C1=1. new_t = {'t1(t)'. F1per. old_t. t)'. 't4'}.1 F1f = 0.'t4(t)'}. new_t).1 F1hydro = F1per + F1par + F1f. x1f = subs(x1f. F1per = subs(F1per.5*F1par. % Density of Water % Linear Velocity Calculation % Assumption 1 : the initial position of the first link as (0. new_td={'t1d'.new_td). y1f = subs(y1f. F1par = subs(F1par. F1par = -mu1par * v1par * abs(v1par).28. y5f = -lc*cos(t1) + lc5*cos(t5)*sin(t1). % Composite Dynamic Forces on LINK . x3f = l1*cos(t1) + (l2)*cos(t2) + (lc3)*cos(t3). new_tdp={'t5d'. old_t.0) % Assumption 2 : Centroid of each link l is at the center of the link % (l/2) % Centroid Calculations x1f = (lc1)*cos(t1). F1hydro. old_td.'diff(t4(t).'t2d'. 't3'.t)*sin(t1). t)'. old_td. y2f = l1*sin(t1) + (lc2)*sin(t2). t)'. new_t).'t3d'. t)'. F1per = -mu1per * v1per * abs(v1per). x6f = lc6*cos(t6)*cos(t1) + lc*sin(t1). % Shape dependent drag coefficient C2=0.1 % Velocity Calculation S1=0.295. t)'}. % Frictional Drag on link . y6f = lc*cos(t1) + lc6*cos(t6)*sin(t1).diff(y1f. % FORCES ACTING ON LINK ONE %Pressure on link . F1par. new_t). old_t.t)*sin(t1) . p=1. old_tdp={'diff(t5(t).'t6d'}. t)'}. 't3(t)'. v1par = diff(x1f. % FORCES ACTING ON LINK TWO %Pressure on link .0092100. new_td). % Approach Stream Pressure on link -1 mu1par = p * C2 * S1/2. x4f = l1*cos(t1) + (l2)*cos(t2) + (l3)*cos(t3) + (lc4)*cos(t4).'diff(t2(t).'t4d'}.'diff(t3(t). old_t. old_td={'diff(t1(t).t)*cos(t1). x1f = subs(x1f. y1f = subs(y1f. y4f = l1*sin(t1) + (l2)*sin(t2) + (l3)*sin(t3) + (lc4)*sin(t4).

diff(y3f. F2par = -mu2par * v2par * abs(v2par). y3f = subs(y3f.3 F3f = 0.t)*cos(t2).5*F3par. % FORCES ACTING ON LINK FOUR %Pressure on link .t)*cos(t2) + diff(y2f. F3per. new_t).new_td). F3per = -mu3per * v3per * abs(v3per).006000. % FORCES ACTING ON LINK THREE %Pressure on link . new_t). new_t). F2per. old_t. new_t). v3per = diff(x3f.t)*sin(t3). % Approach Stream Pressure on link -3 mu3par = p * C2 * S3/2.diff(y2f. y4f = subs(y4f. y2f = subs(y2f. old_td. F2par. % effective area of the link-1 in mm^2 mu3per = p * C1 * S3/2.S2=0.new_td).t)*cos(t3). y3f = subs(y3f.3 F3hydro = F3per + F3par + F3f. new_td). F3par = subs(F3par. 75 . new_t). % Approach Stream Pressure on link -2 mu2par = p * C2 * S2/2.t)*sin(t3) . old_t. new_t). v3par = diff(x3f. old_td.3 % Velocity Calculation S3=0. F3par.t)*cos(t3) + diff(y3f. % Frictional Drag on link . v2par = diff(x2f.2 F2f = 0. % Composite Dynamic Forces on LINK . x3f = subs(x3f.4 % Velocity Calculation S4=0. F2par = subs(F2par. y2f = subs(y2f.t)*sin(t2).2 F2hydro = F2per + F2par + F2f. % effective area of the link-1 in mm^2 mu4per = p * C1 * S4/2. old_td. F3per = subs(F3per. old_t. new_t). new_t). old_t. % Composite Dynamic Forces on LINK . old_td. F2per = subs(F2per. % effective area of the link-1 in mm^2 mu2per = p * C1 * S2/2. old_t. new_t). old_t.t)*sin(t2) .5*F2par. x2f = subs(x2f. F2hydro. old_t. new_td). x4f = subs(x4f.00183600. old_t.00183600. F2per = -mu2per * v2per * abs(v2per). v2per = diff(x2f. F3par = -mu3par * v3par * abs(v3par). x2f = subs(x2f. old_t. old_t. % Frictional Drag on link . F3hydro. x3f = subs(x3f. new_t).

t)*cos(t1)*sin(t6) + diff(y6f.t)*cos(t6) + diff(y6f. new_t). new_t). FLper. VLper = diff(x5f. y5f = subs(y5f. old_td. old_t. -------------------------------------------------------------------------------------------------------------------------- 76 .t)*sin(t5). new_td). F6par. x6f = subs(x6f. FRper = -muRper * VRper * abs(VRper).diff(y4f. new_tdp). new_tdp). F4hydro. % Composite Dynamic Forces on PECTORAL FINS Fpectoral_hydro = FLper + F5par + F5f + FRper + F6par + F6f. F4per = -mu4per * v4per * abs(v4per). v4par = diff(x4f. new_td).t)*sin(t4). F4par = subs(F4par. old_t. new_t).1 F4hydro = F4per + F4par + F4f. % Approach Stream Pressure on LEFT PECTORAL FIN mu6par = p * C2 * S6/2. old_t.t)*sin(t4) . y6f = subs(y6f. % Approach Stream Pressure on LEFT PECTORAL FIN mu5par = p * C2 * S5/2. FLper = -muLper * VLper * abs(VLper). old_t. v6par = diff(x6f. old_td.v4per = diff(x4f. old_t. new_t). % Right Pectoral Fin muRper = p * C1 * S6/2.0027600. old_td. x6f = subs(x6f. % Approach Stream Pressure on link -4 mu4par = p * C2 * S4/2. new_t). old_t. % effective area of the left pectoral fin in mm^2 S6 = 0. % Frictional Drag on link . VLper = subs(VLper. new_t). Fpectoral_hydro. x5f = subs(x5f. % effective area of the right pectoral fin in mm^2 % Left Pectoral Fin muLper = p * C1 * S5/2. new_td). F5par = -mu5par * v5par * abs(v5par). old_tdp. F4per. old_t. new_t). old_tdp.t)*sin(t6). old_t. FRper. % Pressure on pectoral FINS S5 = 0. F4par = -mu4par * v4par * abs(v4par). old_td.4 F4f = 0. % Frictional Drag on left pectoral fin F5f = 0. F6par = -mu6par * v6par * abs(v6par).t)*cos(t4) + diff(y4f.t)*cos(t4).5*F6par.0027600. y6f = subs(y6f.5*F5par. % Composite Dynamic Forces on LINK . F6par = subs(F6par.t)*sin(t1)*sin(t6). y5f = subs(y5f. new_t).t)*cos(t5) + diff(y5f. new_t). x4f = subs(x4f. y4f = subs(y4f. old_t.t)*sin(t1)*sin(t5). v5par = diff(x5f. F5par = subs(F5par. old_t. F4per = subs(F4per. VRper = diff(x6f. new_t).t)*cos(t1)*sin(t5) + diff(y5f. F5par. x5f = subs(x5f. F4par.new_td). % Frictional Drag on left pectoral fin F6f = 0. VRper = subs(VRper.5*F4par.

l1*sin(th1)*sin(th2))^2 + m2*(a1*sin(th1) + l1*cos(th1)*sin(th2) + l1*cos(th2)*sin(th1))^2 + m4*(a1*cos(th1) + l2*cos(th3)*(cos(th1) *cos(th2) .l2*sin(th3)*(cos(th1)*sin(th2) + cos(th2)*sin(th1)) + l1*cos(th1)*cos(th2) l1*sin(th1)*sin(th2))^2 + m3*(a1*sin(th1) + l2*cos(th3)*(cos(th1)*sin(th2) + cos(th2)*sin(th1)) + l2*sin(th3)*(cos(th1)*cos(th2) .sin(th1)*sin(th2)) .APPENDIX B APPENDIX B: SYSTEM EQUATIONS AND MATRICES 𝑀11 𝑀21 𝑀 𝑀 = 31 𝑀41 𝑀51 𝑀61 𝑀12 𝑀22 𝑀32 𝑀42 𝑀52 𝑀62 𝑀13 𝑀23 𝑀33 𝑀43 𝑀53 𝑀63 𝑀14 𝑀24 𝑀34 𝑀44 𝑀54 𝑀64 𝑀15 𝑀25 𝑀35 𝑀45 𝑀55 𝑀65 𝑀16 𝑉1 𝑀26 𝑉2 𝑀36 𝑉 𝑉 = 3 𝑀46 𝑉4 𝑉5 𝑀56 𝑉6 𝑀66 𝐺1 𝐺2 𝐺 𝐺 = 3 𝐺4 𝐺5 𝐺6 % Inertial Mass Matrix calculated with length l and mass m vectors from the model 𝑀11 = [ m5*(a1*cos(th1) .sin(th1)*sin(th2)) .sin(th1)*sin(th2))))^2 + m4*(a1*sin(th1) + l2*cos(th3)*(cos(th1)*sin(th2) + cos(th2)*sin(th1)) + l2*sin(th3) *(cos(th1)*cos(th2) sin(th1)*sin(th2)) + l1*cos(th1)*sin(th2) + l1*cos(th2)*sin(th1) + l3 *cos(th4)*(cos(th3)*(cos(th1)*sin(th2) + cos(th2)*sin(th1)) + sin(th3)*(cos(th1) *cos(th2) sin(th1)*sin(th2))) + l3*sin(th4)*(cos(th3)*(cos(th1)*cos(th2) .sin(th1)*sin(th2)) l2*sin(th3)*(cos(th1)*sin(th2) + cos(th2)*sin(th1)) + l1*cos(th1)*cos(th2) .a1*cos(th1)*cos(th5) + a1*sin(th1)*sin(th5))^2 + m6*(a1*cos(th1) a1*cos(th1)*cos(th6) + a1*sin(th1)*sin(th6))^2 + m5*(a1*cos(th1)*sin(th5) .l1*sin(th1)*sin(th2)) + (I32*l2*m2)/24 + (I33*l3*m3)/24 + (I34*l4*m4)/24 + m3*(l2*cos(th3)*(cos(th1)*sin(th2) + cos(th2)*sin(th1)) + l2*sin(th3)*(cos(th1)*cos(th2) .sin(th1)*sin(th2)) sin(th3)*(cos(th1)*sin(th2) + cos(th2)*sin(th1))) .l3*sin(th4) *(cos(th3) *(cos(th1)*sin(th2) + cos(th2)*sin(th1)) + sin(th3)*(cos(th1)*cos(th2) .a1*sin(th1) + a1*cos(th6)*sin(th1))^2 + m2*(a1*cos(th1) + l1*cos(th1)*cos(th2) .l2*sin(th3)*(cos(th1)*sin(th2) + cos(th2)*sin(th1)) + l1 *cos(th1)*cos(th2) l1*sin(th1)*sin(th2) + l3*cos(th4)*(cos(th3)*(cos(th1)*cos(th2) .sin(th1)*sin(th2)) + l1*cos(th1)*sin(th2) + l1*cos(th2)*sin(th1))*(a1*sin(th1) + l2*cos(th3)*(cos(th1)*sin(th2) + cos(th2)*sin(th1)) + 77 .a1*sin(th1) + a1*cos(th5)*sin(th1))^2 + m6*(a1*cos(th1)*sin(th6) .sin(th1)*sin(th2)) + l1*cos(th1)*sin(th2) + l1*cos(th2)*sin(th1))^2 +(I31*l1*m1)/24+(I32*l2*m2)/24+(I33*l3*m3)/24+(I34*l4*m4)/24+(I35*l5*m5)/24+(I36*l6*m6)/ 24 +a1^2*m1*cos(th1)^2+a1^2*m1*sin(th1)^2.l1*sin(th1)*sin(th2))*(a1*cos(th1) + l1*cos(th1)*cos(th2) l1*sin(th1)*sin(th2)) + m2*(l1*cos(th1)*sin(th2) + l1*cos(th2)*sin(th1))*(a1*sin(th1) + l1*cos(th1)*sin(th2) + l1*cos(th2)*sin(th1)) + m3*(l2*cos(th3)*(cos(th1)*cos(th2) sin(th1)*sin(th2)) .sin(th3) *(cos(th1)*sin(th2) + cos(th2)*sin(th1))))^2 + m3*(a1*cos(th1) + l2*cos(th3)*(cos(th1)*cos(th2) sin(th1) *sin(th2)) .l2*sin(th3)*(cos(th1)*sin(th2) + cos(th2)*sin(th1)) + l1*cos(th1)*cos(th2) l1*sin(th1)*sin(th2))*(a1*cos(th1) + l2*cos(th3)*(cos(th1)*cos(th2) . 𝑀12 = m2*(l1*cos(th1)*cos(th2) .

sin(th1)*sin(th2)) .l2*sin(th3)*(cos(th1) *sin(th2) + cos(th2)*sin(th1)) + l1*cos(th1)*cos(th2) .sin(th1)*sin(th2)) + l1*cos(th1)*sin(th2) + l1*cos(th2)*sin(th1)) + m4*(l2*cos(th3)*(cos(th1)*cos(th2) .sin(th1)*sin(th2)) sin(th3)*(cos(th1)*sin(th2) + cos(th2)*sin(th1))) .l2*sin(th3)*(cos(th1)*sin(th2) + cos(th2) *sin(th1)) + l3*cos(th4)*(cos(th3)*(cos(th1)*cos(th2) .sin(th1)*sin(th2)) + l1*cos(th1)*sin(th2) + l1*cos(th2) *sin(th1)) + m4*(l2*cos(th3)*(cos(th1)*cos(th2) .sin(th1)*sin(th2)) .sin(th1)*sin(th2)) .sin(th1) *sin(th2))))*(a1*cos(th1) + l2*cos(th3)*(cos(th1)*cos(th2) sin(th1)*sin(th2)) .sin(th3)*(cos(th1)*sin(th2) + cos(th2)*sin(th1))) l3*sin(th4)*(cos(th3)*(cos(th1) *sin(th2) + cos(th2)*sin(th1)) + sin(th3)*(cos(th1)*cos(th2) sin(th1)*sin(th2)))) + m4*(l2*cos(th3)*(cos(th1) *sin(th2) + cos(th2)*sin(th1)) + l2*sin(th3)*(cos(th1)*cos(th2) .sin(th1)*sin(th2)) + l1*cos(th1)*sin(th2) + l1*cos(th2)*sin(th1) + l3*cos(th4)*(cos(th3)*(cos(th1) *sin(th2) + cos(th2)*sin(th1)) + sin(th3)*(cos(th1)*cos(th2) .sin(th3)*(cos(th1)*sin(th2) + cos(th2)*sin(th1)))) *(a1*sin(th1) + l2*cos(th3)*(cos(th1)*sin(th2) + cos(th2)*sin(th1)) + l2*sin(th3)*(cos(th1)*cos(th2) .l2*sin(th3)*(cos(th1) *sin(th2) + cos(th2)*sin(th1)) + l1*cos(th1)*cos(th2) l1*sin(th1)*sin(th2) + l3*cos(th4)*(cos(th3)*(cos(th1)*cos(th2) .l2*sin(th3)*(cos(th1)*sin(th2) + cos(th2)*sin(th1)) + l1*cos(th1)*cos(th2) .sin(th3)*(cos(th1)*sin(th2) + cos(th2)*sin(th1)))).sin(th1)*sin(th2)) sin(th3)*(cos(th1)*sin(th2) + cos(th2)*sin(th1))))*(a1*sin(th1) + l2*cos(th3)*(cos(th1)*sin(th2) + cos(th2)*sin(th1)) + l2*sin(th3)*(cos(th1) *cos(th2) .l1*sin(th1)*sin(th2)) + m3*(l2*cos(th3)*(cos(th1)*sin(th2) + cos(th2) *sin(th1)) + l2*sin(th3)*(cos(th1)*cos(th2) sin(th1)*sin(th2)))*(a1*sin(th1) + l2*cos(th3)*(cos(th1)*sin(th2) + cos(th2)*sin(th1)) + l2*sin(th3)*(cos(th1)*cos(th2) .sin(th1)*sin(th2)) + l1*cos(th1)*sin(th2) + l1*cos(th2)*sin(th1) + l3*cos(th4)*(cos(th3)*(cos(th1)*sin(th2) + cos(th2)*sin(th1)) + sin(th3)*(cos(th1)*cos(th2) - 78 .l1*sin(th1)*sin(th2) + l3*cos(th4)*(cos(th3)*(cos(th1) *cos(th2) .sin(th1)*sin(th2)) l2*sin(th3)*(cos(th1)*sin(th2) + cos(th2) *sin(th1)) + l1*cos(th1)*cos(th2) .sin(th1)*sin(th2)) sin(th3)*(cos(th1)*sin(th2) + cos(th2)*sin(th1))) .sin(th1)*sin(th2))) + l3*sin(th4) *(cos(th3)*(cos(th1)*cos(th2) .sin(th1)*sin(th2)) .sin(th1)*sin(th2)))) + m4*(l2*cos(th3)*(cos(th1)*sin(th2) + cos(th2)*sin(th1)) + l2*sin(th3)*(cos(th1)*cos(th2) sin(th1)*sin(th2)) + l1*cos(th1)*sin(th2) + l1*cos(th2) *sin(th1) + l3*cos(th4)*(cos(th3)*(cos(th1)*sin(th2) + cos(th2)*sin(th1)) + sin(th3)*(cos(th1)*cos(th2) sin(th1)*sin(th2))) + l3*sin(th4)*(cos(th3)*(cos(th1)*cos(th2) .l3*sin(th4)*(cos(th3)*(cos(th1)*sin(th2) + cos(th2)*sin(th1)) + sin(th3)*(cos(th1)*cos(th2) .l3*sin(th4)*(cos(th3)*(cos(th1)*sin(th2) + cos(th2)*sin(th1)) + sin(th3)*(cos(th1)*cos(th2) .l2*sin(th3)*(cos(th1)*sin(th2) + cos(th2)*sin(th1))) *(a1*cos(th1) + l2*cos(th3)*(cos(th1)*cos(th2) .sin(th1)*sin(th2)) .sin(th1)*sin(th2)) .l2*sin(th3)*(cos(th1)*cos(th2) .sin(th1)*sin(th2)) + l3*cos(th4)*(cos(th3) *(cos(th1)*sin(th2) + cos(th2)*sin(th1)) + sin(th3)*(cos(th1)*cos(th2) .l1*sin(th1)*sin(th2) + l3*cos(th4)*(cos(th3)*(cos(th1)*cos(th2) .sin(th3)*(cos(th1)*sin(th2) + cos(th2)*sin(th1))) .sin(th1)*sin(th2))))*(a1*cos(th1) + l2*cos(th3)*(cos(th1)*cos(th2) .l3*sin(th4)*(cos(th3)*(cos(th1)*sin(th2) + cos(th2)*sin(th1)) + sin(th3)*(cos(th1)*cos(th2) .sin(th1)*sin(th2)) .sin(th1)*sin(th2))) + l3*sin(th4)*(cos(th3)*(cos(th1)*cos(th2) sin(th1)*sin(th2)) . 𝑀13 = m3*(l2*cos(th3)*(cos(th1)*cos(th2) .

sin(th1)*sin(th2)) .sin(th1)*sin(th2)) + l1*cos(th1)*sin(th2) + l1*cos(th2)*sin(th1)) + m4*(l2*cos(th3)*(cos(th1)*cos(th2) .a1*sin(th1) + a1*cos(th6)*sin(th1)) .a1*sin(th1)*sin(th5))*(a1*cos(th1) a1*cos(th1)*cos(th5) + a1*sin(th1)*sin(th5)) + (I35*l5*m5)/24.sin(th3)*(cos(th1)*sin(th2) + cos(th2)*sin(th1))) .sin(th1)*sin(th2)) + l1*cos(th1)*sin(th2) + l1*cos(th2) *sin(th1))*(a1*sin(th1) + l2*cos(th3)*(cos(th1)*sin(th2) + cos(th2)*sin(th1)) + l2*sin(th3)*(cos(th1)*cos(th2) .l2*sin(th3)*(cos(th1)*sin(th2) + cos(th2) *sin(th1)) + l1*cos(th1)*cos(th2) l1*sin(th1)*sin(th2))*(a1*cos(th1) + l2*cos(th3)*(cos(th1)*cos(th2) .sin(th1) *sin(th2))) + l3*sin(th4)*(cos(th3)*(cos(th1)*cos(th2) .l1*sin(th1)*sin(th2) + l3*cos(th4) *(cos(th3)*(cos(th1)*cos(th2) .l2*sin(th3)*(cos(th1)*sin(th2) + cos(th2)*sin(th1)) + l1*cos(th1)*cos(th2) .m5*(a1*cos(th1)*cos(th5) .l1*sin(th1)*sin(th2) + l3*cos(th4)*(cos(th3)*(cos(th1)*cos(th2) .sin(th3)*(cos(th1)*sin(th2) + cos(th2)*sin(th1)))) *(a1*sin(th1) + l2*cos(th3)*(cos(th1)*sin(th2) + cos(th2)*sin(th1)) + l2*sin(th3) *(cos(th1) *cos(th2) .m6*(a1*cos(th1)*cos(th6) .l1*sin(th1)*sin(th2))*(a1*cos(th1) + l1*cos(th1)*cos(th2) l1*sin(th1) *sin(th2)) + m2*(l1*cos(th1)*sin(th2) + l1*cos(th2)*sin(th1))*(a1*sin(th1) + l1*cos(th1)*sin(th2) + l1*cos(th2) *sin(th1)) + m3*(l2*cos(th3)*(cos(th1)*cos(th2) sin(th1)*sin(th2)) .sin(th1) *sin(th2)) .sin(th1)*sin(th2))))*(a1*cos(th1) + l2*cos(th3)*(cos(th1)*cos(th2) .sin(th1)*sin(th2)) sin(th3)*(cos(th1)*sin(th2) + cos(th2)*sin(th1)))).sin(th1)*sin(th2)) sin(th3)*(cos(th1) *sin(th2) + cos(th2)*sin(th1))) .l3*sin(th4)*(cos(th3)*(cos(th1)*sin(th2) + cos(th2)*sin(th1)) + sin(th3)*(cos(th1)*cos(th2) . 𝑀14 = (I34*l4*m4)/24 + m4*(l3*cos(th4)*(cos(th3)*(cos(th1)*cos(th2) .sin(th1)*sin(th2)) .l2*sin(th3)*(cos(th1)*sin(th2) + cos(th2) *sin(th1)) + l1*cos(th1)*cos(th2) - 79 . 𝑀15 = m5*(a1*cos(th1)*sin(th5) + a1*cos(th5)*sin(th1))*(a1*cos(th1)*sin(th5) .sin(th1)*sin(th2)))) + m4*(l3 *cos(th4)*(cos(th3)*(cos(th1)*sin(th2) + cos(th2)*sin(th1)) + sin(th3)*(cos(th1)*cos(th2) .l3*sin(th4)*(cos(th3)*(cos(th1)*sin(th2) + cos(th2)*sin(th1)) + sin(th3) *(cos(th1)*cos(th2) .l1*sin(th1) *sin(th2)) + (I32*l2*m2)/24 + (I33*l3*m3)/24 + (I34*l4*m4)/24 + m3*(l2*cos(th3)*(cos(th1)*sin(th2) + cos(th2)*sin(th1)) + l2*sin(th3)*(cos(th1)*cos(th2) .sin(th1)*sin(th2)) l2*sin(th3)*(cos(th1)*sin(th2) + cos(th2)*sin(th1)) + l1*cos(th1)*cos(th2) .l2*sin(th3)*(cos(th1)*sin(th2) + cos(th2)*sin(th1)) + l1*cos(th1)*cos(th2) .sin(th1)*sin(th2))) + l3*sin(th4)*(cos(th3)*(cos(th1)*cos(th2) .a1*sin(th1) + a1*cos(th5)*sin(th1)) .sin(th1)*sin(th2)) . 𝑀16 = m6*(a1*cos(th1)*sin(th6) + a1*cos(th6)*sin(th1))*(a1*cos(th1)*sin(th6) .l3 *sin(th4) *(cos(th3)*(cos(th1)*sin(th2) + cos(th2)*sin(th1)) + sin(th3)*(cos(th1)*cos(th2) .sin(th1)*sin(th2)))) *(a1*cos(th1) + l2*cos(th3)*(cos(th1)*cos(th2) sin(th1)*sin(th2)) .sin(th3)*(cos(th1)*sin(th2) + cos(th2)*sin(th1))).sin(th1)*sin(th2)) .sin(th1)*sin(th2)) sin(th3)*(cos(th1)*sin(th2) + cos(th2)*sin(th1)))) + (I33*l3*m3)/24 + (I34*l4*m4)/24.a1*sin(th1)*sin(th6))*(a1*cos(th1) a1*cos(th1)*cos(th6) + a1*sin(th1)*sin(th6)) + (I36*l6*m6)/24] 𝑀21 = [ m2*(l1*cos(th1)*cos(th2) .sin(th1) *sin(th2)) + l1*cos(th1)*sin(th2) + l1*cos(th2)*sin(th1) + l3*cos(th4)*(cos(th3) *(cos(th1) *sin(th2) + cos(th2) *sin(th1)) + sin(th3)*(cos(th1)*cos(th2) sin(th1)*sin(th2))) + l3*sin(th4)*(cos(th3)*(cos(th1)*cos(th2) .

sin(th1) *sin(th2)) sin(th3)*(cos(th1)*sin(th2) + cos(th2)*sin(th1))) .l1*sin(th1)*sin(th2))^2 + m2*(l1*cos(th1)*sin(th2) + l1*cos(th2)*sin(th1))^2 + m2*(l1*cos(th1)*cos(th2) .l1*sin(th1)*sin(th2))^2 + m4 *(l2*cos(th3)*(cos(th1)*sin(th2) + cos(th2)*sin(th1)) + l2*sin(th3)*(cos(th1)*cos(th2) sin(th1)*sin(th2)) + l1 *cos(th1)*sin(th2) + l1*cos(th2)*sin(th1) + l3*cos(th4)*(cos(th3)*(cos(th1)*sin(th2) + cos(th2)*sin(th1)) + sin(th3)*(cos(th1)*cos(th2) sin(th1)*sin(th2))) + l3*sin(th4)*(cos(th3)*(cos(th1)*cos(th2) .sin(th1)*sin(th2)) sin(th3)*(cos(th1)*sin(th2) + cos(th2)*sin(th1))))*(a1*sin(th1) + l2*cos(th3)*(cos(th1)*sin(th2) + cos(th2)*sin(th1)) + l2*sin(th3) *(cos(th1) *cos(th2) .sin(th1)*sin(th2))) + l3*sin(th4)*(cos(th3)*(cos(th1)*cos(th2) sin(th1)*sin(th2)) .sin(th1)*sin(th2)) sin(th3)*(cos(th1)*sin(th2) + cos(th2)*sin(th1))))^2 + m4*(l2*cos(th3)*(cos(th1)*cos(th2) sin(th1)*sin(th2)) . 𝑀22 = m3*(l2*cos(th3)*(cos(th1)*sin(th2) + cos(th2)*sin(th1)) + l2*sin(th3)*(cos(th1)*cos(th2) sin(th1) *sin(th2)) + l1*cos(th1)*sin(th2) + l1*cos(th2)*sin(th1))^2 + m3*(l2*cos(th3)*(cos(th1)*cos(th2) .sin(th1)*sin(th2)) + l1*cos(th1)*sin(th2) + l1*cos(th2)*sin(th1)) + m3*(l2 *cos(th3) *(cos(th1)*cos(th2) .sin(th1)*sin(th2))) + l3*sin(th4)*(cos(th3)*(cos(th1)*cos(th2) sin(th1)*sin(th2)) .sin(th1)*sin(th2)) + l1*cos(th1)*sin(th2) + l1*cos(th2)*sin(th1) + l3*cos(th4)*(cos(th3)*(cos(th1) *sin(th2) + cos(th2)*sin(th1)) + sin(th3)*(cos(th1)*cos(th2) .sin(th3)*(cos(th1)*sin(th2) + cos(th2)*sin(th1))))*(l2*cos(th3)*(cos(th1)*sin(th2) + cos(th2)*sin(th1)) + l2 *sin(th3)*(cos(th1)*cos(th2) .sin(th1)*sin(th2)) .sin(th1)*sin(th2)) + l1*cos(th1)*sin(th2) + l1*cos(th2)*sin(th1) + l3*cos(th4) *(cos(th3)*(cos(th1)*sin(th2) + cos(th2)*sin(th1)) + sin(th3)*(cos(th1)*cos(th2) - 80 .sin(th3)*(cos(th1)*sin(th2) + cos(th2)*sin(th1)))).sin(th1)*sin(th2))))^2 + (I32*l2*m2)/24 + (I33*l3*m3)/24 + (I34*l4*m4)/24. 𝑀23 = (I33*l3*m3)/24 + (I34*l4*m4)/24 + m3*(l2*cos(th3)*(cos(th1)*sin(th2) + cos(th2)*sin(th1)) + l2 *sin(th3) *(cos(th1)*cos(th2) sin(th1)*sin(th2)))*(l2*cos(th3)*(cos(th1)*sin(th2) + cos(th2)*sin(th1)) + l2 *sin(th3) *(cos(th1)*cos(th2) .l2*sin(th3)*(cos(th1)*sin(th2) + cos(th2)*sin(th1)) + l1*cos(th1)*cos(th2) l1*sin(th1)*sin(th2) + l3*cos(th4) *(cos(th3)*(cos(th1)*cos(th2) .sin(th1)*sin(th2)))) + m4*(l2*cos(th3)*(cos(th1)*sin(th2) + cos(th2)*sin(th1)) + l2*sin(th3)*(cos(th1)*cos(th2) sin(th1)*sin(th2)) + l1*cos(th1)*sin(th2) + l1*cos(th2) *sin(th1) + l3*cos(th4)*(cos(th3)*(cos(th1)*sin(th2) + cos(th2)*sin(th1)) + sin(th3)*(cos(th1)*cos(th2) sin(th1)*sin(th2))) + l3*sin(th4)*(cos(th3)*(cos(th1)*cos(th2) .l2*sin(th3)*(cos(th1)*sin(th2) + cos(th2)*sin(th1)) + l1*cos(th1)*cos(th2) .sin(th1) *sin(th2)) .sin(th1)*sin(th2)) sin(th3)*(cos(th1)*sin(th2) + cos(th2)*sin(th1))) .l1*sin(th1)*sin(th2) + l3*cos(th4)*(cos(th3)*(cos(th1)*cos(th2) .l2*sin(th3)*(cos(th1)*sin(th2) + cos(th2)*sin(th1)))*(l2 *cos(th3) *(cos(th1)*cos(th2) .l3*sin(th4)*(cos(th3)*(cos(th1)*sin(th2) + cos(th2)*sin(th1)) + sin(th3)*(cos(th1)*cos(th2) .sin(th1)*sin(th2)) l2*sin(th3)*(cos(th1)*sin(th2) + cos(th2)*sin(th1)) + l1 *cos(th1) *cos(th2) .l1*sin(th1)*sin(th2)) + m4*(l2*cos(th3)*(cos(th1)*sin(th2) + cos(th2)*sin(th1)) + l2 *sin(th3) *(cos(th1)*cos(th2) sin(th1)*sin(th2)) + l3*cos(th4)*(cos(th3)*(cos(th1)*sin(th2) + cos(th2)*sin(th1)) + sin(th3)*(cos(th1)*cos(th2) .l3*sin(th4) *(cos(th3)*(cos(th1)*sin(th2) + cos(th2)*sin(th1)) + sin(th3)*(cos(th1)*cos(th2) .

sin(th1)*sin(th2)) .l2*sin(th3)*(cos(th1)*sin(th2) + cos(th2) *sin(th1)) + l3*cos(th4)*(cos(th3)*(cos(th1)*cos(th2) .sin(th1)*sin(th2)) l2*sin(th3)*(cos(th1)*sin(th2) + cos(th2) *sin(th1)) + l1*cos(th1)*cos(th2) .sin(th1)*sin(th2)) l2*sin(th3)*(cos(th1)*sin(th2) + cos(th2)*sin(th1)) + l1*cos(th1)*cos(th2) . 𝑀24 = m4*(l3*cos(th4)*(cos(th3)*(cos(th1)*sin(th2) + cos(th2)*sin(th1)) + sin(th3)*(cos(th1)*cos(th2) .sin(th3)*(cos(th1)*sin(th2) + cos(th2)*sin(th1))) .l2*sin(th3)*(cos(th1)*sin(th2) + cos(th2)*sin(th1)) + l1*cos(th1)*cos(th2) l1*sin(th1)*sin(th2) + l3*cos(th4)*(cos(th3)*(cos(th1)*cos(th2) .sin(th1) *sin(th2))) + l3*sin(th4)*(cos(th3)*(cos(th1)*cos(th2) sin(th1)*sin(th2)) .l2*sin(th3)*(cos(th1) *sin(th2) + cos(th2)*sin(th1)) + l1*cos(th1)*cos(th2) l1*sin(th1)*sin(th2) + l3*cos(th4) *(cos(th3)*(cos(th1) *cos(th2) .l3*sin(th4)*(cos(th3)*(cos(th1)*sin(th2) + cos(th2)*sin(th1)) + sin(th3)*(cos(th1)*cos(th2) .sin(th1)*sin(th2)) + l1*cos(th1)*sin(th2) + l1*cos(th2)*sin(th1) + l3*cos(th4)*(cos(th3)*(cos(th1)*sin(th2) + cos(th2)*sin(th1)) + sin(th3)*(cos(th1)*cos(th2) sin(th1)*sin(th2))) + l3*sin(th4)*(cos(th3)*(cos(th1)*cos(th2) .sin(th3)*(cos(th1) *sin(th2) + cos(th2)*sin(th1))) .l3*sin(th4)*(cos(th3) *(cos(th1)*sin(th2) + cos(th2)*sin(th1)) + sin(th3)*(cos(th1)*cos(th2) sin(th1)*sin(th2))))*(l2*cos(th3) *(cos(th1)*cos(th2) .sin(th1)*sin(th2)) .sin(th1)*sin(th2)) sin(th3)*(cos(th1)*sin(th2) + cos(th2)*sin(th1)))) + m4*(l2*cos(th3)*(cos(th1)*cos(th2) sin(th1)*sin(th2)) .l3*sin(th4)*(cos(th3)*(cos(th1)*sin(th2) + cos(th2)*sin(th1)) + sin(th3)*(cos(th1)*cos(th2) .sin(th1)*sin(th2)))) + (I34*l4*m4)/24.sin(th1)*sin(th2)) .l1*sin(th1)*sin(th2)) + m3*(l2*cos(th3)*(cos(th1)*sin(th2) + cos(th2) *sin(th1)) + l2*sin(th3)*(cos(th1)*cos(th2) sin(th1)*sin(th2)))*(a1*sin(th1) + l2*cos(th3) *(cos(th1) *sin(th2) + cos(th2)*sin(th1)) + l2*sin(th3)*(cos(th1)*cos(th2) .l2*sin(th3)*(cos(th1)*sin(th2) + cos(th2)*sin(th1)) + l3*cos(th4)*(cos(th3)*(cos(th1)*cos(th2) .sin(th1)*sin(th2)) sin(th3)*(cos(th1)*sin(th2) + cos(th2)*sin(th1))) .sin(th1)*sin(th2))) + l3 *sin(th4)*(cos(th3)*(cos(th1)*cos(th2) .sin(th3)*(cos(th1)*sin(th2) + cos(th2)*sin(th1))) .sin(th3)*(cos(th1)*sin(th2) + cos(th2)*sin(th1))) . 𝑀26 = 0 ] 𝑀31 = [m3*(l2*cos(th3)*(cos(th1)*cos(th2) .l1*sin(th1)*sin(th2) + l3*cos(th4)*(cos(th3)*(cos(th1)*cos(th2) .l3*sin(th4)*(cos(th3)*(cos(th1)*sin(th2) + cos(th2)*sin(th1)) + sin(th3) *(cos(th1)*cos(th2) .sin(th1)*sin(th2))))*(a1*cos(th1) + l2*cos(th3)*(cos(th1)*cos(th2) sin(th1)*sin(th2)) .sin(th1)*sin(th2)) .sin(th1)*sin(th2)))).l3*sin(th4)*(cos(th3)*(cos(th1)*sin(th2) + cos(th2)*sin(th1)) + sin(th3)*(cos(th1)*cos(th2) .sin(th1)*sin(th2)) sin(th3)*(cos(th1)*sin(th2) + cos(th2)*sin(th1)))) + m4*(l3*cos(th4)*(cos(th3) *(cos(th1) *cos(th2) .sin(th1)*sin(th2)) + l1*cos(th1)*sin(th2) + l1*cos(th2) *sin(th1)) + m4*(l2*cos(th3)*(cos(th1)*cos(th2) .sin(th3)*(cos(th1)*sin(th2) + cos(th2)*sin(th1))))*(l2*cos(th3)*(cos(th1)*sin(th2) + cos(th2)*sin(th1)) + l2*sin(th3)*(cos(th1)*cos(th2) .sin(th1) *sin(th2) )))*(l2*cos(th3)*(cos(th1)*cos(th2) sin(th1)*sin(th2)) .l2*sin(th3)*(cos(th1)*sin(th2) + cos(th2) *sin(th1))) *(a1*cos(th1) + l2*cos(th3)*(cos(th1)*cos(th2) .sin(th1)*sin(th2)) .sin(th1)*sin(th2)) . 𝑀25 = 0.sin(th1)*sin(th2)) - 81 .

sin(th1)*sin(th2)) .sin(th1)*sin(th2)) l2*sin(th3)*(cos(th1)*sin(th2) + cos(th2)*sin(th1)))^2 + m4*(l2*cos(th3)*(cos(th1)*sin(th2) + cos(th2)*sin(th1)) + l2*sin(th3)*(cos(th1) *cos(th2) .sin(th3)*(cos(th1)*sin(th2) + cos(th2)*sin(th1))))*(l2*cos(th3)*(cos(th1)*sin(th2) + cos(th2)*sin(th1)) + l2 *sin(th3)*(cos(th1)*cos(th2) . 𝑀33 = m3*(l2*cos(th3)*(cos(th1)*sin(th2) + cos(th2)*sin(th1)) + l2*sin(th3)*(cos(th1)*cos(th2) sin(th1) *sin(th2)))^2 + m3*(l2*cos(th3)*(cos(th1)*cos(th2) .sin(th3)*(cos(th1)*sin(th2) + cos(th2)*sin(th1))) .l2*sin(th3)*(cos(th1)*sin(th2) + cos(th2)*sin(th1)) + l3*cos(th4)*(cos(th3)*(cos(th1)*cos(th2) .sin(th1)*sin(th2)) sin(th3)*(cos(th1)*sin(th2) + cos(th2)*sin(th1))) .sin(th1)*sin(th2))) + l3*sin(th4)*(cos(th3)*(cos(th1)*cos(th2) sin(th1)*sin(th2)) .sin(th3)*(cos(th1)*sin(th2) + cos(th2)*sin(th1))) .l2*sin(th3)*(cos(th1)*sin(th2) + cos(th2)*sin(th1))) *(l2 *cos(th3) *(cos(th1)*cos(th2) .sin(th1)*sin(th2))) + l3*sin(th4)*(cos(th3)*(cos(th1)*cos(th2) sin(th1)*sin(th2)) .sin(th1)*sin(th2)) + l1*cos(th1)*sin(th2) + l1*cos(th2)*sin(th1) + l3*cos(th4) *(cos(th3)*(cos(th1)*sin(th2) + cos(th2)*sin(th1)) + sin(th3)*(cos(th1)*cos(th2) sin(th1)*sin(th2))) + l3 *sin(th4)*(cos(th3)*(cos(th1)*cos(th2) .l2*sin(th3)*(cos(th1)*sin(th2) + cos(th2)*sin(th1)) + l1*cos(th1)*cos(th2) l1*sin(th1)*sin(th2) + l3*cos(th4)*(cos(th3)*(cos(th1)*cos(th2) .sin(th1)*sin(th2)) .l1*sin(th1)*sin(th2)) + m4*(l2*cos(th3)*(cos(th1)*sin(th2) + cos(th2)*sin(th1)) + l2 *sin(th3)*(cos(th1)*cos(th2) sin(th1)*sin(th2)) + l3*cos(th4)*(cos(th3)*(cos(th1)*sin(th2) + cos(th2)*sin(th1)) + sin(th3)*(cos(th1)*cos(th2) .sin(th1)*sin(th2)))). 𝑀32 = (I33*l3*m3)/24 + (I34*l4*m4)/24 + m3*(l2*cos(th3)*(cos(th1)*sin(th2) + cos(th2)*sin(th1)) + l2 *sin(th3) *(cos(th1)*cos(th2) sin(th1)*sin(th2)))*(l2*cos(th3)*(cos(th1)*sin(th2) + cos(th2)*sin(th1)) + l2 *sin(th3) *(cos(th1)*cos(th2) .sin(th1)*sin(th2)))) + m4*(l2*cos(th3)*(cos(th1) *sin(th2) + cos(th2)*sin(th1)) + l2*sin(th3)*(cos(th1)*cos(th2) .l3*sin(th4)*(cos(th3)*(cos(th1)*sin(th2) + cos(th2)*sin(th1)) + sin(th3)*(cos(th1)*cos(th2) .sin(th1)*sin(th2)) + l1*cos(th1)*sin(th2) + l1*cos(th2)*sin(th1) + l3*cos(th4)*(cos(th3)*(cos(th1)*sin(th2) + cos(th2)*sin(th1)) + sin(th3)*(cos(th1)*cos(th2) .sin(th1)*sin(th2)) + l1*cos(th1)*sin(th2) + l1*cos(th2)*sin(th1)) + m3*(l2 *cos(th3) *(cos(th1)*cos(th2) .sin(th1)*sin(th2)) + l3*cos(th4)*(cos(th3)*(cos(th1)*sin(th2) + cos(th2)*sin(th1)) + sin(th3) *(cos(th1)*cos(th2) - 82 .sin(th3)*(cos(th1)*sin(th2) + cos(th2)*sin(th1)))) + (I33*l3*m3)/24 + (I34*l4*m4)/24.sin(th1)*sin(th2)) l2*sin(th3)*(cos(th1)*sin(th2) + cos(th2)*sin(th1)) + l1 *cos(th1) *cos(th2) .l3 *sin(th4)*(cos(th3)*(cos(th1) *sin(th2) + cos(th2)*sin(th1)) + sin(th3)*(cos(th1)*cos(th2) .sin(th1) *sin(th2) )))*(l2*cos(th3)*(cos(th1)*cos(th2) sin(th1)*sin(th2)) .sin(th1)*sin(th2)) sin(th3)*(cos(th1)*sin(th2) + cos(th2)*sin(th1)))) + m4*(l2*cos(th3)*(cos(th1)*cos(th2) sin(th1)*sin(th2)) .l3*sin(th4)*(cos(th3)*(cos(th1)*sin(th2) + cos(th2)*sin(th1)) + sin(th3)*(cos(th1)*cos(th2) .sin(th1)*sin(th2)) sin(th3)*(cos(th1)*sin(th2) + cos(th2)*sin(th1) ))) *(a1*sin(th1) + l2*cos(th3)*(cos(th1)*sin(th2) + cos(th2)*sin(th1)) + l2*sin(th3)*(cos(th1)*cos(th2) .sin(th1)*sin(th2)) + l3*cos(th4)*(cos(th3) *(cos(th1)*sin(th2) + cos(th2)*sin(th1)) + sin(th3)*(cos(th1)*cos(th2) sin(th1)*sin(th2))) + l3*sin(th4) *(cos(th3)*(cos(th1)*cos(th2) .

𝑀35 = 0.sin(th1) *sin(th2)) . 𝑀34 = m4*(l3*cos(th4)*(cos(th3)*(cos(th1)*sin(th2) + cos(th2)*sin(th1)) + sin(th3)*(cos(th1)*cos(th2) .l2*sin(th3)*(cos(th1)*sin(th2) + cos(th2)*sin(th1)) + l1*cos(th1)*cos(th2) .l3*sin(th4)*(cos(th3)*(cos(th1)*sin(th2) + cos(th2)*sin(th1)) + sin(th3)*(cos(th1)*cos(th2) .sin(th1)*sin(th2)) .sin(th1)*sin(th2)) sin(th3) *(cos(th1)*sin(th2) + cos(th2)*sin(th1))) .sin(th1)*sin(th2)) .sin(th1)*sin(th2)) .sin(th1)*sin(th2))) + l3*sin(th4)*(cos(th3)*(cos(th1)*cos(th2) sin(th1)*sin(th2)) .sin(th1)*sin(th2))))^2 + (I33*l3*m3)/24 + (I34*l4*m4)/24.l3*sin(th4)*(cos(th3)*(cos(th1)*sin(th2) + cos(th2)*sin(th1)) + sin(th3)*(cos(th1)*cos(th2) .sin(th3)*(cos(th1)*sin(th2) + cos(th2)*sin(th1)))) + m4*(l3*cos(th4)*(cos(th3)*(cos(th1)*cos(th2) .l3*sin(th4)*(cos(th3)*(cos(th1)*sin(th2) + cos(th2)*sin(th1)) + sin(th3)*(cos(th1)*cos(th2) .sin(th3)*(cos(th1)*sin(th2) + cos(th2)*sin(th1))))*(l2*cos(th3)*(cos(th1)*sin(th2) + cos(th2)*sin(th1)) + l2*sin(th3)*(cos(th1)*cos(th2) .sin(th3)*(cos(th1)*sin(th2) + cos(th2)*sin(th1))) l3*sin(th4)*(cos(th3)*(cos(th1)*sin(th2) + cos(th2)*sin(th1)) + sin(th3)*(cos(th1)*cos(th2) sin(th1)*sin(th2)))) + (I34*l4*m4)/24.sin(th3)*(cos(th1)*sin(th2) + cos(th2)*sin(th1)))).sin(th3)*(cos(th1)*sin(th2) + cos(th2)*sin(th1))) . 𝑀36 = 0 ] 𝑀41 = [(I34*l4*m4)/24 + m4*(l3*cos(th4)*(cos(th3)*(cos(th1)*cos(th2) .sin(th1) *sin(th2)) .sin(th1)*sin(th2))) + l3*sin(th4)*(cos(th3)*(cos(th1)*cos(th2) .sin(th1)*sin(th2)) + l3*cos(th4)*(cos(th3)*(cos(th1)*sin(th2) + cos(th2)*sin(th1)) + sin(th3)*(cos(th1)*cos(th2) .sin(th1)*sin(th2)) sin(th3)*(cos(th1)*sin(th2) + cos(th2)*sin(th1))))^2 + m4*(l2*cos(th3)*(cos(th1)*cos(th2) sin(th1)*sin(th2)) .sin(th1)*sin(th2)) l2*sin(th3)*(cos(th1)*sin(th2) + cos(th2)*sin(th1)) + l3*cos(th4)*(cos(th3)*(cos(th1)*cos(th2) sin(th1)*sin(th2)) .l3*sin(th4)*(cos(th3)*(cos(th1)*sin(th2) + cos(th2)*sin(th1)) + sin(th3)*(cos(th1)*cos(th2) sin(th1)*sin(th2))))*(l2*cos(th3)*(cos(th1)*cos(th2) . 83 .sin(th3)*(cos(th1)*sin(th2) + cos(th2)*sin(th1))) .sin(th1)*sin(th2))))*(a1*cos(th1) + l2*cos(th3)*(cos(th1)*cos(th2) .sin(th1)*sin(th2)) .sin(th1)*sin(th2))) + l3*sin(th4)*(cos(th3)*(cos(th1)*cos(th2) .l2*sin(th3)*(cos(th1)*sin(th2) + cos(th2)*sin(th1)) + l3*cos(th4)*(cos(th3)*(cos(th1)*cos(th2) .sin(th3)*(cos(th1)*sin(th2) + cos(th2)*sin(th1))))*(a1*sin(th1) + l2*cos(th3)*(cos(th1)*sin(th2)+cos(th2)*sin(th1))+l2*sin(th3)*(cos(th1)*cos(th2)*sin(th1)*sin(th2) ) +l1*cos(th1)*sin(th2) + l1*cos(th2)*sin(th1) + l3*cos(th4) *(cos(th3)*(cos(th1)*sin(th2) + cos(th2)*sin(th1))+sin(th3)*(cos(th1)*cos(th2)-sin(th1)*sin(th2)))+ l3*sin(th4)*(cos(th3)*(cos(th1) *cos(th2) .sin(th1)*sin(th2)) sin(th3)*(cos(th1)*sin(th2) + cos(th2)*sin(th1))) .sin(th1)*sin(th2)))) + m4*(l3*cos(th4)*(cos(th3)*(cos(th1)*sin(th2) + cos(th2)*sin(th1))+sin(th3)*(cos(th1)*cos(th2)-sin(th1)*sin(th2)))+ l3*sin(th4)*(cos(th3)*(cos(th1) *cos(th2) .l1*sin(th1)*sin(th2) + l3*cos(th4)*(cos(th3)*(cos(th1)*cos(th2) .

𝑀44 = m4*(l3*cos(th4)*(cos(th3)*(cos(th1)*sin(th2) + cos(th2)*sin(th1)) + sin(th3)*(cos(th1)*cos(th2) . 𝑀46 = 0 ] 𝑀51 = [m5*(a1*cos(th1)*sin(th5) + a1*cos(th5)*sin(th1))*(a1*cos(th1)*sin(th5) .sin(th1)*sin(th2))) + l3*sin(th4)*(cos(th3)*(cos(th1)*cos(th2) sin(th1)*sin(th2)) .l3*sin(th4)*(cos(th3)*(cos(th1)*sin(th2) + cos(th2)*sin(th1)) + sin(th3)*(cos(th1)*cos(th2) .sin(th1)*sin(th2)) .sin(th1)*sin(th2))) + l3*sin(th4)*(cos(th3)*(cos(th1)*cos(th2) sin(th1)*sin(th2)) .a1*sin(th1) + a1*cos(th5)*sin(th1)) .sin(th1)*sin(th2))) + l3*sin(th4)*(cos(th3)*(cos(th1)*cos(th2) .l3*sin(th4)*(cos(th3)*(cos(th1)*sin(th2) + cos(th2)*sin(th1))+sin(th3)*(cos(th1)*cos(th2)-sin(th1)*sin(th2))))*(l2*cos(th3)*(cos(th1)*cos(th2) .a1*sin(th1)*sin(th5))*(a1*cos(th1) - 84 .sin(th3)*(cos(th1)*sin(th2) + cos(th2)*sin(th1))) . 𝑀43 = m4*(l3*cos(th4)*(cos(th3)*(cos(th1)*sin(th2) + cos(th2)*sin(th1)) + sin(th3)*(cos(th1)*cos(th2) .sin(th3)*(cos(th1)*sin(th2) + cos(th2)*sin(th1))))*(l2*cos(th3)*(cos(th1)*sin(th2) + cos(th2)*sin(th1)) + l2*sin(th3)*(cos(th1)*cos(th2) .sin(th1)*sin(th2)))) + (I34*l4*m4)/24.l3*sin(th4)*(cos(th3)*(cos(th1)*sin(th2) + cos(th2)*sin(th1)) + sin(th3)*(cos(th1)*cos(th2) .m5*(a1*cos(th1)*cos(th5) .sin(th1)*sin(th2)) .sin(th3)*(cos(th1)*sin(th2) + cos(th2)*sin(th1))) l3*sin(th4)*(cos(th3)*(cos(th1) *sin(th2) + cos(th2)*sin(th1)) + sin(th3)*(cos(th1)*cos(th2) sin(th1)*sin(th2))))*(l2*cos(th3) *(cos(th1) *cos(th2) .sin(th1)*sin(th2)) + l1*cos(th1)*sin(th2) + l1*cos(th2)*sin(th1) + l3*cos(th4)*(cos(th3)*(cos(th1)*sin(th2) + cos(th2)*sin(th1)) + sin(th3)*(cos(th1)*cos(th2) sin(th1)*sin(th2))) + l3*sin(th4)*(cos(th3)*(cos(th1)*cos(th2) .sin(th1)*sin(th2))) + l3*sin(th4)*(cos(th3)*(cos(th1)*cos(th2) sin(th1)*sin(th2)) .sin(th1)*sin(th2)) .sin(th1)*sin(th2))))^2 + (I34*l4*m4)/24.sin(th1)*sin(th2)) .sin(th3)*(cos(th1)*sin(th2) + cos(th2)*sin(th1)))) + m4*(l3*cos(th4)*(cos(th3)*(cos(th1)*cos(th2) .sin(th1)*sin(th2)) . 𝑀45 = 0.sin(th1)*sin(th2)) .sin(th1)*sin(th2)) + l3*cos(th4)*(cos(th3)*(cos(th1)*sin(th2) + cos(th2)*sin(th1)) + sin(th3)*(cos(th1)*cos(th2) .sin(th1)*sin(th2)) sin(th3)*(cos(th1)*sin(th2) + cos(th2)*sin(th1)))) + m4*(l3*cos(th4)*(cos(th3) *(cos(th1) *cos(th2) .sin(th3)*(cos(th1)*sin(th2) + cos(th2)*sin(th1))))^2 + m4*(l3*cos(th4)*(cos(th3)*(cos(th1)*cos(th2) .sin(th3)*(cos(th1)*sin(th2) + cos(th2)*sin(th1))) .l2*sin(th3)*(cos(th1)*sin(th2) + cos(th2)*sin(th1)) + l3*cos(th4)*(cos(th3)*(cos(th1)*cos(th2) .sin(th1)*sin(th2)) l2*sin(th3)*(cos(th1)*sin(th2) + cos(th2)*sin(th1)) + l1*cos(th1)*cos(th2) .l1*sin(th1)*sin(th2) + l3*cos(th4)*(cos(th3)*(cos(th1)*cos(th2) .𝑀42 = m4*(l3*cos(th4)*(cos(th3)*(cos(th1)*sin(th2) + cos(th2)*sin(th1)) + sin(th3)*(cos(th1)*cos(th2) .sin(th1)*sin(th2)) sin(th3)*(cos(th1)*sin(th2) + cos(th2)*sin(th1))) .sin(th3)*(cos(th1)*sin(th2) + cos(th2)*sin(th1)))-l3*sin(th4)*(cos(th3)*(cos(th1)*sin(th2)+cos(th2)*sin(th1))+ sin(th3)*(cos(th1) *cos(th2)-sin(th1)*sin(th2))))+(I34*l4*m4)/24.sin(th3)*(cos(th1)*sin(th2) + cos(th2)*sin(th1))))*(l2*cos(th3)*(cos(th1)*sin(th2) + cos(th2)*sin(th1)) + l2*sin(th3)*(cos(th1)*cos(th2) .

l4*m4*th1d*th4d*(l2*sin(th3 + th4) + l3*sin(th4) + l1*sin(th2 + th3 + th4)) .l6) 𝑉2 = th1d^2*((l1*m4*(2*l3*sin(th2 + th3) + 2*l2*sin(th2) + l4*sin(th2 + th3 + th4)))/2 + (l1*m3*(l3*sin(th2 + th3) + 2*l2*sin(th2)))/2 + (l1*l2*m2*sin(th2))/2) - 85 . 𝑀65 = 0.a1*cos(th1)*cos(th5) + a1*sin(th1)*sin(th5)) + (I35*l5*m5)/24. 𝑀54 = 0.l4*m4*th3d*th4d*(l2*sin(th3 + th4) + l3*sin(th4) + l1*sin(th2 + th3 + th4)) l1*m5*th1d*th5d*sin(th5)*(l1 . 𝑀64 = 0. 𝑀62 = 0. 𝑀56 = 0] 𝑀61 = [m6*(a1*cos(th1)*sin(th6) + a1*cos(th6)*sin(th1))*(a1*cos(th1)*sin(th6) .l4*m4*th2d*th4d*(l2*sin(th3 + th4) + l3*sin(th4) + l1*sin(th2 + th3 + th4)) .m6*(a1*cos(th1)*cos(th6) .l5) . 𝑀66 = m6*(a1*cos(th1)*sin(th6) + a1*cos(th6)*sin(th1))^2 + m6*(a1*cos(th1)*cos(th6) a1*sin(th1)*sin(th6))^2 + (I36*l6*m6)/24] -------------------------------------------------------------------------------------------------------------------------% Coriolis Forces and Velocity Coupling Vector 𝑉1 = .(l1*m5*th5d^2*sin(th5)*(l1 . 𝑀55 = m5*(a1*cos(th1)*sin(th5) + a1*cos(th5)*sin(th1))^2 + m5*(a1*cos(th1)*cos(th5) a1*sin(th1)*sin(th5))^2 + (I35*l5*m5)/24.l6))/2 .a1*sin(th1)*sin(th6))*(a1*cos(th1) a1*cos(th1)*cos(th6) + a1*sin(th1)*sin(th6)) + (I36*l6*m6)/24.(l4*m4*th4d^2*(l2*sin(th3 + th4) + l3*sin(th4) + l1*sin(th2 + th3 + th4)))/2 .l5))/2 (l1*m6*th6d^2*sin(th6)*(l1 .l1*m6*th1d*th6d*sin(th6)*(l1 .a1*sin(th1) + a1*cos(th6)*sin(th1)) .th3d^2*((m4*(2*l2*l3*sin(th3) + l1*l4*sin(th2 + th3 + th4) + 2*l1*l3*sin(th2 + th3) + l2*l4*sin(th3 + th4)))/2 + (l3*m3*(l1*sin(th2 + th3) + l2*sin(th3)))/2) th2d^2*((l1*m4*(2*l3*sin(th2 + th3) + 2*l2*sin(th2) + l4*sin(th2 + th3 + th4)))/2 + (l1*m3*(l3*sin(th2 + th3) + 2*l2*sin(th2)))/2 + (l1*l2*m2*sin(th2))/2) 2*th1d*th3d*((m4*(2*l2*l3*sin(th3) + l1*l4*sin(th2 + th3 + th4) + 2*l1*l3*sin(th2 + th3) + l2*l4*sin(th3 + th4)))/2 + (l3*m3*(l1*sin(th2 + th3) + l2*sin(th3)))/2) 2*th2d*th3d*((m4*(2*l2*l3*sin(th3) + l1*l4*sin(th2 + th3 + th4) + 2*l1*l3*sin(th2 + th3) + l2*l4*sin(th3 + th4)))/2 + (l3*m3*(l1*sin(th2 + th3) + l2*sin(th3)))/2) 2*th1d*th2d*((l1*m4*(2*l3*sin(th2 + th3) + 2*l2*sin(th2) + l4*sin(th2 + th3 + th4)))/2 + (l1*m3*(l3*sin(th2 + th3) + 2*l2*sin(th2)))/2 + (l1*l2*m2*sin(th2))/2) . 𝑀53 = 0. 𝑀52 = 0. 𝑀63 = 0.

sin(th1)*sin(th6)))/2 + (g*l1*m1*cos(th1))/2 (g*l4*m4*(cos(th4)*(cos(th3)*(cos(th1)*cos(th2) .sin(th1)*sin(th2)))) + g*m3*(l1*cos(th1) + l3*cos(th3)*(cos(th1)*cos(th2) .th3d^2*((l2*m4*(l4*sin(th3 + th4) + 2*l3*sin(th3)))/2 + (l2*l3*m3*sin(th3))/2) 2*th1d*th3d*((l2*m4*(l4*sin(th3 + th4) + 2*l3*sin(th3)))/2 + (l2*l3*m3*sin(th3))/2) 2*th2d*th3d*((l2*m4*(l4*sin(th3 + th4) + 2*l3*sin(th3)))/2 + (l2*l3*m3*sin(th3))/2) (l4*m4*th4d^2*(l2*sin(th3 + th4) + l3*sin(th4)))/2 .l2*sin(th1)*sin(th2)) .sin(th1)*sin(th2)) .l3*l4*m4*th3d*th4d*sin(th4) 𝑉4 = (l4*m4*(l2*sin(th3 + th4) + l3*sin(th4) + l1*sin(th2 + th3 + th4))*th1d^2)/2 + l4*m4*(l2*sin(th3 + th4) + l3*sin(th4))*th1d*th2d + l3*l4*m4*sin(th4)*th1d*th3d + (l4*m4*(l2*sin(th3 + th4) + l3*sin(th4))*th2d^2)/2 + l3*l4*m4*sin(th4)*th2d*th3d + (l3*l4*m4*sin(th4)*th3d^2)/2 𝑉5 = (l1*m5*th1d^2*sin(th5)*(l1 .l6))/2 ----------------------------------------------------------------------------------------------------------------------------------% Gravitational Vector 𝐺1 = g*m2*(l1*cos(th1) + l2*cos(th1)*cos(th2) .sin(th1)*sin(th2)) .l3*l4*m4*th2d*th4d*sin(th4) .(l1*sin(th1)*sin(th5))/2) + g*m6*(l1*cos(th1) + (l1*cos(th1)*cos(th6))/2 .l4*m4*th3d*th4d*(l2*sin(th3 + th4) + l3*sin(th4)) 𝑉3 = th1d^2*((m4*(2*l2*l3*sin(th3) + l1*l4*sin(th2 + th3 + th4) + 2*l1*l3*sin(th2 + th3) + l2*l4*sin(th3 + th4)))/2 + (l3*m3*(l1*sin(th2 + th3) + l2*sin(th3)))/2) + th2d^2*((l2*m4*(l4*sin(th3 + th4) + 2*l3*sin(th3)))/2 + (l2*l3*m3*sin(th3))/2) + 2*th1d*th2d*((l2*m4*(l4*sin(th3 + th4) + 2*l3*sin(th3)))/2 + (l2*l3*m3*sin(th3))/2) .l2*sin(th1)*sin(th2) + l4*cos(th4)*(cos(th3)*(cos(th1)*cos(th2) .l3*sin(th3)*(cos(th1)*sin(th2) + cos(th2)*sin(th1)) + l2*cos(th1)*cos(th2) .sin(th1)*sin(th2)) .(g*l2*m2*(cos(th1)*cos(th2) sin(th1)*sin(th2)))/2 .sin(th3)*(cos(th1)*sin(th2) + cos(th2)*sin(th1))) .l2*sin(th1)*sin(th2)) + g*m5*(l1*cos(th1) + (l1*cos(th1)*cos(th5))/2 .sin(th3)*(cos(th1)*sin(th2) + cos(th2)*sin(th1))) .(g*l5*m5*(cos(th1)*cos(th5) .(l1*sin(th1)*sin(th6))/2) + g*m4*(l1*cos(th1) + l3*cos(th3)*(cos(th1)*cos(th2) .l3*sin(th3)*(cos(th1)*sin(th2) + cos(th2)*sin(th1)) + l2*cos(th1)*cos(th2) .l4*sin(th4)*(cos(th3)*(cos(th1)*sin(th2) + cos(th2)*sin(th1)) + sin(th3)*(cos(th1)*cos(th2) .l5))/2 𝑉6 = (l1*m6*th1d^2*sin(th6)*(l1 .(l3*l4*m4*th4d^2*sin(th4))/2 l3*l4*m4*th1d*th4d*sin(th4) .sin(th1)*sin(th2)) .sin(th4)*(cos(th3)*(cos(th1)*sin(th2) + cos(th2)*sin(th1)) + 86 .l4*m4*th2d*th4d*(l2*sin(th3 + th4) + l3*sin(th4)) .sin(th1)*sin(th5)))/2 (g*l6*m6*(cos(th1)*cos(th6) .l4*m4*th1d*th4d*(l2*sin(th3 + th4) + l3*sin(th4)) .

sin(th1)*sin(th2)) .sin(th4)*(cos(th3)*(cos(th1)*sin(th2) + cos(th2)*sin(th1))+sin(th3)*(cos(th1)*cos(th2)-sin(th1)*sin(th2)))))/2-g*l3*m3*(cos(th3)*(cos(th1) *cos(th2) .(g*l5*m5*(cos(th1)*cos(th5) sin(th1)*sin(th5)))/2 𝐺6 = g*m6*((l1*cos(th1)*cos(th6))/2 .sin(th4)*(cos(th3) *(cos(th1)*sin(th2) + cos(th2)*sin(th1)) + sin(th3)*(cos(th1)*cos(th2) .sin(th1)*sin(th2)) .sin(th3) *(cos(th1) *sin(th2) + cos(th2)*sin(th1))) .sin(th3)*(cos(th1)*sin(th2) + cos(th2)*sin(th1))) .sin(th1)*sin(th2)) sin(th3)*(cos(th1)*sin(th2) + cos(th2)*sin(th1))) .sin(th3)*(cos(th1)*sin(th2) + cos(th2)*sin(th1))))/2 𝐺4 = g*m4*(l4*cos(th4)*(cos(th3)*(cos(th1)*cos(th2) .sin(th1)*sin(th2)))) .sin(th1)*sin(th2)))))/2 .(l1*sin(th1)*sin(th6))/2) .sin(th1)*sin(th2)))))/2 𝐺5 = g*m5*((l1*cos(th1)*cos(th5))/2 .sin(th3)*(cos(th1)*sin(th2) + cos(th2)*sin(th1))))/2 𝐺2 = g*m3*(l3*cos(th3)*(cos(th1)*cos(th2) .l4*sin(th4)*(cos(th3)*(cos(th1)*sin(th2) + cos(th2)*sin(th1)) + sin(th3)*(cos(th1)*cos(th2) .(g*l3*m3*(cos(th3)*(cos(th1)*cos(th2) sin(th1)*sin(th2)) .sin(th3)*(cos(th1)*cos(th2) .sin(th1)*sin(th2)))))/2 .sin(th1)*sin(th2)) .l3*sin(th3)*(cos(th1)*sin(th2) + cos(th2)*sin(th1))) + g*m4*(l3*cos(th3)*(cos(th1)*cos(th2) .sin(th3)*(cos(th1)*sin(th2) + cos(th2)*sin(th1))) l4*sin(th4)*(cos(th3)*(cos(th1)*sin(th2) + cos(th2)*sin(th1)) + sin(th3)*(cos(th1)*cos(th2) sin(th1)*sin(th2)))) .sin(th1)*sin(th2)))) .(g*l3*m3*(cos(th3) *(cos(th1)*cos(th2) .sin(th1)*sin(th2)) sin(th3)*(cos(th1)*sin(th2) + cos(th2)*sin(th1))) .l4*sin(th4)*(cos(th3)*(cos(th1)*sin(th2) + cos(th2)*sin(th1)) + sin(th3)*(cos(th1)*cos(th2) .(l1*sin(th1)*sin(th5))/2) .l2*sin(th1)*sin(th2)) + g*m2*(l2*cos(th1)*cos(th2) l2*sin(th1)*sin(th2)) + g*m4*(l3*cos(th3)*(cos(th1)*cos(th2) .(g*l4*m4*(cos(th4) *(cos(th3)*(cos(th1) *cos(th2) .(g*l2*m2*(cos(th1)*cos(th2) sin(th1)*sin(th2)))/2 .sin(th4)*(cos(th3)*(cos(th1)*sin(th2) + cos(th2)*sin(th1)) + sin(th3)*(cos(th1)*cos(th2) .sin(th3)*(cos(th1)*sin(th2) + cos(th2)*sin(th1))) .l2*sin(th1)*sin(th2) + l4*cos(th4)*(cos(th3)*(cos(th1)*cos(th2) .sin(th1)*sin(th2)) l3*sin(th3)*(cos(th1)*sin(th2) + cos(th2)*sin(th1)) + l2*cos(th1)*cos(th2) .sin(th1)*sin(th2)) l3*sin(th3)*(cos(th1)*sin(th2) + cos(th2)*sin(th1)) + l4*cos(th4)*(cos(th3)*(cos(th1)*cos(th2) sin(th1)*sin(th2)) .sin(th1)*sin(th2)) .sin(th1)*sin(th2)) .(g*l6*m6*(cos(th1)*cos(th6) sin(th1)*sin(th6)))/2 ----------------------------------------------------------------------------------------------------------------------------------- 87 .sin(th3)*(cos(th1)*sin(th2) + cos(th2)*sin(th1))))/2 𝐺3 = g*m3*(l3*cos(th3)*(cos(th1)*cos(th2) .sin(th1)*sin(th2)) .(g*l4*m4*(cos(th4)*(cos(th3)*(cos(th1)*cos(th2) .l3*sin(th3)*(cos(th1)*sin(th2) + cos(th2)*sin(th1)) + l2*cos(th1)*cos(th2) .(g*l4*m4*(cos(th4)*(cos(th3)*(cos(th1)*cos(th2) .sin(th1)*sin(th2)) .

A. Journal of Engineering Mathematics vol. “Review of fish swimming modes for aquatic locomotion”. Collected Works of Sir James Lighthill. Survey of the mathematical theory of fish locomotion. [4] M. 1970. Ann. vol. Lighthill. pg 395–448.). [6] Junzhi Yu. *2+ P. Master of Science Thesis.mit. pp. Robea Project. IEEE Journal of Oceanic Engineering 24. W. Scientific American.html [13] PPF-04. June 1998. [5] David S. Japan.edu/towtank/www/Pike/pike. multi-field team.C. and J.jp/eng/khirata/fish/ [14] Robotic Eel.Sfakiotakis.Y. Swimming of a waving plate. [9] T. Lighthill.A. PhD Thesis. http://web. Webb. [10] M. New York: Oxford University Press (1996) 532 pp. Suiss http://biorob. Soc.php?projet=Anguille [15] Boxybot (from boxfish).95 – 100.ch/boxybot 88 . David Beal and Michael Sachinis. http://www.Wu.inpg. the U. pp.fr/fr/projets.epfl. Large amplitude elongated body theory of fish locomotion. J.M. MIT. 58-68. pp . Fluid Mech.nmri.html [12] RoboPike. 44.J. “Note on the Swimming of Slender Fish”. and RoboTuna II.S. NO. Proceedings at the 2003 IEEE/ASME International Conference on Advanced Intelligent Mechatronics (AIM 2003). Propulsive Efficiency of a Flexible Hull Underwater Vehicle. R.S. 10 (1961) 321–344. the U. “Form and function in fish swimming”.lag.go.B. Barrett. James LightHill’s Memorial Paper 2002. 237 – 252 (1999). Fluid Mech. MIT.Davies. MIT (1996). Netherlands 2002. CNRS.mit. 251(1). *8+ M. J. 44. [3] J. 2. NMRI. Shuo Wong and Min Tan. Design of a Free-swimming Biomimetic Robot Fish. China. 1984. 256-301. Rev.Sparenberg. Proc.. John Kumph.Lane. David Barrett. Koichi Hirata. MIT. Yousuff Husaini (ed. [11] RoboTuna I (robot-tuna). Daisy Lachat. pp. BIRG – EPFL. London B179 (1971) 125–138. [7] Thomas Alan Trapp.ensieg.A.edu/towtank/www/Tuna/tuna. D. http://web. Vol. France http://www.APPENDIX C APPENDIX C: REFERENCES [1] M. Modelling and Control of a Fish-Like Vehicle.

com/watch?v=FKVNprWTceo [22] Tai-robot-kun. and Rudolf Kiefer. and Daniel J.pdf and http://www. Okuda. G.youtube. Proceedings of the 2009 IEEE International Conference on Robotics and Biomimetics.B. [24] Frederick Michael Carter. *26+ Rui Ding. University of Washington.youtube.edu/fish_project.net/images/korea231106. Kilmartin.4881-4886. University of Essex. France http://www. Guo. Huosheng Hu. and Jianwei Zhang . China. Min Tan. NO. pp 613 – 618.com/ and http://www.youtube. 2004. http://dces. Polymer Electronic Research Centre. http://www.aa.essex. Benjamin I.html [20] Kristi A. [25] Jindong Liu and Huosheng Hu. [27] S.roboshoal. New Zealand. Y.A. Mechanical Engineering. Nanyang Technological University.[16] Essex Robotic Fish. VOL. Ryomei Engineering. K.robotswim. Knifefish and overs. Jindong Liu. Singapore.youtube. pp. Paul A. 89 . pg 1657 -1662. Geometric Methods for Modelling and Control of Free-Swimming Fin-Actuated Underwater Vehicles.pdf http://www. Triplett. Jadranka Travas-Sejdic.com/watch?v=yO-3s23HHUU [19] RoboFish. Proceedings of the 2004 IEEE International Conference on Robotics & Automation. Junzhi Yu. pp. A Novel Type of Underwater Micro Biped Robot with Multi DOF. Sungkono Surya Tjahyono. University of British Columbia.com/watch?v=WINc1mV-L8Y [23] Han Wang.washington.youtube. Building a 3D Simulator for Autonomous Navigation of Robotic Fishes. [21] Stingray. Japan http://www. “CPG-based Dynamics Modelling and Simulation for a Biomimetic Amphibious Robot”. Asaka. Qinghai Yang. 6. Motion Control of Non-Fixed Base Robotic Manipulators. University of Auckland. RobotSwim. Dec 2007.robotic-fish.com/? [17] Robotic koi (carp koï). Dec 2009.uk/staff/hhu/Publicity_Articles/Robotic%20Fishes. Klein. Japan http://www. University of Kitakyushu. U. Morgansen. Dept of Computer Science University of Essex. Master of Applied Science Thesis. Bruce MacDonald. Robotic Fish Based on a Polymer Actuator. http://vger. 23. Guilin.com/watch?v=3P0aafialbg [18] Jessiko.ac. Japan. Proceedings of 2004 IEEE/RSJ International Conference on Intelligent Robot and Systems.com/watch?v=M7YGEVuJ4mM and http://www. IEEE Transactions ON Robotics.S. 1184 – 1199.

Barret.mathworks. pg 78 – 83.285-296 (1998). Yue. M.Berkemeier.. USA. Proceedings of the 2005 IEEE International Symposium on Intelligent Control.pdf [39] D.com/html/hs-485hb_servo. Triantafyllou.com/watch?v=n_10bmMTFPk http://www. Cyprus. Wolfgang. Teach Yourself VRML 2 in 21 Days.com/help/toolbox/physmod/mech/vis/f16-6010. and B.youtube. C. [30] Sean Andrew Mellott. 392 (1999) 183–212. MIT. pp. [40] K.Harper.A.[28] Shuxiang GUO. [31] HS 485HB Data Sheet http://www.youtube. J. and Grace.html [32] HS 5085MG Data Sheet http://www. Fluid Mech.mathworks.pdf [33] SimMechanics Translator for Solidworks and installation guide http://www. [38] SimMechanics Visualization and Import Guide by MathWorks http://www. Proceedings of the 2004 IEEE International Conference on Robotics and Biomimetics. 464 – 469. C. M.mathworks. IEEE Journal of Oceanic Engineering 23.D.Sc Mechanical Engineering Thesis. pp.co. Design Framework and 3-D Motion Control for Biomimetic Robot Fish.com/products/simmechanics/download_smlink_bounce.S. W.com/help/pdf_doc/physmod/mech/mech_vis. M. Drag reduction in fishlike locomotion. Chunlin Zhou. 2010 IEEE International Conference on Robotics and Automation Anchorage Convention District. H. Grosenbaugh and M. Campbell.html [34] Introducing Visualization and Animation http://www.servocity.html [37] Junzhi Yu and Long Wang. and Gerald G. An Improved SemiEmpirical Model for a Body and/or Caudal Fin (BCF) Fish Robot. L.com/watch?v=ku_g2TmLjs http://www.jp/RC/servo/pdf/hs5085MG. 1435 – 1440. Design of an Actuation Mechanism for Complaint Body Biomimetic Robots.html [35] Marrin.A. Indiana.P. Sams.hitecrcd.mathworks. Yuya OKUDA and Kinji ASAKA. China. B.K. “Modelling the dynamics of spring driven oscillating-foil propulsion”. Chong.com/watch?v=x4favO61hQU 90 .com/help/toolbox/physmod/mech/ug/bqjs7xc. 1997 *36+ SimMechanics User’s Guide http://www. Indianapolis.S. *29+ K. ICPF Actuator-based Novel Type of Underwater Micro Biped Robot with Multi DOF.J. Low. 2009.youtube. Seet. [41] RoboFish Animation SimMechanics High Frequency and Virtual Reality Animations http://www. D.

- Bolts References
- Adaptive Intra-Block Time Alignment Firmware for a Time- Of-Flight Positron Emission Tomography Camera
- Gat 2012 Mechanical Engineering Model Question paper (www.studentscrunch.com )
- Gear Analysis
- PMD 2005 USA Brochure
- Moog CSA Shock Testing
- Cartea Masini
- Catalogo Anderson Izml
- Mcemax Specs
- BK 100-62
- CE 382 L3 - System Laoding
- Report Guideway_Revised P411, P412, P417 & P418 _Rev.0
- 1.to Find Voltage Regulation of Single Phase Transformer
- Material Selection Software
- Introduction to Human Movement Analysis Part 1
- 2_ANPS__±ê×¼×÷Òµ_(¼òÌå×Ö)
- Dimaggio
- Technical
- Object Detection 185127 Edge Master Sensors Brochure
- GD&T
- Me 014
- Elastomeric Catalogue - Strip Brg_W
- P-Delta Analysis Parameters - ETABS - CSI
- 07 Roughometer III
- Crystal Oscillator Aging
- ctb05.pdf
- CompositeAltern
- Flare Header Sizing Design Guide
- 3. Axis LCGC Analytical, Precision & Moisture Balances
- ch04b

Are you sure?

This action might not be possible to undo. Are you sure you want to continue?

We've moved you to where you read on your other device.

Get the full title to continue

Get the full title to continue listening from where you left off, or restart the preview.

scribd