Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 16 additions & 0 deletions .clang-format
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
---
Language: Cpp
BasedOnStyle: Google

ColumnLimit: 100
AccessModifierOffset: -2
AlignAfterOpenBracket: AlwaysBreak
BreakBeforeBraces: Allman
ConstructorInitializerIndentWidth: 0
ContinuationIndentWidth: 2
DerivePointerAlignment: false
PointerAlignment: Middle
ReflowComments: true
IncludeBlocks: Preserve
InsertBraces: true
...
80 changes: 80 additions & 0 deletions .github/ISSUE_TEMPLATE/bug_report.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,80 @@
name: "Bug Report"
description: Create a new ticket for a bug.
title: "[BUG] - <title>"
labels: [
"bug"
]
body:
- type: textarea
id: description
attributes:
label: "Description"
description: Please enter an explicit description of your issue
placeholder: Describe your issue in a few sentences
validations:
required: true
- type: dropdown
id: robot-os
attributes:
label: "KUKA robot OS"
description: Version of the KUKA OS are you using
multiple: true
options:
- KSS
- Sunrise
- iiQKA
- type: input
id: os-version
attributes:
label: "KUKA robot OS version"
description: Version of the KUKA robot OS
placeholder: eg. KSS 8.6
validations:
required: true
- type: input
id: if-version
attributes:
label: "KUKA external interface version"
description: Version of the KUKA external interface
placeholder: eg. RSI 4.1.3
validations:
required: true
- type: input
id: robot-model
attributes:
label: "Affected robot model(s)"
description: Robot model the issue came up with
placeholder: eg. KR10 R1100-2
validations:
required: true
- type: input
id: driver-version
attributes:
label: "Version or commit hash of the driver"
description: If the issue came up with an older version (not master), provide the release version or commit hash
validations:
required: false
- type: textarea
id: setup
attributes:
label: "Setup"
description: Describe your setup, launch files and executables started (optionally attach rqt_graph output), modifications to code
render: bash
validations:
required: true
- type: textarea
id: reprod
attributes:
label: "Reproduction steps"
description: Clear and ordered steps of reporoducing
render: bash
validations:
required: true
- type: textarea
id: logs
attributes:
label: "Logs"
description: Attach relevant log output here, mentioning if lines were omitted to help readability.
render: bash
validations:
required: false
14 changes: 6 additions & 8 deletions .github/workflows/deploy_wiki.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,9 @@ name: Deploy Wiki
on:
push:
paths:
# Trigger only when wiki directory changes
# Trigger only when wiki directory or pipeline changes
- 'doc/wiki/**'
- '.github/workflows/deploy_wiki.yml'
branches:
# And only on master branch
- master
Expand All @@ -16,11 +17,8 @@ jobs:
- uses: actions/checkout@v2

- name: Push Wiki Changes
uses: resizoltan/github-wiki-action@master
uses: SwiftDocOrg/github-wiki-publish-action@v1
with:
path: "doc/wiki"
env:
# Make sure you have that / at the end. We use rsync
# WIKI_DIR's default is wiki/
WIKI_DIR: doc/wiki/
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
GH_MAIL: [email protected]
GH_NAME: resizoltan
GH_PERSONAL_ACCESS_TOKEN: ${{ secrets.GH_PERSONAL_ACCESS_TOKEN }}
11 changes: 11 additions & 0 deletions .github/workflows/industrial_ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -55,3 +55,14 @@ jobs:
# Run industrial_ci
- uses: 'kroshu/industrial_ci@master'
env: ${{ matrix.env }}
codespell:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/[email protected]
with:
python-version: '3.10'
- run: pip install git+https://github.com/codespell-project/codespell.git
- uses: codespell-project/actions-codespell@v2
with:
check_filenames: true
23 changes: 23 additions & 0 deletions .github/workflows/pre-commit.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
# This is a format job. Pre-commit has a first-party GitHub action, so we use
# that: https://github.com/pre-commit/action

name: Format

on:
workflow_dispatch:
pull_request:

jobs:
pre-commit:
name: Format
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/[email protected]
with:
python-version: '3.10'
- name: Install system hooks
run: sudo apt install -qq cppcheck
- uses: pre-commit/[email protected]
with:
extra_args: --all-files --hook-stage manual
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
__pycache__/
140 changes: 140 additions & 0 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,140 @@

# To use:
#
# pre-commit run -a
#
# Or:
#
# pre-commit install # (runs every time you commit in git)
#
# To update this file:
#
# pre-commit autoupdate
#
# See https://github.com/pre-commit/pre-commit

repos:
# Standard hooks
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v4.4.0
hooks:
- id: check-added-large-files
- id: check-ast
- id: check-case-conflict
- id: check-docstring-first
- id: check-merge-conflict
- id: check-symlinks
- id: check-xml
- id: check-yaml
- id: debug-statements
- id: end-of-file-fixer
- id: mixed-line-ending
- id: trailing-whitespace
exclude_types: [rst]
- id: fix-byte-order-marker


# Python hooks
- repo: https://github.com/asottile/pyupgrade
rev: v3.4.0
hooks:
- id: pyupgrade
args: [--py36-plus]

# PyDocStyle
- repo: https://github.com/PyCQA/pydocstyle
rev: 6.3.0
hooks:
- id: pydocstyle
args: ["--ignore=D100,D101,D102,D103,D104,D105,D106,D107,D203,D212,D404"]

- repo: https://github.com/psf/black
rev: 23.3.0
hooks:
- id: black
args: ["--line-length=99"]

- repo: https://github.com/pycqa/flake8
rev: 6.0.0
hooks:
- id: flake8
args: ["--extend-ignore=E501"]

# CPP hooks
- repo: https://github.com/pre-commit/mirrors-clang-format
rev: v15.0.6
hooks:
- id: clang-format
exclude: .*/fri_client_sdk/.*|.*/mock/.*|.*/robot_application/.*


- repo: local
hooks:
- id: ament_cppcheck
name: ament_cppcheck
exclude: .*/fri_client_sdk/.*|.*/mock/.*
description: Static code analysis of C/C++ files.
stages: [commit]
entry: env AMENT_CPPCHECK_ALLOW_SLOW_VERSIONS=TRUE ament_cppcheck
language: system
files: \.(h\+\+|h|hh|hxx|hpp|cuh|c|cc|cpp|cu|c\+\+|cxx|tpp|txx)$

# Maybe use https://github.com/cpplint/cpplint instead
- repo: local
hooks:
- id: ament_cpplint
name: ament_cpplint
exclude: .*/fri_client_sdk/.*|.*/mock/.*
description: Static code analysis of C/C++ files.
stages: [commit]
entry: ament_cpplint
language: system
files: \.(h\+\+|h|hh|hxx|hpp|cuh|c|cc|cpp|cu|c\+\+|cxx|tpp|txx)$
args: ["--linelength=100", "--filter=-whitespace/newline"]

# Cmake hooks
- repo: local
hooks:
- id: ament_lint_cmake
name: ament_lint_cmake
description: Check format of CMakeLists.txt files.
stages: [commit]
entry: ament_lint_cmake
language: system
files: CMakeLists\.txt$

# Copyright
- repo: local
hooks:
- id: ament_copyright
name: ament_copyright
exclude: .*/fri_client_sdk/.*|.*/mock/.*
description: Check if copyright notice is available in all files.
stages: [commit]
entry: ament_copyright
language: system

# Docs - RestructuredText hooks
- repo: https://github.com/PyCQA/doc8
rev: v1.1.1
hooks:
- id: doc8
args: ['--max-line-length=100', '--ignore=D001']
exclude: CHANGELOG\.rst$

- repo: https://github.com/pre-commit/pygrep-hooks
rev: v1.10.0
hooks:
- id: rst-backticks
exclude: CHANGELOG\.rst$
- id: rst-directive-colons
- id: rst-inline-touching-normal

# Spellcheck in comments and docs
# skipping of *.svg files is not working...
- repo: https://github.com/codespell-project/codespell
rev: v2.2.4
hooks:
- id: codespell
args: ['--write-changes']
exclude: CHANGELOG\.rst|\.(svg|pyc)$
33 changes: 28 additions & 5 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,34 @@
The ROS2 KUKA Sunrise driver is being developed and maintained by the kroshu team, but everyone is welcome to contribute. Please take the following aspects into consideration when making contributions:
## Issue tracking

- By default the Git ["Fork and Branch"](https://blog.scottlowe.org/2015/01/27/using-fork-branch-git-workflow/) workflow should be followed.
- To foster a high quality product, feature extensions and improvements shall be done after careful design choices. Therefore, design documents and discussion with the maintainers prior to any development is strongly encouraged to make sure that everyone agrees on the issue and the suggested solution. Depending on the individual case the way to do this could be through a GitHub issue, a pull request to the design drafts folder or a new discussion on the repository's Discussions forum.
- Code quality in this repository is monitored via industrial_ci and SonarCloud. All changes must pass the checks performed by these. (There is some flexibility to test coverage)
If you have questions, suggestions or found a bug, feel free to open an [issue](https://github.com/kroshu/kuka_drivers/issues).
When filing an issue, please check open issues to make sure somebody else hasn't already reported it. Please try to include as much information as you can, including:
- A reproducible test case or series of steps
- The version/commit hash of our code being used
- Any modifications you've made relevant to the bug
- Anything unusual about your environment or deployment

Please do not add labels to the issue, that should be handled by the maintainers.

## Contributing

Contributions via pull requests are much appreciated. Before sending us a pull request, please ensure that:

- Your PR addresses only one issue
- Your PR has a descriptive title and a short summary
- All pipelines are green, including
- Industrial CI
- Sonarcloud
- Spell checks
- Linters

To send us a pull request, please:
- Discuss the proposed changes with the maintainers, preferably in an issue
- Fork the repository
- Modify the source focusing on the specific change you are contributing
- Ensure that local tests pass (`colcon test` and `pre-commit` run)
- Pay attention to any automated CI failures reported in the pull request, and stay involved in the conversation

## Licensing
Any contribution that you make to this repository will
be under the Apache 2 License, as dictated by that
[license](http://www.apache.org/licenses/LICENSE-2.0.html):
Expand All @@ -18,4 +42,3 @@ be under the Apache 2 License, as dictated by that
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
~~~

15 changes: 10 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,14 +1,18 @@
# ROS2 KUKA Drivers

Experimental ROS2 driver for KUKA robots. Recommended distribution is [ROS 2 Humble Hawksbill:](https://docs.ros.org/en/humble/Installation.html).

> ROS2 Iron Irwini has breaking changes, thus it is not yet supported.
This repository contains ROS2 drivers for all KUKA operating systems.

Github CI | SonarCloud
------------| ---------------
[![Build Status](https://github.com/kroshu//kuka_drivers/workflows/CI/badge.svg?branch=master)](https://github.com/kroshu/ros2_kuka_sunrise_fri_driver/actions) | [![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=kroshu_kuka_drivers&metric=alert_status)](https://sonarcloud.io/dashboard?id=kroshu_kuka_drivers)

# Requirements
The drivers require a system with ROS installed. It is recommended to use Ubuntu 22.04 with ROS humble. Iron Irwini has breaking changes in the moveit API, thus it is not yet supported.
It is also recommended to use a client machine with a real-time kernel, as all three drivers require cyclic, real-time communication. Due to the real-time requirement, Windows systems are not recommended and covered in the documentation.


# Installation
The driver is not available as a binary package, building from source is necessary.

Create ROS2 workspace (if not already created).
```bash
Expand Down Expand Up @@ -49,6 +53,7 @@ Source built KUKA packages.
source ~/ros2_ws/install/setup.bash
```

# Get Started
# Getting Started
Documentation of this project can be found on the repository's [Wiki](https://github.com/kroshu/kuka_drivers/wiki) page.

Documentation of this project can be found on the repository's [Wiki](https://github.com/kroshu/kuka_drivers/wiki) page.
If you find something confusing, not working, or would like to contribute, please read our [contributing guide](CONTRIBUTING.md) before opening an issue or creating a pull request.
1 change: 0 additions & 1 deletion doc/lego_project.drawio

This file was deleted.

Loading