“is it within my reach?” -an agents perspective zhisheng huang, anton eliens, and cees visser...
Post on 22-Dec-2015
222 views
TRANSCRIPT
“Is It Within My Reach?”-An Agents Perspective
Zhisheng Huang, Anton Eliens, and Cees Visser
Vrije University Amsterdam
The Netherlands
http://wasp.cs.vu.nl/step
Outline of This Talk
• Virtual Agent Platform: DLP+Web3D
• Scripting Language STEP
• Reach by Hand: Inverse Kinematics
• Reach by Body: Decision Making
• Reach by Moving: Reasoning about Environments
• Conclusions and Future Work
Why DLP
• Object-oriented parallel Prolog
• Web3D support
• TCP/IP support for network communication
• Java-based. All DLP programs are compiled into Java classes
• Efficiency for programming
• Reasonably good performance
Implementation
• STEP has been implemented by using Distributed Logic Programming Language (DLP)
• STEP (version 1.0) and its authoring tools are available from the STEP website:
http://wasp.cs.vu.nl/step
FACT: Web_oriented• Web deliverable animation. No need to
install any software or tool to run and test STEP scripts. No DLLs are needed to run STEP facial animation engine.
• Animation and presentation can be created on-the-fly, well suitable for web agents which need interaction with users in real time with reasonably good performance.
Interaction Operators in STEP for Computation
High-level interaction operators are used to access the computational capabilities of the meta language in order to find the computation solutions, which involve inverse kinematics.
STEP script: Touch
script(getABvalue(Agent,position(X0,Y0,Z0),Hand,A,B),Action):- Action = seq([getDvalue(Agent,position(X0,Y0,Z0),Hand, D), get_upperarm_length(Agent,L1), get_forearm_length(Agent,L2), do(D1 is L1 + L2), if_then_else(sign(D1-D)>sign(0.001-D), seq([do(cosine_law(L1,L2,D,A)), do(cosine_law(L1, D, L2, B))]), seq([do(A is 1.57*(1+sign(D-0.001))), do(B is 0.0)]))]).
script(getVvalue(Agent,position(X0,Y0,Z0),Hand,V),Action):- Action = seq([get_shoulder_center(Agent,Hand, position(X2,Y2,Z2)), do(direction_vector(position(X2,Y2,Z2),position(X0,Y0,Z0),V))]).
script(touch(Agent, position(X0,Y0,Z0),l),Action):- Action = seq([getABvalue(Agent,position(X0,Y0,Z0),l,A,B), do(R1 is 3.14-A), getVvalue(Agent,position(X0,Y0,Z0),l,V), get_arm_vector(Agent,l,V0),
do(vector_cross_product(V0,V,vector(X3,Y3,Z3),C)), do(R2 is C-B),
par([turn(Agent,l_shoulder,rotation(X3,Y3,Z3,R2),fast), turn(Agent,l_elbow,rotation(X3,Y3,Z3,R1),fast), turn(Agent,l_wrist,rotation(X3,Y3,Z3,-0.5),fast)])]).
script(touch_absolutePosition(Agent,position(X1,Y1,Z1),Hand),Action):-
Action = seq([do(getPosition(Agent,X,Y,Z)), do(getRotation(Agent, X2,Y2,Z2,R)),
do(X3 is X1-X), do(Y3 is Y1-Y),
do(Z3 is Z1-Z), do(R1 is -R),
do(position_rotation(position(X3,Y3,Z3), rotation(X2,Y2,Z2,R1),position(X4,Y4,Z4))),
touch(Agent,position(X4,Y4,Z4), Hand)]).
Reach by Body
• Reasoning about Situations to find a proper list of involved joints
• Use a rule-based decision making model
A Simplified Reaching Model• If the object is lower than the agent’s knee, then
the agent should squat to reach it;
• If the object is higher than the hip and lower than the head, the agent should turn the torso to reach it;
• If the object is higher than the head and is not reachable by hand, the agent should jump to reach it;
• ……
Reach by Movingreach with knowldge approach
• A set of rational postulates for reaching with knowledge
• Define a preference relation on positions.
• Agents would move to the most-preferred
position to find a path to reach the object
Rational Postulates
(A)Reachability
The agent prefers a reachable position to unreachable position d(p1, object) < dmax and d(p2, object) > dmax => pref(p1,p2)
(B0) Nearness
The agent prefers a position which is closer to the object
d(p1, object)<d(p2, object) => pref(p1,p2)
• (C0) Shortness
The agent prefers a position for which the move path is shorter.
d(p1,agent)< d(p2,agent)=> pref(p1, p2)
Rational Postulates (continued)
Rational Postulates (continued)(B) (Conditional Nearness) If the object is unreachable, then the agent prefers a position which is closer to the object.\\
d(p1,object)>dmax and d(p2,object)>dmax and d(p1,object)< d(p2,object)\ => pref( p1, p2).
(C) (Conditional Shortness) If the object is reachable, then the agent prefers a position for which the move path is shorter.\\
d(p1,object)<dmax and d(p2,object)<dmax and d(p1,agent)< d(p2,agent) => pref( p1, p2)
Accepted Reachable Distance (ARD)
ARD denotes the distance from which the agent can reach the object with an acceptable bending of the torso.
Rational Postulates (continued)
(D) (Acceptable Nearness) If the object is not acceptably reachable, then the agent prefers a position which is closer to the object.\\
d(p1,object)>ARD and d(p2,object)>ARD and d(p1,object)< d(p2,object)=> pref(p1, p2).
(E) (Acceptable Shortness) If the object is acceptably reachable, then the agent prefers a position for which the move path is shorter.
d(p1,object)<ARD and d(p2,object)< ARD and d(p1,agent)< d(p2,agent) => pref(p1, p2)