This document provides an overview of controlling various PUMA robot arm models using different control systems such as VAL, RCCL, Level II, Kali, and ALVIN. It describes the PUMA robot arm models including the MK I, MK II, and MK III controllers. It then discusses alternative control systems to VAL such as RCCL, Level II, Kali, and ALVIN and how they interface with and control the PUMA robot arms. Block diagrams are provided showing how these different control systems connect to and communicate with the PUMA robot arm hardware.
PUMA-560 Robot Manipulator Position Computed Torque Control Methods Using MAT...Waqas Tariq
This document describes the implementation of a computed torque controller for controlling the position of a PUMA 560 robot manipulator using MATLAB/Simulink. It first presents the dynamic equations of motion for the PUMA 560 robot. It then provides details on computed torque control, including its mathematical formulation and how it was modeled in Simulink. Simulation results are presented to validate the controller's performance in tracking desired joint positions for the robot.
Artificial Control of PUMA Robot Manipulator: A-Review of Fuzzy Inference Eng...Waqas Tariq
One of the most important challenges in the field of robotics is robot manipulators control with acceptable performance, because these systems are multi-input multi-output (MIMO), nonlinear and uncertainty. Presently, robot manipulators are used in different (unknown and/or unstructured) situation consequently caused to provide complicated systems, as a result strong mathematical theory are used in new control methodologies to design nonlinear robust controller with acceptable performance (e.g., minimum error, good trajectory, disturbance rejection). Classical and non-classical methods are two main categories of robot manipulators control, where the conventional (classical) control theory uses the classical method and the non-classical control theory (e.g., fuzzy logic, neural network, and neuro fuzzy) uses the artificial intelligence methods. However both of conventional and artificial intelligence theories have applied effectively in many areas, but these methods also have some limitations. This paper is focused on review of fuzzy logic controller and applied to PUMA robot manipulator.
PUMA-560 Robot Manipulator Position Sliding Mode Control Methods Using MATLAB...Waqas Tariq
This paper describes the MATLAB/SIMULINK realization, modeling and implementation of the PUMA 560 robot manipulator. This paper focuses on robot manipulator analysis and implementation and analyzed. This simulation models are developed as a part of a software laboratory to support and enhance graduate robotics courses, and MATLAB/SIMULINK courses at research and development company (SSP Co.) research center, Shiraz, Iran.
The document discusses control systems for robot manipulators. It covers open-loop and closed-loop control systems, with closed-loop being preferred using feedback. It describes using linear control techniques to approximate manipulator dynamics and designing controllers to meet stability and performance specifications. Common control techniques for manipulators are also summarized like PD, PID, state space control and adaptive/intelligent methods.
Robots can be autonomous, semi-autonomous or
remotely controlled [6].
The robot arm is widely used in many industries and dangerous areas. Automatic control of the robotic
manipulator involves study of kinematic. The kinematic problem is defined as the transformation from the
Cartesian space to the joint space and vice versa This system include the kinematic control which is used for
picking and placing the object in its workspace. There are many types of robot arm in the world of engineering.
This research describes design of jointed robot arm control system using kinematic modelling. The main focus of
this system is to control the end-effector of robot arm to achieve the desired position in the workspace using
MATLAB programming, microcontroller and inverse kinematic modelling. The MATLAB window(GUI) is used
the inverse kinematic for the requirement data for the specified angle of the arm and displayed on the computer.
The description of this system is to implement the hardware components for the moving process and to control
servo motors with pulse width driving circuit. PIC and Max-232 been used to drive for the servo motors of the
control system and receiving serial data from the computer. The control program is written in Mikro-C
programming language.
This chapter introduces the fundamental components and concepts of robotics. It discusses the five main components that make up an industrial robot: the controller, manipulator, end effector, power supply, and programming interface. Degrees of freedom and different robot configurations are also covered. Robots can be classified by their control system, actuation method, or workspace shape. The chapter provides an overview to introduce students to how robots work at a basic level.
This document discusses robot controllers and motion control of robots. It describes how robot controllers are used to store information about the robot and environment and execute programs to operate the robot. It then discusses different types of motion control systems and control functions like velocity control and position control. It also describes PID and PI controllers that are commonly used for feedback control. Finally, it outlines different types of robot control including point-to-point, continuous path, and controlled path robots.
Refer to the research, design a novel SISO adaptive fuzzy sliding algorithm inverse dynamic like method (NAIDLC) and application to robot manipulator has proposed in order to design high performance nonlinear controller in the presence of uncertainties. Regarding to the positive points in inverse dynamic controller, fuzzy logic controller and self tuning fuzzy sliding method, the output has improved. The main objective in this research is analyses and design of the adaptive robust controller based on artificial intelligence and nonlinear control. Robot manipulator is nonlinear, time variant and a number of parameters are uncertain, so design the best controller for this plant is the main target. Although inverse dynamic controller have acceptable performance with known dynamic parameters but regarding to uncertainty, this controller\'s output has fairly fluctuations. In order to solve this problem this research is focoused on two methodology the first one is design a fuzzy inference system as a estimate nonlinear part of main controller but this method caused to high computation load in fuzzy rule base and the second method is focused on design novel adaptive method to reduce the computation in fuzzy algorithm.
PUMA-560 Robot Manipulator Position Computed Torque Control Methods Using MAT...Waqas Tariq
This document describes the implementation of a computed torque controller for controlling the position of a PUMA 560 robot manipulator using MATLAB/Simulink. It first presents the dynamic equations of motion for the PUMA 560 robot. It then provides details on computed torque control, including its mathematical formulation and how it was modeled in Simulink. Simulation results are presented to validate the controller's performance in tracking desired joint positions for the robot.
Artificial Control of PUMA Robot Manipulator: A-Review of Fuzzy Inference Eng...Waqas Tariq
One of the most important challenges in the field of robotics is robot manipulators control with acceptable performance, because these systems are multi-input multi-output (MIMO), nonlinear and uncertainty. Presently, robot manipulators are used in different (unknown and/or unstructured) situation consequently caused to provide complicated systems, as a result strong mathematical theory are used in new control methodologies to design nonlinear robust controller with acceptable performance (e.g., minimum error, good trajectory, disturbance rejection). Classical and non-classical methods are two main categories of robot manipulators control, where the conventional (classical) control theory uses the classical method and the non-classical control theory (e.g., fuzzy logic, neural network, and neuro fuzzy) uses the artificial intelligence methods. However both of conventional and artificial intelligence theories have applied effectively in many areas, but these methods also have some limitations. This paper is focused on review of fuzzy logic controller and applied to PUMA robot manipulator.
PUMA-560 Robot Manipulator Position Sliding Mode Control Methods Using MATLAB...Waqas Tariq
This paper describes the MATLAB/SIMULINK realization, modeling and implementation of the PUMA 560 robot manipulator. This paper focuses on robot manipulator analysis and implementation and analyzed. This simulation models are developed as a part of a software laboratory to support and enhance graduate robotics courses, and MATLAB/SIMULINK courses at research and development company (SSP Co.) research center, Shiraz, Iran.
The document discusses control systems for robot manipulators. It covers open-loop and closed-loop control systems, with closed-loop being preferred using feedback. It describes using linear control techniques to approximate manipulator dynamics and designing controllers to meet stability and performance specifications. Common control techniques for manipulators are also summarized like PD, PID, state space control and adaptive/intelligent methods.
Robots can be autonomous, semi-autonomous or
remotely controlled [6].
The robot arm is widely used in many industries and dangerous areas. Automatic control of the robotic
manipulator involves study of kinematic. The kinematic problem is defined as the transformation from the
Cartesian space to the joint space and vice versa This system include the kinematic control which is used for
picking and placing the object in its workspace. There are many types of robot arm in the world of engineering.
This research describes design of jointed robot arm control system using kinematic modelling. The main focus of
this system is to control the end-effector of robot arm to achieve the desired position in the workspace using
MATLAB programming, microcontroller and inverse kinematic modelling. The MATLAB window(GUI) is used
the inverse kinematic for the requirement data for the specified angle of the arm and displayed on the computer.
The description of this system is to implement the hardware components for the moving process and to control
servo motors with pulse width driving circuit. PIC and Max-232 been used to drive for the servo motors of the
control system and receiving serial data from the computer. The control program is written in Mikro-C
programming language.
This chapter introduces the fundamental components and concepts of robotics. It discusses the five main components that make up an industrial robot: the controller, manipulator, end effector, power supply, and programming interface. Degrees of freedom and different robot configurations are also covered. Robots can be classified by their control system, actuation method, or workspace shape. The chapter provides an overview to introduce students to how robots work at a basic level.
This document discusses robot controllers and motion control of robots. It describes how robot controllers are used to store information about the robot and environment and execute programs to operate the robot. It then discusses different types of motion control systems and control functions like velocity control and position control. It also describes PID and PI controllers that are commonly used for feedback control. Finally, it outlines different types of robot control including point-to-point, continuous path, and controlled path robots.
Refer to the research, design a novel SISO adaptive fuzzy sliding algorithm inverse dynamic like method (NAIDLC) and application to robot manipulator has proposed in order to design high performance nonlinear controller in the presence of uncertainties. Regarding to the positive points in inverse dynamic controller, fuzzy logic controller and self tuning fuzzy sliding method, the output has improved. The main objective in this research is analyses and design of the adaptive robust controller based on artificial intelligence and nonlinear control. Robot manipulator is nonlinear, time variant and a number of parameters are uncertain, so design the best controller for this plant is the main target. Although inverse dynamic controller have acceptable performance with known dynamic parameters but regarding to uncertainty, this controller\'s output has fairly fluctuations. In order to solve this problem this research is focoused on two methodology the first one is design a fuzzy inference system as a estimate nonlinear part of main controller but this method caused to high computation load in fuzzy rule base and the second method is focused on design novel adaptive method to reduce the computation in fuzzy algorithm.
Evolutionary Design of Mathematical tunable FPGA Based MIMO Fuzzy Estimator S...Waqas Tariq
In this research, a Multi Input Multi Output (MIMO) position Field Programmable Gate Array (FPGA)-based fuzzy estimator sliding mode control (SMC) design with the estimation laws derived in Lyapunov sense and application to robotic manipulator has proposed in order to design high performance nonlinear controller in the presence of uncertainties. Regarding to the positive points in sliding mode controller, fuzzy inference methodology and Lyapunov based method, the controllers output has improved. The main target in this research is analyses and design of the position MIMO artificial Lyapunov FPGA-based controller for robot manipulator in order to solve uncertainty, external disturbance, nonlinear equivalent part, chattering phenomenon, time to market and controller size using FPGA. Robot manipulators are nonlinear, time variant and a number of parameters are uncertain therefore design robust and stable controller based on Lyapunov based is discussed in this research. Studies about classical sliding mode controller (SMC) show that: although this controller has acceptable performance with known dynamic parameters such as stability and robustness but there are two important disadvantages as below: chattering phenomenon and mathematical nonlinear dynamic equivalent controller part. The first challenge; nonlinear dynamic part; is applied by inference estimator method in sliding mode controller in order to solve the nonlinear problems in classical sliding mode controller. And the second challenge; chattering phenomenon; is removed by linear method. Asymptotic stability of the closed loop system is also proved in the sense of Lyapunov. In the last part it can find the implementation of MIMO fuzzy estimator sliding mode controller on FPGA; FPGA-based fuzzy estimator sliding mode controller has many advantages such as high speed, low cost, short time to market and small device size. One of the most important drawbacks is limited capacity of available cells which this research focuses to solve this challenge. FPGA can be used to design a controller in a single chip Integrated Circuit (IC). In this research the SMC is designed using Very High Description Language (VHDL) for implementation on FPGA device (XA3S1600E-Spartan-3E), with minimum chattering.
There are three main categories of industrial robots based on path control: limited sequence robots, playback robots with point-to-point control, and playback robots with continuous path control. Limited sequence robots use limit switches to control joint positions and are best for pick and place operations. Playback robots can be taught paths and positions which are stored and repeated; point-to-point robots move between defined points while continuous path robots can precisely follow curved paths like those needed for arc welding. The stability and speed of a robot's movements are important and can be controlled through damping elements, with higher damping providing more stability at the cost of slower speeds.
Design a nonlinear controller for second order nonlinear uncertain dynamical systems (e.g., Internal Combustion Engine) is one of the most important challenging works. This paper focuses on the design of a robust backstepping adaptive feedback linearization controller (FLC) for internal combustion (IC) engine in presence of uncertainties. In order to provide high performance nonlinear methodology, feedback linearization controller is selected. Pure feedback linearization controller can be used to control of partly unknown nonlinear dynamic parameters of IC engine. In order to solve the uncertain nonlinear dynamic parameters, implement easily and avoid mathematical model base controller, Mamdani’s performance/error-based fuzzy logic methodology with two inputs and one output and 49 rules is applied to pure feedback linearization controller. The results demonstrate that the error-based fuzzy feedback linearization controller is a model-free controllers which works well in certain and partly uncertain system. Pure feedback linearization controller and error-based feedback linearization like controller with have difficulty in handling unstructured model uncertainties. To solve this problem applied backstepping-based tuning method to error-based fuzzy feedback linearization controller for adjusting the feedback linearization controller gain (K_p,K_v ). This controller has acceptable performance in presence of uncertainty (e.g., overshoot=1%, rise time=0.48 second, steady state error = 1.3e-9 and RMS error=1.8e-11).
This document discusses robot kinematics and robot programming. It covers forward and inverse kinematics of manipulators with two, three, and four degrees of freedom. It also discusses Jacobians, velocity, forces, manipulator dynamics, trajectory generation, and manipulator mechanism design. The document then covers robot programming languages like VAL and describes motion commands, sensor commands, and end effector commands used in simple programs. It defines kinematics and robot kinematics, and discusses the two kinematic tasks of direct and inverse kinematics. Finally, it explains the use of coordinate transformations between different frames when applying representations to 3D points.
Methods of robot programming
Leadthrough programming methods
A robot program as a path in space
Motion interpolation
WAIT, SIGNAL and DELAY commands
Branching
IRJET- Design and Fabrication of PLC and SCADA based Robotic Arm for Material...IRJET Journal
This document describes the design and fabrication of a PLC and SCADA-controlled robotic arm for material handling. The robotic arm uses pneumatic cylinders connected by joints to move along three axes (X, Y, and Z). A mechanical gripper is attached to the end of the arm to grip objects on a conveyor belt. The movements of the pneumatic cylinders and gripper are controlled by a PLC based on sensor inputs from the conveyor belt. The PLC and robotic arm are integrated with a SCADA system for centralized control and monitoring. The robotic arm is intended to automate repetitive picking and placing tasks to reduce labor costs compared to manual operations.
Design Novel Nonlinear Controller Applied to Robot Manipulator: Design New Fe...Waqas Tariq
This document describes a novel adaptive feedback linearization fuzzy controller for robot manipulators. It begins by discussing limitations of traditional feedback linearization controllers, such as sensitivity to parameter uncertainty. It then proposes designing a feedback linearization fuzzy controller to address this issue. The key steps are: 1) designing the fuzzy controller, including fuzzifying inputs/outputs and developing a rule base, 2) developing an adaptive feedback linearization fuzzy controller by adding an adaptive law to tune fuzzy rule parameters online and improve disturbance rejection. The goal is to develop a robust position controller for robot manipulators that maintains acceptable performance despite nonlinearities and uncertainty.
Adaptive MIMO Fuzzy Compensate Fuzzy Sliding Mode Algorithm: Applied to Secon...CSCJournals
This research is focused on proposed adaptive fuzzy sliding mode algorithms with the adaptation laws derived in the Lyapunov sense. The stability of the closed-loop system is proved mathematically based on the Lyapunov method. Adaptive MIMO fuzzy compensate fuzzy sliding mode method design a MIMO fuzzy system to compensate for the model uncertainties of the system, and chattering also solved by linear saturation method. Since there is no tuning method to adjust the premise part of fuzzy rules so we presented a scheme to online tune consequence part of fuzzy rules. Classical sliding mode control is robust to control model uncertainties and external disturbances. A sliding mode method with a switching control low guarantees the stability of the certain and/or uncertain system, but the addition of the switching control low introduces chattering into the system. One way to reduce or eliminate chattering is to insert a boundary layer method inside of a boundary layer around the sliding surface. Classical sliding mode control method has difficulty in handling unstructured model uncertainties. One can overcome this problem by combining a sliding mode controller and artificial intelligence (e.g. fuzzy logic). To approximate a time-varying nonlinear dynamic system, a fuzzy system requires a large amount of fuzzy rule base. This large number of fuzzy rules will cause a high computation load. The addition of an adaptive law to a fuzzy sliding mode controller to online tune the parameters of the fuzzy rules in use will ensure a moderate computational load. The adaptive laws in this algorithm are designed based on the Lyapunov stability theorem. Asymptotic stability of the closed loop system is also proved in the sense of Lyapunov.
EE323 Mini-Project - Line tracing robotPraneel Chand
This document outlines a mini-project assignment to design a controller for a LEGO robotic guided vehicle. Students are asked to: 1) Develop a mathematical model of the vehicle; 2) Design a digital controller using control theory; 3) Implement the controller on the LEGO NXT brick using RobotC software. The controller must meet performance requirements for guiding the vehicle in a straight line and along curved paths. Students will submit a report and presentation on their work.
Vibrant Technologies is headquarted in Mumbai,India.We are the best Robotics training provider in Navi Mumbai who provides Live Projects to students.We provide Corporate Training also.We are Best Robotics classes in Mumbai according to our students and corporators
Industrial robots have a variety of specifications that must be considered when selecting a robot for a particular application. These include the robot's axes of movement, range of motion, speed, payload, accuracy, and repeatability. The document provides details on common axis specifications, including the number of axes, range of movement, speed, and accuracy measurements. It also lists other important robot specifications like weight, power requirements, and work envelope. Selection of a suitable robot involves using multi-criteria decision making to evaluate robots based on their specifications and the weights of different criteria for the target application. Future trends suggest robots will become more lightweight, compact, and integrated with sensors and vision systems to enable safer human-robot collaboration.
Definition and origin of robotics – different types of robotics – various generations of robots – degrees of freedom – Asimov's laws of robotics – dynamic stabilization of robots.
International Journal of Engineering Research and Applications (IJERA) is an open access online peer reviewed international journal that publishes research and review articles in the fields of Computer Science, Neural Networks, Electrical Engineering, Software Engineering, Information Technology, Mechanical Engineering, Chemical Engineering, Plastic Engineering, Food Technology, Textile Engineering, Nano Technology & science, Power Electronics, Electronics & Communication Engineering, Computational mathematics, Image processing, Civil Engineering, Structural Engineering, Environmental Engineering, VLSI Testing & Low Power VLSI Design etc.
1. The document introduces various types of industrial robots including Cartesian, cylindrical, spherical, and articulated robots. It describes their different configurations and work envelopes.
2. Robot components like manipulators, end effectors, actuators, sensors, and controllers are defined. Reference frames and work envelopes are also explained.
3. Robot programming methods including teach pendants, lead-through programming, and programming languages are outlined. Different control methods like point-to-point and continuous path control are also introduced.
Design of a controller for wheeled mobile robots based on automatic movement ...TELKOMNIKA JOURNAL
This document describes a controller for wheeled mobile robots that generates adaptive movement sequences based on an optimization algorithm. The controller codes movements using the ROS language from motion sets built by a genetic algorithm in a simulation environment. It uses a modified genetic algorithm with increased crossing operators and threshold-based selection of crossing and mutation to evolve robot movement parameter sets. The goal is to develop a controller that allows a robot to adaptively move between points in its environment based on sensory information without being limited to pre-defined or reactive movements.
A robot is a mechanical device guided by a computer program capable of performing industrial tasks. Robots usually have a body, arm, and wrist and can use different coordinate systems like polar, cylindrical, or Cartesian. They are classified by their configuration, workspace shape, power source, and technology level. Robots vary in size and are specified by their pitch, yaw, roll, joint notation, speed, and payload.
The document outlines the key components of industrial robots including manipulator components, end effectors, control systems, applications, and programming languages. It describes how manipulators consist of joints and links that provide various degrees of freedom and discusses common joint types. The document also examines different robot configurations, control system types from limited sequence to intelligent control, applications in material handling and processing, and programming methods like teach pendant and offline programming.
Unit IV Solved Question Bank- Robotics EngineeringSanjay Singh
This Question Bank for Robotics Engineering is only for academic purpose and not for any commercial use. Students of Anna University and other Universities can use it for reference and knowledge.
1. The first level of the quad-rotor platform is the power board, which directs power from the battery to the four motors and provides regulated voltages.
2. The second level is the controller board, which contains an AT32UC3C0512C microcontroller to control the attitude, altitude, and robotic arm of the quad-rotor using PID controllers.
3. The document discusses the design of the power board and controller board using DipTrace software and their functions in power distribution and stabilization of the quad-rotor.
Advanced plc programming & scada system designlakshanwalpita
The document provides an overview of programmable logic controllers (PLCs) and SCADA systems. It discusses the history and evolution of PLCs from relay-based control systems to modern PLCs that can be programmed using software on PCs. A PLC works by continuously scanning its program in a loop, checking input statuses, executing the user program, and updating outputs. The document also covers common PLC components, programming methods, and input/output connection types.
Evolutionary Design of Mathematical tunable FPGA Based MIMO Fuzzy Estimator S...Waqas Tariq
In this research, a Multi Input Multi Output (MIMO) position Field Programmable Gate Array (FPGA)-based fuzzy estimator sliding mode control (SMC) design with the estimation laws derived in Lyapunov sense and application to robotic manipulator has proposed in order to design high performance nonlinear controller in the presence of uncertainties. Regarding to the positive points in sliding mode controller, fuzzy inference methodology and Lyapunov based method, the controllers output has improved. The main target in this research is analyses and design of the position MIMO artificial Lyapunov FPGA-based controller for robot manipulator in order to solve uncertainty, external disturbance, nonlinear equivalent part, chattering phenomenon, time to market and controller size using FPGA. Robot manipulators are nonlinear, time variant and a number of parameters are uncertain therefore design robust and stable controller based on Lyapunov based is discussed in this research. Studies about classical sliding mode controller (SMC) show that: although this controller has acceptable performance with known dynamic parameters such as stability and robustness but there are two important disadvantages as below: chattering phenomenon and mathematical nonlinear dynamic equivalent controller part. The first challenge; nonlinear dynamic part; is applied by inference estimator method in sliding mode controller in order to solve the nonlinear problems in classical sliding mode controller. And the second challenge; chattering phenomenon; is removed by linear method. Asymptotic stability of the closed loop system is also proved in the sense of Lyapunov. In the last part it can find the implementation of MIMO fuzzy estimator sliding mode controller on FPGA; FPGA-based fuzzy estimator sliding mode controller has many advantages such as high speed, low cost, short time to market and small device size. One of the most important drawbacks is limited capacity of available cells which this research focuses to solve this challenge. FPGA can be used to design a controller in a single chip Integrated Circuit (IC). In this research the SMC is designed using Very High Description Language (VHDL) for implementation on FPGA device (XA3S1600E-Spartan-3E), with minimum chattering.
There are three main categories of industrial robots based on path control: limited sequence robots, playback robots with point-to-point control, and playback robots with continuous path control. Limited sequence robots use limit switches to control joint positions and are best for pick and place operations. Playback robots can be taught paths and positions which are stored and repeated; point-to-point robots move between defined points while continuous path robots can precisely follow curved paths like those needed for arc welding. The stability and speed of a robot's movements are important and can be controlled through damping elements, with higher damping providing more stability at the cost of slower speeds.
Design a nonlinear controller for second order nonlinear uncertain dynamical systems (e.g., Internal Combustion Engine) is one of the most important challenging works. This paper focuses on the design of a robust backstepping adaptive feedback linearization controller (FLC) for internal combustion (IC) engine in presence of uncertainties. In order to provide high performance nonlinear methodology, feedback linearization controller is selected. Pure feedback linearization controller can be used to control of partly unknown nonlinear dynamic parameters of IC engine. In order to solve the uncertain nonlinear dynamic parameters, implement easily and avoid mathematical model base controller, Mamdani’s performance/error-based fuzzy logic methodology with two inputs and one output and 49 rules is applied to pure feedback linearization controller. The results demonstrate that the error-based fuzzy feedback linearization controller is a model-free controllers which works well in certain and partly uncertain system. Pure feedback linearization controller and error-based feedback linearization like controller with have difficulty in handling unstructured model uncertainties. To solve this problem applied backstepping-based tuning method to error-based fuzzy feedback linearization controller for adjusting the feedback linearization controller gain (K_p,K_v ). This controller has acceptable performance in presence of uncertainty (e.g., overshoot=1%, rise time=0.48 second, steady state error = 1.3e-9 and RMS error=1.8e-11).
This document discusses robot kinematics and robot programming. It covers forward and inverse kinematics of manipulators with two, three, and four degrees of freedom. It also discusses Jacobians, velocity, forces, manipulator dynamics, trajectory generation, and manipulator mechanism design. The document then covers robot programming languages like VAL and describes motion commands, sensor commands, and end effector commands used in simple programs. It defines kinematics and robot kinematics, and discusses the two kinematic tasks of direct and inverse kinematics. Finally, it explains the use of coordinate transformations between different frames when applying representations to 3D points.
Methods of robot programming
Leadthrough programming methods
A robot program as a path in space
Motion interpolation
WAIT, SIGNAL and DELAY commands
Branching
IRJET- Design and Fabrication of PLC and SCADA based Robotic Arm for Material...IRJET Journal
This document describes the design and fabrication of a PLC and SCADA-controlled robotic arm for material handling. The robotic arm uses pneumatic cylinders connected by joints to move along three axes (X, Y, and Z). A mechanical gripper is attached to the end of the arm to grip objects on a conveyor belt. The movements of the pneumatic cylinders and gripper are controlled by a PLC based on sensor inputs from the conveyor belt. The PLC and robotic arm are integrated with a SCADA system for centralized control and monitoring. The robotic arm is intended to automate repetitive picking and placing tasks to reduce labor costs compared to manual operations.
Design Novel Nonlinear Controller Applied to Robot Manipulator: Design New Fe...Waqas Tariq
This document describes a novel adaptive feedback linearization fuzzy controller for robot manipulators. It begins by discussing limitations of traditional feedback linearization controllers, such as sensitivity to parameter uncertainty. It then proposes designing a feedback linearization fuzzy controller to address this issue. The key steps are: 1) designing the fuzzy controller, including fuzzifying inputs/outputs and developing a rule base, 2) developing an adaptive feedback linearization fuzzy controller by adding an adaptive law to tune fuzzy rule parameters online and improve disturbance rejection. The goal is to develop a robust position controller for robot manipulators that maintains acceptable performance despite nonlinearities and uncertainty.
Adaptive MIMO Fuzzy Compensate Fuzzy Sliding Mode Algorithm: Applied to Secon...CSCJournals
This research is focused on proposed adaptive fuzzy sliding mode algorithms with the adaptation laws derived in the Lyapunov sense. The stability of the closed-loop system is proved mathematically based on the Lyapunov method. Adaptive MIMO fuzzy compensate fuzzy sliding mode method design a MIMO fuzzy system to compensate for the model uncertainties of the system, and chattering also solved by linear saturation method. Since there is no tuning method to adjust the premise part of fuzzy rules so we presented a scheme to online tune consequence part of fuzzy rules. Classical sliding mode control is robust to control model uncertainties and external disturbances. A sliding mode method with a switching control low guarantees the stability of the certain and/or uncertain system, but the addition of the switching control low introduces chattering into the system. One way to reduce or eliminate chattering is to insert a boundary layer method inside of a boundary layer around the sliding surface. Classical sliding mode control method has difficulty in handling unstructured model uncertainties. One can overcome this problem by combining a sliding mode controller and artificial intelligence (e.g. fuzzy logic). To approximate a time-varying nonlinear dynamic system, a fuzzy system requires a large amount of fuzzy rule base. This large number of fuzzy rules will cause a high computation load. The addition of an adaptive law to a fuzzy sliding mode controller to online tune the parameters of the fuzzy rules in use will ensure a moderate computational load. The adaptive laws in this algorithm are designed based on the Lyapunov stability theorem. Asymptotic stability of the closed loop system is also proved in the sense of Lyapunov.
EE323 Mini-Project - Line tracing robotPraneel Chand
This document outlines a mini-project assignment to design a controller for a LEGO robotic guided vehicle. Students are asked to: 1) Develop a mathematical model of the vehicle; 2) Design a digital controller using control theory; 3) Implement the controller on the LEGO NXT brick using RobotC software. The controller must meet performance requirements for guiding the vehicle in a straight line and along curved paths. Students will submit a report and presentation on their work.
Vibrant Technologies is headquarted in Mumbai,India.We are the best Robotics training provider in Navi Mumbai who provides Live Projects to students.We provide Corporate Training also.We are Best Robotics classes in Mumbai according to our students and corporators
Industrial robots have a variety of specifications that must be considered when selecting a robot for a particular application. These include the robot's axes of movement, range of motion, speed, payload, accuracy, and repeatability. The document provides details on common axis specifications, including the number of axes, range of movement, speed, and accuracy measurements. It also lists other important robot specifications like weight, power requirements, and work envelope. Selection of a suitable robot involves using multi-criteria decision making to evaluate robots based on their specifications and the weights of different criteria for the target application. Future trends suggest robots will become more lightweight, compact, and integrated with sensors and vision systems to enable safer human-robot collaboration.
Definition and origin of robotics – different types of robotics – various generations of robots – degrees of freedom – Asimov's laws of robotics – dynamic stabilization of robots.
International Journal of Engineering Research and Applications (IJERA) is an open access online peer reviewed international journal that publishes research and review articles in the fields of Computer Science, Neural Networks, Electrical Engineering, Software Engineering, Information Technology, Mechanical Engineering, Chemical Engineering, Plastic Engineering, Food Technology, Textile Engineering, Nano Technology & science, Power Electronics, Electronics & Communication Engineering, Computational mathematics, Image processing, Civil Engineering, Structural Engineering, Environmental Engineering, VLSI Testing & Low Power VLSI Design etc.
1. The document introduces various types of industrial robots including Cartesian, cylindrical, spherical, and articulated robots. It describes their different configurations and work envelopes.
2. Robot components like manipulators, end effectors, actuators, sensors, and controllers are defined. Reference frames and work envelopes are also explained.
3. Robot programming methods including teach pendants, lead-through programming, and programming languages are outlined. Different control methods like point-to-point and continuous path control are also introduced.
Design of a controller for wheeled mobile robots based on automatic movement ...TELKOMNIKA JOURNAL
This document describes a controller for wheeled mobile robots that generates adaptive movement sequences based on an optimization algorithm. The controller codes movements using the ROS language from motion sets built by a genetic algorithm in a simulation environment. It uses a modified genetic algorithm with increased crossing operators and threshold-based selection of crossing and mutation to evolve robot movement parameter sets. The goal is to develop a controller that allows a robot to adaptively move between points in its environment based on sensory information without being limited to pre-defined or reactive movements.
A robot is a mechanical device guided by a computer program capable of performing industrial tasks. Robots usually have a body, arm, and wrist and can use different coordinate systems like polar, cylindrical, or Cartesian. They are classified by their configuration, workspace shape, power source, and technology level. Robots vary in size and are specified by their pitch, yaw, roll, joint notation, speed, and payload.
The document outlines the key components of industrial robots including manipulator components, end effectors, control systems, applications, and programming languages. It describes how manipulators consist of joints and links that provide various degrees of freedom and discusses common joint types. The document also examines different robot configurations, control system types from limited sequence to intelligent control, applications in material handling and processing, and programming methods like teach pendant and offline programming.
Unit IV Solved Question Bank- Robotics EngineeringSanjay Singh
This Question Bank for Robotics Engineering is only for academic purpose and not for any commercial use. Students of Anna University and other Universities can use it for reference and knowledge.
1. The first level of the quad-rotor platform is the power board, which directs power from the battery to the four motors and provides regulated voltages.
2. The second level is the controller board, which contains an AT32UC3C0512C microcontroller to control the attitude, altitude, and robotic arm of the quad-rotor using PID controllers.
3. The document discusses the design of the power board and controller board using DipTrace software and their functions in power distribution and stabilization of the quad-rotor.
Advanced plc programming & scada system designlakshanwalpita
The document provides an overview of programmable logic controllers (PLCs) and SCADA systems. It discusses the history and evolution of PLCs from relay-based control systems to modern PLCs that can be programmed using software on PCs. A PLC works by continuously scanning its program in a loop, checking input statuses, executing the user program, and updating outputs. The document also covers common PLC components, programming methods, and input/output connection types.
This document provides an overview of programmable logic controllers (PLCs). It discusses that a PLC is an electrical device that functions like a computer to control machines by taking sensor inputs, executing a stored program, and generating outputs. The document then lists some common PLC programming languages and applications in manufacturing. It concludes that PLCs provide advantages like reliability, speed, size, and cost benefits over other control systems, while also noting some disadvantages like more wiring work required.
This document provides an introduction to Programmable Logic Controllers (PLCs). It discusses the history and evolution of control systems from humans to relays to PLCs. The key components of a PLC including the input/output modules, central processing unit, memory, and programming terminal are described. Programming methods for PLCs such as ladder logic, Boolean expressions, and mnemonics are also introduced. Examples of using timers, counters, and internal relays in PLC programs are provided.
This document provides an overview of an embedded systems course that focuses on the LPC 2148 ARM processor. The objectives are to study the architecture and design aspects of the LPC 2148, including I/O and memory interfacing. The outcomes include designing and implementing programs on the LPC 2148 as well as studying communication interfaces and scheduling algorithms. The course is divided into 5 modules that cover the ARM instruction set, LPC 2148 architecture, peripherals, operating system overview, and the μC/OS-II real-time kernel. Learning resources include textbooks on embedded systems, ARM architecture, and real-time concepts.
This document provides an overview of programmable logic controllers (PLCs) and supervisory control and data acquisition (SCADA) systems. It discusses the history and evolution of automation and PLCs, describes common PLC components and programming, and reviews the MicroLogix 1000 PLC and RSLogix5000 programming software. Key features of SCADA systems are also summarized, including dynamic graphics, alarms, recipe management, security, connectivity, databases, and scripting. The document is submitted by Nitish Kumar Singh for review by KL Pursnani and covers automation, PLCs, ladder logic, MicroLogix1000, and SCADA systems at a high level.
This document discusses Programmable Logic Controllers (PLCs). It provides a brief history of PLCs, describing how they were introduced in the 1960s as replacements for relay logic and have since evolved with the integration of microprocessors. The key components of a PLC like the power supply, processor, I/O modules, and programming device are defined. Common PLC programming languages including ladder logic are explained and examples are provided. Advantages like reliability and flexibility and disadvantages such as proprietary aspects are reviewed. Finally, common industrial applications and leading PLC brands are listed.
CodeWarrior, Linux; OrCad and Hyperlynx; QMS Toolsdjerrybellott
This document describes the configuration of a Freescale 8313RDB board with a PowerQuicII 8313 processor running Linux. It includes the configuration file contents which set memory window addresses and DDR controller registers to interface external memory. It also describes using U-Boot to load Linux and the Codewarrior IDE to compile and download programs to the board.
The document discusses programmable logic controllers (PLCs) and their components and applications. It defines a PLC as a solid-state industrial controller that performs logic functions to control machines and processes. The key components of a PLC include input/output modules that interface with field devices, a processor with memory and programming capabilities, and a power supply. PLCs can be unitary or modular in design. They are widely used in industrial automation to control functions like conveyor systems. The document outlines the history, advantages, and types of PLCs as well as their programming and applications in industrial processes.
This document provides an overview of programmable logic controllers (PLCs). It discusses what a PLC is, the history and major components of PLCs, programming methods like ladder logic, and examples of how PLCs can be used to start and stop motors. The document also outlines some key advantages of PLCs, such as reliability, flexibility, cost effectiveness, and ease of maintenance, as well as potential disadvantages. Finally, it discusses common applications of PLCs in various industrial automation settings like manufacturing, materials handling, and machine tools.
The document provides an overview of programmable logic controllers (PLCs), including their history, components, programming languages, communication protocols, and applications. It discusses how PLCs have evolved from replacing relay-based control systems to being integrated into industrial automation and IT networks. The document also covers related topics like SCADA systems, distributed control, soft PLCs, and industrial communication protocols.
PLC and Industrial Automation - Technology OverviewNereus Fernandes
The document provides an overview of programmable logic controllers (PLCs) and industrial automation. It discusses PLC types, programming languages, protocols, connectivity to SCADA/HMI systems, and emerging technologies. The document also outlines an agenda covering topics like PLC selection, programming guidelines, industrial automation hierarchies, and the integration of PLCs with technologies like IoT, cloud computing, and augmented reality.
MCF51AG ColdFire MCUs for Large Appliance And Industrial ApplicationsPremier Farnell
The document introduces the ColdFire MCF51AG microcontrollers and their key features for large appliance and industrial applications. The MCF51AG128/AG96 MCUs offer optimal performance for demanding applications through features like a 50MHz CPU, DMA, integrated peripherals, safety functions, and software/development tools support. They are well-suited for applications like motor control, appliance systems control, and industrial device control.
The document discusses the history and evolution of programmable logic controllers (PLCs). It notes that early control systems used electromechanical relays, which were inflexible and difficult to modify. In 1968, General Motors specified the design of a new programmable controller to replace relay-based systems. This led to the development of the first PLC by Modicon in 1969. PLCs offered advantages like flexibility, ease of programming and modification, and lower power requirements compared to relay systems. The document then covers basic PLC components, memory types, input and output modules, and specifications.
Programmable logic controllers (PLCs) continuously monitor input devices and use a custom program to control output devices. PLCs offer easier modification and maintenance than traditional controls. They can withstand harsh environments. There are three main types of PLC construction: compact PLCs, modular PLCs, and PLC plug-in cards. PLC hardware design centers around a processor that includes a CPU, memory, I/O units, and buses to connect them. The CPU controls operations while memory stores programs and device states. Input units connect to sensors and switches while output units control actuators like motors and valves.
www.jwjobs.net
1. An embedded system is a dedicated computer system that performs specific tasks and is embedded as part of a complete device including hardware and software.
2. Main components of an embedded system include a microprocessor or microcontroller, memory, and input/output components. Common microprocessors include general purpose microprocessors, microcontrollers, digital signal processors, and application-specific integrated circuits.
3. Embedded software is programmed on read-only memory (ROM) or flash memory and provides the core functionality of the embedded system. Real-time operating systems also help manage tasks and system resources.
OPAL-RT RT13 Conference: Rapid control prototyping solutions for power electr...OPAL-RT TECHNOLOGIES
This document describes rapid control prototyping (RCP) solutions from OPAL-RT for power electronics, electric drives, and power systems. RCP allows users to build real-time experimental setups to test and validate control designs without extensive coding. The OPAL-RT solution features high-speed I/O, flexible connectivity options, and real-time simulation tools to efficiently develop and test control algorithms. Example applications discussed include electric motor drives, modular multilevel converters, and multi-terminal HVDC systems.
A Power Point presentation On INDUSTRIAL AUTOMATION...
What is Automation?
As the name suggests ‘Automation’ means to perform automatic operations by means of different kinds of machines.
Automation is the use of control systems and information technologies to reduce the need for human work in the production of goods and services.
It is used to reduce human interference and efforts
Advantages Of PLC:-
Less Wiring.
Wiring between devices and relay contacts are done in the PLC program.
Easier and faster to make changes.
Trouble shooting aids make programming easier and reduce downtime.
Reliable components make these likely to operate for years before failure.
Feasible Interfacing and Programming of Industrial Control Technology Unit wi...theijes
This document discusses the interfacing and programming of an industrial control technology unit with PLCs and robots. It begins with an abstract that describes how the unit assembles components using sensors, actuators, and a PLC for control. A PLC program is presented to control the unit and interface it with a 6-axis robot for workpiece transfer using a pneumatic gripper. The document then reviews literature on using PLCs compared to microprocessors for industrial control. It presents the project requirements, software used, and PLC and robot programming methods. The conclusion discusses the benefits of PLCs for industrial control and their interfacing with robots.
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...Alex Pruden
Folding is a recent technique for building efficient recursive SNARKs. Several elegant folding protocols have been proposed, such as Nova, Supernova, Hypernova, Protostar, and others. However, all of them rely on an additively homomorphic commitment scheme based on discrete log, and are therefore not post-quantum secure. In this work we present LatticeFold, the first lattice-based folding protocol based on the Module SIS problem. This folding protocol naturally leads to an efficient recursive lattice-based SNARK and an efficient PCD scheme. LatticeFold supports folding low-degree relations, such as R1CS, as well as high-degree relations, such as CCS. The key challenge is to construct a secure folding protocol that works with the Ajtai commitment scheme. The difficulty, is ensuring that extracted witnesses are low norm through many rounds of folding. We present a novel technique using the sumcheck protocol to ensure that extracted witnesses are always low norm no matter how many rounds of folding are used. Our evaluation of the final proof system suggests that it is as performant as Hypernova, while providing post-quantum security.
Paper Link: https://eprint.iacr.org/2024/257
GraphRAG for Life Science to increase LLM accuracyTomaz Bratanic
GraphRAG for life science domain, where you retriever information from biomedical knowledge graphs using LLMs to increase the accuracy and performance of generated answers
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slackshyamraj55
Discover the seamless integration of RPA (Robotic Process Automation), COMPOSER, and APM with AWS IDP enhanced with Slack notifications. Explore how these technologies converge to streamline workflows, optimize performance, and ensure secure access, all while leveraging the power of AWS IDP and real-time communication via Slack notifications.
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc
How does your privacy program stack up against your peers? What challenges are privacy teams tackling and prioritizing in 2024?
In the fifth annual Global Privacy Benchmarks Survey, we asked over 1,800 global privacy professionals and business executives to share their perspectives on the current state of privacy inside and outside of their organizations. This year’s report focused on emerging areas of importance for privacy and compliance professionals, including considerations and implications of Artificial Intelligence (AI) technologies, building brand trust, and different approaches for achieving higher privacy competence scores.
See how organizational priorities and strategic approaches to data security and privacy are evolving around the globe.
This webinar will review:
- The top 10 privacy insights from the fifth annual Global Privacy Benchmarks Survey
- The top challenges for privacy leaders, practitioners, and organizations in 2024
- Key themes to consider in developing and maintaining your privacy program
Have you ever been confused by the myriad of choices offered by AWS for hosting a website or an API?
Lambda, Elastic Beanstalk, Lightsail, Amplify, S3 (and more!) can each host websites + APIs. But which one should we choose?
Which one is cheapest? Which one is fastest? Which one will scale to meet our needs?
Join me in this session as we dive into each AWS hosting service to determine which one is best for your scenario and explain why!
Digital Banking in the Cloud: How Citizens Bank Unlocked Their MainframePrecisely
Inconsistent user experience and siloed data, high costs, and changing customer expectations – Citizens Bank was experiencing these challenges while it was attempting to deliver a superior digital banking experience for its clients. Its core banking applications run on the mainframe and Citizens was using legacy utilities to get the critical mainframe data to feed customer-facing channels, like call centers, web, and mobile. Ultimately, this led to higher operating costs (MIPS), delayed response times, and longer time to market.
Ever-changing customer expectations demand more modern digital experiences, and the bank needed to find a solution that could provide real-time data to its customer channels with low latency and operating costs. Join this session to learn how Citizens is leveraging Precisely to replicate mainframe data to its customer channels and deliver on their “modern digital bank” experiences.
Monitoring and Managing Anomaly Detection on OpenShift.pdfTosin Akinosho
Monitoring and Managing Anomaly Detection on OpenShift
Overview
Dive into the world of anomaly detection on edge devices with our comprehensive hands-on tutorial. This SlideShare presentation will guide you through the entire process, from data collection and model training to edge deployment and real-time monitoring. Perfect for those looking to implement robust anomaly detection systems on resource-constrained IoT/edge devices.
Key Topics Covered
1. Introduction to Anomaly Detection
- Understand the fundamentals of anomaly detection and its importance in identifying unusual behavior or failures in systems.
2. Understanding Edge (IoT)
- Learn about edge computing and IoT, and how they enable real-time data processing and decision-making at the source.
3. What is ArgoCD?
- Discover ArgoCD, a declarative, GitOps continuous delivery tool for Kubernetes, and its role in deploying applications on edge devices.
4. Deployment Using ArgoCD for Edge Devices
- Step-by-step guide on deploying anomaly detection models on edge devices using ArgoCD.
5. Introduction to Apache Kafka and S3
- Explore Apache Kafka for real-time data streaming and Amazon S3 for scalable storage solutions.
6. Viewing Kafka Messages in the Data Lake
- Learn how to view and analyze Kafka messages stored in a data lake for better insights.
7. What is Prometheus?
- Get to know Prometheus, an open-source monitoring and alerting toolkit, and its application in monitoring edge devices.
8. Monitoring Application Metrics with Prometheus
- Detailed instructions on setting up Prometheus to monitor the performance and health of your anomaly detection system.
9. What is Camel K?
- Introduction to Camel K, a lightweight integration framework built on Apache Camel, designed for Kubernetes.
10. Configuring Camel K Integrations for Data Pipelines
- Learn how to configure Camel K for seamless data pipeline integrations in your anomaly detection workflow.
11. What is a Jupyter Notebook?
- Overview of Jupyter Notebooks, an open-source web application for creating and sharing documents with live code, equations, visualizations, and narrative text.
12. Jupyter Notebooks with Code Examples
- Hands-on examples and code snippets in Jupyter Notebooks to help you implement and test anomaly detection models.
Trusted Execution Environment for Decentralized Process MiningLucaBarbaro3
Presentation of the paper "Trusted Execution Environment for Decentralized Process Mining" given during the CAiSE 2024 Conference in Cyprus on June 7, 2024.
Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...Jeffrey Haguewood
Sidekick Solutions uses Bonterra Impact Management (fka Social Solutions Apricot) and automation solutions to integrate data for business workflows.
We believe integration and automation are essential to user experience and the promise of efficient work through technology. Automation is the critical ingredient to realizing that full vision. We develop integration products and services for Bonterra Case Management software to support the deployment of automations for a variety of use cases.
This video focuses on integration of Salesforce with Bonterra Impact Management.
Interested in deploying an integration with Salesforce for Bonterra Impact Management? Contact us at sales@sidekicksolutionsllc.com to discuss next steps.
Main news related to the CCS TSI 2023 (2023/1695)Jakub Marek
An English 🇬🇧 translation of a presentation to the speech I gave about the main changes brought by CCS TSI 2023 at the biggest Czech conference on Communications and signalling systems on Railways, which was held in Clarion Hotel Olomouc from 7th to 9th November 2023 (konferenceszt.cz). Attended by around 500 participants and 200 on-line followers.
The original Czech 🇨🇿 version of the presentation can be found here: https://www.slideshare.net/slideshow/hlavni-novinky-souvisejici-s-ccs-tsi-2023-2023-1695/269688092 .
The videorecording (in Czech) from the presentation is available here: https://youtu.be/WzjJWm4IyPk?si=SImb06tuXGb30BEH .
Freshworks Rethinks NoSQL for Rapid Scaling & Cost-EfficiencyScyllaDB
Freshworks creates AI-boosted business software that helps employees work more efficiently and effectively. Managing data across multiple RDBMS and NoSQL databases was already a challenge at their current scale. To prepare for 10X growth, they knew it was time to rethink their database strategy. Learn how they architected a solution that would simplify scaling while keeping costs under control.
Skybuffer AI: Advanced Conversational and Generative AI Solution on SAP Busin...Tatiana Kojar
Skybuffer AI, built on the robust SAP Business Technology Platform (SAP BTP), is the latest and most advanced version of our AI development, reaffirming our commitment to delivering top-tier AI solutions. Skybuffer AI harnesses all the innovative capabilities of the SAP BTP in the AI domain, from Conversational AI to cutting-edge Generative AI and Retrieval-Augmented Generation (RAG). It also helps SAP customers safeguard their investments into SAP Conversational AI and ensure a seamless, one-click transition to SAP Business AI.
With Skybuffer AI, various AI models can be integrated into a single communication channel such as Microsoft Teams. This integration empowers business users with insights drawn from SAP backend systems, enterprise documents, and the expansive knowledge of Generative AI. And the best part of it is that it is all managed through our intuitive no-code Action Server interface, requiring no extensive coding knowledge and making the advanced AI accessible to more users.
Skybuffer SAM4U tool for SAP license adoptionTatiana Kojar
Manage and optimize your license adoption and consumption with SAM4U, an SAP free customer software asset management tool.
SAM4U, an SAP complimentary software asset management tool for customers, delivers a detailed and well-structured overview of license inventory and usage with a user-friendly interface. We offer a hosted, cost-effective, and performance-optimized SAM4U setup in the Skybuffer Cloud environment. You retain ownership of the system and data, while we manage the ABAP 7.58 infrastructure, ensuring fixed Total Cost of Ownership (TCO) and exceptional services through the SAP Fiori interface.
Introduction of Cybersecurity with OSS at Code Europe 2024Hiroshi SHIBATA
I develop the Ruby programming language, RubyGems, and Bundler, which are package managers for Ruby. Today, I will introduce how to enhance the security of your application using open-source software (OSS) examples from Ruby and RubyGems.
The first topic is CVE (Common Vulnerabilities and Exposures). I have published CVEs many times. But what exactly is a CVE? I'll provide a basic understanding of CVEs and explain how to detect and handle vulnerabilities in OSS.
Next, let's discuss package managers. Package managers play a critical role in the OSS ecosystem. I'll explain how to manage library dependencies in your application.
I'll share insights into how the Ruby and RubyGems core team works to keep our ecosystem safe. By the end of this talk, you'll have a better understanding of how to safeguard your code.
2. Contents
I. Controlling PUMA Robot Arms with VAL,
RCCL, Kali, or ALVIN, 1989.
II. RCCL Variants and RCCL Porting Guide,
1999.
III. Porting and Running the RCCL on a Realtime Linux/PC, 2005.
2
6. PUMA
(Programmable, Universal Machines for Assembly)
• Vendor:
Unimation,Inc.
• Arm Types:
260 Series,
550 Series, 560 Series, 552 Series, 562 Series
760 Series
• Controller Types:
Mark I, Mark II, Mark III, UNIVAL
• Robot Programming Language:
VAL, VAL II
6
26. PUMA MK III Controller Configuration
1. control card set
[1] LSI-11/73 CPU board
[2] 64 KW RAM board
[3] quad serial board
[4] parallel I/O board
[5] A interface card
[6] B interface card
[7] digital servo boards
[8] arm signal interface board
26
27. 2. power card set
[1] C interface board
[2] high power function board
[3] power amplifier boards - PWM type
27
28. Servo Code Block Diagram
Main
Timer
Interrupt
Initialization
Disable
Host Interrupt
Wait for
interrupt
Read
Encoder
Counter
Host
Interrupt
Deferred
Command ?
NO
YES
Enable
Host Interrupt
Save
command
in buffer
Execute
immediate
command
Return
Position/current
control
Deferred
Command
Execution
Return
28
33. UNIVAL Block Diagram
Unival Controller
Torque
Processor
Board
Servo
Control
Module
Arm Interface Board
Major Power
Amplifier
Expansion
Memory
(Optional)
Distribution
Board
CX Module
VDT
Disk Drive
Aux. Port
Smart I/O
Teach
Pendant
Minor Power
Amplifier
Signal Connection Board
Robot Arm
33
34. Typical Controller with Analog Torque Loop
Torque Loop / Amplifier
DAC
M
E
N AXES
Digital
Servo
and
Robot
Controller
N Axes
34
35. UNIVAL Torque Processor Loop
Software
Torque
Command
+
-
+
Kp
Ki
1-Z
Hardware
+
Linearlizer
PWM
Chip
Power
Amp
Motor
-1
+
+
A/D
Current
Offset
35
37. UNIVAL Servo System Block Diagram
Arm Interface Module
Servo
and
Robot
Control
Module
M
Torque
Processor
Module
A/D
3 Axes
PWM Chip
3 Axes
Power
AMP
3 Axes
PWM Chip
E
3 Axes
Power
AMP
MUX
Current Feedback
Encoder Feedback
37
38. PUMA Control with VAL
1.
The hardware does not provide sufficient
--- it is too slow for real-time control.
processing power
2. The system is not designed to communicate with external
computer in a flexible way. The I/O module is only able to
provide control signals and process elementary information
received from sensors.
3. Memory resources may not be sufficient for large programs.
4. Communication with other computers is limited to interactions
with VAL.
5. Inverse kinematics software is not available, hence, trajectories
cannot be defined off-line.
6. Control of the arm is performed at the joint level, providing only
joint position regulation.
38
39. PUMA Control without VAL
Advantages :
1.
The ability to implement closed-loop control of the manipulator
in both task and joint configuration spaces.
2. The ability to use the more powerful processor for inverse
kinematics, for trajectory planning, and for control in real-time
3. The ability to test advanced mathematical models for dynamics
and real-time control
4. The ability to connect sensory devices through serial, parallel or
bus interface
5. The ability to create a new control language which includes
commands not available in VAL.
6. The ability to access to a database.
39
40. Alternative Hardware Configurations
1.
The PUMA's Arm Interface Board is disconnected from the DRV11 card and connected to the parallel interface card in the
external machine(only for MK I controllers).
2.
Both computers are connected through a standard DEC parallel
interface, which offers higher data rates than those of a serial
interface.
3.
A custom-built interface for bus-to-bus connection can be used.
This interface contains a FIFO (First In First Out) hardware
buffer.
4.
Serial interface through the DLV-11J serial card in the PUMA
controller is used.
40
43. Physical Implementation of RCCL
VAX Computer
VAX COMPUTER
RCCL
RCCL
PROGRAM
PROGRAM
SERIAL LINE FOR
LOADING I/O
CONTROL
PROGRAM
HIGH SPEED
PARALLEL LINK
LSI 11 CPU
TEACH
PENDANT
COMMUNICATION
I/O CONTROLLER
A/D
CONVERTER
6503
UNIMATION CONTROLLER
JOINT CONTROLLERS
TO ROBOT
43
44. RCCL Block Diagram (Purdue)
VAX 780
UNIBUS
Serial
Unimation Controller
CPU
LSI-11
CRT
RAM
Floppy
ROM
Teach
pend.
FIFO
Aux
DLV-11J
FIFO
Qbus
CLOCK
DRV-11
SERVO
INTERFACE
Digital
Servo
Analog
Servo
current
encoder
pulses
Power
AMP.
Arm Cable
PUMA 560 ARM
44
46. RCCL Block Diagram
Robot Arm
Current command
Motor state
Robot Controller
Servomotor Control
World Model
Torque-current mapping
Angles-encoders
mapping
Safety limits
Arm-dependent data
Set points
Positions
Trajectory
Arm Interface
Transformations
Equations
Generation
Updates
Cartesian
Joint Interpolation
Compliance
Queue
Arm state
Arm
Kinematics
Cartesian-joint
Jacobian
Arm
configuration
TG state Synchronization
Motion requests
User’s Process
46
47. Internal Control-level Execution Sequence
NORMAL TASK
AND PROCESS
EXECUTION
DRIVER
INTERRUPT
HANDLER
TAKES
CONTROL
SWITCH TO CONTROL
PROGRAM MEMORY
CONTEXT
EXECUTE CONTROL: CYCLE
read data from LSI 11
call RCI check routine
write commands to LSI 11
call control function
RESTORE
MEMORY
CONTEXT
INTERRUPT
HANDLER
RETURNS
NORMAL TASK
AND PROCESS
EXECUTION
47
48. Execution Cycle at the Control Level
CONTROL
LEVEL TASK
WAIT
FOR
NEXT
CYCLE
DATA
FROM
LSI 11
COMMANDS
TO
LSI 11
COMMAND
CHECKING
CONTROL
DIRECTIVE
INTERNAL
CHECKING
CONTROL
FUNCTION
OPEN
DIRECTIVE
IDLE
NORMAL
EXECUTION
RELEASE
DIRECTIVE
OR
ERROR CONDITION
CLOSE
DIRECTIVE
48
50. Position Equations
At point p1,
p1 = Z
T61 = Z-1
= R1
At point p2,
p1 = Z
T61 = Z-1
= R2
Let 2p1 = R2-1 R1
T61 E1
p1 E1-1
p1 T1
T62 E2
p2 E2-1
p2 T2
p1 E1 E2-1
From point p1 to point p2,
T6 = R2 2p1 Drive(s) T2
where Drive(0) = Identity
Drive(1) = 2p1-1 p2
Generally,
T6 = R P Drive Comply T
50
56. Kali
(A creature with many arms
in Hind mythology)
Characteristics:
1. Programming and control of multiple manipulators
operating in close cooperation.
2. Hybrid force/velocity task space with dynamic
compensation.
3. Selection of the largest amount of off-the-shelf
computing technology.
4. Open architecture design.
56
57. High Performance Computing System
Current trends:
1. Super or mini-super computers.
2. Workstations with special very high performance floating
point accelerations.
3. Special purpose chips such as DSPs (AT&T, TI., etc).
4. Many single board computers operating in parallel.
57
60. Kali Block Diagram
SUN 3
workstation
ethernet
link
ethernet
board
VSB
CPU 1
68020
CPU 2
68020
CPU 3
68020
VME
DAC
board
power
amplifier
CPU 4
68020
brake
release
PUMA
560
memory
board
BUS
parallel
I/O board
robot I/O
board
power
on/off
CPU 5
68020
encoder
pulses
force/torque
sensor
ROBOT ARM
60
61. Run-Time Structure
1. Synchronous processes
i. Trajectory generator
ii. Servo control
iii. I/O process
2. Asynchronous process
i. User process
ii.Dynamic computations
Processor Communication
1. Message passing
2. Shared memory
61
62. Real-time Computing
1. Software support
Host: Unix-based workstation
Target: real-time operating system (VxWorks)
Target-host communication - ethernet
2. Hardware support
Servo CPUs:
1 ms servo rate PID control algorithm
One CPU for three joints (CPU3 and CPU4)
Computational CPUs:
I. User program, trajectory generator, kinematics (CPU1)
ii. Dynamic computation (CPU2)
iii. Supervisor - all I/O information handling(CPU0)
62
67. Spatial Relationships
(Ring Structures)
B M T A D C = Identity
where
B : the Manipulator base transform
M : the manipulator transform
T : the tool transform
A : the accommodation transform
D : the drive transform
C : the goal position of the control frame
67
74. ALVIN Block Diagram(Stage I)
SUN 3
workstation
ethernet
link
ethernet
board
VSB
CPU 1
68030
CPU 2
68030
memory
board
VMEbus
VMEbus
adaptor
Unimation MK I
PUMA controller
Qbus
adaptor
PUMA
560
ROBOT ARM
74
75. ALVIN Block Diagram (Stage I)
VMEbus System
Engineering
Computer
Network
VSB
CPU 1
68030
CPU 0
68030
Ethernet
Controller
SharedMemory
VMEbus
Bus Adaptor
Unimation MK I Controller
Bus Adaptor
Qbus
DRV-11
SERVO
INTERFACE
CLOCK
Digital
Servo
Analog
Servo
Power
AMP.
Arm Cable
PUMA 560 ARM
75
76. ALVIN Block Diagram (Stage II)
Engineering Computer Network
SUN
workstation
Unimation
MK III
Controller
Qbus Adaptor
ADC
A-interface
VMEbus System
Ethernet Card
CPU 0 (68040)
CPU 1 (68040)
CPU 2 (68040)
CPU 3 (68030)
CPU 4 (68030)
Shared Memory
VMEbus Adaptor
VMEbus Adaptor
CRT
CRT
Unimation
MK I
Controller
Qbus Adaptor
ADC
DRV-11
Digital Servo
Paddle
Arm Cable
Arm Interface
Digital Servo
Clock / term.
Analog Servo
Paddle
Arm Cable
PUMA 562
Robot Arm
PUMA 560
Robot Arm
B-interface
76
80. ALVIN Block Diagram (Stage III)
SUN
workstation
VSB
CPU 1
68040
ethernet
board
CPU 2
68040
CPU 3
68040
VME
Vision
Board
CCD
Cameras
ADC
board
DAC
board
PUMA
560 & 562
CPU 5
68030
memory
board
BUS
robot I/O
board
power
amplifier
CPU 4
68030
parallel
I/O board
Unimation
MK I & III PUMA
Controllers
parallel
I/O board
force/torque
sensor
ROBOT ARMS
80
81. References
VME bus / VSB
Wayne Fischer, "IEEE P1014 - A Standard for the High-Performance VME Bus,"
IEEE Micro, Feb. 1985.
Paul L. Borrill, "MicroStandards Special Feature: A Comparison of 32-Bit Buses,"
IEEE Micro, Dec. 1985.
Walter S. Heath, "Software Design for Real-Time Multiprocessor VMEbus Systems,"
IEEE Micro, Dec. 1987.
Shlomo Pri-Tal, "MicroStandards - The VME subsystem bus (VSB),"
IEEE Micro, Apr. 1986.
Craig MacKenna and Rick Main, "Backup support gives VMEbus powerful multiprocessing
architecture," Electronics, Mar. 22, 1984.
VxWorks, VRTX
[vrtx 1] James F. Ready, "VRTX: A Real-Time Operating System for Embedded Microprocessor Applications,“
IEEE Micro, Aug. 1986.
[vrtx 2] J. Mattox, "A Multi-processor Approach to Using UNIX in a Real-Time Environment,“ WESCON '86
[vrtx 3] S. J. Doyle and P. Bunce, "Real-Time Multiprocessing Requirements,“ WESCON '86
[vxworks 1] Jerry Fiddler and Leslie Kirby, "How to use VMEbus and Ethernet to build real-time distributed systems,“
VMEbus Systems, Sep.-Oct. 1987.
[vxworks 2] Jerry Fiddler and David N. Wilner, "VxWorks/Unix Real-Time Network and Development System,“
Mini/MicroNortheast, 1986
[vxworks 3] Wind River Systems, VxWorks version 3.20, 1987.
81
82. PUMA/VAL
[puma 1] B. Fisher and V. Hayward, "Communication Routines Between the LSI 11-03 and the 6503's", Purdue University, (undated,
unpublished)
[puma 2] B. Fisher and V. Hayward, "Robot Controller,“ Purdue University, (undated, unpublished)
[puma 3] Unimation Inc., "Controlling the PUMA Series 500 Robot Arm Without using VAL",
(undated, unpublished, company confidential)
[puma 4] R. Vistnes, "Breaking Away From VAL, or How to use your PUMA without using VAL,“ Stanford University, (undated,
unpublished)
[puma 5] A. Melidy and A. A. Goldenberg, "Operation of PUMA 560 Without VAL,“ Robots 9, 1985
[puma 6] S.-Y. Lee, A Study on the Wrist Servo-Controller of PUMA-760 Robot, MS Thesis, Dept of ME, KAIST, Feb., 1986.
[puma 7] P. Nagy, "A New Approach to Operating a PUMA manipulator Without Using VAL,“ Robots 12 and Vision '88, 1988
[puma 8] P. Nagy, "The Puma 560 Industrial Robot: Inside-Out,“ Robots 12 and Vision '88, 1988
[puma 9] Unimation Inc., Unimate Puma Robot Volume I - Technical Manual 398H1, Oct. 1981
[puma 10] Unimation Inc., PUMA MARK III Robot 500 Series Models 552/562 Equipment Manual 398AH1, Jan. 1987
[puma 11] R. M. Stanley, Host Control of PUMA 6503-based Servos Communication Protocol and Arm Specific information, June 1986.
Unimation Inc., (company confidential)
[puma 12] P. I. Corke, The Unimation PUMA servo system, MTM-226, CSIRO, 1994
[val 1] Unimation Inc., User's Guide to VAL version 12, June 1980
[val 2] Unimation Inc., Programming Manual User's Guide to VAL II version 2.0,
Part 1 - Control from the System terminal
Part 2 - Communication with a Supervisory System
Part 3 - Real-Time Path Control
Dec. 1986.
[val 3] B. Shimano, "VAL: A Versatile Robot Programming and Control System,“ Proc. COMPSAC 79
[val 4] B. E. Shimano, C. C. geschke, and C. H. Spalding III, "VAL-II: A New Robot Control System for Automatic Manufacturing"
IEEE Intl Conf on Robotics, Mar. 1984
[unival 1] E. M. Onaga and L. L. Woodland, "Six-Axes Digital Torque Servo for Robotics,“ Robots 11/ISIR 17, 1987
[unival 2] Unimation Inc., UNIVAL Robot Controller - 19 inch Rack Mount Equipment Manual Apr., 1988
LEVEL II
[level II 1] R. Guptill and P. Stahura, "Multiple Robotic Devices: Position Specification and Coordination,“ IEEE Intl Conf. Robotics and
Automation, 1987
82
83. RCCL ( a Robot Control C Library)
[rccl 1] V. Hayward, Robot Real Time Control User's Manual, TR-EE 83-42,
School of Electrical Engineering, Purdue Univ., Oct. 1983.
[rccl 2] V. Hayward, Introduction to RCCL: A Robot Control 'C' Library, TR-EE 83-43,
School of Electrical Engineering, Purdue Univ., Oct. 1983.
[rccl 3] V. Hayward, RCCL User's Manual Version 1.0, TR-EE 83-46,
School of Electrical Engineering, Purdue Univ., Oct. 1983.
[rccl 4] V. Hayward, RCCL Version 1.0 and Related Software Source Code, TR-EE 83-47,
School of Electrical Engineering, Purdue Univ., Oct. 1983.
[rccl 5] J. Roger, "VAX-LSI Interprocessor FIFO", Purdue University, (undated, unpublished)
[rccl 6] V. Hayward and R. P. Paul, "Robot manipulator Control Under Unix,“ ISIR 13/ Robots 7, 1983.
[rccl 7] V. Hayward and R. P. Paul, "Robot manipulator Control under Unix RCCL: A Robot Control "C" Library," Intl J.
Robotics Research, Vol.5, No.4, 1986.
[rccl 8] J. S. Lee, S. Hayati, V. Hayward, and J. E. Lioyd, "Implementation of RCCL, a robot control C library on a
microVAX II,“ SPIE VoL. 726, Intelligent Robots and Computer Vision, 1986.
[rccl 9] D. Kossman and A. Malowany, "A Multi-processor Robot Control System for RCCL under iRMX,“ IEEE Intl Conf
Robotics and Automation, 1987.
[rccl 10] A. S. Malowany and M. Pilon, "An RCCL Simulator for the Microbo Robot,“ Computers in Eng., ASME, 1988.
[rccl 11] J. Lloyd, M. Parker, and R. McClain, "Extending the RCCL programming Environment to Multiple Robots and
Processors,“ IEEE Intl Conf Robotics and Automation, 1988.
Kali
V. Hayward, L. Daneshmend, A. Nilakantan, and A. Topper, A Selection of Papers "
KALI Project “ McGill Research Center for Intelligent Machines, Aug. 1, 1989.
A. Topper, The McGill Robot I/O Board Rev B, May 1989.
83
91. Routine Explanation
(1) main(): The main program.
(2) startup():
Connect "setpoint_n()" to the clock interrupt.
Initialize and check hardware connection.
(3) move(park):
"park" is a built-in position. Usually the robot starts from this position.
(4) pumatask():
The actual user process. Users write only this routine.
(5) release(): Stop the trajectory generator.
(6) setpoint(): The trajectory generator.
(7) jnsend_n():
Send the setpoints to the robot controller in the global variable "chg".
(8) getobsj_n():
Get the actual robot position from the global variable "how".
(9) getobst_n():
Get the arm currents from the ADC from the global variable "how".
91
92. ALVIN-RCCL (Purdue, 1991)
68030s/VxWorks
VMEBus
CPU #1
CPU #2
Shared Mem.
Bus adapter
CRT
Bus adapter
Qbus
CLOCK
DRV-11
SERVO
INTERFACE
Unimation Controller
Digital
Servo
Analog
Servo
current
encoder
pulses
Power
AMP.
Arm Cable
PUMA 560 ARM
92
93. RCCL-ALVIN (Purdue, 1998)
Host PC/QNX
PCI Bus
Bus adapter
Bus adapter
Qbus
CLOCK
DRV-11
SERVO
INTERFACE
Unimation Controller
Digital
Servo
Analog
Servo
current
encoder
pulses
Power
AMP.
Arm Cable
PUMA 560 ARM
93
95. RCCL / RCI (Standard)
Host Computer
Host computer bus
Serial
Parallel I/O
Floppy
Unimation Controller
CPU
LSI-11
Teach
Pend.
Aux
CRT
RAM
ROM
DLV-11J
Parallel I/O
Qbus
CLOCK
DRV-11
SERVO
INTERFACE
Digital
Servo
Analog
Servo
current
encoder
pulses
Power
AMP.
Arm Cable
PUMA ARM
95
96. Multi-RCCL
•
Multi-RCCL v5.0
John Lloyd and Vincent Hayward, 1992.
Official release of Multi-RCCL.
•
Multi-RCCL v5.1
John Lloyd, 1997.
Simulation mode on Linux.
•
Multi-RCCL v5.1.4
Torsten Scherer, 1999.
Unofficial modifications for Linux.
96
98. RWRCCL
•
RWRCCL(Roger Williams RCCL):
RCCL modified by Matthew Stein at Roger Williams
University in 2000.
•
Configuration
– ARM: a single puma560 only.
– Hardware: PC + Trident TRC 004/006 boards.
– Software: RCCL ported to rtlinux.
Position control is added to RCCL.
98
99. RWRCCL (TRC Boards)
Host PC/Linux
ISA bus
TRC004 board
Unimation Controller
TRC006 Board
Power amplifier
Arm Cable
PUMA ARM
99
103. QRobot
•
A multitasking QNX/PC-based robot control system.
•
Developed at Clemson University in 1998.
•
Target arm: PUMA 560.
•
Hardware: PC + MultiQ board + Unimation controller.
103
104. RCCL-QRobot (MultiQ Board)
Host PC
PCI bus
MultiQ board
Unimation Controller
Preamplifiers
filtering circuits
Power amplifier
Arm Cable
PUMA ARM
104
105. ARCL
(Advanced Robot Control Language)
• Developed by Peter I. Corke, 1993.
• Inspired by an early version of RCCL.
• Monitor and Interpreter to run VAL-II programs.
105
108. Porting and Running the RCCL
on a Real-time Linux/PC
2005
Gyoung H. Kim, Ph.D
108
109. RCCL Poring
•
Porting RCCL v1.0 to Linux.
•
Developing a graphic simulator for RCCL v1.0.
•
Porting RCCL v1.0 to Linux/RTAI.
•
Porting RCCL v1.0 to Linux/Xenomai.
•
Patching Multi-RCCL for a newer Linux.
•
Patching RWRCCL for a newer Linux.
•
Porting RWRCCL to Linux/RTAI.
109
110. Test Environment
•
•
•
•
•
•
RCCL: v1.0 (1983)
Simderella: v2.0.2 (1995)
gcc: 2.9.x, 3.0.4, 3.2
Linux distribution:
- Redhat 7.3, Redhat 8.0
- Debian woody, Debian sarge
CPU: Pentium III, Pentium 4, VIA C3
RTAI
- Linux kernel: 2.4.19 (only for RTAI)
- RTAI distribution: 2.4.11
- RTAI modules used by RCCL:
rtai, rtai_sched, rtai_fifos, rtai_shm, rtai_libm
110
112. Running Modes of RCCL
(Modes are specified at h/switch.h)
1. PLAN mode (no signal or interrupt)
- setpoint_n() is repeatedly called until completed = 0.
2. FAKE mode (signal – simulated interrupt)
- At every 28ms, clock() generate a signal.
- Signal handler calls setpoint_n().
3. REAL mode (hardware interrupt)
- At every 28ms, a hardware interrupt signal is generated from
the Unimation controller.
- Interrupt service routine calls setpoint_n().
112
113. Running RCCL on Linux
(BSD mode with lib5)
•
•
•
RCCL v1.0 written in pre-ANSI C run on BSD Unix.
While older Linux distributions with lib5 were BSD-flavored,
recent Linux distributions with lib6 are SYSV-flavored.
To port RCCL v1.0 to Linux,
(1) Install BSD headers and libraries.
On debian, apt-get install altgcc
(2) Do the following modifications:
- Change <signal.h> and <sgtty.h> to
<bsd/signal.h> and <bsd/sgtty.h>, respectively.
- Implement nap( ) with usleep( ).
- Insert more FAKE and REAL mode switches for cleaner
compiling.
- Correct up some K & C C-language syntax.
- Remove malloc_l( ) and free_l( ) routines.
(3) Link the BSD library with the option, -lbsd.
113
114. Running RCCL on Linux
(SYSV mode with libc6)
(1) Change from BSD stuffs to SYSV
- sgtty to termio
- nap( ) to usleep( )
(2) Change pre-ANSI C stuffs to gcc
- const( ) to rccl_const ( )
(3) Change clock( ) location
- In RCCL v1.0, separated clock.c and vfork ( ) were used.
- Add clock( ) to main.c and replace vfork ( ) with fork ( ).
(4) Do the following minor modifications:
- Add print.c for more printouts.
- Add printst( ) to jnsend_n( ) of misc.c
- Create linux directory for examples.
- Move main.c from src to linux directory.
- Adjust the delay parameter of usleep( ).
- Add FAKE_DEBUG for better debugging.
114
115. Simderella
(A general-purpose robot simulator for kinematics)
Current joint angles
Simderella
connel
(robot controller)
Desired joint angles,
velocities, accelerations
simmel
(forward kinematics calculator)
Homogeneous matrices of
robot links
bemmel
(X-windows drawing program)
Graphic visualization
115
116. RCCL + Simderella (on-line)
(Simderella as a graphic simulator of RCCL)
For on-line simulation,
1.
2.
3.
4.
5.
6.
Modify connel/main.c so that desired joint angles are from j6,
a global variable of RCCL.
Combine the main.c of RCCL and the main.c of connel. After
setpoint_n( ), call user_move_robot( ) at each clock signal.
Modify user_move_robot( ) and move_robot( )
of connel/moving.c to bypass some dynamics and kinematics
calculations.
Adjust D-H parameters of PUMA arms.
Link RCCL libraries when compiling connel/main.c.
Run Simderella.
116
117. Screenshot of RCCL + Simderella
•
•
Right window: connel’s window printing out joint angles
from a RCCL program.
Left window: bemmel’s window drawing a PUMA arm with
the joint angles.
117
118. RCCL + Simderella (off-line)
For off-line simulation,
1.
Modify connel/main.c so that desired joint angles are read from
an external file, @.out and they are fed into user_move_robot( ).
2.
Modify user_mode_robot( ) and move_robot( )
of connel/moving.c to bypass some dynamics and kinematics
calculations.
3.
Adjust D-H parameters of PUMA arms.
4.
Compile connel/main.c.
5.
Run a RCCL program with “-d” option.
6.
Copy @.out to connel directory.
7.
Run Simderella.
118
121. Software Components
1. User-space task
(1) User command monitor:
- Send start/stop/break/resume command to RT tasks in the
kernel space.
- Receive fifo messages from the RT tasks
- Print out the content of the shared memory.
2. Kernel-space tasks
(1) RT task #1: the main.c of RCCL (non-periodic)
(2) RT task #2: the TG + RTC + moper of RCCL (periodic task)
(3) fifo handler:
- Send commands to the RT tasks.
- Receive commands from User command monitor
3. Shared memory: Store all the output data from RT tasks.
121
122. RTAI Porting Procedure
1. Kernel memory allocation
Change malloc( ) and free ( ) to kmalloc( ) and kfree( ), respectively.
2. File output/stdout/stderr
Make shm_printf( ) and redirect all the file output/stdout/stderr to the shared
memory.
3. Modify kernel vprintf( ) to handle float variables.
4. Replacement of glibc
(1) sprintf – kernel’s lib.a
(2) strcat, strcpy, strlen - #include <rtai.h>
(3) math library – rtai_libm.o module
(4) others – gcc’s bootstarp libgcc.a
5. Follow the compiling/linking options of RTAI.
6. Distribution- or CPU-specific options:
(1) Redhat 7.3: use kgcc without -mpreferred-stack-boundary=2.
(2) Redhat 8.0: use gcc with -mpreferred-stack-boundary=2.
(3) VIA EPIA 800 board: use –m586
122
123. RTAI Running Procedure
1.
2.
3.
4.
5.
Install rtai modules
modprobe rtai
modprobe rtai_sched
modprobe rtai_fifos
modprobe rtai_shm
modprobe rtai_libm
Install the RCCL realtiime module
insmod rccl.o
Start the “user command monitor” as
./rccl_app
Type s/q/b/r keys at the prompt of “rccl_app” to
start/quit/break/resume realtime RCCL tasks.
After the RCCL tasks are finished, joint angles and other
information are saved to file “@.out”
123
124. RCCL Porting Results
•
•
•
RCCL on BSD- and SYSV-mode Linux
– PLAN/FAKE/REAL modes can be compiled.
– PLAN and FAKE modes run correctly.
– Clock intervals less than 1 ms work.
RCCL + Simderella in on-line mode
– FAKE mode with 30ms clock interval work.
– Faster than 30ms is impossible due to the slow socket
communication of Simderella.
RCCL on RTAI
– Clock rate 50Hz (20ms) works without any problem.
– All the examples which do not need a real arm can be
compiled and run correctly.
– A faster clock rate is possible when moper functions are
needed.
– For the Unination controller still with the digital servo boards,
clock interrupt signals should be received from the Unimation
controller to prevent clock drifts.
124
126. Analysis Results of RWRCCL
• Routines are fully documented.
• Trace and analysis of the program execution
flow are done.
• Documentation on the program execution flow
is almost done.
126
128. Porting Results of RWRCCL-rtlinux
• Trajectory generation sampling interval: 27ms
• Servo sampling interval: 0.9 ms
(position control mode, PID control)
• Simulation mode needs a slower sampling
rate due to the slow X11 graphics.
• Dry-running mode in real-time is added.
128
129. Porting RWRCCL to RTAI
•
RTAI:
- rtai-3.2
- kernel 2.4.27
•
Patches
(1) rtlinux-dependent directories:
$RCCL/jls (kernel modules)
$RCCL/puma (user-space routines)
(2) Utilities for the puma interface card:
$RCCL/rtlinux
(3) Conflicting macro definition:
FREE(x) is changed to RCCL_FREE(x)
(FREE(x) is also defined at rtai_lxrt.h)
129
130. Ongoing Projects
•
Modifying RCCL for running various arms.
•
Porting RCCL v1.0 to Xenomai.
•
Developing a front-end interpreter for RCCL.
•
Modifying RCCL v1.0 for running multiple arms in
independent and/or coordinative modes.
•
Running RCCL on Non-X86 CPUs.
130