Please note that active projects have migrated to

2 years agolibwebview: remove duplicate function after merge
Tim Niemueller [Tue, 29 May 2018 15:44:29 +0000] 
libwebview: remove duplicate function after merge

2 years agoMerge remote-tracking branch 'origin/timn/webview-2.0'
Tim Niemueller [Tue, 29 May 2018 15:11:24 +0000] 
Merge remote-tracking branch 'origin/timn/webview-2.0'

2 years agowebview: remove syncpoint support
Tim Niemueller [Tue, 29 May 2018 15:05:01 +0000] 
webview: remove syncpoint support

Incompatible with upcoming merge of webview-2.0. Needs to be rewritten
as REST API and frontend extension.

2 years agoMerge remote-tracking branch 'origin/timn/metrics'
Tim Niemueller [Tue, 29 May 2018 15:00:48 +0000] 
Merge remote-tracking branch 'origin/timn/metrics'

2 years agoMerge remote-tracking branch 'origin/timn/robot-memory-aggregation-facet-query'
Tim Niemueller [Tue, 29 May 2018 14:48:38 +0000] 
Merge remote-tracking branch 'origin/timn/robot-memory-aggregation-facet-query'

2 years agoMerge remote-tracking branch 'origin/nlimpert/laser_filter_box_filter'
Tim Niemueller [Tue, 29 May 2018 14:48:34 +0000] 
Merge remote-tracking branch 'origin/nlimpert/laser_filter_box_filter'

2 years agoMerge remote-tracking branch 'origin/vmatare/laser-lines-tf-sync'
Tim Niemueller [Tue, 29 May 2018 14:47:48 +0000] 
Merge remote-tracking branch 'origin/vmatare/laser-lines-tf-sync'

2 years agolaser-filter/box_filter: add missing param docu
Nicolas Limpert [Tue, 29 May 2018 14:46:08 +0000] 
laser-filter/box_filter: add missing param docu

The "blackboard" parameter for ctor of LaserBoxFilterDataFilter was not

2 years agolaser-filter/Makefile: set interfaces as PRESUBDIRS
Nicolas Limpert [Thu, 26 Apr 2018 08:41:17 +0000] 
laser-filter/Makefile: set interfaces as PRESUBDIRS

2 years agolaser-filter: add laser filter to exclude boxes
Nicolas Limpert [Wed, 25 Apr 2018 19:40:37 +0000] 
laser-filter: add laser filter to exclude boxes

This filter allows to filter boxes with continuous orientations.
New boxes are inserted by providing a CreateNewBoxFilterMessage to the

2 years agolaser-filter: add LaserBoxFilterInterface
Nicolas Limpert [Wed, 25 Apr 2018 19:47:22 +0000] 
laser-filter: add LaserBoxFilterInterface

This interface allows plugins to submit new boxes that are to be

2 years agolaser-filter: add Makefile for interfaces subfolder
Nicolas Limpert [Wed, 25 Apr 2018 19:46:14 +0000] 
laser-filter: add Makefile for interfaces subfolder

2 years agoMerge remote-tracking branch 'origin/thofmann/laser-filter-copy'
Tim Niemueller [Tue, 29 May 2018 14:40:07 +0000] 
Merge remote-tracking branch 'origin/thofmann/laser-filter-copy'

2 years agopddl-robot-memory: retrieve all data in a single aggregation pipeline
Tim Niemueller [Thu, 11 Jan 2018 22:09:32 +0000] 
pddl-robot-memory: retrieve all data in a single aggregation pipeline

This uses the facet feature of MongoDB aggregation to get all data in a
single query in order to ensure consistency.

This replaces the previous query code. It has the drawback that the all
results together must fit into a single document.

2 years agolaser-lines: publish tf name in iface
Victor Mataré [Tue, 29 May 2018 14:16:10 +0000] 
laser-lines: publish tf name in iface

Add a field end_point_frame_[1|2] to the LaserLineInterface, so users
don't have to do weird parsing on the interface ID to find the
respective TFs for the end points.

2 years agolaser-lines: fix TF publishing
Victor Mataré [Tue, 17 Apr 2018 15:57:27 +0000] 
laser-lines: fix TF publishing

Only one TransformPublisher was used, so there was only one
TransformInterface for all laser lines, where data was sequentially
overwritten so that only the last published transform was visible.

Now we create one TransformPublisher per line, each with a fitting name
and thus the laser-line transforms can now also be synced.

2 years agoMerge remote-tracking branch 'origin/nlimpert/dynamixel_syncpoint_fixes'
Tim Niemueller [Tue, 29 May 2018 14:06:27 +0000] 
Merge remote-tracking branch 'origin/nlimpert/dynamixel_syncpoint_fixes'

2 years agoMerge remote-tracking branch 'origin/nlimpert/dynamixel_config_verbose'
Tim Niemueller [Tue, 29 May 2018 14:06:10 +0000] 
Merge remote-tracking branch 'origin/nlimpert/dynamixel_config_verbose'

2 years agoMerge remote-tracking branch 'origin/nlimpert/dynamixel_fixes'
Tim Niemueller [Tue, 29 May 2018 14:03:03 +0000] 
Merge remote-tracking branch 'origin/nlimpert/dynamixel_fixes'

2 years agoMerge remote-tracking branch 'origin/vmatare/meta-plugin-yaml-list'
Tim Niemueller [Tue, 29 May 2018 14:02:22 +0000] 
Merge remote-tracking branch 'origin/vmatare/meta-plugin-yaml-list'

2 years agoMerge remote-tracking branch 'origin/mgomaa/cx-check-executable-fix'
Tim Niemueller [Tue, 29 May 2018 13:53:12 +0000] 
Merge remote-tracking branch 'origin/mgomaa/cx-check-executable-fix'

2 years agoMerge remote-tracking branch 'origin/common/syncpoint'
Tim Niemueller [Tue, 29 May 2018 13:52:11 +0000] 
Merge remote-tracking branch 'origin/common/syncpoint'

2 years agodynamixel: setup syncpoint usage
Nicolas Limpert [Mon, 17 Jul 2017 13:01:26 +0000] 
dynamixel: setup syncpoint usage

The dynamixel plugin consists of an act and a sensor thread. The act
thread is dependant on data generated by the sensor thread. In rare
cases the sensor thread takes more time resulting in situations where
exec_act is called although exec_sensor did not finish yet.
With this commit we make use of SyncPoints to let the act_thread wait
until the sensor thread finished (syncpoint "/sensor/aquire").
After the act_thread is done we emit "/act/exec/end".

2 years agodynamixel: do not evaluate overload when disabled
Nicolas Limpert [Wed, 26 Jul 2017 06:08:04 +0000] 
dynamixel: do not evaluate overload when disabled

The evaluation of the overload condition is not needed when the
alarm_shutdown feature is disabled.

2 years agodynamixel: add verbose output config option
Nicolas Limpert [Wed, 19 Jul 2017 08:56:26 +0000] 
dynamixel: add verbose output config option

It can be configured to log info on messages received.

2 years agoclips-executive: Missing op name in executability check
Mostafa Gomaa [Tue, 17 Apr 2018 17:30:20 +0000] 
clips-executive: Missing op name in executability check

2 years agoMerge remote-tracking branch 'origin/thofmann/cx-domain-activation-ordering'
Tim Niemueller [Tue, 29 May 2018 12:43:31 +0000] 
Merge remote-tracking branch 'origin/thofmann/cx-domain-activation-ordering'

2 years agoMerge remote-tracking branch 'origin/mgomaa/clips-executive-nonunique-action-ids...
Tim Niemueller [Tue, 29 May 2018 12:39:41 +0000] 
Merge remote-tracking branch 'origin/mgomaa/clips-executive-nonunique-action-ids-fix'

2 years agoclips-executive: enforce ordering ground -> check -> apply for actions
Till Hofmann [Tue, 24 Apr 2018 14:15:40 +0000] 
clips-executive: enforce ordering ground -> check -> apply for actions

Declare saliences to enforce that an action's precondition is fully
grounded before checking whether the precondition is satisfied, and that
the action is not executed/applied before its precondition is checked.

2 years agoclips-executive: also check if an atomic precondition is not satisfied
Till Hofmann [Tue, 24 Apr 2018 14:06:01 +0000] 
clips-executive: also check if an atomic precondition is not satisfied

We only checked that an atomic precondition is satisfied. We also need
to check if it is currently marked as satisfied but no corresponding
domain fact exists.

2 years agoclips-executive: remove all ground preconditions atomically
Till Hofmann [Tue, 24 Apr 2018 13:31:13 +0000] 
clips-executive: remove all ground preconditions atomically

Instead of asserting domain-wm-update and retracting all preconditions
one by one, move the retraction into a function and retract all ground
preconditions in one function call.

2 years agoclips-executive: disable locking and robmem sync in test scenario
Tim Niemueller [Tue, 29 May 2018 12:03:35 +0000] 
clips-executive: disable locking and robmem sync in test scenario

2 years agoconfig: make robot-memory optional for test scenario
Tim Niemueller [Tue, 29 May 2018 12:02:55 +0000] 
config: make robot-memory optional for test scenario

Do not load robmem sync and mutex handling for test scenario.

2 years agoMerge remote-tracking branch 'origin/thofmann/robot-memory-pddl-duplicate-template...
Tim Niemueller [Tue, 29 May 2018 11:32:07 +0000] 
Merge remote-tracking branch 'origin/thofmann/robot-memory-pddl-duplicate-template-names'

2 years agoMerge remote-tracking branch 'origin/thofmann/robot-memory-fix-make-include-paths'
Tim Niemueller [Tue, 29 May 2018 11:31:25 +0000] 
Merge remote-tracking branch 'origin/thofmann/robot-memory-fix-make-include-paths'

2 years agoMerge remote-tracking branch 'origin/thofmann/cx-wm-robmem-sync-blackboard-init-fix'
Tim Niemueller [Tue, 29 May 2018 11:31:05 +0000] 
Merge remote-tracking branch 'origin/thofmann/cx-wm-robmem-sync-blackboard-init-fix'

2 years agoMerge remote-tracking branch 'origin/timn/yaml-sequence-maps'
Tim Niemueller [Tue, 29 May 2018 11:14:49 +0000] 
Merge remote-tracking branch 'origin/timn/yaml-sequence-maps'

2 years agoMerge remote-tracking branch 'origin/timn/clips-executive-wm-robmem-sync'
Tim Niemueller [Tue, 29 May 2018 11:14:32 +0000] 
Merge remote-tracking branch 'origin/timn/clips-executive-wm-robmem-sync'

2 years agoMerge remote-tracking branch 'origin/thofmann/clips-executive-fix-contradicting-effects'
Tim Niemueller [Tue, 29 May 2018 11:08:11 +0000] 
Merge remote-tracking branch 'origin/thofmann/clips-executive-fix-contradicting-effects'

2 years agoMerge remote-tracking branch 'origin/thofmann/clips-executive-exog-actions'
Tim Niemueller [Tue, 29 May 2018 11:07:13 +0000] 
Merge remote-tracking branch 'origin/thofmann/clips-executive-exog-actions'

2 years agoMerge remote-tracking branch 'origin/thofmann/clips-executive-early-effect-grounding'
Tim Niemueller [Tue, 29 May 2018 11:06:46 +0000] 
Merge remote-tracking branch 'origin/thofmann/clips-executive-early-effect-grounding'

2 years agoMerge remote-tracking branch 'origin/thofmann/pddl-planner-do-not-use-old-plans'
Tim Niemueller [Tue, 29 May 2018 11:06:05 +0000] 
Merge remote-tracking branch 'origin/thofmann/pddl-planner-do-not-use-old-plans'

2 years agoMerge remote-tracking branch 'origin/dhabering/cx-atomic-groundig-fix'
Tim Niemueller [Tue, 29 May 2018 10:14:02 +0000] 
Merge remote-tracking branch 'origin/dhabering/cx-atomic-groundig-fix'

2 years agoMerge remote-tracking branch 'origin/dhabering/cx-domain-pending-sensed-fix'
Tim Niemueller [Tue, 29 May 2018 10:13:56 +0000] 
Merge remote-tracking branch 'origin/dhabering/cx-domain-pending-sensed-fix'

2 years agoMerge remote-tracking branch 'origin/dhabering/clips-executive-skill-failing-fix'
Tim Niemueller [Tue, 29 May 2018 10:13:49 +0000] 
Merge remote-tracking branch 'origin/dhabering/clips-executive-skill-failing-fix'

2 years agoclips-executive: plan-action match with goal
Daniel Habering [Fri, 20 Apr 2018 15:07:23 +0000] 
clips-executive: plan-action match with goal

The plan-action grounding on the lhs was not matched with the plan and
goal-id, causing it to be matched with an action from another plan.

2 years agoclips-executive: made list variable unique
Daniel Habering [Fri, 20 Apr 2018 11:47:01 +0000] 
clips-executive: made list variable unique

In domain-ground-atomic-precondition the list variable in the foreach
statement had the same name as the previously grounded plan-id, which
caused problems. Renamed it in order to make it unique.

2 years agoclips-executive: remove pending sensed effect on removed action
Daniel Habering [Mon, 28 May 2018 11:33:06 +0000] 
clips-executive: remove pending sensed effect on removed action

If an action that has still a pending effect is removed, the
corresponding pending-sensed-effect flag should be removed as well to
not interfere with future actions.

2 years agoclips-executive: adding goal and plan id to pending-flag
Daniel Habering [Sat, 21 Apr 2018 11:28:05 +0000] 
clips-executive: adding goal and plan id to pending-flag

The domain-pending-sensed-effect has fields for the plan and goal id of
the pending action. However, these were not used when checking if an
action has pending-sensed-effects, causing the action of another plan to
get stuck at waiting for a sensed effect.

2 years agoclips-executive: action can go to final from waiting
Daniel Habering [Sat, 21 Apr 2018 12:46:34 +0000] 
clips-executive: action can go to final from waiting

When a skill goes from idle to final, the action should be able to do
this as well.

2 years agolibplugin: allow meta plugins as YAML lists
Victor Mataré [Tue, 29 May 2018 10:08:48 +0000] 
libplugin: allow meta plugins as YAML lists

Defining a meta-plugin as a one-line string has been a long-standing
pain in every merge-meisters brain. Feature branches have a tendency to
change meta-plugins, and if all plugins are listed in one line that
causes unnecessary conflicts.

With this commit, meta-plugins can be defined via YAML lists, like so:

  - real-plugin-1
  - real-plugin-2

This eliminates the tedious (and often repetitive) conflict resolution
when merging long-running feature branches. The old syntax is of course
still supported (but strongly discouraged).

2 years agoclips-executive: fail waiting action on skill failure
Daniel Habering [Thu, 19 Apr 2018 13:25:27 +0000] 
clips-executive: fail waiting action on skill failure

plan-action can get set to failed to failed from waiting and
running. Before, if the skill went from idle to failed directly, the
action would have been stuck at waiting because it was never set to

2 years agoclips-executive: support actions with the same neg and pos effect
Till Hofmann [Fri, 23 Mar 2018 11:06:26 +0000] 
clips-executive: support actions with the same neg and pos effect

If an action has the same effect both as positive and negative effect,
assume that we always want to have the positive effect. To achieve this,
check if there is any positive effect with the same predicate and same
parameters and only apply the negative effect if no such positive effect

2 years agoros: add missing dependency check for dynamic_reconfigure
Tim Niemueller [Tue, 22 May 2018 10:21:53 +0000] 
ros: add missing dependency check for dynamic_reconfigure

The respective plugin and ros-navigator were build even if this
requirement was missing. Furthermore, cleanup and simplify dependency

2 years agoros: add missing artifact declarations
Tim Niemueller [Tue, 22 May 2018 10:21:10 +0000] 
ros: add missing artifact declarations

2 years agowebview-frontend: update dependencies
Tim Niemueller [Thu, 17 May 2018 11:03:44 +0000] 
webview-frontend: update dependencies

Update to Angular 6.0.2 and in particular ngx-store 2.0.0 which contains
our PR ( for
compatibility with A6.

2 years agowebview-frontend: small template updates for Angular 6
Tim Niemueller [Fri, 4 May 2018 19:04:14 +0000] 
webview-frontend: small template updates for Angular 6

Fix some minor issues that caused errors with the new Angular.

2 years agowebview-frontend: adapt for RxJS 6
Tim Niemueller [Fri, 4 May 2018 19:01:31 +0000] 
webview-frontend: adapt for RxJS 6

Angular 6 depends on RxJS 6 which brings some incompatible changes we
need to adapt to.

Note that the ngx-store dependency has the same issue. A pull request is

2 years agowebview-frontend: import dashboard NgModule
Tim Niemueller [Fri, 4 May 2018 18:58:26 +0000] 
webview-frontend: import dashboard NgModule

The module was not imported which is now an error.

2 years agowebview-frontend: drop angular-in-memory-web-api dependency
Tim Niemueller [Fri, 4 May 2018 18:57:31 +0000] 
webview-frontend: drop angular-in-memory-web-api dependency

It's not working with Angular 6, yet. And with the REST APIs being
finished there is not real need anymore either.

2 years agowebview-frontend: upgrade to Angular 6
Tim Niemueller [Fri, 4 May 2018 18:55:36 +0000] 
webview-frontend: upgrade to Angular 6

This performs the basic dependenciy updates and automatic "ng update"
changes to upgrade to Angular 6.

2 years agoclips-executive: add missing str-cat for error-msg field
Tim Niemueller [Sat, 28 Apr 2018 19:38:21 +0000] 
clips-executive: add missing str-cat for error-msg field

This caused the segfaults on (illegal) unlocking.

Thanks to Till Hofmann for a joint debug session.

2 years agoclips-executive: make "robmem ready" depend on existence of primary
Tim Niemueller [Sat, 28 Apr 2018 16:19:35 +0000] 
clips-executive: make "robmem ready" depend on existence of primary

When waiting for robot memory to be ready, wait for the flag that the
replica set actually has a primary.

2 years agoclips-executive: add wm-robmem-sync-restore
Tim Niemueller [Sat, 28 Apr 2018 07:35:58 +0000] 
clips-executive: add wm-robmem-sync-restore

Add feature to restore all worldmodel facts for the configured prefixes
from the database. Should be called when re-entering the scenario to
retrieve information from the other robots.

2 years agowebview: allow starting without deployed frontend
Tim Niemueller [Fri, 27 Apr 2018 12:58:27 +0000] 
webview: allow starting without deployed frontend

Resolve the catchall only once called. This allows webview to load if
the frontend is not deployed.

This is useful for two situations:
- allow startup if the frontend is not required but webview is part of
  the default meta plugin.
- allow startup if only the REST APIs are required.

2 years agoclips-executive: do not convert data from robot memory a second time
Till Hofmann [Fri, 27 Apr 2018 11:22:35 +0000] 
clips-executive: do not convert data from robot memory a second time

The functions bson-get-array and bson-get already return the proper
type, do not try to cast from string into the type again.

This fixes an issue with syncing non-string values, which would result
in errors because the function eval expects a string or a symbol.

Thanks to Tarik Viehmann for reporting and debugging this.

2 years agowebview-frontend: show plans in clips-executive goal list graph
Tim Niemueller [Fri, 27 Apr 2018 12:21:15 +0000] 
webview-frontend: show plans in clips-executive goal list graph

The plans are visualized as a cluster for a specific goal. It shows
preconditions (of yet incomplete actions) and status indication colors.

2 years agowebview-frontend: re-generated clips-executive REST API models
Tim Niemueller [Fri, 27 Apr 2018 12:17:18 +0000] 
webview-frontend: re-generated clips-executive REST API models

Include recently added type enum value and re-generate models with
updated template and generator.

2 years agoclips-executive-rest-api: add missing negation enum type
Tim Niemueller [Fri, 27 Apr 2018 12:16:09 +0000] 
clips-executive-rest-api: add missing negation enum type

DomainPreconditionCompound type field was missing a possible value.

2 years agoclips-executive: retrieve array using bson-get-array
Tim Niemueller [Fri, 27 Apr 2018 09:27:23 +0000] 
clips-executive: retrieve array using bson-get-array

The array was previously retrieved via bson-get, resulting in an

Thanks to Daniel Habering for reporting.

2 years agoconfig: adapt clips-executive mutex config
Tim Niemueller [Thu, 26 Apr 2018 21:44:02 +0000] 
config: adapt clips-executive mutex config

Distinguish renewal interval and max age. Use common prefix.

2 years agoclips-executive: support expiring locks
Tim Niemueller [Thu, 26 Apr 2018 21:42:49 +0000] 
clips-executive: support expiring locks

Update the code to have a unified method to flush or expire locks (which
simply differ in the max age value). Add expire-locks action. Introduce
new configuration value prefix coordination/mutex.

2 years agoconfig: set mutex max age for test scenario
Tim Niemueller [Thu, 26 Apr 2018 14:49:17 +0000] 
config: set mutex max age for test scenario

2 years agoclips-executive: lock-actions documentation
Tim Niemueller [Thu, 26 Apr 2018 14:46:32 +0000] 
clips-executive: lock-actions documentation

2 years agoclips-executive: support lock auto-renewal
Tim Niemueller [Thu, 26 Apr 2018 14:45:30 +0000] 
clips-executive: support lock auto-renewal

Auto renewal is the default and can be disabled by setting the fact
field or passing the FALSE after the mutex name to mutex-try-lock-async.

2 years agorobot-memory: lock renewal is no longer an upsert
Tim Niemueller [Thu, 26 Apr 2018 14:41:40 +0000] 
robot-memory: lock renewal is no longer an upsert

It's a pure update. Let's fail if the lock is gone.

2 years agorobot-memory: also unset lock-time on unlock
Tim Niemueller [Thu, 26 Apr 2018 14:41:26 +0000] 
robot-memory: also unset lock-time on unlock

2 years agoclips-executive: add flush-locks action handler
Tim Niemueller [Thu, 26 Apr 2018 11:52:46 +0000] 
clips-executive: add flush-locks action handler

2 years agoclips-executive: add support for renewing and flushing locks
Tim Niemueller [Thu, 26 Apr 2018 11:40:50 +0000] 
clips-executive: add support for renewing and flushing locks

2 years agoclips-executive: do not allow to overtake another request
Tim Niemueller [Thu, 26 Apr 2018 11:39:32 +0000] 
clips-executive: do not allow to overtake another request

Deny a request if another one is already running.

2 years agoclips-executive: set request on early failures
Tim Niemueller [Thu, 26 Apr 2018 11:38:12 +0000] 
clips-executive: set request on early failures

If a failure happens in the function to issue the request, also set the
request field to properly map the failure to the operation.

2 years agoclips-robot-memory: support lock expiration
Tim Niemueller [Thu, 26 Apr 2018 11:31:19 +0000] 
clips-robot-memory: support lock expiration

Allow to setup mutex TTL index and manual expiration. The expiration is
the only task we allow to run concurrently to the rest.

2 years agoclips-robot-memory: add mutex-renew-lock function
Tim Niemueller [Thu, 26 Apr 2018 11:30:06 +0000] 
clips-robot-memory: add mutex-renew-lock function

Support renewing locks. Error and success reporting is done through
mutex-op-feedback facts. This way we do not rely in time matching of the
mutex state.

2 years agoclips-robot-memory: rename mutex-op-failed to mutex-op-feedback
Tim Niemueller [Thu, 26 Apr 2018 11:28:49 +0000] 
clips-robot-memory: rename mutex-op-failed to mutex-op-feedback

The new template can then also be used to indicate success. Also use
this fact to report early errors (before even taking the request to the

2 years agorobot-memory: add support for mutex lock expiration
Tim Niemueller [Thu, 26 Apr 2018 11:23:28 +0000] 
robot-memory: add support for mutex lock expiration

Locks can become stale if the lock holder drops out. There are now two
methods to remedy this:
1. Setup a time-to-live (TTL) index
   The database will periodically remove expired documents based on the
   lock-time field. This is opaque and fully automatic. However, the
   background thread of the database performs this only once every
   60 seconds. Hence the minimal expiration time is bounded there.
2. Periodically call mutex_expire_locks(max_age_sec) to remove all locks
   that are older than the given age limit. This can have an almost
   arbitrary precision but must be controled from the outside.

A combination is also possible. Setup TTL as a safety net and then
manually expire in shorter intervals.

2 years agorobot-memory: add method to renew an existing lock
Tim Niemueller [Thu, 26 Apr 2018 11:22:52 +0000] 
robot-memory: add method to renew an existing lock

To prevent expiry of a lock it must be periodically re-newed (to account
for dying peers).

2 years agorobot-memory: rename mutex last_seen field to lock-time
Tim Niemueller [Thu, 26 Apr 2018 11:17:14 +0000] 
robot-memory: rename mutex last_seen field to lock-time

2 years agoclips-executive: process explicit try-lock failure feedback
Tim Niemueller [Wed, 25 Apr 2018 20:31:26 +0000] 
clips-executive: process explicit try-lock failure feedback

2 years agoclips-robot-memory: provide explicit feedback on try-lock fail
Tim Niemueller [Wed, 25 Apr 2018 20:29:00 +0000] 
clips-robot-memory: provide explicit feedback on try-lock fail

Try-lock may fail for an anticipated reason: the lock has already been
acquired. In this case, however, the lock fact is not updated and thus
this cannot be caught by a trigger. This is an issue in particular if it
occurs for a mutex which was previously unknown (e.g., after a hot start
with an existing DB or when joining a running replica set).

The solution is to take the result into account and assert an indicator
fact to the calling environment indicating the error.

2 years agorobot-memory: force lock always steals lock
Tim Niemueller [Wed, 25 Apr 2018 20:28:10 +0000] 
robot-memory: force lock always steals lock

Before it was only acquired if it was already locked by anyone.

2 years agoclips-executive: test-scenario locking example
Tim Niemueller [Wed, 25 Apr 2018 13:35:10 +0000] 
clips-executive: test-scenario locking example

Run with:
bin/fawkes ros navgraph skiller flite clips clips-pddl-parser \
  clips-navgraph mongodb robot-memory clips_robot_memory \
  clips-executive clips-executive-rest-api webview \
  skiller-rest-api clips-rest-api

(assumes timn/webview-2.0 integration)

2 years agoconfig: add mutex handling to clips-executive init config
Tim Niemueller [Wed, 25 Apr 2018 13:34:24 +0000] 
config: add mutex handling to clips-executive init config

2 years agoconfig: robot-memory mutex collection configuration
Tim Niemueller [Wed, 25 Apr 2018 13:33:19 +0000] 
config: robot-memory mutex collection configuration

It is also required to add the coordination db to the set of distributed
DBs in order for triggers to work on this collection!

2 years agoclips-executive: use asynchronous mutex handling for locking actions
Tim Niemueller [Wed, 25 Apr 2018 13:31:34 +0000] 
clips-executive: use asynchronous mutex handling for locking actions

The lock and unlock actions are now based on the asynchronous mutex
handling code of coordination-mutex.clp.

For initialization, include coordination-mutex.clp before

2 years agoclips-executive: add asynchronous mutex lock handling
Tim Niemueller [Wed, 25 Apr 2018 13:20:20 +0000] 
clips-executive: add asynchronous mutex lock handling

The set of rules and convenience functions enable asynchronous
interaction with locks.

2 years agoclips-executive: add error-msg slot to plan-action fact
Tim Niemueller [Wed, 25 Apr 2018 13:19:27 +0000] 
clips-executive: add error-msg slot to plan-action fact

Allows to provide useful feedback if something goes wrong.

2 years agoclips-robot-memory: asynchronous mutex functions
Tim Niemueller [Wed, 25 Apr 2018 13:18:01 +0000] 
clips-robot-memory: asynchronous mutex functions

The asynchronous mutex functions will immediately return and simply
kick-off the intended operation. A trigger on the mutex collection can
provide feedback if and when the operation has succeeded.

2 years agoclips-robot-memory: bson-has-field now supports dotted notation
Tim Niemueller [Wed, 25 Apr 2018 13:16:31 +0000] 
clips-robot-memory: bson-has-field now supports dotted notation

2 years agoclips-robot-memory: require identity for mutex locks
Tim Niemueller [Wed, 25 Apr 2018 13:15:03 +0000] 
clips-robot-memory: require identity for mutex locks

The identity must now be passed to the locking-related mutex functions.

2 years agowebview-frontend: force service worker install in production
Tim Niemueller [Wed, 25 Apr 2018 22:36:31 +0000] 
webview-frontend: force service worker install in production

The service worker was not installed in several situations, in
particular on Chrome. Force installation when in production environment.