Acknowledgements. Maarten Goossens.

Maat: px
Weergave met pagina beginnen:

Download "Acknowledgements. Maarten Goossens."

Transcriptie

1

2

3

4 Acknowledgements As a graduating student in control engineering, the subject of multi-agent systems and autonomous robotics immediately caught my eye. I thought it would be a very interesting and challenging subject to study as my master thesis and to end my studies with. It also gave me the opportunity of doing practical experiments. Since most of the courses in the education are mainly theoretical, I thought of this as an extra advantage of choosing this subject. Now my thesis is finished I can say that it was indeed very challenging and interesting to do. Hereby I present the report of my work in the underlying manuscript. However, I couldn t have done it without the help of some people, and I would like to thank them for their help and support during the process of the project. First of all I would like to thank Professor De Keyser for giving me this opportunity and for providing insight knowledge now and then to help me move on. I would like to thank especially Daniel Neamtu, with whom I worked together for a big part of the work, as this is a part of his project in the research group. A thanks goes also to my thesis guide, Ramona Hodrea, who provided guidance, insight in the matter and support when needed. I would also like to thank other members of the control research group, Clara, Bart, Ernesto, Adrian, Andrès, Marc and Istvan with whom I could often have a discussion when problems occurred. At last, I would also like to thank some people for providing me with moral support in more difficult times, my parents Kris and Christine, my sister Elien, my girlfriend Nele and my close friends Bart and Maarten. The master thesis has given me a lot of knowledge in autonomous robotics, but also a lot of work experience which you cannot gather with lectures. It was very challenging, but also satisfying, and therefore I find it a nice ending of the great time I had at the faculty of engineering of Ghent University. Maarten Goossens. Ghent,

5 Leader-follower formation control for multi-robot systems Maarten Goossens Supervisor(s): Prof. dr. ir. Robain De Keyser, ir. Ramona Hodrea Abstract -- This article is the summary of a Master Thesis in control engineering. The purpose is to investigate multi-agent systems and to implement a practical realization of a leaderfollower formation in order to understand the control and occurring phenomena in mobile robot systems. The chosen application also serves as a real life simulation for traffic situations. Keywords -- mobile robot, multi-agent systems, tracking control, leader-follower formation, traffic simulation. I. INTRODUCTION The field of multi-agent systems is an interesting subject in control engineering today. It already offers a lot of applications today, but it also provides numerous subjects for research and potential applications for the future. In the first section, the state-of-the-art is presented. The second part presents two models and the implementation of a model based predictive control on one of the models. Ultimately, a practical implementation of a leader-follower formation with mobile robots is investigated and realized. II. MULTI-AGENT SYSTEMS The field of multi-agent systems is a wide area with a huge number of applications. The architectures of systems can be divided in different ways. Based on the connection between agents in terms of sharing and making use of information from other agents, the architectures can be divided in centralized, hierarchical, decentralized and hybrid. The second way of making a difference in several structures is according to the mission of each vehicle in the multi-agent environment with respect to the others. The purpose can be leader-following, behavioral or maintaining a virtual structure. There is also a series of different control strategies in multiagent systems, from conventional optimization-based to behavior-based like potential field methods. Examples of applications of multi-agent systems are search and rescue, mapping, traffic simulations, formation holding, etc. III. MODEL BASED PREDICTIVE CONTROL Depending on the application of the multi-agent system, models can be derived for the whole system and for one agent on its own. This is useful for prediction in a model based predictive control and for getting familiar with the kinematics M. Goossens is with the Control Engineering Department, Ghent University (UGent), Gent, Belgium. maarten.goossens@ugent.be. of a multi-agent system and a mobile robot its own. Two models were studied, one for a mobile robot tracking another robot, and one for the kinematics of a two-wheeled mobile robot. This results in models with multiple inputs and multiple outputs which are coupled and non-linear. A non-linear extended predictive self-adaptive control (NEPSAC) strategy was implemented in order to maintain the position of the follower robot with respect to the leader robot when the last one changes its driving characteristics. IV. PRACTICAL IMPLEMENTATION OF A LEADER-FOLLOWER FORMATION The practical implementation of a multi-agent system was done in order to analyze the possibilities and real-life control. The mission that was chosen is a leader-follower formation, where several robots track each other head to tail on a certain distance (chain of robots). The elementary part in this system is a robot tracking the one in front of it. A. Practical set-up The SRV-1Q robots were chosen from Surveyor Corporation for reasons that these robots are open-source, expandable, user friendly and financially attractive. The position from one robot to the other is done by blob-detection with an on-board camera. The distance and angle to the leader robot are extracted from the coordinates of the blob. The robots are controlled by an input that is proportional to the voltage sent to the motors. B. Control in 2 directions In order to control the position with respect to the leader robot, the two controlled variables (the distance and the angle) are decoupled. They are both controlled with a separate P- controller. Since we have position control, there is an integrator in the loop which delivers a zero steady-state error. The inputs to the robot are calculated by the two separate control loops. In the end, the two control loops are combined in order to have one value for each input of the robot. C. Line tracking The next step is to track a leader robot at higher speeds. For this we focused on straight line tracking in order to be able to investigate the formation responses later. First a P-controller was implemented. This results in an averaged steady-state error, because the reference is now actually a ramp. The steady-state error is dependent on the gain of the controller and the speed of the leader. Extra measures must be taken in order to keep the robots on a straight line. The motors of the SRV-1Q robots are pretty

6 inaccurate and are controlled in open loop. A simple on/off control was implemented to cover this issue. In this part a lot of non-linearities were discovered, especially in the motor characteristics, being the relation between the inputs of the motors and the actual speed of the robot. The characteristic shows saturation at higher inputs and a dead-zone at low inputs. The time constant of the motors is different in a moving state than starting from standstill. The minimum real speed of the robot is not close to zero, but a jump is observed in the characteristic. Figure 1: Motor characteristic The motor characteristics are also slightly different for different SRV-1Q robots. Measures were taken for the P- controller algorithm to bridge the dead zone in the characteristic. In order to get an idea of the characteristics of the system a model was identified. This was done by examining the step input response for the follower robot. The motor characteristics were approximated by a first order transfer function. The model was completed by adding an integrator, a delay time, the saturation and an approximation for the dead zone. The model performs good static results. For example, the steady-state errors are simulated very accurate, if the motor characteristics are linearized around the correct working point. If the working point is too far from the linearization point or if dynamics are simulated, the model does not suffice due to the linear approximations and significant disturbances in reality. In order to improve the straight line tracking, a PI-controller was implemented. By introducing a second integrator in the loop, the steady-state error is decreased. Due to disturbances and the presence of the dead zone in the motor characteristic, a small averaged error is observed in the tracking response. When the speed of the leader robot changes, the PI-controller is not working optimal due to the non-linearity in the motor characteristic, but the performance is much better than with the P-controller. D. Formation analysis In the last stage the formation was extended from two robots to three robots to analyze the formation response. The distance from a certain follower to the robot in front is controlled. The controllers on the two followers are tuned so that they have the same tracking response. The first phenomenon observed is that the tracking response of the second follower is more oscillatory than the first follower. This is the consequence of the fact that the first follower doesn t maintain a steady-state speed, but has some oscillations. The tracking response of the first follower serves as the input to the second follower. The reference for the second follower is thereby no clean ramp. With the P-controller, the averaged steady-state errors of the two tracking responses of the followers are added. The responses of the two followers are shifted in time due to a serious delay time in the control loop of the first two robots. With a PI-controller, the two followers don t reach their setpoint at the same time instant due to the time delay and disturbances. This introduces a real average steady-state error in the distance from the second follower to the leader. This situation is typical for a leader-follower formation where each robot measures and acts on its own and the tracking control is not perfect. This creates the major point for further research in this area. V. CONCLUSIONS AND FURTHER RESEARCH The area of multi-agent systems is an exciting subject with lots of possible applications. Good results were observed with the model predictive control. On a curved path the response is much slower due to the coupling of the inputs and the outputs. Due to hardware limitations, this advanced control could not be practically implemented. A good and fast control in two directions was obtained when the leader changes its position. The decoupling of the two control loops is an approximation which is visible, but not very significant. For line tracking control at higher speeds, the best results were obtained with a PI-controller. A formation of three robots was realized and the responses were analyzed. This subject, and especially the practical implementation of it, still has a lot of potential for further research. As mentioned before, the particular part in a leader-follower formation is the tracking problem. The system of a mobile robot has a lot of non-linearities which could be taken better into account with more advanced controllers, like neural networks or fuzzy logic. By adding more measurement hardware, like encoders or an IMU board, the performance of a single robot could be improved and thereby also the performance of the entire formation. On the other hand, the phenomenon in a chain of robots due to delay time and imperfect tracking control could be improved by making communication possible between the different robots in the formation. Also modeling of the entire formation and model predictive control could improve the performance. To implement all of this some changes to the existing hardware have to be made. Other research could go in the direction of obstacle avoidance or mapping. REFERENCES [1] Gain Luca Mariottini, Fabio Morbidi (2007). Leader-follower formations: Uncalibrated vision-based localization and control IEEE International conference on robotics and automation, Roma, Italy, April [2] Maria Isabel Ribeiro, Pedro Lima (2002). Kinematic models of mobile robots. Instituto Superior Tecnico (IST), Portugal. [3] De Keyser R. (2003). A Gent le approach to predictive control.

7 Index 1. Introduction State of the art Architectures of multi-agent systems Control strategies for cooperative control of multi-agent systems Applications of multi-agent systems Theoretical aspects PID control Manual tuning Autotuners Ziegler-Nichols Model based predictive control The EPSAC approach MBPC principle The EPSAC approach NEPSAC for non-linear systems Model predictive control Model 1: kinematic leader-follower model [12] Model 2: Kinematic robot model [11] NEPSAC implementation and results Practical implementation of a leader-follower formation Practical set-up The SRV-1Q robot Communication interfaces Hardware test of the Motors Blackfin camera Position measurement Blob requirements and consequences Control in two directions Set-up Control strategy Control script Experimental results... 36

8 5.4. Control script languages and communication Matlab Simulink C# C-interpreter onboard Line tracking Practical set-up P-controller Model identification PI-controller Formation analysis Control parameters of the follower values Gathering data Experimental results Conclusions and further research Dutch summary (Nederlandse samenvatting) Appendices APPENDIX 1: Matlab basic commands APPENDIX 2: Matlab image processing APPENDIX 3: P control script 2D control APPENDIX 4: Matlab script -Receiving data 1 robot APPENDIX 5: Matlab control script APPENDIX 6: C# control script APPENDIX 7: on-board C control script APPENDIX 8: Robot motor characteristics APPENDIX 9: on-board PI-controller script APPENDIX 10: Gathering data from formation APPENDIX 11: Model m-file APPENDIX 12: NEPSAC control script APPENDIX 13: Leader control script References

9 1. Introduction During the last decades the interest in multi-agent systems grew strongly. It was as usually driven from military application, because of the fact that in a lot of applications a group of small autonomous vehicles are usually much stronger than one big vehicle. One of the major advantages of small autonomous vehicles in this area is that they can be used for situations which are too dangerous for human beings. A group of vehicles then can offer a lot more applications, flexibility and robustness than one bigger vehicle. The autonomous vehicles can be land vehicles, water vehicles or air vehicles. In this master thesis we concentrated on land vehicles, more specifically on mobile robots. The first part of this manuscript is devoted to multi-agent systems in general. Different architectures and control methods are described and compared to each other. Several applications for multi-agent systems are presented as well. One application was chosen to be practically implemented, namely a decentralised leader-follower formation of several mobile robots, or a chain of robots. This is a good first approximation for real life traffic on highways, providing more insight on the behaviour and control of such systems. A predictive self-adaptive control, NEPSAC, strategy was implemented for a leader-follower formation. A mathematical model was needed, therefore two models were studied. One of these models was used in the predictive control strategy. The models also give more insight on the complexity and coupling between the inputs and outputs of a mobile robot and the consequences of it in a leader-follower formation. For the practical implementation we purchased three mobile robots. The type of robot is described and some tests are performed in order to have a better knowledge of the system with possibilities and limitations in terms of propulsion and measurements. As we want to investigate the behaviour of a leader-follower formation with multiple robots, the elementary part in this configuration is the tracking of one robot after another. This is the biggest part in the manuscript as it also took the biggest amount of time. We start from a static positioning at a big distance to tracking at high speeds at small distances. Initially a P-controller was implemented. This is extended to a PI-controller. A lot of practical issues are encountered, investigated and taken into account. The idea was also to implement the advanced NEPSAC algorithm. However, due to practical limitations this was not possible to do on these robots. In the last part we implement the tracking onto a third robot in order to form a short chain of robots and investigate the controller and distance phenomena between the followers and the leader of the formation. Some phenomena are observed and they form, together with a further expansion of the formation length, the basis for further research. 1

10 2. State of the art The beginning of my master thesis consisted mostly of reading literature on the matter. This was necessary since it s a complete new field for me. The literature was mostly about cooperative control in multi-agent systems. These agents can be land vehicles, water vehicles or unmanned aerial vehicles (UAVs). There are a lot of aspects that could be described considering cooperative control, like architectures of multi-agent systems, control methods, applications, communication, collision and obstacle avoidance, etc. In this literature study, I focused mostly on the first two aspects, as these are the most important to understand and to determine in order to start with a theoretical and practical study of an application that consists of several vehicles. The first part will describe different architectures of multi-agent systems with advantages and disadvantages. The second part will describe different control methods. The descriptions will be held describing and not too much into detail. The goal is to sketch the different possibilities and not to go too deep into the mathematics. This will be done later in the thesis for our particular choice, or should be read in the literature itself. I will also highlight some typical applications of multi-agent systems, in order to give the reader an idea of the use of studies in this field Architectures of multi-agent systems The architecture of multi-agent systems can be divided in two different ways. The first way to differentiate architectures is by the way each vehicle receives its orders. The second way is more about the architecture itself, about what does each vehicle look at to control its own movement. As mentioned, the first way to divide the different architectures, is by the way the vehicles receive their information or orders. It goes from sending all the information from every vehicle to one collector point (PC) and redistributing the information to each vehicle, to only communicating between the closest neighbors, or no communication between the different robots at all. In the following we describe the centralized, hierarchical, decentralized and hybrid architecture. Centralized: The entire team is coordinated from one point. All vehicles send their information to this central controller, which calculates the control inputs and sends it to the vehicles. The problem with this architecture is that if this one central controller fails, the whole system fails. Another disadvantage is the communication. A lot of signals must be received and sent through the same point, which makes the system rather fast overloaded, especially when the group consists of a large amount of vehicles. The advantage on the other hand, is that it s easy to control, since we have all the information from every vehicle in the same location. 2

11 Hierarchical: This is actually the same as centralized, but there are a few central controllers, which each control a part of the whole team. Each robot or controller controls the actions of a small amount of other robots. This way we get a hierarchical structure. It is more efficient in communication than the centralized architecture. If a controller, that is positioned high in the control tree, fails though, we still have the same problem as in the centralized structure. Decentralized: The vehicles take action, or control themselves based only on the information they get from the local situation, or their direct neighbors. This structure is highly robust to failure of the total system, but it is hard to create a coherency within the entire team. In a decentralized system, each vehicle makes its own decisions or controls to react on its local environment. The global reaction is a consequence of the different local interactions. A slightly different, but analogue architecture is distributed. In a distributed system, each vehicle also makes its own decisions or controls, but they rely on global information and/or global goals, instead of only local information and/or local goals. The global information is provided by a centralized information centre. The controls are created by each vehicle itself though, and not by a centralized control centre. The decentralized and distributed architectures have no centralized control centre, whereas they are immune to failure of such a single point in the control architecture. Another advantage is that the group can easily be extended or diminished with one or multiple vehicles. There is no need to adapt a centralized controller for this. Also the group architecture (formation), can easily be adapted. In the distributed structure, the overall system s formation is even more exact, thanks to the global information that is provided. Hybrid: This is the combination of local control with global control approaches. In this way we try to achieve global coherency and robustness to failure of a centralized controller at the same time. In [1], there are some examples of coordinated control of land vehicles which illustrate some of these architectures. The picture below represents the idea of a centralized, hierarchical and decentralized or distributed system. Figure 1: multi-agent architectures 3

12 A second way to differentiate architectures is not the way each vehicle gets its information, but rather where the information is coming from, or what the goal of each vehicle in the group is in respect to the other vehicles. Leader-following: One vehicle is defined as the leader of the group. This vehicle tracks random or a predefined path in space. The other vehicles follow the leader in order to keep their position with respect to the leader constant. This way, each vehicle in the group is tracking an analogue path and keeping the formation constant. Behavioral: Each agent has several desired behaviors prescribed. The overall control for a particular vehicle then, is the average of the control for each behavior. Examples of several behaviors are collision avoidance, obstacle avoidance, formation keeping, etc. Since each vehicle controls its own actions, this could be described as a decentralized control structure. Virtual structure: The entire formation of vehicles is considered to be a single structure, as a rigid body. The formation is held constant no matter what. This limits the amount of applications. For example in obstacle avoidance, the whole structure must deflect, and not only the particular vehicle. This structure also lends itself to a centralized implementation, in order to keep the global formation as fixed as possible Control strategies for cooperative control of multi-agent systems When it comes to the most common control strategies for multi-agent systems, there are two major strategies. The first one is optimization-based and the second one is behavior-based or the potential field technique. Both techniques will be shortly explained in the following paragraph. Optimization-based: This strategy mostly relies on finding a control input that minimizes a cost function. In first place, this is a centralized control architecture, since all information is gathered, processed and distributed to the individual vehicles to minimize the global cost function. As mentioned before, a distributed architecture is preferred, due to failure robustness. This can be done by decomposing the global problem into sub-problems, where each sub-problem is assigned to a different vehicle. To make this decomposition possible, one should only use local goals, as there is a minimum of interconnection then. This makes the decomposition a little bit easier to construct. The global cost function in this case is the sum of all local cost functions. In this case we should rather use the term decentralized instead of distributed though. Local control goals can include fuel consumption, distance to neighbors, travel speed, etc. All local information should be able to gather with the sensory of the vehicle in particular. The control laws can be designed by reactive controls (conventional PID, LQR, ) or by model predictive control methods. A model predictive 4

13 control method we could use is the (N)EPSAC method. Another method is described in [3]. In this last paper there s also a description on how the control method is adapted to either a centralized architecture or a decentralized architecture. Behavior-based: Each vehicle has preprogrammed schemes to execute upon certain sensor inputs. For example, when two vehicles come too close to each other, the collision avoidance scheme is executed. These schemes are often combined, or based on artificial potential field methods. This in order to keep the control laws as simple as possible. In the potential field method, every vehicle is modeled as a moving particle inside an artificial potential field, that is composed by attractive and repulsive potentials, depending on the environment. For example, when a vehicle wanders too far from the others, it will get a positive potential to get back into the formation. When vehicles come too close on the other hand, a negative potential will avoid collision. The total potential field is the superposition of all separate fields coming from collision and obstacle avoidance, formation keeping, etc. The gradient of the total potential field on a vehicle can be interpreted as an artificial force working on the vehicle, which will be the control law for each individual vehicle. This approach is mainly decentralized, which makes it very failure robust on one hand, but on the other hand it s limited in a fundamental theoretical understanding of how the global system is behaving. The global reaction must often be determined by extensive empirical data collecting. More explicit explanations on the artificial potential field methods can be found in [2] and [4]. Figure 2: Potential field control 2.3. Applications of multi-agent systems The use of an unmanned vehicle has several advantages. It can, for example, be used in situations that are too dangerous for human beings like fire, toxic environments, The vehicles can also be made much smaller, as a human doesn t have to fit into it. This makes it again much more suitable for several applications. Next to the advantages of one unmanned vehicle, several more advantages come from the cooperation between these vehicles. Several small vehicles can be stronger, more flexible, easier to handle, cheaper, more robust, delivering a higher performance than 1 big vehicle for example. Also 5

14 from nature, we can see that working in a group has serious advantages, a school of fish or a group of birds for example. Following, we give some examples of typical applications where a group of vehicles is preferred: Search and rescue: a coordinated group of vehicles can cover an area much faster than one vehicle, and thereby find something or someone much faster. Mapping Moving objects: a lot of agents with a small power can make the overall power greater than the sum of all the small powers, by coordinating the contact points for example. Multitarget observation: when you want to track several objects that can go different directions. Traffic simulations: Simulation of the phenomena happening in a dense traffic situation. Competitions: Robot wars or robot soccer for example. Formation: Each robot can have his own function, and all the robots can be complementary for example. By staying in a formation they are very strong together. Figure 3: multi-agent systems applications 6

15 3. Theoretical aspects 3.1. PID control The PID controller is a feedback controller widely used in industrial systems. The controller calculates the error value between a measured process output and a setpoint for that output. It adjusts the inputs in order to minimize this error. PID controllers are the best controllers if the underlying process is unknown. However, in order to have the best performance the parameters of the controller should be tuned according to the nature of the system. The PID controller consists of 3 terms, with each one specific parameter: the proportional, the integral and derivative term. A block diagram of a PID controller is shown in the picture below. Figure 4: PID control block diagram The proportional term takes into account the current error. If the value of this parameter is set very high, the system will be very reactive, but will also overshoot and oscillate a lot. Lower values result in a system that is less responsive, but also more stable. If only the P-term is used in the loop and there is no integrator in the system, the output will have a steady-state error in the response to a step input. The integral term takes into account the sum of recent errors. It will result in a steady-state error which is equal to zero for a step input and it makes the control loop much more responsive. This term causes overshoot and less stability. The derivative term bases its reaction on the rate at which the error has been changing. This term stabilizes the control loop and reduces the overshoot caused by the integral term. The calculated input is the sum of the three terms. By tuning the three parameters correctly, according to the specific system, the reaction of the loop can be optimized. If the system is known, 7

16 the parameters can be calculated theoretically. If the system is not perfectly known, empirical tuning methods exist, of which a few will be shortly described here. The PID controller is popular and efficient, but it has limitations. The system should be linear for example and if there is a lot of noise in the measurements, the derivative term amplifies the noise and makes the loop unstable Manual tuning As mentioned before, the output of the controller, or the input to the process, is the sum of three terms. Ach term has its own general characteristics. The three terms cannot be optimized separately, but a good response can be achieved by tuning manually if the typical characteristics of each parameter is known. The characteristics are given in the table below. Figure 5: PID manual tuning guidelines By testing and keeping in mind the above mentioned characteristics of the different parameters, a satisfactory response can be reached by tuning manually Autotuners Another way of tuning the parameters of a PID controller is by using autotuners. Autotuners give a relation between suggested values for the three PID parameters and characteristics of a relay-test response. An example and the characteristics of a relay-test response are given in the figure blow. Figure 6: Relay test 8

17 The table below shows how the PID parameters are determined according to three of these autotuners. Figure 7: Autotuner parameter formulas The parameter K c is given by the following relation between the input and output of the relay test: K c = The first two autotuners mentioned are not valid for pure second order systems. For this kind of systems, the third autotuning method should be used. In this method a delay time is incorporated in the relay test Ziegler-Nichols The Ziegler-Nichols tuning method is not based on purely experimental results. It applies to first order systems with or without delay time and it is used when the main characteristics of the system are known. The relation between the system characteristics and the PID parameter values were 4. d π. a determined empirically. The figure and table below show how the values are determined. Figure 8: Ziegler-Nichols 9

18 3.2. Model based predictive control The EPSAC approach In model based predictive control (MBPC) a process model is used on-line for calculating predictions of the future plant output and for optimizing future control actions. Calculating the future plant outputs depend on the quality of the available plan model. The optimizing future control actions are determined by minimizing a cost function. This cot function includes the errors between the desired and predicted process outputs and the required control effort. The most important differences between a MBPC control method and a PID are that the MBPC method needs a good model and requires more computational effort, but the result is much more optimized. The two control methods are used in industry as complementary control methods. The PID controller controls the greater part of control loops, while MBPC takes care of the fewer, but economically more important loops. EPSAC, or NEPSAC for non-linear systems, is one method in the group of MBPC control methods. The principle of MBPC control methods will be explained shortly MBPC principle The principle [22], or strategy, of a model based predictive control is explained according to the figure below. Figure 9: MBPC principle At each moment, the process output y(t+k) is predicted over a time horizon k=1..n 2. This is done by simulating with the model, based on previous inputs and outputs and the future inputs (u(t+k t)). 1) A reference trajectory, r(t+k t), is defined as the way we want to guide the output to the setpoint. 2) The control actions, u(t+k t), are calculated in order to minimize a specified cost function, depending on the predicted control errors (r(t+k t)-y(t+k t)). In most MBPC methods there is some structuring of the future control law. This is characterising for the specific method. This will be explained later for the EPSAC method. 10

19 3) The first element u(t t) of the optimal control vector u(t+k t) is actually applied to the real process. The next time sample the vectors are shifted one position, a new measurement y(t+1) is taken and the whole process is repeated. The process is modelled as shown in the picture below (generic process model). Figure 10: Generic process model The disturbance n(t) includes the effects in the measured output y(t) which do not come from the model input u(t) via the available model. These non-measurable disturbances have a stochastic character with non-zero average value and can be modelled by a coloured noise process (n(t) = C(q - 1 )/D(q -1 )*e(t)). The prediction of the output is then given by: y(t+k t) = x(t+k t) + n(t+k t). The prediction of x(t+k t) is done by the model (x(t) = f(x(t-1), x(t-2),, u(t-1), u(t-2), )). The prediction of the noise n(t+k t) is done by the disturbance model mentioned above The EPSAC approach In EPSAC, the future response is considered as being the cumulative effect of two effects: y(t+k t) = y base (t+k t) + y optimize (t+k t) y base (t+k t): Effect of the past control and the base control scenario u base (t+k t), which is defined arbitrarely for linear systems (e.g.: u base (t+k t) = 0). y optimize (t+k t): Effect of the optimizing future control actions: δu(t+k t) = u(t+k t)- u base (t+k t), for k=1 N u. N u is the chosen control horizon. The figure below clarifies the EPSAC control idea. Figure 11: EPSAC approach 11

20 From this figure it s obvious that y optimize (t+k t) is the response to a series of impulse inputs and a step input. The impulse input δu(t t) results in a contribution h k δu(t t), δu(t t) in h k-1 δu(t t), The step input δu(t+n u -1 t) results in g k- Nu+1 δu(t+n u -1 t). The cumulative effect of all impulses and the step are then given by: y optimize (t+k t) = h k δu(t t) + in h k-1 δu(t t) + + g k- Nu+1 δu(t+n u -1 t) The parameters h i (i = 1 N 2 ) are the coefficients of the unit impulse response, while the parameters g i (i = 1 N 2 ) are the parameters of the unit step response. This leads to the main EPSAC equation: Y = Y base + GU, where: The cost function is defined as a quadratic form in U: V(U) = [R- Y base -GU] -1 [R- Y base -GU]. The optimal solution is then given by: U* = [G T G] -1 G T (R-Y base ). The actual input to the process is determined by: u(t) : u base (t t) + U*(1). The algorithm can easily be expanded to MIMO systems by the use of matrices NEPSAC for non-linear systems The previously explained strategy is valid for linear systems, but for non-linear systems some modification to the algorithm must be made. This is because in the EPSAC approach superposition is used in the prediction of the future outputs(y(t+k t) = y base (t+k t) + y optimize (t+k t)). Superposition cannot be used in non-linear systems. In order for the theory to be operational on these non-linear systems too, y optimize (t+k t) must be made equal to zero. This can be done by the right choice of u base (t+k t) and implementing an iterative procedure, as is explained below: 1) Select an initial u base (t+k t), with k = 1 N u -1. The closer to the optimal u(t+k t) this is chosen, the better. A goos initial guess is u base (t+k t) = u base (t+k t-1). 2) Calculate the optimizing inputs δu(t+k t) by the same procedure as described before. The reulting controls u(t+k t) = u base (t+k t) + δu(t+k t) are not optimal because the superpostion principle does not hold for non-linear systems. However, the calculated inputs are closer to the optimal inputs than the initial guess of u base (t+k t) alone. 3) Now choose u base (t+k t) equal to the previously calculated u(t+k t) and return to step 2. 12

21 By implementing this iteration, the optimizing inputs δu(t+k t), and tehreby also the optimizing predicted outputs y optimize (t+k t) are driven to zero, resulting in optimal inputs for the non-linear system. This procedure needs to be repeated every sample. At last we also have to mention that for non-linear systems the G-matrix for optimization has to be modified every sample, according to the working point the system is working around at that moment. 13

22 4. Model predictive control 4.1. Model 1: kinematic leader-follower model [12] Mobile robots move in a horizontal plane. This means that 2 coordinates are necessary to determine the position of a robot and 1 coordinate to determine the orientation in this plane. These 3 coordinates can be chosen relative to a fixed world frame, or relative to another robot, with his own position and orientation. In the second case the world frame is actually fixed to the first, also called the leader, robot. The picture below shows this set-up, and how the coordinates can be chosen. A leader-follower formation is built from couples of 2 robots. There is always 1 leader and 1 follower. The leader acts independently and the follower tracks this leader as good as possible. In other words, the situation between the 3 rd robot and the 2 nd is exactly the same as between the 2 nd and the 1 st robot. For that reason, the tracking problem of the follower with respect of the leader is the clue and the basic element to understand and to control. Figure 12: model 1 The position of the follower robot (F) relative to the leader robot (L), is determined by the three coordinates (ρ, ψ, β). ρ is the distance between the two robots, ψ and β determine the orientation in the plane of the two robots with respect to each other. If we want to maintain a leader-follower formation, this means that these 3 parameters should stay constant, or that the inputs have to be chosen in a way that brings these three parameters in the fastest way to the desired values. The inputs to the robots are the linear speed, which is in the same direction of the robot s orientation, and the rotational speed, which is defined here as the derivative of θ F (with respect to the world frame). The system, being the follower robot, has thus 3 controlled variables (outputs) and 2 control variables (inputs). The two inputs have an effect on all three of the outputs. In other words, there is a coupling between the three outputs and the two inputs. The system that is defined here, is a MIMO 14

23 system and can be represented by a model. It s obvious that the model is a static model, which calculates the future path, based on the present input and the last output (or position). The state of the model is chosen the same as the outputs, being the parameters ρ, ψ and β. We derive the model by finding the relation between the derivatives of these parameters and the two inputs. The result will be a number of differential equations. The immediate change of the first parameter, ρ, over time can be determined by looking at the speed vectors projected on the direction of the line that connects the two robots. With the parameters shown in the picture above, we come the following equation: ρ = v L cos ψ π v F cos β + π π ρ = v F cos β + π v L cos ψ The immediate change of the second parameter, ψ, over time can be determined in the same way. It is influenced by the difference in the speed vectors projected on the perpendicular direction to the line that connects the two robots, the distance between the robots and the rotational speed of the robots. The second differential equation is determined below: ψ = v F sin β + ψ π ρ + v L sin ψ π ρ ω L ψ = sin β + ψ ρ v F + sin ψ ρ v L ω L The third and last differential equation is the immediate change of the third parameter, β, over time. This can be done by just differentiating the equation by which β is defined: β = θ L θ F β = ω L ω F The model of this 2-robot system is given by 3 coupled non-linear differential equations. These cannot be solved analytically. To solve the equations we make use of the ode45 command in Matlab and determine at which times exactly we want to know the values of the three parameters. The command solves the differential equations simultaneously and numerically. The times we want to know the values are multiples of the sample time we set. The model can be solved when a start position and input are given. The Matlab script for this can be found in appendix 11. The script is made as a function, so it can be called in the control script that will be explained later. The parameters are the velocity and rotational speed of both the leader and follower, the sample time and the start values. The leader robot moves independently and the inputs to this robot can be chosen arbitrary. The goal is thus to find the best combination of inputs for the follower robot, based on the previous values of 15

24 the outputs and inputs, to keep the three output parameters as close to the setpoint as possible, and this under the influence changing input values for the leader robot. Since the model is a static (kinematic) model, it serves as a prediction of the future path, based on only the present input and the previous output (or position). The dynamics in this model don t come from the robots itself, but from the coupling of the inputs to the outputs. To find the right combination of inputs, we can use a model predictive control, like EPSAC. Since the model is nonlinear, it s more appropriate to implement NEPSAC Model 2: Kinematic robot model [11] In the previous model, the inputs of the follower robot were defined as the velocity and the rotational speed. The robot was represented as a vector, which is not the case in reality. A robot mostly consists of 2 wheels, left and right, which are powered separately by motors. The combination of the left en right speed of the motors result in a certain velocity and rotational speed. With another model, which will be presented here, it s possible to determine the position of a robot in a fixed world frame, based on only the speeds of the left and right wheels. Part of this model, which converts the speeds of the two wheels into the velocity and rotational speed could actually be used as a conversion to determine the desired speeds of the two wheels in the previous model. This model, which focuses on the kinematics of one robot on its own, has two inputs, the speeds of the wheels, and 3 outputs, the position and orientation coordinates with respect to the world frame. If both the leader robot and the follower robot are represented in this world frame, the distance and orientation of the two robots relative to each other can be determined, and a formation control algorithm, like NEPSAC, which is presented before, can be developed. Since the approach is completely similar to the one applied before, I will only describe the kinematics of one robot here. It s convenient to understand that there is a coupling between the speeds of the two wheels and the velocity and angular speed. In the section about the practical position control, we decouple these 2 outputs and inputs. The figure below shows the robot with its coordinates and orientation in the world frame. Figure 13: Model 2 16

25 The coordinates of the robot in the world frame (X,Y) are (x, y, θ). The first two determine the position, the third one determines the orientation. For a mobile robot, or any moving object, an immediate centre of rotation can be found (ICC). This centre of rotation is on a line that is perpendicular to the forward speed. If the speed of the left and right wheels are called v L and v R, and the distance between the two wheels is L, then the rotational speed of the robot around this centre of rotation can be determined by the following equations: ω t = v R(t) R + L 2 ω t = v L(t) R L 2 ω t = v R t v L t L v t = ω t. R = 1/2(v R t v L t ) These formulas determine the coupling between the rotational speed and the velocity, due to the difference and the sum of the speeds of the two wheels. To determine a model for the position and orientation of the robot in the world frame, we have to rotate the speed vector between the frame that is fixed with the robot and the world frame, as shown below: x = v t. cos θ t y = v t. sin θ t θ = ω(t) If the world frame is thought to be fixed with a leader robot, then the three parameters from the first model can easily be calculated again NEPSAC implementation and results The first model is chosen to implement the model based predictive control on. As mentioned before, the model is kinematic and non-linear. The model can predict the three outputs, based on the current position and inputs for both leader and follower, being ρ, ψ and β, as described above. The follower robot does not know the inputs that are given to the leader. The only variables he knows are the previous inputs applied and the past and current outputs. With the help of the NEPSAC model predictive control we can determine the best future inputs to maintain the desired values in the outputs and this with a minimum cost for the inputs. The Matlab code of the implementation can be found in appendix 12. The system is non-linear, therefore we applied the non-linear EPSAC. This means that we make use of the series/parallel 17

26 implementation and that there is an iteration loop in order to reduce the optimizing inputs. This is necessary because u base should be as close to the optimal input as possible in order to avoid superposition, which cannot be used with a non-linear model. Another modification that must be made with the non-linear model predictive script is the determination of the G-matrices. If we were working with a linear model these would be fixed. Because of the non-linearities the G-matrices have to be determined every sample because we are working in a different working point every sample, especially when the inputs of the leader change. The G-matrices are being calculated as the difference between a simulation with the previous inputs and a simulation with the previous inputs plus a step, relative to the step height. The other parts of the control script are a straight forward implementation as described in [22]. Too see the controller performance, we applied a change or disturbance in each of the inputs of the leader robot. The results of changing the linear speed of the leader is given in the graphs below. The graphs represent, the three outputs (ρ, ψ, β) as described in the model above, the chosen inputs to the leader (v L, w L ), the optimized calculated inputs by the controller to the follower (v F, w F ) and the optimization inputs (Udelta v F, Udelta w F ) which should be smaller than 10-3 for the superposition in the algorithm to be valid. Figure 14: NEPSAC results - change in v_l Conclusion The linear speed of the leader robot is chosen to change 4 times, first three time an increase of 0.1 m/s and then back to the original speed of 0.2 m/s. We can obviously see that the distance is controlled very well (rho). It first increases, because of the sudden higher speed of the leader, but the controller makes that the follower follows quite fast. We can also see in the input of the follower for the linear speed, that a higher speed than the equilibrium speed is applied first in order to make up for the lost terrain that the leader caused by accelerating. After that the follower 18

27 converges rather quickly to the same speed as the leader. The optimization process is working properly because the optimized inputs are held beneath the desired value of At last we can also see that although only the linear speed is changing, there is also a small change in the angles (psi & beta) and an input for the rotational speed of the follower. These effects are very small (~10-10 ) and due to the very small linearizing in the calculation of the G-matrices. If the step that is used to calculate the matrices is reduced by a factor 10, the input of the rotational speed of the follower and the effect in the angles are also reduced by a factor 10. This effect can thereby be neglected. A second test is performed by applying a change in the rotational speed of the leader. The results of the simulations are given in the graphs below. Figure 15: NEPSAC results - change in w_l Conclusion We can see that a short change in the rotational speed of the leader has a much bigger influence. The three outputs are influenced at the same time and they all have to be brought back to their own setpoint, while all influencing each other. It s obvious that also from the set-up of the model, this is a difficult situation and certainly when the cost should still be minimized. Therefore it takes a very long time for the outputs to be brought back to the setpoints. Both inputs of the follower act now. The optimizing inputs are still within the desired area. 19

28 5. Practical implementation of a leader-follower formation 5.1. Practical set-up The SRV-1Q robot After getting familiar with the basics of formations and mobile robots, it s interesting to implement and investigate a practical implementation of a mobile robot formation. In order to do this, we chose a mobile robot that is sophisticated enough to have a good control. This means that we need some kind of measurement device or sensor to measure the absolute or relative position of the robot, means of communication, calculation centre on- or off-board, a decent driving mechanism and an open-source design in order to have enough application freedom. In the same time, the robot should not be too expensive, as the goal is to have many robots and it should be possible to finance them. The mobile robot that was the best candidate to suffice all the requirements is the Surveyor SRV-1Q blackfin robot from Surveyor Corporation. The robot is constructed and sold by the company inertia-labs, a company in California, USA. Figure 16: SRV-1Q robot All features and hardware specifications can be found in on the website of the surveyor corporation [23]. We will highlight the most important aspects of this robot here. The driving mechanism of the robot consists of 2 tank-like threads, powered by 4 wheels, each with its own dc motor as propulsion. The motors are controlled 2 by 2, left and right. It s not possible to control the 4 wheels separately, which would be unnecessary because of the tracks. The camera on board is a blackfin camera of which different resolution settings can be chosen and it has a frame rate of 30fps. There is an on-board Flash memory with a C interpreter which can interpret simple programs written in a limited C language. The programming protocol for these C programs can be found in on the website of the Surveyor corporation. The on-board chip makes it possible for the robot to act autonomously, according to the program that is uploaded into the memory. 20

29 The robot also has several pre-programmed functions, which can be used when connected to the robot through an interface on a PC, but we will come back to that later. The command protocol can be found on the website of the Surveyor corporation. The communication of the robot with other hardware, like a PC, is done over a Wi-Fi network. The robot has its own network and a fixed IP address ( ), which makes it possible to connect over TCP/IP communication means in different interfaces Communication interfaces There are several ways of opening a communication channel with the robot. We made use of 2 direct interfaces, Putty and Tera term, in which it is easy to send commands directly to the robot. The others are programs with built-in TCP/IP communication protocols, like Matlab or C#. These last interfaces give us the possibility to send commands and receive data in the form of an algorithm. The putty and tera term pro interfaces can be downloaded for free from internet and are quite user friendly. For this the IP address ( ) and connection port from the PC (10001) are necessary. Figure 17: Robot communication interfaces As mentioned before, these interfaces are only good for direct contact with the robot, meaning command and immediate response, without the possibility of processing or saving data in between. In order to do that we developed our own functions in Matlab with the help of the instrument control toolbox, which can establish a TCP/IP connection between the PC and the robot. The written functions are described below and can be found in appendix 1. survconnect.m: Connects to the robot through the appropriate IP-address and port. The output is an object, which is connected to. survdisconnect.m: Disconnects the communication with the robot. The input is the object, which is connected to. 21

30 setbin.m: Sets the range of YUV indexes by which a range of colours is determined. This is stored in the robots memory. When the blob detection on-board is activated, the software will detect pixels with a colour that lies in the given ranges. YUV indexes of a colour are similar to the better known RGB indexes. The conversion is the following: Y = R G B U = 0.492(B - Y) = R G B V = 0.877(R - Y) = R G B Another way of determining the YUV index of a pixel in the camera s view, is to use the vp function of the camera that immediately returns the index of the given pixel. The use of the vp command can be found in the description of the functions (website Surveyor corp.). survgetblob.m: Captures an image and looks for the pixels in the picture with an index that lies in the YUV ranges, set by the setbin.m command. The robot returns a string of data, which contains the area and the coordinates of the blob. This command parses the string and outputs the area, the x- and y-coordinate as doubles to the workspace. setresolution.m: Sets the resolution of the camera. The input is a, b, c or d, which correspond respectively to the resolutions 160x120, 320x640, 640x480 and 1280x1024. drivemotors.m: Sends a drive command to the robot. The inputs are the left speed and the right speed. The speeds are scaled speeds, from -100 to +100, being the maximum backward and forward speed respectively. convertrange.m: The actual speed values that have to be sent to the robot must lie in the interval between 0 and 256. This command converts the [-100, 100] range to the [0, 256] range. We also have some Matlab functions that don t make use of this instrument control toolbox, but the connection is made over a TCP/IP connection that is written in Java. We found these functions on the website of the Drexel University. We only used these functions for testing in the beginning of the practical implementation and for getting a picture on the remote PC. For writing commands and reading information that is needed for further control of the robot, we chose to write our own functions, as mentioned above. Later on in this script we will see that we also made use of Simulink and C# as interfaces with the robot. The same functions are needed there. The idea behind the functions are the same, but the implementation is different. These scripts can also be found in one of the appendixes, but we will come back to that in the appropriate section. 22

31 Speed (m/s) Hardware test of the Motors As mentioned in the previous section, the command that we can send to the motors involves the left speed and the right speed. These inputs are not the actual speeds though, but rather a value that is proportional to the voltage to the motors. The values that we can give as inputs are values between -100 and 100, or if we only focus at the forward movement from 0 to 100. The first thing we want to do, is to check with what actual speed, in m/s, the inputs correspond. Since the motors are controlled in open loop, we have to be sure that the robot is at full speed before measuring. Therefore we constructed the following test: Figure 18: Motor test set-up We measure the time that it takes the robot to cover 1m distance at various inputs [0, 100]. The same input is applied to the left and the right motors, in order to move in a straight line forward. For every input we do the measurement 5 times and then we take the average. We did this because the starting and stopping of the chronometer happens visually, and in this way we want to decrease measurement inaccuracies. Once more I want to draw the attention to the fact that this is in regime on a flat surface. The motors have a time constant with which the speed is built up, but we will also come back to that later. Since the speed is controlled in open loop this will differ if the surface is not flat or if it is made out of another material. This test has as a purpose to have an idea how good the motors are and what the limitations are in this situation. The result of the test is given in the graph below, which shows the relation between the input and the real output speed. 0,5 0,45 0,4 0,35 0,3 0,25 0,2 0,15 0,1 0, Input Figure 19: Motor test result 23

32 The graph of the test shows us some interesting specifications of the driving mechanism on the SRV- 1Q robot. First of all, the robot doesn t move at an input that is lower than a certain threshold. When the battery is fully charged the threshold is 18. This means that we cannot build up from a zero speed. There is a so called dead-zone between input 0 and input 18. Next we see that the speed saturates around 0.45 m/s. As mentioned before, the input is proportional to the voltage that is applied to the motors. For DC motors, as we have here, it s normal that they saturate at high input voltages. This means we only have a quasi-linear input-speed behaviour around the input 30. This will be the optimal area to work in Blackfin camera The only feedback or measurements we have from the robot are the measurements we do with the camera on-board. A picture of the camera that is used, is given below. Figure 20: Blackfin camera By measurements we mean that the camera films in front of the robot, with a frame rate of 30fps. The goal is to get information out of this picture, by using image processing, by which we can determine the relative position of the robot with respect to the part of the image that we are tracking. The image processing can be done off or on-board. For on-board image processing, there is a pre-programmed function available, but we will come back to that later. In first instance, the purpose of the project is that the robot can track another object, or ultimately another robot. In order to do that, it should be able to distinguish the leader from the rest of the environment, that is also captured in the picture. To accomplish this, we make use of the so called blob-detection. What it actually does is the following: We mark the leader or the object that should be tracked by a coloured shape that is quite different from the rest of the environment. By image processing we can determine the coordinates of the centre of the blob and the amount of pixels of it with respect to the image coordinate frame. The picture below makes it a bit clearer. 24

33 Figure 21: Picture coordinate frame The red area is the whole picture, where the yellow area is the blob that we detect. The origin of a frame captured by a camera is always placed in the upper left corner. Every row of pixels corresponds to a certain y-coordinate and every column of pixels corresponds to a certain x- coordinate. As mentioned before, the blob detection can be done on- or off-board. In first instance, we wanted to accomplish our own image processing algorithm with the help of the Matlab Image processing toolbox. The program works, but seemed not to be very useful because of disturbing communication delays between the robot and a remote PC over the Wi-Fi network. Image processing The image processing program can be found in appendix 2. The idea is that we can take in a video in which the blob, in this case, is a light, or at least something very white with respect to the background. The first part of the program is the blob detection applied on a fixed picture that is stored on the hard drive of the PC. The second part is the image processing applied on the video from the robot. The idea of the algorithm is the following 1) Take in an image: for this we make use of the Java based Matlab code get_srv_image.m. In order to wait for the image, a pause must be incorporated after the image request. 2) Convert the coloured image to an image that consists only of grey. Then we select an interval of grey intensity [240, 260], which corresponds to a very light grey, or in other words, white. 3) Look for areas (coherent discs with radius 20 pixels), that consist of pixels that belong to this grey intensity interval. 4) Convert the picture to a black and white picture, with only the areas selected before set as white. The rest is made black. 5) With the Matlab command centroids() (image processing toolbox) it s possible then to determine the centre of the blob. If the centre is plotted as a star on the original picture, you can see the centre moving together with the light, as a real-time video. This is one of the only algorithms where we made use of the Java based Matlab functions. Since we re not using this image processing algorithm any further, because of delay in sending the image 25

34 from the robot to the remote PC, we didn t find it useful replacing the functions by stand-alone Matlab functions. The other way of doing the blob detection is with the pre-programmed on-board command vb, or vblob for on-board C-program. With this command the on-board controller looks for all pixels with a colour that belong to the intervals of YUV indexes that have to be specified upfront. The command looks for these pixels and fits a box around the areas where there are neighbouring pixels that all lie in the defined colour region. It returns a string with the following information: amount of blobs, amount of pixels of the blobs, the two x-coordinates of the left and right side of the square fitted to the blob and the two y-coordinates of the upper and lower side of the square fitted to the blob. The pictures below show images from the on-board camera. It shows how the box is fitted around the coloured region. Figure 22: Blob detection 5.2. Position measurement Now that we are able to detect a blob in the picture we should extract information about the relative position of the robot with respect to the leader or the object that must be tracked. As mentioned in the previous section, we can determine the area of the blob (in amount of pixels), the x-coordinate and the y-coordinate of the blob in the picture. The idea is to translate this information into a distance to the blob and an angle at which the robot looks at it. This is shown in the picture below, where the blob is generated by the lamp. Figure 23: Position determination 26

35 y-coordinate of th center of the blob (pixels) Area (pixels) The suspicion was that the distance has an influence on the area of the blob and also on the y- coordinate of the centre of the blob. The angle, or the perpendicular divergence, should influence the x-coordinate of the centre of the blob. To confirm this and to determine the accuracy of the camera we did some tests. In the first test, we determine the three values (area, center_x, center_y) at different distances to the blob. The robot keeps on looking straight to the blob, in other words, there is no sideways deviation. The picture below clarifies the idea of the test. Figure 24: Camera test 1 The test is done 3 times and the results are given graphically in the pictures below Test 1 Test 2 Test 3 Distance to the blob (cm) Test 1 Test 2 Test 3 Distance to the blob (cm) Figure 25: Camera test 1 results The results of the tests show us that both the area and the y-coordinate of the centre of the blob change with a change in the distance of the robot to the blob. The area decreases if the distance is 27

36 bigger. The y-coordinate of the centre of the blob increases if the distance becomes bigger. This means that the centre of the blob will relatively move downwards if the robot is moved away from the blob. There is some measurement inaccuracy, and this especially in the area measurement. If 3 measurements are taken at the same position, the area may vary with some 100 pixels. The measurement in the y-coordinate of the centre of the blob is quite stable, which means that mostly we have the same result for different measurements in the same situation. If it varies, it s not more than 1 or 2 pixels. This has as a consequence that the y-coordinate of the centre of the blob will be most useful to determine the distance from the robot to the blob. We must remark that the y- coordinate is not exactly linear with the distance, but the further we go, the lesser the difference in the y-coordinate of the centre of the blob when there is a difference in the distance. This means that we will have the best results, or best resolution so to say, at small distances. The measurement inaccuracies that can appear are less important too then. If we try to keep the distance that corresponds to a value for the y-coordinate of the centre of the blob of 60 for example, we can assume that the characteristic is linear in the neighbourhood of that point. In the second test, we don t put the robot in positions that are on a straight line to the blob, but in positions that deviate perpendicularly at a distance of 30 cm, like shown in the picture below. Again we determine at each position the three values (area, center_x, center_y). Figure 26: Camera test 2 Also this test is done 3 times and the graph below confirms our suspicion. 28

37 x-coordinate of the center of the blob (pixels) Test 1 Test 2 Test Perpendicular distance to the blob (cm) Figure 27: Camera test 2 results The graph shows indeed that the x-coordinate of the centre of the blob changes with the perpendicular distance from the robot to the blob, or in other words, the angle. The measurements are practically always the same and the characteristic is very linear, which makes the x-coordinate of the centre of the blob perfectly useful for controlling the angle from the robot to the blob. The limitations on the angle under which the camera can still detect a blob is about ± Blob requirements and consequences The characteristics that we measured above are very useful, but are highly dependent on the kind of blob, the position of the blob with respect to the camera and the resolution. We did the same tests with two kind of blobs. The first one was with a lamp. The lamp has as advantage that the colour doesn t change with the orientation of the blob or light influence from outside or from artificial light in the room. The disadvantage though, is that the lamp doesn t really have a clear border in the picture, so measurement inaccuracies are bigger. Also, the lamp is placed close to the floor which is quite reflecting and sometimes adds an area to the blob or will be seen as a second blob. The other blob we tested, is made of a coloured paper (yellow) which is a different colour from the objects in the environment of the blob. The advantage of this blob is that it has a clear border, and if the colour ranges are set right the measurements are very stable and accurate. The disadvantage is that the colour changes under the influence of other light situations. The way to avoid this is to widen the colour ranges. The ranges cannot be set too wide either, because otherwise other objects in the neighbourhood will be detected as blobs too. This requires some trial and error to find the optimal colour ranges. The yellow paper we use has the following ranges: Y = [170,210], U = [75, 29

38 115], V = [120,150]. The characteristics presented in the previous section are for this yellow paper blob. The position of the blob with respect to the camera is important too, especially the vertical position. If the blob is placed completely above the height of the camera, we get the characteristics as presented in the previous section. If the blob is placed completely beneath the height of the camera, the characteristic of the y-coordinate of the centre of the blob will be reversed, meaning that the y- coordinate will decrease with an increasing distance between the robot and the blob. If the blob is placed on the same height level as the camera, the measurements for the y-coordinate of the centre of the blob will have a very limited range. This can be understood as following. When the distance between the robot and the blob decreases, the upper edge of the blob moves up in the picture, while the lowed edge moves down. The area increases indeed, but the y-coordinate of the centre of the blob will only change slightly, as the upper and lower edge movement in the picture compensate each of the partially. If the vertical centre of the blob is exactly put on the height of the camera there is no change of the y-coordinate of the centre of the blob at all. Figure 28: Position of the blob 30

39 5.3. Control in two directions As mentioned before, the goal is to form a formation of several robots, which can follow each other maintaining a certain distance from each other. In order to do that, the first step is to make a controller for one robot to follow another, or to follow a certain object. Once this step is completed, we can go to multiple robots which will each handle the same control structure. This can be done, because our goal is to make a formation that consists of agents, which calculate the control actions based on only their own measurements. In this section, I will describe the work we ve done in order to get a good tracking. In first instance, we tried to track a light bulb, and this in 2D. This means that we were able to control the distance, and the angle as well. Using the light bulb, and the big distance as well have some characteristics and consequences. In the process of developing this tracking control, we also spent a lot of work investigating how we can do it practically, with respect to the communications. Several programming methods are investigated with respect to advantages and disadvantages in the next section Set-up The set-up is more or less the same as described before. The blob consists of a light bulb fixed in a wooden holder. The choice for a light bulb was because the colour doesn t change under different lighting conditions. The centre of the light is always seen as a purely white colour, which is good distinguishable from the rest of the environment. This was also chosen because the light bulb emits enough light in order to cover a decent area. This is necessary because the goal of this part was to control the robot at a big distance. If the area of the blob is not big enough, the camera won t be able to see it. The YUV-indexes of the white light are the following: Y = (255, 255) U = (128, 128) V = (128, 128) The resolution of the camera is set to 640x480. This resolution was chosen because we maintain a big distance and it s necessary to have enough pixels to determine the blob area and also to have a sufficient measurement accuracy. The last reason is because, as we showed in the set-up section, that at a big distance the y-coordinate of the centre of the blob doesn t change a lot with a difference in the distance. We also have to remark that the characteristic of the y-coordinate of the centre of the blob with respect to the distance is inverted in comparison with the one described before. This is because the blob is under the height of the camera. The characteristic is given in the picture below. 31

40 y-coordinate of th center of the blob (pixels) Test 1 Test 2 Test 3 test Distance to the blob (cm) Figure 29: Camera test on y-coordinate of the centre of the blob As we can see in the graph, the measurements are not very accurate. There are some disturbances, or variations on the measurements when different measurements are taken in the same situation. This is because of the reason mentioned before, that the light bulb doesn t have a clear contour. This is an aspect that makes the control more difficult, but also more interesting. We don t have this problem if we use a coloured paper for example. We applied this later on a shorter distance, but we first developed control with this characteristic. We can also see that the camera gets blinded when the robot comes too close to the light. This is not really a problem as we aim to control at a big distance (1m) anyway Control strategy The robot we are using, the Surveyor SRV-1Q, has 2 tracked wheels. The inputs to the robot are two speeds, the left and the right speed, in a range from -100 to 100. The robot is controlled open loop and has thereby no speed control onboard, so the inputs are actually values that are proportional to the applied voltage to the motors. As described before, we take measurements to control both the distance, or straight forward movement, and the angle, or rotational movement. As both movement modes are controlled by the two tracked wheels, the two movements are obviously coupled. This means that we have two inputs, the left and right voltage inputs, and two outputs, the y-coordinate and the x-coordinate of the centre of the blob. This is a MIMO-system of which both inputs are coupled to both outputs. Figure 30: MIMO system 32

41 To have an optimal control strategy, it s impossible to split the control of both outputs. The model for this MIMO control is a kinematic model which determines both outputs, based on both inputs, as described earlier in the script. The implementation of this was not done practically because of the limitations of the current communication channels and onboard processor, but we will come back to that later. In first instance, we will split the control of the two outputs. The control of both outputs is calculated separately, which gives us values for both inputs, for each control loop. Afterwards, both control loops are combined to determine 1 value for each of the two inputs. As described before, the distance from the robot to the blob is determined by the y-coordinate of the centre of the blob. Since we want to keep the robot at a fixed distance from the blob, this means that we want to keep the y-coordinate at the same value. We assume the variation of the y-coordinate linear with a variation in the distance. We can assume this if the variation of the distance is not too big. Also we can see in the figure above that the variation of the y-coordinate, with the exception of the measurement inaccuracies, is quite linear around the distance of 1m. The idea is to implement a P controller in both control loops. For the forward movement this means that both inputs are proportional to the error, being the difference between the measured y- coordinate and the reference in the y-coordinate. For the rotational movement we can do exactly the same. Only the inputs are not applied to both left and right, but only to one of them. One input will be different from zero and one input will be zero. In that way, the robot will turn. To combine the two control loops, we add the input values of both control loops. In that way, the robot will move forward or backward, based on the y-coordinate of the centre of the blob, and it will turn as a consequence of a difference in the speeds of the two wheels, based on the x-coordinate of the centre of the blob. The idea is given in the picture below. This is not the actual control script, but is rather an illustration of the control idea. Important to mention here is that the reference for the x-coordinate of the centre of the blob is the middle of the picture, being 640/2 = 320. This is because we want the robot to follow the blob as a tail, in other words, the robot should look straight to the blob. This means that the blob should be in the centre of the picture, and since the origin of the picture coordinate frame are in the upper left corner, the reference for the x-coordinate is 320, and not 0. If one desires the robot not to look 33

42 straight to the blob, but to keep a certain angle between the orientation of the robot and the straight line with the blob, this reference in the x-coordinate can be set to another value. It s obvious from the idea script in the picture above that the rotational speed ( speed_rotation ) is always positive, due to the abs function. If the x-coordinate is bigger than the reference value, this means that the blob is in the right part of the picture and that the robot should turn to the right. This is done by adding the rotational speed value to the left wheel, which makes the robot turn right. If the blob is in the left part of the picture, it s the other way around Control script The entire control script can be found in appendix 3. I will highlight in this section the ideas behind the different parts in the control script. The script is written with the C commands that are appropriate for the onboard processor (PicoC interpreter), so that it can be uploaded onto the robot and can run the control onboard. Control scripts were also made for Matlab and C#, but we will come back to that later. The first part of the script consists of defining all parameters used in the algorithm. Important to remark is that the PicoC interpreter can only work with integers, and not with floating point numbers. This is the reason why everything is declared as int. Also the colour and references are set. After that the control loop is started. The following code requests the information, being the area and x-coordinates and y-coordinates of the square fitted around the blob. The x-coordinate and y-coordinate of the centre of the blob are calculated: Important to notice is that the loop waits till the information arrives. This means that we don t set a certain sampling time, but that we do the control as fast as possible, as soon as the information is gathered. Next, the two P-controllers are applied and the inputs are added in order to get one value for each input. 34

43 In the last part of the control script above, the forward control is only applied when the difference between the setpoint in the y-coordinate and the measured y-coordinate of the centre of the blob is more than 8 pixels. This is done to avoid oscillations because of the inaccuracy of the measurements. This also means that we have an inaccuracy of about 4cm on the distance of 1m. The gains for the two P-controllers were tuned manually. There is one more aspect that caused trouble though. The controllers worked good for higher speeds, but not for lower speeds, or in other words, small errors on the controlled variables. This is due to the dynamics of the motors. As mentioned in a previous section, the motors have a threshold, under which the robot doesn t move. The reaction was that the robot doesn t do anything as long as we stay under this threshold, and that there is a certain jump from the zero speed to the minimum speed. To solve this issue, we added an offset to the inputs, which brings the desired input speeds that were originally beneath the threshold now above the threshold. This has as a consequence that we also have a reaction for small errors in the controlled variables. 35

44 Since we add a constant value to the speeds calculated by the two control loops, we need to lower the gains. This because otherwise the reaction is too strong and there is too much overshoot. The idea is schematically shown in the pictures below. Figure 31: Dead-zone in motor characteristic The last part of the script sends some variables that we used in the script to a remote PC. The program for receiving this information is described in the next section Experimental results The data the algorithm sends to the remote PC are the left and right inputs to the motors, the time and the x-coordinate and y-coordinate of the centre of the blob. In order to receive this, a TCP/IP connection has to be made with the robot and this program should wait for the data sent by the robot. We can implement this in Matlab. The only purpose of this program is to receive data. It doesn t send any data to the robot and it waits infinitely till the data arrives. This means that the program will in no way interfere or delay the control of the robot itself. The receiving program can be found in appendix 4. With the function sscanf(temp, %d %d %d %d %d ), we can split the data, that was saved as a string, in the 5 parts, which actually contain the requested information. The only thing we send to the robot is in the beginning, Q, in order to start the onboard C program. We uploaded the C program onto the robot and activate it through the Matlab program, which also collects and plots the data afterwards. The most interesting part of a response is shown in the picture below. 36

45 Figure 32: P-control positioning experimental results The different parts and characteristics of the control response are explained below: PART 1 There is no change in the position of the object. The robot is looking towards the light, which corresponds with a setpoint for the x-coordinate of 340, and has the desired distance, which corresponds with a setpoint for the y-coordinate of 300. PART 2 Now we move the object that needs to be tracked, being the lamp. We move it sideways, leaving an error in the x-coordinate or the angle between the robot and the object, and slightly backwards, leaving an error in the y-coordinate or the distance between the object and the robot. The response in this part is that both left and right get a positive input, which is proportional to the error on the y-coordinate. The two inputs are not the same though. This is the result of the error on the x-coordinate. To compensate for this error, the right wheel has a slightly lower speed than the left wheel, causing the robot to turn to the right. The response of this difference is not immediately visible in the x-coordinate in part 2. This is because the difference between the input in the left and right wheel is relatively small with respect to the input to go forward. The gain in the loop of going forward is bigger than the gain in the angle control. This causes the robot to control the distance, or y-coordinate, mainly first, and only afterwards the angle. PART 3 The effect described in the previous part is completed here. In this part the y-coordinate, or distance, is stable around the setpoint for the y-coordinate. There is no input anymore to go forward. The only inputs remaining are the ones to control the angle, or x-coordinate. Now the difference is relatively significant and the robot turns quickly to its setpoint on the x-coordinate. The figure below 37

46 gives the effect of part 2 and 3 visually. If the lamp goes further from and to the side of the robot, the robot first moves forward in order to control the distance, and controls the angle only at the end. Figure 33: 2D controller effect PART 4 This part is the consequence of the previous part and demonstrates again the drawback of decoupling. While in the previous part the robot is turning towards the light, which means that only one wheel is moving, the distance to the light changes again. Now the distance is too small. The controller will add to both inputs the same amount again, and the y-coordinate, or the distance, takes over the priority again. This causes the x-coordinate, or the angle, to overshoot a little bit to the other side. Here the angle is controlled quite quickly because the error is small. The small error can thereby be controlled by the relatively small difference between the speed inputs in left and right. PART 5 In this part we get again the overshoot of the y-coordinate, or distance, as a consequence of the angle control. The overshoot is very small and controlled very fast. PART 6 In the end the setpoint on both the x- and y-coordinate are reached and the robot stays in rest at the desired distance and desired angle. With this response we have clearly shown that both inputs are controlled pretty well. The effect of decoupling is visible, but not very significant. The control on the distance has priority above the control on the angle, because of a higher gain and it works on both wheels, while the angle control only works on 1 wheel. The control on the angle happens mainly afterwards and causes the distance to change a little bit again. The overshoots are very limited with respect to the initial errors Control script languages and communication During the development of the controller, we tried a lot of strategies in order to run the controller. First we tried to do the control on a remote PC and communicate with the robot over the Wi-Fi 38

47 connection. The reason for this is because it is convenient and user friendly. It s also easier to save and plot responses than if you run the control on-board. We programmed the script first in Matlab, since this is the language that was best known to us. This didn t seem to work very properly because of variable delay and sample times. We wanted to improve the communication by using a program that is more suited for real-time applications. We tried to implement the control in Simulink, but came to the conclusion that Simulink is too limited to do TCP/IP communication for our application. Next we tried to program it in C#. This worked, but the delay was still too big. Then we came to the conclusion that it was the Wi-Fi communication that is the problem, so we programmed the script onboard, which has a much better result. We will now shortly describe how we attempted to do the several communications and what the advantages and disadvantages of each are Matlab As mentioned in a previous section, we can make use of the Matlab Instrument control toolbox to communicate with the robot. The TCP/IP connection is made an object in the workspace it can be handled as a normal variable. We constructed some functions in order to read from the robot and drive the motors. The control is done on the PC. The Matlab control script is similar to the one described above and can be found in appendix 5. Matlab is the first way we tried, because we are familiar with it and it s very convenient to store all kinds of variables in vectors during the control and thereby easy to plot. The drawback is that the sample time is long and variable, as shown in the picture below. Figure 34: Matlab delay time The control script requests the information of the x-coordinate and y-coordinate of the centre of the blob and waits for it, in order to process and determine the right inputs. As can be seen in the picture above, this waiting generally takes between 0.5s and 1s, which is rather long. The wait time, and thereby the sample time at which we can control the robot, is variable and sometimes shows peaks of several seconds. At this sample time, it s impossible to control the robot, unless the movement of the object that needs to be tracked is very slow, but this is not the purpose and thereby the Matlab script cannot be used. 39

48 Simulink In first instance we thought that it was due to the slow working of Matlab that the delay time for receiving the information from the robot was so long. So we tried to apply the script in a program that is made for real-time applications and has thereby much faster processing on a PC. We first tried to implement the control algorithm in Simulink. Here we can make use of the same Instrument control toolbox as in Matlab, by means of the blocks shown in the picture below. Figure 35: Simulink TCP/IP blocks There is a serious problem with these blocks though. There can only be one TCP/IP Send and one TCP/IP Receive block in the model. Since we need to send and receive different signals (receive information about the blob, send motor drive command, receive motor drive command response, ) with a different structure, and the structure of the received signal must be set beforehand in the receive block, it s impossible to implement our algorithm in the Simulink environment C# Since simulink was not an option to implement the algorithm, because of the TCP/IP blocks that are too limited, we tried the C# language. Some people advised us to use this language, because it s very fast and it s the best C language for networking, or communicating over a TCP/IP connection. Since this was a completely new language for us, we had to get ourselves familiar with the basics or it. After digging into the C# language protocols, syntax and TCP/IP communication methods, we managed to implement the algorithm completely. The C# script of the control algorithm can be found in appendix 6. The script provides a graphical user interface with buttons to start and stop the control and also boxes to set the motor values manually. Although it took quite some time to get to this point, it was not sufficient for our application. Again we determined the time that was necessary to go through one loop of the control algorithm, which consists mostly of waiting for the blob information of the robot and sending the motor commands. The delay time, or sample time with the control script run in C#, is shown in the picture below. 40

49 Figure 36: C# delay time As we can see in this picture, the delay time is mostly around 200ms, but has quite a lot of peaks going to 600ms or even 1s. The sample time response is better with respect to the Matlab figure, but still not very useful because of the higher peaks. After doing this experiment we concluded that the delay time could not be coming from the software we were using, but rather from the connection over Wi-Fi itself. This attempt was not a complete waste of time though, because it learned us the important basics of working with C#, which is a very popular language. The knowledge will be convenient to have for the future C-interpreter onboard After several attempts to run the control algorithm on board of a remote PC, we had to conclude that the communication over Wi-Fi takes too much time in order to control the robot properly. The only choice left is then to control the robot on-board. The algorithm is written in C, according to the C- interpreter guide (Website Surveyor corp.). The control algorithm written for the onboard processor was explained in the previous section. It now requires of course an extra program off board, on the remote PC, written in Matlab, in order to get some data and plot the responses and variables of interest. The sample time with this approach was determined and is shown in the picture below. Figure 37: Onboard C-interpreter delay time 41

50 As we can see in the plot above the sample time we can handle is much smaller with this on-board control. In this case the time delay is because of processing the picture and lies around 17ms. With this sample time, it s possible to apply a good control to the robot. We must remark that also the resolution of the picture has an influence on the sample time. This plot is made at the lowest resolution. The delay time with higher resolutions is higher, but still very low and stable with respect to the controls that need communication over Wi-Fi. This means that all control should be implemented onboard of the robot. Because of the limited capacities of the on-board processor, the amount and complexity of the control algorithms are very limited. This is the reason why the NEPSAC control could not be implemented practically Line tracking What we have been doing till now, is trying to track a light bulb in 2 coordinates, the distance and the angle. The reference distance was around 1m and the accuracy up to a few centimetres. In order to create a situation that leans more towards reality, we wanted to decrease the distance between the robot and the object to be tracked. The tracked object was replaced by a second SRV-1Q robot. This because in the end we want to have a real leader, which follows a predefined path and some follower robots that track the leader robot as good as possible. In order to be able to do this, some modifications must be made. The light bulb for example, that was used as the tracked object till now, is no option anymore. The fact that we replace this light bulb and that we decrease the distance between the robots have several consequences which will be described in this section. Furthermore we will focus on the straight line tracking. As mentioned in the previous section, there is a low coupling between the distance and angle controller loop. In order to get a good tracking control in the straight line first, we will focus on this. This way, the system is in principle simplified to a SISO system, as the two inputs to the left and right motors are theoretically the same and we only have to measure the distance. We will see later that, because of imperfections, this is not entirely the case. Because we work in one direction, we will also be able to study better the effects of the whole formation, by which I mean the distance from the 3 rd car to the 1 st for example. These effects are much more difficult to see when the robots are moving in a 2D-plane Practical set-up 2 As mentioned before, we would like to track a robot instead of the static light bulb. In order to do this we have to provide the tracked robot of a blob which the follower can detect. The light bulb we used is too large to mount on the back of the robot, and the robot itself has no obvious colour or shape that can be seen as a blob by the follower. The advantage of using a light bulb was that the colour doesn t change if the blob is moved under different lighting conditions. Therefore, we first thought of mounting some led lights. Mounting this was not obvious though. On the other hand, the light bulb also has the disadvantage of light scattering and reflection on surrounding objects, like the 42

51 floor for example. This means that it doesn t have a real contour and that measurements show some noise, by which I mean that the coordinates of the centre of the blob can change pretty drastically when the light moves. The effects are especially obvious for a small light, which we should need to be able to mount it on the back of a robot. So, unless some modifications are made to the surroundings, to avoid reflection for example, and to the robot in order to be able to mount such a light, a light is not the best choice anymore. Because of that we chose to create a blob out of coloured paper. The colour we chose is strong yellow, because it s quite rare in the environment we work in. The YUV ranges this colour lies in under the lighting conditions we work in, are Y = [140,210], U = [80, 115], V = *120,150+. As mentioned, since we don t use a light bulb anymore, the colour changes under different lighting conditions. That is why we now need a range of colours instead of one fixed combination of YUV values. This also requires that every time tests are done, the conditions must be the same. In our case that is with all window blinds closed and the artificial light turned on. The coloured blob is a rectangle of 1.5cm high, 7cm width and on a height of about 8cm. In order to mount it on the robot in front, we fixed it on a carton and glued the carton to the steel back of the robot. The carton is a good choice because it s quite light and will go easy with the movement of the robot itself, without vibrating too much. A picture of the construction is given below. The pictures are taken from the robot camera. The second picture is a representation of how well the robot can detect the blob. Figure 38: Blob detection at close distance Before, we were keeping a big distance between the tracked object and the tracking robot. This required the resolution of the camera to be set rather high in order to see enough coloured pixels to form a blob and to see an obvious difference in pixels when there is a difference in the distance. Since we want to work on a closer and more realistic distance, we are able to use a lower resolution. The resolution has a big influence on the sample time we can handle to control the robot. In the control algorithm, we request the information onboard of the robot from the camera. The program waits for this information and then moves on. The image processing takes the longest time though. There are four resolutions available and they each require a certain time to process the image. The bigger the image, or resolution, the higher the processing time. The typical sample time that can be handled with the different resolutions are listed below: 43

Group work to study a new subject.

Group work to study a new subject. CONTEXT SUBJECT AGE LEVEL AND COUNTRY FEATURE OF GROUP STUDENTS NUMBER MATERIALS AND TOOLS KIND OF GAME DURATION Order of operations 12 13 years 1 ste year of secundary school (technical class) Belgium

Nadere informatie

Concept of Feedback. P.S. Gandhi Mechanical Engineering IIT Bombay

Concept of Feedback. P.S. Gandhi Mechanical Engineering IIT Bombay Concept of Feedback P.S. Gandhi Mechanical Engineering IIT Bombay Recap Goal of the course: understanding and learning Assignments: optional to start with Contact hour with TAs: Monday AN: time? Meeting

Nadere informatie

De grondbeginselen der Nederlandsche spelling / Regeling der spelling voor het woordenboek der Nederlandsche taal (Dutch Edition)

De grondbeginselen der Nederlandsche spelling / Regeling der spelling voor het woordenboek der Nederlandsche taal (Dutch Edition) De grondbeginselen der Nederlandsche spelling / Regeling der spelling voor het woordenboek der Nederlandsche taal (Dutch Edition) L. A. te Winkel Click here if your download doesn"t start automatically

Nadere informatie

Chapter 4 Understanding Families. In this chapter, you will learn

Chapter 4 Understanding Families. In this chapter, you will learn Chapter 4 Understanding Families In this chapter, you will learn Topic 4-1 What Is a Family? In this topic, you will learn about the factors that make the family such an important unit, as well as Roles

Nadere informatie

MyDHL+ Van Non-Corporate naar Corporate

MyDHL+ Van Non-Corporate naar Corporate MyDHL+ Van Non-Corporate naar Corporate Van Non-Corporate naar Corporate In MyDHL+ is het mogelijk om meerdere gebruikers aan uw set-up toe te voegen. Wanneer er bijvoorbeeld meerdere collega s van dezelfde

Nadere informatie

Add the standing fingers to get the tens and multiply the closed fingers to get the units.

Add the standing fingers to get the tens and multiply the closed fingers to get the units. Digit work Here's a useful system of finger reckoning from the Middle Ages. To multiply $6 \times 9$, hold up one finger to represent the difference between the five fingers on that hand and the first

Nadere informatie

SAMPLE 11 = + 11 = + + Exploring Combinations of Ten + + = = + + = + = = + = = 11. Step Up. Step Ahead

SAMPLE 11 = + 11 = + + Exploring Combinations of Ten + + = = + + = + = = + = = 11. Step Up. Step Ahead 7.1 Exploring Combinations of Ten Look at these cubes. 2. Color some of the cubes to make three parts. Then write a matching sentence. 10 What addition sentence matches the picture? How else could you

Nadere informatie

Introductie in flowcharts

Introductie in flowcharts Introductie in flowcharts Flow Charts Een flow chart kan gebruikt worden om: Processen definieren en analyseren. Een beeld vormen van een proces voor analyse, discussie of communicatie. Het definieren,

Nadere informatie

ANGSTSTOORNISSEN EN HYPOCHONDRIE: DIAGNOSTIEK EN BEHANDELING (DUTCH EDITION) FROM BOHN STAFLEU VAN LOGHUM

ANGSTSTOORNISSEN EN HYPOCHONDRIE: DIAGNOSTIEK EN BEHANDELING (DUTCH EDITION) FROM BOHN STAFLEU VAN LOGHUM Read Online and Download Ebook ANGSTSTOORNISSEN EN HYPOCHONDRIE: DIAGNOSTIEK EN BEHANDELING (DUTCH EDITION) FROM BOHN STAFLEU VAN LOGHUM DOWNLOAD EBOOK : ANGSTSTOORNISSEN EN HYPOCHONDRIE: DIAGNOSTIEK STAFLEU

Nadere informatie

Satellite Orbit Determination with the Global Educational Network for Satellite Operations

Satellite Orbit Determination with the Global Educational Network for Satellite Operations Satellite Orbit Determination with the Global Educational Network for Satellite Operations Het project in het kort en de opgedane ervaringen Open Universiteit Nederland Faculteit Computer Science TouW

Nadere informatie

Het Effect van Verschil in Sociale Invloed van Ouders en Vrienden op het Alcoholgebruik van Adolescenten.

Het Effect van Verschil in Sociale Invloed van Ouders en Vrienden op het Alcoholgebruik van Adolescenten. Het Effect van Verschil in Sociale Invloed van Ouders en Vrienden op het Alcoholgebruik van Adolescenten. The Effect of Difference in Peer and Parent Social Influences on Adolescent Alcohol Use. Nadine

Nadere informatie

S e v e n P h o t o s f o r O A S E. K r i j n d e K o n i n g

S e v e n P h o t o s f o r O A S E. K r i j n d e K o n i n g S e v e n P h o t o s f o r O A S E K r i j n d e K o n i n g Even with the most fundamental of truths, we can have big questions. And especially truths that at first sight are concrete, tangible and proven

Nadere informatie

Appendix A: List of variables with corresponding questionnaire items (in English) used in chapter 2

Appendix A: List of variables with corresponding questionnaire items (in English) used in chapter 2 167 Appendix A: List of variables with corresponding questionnaire items (in English) used in chapter 2 Task clarity 1. I understand exactly what the task is 2. I understand exactly what is required of

Nadere informatie

Borstkanker: Stichting tegen Kanker (Dutch Edition)

Borstkanker: Stichting tegen Kanker (Dutch Edition) Borstkanker: Stichting tegen Kanker (Dutch Edition) Stichting tegen Kanker Click here if your download doesn"t start automatically Borstkanker: Stichting tegen Kanker (Dutch Edition) Stichting tegen Kanker

Nadere informatie

Het is geen open boek tentamen. Wel mag gebruik gemaakt worden van een A4- tje met eigen aantekeningen.

Het is geen open boek tentamen. Wel mag gebruik gemaakt worden van een A4- tje met eigen aantekeningen. Examen ET1205-D1 Elektronische Circuits deel 1, 5 April 2011, 9-12 uur Het is geen open boek tentamen. Wel mag gebruik gemaakt worden van een A4- tje met eigen aantekeningen. Indien, bij het multiple choice

Nadere informatie

Four-card problem. Input

Four-card problem. Input Four-card problem The four-card problem (also known as the Wason selection task) is a logic puzzle devised by Peter Cathcart Wason in 1966. It is one of the most famous tasks in the study of deductive

Nadere informatie

RECEPTEERKUNDE: PRODUCTZORG EN BEREIDING VAN GENEESMIDDELEN (DUTCH EDITION) FROM BOHN STAFLEU VAN LOGHUM

RECEPTEERKUNDE: PRODUCTZORG EN BEREIDING VAN GENEESMIDDELEN (DUTCH EDITION) FROM BOHN STAFLEU VAN LOGHUM Read Online and Download Ebook RECEPTEERKUNDE: PRODUCTZORG EN BEREIDING VAN GENEESMIDDELEN (DUTCH EDITION) FROM BOHN STAFLEU VAN LOGHUM DOWNLOAD EBOOK : RECEPTEERKUNDE: PRODUCTZORG EN BEREIDING VAN STAFLEU

Nadere informatie

Preschool Kindergarten

Preschool Kindergarten Preschool Kindergarten Objectives Students will recognize the values of numerals 1 to 10. Students will use objects to solve addition problems with sums from 1 to 10. Materials Needed Large number cards

Nadere informatie

FOR DUTCH STUDENTS! ENGLISH VERSION NEXT PAGE. Toets Inleiding Kansrekening 1 8 februari 2010

FOR DUTCH STUDENTS! ENGLISH VERSION NEXT PAGE. Toets Inleiding Kansrekening 1 8 februari 2010 FOR DUTCH STUDENTS! ENGLISH VERSION NEXT PAGE Toets Inleiding Kansrekening 1 8 februari 2010 Voeg aan het antwoord van een opgave altijd het bewijs, de berekening of de argumentatie toe. Als je een onderdeel

Nadere informatie

General info on using shopping carts with Ingenico epayments

General info on using shopping carts with Ingenico epayments Inhoudsopgave 1. Disclaimer 2. What is a PSPID? 3. What is an API user? How is it different from other users? 4. What is an operation code? And should I choose "Authorisation" or "Sale"? 5. What is an

Nadere informatie

Esther Lee-Varisco Matt Zhang

Esther Lee-Varisco Matt Zhang Esther Lee-Varisco Matt Zhang Want to build a wine cellar Surface temperature varies daily, seasonally, and geologically Need reasonable depth to build the cellar for lessened temperature variations Building

Nadere informatie

Travel Survey Questionnaires

Travel Survey Questionnaires Travel Survey Questionnaires Prot of Rotterdam and TU Delft, 16 June, 2009 Introduction To improve the accessibility to the Rotterdam Port and the efficiency of the public transport systems at the Rotterdam

Nadere informatie

L.Net s88sd16-n aansluitingen en programmering.

L.Net s88sd16-n aansluitingen en programmering. De L.Net s88sd16-n wordt via één van de L.Net aansluitingen aangesloten op de LocoNet aansluiting van de centrale, bij een Intellibox of Twin-Center is dat de LocoNet-T aansluiting. L.Net s88sd16-n aansluitingen

Nadere informatie

FOR DUTCH STUDENTS! ENGLISH VERSION NEXT PAGE

FOR DUTCH STUDENTS! ENGLISH VERSION NEXT PAGE FOR DUTCH STUDENTS! ENGLISH VERSION NEXT PAGE Tentamen Bewijzen en Technieken 1 7 januari 211, duur 3 uur. Voeg aan het antwoord van een opgave altijd het bewijs, de berekening of de argumentatie toe.

Nadere informatie

Exercise P672 Lightweight Structures. A.P.H.W. Habraken. Report

Exercise P672 Lightweight Structures. A.P.H.W. Habraken. Report Exercise 2011-2012 7P672 Lightweight Structures A.P.H.W. Habraken Report Group 4: S.H.M. van Dijck J.C. Fritzsche J. Koeken T. Relker F.G.M. van Rooijen M. Slotboom M. Steenbeeke J.P.T. Theunissen Date:

Nadere informatie

Teardrop readout gradient waveform design. Ting Ting Ren

Teardrop readout gradient waveform design. Ting Ting Ren Teardrop readout gradient waveform design Ting Ting Ren Overview MRI Background Teardrop Model Discussion Future work MRI Background: Classical Description of MRI Spins: MR relevant nuclei, like 1 H. Main

Nadere informatie

Cambridge Assessment International Education Cambridge International General Certificate of Secondary Education. Published

Cambridge Assessment International Education Cambridge International General Certificate of Secondary Education. Published Cambridge Assessment International Education Cambridge International General Certificate of Secondary Education DUTCH 055/02 Paper 2 Reading MARK SCHEME Maximum Mark: 45 Published This mark scheme is published

Nadere informatie

Process Mining and audit support within financial services. KPMG IT Advisory 18 June 2014

Process Mining and audit support within financial services. KPMG IT Advisory 18 June 2014 Process Mining and audit support within financial services KPMG IT Advisory 18 June 2014 Agenda INTRODUCTION APPROACH 3 CASE STUDIES LEASONS LEARNED 1 APPROACH Process Mining Approach Five step program

Nadere informatie

Impact en disseminatie. Saskia Verhagen Franka vd Wijdeven

Impact en disseminatie. Saskia Verhagen Franka vd Wijdeven Impact en disseminatie Saskia Verhagen Franka vd Wijdeven Wie is wie? Voorstel rondje Wat hoop je te leren? Heb je iets te delen? Wat zegt de Programma Gids? WHAT DO IMPACT AND SUSTAINABILITY MEAN? Impact

Nadere informatie

ALGORITMIEK: answers exercise class 7

ALGORITMIEK: answers exercise class 7 Problem 1. See slides 2 4 of lecture 8. Problem 2. See slides 4 6 of lecture 8. ALGORITMIEK: answers exercise class 7 Problem 5. a. Als we twee negatieve (< 0) getallen bij elkaar optellen is het antwoord

Nadere informatie

Archief Voor Kerkelijke Geschiedenis, Inzonderheid Van Nederland, Volume 8... (Romanian Edition)

Archief Voor Kerkelijke Geschiedenis, Inzonderheid Van Nederland, Volume 8... (Romanian Edition) Archief Voor Kerkelijke Geschiedenis, Inzonderheid Van Nederland, Volume 8... (Romanian Edition) Click here if your download doesn"t start automatically Archief Voor Kerkelijke Geschiedenis, Inzonderheid

Nadere informatie

Chromosomal crossover

Chromosomal crossover Chromosomal crossover As one of the last steps of genetic recombination two homologous chromosomes can exchange genetic material during meiosis in a process that is referred to as synapsis. Because of

Nadere informatie

z x 1 x 2 x 3 x 4 s 1 s 2 s 3 rij rij rij rij

z x 1 x 2 x 3 x 4 s 1 s 2 s 3 rij rij rij rij ENGLISH VERSION SEE PAGE 3 Tentamen Lineaire Optimalisering, 0 januari 0, tijdsduur 3 uur. Het gebruik van een eenvoudige rekenmachine is toegestaan. Geef bij elk antwoord een duidelijke toelichting. Als

Nadere informatie

150 ECG-problemen (Dutch Edition)

150 ECG-problemen (Dutch Edition) 150 ECG-problemen (Dutch Edition) John R. Hampton, Piet Machielse Click here if your download doesn"t start automatically 150 ECG-problemen (Dutch Edition) John R. Hampton, Piet Machielse 150 ECG-problemen

Nadere informatie

LONDEN MET 21 GEVARIEERDE STADSWANDELINGEN 480 PAGINAS WAARDEVOLE INFORMATIE RUIM 300 FOTOS KAARTEN EN PLATTEGRONDEN

LONDEN MET 21 GEVARIEERDE STADSWANDELINGEN 480 PAGINAS WAARDEVOLE INFORMATIE RUIM 300 FOTOS KAARTEN EN PLATTEGRONDEN LONDEN MET 21 GEVARIEERDE STADSWANDELINGEN 480 PAGINAS WAARDEVOLE INFORMATIE RUIM 300 FOTOS KAARTEN EN PLATTEGRONDEN LM2GS4PWIR3FKEP-58-WWET11-PDF File Size 6,444 KB 117 Pages 27 Aug, 2016 TABLE OF CONTENT

Nadere informatie

Ontwerpen van een variabele belasting om te meten aan zonnepanelen

Ontwerpen van een variabele belasting om te meten aan zonnepanelen Assignment IWP Energy Transition September 2018 Project Title Ontwerpen van een variabele belasting om te meten aan zonnepanelen Brief description of the problem Zonnepanelen produceren stroom als er (zon)licht

Nadere informatie

Risico s van Technologisch Succes in digitale transformatie S T R A T E G I C A D V I S O R

Risico s van Technologisch Succes in digitale transformatie S T R A T E G I C A D V I S O R Risico s van Technologisch Succes in digitale transformatie 2e Risk Event 2019 11 april 2019 The S T R A T E G I C A D V I S O R Ymanagement school of the autonomous University of Antwerp 2 Prof. dr. Hans

Nadere informatie

AE1103 Statics. 25 January h h. Answer sheets. Last name and initials:

AE1103 Statics. 25 January h h. Answer sheets. Last name and initials: Space above not to be filled in by the student AE1103 Statics 09.00h - 12.00h Answer sheets Last name and initials: Student no.: Only hand in the answer sheets! Other sheets will not be accepted Write

Nadere informatie

Invloed van het aantal kinderen op de seksdrive en relatievoorkeur

Invloed van het aantal kinderen op de seksdrive en relatievoorkeur Invloed van het aantal kinderen op de seksdrive en relatievoorkeur M. Zander MSc. Eerste begeleider: Tweede begeleider: dr. W. Waterink drs. J. Eshuis Oktober 2014 Faculteit Psychologie en Onderwijswetenschappen

Nadere informatie

Quality requirements concerning the packaging of oak lumber of Houthandel Wijers vof (09.09.14)

Quality requirements concerning the packaging of oak lumber of Houthandel Wijers vof (09.09.14) Quality requirements concerning the packaging of oak lumber of (09.09.14) Content: 1. Requirements on sticks 2. Requirements on placing sticks 3. Requirements on construction pallets 4. Stick length and

Nadere informatie

Meetkunde en Lineaire Algebra

Meetkunde en Lineaire Algebra Hoofdstuk 1 Meetkunde en Lineaire Algebra Vraag 1.1 Het trapoppervlak is een afwikkelbaar oppervlak met oneindig veel singuliere punten. Vraag 1.2 Het schroefoppervlak is een afwikkelbaar oppervlak met

Nadere informatie

0515 DUTCH (FOREIGN LANGUAGE)

0515 DUTCH (FOREIGN LANGUAGE) UNIVERSITY OF CAMBRIDGE INTERNATIONAL EXAMINATIONS International General Certificate of Secondary Education MARK SCHEME for the May/June 2011 question paper for the guidance of teachers 0515 DUTCH (FOREIGN

Nadere informatie

2010 Integrated reporting

2010 Integrated reporting 2010 Integrated reporting Source: Discussion Paper, IIRC, September 2011 1 20/80 2 Source: The International framework, IIRC, December 2013 3 Integrated reporting in eight questions Organizational

Nadere informatie

Eye Feature Detection Towards Automatic Strabismus Screening

Eye Feature Detection Towards Automatic Strabismus Screening Eye Feature Detection Towards Automatic Strabismus Screening Ken Allen, Khanh Nguyen Gettysburg College What is strabismus? Eye defect that causes eyes to look in two different directions If left untreated,

Nadere informatie

Classification of triangles

Classification of triangles Classification of triangles A triangle is a geometrical shape that is formed when 3 non-collinear points are joined. The joining line segments are the sides of the triangle. The angles in between the sides

Nadere informatie

(1) De hoofdfunctie van ons gezelschap is het aanbieden van onderwijs. (2) Ons gezelschap is er om kunsteducatie te verbeteren

(1) De hoofdfunctie van ons gezelschap is het aanbieden van onderwijs. (2) Ons gezelschap is er om kunsteducatie te verbeteren (1) De hoofdfunctie van ons gezelschap is het aanbieden van onderwijs (2) Ons gezelschap is er om kunsteducatie te verbeteren (3) Ons gezelschap helpt gemeenschappen te vormen en te binden (4) De producties

Nadere informatie

Welkom. Digitale programma: #cmdag18. Dagvoorzitter Prof. dr. Arjan van Weele NEVI hoogleraar inkoopmanagement.

Welkom. Digitale programma: #cmdag18. Dagvoorzitter Prof. dr. Arjan van Weele NEVI hoogleraar inkoopmanagement. Welkom Dagvoorzitter Prof. dr. Arjan van Weele NEVI hoogleraar inkoopmanagement Digitale programma: www.contractmanagementdag.nl #cmdag18 #cmdag18 Programma 09.45 Welkom door Prof. Dr. Arjan van Weele

Nadere informatie

Ius Commune Training Programme 2015-2016 Amsterdam Masterclass 16 June 2016

Ius Commune Training Programme 2015-2016 Amsterdam Masterclass 16 June 2016 www.iuscommune.eu Dear Ius Commune PhD researchers, You are kindly invited to attend the Ius Commune Amsterdam Masterclass for PhD researchers, which will take place on Thursday 16 June 2016. During this

Nadere informatie

How to install and use dictionaries on the ICARUS Illumina HD (E652BK)

How to install and use dictionaries on the ICARUS Illumina HD (E652BK) (for Dutch go to page 4) How to install and use dictionaries on the ICARUS Illumina HD (E652BK) The Illumina HD offers dictionary support for StarDict dictionaries.this is a (free) open source dictionary

Nadere informatie

Puzzle. Fais ft. Afrojack Niveau 3a Song 6 Lesson A Worksheet. a Lees de omschrijvingen. Zet de Engelse woorden in de puzzel.

Puzzle. Fais ft. Afrojack Niveau 3a Song 6 Lesson A Worksheet. a Lees de omschrijvingen. Zet de Engelse woorden in de puzzel. Puzzle a Lees de omschrijvingen. Zet de Engelse woorden in de puzzel. een beloning voor de winnaar iemand die piano speelt een uitvoering 4 wat je wil gaan doen; voornemens 5 niet dezelfde 6 deze heb je

Nadere informatie

Duiding Strafuitvoering (Larcier Duiding) (Dutch Edition) Click here if your download doesn"t start automatically

Duiding Strafuitvoering (Larcier Duiding) (Dutch Edition) Click here if your download doesnt start automatically Duiding Strafuitvoering (Larcier Duiding) (Dutch Edition) Click here if your download doesn"t start automatically Duiding Strafuitvoering (Larcier Duiding) (Dutch Edition) Duiding Strafuitvoering (Larcier

Nadere informatie

De ondernemende psychotherapeut (Dutch Edition)

De ondernemende psychotherapeut (Dutch Edition) De ondernemende psychotherapeut (Dutch Edition) Dick Bouman Click here if your download doesn"t start automatically De ondernemende psychotherapeut (Dutch Edition) Dick Bouman De ondernemende psychotherapeut

Nadere informatie

voltooid tegenwoordige tijd

voltooid tegenwoordige tijd SirPalsrok @meestergijs It has taken me a while to make this grammar explanation. My life has been quite busy and for that reason I had little time. My week was full of highs and lows. This past weekend

Nadere informatie

Pure Bending. A beam satisfying above given requirements are shown below: Why this surface is called neutral will be explained later in the lecture.

Pure Bending. A beam satisfying above given requirements are shown below: Why this surface is called neutral will be explained later in the lecture. In this section we will derive a formula to analyze a the deformation and stress distribution of a beam under flexural action. Theformulatobederivedinthis section will be used for straight beams with sections

Nadere informatie

Ius Commune Training Programme Amsterdam Masterclass 15 June 2018

Ius Commune Training Programme Amsterdam Masterclass 15 June 2018 www.iuscommune.eu Dear Ius Commune PhD researchers, You are kindly invited to participate in the Ius Commune Amsterdam Masterclass for PhD researchers, which will take place on Friday, 15 June 2018. This

Nadere informatie

Innovative SUMP-Process in Northeast-Brabant

Innovative SUMP-Process in Northeast-Brabant Innovative SUMP-Process in Northeast-Brabant #polis14 Northeast-Brabant: a region in the Province of Noord-Brabant Innovative Poly SUMP 20 Municipalities Province Rijkswaterstaat Several companies Schools

Nadere informatie

B1 Woordkennis: Spelling

B1 Woordkennis: Spelling B1 Woordkennis: Spelling Bestuderen Inleiding Op B1 niveau gaan we wat meer aandacht schenken aan spelling. Je mag niet meer zoveel fouten maken als op A1 en A2 niveau. We bespreken een aantal belangrijke

Nadere informatie

Settings for the C100BRS4 MAC Address Spoofing with cable Internet.

Settings for the C100BRS4 MAC Address Spoofing with cable Internet. Settings for the C100BRS4 MAC Address Spoofing with cable Internet. General: Please use the latest firmware for the router. The firmware is available on http://www.conceptronic.net! Use Firmware version

Nadere informatie

IDENTITEIT IN DE METHODE?

IDENTITEIT IN DE METHODE? 74 IDENTITEIT IN DE METHODE? ONDERZOEK DOOR EEN LERAAR IN OPLEIDING Bram de Muynck en Esther Langerak 75 Van lectoraten wordt gevraagd om ook studenten te betrekken bij onderzoek. Dit gebeurt bij het lectoraat

Nadere informatie

FOR DUTCH STUDENTS! ENGLISH VERSION NEXT PAGE

FOR DUTCH STUDENTS! ENGLISH VERSION NEXT PAGE FOR DUTCH STUDENTS! ENGLISH VERSION NEXT PAGE Tentamen Analyse 8 december 203, duur 3 uur. Voeg aan het antwoord van een opgave altijd het bewijs, de berekening of de argumentatie toe. Als jeeen onderdeel

Nadere informatie

Interaction Design for the Semantic Web

Interaction Design for the Semantic Web Interaction Design for the Semantic Web Lynda Hardman http://www.cwi.nl/~lynda/courses/usi08/ CWI, Semantic Media Interfaces Presentation of Google results: text 2 1 Presentation of Google results: image

Nadere informatie

NETWORK CHARTER. #ResourceEfficiency

NETWORK CHARTER. #ResourceEfficiency NETWORK CHARTER 1 WHAT IS THE EREK NETWORK? EREK stands for the European Resource Efficiency Knowledge Centre, a vibrant platform to enable and reinforce businesses and especially small and medium sized

Nadere informatie

Ae Table 1: Aircraft data. In horizontal steady flight, the equations of motion are L = W and T = D.

Ae Table 1: Aircraft data. In horizontal steady flight, the equations of motion are L = W and T = D. English Question 1 Flight mechanics (3 points) A subsonic jet aircraft is flying at sea level in the International Standard Atmosphere ( = 1.5 kg/m 3 ). It is assumed that thrust is independent of the

Nadere informatie

TECHNISCHE UNIVERSITEIT EINDHOVEN Faculteit Wiskunde en Informatica. Examination 2DL04 Friday 16 november 2007, hours.

TECHNISCHE UNIVERSITEIT EINDHOVEN Faculteit Wiskunde en Informatica. Examination 2DL04 Friday 16 november 2007, hours. TECHNISCHE UNIVERSITEIT EINDHOVEN Faculteit Wiskunde en Informatica Examination 2DL04 Friday 16 november 2007, 14.00-17.00 hours. De uitwerkingen van de opgaven dienen duidelijk geformuleerd en overzichtelijk

Nadere informatie

Duurzaam projectmanagement - De nieuwe realiteit van de projectmanager (Dutch Edition)

Duurzaam projectmanagement - De nieuwe realiteit van de projectmanager (Dutch Edition) Duurzaam projectmanagement - De nieuwe realiteit van de projectmanager (Dutch Edition) Ron Schipper Click here if your download doesn"t start automatically Duurzaam projectmanagement - De nieuwe realiteit

Nadere informatie

Angststoornissen en hypochondrie: Diagnostiek en behandeling (Dutch Edition) Click here if your download doesn"t start automatically

Angststoornissen en hypochondrie: Diagnostiek en behandeling (Dutch Edition) Click here if your download doesnt start automatically Angststoornissen en hypochondrie: Diagnostiek en behandeling (Dutch Edition) Click here if your download doesn"t start automatically Angststoornissen en hypochondrie: Diagnostiek en behandeling (Dutch

Nadere informatie

Ius Commune Training Programme Amsterdam Masterclass 22 June 2017

Ius Commune Training Programme Amsterdam Masterclass 22 June 2017 www.iuscommune.eu INVITATION Ius Commune Masterclass 22 June 2017 Amsterdam Dear Ius Commune PhD researchers, You are kindly invited to participate in the Ius Commune Amsterdam Masterclass for PhD researchers,

Nadere informatie

CTI SUITE TSP DETAILS

CTI SUITE TSP DETAILS CTI SUITE TSP DETAILS TAPI allows an application to access telephony services provided by a telecom PABX. In order to implement its access to ETRADEAL, a TAPI interface has been developed by Etrali. As

Nadere informatie

Appendix A: The factor analysis for the immersion questionnaire

Appendix A: The factor analysis for the immersion questionnaire 1 Appendix A: The factor analysis for the immersion questionnaire 2 3 Summary of exploratory factor analysis for the immersion questionnaire. Ik voelde mij zoals de hoofdpersoon zich voelde. 0.85 0.23-0.03-0.05-0.13

Nadere informatie

FOR DUTCH STUDENTS! ENGLISH VERSION NEXT PAGE

FOR DUTCH STUDENTS! ENGLISH VERSION NEXT PAGE FOR DUTCH STUDENTS! ENGLISH VERSION NEXT PAGE Tentamen Analyse 6 januari 203, duur 3 uur. Voeg aan het antwoord van een opgave altijd het bewijs, de berekening of de argumentatie toe. Als je een onderdeel

Nadere informatie

L.Net s88sd16-n aansluitingen en programmering.

L.Net s88sd16-n aansluitingen en programmering. De L.Net s88sd16-n wordt via één van de L.Net aansluitingen aangesloten op de LocoNet aansluiting van de centrale, bij een Intellibox of Twin-Center is dat de LocoNet-T aansluiting. L.Net s88sd16-n aansluitingen

Nadere informatie

It s all about the money Group work

It s all about the money Group work It s all about the money Group work Tijdsduur: 45 minuten Kernwoorden: money (geld) coin (munt), banknote (bankbiljet), currency (munteenheid) Herhalings-/uitbreidingswoorden: debate (debat), proposal

Nadere informatie

i(i + 1) = xy + y = x + 1, y(1) = 2.

i(i + 1) = xy + y = x + 1, y(1) = 2. Kenmerk : Leibniz/toetsen/Re-Exam-Math A + B-45 Course : Mathematics A + B (Leibniz) Date : November 7, 204 Time : 45 645 hrs Motivate all your answers The use of electronic devices is not allowed [4 pt]

Nadere informatie

Global TV Canada s Pulse 2011

Global TV Canada s Pulse 2011 Global TV Canada s Pulse 2011 Winnipeg Nobody s Unpredictable Methodology These are the findings of an Ipsos Reid poll conducted between August 26 to September 1, 2011 on behalf of Global Television. For

Nadere informatie

Zo werkt het in de apotheek (Basiswerk AG) (Dutch Edition)

Zo werkt het in de apotheek (Basiswerk AG) (Dutch Edition) Zo werkt het in de apotheek (Basiswerk AG) (Dutch Edition) C.R.C. Huizinga-Arp Click here if your download doesn"t start automatically Zo werkt het in de apotheek (Basiswerk AG) (Dutch Edition) C.R.C.

Nadere informatie

After that, the digits are written after each other: first the row numbers, followed by the column numbers.

After that, the digits are written after each other: first the row numbers, followed by the column numbers. Bifid cipher The bifid cipher is one of the classical cipher techniques that can also easily be executed by hand. The technique was invented around 1901 by amateur cryptographer Felix Delastelle. The cipher

Nadere informatie

Data Handling Ron van Lammeren - Wageningen UR

Data Handling Ron van Lammeren - Wageningen UR Data Handling 1 2010-2011 Ron van Lammeren - Wageningen UR Can I answer my scientific questions? Geo-data cycle Data handling / introduction classes of data handling data action models (ISAC) Queries (data

Nadere informatie

Basic operations Implementation options

Basic operations Implementation options Priority Queues Heaps Heapsort Student questions EditorTrees WA 6 File Compression Graphs Hashing Anything else Written Assignments 7 and 8 have been updated for this term. Each of them is smaller than

Nadere informatie

Read this story in English. My personal story

Read this story in English. My personal story My personal story Netherlands 32 Female Primary Topic: SOCIETAL CONTEXT Topics: CHILDHOOD / FAMILY LIFE / RELATIONSHIPS IDENTITY Year: 1990 2010 marriage/co-habitation name/naming court/justice/legal rights

Nadere informatie

DALISOFT. 33. Configuring DALI ballasts with the TDS20620V2 DALI Tool. Connect the TDS20620V2. Start DALISOFT

DALISOFT. 33. Configuring DALI ballasts with the TDS20620V2 DALI Tool. Connect the TDS20620V2. Start DALISOFT TELETASK Handbook Multiple DoIP Central units DALISOFT 33. Configuring DALI ballasts with the TDS20620V2 DALI Tool Connect the TDS20620V2 If there is a TDS13620 connected to the DALI-bus, remove it first.

Nadere informatie

OPEN TRAINING. Onderhandelingen met leveranciers voor aankopers. Zeker stellen dat je goed voorbereid aan de onderhandelingstafel komt.

OPEN TRAINING. Onderhandelingen met leveranciers voor aankopers. Zeker stellen dat je goed voorbereid aan de onderhandelingstafel komt. OPEN TRAINING Onderhandelingen met leveranciers voor aankopers Zeker stellen dat je goed voorbereid aan de onderhandelingstafel komt. Philip Meyers Making sure to come well prepared at the negotiation

Nadere informatie

Activant Prophet 21. Prophet 21 Version 12.0 Upgrade Information

Activant Prophet 21. Prophet 21 Version 12.0 Upgrade Information Activant Prophet 21 Prophet 21 Version 12.0 Upgrade Information This class is designed for Customers interested in upgrading to version 12.0 IT staff responsible for the managing of the Prophet 21 system

Nadere informatie

4 cos. Intermediate exam: Mechanics for MWT: 8TB00. February 25, 2014, 13:45-14:30. Code 8TB00, MWT bachelor. Biomedical Engineering

4 cos. Intermediate exam: Mechanics for MWT: 8TB00. February 25, 2014, 13:45-14:30. Code 8TB00, MWT bachelor. Biomedical Engineering Intermediate exam: Mechanics for MWT: 8TB00 February 5, 04, 3:45-4:30 Code 8TB00, MWT bachelor Biomedical Engineering Eindhoven University of Technology This is a closed book exam. The use of a laptop

Nadere informatie

Meetkunde en Lineaire Algebra

Meetkunde en Lineaire Algebra Hoofdstuk 1 Meetkunde en Lineaire Algebra Vraag 1.1 De samenstelling van rotaties in het vlak is commutatief. Vraag 1.2 De samenstelling van de orthogonale spiegelingen t.o.v. twee gegeven vlakken in de

Nadere informatie

Determinantenonderzoek naar Factoren waarmee een Actief Stoppen-met-Roken Beleid op Cardiologieverpleegafdelingen kan worden bevorderd

Determinantenonderzoek naar Factoren waarmee een Actief Stoppen-met-Roken Beleid op Cardiologieverpleegafdelingen kan worden bevorderd Determinantenonderzoek naar Factoren waarmee een Actief Stoppen-met-Roken Beleid op Cardiologieverpleegafdelingen kan worden bevorderd Determinant Study in to Factors that Facilitate a Active Smoking-cessation

Nadere informatie

My Inspiration I got my inspiration from a lamp that I already had made 2 years ago. The lamp is the you can see on the right.

My Inspiration I got my inspiration from a lamp that I already had made 2 years ago. The lamp is the you can see on the right. Mijn Inspiratie Ik kreeg het idee om een variant te maken van een lamp die ik al eerder had gemaakt. Bij de lamp die in de onderstaande foto s is afgebeeld kun je het licht dimmen door de lamellen open

Nadere informatie

Automated scoring in mathematics: tinning intelligence?

Automated scoring in mathematics: tinning intelligence? Automated scoring in mathematics: tinning intelligence? Paul Drijvers paul.drijvers@cito.nl Johanna Hofstee joke.hofstee@cito.nl 09-02-2017 Stichting Cito Instituut voor Toetsontwikkeling Arnhem (feb-17)

Nadere informatie

HANDBOEK HARTFALEN (DUTCH EDITION) FROM BOHN STAFLEU VAN LOGHUM

HANDBOEK HARTFALEN (DUTCH EDITION) FROM BOHN STAFLEU VAN LOGHUM HANDBOEK HARTFALEN (DUTCH EDITION) FROM BOHN STAFLEU VAN LOGHUM READ ONLINE AND DOWNLOAD EBOOK : HANDBOEK HARTFALEN (DUTCH EDITION) FROM BOHN Click button to download this ebook READ ONLINE AND DOWNLOAD

Nadere informatie

Working with Authorities

Working with Authorities Working with Authorities Finding the balance in the force field of MUSTs, SHOULDs, CANs, SHOULD-NEVERs, CANNOTs Jacques Schuurman SURFnet-CERT Amsterdam, 24 February 2006 Hoogwaardig internet voor hoger

Nadere informatie

Intercultural Mediation through the Internet Hans Verrept Intercultural mediation and policy support unit

Intercultural Mediation through the Internet Hans Verrept Intercultural mediation and policy support unit 1 Intercultural Mediation through the Internet Hans Verrept Intercultural mediation and policy support unit 2 Structure of the presentation - What is intercultural mediation through the internet? - Why

Nadere informatie

MyDHL+ ProView activeren in MyDHL+

MyDHL+ ProView activeren in MyDHL+ MyDHL+ ProView activeren in MyDHL+ ProView activeren in MyDHL+ In MyDHL+ is het mogelijk om van uw zendingen, die op uw accountnummer zijn aangemaakt, de status te zien. Daarnaast is het ook mogelijk om

Nadere informatie

AE1103 Statics. 5 November h h. Answer sheets. Last name and initials:

AE1103 Statics. 5 November h h. Answer sheets. Last name and initials: Space above not to be filled in by the student AE1103 Statics 09.00h - 12.00h Answer sheets Last name and initials: Student no.: Only hand in the answer sheets! Other sheets will not be accepted Write

Nadere informatie

Luister alsjeblieft naar een opname als je de vragen beantwoordt of speel de stukken zelf!

Luister alsjeblieft naar een opname als je de vragen beantwoordt of speel de stukken zelf! Martijn Hooning COLLEGE ANALYSE OPDRACHT 1 9 september 2009 Hierbij een paar vragen over twee stukken die we deze week en vorige week hebben besproken: Mondnacht van Schumann, en het eerste deel van het

Nadere informatie

Firewall van de Speedtouch 789wl volledig uitschakelen?

Firewall van de Speedtouch 789wl volledig uitschakelen? Firewall van de Speedtouch 789wl volledig uitschakelen? De firewall van de Speedtouch 789 (wl) kan niet volledig uitgeschakeld worden via de Web interface: De firewall blijft namelijk op stateful staan

Nadere informatie

Longitudinal Driving Behaviour At Incidents And The Influence Of Emotions. Raymond Hoogendoorn

Longitudinal Driving Behaviour At Incidents And The Influence Of Emotions. Raymond Hoogendoorn Longitudinal Driving Behaviour At Incidents And The Influence Of Emotions Raymond Hoogendoorn. Primary thesis coordinator: Dr. W. Waterink Secondary thesis coordinator: Dr. P. Verboon April 2009 School

Nadere informatie

Consumer survey on personal savings accounts

Consumer survey on personal savings accounts Consumer survey on personal savings accounts April 04 GfK 04 Consumer survey on personal savings accounts April 04 Table of contents. Management Summary. Research design. Research findings GfK 04 Consumer

Nadere informatie

FOR DUTCH STUDENTS! ENGLISH VERSION NEXT PAGE. Toets Inleiding Kansrekening 1 7 februari 2011

FOR DUTCH STUDENTS! ENGLISH VERSION NEXT PAGE. Toets Inleiding Kansrekening 1 7 februari 2011 FOR DUTCH STUDENTS! ENGLISH VERSION NEXT PAGE Toets Inleiding Kansrekening 1 7 februari 2011 Voeg aan het antwoord van een opgave altijd het bewijs, de berekening of de argumentatie toe. Als je een onderdeel

Nadere informatie

AE1103 Statics. 3 November h h. Answer sheets. Last name and initials:

AE1103 Statics. 3 November h h. Answer sheets. Last name and initials: Space above not to be filled in by the student AE1103 Statics 09.00h - 12.00h Answer sheets Last name and initials: Student no.: Only hand in the answer sheets! Other sheets will not be accepted Write

Nadere informatie

Meetkunde en Lineaire Algebra

Meetkunde en Lineaire Algebra Hoofdstuk 1 Meetkunde en Lineaire Algebra Vraag 1.1 De samenstelling van rotaties in het vlak is commutatief. Vraag 1.2 De samenstelling van de orthogonale spiegelingen t.o.v. twee gegeven vlakken in de

Nadere informatie