wiki:Projects/LabRPXLR2017/CLIPS-Executive-RCLL

Version 15 (modified by thofmann, 6 months ago) (diff)

--

CLIPS Executive RCLL

Task

  1. Fetch a base from the base station.
    • Create a goal to fetch the base.
    • Call the PDDL Planner to create a plan for the goal.
    • Execute the plan.
  2. Produce a C0 using the PDDL planner
  3. Produce more complex products
  4. Add errors to the simulation and deal with them in execution monitoring
    • Make sure you have an up-to-date gazebo-rcll (branch current-labrpxlr
    • Edit the failure probabilities in gazebo-rcll/plugins/cfg/config.yaml
      • prob-puck-falls is the probabiliy of a puck falling from the gripper while driving
      • prob-failing-pick-up is the probability of a pick-up action to fail

Branches to use

  • fawkes-robotino: common/clips-executive-rcll
  • fawkes core: common/current-clips-executive-rcll

You will need to rebuild after updating your branches.

How to run

  • Run the simulation as before with ./gazsim.bash -x start -r -k -n 1 -t
  • Select the team
  • Start setup
  • Load the clips-executive meta plugin: ./ffplugin -r localhost:1921 -l gazsim-meta-clips-exec
  • Switch to production

Update: Instead of running the simulation and loading the plugin separately, you can also directly start the simulation with the executive: ./gazsim.bash -x start -r -k -n 1 -t -a (note the -a)

Rebuilding for MongoDB fix

To use the fixes for mongodb, you need to:

  1. cd fawkes-robotino/fawkes/src/plugins/mongodb && make clean && make
  2. cd fawkes-robotino/fawkes/src/plugins/robot-memory && make clean && make
  3. cd fawkes-robotino/fawkes/src/plugins/ && make
  4. Make sure that no mongodb process is running: killall mongod
  5. rm -rf ~/.robot-memory

Hints

  • The agent now needs to communicate with the refbox. After you loaded the clips-executive, the robot should appear in the refbox.
  • To fetch a product from the base station, the agent first needs to send a prepare message, which is modelled as plan-action prepare-bs . The action sends the message and waits for the message to be processed. The machine state should switch from IDLE to PROCESSING and then to READY-AT-OUTPUT .
  • The world model is stored in wm-facts. The information in the world model comes from the refbox or from action effects. Relevant wm-facts are synced to domain-facts automatically.
  • domain-predicates now have an optional sensed property. If an action has a sensed predicate as effect, the effect is not applied as normal, but instead the execution waits until it can sense the predicate. Only after sensing the effect, the action is set to FINAL .
  • Part of the infrastructure code is still work in progress. In particular, you may note the following issues:
    • The planner returns an invalid plan or says that the plan is not solvable. This may happen if the planner did not have all domain facts during planning. Re-planning usually solves the problem.
    • wm-facts and domain-facts are not in sync (fixed)
    • After a prepare-bs , the domain-fact for the mps state is not READY-AT-OUTPUT even if the refbox says that the MPS is READY-AT-OUTPUT .

We are working on fixing these issues.