-
Notifications
You must be signed in to change notification settings - Fork 1
/
README
97 lines (76 loc) · 3.72 KB
/
README
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
behavior_engine: Behavior Engine stack for ROS
==============================================
This stack provides the Behavior Engine, an environment to develop, execute,
and monitor robot behavior. It uses Lua to create this environment, an in
particular roslua to interact with ROS [1]. It has been ported from the
Fawkes robot software framework [2]. We aim to provide an environment, which
eradicates as many differences from the underlying base system as possible,
to have a unified development environment for robotic behavior on both
robot software systems.
The behavior engine and its underlying concepts has been described in [3],
and to a greater detail in [4].
[1] http://www.ros.org
[2] http://www.fawkesrobotics.org
[3] "A Lua-based Behavior Engine for Controlling the Humanoid Robot Nao",
Tim Niemueller, Alexander Ferrein, and Gerhard Lakemeyer
In Proc. of the RoboCup Symposium 2009, Graz, Austria (Springer)
http://fawkesrobotics.org/publications/2009/rc2009-lua-behavior-engine/
[4] "Developing A Behavior Engine for the Fawkes Robot-Control Software and
its Adaptation to the Humanoid Platform Nao"
Tim Niemueller
Master's Thesis, RWTH Aachen University, 2009
Packages
--------
The following packages are included in this stack:
actionlib_lua::
This package is used to make actionlib actions available in the Lua
environment. Actionlib is the main interaction entity with the underlying
base system on ROS.
fawkes_lua::
Lua code ported straight from Fawkes, provding general utilities and finite
and hybrid state machines.
lua_utils::
C++ utility classes to interact with the Lua interpreter context, ported
straight from Fawkes.
skiller::
The skill execution and runtime environment is the core of the behavior
engine. It provides the Lua environment for developing, executing, and
monitoring skills, reactive execution entities.
luaagent::
The concept of reactive execution of the skiller has been applied to the
high-level task description for easy prototyping and testing the skiller
interaction with high-level agents. This package provides the run-time
environment for such agent programs.
skillgui::
A GUI application to instruct and monitor skiller and luaagent. It can
display the state machines and execution trace in real-time.
herb_skills::
A package containing several skills for HERB, the Home Exploring Robot
Butler at Intel Labs Pittsburgh. Although specific to the particular
platform and domain, it can still serve as a documenting example.
herb_agents::
This package contains high-level agent specifications for HERB at Intel
Labs Pittsburgh.
Requirements
------------
The Behavior Engine requires roslua (http://github.com/timn/roslua) to
interact with ROS. Please download it separately and make sure that it is
working.
There are several packages required on your local system by the packages
that compose this stack. The easiest way to get everything needed is to use
rosdep, as all dependencies have been properly documented. Make sure you
have downloaded the stack before doing this as described below. Execute:
rosdep satisfy behavior_engine
It will give you a command line that you need to execute as root to get all
required packages.
Installation
------------
Download the behavior_engine stack and add it to your ROS package path.
git clone --recursive git://github.com/timn/ros-behavior_engine.git
Ensure that roslua is working on your system by executing the examples that
come with it. Also call rosdep as described above to install the system
dependencies. Then build the software with "rosmake behavior_engine".
Documentation
-------------
The source code of all modules is fully documented (API). Guides and more
descriptive is currently work in progress.