Expert Systems with Applications 39 (2012) 3559–3571 Contents lists available at SciVerse ScienceDirect Expert Systems with Applications journal homepage: www.elsevier.com/locate/eswa Staying-alive path planning with energy optimization for mobile robots Hongxing Wei a, Bin Wang a, Yi Wang b, Zili Shao b,⇑, Keith C.C. Chan b a b The School of Mechanical Engineering and Automation, Beihang University, Beijing 100191, China Department of Computing, The Hong Kong Polytechnic University, Hung Hom, Kowloon, Hong Kong a r t i c l e i n f o a b s t r a c t Keywords: Mobile robots Energy optimization Staying alive Path planning Most mobile robots are powered by batteries, and their energy and operation time are limited. Therefore, how to minimize energy consumption and keep mobile robots to stay alive becomes an important problem. In this paper, we propose a staying-alive and energy-efficient path planning algorithm, SLEEP (Staying-aLive and Energy-Efficient Path planning), to solve this problem based on the Tabu-search method. In SLEEP, we consider both energy consumption and staying-alive for the path planning of rechargeable mobile robots. We design and implement our approach based on a real mobile robot platform, and conduct experiments in a real-life environment. The experimental results show that SLEEP can provide an effective path planning by which a robot can be guaranteed to stay alive and finish all tasks with the minimum energy. Ó 2011 Elsevier Ltd. All rights reserved. 1. Introduction while the work in Hung, Chen, and Kuo (2006), Luo and Jha (2007), and Luo, Jha, and Peh (2007) focused on heterogeneous multiple processors. The recent work in Zhong and Xu (2006, 2007) studied system-wide energy minimization for periodic and aperiodic tasks on a processor with continuous speed levels. They separate task execution into on-chip/off-chip cycles, which is best applicable for CPU and memory. Mochocki, Hu, and Quan (2005) and Niu and Quan (2006) proposed an approach for system-wide dynamic power management for Multimedia Portable Devices. For streaming applications, several DVS scheduling techniques have been proposed (Aydin, Devadas, & Zhu, 2006; Mejía-Alvarez, Levner, & Mossé, 2004; Mishra, Rastogi, Zhu, Mossé, & Melhem, 2003; Xu, Melhem, & Mossé, 2007; Xu, Zhu, Rusu, Melhem, & Mossé, 2005). For DVS scheduling for dependent tasks on multiprocessor systems with multiple voltages, various studies have been conducted by addressing voltage setup problem (Hua & Qu, 2005), slacking even distribution (Luo & Jha, 2000), and joint task scheduling and voltage selection (Zhang, Hu, & Chen, 2002). However, the above techniques cannot be directly applied to solve the energy-efficient path planning problem. Several techniques have been proposed to solve energy-efficient path planning problem. In Katoh, Ichiyama, Yamamoto, and Ohkawa (1994) proposed an energy-efficient motion planning method for space manipulator by controlling the motion of the space manipulator to be elliptic. In Mei, Lu, Hu, and Lee (2004, 2005) analyzed power consumption of a robot at different speeds and proposed an effective energy-aware motion scheme. Barili, Ceresa, and Parisi (1995) developed an energy-saving scheme by controlling the speed and avoiding unnecessary stops for mobile robots. Kim and Kim (2005) proposed a minimum-energy velocity-trajectory-control scheme considering practical energy consumption dissipated in Mobile robots can be used in many applications such as shopping navigation, carpet cleaning, lawn moving, disaster rescue and wireless sensor networks (Davids, 2002; Drenner et al., 2002; Li, Tan, & Zhang, 2006; Li & Tan, 2007, 2008; Xiao, Jia, Xu, & Tan, 2006; Yuan, Orlowska, & Sadiq, 2007). As most mobile robots are powered by batteries, their energy and operation time are limited. For example, the humanoid robot from Honda can only walk for approximately 30 min with its rechargeable battery (Aylett, 2002). A robot has to constantly return to a docking station for battery changing or recharging due to its limited battery capacity. Therefore, how to minimize energy consumption and keep mobile robots staying-alive becomes an important problem for the path planning of mobile robots. Energy optimization for embedded systems has been well studied. DVS is one of the most effective techniques for energy minimization. Therefore, a lot of DVS scheduling techniques have been proposed in the previous work. For periodic independent tasks, the DVS scheduling has been extensively studied for single and multiple processors (Hua, Qu, & Bhattacharyya, 2003, 2006; Kianzad, Bhattacharyya, & Qu, 2005; Mochocki, Hu, & Quan, 2007; Qiu et al., 2008). By applying the earliest-deadline-first scheduling policy, the DVS scheduling on single processor is studied based on dynamic priority (Chen, Kuo, & Shih, 2005; Chen & Kuo, 2005a, 2006; Chen, Kuo, Yang, & King, 2007). For multiple processors, the work in Chen et al. (2004) and Chen and Kuo (2005b) focused on DVS scheduling on homogeneous multiple processors ⇑ Corresponding author. E-mail address: [email protected] (Z. Shao). 0957-4174/$ - see front matter Ó 2011 Elsevier Ltd. All rights reserved. doi:10.1016/j.eswa.2011.09.046 3560 H. Wei et al. / Expert Systems with Applications 39 (2012) 3559–3571 motors. In Jia, Zhou, and Chen (2004) proposed a cost-efficient motion planning algorithm by integrating grid and topological information for robot exploration. In all of the above work, however, staying-alive is not considered. As shown later, if returning to a docking station for battery changing or recharging is not considered in a path planning for mobile robots powered by batteries, a robot may exhaust all of its energy and stop in the middle of the path. To solve the staying-alive problem for mobile robots, several methods have been proposed (Hada & Uta, 1999; Silverman, Nies, Jung, & Sukhatme, 2002; Zelinsky & Taylor, 2000). Zelinsky and Taylor (2000) implemented the auto recharging device on a mobile robot. However, in these methods, the path planning is either not considered or handled with a static manner. As we will show in later sections, a static energy lower bound method may not work very well for energy saving. In Zebrowski and Vaughan (2005), Zebrowski, Litus, and Vaughan (2007) proposed an energy delivery approach called the tanker approach. In their approach, a tanker robot is served as ‘‘mother’’ robot to traverse and distribute energy cells to worker robots if demanded. In Floreano and Mondada (1996) proposed a discrete time recurrent neural network approach that allows the robot to choose trajectory based on locations and remaining energy. Our work is a good supplement for the above methods by providing staying-alive and energy-efficient path planning so robots or tanker robots can utilize the routes generated to finish their tasks with the minimum energy. In this paper, we propose a novel scheme to solve the stayingalive and energy-efficient path planning problem. To guarantee that a robot can always return to the docking station for battery changing or recharging, we propose an integrate approach for energy minimization. The problem is a variation of the traveling salesman problem (TSP), a well-known NP-complete problem (Applegate, Bixby, Chvtal, & Cook, 2006; Noronha & Sarma, 1991; Sanjeev, 1998). To solve the problem, we propose an approach based on the Tabu-search method (Gendreau, Hertz, & Laporte, 1994) called SLEEP (Staying-aLive and Energy-Efficient Path planning). In SLEEP, we first propose an angle-based traveling algorithm that can generate a good initial path planning solution suitable to our Tabu-search optimization. Then we design a staying-alive Tabu-search based algorithm for energy optimization. We conduct experiments in a real-life experiment based on a rechargeable mobile robot platform. For the real-life experiments, we let the mobile robot traverse in one floor of a building with 70 rooms. We design a real-time power sampling system with current sense amplifiers and AD converters with multi-channel sampling to collect the power consumption of the robot. The real-life experimental results show that SLEEP, our Tabu-search based approach, can provide an effective path planning by which the robot can be guaranteed to stay alive and finish all tasks with the minimum energy. To the best of our knowledge, this is the first work to consider the staying-alive and energy-efficient path planning problem for mobile robots, and conduct and implement experiments in a real-life environment. The rest of the paper is organized as follows. In Section 2, we present motivational examples. The system models and problem statement are presented in Section 3. In Section 4, we propose our staying-alive and energy-efficient path planning algorithm. Experiments are provided in Section 5. The conclusion is presented in Section 6. ated with a value that denotes the required energy to finish the task. Each edge between two task nodes represents the route for a robot to travel. The value associated with each edge represents the energy consumption of the robot traveling along the route. For the sake of simplicity, in this example, we assume that, The relationship between energy consumption of the robot and its moving distance is linear. The robot consumes 1 kJ for traveling 1 unit of distance. The robot does not consume energy for recharging. The robot has 1000 kJ of energy after recharged. These assumptions are only for demonstration purpose. Our technique is general enough to deal with general energy models as discussed in later sections. Figs. 1–3 show three routes generated by three different path planning methods, respectively. In Fig. 1, the route is generated by the TSP (traveling salesman problem) method in Arora (1996). The TSP method finds a shortest route to traverse all locations. However, without considering the staying-alive of the robot, the route generated by the TSP method may not provide a feasible solution. In Fig. 1, when the robot travels to location v10, the remaining energy is 2.79 kJ. The remaining energy is not enough to finish the execution of task v10. Therefore, following the route generated by the TSP method, the robot may run out of energy during the task execution, and the robot may not stay alive to finish all tasks. Fig. 2 shows the route generated by combining the staying-alive scheme in Silverman et al. (2002) with the path planning in Arora (1996). The scheme in Silverman et al. (2002) is a static energyevaluation approach, in which the robot is required to return to the docking station if its energy level reached to the battery energy threshold. We assume that the threshold is 10% of the full battery capacity, and the robot has 1000 kJ of energy after recharged. When the remaining energy of the robot is less than 100 kJ, the robot must go back to the docking station for recharging. In Fig. 2, when the robot travels along the route from location v8 to v9, we can see that its remaining energy is lower the threshold. Therefore, the robot returns to the docking station for recharging, and then continues to finish the rest tasks after battery recharging. From Fig. 2, we can see that, location v9 is far away from the docking station, and it consumes a great amount of energy when the robot travels from the place where its energy reached its static energy lower bound to the docking station v0, and then traveling from the docking station back to location v9. Therefore, by combining the staying-alive scheme in Silverman et al. (2002) with the path planning in Arora (1996), it may generate a route with bigger energy consumption. Fig. 3 shows the route generated by our approach. The path planning obtained by our approach takes the minimum amount of energy to travel all locations and return to the docking station. Our approach dynamically evaluates the remaining energy, and compares it with the battery energy threshold. At location v8, the robot will not have enough energy to go to the next location. Therefore, the robot will return to the docking station to recharge. Compared with Figs. 1 and 2, we can see that the route generated by our path planning consumes less energy while keeping the robot staying-alive. From this example, we can see that it is necessary to consider staying-alive and energy consumption for the path planning for a robot. 2. Motivational example In this section, we give an example to illustrate that different path planning methods will cause different energy consumption. Fig. 1 shows the test environment that consists of eleven task locations (v1 to v11) and one docking station. Each task node is associ- 3. System model and problem statement In this section, we introduce the system model, and then provide the problem formulation. H. Wei et al. / Expert Systems with Applications 39 (2012) 3559–3571 3561 Fig. 1. The route obtained by the path planning method in Arora (1996) without considering staying-alive. The robot runs out of energy when executing the task at location v10. Fig. 2. The route generated by combining the path planning in Arora (1996) with the staying-alive scheme in Silverman et al. (2002) with energy consumption 300.3591 kJ. Fig. 3. The route generated by our path planning method with energy consumption 258.7087 kJ. 3562 H. Wei et al. / Expert Systems with Applications 39 (2012) 3559–3571 3.1. System model 3.4. Problem statement In this paper, we use a directed graph G to model the stayingalive and energy-efficient path planning. A graph G = (V, E, e, w) is a node-weighted and edge weighted directed graph. V = {v0, v1, . . . , vn} is the node set, and each node represents one task for the robot to process. v0 denotes the task at docking station. E # V V is the edge set that defines the execution order for all tasks in V. Each directed edge, (vi, vj) 2 E(vi, vj 2 V), represents that the execution of task vj needs to wait the finish execution of task vi. e : V#Rþ is a function that associates every task vi 2 V with a positive real number e(vi). Each node weight e(vi) is used to represent the energy consumption for the robot to process task vi. w : E#Z is a function that associates every directed edge (vi, vj) 2 E with a non-negative weight w(vi, vj). An edge weight,w(vi, vj), is used to represent the energy consumption of the robot traveling from task vi to task vj. Based on the models and concepts in previous sections, we formulate our path planning problem for mobile robots as follows: Given a directed graph G(V, E, e, w), find a path that starts from and ends with task node v0 and traverses all task nodes {v1, v2, . . . , vn} once and only once with the minimum total edge P weights wðv i ; v j Þ; ðv i ; v j Þ 2 E. This path may contain one or more subpaths starting from and ending with task node v0, and the summation of all edge weights and all node weights of each subpath cannot exceeds the full battery energy of a robot after recharged. 3.2. Staying-alive path planning From the motivational example, we can see that the path planning should consider staying-alive. In our approach, staying-alive is evaluated in a dynamic way. We define staying-alive as follows. Definition 3.1. Given a directed graph G (V, E, e, w), and a corresponding path planning, staying-alive denotes that, when a robot travels from task node vi to task node vj, (vi, vj 2 V), the robot will always have enough energy to return to the docking station v0; when the robot arrives at task node vk, (vk 2 V), the robot will always have enough energy to finish current task at task node vk and return to the docking station v0. 4. SLEEP: Staying-aLive and Energy-Efficient Path planning In this section, we propose an approach, SLEEP (Staying-aLive and Energy Efficient Path planning), based on the Tabu search method (Gendreau et al., 1994) to solve the problem. We first propose an angle-based traveling algorithm that can generate a good initial path planning solution. Then we design a staying-alive algorithm for energy optimization based on the Tabu search method. 4.1. Algorithm TSP_Initial In this section, we propose an algorithm TSP_Initial to generate the initial path planning. Our basic idea is to let a robot traverse as many vertices as possible in a circular sector zone enclosed in order to reduce the number of times of it returns back to the docking station for recharging. The TSP_Initial algorithm is shown in Algorithm IV.1. Algorithm IV.1: Algorithm TSP_Initial 3.3. Static and dynamic energy evaluation scheme To guarantee the robot to stay alive, an energy evaluation scheme is necessary. The energy evaluation scheme determines whether a robot should go back to the docking station for recharging. Static energy evaluation scheme sets up an energy lower bound Estatic for the battery capacity. A robot is required to return to the docking station for recharging if its energy level reached to the battery energy lower bound Estatic. This energy lower bound Estatic depends on different applications. Dynamic energy evaluation scheme dynamically evaluates if a robot needs to return to the docking station after it finishes the current task. The dynamic energy evaluation scheme defines the energy lower bound of the robot as a reference value to keep robot staying-alive. The dynamic energy lower bound Edynamic(vi, vj) for the robot traveling from task node vi to task node vj is calculated as follows, Edynamic ðv i ; v j Þ ¼ wðv i ; v j Þ þ eðv j Þ þ wðv j ; v 0 Þ þ eðv 0 Þ ð1Þ In Eq. (1), w(vi, vj) is the energy needed for a robot traveling from task node vi to task node vj; e(vj) is the energy needed to finish the task vj; w(vj, v0) is the energy needed from task node vj to the docking station v0; e(v0) is the energy needed for battery changing or recharging at the docking station v0. In the dynamic energy evaluation scheme, we dynamically check whether a robot has enough energy to go to the next location, finish the task and return to the docking station for recharging. From Eq. (1), we can see that, if the current energy capacity of the robot is greater than or equal to the dynamic energy lower bound Edynamic(vi, vj), a robot can safely finish the next task vj, and return to the docking station v0 if it is necessary; otherwise, the robot needs to directly go back to the docking station v0 for battery changing or recharging. Input: A directed graph G (V, E, e, w). Output: An initial staying-alive path planning PINITIAL that traverses all task nodes. //Find the initial searching direction 1: for each task node vi, (vi 2 V) do 2: Create a straight line segment to connect v0 with vi. 3: end for 4: Every two adjacent straight line segments, v 0 v i and v 0 v j , intersecting at the docking station v0 forms an angle \aij, (vi, vj 2 V). 5: Find the angle \akl, (vk, vl 2 V) with the maximum degree. 6: Let the task node vk be the first processing task node. // Generate an energy-efficient initial path planning 7: Obtain a path, starting from and ending with the docking station v0, and traversing all task nodes {v1, v2, . . . , vn} once and only once in an anticlockwise direction, based on the path planning in Arora (1996). 8: for each path segment v i v j along the path, vi, vj 2 V do 9: if the remaining energy of the robot is greater than or equal to the dynamic energy lower bound Edynamic(vi, vj) then 10: Follow the route to task node vj 11: else 12: Go back to the docking station v0 13: Travel from the docking station v0 to task node vj 14: end if 15: end for In Algorithm IV.1, we first find the initial searching direction. Basically, We create straight line segments to connect v0 with all other nodes, by which we can obtain many angles formed by two adjacent straight lines. We then find the maximum angle and from the vertices of this angle we start our path planning. The purpose is H. Wei et al. / Expert Systems with Applications 39 (2012) 3559–3571 to avoid having a path across the biggest circular section zone. This is illustrated in Fig. 4. As shown in Fig. 4(a), the graph consists of 7 task nodes {v0, v1, . . . , v6}. v0 represents the docking station, and {v1, v2, . . . , v6} are task nodes. Every two adjacent straight line segments intersecting at the docking station v0 forms an angle. We can see that the angle \a56 has the maximum degree. Thus, the task node v5 becomes the first task node for processing. After the initial searching direction is found, we generate a path, starting from and ending with v0, and traversing all vertices {v1, v2, . . . , v6} once and only once in an anticlockwise direction. This initial path planning is generated based on the algorithm for the traveling salesman problem in Arora (1996). Fig. 4(b) shows the path planning generated that is v0 ? v5 ? v3 ? v4 ? v1 ? v2 ? v6 ? v0. After a path planning is obtained, we evaluate each line segment along the path by comparing the remaining energy with the dynamic lower bound energy, Edynamic(vi, vj), (vi, vj 2 V). If the remaining energy of the robot is greater than the lower bound, the robot will follow the route and go to the next location vj; otherwise, it will return back to the docking station v0 for recharging and then go to the next location vj. In this way, we can guarantee that the robot can stay alive. An example is given in Fig. 4(b). At task node v3, the remaining energy of the robot is lower than the energy lower bound. The robot will go back to the docking station v0 and then go to task node v4. The corresponding initial path, PINITIAL, will change to v0 ? v5 ? v3 ? v0 ? v4 ? v1 ? v2 ? v6 ? v0. 3563 Algorithm IV.2: (continued) Algorithm IV.2: Algorithm TS_Optimization 7: Best_Candidate the candidate with the minimum energy consumption. 8: if the energy consumption of Best_Candidate< the energy consumption of Best_Solution then 9: Best_Solution Best_Candidate. 10: Input_Solution Best_Candidate. 11: else 12: for all the candidates that are not tabooed in the tabu list do 13: Best_Candidate the best candidate with the minimum energy consumption. 14: Input_Solution Best_Candidate. 15: end for 16: end if 17: for each Tabu_Tenure a in the tabu list do 18: if a > 0 then 19: a a 1. 20: end if 21: end for 22: Set up the Tabu_Tenure of the pair of the nodes that generate Best_Candidate (through swapping or insertion) as as the default maximum value. 23: Iter_Num Iter_Num + 1. 24: end while 4.2. Algorithm TS_Optimization Based on the initial path planning generated above, in this section, we propose a tabu search-based method to further optimize energy consumption. The tabu search method is a generic method with meta-heuristic superimposed on other heuristic algorithms (Glover, 1990a; Glover, 1990b; Glover, Taillard, & de Werra, 1993; Glover & Laguna, 1997; Hurink & Knust, 2002). The TS_Optimization algorithm is shown in Algorithm IV.2. Algorithm IV.2: Algorithm TS_Optimization Input: A graph G (V, E, e, w), the initial staying-alive path planning PINITIAL, the maximum number of iterations MAX. Output: A path planning Best_Solution with the minimum energy consumption. 1: Best_Solution PINITIAL. 2: Input_Solution PINITIAL. 3: Iter_Num 0. 4: while Iter_Num < MAX do 5: Generate N candidates with the swapping or insertion strategy based on Input_Solution. 6: Calculate the energy consumption of each candidate based on Eq. (1). v1 v6 v0 v2 61 12 v4 24 v1 v6 v2 v0 v4 43 56 35 v5 v3 (a) v5 v3 (b) Fig. 4. Find the first task node for processing. In Algorithm IV.2, we iteratively use the tabu search method to obtain the best path planning solution with the minimum energy consumption. At each iteration, we first generate N path planning candidates based on the input solution, in which N is obtained by considering all pairs of nodes expect v0. The N candidates are generated using one of the two moving strategies, swapping and insertion, and we will discuss the swapping and insertion in detail in Section 4.2.1. Then we calculate the energy consumption for each candidate based on Eq. (1), and pick up the candidate with the minimum energy as the best candidate. If the energy consumption of the best candidate is less than the current best solution, this best candidate will become the best solution and the next input solution. Otherwise, we select the best candidate from all candidates that are not tabooed in the tabu list as the next input solution, in which a candidate is not tabooed when the tabu tenure (Tabu_Tenure) of the pair of the nodes generating this candidate through swapping or insertion in the tabu list is 0. Note that we do not replace the best solution with this best candidate; however, this candidate is used as the next input solution in order to jump out the local optimality. Finally, we update the tabu list as follows: (1) Decrease each tabu tenure by one if it is greater than zero; (2) Set up the tabu tenure of the pair of nodes that generated the best candidate as the default maximum value. How to update the tabu list is discussed in Section 4.2.2. 4.2.1. Swapping and insertion The path planning candidates are generated by performing all possible moves on an input solution. The swapping and insertion are alternatively used as the moving strategy for each iteration. The swapping strategy exchanges the nodes. Different from swapping, the insertion strategy removes one node from its current position and inserts it before another node. In our algorithm, in each iteration, either the swapping or insertion is applied to each pair of nodes except the docking station. Figs. 5 and 6 give examples of the swapping and insertion, respectively. Fig. 5(a) is the initial path planning PINITIAL generated by Algorithm IV.1. By performing the swapping strategy on v1 3564 H. Wei et al. / Expert Systems with Applications 39 (2012) 3559–3571 and v2, we obtain a new path planning candidate ‘‘v0 ? v5 ? v3 ? v0 ? v4 ? v2 ? v1 ? v6 ? v0’’ as shown in Fig. 5(b). Similarly, as shown in Fig. 6(b), by performing the insertion strategy on the pair (v1, v4), we get a candidate solution ‘‘v0 ? v5 ? v3 ? v0 ? v2 ? v4 ? v1 ? v6 ? v0’’, in which task node v2 is removed from its position and inserted before v4. 4.2.2. Tabu list In the tabu list, each row or column denotes a node, and each entry called tabu tenure denotes the number of iterations for disallowing the corresponding moving operation between two nodes. The tabu list is updated based on the best candidate at the end of each iteration. Basically, we decrease each tabu tenure by one if it is greater than zero, and we set up the tabu tenure of the pair of the nodes that generate the best candidate through the swapping or insertion as the default maximum value. The purpose is that the corresponding swapping/insertion operation that generates the best candidate is forbidden in the following several iterations except that it can generate a better solution. In such a way, our algorithm can avoid repeatedly generating one solution back and forth. An example of the tabu list used in our approach is shown in Fig. 7. Fig. 7(a) shows the initial tabu list for the initial input solution as shown in Fig. 5(a). All entries are initialized by 0, which denotes that all moving operations are allowed to be performed in order to get the best solution with the minimum energy. Assume that we get the best candidate by swapping v1 and v2 based on the input solution after the first iteration. Thus, the entry of (v1, v2) is updated by a predefined value 3 as shown in Fig. 7(b), which means that the moving operation, either swapping or insertion, between v1 and v2 should be disallowed for the next 3 iterations. In the second iteration, assume that the best candidate is obtained by inserting v2 before v4. At the end of this iteration, we update the entry of (v2, v4) as 3, and deduce the tabu tenure of (v1, v2) by 1 as shown in Fig. 7(c). When the entry becomes zero, the tabooed move can take place freely. 4.2.3. Time complexity of Algorithm TS_Optimization At the beginning of each iteration, we perform either swapping or insertion on each pair of tasks to get all possible candidates. The number of candidates is C 2n , where n is the number of nodes in the input graph. As the algorithm will be executed for max iterations, the time complexity of the algorithm is O(MAX n2), where MAX is the predefined maximum number of iterations. In Section 5.3, we will discuss how the number of iterations will influence the overall performance. 5. Experiments In order to evaluate the effectiveness of our technique, we conduct experiments based on our rechargeable mobile robot platform with a power sampling system. In this section, we first present the v1 v6 v2 v0 v4 v5 v3 (a) v1 v6 v2 v0 v4 v5 v3 v2 v0 v4 v5 v3 v1 v6 v0 v2 v4 v5 (a) v3 (b) Fig. 6. (a) The initial path planning; (b) The candidate generated by inserting before v4. v2 setup and the real-life experimental environment in Sections 5.1 and 5.2, respectively. Then we present the results in Section 5.3. 5.1. Experimental setup 5.1.1. Mobile robot platform Our experiments are conducted based on a real mobile robot, UP-Voyager IIA, a wheeled mobile robot manufactured by the UPTECH Robotics Company (UP-Voyager IIA mobile robot, 2009). The mobile robot is shown in Fig. 8. This robot is driven by Faulhaber servo DC motors, and it is powered by lead-acid rechargeable batteries with the capacity of 24 V-17Ah. The maximum traveling speed is approximately 2.5 m/s. This mobile robot has 24 sonar sensors and 24 infrared sensors which are evenly distributed around the mobile robot. A PHILIPS/NXP ARM9 based micro-controller LPC2919 is used to control motors. The micro-controller is managed by a real-time operating system lC/OS-II (uC/OS-II Operating System, 2009). An Atmel ATmega128 micro-controller is used to control sensors. The robot communicates with a PC through RS485 full duplex bus. The total weight of the robot is about 30 Kg. 5.1.2. Power sampling system In this section, we present the power sampling system used in our experiments. Our power sampling system collects the real time power consumption of the mobile robot. It consists of three major components: power sampling board, data acquisition device, and data processing device. The architecture of the power sampling system is shown in Fig. 9. Our power sampling board is designed to measure the drawn energy from batteries. We use MAX4071 (Maxim bidirectional, high-side, current-sense amplifiers with reference, 2009) bidirectional, high-side, current-sense amplifiers to monitor battery charge and discharge currents of the robot. An external currentsense resistor Rsense is used along with a gain select pin to choose either 50 V/V or 100 V/V. A single output pin continuously monitors the transition from charge to discharge and avoids the need for a separate polarity output. MAX4071 contains an internal 1.5 V reference. The charging current is represented by an output voltage from 1.5 V to VCC, while discharge current is given from 1.5 V to GND. The power sampling board is shown in Fig. 10. To achieve multi-channel sampling and AD conversion, we use NI USB-6008 data acquisition device (Data Sheet of NI USB-6008 12-Bit, 2009), which has 8 channels with 10 kHz sampling rate, 12 bit sampling precision. The sampled data will be transmitted to the laptop through the high speed USB transmission. We use LabView (Home page OF NI LabView, 2009) to process the data and get the power consumption. 5.2. Real-life experimental environment (b) Fig. 5. (a) The initial path planning; (b) The candidates generated by swapping and v2. v1 v6 v1 We have conducted our experiments in the main building of Beijing University of Aeronautics and Astronautics. Fig. 11(a) 3565 H. Wei et al. / Expert Systems with Applications 39 (2012) 3559–3571 V5 V6 0 0 V2 V1 0 V3 0 V4 0 V2 0 V3 0 0 0 0 0 0 V4 0 0 V5 0 V2 V1 3 V3 0 V4 0 V5 V6 0 0 V2 0 V3 0 0 0 0 0 0 V4 0 0 V5 0 Best Solution: Initial Solution (a) Swapping V1 with V2 V2 V1 2 V3 0 V4 0 V5 V6 0 0 V2 0 V3 3 0 0 0 0 0 V4 0 0 V5 0 Best Solution: Insert V2 before V4 (b) (c) Fig. 7. (a) At the beginning of the first iteration, the tabu list for the initial solution in Fig. 5; (b) In the second iteration, the entry (v1, v2) becomes 3 as the best solution is generated by swapping v1 with v2; (c) In the third iteration, the entries (v2, v4) and (v1, v2) get updated. of distance. e(v0) is the energy needed for battery changing or recharging in the docking station. e(vi) is the energy required to finish task vi. It is proportional to the room area AREA(vi) of a room vi. Estatic is the static energy lower bound of the robot. Note that there parameters are used as the inputs of the algorithms so paths can be generated. 5.3. Results and discussion Fig. 8. UP-Voyager IIA, a wheeled mobile robot, we use in the real-life experiments. shows the floor plan of the building. In our experiments, we let the robot traverse all rooms in one floor of the building. We model this house ichnography as a graph. Each room is modeled as a node, and corridors which connect rooms are taken as ideal lines in the graph model. Fig. 11(b) shows the graph model we used in the experiments. There are 70 nodes in the graph, and a docking station node (the triangle in Fig. 11(b)) represents the docking station where the robot can recharge the battery. Each edge between two different nodes represents the possible route that the robot can travel. The distance of each edge is based on the actual measurement. The energy parameters used in the experiments are shown in Table 1. In our experiments, the mobile robot performs housecleaning tasks. Therefore, the energy consumption of each task node vi, vi 2 V is proportional to the room area AREA(vi) of the task node vi. In Table 1, Efull is the full battery energy of the robot after recharged. Kt is energy consumption for the robot to travel one meter In this section, we present the experimental results of the reallife experiments. We compare our proposed SLEEP (Staying-aLive and Energy-Efficient Path planning) approach with two different approaches, GREEDY-SLB and GREEDY-DLB. The GREEDY-SLB (Greedy-based static energy lower bound) method combines the algorithm in Arora (1996) with the static battery energy threshold. This method will let the robot travel as far as it can until its energy reaches the static battery energy lower bound. The GREEDY-DLB (greedy-based dynamic energy lower bound) method combines the algorithm in Arora (1996) with the dynamic energy evaluation scheme. In GREEDY-DLB, we first obtain a path planning with the algorithm in Arora (1996) without considering staying-alive and then we add paths to go back to the docking station for recharging with the dynamic energy evaluation scheme. In the following, we first compare the energy consumption of GREEDY-SLB and GREEDY-DLB with our SLEEP technique (Tabusearch based dynamic energy lower bound algorithm). Then we compare the actual path planning generated by our approach and the GREEDY-DLB method. Finally, we discuss on the influences of various factors (iteration times, different Tabu-search strategies) on the energy consumption for our SLEEP algorithm. Note that the energy consumption shown in Tables 2 and 3 is the output of the power sampling system by letting the robot walk through the corresponding paths obtained by the algorithms. 5.3.1. Energy consumption We conduct experiments on one floor of a building with 70 rooms. In our graph model, each room is modeled as a node. We select {10, 20, . . . , 70} nodes from the total 70 nodes to form 7 groups of test cases. For each test case, we generate 10 task sets and get the corresponding energy consumption. Each task set in the same test case consists of the same number of nodes. The experimental result for each test case is the average value of the 10 task sets. Table 2 illustrates the experimental results in terms of the energy consumption for three different approaches. In this table, column ‘‘Test Case’’ refers to the number of nodes in each task case. Columns ‘‘GREEDY-SLB’’, ‘‘GREEDY-DLB’’ and ‘‘SLEEP’’ represent the energy consumption obtained by GREEDY-SLB (Greedy-based 3566 H. Wei et al. / Expert Systems with Applications 39 (2012) 3559–3571 PC Controller RS485 Batteries Robot LPC2919 ARM968E-S Microcontroller ATmega128 AVR 8-bit Microcontroller Motors Sensors Laptop LabVIEW Rsense Rsense USB Serial Current Sensing Circuit AMP AMP Analog Data Rdivider NI6008 Data Acquisition Device Rdivider Voltage Sensing Circuit Power Sampling Board Fig. 9. The architecture of the power sampling system. Fig. 10. The power sampling board designed for the real-life experiments. static energy lower bound method), GREEDY-DLB (Greedy-based dynamic energy lower bound method), and SLEEP (Staying-aLive and Energy-Efficient Path planning), respectively. Columns ‘‘SLEEP IMP SLB (%)’’ and ‘‘SLEEP IMP DLB (%)’’ represent the percentages of energy improvement achieved by our SLEEP approach compared to GREEDY-SLB and GREEDY-DLB, respectively. From these experimental results, we can see that: (1) Our SLEEP approach can achieve an average of 14.71% and 8.01% reduction in 3567 H. Wei et al. / Expert Systems with Applications 39 (2012) 3559–3571 Fig. 11. House ichnography of the building and its corresponding graph model. Table 1 The energy parameters used as the inputs of the algorithms. Parameter Value Efull Kt e(v0) e(vi) Estatic 313.5 kJ 0.42 kJ/m 15 kJ AREA(vi) 0.49 kJ/m2 62.7 kJ energy compared to GREEDY-SLB and GREEDY-DLB, respectively. (2) When the number of tasks is small, our approach can achieve great improvement over GREEDY-SLB and GREEDY-DLB. The discussion is provided as follows. When we randomly select a small number of nodes (e.g. 10 nodes) from 70 nodes, the selected nodes can be distributed in different areas. In this case, our Tabu-search based approach SLEEP can iteratively find the optimal solution. As algorithms GREEDYSLB and GREEDY-DLB always try to find the nearest available nodes, it is difficult to get the good solution as we did. When the number of nodes increases, the nearest available nodes for algorithms GREEDY-SLB and GREEDY-DLB sometimes become the same Table 3 Comparison of energy consumption with different tabu search strategies. Test case Swapping (kJ) Swapping & Insertion (kJ) IMP (%) 10 20 30 40 50 60 70 Avg. 263.83 447.67 596.66 710.89 889.70 1025.00 1087.90 259.61 427.12 575.43 697.88 874.08 1005.13 1083.79 1.60 4.59 3.56 1.83 1.76 1.94 0.38 2.24 solution as ours. Therefore, the improvement of energy consumption is relatively worse than that with less number of nodes. 5.3.2. Path planning In this section, we analyze a typical case and compare the actual path planning solutions generated by our approach and the GREEDY-DLB method. In the experiments, we randomly selected 30 nodes from 70 nodes to form a test set. Figs. 12 and 13 show the actual path planning performed by our SLEEP approach and GREEDY-DLB method, respectively. The dashed line represents the actual path or corridor in the building. Table 2 Comparison of the energy consumption for different algorithms. Test case GREEDY-SLB kJ GREEDY-DLB kJ SLEEP kJ SLEEP IMP SLB (%) SLEEP IMP DLB (%) 10 20 30 40 50 60 70 Avg. 376.70 551.37 668.31 831.87 943.81 1049.30 1152.99 306.39 508.86 631.08 774.05 886.92 1021.30 1103.58 271.38 432.14 559.20 708.79 844.82 984.16 1088.62 27.96 21.62 16.33 14.80 10.49 6.21 5.58 14.71 11.43 15.08 11.39 8.43 4.75 3.64 1.36 8.01 3568 H. Wei et al. / Expert Systems with Applications 39 (2012) 3559–3571 Each small circle represents a task node, and each solid circle represents a selected task for processing. Each solid line represents the path for the robot to traverse, and each bold dash line represents the path for the robot to return to the docking station. Fig. 12 illustrates the route that the robot traverses 30 rooms by GREEDY-DLB method. The robot recharges 6 times to finish all 30 tasks. GREEDY-DLB method always tries to finish as many as possible tasks until the energy consumption reaches the lower bound. Compared with GREEDY-DLB, our Tabu-search based approach SLEEP tries to iteratively find the optimal solution. Although the robot needs to be recharged for 6 times, the execution order for processing tasks is quite different. For example, the first node that the robot traverses in Fig. 12(a) is the last node that the robot traverses in Fig. 13(a). We can see that the solution based on GREEDY-DLB always tries to find the next available node. Our SLEEP approach considers the overall performance of path planning, and the execution order and grouping of nodes is quite different from GREEDYDLB method. We can also observe that the path planning generated by GREEDY-DLB is relatively longer than the one generated by our SLEEP approach. Therefore, the overall energy consumption of our SLEEP approach will be less than the one GREEDY-DLB does. 5.3.3. Influences of various factors on our SLEEP approach In this section, we discuss on the influences of various factors (iteration times, different Tabu-search strategies) on the overall performance for our SLEEP approach. In our SLEEP approach, the stop criterion of our algorithm is by checking if the number of iterations exceeds the predefined maximum number of iteration times. This maximum number of iteration times becomes an influential factor of our SLEEP approach. Thus, we conduct experiments with different iteration numbers to evaluate the influences of this factor. On the other hand, in our SLEEP approach, we adopt two different Tabu search strategies, swapping and insertion, to generate candidate solutions. We compare the energy consumption of our SLEEP algorithm by adopting these different candidate generation strategies. 5.3.3.1. Iteration numbers. As mentioned in Section 5.3.1, we conduct experiments on each test case for 10 times to form 70 test sets. In this section, we present the experimental results of three typical task sets for traversing 70 nodes. Fig. 14 shows the search processes of our SLEEP approach. In Fig. 14, ‘‘Best solution so far’’ denotes the path planning with the least energy consumption by the search processes of our SLEEP approach after several iterations. ‘‘Current solution’’ represents the best candidate solution in current iteration of search process. From Fig. 14, we can see that the Tabu-search process gradually approaches to the optimal solution. For the task set in Fig. 14, it takes approximately 9000 iteration times until it achieves the optimal solution. For different task sets, the number of iteration times to find the optimal solution is quite different. The task set in Fig. 14(b) takes less than 8000 iteration times, while the task set in Fig. 14(c) only takes about 6500 iteration times to find the optimal solution. Although these three task sets derives from the same initial path planning, the number of iteration times to achieve the optimal solution is different. The reason is that, after adopting different candidate generation strategies, some task sets may take less number of iterations to find a solution that gradually approaches to the optimal solution. Other task sets may generate candidate solutions that consume even more energy. Then, it needs more iteration times to adjust the search space to find the more energy-efficient solution. (a) (b) (d) (e) Fig. 12. The path planning generated by the GREEDY-DLB method. (c) (f) 3569 H. Wei et al. / Expert Systems with Applications 39 (2012) 3559–3571 (a) (b) (c) (d) (e) (f) Fig. 13. The path planning generated by our SLEEP method. For example, the path planning in Fig. 14(c) takes less than 500 iteration times to find a solution that spends less than 1100 kJ energy. However, in Fig. 14(a), it takes more than 4000 iteration times to find the solution. Taken a closer look at Fig. 14(a), after about 1000 iteration times, a candidate with energy consumption about 1110 kJ is generated. It takes about 3000 iteration times (1000 to 4000) to find a candidate solution with less energy consumption than the initial one. Note that, we conduct experiments in a real-life environment. For each test case, the optimal energy consumption of different test sets will be slightly different. 5.3.3.2. Swapping and insertion strategies. In our SLEEP approach, two different Tabu-search strategies, swapping and insertion, are used to generate candidate solutions. In this section, we compare the influence of the swapping strategy with the strategy that combined swapping and insertion. Experimental results are in Table 3. For each test case, we generate one task set to perform our SLEEP approach. For the first group of candidate generation solution, we Tabu search process 1110 1095 1090 1085 1080 2000 4000 6000 8000 Iteration Times (a) 10000 12000 14000 1095 Tabu search process 1090 1085 1080 1075 0 Best Solution So Far Current Solution Energy Consumption (KJ) 1100 1110 Best Solution So Far Current Solution Energy Consumption (KJ) Energy Consumption (KJ) Tabu search process 1100 Best Solution So Far Current Solution 1105 1075 0 conduct experiments by only using swapping strategy. For comparison, the second group of candidate generation is performed by combining swapping strategy with insertion strategy. In the second group, half of the candidate generation solutions are generated by swapping strategy, and the rest half are generated by insertion strategy. In Table 3, column ‘‘test case’’ refers to the number of nodes in each task set. Column ‘‘swapping’’ represents the energy consumption of the path planning by using swapping strategy in our SLEEP approach. Column ‘‘swapping & insertion’’ represents the energy consumption of the path planning that combines swapping strategy with insertion strategy in our SLEEP approach. Columns ‘‘IMP (%)’’ represents the percentages of how much extra energy is saved by the combined strategies compared to the strategy only using swapping. From the table, we can see that the performance of the combined strategies is better than that of the swapping strategy in each test case ranging from 10 to 70 nodes. On average, the combined 2000 4000 6000 8000 10000 12000 Iteration Times (b) Fig. 14. The search processes of our SLEEP algorithm. 1105 1100 1095 1090 1085 1080 0 1000 2000 3000 4000 5000 6000 7000 8000 9000 Iteration Times (c) 3570 H. Wei et al. / Expert Systems with Applications 39 (2012) 3559–3571 strategies can save 2.24% energy consumption compared to the energy consumption that only using swapping strategy. This experimental result illustrates that the combined strategy with both swapping and insertion can improve the energy consumption. 6. Conclusion and future work In this paper, we proposed a novel scheme to solve the stayingalive and energy-efficient path planning problem. To guarantee that a robot can always return to the docking station for battery changing or recharging, we proposed an approach based on the Tabu search method called SLEEP (staying-alive and energy-efficient path planning). In SLEEP, we first introduced an angle-based traveling algorithm that can generate a good initial path planning solution suitable to our Tabu-search optimization. Then we proposed a staying-alive Tabu search based algorithm for energy optimization. We conducted extensive experiments in a real-life experiment based on a rechargeable mobile robot platform. The real-life experimental results showed that our SLEEP technique can provide an effective path planning by which the robot can be guaranteed to stay alive and finish all tasks with the minimum energy consumption. There are several directions for future work. First, it will be an interesting topic to implement stay-alive obstacle avoidance and navigation based on this work. Basically, we need to extend our technique to make it be able to perform path planning dynamically so a robot can react to the environment changes such as finding obstacles and then adaptively adjust paths. Second, our algorithms are based on a simple energy model. In fact, there are many factors to influence the energy consumption such as the speed and acceleration of a robot and the type and quality of batteries. More energy-efficient path planning can be obtained by considering these factors. Acknowledgement The work described in this paper is partially supported by the grants from the Research Grants Council of the Hong Kong Special Administrative Region, China (GRF PolyU 5260/07E), the Hong Kong Polytechnic University (A-PJ17 and 1-ZV5S), the 863 Program of China (2009AA043901), National Natural Science Foundation of China (61175079), the Fundamental Research Funds for the Central Universities (YWF-11-02-215), and the Beijing Technology New Star Project (2008A018). References Applegate, D. L., Bixby, R. E., Chvtal, V., & Cook, W. J. (2006). The Traveling Salesman Problem: A Computational Study. Princeton University Press. Aydin, H., Devadas, V. & Zhu, D. (2006). System-level energy management for periodic real-time tasks. In Proceedings of the IEEE real-time systems symposium, (pp. 313–322). Aylett, R. (2002). Robots: Bringing Intelligent Machines to Life. Woodbury, NY, USA: Barron’s Educational Series Inc.. Barili, A., Ceresa, M. & Parisi, C. (1995). Energy-saving motion control for an autonomous mobile robot. In Proceedings of the IEEE international symposium on industrial electronics, 10–14, Vol. 2, (pp. 674–676). Chen, J.-J. & Kuo, T.-W. (2005a). Voltage-scaling scheduling for periodic real-time tasks in reward maximization. In Proceedings of the 26th IEEE real-time systems symposium (RTSS), (pp. 345–355). Chen, J.-J., & Kuo, T.-W. (2005b). Energy-efficient scheduling of periodic real-time tasks over homogeneous multiprocessors. In Proceedings of the 2nd International Workshop on Power-Aware Real-Time Computing (PARC’05), (pp. 30–35). Chen, J.-J. & Kuo, T.-W. (2006). Allocation cost minimization for periodic hard realtime tasks in energy-constrained dvs systems, in Proceedings of the IEEE/ACM international conference on computer-aided design, (pp. 255–260). Chen, J.-J., Hsu, H.-R., Chuang, K.-H., Yang, C.-L., Pang, A.-C. & Kuo, T.-W. (2004). Multiprocessor energy-efficient with task migration considerations. In Proceedings of the EuroMicro conference on real-time systems (ECRTS’04), (pp. 101–108). Chen, J- J., Kuo, T- W. & Shih, C -S. (2005). 1+ approximation clock rate assignment for periodic real-time tasks on a voltage-scaling processor. In Proceedings of the 5th ACM international conference on embedded software (EMSOFT ’05), (pp. 247– 250). Chen, J.-J., Kuo, T.-W., Yang, C.-L., & King, K.-J. (2007). Energy-efficient real-time task scheduling with task rejection. In Proceedings of the Conference of Design Automation, and Test in Europe (DATE). <http://www.ni.com/pdf/products/us/20043762301101dlr.pdf> (2009). Data Sheet of NI USB-6008 12-Bit, 10 kS/s Low-Cost Multifunction DAQ, National Instruments. Davids, A. (2002). Urban search and rescue robots: From tragedy to technology. IEEE Intelligent Systems, 17(2), 81–83. Drenner, A., Burt, I., Dahlin, T., Kratochvil, B., Mcmillen, C., Nelson, B., Papanikolopoulos, N., Rybski, P. E., Stubbs, K., Waletzko, D. & Yesin, K. B. (2002). Mobility enhancements to the scout robot platform. In Proceedings of the 2002 IEEE international conference on robotics and automation, (pp. 1069–1074). Floreano, D., & Mondada, F. (1996). Evolution of homing navigation in a real mobile robot. IEEE Transactions on Systems, Man, and Cybernetics, Part B: Cybernetics, 26(3), 396–407. Gendreau, M., Hertz, A., & Laporte, G. (1994). A tabu search heuristic for the vehicle routing problem. Management Science, 40(10), 1276–1290. Glover, F. (1990a). Tabu search (Part I). ORSA Journal on Computing, 1, 190–206. Glover, F. (1990b). Tabu search (Part II). ORSA Journal on Computing, 2, 4–32. Glover, F., & Laguna, M. (1997). Tabu Search. Kluwer Academic. Glover, F., Taillard, E., & de Werra, D. (1993). A user’s guide to tabu search. Annals of Operation Research, 41(1-4), 3–28. Hada, R. & Uta, S. (1999). Robust navigation and battery re-charging system for long term activity of autonomous mobile robot. In Proceedings of the international conference on advanced robotics, April (pp. 297–302). <http://www.ni.com/labview/> (2009). Home page OF NI LabView, National Instruments. Hua, S., Qu, G. & Bhattacharyya, S. S. (2003). Energy reduction techniques for multimedia applications with tolerance to deadline misses. In Proceedings of the 40th ACM/IEEE design automation conference, (pp. 131–136). Hua, S., & Qu, G. (2005). Voltage setup problem for embedded systems with multiple voltages. IEEE Transactions on Very Large Scale Integration (VLSI) Systems, 13(7), 869–872. Hua, S., Qu, G., & Bhattacharyya, S. S. (2006). Energy-efficient embedded software implementation on multiprocessor system-on-chip with multiple voltages. ACM Transactions on Embedded Computing Systems, 5(2), 321–341. Hung, C-M., Chen, J.-J., & Kuo, T.-W. (2006), Energy-efficient real-time task scheduling for a dvs system with a non-dvs processing element. In Proceedings of the 27th IEEE international real-time systems symposium (RTSS ’06), (pp. 303–312). Hurink, J., & Knust, S. (2002). A tabu search algorithm for scheduling a single robot in a job-shop environment. Discrete Applied Mathematics, 119(1-2), 181–203. Jia, M., Zhou, G., & Chen, Z. (2004). An efficient strategy integrating grid and topological information for robot exploration. In Proceedings of the 2004 IEEE conference on robotics, automation and mechatronics, December Vol. 2, (pp. 667–672). Katoh, R., Ichiyama, O., Yamamoto, T. & Ohkawa, F. (1994). A real-time path planning of space manipulator saving consumed energy. In Proceedings of the 20th international conference on industrial electronics, control and instrumentation, Vol. 2, (pp. 1064–1067). Kianzad,V., Bhattacharyya, S. S. & Qu, G. (2005). Casper: An integrated energydriven approach for task graph scheduling on distributed embedded systems. In Proceedings of the 2005 IEEE international conference on application-specific systems, architecture processors (ASAP ’05), (pp. 191–197). Kim, C. H., & Kim, B.K. (2005). Energy-saving 3-step velocity control algorithm for battery-powered wheeled mobile robots. In Proceedings of the 2005 IEEE international conference on robotics and automation, April (pp. 2375–2380). Li, H. & Tan, J. (2007) Heartbeat driven medium access control for body sensor networks. In Proceedings of the 1st ACM sigmobile international workshop on systems and networking support for healthcare and assisted living environments, (pp. 25–30). Li, H. & Tan, J. (2008) Ecg segmentation in a body sensor network using hidden markov models. In Proceedings of the 22nd IEEE international symposium on parallel and distributed processing, (pp. 25–30). Li, H., Tan, J. & Zhang, M. (2006). Dynamics modeling and analysis of a swimming microrobot for controlled drug delivery. In Proceedings of the 2006 IEEE International Conference on Robotics and Automation, (pp. 1768–1773). Luo, J. & Jha, N. K. (2000). Power-conscious joint schedling of periodic task graphs and a periodic tasks in distributed real-time embedded systems. In Proceedings of the 2000 IEEE/ACM international conference on computer-aided design (ICCAD ’00), (pp. 357–364). Luo, J., & Jha, N. K. (2007). Power-efficient scheduling for heterogeneous distributed real-time embedded systems. IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems, 26(6), 1161–1170. Luo, J., Jha, N. K., & Peh, L.-S. (2007). Simultaneous dynamic voltage scaling of processors and communication links in real-time distributed embedded systems. IEEE Transactions on VLSI Systems. <http://datasheets.maxim-ic.com/en/ds/MAX4069MAX4072.pdf> (2009). Maxim Bidirectional, High-Side, Current-Sense Amplifiers with Reference, MAX4069MAX4072, Maxim Integrated Products, Inc. Mei, Y., Lu, Y.-H., Hu, Y. C. & Lee, C. S. G. (2004). Energy-efficient motion planning for mobile robots. In Proceedings of the 2004 IEEE international conference on robotics and automation, Vol. 5, (pp. 4344–4349). H. Wei et al. / Expert Systems with Applications 39 (2012) 3559–3571 Mei, Y., Lu, Y.-H., Hu, Y. C. & Lee, C. S. G. (2005). A case study of mobile robot’s energy consumption and conservation techniques. In Proceedings of the 12th international conference on advanced robotics, July (pp. 492–497). Mejía-Alvarez, P., Levner, E., & Mossé, D. (2004). Adaptive scheduling server for power-aware real-time tasks. ACM Transactions Embedded Computing System, 3(2), 284–306. Mishra, R., Rastogi, N., Zhu, D., Mossé, D. & Melhem, R. (2003). Energy aware scheduling for distributed real-time systems. In Proceedings of the 17th international symposium on parallel and distributed processing (IPDPS ’03), (pp. 22–26). Mochocki, B., Hu, X.S., & Quan, G. (2005). Practical on-line dvs scheduling for fixedpriority real-time system. In IEEE real-time and embedded technology and applications symposium (RTAS). Mochocki, B., Hu, X. S., & Quan, G. (2007). Transition-overhead-aware voltage scheduling for fixed-priority real-time systems. ACM Transactions on Design Automation and Electronic Systems, 12(2). Niu, L. & Quan, G. (2006). System wide dynamic power management for multimedia portable devices. In Proceedings of the IEEE international symposium on multimedia (ISM). Noronha, S. J., & Sarma, V. V. S. (1991). Knowledge-based approaches for scheduling problems: a survey. IEEE Transactions on Knowledge and Data Engineering, 3(2), 160–171. Qiu, M., Sha, E.-H., Liu, M., Lin, M., Hua, S., & Yang, L. T. (2008). Energy minimization with loop fusion and multi-functional-unit scheduling for multidimensional DSP. Journal of Parallel and Distributed Computing, 68(4), 443–455. Sanjeev, Arora. (1996). Polynomial time approximation schemes for euclidean tsp and other geometric problems. In Proceedings of the 37th IEEE symposium on foundations of computer science, (pp. 2–11). Sanjeev, A. (1998). Polynomial time approximation schemes for euclidean traveling salesman and other geometric problems. Journal of the ACM (JACM), 45(5), 753–782. Silverman, M. C., Nies, D., Jung, B., & Sukhatme, G. S. (2002).‘‘Staying alive: a docking station for autonomous robot recharging. In Proceedings of the 2002 IEEE international conference on robotics and automation (Vol. 1, pp. 1050–1055). 3571 <http://www.micrium.com/> (2009). uC/OS-II Operating System. <http://robot.uptech.com/en/ProductView.asp?ID=55> (2009). UP-Voyager IIA mobile robot, Beijing UPTECH Robotics. Xiao, J., Jia, P., Xu, X. & Tan, J. (2006). Development of control system in a biped robot with heterogeneous legs. In Proceedings of the ninth international conference on control, automation, robotics and vision, (pp. 1–6). Xu, R., Zhu, D., Rusu, C., Melhem, R. & Mossé, D. (2005). Energy-efficient policies for embedded clusters. In Proceedings of the 2005 ACM SIGPLAN/SIGBED conference on Languages, compilers, and tools for embedded systems (LCTES’05), (pp. 1–10). Xu, R., Melhem, R., & Mossé, D. (2007). Energy-aware scheduling for streaming applications on chip multiprocessors. In Proceedings of the 28th IEEE international real-time systems symposium (RTSS 2007), (pp. 25–38). Yuan, B., Orlowska, M., & Sadiq, S. (2007). On the optimal robot routing problem in wireless sensor networks. IEEE Transactions on Knowledge and Data Engineering, 19(9), 1252–1261. Zebrowski, P. & Vaughan, R. T. (2005). Recharging robot teams: A tanker approach. In Proceedings of the 12th international conference on advanced robotics, July (pp. 803–810). Zebrowski, P., Litus, Y. & Vaughan, R. T. (2007). Energy efficient robot rendezvous. In Proceedings of the fourth Canadian conference on computer and robot vision (pp. 139–148). Oh, S., Zelinsky, A., & Taylor, K. (2000). Autonomous battery recharging for indoor mobile robots. In Proceedings of the australian conference on robotics and automation. Zhang, Y., Hu, X. & Chen, D. Z. (2002). Task scheduling and voltage selection for energy minimization. In Proceedings of the 39th conference on design automation (DAC’02), (pp. 183–188). Zhong, X. & Xu, C. (2006). System-wide energy minimization for real-time tasks: Lower bound and approximation. In Proceedings of the international conference on computer-aided design (pp. 516–521). Zhong X. & Xu, C-Z. (2007). Frequency-aware energy optimization for real-time periodic and aperiodic tasks. In Proceedings of the 2007 ACM SIGPLAN/SIGBED conference on languages, compilers, and tools for embedded systems(LCTES’07), (pp. 21–30).
© Copyright 2025 Paperzz