Name | ros2-pkg-create JSON |
Version |
1.1.0
JSON |
| download |
home_page | None |
Summary | Powerful ROS 2 Package Generator |
upload_time | 2024-12-06 14:15:07 |
maintainer | None |
docs_url | None |
author | None |
requires_python | >=3.7 |
license | None |
keywords |
ros
ros2
|
VCS |
|
bugtrack_url |
|
requirements |
No requirements were recorded.
|
Travis-CI |
No Travis.
|
coveralls test coverage |
No coveralls.
|
# *ros2-pkg-create* – Powerful ROS 2 Package Generator
<p align="center">
<img src="https://img.shields.io/github/license/ika-rwth-aachen/ros2-pkg-create"/>
<a href="https://github.com/ika-rwth-aachen/ros2-pkg-create/actions/workflows/generate-and-test.yml"><img src="https://github.com/ika-rwth-aachen/ros2-pkg-create/actions/workflows/generate-and-test.yml/badge.svg"/></a>
<a href="https://pypi.org/project/ros2-pkg-create/"><img src="https://img.shields.io/pypi/v/ros2-pkg-create?label=PyPI"/></a>
<a href="https://pypi.org/project/ros2-pkg-create/"><img src="https://img.shields.io/pypi/dm/ros2-pkg-create?color=blue&label=PyPI%20downloads"/></a>
</p>
*ros2-pkg-create* is an interactive CLI tool for quickly generating ROS 2 packages from basic pub/sub nodes to complex lifecycle components. It is meant to replace the official [`ros2 pkg create`](https://docs.ros.org/en/jazzy/Tutorials/Beginner-Client-Libraries/Creating-Your-First-ROS2-Package.html#create-a-package) command.
- [Quick Demo](#quick-demo)
- [Installation](#installation)
- [Templates \& Features](#templates--features)
- [Usage](#usage)
- [Acknowledgements](#acknowledgements)
> [!IMPORTANT]
> This repository is open-sourced and maintained by the [**Institute for Automotive Engineering (ika) at RWTH Aachen University**](https://www.ika.rwth-aachen.de/).
> **ROS is the backbone** of many research topics within our [*Vehicle Intelligence & Automated Driving*](https://www.ika.rwth-aachen.de/en/competences/fields-of-research/vehicle-intelligence-automated-driving.html) domain.
> If you would like to learn more about how we can support your advanced driver assistance and automated driving efforts, feel free to reach out to us!
> :email: ***opensource@ika.rwth-aachen.de***
## Quick Demo
```bash
pip install ros2-pkg-create
ros2-pkg-create --template ros2_cpp_pkg .
```
<img src="https://github.com/ika-rwth-aachen/ros2-pkg-create/raw/main/assets/cli.png" width=600>
## Installation
```bash
pip install ros2-pkg-create
# (optional) bash auto-completion
activate-global-python-argcomplete
eval "$(register-python-argcomplete ros2-pkg-create)"
```
> [!WARNING]
> Outside of a virtual environment, *pip* may default to a user-site installation of executables to `~/.local/bin`, which may not be present in your shell's `PATH`. If running `ros2-pkg-create` errors with `ros2-pkg-create: command not found`, add the directory to your path. [*(More information)*](https://packaging.python.org/en/latest/tutorials/installing-packages/#installing-to-the-user-site)
> ```bash
> echo "export PATH=\$HOME/.local/bin:\$PATH" >> ~/.bashrc
> source ~/.bashrc
> ```
## Templates & Features
*ros2-pkg-create* provides multiple templates, each covering a different questionnaire for generating all the components you need. See below for the list of supported features and questionnarie options. Note that all options can also be passed directly to the command, bypassing the interactive questionnaire (see [Usage](#usage)).
- [C++ Package](#c-package---template-ros2_cpp_pkg)
- [Python Package](#python-package---template-ros2_python_pkg)
- [Interfaces Package](#interfaces-package---template-ros2_interfaces_pkg)
### C++ Package (`--template ros2_cpp_pkg`)
**Supported Features:** publisher, subscriber, parameter loading, launch file, service server, action server, timer callback, component, lifecycle node, docker-ros
<details>
<summary>Questionnaire</summary>
- Package name
- Description
- Maintainer | Maintainer email
- Author | Author email
- License
- Node name
- Class name of node
- Make it a component?
- Make it a lifecycle node?
- Add a launch file? | Type of launch file
- Add parameter loading?
- Add a subscriber?
- Add a publisher?
- Add a service server?
- Add an action server?
- Add a timer callback?
- Add the docker-ros CI integration?
</details>
### Python Package (`--template ros2_python_pkg`)
**Supported Features:** publisher, subscriber, parameter loading, launch file, service server, action server, timer callback, docker-ros
<details>
<summary>Questionnaire</summary>
- Package name
- Description
- Maintainer | Maintainer email
- Author | Author email
- License
- Node name
- Class name of node
- Add a launch file? | Type of launch file
- Add parameter loading?
- Add a subscriber?
- Add a publisher?
- Add a service server?
- Add an action server?
- Add a timer callback?
- Add the docker-ros CI integration?
</details>
### Interfaces Package (`--template ros2_interfaces_pkg`)
**Supported Features:** message, service, action
<details>
<summary>Questionnaire</summary>
- Package name
- Description
- Maintainer | Maintainer email
- Author | Author email
- License
- Interfaces types
- Message name
- Service name
- Action name
- Add the docker-ros CI integration?
</details>
## Usage
```
usage: ros2-pkg-create [-h] [--defaults] [--use-local-templates] --template {ros2_interfaces_pkg,ros2_python_pkg,ros2_cpp_pkg} [--package-name PACKAGE_NAME] [--description DESCRIPTION]
[--maintainer MAINTAINER] [--maintainer-email MAINTAINER_EMAIL] [--author AUTHOR] [--author-email AUTHOR_EMAIL]
[--license {Apache-2.0,BSL-1.0,BSD-2.0,BSD-2-Clause,BSD-3-Clause,GPL-3.0-only,LGPL-2.1-only,LGPL-3.0-only,MIT,MIT-0}] [--node-name NODE_NAME]
[--node-class-name NODE_CLASS_NAME] [--is-component] [--no-is-component] [--is-lifecycle] [--no-is-lifecycle] [--has-launch-file] [--no-has-launch-file]
[--launch-file-type {xml,py,yml}] [--has-params] [--no-has-params] [--has-subscriber] [--no-has-subscriber] [--has-publisher] [--no-has-publisher]
[--has-service-server] [--no-has-service-server] [--has-action-server] [--no-has-action-server] [--has-timer] [--no-has-timer] [--auto-shutdown]
[--no-auto-shutdown] [--interface-types {Message,Service,Action}] [--msg-name MSG_NAME] [--srv-name SRV_NAME] [--action-name ACTION_NAME] [--has-docker-ros]
[--version]
destination
Creates a ROS 2 package from templates
positional arguments:
destination Destination directory
options:
-h, --help show this help message and exit
--defaults Use defaults for all options
--use-local-templates
Use locally installed templates instead of remotely pulling most recent ones
--template {ros2_interfaces_pkg,ros2_python_pkg,ros2_cpp_pkg}
Template
--package-name PACKAGE_NAME
Package name
--description DESCRIPTION
Description
--maintainer MAINTAINER
Maintainer
--maintainer-email MAINTAINER_EMAIL
Maintainer email
--author AUTHOR Author
--author-email AUTHOR_EMAIL
Author email
--license {Apache-2.0,BSL-1.0,BSD-2.0,BSD-2-Clause,BSD-3-Clause,GPL-3.0-only,LGPL-2.1-only,LGPL-3.0-only,MIT,MIT-0}
License
--node-name NODE_NAME
Node name
--node-class-name NODE_CLASS_NAME
Class name of node
--is-component Make it a component?
--no-is-component
--is-lifecycle Make it a lifecycle node?
--no-is-lifecycle
--has-launch-file Add a launch file?
--no-has-launch-file
--launch-file-type {xml,py,yml}
Type of launch file
--has-params Add parameter loading
--no-has-params
--has-subscriber Add a subscriber?
--no-has-subscriber
--has-publisher Add a publisher?
--no-has-publisher
--has-service-server Add a service server?
--no-has-service-server
--has-action-server Add an action server?
--no-has-action-server
--has-timer Add a timer callback?
--no-has-timer
--auto-shutdown Automatically shutdown the node after launch (useful in CI/CD)?
--no-auto-shutdown
--interface-types {Message,Service,Action}
Interfaces types
--msg-name MSG_NAME Message name
--srv-name SRV_NAME Service name
--action-name ACTION_NAME
Action name
--has-docker-ros Add the docker-ros CI integration?
--version show program's version number and exit
```
## Acknowledgements
This work is accomplished within the projects [6GEM](https://6gem.de/en/) (FKZ 16KISK036K) and [autotech.agil](https://www.autotechagil.de/) (FKZ 01IS22088A). We acknowledge the financial support for the projects by the *Federal Ministry of Education and Research of Germany (BMBF)*.
Raw data
{
"_id": null,
"home_page": null,
"name": "ros2-pkg-create",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.7",
"maintainer_email": "Lennart Reiher <lennart.reiher@rwth-aachen.de>, Jean-Pierre Busch <jean-pierre.busch@rwth-aachen.de>",
"keywords": "ros, ros2",
"author": null,
"author_email": "Lennart Reiher <lennart.reiher@rwth-aachen.de>, Jean-Pierre Busch <jean-pierre.busch@rwth-aachen.de>",
"download_url": "https://files.pythonhosted.org/packages/51/72/5dc288dea99f853046f1e94b531d5faca0abcabe40cd2c28d03005378cd5/ros2_pkg_create-1.1.0.tar.gz",
"platform": null,
"description": "# *ros2-pkg-create* \u2013 Powerful ROS 2 Package Generator\n\n<p align=\"center\">\n <img src=\"https://img.shields.io/github/license/ika-rwth-aachen/ros2-pkg-create\"/>\n <a href=\"https://github.com/ika-rwth-aachen/ros2-pkg-create/actions/workflows/generate-and-test.yml\"><img src=\"https://github.com/ika-rwth-aachen/ros2-pkg-create/actions/workflows/generate-and-test.yml/badge.svg\"/></a>\n <a href=\"https://pypi.org/project/ros2-pkg-create/\"><img src=\"https://img.shields.io/pypi/v/ros2-pkg-create?label=PyPI\"/></a>\n <a href=\"https://pypi.org/project/ros2-pkg-create/\"><img src=\"https://img.shields.io/pypi/dm/ros2-pkg-create?color=blue&label=PyPI%20downloads\"/></a>\n</p>\n\n*ros2-pkg-create* is an interactive CLI tool for quickly generating ROS 2 packages from basic pub/sub nodes to complex lifecycle components. It is meant to replace the official [`ros2 pkg create`](https://docs.ros.org/en/jazzy/Tutorials/Beginner-Client-Libraries/Creating-Your-First-ROS2-Package.html#create-a-package) command.\n\n- [Quick Demo](#quick-demo)\n- [Installation](#installation)\n- [Templates \\& Features](#templates--features)\n- [Usage](#usage)\n- [Acknowledgements](#acknowledgements)\n\n> [!IMPORTANT] \n> This repository is open-sourced and maintained by the [**Institute for Automotive Engineering (ika) at RWTH Aachen University**](https://www.ika.rwth-aachen.de/). \n> **ROS is the backbone** of many research topics within our [*Vehicle Intelligence & Automated Driving*](https://www.ika.rwth-aachen.de/en/competences/fields-of-research/vehicle-intelligence-automated-driving.html) domain. \n> If you would like to learn more about how we can support your advanced driver assistance and automated driving efforts, feel free to reach out to us! \n> :email: ***opensource@ika.rwth-aachen.de***\n\n\n## Quick Demo\n\n```bash\npip install ros2-pkg-create\nros2-pkg-create --template ros2_cpp_pkg .\n```\n\n<img src=\"https://github.com/ika-rwth-aachen/ros2-pkg-create/raw/main/assets/cli.png\" width=600>\n\n\n## Installation\n\n```bash\npip install ros2-pkg-create\n\n# (optional) bash auto-completion\nactivate-global-python-argcomplete\neval \"$(register-python-argcomplete ros2-pkg-create)\"\n```\n\n> [!WARNING] \n> Outside of a virtual environment, *pip* may default to a user-site installation of executables to `~/.local/bin`, which may not be present in your shell's `PATH`. If running `ros2-pkg-create` errors with `ros2-pkg-create: command not found`, add the directory to your path. [*(More information)*](https://packaging.python.org/en/latest/tutorials/installing-packages/#installing-to-the-user-site)\n> ```bash\n> echo \"export PATH=\\$HOME/.local/bin:\\$PATH\" >> ~/.bashrc\n> source ~/.bashrc\n> ```\n\n\n## Templates & Features\n\n*ros2-pkg-create* provides multiple templates, each covering a different questionnaire for generating all the components you need. See below for the list of supported features and questionnarie options. Note that all options can also be passed directly to the command, bypassing the interactive questionnaire (see [Usage](#usage)).\n\n- [C++ Package](#c-package---template-ros2_cpp_pkg)\n- [Python Package](#python-package---template-ros2_python_pkg)\n- [Interfaces Package](#interfaces-package---template-ros2_interfaces_pkg)\n\n### C++ Package (`--template ros2_cpp_pkg`)\n\n**Supported Features:** publisher, subscriber, parameter loading, launch file, service server, action server, timer callback, component, lifecycle node, docker-ros\n\n<details>\n<summary>Questionnaire</summary>\n\n- Package name\n- Description\n- Maintainer | Maintainer email\n- Author | Author email\n- License\n- Node name\n- Class name of node\n- Make it a component?\n- Make it a lifecycle node?\n- Add a launch file? | Type of launch file\n- Add parameter loading?\n- Add a subscriber?\n- Add a publisher?\n- Add a service server?\n- Add an action server?\n- Add a timer callback?\n- Add the docker-ros CI integration?\n</details>\n\n### Python Package (`--template ros2_python_pkg`)\n\n**Supported Features:** publisher, subscriber, parameter loading, launch file, service server, action server, timer callback, docker-ros\n\n<details>\n<summary>Questionnaire</summary>\n\n- Package name\n- Description\n- Maintainer | Maintainer email\n- Author | Author email\n- License\n- Node name\n- Class name of node\n- Add a launch file? | Type of launch file\n- Add parameter loading?\n- Add a subscriber?\n- Add a publisher?\n- Add a service server?\n- Add an action server?\n- Add a timer callback?\n- Add the docker-ros CI integration?\n</details>\n\n### Interfaces Package (`--template ros2_interfaces_pkg`)\n\n**Supported Features:** message, service, action\n\n<details>\n<summary>Questionnaire</summary>\n\n- Package name\n- Description\n- Maintainer | Maintainer email\n- Author | Author email\n- License\n- Interfaces types\n- Message name\n- Service name\n- Action name\n- Add the docker-ros CI integration?\n</details>\n\n\n## Usage\n\n```\nusage: ros2-pkg-create [-h] [--defaults] [--use-local-templates] --template {ros2_interfaces_pkg,ros2_python_pkg,ros2_cpp_pkg} [--package-name PACKAGE_NAME] [--description DESCRIPTION]\n [--maintainer MAINTAINER] [--maintainer-email MAINTAINER_EMAIL] [--author AUTHOR] [--author-email AUTHOR_EMAIL]\n [--license {Apache-2.0,BSL-1.0,BSD-2.0,BSD-2-Clause,BSD-3-Clause,GPL-3.0-only,LGPL-2.1-only,LGPL-3.0-only,MIT,MIT-0}] [--node-name NODE_NAME]\n [--node-class-name NODE_CLASS_NAME] [--is-component] [--no-is-component] [--is-lifecycle] [--no-is-lifecycle] [--has-launch-file] [--no-has-launch-file]\n [--launch-file-type {xml,py,yml}] [--has-params] [--no-has-params] [--has-subscriber] [--no-has-subscriber] [--has-publisher] [--no-has-publisher]\n [--has-service-server] [--no-has-service-server] [--has-action-server] [--no-has-action-server] [--has-timer] [--no-has-timer] [--auto-shutdown]\n [--no-auto-shutdown] [--interface-types {Message,Service,Action}] [--msg-name MSG_NAME] [--srv-name SRV_NAME] [--action-name ACTION_NAME] [--has-docker-ros]\n [--version]\n destination\n\nCreates a ROS 2 package from templates\n\npositional arguments:\n destination Destination directory\n\noptions:\n -h, --help show this help message and exit\n --defaults Use defaults for all options\n --use-local-templates\n Use locally installed templates instead of remotely pulling most recent ones\n --template {ros2_interfaces_pkg,ros2_python_pkg,ros2_cpp_pkg}\n Template\n --package-name PACKAGE_NAME\n Package name\n --description DESCRIPTION\n Description\n --maintainer MAINTAINER\n Maintainer\n --maintainer-email MAINTAINER_EMAIL\n Maintainer email\n --author AUTHOR Author\n --author-email AUTHOR_EMAIL\n Author email\n --license {Apache-2.0,BSL-1.0,BSD-2.0,BSD-2-Clause,BSD-3-Clause,GPL-3.0-only,LGPL-2.1-only,LGPL-3.0-only,MIT,MIT-0}\n License\n --node-name NODE_NAME\n Node name\n --node-class-name NODE_CLASS_NAME\n Class name of node\n --is-component Make it a component?\n --no-is-component\n --is-lifecycle Make it a lifecycle node?\n --no-is-lifecycle\n --has-launch-file Add a launch file?\n --no-has-launch-file\n --launch-file-type {xml,py,yml}\n Type of launch file\n --has-params Add parameter loading\n --no-has-params\n --has-subscriber Add a subscriber?\n --no-has-subscriber\n --has-publisher Add a publisher?\n --no-has-publisher\n --has-service-server Add a service server?\n --no-has-service-server\n --has-action-server Add an action server?\n --no-has-action-server\n --has-timer Add a timer callback?\n --no-has-timer\n --auto-shutdown Automatically shutdown the node after launch (useful in CI/CD)?\n --no-auto-shutdown\n --interface-types {Message,Service,Action}\n Interfaces types\n --msg-name MSG_NAME Message name\n --srv-name SRV_NAME Service name\n --action-name ACTION_NAME\n Action name\n --has-docker-ros Add the docker-ros CI integration?\n --version show program's version number and exit\n```\n\n## Acknowledgements\n\nThis work is accomplished within the projects [6GEM](https://6gem.de/en/) (FKZ 16KISK036K) and [autotech.agil](https://www.autotechagil.de/) (FKZ 01IS22088A). We acknowledge the financial support for the projects by the *Federal Ministry of Education and Research of Germany (BMBF)*.\n",
"bugtrack_url": null,
"license": null,
"summary": "Powerful ROS 2 Package Generator",
"version": "1.1.0",
"project_urls": {
"Bug Tracker": "https://github.com/ika-rwth-aachen/ros2-pkg-create/issues",
"Repository": "https://github.com/ika-rwth-aachen/ros2-pkg-create"
},
"split_keywords": [
"ros",
" ros2"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "753dc94e7bee80bb5af85f0fbb23f553c3586b6e2addd88b52400b9acb2046ad",
"md5": "59ee6f6f9c831b637fb4f89ae23b3ada",
"sha256": "e8a8bd121633294e98cf96ffaeb874f17248e85fb9c95185b1c5ef09ea7209ab"
},
"downloads": -1,
"filename": "ros2_pkg_create-1.1.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "59ee6f6f9c831b637fb4f89ae23b3ada",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.7",
"size": 34867,
"upload_time": "2024-12-06T14:15:06",
"upload_time_iso_8601": "2024-12-06T14:15:06.488421Z",
"url": "https://files.pythonhosted.org/packages/75/3d/c94e7bee80bb5af85f0fbb23f553c3586b6e2addd88b52400b9acb2046ad/ros2_pkg_create-1.1.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "51725dc288dea99f853046f1e94b531d5faca0abcabe40cd2c28d03005378cd5",
"md5": "1df7e08eb23daa97f918f518cc56bf56",
"sha256": "0226243edbf2bebe581894a6891e6cfc57db870cb246f7ab10a1f0a4c566f75d"
},
"downloads": -1,
"filename": "ros2_pkg_create-1.1.0.tar.gz",
"has_sig": false,
"md5_digest": "1df7e08eb23daa97f918f518cc56bf56",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.7",
"size": 23966,
"upload_time": "2024-12-06T14:15:07",
"upload_time_iso_8601": "2024-12-06T14:15:07.488428Z",
"url": "https://files.pythonhosted.org/packages/51/72/5dc288dea99f853046f1e94b531d5faca0abcabe40cd2c28d03005378cd5/ros2_pkg_create-1.1.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-12-06 14:15:07",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "ika-rwth-aachen",
"github_project": "ros2-pkg-create",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "ros2-pkg-create"
}