M09 DeliberativeLevel
M09 DeliberativeLevel
https://learn.microsoft.com/en-us/archive/msdn-
magazine/2019/january/machine-learning-
leveraging-the-beliefs-desires-intentions-agent-
architecture
© 2023 Lluís Ribas i Xirgo, Universitat Autònoma de Barcelona 106589 Intelligent Robots, 92
Deliberative robots: BDI architecture
1. The belief revision function (BRF)
updates the current beliefs
database, making sure that the
recently received set of percepts
doesn’t contradict any beliefs in
the belief dataset.
2. Desires are updated with new
options in regard of current
beliefs and intentions.
3. The set of desires are
transposed into intentions by
filtering unrealistic or hard-to-
fulfill ones.
4. Actions are selected from
intentions by following some
means-end reasoning approach.
© 2023 Lluís Ribas i Xirgo, Universitat Autònoma de Barcelona 106589 Intelligent Robots, 93
Deliberative robots: BDI and state machines
© 2023 Lluís Ribas i Xirgo, Universitat Autònoma de Barcelona 106589 Intelligent Robots, 94
Deliberative robots: Architecture
• Deliberative layer
• Decision-making level
• Decides objectives (future states) and
fires plans to attain them
• E.g. Go to some spot
(for picking up/placing something)
• Executive layer
• Sequences operations to follow a plan
• E.g. Follow a path or
get a point-cloud from sensor
• Reactive layer
• Performs basic operations
• Interacts with the physical world
• E.g. Make the vehicle move
to a destination point
© 2023 Lluís Ribas i Xirgo, Universitat Autònoma de Barcelona 106589 Intelligent Robots, 95
Deliberative robots: Making decisions
• Following pre-defined paths
• Select a path and send the corresponding command to the executive level
• Decide what to do in case command failed
© 2023 Lluís Ribas i Xirgo, Universitat Autònoma de Barcelona 106589 Intelligent Robots, 96
Path planning
• State-machine model
• Like exercise 8 extension inside ReturnPath
• Programming model
ReturnPath = function(P)
local R = {"1 90 0"}
local a = -90
local d = 0
local i = #P
while i>=0 do
d = tonumber(string.match(P[i] or "", "%d+[^%d]*-?%d+[^%d]*(%d+)")) or 0
if a~=0 or d~=0 then table.insert(R, string.format("1 %d %d", -a, d)) end
a = tonumber(string.match(P[i] or "", "%d+[^%d]*(-?%d+)")) or 0
i = i - 1
end -- while
table.insert(R, "1 90 0")
table.insert(R, "1 90 0")
return R
end --- ReturnPath
© 2023 Lluís Ribas i Xirgo, Universitat Autònoma de Barcelona 106589 Intelligent Robots, 97
Deliberative robots: Making decisions
• L2 level: User interaction
© 2023 Lluís Ribas i Xirgo, Universitat Autònoma de Barcelona 106589 Intelligent Robots, 98
Deliberative robots: Making decisions
• Example case: Travelling predefined paths with alternatives
• In case of failure of following path P,
return to origin and try alternative path P2
• In case of blockage when travelling return or alternative path,
stop operation
• Use function calls to get data
© 2023 Lluís Ribas i Xirgo, Universitat Autònoma de Barcelona 106589 Intelligent Robots, 99
Deliberative robots: Making decisions
© 2023 Lluís Ribas i Xirgo, Universitat Autònoma de Barcelona