This package holds longterm fetch and place related code, models, and documentation.
To check out the submodules, run
$ git submodules update --recursive --remote
Before doing anything else, install these dependencies and runt he externals build script:
$ sudo apt-get install gazebo2
$ ./build_external.sh
This will build the
libattache.so
Gazebo plugin.
To run it (after the robot performing the tasks was started and localized), just do
$ roslaunch ltfnp_executive ltfnp.launch
and it should start all necessary components. To run the Gazebo simulation of the scenario (with all models spawned etc.), run
$ roslaunch ltfnp_executive ltfnp_simulation.launch
The simulated part requires to have the package
nav_pcontroller
present and compiled in the ROS package path. Also, the
iai_maps
package must be
present.
In CRAM, start the current state like this:
CL-USER> (swank:operate-on-system-for-emacs "ltfnp-executive" (quote load-op))
CL-USER> (in-package :ltfnp)
LTFNP> (start-scenario)
In order to continuously run in loop the long term fetch and place, run
$ rosrun ltfnp_executive run_n.sh <N>
Where <N>
is the number of times you'd like to run it in a
loop. This script starts a launch file coverning the python script
continuous.py
which at its turn will run in separate threads each
launch file required for running the demo and for collecting the
generated episodic memories.
The following contents (sub-directories) are held within this meta package:
-
ltfnp
: Helper directory for the meta package, only holding itsCMakeLists.txt
andpackage.xml
. -
ltfnp_executive
: The top- and high-level plans that control the task behavior of the controlled robot are stored here. Also, the executable entry point is in this package. -
ltfnp_gazebo
: A gazebo world definition for simulating the scenario. This is being developed in the context of continuous integration efforts (first simulate, then execute on the real robot). -
ltfnp_maps
: Floor map for the robot to localize on, as well as global coordinate origin information. -
ltfnp_models
: Furniture, room, and object models for simulation, object detection (perception), reasoning, and visualization. -
ltfnp_reasoning
: Reasoning components for giving the robot semantic access to the environment (refer to furniture by name, know invisible object characteristcs / static background knowledge). -
pr2_moveit_node
: Readily configured MoveIt! node to control the simulated PR2 in Gazebo.
The following points are to be done in the near future:
- Append handle-information to the objects in
ltfnp_models
.
These hints are meant for special cases in which it is not apparent what the solution to a problem is.
-
libbullet.so
missing: The error, as reported bycffi.lisp
, is described asUnable to find ros library 'libbullet_cl.so' in dependencies of package cl_bullet
and basically says that the bullet library is not compiled.To fix this, do the following (assuming you followed the default installation instructions from cram-system.org):
$ roscd cl_bullet $ mkdir build && cd build $ cmake .. && make $ cp devel/lib/libbullet_cl.so ../../../../devel/lib/
This places the missing
libbullet_cl.so
in yourdevel/lib
directory. Now try re-loading theltfnp_executive
package in the REPL.