Skip to content

Commit

Permalink
Add pre-commit (kroshu#44)
Browse files Browse the repository at this point in the history
* remove redundancy

* format

* fix exclude

* gitignore

* format

---------

Co-authored-by: Aron Svastits <[email protected]>
  • Loading branch information
Svastits and Aron Svastits authored Jan 5, 2024
1 parent 46fba30 commit 6a650ba
Show file tree
Hide file tree
Showing 43 changed files with 694 additions and 427 deletions.
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__/
136 changes: 136 additions & 0 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,136 @@

# 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


- repo: local
hooks:
- id: ament_cppcheck
name: ament_cppcheck
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
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
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', '-L', 'linz']
exclude: CHANGELOG\.rst|\.(svg|pyc)$
6 changes: 3 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ The macro file follows the ROS-Industrial conventions:
- includes `flange` frame: attachment point for EEF models
- includes `tool0` frame: all-zeros tool frame, identical to the tool frame defined by the industrial controller ($TOOL)

All robots in the xacros are named according to the following pattern:
All robots in the xacros are named according to the following pattern:

`{kr/lbr_iisy/lbr_iiwa}{payload}_r{reach}_{version}`,

Expand All @@ -59,7 +59,7 @@ The other frames, which are added to conform to ROS-Industrial follow the conven

The support packages contain a joint limits file for every supported robot model, necessary time parametrization of MoveIt-planned paths. They contain the velocity limits also available in the URDF model and additional acceleration limits. Acceleration limits can never be global, these values are calculated from the worst-case ramp-up time to reach maximum velocity. The easiest way to modify the allowed velocities and accelerations is to change the velocity and acceleration scaling factors also available in the same configuration files. (The scaling factor can never be smaller than 1.)


### Extending the models

In real applications, it's likely that the description will be more complex, involving multiple objects next to the robot and optionally end effectors. It is recommended to create a new, dedicated ROS2 package specifically for managing this extended description by copying and extending the base robot model.
Expand Down Expand Up @@ -107,7 +107,7 @@ ros2 launch kuka_lbr_iisy_moveit_config moveit_planning_fake_hardware.launch.py

#### LBR iisy robots (iiQKA):
```
ros2 launch kuka_lbr_iiwa_moveit_config moveit_planning_fake_hardware.launch.py
ros2 launch kuka_lbr_iiwa_moveit_config moveit_planning_fake_hardware.launch.py
```
A `robot_model` argument can be added after the command (e.g. `robot_model:=lbr_iisy11_r1300`). The default robot model is `lbr_iisy3_r760`

Expand Down
46 changes: 26 additions & 20 deletions kuka_agilus_support/launch/test_kr10r1100_2.launch.py
Original file line number Diff line number Diff line change
Expand Up @@ -24,36 +24,42 @@ def generate_launch_description():
PathJoinSubstitution([FindExecutable(name="xacro")]),
" ",
PathJoinSubstitution(
[FindPackageShare("kuka_agilus_support"),
"urdf", "kr10_r1100_2.urdf.xacro"]
[FindPackageShare("kuka_agilus_support"), "urdf", "kr10_r1100_2.urdf.xacro"]
),
" ",
"use_fake_hardware:=true",
]
)
robot_description = {'robot_description': robot_description_content}
robot_description = {"robot_description": robot_description_content}

# RViz
rviz_config_file = PathJoinSubstitution([FindPackageShare(
'kuka_resources'), "config", "view_6_axis_urdf.rviz"])
rviz_node = Node(package='rviz2',
executable='rviz2',
name='rviz2_launch',
output='log',
arguments=['-d', rviz_config_file],
parameters=[robot_description])
rviz_config_file = PathJoinSubstitution(
[FindPackageShare("kuka_resources"), "config", "view_6_axis_urdf.rviz"]
)
rviz_node = Node(
package="rviz2",
executable="rviz2",
name="rviz2_launch",
output="log",
arguments=["-d", rviz_config_file],
parameters=[robot_description],
)

# Publish TF
robot_state_publisher = Node(package='robot_state_publisher',
executable='robot_state_publisher',
name='robot_state_publisher',
output='both',
parameters=[robot_description])
robot_state_publisher = Node(
package="robot_state_publisher",
executable="robot_state_publisher",
name="robot_state_publisher",
output="both",
parameters=[robot_description],
)

# Joint state publisher
joint_state_publisher_gui = Node(package='joint_state_publisher_gui',
executable='joint_state_publisher_gui',
name='joint_state_publisher_gui',
output='log')
joint_state_publisher_gui = Node(
package="joint_state_publisher_gui",
executable="joint_state_publisher_gui",
name="joint_state_publisher_gui",
output="log",
)

return LaunchDescription([robot_state_publisher, rviz_node, joint_state_publisher_gui])
46 changes: 26 additions & 20 deletions kuka_agilus_support/launch/test_kr6_r700_sixx.launch.py
Original file line number Diff line number Diff line change
Expand Up @@ -24,36 +24,42 @@ def generate_launch_description():
PathJoinSubstitution([FindExecutable(name="xacro")]),
" ",
PathJoinSubstitution(
[FindPackageShare("kuka_agilus_support"),
"urdf", "kr6_r700_sixx.urdf.xacro"]
[FindPackageShare("kuka_agilus_support"), "urdf", "kr6_r700_sixx.urdf.xacro"]
),
" ",
"use_fake_hardware:=true",
]
)
robot_description = {'robot_description': robot_description_content}
robot_description = {"robot_description": robot_description_content}

# RViz
rviz_config_file = PathJoinSubstitution([FindPackageShare(
'kuka_resources'), "config", "view_6_axis_urdf.rviz"])
rviz_node = Node(package='rviz2',
executable='rviz2',
name='rviz2_launch',
output='log',
arguments=['-d', rviz_config_file],
parameters=[robot_description])
rviz_config_file = PathJoinSubstitution(
[FindPackageShare("kuka_resources"), "config", "view_6_axis_urdf.rviz"]
)
rviz_node = Node(
package="rviz2",
executable="rviz2",
name="rviz2_launch",
output="log",
arguments=["-d", rviz_config_file],
parameters=[robot_description],
)

# Publish TF
robot_state_publisher = Node(package='robot_state_publisher',
executable='robot_state_publisher',
name='robot_state_publisher',
output='both',
parameters=[robot_description])
robot_state_publisher = Node(
package="robot_state_publisher",
executable="robot_state_publisher",
name="robot_state_publisher",
output="both",
parameters=[robot_description],
)

# Joint state publisher
joint_state_publisher_gui = Node(package='joint_state_publisher_gui',
executable='joint_state_publisher_gui',
name='joint_state_publisher_gui',
output='log')
joint_state_publisher_gui = Node(
package="joint_state_publisher_gui",
executable="joint_state_publisher_gui",
name="joint_state_publisher_gui",
output="log",
)

return LaunchDescription([robot_state_publisher, rviz_node, joint_state_publisher_gui])
46 changes: 26 additions & 20 deletions kuka_agilus_support/launch/test_kr6_r900_sixx.launch.py
Original file line number Diff line number Diff line change
Expand Up @@ -24,36 +24,42 @@ def generate_launch_description():
PathJoinSubstitution([FindExecutable(name="xacro")]),
" ",
PathJoinSubstitution(
[FindPackageShare("kuka_agilus_support"),
"urdf", "kr6_r700_sixx.urdf.xacro"]
[FindPackageShare("kuka_agilus_support"), "urdf", "kr6_r700_sixx.urdf.xacro"]
),
" ",
"use_fake_hardware:=true",
]
)
robot_description = {'robot_description': robot_description_content}
robot_description = {"robot_description": robot_description_content}

# RViz
rviz_config_file = PathJoinSubstitution([FindPackageShare(
'kuka_resources'), "config", "view_6_axis_urdf.rviz"])
rviz_node = Node(package='rviz2',
executable='rviz2',
name='rviz2_launch',
output='log',
arguments=['-d', rviz_config_file],
parameters=[robot_description])
rviz_config_file = PathJoinSubstitution(
[FindPackageShare("kuka_resources"), "config", "view_6_axis_urdf.rviz"]
)
rviz_node = Node(
package="rviz2",
executable="rviz2",
name="rviz2_launch",
output="log",
arguments=["-d", rviz_config_file],
parameters=[robot_description],
)

# Publish TF
robot_state_publisher = Node(package='robot_state_publisher',
executable='robot_state_publisher',
name='robot_state_publisher',
output='both',
parameters=[robot_description])
robot_state_publisher = Node(
package="robot_state_publisher",
executable="robot_state_publisher",
name="robot_state_publisher",
output="both",
parameters=[robot_description],
)

# Joint state publisher
joint_state_publisher_gui = Node(package='joint_state_publisher_gui',
executable='joint_state_publisher_gui',
name='joint_state_publisher_gui',
output='log')
joint_state_publisher_gui = Node(
package="joint_state_publisher_gui",
executable="joint_state_publisher_gui",
name="joint_state_publisher_gui",
output="log",
)

return LaunchDescription([robot_state_publisher, rviz_node, joint_state_publisher_gui])
Original file line number Diff line number Diff line change
Expand Up @@ -195,4 +195,4 @@
<scene>
<instance_visual_scene url="#Scene"/>
</scene>
</COLLADA>
</COLLADA>
2 changes: 1 addition & 1 deletion kuka_agilus_support/meshes/kr6_r700_sixx/visual/link_1.dae
Original file line number Diff line number Diff line change
Expand Up @@ -195,4 +195,4 @@
<scene>
<instance_visual_scene url="#Scene"/>
</scene>
</COLLADA>
</COLLADA>
2 changes: 1 addition & 1 deletion kuka_agilus_support/meshes/kr6_r700_sixx/visual/link_2.dae
Original file line number Diff line number Diff line change
Expand Up @@ -290,4 +290,4 @@
<scene>
<instance_visual_scene url="#Scene"/>
</scene>
</COLLADA>
</COLLADA>
Loading

0 comments on commit 6a650ba

Please sign in to comment.