Giter Site home page Giter Site logo

kavrakilab / tmkit Goto Github PK

View Code? Open in Web Editor NEW
47.0 8.0 12.0 531 KB

A Task-Motion Planning Framework

Home Page: http://tmkit.kavrakilab.org

License: BSD 3-Clause "New" or "Revised" License

Common Lisp 83.37% C 6.89% Makefile 2.62% M4 1.18% Shell 3.87% Lex 2.07%

tmkit's Introduction

Build Status

The Task-Motion Kit (TMKit) is a framework for Task and Motion Planning. Everyday activities, e.g., setting a table or making coffee, combine discrete decisions about objects and actions with geometric decisions about collision free motion. TMKit jointly reasons about task-level objectives, i.e., choosing actions and objects, and motion-level objectives, i.e., finding collision free paths.

Features

  • PDDL Task Domains
  • URDF and Scene File Motion Domains
  • Incremental, Constraint-Based Planner
  • Plan Visualization
  • Command-line Planner Interface

Installation

Obtaining

Via git:

git clone https://github.com/kavrakilab/tmkit.git
cd tmsmt && autoreconf -i

Building

./configure && make && make install

DOCUMENTATION

tmkit's People

Contributors

clemense avatar keliangh avatar ndantam avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

tmkit's Issues

Converting URDF to robray not working for some models (?)

I can convert the Baxter model and view it with aarxc without problems.
I have another model (an articulated cabinet with prismatic and revolute joints) as URDF which i can view without problems (aarxc --gui) but if I convert it (aarxc package://blabla/cabinet.urdf -s cabinet.robray) the resulting cabinet.robray contains weird expressions, e.g.:

#S(ROBRAY:SCENE-FRAME-PRISMATIC
   :NAME door_left_shift_joint
   :PARENT door_left_joint_fixed
   :INERTIAL NIL
   :TF (TF* (QUATERNION* 0.0d0 0.0d0 0.0d0 1.0d0) (VEC3* 0.0d0 0.0d0 0.0d0))
   :GEOMETRY NIL
   :CONFIGURATION-NAME door_left_shift_joint
   :CONFIGURATION-OFFSET 0.0d0
   :AXIS #S(AMINO:VEC3 :DATA #(0.0d0 1.0d0 0.0d0))
   :%LIMITS #S(ROBRAY::JOINT-LIMITS
               :POSITION #S(ROBRAY::JOINT-LIMIT
                            :MIN 0.0d0
                            :MAX -0.014999999664723873d0)
               :VELOCITY #S(ROBRAY::JOINT-LIMIT :MIN -0.0d0 :MAX 0.0d0)
               :ACCELERATION NIL
               :EFFORT #S(ROBRAY::JOINT-LIMIT :MIN -1000.0d0 :MAX 1000.0d0)))frame door_left_transform {
        parent door_left_joint;
        type fixed;
        translation [0.0, 0.1809999942779541, 0.0];
}

It's also impossible to view the result (aarxc --gui cabinet.robray):

Unhandled SIMPLE-ERROR in thread #<SB-THREAD:THREAD "main thread" RUNNING
                                    {1006454953}>:
  The assertion (= ROBRAY::R-START ROBRAY::TOKEN-START) failed with
  ROBRAY::R-START = 1684, ROBRAY::TOKEN-START = 911.

Backtrace for: #<SB-THREAD:THREAD "main thread" RUNNING {1006454953}>
0: ((LAMBDA NIL :IN SB-DEBUG::FUNCALL-WITH-DEBUG-IO-SYNTAX))
1: (SB-IMPL::CALL-WITH-SANE-IO-SYNTAX #<CLOSURE (LAMBDA NIL :IN SB-DEBUG::FUNCALL-WITH-DEBUG-IO-SYNTAX) {10064BAFFB}>)
2: (SB-IMPL::%WITH-STANDARD-IO-SYNTAX #<CLOSURE (LAMBDA NIL :IN SB-DEBUG::FUNCALL-WITH-DEBUG-IO-SYNTAX) {10064BAFCB}>)
3: (PRINT-BACKTRACE :STREAM #<SYNONYM-STREAM :SYMBOL SB-SYS:*STDERR* {10001B30F3}> :START 0 :FROM :INTERRUPTED-FRAME :COUNT NIL :PRINT-THREAD T :PRINT-FRAME-SOURCE NIL :METHOD-FRAME-STYLE NIL)
4: (SB-DEBUG::DEBUGGER-DISABLED-HOOK #<SIMPLE-ERROR "~@<The assertion ~S failed~:[.~:; ~
                                    with ~:*~{~{~S = ~S~}~^, ~}.~]~:@>" {10064B64A3}> #<unavailable argument>)
5: (SB-DEBUG::RUN-HOOK *INVOKE-DEBUGGER-HOOK* #<SIMPLE-ERROR "~@<The assertion ~S failed~:[.~:; ~
                                    with ~:*~{~{~S = ~S~}~^, ~}.~]~:@>" {10064B64A3}>)
6: (INVOKE-DEBUGGER #<SIMPLE-ERROR "~@<The assertion ~S failed~:[.~:; ~
                                    with ~:*~{~{~S = ~S~}~^, ~}.~]~:@>" {10064B64A3}>)
7: (ERROR #<SIMPLE-ERROR "~@<The assertion ~S failed~:[.~:; ~
                                    with ~:*~{~{~S = ~S~}~^, ~}.~]~:@>" {10064B64A3}>)
8: (SB-KERNEL:ASSERT-ERROR (= ROBRAY::R-START ROBRAY::TOKEN-START) ((ROBRAY::R-START 1684) (ROBRAY::TOKEN-START 911)) NIL NIL)
9: (ROBRAY::LEXER-LEX #S(ROBRAY::LEXER :TOKEN-SCANNER #<CLOSURE #1=(LAMBDA (STRING CL-PPCRE::START CL-PPCRE::END) :IN CL-PPCRE::CREATE-SCANNER-AUX) {100194469B}> :TOKEN-REGEX (:SEQUENCE :START-ANCHOR (:ALTERNATION (:REGISTER #\{) (:REGISTER #\}) (:REGISTER #\() (:REGISTER #\)) (:REGISTER #\[) (:REGISTER #\]) (:REGISTER #\,) (:REGISTER #\;) (:REGISTER (:SEQUENCE "frame" #)) (:REGISTER (:SEQUENCE "geometry" #)) (:REGISTER (:SEQUENCE "class" #)) ...)) :SKIP-SCANNER #<CLOSURE #1# {100194474B}> :SKIP-REGEX (:SEQUENCE :START-ANCHOR (:GREEDY-REPETITION 1 NIL (:ALTERNATION :WHITESPACE-CHAR-CLASS (:REGEX "(#|(//)).*?(\\n|$)") (:SEQUENCE "/*" # "*/")))) :HANDLERS #(#<CLOSURE #2=(LAMBDA (STRING ROBRAY::START ROBRAY::END) :IN ROBRAY::MAKE-LEXER) {100263CA2B}> #<CLOSURE #2# {100263CA4B}> #<CLOSURE #2# {100263CA6B}> #<CLOSURE #2# {100263CA8B}> #<CLOSURE #2# {100263CAAB}> #<CLOSURE #2# {100263CACB}> #<CLOSURE #2# {100263CAEB}> #<CLOSURE #2# {100263CB0B}> #<CLOSURE #2# {100263CB2B}> #<CLOSURE #2# {100263CB4B}> #<CLOSURE #2# {100263CB6B}> #<CLOSURE #2# {100263CB8B}> ...)) "frame door_left_joint {
	parent door_left_shift_joint;
	type revolute;
	variable door_left_joint;
	axis [0.0, 0.0, 1.0];
	offset 0.0;
}

Any idea what could cause this?

How to use Python shell

There is an option --python-shell which starts a CLPython shell. Are there any variables defined at this point? If yes, what are their names?
Is there maybe an example how to use the shell option effectively?

Containerized version of tmkit now available

Posting this here as a reference.

I've managed to create a Docker image which builds tmkit. The code as well as usage instructions can be found at the following URL:

https://github.com/theredcomputer/tmkit-docker

Please note that it runs Ubuntu 16.04 for the time being. According to Quicklisp's maintainer, Quicklisp's package list should be updated with the latest version of CLPython at the end of November. At that time, the version of the Docker image can (or will) be bumped up to 18.04.

For convenience, I've also created a prebuilt Docker image available from Docker Hub. It can be acquired by running the following command:

$ docker pull theredcomputer/tmkit_docker

Here's to hoping this is of some use to you.

Running Examples from IDTMP Paper

Hello!

I wanted to run some of the extension examples from the IDTMP work, but I'm struggling to find a way to run them. For example, is the collision-generalization constraint implemented in tmkit already? Also, is there a script to build the extension environments with the side-grasp and rearranging the blocks? Is demo/old/test/itmp-multi.lisp the file to run? I appreciate any help!

Thanks,
Brandon

Conflicting options in run script

The script to call tmkit has to conflicting options that both use -s. Since one is below the other in the case statement, it could never actually be used. I found that there is an alternative option to use the second option, --steps, although it isn't mentioned in the help script.

Baxter Demo - Wrong End Effector Poses

When running the Baxter Demo, the end effector poses are completely off and lead to the cubes ending up at totally wrong positions.
At the bottom of this post you can find screenshots in which you can see the problem (A-D).

Also I have also attached the files i use to generate the plan [1] (which are blindly copied from the demo without any changes), and under the following link [2] you can also find the version of the baxter repo that i am using (which has been cloned from the original baxter repo without any changes).

I basically just fully follow your tutorial [3].
Adjusting q0 leads to different outcomes of the plan execution, so my assumption is, that the mistake may be there.
I do not really know where to begin on debugging this issue, do you maybe have an idea?

I am running the system on Ubuntu 20.04 with ROS Noetic.
When running the system from this pre-compiled docker image [4], everything works fine. Compiling the docker image myself fails at ./configure when trying to find FCL (even though it actually should be installed by the docker image creation process.

[1] baxter-blocks.zip
[2] baxter_common
[3] tmkit.kavrakilab.org/tutorial
[4] tmkit-docker

Click here for viewing the images showing the error

Support for >SBCL-1.4.5

Do you currently only support ROS Kinetic? I've attempted to install tmkit with Melodic, but there is a consistent error where the "import aminopy as aa" and "import tmsmtpy as tm" lines in tm-blocks.py consistently fail for an unknown reason (CLPython says it's an ImportError).

I've been able to get tmkit working on Kinetic but not Indigo due to a lack of package support.

Error with openGL running the tutorial

I was trying to run the tutorial but when I run
aarxc --gui < path to baxter.urdf>

I get this error:

WARNING: OpenGL multisample anti-aliasing disabled.
OpenGL context could not be created! SDL Error: Could not create GL context
fatal error encountered in SBCL pid 21798(tid 140737353824000):
SIGABRT received.

I'm currently running the tutorial in a ubuntu virtual machine on macOS; is this problem related to that?

How to use tmkit for my own robot and domain?

Hello again, I'm trying to use tmkit for a four-legged robot domain. Could you briefly tell me the key steps to be followed to generate the appropriate scene description and domain semantics files?
Thank you for your help

Error during make

While doing make I keep having this error:

Error opening shared object "libamino.so":
  libamino.so: cannot open shared object file: No such file or directory.

How can I fix it?

Compiling TMKit in a Docker container requires root privileges on host machine

This "issue" appears Ubuntu 16.04 and 18.04. The specific error I'm encountering occurs when running configure to install amino (I realize this is the issue tracker for TMKit and not amino, but the KavrakiLab/amino repo doesn't have the ability to raise issues). The following text contains the "issue":

[...]
configure: Use GLPK:          no
configure: Use CGAL:          
configure: Build Demos:       yes
configure: URDF Demos:        
## ----------- ##
## END SUMMARY ##
## ----------- ##
[maxima start]
cd ./src/mac && maxima --very-quiet -b euler77.mac
personality failure 1
make: *** [src/mac/euler.f] Error 255
Makefile:4460: recipe for target 'src/mac/euler.f' failed

personality is a specific syscall. To allow the syscall to go through, I reload dockerd using this seccomp policy and then run docker build ..

This method works, but reloading dockerd requires root privileges. Being able to compile amino without root in Docker would be ideal. I've tried using using configure's --without-maxima flag, but that didn't help.

Debugging: Best Practices

Hi,
I wanted to know whether there are some hints on how to best debug a newly defined problem that doesn't work as expected (i.e., no plan was found).
I figured out that the pure task domain can be verified via tmsmt ops.pddl facts.pddl which is a first step.
But once this is done, I would like to get more insight into the full blown geometric problem. For example: Is it possible to output the initial and goal state conjunction? The initial state depends on the scene file, the optional task problem definition (:init) and the initial state (-q). I'm not sure I fully understand what happens when competing facts are defined in these different sources.

I'm also using the python interface and first thought that outputting the return value of tm.bind_scene_state and tm.bind_goal_state might give all necessary information but I realized that these lists are not the full state (at least the planner even fails when both are identical -- although there should be a trivial solution).
Any hints on how to debug (without going the LISP way)?

URDF links as frames in the scene graph

Hi,
I'm combining URDF and .robray files. I would like to define a frame in robray with its parent being a link in the URDF file. If I use the link name of URDF it doesn't work.
I guess my more general question is: how is URDF transformed into frames of the scene graph?
Thanks!

Problem with last step in tutorial: STREAM-DECODING-ERROR

Hi,
I have a problem with the last step in the tutorial (adding the button). When running the planner I get the following error:

Unhandled SB-INT:STREAM-DECODING-ERROR in thread #<SB-THREAD:THREAD RUNNING
                                                    {1006E4C383}>:
  :UTF-8 stream decoding error on
  #<SB-SYS:FD-STREAM for "descriptor 21" {1006B1B853}>:
    the octet sequence #(216 74) cannot be decoded.

Backtrace for: #<SB-THREAD:THREAD RUNNING {1006E4C383}>
0: ((LAMBDA NIL :IN SB-DEBUG::FUNCALL-WITH-DEBUG-IO-SYNTAX))
1: (SB-IMPL::CALL-WITH-SANE-IO-SYNTAX #<CLOSURE (LAMBDA NIL :IN SB-DEBUG::FUNCALL-WITH-DEBUG-IO-SYNTAX) {1006D6284B}>)
2: (SB-IMPL::%WITH-STANDARD-IO-SYNTAX #<CLOSURE (LAMBDA NIL :IN SB-DEBUG::FUNCALL-WITH-DEBUG-IO-SYNTAX) {1006D6281B}>)
3: (SB-DEBUG:PRINT-BACKTRACE :STREAM #<SYNONYM-STREAM :SYMBOL SB-SYS:*STDERR* {10001AB0F3}> :START 0 :FROM :INTERRUPTED-FRAME :COUNT NIL :PRINT-THREAD T :PRINT-FRAME-SOURCE NIL :METHOD-FRAME-STYLE NIL)
4: (SB-DEBUG::DEBUGGER-DISABLED-HOOK #<SB-INT:STREAM-DECODING-ERROR {1006D5E763}> #<unavailable argument>)
5: (SB-DEBUG::RUN-HOOK SB-EXT:*INVOKE-DEBUGGER-HOOK* #<SB-INT:STREAM-DECODING-ERROR {1006D5E763}>)
6: (INVOKE-DEBUGGER #<SB-INT:STREAM-DECODING-ERROR {1006D5E763}>)
7: (ERROR #<SB-INT:STREAM-DECODING-ERROR {1006D5E763}>)
8: (SB-IMPL::STREAM-DECODING-ERROR-AND-HANDLE #<SB-SYS:FD-STREAM for "descriptor 21" {1006B1B853}> 2)
9: (SB-IMPL::INPUT-CHAR/UTF-8 #<SB-SYS:FD-STREAM for "descriptor 21" {1006B1B853}> T NIL)
10: (SB-IMPL::FLUSH-WHITESPACE #<SB-SYS:FD-STREAM for "descriptor 21" {1006B1B853}>)
11: (SB-IMPL::READ-LIST #<SB-SYS:FD-STREAM for "descriptor 21" {1006B1B853}> #<unavailable argument>)
12: (SB-IMPL::READ-MAYBE-NOTHING #<SB-SYS:FD-STREAM for "descriptor 21" {1006B1B853}> #\()
13: (SB-IMPL::READ-LIST #<SB-SYS:FD-STREAM for "descriptor 21" {1006B1B853}> #<unavailable argument>)
14: (SB-IMPL::READ-MAYBE-NOTHING #<SB-SYS:FD-STREAM for "descriptor 21" {1006B1B853}> #\()
15: (SB-IMPL::%READ-PRESERVING-WHITESPACE #<SB-SYS:FD-STREAM for "descriptor 21" {1006B1B853}> T (NIL) T)
16: (SB-IMPL::%READ-PRESERVING-WHITESPACE #<SB-SYS:FD-STREAM for "descriptor 21" {1006B1B853}> T (NIL) NIL)
17: (READ #<SB-SYS:FD-STREAM for "descriptor 21" {1006B1B853}> T NIL NIL)
18: (SMT-READ #S(SMT :RUNTIME 0.2010000000000001d0 :PROCESS #<SB-IMPL::PROCESS 19004 :RUNNING>) T NIL NIL)
19: (SMT-EVAL #S(SMT :RUNTIME 0.2010000000000001d0 :PROCESS #<SB-IMPL::PROCESS 19004 :RUNNING>) (|get-value| ("PUSH-BUTTON__6" "UNSTACK__block_a__block_b__6" "UNSTACK__block_a__block_c__6" "UNSTACK__block_b__block_a__6" "UNSTACK__block_b__block_c__6" "UNSTACK__block_c__block_a__6" "UNSTACK__block_c__block_b__6" "STACK__block_a__block_b__6" "STACK__block_a__block_c__6" "STACK__block_b__block_a__6" "STACK__block_b__block_c__6" "STACK__block_c__block_a__6" ...)))
20: (SMT-PLAN-CHECK #S(SMT-PLAN-CONTEXT :SMT #S(SMT :RUNTIME 0.2010000000000001d0 :PROCESS #<SB-IMPL::PROCESS 19004 :RUNNING>) :DOMAIN #S(GROUND-DOMAIN :VARIABLES (#1=(TMSMT/PDDL::CLEAR #2="block_a") #3=(TMSMT/PDDL::CLEAR #4="block_b") #5=(TMSMT/PDDL::CLEAR #6="block_c") #7=(TMSMT/PDDL::CLEAR #8="front_table__-1__-1") #9=(TMSMT/PDDL::CLEAR #10="front_table__-1__-2") #11=(TMSMT/PDDL::CLEAR #12="front_table__-1__-3") #13=(TMSMT/PDDL::CLEAR #14="front_table__-1__0") #15=(TMSMT/PDDL::CLEAR #16="front_table__-1__1") #17=(TMSMT/PDDL::CLEAR #18="front_table__-1__2") #19=(TMSMT/PDDL::CLEAR #20="front_table__-1__3") #21=(TMSMT/PDDL::CLEAR #22="front_table__-2__-1") #23=(TMSMT/PDDL::CLEAR #24="front_table__-2__-2") ...) :TYPES (BOOL) :VARIABLE-TYPE #<TREE-MAP ((#1# . BOOL) (#3# . BOOL) (#5# . BOOL) (#7# . BOOL) (#9# . BOOL) (#11# . BOOL) (#13# . BOOL) (#15# . BOOL) (#17# . BOOL) (#19# . BOOL) (#21# . BOOL) (#23# . BOOL) ...)> :DERIVED-VARIABLES NIL :DERIVED-TYPE #<TREE-MAP NIL> :TYPE-OBJECTS #<TREE-MAP ((BLOCK . #<TREE-SET (#2# #4# #6#)>) (BOOL . #<TREE-SET (NIL T)>) (TMSMT/PDDL::LOCATION . #<TREE-SET (#8# #10# #12# #14# #16# #18# #20# #22# #24# "front_table__-2__-3" "front_table__-2__0" "front_table__-2__1" ...)>) (TMSMT/PDDL::OBJECT . #<TREE-SET (#2# #4# #6# #8# #10# #12# #14# #16# #18# #20# #22# #24# ...)>) (T . #<TREE-SET (#2# #4# #6# #8# #10# #12# #14# #16# #18# #20# #22# #24# ...)>))> :OPERATORS (#S(GROUND-ACTION :NAME TMSMT/PDDL::PICK-UP :ACTUAL-ARGUMENTS (#6# "front_table__3__3") :PRECONDITION (AND # # . #25=#) :EFFECT (AND # # #26=# # #)) #S(GROUND-ACTION :NAME TMSMT/PDDL::PICK-UP :ACTUAL-ARGUMENTS (#6# "front_table__3__2") :PRECONDITION (AND # # . #25#) :EFFECT (AND # # #26# # #)) #S(GROUND-ACTION :NAME TMSMT/PDDL::PICK-UP :ACTUAL-ARGUMENTS (#6# "front_table__3__1") :PRECONDITION (AND # # . #25#) :EFFECT (AND # # #26# # #)) #S(GROUND-ACTION :NAME TMSMT/PDDL::PICK-UP :ACTUAL-ARGUMENTS (#6# "front_table__3__0") :PRECONDITION (AND # # . #25#) :EFFECT (AND # # #26# # #)) #S(GROUND-ACTION :NAME TMSMT/PDDL::PICK-UP :ACTUAL-ARGUMENTS (#6# "front_table__3__-3") :PRECONDITION (AND # # . #25#) :EFFECT (AND # # #26# # #)) #S(GROUND-ACTION :NAME TMSMT/PDDL::PICK-UP :ACTUAL-ARGUMENTS (#6# "front_table__3__-2") :PRECONDITION (AND # # . #25#) :EFFECT (AND # # #26# # #)) #S(GROUND-ACTION :NAME TMSMT/PDDL::PICK-UP :ACTUAL-ARGUMENTS (#6# "front_table__3__-1") :PRECONDITION (AND # # . #25#) :EFFECT (AND # # #26# # #)) #S(GROUND-ACTION :NAME TMSMT/PDDL::PICK-UP :ACTUAL-ARGUMENTS (#6# "front_table__2__3") :PRECONDITION (AND # # . #25#) :EFFECT (AND # # #26# # #)) #S(GROUND-ACTION :NAME TMSMT/PDDL::PICK-UP :ACTUAL-ARGUMENTS (#6# "front_table__2__2") :PRECONDITION (AND # # . #25#) :EFFECT (AND # # #26# # #)) #S(GROUND-ACTION :NAME TMSMT/PDDL::PICK-UP :ACTUAL-ARGUMENTS (#6# "front_table__2__1") :PRECONDITION (AND # # . #25#) :EFFECT (AND # # #26# # #)) #S(GROUND-ACTION :NAME TMSMT/PDDL::PICK-UP :ACTUAL-ARGUMENTS (#6# "front_table__2__0") :PRECONDITION (AND # # . #25#) :EFFECT (AND # # #26# # #)) #S(GROUND-ACTION :NAME TMSMT/PDDL::PICK-UP :ACTUAL-ARGUMENTS (#6# "front_table__2__-3") :PRECONDITION (AND # # . #25#) :EFFECT (AND # # #26# # #)) ...) :AXIOMS NIL :START (AND (TMSMT/PDDL::RUNNING) (TMSMT/PDDL::ONTABLE #2# "front_table__0__0") (TMSMT/PDDL::ONTABLE #4# "front_table__0__-2") (TMSMT/PDDL::ON #6# "block_a") (TMSMT/PDDL::HANDEMPTY) (TMSMT/PDDL::CLEAR #4#) (TMSMT/PDDL::CLEAR #6#) (TMSMT/PDDL::CLEAR "front_table__0__1") (TMSMT/PDDL::CLEAR "front_table__0__-1") (TMSMT/PDDL::CLEAR "front_table__0__2") (TMSMT/PDDL::CLEAR "front_table__0__3") ...) :GOAL (AND (NOT (TMSMT/PDDL::RUNNING)) (AND (TMSMT/PDDL::ON "block_a" "block_b") (TMSMT/PDDL::ON "block_b" "block_c") (TMSMT/PDDL::HANDEMPTY))) :ACTION-ENCODING :BOOLEAN) :STEP 6 :VALUES NIL) :MAX-STEPS 10)
21: ((LABELS NEXT :IN ITMP-REC))
22: (ITMP-REC #<SCENE-GRAPH ("block_a" "block_b" "block_c" "bookshelf" "button" "button_base" "collision_head_1" "collision_head_2" "collision_head_link_1-collision" "collision_head_link_2-collision" "curtain" "display-visual" ...)> #<SCENE-GRAPH ("block_a" "block_b" "bookshelf" "curtain" "end_effector_grasp" "front_table" "lab_front_table" "left_table" "right_table" "table_base")> (DEFINE (DOMAIN TMSMT/PDDL::BLOCKS) (:REQUIREMENTS :TYPING) (:TYPES BLOCK - TMSMT/PDDL::OBJECT TMSMT/PDDL::LOCATION - TMSMT/PDDL::OBJECT) (:PREDICATES (TMSMT/PDDL::ON TMSMT/PDDL::?X - BLOCK TMSMT/PDDL::?Y - BLOCK) (TMSMT/PDDL::ONTABLE TMSMT/PDDL::?X - BLOCK TMSMT/PDDL::?LOC - TMSMT/PDDL::LOCATION) (TMSMT/PDDL::CLEAR TMSMT/PDDL::?X) (TMSMT/PDDL::HANDEMPTY) (TMSMT/PDDL::RUNNING) (TMSMT/PDDL::HOLDING TMSMT/PDDL::?X - BLOCK)) (:ACTION TMSMT/PDDL::PICK-UP :PARAMETERS (TMSMT/PDDL::?X - BLOCK TMSMT/PDDL::?LOC - TMSMT/PDDL::LOCATION) :PRECONDITION (AND (TMSMT/PDDL::CLEAR TMSMT/PDDL::?X) (TMSMT/PDDL::ONTABLE TMSMT/PDDL::?X TMSMT/PDDL::?LOC) (TMSMT/PDDL::RUNNING) (TMSMT/PDDL::HANDEMPTY)) :EFFECT (AND (NOT (TMSMT/PDDL::ONTABLE TMSMT/PDDL::?X TMSMT/PDDL::?LOC)) (NOT (TMSMT/PDDL::CLEAR TMSMT/PDDL::?X)) (NOT (TMSMT/PDDL::HANDEMPTY)) (TMSMT/PDDL::HOLDING TMSMT/PDDL::?X) (TMSMT/PDDL::CLEAR TMSMT/PDDL::?LOC))) (:ACTION TMSMT/PDDL::PUT-DOWN :PARAMETERS (TMSMT/PDDL::?X - BLOCK TMSMT/PDDL::?LOC - TMSMT/PDDL::LOCATION) :PRECONDITION (AND (TMSMT/PDDL::HOLDING TMSMT/PDDL::?X) (TMSMT/PDDL::RUNNING) (TMSMT/PDDL::CLEAR TMSMT/PDDL::?LOC)) :EFFECT (AND (NOT (TMSMT/PDDL::HOLDING TMSMT/PDDL::?X)) (TMSMT/PDDL::HANDEMPTY) (TMSMT/PDDL::CLEAR TMSMT/PDDL::?X) (TMSMT/PDDL::ONTABLE TMSMT/PDDL::?X TMSMT/PDDL::?LOC) (NOT (TMSMT/PDDL::CLEAR TMSMT/PDDL::?LOC)))) (:ACTION TMSMT/PDDL::STACK :PARAMETERS (TMSMT/PDDL::?X - BLOCK TMSMT/PDDL::?Y - BLOCK) :PRECONDITION (AND (TMSMT/PDDL::HOLDING TMSMT/PDDL::?X) (TMSMT/PDDL::CLEAR TMSMT/PDDL::?Y) (TMSMT/PDDL::RUNNING)) :EFFECT (AND (NOT (TMSMT/PDDL::HOLDING TMSMT/PDDL::?X)) (TMSMT/PDDL::HANDEMPTY) (NOT (TMSMT/PDDL::CLEAR TMSMT/PDDL::?Y)) (TMSMT/PDDL::CLEAR TMSMT/PDDL::?X) (TMSMT/PDDL::ON TMSMT/PDDL::?X TMSMT/PDDL::?Y))) (:ACTION TMSMT/PDDL::UNSTACK :PARAMETERS (TMSMT/PDDL::?X - BLOCK TMSMT/PDDL::?Y - BLOCK) :PRECONDITION (AND (TMSMT/PDDL::ON TMSMT/PDDL::?X TMSMT/PDDL::?Y) (TMSMT/PDDL::CLEAR TMSMT/PDDL::?X) (TMSMT/PDDL::RUNNING) (TMSMT/PDDL::HANDEMPTY)) :EFFECT (AND (TMSMT/PDDL::HOLDING TMSMT/PDDL::?X) (NOT (TMSMT/PDDL::HANDEMPTY)) (NOT (TMSMT/PDDL::CLEAR TMSMT/PDDL::?X)) (TMSMT/PDDL::CLEAR TMSMT/PDDL::?Y) (NOT (TMSMT/PDDL::ON TMSMT/PDDL::?X TMSMT/PDDL::?Y)))) (:ACTION TMSMT/PDDL::PUSH-BUTTON :PARAMETERS NIL :PRECONDITION (AND (TMSMT/PDDL::HANDEMPTY) (TMSMT/PDDL::RUNNING)) :EFFECT (AND (NOT (TMSMT/PDDL::RUNNING))))) :TIMES-FILE NIL :FACTS (DEFINE (PROBLEM TMSMT/PDDL::ITMP) (:DOMAIN TMSMT/PDDL::BLOCKS) (:OBJECTS) (:INIT (TMSMT/PDDL::RUNNING)) (:GOAL (NOT (TMSMT/PDDL::RUNNING)))) :Q-ALL-START #<TREE-MAP (("head_pan" . 0.0d0) ("left_e0" . 0.0d0) ("left_e1" . 2.356194490192345d0) ("left_s0" . 2.04203514993196d0) ("left_s1" . -1.5707963267948966d0) ("left_w0" . 0.0d0) ("left_w1" . 0.7853981633974483d0) ("left_w2" . 0.0d0) ("right_e0" . 0.0d0) ("right_e1" . 0.7853981633974483d0) ("right_s0" . 0.1570796350201586d0) ("right_s1" . -0.7853981633974483d0) ...)> :ACTION-ENCODING :BOOLEAN :PREFIX-CACHE T :CONSTRAINTS :STATE :MAX-STEPS 10)
23: (TMP-DRIVER :TIMES-FILE NIL :START-SCENE ("package://baxter_description/urdf/baxter.urdf" "sussman-extend.robray" "allowed-collision.robray") :GOAL-SCENE ("sussman-1.robray") :PDDL ("tm-blocks-extend.pddl" "extended-facts.pddl") :GUI T :SCRIPTS ("tm-blocks-extend.py") :VERBOSE NIL :MAX-STEPS 10 :OUTPUT "baxter-sussman-extend.tmp" :WRITE-FACTS NIL :MOTION-TIMEOUT NIL :START-PLAN "q0.tmp" :START NIL :PREFIX-CACHE T :CONSTRAINTS :STATE)
24: ((FLET #:WITHOUT-INTERRUPTS-BODY-1156 :IN SB-THREAD::INITIAL-THREAD-FUNCTION-TRAMPOLINE))
25: ((FLET SB-THREAD::WITH-MUTEX-THUNK :IN SB-THREAD::INITIAL-THREAD-FUNCTION-TRAMPOLINE))
26: ((FLET #:WITHOUT-INTERRUPTS-BODY-359 :IN SB-THREAD::CALL-WITH-MUTEX))
27: (SB-THREAD::CALL-WITH-MUTEX #<CLOSURE (FLET SB-THREAD::WITH-MUTEX-THUNK :IN SB-THREAD::INITIAL-THREAD-FUNCTION-TRAMPOLINE) {7FFFE552ED5B}> #<SB-THREAD:MUTEX "thread result lock" owner: #<SB-THREAD:THREAD RUNNING {1006E4C383}>> NIL T NIL)
28: (SB-THREAD::INITIAL-THREAD-FUNCTION-TRAMPOLINE #<SB-THREAD:THREAD RUNNING {1006E4C383}> NIL #<CLOSURE (FLET HELPER :IN TMP-COMMAND) {1006E49FFB}> (#<SB-THREAD:THREAD RUNNING {1006E4C383}> #<SB-THREAD:THREAD "main thread" RUNNING {10099C8AF3}>) NIL NIL NIL NIL)
29: ("foreign function: call_into_lisp")
30: ("foreign function: new_thread_trampoline")

Is it possible to figure out what "descriptor 21" is relating to? (Best would be to have the file and the line that this relates to...)

Thank you.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.