Skip to content

Commit

Permalink
Add antenna (#50)
Browse files Browse the repository at this point in the history
* Add pre commit

* Add external antenna

* Rename extenal antena -> teltonika

* Set GPS uptade rate to 1Hz

* Add ns to tf frame

* Update name

* Mounting point
  • Loading branch information
rafal-gorecki committed Jun 17, 2024
1 parent 59f8172 commit b29f563
Show file tree
Hide file tree
Showing 35 changed files with 536 additions and 118 deletions.
1 change: 1 addition & 0 deletions .github/workflows/colcon_test_build.yaml
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
---
name: ROS2 test build

on:
Expand Down
121 changes: 121 additions & 0 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,121 @@
---
repos:
# Standard hooks
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v4.6.0
hooks:
- id: check-added-large-files
# mesh files has to be taken into account
args: [--maxkb=3000]
- id: check-ast
- id: check-case-conflict
- id: check-merge-conflict
- id: check-symlinks
- id: check-xml
- id: check-yaml
- id: debug-statements
- id: destroyed-symlinks
- id: detect-private-key
- id: end-of-file-fixer
- id: fix-byte-order-marker
- id: name-tests-test
- id: mixed-line-ending
- id: trailing-whitespace

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

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

- repo: https://github.com/PyCQA/flake8
rev: 7.0.0
hooks:
- id: flake8
args: ['--ignore=E501,W503'] # ignore too long line and line break before binary operator,
# black checks it

- repo: https://github.com/PyCQA/isort
rev: 5.13.2
hooks:
- id: isort
args: [--profile, black]

# CPP hooks
- repo: https://github.com/pre-commit/mirrors-clang-format
rev: v18.1.5
hooks:
- id: clang-format

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

- repo: local
hooks:
- id: ament_cpplint
name: ament_cpplint
description: Static code analysis of C/C++ files.
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.
entry: ament_lint_cmake
language: system
files: CMakeLists\.txt$

- repo: https://github.com/cheshirekow/cmake-format-precommit
rev: v0.6.13
hooks:
- id: cmake-format

# XML
- repo: https://github.com/tier4/pre-commit-hooks-ros
rev: v0.8.0
hooks:
- id: prettier-package-xml
- id: sort-package-xml

# YAML
- repo: https://github.com/jumanjihouse/pre-commit-hook-yamlfmt
rev: 0.2.3
hooks:
- id: yamlfmt
files: ^(?!.*compose)(?!.*ekf\.yaml$).*$
args: [--mapping, '2', --sequence, '4', --offset, '2', --width, '100']

# Copyright
- repo: local
hooks:
- id: ament_copyright
name: ament_copyright
description: Check if copyright notice is available in all files.
entry: ament_copyright
language: system

# Spellcheck
- repo: https://github.com/codespell-project/codespell
rev: v2.2.6
hooks:
- id: codespell
args: [--write-changes, --uri-ignore-words-list=ist, -L manuel]
exclude: CHANGELOG\.rst|\.(svg|pyc|drawio)$
27 changes: 14 additions & 13 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -3,26 +3,27 @@ project(ros_components_description)

find_package(ament_cmake REQUIRED)

install(
DIRECTORY meshes urdf launch config test
DESTINATION share/${PROJECT_NAME}
)
install(DIRECTORY meshes urdf launch config test
DESTINATION share/${PROJECT_NAME})

if(BUILD_TESTING)
find_package(ament_cmake_pytest REQUIRED)
set(pytest_tests
test/test_components_xacro.py
)
set(pytest_tests test/test_components_xacro.py)
foreach(test_path ${pytest_tests})
get_filename_component(test_name ${test_path} NAME_WE)
ament_add_pytest_test(${test_name} ${test_path}
APPEND_ENV PYTHONPATH=${CMAKE_CURRENT_BINARY_DIR}
TIMEOUT 60
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
)
ament_add_pytest_test(
${test_name}
${test_path}
APPEND_ENV
PYTHONPATH=${CMAKE_CURRENT_BINARY_DIR}
TIMEOUT
60
WORKING_DIRECTORY
${CMAKE_SOURCE_DIR})
endforeach()
endif()

ament_environment_hooks("${CMAKE_CURRENT_SOURCE_DIR}/env-hooks/${PROJECT_NAME}.sh.in")
ament_environment_hooks(
"${CMAKE_CURRENT_SOURCE_DIR}/env-hooks/${PROJECT_NAME}.sh.in")
ament_export_dependencies(${THIS_PACKAGE_INCLUDE_DEPENDS})
ament_package()
6 changes: 3 additions & 3 deletions LICENSE.txt
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
ROS COMPONENTS DESCRIPTION PACKAGE LICENSING
The default license for ROS components description package is the Apache License, Version 2.0
(see LICENSE_APACHE2.txt); you may elect at your option to use the ROS COMPONENTS DESCRIPTION
package under the MIT License (see LICENSE_MIT.txt). Contributions must be
The default license for ROS components description package is the Apache License, Version 2.0
(see LICENSE_APACHE2.txt); you may elect at your option to use the ROS COMPONENTS DESCRIPTION
package under the MIT License (see LICENSE_MIT.txt). Contributions must be
made under both licenses.
42 changes: 21 additions & 21 deletions config/gz_orbbec_astra_remappings.yaml
Original file line number Diff line number Diff line change
@@ -1,27 +1,27 @@
---
# https://github.com/orbbec/OrbbecSDK_ROS2#all-available-topics
- topic_name: <robot_namespace><device_namespace>/color/camera_info
ros_type_name: sensor_msgs/msg/CameraInfo
gz_type_name: ignition.msgs.CameraInfo
lazy: true
- topic_name: <robot_namespace><device_namespace>/color/camera_info
ros_type_name: sensor_msgs/msg/CameraInfo
gz_type_name: ignition.msgs.CameraInfo
lazy: true

- topic_name: <robot_namespace><device_namespace>/color/image_raw
ros_type_name: sensor_msgs/msg/Image
gz_type_name: ignition.msgs.Image
lazy: true
- topic_name: <robot_namespace><device_namespace>/color/image_raw
ros_type_name: sensor_msgs/msg/Image
gz_type_name: ignition.msgs.Image
lazy: true

- topic_name: <robot_namespace><device_namespace>/depth/camera_info
ros_type_name: sensor_msgs/msg/CameraInfo
gz_type_name: ignition.msgs.CameraInfo
lazy: true
- topic_name: <robot_namespace><device_namespace>/depth/camera_info
ros_type_name: sensor_msgs/msg/CameraInfo
gz_type_name: ignition.msgs.CameraInfo
lazy: true

- topic_name: <robot_namespace><device_namespace>/depth/image_raw
ros_type_name: sensor_msgs/msg/Image
gz_type_name: ignition.msgs.Image
lazy: true
- topic_name: <robot_namespace><device_namespace>/depth/image_raw
ros_type_name: sensor_msgs/msg/Image
gz_type_name: ignition.msgs.Image
lazy: true

- ros_topic_name: <robot_namespace><device_namespace>/depth/points
gz_topic_name: <robot_namespace><device_namespace>/depth/image_raw/points
ros_type_name: sensor_msgs/msg/PointCloud2
gz_type_name: ignition.msgs.PointCloudPacked
lazy: true
- ros_topic_name: <robot_namespace><device_namespace>/depth/points
gz_topic_name: <robot_namespace><device_namespace>/depth/image_raw/points
ros_type_name: sensor_msgs/msg/PointCloud2
gz_type_name: ignition.msgs.PointCloudPacked
lazy: true
5 changes: 5 additions & 0 deletions config/gz_teltonika_remappings.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
- topic_name: <robot_namespace><device_namespace>/fix
ros_type_name: sensor_msgs/msg/NavSatFix
gz_type_name: ignition.msgs.NavSat
direction: GZ_TO_ROS
1 change: 1 addition & 0 deletions config/kinova_6dof_controllers.yaml
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
---
/**:
joint_trajectory_controller:
ros__parameters:
Expand Down
1 change: 1 addition & 0 deletions config/kinova_7dof_controllers.yaml
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
---
/**:
joint_trajectory_controller:
ros__parameters:
Expand Down
2 changes: 1 addition & 1 deletion config/robotiq_controllers.yaml
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
---
/**:
robotiq_gripper_controller:
ros__parameters:
Expand All @@ -10,4 +11,3 @@
ros__parameters:
default: true
joint: robotiq_85_left_knuckle_joint

25 changes: 13 additions & 12 deletions config/ur_controllers.yaml
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
---
/**:
speed_scaling_state_broadcaster:
ros__parameters:
Expand Down Expand Up @@ -38,12 +39,12 @@
constraints:
stopped_velocity_tolerance: 0.2
goal_time: 0.0
shoulder_pan_joint: { trajectory: 0.2, goal: 0.1 }
shoulder_lift_joint: { trajectory: 0.2, goal: 0.1 }
elbow_joint: { trajectory: 0.2, goal: 0.1 }
wrist_1_joint: { trajectory: 0.2, goal: 0.1 }
wrist_2_joint: { trajectory: 0.2, goal: 0.1 }
wrist_3_joint: { trajectory: 0.2, goal: 0.1 }
shoulder_pan_joint: {trajectory: 0.2, goal: 0.1}
shoulder_lift_joint: {trajectory: 0.2, goal: 0.1}
elbow_joint: {trajectory: 0.2, goal: 0.1}
wrist_1_joint: {trajectory: 0.2, goal: 0.1}
wrist_2_joint: {trajectory: 0.2, goal: 0.1}
wrist_3_joint: {trajectory: 0.2, goal: 0.1}


scaled_joint_trajectory_controller:
Expand All @@ -66,12 +67,12 @@
constraints:
stopped_velocity_tolerance: 0.2
goal_time: 0.0
shoulder_pan_joint: { trajectory: 0.2, goal: 0.1 }
shoulder_lift_joint: { trajectory: 0.2, goal: 0.1 }
elbow_joint: { trajectory: 0.2, goal: 0.1 }
wrist_1_joint: { trajectory: 0.2, goal: 0.1 }
wrist_2_joint: { trajectory: 0.2, goal: 0.1 }
wrist_3_joint: { trajectory: 0.2, goal: 0.1 }
shoulder_pan_joint: {trajectory: 0.2, goal: 0.1}
shoulder_lift_joint: {trajectory: 0.2, goal: 0.1}
elbow_joint: {trajectory: 0.2, goal: 0.1}
wrist_1_joint: {trajectory: 0.2, goal: 0.1}
wrist_2_joint: {trajectory: 0.2, goal: 0.1}
wrist_3_joint: {trajectory: 0.2, goal: 0.1}

forward_velocity_controller:
ros__parameters:
Expand Down
2 changes: 1 addition & 1 deletion env-hooks/ros_components_description.sh.in
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
ament_prepend_unique_value GAZEBO_MODEL_PATH "@CMAKE_INSTALL_PREFIX@/share"
ament_prepend_unique_value GZ_SIM_RESOURCE_PATH "@CMAKE_INSTALL_PREFIX@/share"
ament_prepend_unique_value IGN_GAZEBO_RESOURCE_PATH "@CMAKE_INSTALL_PREFIX@/share"
ament_prepend_unique_value IGN_GAZEBO_RESOURCE_PATH "@CMAKE_INSTALL_PREFIX@/share"
10 changes: 6 additions & 4 deletions launch/gz_components.launch.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,17 +13,18 @@
# limitations under the License.

import os

import yaml
from ament_index_python.packages import get_package_share_directory

from launch import LaunchDescription
from launch.actions import (
DeclareLaunchArgument,
IncludeLaunchDescription,
OpaqueFunction,
)

from launch.launch_description_sources import PythonLaunchDescriptionSource
from launch.substitutions import LaunchConfiguration, EnvironmentVariable
from launch.substitutions import EnvironmentVariable, LaunchConfiguration


def get_value(node: yaml.Node, key: str):
Expand Down Expand Up @@ -63,6 +64,7 @@ def get_launch_descriptions_from_yaml_node(
actions = []

components_types_with_names = {
"ANT02": "teltonika",
"LDR01": "slamtec_rplidar",
"LDR06": "slamtec_rplidar",
"LDR10": "ouster_os",
Expand Down Expand Up @@ -109,11 +111,11 @@ def launch_setup(context, *args, **kwargs):
if components_config_path == "None":
return []

with open(os.path.join(components_config_path), 'r') as file:
with open(os.path.join(components_config_path)) as file:
components_config = yaml.safe_load(file)

actions = []
if components_config != None:
if components_config is not None:
actions += get_launch_descriptions_from_yaml_node(
components_config, ros_components_description, namespace
)
Expand Down
7 changes: 4 additions & 3 deletions launch/gz_kinova_6dof.launch.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,17 +12,18 @@
# See the License for the specific language governing permissions and
# limitations under the License.

from launch_ros.actions import Node
from launch_ros.substitutions import FindPackageShare
from nav2_common.launch import ReplaceString

from launch import LaunchDescription
from launch.actions import DeclareLaunchArgument, OpaqueFunction
from launch_ros.actions import Node
from launch.substitutions import (
EnvironmentVariable,
LaunchConfiguration,
PathJoinSubstitution,
PythonExpression,
)
from launch_ros.substitutions import FindPackageShare
from nav2_common.launch import ReplaceString


# The frame of the point cloud from ignition gazebo 6 isn't provided by <frame_id>.
Expand Down
7 changes: 4 additions & 3 deletions launch/gz_kinova_7dof.launch.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,17 +12,18 @@
# See the License for the specific language governing permissions and
# limitations under the License.

from launch_ros.actions import Node
from launch_ros.substitutions import FindPackageShare
from nav2_common.launch import ReplaceString

from launch import LaunchDescription
from launch.actions import DeclareLaunchArgument, OpaqueFunction
from launch_ros.actions import Node
from launch.substitutions import (
EnvironmentVariable,
LaunchConfiguration,
PathJoinSubstitution,
PythonExpression,
)
from launch_ros.substitutions import FindPackageShare
from nav2_common.launch import ReplaceString


# The frame of the point cloud from ignition gazebo 6 isn't provided by <frame_id>.
Expand Down
Loading

0 comments on commit b29f563

Please sign in to comment.