awesome-robotic-tooling
Robotic resources and tools for professional robotic development with ROS in C++ and Python.
https://github.com/eric-erki/awesome-robotic-tooling
Last synced: 1 day ago
JSON representation
-
Architecture and Design
- Unix philosophy - Set of cultural norms for developing software
- yed - yEd is a powerful desktop application that can be used to quickly and effectively generate high-quality diagrams
- rqt_graph - rqt_graph provides a GUI plugin for visualizing the ROS computation graph
- robmosys - RobMoSys envisions an integrated approach built on top of the current code-centric robotic platforms, by applying model-driven methods and tools
- yed_py - Generates graphML that can be opened in yEd
- Plantuml - Web application to generate UML diagrams on-the-fly in your live documentation
- rqt_launchtree - An RQT plugin for hierarchical launchfile configuration introspection.
- cpp-dependencies - Tool to check C++ #include dependencies (dependency graphs created in .dot format)
- pydeps - Python Module Dependency graphs
- aztarna - a footprinting tool for robots.
- fossology - a toolkit you can run license, copyright and export control scans from the command line
- Papyrus for Robotics - is graphical editing tool for robotic applications that complies with the RobMoSys approach
- capella - Comprehensive, extensible and field-proven MBSE tool and method
-
Awesome
-
Safety
- awesome-ros2 - A curated list of awesome Robot Operating System Version 2.0 (ROS 2) resources and libraries.
- awesome-safety-critical - List of resources about programming practices for writing safety-critical software.
- awesome-embedded-linux - A curated list of awesome Embedded Linux resources
-
-
Behavior and Decision
-
SLAM
- Groot - Graphical Editor to create BehaviorTrees. Compliant with BehaviorTree.CPP
- BehaviorTree.CPP - Behavior Trees Library in C++
- ROS-Behavior-Tree - Behavior Trees Library for ROS
- RAFCON - Uses hierarchical state machines, featuring concurrent state execution, to represent robot programs
- ROSPlan - Generic framework for task planning in a ROS system
-
-
Coordination and Communication
- Agile Development - Manifesto for Agile Software Development
- Woost - Workflow Automation, Collaboration with Externals
- gitlab-triage - GitLab's issues and merge requests triage, automated!
- Gitflow - Makes parallel development very easy, by isolating new development from finished work
- DeepL - DeepL, an online translator that outperforms Google, Microsoft and Facebook
- Taiga - Agile Projectmanagment Tool
- Kanboard - Minimalistic Kanban Board
- Gitlab - Simple Selfhosted Gitlab Server with Docker
- Gogs - Aims to build a simple, stable and extensible self-hosted Git service that can be setup in the most painless way
- Wekan - Meteor based Kanban Board
- JIRA API - Python Library for REST API of Jira
- Taiga API - Python Library for REST API of Taiga
- Chronos-Timetracker - Desktop client for JIRA. Track time, upload worklogs without a hassle
- Grge - Grge is a daemon and command line utility augmenting GitLab
- Helpy - is a modern, open source helpdesk customer support application
- ONLYOFFICE - is a free open source collaborative system developed to manage documents, projects, customer relationship and email correspondence, all in one place.
- Ganttlab - The easy to use, fully functional Gantt chart for GitLab and GitHub.
- discourse - A platform for community discussion. Free, open, simple
-
Development Environment
-
Build and Deploy
- ryo-iso - is a modern ISO builder that streamlines the process of deploying a complete robot operating system from a yaml config file
- bloom - A release automation tool which makes releasing catkin packages easier
- superflore - An extended platform release manager for Robot Operating System
- catkin_tools - Command line tools for working with catkin
- industrial_ci - Easy continuous integration repository for ROS repositories
- ros_gitlab_ci - contains helper scripts and instructions on how to use Continuous Integration (CI) for ROS projects hosted on a GitLab instance.
- gitlab-runner - runs tests and sends the results to GitLab
- colcon-core - command line tool to improve the workflow of building, testing and using multiple software packages
- gitlab-release - Simple python3 script to upload files (from ci) to the current projects release (tag)
- clang - This is a compiler front-end for the C family of languages
- catkin_virtualenv - Bundle python requirements in a catkin package via virtualenv
- aptly - Debian repository management tool
- cross_compile - Assets used for ROS2 cross-compilation
- docker_images - Official Docker images maintained by OSRF on ROS(2) and Gazebo
- robot_upstart - presents a suite of scripts to assist with launching background ROS processes on Ubuntu Linux PCs
- robot_systemd - units for managing startup and shutdown of roscore and roslaunch
- network_autoconfig - automatic configuration of ROS networking for most use cases without impacting usage that require manual configuration.
- robot_systemd - units for managing startup and shutdown of roscore and roslaunch
- network_autoconfig - automatic configuration of ROS networking for most use cases without impacting usage that require manual configuration.
-
Code and Run
- Sublime - A sophisticated text editor for code, markup and prose
- ROS IDEs - This page collects experience and advice on using integrated development environments (IDEs) with ROS.
- Vim-ros - Vim plugin for ROS development
- Visual Studio Code - Code editor for edit-build-debug cycle.
- atom - Hackable text editor for the 21st century
- Teletype - Share your workspace with team members and collaborate on code in real time in Atom
- ade-cli - The ADE Development Environment (ADE) uses docker and Gitlab to manage environments of per project development tools and optional volume images
- recipe-wizard - A Dockerfile generator for running OpenGL (GLX) applications with nvidia-docker2, CUDA, ROS, and Gazebo on a remote headless server system
- Jupyter ROS - Jupyter widget helpers for ROS, the Robot Operating System
- ros_rqt_plugin - The ROS Qt Creator Plug-in for Python
- jedi - Autocompletion and static analysis library for python
- roslibpy - Python ROS Bridge library allows to use Python and IronPython to interact with ROS, the open-source robotic middleware.
- pybind11 - Seamless operability between C++11 and Python
- Sourcetrail - free and open-source cross-platform source explorer
- rebound - Command-line tool that instantly fetches Stack Overflow results when an exception is thrown
- xeus-cling - Jupyter kernel for the C++ programming language
- kite - Use machine learning to give you
- ROS IDEs - This page collects experience and advice on using integrated development environments (IDEs) with ROS.
- TabNine - The all-language autocompleter
-
Launch and Monitor
- rosmon - ROS node launcher & monitoring daemon
- multimaster_fkie - GUI-based management environment that is very useful to manage ROS-launch configurations and control running nodes
-
Lint and Format
- cppcheck - Static analysis of C/C++ code
- hadolint - Dockerfile linter, validate inline bash, written in Haskell
- shellcheck - a static analysis tool for shell scripts
- catkin_lint - catkin_lint checks package configurations for the catkin build system of ROS.
- black - The uncompromising Python code formatter
- pydocstyle - pydocstyle is a static analysis tool for checking compliance with Python docstring conventions
- haros - H(igh) A(ssurance) ROS - Static analysis of ROS application code.
-
Template
- ROS - Template for ROS node standardization in C++
- Launch - Templates on how to create launch files for larger projects
- URDF - Examples on how to create Unified Robot Description Format (URDF) for different kinds of robots
- Python - Style guide to be followed in writing Python code for ROS
- Docker - The Dockerfile in the minimal-ade project shows a minimal example of how to create a custom base image
- Bash - A bash scripting template incorporating best practices & several useful functions
-
Unit and Integration Test
- UnitTesting - This page lays out the rationale, best practices, and policies for writing and running unit tests and integration tests for ROS.
- googletest - Google's C++ test framework
- osrf_testing_tools_cpp - contains testing tools for C++, and is used in OSRF projects.
- pytest - The pytest framework makes it easy to write small tests, yet scales to support complex functional testing
- doctest - The fastest feature-rich C++11/14/17/20 single-header testing framework for unit tests and TDD
-
Version Control
- meld - Meld is a visual diff and merge tool that helps you compare files, directories, and version controlled projects
- tig - Text-mode interface for git
- gitg - is a graphical user interface for git
- git-cola - The highly caffeinated Git GUI
- python-gitlab - is a Python package providing access to the GitLab server API.
- bfg-repo-cleaner - Removes large or troublesome blobs like git-filter-branch does, but faster.
- nbdime - Tools for diffing and merging of Jupyter notebooks.
- semantic-release - Fully automated version management and package publishing
- go-semrel-gitab - Automate version management for Gitlab
- dive - A tool for exploring each layer in a docker image
-
-
Documentation and Presentation
- Typora - A Minimalist Markdown Editor
- undraw - Free Professional business SVGs easy to customize
- inkscape - Inkscape is a professional vector graphics editor for Linux, Windows and macOS
- Markor - A Simple Markdown Editor for your Android Device
- Pandoc - Universal markup converter
- Yaspeller - Command line tool for spell checking
- Doxygen - Doxygen is the de facto standard tool for generating documentation from annotated C++ sources
- Word-to-Markdown - A ruby gem to liberate content from Microsoft Word document
- carbon - Share beautiful images of your source code
- ASCIIMATICS - Create a GIF for your command line examples
- Hugo-Webslides - This is a Hugo template to create WebSlides presentation using markdown.
- jupyter2slides - Cloud Native Presentation Slides with Jupyter Notebook + Reveal.js
- patat - Terminal-based presentations using Pandoc
- github-changelog-generator - Automatically generate change log from your tags, issues, labels and pull requests on GitHub.
- GitLab-Release-Note-Generator - A Gitlab release note generator that generates release note on latest tag
- Sphinx - is a tool that makes it easy to create intelligent and beautiful documentation for Python projects
- OCRmyPDF - adds an OCR text layer to scanned PDF files, allowing them to be searched
- Reveal-Hugo - A Hugo theme for Reveal.js that makes authoring and customization a breeze. With it, you can turn any properly-formatted Hugo content into a HTML presentation.
- Gerrit - is a code review and project management tool for Git based projects
-
Framework
- ROS - ROS (Robot Operating System) provides libraries and tools to help software developers create robot applications
- Autoware.ai - Autoware.AI is the world's first "All-in-One" open-source software for autonomous driving technology
- AutowareAuto - It is a clean slate rewrite of Autoware. Autoware.Auto applies best-in-class software engineering.
- ROS2 - is the next generation robot operating system, and is actively being developed to fully replace ROS1 in the near future
- OpenPilot - Open Source Adaptive Cruise Control (ACC) and Lane Keeping Assist System (LKAS)
- Apollo - High performance, flexible architecture which accelerates the development, testing, and deployment of Autonomous Vehicles.
- astrobee - Astrobee is a free-flying robot designed to operate as a payload inside the International Space Station (ISS).
- Stanford Self Driving Car Code - Stanford Code From Cars That Entered DARPA Grand Challenges
-
Hardware
-
Calibration and Transformation
- tf2 - transform library, which lets the user keep track of multiple coordinate frames over time
- lidar_align - A simple method for finding the extrinsic calibration between a 3D lidar and a 6-dof pose sensor
- kalibr - The Kalibr visual-inertial calibration toolbox
- Calibnet - Self-Supervised Extrinsic Calibration using 3D Spatial Transformer Networks
- lidar_camera_calibration - ROS package to find a rigid-body transformation between a LiDAR and a camera
- ILCC - Reflectance Intensity Assisted Automatic and Accurate Extrinsic Calibration of 3D LiDAR
- easy_handeye - Simple, straighforward ROS library for hand-eye calibration
- imu_utils - A ROS package tool to analyze the IMU performance
- kalibr_allan - IMU Allan standard deviation charts for use with Kalibr and inertial kalman filters
- pyquaternion - is a full-featured Python module for representing and using quaternions
- tf2 - transform library, which lets the user keep track of multiple coordinate frames over time
-
Version Control
- PandaPower - An easy to use open source tool for power system modeling, analysis and optimization with a high degree of automation.
- kicad - A Cross Platform and Open Source Electronics Design Automation Suite
- kicad - A Cross Platform and Open Source Electronics Design Automation Suite
- HRIM - An information model for robot hardware
- URDF - Repository for Unified Robot Description Format (URDF) parsing code
- phobos - An add-on for Blender allowing to create URDF, SDF and SMURF robot models in a WYSIWYG environment.
- solidworks_urdf_exporter - SolidWorks to URDF Exporter
- FreeCAD - Your own 3D parametric modeler
- PcbDraw - Convert your KiCAD board into a nice looking 2D drawing suitable for pinout diagrams
- kicad - A Cross Platform and Open Source Electronics Design Automation Suite
- kicad - A Cross Platform and Open Source Electronics Design Automation Suite
-
-
Interaction
-
Command Line
- terminator - The goal of this project is to produce a useful tool for arranging terminals
- dotfiles of cornerman - Powerful zsh and vim dotfiles
- dotbot - A tool that bootstraps your dotfiles
- prompt-hjem - A beautiful zsh prompt
- ag - A code-searching tool similar to ack, but faster.
- fzf - A command-line fuzzy finder
- pkgtop - Interactive package manager and resource monitor designed for the GNU/Linux.
- gocui - Minimalist Go package aimed at creating Console User Interfaces.
- TerminalImageViewer - Small C++ program to display images in a (modern) terminal using RGB ANSI codes and unicode block graphics characters
- rosshow - Visualize ROS topics inside a terminal with Unicode/ASCII art
- python-prompt-toolkit - Library for building powerful interactive command line applications in Python
- guake - Drop-down terminal for GNOME
- wemux - Multi-User Tmux Made Easy
- tmuxp - tmux session manager built on libtmux
- mapscii - World map renderer for your console
- bat - A cat(1) clone with wings.
-
Data Visualization and Mission Control
- guacamole - clientless remote desktop gateway. It supports standard protocols like VNC, RDP, and SSH
- rqt_bag - provides a GUI plugin for displaying and replaying ROS bag files.
- webviz - web-based visualization libraries like rviz
- plotly.py - An open-source, interactive graphing library for Python
- PlotJuggler - The timeseries visualization tool that you deserve
- bokeh - Interactive Data Visualization in the browser, from Python
- voila - From Jupyter notebooks to standalone web applications and dashboards
- Pangolin - Pangolin is a lightweight portable rapid development library for managing OpenGL display / interaction and abstracting video input.
- kepler.gl - Kepler.gl is a powerful open source geospatial analysis tool for large-scale data sets.
- qgis_ros - Access bagged and live topic data in a highly featured GIS environment
- openmct - A web based mission control framework.
- web_video_server - HTTP Streaming of ROS Image Topics in Multiple Formats
- rvizweb - RVizWeb provides a convenient way of building and launching a web application with features similar to RViz
- marvros - MAVLink to ROS gateway with proxy for Ground Control Station
- streetscape.gl - Streetscape.gl is a toolkit for visualizing autonomous and robotics data in the XVIZ protocol.
- rviz_cloud_annotation - Point cloud annotation tool based on RViz
- PixelAnnotationTool - Annotate quickly images
- point_labeler - Tool for labeling of a single point clouds or a stream of point clouds
- CloudCompare - CloudCompare is a 3D point cloud (and triangular mesh) processing software.
- Potree - WebGL point cloud viewer for large datasets
- ParaView - VTK-based Data Analysis and Visualization Application
- mapviz - Modular ROS visualization tool for 2D data.
- rviz_cinematographer - Easy to use tools to create and edit trajectories for the rviz camera.
- rviz_visual_tools - C++ API wrapper for displaying shapes and meshes in Rviz
- tf_keyboard_cal - Allows manual control of a TF through the keyboard or interactive markers
- octave - provides a convenient command line interface for solving linear and nonlinear problems numerically, and for performing other numerical experiments using a language that is mostly compatible with Matlab.
- LabelImg - LabelImg is a graphical image annotation tool and label object bounding boxes in images
- cvat - Powerful and efficient Computer Vision Annotation Tool (CVAT)
-
Programming Languages
Categories
Sub Categories
SLAM
40
Calibration and Transformation
31
Data Visualization and Mission Control
31
Point Cloud Processing
25
Network and Middleware
23
Version Control
21
Build and Deploy
19
Code and Run
19
Security
16
Command Line
16
Image Processing
15
High Performance Computing
13
Storage and Record
12
Embedded Operation Systems
11
Debugging and Tracing
9
Graphical User Interface
9
Safety
9
Monitoring
8
Lint and Format
7
Machine Learning
7
Template
6
Parallel Processing
5
Unit and Integration Test
5
Network Distributed File Systems
4
Pipeline
3
Launch and Monitor
2
Real-Time Kernel
2
Voice User Interface
2
Keywords
python
43
ros
43
robotics
21
linux
15
docker
13
security
13
deep-learning
12
computer-vision
11
cpp
11
javascript
11
lidar
9
slam
9
c
8
mapping
7
c-plus-plus
7
machine-learning
7
gpu
7
git
7
go
7
rosbag
6
calibration
6
self-driving-car
6
static-analysis
6
tui
6
ros2
6
terminal
6
ai
5
editor
5
segmentation
5
kubernetes
5
robots
5
visualization
5
jupyter
5
monitoring
5
catkin
5
autonomous-vehicles
5
point-cloud
5
openstreetmap
5
3d
5
windows
5
jupyter-notebook
5
real-time
5
cli
5
markdown
5
simulation
5
golang
5
robot
5
gitlab
4
electron
4
tensorflow
4