You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
"project_description": "An opinionated ROS2 framework that minimizes boilerplate while maximizing reliability. Features intuitive APIs for parameter management, action handling, and error-resilient RPC. Designed by Urban Machine for safe and scalable robotics.",
12
-
"version": "1.0.0",
12
+
"version": "0.5.0",
13
13
"license": "MIT",
14
14
"example_package_name": "node_helpers",
15
15
"example_package_description": "An opinionated ROS2 framework that minimizes boilerplate while maximizing reliability. Features intuitive APIs for parameter management, action handling, and error-resilient RPC. Designed by Urban Machine for safe and scalable robotics.",
Copy file name to clipboardExpand all lines: README.md
+14-3Lines changed: 14 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -15,21 +15,32 @@ An opinionated ROS2 framework that minimizes boilerplate while maximizing reliab
15
15
## Running This Project
16
16
17
17
For in-depth documentation on the repository features, read the [About Template](docs/about_template.md) documentation.
18
+
This project is a collection of ROS utilities that play nicely together. It's
19
+
recommended to start by reading the highlights in ``docs/``. For smaller utilities, they
20
+
will be documented in READMEs in their respective modules.
18
21
19
-
### Dependencies
22
+
For example, ``node_helpers.timing`` has a README describing the API's in that module.
23
+
However ``node_helpers.parameters`` has a page under ``docs/`` that describes the
24
+
philosophy and usage of the module in depth.
20
25
21
-
This project depends on [Docker](https://docs.docker.com/get-docker/), and can be accelerated using [Nvidia Container Toolkit](https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/latest/install-guide.html). Install both before proceeding.
26
+
### Dependencies
22
27
23
-
The linting tooling requires [Poetry](https://python-poetry.org/docs/) to run.
28
+
This project depends on [Docker](https://docs.docker.com/get-docker/). The linting tooling requires [Poetry](https://python-poetry.org/docs/) to run.
24
29
25
30
### Running the Project
26
31
32
+
This project is intended to be used as a library, however there is a showcase
33
+
launch-profile that demonstrates some of the library's features.
34
+
27
35
To run the project, use the following command:
28
36
29
37
```shell
30
38
docker/launch node_helpers_showcase
31
39
```
32
40
41
+
Take a look at the nodes under `pkgs/node_helpers/nodes`, and the launch file under
42
+
`launch-profiles` to get an idea of some of the libraries features.
43
+
33
44
Then, open http://localhost/ on your browser to view the project logs.
Copy file name to clipboardExpand all lines: docs/about_template.md
+10-4Lines changed: 10 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,7 +1,7 @@
1
1
# Using `create-ros-app`
2
2
3
3
This repository was initialized by the [create-ros-app](https://github.com/UrbanMachine/create-ros-app) template.
4
-
This template is a everything-but-the-robot-code starter for ROS projects. It includes a Dockerfile for building ROS packages, a GitHub Actions workflow for linting and autoformatting, and a few other goodies.
4
+
This template is a everything-but-the-robot-code starter for ROS projects. It includes a Dockerfile for building ROS packages, a GitHub Actions workflow for linting and autoformatting, and many other goodies.
5
5
6
6
This documentation walks through the features of the template, and how to use them.
7
7
@@ -56,15 +56,15 @@ Here's a quick guide on the features of this template
56
56
57
57
The packages directory contains all the packages that are used in the project. Each package is added in the `Dockerfile`, and any new packages should be added there as well.
58
58
59
-
#### Package structure
60
-
Each package is made up of:
59
+
#### Python Package structure
60
+
Each python package is made up of:
61
61
- A `resource` directory, which is a colcon requirement
62
62
- A `package.xml` file, which is a colcon requirement
63
63
- A `pyproject.toml`, because this project uses [colcon-poetry-ros](https://github.com/UrbanMachine/colcon-poetry-ros) to install project dependencies. Most ROS python packages use `setup.py`, but by using this plugin, we can use a modern python tool called [Poetry](https://python-poetry.org/) to manage dependencies.
64
64
- A directory for code
65
65
- A directory for tests
66
66
67
-
#### Test directories
67
+
#####Test directories
68
68
69
69
As (arbitrary) best practice, the example node uses a test directory that follows the following structure
70
70
@@ -84,6 +84,12 @@ package_name/
84
84
85
85
Essentially, tests exist in a parallel directory to the package, and are split into `unit` and `integration` tests. The directories within `unit` and `integration` mirror the structure of the package itself, except that module names are prefixed with `test_`.
86
86
87
+
#### Message Package Structure
88
+
89
+
The template will generate a message package for you with an `ExampleAction`, `ExampleService`, and `ExampleMessage`. You can add more messages by adding them to the `msg` directory and updating the `CMakeLists.txt` and `package.xml` files.
90
+
91
+
This can be used as a place for you to store your messages used just for this project. It follows standard ROS2 message package structure.
92
+
87
93
### `.github/`
88
94
89
95
This project uses poetry for linting, and has some code for running linting and autoformatting under `.github/lint`.
0 commit comments