Differences
This shows you the differences between two versions of the page.
Next revision | Previous revisionLast revisionBoth sides next revision | ||
doc:beginner:package_for_turtlesim [2014/03/12 14:23] – created hmess | doc:beginner:package_for_turtlesim [2015/04/28 15:36] – [Exporting the ASDF system to ROS] gkazhoya | ||
---|---|---|---|
Line 1: | Line 1: | ||
====== Creating a CRAM package ====== | ====== Creating a CRAM package ====== | ||
- | **Description: | + | **Description: |
- | **Next Tutorial:** [[doc: | + | **Next Tutorial:** [[doc: |
===== Creating a ROS package ===== | ===== Creating a ROS package ===== | ||
Line 33: | Line 33: | ||
:components | :components | ||
((:file " | ((:file " | ||
- | | + | |
</ | </ | ||
Line 39: | Line 39: | ||
The first line defines the name of the system. Then we specify the dependencies of the system, i.e. other systems that need to be loaded before we load our system. | The first line defines the name of the system. Then we specify the dependencies of the system, i.e. other systems that need to be loaded before we load our system. | ||
- | Finally, we define the components of the system. A component is a sort of sub-system and might be either a module (i.e. a sub-directory) or a file. ASDF knows some more component types but they are not relevant for us most of the time. We define that the system knows a sub-directory '' | + | Finally, we define the components of the system. A component is a sort of sub-system and might be either a module (i.e. a sub-directory) or a file. ASDF knows some more component types but they are not relevant for us most of the time. We define that the system knows a sub-directory '' |
==== Creating the Lisp Package ==== | ==== Creating the Lisp Package ==== | ||
- | Lisp packages are the equivalent to C++ namespaces or to Python modules. Lisp packages cannot be hierarchic. We can define which other packages should be used, i.e. which symbols should be accessible without a package prefix. Further, we can define which symbols should be exported from the package. | + | Lisp packages are the equivalent to C++ namespaces or Python modules. Lisp packages cannot be hierarchical. Through Lisp packages we can define which other packages should be used, i.e. which symbols should be accessible without a package prefix. Further, we can define which symbols should be exported from the package. |
Create a sub-directory '' | Create a sub-directory '' | ||
Line 53: | Line 53: | ||
</ | </ | ||
| | ||
- | We define a package with the name '' | + | We define a package with the name '' |
- | <!--Please note that most Common Lisp packages actually use the package | + | |
- | |||
- | We have to deside how much lisp content we want to have in here. | ||
- | --> | ||
==== Exporting the ASDF system to ROS ==== | ==== Exporting the ASDF system to ROS ==== | ||
- | To actually load the ASDF system, all files referenced in the system definition must be present and we are missing the file '' | + | To actually load the ASDF system, all files referenced in the system definition must be present and we are missing the file '' |
<code lisp> | <code lisp> | ||
Line 67: | Line 63: | ||
</ | </ | ||
- | This just selects the namespace of the file by the nickname '': | + | This just selects the namespace of the file by the nickname '': |
- | Now we are ready to compile and load our new system. Launch the Lisp REPL. If it is already running, reload it by executing: | + | Now we are ready to compile and load our new system. Launch the Lisp REPL ('' |
- | + | Then load your newly created system by typing: | |
- | <code lisp> | + | |
- | , | + | |
- | restart-inferior-lisp | + | |
- | </ | + | |
- | + | ||
- | in the REPL. Then load your newly created system by typing: | + | |
<code lisp> | <code lisp> | ||
Line 82: | Line 72: | ||
</ | </ | ||
- | <!--You need to load the system every time before you use it, so experts would build their own shortcuts to this command or use the rosemacs function unstead: | + | This loads the '' |
+ | Test it by evaluating | ||
<code lisp> | <code lisp> | ||
- | , | + | (in-package :tut) |
- | ros-load-system | + | |
- | cram_beginner_tutorial | + | |
- | cram-beginner-tutorial | + | |
</ | </ | ||
- | The first parameter to '' | + | == Next == |
- | Now the package '' | + | |
- | <code lisp> | ||
- | (in-package :tut) | ||
- | </ | ||
Now that we have created our first CRAM package, let's try controlling the ROS turtlesim from it... | Now that we have created our first CRAM package, let's try controlling the ROS turtlesim from it... | ||
- | [[doc: | + | [[doc: |