the nature’s choices of this stochastic action are encoded. AsagentP os is a continuous fluent besides the calculated position(x, y) we also have to set the agent’s velocity. It is assumed to be zero, as we only regard this situation as static. Besides the agent’s position we have to set the estimated orientation of the robot at the intercept position. This is done with theset(agentAngle) action. The probability of success for this outcome is set to0.2 which is rather low. This resembles observations of the abilities of the robots to intercept the ball, and this low probability is due to the fact that, taking the dynamics of the game and the other robots into account, a lot can happen while the robot drives to the ball. The last condition isDribblable checks if the intercept action was successful and is used to discriminate the different outcomes. Therefore, in the other case the negation of this is tested. The model for the failure case is even easier. As one cannot really predict how the world may evolve, we make no assumption about how the world might have evolved. Therefore the assumed world situation is the same as before. Why is this a good idea? Of course, one could define many different possible outcomes for the failure case. None of them will probably happen in reality. For the planning it does not make a real difference. For further planning the effect of this outcome is that the action has not happened at all, but during policy execution the sense condition¬isDribbleable is tested. This means, in the worst case, the robot will try to intercept the ball several times, as in the policy again an intercept action will be entered. Thus, the robot will eventually try to intercept the ball, and this is what the robot should do.
This gave an impression of how decision-theoretic planning can be used for soccer applications with real robots. It also showed that due to many limiting factors, the models and abilities for using the full range of expressiveness of READYLOGis restricted. This is also owed to the complexity of the planning approach. More complex models result in longer planning times, which for the robotic soccer case, are not feasible. The table below shows the computation times logged at the RoboCup World Championships 2004.
examples min avg max
without ball 698 < 0.01 0.094 0.450 with ball 117 0.170 0.536 2.110
In cases where the robot was not near the ball the computation times for the generating policies is rather low. In cases with ball, the agent has to take more possibilities into account and therefore has much longer computation times. But an average of0.5 seconds are on the border-line of what is still possible for a soccer robot to reason about what to do before an opponent will steal the ball.
6.7
A Service Robotics Application
As another application for READYLOGwe want to address a typical service robotics application and show an example from a RoboCup tournament. At RoboCup tournaments the teams have to participate besides the soccer matches also in a so-called Technical challenge , where the scientific progress is rated. There are several challenges to fulfill, for example one has to show that the robots are able to avoid obstacles on the soccer field. As part of this challenge, there exists also an
(a) The Robot driving through the exhibition hall. (b) Map of RoboCup Championships in Lisbon 2004
Figure 6.18: Technical Challenge at the RoboCup Championships 2004 in Lisbon.
open challenge, where teams can show whatever they like. At the RoboCup Championships 2004 we won the Silver Medal in the Technical Challenge by demonstrating a tour-guide application. The robot started at the so-called “team area” where all teams store their equipment and have the possibility to calibrate and program the robots. The referees were to choose one of the four soccer fields as destination for the tour. Then the robot calculated the shortest route to this field applying decision-theoretic planning. On the way several places of interests where announced by the robot. Figure 6.18(a) shows our robot on the way through the exhibition hall. Figure 6.18(b) shows the occupancy map of the exhibition hall. On the upper half of the map one could see two of the fields, on the lower half there was the team area. We defined a topological map with “outstanding” sights like “grand stand” or “field one”. The nodes of this map were made available to READYLOG by the fluent mapNode, and the relations childrenOf(mapNode). The program the robot had was the procedurepathPlan given below.
proc pathPlan(Goal, H ) solve(H, reward at(goal )
while¬mapNode = goal do
pickBest( child , childrenOf(mapNode), gotoMapNode(child ) ) endwhile
endproc
The actiongotoMapNode is in fact a procedure which initiates the robot to drive to the re- spective coordinate and announce the exhibit. The reward function for the planning task was quite simple. At the goal node the robot receives a high positive reward and zero for all other nodes. When defining a metric on the graph and giving discounts for longer edges one easily could ensure