• Tidak ada hasil yang ditemukan

Robot Motion Modelling

Dalam dokumen DECLARATION OF ORIGINALITY (Halaman 30-34)

Chapter 3 Project / System Design

3.6 Robot Motion Modelling

This project is aimed to study the multi-mobile robot control framework.

Therefore, the robots are low fidelity because it is not necessary to consider the physical or mechanical part of robots to study the multi-mobile control framework. But, it's still necessary to consider some physical constraint such as the velocity of robots in a different situation because it might affect the system performance significantly. For example, robots need to slow down if it needs to make a turn, it cannot exceed a certain velocity due to the hardware limitation. For simplicity, we assume all the robot motion is linear motion. The list below shows the information that required to capture the effect of robots' motion:

• These exists a maximum acceleration for each robot, amax.

• These exists a maximum deceleration for each robot, dmax.

• These exists a maximum velocity for each robot, vmax.

• The velocity of a robot should be zero before it makes a turn.

• If a robot is not allowed to move to next grids, it should stop at the last grid it can reach.

Due to the discrete-event simulation is used, we skip the transition state when a robot is travelling from one grid to another grid but focus only on the event when the robot reaches the next grid. Thus, robots are considered jumping from one grid to another after certain amount of time 𝑡, and the velocity model of the robot is then used to calculate what the exact value of 𝑡. Besides, during the interval time 𝑡, both current grid and next grid is blocked. This situation is because the moving robot occupied part of the current grid and next grid. Since one grid can only occupy one robot, then current grid should be blocked until the robot completely move to next grid.

The velocity model is described as follows. We assume robots always try to move as fast as possible, and it always used maximum acceleration to increase its velocity and maximum deceleration to decrease its velocity. The objective for robots is to minimize the time needed for a robot to move from start vertex g0 to end vertex gn. Apart from that, the robot needs to stop at 𝑔𝑛, that means it should slow down at certain position in its moving path, let say g. Also, if possible, the robot needs to increase its

speed in order to reduce the time needed for it to reach gn, but note that the maximum velocity is limited by vmax.

Now, we can reformulate this situation in another way. Let t0 denotes the time when the robot reaches g0, t1 is the time when the robot reaches maximum velocity but if the robot never reaches maximum velocity then t1 is infinity, t2 is the time when the robot starts to slow down its velocity, 𝑡𝑓 is the time when the robot reaches gn. Besides, we let v0 denotes the initial velocity when the robot reaches g0, and let sg denotes the distance from one grid to another. Figure 3.3 shows how to get the value of 𝑡1 and 𝑡2 and Figure 3.4 shows the algorithm used to calculate the time needed for a robot from one to another grid.

After that, we can use the method shown in Figure 3.3 to know the value of t1, t2. Every time the reserved grids of a robot change, such as a grid is released or success to request a new grid, we can recalculate the t1 and t2 to make sure the robot can move in maximum speed subject to it able to stop at the last reserved grid or stop at the reserved grid before it makes a turn. On the other, it is necessary to know what is the transition time for a robot moves from one grid to another and this is the objective to design the algorithm shown in Figure 3.4.

Let:

1. Assume velocity of robots are not limited.

2. 𝑡: time spent in acceleration.

3. 𝑡′′: time spent in deceleration.

4. Total time needed: 𝑡 = 𝑡+ 𝑡′′. 5. Total distance move: s.

Robots required to decrease their velocity to 0 once they reach last grid in their path.

Thus, 𝑡 = 𝑡+ 𝑎𝑚𝑎𝑥𝑡′+𝑣0

𝑑𝑚𝑎𝑥 , and s =1

2(𝑣0𝑡′ + 𝑎𝑚𝑎𝑥𝑡′2) +1

2(𝑎𝑚𝑎𝑥(𝑡 − 𝑡′′)2)

= 1

2(𝑣0𝑡′ + 𝑎𝑚𝑎𝑥𝑡′2) +1

2(𝑎𝑚𝑎𝑥(𝑎𝑚𝑎𝑥𝑡′+𝑣0

𝑑𝑚𝑎𝑥 )2)

Value of s is known, thus, by solving the equation above, we can get the value of 𝑡′ (always take the positive and real number), and therefore both t and 𝑡′′ can be solved. However, this calculation is not always correct due to the first assumption. In fact, robots are limited by speed vmax. Therefore, we need to validate whether the robot exceeds the speed vmax.

A robot does not exceed the speed 𝑣𝑚𝑎𝑥 if 𝑎𝑚𝑎𝑥𝑡+ 𝑣0≤ 𝑣𝑚𝑎𝑥. If true, we can use the previous solution but if it is false, we need to introduce a new variable 𝑡′′′ which indicate the total time the robot is remaining its maximum speed. Then, the 𝑡′, 𝑡′′, 𝑡′′′ are calculated by 𝑡′ = (𝑣𝑚𝑎𝑥– 𝑣0)/𝑎𝑚𝑎𝑥

𝑡′′ = 𝑣𝑚𝑎𝑥/𝑑𝑚𝑎𝑥

𝑠’ = 𝑠 −1

2(𝑣0+ 𝑣𝑚𝑎𝑥)𝑡1

2(vmax)𝑡′′

𝑡′′′ = 𝑠/𝑣𝑚𝑎𝑥

Figure 3.3

Time needed for robots to acceleration / deceleration / remain maximum speed.

INPUT: 𝐚𝐦𝐚𝐱, 𝐝𝐦𝐚𝐱, vnow, vmax, tnow, 𝑡1, 𝑡2, 𝑠

OUTPUT: Time needed for robot to reach next grid; New velocity.

CALC_TIME_NEEDED () 1. IF tnow< t1

2. result = Max ( Solve t : s = vnowt +1

2𝒂𝒎𝒂𝒙𝑡2 ) # Ignore Complex Number.

3. IF tnow+ 𝑟𝑒𝑠𝑢𝑙𝑡 > t1

4. t= 𝑡𝑛𝑜𝑤+ 𝑟𝑒𝑠𝑢𝑙𝑡 − t1

5. 𝑣= vnow+ amax𝑡

6. 𝑠= 𝑠 −1

2(𝑣𝑛𝑜𝑤+ 𝑣′)𝑡

7. t, vnew= CALC_TIME_NEEDED(amax, dmax, v’, vmax, 𝑡1, t1, t2, 𝑠’) 8. RETURN t + t, vnew

9. ELSE

10. 𝑣𝑛𝑒𝑤= 𝑣𝑛𝑜𝑤+ 𝑎𝑚𝑎𝑥𝑡 11. RETURN 𝑟𝑒𝑠𝑢𝑙𝑡, 𝑣𝑛𝑒𝑤 12. END IF

13. END IF

14. IF t1≤ tnow< t2 15. result = s/vmax 16. IF tnow+ result > t2

17. 𝑡= 𝑡𝑛𝑜𝑤+ 𝑟𝑒𝑠𝑢𝑙𝑡 − 𝑡1 18. 𝑠= 𝑠 − 𝑣𝑚𝑎𝑥𝑡

19. 𝑡, 𝑣𝑛ew= CALC_TIME_NEEDED(𝑎𝑚𝑎𝑥, 𝑑𝑚𝑎𝑥, 𝑣max, 𝑣𝑚𝑎𝑥, 𝑡2, 𝑡1, 𝑡2, 𝑠’) 20. RETURN 𝑡 + 𝑡, 𝑣𝑛e𝑤

21. ELSE

22. RETURN 𝑟𝑒𝑠𝑢𝑙𝑡, 𝑣𝑛𝑜𝑤 23. END IF

24. END IF 25. IF 𝑡𝑛𝑜𝑤≥ 𝑡2

26. result = Max ( Solve t : 𝑠 = vnow𝑡 −1

2𝑑𝑚𝑎𝑥𝑡2 ) 27. 𝑣𝑛𝑒𝑤= 𝑣𝑛𝑜𝑤− 𝑑𝑚𝑎𝑥𝑡

28. RETURN 𝑟𝑒𝑠𝑢𝑙𝑡, 𝑣𝑛e𝑤 29. END IF

Figure 3.4

Algorithm to calculate time needed for a robot to move from one to another grid.

3.7 Multi-Mobile Robot System Design

Dalam dokumen DECLARATION OF ORIGINALITY (Halaman 30-34)

Dokumen terkait