Rotarex

The ROTAREX Group is a privately owned Luxembourgish group of companies who develop and manufacture high pressure valves, tube fittings and pressure regulators for almost all types of gas, in almost all application fields. Founded in 1922, under the name CEODEUX in Lintgen, Luxembourg, ROTAREX currently employs approximately 1600 people and is present on all continents with a broad range of products.
Structure.
The ROTAREX Group is composed of 5 Divisions:
CEODEUX Division
CEODEUX Division is subdivided in 2 main parts:
LPG Division (SRG)
Firetec Division
Solutions Division
Automotive Division
Subcontracting Division
Application fields.
ROTAREX products are used in just about any application field where gas is used Just a short list of examples: Industrial gases, breathing and medical gases, food & beverage, fire protection, cryogenics & refrigeration, laboratories, semiconductor industry, aerospace, petrochemical, automotive, welding, transportation & storage, diving, leisure industry, paintball, barbecue and many more.
Purity.
ROTAREX products can meet any standard of gas purity on the market, ranging from Industrial gases, Breathing quality and Ultra High Purity (UHP) gases (for the semiconductor industry for example)


Value function

The value function of an optimization problem gives the value attained by the objective function at a solution, while only depending on the parameters of the problem. In a controlled dynamical system, the value function represents the optimal payoff of the system over the interval [t, t1] when started at the time-t state variable x(t)=x. If the objective function represents some cost that is to be minimized, the value function can be interpreted as the cost to finish the optimal program, and is thus referred to as "cost-to-go function." In an economic context, where the objective function usually represents utility, the value function is conceptually equivalent to the indirect utility function.
In a problem of optimal control, the value function is defined as the supremum of the objective function taken over the set of admissible controls. Given formula_1, a typical optimal control problem is to
subject to
with initial state variable formula_4. The objective function formula_5 is to be maximized over all admissible controls formula_6, where formula_7 is a Lebesgue measurable function from formula_8 to some prescribed arbitrary set in formula_9. The value function is then defined as
 I(\tau,x(\tau), u(\tau)) \, \mathrm{d}\tau + \phi(x(t_{1}))
with formula_10, where formula_11 is the "scrap value". If the optimal pair of control and state trajectories is formula_12, then formula_13. The function formula_14 that gives the optimal control formula_15 based on the current state formula_16 is called a feedback control policy, or simply a policy function.
Bellman's principle of optimality roughly states that any optimal policy at time formula_17, formula_18 taking the current state formula_19 as "new" initial condition must be optimal for the remaining problem. If the value function happens to be continuously differentiable, this gives rise to an important partial differential equation known as Hamilton–Jacobi–Bellman equation,
where the maximand on the right-hand side can also be re-written as the Hamiltonian, formula_21, as
with formula_23 playing the role of the costate variables. Given this definition, we further have formula_24, and after differentiating both sides of the HJB equation with respect to formula_16,
which after replacing the appropriate terms recovers the costate equation
where formula_28 is Newton notation for the derivative with respect to time.
The value function is the unique viscosity solution to the Hamilton–Jacobi–Bellman equation. In an online closed-loop approximate optimal control, the value function is also a Lyapunov function that establishes global asymptotic stability of the closed-loop system.


Robotics Toolbox for MATLAB

The Robotics Toolbox is MATLAB toolbox software that supports research and teaching into arm-type and mobile robotics. While the Robotics Toolbox is free software, it requires the proprietary MATLAB environment in order to execute. The Toolbox forms the basis of the exercises in several textbooks.
Purpose.
The Toolbox provides functions for manipulating and converting between datatypes such as vectors, homogeneous transformations, roll-pitch-yaw and Euler angles, axis-angle representation, unit-quaternions, and twists, which are necessary to represent 3-dimensional position and orientation. It also plots coordinate frames, supports Plücker coordinates to represent lines, and provides support for Lie group operations such as logarithm, exponentiation, and conversions to and from skew-symmetric matrix form.
As the basis of the exercises in several textbooks, the Toolbox is useful for the study and simulation of:
The Toolbox requires MATLAB, commercial software from MathWorks, in order to operate.
Relationship to other toolboxes.
The Robotics System Toolbox for MATLAB is proprietary software published by MathWorks which includes support for robot manipulators and mobile robotics. Its functionality significantly overlaps that of the Robotics Toolbox for MATLAB but the programming model is quite different.
The Robotics Toolbox for Python is a reimplementation of the Robotics Toolbox for MATLAB for Python 3. Its functionality is a superset of the Robotics Toolbox for MATLAB, the programming model is similar, and it supports additional methods to define a serial link manipulator including URDF and elementary transform sequences.


Turret punch

A turret punch or turret press is a type of punch press used for metal forming by punching.
Punching, and press work in general, is a process well suited to mass production. However the initial tooling costs, of both the machine and the job-specific press tool, are high. This limits punch work from being used for much small-volume and prototype work. A turret punch is one way of addressing this cost. The tooling of a turret punch uses a large number of standard punch tools: holes of varying sizes, straight edges, commonly-used notches or mounting holes. By using a large number of strokes, with several different tools in turn, a turret press may make a wide variety of parts without having to first make a specialised press tool for that task. This saves both time and money, allowing rapid prototyping or for low volume production to start without tooling delays.
A typical CNC turret punch has a choice of up to 60 tools in a "turret" that can be rotated to bring any tool to the punching position. A simple shape (e.g., a square, circle, or hexagon) is cut directly from the sheet. A complex shape can be cut out by making many square or rounded cuts around the perimeter. As a press tool requires a matching punch and die set, there are two corresponding turrets, above and below the bed, for punch and die. These two turrets must rotate in precise synchronisation and with their alignment carefully maintained. Several punches of identical shape may be used in the turret, each one turned to a different angle, as there is usually no feature to rotate the sheet workpiece relative to the tool.
A punch is less flexible than a laser for cutting compound shapes, but faster for repetitive shapes (for example, the grille of an air-conditioning unit). Some units combine both laser and punch features in one machine.
Most turret punches are CNC-controlled, with automatic positioning of the metal sheet beneath the tool and programmed selection of particular tools. A CAM process first converts the CAD design for the finished item into the number of individual punch operations needed, depending on the tools available in the turret.
The precise load-out of tools may change according to a particular job's needs. The CAD stage is also optimised for turret punching: an operation such as rounding a corner may be much quicker with a single chamfered cut than a fully rounded corner requiring several strokes. Changing an unimportant dimension such as the width of a ventilation slot may match an available tool, requiring a single cut, rather than cutting each side separately. CAD support may also manage the selection of tools to be loaded into the turret before starting work.
As each tool in a turret press is relatively small, the press requires little power compared to a press manufacturing similar parts with a single press stroke. This allows the tool to be lighter and sometimes cheaper, although this is offset by the increased complexity of the turret and sheet positioning. Turret punches can operate faster per stroke than a heavier tool press, although of course many strokes are required. A turret punch can achieve 600 strokes per minute.
The most sophisticated recent machines may also add facilities for forming and bending, as well as punch cutting. Although unlikely to replace a press brake for box making, the ability to form even small lugs may turn a two machine process into a one machine process, reducing materials handling time.
Manual punches.
Manual turret punches have also been used. These are C frame presses, usually with a rack-actuated ram. There is no CNC, for either sheet positioning or tool changing. Using such a manual press requires great familiarity, as the correct tool must be selected from the turret each time for every one of the many press operations performed. Such manual presses are rarely found, but they have their place in labour-intensive tasks such as hand-worked sheetmetal shops, making such products as custom car bodywork. They are often used in conjunction with other highly skilled artisan processes such as an English wheel.


Sequential minimal optimization

Sequential minimal optimization (SMO) is an algorithm for solving the quadratic programming (QP) problem that arises during the training of support-vector machines (SVM). It was invented by John Platt in 1998 at Microsoft Research. SMO is widely used for training support vector machines and is implemented by the popular LIBSVM tool. The publication of the SMO algorithm in 1998 has generated a lot of excitement in the SVM community, as previously available methods for SVM training were much more complex and required expensive third-party QP solvers.
Optimization problem.
Consider a binary classification problem with a dataset ("x"1, "y"1), ..., ("x""n", "y""n"), where "x""i" is an input vector and is a binary label corresponding to it. A soft-margin support vector machine is trained by solving a quadratic programming problem, which is expressed in the dual form as follows:
where "C" is an SVM hyperparameter and "K"("x""i", "x""j") is the kernel function, both supplied by the user; and the variables formula_4 are Lagrange multipliers.
Algorithm.
SMO is an iterative algorithm for solving the optimization problem described above. SMO breaks this problem into a series of smallest possible sub-problems, which are then solved analytically. Because of the linear equality constraint involving the Lagrange multipliers formula_4, the smallest possible problem involves two such multipliers. Then, for any two multipliers formula_6 and formula_7, the constraints are reduced to:
and this reduced problem can be solved analytically: one needs to find a minimum of a one-dimensional quadratic function. formula_10 is the negative of the sum over the rest of terms in the equality constraint, which is fixed in each iteration.
The algorithm proceeds as follows:
When all the Lagrange multipliers satisfy the KKT conditions (within a user-defined tolerance), the problem has been solved. Although this algorithm is guaranteed to converge, heuristics are used to choose the pair of multipliers so as to accelerate the rate of convergence. This is critical for large data sets since there are formula_14 possible choices for formula_4 and formula_16.
Related Work.
The first approach to splitting large SVM learning problems into a series of smaller optimization tasks was proposed by Bernhard Boser, Isabelle Guyon, Vladimir Vapnik. It is known as the "chunking algorithm". The algorithm starts with a random subset of the data, solves this problem, and iteratively adds examples which violate the optimality conditions. One disadvantage of this algorithm is that it is necessary to solve QP-problems scaling with the number of SVs. On real world sparse data sets, SMO can be more than 1000 times faster than the chunking algorithm.
In 1997, E. Osuna, R. Freund, and F. Girosi proved a theorem which suggests a whole new set of QP algorithms for SVMs. By the virtue of this theorem a large QP problem can be broken down into a series of smaller QP sub-problems. A sequence of QP sub-problems that always add at least one violator of the Karush–Kuhn–Tucker (KKT) conditions is guaranteed to converge. The chunking algorithm obeys the conditions of the theorem, and hence will converge. The SMO algorithm can be considered a special case of the Osuna algorithm, where the size of the optimization is two and both Lagrange multipliers are replaced at every step with new multipliers that are chosen via good heuristics.
The SMO algorithm is closely related to a family of optimization algorithms called Bregman methods or row-action methods. These methods solve convex programming problems with linear constraints. They are iterative methods where each step projects the current primal point onto each constraint.


Process flowsheeting

Process flowsheeting is the use of computer aids to perform steady-state heat and mass balancing, sizing and costing calculations for a chemical process. It is an essential and core component of process design.
The process design effort may be split into three basic steps
Synthesis.
Synthesis is the step where the structure of the flowsheet is chosen. It is also in this step that one initializes values for variables which one is free to set.
Analysis.
Analysis is usually made up of three steps
Optimization.
Optimization involves both structural optimization of the flow sheet itself as well as optimization of parameters in a given flowsheet. In the former one may alter the equipment used and/or its connections with other equipment. In the latter one can change the values of parameters such as temperature and pressure. Parameter Optimization is a more advanced stage of theory than process flowsheet optimization.
Plant design project.
The first step in the sequence leading to the construction of a process plant and its use in the manufacture of a product is the conception of a process. The concept is embodied in the form of a "flow sheet". Process design then proceeds on the basis of the flow sheet chosen. Physical property data are the other component needed for process design apart from a flow sheet. The result of process design is a process flow diagram, PFD. Detailed engineering for the project and vessel specifications then begin. Process flowsheeting ends at the point of generation of a suitable PFD.
General purpose flowsheeting programs became usable and reliable around 1965-1970.


Product intelligence

Product intelligence is defined as an automated system for gathering and analyzing intelligence about the performance of a product being designed and manufactured, such that this data is automatically fed back to the product managers and engineers designing the product, to assist them in the development of the next iteration or version of that product. The goal of product intelligence is to accelerate the rate of product innovation, thereby making the product and its owners more competitive and increasing customer satisfaction. Product intelligence is often applied to electronic products, but it is not necessarily limited to electronic products.
Key points of this definition:
Product intelligence can also include two additional functions:


ORiN

ORiN (Open Robot/Resource interface for the Network) is a standard network interface for FA (factory automation) systems. The Japan Robot Association proposed ORiN in 2002, and the ORiN Forum develops and maintains the ORiN standard.
Background.
The installation of PC (Personal Computer) applications in the factory has increased dramatically recently. Various types of application software systems, such as production management systems, process management systems, operation monitoring systems and failure analysis systems, have become vital to factory operation. These software systems are becoming indispensable for the manufacturing system.
However, most of these software systems are only compatible with specific models or specific manufacturers of the FA system. This is because the software system is “custom made” depending on the specific special network or protocol. Once this type of application is installed in a factory and if there are no resident software engineers for the system, the improvement of the system will stop, the cost-effectiveness of the system will be worsen, and the total value of the system will deteriorate.
Another recent problem in production is the rapid increase of the product demand at the initial stage of the product release. The manufactures will lose the chance of possible profit if they cannot meet the demand. To cope with the problem, manufacturing industry is trying to achieve the vertical upstart of the production, and high re-usability of both hardware and software is the key for the goal.
To solve these problems, ORiN was developed as a standard PC application platform.
Outline.
ORiN was originally developed as a standard platform for robot applications. Nowadays, ORiN became a manufacturing application program platform for handling wider range of resources including robots and other FA devices like programmable logic controllers (PLC) and numerical control (NC) systems, or more generic resources like databases and local file systems. ORiN specifications are on software only and are independent from hardware. Therefore, ORiN can be smoothly integrated with other existing technologies only by developing software. By using ORiN, development of manufacture-independent and model-independent application becomes easy.
By utilizing ORiN, various application software development and active multi-vender system construction by third-party companies are expected. In addition, on economy side, increase of manufacturing competitiveness, expansion of FA market, advancement of software industry in FA, and creation of FA engineering industry are also expected.
Features.
ORiN is independent from hardware, and all ORiN specifications are for software. ORiN (Version 2) is composed of the following three key technology specifications.
With these three key standard technologies, ORiN provides following features.


Hamiltonian (control theory)

The Hamiltonian is a function used to solve a problem of optimal control for a dynamical system. It can be understood as an instantaneous increment of the Lagrangian expression of the problem that is to be optimized over a certain time period. Inspired by—but distinct from—the Hamiltonian of classical mechanics, the Hamiltonian of optimal control theory was developed by Lev Pontryagin as part of his maximum principle. Pontryagin proved that a necessary condition for solving the optimal control problem is that the control should be chosen so as to optimize the Hamiltonian.
Problem statement and definition of the Hamiltonian.
Consider a dynamical system of formula_1 first-order differential equations
where formula_3 denotes a vector of state variables, and formula_4 a vector of control variables. Once initial conditions formula_5 and controls formula_6 are specified, a solution to the differential equations, called a "trajectory" formula_7, can be found. The problem of optimal control is to choose formula_6 (from some set formula_9) so that formula_10 maximizes or minimizes a certain objective function between an initial time formula_11 and a terminal time formula_12 (where formula_13 may be infinity). Specifically, the goal is to optimize a performance index formula_14 at each point in time,
subject to the above equations of motion of the state variables. The solution method involves defining an ancillary function known as the control Hamiltonian
(t) \mathbf{f}(\mathbf{x}(t),\mathbf{u}(t),t)
which combines the objective function and the state equations much like a Lagrangian in a static optimization problem, only that the multipliers formula_16—referred to as "costate variables"—are functions of time rather than constants.
The goal is to find an optimal control policy function formula_17 and, with it, an optimal trajectory of the state variable formula_18, which by Pontryagin's maximum principle are the arguments that maximize the Hamiltonian,
The first-order necessary conditions for a maximum are given by
the latter of which are referred to as the costate equations. Together, the state and costate equations describe the Hamiltonian dynamical system (again analogous to but distinct from the Hamiltonian system in physics), the solution of which involves a two-point boundary value problem, given that there are formula_26 boundary conditions involving two different points in time, the initial time (the formula_1 differential equations for the state variables), and the terminal time (the formula_1 differential equations for the costate variables; unless a final function is specified, the boundary conditions are formula_29, or formula_30 for infinite time horizons).
A sufficient condition for a maximum is the concavity of the Hamiltonian evaluated at the solution, i.e.
where formula_17 is the optimal control, and formula_18 is resulting optimal trajectory for the state variable. Alternatively, by a result due to Olvi L. Mangasarian, the necessary conditions are sufficient if the functions formula_14 and formula_35 are both concave in formula_10 and formula_6.
Derivation from the Lagrangian.
A constrained optimization problem as the one stated above usually suggests a Lagrangian expression, specifically
where formula_16 compares to the Lagrange multiplier in a static optimization problem but is now, as noted above, a function of time. In order to eliminate formula_40, the last term on the right-hand side can be rewritten using integration by parts, such that
which can be substituted back into the Lagrangian expression to give
To derive the first-order conditions for an optimum, assume that the solution has been found and the Lagrangian is maximized. Then any perturbation to formula_10 or formula_6 must cause the value of the Lagrangian to decline. Specifically, the total derivative of formula_45 obeys
For this expression to equal zero necessitates the following optimality conditions:
If both the initial value formula_48 and terminal value formula_49 are fixed, i.e. formula_50, no conditions on formula_51 and formula_52 are needed. If the terminal value is free, as is often the case, the additional condition formula_29 is necessary for optimality. The latter is called a transversality condition for a fixed horizon problem.
It can be seen that the necessary conditions are identical to the ones stated above for the Hamiltonian. Thus the Hamiltonian can be understood as a device to generate the first-order necessary conditions.
The Hamiltonian in discrete time.
When the problem is formulated in discrete time, the Hamiltonian is defined as:
and the costate equations are
(Note that the discrete time Hamiltonian at time formula_56 involves the costate variable at time formula_57 This small detail is essential so that when we differentiate with respect to formula_58 we get a term involving formula_59 on the right hand side of the costate equations. Using a wrong convention here can lead to incorrect results, i.e. a costate equation which is not a backwards difference equation).
Behavior of the Hamiltonian over time.
From Pontryagin's maximum principle, special conditions for the Hamiltonian can be derived. When the final time formula_60 is fixed and the Hamiltonian does not depend explicitly on time formula_61, then:
or if the terminal time is free, then:
Further, if the terminal time tends to infinity, a transversality condition on the Hamiltonian applies.
The Hamiltonian of control compared to the Hamiltonian of mechanics.
William Rowan Hamilton defined the Hamiltonian for describing the mechanics of a system. It is a function of three variables:
where formula_45 is the Lagrangian, the extremizing of which determines the dynamics ("not" the Lagrangian defined above), formula_67 is the state variable and formula_68 is its time derivative.
formula_69 is the so-called "conjugate momentum", defined by
Hamilton then formulated his equations to describe the dynamics of the system as
The Hamiltonian of control theory describes not the "dynamics" of a system but conditions for extremizing some scalar function thereof (the Lagrangian) with respect to a control variable formula_73. As normally defined, it is a function of 4 variables
where formula_67 is the state variable and formula_73 is the control variable with respect to that which we are extremizing.
The associated conditions for a maximum are
This definition agrees with that given by the article by Sussmann and Willems. (see p. 39, equation 14). Sussmann and Willems show how the control Hamiltonian can be used in dynamics e.g. for the brachistochrone problem, but do not mention the prior work of Carathéodory on this approach.
Current value and present value Hamiltonian.
In economics, the objective function in dynamic optimization problems often depends directly on time only through exponential discounting, such that it takes the form
where formula_81 is referred to as the instantaneous utility function, or felicity function. This allows a redefinition of the Hamiltonian as formula_82 where
which is referred to as the current value Hamiltonian, in contrast to the present value Hamiltonian formula_84 defined in the first section. Most notably the costate variables are redefined as formula_85, which leads to modified first-order conditions.
which follows immediately from the product rule. Economically, formula_88 represent current-valued shadow prices for the capital goods formula_10.
Example: Ramsey–Cass–Koopmans model.
In economics, the Ramsey–Cass–Koopmans model is used to determine an optimal savings behavior for an economy. The objective function formula_90 is the social welfare function,
to be maximized by choice of an optimal consumption path formula_92. The function formula_93 indicates the utility the representative agent of consuming formula_94 at any given point in time. The factor formula_95 represents discounting. The maximization problem is subject to the following differential equation for capital intensity, describing the time evolution of capital per effective worker:
where formula_92 is period t consumption, formula_98 is period t capital per worker (with formula_99), formula_100 is period t production, formula_1 is the population growth rate, formula_102 is the capital depreciation rate, the agent discounts future utility at rate formula_103, with formula_104 and formula_105.
Here, formula_98 is the state variable which evolves according to the above equation, and formula_92 is the control variable. The Hamiltonian becomes
The optimality conditions are
in addition to the transversality condition formula_111. If we let formula_112, then log-differentiating the first optimality condition with respect to formula_56 yields
Inserting this equation into the second optimality condition yields
which is known as the Keynes–Ramsey rule, which gives a condition for consumption in every period which, if followed, ensures maximum lifetime utility.


Electrode boiler

An electrode boiler (jet type) is a type of boiler that uses electricity flowing through streams of water to create steam. The conductive and resistive properties of water are employed to carry electric current.
Technical principle.
The most common type of electrode boiler pumps water from the lower part of the vessel to an internal header that has nozzles that allow the water to flow to electrodes. Generally the working pressure is maintained at 10 bar. If more pressure is needed (more steam) the controls speed up the pump to increase flow through additional nozzles. As the needed pressure is reached the pump controls the flow of water to obtain the desired steam output (in kg per hour) at the desired pressure. On larger systems the pump can be controlled by a variable frequency drive so energy is not wasted. This control system can also control de-aerator pumps and controls.
The electrodes are connected to a medium voltage (1-35 kV) AC source. Electrode boilers can work on both single phase and three phase supplies. If DC voltage is used, electrolysis of water occurs, decomposing water into its elements H2 at the cathode (negative electrode) and O2 at the anode (positive electrode). The electrode boiler is 99.9% efficient with almost all the energy consumed producing steam. Losses are radiant heat from the vessel only.
The conductivity of the water and the voltage applied determine how much steam is generated in each stream of water.
Safety measures.
When evaporated into steam, deionized or distilled water leaves little or no ions in the boiler respectively. Thus, scale formation is reduced.


CONWIP

CONWIP (CONstant work in process) are pull-oriented production control systems. Such systems can be classified as pull and push systems (Spearman et al. 1990). In a push system, the production order is scheduled, and the material is pushed into the production line. In a pull system, the start of each product assembly process is triggered by the completion of another at the end of production line. This pull-variant is known for its ease of implementation.
CONWIP is a kind of single-stage kanban system and is also a hybrid push-pull system. While kanban systems maintain tighter control of system WIP through the individual cards at each workstation, CONWIP systems are easier to implement and adjust, since only one set of system cards is used to manage system WIP. CONWIP uses cards to control the number of WIPs. For example, no part is allowed to enter the system without a card (authority). After a finished part is completed at the last workstation, a card is transferred to the first workstation and a new part is pushed into the sequential process route. In their paper, Spearman et al. (1990) used a simulation to make a comparison among the CONWIP, kanban and push systems, and found that CONWIP systems can achieve a lower WIP level than kanban systems.
Card control policy.
In a CONWIP system, a card is shared by all kinds of products. However, Duenyas (1994) proposed a dedicated card control policy in CONWIP and he stated that this policy could perform as a multiple chain closed queuing network.


I-mate 810-F

The i-mate 810-F is quad-band Internet-enabled Windows Mobile smartphone. Its name comes from the US military standards for environment tests, MIL-STD-810. I-mate claims the 810-F can withstand temperature extremes of up to 60 degrees and -20 degrees Celsius. It is also waterproofed to 1 metre, and shockproof.
It has a rubber exterior, with a filter over the earpiece to maintain waterproofing. Metal screws are exposed so you can check the factory seals have been maintained, and there is a small plastic stylus located in a slot at the back of the phone. The 810-F features a QWERTY-keyboard, a 2.45-inch 320×240 pixel touchscreen and a five-way clickable navigation pad.
It runs the Windows Mobile 6.1 Professional operating system, with Internet Explorer 6. It offers a digital compass, A-GPS features and a three-axis accelerometer. There is also a 2MP fixed focus camera and 2 GB of storage space. There's no microSD slot to maintain its environmental coherence. Connectivity includes GSM, GPRS, EDGE, UMTS and HSDPA, plus Wi-Fi and Bluetooth 2.0.
I-mate provides a lifetime guarantee for the 810-F (subject to warranty terms and conditions, registration and annual service plan).


Empirical risk minimization

Empirical risk minimization (ERM) is a principle in statistical learning theory which defines a family of learning algorithms and is used to give theoretical bounds on their performance. The core idea is that we cannot know exactly how well an algorithm will work in practice (the true "risk") because we don't know the true distribution of data that the algorithm will work on, but we can instead measure its performance on a known set of training data (the "empirical" risk).
Background.
Consider the following situation, which is a general setting of many supervised learning problems. We have two spaces of objects formula_1 and formula_2 and would like to learn a function formula_3 (often called "hypothesis") which outputs an object formula_4, given formula_5. To do so, we have at our disposal a "training set" of formula_6 examples formula_7 where formula_8 is an input and formula_9 is the corresponding response that we wish to get from formula_10.
To put it more formally, we assume that there is a joint probability distribution formula_11 over formula_1 and formula_2, and that the training set consists of formula_6 instances formula_7 drawn i.i.d. from formula_11. Note that the assumption of a joint probability distribution allows us to model uncertainty in predictions (e.g. from noise in data) because formula_17 is not a deterministic function of but rather a random variable with conditional distribution formula_18 for a fixed formula_19.
We also assume that we are given a non-negative real-valued loss function formula_20 which measures how different the prediction formula_21 of a hypothesis is from the true outcome formula_22 The risk associated with hypothesis formula_23 is then defined as the expectation of the loss function:
A loss function commonly used in theory is the 0-1 loss function: formula_25.
The ultimate goal of a learning algorithm is to find a hypothesis formula_26 among a fixed class of functions formula_27 for which the risk formula_28 is minimal:
For classification problems, the Bayes classifier is defined to be the classifier minimizing the risk defined with the 0–1 loss function.
Empirical risk minimization.
In general, the risk formula_28 cannot be computed because the distribution formula_11 is unknown to the learning algorithm (this situation is referred to as agnostic learning). However, we can compute an approximation, called "empirical risk", by averaging the loss function on the training set; more formally, computing the expectation with respect to the empirical measure:
The empirical risk minimization principle states that the learning algorithm should choose a hypothesis formula_33 which minimizes the empirical risk:
Thus the learning algorithm defined by the ERM principle consists in solving the above optimization problem.
Properties.
Computational complexity.
Empirical risk minimization for a classification problem with a 0-1 loss function is known to be an NP-hard problem even for a relatively simple class of functions such as linear classifiers. Nevertheless, it can be solved efficiently when the minimal empirical risk is zero, i.e., data is linearly separable.
In practice, machine learning algorithms cope with this issue either by employing a convex approximation to the 0–1 loss function (like hinge loss for SVM), which is easier to optimize, or by imposing assumptions on the distribution formula_11 (and thus stop being agnostic learning algorithms to which the above result applies).


3D metal moulding

3D metal moulding, also referred to as metal injection moulding or (MIM), is used to manufacture components with complex geometries. The process uses a mixture of metal powders and polymer binders – also known as "feedstock" – which are then injection-moulded.
After moulding, the parts are thermally processed in order to remove the binding agent. They are then sintered to a high-density metal component which has mechanical properties comparable to wrought materials.
3D metal moulding is mainly used to achieve intricate and complex shapes that are very difficult or expensive to produce using conventional manufacturing methods.
Applications.
3D metal molding is used in aerospace, medical and other industries. Its popularity is due to its strength in the form of a custom shape or part. More commonly found as a 3D mold are thermoplastic and thermosetting polymers. Both of these processes are used in the following industries:
3D metal printing.
3D metal printing builds components by delivering the powdered metal and binder in alternative layers through a nozzle controlled by a computer system, working to a CAD drawing. The initial process does not achieve the required strength so parts must go through a secondary process which involves fusing another type of metal into the shape.
There are multiple methods used in 3D metal printing. Selective laser sintering, or SLS, uses heat from a powerful laser to fuse tiny ceramic, glass or plastic particles together, forming a 3D part. Carl Deckard and Joe Beaman of the University of Texas developed and patented the process in the 1980s.
Direct metal laser sintering, or DMLS, uses a laser to sinter powdered metal into a solid object in gradual layers built upon each other. Cooling channels can be printed to any shape in this process, which lessens time and waste and improves quality.
Selective laser melting, or SLM, completely melts the powder to form a homogeneous part. This process can only be used for single materials, so is not suitable for alloys.


Demosthenis Teneketzis

Demosthenis Teneketzis (Greek: Δημοσθένης Τενεκετζής) IEEE is a Greek-American electrical engineer specializing in Systems Science and Engineering. He is Professor Emeritus in the Department of Electrical Engineering and Computer Science at the University of Michigan, Ann Arbor. His works are in the fields of control, decentralized systems, and networks. His main research publications are in stochastic control (centralized and decentralized), scheduling and resource allocation in networks with strategic and non-strategic users, and fault diagnosis in discrete event systems. He is a Fellow of IEEE for contributions to the theory of decentralized information systems and stochastic control.
Research.
Demosthenis Teneketzis’ research is on Stochastic Control, Decentralized Decision-Making with non-strategic decision-makers (teams) or strategic decision-makers (games), resource allocation in networks with centralized or decentralized information and strategic or non-strategic agents, and fault diagnosis in discrete event systems. In 2015 he received the George S. Axelby Award from the IEEE Control Systems Society for his paper "Decentralized Stochastic Control with Partial History Sharing: A Common Information Approach".


Numerical control

Numerical control (also computer numerical control, abbreviated CNC) is the automated control of machining tools (such as drills, lathes, mills, grinders, routers and 3D printers) by means of a computer. A CNC machine processes a piece of material (metal, plastic, wood, ceramic, stone, or composite) to meet specifications by following coded programmed instructions and without a manual operator directly controlling the machining operation.
A CNC machine is a motorized maneuverable tool and often a motorized maneuverable platform, which are both controlled by a computer, according to specific input instructions. Instructions are delivered to a CNC machine in the form of a sequential program of machine control instructions such as G-code and M-code, and then executed. The program can be written by a person or, far more often, generated by graphical computer-aided design (CAD) or computer-aided manufacturing (CAM) software. In the case of 3D printers, the part to be printed is "sliced" before the instructions (or the program) are generated. 3D printers also use G-Code.
CNC offers greatly increased productivity over non-computerized machining for repetitive production, where the machine must be manually controlled (e.g. using devices such as hand wheels or levers) or mechanically controlled by pre-fabricated pattern guides (see pantograph mill). However, these advantages come at significant cost in terms of both capital expenditure and job setup time. For some prototyping and small batch jobs, a good machine operator can have parts finished to a high standard whilst a CNC workflow is still in setup.
In modern CNC systems, the design of a mechanical part and its manufacturing program are highly automated. The part's mechanical dimensions are defined using CAD software and then translated into manufacturing directives by computer-aided manufacturing (CAM) software. The resulting directives are transformed (by "post processor" software) into the specific commands necessary for a particular machine to produce the component and then are loaded into the CNC machine.
Since any particular component might require the use of several different tools – drills, saws, etc. – modern machines often combine multiple tools into a single "cell". In other installations, several different machines are used with an external controller and human or robotic operators that move the component from machine to machine. In either case, the series of steps needed to produce any part is highly automated and produces a part that meets every specification in the original CAD drawing, where each specification includes a tolerance.
Description.
Motion is controlling multiple axes, normally at least two (X and Y), and a tool spindle that moves in the Z (depth). The position of the tool is driven by direct-drive stepper motors or servo motors to provide highly accurate movements, or in older designs, motors through a series of step-down gears. Open-loop control works as long as the forces are kept small enough and speeds are not too great. On commercial metalworking machines, closed-loop controls are standard and required to provide the accuracy, speed, and repeatability demanded.
Parts description.
As the controller hardware evolved, the mills themselves also evolved. One change has been to enclose the entire mechanism in a large box as a safety measure (with safety glass in the doors to permit the operator to monitor the machine's function), often with additional safety interlocks to ensure the operator is far enough from the working piece for safe operation. Most new CNC systems built today are 100% electronically controlled.
CNC-like systems are used for any process that can be described as movements and operations. These include laser cutting, welding, friction stir welding, ultrasonic welding, flame and plasma cutting, bending, spinning, hole-punching, pinning, gluing, fabric cutting, sewing, tape and fiber placement, routing, picking and placing, and sawing.
History.
The first CNC machines were built in the 1940s and 1950s, based on existing tools that were modified with motors that moved the tool or part to follow points fed into the system on punched tape. These early servomechanisms were rapidly augmented with analog and digital computers, creating the modern CNC machine tools that have revolutionized machining processes.
Other CNC tools.
Many other tools have CNC variants, including:
Tool/machine crashing.
In CNC, a "crash" occurs when the machine moves in such a way that is harmful to the machine, tools, or parts being machined, sometimes resulting in bending or breakage of cutting tools, accessory clamps, vises, and fixtures, or causing damage to the machine itself by bending guide rails, breaking drive screws, or causing structural components to crack or deform under strain. A mild crash may not damage the machine or tools but may damage the part being machined so that it must be scrapped. Many CNC tools have no inherent sense of the absolute position of the table or tools when turned on. They must be manually "homed" or "zeroed" to have any reference to work from, and these limits are just for figuring out the location of the part to work with it and are no hard motion limit on the mechanism. It is often possible to drive the machine outside the physical bounds of its drive mechanism, resulting in a collision with itself or damage to the drive mechanism. Many machines implement control parameters limiting axis motion past a certain limit in addition to physical limit switches. However, these parameters can often be changed by the operator.
Many CNC tools also do not know anything about their working environment. Machines may have load sensing systems on spindle and axis drives, but some do not. They blindly follow the machining code provided and it is up to an operator to detect if a crash is either occurring or about to occur, and for the operator to manually abort the active process. Machines equipped with load sensors can stop axis or spindle movement in response to an overload condition, but this does not prevent a crash from occurring. It may only limit the damage resulting from the crash. Some crashes may not ever overload any axis or spindle drives.
If the drive system is weaker than the machine's structural integrity, then the drive system simply pushes against the obstruction, and the drive motors "slip in place". The machine tool may not detect the collision or the slipping, so for example the tool should now be at 210mm on the X-axis, but is, in fact, at 32mm where it hit the obstruction and kept slipping. All of the next tool motions will be off by −178mm on the X-axis, and all future motions are now invalid, which may result in further collisions with clamps, vises, or the machine itself. This is common in open-loop stepper systems but is not possible in closed-loop systems unless mechanical slippage between the motor and drive mechanism has occurred. Instead, in a closed-loop system, the machine will continue to attempt to move against the load until either the drive motor goes into an overload condition or a servo motor fails to get to the desired position.
Collision detection and avoidance are possible, through the use of absolute position sensors (optical encoder strips or disks) to verify that motion occurred, or torque sensors or power-draw sensors on the drive system to detect abnormal strain when the machine should just be moving and not cutting, but these are not a common component of most hobby CNC tools. Instead, most hobby CNC tools simply rely on the assumed accuracy of stepper motors that rotate a specific number of degrees in response to magnetic field changes. It is often assumed the stepper is perfectly accurate and never missteps, so tool position monitoring simply involves counting the number of pulses sent to the stepper over time. An alternate means of stepper position monitoring is usually not available, so crash or slip detection is not possible.
Commercial CNC metalworking machines use closed-loop feedback controls for axis movement. In a closed-loop system, the controller monitors the actual position of each axis with an absolute or incremental encoder. Proper control programming will reduce the possibility of a crash, but it is still up to the operator and programmer to ensure that the machine is operated safely. However, during the 2000s and 2010s, the software for machining simulation has been maturing rapidly, and it is no longer uncommon for the entire machine tool envelope (including all axes, spindles, chucks, turrets, tool holders, tailstocks, fixtures, clamps, and stock) to be modeled accurately with 3D solid models, which allows the simulation software to predict fairly accurately whether a cycle will involve a crash. Although such simulation is not new, its accuracy and market penetration are changing considerably because of computing advancements.
Numerical precision and equipment backlash.
Within the numerical systems of CNC programming, the code generator can assume that the controlled mechanism is always perfectly accurate, or that precision tolerances are identical for all cutting or movement directions. This is not always a true condition of CNC tools. CNC tools with a large amount of mechanical backlash can still be highly precise if the drive or cutting mechanism is only driven to apply cutting force from one direction, and all driving systems are pressed tightly together in that one cutting direction. However, a CNC device with high backlash and a dull cutting tool can lead to cutter chatter and possible workpiece gouging. The backlash also affects the precision of some operations involving axis movement reversals during cutting, such as the milling of a circle, where axis motion is sinusoidal. However, this can be compensated for if the amount of backlash is precisely known by linear encoders or manual measurement.
The high backlash mechanism itself is not necessarily relied on to be repeatedly precise for the cutting process, but some other reference object or precision surface may be used to zero the mechanism, by tightly applying pressure against the reference and setting that as the zero references for all following CNC-encoded motions. This is similar to the manual machine tool method of clamping a micrometer onto a reference beam and adjusting the Vernier dial to zero using that object as the reference.
Positioning control system.
In numerical control systems, the position of the tool is defined by a set of instructions called the part program. Positioning control is handled using either an open-loop or a closed-loop system. In an open-loop system, communication takes place in one direction only: from the controller to the motor. In a closed-loop system, feedback is provided to the controller so that it can correct for errors in position, velocity, and acceleration, which can arise due to variations in load or temperature. Open-loop systems are generally cheaper but less accurate. Stepper motors can be used in both types of systems, while servo motors can only be used in closed systems.
Cartesian coordinates.
The G & M code positions are all based on a three-dimensional Cartesian coordinate system. This system is a typical plane often seen in mathematics when graphing. This system is required to map out the machine tool paths and any other kind of actions that need to happen in a specific coordinate. Absolute coordinates are what are generally used more commonly for machines and represent the (0,0,0) point on the plane. This point is set on the stock material to give a starting point or "home position" before starting the actual machining.
Coding.
G-codes.
G-codes are used to command specific movements of the machine, such as machine moves or drilling functions. The majority of G-Code programs start with a percent (%) symbol on the first line, then followed by an "O" with a numerical name for the program (i.e. "O0001") on the second line, then another percent (%) symbol on the last line of the program. The format for a G-code is the letter G followed by two to three digits; for example G01. G-codes differ slightly between a mill and lathe application, for example:
M-codes.
[Code Miscellaneous Functions (M-Code)]. M-codes are miscellaneous machine commands that do not command axis motion. The format for an M-code is the letter M followed by two to three digits; for example:
Example.
O0001
G20 G40 G80 G90 G94 G54(Inch, Cutter Comp. Cancel, Deactivate all canned cycles, moves axes to machine coordinate, feed per min., origin coordinate system)
M06 T01 (Tool change to tool 1)
G43 H01 (Tool length comp. in a positive direction, length compensation for the tool)
M03 S1200 (Spindle turns CW at 1200RPM)
G00 X0. Y0. (Rapid Traverse to X=0. Y=0.)
G00 Z.5 (Rapid Traverse to z=.5)
G00 X1. Y-.75 (Rapid traverse to X1. Y-.75)
G01 Z-.1 F10 (Plunge into part at Z-.25 at 10in per min.)
G03 X.875 Y-.5 I.1875 J-.75 (CCW arc cut to X.875 Y-.5 with radius origin at I.625 J-.75)
G03 X.5 Y-.75 I0.0 J0.0 (CCW arc cut to X.5 Y-.75 with radius origin at I0.0 J0.0)
G03 X.75 Y-.9375 I0.0 J0.0(CCW arc cut to X.75 Y-.9375 with radius origin at I0.0 J0.0)
G02 X1. Y-1.25 I.75 J-1.25 (CW arc cut to X1. Y-1.25 with radius origin at I.75 J-1.25)
G02 X.75 Y-1.5625 I0.0 J0.0 (CW arc cut to X.75 Y-1.5625 with same radius origin as the previous arc)
G02 X.5 Y-1.25 I0.0 J0.0 (CW arc cut to X.5 Y-1.25 with same radius origin as the previous arc)
G00 Z.5 (Rapid traverse to z.5)
M05 (spindle stops)
G00 X0.0 Y0.0 (Mill returns to origin)
M30 (Program End)
Having the correct speeds and feeds in the program provides for a more efficient and smoother product run. Incorrect speeds and feeds will cause damage to the tool, machine spindle, and even the product. The quickest and simplest way to find these numbers would be to use a calculator that can be found online. A formula can also be used to calculate the proper speeds and feeds for a material. These values can be found online or in Machinery's Handbook.


MaSMT

MaSMT is a free, lightweight Multi-agent system development framework, design through the Java environment. The MaSMT3 framework provides three types of agents, namely ordinary agent and managing agent and root agent. The managing agent capable to handle set of ordinary agent and the root agent capable to handle set of manager agents. MaSMT3.0 includes few features than the previous versions. MaSMT 3.0 includes root agent to handle swam of agents, Environment handling features to dynamically store agent's ontology, and notice board has been introducing to see required messages and events. In addition to these main features, agent status monitor has been introducing to view transporting messages.
Multi-agent technology is modern software palindrome that capable of handling the complexity of a software system and providing intelligent solutions through the power of agent communication. A framework is a useful tool to develop multi-agent system and it saves lot of programmer's time and provides standards for the agent development.
About MaSMT.
Multi-agent technology is a modern software palindrome that capable of handling the complexity of a software system and providing intelligent solutions through the power of agent communication. A framework is a useful tool to develop a multi-agent system and it saves much programmer's time and provides standards for the agent development.
MaSMT (Multi-Agent System for Machine Translation) released as Open Source under the GNU General Public License (GPL). Hence, the license allows using the software to examine and modify the source code and to develop applications based on the platform. The framework has been completely developed through the Java and provides Cross-platform capabilities. There is no prerequisite on MaSMT agents.
First Open source version of the MaSMT was released on 2 March 2016 for to provide general infrastructure for the multi agent system development. The new version of the MaSMT includes some modification of the MaSMT to achieve best performance. MaSMT3.0 includes few features than the previous version including root agent to handle swam of agents, Environment handling features to store agent's action and mail transport agent to send and reserving messages as emails. In addition to these main features, activity monitor has been introducing to view transporting messages.
Infrastructure.
This section briefly describes the structure of the MaSMT agents. The MaSMT framework provides three types of agents, namely ordinary agent, manager agent and root agent. The regular agents are the action holding agents of the framework; precede relevant tasks according to the given messages. A manager agent consists of some ordinary agents within its control. The root agent is the top level agent in the system which is capable to handle set of manager agents. Through the root agent, it is much easy to manage a swarm of agents. Further, manager agents can directly communicate with other manager agents as well as its root agent. Each and every ordinary agent in the system assigns to a particular manager agent. and manager can assign to a particular root agent. A regular agent (ordinary agent) in a swarm can directly communicate only with the agents in its swarm and its manager. The framework primarily implements infrastructure of the agents, required actions to handle agent's environment, message parsing activities to agent communication and action monitoring facilities to view an agent's action for implement multi-agent system easily.
Agent Model.
MaSMT agents consist of an abstract model of the agents. Each agent in the system consists of group, role, and agent id. According to the MaSMT architecture, any group consists of one-to-many roles and any role includes some MaSMT agents with independent agent id. Further, MaSMT agents are capable of changing their role or group at run-time. Therefore, an agent can appear in the different swam as it required. However, only one place at a time Figure 1 shows the abstract agent model of the MaSMT system. MaSMTAbstractAgent class is used to model the entire requirement of the abstract model.
MaSMTAbstractAgent.
MaSMTAbstractAgent is an abstract model of the each agent in the MaSMT framework and which is used to identify each agent independently. The abstract agent consists of a group, a role, and an agent id. In another word, each agent of the MaSMT system has an id and assigns for the particular group and a role. For instance, an agent in a group ‘communicate’ and role is read_message and id is1 then complete agent name of the abstract agent is donated as; read_message.1@communicate
MaSMT Agent.
MaSMTAgent is the ordinary agent in the framework, normally called as an action agent. MasMT agent consists of an abstract agent, two message queues (in-queue and out-queue), access rule, communication module, Environment controller, Status monitor and notice-board reader to handle the agent's functionalities.
MaSMT Agent's Life circle.
The MaSMT agent is a Java thread consists of three sections on its life circle such as active, live and end. The active section starts when the agent is going to activate. After completing the active section, the agent moves to its live section. The agent is in the live section while its live property is true. That can be done through the method ‘setLive(false)’ The agent does it all the actions such as read messages reply for the messages are doing in the live section. In addition, a developer can change the delay of the agent's live circle. The end section of the MaSMT agent appears when the agent is going to die. Figure 3 shows the life-circle of the MaSMT agent.
MaSMT Manager.
The MasMT Manager is a controlling agent of the system with additional features than the MaSMT ordinary agents. According to the MaSMT architecture, The manager agent consists of an abstract agent, two message queues (in-queue and out-queue), access rule, communication module, Environment controller, Status monitor, notice-board reader, network access agent and Message transport agent to archive managers functionalities. The MaSMT manager can fully control its client agent(s). The Manager agent in the MaSMT creates all its client-agent automatically (as required) at the initialization stage or whenever its use. The manager can directly access its client agents and send messages to them or control them as required. Further, manager agent can control the priority of the agents and the state of the agents. This facility removes the unnecessary workload from its client agents. The in-Queue of the managers is a queue used to store incoming messages. The manager adds messages for the out-queue, where the messages need to send to others group. In addition to the above basic module, MaSMT manager agent consists of net access agent and message transport agent. The net access agent supports client-server communication for the system. This agent provides facilities to connect any managers on the net through the client-server networking. Message transport agent provides message transport facilities to the manager. Figure 4 shows the architecture of the MaSMT Manager. Compare with MaSMT agent, the manager agent has full control of the notice board. Therefore, message transport agent capable to handle peer-to-peer broadcast and notice-board based agent communications.
MaSMT Root Agent.
MasMT Root is a special type of Manager agent (MaSMT Manager) that capable to handles managers in the multi agent system. This MaSMT Root agent can fully control its client managers same as the manager handle its client agents. Further, the root agent can create, remove or control (handle agent priority) its client manager(s). The in-Queue of the root agent is a message queue that uses to store incoming messages (messages are coming from another machine). The Root agent also adds messages on out-queue where messages need to send to others machines. Same as MaSMT Managers The Root agent consists of Message transport agent and net access agent to handle messages. Theoretically, Root agent is the top level manager of MaSMT system. Therefore, only one root agent available for a multi agent system in a machine. However, the root agent able to communicate with another root agents through the Net access agent.
MaSMT Messages.
Multi-agent systems are distributed systems that normally run concurrently. Communication among others is the hidden factor behind the success of the multi-agent systems. This agent communication is done through the messages. Therefore, number of standard available for the agent communication including FIFA-ACL. With considering all the above, MaSMT uses a message type named MaSMTMessages. MaSMTMessage is a type of agent's communication message, uses to communicate with agents. The MaSMT Messages design by using FIPA-ACL message standards. MaSMT uses MaSMTMessage (a message) to communicate between MaSMT agents as well as another agent through the FIPA-ACL message standard.
MaSMT Message Parsing.
This section briefly describes message parsing methods used in the MaSMT system. MaSMT support peer-to-peer, broadcast and noticeboard methods to message parsing.
Application of MaSMT.
Using the framework number of the multi-agent system has been developed including Natural Language Processing applications such as English to Sinhala Agent-based Multi-agent system, Sinhala Ontology Generator and Multi-agent based Morphological Analyzer. In addition to the above Intelligent chatbot and a communication platform for Agricultural domain, File sharing application through the distributed environment has already developed through the MaSMT.


Alpha beta filter

An alpha beta filter (also called alpha-beta filter, f-g filter or g-h filter) is a simplified form of observer for estimation, data smoothing and control applications. It is closely related to Kalman filters and to linear state observers used in control theory. Its principal advantage is that it does not require a detailed system model.
Filter equations.
An alpha beta filter presumes that a system is adequately approximated by a model having two internal states, where the first state is obtained by integrating the value of the second state over time. Measured system output values correspond to observations of the first model state, plus disturbances. This very low order approximation is adequate for many simple systems, for example, mechanical systems where position is obtained as the time integral of velocity. Based on a mechanical system analogy, the two states can be called "position x" and "velocity v". Assuming that velocity remains approximately constant over the small time interval "ΔT" between measurements, the position state is projected forward to predict its value at the next sampling time using equation 1.
Since velocity variable "v" is presumed constant, its projected value at the next sampling time equals the current value.
If additional information is known about how a driving function will change the "v" state during each time interval, equation 2 can be modified to include it.
The output measurement is expected to deviate from the prediction because of noise and dynamic effects not included in the simplified dynamic model. This prediction error "r" is also called the "residual" or "innovation", based on statistical or Kalman filtering interpretations
Suppose that residual "r" is positive. This could result because the previous "x" estimate was low, the previous "v" was low, or some combination of the two. The alpha beta filter takes selected "alpha" and "beta" constants (from which the filter gets its name), uses "alpha" times the deviation "r" to correct the position estimate, and uses "beta" times the deviation "r" to correct the velocity estimate. An extra "ΔT" factor conventionally serves to normalize magnitudes of the multipliers.
The corrections can be considered small steps along an estimate of the gradient direction. As these adjustments accumulate, error in the state estimates is reduced. For convergence and stability, the values of the "alpha" and "beta" multipliers should be positive and small:
Noise is suppressed only if formula_9, otherwise the noise is amplified.
Values of "alpha" and "beta" typically are adjusted experimentally. In general, larger "alpha" and "beta" gains tend to produce faster response for tracking transient changes, while smaller "alpha" and "beta" gains reduce the level of noise in the state estimates. If a good balance between accurate tracking and noise reduction is found, and the algorithm is effective, filtered estimates are more accurate than the direct measurements. This motivates calling the alpha-beta process a "filter".
Algorithm summary.
Initialize.
Update. Repeat for each time step ΔT:
Sample program.
Alpha Beta filter can be implemented in C as follows:
int main
 float dt = 0.5;
 float xk_1 = 0, vk_1 = 0, a = 0.85, b = 0.005;
 float xk, vk, rk;
 float xm;
 while (1)
 xm = rand % 100; // input signal
 xk = xk_1 + (vk_1 * dt);
 vk = vk_1;
 rk = xm - xk;
 xk += a * rk;
 vk += (b * rk) / dt;
 xk_1 = xk;
 vk_1 = vk;
 printf("%f \t %f\n", xm, xk_1);
 sleep(1);
}
Result.
The following images depict the outcome of the above program in graphical format. In each image, the blue trace is the input signal; the output is red in the first image, yellow in the second, and green in the third. For the first two images, the output signal is visibly smoother than the input signal and lacks extreme spikes seen in the input. Also, the output moves in an estimate of gradient direction of input.
The higher the alpha parameter, the higher is the effect of input and the less damping is seen. A low value of beta is effective in controlling sudden surges in velocity. Also, as alpha increases beyond unity, the output becomes rougher and more uneven than the input.
Relationship to general state observers.
More general state observers, such as the Luenberger observer for linear control systems, use a rigorous system model. Linear observers use a gain matrix to determine state estimate corrections from multiple deviations between measured variables and predicted outputs that are linear combinations of state variables. In the case of alpha beta filters, this gain matrix reduces to two terms. There is no general theory for determining the best observer gain terms, and typically gains are adjusted experimentally for both.
The linear Luenberger observer equations reduce to the alpha beta filter by applying the following specializations and simplifications.
Relationship to Kalman filters.
A Kalman filter estimates the values of state variables and corrects them in a manner similar to an alpha beta filter or a state observer. However, a Kalman filter does this in a much more formal and rigorous manner. The principal differences between Kalman filters and alpha beta filters are the following.
A Kalman filter designed to track a moving object using a constant-velocity target dynamics (process) model (i.e., constant velocity between measurement updates) with process noise covariance and measurement covariance held constant will converge to the same structure as an alpha-beta filter. However, a Kalman filter's gain is computed recursively at each time step using the assumed process and measurement error statistics, whereas the alpha-beta's gain is computed ad hoc.
Choice of parameters.
The alpha-beta filter becomes a steady-state Kalman filter if filter parameters are calculated from the sampling interval formula_10, the process variance formula_11 and the noise variance formula_12 like this
This choice of filter parameters minimizes the mean square error.
The steady state innovation variance formula_17 can be expressed as:
Variations.
Alpha filter.
A simpler member of this family of filters is the alpha filter which observes only one state:
with the optimal parameter calculated like this:
This calculation is identical for a moving average and a low-pass filter. Exponential smoothing is mathematically identical to the purposed Alpha filter.
Alpha beta gamma filter.
When the second state variable varies quickly, i.e. when the acceleration of the first state is large, it can be useful to extend the states of the alpha beta filter by one level. In this extension, the second state variable "v" is obtained from integrating a third "acceleration" state, analogous to the way that the first state is obtained by integrating the second. An equation for the "a" state is added to the equation system. A third multiplier, "gamma", is selected for applying corrections to the new "a" state estimates. This yields the "alpha beta gamma" update equations.
Similar extensions to additional higher orders are possible, but most systems of higher order tend to have significant interactions among the multiple states, so approximating the system dynamics as a simple integrator chain is less likely to prove useful.
Calculating optimal parameters for the alpha-beta-gamma filter is a bit more involved than for the alpha-beta filter:


Drawer slides roll forming machine

A drawer slide roll forming machine is a cold roll forming machine used to manufacture drawer slides. They have similarities with roofing roll formed products, but require a higher performance and skills in profile forming.
These machines are also known under various names such as slide rail making machine, slide make machine and telescopic channel roll forming equipment.
Process of slide roll forming.
The basic production flow of drawer slide machine is roll forming, punching, and cut off to length.
Processes of drawer slides roll forming is a continuous cold rolled steel strip passing through a plurality set of upper and lower shaped rollers, and then punching, embossing, straightening, and cut off to length. Straightening is an important part to avoid material twisting or curling. A roll forming line is often provided with straightening mechanism to make sure the material is nicely formed in a predetermined shape to meet the original design.
Every slide rail varies in some detailed design, which requires a customized production line to meet the expected profile. This means that the manufacture of a different types of roll slides may require a different machine or reconfiguration of the setup. The development takes time and costs, especially for undermount drawer slides. The profile is not as easy as contoured profile like roofing; in other words, slides roll forming requires advanced technology in manufacturing.
One disadvantage of drawer slides roll forming equipment is rollers can be only used to roll form one kind of profile design, which rollers must be changed when making different types or model of drawer slides profile. Complicated designs can incur large costs.
Types of drawer slides.
A drawer slide or drawer runner is the part of a drawer which allows the sliding movement. Examples of uses are in home furniture hardware, office appliance, and industrial equipment, including kitchen cabinets, oven slides, rails for sliding doors, fridge slides (used for coolers, etc.
There are various types of drawer slide in the market to apply for different usages, price points and features. A good slide rail defined by smoothness, tight tolerance, and loading capacity.
Features which may be incorporated in a drawer slide include:


Service automation framework

The Service Automation Framework (SAF) is a set of best practices for the automated delivery of services. The concept builds further on the self-service practices of ITIL and IT Service Management. In its current form, the SAF is published as in a series of volumes, covering different processes of service automation. The Service Automation Framework is maintained and updated by the Service Automation Framework Alliance, an independent body of knowledge for the advancement of service automation.
SAF describes processes, procedures, tasks, and checklists which are not organization-specific, but can be applied by an organization for establishing integration with the organization's strategy, delivering value, and maintaining a minimum level of competency. It allows the organization to establish a baseline from which it can plan, implement, and measure. It is used to demonstrate compliance and to measure improvement. Since December 2016, APMG-International provides the examination for the SAF.


Nonlinear control

Nonlinear control theory is the area of control theory which deals with systems that are nonlinear, time-variant, or both. Control theory is an interdisciplinary branch of engineering and mathematics that is concerned with the behavior of dynamical systems with inputs, and how to modify the output by changes in the input using feedback, feedforward, or signal filtering. The system to be controlled is called the "plant". One way to make the output of a system follow a desired reference signal is to compare the output of the plant to the desired output, and provide feedback to the plant to modify the output to bring it closer to the desired output.
Control theory is divided into two branches. Linear control theory applies to systems made of devices which obey the superposition principle. They are governed by linear differential equations. A major subclass is systems which in addition have parameters which do not change with time, called "linear time invariant" (LTI) systems. These systems can be solved by powerful frequency domain mathematical techniques of great generality, such as the Laplace transform, Fourier transform, Z transform, Bode plot, root locus, and Nyquist stability criterion.
Nonlinear control theory covers a wider class of systems that do not obey the superposition principle. It applies to more real-world systems, because all real control systems are nonlinear. These systems are often governed by nonlinear differential equations. The mathematical techniques which have been developed to handle them are more rigorous and much less general, often applying only to narrow categories of systems. These include limit cycle theory, Poincaré maps, Lyapunov stability theory, and describing functions. If only solutions near a stable point are of interest, nonlinear systems can often be linearized by approximating them by a linear system obtained by expanding the nonlinear solution in a series, and then linear techniques can be used. Nonlinear systems are often analyzed using numerical methods on computers, for example by simulating their operation using a simulation language. Even if the plant is linear, a nonlinear controller can often have attractive features such as simpler implementation, faster speed, more accuracy, or reduced control energy, which justify the more difficult design procedure.
An example of a nonlinear control system is a thermostat-controlled heating system. A building heating system such as a furnace has a nonlinear response to changes in temperature; it is either "on" or "off", it does not have the fine control in response to temperature differences that a proportional (linear) device would have. Therefore, the furnace is off until the temperature falls below the "turn on" setpoint of the thermostat, when it turns on. Due to the heat added by the furnace, the temperature increases until it reaches the "turn off" setpoint of the thermostat, which turns the furnace off, and the cycle repeats. This cycling of the temperature about the desired temperature is called a "limit cycle", and is characteristic of nonlinear control systems.
Properties of nonlinear systems.
Some properties of nonlinear dynamic systems are
Analysis and control of nonlinear systems.
There are several well-developed techniques for analyzing nonlinear feedback systems:
Control design techniques for nonlinear systems also exist. These can be subdivided into techniques which attempt to treat the system as a linear system in a limited range of operation and use (well-known) linear design techniques for each region:
Those that attempt to introduce auxiliary nonlinear feedback in such a way that the system can be treated as linear for purposes of control design:
And Lyapunov based methods:
Nonlinear feedback analysis – The Lur'e problem.
An early nonlinear feedback system analysis problem was formulated by A. I. Lur'e.
Control systems described by the Lur'e problem have a forward path that is linear and time-invariant, and a feedback path that contains a memory-less, possibly time-varying, static nonlinearity.
The linear part can be characterized by four matrices ("A","B","C","D"), while the nonlinear part is Φ("y") with formula_1
where formula_2, formula_3 are vector fields belonging to a distribution formula_4 and formula_5 are control functions, the integral curves of formula_6 are restricted to a manifold of dimension formula_7 if formula_8 and formula_4 is an involutive distribution.


Ackermann's formula

In control theory, Ackermann's formula is a control system design method for solving the pole allocation problem for invariant-time systems by Jürgen Ackermann. One of the primary problems in control system design is the creation of controllers that will change the dynamics of a system by changing the eigenvalues of the matrix representing the dynamics of the closed-loop system. This is equivalent to changing the poles of the associated transfer function in the case that there is no cancellation of poles and zeros.
State feedback control.
Consider a linear continuous-time invariant system with a state-space representation
where "x" is the state vector, "u" is the input vector, and "A", "B" and "C" are matrices of compatible dimensions that represent the dynamics of the system. An input-output description of this system is given by the transfer function
Since the denominator of the right equation is given by the characteristic polynomial of "A", the poles of "G" are eigenvalues of "A" (note that the converse is not necessarily true, since there may be cancellations between terms of the numerator and the denominator). If the system is unstable, or has a slow response or any other characteristic that does not specify the design criteria, it could be advantageous to make changes to it. The matrices "A", "B" and "C", however, may represent physical parameters of a system that cannot be altered. Thus, one approach to this problem might be to create a feedback loop with a gain "K" that will feed the state variable "x" into the input "u".
If the system is controllable, there is always an input formula_4 such that any state formula_5 can be transferred to any other state formula_6. With that in mind, a feedback loop can be added to the system with the control input formula_7, such that the new dynamics of the system will be
In this new realization, the poles will be dependent on the characteristic polynomial formula_10 of formula_11, that is
Ackermann's formula.
Computing the characteristic polynomial and choosing a suitable feedback matrix can be a challenging task, especially in larger systems. One way to make computations easier is through Ackermann's formula. For simplicity's sake, consider a single input vector with no reference parameter formula_13, such as
where formula_16 is a feedback vector of compatible dimensions. Ackermann's formula states that the design process can be simplified by only computing the following equation:
in which formula_18 is the desired characteristic polynomial evaluated at matrix formula_19, and formula_20 is the controllability matrix of the system.
Proof.
This proof is based on Encyclopedia of Life Support Systems entry on Pole Placement Control. Assume that the system is controllable. The characteristic polynomial of formula_21 is given by
Calculating the powers of formula_23 results in
Replacing the previous equations into formula_25 yieldsformula_26Rewriting the above equation as a matrix product and omitting terms that formula_16 does not appear isolated yields
From the Cayley–Hamilton theorem, formula_29, thus
formula_30
Note that formula_31 is the controllability matrix of the system. Since the system is controllable, formula_20 is invertible. Thus,
To find formula_34, both sides can be multiplied by the vector formula_35 giving
Thus,
Example.
Consider
formula_38
We know from the characteristic polynomial of formula_19 that the system is unstable since formula_40, the matrix formula_19 will only have positive eigenvalues. Thus, to stabilize the system we shall put a feedback gain formula_42
From Ackermann's formula, we can find a matrix formula_43 that will change the system so that its characteristic equation will be equal to a desired polynomial. Suppose we want formula_44.
Thus, formula_45 and computing the controllability matrix yields
Also, we have that formula_48
Finally, from Ackermann's formula
State observer design.
Ackermann's formula can also be used for the design of state observers. Consider the linear discrete-time observed system
with observer gain "L". Then Ackermann's formula for the design of state observers is noted as
with observability matrix formula_55. Here it is important to note, that the observability matrix and the system matrix are transposed: formula_56 and formula_57.
Ackermann's formula can also be applied on continuous-time observed systems.


IEC 63382

IEC 63382 is an international standard defining a protocol for the management of distributed energy storage systems based on electric vehicles, which is currently under development. IEC 63382 is one of the International Electrotechnical Commission's group of standards for electric road vehicles and electric industrial trucks, and is the responsibility of Joint Working Group 15 (JWG15) of IEC Technical Committee 69 (TC69).
Standard documents.
IEC 63382 consists of the following parts, detailed in separate IEC 63382 standard documents:


Statistical relational learning

Statistical relational learning (SRL) is a subdiscipline of artificial intelligence and machine learning that is concerned with domain models that exhibit both uncertainty (which can be dealt with using statistical methods) and complex, relational structure.
Note that SRL is sometimes called Relational Machine Learning (RML) in the literature. Typically, the knowledge representation formalisms developed in SRL use (a subset of) first-order logic to describe relational properties of a domain in a general manner (universal quantification) and draw upon probabilistic graphical models (such as Bayesian networks or Markov networks) to model the uncertainty; some also build upon the methods of inductive logic programming. Significant contributions to the field have been made since the late 1990s.
As is evident from the characterization above, the field is not strictly limited to learning aspects; it is equally concerned with reasoning (specifically probabilistic inference) and knowledge representation. Therefore, alternative terms that reflect the main foci of the field include "statistical relational learning and reasoning" (emphasizing the importance of reasoning) and "first-order probabilistic languages" (emphasizing the key properties of the languages with which models are represented).
Canonical tasks.
A number of canonical tasks are associated with statistical relational learning, the most common ones being.
Representation formalisms.
One of the fundamental design goals of the representation formalisms developed in SRL is to abstract away from concrete entities and to represent instead general principles that are intended to be universally applicable. Since there are countless ways in which such principles can be represented, many representation formalisms have been proposed in recent years. In the following, some of the more common ones are listed in alphabetical order:


Octuple-precision floating-point format

In computing, octuple precision is a binary floating-point-based computer number format that occupies 32 bytes (256 bits) in computer memory. This 256-bit octuple precision is for applications requiring results in higher than quadruple precision. This format is rarely (if ever) used and very few environments support it.
IEEE 754 octuple-precision binary floating-point format: binary256.
In its 2008 revision, the IEEE 754 standard specifies a binary256 format among the "interchange formats" (it is not a basic format), as having:
The format is written with an implicit lead bit with value 1 unless the exponent is all zeros. Thus only 236 bits of the significand appear in the memory format, but the total precision is 237 bits (approximately 71 decimal digits: ).
The bits are laid out as follows:
Exponent encoding.
The octuple-precision binary floating-point exponent is encoded using an offset binary representation, with the zero offset being 262143; also known as exponent bias in the IEEE 754 standard.
Thus, as defined by the offset binary representation, in order to get the true exponent the offset of 262143 has to be subtracted from the stored exponent.
The stored exponents 0000016 and 7FFFF16 are interpreted specially.
The minimum strictly positive (subnormal) value is and has a precision of only one bit.
The minimum positive normal value is 2−262142 ≈ 2.4824 × 10−78913.
The maximum representable value is 2262144 − 2261907 ≈ 1.6113 × 1078913.
Octuple-precision examples.
These examples are given in bit "representation", in hexadecimal,
of the floating-point value. This includes the sign, (biased) exponent, and significand.
 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 000016 = +0
 8000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 000016 = −0
 7fff f000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 000016 = +infinity
 ffff f000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 000016 = −infinity
 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 000116
 = 2−262142 × 2−236 = 2−262378
 ≈ 2.24800708647703657297018614776265182597360918266100276294348974547709294462 × 10−78984
 (smallest positive subnormal number)
 0000 0fff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff16
 = 2−262142 × (1 − 2−236)
 ≈ 2.4824279514643497882993282229138717236776877060796468692709532979137875392 × 10−78913
 (largest subnormal number)
 0000 1000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 000016
 = 2−262142
 ≈ 2.48242795146434978829932822291387172367768770607964686927095329791378756168 × 10−78913
 (smallest positive normal number)
 7fff efff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff16
 = 2262143 × (2 − 2−236)
 ≈ 1.61132571748576047361957211845200501064402387454966951747637125049607182699 × 1078913
 (largest normal number)
 3fff efff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff16
 = 1 − 2−237
 ≈ 0.999999999999999999999999999999999999999999999999999999999999999999999995472
 (largest number less than one)
 3fff f000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 000016
 = 1 (one)
 3fff f000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 000116
 = 1 + 2−236
 ≈ 1.00000000000000000000000000000000000000000000000000000000000000000000000906
 (smallest number larger than one)
By default, 1/3 rounds down like double precision, because of the odd number of bits in the significand.
So the bits beyond the rounding point are codice_1 which is less than 1/2 of a unit in the last place.
Implementations.
Octuple precision is rarely implemented since usage of it is extremely rare. Apple Inc. had an implementation of addition, subtraction and multiplication of octuple-precision numbers with a 224-bit two's complement significand and a 32-bit exponent. One can use general arbitrary-precision arithmetic libraries to obtain octuple (or higher) precision, but specialized octuple-precision implementations may achieve higher performance.
Hardware support.
There is no known hardware implementation of octuple precision.


Outstar

Outstar is an output from the neurodes of the hidden layer of the neural network architecture which works as an input for output layer. Neurode of hidden layer provides input to neurode of the output layer.


Gear cutting

Gear cutting is any machining process for creating a gear. The most common gear-cutting processes include hobbing, broaching, milling, grinding, and skiving. Such cutting operations may occur either after or instead of forming processes such as forging, extruding, investment casting, or sand casting.
Gears are commonly made from metal, plastic, and wood. Although gear cutting is a substantial industry, many metal and plastic gears are made without cutting, by processes such as die casting or injection molding. Some metal gears made with powder metallurgy require subsequent machining, whereas others are complete after sintering. Likewise, metal or plastic gears made with additive manufacturing may or may not require finishing by cutting, depending on application.
Processes.
Broaching.
For very large gears or spline, a vertical broach is used. It consists of a vertical rail that carries a single tooth cutter formed to create the tooth shape. A rotary table and a Y axis are the customary axes available. Some machines will cut to a depth on the Y axis and index the rotary table automatically. The largest gears are produced on these machines.
Other operations such as broaching work particularly well for cutting teeth on the inside. The downside to this is that it is expensive and different broach sticks are required to make different sized gears. Therefore, it is mostly used in very high production runs.
Hobbing.
Hobbing is a method by which a "hob" is used to cut teeth into a blank. We gear hobbing with a master hob or index hob on CNC gear hobbing machines who cut, gears, wheels, pinions, shafts and worms. The cutter and gear blank are rotated at the same time to transfer the profile of the hob onto the gear blank. Used very often for all sizes of production runs, but works best for medium to high. The hobbing features for gears are straight, helical, straight bevel, face, crowned, worm, cylkro and chamfering.
Milling or grinding.
Spur may be cut or ground on a milling machine or jig grinder utilizing a numbered gear cutter, and any indexing head or rotary table. The number of the gear cutter is determined by the tooth count of the gear to be cut.
To machine a helical gear on a manual machine, a true indexing fixture must be used. Indexing fixtures can disengage the drive worm, and be attached via an external gear train to the machine table's handle (like a power feed). It then operates similarly to a carriage on a lathe. As the table moves on the X axis, the fixture will rotate in a fixed ratio with the table. The indexing fixture itself receives its name from the original purpose of the tool: moving the table in precise, fixed increments. If the indexing worm is not disengaged from the table, one can move the table in a highly controlled fashion via the indexing plate to produce linear movement of great precision (such as a vernier scale).
There are a few different types of cutters used when creating gears. One is a rack shaper. These are straight and move in a direction tangent to the gear, while the gear. They have six to twelve teeth and eventually have to be moved back to the starting point to begin another cut.
Shaping.
The old method of gear cutting is mounting a gear blank in a shaper and using a tool shaped in the profile of the tooth to be cut. This method also works for cutting internal splines.
Another is a pinion-shaped cutter that is used in a gear shaper machine. It is basically when a cutter that looks similar to a gear cuts a gear blank. The cutter and the blank must have a rotating axis parallel to each other. This process works well for low and high production runs.
Finishing.
After being cut the gear can be finished by shaving, burnishing, grinding, honing or lapping.
Further reading.
A guide to cutting; by Zuber Beekhory


Distributed multi-agent reasoning system

In artificial intelligence, the distributed multi-agent reasoning system (dMARS) was a platform for intelligent software agents developed at the AAII that makes uses of the belief–desire–intention software model (BDI). The design for dMARS was an extension of the intelligent agent cognitive architecture developed at SRI International called procedural reasoning system (PRS). The most recent incarnation of this framework is the JACK Intelligent Agents platform.
Overview.
dMARS was an agent-oriented development and implementation environment written in C++ for building complex, distributed, time-critical systems.


Peter J. Fleming

Peter John Fleming is a professor of Industrial Systems and Control in the Department of Automatic Control and Systems Engineering at the University of Sheffield, and till June 2012 he was the director of the Rolls-Royce University Technology Centre for Control and Systems Engineering. He works in the field of control and systems engineering and is known for his work on evolutionary computation applied to systems engineering. Fleming is Editor-in-Chief of the "International Journal of Systems Science".
Research.
Fleming's primary area of research involves the development of evolutionary algorithms, including genetic algorithm for multi-objective optimization. He also works in the area of control & systems engineering. He has authored about 400 research publications, including six books. His research interests have led to the development of close links with a variety of industries in sectors such as automotive, aerospace, power generation, food processing, pharmaceuticals, and manufacturing. Two of his most cited articles are:
He is a Fellow of the Royal Academy of Engineering since 2005, a Fellow of the International Federation of Automatic Control since 2009, a Fellow of the Institution of Engineering Technology, and a Fellow of the Institute of Measurement and Control.


IranOpen

Iranian teams have been active participants of RoboCup events since 1998. The number of Iranian teams has been largely increasing over the past years. Thereby, the need to have a regional event seemed rather necessary. Furthermore, since the overall number world interested teams in RoboCup has increased; regional events may and can be a proper field for RoboCup leagues Technical Committees to see teams qualities for RoboCup World Competitions. IranOpen is a place for teams willing to take part in RoboCup World Competitions in order to show their qualities and standards. It is also a place for fresh teams to gain experience and become ready to join the world teams.
RoboCup.
RoboCup is an international joint project to promote AI, robotics, and related field. It is an attempt to foster AI and intelligent robotics research by providing a standard problem where a wide range of technologies can be integrated and examined. RoboCup chose to use soccer games as a central topic of research, aiming at innovations to be applied for socially significant problems and industries. The ultimate goal of the RoboCup project is by 2050, develop a team of fully autonomous humanoid robots that can win against the human world champion team in soccer. In order for a robot team to actually perform a soccer game, various technologies must be incorporated including: design principles of autonomous agents, multi-agent collaboration, strategy acquisition, real-time reasoning, robotics, and sensor-fusion. RoboCup is a task for a team of multiple fast-moving robots under a dynamic environment. RoboCup also offers a software platform for research on the software aspects of RoboCup. One of the major applications of RoboCup technologies is a search and rescue in large scale disaster. RoboCup initiated RoboCupRescue project to specifically promote research in socially significant issues.
IranOpen 2006.
Azad University of Qazvin as the pioneer in organizing a RoboCup event in Iran prepared a strong proposal for the RoboCup Federation which was then approved by the Federation to organize RoboCup IranOpen2006. RoboCup IranOpen2006 took place at Tehran International Fair from April 7 to April 9. It was the first but successful experience of organizing a RoboCup event in Iran. About 100 teams competed in 7 leagues and over 3000 visitors enjoined watching the games.
IranOpen 2007.
Azad University of Qazvin having the successful experience of organizing RoboCup IranOpen2006 decided to organize RoboCup IranOpen2007 in a more broad range. The proposal of the Azad University was approved by Iranian RoboCup National Committee and sent to the RoboCup Federation for final approval. It was then finally approved by the Federation. Therefore, RoboCup IranOpen2007 took place in Tehran International Fair from 5–7 April 2007. About 260 teams competed in 15 leagues and over 5000 visitors enjoyed watching the games.
IranOpen 2008.
Azad University of Qazvin for the third consequent year was approved by Iranian RoboCup National Committee to organize RoboCup IranOpen2008. This has also been approved by the RoboCup Federation. This year for the first time the event will take place in Azad University of Qazvin main campus from 3–5 April 2008. RoboCup IranOpen2008 welcomes all interested teams to join the event and compete in 16 leagues.
IranOpen 2009.
RoboCup IranOpen 2009 being the fourth annual RoboCup IranOpen competitions will be held on April 4–6, 2009. Iranian RoboCup National Committee and Azad University of Qazvin as organizers of this event wish all the participants luck and success. We will try to make the 2009 competitions even more enthusiastic and put all the efforts in our power to make the competitions environment as much comfortable as possible for the participants.
IranOpen 2011.
RoboCup IranOpen 2011 was held at Tehran International Fair from 5 - 9 April 2011. RoboCup IranOpen 2011 hosted about 350 teams from 14 countries within 22 leagues.
IranOpen 2012.
RoboCup IranOpen 2012 was held at Tehran International Fair from 3 - 7 April, 2012. RoboCup IranOpen 2012 hosted 330 teams from 13 countries competing in 24 leagues.
Arian team which is led by Arash Poori participated in the competition.