Suspended Robot Systems. A thesis presented to. the faculty of. In partial fulfillment. of the requirements for the degree.

Size: px
Start display at page:

Download "Suspended Robot Systems. A thesis presented to. the faculty of. In partial fulfillment. of the requirements for the degree."

Transcription

1 Hardware Application for Rapid Prototyping, Modeling and Validation of Cable- Suspended Robot Systems A thesis presented to the faculty of the Russ College of Engineering and Technology of Ohio University In partial fulfillment of the requirements for the degree Master of Science Cody R. Petitt April Cody R. Petitt. All Rights Reserved.

2 2 This thesis titled Hardware Application for Rapid Prototyping, Modeling and Validation of Cable- Suspended Robot Systems by CODY R PETITT has been approved for the Department of Mechanical Engineering and the Russ College of Engineering and Technology by Robert L. Williams II Professor of Mechanical Engineering Dennis Irwin Dean, Russ College of Engineering and Technology

3 3 ABSTRACT PETITT, CODY R., M.S., April 2016, Mechanical Engineering Hardware Application for Rapid Prototyping, Modeling and Validation of Cable- Suspended Robot Systems Director of Thesis: Robert L. Williams II The need for additional research tools that allow for more extensive analysis exists in the field of Cable Suspended Robots (CSR) research. This system addresses that need by providing a hardware model as a type synthesis system that can be used to determine the possible designs, given a vast range of design specifications. This two part system was configured to be adaptable, transferable, and modular, allowing a workspace and trajectory validation and singularity analysis to be completed on an easy to use handoperated Subsystem #1. Offering visual and haptic feedback and potential control validation on Subsystem #2, which allows for a desired trajectory to be automated with easy to use microcontrollers and software program. The system was validated using two real-world CSR models, proving it can adequately represent a CSR. A prototype configuration was deployed onto the system, validation and trajectory results were positive; leading to the conclusion that this system is useful for type synthesis and prototyping of CSR configurations.

4 4 ACKNOWLEDGMENTS I would like to thank Dr. Robert L. Williams II for being a great advisor and for all the help with coding, application and theory. Also, Phillip Cook for his invaluable knowledge and assistance with coding. Special thanks to my parents, who taught me work hard and press onward. My Lord and Savior for the opportunity to conduct and complete a research project and guidance though out. Joseph Oberhauser and Collier Fais for the CSR advice and my countless friends and colleagues that pushed and encouraged me along the way, thank you.

5 5 TABLE OF CONTENTS Page Abstract... 3 Acknowledgments... 4 List of Tables... 8 List of Figures Background Cable Robots Current Applications Method of Control Cable Robotics Workspace Modeling and Design Verification Type Synthesis Software Modeling Mathematical Modeling Prototyping Current Interests Project Information The Need Benefits of this System IPK, FPK, and Future PID Thesis Objectives Development and Anaylsis Hardware Frame Actuators Actuation Method Evaluation Motor Experiment: Position Validation Limitations Hardware Construction... 44

6 Software Microcontrollers Serial Communication Arduino Program MATLAB program Experimentation and Results Impact Error, Uncertainty, Accuracy and Repeatability Experiment A Experimental Setup Experimental Procedures: Subsystem # Experimental Procedures: Subsystem # Results: Subsystem # Results: Subsystem # Experimental Setup Experimental Procedures Experimental Results Experiment A and B: Error, Uncertainty, Accuracy, and Repeatability Experiment C Experimental Results: Subsystem # Experimental Results: Subsystem# Time Study Experiment D Experimental Setup Experimental Results Conclusions and Future Work Conclusions Future Work References Appendix A: User Manual Appendix B: Arduino Code

7 Appendix C: MATLAB Code - 4-Cable Robot Simulation Appendix D: MATLAB Code 6-Cable Robot Simulation

8 8 LIST OF TABLES Page Table 1: 4 Cable, Point to Point Trajectory Table 2: 6 Cable, Point to Point Trajectory Table 3: 4 Cable Results Table 4: 6 Cable Results Table 5: 4 Cable, Exp. #3: Point to Point Trajectory Table 6: 4 Cable: Circular Trajectory Results Table 7: Hardware Modification: Subsystem # Table 8: Hardware Modification: Subsystem # Table 9: Software Modifications: Subsystem # Table 10: Total System Time Results

9 9 LIST OF FIGURES Page Figure 1: Adapt SCARA Serial Robot [36] Figure 2: Stewart Platform Parallel Robot [37] Figure 3: SKYCAM [35] Figure 4: ISASBOT [18] Figure 5:ReelAx [19] Figure 6: Mechatronics Kit [23] Figure 7: CAD Model of Frame: Solid Works and Physical Model Figure 8: V-slotted Aluminum Cross Section Figure 9: Dimensions from Working Drawing (inches) Figure 10: 3/16" Steel Cable Figure 11: Spring Tensioner Figure 12: DC Motor Control Data Figure 13: DC Motor On/Off Cycle Figure 14: Three Position Tests, Pre- and Post-Trial Results Figure 15: Stepper Motor and Encoder Attached via Pulley Figure 16: Trial #1 Encoder Data, Expected Location, Error Figure 17: Trial #2 Encoder Data, Expected Location, Error Figure 18: Trial #3 Encoder Data, Expected Location, Error Figure 19: Flow Chart of Experiment A Figure 20: Workspace Validation: 4-Cable Robot Figure 21: 4-Cable Singularity at Edge of Workspace Figure 22: 4 Cable, Single Trial, Point to Point Trajectory Figure 23: 4 Cable, Point to Point Trajectory, 3D View Figure 24: 4 Cable, Point to Point, MATLAB Results, (0,0) (3,3) Figure 25:4 Cable, Point to Point, MATLAB Results, (0,0) Figure 26: 6 Cable, 3D View, Point to Point, MATLAB Results, (0,0) Figure 27: 6 Cable, Point to Point, MATLAB Results, (3,3) (0,0)... 66

10 10 Figure 28: 4 Cable, Point to Point Trajectory, 10 Trials Figure 29: 4 Cable, Point to Point Trajectory, Video Data Collection Method Figure 30:6 Cable, Point to Point Trajectory, Video Data Collection Method Figure 31: 4 Cable, Point to Point Trajectory, MATLAB Data Collection Method Figure 32: 6 Cable, Point to Point Trajectory, MATLAB Data Collection Method Figure 33: 4 Cable, 10 Trials, Combined Data Points (X,Y-axis) Figure 34: 4 Cable, 10 Trials, Combined Data Points (Z-axis) Figure 35: 6 Cable, 10 Trials, Combined Data Points (X-, Y-axis) Figure 36: 6- Cable, Single Trial (Z-axis) Figure 37: 4 Cable Circle Trajectory, MATLAB Results (3,0), 3D View Figure 38: 4 Cable Circle Trajectory, MATLAB Results (3,0) Figure 39: 4 Cable Circle Trajectory, MATLAB Results After trial, 3D View Figure 40: 4 Cable Circle Trajectory, MATLAB Results After Trial Figure 41: 6 Cable Circle Trajectory, MATLAB Results, 3D View Figure 42: 6 Cable Circle Trajectory, MATLAB Results Figure 43: 6 Cable Circle Trajectory, MATLAB Results After Trial Figure 44: 4 Cable, Circular Trajectory, Single Trial Figure 45: 4 Cable, Circular Trajectory, X10 Trials Figure 46: 6 Cable, Circular Trajectory, Single Trial Figure 47: 6 Cable, Circular Trajectory, X10 Trials Figure 48: 4 Cable, Circular Trajectory, Video Recording Method Figure 49: 6 Cable, Circular Trajectory, Video Recording Method Figure 50: 4 Cable, Circular Trajectory, MATLAB Data collection Method Figure 51: 4 Cable, 10 Trials, Combined Data Points (X,Y axis) Figure 52: 4 Cable, Circular Trajectory, MATLAB Data Collection Method (Z-Axis).. 91 Figure 53: 6 Cable, Circular Trajectory, MATLAB Data Collection Method Figure 54: 6 Cable, 10 Trials, Combined Data Points (X,Y-axis) Figure 55: 6 Cable, Circular Trajectory, MATLAB Data Collection Method (Z-axis) Figure 56: 6-Cable Circular Trajectory, Example Recording Figure 57: Algae Raceway Facility [53]

11 11 Figure 58: Flow Chart of Experiment A Figure 59: 4-Cable Singularity at Edge of Workspace Figure 60: 4 Cable, Point to Point, MATLAB Results, 3D View Figure 61: 4 Cable, Point to Point, MATLAB Results, (0,0) Figure 62: 4 Cable, Point to Point, MATLAB Results, (3,3) Figure 63:4 Cable, Point to Point, MATLAB Results, (0,0) Figure 64: 4 Cable, Point to Point Trajectory, 10 Trials Figure 65: 4 Cable, Point to Point Trajectory, Video Data Collection Method Figure 66: 4 Cable, 10 Trials, Combined Data Points (X,Y-axis) Figure 67: 4 Cable, 10 Trials, Combined Data Points (X,Z-axis) Figure 68:4 Cable, Circular Trajectory, 10 Trials Figure 69: 4 Cable, Circular Trajectory, MATLAB Results, 3D View Figure 70: 4 Cable, Circular Trajectory, MATLAB Results, (3,0) Figure 71: 4 Cable, Circular Trajectory, MATLAB Results After Trial, 3D View Figure 72: 4 Cable, Circular Trajectory, MATLAB Results After Trial Figure 73: 4 Cable, Circular Trajectory, Video Data Collection Method Figure 74: 4 Cable, 10 Trials, Combined Data Points (X,Y-axis) Figure 75: Separate Components of Subsystem # Figure 76: Assembled System of Subsystem # Figure 77: User Configuration Time for Subsystem # Figure 78: Questions #2-5 Results and Average Figure 79: 4-Cable Configuration, Side View, Initial Location Figure 80: 4-Cable Configuration, Top View, Initial Location Figure 81: 4-Cable Configuration, Side View, Desired End Locations Figure 82: 6-Cable Configuration, Top View, Initial Location Figure 83: 6-Cable Configuration, Top View, Desired Location Figure 84: 6-Cable Configuration, Isometric View, Desired Location Figure 85: 4-Cable Configuration, Top View, Initial Location Figure 86: 4-Cable Configuration, Top View, Desired Location

12 12 1. BACKGROUND Over the past several years, the research in the field of robotics has increased exponentially and also have the areas of applications for those robots. Robots come in many different configurations and are used for a variety of different tasks, all depending on what they are designed for. 1.1 Cable Robots In general robots can be classified in two main categories, Parallel and Serial. Serial robots, similar to the Adapt in Figure 1, are joined in a serial manner from the base to the end-effector. While these machines are more common and less complicated to control, they have some inherent negative design features. These include large actuators, large and rigid links, increased weight, and decreased mobility. Parallel robots are arranged in such a way that the links are all attached to the base and a single end-effector. In Figure 2, it can be seen that the rigid links are all attached to the base and to the endeffector. Cable Driven Robots are simply parallel robots where the rigid links are replaced with flexible links, i.e. cables. For cable driven robots, the motors attached to the rigid frames actuate the end-effector via the cables connecting the two.

13 13 Figure 1: Adapt SCARA Serial Robot [36] Figure 2: Stewart Platform Parallel Robot [37] Cable driven robots offer several advantages over serial robots such as increased workspace area, decreased weight, increased mobility and increased weight-payload ratio. Cable driven robots are relatively inexpensive, transportable and easily assembled. However, in order to avoid undesired motion of the end-effector, positive tension must be kept in the cables at all times, which is addressed in [1] [31] [33].

14 Current Applications Cable suspended robots (CSR) have been around for several years. The research done for the NIST Robocrane [34] laid the foundation for the CSR research that exists today. The Robocrane proposed and addressed one of the first main applications of CSR to industry. Other real-world applications include the Skycam [38], Arecibo Observatory in Puerto Rico [39], and a contour Crafting application proposed by Dr. Williams [7]. Figure 3: SKYCAM [35] Many other areas of applications and implementations have or are being researched such as Algae Harvesting at Ohio University [5], Chinese FAST Robot, Haptics [27], material handling [23] [24], Oil well firefighting configuration [33], search and rescue [33] [47], and many others [34]. Additional applications include a deployable configuration for task dependent use [35], mobile bases for cable supports [33] Method of Control CSR s can also be classified in two different categories, under-constrained and fully-constrained. For a fully-constrained configuration, the end-effecters position and velocity is completely controlled by the cables. An example of this is the Algae

15 15 Harvesting Robot presented in [5], which consists of 4 active cables and 3 degrees of positional freedom. Fully-constrained CSR systems are used in the situation where high precision, high speed, high repeatability or a combination thereof is needed, such as the Skycam or FAST [38]. In an under-constrained CSR systems, there is an opportunity for the end-effector to move once the final pose is reached. An example of this system is presented by Williams as a contour crafting robot [7]. Generally, fully-constrained systems are used for large scale CSR, due to the need for precision and repeatability Pose Kinematics In order to obtain the accuracy needed for a fully-constrained CSR system, the robot variables must be solved for. There are two generally two methods of solving a CSR system, Forward-Pose Kinematics (FPK) and Inverse-Pose Kinematics (IPK). FPK takes the desired cable lengths for the system and determines the end-effector location and pose [48]. Several novel approaches have been presented in [5] [8] [9], and several papers have addressed the reasons for using FPK for modeling CSR systems [8] [10]. The aforementioned papers include the FPK solution, which generally yields several possible solutions and is often more difficult to model and apply for a simple control system. Therefore, it is not feasible or practical to implement an FPK solution for this project. The IPK solution, however, offers a relatively straightforward approach to solve for the system parameters. The IPK solution is determined by inputting a desired end-effector location and solving for the active cable lengths needed to achieve that pose [50]. The IPK solution is helpful for simple and straightforward modeling where the end-effector location is

16 16 predetermined and the cable lengths are solved for, thus making it more useful in applying a control scheme. Several methods for applying this solution to a CSR system are presented in [48] [50]. After the system parameters are determined, a control loop must be applied to the system in order to obtain the desired control of the system Cable Robotics Workspace A robot s workspace is usually defined as the maximum reachable area that a robot can operate within. It is important of the user to fully understand the usable workspace for a cable robot, as there exist singularities at the boundaries of the workspace that can cause unexpected issues in the robot control. For CSR s, an understanding of the workspace is of great importance as the supports or frames of the robot define the constraints of the robot s useable workspace. [50] 1.2 Modeling and Design Verification Type Synthesis There are many different methods of determining a given configuration and design parameters for a desired CSR system. One of the most useful and practical ways to determine is through design iterations and prototyping with given design parameters for the system. According to [60], type synthesis of PM (Parallel Mechanisms) consists in finding all the possible types of PMs generating a specified motion pattern of a moving platform. In most of the previous works, the type synthesis of PMs was defined as finding all the possible types of PMs generating a motion of the moving platform with a specified DOF. Therefore, it can be seen that type synthesis is helpful in the design of this system, as it allows one to find all of the possible designs/configurations per the given

17 17 /desired specifications. Type synthesis has been around for many years with several improvements in implementation, application, and control can be seen in [56-60]. Therefore, type synthesis is a logical starting point and offers a benefit to this project and the future users of this project as it assists in the design, iteration and application of CSR systems Software Modeling Software modeling of CSR systems and components has been drastically increasing over the last several years as the computer models get better. Packages such as Autodesk Inventor, SolidWorks and [40] [41] offer simulation environments that can be used to model most rigid-link robot, but do not provide an adequate environment for modeling flexible links such as cables. They can be used for layout and basic design parameters, but cannot be used to properly model cables. [40] [49] offer software environments to accurately model cables. The authors of [12] presents a similar solution to modeling of CDR in an XDE software that works with MATLAB and Simulink. The presented model [12] works off a series of basic subsystems to model the proposed robot as a whole. Even with the improvement s in software modeling, it is still a model from which we must determine how good the model is Mathematical Modeling Mathematical based modeling of CSR systems has been the topic of research for many. Cable sag is being addressed via mathematics in programs such as MATLAB and finite element analysis [40] [49] has been used to better model cables in a computer program. Additional models are being currently being further investigated to gain a better

18 18 understand the behavior of the cables. This is all to aid in more accurate control of the CSR and its end-effector MATLAB MATLAB is a high-level language and interactive environment used by millions of engineers and scientists worldwide [45]. MATLAB offers the computing power and platform needed to model a CSR in a computer program. It offers an effective method to create and modify programs. It also offers an interactive graphical user interface (GUI) that allows the user to interact with the results and gain a better understanding of how the system is functioning Arduino Arduino offers open source platform for creating projects with a vast of range of opportunities. The Arduino IDE software is easy to use and is the main programing platform for the Arduino boards and their clones. There are several Arduino microcontrollers to choose from depending on the application. The Arduino Uno is the most common microcontroller with at ATmega328 processor, 14 digital I/O pins, 6 analog I/O pins, 16 MHz ceramic resonator, a USB connection, a power jack, ICSP header and a reset button [50]. This is a common board which provides the platform for many different projects such as this proposed project Prototyping With the areas of application for CSR systems increasing, the need to validate a proposed design via a prototype is as well. Several prototype models have been constructed to model a system being tested [18] [19] [22]. Prototyping offers real-world,

19 19 tangible models and results that can be used to help validate computer based models. Often times, prototyping systems are designed according to the need of the specific project, and thus can be expensive and costly [12]. An example of a cable robot built for prototyping is presented by the authors of [18]. The authors proposed a prototype, Figure 4, to be built to determine the feasibility of the prototype compared to the computer generated results. They also performed endeffector tracking as a form of validation. For the end-effector tracking experiment, they traced the path of the end-effector on a grid and compared the results to the computer programs. A similar method will be used in this thesis for comparison purposes. These experimental results were compared to the computer generated results and presented in [6]. The authors compared their results with those of the research presented in [18] by Dr. Williams. This comparison was done for as a form of validation for their system, from which they compared their results with other published results to determine if the performance was comparable. The authors of [18] collected to the results through experiments using LED attached to the end effector and a computer tracking program in a dark room. This enabled them to collect many data points and plot the path trajectory. This information was then compiled and presented in [18].

20 20 Figure 4: ISASBOT [18] The authors of [19] proposed a solution to the need in the academia research field around the modeling of CSR. They proposed that there existed a need for academia to have a prototyping tool that could be used for research purposes. They have developed a reconfigurable CSR that is able to model up to 8 cables in multiple configurations. The systems goal is, test different scenarios and different configurations: different operational spaces, various platform configurations, different cable layouts, and different constraints on the design due to the objectives of the scenario at hand. [19]. The proposed design requires a hardware manipulation and a defined set of program parameters to model the proposed configuration. The ReelAx, Figure 5 from [18], makes use of winches for actuation, standard steel framing and components, and a PC controller for the controller. It is reconfigurable, but the design allows for many others areas to be improved upon in the academic field of study.

21 21 Figure 5:ReelAx [19] Figure 6: Mechatronics Kit [23]

22 22 The authors of [23] proposed a novel modular CSR system that was designed in such a way that it can be used a mechatronics type kit. Their system includes a control methodology and is claimed to be modular and reconfigurable [23]. They also used an IPK type of solution for their system, where the end effect is forced to the desired position, and in turn, the cable positions and lengths are determined. For their 4-cable system, they constructed it out of easily reconfigurable materials such as T-slotted aluminum. They also used point-to-point control for the motion. They used servo motors for the actuation method, encoders attached to pulleys for the cablelength feedback and computers to apply the control method. Additionally, they performed a workspace analysis, determining the useable workspace for their given configuration. A similar analysis will be performed on this thesis project as well. Even with these great examples of prototyping systems and applications of type synthesis, there are still areas of improvement in areas such as modularity, transferability, adaptability, and ease of use Current Interests From the literature review, it is evident that a need exists for a cost effective, highly adaptable, transferable, readily available prototyping system for modeling CSR systems. This goal is what this thesis project aims to fulfill by way of type synthesis and other methods, which could allow any user to easily determine the most feasible configuration for the desired system. With the development of complex systems such as the [19] and [23], it would behoove the research community to have an easy to use prototyping tool that could be used to assist in the validation of various CSR designs, similar to that presented in [19] [23]. The system discussed in these papers offer a unique

23 23 approach to the prototyping system of CSR systems by using a two-step process, in which design validation and feasibility is determined and tested, yet there are area that can continue to be improved.

24 24 2. PROJECT INFORMATION As the field of research of cable-suspended robots increases, so do the possible applications. With the multiple areas for future applications growing, there exists a need to quickly design, model and test these many different configurations for various applications in order to determine the most feasible design. As mentioned by [21] in their paper, It is always desirable to evaluate a proposed robot design prior to full prototyping to ensure the swiftest and most cost effective design changes. Even through powerful 3-D CAD and Dynamic Analysis software packages such as Pro-E, IDEAS, ADAMS,, they cannot provide the important visual, haptic feedback, and realistic workspace information for the proposed design. In addition, there is a great need for developing methodologies and technologies that will allow fast design, fabrication and testing or robotic systems. [21]. It should be noted that this process is intended take place in the beginning phase of the design of a CSR system. However, the design process can lengthy and involved, this proposed system could help accelerate many stages of design process, by offering a solution that allows the users to quickly evaluate several different configurations to determine the optimal solution. While steps have been made in the right directions, this problem was initially addressed by [19] [23], they have not fully addressed this issue, leaving room for other areas to contribute in the field of prototyping CSRs. 2.1 The Need As discussed above, [18] [19] [23] developed a Reconfigurable Robot for modeling different CSR systems in order test different configurations and parameters for different conditions. Nevertheless, there exists a need to have an improved method of

25 25 rapid validation during the initial novel design phases for different CSR systems. At Ohio University alone, there are several research projects by fellow colleagues that could benefit from a rapid prototyping system. This system is highly adaptive to account for any design, configuration, or condition that would want to be tested. Understanding that most designs are first modeled and validated by math based computer models, providing real-life, tangible results can greatly increase the proof of concept in the design phase of a system. Due to the adaptability and flexibility of the proposed system, most designs can be evaluated given the proper parameters. While many designs are modeled and evaluated with computer based models, there still exist limitations to computer-based modeling. As evident through the research presented in [19], there is a need in the academic research field to provide a means to further model and validate CSR systems: past, present and future. A very important fundamental understanding can be gained from modeling past, tried and true CSR systems, such as the NIST Robocrane [33]. Which was proposed for applications such as: cutting, excavating, shaping, lifting and positioning, transporting and fighting oil well fires [33]. There also exists the Skycam, [39], which is a 4-cable robot, similar to the algae harvesting robot mentioned previously in [5]. From there, current models can be modeled and analyzed to find areas for further improvements and additional applications, for example the Algae Harvesting CSR [15], which can be used to harvest algae to be used in the creation of biofuel. It also has the ability to model novel future CSR systems.

26 26 The Robocrane and the algae harvesting robot were analyzed on the system, in order to demonstrate/validate that two existing large-scale CSR systems can be scaled down and modeled on the proposed system. Once the models have been successfully modeled on the system, then we will be able to use the system, with some level of confidence, to evaluate novel designs. While computer modeling and research has made many strides and is making large advances in the accuracy for which we can model cables [40] [44], they are still only models, which begs the question, How good is the model? Leading to the need for a physical model that can be used to support/validate the computer based models by providing visual and haptic feedback to the user. This could aid in design verification and could expose areas of improvements, not previously seen. A physical model not only puts a tangible model of the CSR system in the researcher s hands, but it also allows for further design verification which can be used for demonstration purposes. Having a tangible and reconfigurable model that displays the possible improvements model for the CSR system can also assist with acquiring funding for research proposals and novel CSR configurations. From example, the Algae Harvesting CSR [15] is in need of funding to aid in its development and application, this prototyping system could offer the design validation that investors need to see to prove that this design will work and is the best design for the this application. This rapid CSR prototyping system also offers the opportunity for decreased lead time for obtaining experimental results. While the ReelAx [19] and mechatronics kit [23] system offers a feasible solution to the modeling problem, it would also be beneficial to

27 27 be able to determine the feasibility of a novel design before changing the program parameters. This leads to an initial modeling for feasibility testing, allowing the user to test virtually any cable/base configuration, setup or layout that they want to model. This initial modeling allows the user to determine any unforeseen problems that could potentially be missed by the computer based modeling, such as cable interference and negative tension in the cables. While the configuration changes may take more time to complete on the hardware model, it should allow the user to determine the most feasible design to be modeled on the computer, which can then be validated using this system again. This process would take place at the beginning of the design phase and would aid in the determining of the best or most useful design for the given application. Due to the adaptive nature of the system, it should also reduce the time spent in the modeling and altering of designs that simply do not work, allowing users to spend more time on the CSR configurations that are feasible. While this design and system focuses on the initial design phases of a CSR system, once a design is prototyped with software and hardware, it is up to the user to obtain the desired accuracy for control needed for their desired system. 2.2 Benefits of this System This system offers an additional tool for researchers in the CSR field that has several benefits to using. It is an adaptive system that can be used to model most CSR systems with up to 6 cables. It allows the user to quickly determine feasibility of past, present or novel designs, and determine if the design is worthy of further analysis. This system is developed to be a scaled down model of real-world CSR application which can

28 28 be adapted to fit in a lab space, small office space, or a conference room. This proposed system allows for three main areas of validation: physical constraints of cables and frame, work space feasibility, and control method for end-effector location. The main motivation behind this project is that anyone desiring to model a CSR system can easily use this to prototyping system to model their CSR system for a variety of applications. They would be able to read this paper, buy the respective parts needed, print of the additional parts with a 3D printer and have this system up and running in a matter of days. Thus, making this design easily transferrable and easily accessible to anyone who would need or want to use it, the design is easy to understand and easily transferred or modified or scaled to fit the users specifications. This would allow for a mobile and modular demonstrations with rapid set up and teardown of the system. Also, allowing the users to scale down large existing projects and demonstrate them using a small scaled set up. This would allow for better demonstrations, improved feasibility analysis, or additional potential applications not previously explored. The overall proposed system will consist of two main components, Subsystem #1 and Subsystem #2. The two subsystems work together to provide the validation of a CSR system. Due to the nature of this project being an adaptive hardware application/ modeling of CSR different designs and configurations, the materials used to construct these must be highly adaptable and easily configurable. V-slotted aluminum stock was used for the frame and the corresponding components were chosen with flexibility and future modeling in mind. V-slotted is similar to T-slotted aluminum, which is commonly used in applications which are often changed and reconfigured, making the material and

29 29 components ideal for this proposed project. V-slotted aluminum was chosen for this project due to the size and availability and recommendations of fellow peers. However, this design is easily transferred to a different material such as T-slotted aluminum, which is a more common material. The system can be used for type synthesis or rapid-prototype various CSR configurations. Subsystem #1 is hand operated with the assist of spring tensioners. The spring tensioners offer a spring force, which enables the cables to stay in tension. Subsystem #1 can be used to rapidly determine the feasibility of different cable configurations along with modeling existing setups to find areas of improvement, such as cable configuration, end-effector design, cable length, structural limitations, and structural layout. Once the configuration has been determined feasible and/or validated with Subsystem #1, Subsystem #2 can be used to further verify any computer based models and offer a real-world small-scale example of the system, with some limitations. Subsystem #2 is a physically-identical model to Subsystem #1, but is actuated by motors and controlled by a microcontroller. The microcontroller makes use of the IPK solution to calculate the desired motion. Subsystem #2 can be adapted to different cable configurations when given the proper parameter changes. This allows the Subsystem 2 to be adaptable without the complication of starting anew with every different design. 2.3 IPK, FPK, and Future PID While the optimization or improvement of the control method is not the focus of this thesis, controller design is important to this project. Due to the desired motion and

30 30 application for testing being determining the active cable-lengths of point-to-point trajectory, the Inverse Pose Kinematic (IPK) solution is the most feasible solution. As mentioned in [49], for the user defines the desired end-effector location and the IPK solution yields the respective cable lengths. This type of solution makes the most sense for this application due to the largely varying cable configurations, setups, and layouts. For this application, a controller is not required, due to the repeatability of the stepper motors used. However, the theory behind how a PID controller would be applied to the given system is included as a suggestion for future work either by another student or a researcher. In theory, a PID controller offers the best compromise when with respect to rise time, settling time, percent over shoot and other controller design parameters that are important to robotic design [11] [49]. With the adaptability of the proposed design, the controller parameters would have to change with every design/configuration. Each to the controller constants (Kp, Ki, Kd) can be manipulated to design the best type of controller for each design. This is beneficial due to the physical relationship between the constants and controller having well defined physical implications on the system [11]. The PID controller would be implemented for each cable simultaneously and then passed into the system which yields the motion of the end-effector. This proposed controller would make use of a closed-loop negative-feedback controller scheme. A tunable PID controller would be very beneficial, but due to the large number of potential case and configurations, it is more feasible to suggest a general case PID controller for the system. However, if a researcher was to use this system, after determining their final

31 31 configuration, they could implement a tunable PID controller to help refine their own design, but is not included in this paper.

32 32 3. THESIS OBJECTIVES The main goal of this project is to develop a reconfigurable, transferable, adaptable, readily available, prototyping system to aid in academic research and development of CSR systems. The specific thesis objectives are as follows: Objective A.) Development, implementation and control of a small-scale cable suspended robot system, consisting of Subsystem #1 and Subsystem #2, which is able to help further determine the physical and design limitations of different configurations (compared to CAD-only design). Objective B.) Design the ability for the robot to be adapted to different cable configurations and frame setups for Subsystem #1 and #2, given the proper parameter changes in the program for Subsystem #2. Objective C.) Demonstrate two different configurations, which will require a hardware reconfiguration and software modifications to demonstrate the feasibility of the thesis CSR design, to be performed on Subsystem #1 and #2.

33 33 4. DEVELOPMENT AND ANAYLSIS In order for the prototyping system to be considered reconfigurable, transferable, adaptable, and readily available, there are several considerations that should be made for example, it had to be developed using mostly off the shelf components or parts that could be 3-D printed, with minimal custom parts. Thus using components that are ready available through online venders, ensures that the system can be cost-effectively and easily recreated in most research facilities. Most of these parts can be 3-D printed also. This system should also make use of easy-to-program software and hardware, to ensure that it is easily transferred to different prototyping systems Hardware Frame Subsystem #1 is the first component in the prototyping system, Figure 7. It is hand operated with the assist of spring tensioners and used to determine the feasibility of different cable configurations and address other design concerns. It consists of four V- slotted aluminum frames, which carry the actuators and cable attachment parts. V-slotted aluminum was chosen due to its ease manufacturability and ability to be easily adapted to accommodate different configurations per the user s requirements. This material is a standard industry practice for applications which require easily reconfigured products with little to no special machining operations. Each frame is assembled to hold up to two actuator and cable assemblies. Subsystem #2 has an identical frame to that of Subsystem #1 in order to ensure design consistency and ease of manufacturing. Weights are required to secure the frames during testing, as they are designed to light weight and

34 34 mobile. However, alternative methods can be implemented during the testing process; for example, quick clamps can be used for table top demonstrations. Figures of Subsystem #1 are seen below. Figure 7: CAD Model of Frame: Solid Works and Physical Model Figure 8: V-slotted Aluminum Cross Section

35 35 Figure 9: Dimensions from Working Drawing (inches) Actuators For Subsystem #1, spring tensioners were chosen as they allow the cables to stay in constant tension throughout most of the workspace while operating the system by hand. The actuators are lb spring tensioners. The tensioners are attached to the frames by wires and connecting frame components, which were purchased. The cable used with a flexible 1/16 twisted steel cable purchased from a hardware store. The cable is ran from the spring tensioner through a swivel pulley, attached at the top of the frame, then attached to the end-effector. The pulley height is also adjustable per design specifications.

36 36 Figure 10: 3/16" Steel Cable Figure 11: Spring Tensioner Subsystem #2 has very similar hardware with respect to the frame, however, the mode of actuation is very different. Stepper motors were used in place of the spring tensioners, allowing for a semi-automated control of the end-effector. The stepper motors are attached using 3-D printed mounts that allow 2 motors to be mounted in the same plane, but on opposite sides. The cable used for Subsystem #2 is 10lb monofilament fishing line. The cable is attached to the motor via pulley that has a specified radius in order to provide the correctly scaled steps for the motor.

37 Actuation Method Evaluation The method of actuation chosen for this project was a typical stepper motor. After several different evaluations considered and initial experiments conducted, it was determined that stepper motors would adequately fulfill the requirements for this prototyping system. DC motors with encoders, stepper motors, and servo motors were considered for this system and the baseline justification of this selection is due to the method of control. Steppers motors used have a fixed step of 200 steps/revolution, which can easily be scaled to a desired number of steps per inch, which allows for convenient control of the stepper motor to move to the desired position. While DC motors are typically used for applications similar to this, due to the slow speeds and very small increments of motion, they were not used for this system. Through initial testing of a DC motor with encoder, it can be seen that there exists a dead zone up to a certain voltage, seen in the figure below. After approximately 5 seconds of low voltage, the motor began to move. This does not prove to be viable solution as motors will have to be making small movements and moving at small velocities in-order to create the desired motion. Around the 5 second time mark, the speed ramps from 0 to ~205 RPM s in ~0.2 seconds. Which would not create a smooth trajectory as required, thus they cannot be used.

38 Axis Title Axis Title Figure 12: DC Motor Control Data Figure 13: DC Motor On/Off Cycle For this reason, NEMA 17 Stepper motors were chosen and purchased to be for the easy control of position. They have 360 degrees of motion and offer control methods of Single-coil, Double-coil, Inter-step, and Micro-step option. The repeatability of the

39 39 motors and control system was tested to validate that assumption that stepper motors could be used without feedback, encoders, for this application Motor Experiment: Position Validation Initial testing was done in order to validate the position control of the stepper motors used for this system. A basic rotary encoder and a NEMA 17 Stepper motor, Figure 17, were used for this experiment. The experiment was designed to show the accuracy and repeatability of the stepper motors that are used for this project. This experiment was performed by writing a program in Arduino IDE to controller the stepper motor and rotate the shaft in a series of steps, ranging from steps, in 1 step increments. This method was used to show that the motor would in-fact return to its original position given the same amount of steps in each direction. The first test with the program was performed using a locating mark on a pulley that was rotated to a certain position and back to the original position. This was done in order to determine the accuracy and repeatability of the stepper motors for the commands that will be similar to those passed to it via MATLAB for the thesis program. This was repeated 3 times, results can be seen below, Figure 14. The results indicated that the stepper motor does return to its initial position after a series of ascending and descending steps.

40 40 Pre-Trial #1 Post-Trial #1 ` Pre-Trial #2 Post-Trial #2 Pre-Trial #3 Post-Trial #3 Figure 14: Three Position Tests, Pre- and Post-Trial Results The second test was a position test that used the same program as above; however, this time the position was measured using a shaft mounted encoder. The encoder and stepper motor shafts were attached using a pulley wheel that had been designed to accommodate the different shaft diameters, 6mm and 5mm respectively. The Arduino Uno was used to control the motors and to read the encoder feedback. The encoder was wired in a way that allowed for double precision, measuring the rise of both channel A and B. The standard precision is 600 counts/revolution, whereas this was set

41 41 up for 1200 counts/revolution. The encoder data was transferred through the serial monitor in Arduino IDE, into MATLAB for further analysis. A MATLAB program was developed to analyze the data and compare it to the desired/expected location as determined by the MATLAB program. The pulley ratio used was 0.02 in/step, derived from 4 inches of motion for every 200 steps/revolution. This the encoder data was then scaled and compared to the length of the expected location per the number of steps. These results can be seen in Figures Figure 15: Stepper Motor and Encoder Attached via Pulley

42 42 Figure 16: Trial #1 Encoder Data, Expected Location, Error Figure 17: Trial #2 Encoder Data, Expected Location, Error

43 43 Figure 18: Trial #3 Encoder Data, Expected Location, Error These results prompted a future investigation of the output. First, there is a 33.17% error in the largest value near the middle of the graph. This can be explained by looking at the encoder output, where the motor stops, the encoder doesn t register a change due to the direction change, leading to the assumption that this point can be neglected for the comparison results with the encoder. If we ignore that error point, then the largest error we see is 5.17%. This small error is due to the small jump at the beginning of the motion when the stepper motor is energized and at the end when the motor is de-energized. Even with that jump, there is some inherent error in the encoder. The results of this experiment lead to the assumption that the stepper motors used are in-fact capable of the motion needed. Therefore, there is not a current need to incorporate a PID control loop for this control

44 44 loop. The largest error, as determined by the encoder, was 5.17%, however, the error from the beginning to the end, -2.5% and 2.17% respectively, can be combined to yield a 0.33% error in the final position. Due to the nature of the control program, the motor is receiving numbers of steps from the MATLAB program, therefore the end points should have little error associated with them Limitations With workspace feasibility validation being a large factor in the effectiveness of Subsystem #1, it is important to understand the design limitations. The workspace of Subsystem #1 is limited to the length of the spring tensioner cable length of six feet, limiting the workspace of the system to roughly a 6 x 6 square area. The frame height is limited to 18 inches, however the overall height can be adjusted by using other equipment to increase the height. There are currently three different end-effectors available for testing: Triangular with single-point attachment, Triangular with 3-point attachment, and spherical with single attachment. Due to the high adaptability Subsystem #1, several designs including: 6-cable single-point, 6-cable 3-point, 3-cable single-point, 3-cable 3- point, and a 4-cable single-point configurations, have been tested on Subsystem #1 to determine feasibility of the models design and different prototype configurations. However, for this thesis, only two of the designs are continued onto Subsystem #2 for further testing and evaluation Hardware Construction The aforementioned materials are suggested to construct a prototyping system similar to the one presented in this paper. However, the end user should consider their

45 45 respective application and modify the presented system to adequately fulfill the requirements of their desired systems. For this system, frame materials are need for 8 supports. As there are 4 frames for each subsystem respectively. The frames should be purchased and constructed first. Once the frames are constructed, the method of actuation should be determined and purchased. Due to the application of this system being used for prototyping and type synthesis, the end user should consider working with materials that are readily available. Additionally, they should make use of end effectors and supports that are feasible for the desired system/application. For example, if the user has access to T-slotted aluminum railing, that would be suggested. Additionally, making use of 3-D printed parts is a viable option for the smaller attachment brackets. However, if the user only has wooden structures available, they can use of the wooden supports or even bar stock metal would work. Fishing line or cable work well for the cable. End effectors can manufactured out of most available materials: cardboard, wood, plastic and metal, all which were used for end effectors for this project. The end effector size, weight and material selection will affect the usable workspace and available task and trajectory options. The attachment method of the cables to the end effector is an important factor in the validation process of the design as well. Single-point and multiple-point attachment end effectors were used for this project, design and configuration dependent Software Software is incorporated in Subsystem #2, allowing for semi-automated control of the model on the prototyping system. While this is low level control, it allows the user to

46 46 take a step back and further evaluate issues or potential issues that are not otherwise seen. Similar to the rationale used for determining the hardware, software components were chosen in order to ensure widespread availability at most research facilities Microcontrollers In order for this project to be adaptable, portable, and readily available, a common microcontroller was needed for the system. Arduino Microcontroller s are among the most common and well-known microcontrollers on the market today. They utilize an open source platform and are increasingly more common among the DIY and research communities due to the ease of adaptability and easy programming. This commonality aids in the use of the microcontrollers, as there are hundreds of how to videos to help one understand how to use a microcontroller. Currently, one of the most common microcontrollers is the Arduino Uno, which is what was used for this project. However, if faster processing is desired or needed, an Arduino Mega or better can be used. In order to obtain proper control of the stepper motors with the Arduino Uno, a motor shield was needed to interface between the microcontroller and motors. An Adafruit Motor Shield V2 was used for this project as the motor shield. This motor shield is stackable, allowing the simultaneous control of up to 12 stepper motors [60] and providing an external power supply to the motors, as the Arduino Uno cannot adequately supply the power to all of the motors for simultaneous motion. A microcontroller allows for many ways of communicating with other devices. The most common form of communication between a computer and microcontroller is via a USB cable over a serial port. The computer downloads the IDE Arduino program

47 47 via serial communication to the Arduino board. After the program is downloaded to the Arduino, a second software program is used to control the Arduino microcontroller and subsequent actuators via the communication over the serial port. The process is explained in the following sections Serial Communication Serial communication is the standard way of sending information between a microcontroller and computer without any need for special hardware. Serial communication works by sending 1 bit of data over a communication at a time. The speed at which serial communication is done is controlled by baud rate. The standard baud rate for an Arduino microcontroller is 9600 bits per second. However, the baud rate can be increased to 115,200 baud, which increases the transmission speed and decreases total program execution time Arduino Program The software program of the Arduino is similar to that of a C programming language and makes use of void statements to initialize and to run the program. The two required functions are a void setup and void loop statement. The void setup statement initializes all of the statements, variables, hardware, and communication. The void loop statement is a continuous statement that runs until it is told not to. The program allows for the use of other functions and statements. When the program is complete in the IDE the user can download the program to the Arduino microcontroller board. The board then executes that program until a new program is downloaded or it is erased.

48 48 For the system prototyping, the IDE system includes many libraries, which allow for a variety of commands to take place, and makes use of wrappers, which are used to bridge the gap between different libraries. For example, this program uses the Adafruit motor shield library to communicate with the shields. A wrapper is used to allow the Adafruit command for the motor to be interpreted and used with the accel.step library. The accel.step library allows for non-blocking commands to be passed to the motors via the motor shields, which allow for simultaneous movement of the motors. The void loop statement then repeats as long as a serial communication connection is established with the host computer and MATLAB program. The Arduino code waits until the serial port becomes active, where a command is sent, then it evaluates each bit to determine how to proceed. The bites are addressed with an M to ensure that they are motor commands. Followed by a 1, 2, 3, 4, 5 or 6 depending on which motor number to operate. Once the motor number is determined, it passes the number of steps to the control variable for each motor respectively. Once the number of steps has been determined for each motor, the commands are passed to the motors and the motors actuate simultaneously MATLAB program The MATLAB code was initially developed by Dr. Robert Williams II for two standard CSR configurations: 4-cable single point (Skycam) and 6-cable 3-point CSR (Robocrane). This code has been adapted and modified in order to be applied to this system and to provide a comparison for the expected results of an ideal system. The control program was derived from Dr. Williams MATLAB code. This control code

49 49 includes the ability to write motor commands, interface with the Arduino microcontroller, control the stepper motors, and read the needed information back to a file for comparison. The control program for this prototyping system is based in MATLAB and makes use of the Ardunio IDE software for communication with the microcontroller. The MATLAB program has a base structure and that is modified with the configurations design variables. The program begins by opening serial communication with the microcontroller. Then the user must define the type of trajectory motion, target or circular. With which the user must input the design parameters to be used in the IPK solution. The desired motion is divided into discrete number of points and the program loops until completed. The program runs the IPK solution and calculates the respective cable lengths, given the desired position of the end effector. The calculated cable lengths are scaled to a physical length that can be replicated on the hardware system, by dividing the length by the inches per step of the stepper motor spool. This scale factor accounts for the number of motor steps needed to accomplish the given cable length. The difference between the current length and the previous length is then calculated for each desired end effector location and cable length. That difference corresponds to a motor command for each motor. The difference is rounded to a whole number and then passed to corresponding motor via the Arduino. The Arduino takes the number of steps and passes it to the respective motor and returns the number of steps taken, back to MATLAB. The MATLAB program continues to loop until the end of the desired motion. The program also calculates the expected tension of the cables and stiffness of the robot, but those results not presented or discussed in this paper.

50 50 MATLAB makes use of IPK solution in solving for the position of the CSR end effector, which it uses to calculate the desired position per a given time step. The desired position is converted into the desired number of steps needed to get from the now point to the next point. The points are also plotted for visual and graphical comparison with the prototyping system. The MATLAB program communicates with the Arduino Uno via the serial port and USB cable. MATLAB initializes the serial port and begins communication once the MATLAB program is started by the user. From there, it passes the desired amount of steps per motor over the serial port in the following byte format, M1003. The M is the first bit and tells the Arduino Microcontroller that it is going to be expecting a motor command. The next bit is the motor number, in this case 1 corresponds to Motor 1, and is therefore sent to Motor #1. The next bit is a place holder for a negative sign. If the value is 0 it is positive, if 1, then negative. The last two bits are the number of steps, in this case 03 is 3 total steps for that given time step. For each time step in the MATLAB program, 4 or 6 new motor values are sent and the motors actuate according to the number of cables for the desired model. The MATLAB program also expects a communication back from the Arduino stating what motor number and how many steps it commanded each motor to turn to create the desired motion. If the MATLAB program does not receive communication back from the Arduino, it will timeout. MATLAB was chosen for this project because of the advanced computational ability that needed for the complex matrices used in the control program. These calculations could be done on the microcontroller at the devastating cost of computational speed. Additionally, the base control program had already been developed in MATLAB

51 by Dr. Williams and would have not been beneficial to transfer it to an Arduino program due to the superior computing abilities of MATLAB over the Arduino. 51

52 52 5. EXPERIMENTATION AND RESULTS 5.1 Impact In order to validate the design of the complete CSR system, experiments were designed and conducted to assess the system s fulfillment of the thesis objectives. The main form of validation for this project is comprised of testing two existing CSR systems. The first system is the NIST Robocrane, which is one of the main contributing papers in the field of CSRs. The Robocrane consists of 6 cables, which enables 6-dof control of spatial translations and rotations. The second system is modeled after the Skycam seen at large sporting venues, which is also a major contributing design the CSR field of research. The Skycam is a relatively simpler CSR system because it is a 4-cable, translational-motion-only robot. This type of 4-cable CSR is also under consideration to be implemented for the Ohio University Algae-Harvesting CSR. The following experiments were used to fulfill the objectives. 5.2 Error, Uncertainty, Accuracy and Repeatability For this system and for the experiments, there are several areas for error and uncertainty that affect the accuracy and repeatability of the system. These terms are defined here, but an explanation of how they contribute to the system is presented after the experimental procedures, so that the reader has an understanding of the system process prior to reading. Accuracy the ability to move to the desired location with minimal error. The accuracy of this system depends on several factors, which are outlined below. It should be further considered, when looking at the results, that this system was designed for

53 prototyping and that finely-tuned control is up to the end user. In this case, the accuracy of a point in 3 space was determined using the root mean squares method: 53 a = [(x x d ) 2 + (y y d ) 2 + (z z d ) 2 ] (1) Where a is the accuracy for that 3D point, xd, yd, zd are the desired positions, and x, y, z are the average of all the values from the 10 trials. Several suggestions are made for those improvements and how to accomplish a desired accuracy. Repeatability the ability for the robot to repeatedly position itself multiply times during a defined task. The repeatability of this system depends largely on the user. As the user does the initial configuration of the supports and end effector. If the location or cable placement is off, it will be reflected in the trajectory motion. However, when the system is set up consistently, it displays acceptable position repeatability. For this system, the repeatability is defined as the radius of a sphere which encompasses the set of data points, at a specific location during the 10 trials. A relative percentage is also calculated to relate the radius to the relative size of the desired trajectory and to the relative size of the useable workspace. The repeatability was calculated using the following equations [18] [61]: D i = ( x i x ) 2 + ( y i y ) 2 + ( z i z ) 2 (2) D = D i n (3)

54 54 D s = (D i D ) 2 n 1 (4) R = D + 3 D s (5) Where D i is the rms value for the 3 coordinate points, D is the average value from the population and D s is the deviation and R is the repeatability for the specific point in 3 space. Precision - the fineness of the measurements, also known as the number of significant figures. The precision of this system is acceptable for this application but can be improved upon. Due to the control method of the stepper motors and data collection method, it is 2 decimal places. Another potential limiting factor on the precision was the pixel resolution of the camera and laser pointer; 1080p was used for the camera, while the laser pointer was approximately 1/16, limiting the precision to greater than 1/ Experiment A Experiment #1 aims to fulfil objective s A, B, C, by using the prototyping system to validate and test two different cable configurations, while testing and determining model feasibility. Experiment A involves taking two well-known CSR models, namely the Skycam and NIST Robocrane, through the system to validate that the proposed prototyping system works as expected. These two CSR s were chosen to validate this prototyping system, because they are real-life, large scale CSRs in industry. Additionally, the Algae Harvesting Robot can be modeled similar to that of the Skycam, thus providing additional validation for the computer based model of the current research here at Ohio University.

55 55 Experiment #1 consists of two parts, modeling on Subsystem #1 and modeling on Subsystem #2. The ideology behind a two-part experiment is to use the Subsystem #1 to determine initial validation and use Subsystem #2 to perform the desired trajectory. For Subsystem #1, if the configuration does not meet design requirements, then the model will be iterated until it meets requirements and preforms as desired. This is extremely helpful in the initial design and implementation phase of a new model as it offers live, visual and haptic feedback to the user and allows for issues to be mitigated before proceeding with a flawed design Experimental Setup For the experiments conducted for the purpose of this thesis, the user needs to define certain design variables before beginning the experiment. However, this system was constructed such that all design variables do not need to be known, just a few governing factors, such as the space limitation and desired motion and desired tasks. This system is mainly to be used to type synthesis and for general or specific prototyping, therefore the design specifications that were needed to prove the validity of the system are not all required when testing new models and configurations. To prove the system can in fact be used to determine these parameters, several tests were ran to prove the validity and feasibility of the system by knowing all of the parameters and proving a desired trajectory with the system. The user must define the desired cable design to be tested along with the desired design parameters and configuration specifications: cable length, number of cables, support location, attachment method of end-effector and any additional required

56 56 information. Additionally, the actual physical space required to model the desired configuration and workspace must be two feet larger than the desired area, as the supports for the bases extend out two feet from the cable attachment points. Once the physical model is fully defined, it will be implemented in Subsystem #1. In addition to the hardware needed, the software control program is needed for comparison purposes. The aforementioned design parameter will be entered into the control program, from which the desired motion will be modeled. Implementing the defined system onto Subsystem #1 includes a hardware reconfiguration to the desired specifications which consists of the modifying end effectors, changing desired heights, changing the number of actuators used, and modifying the support location. Once the hardware adequately represents the desired configuration, Subsystem #1 is used to determine design feasibility, by performing workspace validation and ensuring proper support location. Subsystem #1 offers an easy solution to this as it offers live, visual and haptic feedback. In order to test the configuration s feasibility, it is imperative that the user have a working knowledge of CSR workspace and CSR singularities to ensure a proper evaluation is performed on the model. After the setup is complete and verified, initial tests were ran to test model feasibility. Feasibility was determined by performing the desired trajectory with Subsystem #1 in order to validate that the motion could be accomplished. Support location analysis is conducted first, and is determined using an initial check with a measuring device to ensure the supports are where the program has them modeled, and then through the workspace validation, a determination is made if the support locations need to be moved in order to optimize the design.

57 57 The workspace analysis was conducted next. This was completed by moving the end effector around the accessible workspace, monitoring cable slack, cable interaction and interference, end effector location and cable limitations during the motion. Due to the nature of Subsystem #1, the end effector is operated by hand, which allows for motion that would not otherwise exist, if not acted on by an outside force. Throughout the motion, the singularity points were noted and documented for future reference. It should be noted that due to the fact that these models (Skycam and Robocrane) are not prototypes, but actual models, when performing a prototyping analysis, the workspace and singularity analysis would be of vital importance as it may reveal an issue that was not seen during the design phase. If there exists a problem, the process should be reiterated to determine a more appropriate design for the given task. If the design is determined to be feasible, workspace is validated and support locations verified, the model configuration is ready to be tested. A design is deemed feasible if the workspace contains the desired motion without singularities or cable interferences, along with closely reflecting the computer model. However, when used for prototyping, this will be of vital importance as to not create a trajectory or design that does not meet the need of the task and not cover the necessary workspace.

58 58 Figure 19: Flow Chart of Experiment A Experimental Procedures: Subsystem #1 Experiment #1 makes use of a Point-to-point Trajectory motion to access the capability of the model and prototyping system. To begin the experiment, we input the desired parameters into MATLAB and run the initial simulation. Once the simulation is complete, we obtain a computer simulated, ideal value for what the motion of the end effector should look like. This allows the user to follow a path generated by the program for comparison purposes. The main focus is the end effector location, start and finish, but it is also important to observe the path between the points for control purposes. The desired motion is a straight line between the two points. After the program is run, yielding the desired graphical results, the figure is scaled as displayed on the screen, to match the programs values. The end effector is then moved from the origin at 0,0 to the desired position.

59 59 The end effector has a touch screen stylus attached to it, which allows for the position to be electronically recorded for further analysis. Pictures were taken for the singularities, the recorded position provides enough feedback for this experiment. Once the end effector has moved from point-to-point, it is returned to the origin and the test is repeated ten times. This will track the location through the motion and allow for easy comparison and validation with the computer model. These results will be analyzed by implementing error circles around the end point and seeing how repeatable the design is. However, there will be error in the system due to the human operation. The allowable error for this experiment is a 0.25 diameter circle for all cases. If the error is too large then the system will be modified and the experiment repeated. If the system is considered feasible, then it is ready to be modeled on Subsystem # Experimental Procedures: Subsystem #2 Once the trajectory motion was verified with Subsystem #1, the design and respective parameters are implemented onto Subsystem #2. As mentioned above, Subsystem #1 is used to determine initial validation and Subsystem #2 is used to evaluate the desired trajectory on the semi-automated system. The implementation process requires a hardware reconfiguration and program modification. The hardware configuration should mirror Subsystem #1 at the end of trials of Subsystem #1, as this would include any modifications to the design. This is verified by visual analysis and measuring the distance. Once the hardware is complete, the MATLAB program is modified, and executed to provide quick validation for the proposed design and supply the graphs to be used for validation. The desired motion for Subsystem #2 is a point-to-

60 60 point trajectory, as it represents a real-world environment where the user defines the beginning and ending locations (i.e. a pick and place operation). The end effector is then positioned in the proper starting location, reflecting the program inputs. An initial trial was conducted to determine if the motion is feasible, which was determined by the ability for the end effector to model the desired motion. Design parameters in the control program were slightly modified until the desired motion was obtained. Ten trials were completed to collect adequate data for analysis. The data points were collected by recording a video of the point produced by a laser pointer, which was attached to the end effector, on the reference graph, which included the desired points and error circles. This was used to collect the X- and Y- axis data. The Z-axis data was collected by recording the motion of the end effector with respect to a reference graph. These points were used to determine the accuracy and repeatability of the system for that configuration. Once the desired motion is tested and no large errors are seen, then the experiment is complete. The results from the collected data can be seen below. For the purpose of this thesis, due to the nature of type synthesis system, there are many factors that affect the accuracy, precision and repeatability of the model are explained in section However, it should be noted that while that this is not a robot used to perform industrial tasks and the end user is responsible for additional accuracy, precision and/or repeatability are needed. As mentioned before, the purpose of this experiment is to prove that different models can be taken through the total system and have real-world haptic feedback for validation with three criteria: design feasibility, workspace validation, and support location validation.

61 Results: Subsystem #1 The results collected from this experiment are used to validate this proposed prototyping setup. In order to determine the design feasibility with Subsystem #1, several results were collected. The first was design feasibility, seeking to answer the question of Does the configuration have the ability to model the desired trajectory? Which can simply be validated by moving the end effector in the desired trajectory, and is a visual check. The workspace validation, which consisted of the end-effector being taken through the user-defined work space for the proposed configuration. This is conducted by visual test and pictures were taken to demonstrate the end effector reaches all points within the defined workspace and that it does not reach any singularity conditions. Due to the human interaction, the likelihood of singularities increase, however, these positions are recorded to ensure they are avoided on Subsystem #2. Proper support location will be partially considered with the workspace validation, as the supports might have to be moved to accommodate the desired workspace. The support location is also limited by the length of the cables used in Subsystem #1, which might require an adjustment of the configuration. This is checked with a measuring device.

62 62 Figure 20: Workspace Validation: 4-Cable Robot The above figure demonstrates the four corner limits of the Skycam Robot. Once the 3-dimensional workspace was validated, singularities are recorded for later reference. It is important to understand where the singularities exist and how they are reached, as to avoid them on Subsystem #2 during computer controlled motion.

63 63 Figure 21: 4-Cable Singularity at Edge of Workspace Once initial design validation is complete on Subsystem #1, initial trajectory motion results are tested using Subsystem #1. As mentioned in the previous section, these results are collected using a touch screen, fixed in the Z axis, and a single point attached to the end effector. Ten trials of the desired motion were completed and the results are seen below. This method was chosen, as it allows for the user to interface with the prototyping Subsystem #1, and allows us to record the data for a given task. The graph used for the touch screen was scaled to the appropriate size, in order to ensure that the motion could be accurately replicated using Subsystem #1. 10 individual point-topoint trials were conducted and an example can be seen below. Note that each major grid line represents 1.

64 64 Figure 22: 4 Cable, Single Trial, Point to Point Trajectory. Figure 23: 4 Cable, Point to Point Trajectory, 3D View

65 65 Figure 24: 4 Cable, Point to Point, MATLAB Results, (0,0) (3,3) Figure 25:4 Cable, Point to Point, MATLAB Results, (0,0) These MATLAB expected results were used for comparison for the motion on Subsystem #1. They are also the desired motion for end effector to follow with Subsystem #2.

66 66 Figure 26: 6 Cable, 3D view, Point to Point, MATLAB Results, (0,0) Figure 27: 6 Cable, Point to Point, MATLAB Results, (3,3) (0,0) Once all 10 trials were completed, an additional test was conducted and 10 trials were performed consecutively and recorded on the same graph, yielding a better

67 67 understanding for the accuracy and repeatability of the Subsystem #1 in the 4 cable configuration. Figure 28: 4 Cable, Point to Point Trajectory, 10 Trials From this figure, we can see that there is variation in the path between point A and point B. This discrepancy is due to human error and the variation of tension in the cables along the path. However, the focus is the end points of (0,0) and (3,3). We can see that this hand operated subsystem #1 is relatively accurate and repeatable, as a human user had two target points to hit, with the opportunity for improvements to be made over time by way of repeating trials and learning the motion more completely. The results were very similar to that of a 6-Cable system.

68 Results: Subsystem #2 After initial design and trajectory validation was completed, Subsystem #2 was used to perform the desired trajectory. Subsystem #1 is used to determine the big picture constraints, while Subsystem #2 is for more fine-tuned trajectory motion. After the program is modified and is deployed onto Subsystem #2 for a Point-to-Point trajectory, the end-effector s start and end locations are recorded, and results compared to the output of the control program. The results are collected by recording the position of a laser pointer attached to end effector. From the obtained results, we will be able to determine the repeatability and accuracy of the model on the prototyping system. From the results, we are able to visually monitor the error in the trajectory, via an error circle. This was helpful in pretrial runs, to ensure proper motion and adjust the system accordingly. The following figures show an example snapshot of the video used to collect the data for the points.

69 69 Figure 29: 4 Cable, Point to Point Trajectory, Video Data Collection Method Figure 30:6 Cable, Point to Point Trajectory, Video Data Collection Method

70 70 The trials consisted of running the end effector from (0, 0, 7.5) to (3, 3, 7.5), to (0, 0, 7.5). The first iteration of the program, the end effector moved to (3, 3, 7.5). The program inputs were modified and the end effector was commanded to move back to (0, 0, 7.5). All three positions are recorded with a video, and then the points are entered into a MATLAB program that allows the user to click on points on the graph to define the end points. These points are recorded for each trial and a single example trial can be seen in the figure below. Figure 31: 4 Cable, Point to Point Trajectory, MATLAB Data Collection Method

71 71 Figure 32: 6 Cable, Point to Point Trajectory, MATLAB Data Collection Method Once all of the trial data is collected, the MATLAB results are compiled and the results for the 4-Cable and 6-Cable configuration are seen in the following figures. This yields a graph that is very useful for visual feedback. The X and Y coordinates that are needed to determine the accuracy and repeatability of the system. However, another set of trials are necessary to capture the Z-axis data, in order to get a complete representation of the systems performance. The error and uncertainty in the Z-axis measurements are larger than that of the X-, Y-axis. The error associated with the Z-axis yields a larger number due the nature of the collection method, therefore, it can be assumed that it represents the worst performance for the respective trajectory. The graphical and analytical results are presented below.

72 72 Figure 33: 4 Cable, 10 Trials, Combined Data Points (X,Y-axis) Figure 34: 4 Cable, 10 Trials, Combined Data Points (Z-axis)

73 73 This recorded trajectory was repeated ten times to provide sufficient data points to represent the model. For the 4 cable, point to point trajectory, the allowable error was a.25 radius circle in the X-Y plane. Larger error circles were considered in the Z trials to account for any error in the system and control. The results gathered with MATLAB provided data points for further analysis, calculated accuracy and repeatability results from equations 1-5 are seen in the table below. Accuracy results are presented in inches. The repeatability results are presented as the radius of a sphere in inches. Reference repeatability percentages are also presented with respect to the useable workspace and with respect to the desired trajectory. For the 4-cable and 6-cable configurations, the minimum distance able to be traveled was considered, 32 and 27.7 respectively. For the trajectory of point to point motion, the hypotenuse of the 3 x 3 right triangle was used, yielding Table 1: 4 Cable, Point to Point Trajectory Point 1 - (0,0) Point 2 - (3,3) Point 3- (0,0) Accuracy (in) Repeatability (in) % WRT Workspace (%) % WRT Trajectory (%) From these results, we can see that accuracy to approximately a 1/10 inch or ¼ cm. The repeatability of the system is also presented and represents the radius of a sphere which encompasses the points for the 10 trials. The lowest repeatability for this system

74 74 was point 3, with a sphere radii of 0.19, which correlates to approximately 4.39% of trajectory motion. Leading to the conclusion that the system is feasible and relatively repeatable for this configuration. The percent error was calculated with the repeatability and workspace as the user cares more about if this system is repeatable, as the accuracy is something that can be more easily addressed with additional modifications. However, if the repeatability of the system is not acceptable, then the system cannot be applied to as large of number of configurations as intended. Due to the prototyping nature of the system, the useable workspace changes with each workspace, therefore, for these experiments, the smallest distance able to be traveled was chosen. That correlates to about 32 for the SYCAM and Robocrane configuration, and 18 for the raceway configuration seen in Experiment C. While the smallest available distance of travel is in the Z-direction, the trajectory motion occurs in the XY plane, therefore the minimum distance for the XY plane was used. The repeatability results were compared to the usable workspace, as it allows the user to get a better understanding and a reference scale for how the system performs with respect to the overall usable workspace. It is interesting to investigate the repeatability with respect to the workspace as the useable workspace value changes for all different design, leading to a variation in the overall system percentages. Each configuration was defined as feasible if the repeatability with respect to the workspace was less than 5%. This value was used as a benchmark, as more refined control can be accomplished if the user wishes to continue to develop that configuration.

75 75 The repeatability was then compared to the trajectory motion in an effort to determine how the repeatable the trajectory was for that given task or trajectory. We want to be in a certain desired location, so this gives us a percentage of how far away are we from that. We what to see if we can actually accomplish the desired trajectory motion with the desired configuration and system, because the desired trajectory changes for each design. Therefore, it is helpful to be able to compare the results for all of the trials with trajectory motion and determine how large that repeatability is when compared to the desired trajectory. This value will also change with each different trajectory defined. The two trajectories used in this thesis we allowed for a standard trajectory to be used for each motion, but any trajectory could be used. The 6-cable, NIST Robocrane results are presented and discussed below.

76 76 Figure 35: 6 Cable, 10 Trials, Combined Data Points (X-, Y-axis) Figure 36: 6- Cable, Single Trial (Z-axis)

77 77 For the 6 cable, point to point trajectory, the allowable error circles were 0.5 and.625 radius circles in the X-Y plane. While 0.25 and 0.5 error circles were considered in the Z-axis trials to accounts for any error in the system and control. The error associated with the motion in the X-Y plane was due to rotation of the end effectors platform and error seen in the Z-axis. Throughout the trajectory motion, the Z-axis values where recorded, along with the X- and Y-axis values, in order to track the variation in the Z-axis. The desired motion was intended to be planer, no variation in the Z-axis, however it is done in 3-space to determine how accurate and repeatable the motion is in 3-space. The trajectory called for no variation in the Z-axis, which required the CSR system to keep the Z-axis value constant during the motion. This experiment was not conducted in the same plane as the cable attachment points, therefore the motion cannot be simply 2-dimensional, but must account for 3-dimensional motion, as the Z-axis value will have to be controlled. The trajectory for this experiment desired to have no variation in the Z-axis, planer motion, however, for a different experiment, one could create a desired 3-dimensional motion and determine the accuracy and repeatability of that trajectory. It can be assumed that the system would perform with similar characteristics due to the control program. In the control program, it asks for the user to define the desired beginning and end X-, Y-, and Z-axis values, so if you desired to change any value, that is a possibility. The accuracy and repeatability values were calculated for points recorded in 3- space, and thus take into account the variation in the Z-axis for the desired trajectory. The

78 78 variation in the Z-axis effects the X-and Y- axis motion, due to the control program calculating a certain in distance to travel and then desiring to move only that distance. So when we see the error in the 6-cable pt-2-pt trajectory in just the XY plane, it appears that you have a bad accuracy but decent repeatability, which holds true even without the Z- axis understanding, but the accuracy of the Z-axis helps explain why the graph appears this way. When we see the Z-axis mean value is almost 1 inch away from the desired value, this helps explain the error in the XY plane. Using the IPK solution, the active cable lengths are solved for, yielding an overall trajectory to be solved. This correlates to a desired trajectory, for this case the 4.24 hypotenuse of the 3 x3 right triangle, which is the total distance that the robot wants to move. Therefore, the deviation in accuracy in the Z-axis correlates to the decreased accuracy in the X- and Y-axes. The results gathered with MATLAB provided data points for further analysis with respect to model accuracy and repeatability, seen in the table below. Accuracy results are presented in inches. The repeatability results are presented as the radius of a sphere in inches. Table 2: 6 Cable, Point to Point Trajectory Point 1- (0,0,7.5) Point 2 - (3,3) Point 3- (0,0) Accuracy (in) Repeatability (in) % WRT Workspace (%) % WRT Trajectory (%)

79 79 From these results, we can see that accuracy has drastically decreased for this configuration. The system is, comparatively, not very accurate for this configuration, however, due to the prototyping nature of this project, it is acceptable to model the system, not to be used for application. The repeatability of the system is also presented and represents the radius of a sphere which encompasses the points for the 10 trials. The lowest repeatability for this system was point 3, with a sphere radii of 1.58, with correlates to approximately 13.92% of 4.24 trajectory motion. However, it is only 1.84% of the useable workspace for this configuration. Therefore we can conclude the system is relatively repeatable for this configuration within the useable workspace, thus a feasible configuration for prototyping Once each configuration is deemed feasible, % error with respect to workspace is less than 5%, this experiment is concluded, unless further modification or improvements are desired. This system and experiment is just working to determine the feasibility of the system, final adjusting or tuning is up to the final user on the prototype system. It all depends on their allowable error for their experiment. This prototyping rigs needs to be mobile and adaptable to those around it. In conclusion, the system can be used for prototyping, despite the uncertainly error associated with the motion, it does help to further determine the physical and design limitations of different CSR designs, given the proper parameters and specifications. This experiment was conducted in order to fulfill objectives A, B, and C.

80 Experiment B Experiment B aims to fulfil objective s A, B, C, by using the prototyping system to test two different cable configurations, focusing on the location tracking of the endeffector, similar to what is presented in [18] where the end-effector location is compared to the computer-predicted location. This experiment consists of two main parts: visual feedback and desired motion tracking. For visual feedback, a laser pointer was attached to the end-effector and a path trajectory can be executed by the system. The results were then compared to MATLAB-generated results. For this experiment, the end effector will follow a circular path drawing a circle on a piece of paper. This test was performed on Subsystem #1 and Subsystem #2. This model of circular trajectory is useful as it gives a further demonstration of the physical model compared to that of the expected motion estimated by the computer model. The computer models are good, but additional issues cannot be foreseen in the program or graph, whereas the prototype allows for those factors to been seen Experimental Setup This experiment was conducted on Subsystem #1 and #2. This experiment, utilizing a circular path trajectory, is useful for modeling and determining feasible endeffector control. For each proposed design, the proper design parameters will be used to modify the program. The computer based program runs for the given parameters and was used to validate the results from each subsystem. The system is implemented onto Subsystem #1, similar to that of Experiment A. However, trajectory motion only will be tested during this experiment as workspace analysis was determined in Experiment A.

81 81 Once the design is implemented in Subsystem #1, the user will move the end-effector in the desired trajectory, following a circle drawn from the MATLAB output results. This will provide immediate feedback and will be used to determine the error in Subsystem #1. If the proposed design can execute the desired motion, the experiment will be continued on Subsystem #2. Once the program is downloaded onto the microcontroller, the experiment can begin. A laser pointer was attached to the end-effector and pictures were taken to obtain data points that were used to create a graph. The laser pointer provides instant feedback as to how well the robot is preforming, whereas the pictures will provide graphical data to be used for further comparison Experimental Procedures The experimental procedures are identical to Experiment #1, with the only change being the trajectory. When the circle-trajectory is selected in the MATLAB program, the desired parameters are entered and then the MATLAT output is passed to the controller and the motor motion is compared to the MATLAB results seen below.

82 82 Figure 37: 4 Cable Circle Trajectory, MATLAB Results (3,0), 3D View Figure 38: 4 Cable Circle Trajectory, MATLAB Results (3,0)

83 83 Figure 39: 4 Cable Circle Trajectory, MATLAB Results After trial, 3D View Figure 40: 4 Cable Circle Trajectory, MATLAB Results After Trial

84 84 Figure 41: 6 Cable Circle Trajectory, MATLAB Results, 3D View Figure 42: 6 Cable Circle Trajectory, MATLAB Results

85 85 Figure 43: 6 Cable Circle Trajectory, MATLAB Results After Trial Experimental Results Since initial design validation was completed for the system and configuration in Experiment #1, initial trajectory motion results were tested using Subsystem #1. As mentioned in the previous section, these results are collected using a touch screen, fixed in the Z axis, and a single point attached to the end effector. Ten trials of the desired motion were completed and the results are seen below. This method was chosen, as it allows for the user to interface with the prototyping Subsystem #1, and allows us to record the data for a given task, with given information. The graph used for the touch screen was scaled to the appropriate size, in order to ensure that the motion could be accurately replicated using subsystem #1. 10 individual circular trajectory trials were conducted and an example can be seen below. Note that each major grid line represents 1. The target trajectory is a 3 radius circle. Two error circles were included for the

86 trials to allow for immediate visual feedback. These two error circle have a radius of 2.5 and 3.5, respectively. 86 Figure 44: 4 Cable, Circular Trajectory, Single Trial Figure 45: 4 Cable, Circular Trajectory, X10 Trials

87 87 Figure 46: 6 Cable, Circular Trajectory, Single Trial Figure 47: 6 Cable, Circular Trajectory, X10 Trials

88 88 From these figures, we can see that there is variation in the circular trajectory. This discrepancy is due to human error and the variation of tension in the cables along the path. We can see that this hand operated Subsystem #1 is relatively accurate and repeatable, as a human user a circular path to follow, with the opportunity for improvements to be made over time by way of repeating trials and learning the motion more completely. Figure 48: 4 Cable, Circular Trajectory, Video Recording Method

89 89 Figure 49: 6 Cable, Circular Trajectory, Video Recording Method The trials with Subsystem #2, consisted of running the end effector from (3,0) around a circular trajectory with a radius of 3. The motion was recorded with a video, and then the 9 points are entered into a MATLAB program that allows the user to click on points on the graph to define the end points. The video was paused every three seconds, about every 45 degrees, in order to record the positon in the program. These points are recorded for each trial and a single example trial can be seen in the figure below.

90 90 Figure 50: 4 Cable, Circular Trajectory, MATLAB Data collection Method Figure 51: 4 Cable, 10 Trials, Combined Data Points (X,Y axis)

91 91 Figure 52: 4 Cable, Circular Trajectory, MATLAB Data Collection Method (Z-Axis) This recorded trajectory was repeated ten times to provide sufficient data points to represent the model. For the 4 cable, circular trajectory, the reference errors were a 2.5 and 3.5 radius circles in the X-Y plane. The reference error in the Z-axis was +/- 0.5 to accounts for any error in the system and control. The results gathered with the MATLAB provided data points for further analysis with respect to model accuracy and repeatability, seen in the table below. Accuracy results are presented in inches. The repeatability results are presented as the radius of a sphere in inches. Reference repeatability percentages are also presented with respect to the useable workspace and with respect to the desired trajectory. For the 4-cable and 6-cable configurations, the minimum distance able to be traveled was considered, 32 and 27.7 respectively. For the circular trajectory, the diameter of the circle was used, 6.

92 92 Table 3: 4 Cable Results Pt 1 Pt 2 Pt 3 Pt 4 Pt 5 Pt 6 Pt 7 Pt 8 Pt 9 Accuracy (in) Repeatability (in) % WRT Workspace (%) % WRT Trajectory (%) From these results, we can see that the system is relatively accurate, with the largest value being 0.70, which is acceptable for this system. The repeatability of the system is also presented and represents the radius of a sphere which encompasses the points for the 10 trials. The repeatability for this system is relatively good also. The largest variation occurring at point 8, with a sphere radii of 0.95, with correlates to approximately 15.81% of the 6 diameter area for the trajectory. However, it is only 2.96% of the useable workspace for this configuration. Therefore we can conclude the system is relatively repeatable for this configuration with in the useable workspace, all points under 3%, thus a feasible configuration. The 6 cable results are presented below.

93 93 Figure 53: 6 Cable, Circular Trajectory, MATLAB Data Collection Method Figure 54: 6 Cable, 10 Trials, Combined Data Points (X,Y-axis)

94 94 Figure 55: 6 Cable, Circular Trajectory, MATLAB Data Collection Method (Z-axis) For the 6 cable, circular trajectory, the reference errors were a 2.5 and 3.5 radius circles in the X-Y plane the reference error in the Z-axis was +/- 0.5 to account for any error in the system and control. The error associated with the motion in the X-Y plane was due to rotation of the end effectors platform. The results gathered with the MATLAB provided data points for further analysis with respect to model accuracy and repeatability, seen in the table below. Accuracy results are presented in inches. The Repeatability results are presented as the radius of a sphere in inches. Table 4: 6 Cable Results Point 1 Point 2 Point 3 Point 4 Point 5 Point 6 Point 7 Point 8 Point 9 Accuracy (in) Repeatability(in) % WRT Workspace (%) % WRT Trajectory (%)

95 95 From these results, we can see that accuracy has drastically decreased for this configuration, the worst accuracy being for point 7. The system is, comparatively, not very accurate for this configuration, however, due to the prototyping nature of this project, it is acceptable to model the system, not to be used for application. The repeatability of the system is also presented and represents the radius of a sphere which encompasses the points for the 10 trials. The lowest repeatability for this system was point 7, with a sphere radii of 1.10, with correlates to approximately 18.36% trajectory motion. However, it is only 3.44% of the useable workspace for this configuration. It should be noted that a reason for these values being poorly aligned at 45 degrees was due to the speed and path of the trajectory motion. Points were recorded every three seconds, therefore wherever the end effector was located, its position was recorded. However, we can conclude the system is relatively repeatable for this configuration within the useable workspace, thus a feasible configuration. An example circle-trajectory is seen in the figure below, where the data was gathered every 1 second from the video recording. This is only one example of the trajectory motion. The motion is represented by the solid red line which connects the 24 points recorded every second of the motion. We can see that the trajectory motion does not accurately follow the desired motion, however, it does perform a circular trajectory and the error with respect to workspace is less than 5%.

96 96 Figure 56: 6-Cable Circular Trajectory, Example Recording Experiment A and B: Error, Uncertainty, Accuracy, and Repeatability There are several factors that affect the accuracy, precision and repeatability of this prototyping system, which is not used for industrial application, but used for type synthesis and prototyping different designs and configurations. These factors should be considered in the framework/context of the application, which is a type synthesis/prototyping system. The first area is in the Manufacturing and Assembly of Subsystem frames. Due to the prototyping nature of the components, they were quickly measured, manufactured, and assembled to produce the frames in a relatively short period of time. However, the

97 97 precision of the frames does not largely affect the accuracy or repeatability of the robots, as the attachment points of the cables are reconfigurable and thus can be intentionally moved to any different desired location. The cable attachment points use the ground as the reference for the height, therefore any variation in the height or length of the frame will not affect the control program. Another area is the Attachment method of cables. The cables are attached to a spool that press-fitted onto the shaft of the stepper motor. The spool was manufactured using 3-D printing and has some surface imperfections, which cause minimal error, but does not play a large role in the overall error of the system. There is a possibility of error due to slip between the pulley and shaft, but it is not included due to the minimal load of the end effector thus causing negligible slip, if any. The motors are all mounted at the same location on all supports, attached to 3-D printed brackets that mount onto the frame. This allows all of the motors to be mounted in the same location on all frames and have the same reference point for control. From the motors, the cables are ran through pulley s or hooks, which provide a slight resistance that could cause some error in the end effector location. A monofilament fishing line was used for the cable in an effort to mitigate the friction between the pulley and the cable. The cables were attached to the end effector using swivel hooks, which allow the cable to twist/rotate if needed. The attachment method becomes a source of error when the motion is modeled as all cables attached at a single point. While they attached to a single object, there is a slight difference in the exact center of the attachment. Another common source of error is cable winding. Often times the cable is would on a spool and layers on itself, creating a variation in the length of

98 98 cable that is reeled per step. Due to the diameter of the cable, monofilament fishing line, and the distance traveled, and inches per step, this error is minimal, but still needs mentioned, as it presents a larger problem for accurate and precise control of a robot in industry and should be accounted for. The primary source of error in the system is the Method of control of motors and Control program. This is due to how the stepper motors are controlled, as they require a number of steps to be passed to them and then they move that amount the system. Stepper motors used are accurate to 1.8 degrees. This can be translated into a linear motion for each motor and is how we create the motion for the robot. The motion is created by taking the calculated cable lengths from the control program and converting it into steps for the motors to take. The control system takes the users inputs, calculates the cable length at each time step and then creates the desired computer simulated motion by calculating the respective cable lengths using an IPK solution. Once all of the cable lengths are determined, a separate program is then used to calculate the difference in the cable length and convert that information to a number of steps for each respective motor. The issue arises when the lengths are calculated to several decimal places (1.2345), and the motors can only accept step commands in only whole numbers (2.); thus creating a large source of round-off error. This can be minimized in several ways: the use of a stepper motor with more than 200 steps/rev which allows for more steps and finer motion, through the use of a smaller pulley which allows for more steps and finer motion, or through the implementation of a PID controller or similar controller, depending on the

99 99 application. All of these would allow for smaller steps to be sent to the stepper motors, which would allow for an increase in accuracy and repeatability. The implementation of a PID controller should be able to account for this error, as it would take into account the desired position and actual position and account for the difference. This is a suggested future application to this project. Similar to the error created in the method of control, the Data collection method (X, Y and Z) creates an uncertainty and error in the measured data. All data was collected via a MATLAB program and video capture. The XY data was collected by using a laser pointer that was attached to the end effector, and the path of motion was traced on a piece of paper,. A graph of the desired trajectory motion was placed on the ground to reference the motion. The motion was then recorded in a video and data points were recorded from the video. The precision of this was determined by the size of the laser pointer and the location on the reference paper and the timing of 3 seconds. For the point to point trajectory, the end effector was ran from (0, 0) to (3, 3) to (0, 0) and 3 points were recorded. For the circle trajectory, 9 points were recorded, 1 point every 3 seconds or approximately every 45 degrees. This method reduced the error previously discussed, as it does not matter as to where the recording is taken, since the position is shown on the reference paper, which is positioned on the ground or reference plane. More data points could be taken along the path in an effort to gain a better approximation of the motion. The Z data has a larger error associated with it due to the collection method. The Z data was collected using a video recording and reference graph in the background. The

100 100 error in position was larger due to the vantage point difference. The camera was positioned to where it was aligned close to the desired Z height, but with variation, it could have caused error in the recorded points. However, due to the nature of the system being used for prototyping, it is acceptable, as it is a slight variation in the Z value, which would be an over approximation of the value, leading to a higher error, leading to the assumption that the system preforms better than the data presents. Similar to the XY data, the video recordings were paused at desired locations or time, and the data points were recorded in the MATLAB program. The last main area of error or uncertainty in the system is in the Reassembly, assembly and testing of the different configurations. When assembling or setting up a configuration for testing the design can prove to be a little difficult and can lead to a source of error. If the supports are not located in the correct positions, the control program will send the cable length for the desired location, translating to an unexpected error in the end effector location. This is mitigated by measuring the support locations at the base and at the cable attachment points to ensure that the cable attachment point correctly relates the computer simulation and the physical model. All of these are sources of error that need mentioned. However, the round off error in the control method and the data collection have the largest effect on the system and area for improvement. It should be noted that there exist other areas of error and uncertainty not discussed in this paper, but are up to the end user to mitigate, as they will change per the given system and task. Even with the amount of error and uncertainty, this system can and should be used to validate various CSR configurations.

101 Experiment C This thesis claims to provide a reconfigurable, transferable, adaptable, readily available, prototyping system to aid in academic research and development of CSR systems. For validation of this objective, it would prove beneficial to model a new configuration with the prototyping system. Therefore, since one of the current areas of interest in application is in algae harvesting, it would behoove researchers at Ohio University to further explore different configurations for this proposed application. This design is 4 cable, under-constrained robot; however, due to the design and layout of the race way farms, Figure 60, it would be of benefit to have these systems able to access the entire need collection area, and be mobile. This causes the system to be long and narrow. Below is the proposed prototype for analysis. This experiment with the system would not only help validate that the system can be used to adequately model an existing CSR, but also shows that a new configuration can be modeled and evaluated with-in a short time. Figure 57: Algae Raceway Facility [53]

102 102 Once the new application and configuration has been determined, we ensure that we have all of the desired design specifications and then proceed with the experimentation. This experiment was conducted following the experimental setup and procedures of Experiment A and B, outlined in the previous sections. Due to the procedure having been outlined, the results are the focus of this section, as this is how the system will be assessed. Figure 58: Flow Chart of Experiment A Experimental Results: Subsystem #1 After the design parameters were defined, the workspace and support location analysis was performed with Subsystem #1. The singularities were recorded and one scenario is presented in the following figure. The design parameters were also entered into the MATLAB program and an ideal simulation was ran. This simulation was used

103 103 for comparison with Subsystem #1 to ensure the design feasibility, workspace feasibility and proper support location. The design was deemed feasible on Subsystem #1, as the desired motion could be conducted within the desired configuration without cable interference or forced singularities. The desired motion was also tested on Subsystem #1, results from 10 trials of point to point motion and a circular trajectory are seen below. Configuration and set-up times were recorded for Subsystem #1 and Subsystem #2 in an effort to validate the claim of rapid deployment. Figure 59: 4-Cable Singularity at Edge of Workspace

104 104 Figure 60: 4 Cable, Point to Point, MATLAB Results, 3D View Figure 61: 4 Cable, Point to Point, MATLAB Results, (0,0)

105 105 Figure 62: 4 Cable, Point to Point, MATLAB Results, (3,3) Figure 63:4 Cable, Point to Point, MATLAB Results, (0,0)

106 106 Figure 64: 4 Cable, Point to Point Trajectory, 10 Trials Experimental Results: Subsystem#2 After the initial validation on Subsystem #1, the standard experimental procedures were followed for the point-to-point trajectory motion and circular trajectory. The results can be seen below. It should be noted that these experiments were conducted in a rapid prototyping mind set, so refined control/simulation was not obtained for this model. As mentioned before, however, fine tune control is up to the end user, the purpose of this system is to proving that a motion can be modeled and repeated in a timely and reasonable manner.

107 107 Figure 65: 4 Cable, Point to Point Trajectory, Video Data Collection Method Figure 66: 4 Cable, 10 Trials, Combined Data Points (X,Y-axis)

108 108 Figure 67: 4 Cable, 10 Trials, Combined Data Points (X,Z-axis) Accuracy results are presented in inches. The repeatability results are presented as the radius of a sphere in inches. Reference repeatability percentages are also presented with respect to the useable workspace and with respect to the desired trajectory. For this 4-cable configuration, the minimum distance able to be traveled was considered, 18. For the point to point trajectory and the circular trajectory, the hypotenuse and diameter were used, 4.24 and 6 respectively. Table 5: 4 Cable, Exp. #3: Point to Point Trajectory Point 1 - (0,0,7.5) Point 2 - (3,3,7.5) Point 3 - (0,0,7.5) Accuracy (in) Repeatability (in) % WRT Workspace (%) % WRT Trajectory (%)

109 109 Figure 68:4 Cable, Circular Trajectory, 10 Trials Figure 69: 4 Cable, Circular Trajectory, MATLAB Results, 3D View

110 110 Figure 70: 4 Cable, Circular Trajectory, MATLAB Results, (3,0) Figure 71: 4 Cable, Circular Trajectory, MATLAB Results After Trial, 3D View

111 111 Figure 72: 4 Cable, Circular Trajectory, MATLAB Results After Trial Figure 73: 4 Cable, Circular Trajectory, Video Data Collection Method

112 112 Figure 74: 4 Cable, 10 Trials, Combined Data Points (X,Y-axis) Table 6: 4 Cable: Circular Trajectory Results Point 1 Point 2 Point 3 Point 4 Point 5 Point 6 Point 7 Point 8 Point 9 Accuracy Repeatability % WRT Workspace (%) % WRT Trajectory (%)

113 113 The results presented for the experiment shows that the desired motion can be modeled on the system. The defining factor is adequately modeling a large scale robot, however, without a tunable controller, it is difficult to get the exact motion desired. While the accuracy and repeatability of the system is not acceptable for industrial applications, it is suitable for this application, thus we can say that the configuration is feasible and that the system is suitable for its proposed purpose. The current system is used just for type synthesis, however, it has the ability to be used for more refined control, which will be discussed in the future work section Time Study In order to determine if the system is rapidly deployable, this experiment will also monitored the time it took to change the system from modeling the Skycam to modeling the Algae Harvesting configuration, as the system is meant to be able to be set up and torn down in a short amount of time. It should be noted that this experiment is for validation purposes only, and that the system can be used to model virtually any CSR configuration within its physical limitations. In an effort to show that this system can be used to prototype a design in a relatively short period of time, time trials were recorded for several steps in the system process. The first step was the hardware reconfiguration of Subsystem #1 with a new configuration and the time it takes to be ready for testing, which took approximately 2.25 minutes. Once the analysis was completed on Subsystem #1 and the proper information was recorded, it was transferred to Subsystem #2. The second step was the hardware reconfiguration and software modification of Subsystem #2, took approximately 30

114 114 minutes. This included the tear down of the previous model, rewiring of the microcontroller and respective shields, measuring and layout of the supports and attachment of the different end effector. This time can be greatly reduced with some system modifications, mentioned in the future work section. Table 7: Hardware Modification: Subsystem #1 Trial #1 Trial #2 Trial #3 Average 2.5 mins 2.25 mins 2 mins 2.25 mins Table 8: Hardware Modification: Subsystem #2 Trial #1 Trial #2 Trial #3 Average 25 mins 30 mins 25 mins mins Table 9: Software Modifications: Subsystem #2 Trial #1 Trial #2 Trial #3 Average 5 mins 5 mins 5 mins 5 mins Table 10: Total System Time Results Trial #1 Trial #2 Trial #3 Average 32.5 mins mins 32 mins 34 mins While the modifications did not take a considerable amount of time, about 35 minutes before they were ready for another experiment, and the total process took 6 hours. This included starting with nothing but an idea and a possible application, defining the design parameters, hardware modification on Subsystem #1, testing for singularities, performing workspace analysis and feasibility study, hardware and software

115 115 modifications on Subsystem #2, point-to-point and circular trajectory testing, collecting, analyzing and compiling the results. 5.6 Experiment D As mentioned in Experiment C, this thesis claims to provide a reconfigurable, transferable, adaptable, readily available, prototyping system to aid in academic research and development of CSR systems. Therefore, for additional validation of this objective, it would prove beneficial to model conduct external user trials with Subsystem #1, the hand operated prototyping subsystem, to determine to the usability of the system. For that reason, Experiment D was conducted in the following manner Experimental Setup The experiment was conducted with six volunteers from two different categories; three participants that have previous design experience with CSR s and three that have little to no previous knowledge of CSR s. Each volunteer was given the user manual, seen in Appendix A, and asked to read it prior to working with the hardware. They were given the opportunity to ask any basic clarification questions and then the experiment was conducted. The experiment consisted of three parts, all of which, they were asked to take Subsystem #1 and model the discussed CSR model. A.) Part 1, the user was given the 4-cable robot configuration, application and location and asked to use Subsystem #1 to model the system and perform the desired trajectory.

116 116 B.) Part 2, the user was shown the raceway pond from Experiment C, the task was described, but the user was responsible for determining the 4-cable robot configuration. C.) Part 3, the user was shown the desired 6 cable configuration, location, and asked to model it and discuss a possible application. For each trial, the time taken to configure from the components, Figure 78, to system and test the desired trajectory was recorded for comparison purposes, Figure 79. The results can be seen below. Figure 75: Separate Components of Subsystem #1

117 117 Figure 76: Assembled System of Subsystem # Experimental Results The amount of time taken to configure the Subsystem #1 for different configurations was recorded and with that, we can evaluate the comparison between those with previous with CSR s (Participants 1-3) and those who have no prior knowledge (Participants 4-6). Configuration Time with Subsystem #1 Time (minutes) 9:36 8:24 7:12 6:00 4:48 3:36 2:24 1:12 0: Participant Number 4 Cable Setup 4 Cable Setup Cable Setup Figure 77: User Configuration Time for Subsystem #1

118 118 From the above figure, we can see that there is not a significate difference between the two groups. Further to prove that this system can be used by anyone, similar trends are displayed by both groups. That is, the first model takes to most time, as they are learning the system, but the trial time for the subsequent trials decrease. Leading to the conclusion that the system is to some degree easy to use. It should be noted that the outlier for this experiment seen in participant #4, trial 2, was due to a discussion of singularities and general CSR questions. After the experiment was completed, the following questions were asked and results were complied 1.) Given the hardware and a picture of structure to model, can you do it? 2.) How intuitive is the hardware configuration to use? Why? (1) Didn t understand at all (2) (3) Needed minor clarification (4) (5) Very Intuitive 3.) Could this model be helpful to synthesis many different configurations given a desired task? Why? 1 - NO 2 3 Possibly with changes 4 5 Yes 4.) Is the system Adaptable? Why? 1 - NO 2 3 Possibly with changes 4 5 Yes 5.) Does the system seem transferrable? Why? 1 - NO 2 3 Possibly with changes 4 5 Yes 6.) Any suggestions or comments of the system? After the experiment, everyone said Yes they can model the configuration given the system and needed information. Below is a graphical representation of questions 2-5 with each answer and the average presented.

119 119 User 1 User 2 User 3 User 4 User 5 User 6 Average RATING # 2 # 3 # 4 #5 QUESTIONS 2,3,4,5 Figure 78: Questions #2-5 Results and Average From these results it can be seen that most of the participants agree that the system is intuitive to use, adaptable and transferable. The suggestions for improvements being more figures and examples of singularities for the system, accounting for the end effector weight for increased accuracy, and system functionality depending on desired application. One of the participants commented, Once I did the first configuration, I got the whole idea completely for any other (complicated) configuration. These results aid in the validation that the system is adaptable, transferable and user friendly.

120 CONCLUSIONS AND FUTURE WORK 6.1 Conclusions The main goal of this project is to develop a reconfigurable, transferable, adaptable, readily available, prototyping system to aid in academic research and development of CSR systems. A small-scale cable suspended robot system, consisting of two subsystem was developed, implemented and controlled, which was used to further determine the physical and design limitations of different configurations (compared to CAD-only design). The system was also developed with the ability for the robot to be adapted to different cable configurations and frame setups for each subsystem, given the proper hardware and software parameters. Through Experiment A, B and C, the system demonstrated two different configurations. Both which required a hardware reconfiguration and software modifications and were used to demonstrate the feasibility of the thesis CSR design, as performed on both subsystems through different trajectories. Experiment C was designed to provide validation for the system, after the two main configurations had been tested and the system validation completed. If the system is developed to be used in a type synthesis and prototyping manner, it proved reasonable to put it to the test. Several different configurations were prototyped using Subsystem #1, while Subsystem #2 was used to refine the design once the configuration proved feasible. From the results presented in the previous section, it can be seen that this system does in fact provide additional validation and haptic feedback that is not seen or gathered from a computer program or simulation.

121 121 Adaptable as defined by dictionary.com is the ability to adjust oneself readily to different conditions. This was evaluated by determining the usable workspace that can be reached by end effectors can be located and moved to by modifying the supports. This was done by determining the usable workspace volume. For the current system, the smallest possible workspace is 18 x 40 x 7-20 (Note: this only includes the modifications that can be made to frames themselves, limited by the size of the frames. However, further modifications can be made to create a smaller motion.) Due to the purpose of the system to be able to adequately model large scale CSR s, the smallest workspace is not ideal, but is possible. The largest workspace volume is limited by the size of the space available. In the current workspace for this experiment, longer cables would need to be added to the spools and the supports can be modified and additional height requirements can be reached by moving the frames from the ground to an elevated surface. If the system was placed on the floor and no obstacles are considered, the system could be used a workspace of approximately 10 x 10 with a height range This would require many steps of the stepper motors, but could be done. Additionally, it depends on the type-synthesis being performed and the need of the researcher, to modify the configuration accordingly. Modular as defined by dictionary.com is to be composed of standardized units or sections for easy construction or flexible arrangements. This was evaluated during the experiments by using the system to model a 4-cable and 6-cable robot. As the hardware used was selected to be quickly and easily modified for different configurations. In

122 122 addition, the system consists, but is not limited to, 4 separate supports that can be moved anywhere at any time for any configuration. Wires extensions were added to the motors to allow for the microcontroller to be in a central location, thus not constraining available size of the configuration to the wire length. The transferability of this system refers to the how easily this system can be passed along to another researcher, assuming they have all tools necessary to repeat the experiments and perform type-synthesis for their own configurations. The hardware was chosen with this in mind, however, the system can be replicated with most available materials, and the appropriate materials should be chosen for the systems desired performance. Additionally, the software cannot exactly be transferred to others, but the idea and theory behind the program can. The usability or ease of use of the system was evaluated by having several volunteers operate the system. Six trials were conducted. The first three trials consisted of 3 different individuals that had knowledge of CSR s, they were shown a picture of an ideal configuration and asked to replicate the system. This was repeated with 3 people who had no prior experience with CSR s were also interviewed and ask to use the system and modify it accordingly. From these trials 6/6 stated that they were able to use it and that it was easy to use and that this would be beneficial to use in type synthesis and prototyping, before building a large scale prototype with refined control. Therefore, we can conclude that the objectives of this project were accomplished, however the overall contribution of this project is more important, as it enables researchers to have access an adaptive, easy to use prototyping system. This system

123 123 provides the end user with hardware model to validate and test configurations in 3-space, while incorporating the visual and haptic feedback of the hardware to allow the user to gain a better understanding of the configuration. This project also made strides to interface MATLAB and Arduino, making use of various program loops and serial communication. 6.2 Future Work While the system is functional and fulfills the required objectives of this thesis, there are several areas that can be improved upon either in a future research project or as a user of this system. The focus of the future work is related to the software and respective hardware. A large improvement could be made to the system by implementing a controller of some sort. With the implementation of a closed loop controller, however, certain hardware changes need to be made. DC motors with encoders, stepper motors with encoders or other motors with feedback, would have to be implemented into the system. This would allow for more accurate and repeatable control of the system. Since the development of a controller, the complexity and areas of applications have been ever increasing. With that noted, the purpose behind any control system is to obtain a desired system response for the system under control. [11]. Several recent papers have addressed the design of a Proportional-Integral-Derivative (PID) controller for CSR systems. These papers have investigated the feedback method, disturbance response, robustness and other important parameters [13-17]. The PID controller offers a good compromise between the other methods of control [11] [48], by offering a relatively simple solution to a possibly complex system [11]. In order to have a complete control

124 124 loop, feedback back must be implemented. A common method is through closed-loop negative-feedback controller. In the control loop, a parameter (i.e. cable length) is passed to the controller, then to the system, the parameter is monitored by the sensor, and the feedback is subtracted from the system. If the IPK solution was implemented, the parameter being sent to the controller and monitored by the sensor would be the active cable length. The PID controller is the best compromise for basic control of robot because of its robustness, simplicity, and response to outside disturbances. The PID controller makes use of three different actions, Proportional, Integral, Derivative, which affect difference performance parameters. The PID controller offers the most feasible solution to the controller for a prototyping applications. To implement a PID controller into the MATLAB code, encoders would need to be installed onto the hardware model. This would allow for feedback, thus creating a tunable closed-loop control system. The encoders would allow the control program and possible PID controller to use the actual current location/length and then calculate the needed number of steps to accomplish the next desired step. Other software improvements that would be suggested would be the implementation of a possible FPK solution. This is an important area of research for CSR s, as it is more complex and requires more computations, thus why it is often not used for simulation. However, due to the adaptability and usability of this system, if an FPK control method was developed, it could be implemented onto the system.

125 125 Additionally, a counter variable could be used in the MATLAB program to accumulate the round off error, which implements as correction step when need to help increase the accuracy and repeatability. The control program takes the desired locations and calculates the active cable lengths for that motion, and does that for each step of the motion. From that solution, the difference in the active cable length needed to move from previous position to the new desired location, for each step, is calculated and converted into the number of steps that each respective stepper motor needs to take to accomplish the desired position. However, the error occurs when the length is converted into the number of steps, as the motors can only receive commands in whole numbers, so the command is rounded up to the nearest whole number. This method tends to average out, however, it could be improved upon with the addition of a counter. This counter would gather the unused decimal values in a counter until the values total 1 whole step, at which point it would send a command to the motor to take an extra step or two, to account for the rounded values. Additionally, the MALAB program is easily edited, and it would behoove the user to create a more compliant user interface that is conducive to their research purposes. Other hardware improvements that would be suggested, project dependent, would be a more adaptive configuration method that allows for a higher repeatability when moving the system from one location to another. This would also allow the user to record previous systems for a visual comparison for future work. For the purpose of type synthesis, the pulley and spool method was acceptable but not idea for a highly repeatable and accurate system. Therefore, if high accuracy and precision are required, an

126 126 improved pulley/spool system could easily be implemented, so that it winds the cable up in a way that minimizes the error associated with the cable layering up while winding. Depending on the desired analysis for the system, sensors could be added to measure the tension and length in the cables. This would allow us to record these values during testing and compare them to the programs analytical output of these values. The addition of sensors, motors and encoders will cause a price increase, which should be implemented at the user s discretion. An initial calibration protocol would be beneficial to have before testing on Subsystem #2, as it would assist in increasing the accuracy and repeatability of the system. It would be to be able to be used for any configuration. A possible method would be to implement encoders on the motor shafts to monitor the cable length and a target object in the workspace with a known, fixed height for a reference point. The cables could be spooled up until the snaps touch the pulleys, then each cable would be repositioned to the attachment point on top of the target object at a single point. While the cables are being repositioned, the length of cable released should be recorded with the encoders. Then with the given length (hypotenuse), the know height of the cable attachment point and the known fixed height of the target object, one can calibrate the system for a known position in the workspace, a system reference point. This reference point would ideally be located in the center of the desired reachable workspace, close to the reference ground plane and could be used as the origin for that workspace. This would allow the user to define the reference point from which the reachable workspace can be defined. Defining the for the center of the workspace would be beneficial, as the

127 127 small error is more acceptable at the limits of the reachable workspace as opposed to in the vicinity of the trajectory motion. However, this is one proposed method, others could be implemented to offer a method of system calibration. Depending on the accuracy and repeatability needed, it will help determine which system to use and which improvements would be beneficial to consider. For type synthesis of different designs or configurations for a given task, or any combination thereof, where workspace analysis, validation of support locations, singularity analysis, or an initial trajectory validation is desired, Subsystem #1 would be sufficient to proof a design or configuration in a short amount of time. For example, several designs can be quickly mocked up and design limitations defined in a relatively short amount of time using Subsystem #1. Below are several examples of possible designs that were set up, synthesized and initial feasibility tests were conducted in 3-dimensional space using Subsystem #1, including singularity analysis and work space analysis. With the adaptability of Subsystem #1, it is easy to synthesis different configurations given different desired locations and applications. If the desired application is an elevated system with a large vertical workspace, that can be accomplished by elevating the supports on tables that would allow for a further analysis of the trajectory motion in the Z-axis. The figures below demonstrate a possible 4-cable configuration with elevated supports, where the desired trajectory requires a large range of Z-values.

128 128 Figure 79: 4-Cable Configuration, Side View, Initial Location Figure 80: 4-Cable Configuration, Top View, Initial Location

129 129 Figure 81: 4-Cable Configuration, Side View, Desired End Locations From these figures, we can see a large available workspace in the Z-axis. Due to the length of cables, the reachable workspace is limited in this configuration, but the desired trajectory can still be tested in the reachable workspace for this configuration. Another possible application is a 6-cable robot that could be used for pick and place operations either in manufacturing or in other applications. This configurations demonstrates the possible reachable workspace for the given configuration and the limitations thereof. In the configuration seen below, if the desired trajectory is a pick-nplace operation, moving an object from one side of the gray block to the other, the reachable workspace is limited by the size of the end effector and cable attachment points. The figure below shows the at-rest position of the end effector, while the next

130 figure is a demonstration of the limitation in the workspace due to interference between the end effector and the block. 130 Figure 82: 6-Cable Configuration, Top View, Initial Location Figure 83: 6-Cable Configuration, Top View, Desired Location

131 131 Figure 84: 6-Cable Configuration, Isometric View, Desired Location From these results, we can see that a slight modification would be required to obtain the desired trajectory and reachable workspace. This easily done with the configuration, as the end effector could be modified to fit the desired task, or the supports could be moved to obtain the desired performance. Another possible configuration would be a simple reaching task for an object. If the desired end pose is touching the top of the red bricks, then the trajectory motion from the reference point seen in the figure below, would have to be tested to determine if possible with the obstacles to avoid, modeled as the blue buckets. The initial position, Figure 85, is positioned in a planer fashion with the cable attachment points, as seen in the first configuration.

132 132 Figure 85: 4-Cable Configuration, Top View, Initial Location Figure 86: 4-Cable Configuration, Top View, Desired Location The testing of the desired trajectory is seen in Figure 90, there is an interference with the blue bucket and the cable, thus limiting the motion from achieving the desired

133 133 end location. This interference occurs as the cable moves in the Z-axis closer to the ground. On a medium-large scale application, this could represent a possible manufacturing environment, where a motion is desired between different assembly lines, or a larger scale could be a possible construction application where the buckets represent building to be moved around. While all of these configurations could be determined in a complex computer program, this subsystem allows for 3-dimensional feedback and validation of the desired trajectory and motion, offering rapid visual and haptic information to the end user about the desired configuration and trajectory. Also, the system allows the user to rapidly modify and adapt the system s configuration to determine an ideal set-up for the desired task. Thus, when given the proposed application and location, type synthesis can be quickly performed to find a feasible configuration with this system. For type synthesis of different designs or configurations for a given task, where accuracy and repeatability are important in the development of a prototype, then a combination the two subsystems would be suggested. The use of Subsystem #2 allows the user to determine trajectory feasibly and is one step closer to a fully functional prototype. This system could be adapted and used for a fully functioning prototype. With the suggestion that, depending on the desired trajectory and speed and accuracy and repeatability, an improved microcontroller, if a faster processor is needed. A fully functioning prototype would require improved controls, PID controller and/or error accumulator. It might beneficial to have an improved cable attachment method that

134 reduces the error or variation in the attachment points. However, the end user should decide what they need and adapt these suggestions for the best fit for their project. 134

135 135 REFERENCES [1] Seriani, S., Seriani, M., and Gallina, P., 2015, Workspace optimization for a planar cable-suspended direct-driven robot, Robotics and Computer Integrated Manufacturing. [2] Berti, A., Merlet, J.-P., and Carricato, M., 2015, Workspace Analysis of Redundant Cable-Suspended Parallel Robots, Cable-Driven Parallel Robots, A. Pott, and T. Bruckmann, eds., Springer International Publishing, pp [3] Rezazadeh, S., and Behzadipour, S., 2011, Workspace Analysis of Multibody Cable-Driven Mechanisms, J. Mechanisms Robotics, 3(2), pp [4] Alikhani, A., Behzadipour, S., Vanini, S., and Alasty, A., 2009, Workspace Analysis of a Three DOF Cable-Driven Mechanism, JOURNAL OF MECHANISMS AND ROBOTICS-TRANSACTIONS OF THE ASME, 1(4). [5] Needler, N. J., 2013, Design of an Algae Harvesting Cable Robot, Including a Novel Solution to the Forward Pose Kinematics Problem, Ohio University / OhioLINK. [6] Vadia, J., 2003, Planar Cable Direct Driven Robot: Hardware Implementation, Ohio University. [7] Xin, M., 2008, Kinematics, Dynamics, and Controller Design for the Contour Crafting Cartesian Cable (C4) Robot, Ohio University. [8] Korayem, M. H., Tourajizadeh, H., Taherifar, M., Khayatzadeh, S., Maddah, M., Imanian, A., and Tajik, A., 2014, A novel method for recording the position and orientation of the end-effector of a spatial cable-suspended robot and using for closed-loop control, The International Journal of Advanced Manufacturing Technology, (5-8), p [9] Dallej, T., Gouttefarde, M., Andreff, N., Dahmouche, R., and Martinet, P., 2012, Vision-based modeling and control of large-dimension cable-driven parallel robots, 2012 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS), pp [10] Zhu, Z., Chen, P., Shao, X., Wang, Q., and Chen, G., 2014, Forward kinematics analysis and experimental validation of a four-cable-driven under-constrained parallel mechanism, Proceedings Of The Institution Of Mechanical Engineers Part C-Journal Of Mechanical Engineering Science, 228(7), pp

136 [11] 2006, Basics of PID Control, Practical PID Control, Springer London, pp [12] Michelin, M., Baradat, C., Nguyen, D. Q., and Gouttefarde, M., 2015, Simulation and Control with XDE and Matlab/Simulink of a Cable-Driven Parallel Robot (CoGiRo), Cable-Driven Parallel Robots, A. Pott, and T. Bruckmann, eds., Springer International Publishing, pp [13] Torres-Mendez, S. J., Gungor, G., Fidan, B., and Khajepour, A., 2014, Comparison of Adaptive and Robust Controllers for Fully-Constrained and Redundant Planar Cable Robots, p. V04AT04A021. [14] Khosravi, M. A., and Taghirad, H. D., 2014, Robust PID control of fullyconstrained cable driven parallel robots, Mechatronics, 24(2), pp [15] Babaghasabha, R., Khosravi, M. A., and Taghirad, H. D., 2015, Adaptive robust control of fully-constrained cable driven parallel robots, Mechatronics, 25, pp [16] Khosravi, M. A., and Taghirad, H. D., 2013, Experimental Performance of Robust PID Controller on a Planar Cable Robot, Cable-Driven Parallel Robots, T. Bruckmann, and A. Pott, eds., Springer Berlin Heidelberg, pp [17] Xin, M., 2008, Kinematics, Dynamics, and Controller Design for the Contour Crafting Cartesian Cable (C4) Robot, Ohio University / OhioLINK. [18] Korayem, M., Bamdad, M., Tourajizadeh, H., Shafiee, H., Zehtab, R., and Iranpour, A., 2013, Development of ICASBOT: A Cable-Suspended Robot s with Six DOF, Arabian Journal for Science & Engineering (Springer Science & Business Media B.V. ), 38(5), pp [19] Izard, J.-B., Gouttefarde, M., Michelin, M., Tempier, O., and Baradat, C., 2013, A Reconfigurable Robot for Cable-Driven Parallel Robotic Research and Industrial Scenario Proofing, Cable-Driven Parallel Robots, T. Bruckmann, and A. Pott, eds., Springer Berlin Heidelberg, pp [20] Novak-Marcincin, J., 2014, Modelling of Manufacturing Systems by Rapid Prototyping Technology Application, Acta Technica Corvininesis - Bulletin of Engineering, 7(3), pp [21] Won, J., DeLaurentis, K., and Mavroidis, C., 2000, Rapid prototyping of robotic systems, Robotics and Automation, Proceedings. ICRA 00. IEEE International Conference on, IEEE, pp

137 [22] Gagliardini, L., Caro, S., Gouttefarde, M., Wenger, P., and Girin, A., 2015, A Reconfigurable Cable-Driven Parallel Robot for Sandblasting and Painting of Large Structures, Cable-Driven Parallel Robots, A. Pott, and T. Bruckmann, eds., Springer International Publishing, pp [23] Lin, J., Huang, C. S., and Chang, J., 2015, A mechatronic kit with a control methodology for a modualized cable-suspended robot, Journal of Vibration and Control, p [24] Nguyen, D. Q., and Gouttefarde, M., 2014, Study of reconfigurable suspended cable-driven parallel robots for airplane maintenance, 2014 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS 2014), pp [25] Capua, A., Shapiro, A., and Shoval, S., 2014, SpiderBot: a cable-suspended walking robot, Mechanism and Machine Theory, 82, pp [26] Gagliardini, L., Caro, S., Gouttefarde, M., Wenger, P., and Girin, A., 2014, Optimal design of cable-driven parallel robots for large industrial structures, 2014 IEEE International Conference on Robotics and Automation (ICRA), pp [27] Pott, A., Meyer, C., and Verl, A., 2010, Large-scale assembly of solar power plants with parallel cable robots, Robotics (ISR), st International Symposium on and th German Conference on Robotics (ROBOTIK), pp [28] Shank, J. A., 2008, Improvement and Evaluation of Three Cable Haptic Interface, Ohio University. [29] Thompson, R. R., and Blackstone, M. S., 2005, Three-dimensional moving camera assembly with an informational cover housing. [30] Snyder, B. M., 2006, SEVEN-DOF CABLE-SUSPENDED ROBOT WITH INDEPENDENT SIX-DOF METROLOGY, Ohio University. [31] Alikhani, A., Behzadipour, S., Alasty, A., and Sadough Vanini, S. A., 2011, Design of a large-scale cable-driven robot with translational motion, Robotics and Computer-Integrated Manufacturing, 27(2), pp [32] Riehl, N., Gouttefarde, M., Baradat, C., and Pierrot, F., 2010, On the determination of cable characteristics for large dimension cable-driven parallel mechanisms, 2010 IEEE International Conference on Robotics and Automation (ICRA), pp

138 [33] Gungor, G., Torres-Mendez, S. J., Fidan, B., and Khajepour, A., 2014, Estimation of Anchor Points for Fully-Constrained and Redundant Planar Cable Robots, p. V04AT04A023. [34] Albus, J.; Bostelman, R.; Dagalakis, N., 1993, The NIST ROBOCRANE. J. Robot. Syst.. 10(5), pp [35] Tang, Xiaoqiang, Dengfeng Sun, and Yuanying Qiu. "Advances in Cable-Driven Parallel Manipulators." (2014). [36] Bosscher, P. M., and Williams, L. R. I., 2010, Apparatus and method associated with cable robot system. [37] [38] [39] (SKYCAM) [40] [41] [42] [43] [44] [45] [46] [47] Oh, S.-R., and Agrawal, S. K., 2006, Generation of feasible set points and control of a cable robot, IEEE Transactions on Robotics, 22(3), pp [48] Bosscher, P., Williams, I., Robert L., and Tummino, M., 2005, A Concept for Rapidly-Deployable Cable Robot Search and Rescue Systems, pp [49] Williams II, Robert L., 2015, Robot Mechanics

139 139 [50] (Cable modeling software) [51] [52] [53] Berti, A., Merlet, J.-P., and Carricato, M., 2015, Workspace Analysis of Redundant Cable-Suspended Parallel Robots, Cable-Driven Parallel Robots, A. Pott, and T. Bruckmann, eds., Springer International Publishing, pp [54] Khakpour, H., Birglen, L., and Tahan, S.-A., 2014, Synthesis of Differentially Driven Planar Cable Parallel Manipulators, IEEE Transactions on Robotics, 30(3), pp [55] McCarthy, J. M., 2011, 21st Century Kinematics: Synthesis, Compliance, and Tensegrity, J. Mechanisms Robotics, 3(2), pp [56] Alikhani, A., Behzadipour, S., Alasty, A., and Sadough Vanini, S. A., 2011, Design of a large-scale cable-driven robot with translational motion, Robotics and Computer-Integrated Manufacturing, 27(2), pp [57] Meng, J., Liu, G., and Li, Z., 2007, A Geometric Theory for Analysis and Synthesis of Subsystem-6 DoF Parallel Manipulators, IEEE Transactions on Robotics, 23(4), pp [58] Bruyas, A., Geiskopf, F., Meylheuc, L., and Renaud, P., 2014, Combining Multi- Material Rapid Prototyping and Pseudo-Rigid Body Modeling for a new compliant mechanism, 2014 IEEE International Conference on Robotics and Automation (ICRA), pp [59] Kong, X., and Gosselin, C., 2007, Type Synthesis of Parallel Mechanims, Springer Berlin Heidelberg. [60] [61] Sofia, 1997, Positioning Accuracy and Repeatability of a Class of Technological Robots, Bulgarian Academy of Sciences: Problems of Engineering Cybernetics and Robotics, p. 46.

140 140 APPENDIX A: USER MANUAL A User Manual is presented in this Appendix to be aid in a further explanation of the system and how to use them for experimental purposes. It outlines the process used and the steps for prototyping and type synthesis with subsystem #1 and subsystem#2. Subsystem #1: 1. Start with the given hardware: a. If you have a design to proof, configure the hardware accordingly and proceed. b. If you have a desired task and using this system for type synthesis, configure to the outer constraints or best approximation of the design, then work to iterate to the best possible solution.

141 141 Figure 1: Given Hardware for Subsystem #1 2. To configure the system, measure the desired support location and position the supports accordingly. a. Depending on the number of supports, number of cables, or cable layout desired the number and position of the supports will change 3. Once the supports are positioned, place the counter weights on top of the supports. a. This is done to secure them from moving 4. Check the position of the supports then select the desired end effector for the configuration: a. Single point attachment b. 3-point attachment c. Depending on the type of motion of cable configuration, the cables can be attached at different locations or at a single point.

142 142 Figure 2: Possible End Effector (Single or multi attachment points) 5. Attach the cables to the end effector via the snaps at the end of the cables and eyehooks on the end effector 6. Once the end effector is attached, move the end effector by hand, and determine if the desired motion can be accomplished. a. If yes, begin the initial testing of the workspace and singularities. b. If no, repeat steps Workspace analysis: a. Move the end effector, with your hand, between all of the supports i. Determine the limits of motion and singularities ii. Limits of motion exist when there is no more cable, when you travel outside of the obtainable workspace with no external force acting upon it, when the end effector contacts the supports iii. Singularities occur when the end effector is positioned where 2 cables are perfectly parallel to each other. 1. Be sure to record the singularity positions for reference on subsystem #2 2. This can be done by taking a picture of the system at the singularity points. b. Is there a singularity or limit issue with in the desired trajectory of the end effector? i. If no, then continue to the visual and graphical verification ii. If yes, then repeat steps 1-8.

143 143 Figure 3: Singularities at the edge of the workspace 8. Once the workspace is tested and singularities are determined, then position the touch pad in a fixed position in the z axis in order to gather the data for comparison Figure 4: Subsystem #1 with Point collected method

144 9. Run the comparison tests to see if the motion can be accomplished in a repeatable fashion. 10. If the motion is good then it is concluded, if not, then the design is modified to accomplish the desired motion and the changes are recorded accordingly 11. Once the testing is completed, the experiment is complete and the design is transferred onto subsystem #2. Subsystem #1 is now ready for another configuration Subsystem #2: 1. Once the configuration/design has been validated on Subsystem #1, reconfigure subsystem #2 s supports to resemble subsystem #1. Note: The bottom bar of the supports points inward for subsystem #2, whereas it points outward on subsystem #1. 2. Once the hardware is properly configured, aligned and measured to ensure proper locations, the cables are ready to be attached. The cables are wound around the 3- D printed spools and can come off easily, make sure to keep tension on the cable to prevent unspooling. When ready, take the desired end effector and attach the cables to the desired attachment points. Make sure that the cables are properly aligned in the pulleys or swivel hooks. 144 Figure 5: Subsystem #2 Motors and Spools 3. Once the end effector is attached to all of the cables that are to be used for that experiment (4 cables for the 4 cable robot, 6 for the 6 cable robot), ensure that the cables are spooled in the correct direction. They should wind up in a counter-

145 clock wise direction. This is important, as the program constants are set up for this configuration. 4. Manually adjust the end effectors location to the desired location in the X,Y and Z coordinates. This is done by turning the spools for to create the desired position for the end effector. Note: For point to point trajectory, the end effector was moved to (0, 0, 7.5 ) and for the circular trajectory (3, 0, 7.5 ). This is just for reference for the program, ideally, it can be moved anywhere. 5. Once the hardware is set up, ensure that the correct motors are attached to the motor shield and that the shields are attached to the Arduino Microcontroller. Then plug the microcontroller into the computer via the USB port. 6. Once the microcontroller is connected to the computer, open up the Arduino IDE (programming interface for Arduino). Then open the Arduino2Matlab_STEPmotors.ino or the Arduino2Matlab_STEPmotors_6.ino, depending on the configuration. Once open, upload to the microcontroller by way of the upload button. If there is an issue, check the port number and serial port connection. 7. After the Arduino program is uploaded to the microcontroller, open up the MATLAB program Const.m and enter the system constants for your configuration. Then select Configure_Select.m, and choose between: RUN_IPK_4_mat2ardu_fixed_dt (4-cabler) or RUN_IPK_6_mat2ardu_fixed_dt (6-cable). 8. Once the program is chosen, follow the on screen directions, enter the desired values for the different variables. Then the program should be ready to execute on the hardware. When you start the program, you initialize the serial communication by creating a serial object in the MATLAB program Once the program constants are entered, the program should run on the hardware, creating simultaneous motion with all of the motors. It will display the motion and then it will ask if you would like to see the other graphs (Active tensions, cable length, etc.) you can chose to view them, or ignore them for now. 10. The results were collected by tracking the laser pointer that was attached to the end effector using a video recorder. Then the results were compiled using a MATLAB program. But for validation purposes, a visual comparison of the

146 146 motion can suffice. 11. Once the motion is completed, release the motors by pressing the reset button on the motor shield or microcontroller. Once they are released, move the end effector back to the desired starting locations and run another iteration. Notes: The system constants are changed in the Consts.m program. Once that is changed at the beginning of a new configuration, it doesn t need to be changed until a new configuration is to be tested. If the motors are left energized, they will become very hot, so make sure to reset the system after a couple runs if you the program doesn t release them properly. The systems will need to be iterated at the being of a configuration and desired trajectory. The first several runs are iterations to verify location and measurements, then final runs can be completed once a reference point is established.

147 147 APPENDIX B: ARDUINO CODE Appendix B presents the Arudino IDE code that was ran on the microcontroller during testing. This code enabled the MATLAB software to control the stepper motors via the microcontroller and motor shields. This code must be initially downloaded on the microcontroller before any other coding is completed via the MATLAB program. #include <Wire.h> #include <Adafruit_MotorShield.h> #include "utility/adafruit_pwmservodriver.h" #include <AccelStepper.h> // #include special thanks to Phil Cook // Set up motor shields Adafruit_MotorShield AFMSbottom(0x60); Adafruit_MotorShield AFMSmiddle(0x61); Adafruit_MotorShield AFMStop(0x62); // Set up motors Adafruit_StepperMotor *mystepper1 = AFMSbottom.getStepper(200, 1); Adafruit_StepperMotor *mystepper2 = AFMSbottom.getStepper(200, 2); Adafruit_StepperMotor *mystepper3 = AFMSmiddle.getStepper(200, 1); Adafruit_StepperMotor *mystepper4 = AFMSmiddle.getStepper(200, 2); Adafruit_StepperMotor *mystepper5 = AFMStop.getStepper(200, 1); Adafruit_StepperMotor *mystepper6 = AFMStop.getStepper(200, 2); //Variables int bytevalue; byte inbyte[5]; // Wrappers for Motors void forwardstep1() { mystepper1->onestep(forward, DOUBLE);} void backwardstep1() { mystepper1->onestep(backward, DOUBLE);} void forwardstep2() { mystepper2->onestep(forward, DOUBLE);} void backwardstep2() { mystepper2->onestep(backward, DOUBLE);} void forwardstep3() { mystepper3->onestep(forward, DOUBLE);} void backwardstep3() { mystepper3->onestep(backward, DOUBLE);} void forwardstep4() { mystepper4->onestep(forward, DOUBLE);} void backwardstep4() { mystepper4->onestep(backward, DOUBLE);} void forwardstep5() { mystepper5->onestep(forward, DOUBLE);} void backwardstep5() { mystepper5->onestep(backward, DOUBLE);} void forwardstep6() { mystepper6->onestep(forward, DOUBLE);} void backwardstep6() { mystepper6->onestep(backward, DOUBLE);} // Wrap the 6 steppers in an AccelStepper object AccelStepper stepper1(forwardstep1, backwardstep1);

148 148 AccelStepper stepper2(forwardstep2, backwardstep2); AccelStepper stepper3(forwardstep3, backwardstep3); AccelStepper stepper4(forwardstep4, backwardstep4); AccelStepper stepper5(forwardstep5, backwardstep5); AccelStepper stepper6(forwardstep6, backwardstep6); void setup() // run once, when the sketch starts { AFMSbottom.begin(); // Start the bottom shield AFMSmiddle.begin(); // Start the middle shield AFMStop.begin(); // Start the top shield stepper1.setmaxspeed(250); // steps per second stepper1.setacceleration(100.0); stepper2.setmaxspeed(250.0); stepper2.setacceleration(100.0); stepper3.setmaxspeed(250.0); stepper3.setacceleration(100.0); stepper4.setmaxspeed(250.0); stepper4.setacceleration(100.0); stepper5.setmaxspeed(250.0); stepper5.setacceleration(100.0); stepper6.setmaxspeed(250.0); stepper6.setacceleration(100.0); Serial.begin(115200); // set up Serial library at typ = 9600 bps => max = Serial.flush(); // ** Do not put any code under here before closing ** } void loop() // run over and over again { if(serial.available() > 0){ Serial.readBytes(inByte, 5); switch(inbyte[0]){ case 'M': //move bytevalue = inbyte[4]; if(inbyte[2]) bytevalue *= -1; Serial.write('M'); Serial.write(inByte[0]); Serial.write(inByte[1]); Serial.write(byteValue); Serial.write(inByte[3]); Serial.write(inByte[4]); switch(inbyte[1]) {

149 149 case 1: // Change direction at the limits if (stepper1.distancetogo() == 0) stepper1.move(bytevalue); break; case 2: if (stepper2.distancetogo() == 0) stepper2.move(bytevalue); break; case 3: if (stepper3.distancetogo() == 0) stepper3.move(bytevalue); break; case 4: if (stepper4.distancetogo() == 0) stepper4.move(bytevalue); break; case 5: if (stepper5.distancetogo() == 0) stepper5.move(bytevalue); break; case 6: if (stepper6.distancetogo() == 0) stepper6.move(bytevalue); break; } break; } default: //unhandled case break; } } stepper1.run(); stepper2.run(); stepper3.run(); stepper4.run(); stepper5.run(); stepper6.run();

150 150 APPENDIX C: MATLAB CODE - 4-CABLE ROBOT SIMULATION Appendix C presents the MATLAB code used for this system. It makes use of several different programs to simplify coding. It implements the IPK solution to solve for the active cable lengths, given the desired pose. After the respective cable lengths are determined, the difference between time steps are converted to the number of steps for stepper motor to take. Motor commands are sent to the Arduino for each time step, then the motors move the respective amount of steps to produce the desired motion. This appendix presents the code for the 4-cable system. % % configure_select.m % % Written: Cody Petitt % clc; clear all; format compact; Choose = menu('which cable configuration would you like to test?','4- Cable (Skycam)','6-Cable (RoboCrane)'); if Choose==1 RUN_IPK_4_mat2ardu_fixed_dt; elseif Choose==2 end RUN_IPK_6_mat2ardu_fixed_dt;

151 151 % % RUN_IPK_4_mat2ardu.m; % % Dr. Bob Williams July 2012 % % Edited and modified by: Cody Petitt for Thesis % % clc; clear; %close all; % % outer loop to run runagain = 1; % initial run while runagain == 1, % % Open serial communication % s = serial('com4','baudrate', ); fopen(s); flushinput(s); pause(1); % % Constants % Const; % load the constants from file Const.m Choose = 2; VU = 3; Ldubdot = 0; if Choose==1 % Snapshot (N)'}; name1 = 'IPK and statics Inputs'; values1 = {'x (in)','y (in)','z (in)','fx (N)','Fy (N)','Fz default1 = {'0','0','5','0','0','0'}; % Ex1 vars1 = inputdlg(values1,name1,1,default1); x = str2num(vars1{1});% y = str2num(vars1{2});% z = str2num(vars1{3});% Fr = [str2num(vars1{4}); str2num(vars1{5}); str2num(vars1{6})]; IPK4; % Inverse pose kinematics

152 152 Stat4; % Pseudostatics for active cables figure; Draw4; % 4-cable robot graphics disp('the active cables lengths are: '); Ls; disp('the cable tensions are: '); Ts'; elseif Choose==2 % Trajectory Choose2 = menu('what sort of Trajectory?','Target Trajectory','Circle'); if Choose2==1 % Target Trajectory name1 = 'IPK and statics Inputs'; values1 = {'initial xi (in)','initial yi (in)','initial zi (in)','target xt (in)','target yt (in)','target zt (in)','fx (N)','Fy (N)','Fz (N)'}; default1 = {'0','0','7.5','3','3','7.5','0','0','0'}; vars1 = inputdlg(values1,name1,1,default1); XI(1) = str2num(vars1{1}); XI(2) = str2num(vars1{2}); XI(3) = str2num(vars1{3}); XT(1) = str2num(vars1{4}); XT(2) = str2num(vars1{5}); XT(3) = str2num(vars1{6}); Fr = [str2num(vars1{7}); str2num(vars1{8}); str2num(vars1{9})]; x = XT(1); y = XT(2); z = XT(3); % Target inverse pose kinematics IPK4; LT = Ls; x = XI(1); y = XI(2); z = XI(3); IPK4; LI = Ls; % Cartesian Error XE = [XT(1)-XI(1) XT(2)-XI(2) XT(3)-XI(3)]; time_a k = 1; = 1:30; % duration: 30 secs dx = XE/(length(time_a)); dx = dx(1); dy = dx(2); dz = dx(3); N = [0:1:length(time_a)-1]; figure;

153 153 flushinput(s); pause(.5); for k = 1:length(time_a) IPK4; LLL1(k)=L1; LLL2(k)=L2; LLL3(k)=L3; LLL4(k)=L4; XX1(k)=x; XX2(k)=y; XX3(k)=z; Lerror = LT - Ls; LER1(k)=Lerror(1); LER2(k)=Lerror(2); LER3(k)=Lerror(3); LER4(k)=Lerror(4); Xerror = [XT(1)-x XT(2)-y XT(3)-z]; XER1(k)=Xerror(1); XER2(k)=Xerror(2); XER3(k)=Xerror(3); %Stepper motor commands SMP1(1) = SMA1(1); SMP2(1) = SMA2(1); SMP3(1) = SMA3(1); SMP4(1) = SMA4(1); SMP1(k+1) = SMA1; SMP2(k+1) = SMA2; SMP3(k+1) = SMA3; SMP4(k+1) = SMA4; steppermove_1 = SMP1(k+1) - SMP1(k); steppermove_2 = SMP2(k+1) - SMP2(k); steppermove_3 = SMP3(k+1) - SMP3(k); steppermove_4 = SMP4(k+1) - SMP4(k); % Moves the stepper motors steps2bytes; Stat4; % Statics Tee1(k) = Ts(1); Tee2(k) = Ts(2); Tee3(k) = Ts(3); Tee4(k) = Ts(4); Deet(k) = deet; Stiff4; %Stiffness calculations for 4-cable robot ee1(k) = e1; ee2(k) = e2; ee3(k) = e3; ne(k) = normeggs; Draw4; if k==1 pause; end % Graphics

154 154 end x = x+dx; y = y+dy; z = z+dz; % Circular Trajectory elseif Choose2==2 name1 = 'Circular Trajectory Inputs'; values1 = {'Circle Radius (in)','height (in)'}; default1 = {'3','6.25'}; %Ex 1 vars1 = inputdlg(values1,name1,1,default1); r = str2num(vars1{1}); % *in2m ; z_height = str2num(vars1{2}); Fr = [0;0;0]; % theta loop TH0 = 0; DTH = 3; THF = 360; the = [TH0:DTH:THF]*DR; n = (THF-TH0)/DTH + 1; figure; Xc = 0; Yc = 0; Zc = h; flushinput(s); pause(.5); % n = 120 for i=1:n, % i = 1:length(a) %cc = cc + 2*time_a(i)*del_t x = Xc+r*cos(the(i)); y = Yc+r*sin(the(i)); z = z_height; IPK4; LL1(i)=L1; LL2(i)=L2; LL3(i)=L3; LL4(i)=L4; %Stepper motor commands SMP1(1) = SMA1(1); SMP2(1) = SMA2(1); SMP3(1) = SMA3(1); SMP4(1) = SMA4(1); SMP1(i+1) = SMA1; SMP2(i+1) = SMA2; SMP3(i+1) = SMA3; SMP4(i+1) = SMA4; steppermove_1 = SMP1(i+1) - SMP1(i);

155 155 steppermove_2 = SMP2(i+1) - SMP2(i); steppermove_3 = SMP3(i+1) - SMP3(i); steppermove_4 = SMP4(i+1) - SMP4(i); steps2bytes; XX1(i)=x; XX2(i)=y; XX3(i)=z; Stat4; % Statics Tee1(i) = Ts(1); Tee2(i) = Ts(2); Tee3(i) = Ts(3); Tee4(i) = Ts(4); Deet(i) = deet; Stiff4; % Stiffness calculations for 4-cable robot ee1(i) = e1; ee2(i) = e2; ee3(i) = e3; ne(i) = normeggs; end Draw4; if i==1 pause; end % Graphics % end % End for Trajectory choices Sir'); pause(1); ploot = menu('do you wish to view the plots?','yes Sir','No if ploot == 1 Ploot4; clothes = menu('clear all plots?','yes','no'); if clothes == 1 close all; end end end % % Close serial port and delete object fclose(s); delete(s) clear s % % command to see if we want to run this again... runagain = menu('another round my good fellow?','yes, I think I will...','no thank you...'); end

156 156 % % Common constants for Four-Cable algae-harvesting robot simulation % Single point mass model % Dr. Bob % % Edited: Cody Petitt % name_const = 'Cable layout and information'; values_const = {'Width (in)','length (in)','distance from poles X (in)','distance Y (in)','height of poles(in)','cable Dia (in)','end Effector Width(in)','End effector Length' }; default_const = {'36', '36', '.5', '.5', '20','0.0125','1.5 ','1.5'}; vars_const = inputdlg(values_const,name_const,1,default_const); W = str2num(vars_const{1}); L = str2num(vars_const{2}); delx = str2num(vars_const{3}); dely = str2num(vars_const{4}); h = str2num(vars_const{5}); dia = str2num(vars_const{6}); l = str2num(vars_const{7}); w = str2num(vars_const{8}); DR = pi/180 h1 = h; h2 = h; h3 = h; h4 = h; B01 = [-L/2 - delx; -W/2 - dely; 0]; B02 = [-L/2 - delx; W/2 + dely; 0]; B03 = [ L/2 + delx; W/2 + dely; 0]; B04 = [ L/2 + delx; -W/2 - dely; 0]; % Poles base points B1 = [-L/2 - delx; -W/2 - dely; h1]; B2 = [-L/2 - delx; W/2 + dely; h2]; B3 = [ L/2 + delx; W/2 + dely; h3]; B4 = [ L/2 + delx; -W/2 - dely; h4]; % Fixed Poles for graphics PL1x = [B01(1) B1(1)]; PL1y = [B01(2) B1(2)]; PL1z = [B01(3) B1(3)]; PL2x = [B02(1) B2(1)]; PL2y = [B02(2) B2(2)]; PL2z = [B02(3) B2(3)]; PL3x = [B03(1) B3(1)]; PL3y = [B03(2) B3(2)]; PL3z = [B03(3) B3(3)]; PL4x = [B04(1) B4(1)]; PL4y = [B04(2) B4(2)]; PL4z = [B04(3) B4(3)]; % Pond for graphics Pd1 = [-L/2; W/2; 0]; Pd2 = [ L/2; W/2; 0]; Pd3 = [ L/2; -W/2; 0]; Pd4 = [-L/2; -W/2; 0]; % Pond vertices

157 157 PondX = [Pd1(1) Pd2(1) Pd3(1) Pd4(1)]; PondY = [Pd1(2) Pd2(2) Pd3(2) Pd4(2)]; PondZ = [Pd1(3) Pd2(3) Pd3(3) Pd4(3)]; P1 = [-l/2; w/2; 0]; P2 = [ l/2; w/2; 0]; P3 = [ l/2; -w/2; 0]; P4 = [-l/2; -w/2; 0]; % Moving platform vertices in {P} g = ; % in/s^2 mp = 100; pw = 1000; hw = 0.1; % 0.1 m= 3.93 in vw = l * w * hw; mw = pw * vw; ma = 10; m = mp + mw + ma; % end-effector platform mass, kg % density of water, kg/m^3 % mass of water, kg % total end-effector mass, kg % 3D View parameters AZ = -37.5; EL = 30; xv = [-L/2-3*delX L/2 + 3*delX]; yv = [-L/2-3*delX L/2 + 3*delX]; zv = [-L/4-2*delX L + 2*delX]; % robot stiffness constants E = 200e9; % steel cable Young's modulus, N/m^2 Ar = pi*dia^2/4; % cable area, m^2 EA = E*Ar;

158 158 %~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~% % File Name: IPK4 % % Purpose: Inverse pose kinematics for 4-cable robot % % Input: P0 = [x y z], position of fingertip % Output: L = [L1 L2 L3 L4], the cable lengths % Written by Dr. Bob, modified by Cody Petitt %~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ P0 = [x;y;z]; % % Active cable vectors wrt {0} % L1vec = B1 - P0; L2vec = B2 - P0; L3vec = B3 - P0; L4vec = B4 - P0; % % Active cable lengths % L1 = norm(l1vec); L2 = norm(l2vec); L3 = norm(l3vec); L4 = norm(l4vec); Ls = [L1 L2 L3 L4]; % % Convert lengths to shaft angles % inperstep =.01; % 2 in/rev -> 200 steps/rev in/step SMA1 = ((L1)/ inperstep); SMA2 = ((L2)/ inperstep); % number of steps to get to that length SMA3 = ((L3)/ inperstep); SMA4 = ((L4)/ inperstep);

159 159 % % Stat4.m % Pseudostatics model for 4-cable robot % Active 3x4 Jacobian matrix % Written by Dr. Bob, modified by Cody Petitt jaca4; % Calculate statics Jacobian matrix A Gee = [0;0;-g]; mg = m*gee; Ts = inva0*(-fr-mg); %~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ % File Name: Draw4 % Purpose: display the 4-cable robot % Written by Dr. Bob, modified by Cody Petitt %~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ % % 4 active cables - Center-connected % B1X = [B1(1) P0(1)]; B1Y = [B1(2) P0(2)]; B1Z = [B1(3) P0(3)]; B2X = [B2(1) P0(1)]; B2Y = [B2(2) P0(2)]; B2Z = [B2(3) P0(3)]; B3X = [B3(1) P0(1)]; B3Y = [B3(2) P0(2)]; B3Z = [B3(3) P0(3)]; B4X = [B4(1) P0(1)]; B4Y = [B4(2) P0(2)]; B4Z = [B4(3) P0(3)]; % % Moving platform - for graphics, not connection % PX = [P1(1) P2(1) P3(1) P4(1)] + P0(1); PY = [P1(2) P2(2) P3(2) P4(2)] + P0(2); PZ = [P1(3) P2(3) P3(3) P4(3)] + P0(3); if VU == 3 subsystemplot(2,2,1); p=plot3(pl1x,pl1y,pl1z,pl2x,pl2y,pl2z,pl3x,pl3y,pl3z,pl4x,pl4y,pl4z); % Base poles set(p,'linewidth',3,'color','b'); hold on; plot3(b1x,b1y,b1z,'r',b2x,b2y,b2z,'g',b3x,b3y,b3z,'b',b4x,b4y,b4z,'k'); % 4 active cables if Choose==2 plot3(xx1,xx2,xx3,'b'); end patch(pondx,pondy,pondz,'c'); grid; hold on; patch(px,py,pz,'b'); hold off; alpha(.5);

160 160 set(gca,'fontsize',16); xlabel('\itx'); ylabel('\ity'); zlabel('\itz'); axis('square'); axis([xv(1) xv(2) yv(1) yv(2) zv(1) zv(2)]); %title('3d View'); view(az,el); subsystemplot(2,2,3); p=plot3(pl1x,pl1y,pl1z,pl2x,pl2y,pl2z,pl3x,pl3y,pl3z,pl4x,pl4y,pl4z); % Base poles set(p,'linewidth',3,'color','b'); hold on; plot3(b1x,b1y,b1z,'r',b2x,b2y,b2z,'g',b3x,b3y,b3z,'b',b4x,b4y,b4z,'k'); % 4 active cables if Choose==2 plot3(xx1,xx2,xx3,'b'); end patch(pondx,pondy,pondz,'c'); grid; hold on; patch(px,py,pz,'b'); hold off; alpha(.5); set(gca,'fontsize',16); xlabel('\itx'); ylabel('\ity'); zlabel('\itz'); axis('square'); axis([xv(1) xv(2) yv(1) yv(2) zv(1) zv(2)]); %title('yz Plane'); view(-90,0); subsystemplot(2,2,2); p=plot3(pl1x,pl1y,pl1z,pl2x,pl2y,pl2z,pl3x,pl3y,pl3z,pl4x,pl4y,pl4z); % Base poles set(p,'linewidth',3,'color','b'); hold on; plot3(b1x,b1y,b1z,'r',b2x,b2y,b2z,'g',b3x,b3y,b3z,'b',b4x,b4y,b4z,'k'); % 4 active cables if Choose==2 plot3(xx1,xx2,xx3,'b'); end patch(pondx,pondy,pondz,'c'); grid; hold on; patch(px,py,pz,'b'); hold off; alpha(.5); set(gca,'fontsize',16); xlabel('\itx'); ylabel('\ity'); zlabel('\itz'); axis('square'); axis([xv(1) xv(2) yv(1) yv(2) zv(1) zv(2)]); %title('xy Plane'); view(0,90); subsystemplot(2,2,4); p=plot3(pl1x,pl1y,pl1z,pl2x,pl2y,pl2z,pl3x,pl3y,pl3z,pl4x,pl4y,pl4z); % Base poles set(p,'linewidth',3,'color','b'); hold on; plot3(b1x,b1y,b1z,'r',b2x,b2y,b2z,'g',b3x,b3y,b3z,'b',b4x,b4y,b4z,'k'); % 4 active cables if Choose==2 plot3(xx1,xx2,xx3,'b');

161 161 end patch(pondx,pondy,pondz,'c'); grid; hold on; patch(px,py,pz,'b'); hold off; alpha(.5); set(gca,'fontsize',16); xlabel('\itx'); ylabel('\ity'); zlabel('\itz'); axis('square'); axis([xv(1) xv(2) yv(1) yv(2) zv(1) zv(2)]); %title('xz Plane'); view(0,0); pause(1/64); % Can remove the pause when running on the hardware, as there is a % pause end % End VU loop % steps2bytes.m % % Purpose: Wrapper to convert the MATLAB output of steps to bytes to % be sent to the arduino % % Written by Cody Petitt % % Motor_Steps = [ round(steppermove_1); round(steppermove_2); round(steppermove_3); round(steppermove_4)]; num_motors = 4; % number of motors 4 or 6 for ii = 1:num_motors % Motor Commands fwrite(s,'m','char'); %Command fwrite(s, ii,'int8'); % Motor # / Index fwrite(s, (Motor_Steps(ii) < 0) + 0,'int8'); fwrite(s, 0,'int8'); % max values are 255 fwrite(s, abs(motor_steps(ii)),'int8') out = fread(s,6) end

162 162 % % Stiff4.m % Stiffness calculations for 4-cable robot % Written by Dr. Bob, modified by Cody Petitt k1 = EA/L1; k2 = EA/L2; k3 = EA/L3; k4 = EA/L4; kdiag = zeros(4,4); diagonal kdiag(1,1) = k1; kdiag(2,2) = k2; kdiag(3,3) = k3; kdiag(4,4) = k4; Kb = A0 * kdiag * A0'; % individual cable spring constants % diagonal matrix with spring constants on % Cartesian stiffness matrix eggs = eig(kb); normeggs = norm(eggs); e1 = eggs(1); e2 = eggs(2); e3 = eggs(3); % Ploot4.m % Plot 4 cable lengths, Cartesian position, Lerror, Xerror, % active cable tensions for 4-cable robot % Written by Dr. Bob, modified by Cody Petitt if Choose2==1 % Target Trajectory % Cable Lengths figure; plot(n,lll1,'r',n,lll2,'g',n,lll3,'b',n,lll4,'k'); grid; set(gca,'fontsize',14); xlabel('\itsteps'); ylabel('{{\itl} ({\itm})}'); %axis([ ]); legend('{{\itl}_1}','{{\itl}_2}','{{\itl}_3}','{{\itl}_4}'); % Cartesian Position figure; plot(n,xx1,'r',n,xx2,'g',n,xx3,'b'); grid; set(gca,'fontsize',14); xlabel('\itsteps'); ylabel('{{\itx} ({\itm})}'); %axis([ ]); legend('{\itx}','{\ity}','{\itz}'); % Length Errors

163 163 figure; plot(n,ler1,'r',n,ler2,'g',n,ler3,'b',n,ler4,'k'); grid; set(gca,'fontsize',14); xlabel('\itsteps'); ylabel('{{\itl}_e ({\itm})}'); %axis([ ]); legend('{{\itl}_{e1}}','{{\itl}_{e2}}','{{\itl}_{e3}}','{{\itl}_{e4}}') ; % Cartesian Errors figure; plot(n,xer1,'r',n,xer2,'g',n,xer3,'b'); grid; set(gca,'fontsize',14); xlabel('\itsteps'); ylabel('{{\itx}_e ({\itm})}'); %axis([ ]); legend('{{\itx}_{e}}','{{\ity}_{e}}','{{\itz}_{e}}'); % Active cable tensions figure; plot(n,tee1,'r',n,tee2,'g',n,tee3,'b',n,tee4,'k'); grid; set(gca,'fontsize',14); xlabel('\itsteps'); ylabel('{{\itt} ({\itn})}'); %axis([ ]); legend('{{\itt}_1}','{{\itt}_2}','{{\itt}_3}','{{\itt}_4}'); % AA' determinant figure; plot(n,deet); grid; set(gca,'fontsize',14); xlabel('\itsteps'); ylabel('{{\itjacobian Determinant} ({1/m})}'); %axis([ ]); % Stiffness eigenvalues and norm figure; plot(n,ee1,'r',n,ee2,'g',n,ee3,'b',n,ne,'k'); grid; set(gca,'fontsize',14); ylabel('{{\itstiffness Eigenvalue} ({\itn/m})}'); xlabel('\itsteps'); legend('{{\ite}_1}','{{\ite}_2}','{{\ite}_3}','{{\itnorm}_{}}'); figure; plot(n,ne,'b'); grid; set(gca,'fontsize',14); ylabel('{{\itstiffness Eigenvalues Norm} ({\itn/m})}'); xlabel('\itsteps'); else % Circular and Harvest Trajectories NN = [0:1:n-1]; % Cable Lengths figure; plot(nn,ll1,'r',nn,ll2,'g',nn,ll3,'b',nn,ll4,'k'); grid; set(gca,'fontsize',18); ylabel('\itcable Lengths (m)'); xlabel('\ittime Steps'); legend('{{\itl}_1}','{{\itl}_2}','{{\itl}_3}','{{\itl}_4}'); % Cartesian Position

164 164 figure; plot(nn,xx1,'r',nn,xx2,'g',nn,xx3,'b'); grid; set(gca,'fontsize',14); xlabel('\itsteps'); ylabel('{{\itx} ({\itm})}'); %axis([ ]); legend('{\itx}','{\ity}','{\itz}'); % Active cable tensions figure; plot(nn,tee1,'r',nn,tee2,'g',nn,tee3,'b',nn,tee4,'k'); grid; set(gca,'fontsize',14); xlabel('\itsteps'); ylabel('{{\itt} ({\itn})}'); %axis([ ]); legend('{{\itt}_1}','{{\itt}_2}','{{\itt}_3}','{{\itt}_4}'); % AA' determinant figure; plot(nn,deet); grid; set(gca,'fontsize',14); xlabel('\itsteps'); ylabel('{{\itjacobian Determinant} ({1/m})}'); % Stiffness eigenvalues and norm figure; plot(nn,ee1,'r',nn,ee2,'g',nn,ee3,'b',nn,ne,'k'); grid; set(gca,'fontsize',14); ylabel('{{\itstiffness Eigenvalue} ({\itn/m})}'); xlabel('\itsteps'); legend('{{\ite}_1}','{{\ite}_2}','{{\ite}_3}','{{\itnorm}_{}}'); figure; plot(nn,ne,'b'); grid; set(gca,'fontsize',14); ylabel('{{\itstiffness Eigenvalues Norm} ({\itn/m})}'); xlabel('\itsteps'); end

165 165 APPENDIX D: MATLAB CODE 6-CABLE ROBOT SIMULATION Appendix D presents the MATLAB code used for this system. It makes use of several different programs to simplify coding. It implements the IPK solution to solve for the active cable lengths, given the desired pose. After the respective cable lengths are determined, the difference between time steps are converted to the number of steps for stepper motor to take. Motor commands are sent to the Arduino for each time step, then the motors move the respective amount of steps to produce the desired motion. This appendix presents the code for the 6-cable system. % % Simulation of 6-cable NIST RoboCrane % Inverse pose kinematics % Fall 2014, Dr. Bob in Puerto Rico % % % Edited and modified by: Cody Petitt % % clc; clear; % % outer loop to run.. runagain = 1; % initial run while runagain == 1, % % Open serial communication s = serial('com4','baudrate', ); fopen(s); flushinput(s); pause(1); % Constants ConstRoboCrane; % load the RoboCrane constants VU = 3;

166 166 Choose = menu('you must choose','snapshot','trajectory'); if Choose==1 % Snapshot name2 = 'IPK Inputs'; % IPK Input 2 dialog with defaults values2 = {'x (in)','y (in)','z (in)','gamma (deg)','beta (deg)','alpha (deg)'}; default2 = {'0','0','12','0','0','0'}; %Ex #1 % nominal pose vars2 = inputdlg(values2,name2,1,default2); xp0 = str2num(vars2{1}); yp0 = str2num(vars2{2}); zp0 = str2num(vars2{3}); gamma = str2num(vars2{4})*dr; beta = str2num(vars2{5})*dr; alpha = str2num(vars2{6})*dr; We = [0;0;0;0;0;0]; IPK6; Stat6; % Inverse pose kinematics % Pseudostatics for active cables figure; Draw6; % 6-cable RoboCrane graphics disp('the cables lengths are: '); Ls disp('the cable tensions are: '); Ts' elseif Choose==2 % Trajectory Choose2 = menu('what sort of Trajectory?','XY Virtual Focus Surface','XY Circle'); %'XZ Virtual Focus Surface','YZ Virtual Focus Surface' if Choose2==1 We = [0;0;0;0;0;0]; BET0 = -40*DR; DBET = 1*DR; BETF = 40*DR; beet = [BET0:DBET:BETF]; bet = 0*(16/40)*beet; angle max of 16 deg alpha = 0; gamma = 0; zero in this plane beta = bet(1); % scale beta according to tilt % alp and gam Euler angles always name1 = 'IPK and statics Inputs'; % IPK and statics Input 1 dialog with defaults values1 = {'initial xi (in)','initial yi (in)','initial zi (in)','target xt (in)','target yt (in)','target zt (in)'}; default1 = {'0','0','7.5','3','3','7.5'};

167 167 vars1 = inputdlg(values1,name1,1,default1); XI(1) = str2num(vars1{1});% *in2m; XI(2) = str2num(vars1{2});% *in2m; XI(3) = str2num(vars1{3});% *in2m; XT(1) = str2num(vars1{4});% *in2m; XT(2) = str2num(vars1{5});% *in2m; XT(3) = str2num(vars1{6});% *in2m; xp0 = XT(1); yp0 = XT(2); zp0 = XT(3); % Target inverse pose kinematics IPK6; LT = Ls; xp0 = XI(1); yp0 = XI(2); zp0 = XI(3); IPK6; LI = Ls; % Cartesian Error XE = [XT(1)-XI(1) XT(2)-XI(2) XT(3)-XI(3)]; - time_a = 1:30; % duration: 30 secs dx = XE/(length(time_a)); dx = dx(1); dy = dx(2); dz = dx(3); % n = (BETF-BET0)/DBET + 1; N = [0:1:n]; figure; % attempting to remove the random serial output flushinput(s); pause(.5); % n needs to be equal to the # of time steps for i=1:length(time_a), beta = bet(i); IPK6; LL1(i)=L1; LL2(i)=L2; LL3(i)=L3; LL4(i)=L4; LL5(i)=L5; LL6(i)=L6; XX1(i) = xp0; XX2(i) = yp0; XX3(i) = zp0; alp(i) = 0; gam(i) = 0; Lerror = LT - Ls; LER1(i)=Lerror(1); LER2(i)=Lerror(2); LER3(i)=Lerror(3); LER4(i)=Lerror(4); LER5(i)=Lerror(5); LER6(i)=Lerror(6); Xerror = [XT(1)-xP0 XT(2)-yP0 XT(3)-zP0]; XER1(i)=Xerror(1); XER2(i)=Xerror(2); XER3(i)=Xerror(3); %Stepper motor commands

168 168 SMP1(1) = SMA1(1); SMP2(1) = SMA2(1); SMP3(1) = SMA3(1); SMP4(1) = SMA4(1); SMP5(1) = SMA5(1); SMP6(1) = SMA6(1); SMP1(i+1) = SMA1; SMP2(i+1) = SMA2; SMP3(i+1) = SMA3; SMP4(i+1) = SMA4; SMP5(i+1) = SMA5; SMP6(i+1) = SMA6; steppermove_1 = SMP1(i+1) - SMP1(i); steppermove_2 = SMP2(i+1) - SMP2(i); steppermove_3 = SMP3(i+1) - SMP3(i); steppermove_4 = SMP4(i+1) - SMP4(i); steppermove_5 = SMP5(i+1) - SMP5(i); steppermove_6 = SMP6(i+1) - SMP6(i); steps2bytes_6; AMOUNTPERSTEP(:,i) = Amount_Step; MOTORSTEPS(:,i) = Motor_Steps; % Statics Stat6; Tee1(i) = Ts(1); Tee2(i) = Ts(2); Tee3(i) = Ts(3); Tee4(i) = Ts(4); Tee5(i) = Ts(5); Tee6(i) = Ts(6); Deet(i) = deet; Draw6; % Graphics if i==1 pause; end xp0 = xp0+dx; yp0 = yp0+dy; zp0 = zp0+dz; end elseif Choose2==2 % XY Circular Trajectory We = [0;0;0;0;0;0]; name2 = 'Circle Input'; % Circle Input 2 dialog with defaults values2 = {'circle X center Cx (in)','circle Y center Cy (in)','nominal circle Z center Cz (in)','z amplitude Zamp (in)','z freq factor Zfact','circle radius Rcirc (in)'}; default2 = {'0','0','9','0','1','3' vars2 = inputdlg(values2,name2,1,default2);

169 169 Cx = str2num(vars2{1}); Cy = str2num(vars2{2}); Cz = str2num(vars2{3}); Zamp = str2num(vars2{4}); Zfact = str2num(vars2{5}); Rcirc = str2num(vars2{6}); alpha = 0; beta = 0; gamma = 0; TH0 = 0; DTH = 3; THF = 360; the = [TH0:DTH:THF]*DR; n = (THF-TH0)/DTH + 1; N = [0:1:n]; figure; flushinput(s); pause(.5); for i=1:n, xp0 = Cx+Rcirc*cos(the(i)); yp0 = Cy+Rcirc*sin(the(i)); zp0 = Cz+Zamp*sin(Zfact*the(i)); IPK6; LL1(i)=L1; LL2(i)=L2; LL3(i)=L3; LL4(i)=L4; LL5(i)=L5; LL6(i)=L6; XX1(i) = xp0; XX2(i) = yp0; XX3(i) = zp0; alp(i) = alpha; bet(i) = beta; gam(i) = gamma; %Stepper motor commands SMP1(1) = SMA1(1); SMP2(1) = SMA2(1); SMP3(1) = SMA3(1); SMP4(1) = SMA4(1); SMP5(1) = SMA5(1); SMP6(1) = SMA6(1); SMP1(i+1) = SMA1; SMP2(i+1) = SMA2; SMP3(i+1) = SMA3; SMP4(i+1) = SMA4; SMP5(i+1) = SMA5; SMP6(i+1) = SMA6; steppermove_1 = SMP1(i+1) - SMP1(i); steppermove_2 = SMP2(i+1) - SMP2(i); steppermove_3 = SMP3(i+1) - SMP3(i); steppermove_4 = SMP4(i+1) - SMP4(i); steppermove_5 = SMP5(i+1) - SMP5(i); steppermove_6 = SMP6(i+1) - SMP6(i); steps2bytes_6; AMOUNTPERSTEP(:,i) = Amount_Step; MOTORSTEPS(:,i) = Motor_Steps;

170 170 % Statics Stat6; Tee1(i) = Ts(1); Tee2(i) = Ts(2); Tee3(i) = Ts(3); Tee4(i) = Ts(4); Tee5(i) = Ts(5); Tee6(i) = Ts(6); Deet(i) = deet; end Draw6; if i==1 pause; end % Graphics end % End for Trajectory choices pause(1); ploot = menu('do you wish to view the plots, Master?','Yes','No'); if ploot == 1 Ploot6; clothes = menu('clear all plots?','yes','no'); if clothes == 1 close all; end end % end for plots or no end % end for snapshot or trajectory % % Close serial port and delete object fclose(s); delete(s) clear s % % command to see if we want to run this again... runagain = menu('another round my good fellow?','yes, I think I will...','no thank you...'); end

171 171 % % Constants % Dr. Bob % % Edited and modified by: Cody Petitt %% % DR = pi/180; % Degrees to radians conversion name1 = 'RoboCrane Constants'; % values1 = {'sb (in)','sp (in)','h (in)'}; default1 = {'36','4','20'}; %Ex #1 vars1 = inputdlg(values1,name1,1,default1); sb = str2num(vars1{1}); sp = str2num(vars1{2}); H = str2num(vars1{3}); lb = sqrt(3)*sb/3; hb = sqrt(3)*sb/6; lp = sqrt(3)*sp/3; hp = sqrt(3)*sp/6; B10 = [ sb/2; -hb; H]; % Base points in {0} B20 = [ 0; lb; H]; B30 = [-sb/2; -hb; H]; P1p = [ 0; -lp; 0]; % Platform points in {P} P2p = [ sp/2; hp; 0]; P3p = [-sp/2; hp; 0]; BS1x = [B10(1) B20(1)]; BS1y = [B10(2) B20(2)]; BS1z = [B10(3) B20(3)]; BS2x = [B20(1) B30(1)]; BS2y = [B20(2) B30(2)]; BS2z = [B20(3) B30(3)]; BS3x = [B30(1) B10(1)]; BS3y = [B30(2) B10(2)]; BS3z = [B30(3) B10(3)]; g = ; % in/s^2 mp = 10; % end-effector platform mass, kg % 3D View parameters AZ = -37.5; EL = 30; xv = [-sb/2-1 sb/2+1]; zv = [ -1 sb+1]; del = (sb hb - lb)/2; yv = [-(hb+del) -(hb+del)+sb+2

172 172 % % % File Name: IPK6 % % Purpose: Inverse pose kinematics for 6-cable RoboCrane % % Input: X = [x y z gamma beta alpha], pose of cabin % Output: L = [L1 L2 L3 L4 L5 L6], the active cable lengths % %Written: Dr. Bob, Edited: Cody Petitt % P0 = [xp0;yp0;zp0]; ca = cos(alpha); sa = sin(alpha); cb = cos(beta); sb = sin(beta); cg = cos(gamma); sg = sin(gamma); RP0 = [ca*cb, -sa*cg + ca*sb*sg, sa*sg + ca*sb*cg; sa*cb, ca*cg + sa*sb*sg, -ca*sg + sa*sb*cg; -sb, cb*sg, cb*cg]; TP0 = [RP0 P0; ]; p10 = TP0 * [P1p;1]; P10 = p10(1:3); p20 = TP0 * [P2p;1]; P20 = p20(1:3); p30 = TP0 * [P3p;1]; P30 = p30(1:3); % % Active cable vectors in {0} % L1vec = B10 - P10; % RoboCrane L2vec = B10 - P20; L3vec = B20 - P20; L4vec = B20 - P30; L5vec = B30 - P30; L6vec = B30 - P10; % % Active cable lengths % L1 = norm(l1vec); L2 = norm(l2vec); L3 = norm(l3vec); L4 = norm(l4vec); L5 = norm(l5vec); L6 = norm(l6vec);

173 173 Ls = [L1 L2 L3 L4 L5 L6]; inperstep =.01; % 2 in/rev -> 200 steps/rev in/step SMA1 = ((L1)/ inperstep); SMA2 = ((L2)/ inperstep); SMA3 = ((L3)/ inperstep); SMA4 = ((L4)/ inperstep); SMA5 = ((L5)/ inperstep); SMA6 = ((L6)/ inperstep); % % Stat6.m % Pseudostatics model % Active 6x6 Jacobian matrix % Written: Dr. Bob, Edited: Cody Petitt jaca6; % Calculate statics Jacobian matrix A0 Gee = [0;0;-g;0;0;0]; mg = mp*gee; Ts = inva0*(-we-mg);

174 174 % % File Name: Draw6 % Purpose: display the 6-cable RoboCrane % Written: Dr. Bob, Edited: Cody Petitt % % % Six active cables % C1X = [B10(1) P10(1)]; C1Y = [B10(2) P10(2)]; C1Z = [B10(3) P10(3)]; % RoboCrane C2X = [B10(1) P20(1)]; C2Y = [B10(2) P20(2)]; C2Z = [B10(3) P20(3)]; C3X = [B20(1) P20(1)]; C3Y = [B20(2) P20(2)]; C3Z = [B20(3) P20(3)]; C4X = [B20(1) P30(1)]; C4Y = [B20(2) P30(2)]; C4Z = [B20(3) P30(3)]; C5X = [B30(1) P30(1)]; C5Y = [B30(2) P30(2)]; C5Z = [B30(3) P30(3)]; C6X = [B30(1) P10(1)]; C6Y = [B30(2) P10(2)]; C6Z = [B30(3) P10(3)]; % % Moving platform % PX = [P10(1) P20(1) P30(1)]; PY = [P10(2) P20(2) P30(2)]; PZ = [P10(3) P20(3) P30(3)]; if VU == 3 subsystemplot(2,2,1); plot3(bs1x,bs1y,bs1z,'k',bs2x,bs2y,bs2z,'k',bs3x,bs3y,bs3z,'k','linewid th',3); hold on; % Base frame plot3(c1x,c1y,c1z,'b',c2x,c2y,c2z,'c',c3x,c3y,c3z,'y',c4x,c4y,c4z,'g',c 5X,C5Y,C5Z,'r',C6X,C6Y,C6Z,'k','LineWidth',1); % Six active cables if Choose==2 plot3(xx1,xx2,xx3,'g','linewidth',1); end patch(px,py,pz,'g','linewidth',3); grid; hold off; % Moving platform set(gca,'fontsize',18); xlabel('\itx'); ylabel('\ity'); zlabel('\itz'); axis('square'); axis([xv(1) xv(2) yv(1) yv(2) zv(1) zv(2)]); %title('3d View'); view(az,el); subsystemplot(2,2,3); plot3(bs1x,bs1y,bs1z,'k',bs2x,bs2y,bs2z,'k',bs3x,bs3y,bs3z,'k','linewid th',3); hold on; % Base frame

175 175 plot3(c1x,c1y,c1z,'b',c2x,c2y,c2z,'c',c3x,c3y,c3z,'y',c4x,c4y,c4z,'g',c 5X,C5Y,C5Z,'r',C6X,C6Y,C6Z,'k','LineWidth',1); % Six active cables if Choose==2 plot3(xx1,xx2,xx3,'g','linewidth',1); end patch(px,py,pz,'g','linewidth',3); grid; hold off; % Moving platform set(gca,'fontsize',18); xlabel('\itx'); ylabel('\ity'); zlabel('\itz'); axis('square'); axis([xv(1) xv(2) yv(1) yv(2) zv(1) zv(2)]); %title('yz Plane'); view(-90,0); subsystemplot(2,2,2); plot3(bs1x,bs1y,bs1z,'k',bs2x,bs2y,bs2z,'k',bs3x,bs3y,bs3z,'k','linewid th',3); hold on; % Base frame plot3(c1x,c1y,c1z,'b',c2x,c2y,c2z,'c',c3x,c3y,c3z,'y',c4x,c4y,c4z,'g',c 5X,C5Y,C5Z,'r',C6X,C6Y,C6Z,'k','LineWidth',1); % Six active cables if Choose==2 plot3(xx1,xx2,xx3,'g','linewidth',1); end patch(px,py,pz,'g','linewidth',3); grid; hold off; % Moving platform set(gca,'fontsize',18); xlabel('\itx'); ylabel('\ity'); zlabel('\itz'); axis('square'); axis([xv(1) xv(2) yv(1) yv(2) zv(1) zv(2)]); %title('xy Plane'); view(0,90); subsystemplot(2,2,4); plot3(bs1x,bs1y,bs1z,'k',bs2x,bs2y,bs2z,'k',bs3x,bs3y,bs3z,'k','linewid th',3); hold on; % Base frame plot3(c1x,c1y,c1z,'b',c2x,c2y,c2z,'c',c3x,c3y,c3z,'y',c4x,c4y,c4z,'g',c 5X,C5Y,C5Z,'r',C6X,C6Y,C6Z,'k','LineWidth',1); % Six active cables if Choose==2 plot3(xx1,xx2,xx3,'g','linewidth',1); end patch(px,py,pz,'g','linewidth',3); grid; hold off; % Moving platform set(gca,'fontsize',18); xlabel('\itx'); ylabel('\ity'); zlabel('\itz'); axis('square'); axis([xv(1) xv(2) yv(1) yv(2) zv(1) zv(2)]); %title('xz Plane'); view(0,0); pause(1/64); end % End VU loop

176 176 % steps2bytes_6.m % % Wrapper to convert the MATLAB output of steps to bytes to be sent % the Arduino % % Written: Cody Petitt % % Amount_Step = [ (steppermove_1); (steppermove_2); (steppermove_3); (steppermove_4); (steppermove_5); (steppermove_6)]; Motor_Steps = [ round(steppermove_1); round(steppermove_2); round(steppermove_3); round(steppermove_4); round(steppermove_5); round(steppermove_6)]; num_motors = 6; % number of motors for ii = 1:num_motors % Motor Commands fwrite(s,'m','char'); %Command fwrite(s, ii,'int8'); % Motor # / Index fwrite(s, (Motor_Steps(ii) < 0) + 0,'int8'); % value1 and value2 => if negative send all -0 fwrite(s, 0,'int8'); % max values are 255 fwrite(s, abs(motor_steps(ii)),'int8'); end out = fread(s,6); OUT(:,ii) = out;

177 177 % Ploot6.m % Plot 6 cable lengths, Cartesian position, Lerror, Xerror, & active cable tensions for 6-cable RoboCrane % All three trajectory choices are the same % Written: Dr. Bob, Edited: Cody Petitt NN = [0:1:n-1]; % Cable Lengths figure; plot(nn,ll1,'r',nn,ll2,'g',nn,ll3,'b',nn,ll4,'r--',nn,ll5,'g-- ',NN,LL6,'b--'); grid; set(gca,'fontsize',18); ylabel('\itcable Lengths (m)'); xlabel('\ittime Steps'); legend('{{\itl}_1}','{{\itl}_2}','{{\itl}_3}','{{\itl}_4}','{{\itl}_5}','{{\itl}_6}'); % Cartesian Pose figure; subsystemplot(211) plot(nn,xx1,'r',nn,xx2,'g',nn,xx3,'b'); grid; set(gca,'fontsize',14); xlabel('\itsteps'); ylabel('{{\itx} ({\itm})}'); %axis([ ]); legend('{\itx_p}','{\ity_p}','{\itz_p}'); subsystemplot(212) plot(nn,alp/dr,'r',nn,bet/dr,'g',nn,gam/dr,'b'); grid; set(gca,'fontsize',14); xlabel('\itsteps'); ylabel('{{\iteuler Angles} ({\itdeg})}'); %axis([ ]); legend('{\it\alpha}','{\it\beta}','{\it\gamma}'); % Active cable tensions figure; plot(nn,tee1,'r',nn,tee2,'g',nn,tee3,'b',nn,tee4,'r--',nn,tee5,'g-- ',NN,Tee6,'b--'); grid; set(gca,'fontsize',14); xlabel('\itsteps'); ylabel('{{\itt} ({\itn})}'); %axis([ ]); legend('{{\itt}_1}','{{\itt}_2}','{{\itt}_3}','{{\itt}_4}','{{\itt}_5}','{{\itt}_6}'); % A determinant figure; plot(nn,deet); grid; set(gca,'fontsize',14); xlabel('\itsteps'); ylabel('{{\itjacobian Determinant} ({1/m})}');

178 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Thesis and Dissertation Services!

Robot. A thesis presented to. the faculty of. In partial fulfillment. of the requirements for the degree. Master of Science. Zachary J.

Robot. A thesis presented to. the faculty of. In partial fulfillment. of the requirements for the degree. Master of Science. Zachary J. Uncertainty Analysis throughout the Workspace of a Macro/Micro Cable Suspended Robot A thesis presented to the faculty of the Russ College of Engineering and Technology of Ohio University In partial fulfillment

More information

Rigid Dynamics Solution Methodology for 3-PSU Parallel Kinematic Manipulators

Rigid Dynamics Solution Methodology for 3-PSU Parallel Kinematic Manipulators Rigid Dynamics Solution Methodology for 3-PSU Parallel Kinematic Manipulators Arya B. Changela 1, Dr. Ramdevsinh Jhala 2, Chirag P. Kalariya 3 Keyur P. Hirpara 4 Assistant Professor, Department of Mechanical

More information

10/25/2018. Robotics and automation. Dr. Ibrahim Al-Naimi. Chapter two. Introduction To Robot Manipulators

10/25/2018. Robotics and automation. Dr. Ibrahim Al-Naimi. Chapter two. Introduction To Robot Manipulators Robotics and automation Dr. Ibrahim Al-Naimi Chapter two Introduction To Robot Manipulators 1 Robotic Industrial Manipulators A robot manipulator is an electronically controlled mechanism, consisting of

More information

Fundamentals of Inverse Kinematics Using Scara Robot

Fundamentals of Inverse Kinematics Using Scara Robot Fundamentals of Inverse Kinematics Using Scara Robot Overview of SCARA Bot: The 2 Degree of freedom (DOF) Selective Compliance Articulate Robotic Arm (SCARA) (Selective Compliance Articulated Robot Arm)

More information

Chapter 19 Assembly Modeling with the TETRIX by Pitsco Building System Autodesk Inventor

Chapter 19 Assembly Modeling with the TETRIX by Pitsco Building System Autodesk Inventor Tools for Design Using AutoCAD and Autodesk Inventor 19-1 Chapter 19 Assembly Modeling with the TETRIX by Pitsco Building System Autodesk Inventor Create and Use Subassemblies in Assemblies Creating an

More information

Chapter 1: Introduction

Chapter 1: Introduction Chapter 1: Introduction This dissertation will describe the mathematical modeling and development of an innovative, three degree-of-freedom robotic manipulator. The new device, which has been named the

More information

TRAINING A ROBOTIC MANIPULATOR

TRAINING A ROBOTIC MANIPULATOR ME 4773/5493 Fundamental of Robotics Fall 2016 San Antonio, TX, USA TRAINING A ROBOTIC MANIPULATOR Jonathan Sackett Dept. of Mechanical Engineering San Antonio, TX, USA 78249 jonathan.sackett@utsa.edu

More information

Build and Test Plan: IGV Team

Build and Test Plan: IGV Team Build and Test Plan: IGV Team 2/6/2008 William Burke Donaldson Diego Gonzales David Mustain Ray Laser Range Finder Week 3 Jan 29 The laser range finder will be set-up in the lab and connected to the computer

More information

Inverse Kinematics of Cable Driven Parallel Robot.

Inverse Kinematics of Cable Driven Parallel Robot. ISSN: 4-1 May 01 IJSDR Volume 1, Issue Inverse Kinematics of Cable Driven Parallel Robot. 1 Shail P. Maniyar, Arya B. Changela 1 P.G.Scholar, Assistant Professor Mechanical Engineering Department, Marwadi

More information

Appendix A: Carpal Wrist Prototype

Appendix A: Carpal Wrist Prototype Appendix A: Carpal Wrist Prototype The theoretical evolution of the Carpal wrist concept has resulted in a complete mathematical model representing the kinematics and dynamics. The validity of the concept

More information

Chapter 20 Assembly Model with VEX Robot Kit - Autodesk Inventor

Chapter 20 Assembly Model with VEX Robot Kit - Autodesk Inventor Tools for Design Using AutoCAD and Autodesk Inventor 20-1 Chapter 20 Assembly Model with VEX Robot Kit - Autodesk Inventor Creating an Assembly Using Parts from the VEX Robot Kit Understand and Perform

More information

Geometric Approach For Inverse Kinematics Solution: 3-PSU Parallel Kinematic Manipulator

Geometric Approach For Inverse Kinematics Solution: 3-PSU Parallel Kinematic Manipulator Geometric Approach For Inverse Kinematics Solution: 3-PSU Parallel Kinematic Manipulator Mr. Arya B Changela P.G. Student, School of Engineering RK University, Rajkot. Prof. Keyur P Hirpara Assistant Professor,

More information

Simulation-Based Design of Robotic Systems

Simulation-Based Design of Robotic Systems Simulation-Based Design of Robotic Systems Shadi Mohammad Munshi* & Erik Van Voorthuysen School of Mechanical and Manufacturing Engineering, The University of New South Wales, Sydney, NSW 2052 shadimunshi@hotmail.com,

More information

ÉCOLE POLYTECHNIQUE DE MONTRÉAL

ÉCOLE POLYTECHNIQUE DE MONTRÉAL ÉCOLE POLYTECHNIQUE DE MONTRÉAL MODELIZATION OF A 3-PSP 3-DOF PARALLEL MANIPULATOR USED AS FLIGHT SIMULATOR MOVING SEAT. MASTER IN ENGINEERING PROJET III MEC693 SUBMITTED TO: Luc Baron Ph.D. Mechanical

More information

1. Introduction 1 2. Mathematical Representation of Robots

1. Introduction 1 2. Mathematical Representation of Robots 1. Introduction 1 1.1 Introduction 1 1.2 Brief History 1 1.3 Types of Robots 7 1.4 Technology of Robots 9 1.5 Basic Principles in Robotics 12 1.6 Notation 15 1.7 Symbolic Computation and Numerical Analysis

More information

FREE SINGULARITY PATH PLANNING OF HYBRID PARALLEL ROBOT

FREE SINGULARITY PATH PLANNING OF HYBRID PARALLEL ROBOT Proceedings of the 11 th International Conference on Manufacturing Research (ICMR2013), Cranfield University, UK, 19th 20th September 2013, pp 313-318 FREE SINGULARITY PATH PLANNING OF HYBRID PARALLEL

More information

Manipulator Path Control : Path Planning, Dynamic Trajectory and Control Analysis

Manipulator Path Control : Path Planning, Dynamic Trajectory and Control Analysis Manipulator Path Control : Path Planning, Dynamic Trajectory and Control Analysis Motion planning for industrial manipulators is a challenging task when obstacles are present in the workspace so that collision-free

More information

Design and Validation of XY Flexure Mechanism

Design and Validation of XY Flexure Mechanism Design and Validation of XY Flexure Mechanism 1 Pratik M. Waghmare, 2 Shrishail B. Sollapur 1 Research Scholar, 2 Assistant Professor 1,2 Department of Mechanical Engineering, 1.2 Sinhgad Academy of Engineering,

More information

Members. Team Members. Advisor. Mentor. Tim Sonnen Joe Carter Marshall Townsend Brian Gift Nathan Park Kierra Ryan Qinlin Xu. Dr.

Members. Team Members. Advisor. Mentor. Tim Sonnen Joe Carter Marshall Townsend Brian Gift Nathan Park Kierra Ryan Qinlin Xu. Dr. Discover Bot 1 Members Team Members Advisor Tim Sonnen Joe Carter Marshall Townsend Brian Gift Nathan Park Kierra Ryan Qinlin Xu Dr. Joel Perry Mentor Sarah Willis 2 Project Goal To develop a single-user

More information

Arduino Based Planar Two DoF Robot Manipulator

Arduino Based Planar Two DoF Robot Manipulator Journal of Mechanics Engineering and Automation 8 (2018) 110-117 doi: 10.17265/2159-5275/2018.03.002 D DAVID PUBLISHING Arduino Based Planar Two DoF Robot Manipulator Fatih Cemal Can Mechatronics Engineering

More information

DESIGN OF 16 ACTUATORS FOR 3D MASSIVE PARALLEL ROBOTS (3D-MPRs)

DESIGN OF 16 ACTUATORS FOR 3D MASSIVE PARALLEL ROBOTS (3D-MPRs) DESIGN OF 16 ACTUATORS FOR 3D MASSIVE PARALLEL ROBOTS (3D-MPRs) Felix Pasila, IEEE Member Department of Electrical Engineering Petra Christian University Surabaya, East Java 60236, Indonesia felix@petra.ac.id

More information

Week 12 - Lecture Mechanical Event Simulation. ME Introduction to CAD/CAE Tools

Week 12 - Lecture Mechanical Event Simulation. ME Introduction to CAD/CAE Tools Week 12 - Lecture Mechanical Event Simulation Lecture Topics Mechanical Event Simulation Overview Additional Element Types Joint Component Description General Constraint Refresh Mesh Control Force Estimation

More information

Lesson 1: Introduction to Pro/MECHANICA Motion

Lesson 1: Introduction to Pro/MECHANICA Motion Lesson 1: Introduction to Pro/MECHANICA Motion 1.1 Overview of the Lesson The purpose of this lesson is to provide you with a brief overview of Pro/MECHANICA Motion, also called Motion in this book. Motion

More information

An Efficient Method for Solving the Direct Kinematics of Parallel Manipulators Following a Trajectory

An Efficient Method for Solving the Direct Kinematics of Parallel Manipulators Following a Trajectory An Efficient Method for Solving the Direct Kinematics of Parallel Manipulators Following a Trajectory Roshdy Foaad Abo-Shanab Kafr Elsheikh University/Department of Mechanical Engineering, Kafr Elsheikh,

More information

Methodology to Determine Counterweights for Passive Balancing of a 3-R Orientation Sensing Mechanism using Hanging Method

Methodology to Determine Counterweights for Passive Balancing of a 3-R Orientation Sensing Mechanism using Hanging Method Methodology to Determine Counterweights for Passive Balancing of a 3-R Orientation Sensing Mechanism using Hanging Method Shasa A. Antao, Vishnu S. Nair and Rajeevlochana G. Chittawadigi Department of

More information

STEPPER MOTOR DRIVES SOME FACTORS THAT WILL HELP DETERMINE PROPER SELECTION

STEPPER MOTOR DRIVES SOME FACTORS THAT WILL HELP DETERMINE PROPER SELECTION SOME FACTORS THAT WILL HELP DETERMINE PROPER SELECTION Authored By: Robert Pulford and Engineering Team Members Haydon Kerk Motion Solutions This white paper will discuss some methods of selecting the

More information

Design of a Three-Axis Rotary Platform

Design of a Three-Axis Rotary Platform Design of a Three-Axis Rotary Platform William Mendez, Yuniesky Rodriguez, Lee Brady, Sabri Tosunoglu Mechanics and Materials Engineering, Florida International University 10555 W Flagler Street, Miami,

More information

Mechanical Design Challenges for Collaborative Robots

Mechanical Design Challenges for Collaborative Robots Motor Technologies Mechanical Design Challenges for Collaborative Robots TN-3301 REV 170526 THE CHALLENGE Robotics and additive manufacturing markets have entered into a new phase of growth. This growth

More information

KGCOE MSD Technical Review Agenda P11213: Land Vehicle for Education: Modular Student Attachment

KGCOE MSD Technical Review Agenda P11213: Land Vehicle for Education: Modular Student Attachment KGCOE MSD Technical Review Agenda P11213: Land Vehicle for Education: Modular Student Attachment Meeting Purpose: 1. Introduction and review of the project 2. Design project recap 3. Mechanical design

More information

Abstract. Introduction:

Abstract. Introduction: Abstract This project analyzed a lifecycle test fixture for stress under generic test loading. The maximum stress is expected to occur near the shrink fit pin on the lever arm. The model was constructed

More information

ROSE-HULMAN INSTITUTE OF TECHNOLOGY

ROSE-HULMAN INSTITUTE OF TECHNOLOGY Introduction to Working Model Welcome to Working Model! What is Working Model? It's an advanced 2-dimensional motion simulation package with sophisticated editing capabilities. It allows you to build and

More information

Polar and Polygon Path Traversal of a Ball and Plate System

Polar and Polygon Path Traversal of a Ball and Plate System Polar and Polygon Path Traversal of a Ball and Plate System Aneeq Zia Electrical Engineering Department, LUMS School of Science and Engineering D.H.A, Lahore Cantt, 54792, Pakistan aneeq91@hotmail.com

More information

Spatial R-C-C-R Mechanism for a Single DOF Gripper

Spatial R-C-C-R Mechanism for a Single DOF Gripper NaCoMM-2009-ASMRL28 Spatial R-C-C-R Mechanism for a Single DOF Gripper Rajeev Lochana C.G * Mechanical Engineering Department Indian Institute of Technology Delhi, New Delhi, India * Email: rajeev@ar-cad.com

More information

Engineering Effects of Boundary Conditions (Fixtures and Temperatures) J.E. Akin, Rice University, Mechanical Engineering

Engineering Effects of Boundary Conditions (Fixtures and Temperatures) J.E. Akin, Rice University, Mechanical Engineering Engineering Effects of Boundary Conditions (Fixtures and Temperatures) J.E. Akin, Rice University, Mechanical Engineering Here SolidWorks stress simulation tutorials will be re-visited to show how they

More information

Autodesk's VEX Robotics Curriculum. Unit 15: Linkages

Autodesk's VEX Robotics Curriculum. Unit 15: Linkages Autodesk's VEX Robotics Curriculum Unit 15: Linkages 1 Overview In Unit 15, you learn about linkages: why they are used and how they are designed. You build your own linkage to use with a drivetrain and

More information

Autonomous Bottle Opener Robot

Autonomous Bottle Opener Robot Date: 03/19/02 Student Name: Clerc Jean-Philippe TAs: Aamir Qaiyumi Uriel Rodriguez Instructors: Dr. A. A Arroyo Dr. Schwartz University of Florida Department of Electrical and Computer Engineering Intelligent

More information

Project Planning. Module 4: Practice Exercises. Academic Services Unit PREPARED BY. August 2012

Project Planning. Module 4: Practice Exercises. Academic Services Unit PREPARED BY. August 2012 Project Planning PREPARED BY Academic Services Unit August 2012 Applied Technology High Schools, 2012 Module Objectives Upon successful completion of this module, students should be able to: 1. Select

More information

10/11/07 1. Motion Control (wheeled robots) Representing Robot Position ( ) ( ) [ ] T

10/11/07 1. Motion Control (wheeled robots) Representing Robot Position ( ) ( ) [ ] T 3 3 Motion Control (wheeled robots) Introduction: Mobile Robot Kinematics Requirements for Motion Control Kinematic / dynamic model of the robot Model of the interaction between the wheel and the ground

More information

Lab 7: PID Control with Trajectory Following

Lab 7: PID Control with Trajectory Following Introduction ME460: INDUSTRIAL CONTROL SYSTEMS Lab 7: PID Control with Trajectory Following In Lab 6 you identified an approximate transfer function for both the X and Y linear drives of the XY stage in

More information

May Project Plan v2

May Project Plan v2 May 14-06 Project Plan v2 ANDREW SPEER CHENG SONG KYLE LICHTENBERG ROSS FRIEDMAN JAKE MEYER 10/10/2013 May 14-06 Page 1 Problem Statement Our client, Dr. Tom Daniels, wants to repurpose an old 3-axis positioning

More information

CONTOUR-CRAFTING-CARTESIAN-CABLE ROBOT SYSTEM CONCEPTS: WORKSPACE AND STIFFNESS COMPARISONS

CONTOUR-CRAFTING-CARTESIAN-CABLE ROBOT SYSTEM CONCEPTS: WORKSPACE AND STIFFNESS COMPARISONS IDETC/CIE 2008 ASME 2008 International Design Engineering Technical Conferences and Computers and Information in Engineering Conference August 3-6, 2008, New York, NY, USA DETC2008-49478 CONTOUR-CRAFTING-CARTESIAN-CABLE

More information

Dual-loop Control for Backlash Correction in Trajectory-tracking of a Planar 3-RRR Manipulator

Dual-loop Control for Backlash Correction in Trajectory-tracking of a Planar 3-RRR Manipulator Dual-loop Control for Backlash Correction in Trajectory-tracking of a Planar -RRR Manipulator Abhishek Agarwal, Chaman Nasa, Sandipan Bandyopadhyay Abstract The presence of backlash in the gearheads is

More information

Mid-year Design Review

Mid-year Design Review Mid-year Design Review Team 5: Helping Hand Team Members: Corey Ruderman, Dan Travis, Jacob Wyner, Joshua Girard Advisor: Professor Duarte ofname in Title and Advisor: Professor Duarte The Team: Corey

More information

Keywords Stepper motor, spindle motor, leadscrew, ball bearings, flexible coupling, and control system by Arduino micro controller in Easel software.

Keywords Stepper motor, spindle motor, leadscrew, ball bearings, flexible coupling, and control system by Arduino micro controller in Easel software. Design and fabrication of 3-axis CNC Milling machine Sriranga V Deshpande 1, P U Karthik 2, Naveen Kumar D 3, Dr Vijendra Kumar 4, Dr K. S Badrinaryan 5 1.Student, department of mechanical engineering,

More information

WORKSPACE AGILITY FOR ROBOTIC ARM Karna Patel

WORKSPACE AGILITY FOR ROBOTIC ARM Karna Patel ISSN 30-9135 1 International Journal of Advance Research, IJOAR.org Volume 4, Issue 1, January 016, Online: ISSN 30-9135 WORKSPACE AGILITY FOR ROBOTIC ARM Karna Patel Karna Patel is currently pursuing

More information

Visualization and Analysis of Inverse Kinematics Algorithms Using Performance Metric Maps

Visualization and Analysis of Inverse Kinematics Algorithms Using Performance Metric Maps Visualization and Analysis of Inverse Kinematics Algorithms Using Performance Metric Maps Oliver Cardwell, Ramakrishnan Mukundan Department of Computer Science and Software Engineering University of Canterbury

More information

Optimization of a two-link Robotic Manipulator

Optimization of a two-link Robotic Manipulator Optimization of a two-link Robotic Manipulator Zachary Renwick, Yalım Yıldırım April 22, 2016 Abstract Although robots are used in many processes in research and industry, they are generally not customized

More information

(Based on a paper presented at the 8th International Modal Analysis Conference, Kissimmee, EL 1990.)

(Based on a paper presented at the 8th International Modal Analysis Conference, Kissimmee, EL 1990.) Design Optimization of a Vibration Exciter Head Expander Robert S. Ballinger, Anatrol Corporation, Cincinnati, Ohio Edward L. Peterson, MB Dynamics, Inc., Cleveland, Ohio David L Brown, University of Cincinnati,

More information

Revision of the SolidWorks Variable Pressure Simulation Tutorial J.E. Akin, Rice University, Mechanical Engineering. Introduction

Revision of the SolidWorks Variable Pressure Simulation Tutorial J.E. Akin, Rice University, Mechanical Engineering. Introduction Revision of the SolidWorks Variable Pressure Simulation Tutorial J.E. Akin, Rice University, Mechanical Engineering Introduction A SolidWorks simulation tutorial is just intended to illustrate where to

More information

Introduction to Solid Modeling Using SolidWorks 2008 COSMOSMotion Tutorial Page 1

Introduction to Solid Modeling Using SolidWorks 2008 COSMOSMotion Tutorial Page 1 Introduction to Solid Modeling Using SolidWorks 2008 COSMOSMotion Tutorial Page 1 In this tutorial, we will learn the basics of performing motion analysis using COSMOSMotion. Although the tutorial can

More information

Introduction to Control Systems Design

Introduction to Control Systems Design Experiment One Introduction to Control Systems Design Control Systems Laboratory Dr. Zaer Abo Hammour Dr. Zaer Abo Hammour Control Systems Laboratory 1.1 Control System Design The design of control systems

More information

Inverse Kinematics Software Design and Trajectory Control Programming of SCARA Manipulator robot

Inverse Kinematics Software Design and Trajectory Control Programming of SCARA Manipulator robot International Journal of Engineering Research and Technology. ISSN 0974-3154 Volume 11, Number 11 (2018), pp. 1759-1779 International Research Publication House http://www.irphouse.com Inverse Kinematics

More information

OBSTACLE AVOIDANCE ROBOT

OBSTACLE AVOIDANCE ROBOT e-issn 2455 1392 Volume 3 Issue 4, April 2017 pp. 85 89 Scientific Journal Impact Factor : 3.468 http://www.ijcter.com OBSTACLE AVOIDANCE ROBOT Sanjay Jaiswal 1, Saurabh Kumar Singh 2, Rahul Kumar 3 1,2,3

More information

Cylinders in Vs An optomechanical methodology Yuming Shen Tutorial for Opti521 November, 2006

Cylinders in Vs An optomechanical methodology Yuming Shen Tutorial for Opti521 November, 2006 Cylinders in Vs An optomechanical methodology Yuming Shen Tutorial for Opti521 November, 2006 Introduction For rotationally symmetric optical components, a convenient optomechanical approach which is usually

More information

TESTSAT STRUCTURE AND INTERFACE DESIGN & FABRICATION. Jonathan R. Chinen College of Engineering University of Hawai i at Mānoa Honolulu, HI 96822

TESTSAT STRUCTURE AND INTERFACE DESIGN & FABRICATION. Jonathan R. Chinen College of Engineering University of Hawai i at Mānoa Honolulu, HI 96822 TESTSAT STRUCTURE AND INTERFACE DESIGN & FABRICATION Jonathan R. Chinen College of Engineering University of Hawai i at Mānoa Honolulu, HI 96822 ABSTRACT Under the Hawai i Space Flight Laboratory (HSFL),

More information

Dynamic Analysis of Manipulator Arm for 6-legged Robot

Dynamic Analysis of Manipulator Arm for 6-legged Robot American Journal of Mechanical Engineering, 2013, Vol. 1, No. 7, 365-369 Available online at http://pubs.sciepub.com/ajme/1/7/42 Science and Education Publishing DOI:10.12691/ajme-1-7-42 Dynamic Analysis

More information

5-Axis Flex Track Drilling Systems on Complex Contours: Solutions for Position Control

5-Axis Flex Track Drilling Systems on Complex Contours: Solutions for Position Control 5-Axis Flex Track Drilling Systems on Complex Contours: Solutions for Position Control 2013-01-2224 Published 09/17/2013 Joseph R. Malcomb Electroimpact Inc. Copyright 2013 SAE International doi:10.4271/2013-01-2224

More information

Autodesk Inventor : From Concept to Digital Prototype

Autodesk Inventor : From Concept to Digital Prototype Autodesk Inventor : From Concept to Digital Prototype Bryan Fields Advanced Solutions, Inc. MA305-5 Using the tools available in Autodesk Inventor, this session will look at the progression from concept

More information

Technical Specification for Educational Robots

Technical Specification for Educational Robots Technical Specification for Educational Robots 1. Introduction The e-yantra project, sponsored by MHRD, aims to start a robotic revolution in the country through the deployment of low-cost educational

More information

Industrial Robots : Manipulators, Kinematics, Dynamics

Industrial Robots : Manipulators, Kinematics, Dynamics Industrial Robots : Manipulators, Kinematics, Dynamics z z y x z y x z y y x x In Industrial terms Robot Manipulators The study of robot manipulators involves dealing with the positions and orientations

More information

Design and Analysis of Voice Activated Robotic Arm

Design and Analysis of Voice Activated Robotic Arm Design and Analysis of Voice Activated Robotic Arm Ajay Aravind S4 MTECH Government College of Engineering, Kannur ajayaravind05@gmail.com Dr. T.D. John PROFESSOR Government Engineering College, Kannur

More information

Robots parallèles à câbles

Robots parallèles à câbles Robots parallèles à câbles Marc Gouttefarde LIRMM CNRS / Université de Montpellier Séminaire Technique : Robotique industrielle LIRMM, 24 novembre 2016 CABLE-DRIVEN PARALLEL ROBOTS Base frame Winches Cables

More information

ustepper S Datasheet Microcontroller, stepper driver and encoder in an ultra-compact design! By ustepper ApS

ustepper S Datasheet Microcontroller, stepper driver and encoder in an ultra-compact design! By ustepper ApS ustepper S Datasheet Microcontroller, stepper driver and encoder in an ultra-compact design! By ustepper ApS Product: ustepper S Document revision: 1.1 Author: MGN Approved by: THO Approval date: January

More information

7-Degree-Of-Freedom (DOF) Cable-Driven Humanoid Robot Arm. A thesis presented to. the faculty of. In partial fulfillment

7-Degree-Of-Freedom (DOF) Cable-Driven Humanoid Robot Arm. A thesis presented to. the faculty of. In partial fulfillment Mechanism Design, Kinematics and Dynamics Analysis of a 7-Degree-Of-Freedom (DOF) Cable-Driven Humanoid Robot Arm A thesis presented to the faculty of the Russ College of Engineering and Technology of

More information

AC : DEVELOPMENT AND INITIAL ANALYSIS OF A MINI CNC RAPID DEVELOPMENT SYSTEM

AC : DEVELOPMENT AND INITIAL ANALYSIS OF A MINI CNC RAPID DEVELOPMENT SYSTEM AC 21-1427: DEVELOPMENT AND INITIAL ANALYSIS OF A MINI CNC RAPID DEVELOPMENT SYSTEM Lie Tang, Missouri University of Science and Technology Robert Landers, Missouri University of Science and Technology

More information

Assignment 3. Position of the center +/- 0.1 inches Orientation +/- 1 degree. Decal, marker Stereo, matching algorithms Pose estimation

Assignment 3. Position of the center +/- 0.1 inches Orientation +/- 1 degree. Decal, marker Stereo, matching algorithms Pose estimation Assignment 3 1. You are required to analyze the feasibility of designing a vision system for the robot gas station attendant. Assume that the driver parks the car so that the flap and the cap are in a

More information

Robots are built to accomplish complex and difficult tasks that require highly non-linear motions.

Robots are built to accomplish complex and difficult tasks that require highly non-linear motions. Path and Trajectory specification Robots are built to accomplish complex and difficult tasks that require highly non-linear motions. Specifying the desired motion to achieve a specified goal is often a

More information

Fire Bird V Insect - Nex Robotics

Fire Bird V Insect - Nex Robotics Fire Bird V Insect is a small six legged robot. It has three pair of legs driven by one servo each. Robot can navigate itself using Sharp IR range sensors. It can be controlled wirelessly using ZigBee

More information

Lab 4: Trajectory Following 1

Lab 4: Trajectory Following 1 Lab 4: Trajectory Following 1 Prelab Familiarize yourself with how the LabVIEW program works It is XYposition_control1.4.vi Located in Lab4_LabVIEW.zip on the Stellar page 2 Optional prelab: create your

More information

Final Project Report - EE 249 Introduction to Embedded Systems

Final Project Report - EE 249 Introduction to Embedded Systems Final Project Report - EE 249 Introduction to Embedded Systems By Phillip Azar Peadar Keegan Antonio de Lima Fernandes Adarsh Mani Modular LED Matrices: A proof of scalable, robust, and model-based design

More information

DETERMINING ACCURACY OF AN ABB IRB1600 MANIPULATOR AND FORMING COMMON REFERENCE FRAME WITH A FARO ARM

DETERMINING ACCURACY OF AN ABB IRB1600 MANIPULATOR AND FORMING COMMON REFERENCE FRAME WITH A FARO ARM ME 4773/5493 Fundamental of Robotics Fall 2016 San Antonio, TX, USA DETERMINING ACCURACY OF AN ABB IRB1600 MANIPULATOR AND FORMING COMMON REFERENCE FRAME WITH A FARO ARM Geoffrey Chiou Dept. of Mechanical

More information

MCE/EEC 647/747: Robot Dynamics and Control. Lecture 1: Introduction

MCE/EEC 647/747: Robot Dynamics and Control. Lecture 1: Introduction MCE/EEC 647/747: Robot Dynamics and Control Lecture 1: Introduction Reading: SHV Chapter 1 Robotics and Automation Handbook, Chapter 1 Assigned readings from several articles. Cleveland State University

More information

A Six Degree of Freedom, Piezoelectrically Actuated Translation Stage

A Six Degree of Freedom, Piezoelectrically Actuated Translation Stage A Six Degree of Freedom, Piezoelectrically Actuated Translation Stage Richard M. Seugling, Roy H.R. Jacobs, Stuart T. Smith, Lowell P. Howard, Thomas LeBrun Center for Precision Metrology, UNC Charlotte,

More information

Lesson 5 Solid Modeling - Constructive Solid Geometry

Lesson 5 Solid Modeling - Constructive Solid Geometry AutoCAD 2000i Tutorial 5-1 Lesson 5 Solid Modeling - Constructive Solid Geometry Understand the Constructive Solid Geometry Concept. Create a Binary Tree. Understand the basic Boolean Operations. Create

More information

How-To #3: Make and Use a Motor Controller Shield

How-To #3: Make and Use a Motor Controller Shield How-To #3: Make and Use a Motor Controller Shield The Arduino single-board computer can be used to control servos and motors. But sometimes more current is required than the Arduino can provide, either

More information

WEEKS 1-2 MECHANISMS

WEEKS 1-2 MECHANISMS References WEEKS 1-2 MECHANISMS (METU, Department of Mechanical Engineering) Text Book: Mechanisms Web Page: http://www.me.metu.edu.tr/people/eres/me301/in dex.ht Analitik Çözümlü Örneklerle Mekanizma

More information

Discover Robotics & Programming CURRICULUM SAMPLE

Discover Robotics & Programming CURRICULUM SAMPLE OOUTLINE 5 POINTS FOR EDP Yellow Level Overview Robotics incorporates mechanical engineering, electrical engineering and computer science - all of which deal with the design, construction, operation and

More information

Animations in Creo 3.0

Animations in Creo 3.0 Animations in Creo 3.0 ME170 Part I. Introduction & Outline Animations provide useful demonstrations and analyses of a mechanism's motion. This document will present two ways to create a motion animation

More information

CMPUT 412 Motion Control Wheeled robots. Csaba Szepesvári University of Alberta

CMPUT 412 Motion Control Wheeled robots. Csaba Szepesvári University of Alberta CMPUT 412 Motion Control Wheeled robots Csaba Szepesvári University of Alberta 1 Motion Control (wheeled robots) Requirements Kinematic/dynamic model of the robot Model of the interaction between the wheel

More information

INSTITUTE OF AERONAUTICAL ENGINEERING

INSTITUTE OF AERONAUTICAL ENGINEERING Name Code Class Branch Page 1 INSTITUTE OF AERONAUTICAL ENGINEERING : ROBOTICS (Autonomous) Dundigal, Hyderabad - 500 0 MECHANICAL ENGINEERING TUTORIAL QUESTION BANK : A7055 : IV B. Tech I Semester : MECHANICAL

More information

Design of Modular Robotic Joints for Achieving Various Robot Configurations

Design of Modular Robotic Joints for Achieving Various Robot Configurations Design of Modular Robotic Joints for Achieving Various Robot Configurations Majid Tolouei-Rad, and Anurag Dhull Abstract This paper describes various stages of design and prototyping of a modular robot

More information

Y, XY AND XYZ MOTION. Section 09. Introduction to Y, XY and XYZ Stages 114. Y Shifts 116. XY MultiBase Manipulators 118

Y, XY AND XYZ MOTION. Section 09. Introduction to Y, XY and XYZ Stages 114. Y Shifts 116. XY MultiBase Manipulators 118 Section Y, XY AND XYZ MOTION Introduction to Y, XY and XYZ Stages 114 Y Shifts 116 XY MultiBase Manipulators 118 XY MultiBase Manipulators with Rotatable Axis 120 XYZT Single Bellows Stages 122 XYZ Dual

More information

SIMULATION ENVIRONMENT PROPOSAL, ANALYSIS AND CONTROL OF A STEWART PLATFORM MANIPULATOR

SIMULATION ENVIRONMENT PROPOSAL, ANALYSIS AND CONTROL OF A STEWART PLATFORM MANIPULATOR SIMULATION ENVIRONMENT PROPOSAL, ANALYSIS AND CONTROL OF A STEWART PLATFORM MANIPULATOR Fabian Andres Lara Molina, Joao Mauricio Rosario, Oscar Fernando Aviles Sanchez UNICAMP (DPM-FEM), Campinas-SP, Brazil,

More information

A Novel Technique for Controlling CNC Systems

A Novel Technique for Controlling CNC Systems A Novel Technique for Controlling CNC Systems Hussein Sarhan Department of Mechatronics Engineering, Faculty of Engineering Technology, P. O. Box 15008, Amman, Jordan Abstract E-mail: sarhan_hussein@yahoo.com;

More information

System Block Diagram. Tracking Trajectories of Migrating Birds Around a Skyscraper. Brian Crombie Matt Zivney

System Block Diagram. Tracking Trajectories of Migrating Birds Around a Skyscraper. Brian Crombie Matt Zivney System Block Diagram Tracking Trajectories of Migrating Birds Around a Skyscraper Brian Crombie Matt Zivney Project Advisors Dr. Huggins Dr. Stewart Dr. Malinowski System Level Block Diagram The goal of

More information

[3] Rigid Body Analysis

[3] Rigid Body Analysis [3] Rigid Body Analysis Page 1 of 53 [3] Rigid Body Analysis [3.1] Equilibrium of a Rigid Body [3.2] Equations of Equilibrium [3.3] Equilibrium in 3-D [3.4] Simple Trusses [3.5] The Method of Joints [3.6]

More information

TABLE OF CONTENTS. Page 2 14

TABLE OF CONTENTS. Page 2 14 TABLE OF CONTENTS INTRODUCTION... 3 WARNING SIGNS AND THEIR MEANINGS... 3 1. PRODUCT OVERVIEW... 4 1.1. Basic features and components... 4 1.2. Supply package... 5 1.3. Robot arm specifications... 6 1.4.

More information

Arduino Smart Robot Car Kit User Guide

Arduino Smart Robot Car Kit User Guide User Guide V1.0 04.2017 UCTRONIC Table of Contents 1. Introduction...3 2. Assembly...4 2.1 Arduino Uno R3...4 2.2 HC-SR04 Ultrasonic Sensor Module with Bracket / Holder...5 2.3 L293D Motor Drive Expansion

More information

Robotics. SAAST Robotics Robot Arms

Robotics. SAAST Robotics Robot Arms SAAST Robotics 008 Robot Arms Vijay Kumar Professor of Mechanical Engineering and Applied Mechanics and Professor of Computer and Information Science University of Pennsylvania Topics Types of robot arms

More information

SimWise. 3D Dynamic Motion, and Stress Analysis. integrated with Alibre Design

SimWise. 3D Dynamic Motion, and Stress Analysis. integrated with Alibre Design SimWise 3D Dynamic Motion, and Stress Analysis integrated with Alibre Design SimWise 4D for Alibre Integrated Motion Simulation and Stress Analysis SimWise 4D is a software tool that allows the functional

More information

Increasing Distribution Demands: 5 Benefits of Modular Substations

Increasing Distribution Demands: 5 Benefits of Modular Substations Increasing Distribution Demands: 5 Benefits of Modular Substations ACHILA JAYASURIYA, SUBSTATION ENGINEER Substations play a critical role in the power industry. They support the transmission grid in moving

More information

SimWise 4D. Integrated Motion and Stress Analysis

SimWise 4D. Integrated Motion and Stress Analysis SimWise 4D Integrated Motion and Stress Analysis SimWise 4D Integrated Motion Simulation and Stress Analysis SimWise 4D is a software tool that allows the functional performance of mechanical parts and

More information

Simulation and Modeling of 6-DOF Robot Manipulator Using Matlab Software

Simulation and Modeling of 6-DOF Robot Manipulator Using Matlab Software Simulation and Modeling of 6-DOF Robot Manipulator Using Matlab Software 1 Thavamani.P, 2 Ramesh.K, 3 Sundari.B 1 M.E Scholar, Applied Electronics, JCET, Dharmapuri, Tamilnadu, India 2 Associate Professor,

More information

INTERNATIONAL JOURNAL OF DESIGN AND MANUFACTURING TECHNOLOGY (IJDMT)

INTERNATIONAL JOURNAL OF DESIGN AND MANUFACTURING TECHNOLOGY (IJDMT) INTERNATIONAL JOURNAL OF DESIGN AND MANUFACTURING TECHNOLOGY (IJDMT) International Journal of Design and Manufacturing Technology (IJDMT), ISSN 0976 6995(Print), ISSN 0976 6995 (Print) ISSN 0976 7002 (Online)

More information

Touch Control Panels. Precision Built Solutions

Touch Control Panels. Precision Built Solutions Touch 2200 Control Panels Precision Built Solutions The Touch 2200 provides world class technology and advanced features not available in other controls proving that east-to-use does not have to mean compromising

More information

Support Systems for Developing System Models

Support Systems for Developing System Models Support Systems for Developing System Models Hasan G. Pasha, Karan Kohli, Randall J. Allemang, David L. Brown and Allyn W. Phillips University of Cincinnati Structural Dynamics Research Lab (UC-SDRL),

More information

Computer Aided Engineering Applications 3. Advanced Manufacturing 3.5 NC programming 3.6 Automated Manufacturing systems 3.7 Rapid prototyping

Computer Aided Engineering Applications 3. Advanced Manufacturing 3.5 NC programming 3.6 Automated Manufacturing systems 3.7 Rapid prototyping Computer Aided Engineering Applications 3. Advanced Manufacturing 3.5 NC programming 3.6 Automated Manufacturing systems 3.7 Rapid prototyping Engi 6928 - Fall 2014 3.5 Part programming Structure of an

More information

Selection can be made from different capacities (ranging from 100kN to 2000kN) from HL 590 / HL590 (FL) series or HLC 591 / HLC 591 (FL) series.

Selection can be made from different capacities (ranging from 100kN to 2000kN) from HL 590 / HL590 (FL) series or HLC 591 / HLC 591 (FL) series. Universal Testing Machines UNIVERSAL TESTING MACHINE HEICO UTM is suitable to conduct following tests - (i) Compression (ii) Tension (iii) Transverse (iv)bending (v) Shear (vi) Hardness and many others

More information

Design and Development of Stepper Motor Based XY Scanning Stage

Design and Development of Stepper Motor Based XY Scanning Stage ISSN 2395-1621 Design and Development of Stepper Motor Based XY Scanning Stage #1 V.V. Suryawanshi, #2 P.M. Sonawane, #3 S. P. Deshmukh 1 vvs2020@gmail.com 2 sonawanepms@gmail.com 3 suhas.deshmukh@gmail.com

More information

SDI-5510 Vertical Flat Through Transmission Inspection System. Technical Specification

SDI-5510 Vertical Flat Through Transmission Inspection System. Technical Specification sdi Structural Diagnostics, Inc. Technical Specification Rev E 11-11-09 SDI-5510 Vertical Flat Through Transmission Inspection System Technical Specification INTRODUCTION This specification details the

More information