But they all get the similar error, which is "TypeError: zip argument #2 must support iteration"
In [1]: robot.base.Forward(1.0)
[INFO] [prpy.base.robot:robot.py:393]:do_execute: Post-processing path with 2 waypoints.
[WARNING] [prpy.base.robot:robot.py:300]:do_postprocess: Trajectory contains affine DOFs. Any regular DOFs will be ignored.
[INFO] [prpy.base.robot:robot.py:403]:do_execute: Post-processing took 0.107 seconds and produced a path with 2 waypoints and a duration of 2.500 seconds.
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
/home/shen/Research/catkin_ws/src/herbpy/scripts/console.py in <module>()
----> 1 robot.base.Forward(1.0)
/home/shen/Research/catkin_ws/src/herbpy/src/herbpy/herbbase.pyc in Forward(self, meters, execute, timeout, **kwargs)
54 """
55 if self.simulated or not execute:
---> 56 return MobileBase.Forward(self, meters, execute=execute, timeout=timeout, **kwargs)
57 else:
58 with prpy.util.Timer("Drive segway"):
/home/shen/Research/catkin_ws/src/prpy/src/prpy/base/mobilebase.pyc in Forward(self, meters, execute, direction, **kw_args)
94 path = create_affine_trajectory(self.robot, [ start_pose, goal_pose ])
95 if execute:
---> 96 return self.robot.ExecutePath(path, **kw_args)
97 else:
98 return path
/home/shen/Research/catkin_ws/src/prpy/src/prpy/base/robot.pyc in ExecutePath(self, path, defer, executor, **kwargs)
418 return wrap_future(executor.submit(do_execute))
419 elif defer is False:
--> 420 return do_execute()
421 else:
422 raise ValueError('Received unexpected value "{:s}" for defer.'.format(str(defer)))
/home/shen/Research/catkin_ws/src/prpy/src/prpy/base/robot.pyc in do_execute()
405
406 with Timer() as timer:
--> 407 exec_traj = self.ExecuteTrajectory(traj, defer=False, **kwargs)
408 SetTrajectoryTags(exec_traj, {Tags.EXECUTION_TIME: timer.get_duration()}, append=True)
409 return exec_traj
/home/shen/Research/catkin_ws/src/herbpy/src/herbpy/herbrobot.pyc in ExecuteTrajectory(self, traj, *args, **kwargs)
228 manipulator.ClearTrajectoryStatus()
229
--> 230 value = super(HERBRobot, self).ExecuteTrajectory(traj, *args, **kwargs)
231
232 for manipulator in active_manipulators:
/home/shen/Research/catkin_ws/src/prpy/src/prpy/base/robot.pyc in ExecuteTrajectory(self, traj, defer, timeout, period, **kwargs)
460 # Check that the current configuration of the robot matches the
461 # initial configuration specified by the trajectory.
--> 462 if not util.IsAtTrajectoryStart(self, traj):
463 raise exceptions.TrajectoryAborted(
464 'Trajectory started from different configuration than robot.')
/home/shen/Research/catkin_ws/src/prpy/src/prpy/util.pyc in IsAtTrajectoryStart(robot, trajectory)
702
703 # Check deviation in each DOF, using OpenRAVE's SubtractValue function.
--> 704 dof_infos = zip(dof_indices, traj_values, robot_values, dof_resolutions)
705 for dof_index, traj_value, robot_value, dof_resolution in dof_infos:
706 # Look up the Joint and Axis of the DOF from the robot.
TypeError: zip argument #2 must support iteration
You are correct about this being similar to #35. It is also a duplicate of prpy issue #153. It has been fixed in a branch and should be merged by the end of the week :)
I think this problem is similar to https://github.com/personalrobotics/herbpy/issues/35 I am using the block_sorting master. In simulation, I did:
distanceInMeters = 1 robot.base.Forward(distanceInMeters)
robot.base.rotate(pi/2)
robot_pose_in_world = ... robot.base.PlanToBasePose(robot_pose_in_world)
But they all get the similar error, which is "TypeError: zip argument #2 must support iteration"