ISSN 0146-4116, Automatic Control and Computer Sciences, 2018, Vol. 52, No. 5, pp. 371–381. © Allerton Press, Inc., 2018.
Task Allocation Methods for Homogeneous Multi-Robot Systems: Feed Pushing Case Study1 A. Nikitenkoa, *, E. Lavendelisa, **, M. Ekmanis, and R. Rumbaa a
Department of Artificial Intelligence and Systems Engineering, Riga Technical University, Riga, Latvia *e-mail:
[email protected] **e-mail:
[email protected]
Abstract⎯The paper discuses several options to implement multi-robot systems focusing on coordination and action planning of the system. Particular implementation described in details as a case study presents a solution used in multi-robot system for feed pushing in cattle farm. The paper describes implementation of behavior based robot team control and two different path planning methods ensuring that the feed pushing work is done properly. Conclusions outline suggestions for practical implementations regardless of particular application domain. Keywords: Task Allocation, Homogeneous Multi-Robot Systems, Trajectory Planning, Feed Pushing Robot DOI: 10.3103/S0146411618050097
1. INTRODUCTION Currently the existing robots for many missions are capable to work autonomously at a decent quality, for example, vacuum cleaning robots can clean individual rooms and apartments. Still many domains require collaboration among autonomous robots. There are two reasons for that. Firstly, in many domains larger missions cannot be accomplished by a single machine due to physical limitations in terms of size and weight. Secondly, higher requirements of redundancy and availability cannot be met by a single unit regardless of its complexity, while presence of several collaborative robots enables flexibility in terms of possible replanning in case of failure of some robots. Switching from a single robot to multiple robots system increases the complexity of the system by adding the dimension of collaboration. To benefit from the presence of several robots there is a need for new algorithms for communication, task allocation, collaborative planning, collision avoidance, etc., additionally others become collaborative, for example, mapping benefits from several robots exploring the area simultaneously [1]. Mission decomposition into tasks and subtasks is the fundamental ability of collaborative robotic system where the decomposed subtasks are assigned to individual robots for execution. The task decomposition usually depends on the type of the task/domain. For instance area coverage missions might require to allocate a piece of area to responsible robotic system, which covers the given area. However, task allocation mechanisms tend to be more general. Task allocation is a global process in the system, where multiple parts of it are involved. The paper analyses the necessary methods in general and in particular on the example of cattle feed pushing task. First, the task allocation methods have been analyzed and a new behavior based method is proposed. Secondly, it is discussed how well known Rapidly-Exploring Random Tree (RRT) planning approach can be adapted and applied for the feed pushing task. The remainder of the paper is organized as follows. The Section 2 introduces the problem of task allocation and outlines the known classes of solutions. The Section 3 defines the particular application domain used as a case study in the research presented in the paper, in particular feed pushing in cattle farms. Section 4 presents the proposed behavior based task allocation methods and planning methods for doing the allocating tasks. Section 5 concludes the paper. 1
The article is published in the original.
371
372
NIKITENKO et al.
2. TASK ALLOCATION To achieve collaborative behavior of a multi-robot system both the mission and subtasks have to be defined. The task definition depends on the domain while the task allocation is more general routine. The remainder of the paper concentrates exactly on the task allocation after the tasks have been defined based on the goal or mission of the system. The task allocation depends on the characteristics of robots, in particular, if the robots have the same capabilities (homogeneous systems) or different capabilities (heterogeneous systems). If the robots are heterogeneous then the characteristics of robots dominate in the choice of the performer of the particular task. On the other hand, if the robots are homogeneous, then such characteristics as existing task, battery level and location become the main factors. Traditional approach in manufacturing systems is a top down deliberative planning. Today’s production facilities are operating in highly integrated Enterprise Resource Planning (ERP) and/or Manufacturing Execution System (MES) solutions. These systems are intended to provide a smooth production by explicitly defining the tasks that each system, including robots has to do. Everything is defined in a centralized manner. Usually the task allocation is defined by a human designer and put into the system. This approach is good enough if nothing changes in the task and system itself. Still, whenever a new situation occurs due to new production task or new configuration of the system, the whole production just stops until the designer designs new production plan. So this approach is a typical top-down approach when one person (usually) or one machine creates the whole plan. To achieve needed production flexibility to address today’s trends in manufacturing, first the task allocation must be done automatically without human involvement and then the execution of the particular task must be planned by a particular robot. This is a rather obvious functionality, which is hard to ensure in changing production environment. One possible solution is to have fully decentralized approach and modelling each robot as autonomous agent. In such case usually a symmetrical interaction mechanism is used between one agent that is responsible for the task and possible performers of the task. A classic example of such a protocol is Contract-Net [2]. An agent that has a task announces it; the potential contractors make a decision if they are willing to provide their services, and how much it will cost in terms of some kind of resources. The initiator then picks the best offer. This protocol offers full autonomy for all participants. It is widely used as is or with various modifications in robotics, for example in [3]. Still, according to [4] it provides non-optimal task allocations in case of multiple tasks. Also, the overhead for additional communications during task allocation is considerably high. Several market-based approaches allow the robots to allocate tasks based on their costs. One such example is TraderBots allowing agents to sell tasks to other agents if they are more suitable for the particular task [5]. Also domain specific methods have been built. They differ based on the type of the task. Mathematically many tasks belong to the group of area coverage tasks where the aim is to cover the whole area at least once. One example for task allocation for this kind of task is allocation method for multi-robot vacuum cleaning systems based on the notion of responsibility area [6]. This method has been validated and proved to provide appropriate task allocations in a prototype of multi-robot system for vacuum cleaning of large premises [7]. The agent-based methods provide full autonomy of all participants, namely robots and the management system. Still one of the problems is the overhead spent for communications making it unusable for embedded computing systems. One lightweight solution is behavior-based task scheduling where each robot and also management system has its own behavior. Also conceptions of systems theory are relevant for self-organization of multi-robot systems. Self-organization would enable systems to dynamically and autonomously cope with situations that have not been foreseen by the designer, but for which the system has physical capabilities to deal with. One example of such models coming from Organization Theory is Viable Systems Model (VSM) [8]. The model has been originally built to define the subsystems and functions that are necessary for the system to be adaptive in long term or viable. The paper [9] demonstrates the initial idea how to apply VSM to multi-robot systems. It argues that implementation of multi-robot systems would enable the implementation of true adaptability and capabilities of self-organization. The following sections describe case study of feed pushing system in cattle farms. It is discussed in terms of algorithms composition enabling to accomplish the mission. The behavior-based approach has been chosen due to its appropriateness for the embedded systems. AUTOMATIC CONTROL AND COMPUTER SCIENCES
Vol. 52
No. 5
2018
TASK ALLOCATION METHODS FOR HOMOGENEOUS MULTI-ROBOT SYSTEMS Feed before pushing
373
Feed table
Feed pusher robot
Feed after pushing
Fig. 1. Feed pushing task as a case study for multi-robot systems.
3. CASE STUDY: FEED PUSHING ROBOT FOR CATTLE FARMS This paper discusses the case of feed pushing in cattle farms as an example of the applied algorithm composition. In modern cattle farms feed is put in the area along the fence, named “table”. The table surface has specific cover, usually epoxy, for easy care and ensuring appropriate hygiene. Cattle access feed through the fence and consequently can reach it only in a certain distance. In reality cows first eat the most “delicious” part of the feed and throw everything else away – into unreachable distance. To maximize milk yield it is necessary that the cattle consume all of the feed. As a consequence, there is a necessity to push it back within a reachable distance. Traditionally this task is done by a human co-worker with a shovel or with bulky mechanisms like tractors disturbing cows and decreasing milk yield. During the last decade some automated solutions have appeared. One of the market leading solutions is Lely Juno robot [10], which is following magnetic sled to localize itself and the actual trajectory following is based on the large weight of the robot. The aim of the research is to develop a multi-robot system consisting of lighter robots that would fulfill the following requirements: • flexibility to re-plan in order to adapt to new situation like obstacles, one of the robots being unavailable (for example due to breakdown) or changed position due to slippery floor; • capability to follow the path based on the localization and mapping instead of hardware infrastructure to enable path optimization and higher effectiveness of the robot in terms of power consumption; • scalability to larger farms by adding more robots to the system. The layout of a typical farm is given in Fig. 1. The cattle are separated into different sectors. Each of them has a corresponding feed table. Cattle eat through the fence. Once per 2–3 hours the feed must be pushed back so that the cows can reach it. Figure 1 shows how it is done by 2 robots. AUTOMATIC CONTROL AND COMPUTER SCIENCES
Vol. 52
No. 5
2018
374
NIKITENKO et al. Layer Strategic layer
Tactical layer Communication layer
Primary objectives Strategic layer is implemented as a common Behavior Tree (BT) representing the whole mission and is used for task scheduling and verification if the common goal is met Tactical layer is implemented for each robot as a dedicated BT that implements robot specific skills and behaviors Communication module runs on each robot. It is implemented as HTTP client/server enabling robots to upload log files and receive commands in a form of g-code or shell scripts
Hardware abstraction layer
Provides unified high-level interface over hardware devices used by the robotic system
Hardware layer
Sensors, motors, camera, motor controller, battery controller etc. Low level interfaces with hard coded commands Fig. 2. Implemented robot’s architecture.
4. BEHAVIOUR BASED SOLUTION To build a fully adaptive multi-robot system, one of the crucial elements is task allocation mechanism. Mathematically the task allocation problem is a subclass of the area coverage problem in the sense that the task is to cover every part of the feed table and it is not a big problem if some part of the table is covered twice. In particular, the model of the task changes so that instead of the area the robots have to cover the particular route. Therefore, the tasks must be allocated in terms of the particular interval of the feed table. After they are allocated to a robot it must plan a particular trajectory to do the task. Additionally, the amount of the feed available at the particular place of the table can influence the optimal trajectory. Methods and algorithms for task allocation and trajectory planning are presented in the upcoming subsections. 4.1. Behavior Based Task Allocation Feed pushing robots are built to work as a team in dynamic and unpredictable environment with limited visibility. Unlike assembly lines in factories it is impossible to plan forward and generate long sequence of instructions to play for each robot in blind. Replanning every time when deviation from plan detected is not an option, as it will happen too often. For solving these problems, we propose multi-layer architecture given in Fig. 2 [11, 12]. Since robot operates in dynamic environment and has to deal with sensor data noise, intensive and low latency feedback is critical for the system stability. Therefore each particular behavior is implemented as a separate control function of the robot (going to a point, feed pushing, docking, etc…), while control over transition from one to another is achieved using finite state machine. Common tasks will consist of a series of basic actions where separate control rules can be applied for each of them. Reliable and widely used is g-code syntax where each line represents single elementary action. Unlike in manufacturing there can be significant probability for some actions to fail (wheel slip, motor overload, obstacle on the way, etc.). To deal with this we expanded standard g-code with ‘jump on fail’ and ‘conditional goto’ instructions. Therefore, we do not need to regenerate code every time some action fails but have to include recovery sequences directly in g-code. As a price for this small extension the full finite state machine graph must be generated in robot memory, where nodes represent customized controllers with arguments and edges represent state transitions. Such finite state machine works well in small scales, where transitions can be easily understandable by operator and memory consumption is satisfactory to run on robot on-board computer. As robots must operate continuously for hours there is no option to make all included g-code to execute directly on robot. Instead of that, server based solution was implemented, where robot receives small g-code segment for some moment to operate autonomously. Meanwhile logs and data traces are collected and sent back to server. As a state machine does not scale well we use behavior tree (BT) in server side. BT is widely used in computer games [11, 12] and robotics [13–15] because it is human readable, well scaled, modular and reusable [16]. In its essence BT implements transition from root to action leaf using tick (small time interval triggering tree status update). The resulting overhead there is not a problem as robots operate autonomously and BT is executed approximately once per minute when logs are received and new g-code must be prepared. BT elements are the following: flow controls (sequence, selector), condition, decorator and action [13–15]. AUTOMATIC CONTROL AND COMPUTER SCIENCES
Vol. 52
No. 5
2018
TASK ALLOCATION METHODS FOR HOMOGENEOUS MULTI-ROBOT SYSTEMS
Un Dock Condition
Un Dock
Dock
375
Dock Condition Un Dock
Un Dock Decorator 20
……> Dock Sequence
20
Un Dock Condition
10
10
Dock Decorator
……> Un Dock Sequence 30
Park Condition 10
……> 20 Park Sequence
10 ……> Dock Sequence 20
20 10 ? 10 Transit Zone Selector 50
Un Dock Condition
No Transit
Park Decorator Action Prepare Decorator Root Park
30
? Repair Selector 10 ……> 10 Health Sequence 20
……> Main
10
Relax
30
20
Repair Condition 20
Repair
……> Work Sequence
? Dock Calib Selector 10
20
10
20
? Work A Selector 20
10
Repair Condition
? Work B Selector 20 10
Dock Calib
Work B Decorator
Work A Decorator Work B Decorator
Work A Condition
Work B
Work A Work A Decorator
Work A Condition
Work A
Multi-functional block, with no return state. Functionality described in script file Conditional block, that performs logical tests before action. Script file
……> Work Sequence
Action file that consists of logical and movement commands described in g code language
? Work B Selector
Flow control element that executes branches until one of them fails Flow control element that executes branches until one of them succeeds
Fig. 3. BT of feed pushing robot.
A blackboard is used as a temporary memory for BT. Blackboard is an SQL table where name-value pairs are filled by decorator nodes of the BT as well read by condition and action nodes. Stored variables can be local to particular BT or shared between all robots operating in same environment. Actions in our implementation consist of g-code templates, where action node replaces missing values with ones from blackboard. For example, docking g-code include sequence of elementary movements, conditions to check, necessary recovery sequences except coordinates of docking station. Coordinates are inserted from blackboard just before executing instruction therefore same docking behavior is reusable for each docking station. Condition nodes consist of executable inline scripts with access to blackboard values, therefore decisions can be made based on individual robot state and shared system state and goals. Decorators not just manipulate on action returned value but prepare blackboard data for action. For example, actions requiring point-to-point travel can call RRT type (discussed later) planer to get shortest path to destination and store key points in blackboard. Each edge in the BT has additional weight attribute used by flow control nodes to sequence branches. The flow control nodes could be upgraded by implementing machine learning therefore robot can choose most appropriate behavior based on previous experience. An example of such statistics based machine learning method is given in [17]. The developed BT for feed pushing robot is given in Fig. 3. This BT works well for single robot to execute some behaviors in response to its environment and robot’s own state. Unfortunately, it does not AUTOMATIC CONTROL AND COMPUTER SCIENCES
Vol. 52
No. 5
2018
376
NIKITENKO et al.
(a) Full search tree
(b) Initial plan Fig. 4. Example of initial plan.
describe multi-robot system’s goals and cooperation opportunities. Robot’s own BT is like a set of skills, where someone externally should motivate to execute these skills in particular order with given parameters. For example, subtree of robot’s BT starting with node WorkSequence related to its main action – feed pushing, where someone should activate this subtree giving additional data about part of the feed table to be processed. Other skills like charging skill (starting with node ActionPrepareDecorator) can be internally activated when robot battery is low. There comes in environment model, with includes not only map, schedules, list of tasks and resources, but also own ‘task assignment’ T-BT. Dedicated BT for managing multi-robot systems are mentioned in literature quite often [16]. T-BT is executed each time when new data is received from robots. This tree modifies shared blackboard values to motivate individual robots to execute their skills in shared environment to achieve given goals. If any of robots fails (battery discharged, technical failure, communication lost etc.), T-BT can assign this task to other robots, until all tasks are completed. 5. PATH PLANNING Path planning in our case is used for two main purposes – generating trajectory between two arbitrary points in map, and for avoiding obstacles. In case of obstacle avoidance, the generated plan is assumed to be faulty and a new one is created according to the changes in environment. Since the planning in our case takes no more than few seconds this approach addresses dynamism of the environment in appropriate manner. While a regular cattle farm as described is rather uniform, the actual shape of the environment available to mobile robot changes over time. The main reasons of those changes are every day equipment that is used for different needs and might stay on the path of robot, people working in the environment, changed shape of fence to split cow herd into parts for milking, medical care or other reasons. Due to the mentioned reasons path planning has to be flexible and cannot be addressed by hardcoded path alternatives. As it is described above path planning is one of the action decorators allowing to plan trajectory between current position and the desired goal position. There is another path planning action in the system, which is the main action – feed pushing action. Still, these two path planning methods have significant differences and the above mentioned actions cannot be done by path planning methods for feed pushing, because of the fact that have a very specific algorithm (discussed later) that generates particular waypoints. Thereby each of them is discussed in separate subsection starting with regular path planning with post processing. 5.1. Regular Path Planning In our case path planning is based on well-known sampling technique Rapidly Exploring Random Tree [18], particularly its variants. Its variation RRT-Connect [19] has been extended to RRT-wave [20]. The main difference between regular RRT-Connect and RRT-wave is the selection sampling area. RRTConnect generates samples from full sampling area while RRT-wave only from a subarea which includes both starting and goal configurations. Thereby the planning algorithm is more focused what helps to perform better even in complex environments due to having higher sample density within the same time period of sampling. Although the RRT-wave provides higher performance in complex environments it provides the same result – initial plan that has to be post-processed. Plan post-processing in details is described in [21], however here the basic description of the post-processing algorithm that is part of the case, are provided. The initial plan generated using RRT-Wave from experimental environment is given in AUTOMATIC CONTROL AND COMPUTER SCIENCES
Vol. 52
No. 5
2018
TASK ALLOCATION METHODS FOR HOMOGENEOUS MULTI-ROBOT SYSTEMS
377
Fig. 5. Initial plan complemented by additional points.
Fig. 4, where each square in the grid represents 100 × 100 mm. The squares enclosed in frame are occupied while the others are free and are not marked. According to the proposed post-processing method in [21], within the next step additional points providing better plan granularity around obstacles and less granularity in relatively “safe” area complementing plan (the result is given in Fig. 5). Once the additional points are set the used post-processing method applies plan bending using elastic band approach proposed by [22], which enables to “push” points that are close to obstacles away from them and preserve the current position as close to the initial as possible. The approach is based on force balance preservation, where obstacles generate negative force pushing plan point away while each of the plan points has its own resistance force – positive, which tends to preserve the current position. The positive resistance force is generated by nearby points via links, which are modeled as linear springs. Thereby the whole plan is modeled as set of points and linear springs among them. The balance between the forces is achieved via changing the point positions, which are the new point positions. To reduce overall amount of needed data processing, only nearby obstacles are being treated and only previous points (assuming that plan is modified from one end to the other point by point). This modification reduces smoothness of the result but significantly reduces calculation efforts because it requires treating all of the plan waypoints only once. The Fig. 6 depicts bended plan after applying the elastic band approach. Due to discretization and assumptions made in previous steps the plan is still rather unhandy for execution because of unnecessary sharp turns that are significant sources of position errors as explained in [22]. Therefore, the bended plan has to be smoothed. As none of the dimensions (x or y) has constant discretization step we propose to use a Kalman filter that does not require such constraints being met [23]. In our case a unity process model (1a) of Kalman filter is used assuming constant waypoint positions:
X i 1 0 X i −1 Y = 0 1 Y , i i −1
(1a)
0.005 0 0.025 0 (1b) Q= , R= , 0 0.005 0 0.025 where Xi and Yi – coordinates of i-th waypoint, Xi – 1 and Yi – 1 – coordinates of previous waypoints [23].
Fig. 6. Bended plan around obstacles. AUTOMATIC CONTROL AND COMPUTER SCIENCES
Fig. 7. Smoothed plan. Vol. 52
No. 5
2018
378
NIKITENKO et al.
Fig. 8. Feed distribution in cattle farm.
Fig. 9. Feed bar model. Left most and middle – real distributions, right – modeled distribution.
In equation (1b) process covariance matrix Q and measurement covariance matrix R is defined. Depending on Particular constant values of the matrices used level of smoothing is changed. The given ones are relevant only in our case and must be acquired empirically for every other application. Once the filter is applied the plan is smoothed as depicted in Fig. 7. The measurement in this context is the actual i-th waypoint coordinates ( X it , Yi t ). Since the weighting factors of modeled and actual coordinates are the same, i.e. 1, the filter is turned into low-pass filter with unbound axes. While we implement most of the post-processing steps proposed by [20] the extra feasibility check is not done due to extensive requirements for computing power, which cannot be met in most embedded systems like ours. 5.2. Feed Pushing Path Planning While regular path planning as described previously is used to travel from current point to a goal point, feed pushing plan is used to navigate robot in a way that efficiently pushes feed to be reachable by the cattle. So, the cores of the planners are significantly different. The main difference is necessity to navigate the robot according to the amount of feed to be pushed. Therefore distribution of feed is modeled as a sequence of feed bars with regular form and mass. Mass and bars are depicted in the Figure 8, where larger mass is depicted with bigger circle while feed bars are with equal width. To simplify feed bar mass estimation bars are modeled as regular forms like depicted in the Fig. 9. The feed bar model allows to calculate total mass of the feed for the given bar, which is needed to estimate the resistance force of the feed bar. Since the volume of 1kg of the feed is known the total mass depends only on the volume of the feed bar. Width of the bar is a constant selected according to needed level of details. In our case we selected 0.1m, which corresponds to precision of position of the robot. To model the resting force produced by the feed being pushed, we use nonlinear function of the form: (2) Fs (d ) = 1 m, xd where d – distance to fence, which cannot be reached, Fs – resistance force produced by the feed bar; x – constant that is determined empirically from observations – in our case 0.1, dFbmax maximum distance, which can be reached by the robot, Fbmax – maximum resistance force that can be tailored by the robot, AUTOMATIC CONTROL AND COMPUTER SCIENCES
Vol. 52
No. 5
2018
TASK ALLOCATION METHODS FOR HOMOGENEOUS MULTI-ROBOT SYSTEMS
379
Fs
Fbmax
F 0
f(d) dFbmax
d
Fig. 10. Resistance force model.
Xt – 1 Ut – 1
Xt
Xt + 1 Ut + 1
Ut
f(d)i
dFbmax i
f(d)i + 1
dFbmax i + 1
Updated feed distribution
Fig. 11. Feed distribution model update.
m – feed mass calculated from feed bar model, where mass is a sum of the individual masses of feed bars being in contact with the robot. Since the robot is driven by DC motors, it is possible to estimate actual force of the motors that can be produced by the robot and it is possible to calculate optimal driving conditions, which correspond to nominal parameters of the motors. Thereby in our model we replace the Fbmax by the value that corresponds to optimal values of the DC motors (See Fig. 10). The force model (2) allows to calculate the optimal position from one feed bar to another taking into account actual force feedback coming from the robot motor controller. This allows to recalculate the actual feed distribution and to plan the next ride according to the updated distribution to ensure optimal paths. The distribution update model is depicted in the Fig. 11. In Fig. 11: t – tth time instant, Ut – command executed by the robot, Xt – robot’s parameter vector describing force feedback and its position estimation within the time instant t allowing to select particular feed bar to be updated, f(d)i – function that calculates optimal position dFbmax i for the next run (i + 1) for the given feed bar. Example of feed distribution update is shown in the Fig. 12. After the run and model update, path for the next run is calculated considering an average feed consumption per hour, which is acquired empirically in particular farm and kind of cattle. In our case the updated model considers loss of feed bar mass, which enables to reduce the bar length and calculate the optimal path for the next run. Simulation is shown in the Figure 12, where each feed bar is one iteration, points represent dFbmax of every feed bar based on previous run, but the yellow line represents the actual distribution of feed. AUTOMATIC CONTROL AND COMPUTER SCIENCES
Vol. 52
No. 5
2018
380
NIKITENKO et al.
12 11 10 9 8 7 6 5 4 3 2 1
12 11 10 9 8 7 6 5 4 3 2 1 Iteration 4
12 11 10 9 8 7 6 5 4 3 2 1 Iteration 5
12 11 10 9 8 7 6 5 4 3 2 1 Iteration 6
Iteration 7
Fig. 12. Feed distribution model update example (actual distribution – line and calculated distribution using force feedback – points).
6. CONCLUSIONS The paper describes particular solution for multi-robot systems applied in cattle farms enabling them to cooperate through common behavior tree and two different path-planning techniques used as action decorators in the behavior tree. While each of the used techniques is relatively simple and independent through the integration into common behavior tree it demonstrates a complex behavior as a transit from one action to another according to the global and local events pathed to behavior tree controller. In contradiction to other multi-robot cooperation methods, the proposed one is rather light-weight in terms of required computation, which is a critical factor for most of embedded devices. Therefore the proposed solution is more acceptable for embedded systems then others. Another important advantage of the proposed solution is ability to use a smooth and continuous transition from one action to another through constant update of the behavior tree status. This enables to overcome planning and replanning inconvenience during the run time. This means that instead of replanning action, the robots actually will smoothly slide from one action to another demonstrating continuous action rather the time-discrete sequence of actions. Since the behavior tree has its inner feasibility and fault control, the overall solutions increases its fault tolerance and avoids dead-end situations. ACKNOWLEDGMENT Paper presents research results of the project “Multi robot system for applications in agriculture” funded by Competence center of Latvian Electrical Engineering and electronics Industry. Project number: 2DP/2.1.2.1.1/10/APIA/LIAA/005. REFERENCES 1. Andersone, I. and Nikitenko, A., Reliable multi-robot map merging of inaccurate maps, Advances in Practical Applications of Heterogeneous Multi-Agent Systems. The PAAMS Collection: Proceedings of the 12th International Conference (PAAMS 2014), Spain, Salamanca, June 4–6, 2014, Heidelberg: Springer, 2014, pp. 13–24. 2. FIPA, 2002. FIPA Contract Net Interaction Protocol 6 Specification. http://www.fipa.org/specs/fipa00029/ SC00029H.pdf. Accessed October 5, 2017. 3. Wang, X. and Sheng, B., Multi-robot task allocation algorithm based on anxiety model and modified contract network protocol, Proceedings of 2017 IEEE 2nd Information Technology, Networking, Electronic and Automation Control Conference (ITNEC), Chengdu, 2017, pp. 1606–1612. 4. Liekna, A., Lavendelis, E., and Grabovskis, A., Experimental analysis of contract NET protocol in multi-robot task allocation, Appl. Comput. Sci., 2012, vol. 13, no. 1, pp. 6–14. 5. Dias, B.M., TraderBots: A new paradigm for robust and efficient multirobot coordination in dynamic environments, Doctoral Dissertation, Robotics Institute, Carnegie Mellon University, 2004. AUTOMATIC CONTROL AND COMPUTER SCIENCES
Vol. 52
No. 5
2018
TASK ALLOCATION METHODS FOR HOMOGENEOUS MULTI-ROBOT SYSTEMS
381
6. Lavendelis, E., Liekna, A., Nikitenko, A., Grabovskis, A., and Grundspenkis, J., Multi-agent robotic system architecture for effective task allocation and management, Proceedings of the 11th WSEAS Int. Conf. on Signal Processing, Robotics and Automation (ISPRA’12), 2012, pp. 167–174. 7. Nikitenko, A., Grundspenkis, J., Liekna, A., Ekmanis, M., Kulikovskis, G., and Andersone, I. Multi-robot system for vacuum cleaning domain, in Advances in Practical Applications of Heterogeneous Multi-Agent Systems. The PAAMS Collection, Springer International Publishing, 2014, vol. 8473, pp. 363–366. 8. Beer, S., The viable system model: Its provenance, development, methodology and pathology, J. Oper. Res. Soc., 1984, vol. 35, no. 1, pp. 7–25. 9. Pudane, M., Lavendelis, E., and Nikitenko, A., ViaBots: A concept for viability for distributed systems, in Technical Report of the NATO Science and Technology Organization, Applied Vehicle Technology Panel, AVT-241 Specialists Meeting on “Technological and Operational Problems Connected with Unmanned Ground Vehicle (UGV) Application for Future Military Operations,” Rzesow, 2015, pp. 10.1–10.12. 10. Lely, Lely Juno—Automatic Feed Pusher. http://www.agrirobotech.co.kr/catalog/juno.pdf. Accessed November 22, 2017. 11. Epic Games, Unreal Engine 4 Documentation. https://docs.unrealengine.com/latest/INT/Engine/AI/ BehaviorTrees/index.html. Accessed January 15, 2018. 12. Nuverian, NodeCanvas—Visual Behaviour Authoring framework to create advanced AI and Logic, Jan 18, 2016. https://forum.unity.com/threads/nodecanvas-behaviour-trees-state-machines-dialogue-trees.227190/. Accessed January 15, 2018. 13. Lima, P.F., Predictive Control for Autonomous Driving, Stockholm: KTH Electrical Engineering, 2016. 14. Colledanchise, M., Behavior trees in robotics, Doctoral Thesis, Stockholm: KTH Computer Science and Communication, 2017. 15. Open Source Robotics Foundation, A ROS Behavior Tree Library, Mar. 3, 2016. http://wiki.ros.org/behavior_tree. 16. Colledanchise, M., Marzinotto, A., Dimarogonas, D.V., and Ögren, P., Using behavior trees in multi-robot systems, 47st International Symposium on Robotics, 2016. 17. Lavendelis, E., A cloud based knowledge structure update and machine learning framework for heterogeneous multi-agent systems, Int. J. Artif. Intell., 2016, vol. 14, no. 2, pp. 157–170. 18. LaValle, S.M., Rapidly-exploring random trees: A new tool for path planning, Technical Report no. 98-11, Oct. 1998. 19. Melchior, N. and Simmons, R., Particle RRT for path planning with uncertainty, 2007 IEEE International Conference on Robotics and Automation, 2007, pp. 1617–1624. 20. Nikitenko, A., Liekna, A., Andersone, I., Ekmanis, M., and Urtans, E., Mobile robot path planning for indoor use, Proceedings of Engineering for Rural Development, Jelgava, 2014, pp. 366–372. 21. Nikitenko, A., Ekmanis, M., and Liekna, A., RRTs postprocessing for uncertain environments, Proceedings of the 2013 International Conference on Systems, Control and Informatics (SCI 2013), Italy, Venice, 28–30 September, 2013, Venice, 2013, pp. 171–179. 22. Brock, O. and Khatib, O., Elastic strips: A framework for motion generation in human environments, Int. J. Rob. Res., 2002, vol. 21, no. 12, pp. 1031–1052. 23. Mitchell, H.B., Data Fusion: Concepts and Ideas, Springer-Verlag, 2007.
SPELL: 1. OK AUTOMATIC CONTROL AND COMPUTER SCIENCES
Vol. 52
No. 5
2018