Robotics Software Tips and Tricks: Difference between revisions
(Created page with "Initial text") |
(Info on multiple repository management) |
||
Line 1: | Line 1: | ||
== Intro == | |||
This page lists various software tips, tricks and tools that can come in handy during robot development. Feel free to add your tips and tricks to this list! | |||
== Multiple Repository Management == | |||
Robots often use multiple repositories at the same time. Managing all these repositories by hand or with custom scripts can be tricky. Fortunately, various tools can be utilized. | |||
=== VSCTool/wstool === | |||
[https://github.com/dirk-thomas/vcstool VCStool] can read .rosinstall files and clone all the repositories in those files. An example with the older [https://github.com/vcstools/wstool wstool] can be found in the https://gitlab.tue.nl/robotics/robots/cura<nowiki/>in the develop branch. See the Docker file where wstool is invoked to clone multiple repositories as specified in the .rosinstall file | |||
=== TUE-env === | |||
[https://github.com/tue-robotics/tue-env TUE-env] was created by the Robocup @Home student team. It consists of a number of bash scripts which install so-called [https://github.com/tue-robotics/tue-env-targets targets] which specify what to install in a .yaml file. See for example the [https://github.com/tue-robotics/tue-env-targets/blob/master/amigo1/install.yaml .yaml file of Amigo]. If you adopt tue-env, you must probably create your own targets, as those of the Robocup team are probably not useful to you. | |||
=== Git Submodule === | |||
[https://git-scm.com/book/en/v2/Git-Tools-Submodules Git submodules] are one way git allows having a repository in another repository. You could, for example, have one 'robot' meta-repository, which has several sub-repositories integrated as git submodulus. Git Submodulus allow you to fetch and update upstream changes of the submodulus. | |||
=== Git Subtree === | |||
[https://www.atlassian.com/git/tutorials/git-subtree Git Subtrees] can be used to 'copy' one commit of an existing repository to your repository. | |||
=== Subtree vs Submodule === | |||
For an interesting discussion on subtrees or submodulus, see https://stackoverflow.com/questions/31769820/differences-between-git-submodule-and-subtree. Because development in robot software usually takes place in multiple repositories, keeping a link which can be updated easily to the original repository using submodules seems useful. |
Revision as of 13:22, 7 October 2024
Intro
This page lists various software tips, tricks and tools that can come in handy during robot development. Feel free to add your tips and tricks to this list!
Multiple Repository Management
Robots often use multiple repositories at the same time. Managing all these repositories by hand or with custom scripts can be tricky. Fortunately, various tools can be utilized.
VSCTool/wstool
VCStool can read .rosinstall files and clone all the repositories in those files. An example with the older wstool can be found in the https://gitlab.tue.nl/robotics/robots/curain the develop branch. See the Docker file where wstool is invoked to clone multiple repositories as specified in the .rosinstall file
TUE-env
TUE-env was created by the Robocup @Home student team. It consists of a number of bash scripts which install so-called targets which specify what to install in a .yaml file. See for example the .yaml file of Amigo. If you adopt tue-env, you must probably create your own targets, as those of the Robocup team are probably not useful to you.
Git Submodule
Git submodules are one way git allows having a repository in another repository. You could, for example, have one 'robot' meta-repository, which has several sub-repositories integrated as git submodulus. Git Submodulus allow you to fetch and update upstream changes of the submodulus.
Git Subtree
Git Subtrees can be used to 'copy' one commit of an existing repository to your repository.
Subtree vs Submodule
For an interesting discussion on subtrees or submodulus, see https://stackoverflow.com/questions/31769820/differences-between-git-submodule-and-subtree. Because development in robot software usually takes place in multiple repositories, keeping a link which can be updated easily to the original repository using submodules seems useful.