tmkit
0.0.1-alpha1
A Task-Motion Planning Framework
|
SMT-based planner
[function]
PlanningFailure: (&optional value) => result
Create an exception indicating motion planning failure.
[function]
bind_collision_constraint: (function) => result
Bind FUNCTION as the collision constraint generator.
[function]
bind_goal_state: (function) => result
Bind FUNCTION as the goal state function.
[function]
bind_refine_operator: (function operator) => result
Bind FUNCTION as the refinement function for OPERATOR.
[function]
bind_scene_objects: (function) => result
Bind FUNCTION as the scene objects function.
[function]
bind_scene_state: (function) => result
Bind FUNCTION as the scene state function.
[function]
collect_frame_type: (scene type) => result
Return all frames in SCENE of the given TYPE.
[function]
frame_fixed_tf: (frame) => result
Return the fixed portion of the frame's relative transform.
[function]
frame_isa: (frame type) => result
Test if FRAME is of the given TYPE.
[function]
inverse: (x) => result
Compute the inverse of X.
Examples:
inverse(xangle(1)) => #S(AMINO:QUATERNION :DATA #(-0.479425538604203d0 -0.0d0 -0.0d0 0.8775825618903728d0))
inverse(tf2(xangle(1),[1,2,3])) #S(AMINO:QUATERNION-TRANSLATION :QUATERNION #S(AMINO:QUATERNION :DATA #(-0.479425538604203d0 -0.0d0 -0.0d0 0.8775825618903728d0)) :TRANSLATION #S(AMINO:VEC3 :DATA #(-1.0d0 -3.605017566159969d0 0.06203505201137416d0)))
[function]
mangle: (&rest args) => result
Convert ARGS in to a valid PDDL/SMTlib symbol.
Examples:
mangle('a', 'b') => 'a__b'
[function]
map_frames: (function scene-graph) => result
Apply FUNCTION to every frame in SCENE-GRAPH.
[generic-function]
motion_plan: (sub-scene-graph start-configuration goal &key timeout simplify) => result
[method]
motion_plan: (sub-scene-graph start-configuration (goal quaternion-translation) &key timeout simplify) => result
Compute a motion plan to a workspace goal.
If motion planning fails, return False.
[function]
motion_plan_endpoint: (motion-plan) => result
Return the endpoint of a motion plan.
[function]
mul: (&rest args) => result
Generically multiply ARGS.
Examples:
mul(xangle(1),yangle(2)) => #S(AMINO:QUATERNION :DATA #(0.2590347239999257d0 0.7384602626041288d0 0.4034226801113349d0 0.4741598817790379d0))
mul(tf2(xangle(1),[1,2,3]), tf2(1,[4,5,6])) => #S(AMINO:QUATERNION-TRANSLATION :QUATERNION #S(AMINO:QUATERNION :DATA #(0.479425538604203d0 0.0d0 0.0d0 0.8775825618903728d0)) :TRANSLATION #S(AMINO:VEC3 :DATA #(5.0d0 -0.3473143795066811d0 10.449168759248321d0)))
[function]
op_motion: (previous-op sub-scene-graph goal) => result
Create a motion-plan task-motion operator.
[function]
op_nop: (scene config) => result
Create a NO-OP task-motion operator.
[function]
op_reparent: (previous-op parent frame) => result
Create a reparent task-motion operator.
[function]
op_tf_abs: (operator frame) => result
Return the absolute pose of FRAME after OPERATOR.
[function]
op_tf_rel: (operator parent child) => result
Return the absolute pose of from parent to child after OPERATOR.
[function]
plan: (&rest operators) => result
Create a plan consisting of task-motion OPERATORS.
[function]
quat: (object) => result
Convert OBJECT to a quaternion.
Examples:
quat([1,0,0,0]) => #S(AMINO:QUATERNION :DATA #(1.0d0 0.0d0 0.0d0 0.0d0))
quat(1) => #S(AMINO:QUATERNION :DATA #(0.0d0 0.0d0 0.0d0 1.0d0))
quat(xangle(math.pi)) => #S(AMINO:QUATERNION :DATA #(1.0d0 0.0d0 0.0d0 6.123233995736766d-17))
[function]
rotation: (transform) => result
Extract the rotation part of TRANSFORM.
Examples:
rotation(tf2(1, [1,2,3])) => #S(AMINO:QUATERNION :DATA #(0.0d0 0.0d0 0.0d0 1.0d0))
tf2(1, [1,2,3]).rotation => #S(AMINO:QUATERNION :DATA #(0.0d0 0.0d0 0.0d0 1.0d0))
[function]
scene_chain: (scene root tip) => result
Create a kinematic chain from ROOT to TIP.
[function]
scene_tf_abs: (scene config name) => result
Return the absolute transform of the given frame.
[function]
scene_tf_rel: (scene config parent child) => result
Return the relative transform from parent to child.
[function]
shape_is_box: (shape) => result
Test if SHAPE is a box.
[function]
shape_is_cone: (shape) => result
Test if SHAPE is a cone.
[function]
shape_is_cylinder: (shape) => result
Test if SHAPE is a cylinder.
[function]
shape_is_grid: (shape) => result
Test if SHAPE is a grid.
[function]
shape_is_mesh: (shape) => result
Test if SHAPE is a mesh.
[function]
shape_is_sphere: (shape) => result
Test if SHAPE is a sphere.
[function]
shape_is_text: (shape) => result
Test if SHAPE is a text.
[function]
tf: (object) => result
Convert OBJECT to the standard transform type.
[function]
tf2: (rotation translation) => result
Create a standard transform type for ROTATION and TRANSLATION.
Examples:
tf2(1, [1,2,3]) => #S(AMINO:QUATERNION-TRANSLATION :QUATERNION #S(AMINO:QUATERNION :DATA #(0.0d0 0.0d0 0.0d0 1.0d0)) :TRANSLATION #S(AMINO:VEC3 :DATA #(1.0d0 2.0d0 3.0d0)))
tf2(xangle(math.pi), [1,2,3]) => #S(AMINO:QUATERNION-TRANSLATION :QUATERNION #S(AMINO:QUATERNION :DATA #(1.0d0 0.0d0 0.0d0 6.123233995736766d-17)) :TRANSLATION #S(AMINO:VEC3 :DATA #(1.0d0 2.0d0 3.0d0)))
[function]
translation: (transform) => result
Extract the TRANSLATION part of TRANSFORM.
Examples:
translation(tf2(1, [1,2,3])) => #S(AMINO:VEC3 :DATA #(1.0d0 2.0d0 3.0d0))
tf2(1, [1,2,3]).translation => #S(AMINO:VEC3 :DATA #(1.0d0 2.0d0 3.0d0))
[function]
vec: (&rest elements) => result
Create a numerical vector composted of ELEMENTS.
Examples:
vec(1,2,3) => [1.0, 2.0, 3.0]
[function]
vec3: (object) => result
Convert OBJECT to a VEC3.
Examples:
vec3([1,2,3]) => #S(AMINO:VEC3 :DATA #(1.0d0 2.0d0 3.0d0))
[function]
xangle: (angle) => result
Create a rotation of ANGLE about the X axis.
Examples:
xangle(math.pi) => #S(AMINO:X-ANGLE :VALUE 3.141592653589793d0)
[function]
yangle: (angle) => result
Create a rotation of ANGLE about the Y axis.
Examples:
yangle(math.pi) => #S(AMINO:Y-ANGLE :VALUE 3.141592653589793d0)
[function]
zangle: (angle) => result
Create a rotation of ANGLE about the Z axis.
Examples:zangle(math.p) => #S(AMINO:Z-ANGLE :VALUE 3.141592653589793d0)