Skip to content

Commit 5c9d75a

Browse files
committed
Merge pull request #123 from personalrobotics/bugfix/postprocess_path_params
Improved error handling in defer=True and GetTrajectoryTags.
2 parents ab0e818 + 33a45b2 commit 5c9d75a

File tree

2 files changed

+26
-6
lines changed

2 files changed

+26
-6
lines changed

src/prpy/base/robot.py

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -307,7 +307,7 @@ def do_postprocess():
307307

308308
return CopyTrajectory(traj, env=self.GetEnv())
309309

310-
if defer:
310+
if defer is True:
311311
from trollius.executor import get_default_executor
312312
from trollius.futures import wrap_future
313313

@@ -316,6 +316,10 @@ def do_postprocess():
316316

317317
return wrap_future(executor.submit(do_postprocess))
318318
else:
319+
if defer is not False:
320+
logger.warning('Received unexpected value "%s" for defer.',
321+
defer)
322+
319323
return do_postprocess()
320324

321325
def ExecutePath(self, path, defer=False, executor=None, **kwargs):
@@ -350,7 +354,7 @@ def do_execute():
350354

351355
return self.ExecuteTrajectory(traj, defer=False, **kwargs)
352356

353-
if defer:
357+
if defer is True:
354358
from trollius.executor import get_default_executor
355359
from trollius.futures import wrap_future
356360

@@ -359,6 +363,10 @@ def do_execute():
359363

360364
return wrap_future(executor.submit(do_execute))
361365
else:
366+
if defer is not False:
367+
logger.warning('Received unexpected value "%s" for defer.',
368+
defer)
369+
362370
return do_execute()
363371

364372
def ExecuteTrajectory(self, traj, defer=False, timeout=None, period=0.01):
@@ -416,7 +424,7 @@ def ExecuteTrajectory(self, traj, defer=False, timeout=None, period=0.01):
416424
'Trajectory includes the base, but no base controller is'
417425
' available. Is self.base.controller set?')
418426

419-
if defer:
427+
if defer is True:
420428
import time
421429
import trollius
422430

@@ -436,6 +444,10 @@ def do_poll():
436444

437445
return trollius.async(do_poll())
438446
else:
447+
if defer is not False:
448+
logger.warning('Received unexpected value "%s" for defer.',
449+
defer)
450+
439451
util.WaitForControllers(active_controllers, timeout=timeout)
440452

441453
return traj

src/prpy/util.py

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,10 @@
3232
import logging, numpy, openravepy, scipy.misc, time, threading, math
3333
import scipy.optimize
3434

35+
36+
logger = logging.getLogger('prpy.util')
37+
38+
3539
def create_sensor(env, args, anonymous=True):
3640
sensor = openravepy.RaveCreateSensor(env, args)
3741
if sensor is None:
@@ -283,10 +287,14 @@ def GetTrajectoryTags(traj):
283287

284288
description = traj.GetDescription()
285289

286-
if description:
287-
return json.loads(description)
288-
else:
290+
if description == '':
289291
return dict()
292+
else:
293+
try:
294+
return json.loads(description)
295+
except ValueError as e:
296+
logger.warning('Failed reading tags from trajectory: %s', e.message)
297+
return dict()
290298

291299

292300
def SetTrajectoryTags(traj, tags, append=False):

0 commit comments

Comments
 (0)