TinyROS: A lightweigth ROS implementation for GPU-first robots.
Project description
TinyROS
A minimal Robotic Operating System for GPU-first robots.
Features:
- .... I will finish this README soon
Installation
pip install tinyros
Example
Soon. You can check out the tests for now, in particular test_architect.py
Why TinyROS?
You know it :D
Questions
Please open a separate GitHub issue for each question or requested feature.
Citation
If you use TinyROS in your research (you should, drop ROS/ROS2!!!), please hand out a citation:
@software{terpin2025tinyros,
author = {Terpin, Antonio},
title = {{TinyROS}: A Lightweight Robot Operating System for GPU-first robots},
year = {2025},
version = {1.0.0},
url = {https://github.com/atrepin/tinyros},
}
Contributing
The Coding style validation action will fail if the pre-commit checks do not pass. To make sure that these are checked automatically on push, run:
pre-commit install --hook-type pre-push --install-hooks
To run the pre-commit checks on specific files:
pre-commit run --files <files>
To run on all files:
pre-commit run --all-files
If for some reason you really want to ignore them during commit/push, add --no-verify.
To ease writing commit messages that conform to the standard, you can configure the template with:
git config commit.template .gitmessage
To fill in the template, run
git commit
When you have edited the commit, press Esc and then type :wq to save. In Visual Studio Code, you should setup the editor with
git config core.editor "code --wait"
You may need to setup the code command.
The Commit style validation action will fail if you do not adhere to the recommended style.
Tip: When something fails, fix the issue and use:
git commit --amend
git push --force
Development workflow
We follow a Git feature branch workflow with test-driven-development. In particular:
-
The basic workflow is as follows:
- Open an issue for the feature to implement, and describe in detail the goal of the feature. Describe the tests that should pass for the feature to be considered implemented.
- Open a branch from
devfor the feature:
git checkout dev git checkout -b feature-<issue-number>
- Add the tests; see Testing.
- Implement the feature and make sure the tests pass.
- Open a PR to the
devbranch. Note that the PR requires tosquashthe commit. See Preparing for a PR. - Close the branch.
-
mainanddevbranches are protected from push, and require a PR. -
We run github actions to check the test status on push on any branch. The rationale is that we want to know the state of each feature without polling the developer.
-
We open a PR to
mainonly for milestones.
Testing a feature
We will use pytest to thoroughly test all our code. To run all tests:
pytest -v
Before pushing a feature, implement also the related test. The goal is to make sure that if something does not behave as expected (possibly as a result of another change) the tests capture it.
Preparing for a PR
Before opening a PR to dev, you need to squash your commits into a single one. First, review your commit history to identify how many commits need to be squashed:
git log --oneline
For example, you may get
abc123 Feature added A
def456 Fix for bug in feature A
ghi789 Update documentation for feature A
Suppose you want to squash the three above into a single commit, Implement feature <issue-number>. You can rebase interactively to squash the commits:
git rebase -i HEAD~<number-of-commits>
For example, if you want to squash the last 3 commits:
git rebase -i HEAD~3
An editor will open, showing a list of commits:
pick abc123 Feature added A
pick def456 Fix for bug in feature A
pick ghi789 Update documentation for feature A
- Keep the first commit as
pick. - Change
picktosquash(ors) for the subsequent commits:
pick abc123 Feature added A
squash def456 Fix for bug in feature A
squash ghi789 Update documentation for feature A
Save and close the editor. Git will prompt you to edit the combined commit message. You’ll see:
# This is a combination of 3 commits.
# The first commit's message is:
Feature added A
# The following commit messages will also be included:
Fix for bug in feature A
Update documentation for feature A
Edit it into a single meaningful message, like:
Add feature A with bug fixes and documentation updates
Save and close the editor; Git will squash the commits. If there are conflicts during the rebase, resolve them and continue:
git rebase --continue
Verify the commit history:
git log --oneline
You should see one clean commit instead of multiple. If you’ve already pushed the branch to a remote repository, you need to force-push after squashing:
git push --force
Now that the feature branch has a clean history, create the PR from your feature branch to the main branch. The reviewers will see a single, concise commit summarizing your changes. See the guidelines for commit messages.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file tinyros-0.1.0.tar.gz.
File metadata
- Download URL: tinyros-0.1.0.tar.gz
- Upload date:
- Size: 13.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cd1e581bdbb240992b2a172575e1d34fa487f2168d9c7aa8fa4d240b00cbacb1
|
|
| MD5 |
86c2bfad5447ae323bf820f7720a6469
|
|
| BLAKE2b-256 |
c0f460888b5641d02564df9e0a1ebd23765b51b7d79707a229c88b04a77147d9
|
File details
Details for the file tinyros-0.1.0-py3-none-any.whl.
File metadata
- Download URL: tinyros-0.1.0-py3-none-any.whl
- Upload date:
- Size: 4.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4d245cc4b401a813e0d56664b8bc8641bfb68d6513e38ac4b07cd9f5dbc4d5e3
|
|
| MD5 |
51315d3da8e52b7d4026a809925dc806
|
|
| BLAKE2b-256 |
0d752cd6456e1487fdf83d75af52d23220a3b0cb9cd29e3c85a25321fcb7b642
|