Professional Documents
Culture Documents
Algorithm 2
heuristicLeastTime(s, o)
1: tcurrent ← time of state s
2: P e ← pose of end-effector at state s
(c) 3: Ẋ e ← velocity of end-effector at state s
4: tsample ← tcurrent
Fig. 3: Trajectory produced by Egrasp consisting of (a)
5: while tsample < tcurrent + ∆Tmax do
pregrasp motion, (b) grasp motion, and (c) tracking motion.
6: P o ← object o’s pose at tsample
7: Ẋ o ← object o’s velocity at tsample
8: ∆treach = timeOf F light(P e, Ẋ e , P o , Ẋ o )
the gripper closes around the object, in Figure 3c. A sample 9: ∆tgrasp = timeOf Grasp()
generated gripper trajectory with respect to the object is 10: ∆testimate = ∆treach + ∆tgrasp
shown in Figure 2. 11: if ∆testimate < tsample − tcurrent then
After the trajectory is generated, a spline is fitted to the 12: return ∆testimate
trajectory to get a time parameterization that we can validate 13: end if
easily for infeasible joint torques, velocities, and collisions 14: tsample = tsample + ∆tsample
with the moving goal. Collisions with static obstacles, and 15: end while
joint limits are handled during the rollout of the trajectory. If
the trajectory is invalidated for any of the reasons provided,
we discard it and move on to testing other pregrasp poses
and times for feasible grasp motions. Algorithm 3
If a feasible trajectory traj is found, this constitutes a timeOfFlight(P e , Ẋ e , P o , Ẋ o )
valid edge and the successor state is labeled as one of the goal 1: dist = euclidean distance between P e and P o
states. The cost of this edge is set to the cost of the trajectory 2: axis = line from P e to P o
for the motion primitive, i.e. duration of the jacobian motion 3: vstart ← project instantaneous velocity of Ẋ e onto axis
and pregrasp motion. 4: vend ← project instantaneous velocity of Ẋ o onto axis
RT
If the set of candidate pregrasp states is exhausted, no 5: v(t) ← triangular velocity profile subject to 0 v(t) dt =
successors are generated by Egrasp . dist, v(0) = vstart , v(T ) = vend
e
6: if maxt v(t) > vmax then
B. Cost Function 7: v(t) ← trapezoidal velocity profile subject to same
e
constraints, and maxt v(t) = vmax
The goal of the cost function is to minimize the execution
8: end if
time to complete the entire pickup task. Therefore the cost
9: return T from v(t)
of each motion primitive in Edelta is the time computed by
the forward-integration of the dynamics of the arm. The cost
of a motion primitive in Egrasp is the time taken to perform Assume we are computing the heuristic value of a state
all three components - pregrasping, grasping, and tracking. s. In order to estimate ∆treach , we use the sub-routine
Additionally the time for lifting is accounted for in this. described by Algorithm 3 and visualized in Figure 4b. We
e
In order to select the bounded end-effector velocity vmax ,
e
we choose a vmax that is the the fastest we can move the
end effector in the workspace, while respecting the joint
velocity limits. To do this, we maximize Ẋ T Ẋ, subject to
the constraints
Ẋ = J(θ)θ̇ (4)
(a)