Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Release 2.1.1 to ros2 #406

Merged
merged 86 commits into from
Sep 5, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
86 commits
Select commit Hold shift + click to select a range
4ccf48f
Implement testing POC
pawelirh Jun 18, 2024
25da047
Namespace refactor
rafal-gorecki Jul 25, 2024
c96d020
New format of documentation (#369)
rafal-gorecki Aug 5, 2024
d2f0168
Add EStop to Gazebo
rafal-gorecki Aug 5, 2024
68a51df
unify CMakeLists.txt files
KmakD Aug 5, 2024
5d210e9
Change scheme theme (#380)
pawelirh Aug 5, 2024
247de54
Add dependencies
rafal-gorecki Aug 6, 2024
6cf54ab
Add remapping
rafal-gorecki Aug 6, 2024
ae31b6d
Merge remote-tracking branch 'origin/ros2-devel' into ros2-unify-file…
pawelirh Aug 6, 2024
de6d61a
unify CMakeLists.txt files (#381)
KmakD Aug 6, 2024
b7ad8a3
Rename files in panther_diagnostics package
pawelirh Aug 6, 2024
e711e2d
Merge remote-tracking branch 'origin/ros2-devel' into ros2-unify-file…
pawelirh Aug 6, 2024
ffb7ebe
Update after changes in panther_diagnostics
pawelirh Aug 6, 2024
2bb3192
Ros2 increase bt service timeout (#382)
pawelirh Aug 7, 2024
acc70d4
Merge branch 'ros2-devel' into ros2-ns-refactor
rafal-gorecki Aug 7, 2024
5d2bfb1
Rename config and launch file in manager package
pawelirh Aug 7, 2024
04334ab
Correct include guards in manager package
pawelirh Aug 7, 2024
a3677dd
Restructure files tree in manager tests
pawelirh Aug 7, 2024
213b14a
Ros2 estop sim gui (#384)
rafal-gorecki Aug 7, 2024
4334e08
Merge branch 'ros2-devel' into ros-sim-estop
rafal-gorecki Aug 7, 2024
042c58e
Update panther_gazebo/panther_hardware_plugins.xml
rafal-gorecki Aug 7, 2024
517ea65
Add david suggestion and change gui layout
rafal-gorecki Aug 8, 2024
9676563
Typos in Readme + estop publish on service call
rafal-gorecki Aug 8, 2024
1a0cfb3
Reorganize files in panther_lights
pawelirh Aug 9, 2024
a9184f5
UPdate include guards in panther_lights
pawelirh Aug 9, 2024
4577a53
Reorganize files in panther_battery
pawelirh Aug 9, 2024
1259d6a
Move estop to plugins folder
rafal-gorecki Aug 9, 2024
12951fe
add nmea gps
KmakD Aug 9, 2024
955782b
Rename battery driver files
pawelirh Aug 9, 2024
7306f86
Rename shutdown hosts config
pawelirh Aug 9, 2024
b3a6b6a
Inherit from IgnitionSystem
rafal-gorecki Aug 9, 2024
ff1254b
Change to Estop -> EStop
rafal-gorecki Aug 9, 2024
7c3a693
Reorganize panther_hardware_interfaces files
pawelirh Aug 12, 2024
e634fa4
Dawid suggestions part 1
rafal-gorecki Aug 12, 2024
38f5a95
Rename PantherSystem -> GzPantherSystem
rafal-gorecki Aug 12, 2024
4ee3052
Update references to files
pawelirh Aug 12, 2024
8eb40ec
Merge remote-tracking branch 'origin/ros2-devel' into ros2-unify-file…
pawelirh Aug 12, 2024
81f7931
Rename battery exec
pawelirh Aug 13, 2024
b088539
Fix links in documentations (#387)
pawelirh Aug 13, 2024
b079f53
Refer to header files
pawelirh Aug 13, 2024
5946681
Update panther_gazebo/include/panther_gazebo/gz_panther_system.hpp
rafal-gorecki Aug 13, 2024
f4c4a25
Update panther_gazebo/src/gz_panther_system.cpp
rafal-gorecki Aug 13, 2024
093d874
Update panther_gazebo/src/gz_panther_system.cpp
rafal-gorecki Aug 13, 2024
6056924
Dawid suggestions
rafal-gorecki Aug 13, 2024
ae4b8d0
delete typo
rafal-gorecki Aug 13, 2024
9402d84
Ros2 battery estimation (#376)
BOOTCFG Aug 14, 2024
f6e1102
Merge remote-tracking branch 'origin/ros2-devel' into ros2-unify-file…
pawelirh Aug 14, 2024
4953c80
Minor modifications
pawelirh Aug 14, 2024
82d8385
Move BT plugins to src directory
pawelirh Aug 14, 2024
91907d2
Reorganize test utilities in hardware_interfaces
pawelirh Aug 14, 2024
2780ca2
Merge pull request #386 from husarion/ros2-unify-filenames
pawelirh Aug 14, 2024
800d1fa
Merge remote-tracking branch 'origin/ros2-devel' into ros2-testing-poc
pawelirh Aug 14, 2024
dfae2f6
Merge remote-tracking branch 'origin/ros2-devel' into ros2-testing-poc
pawelirh Aug 14, 2024
f8fb36e
Add missing module configuration
pawelirh Aug 14, 2024
25d7c3e
Merge pull request #389 from husarion/hotfix-ssh-lib
KmakD Aug 16, 2024
de62c22
Merge remote-tracking branch 'origin/ros2-devel' into ros2-testing-poc
pawelirh Aug 16, 2024
27002fd
Update panther_gazebo/include/panther_gazebo/gz_panther_system.hpp
rafal-gorecki Aug 19, 2024
9a502af
Dawid suggestions
rafal-gorecki Aug 19, 2024
89a3905
Merge pull request #383 from husarion/ros-sim-estop
KmakD Aug 19, 2024
4dd6069
update docs
KmakD Aug 19, 2024
1eb483d
Merge branch 'ros2-devel' of https://github.com/husarion/panther_ros …
KmakD Aug 19, 2024
f9d0c06
Extend filesystem responsibility
pawelirh Aug 19, 2024
efec5c1
Update ROS_API.md
KmakD Aug 20, 2024
7a01d80
update names
KmakD Aug 20, 2024
fbe52cc
Merge pull request #388 from husarion/ros2-add-nmea-gps
pawelirh Aug 20, 2024
6d60eb1
Add new common utility functions
pawelirh Aug 20, 2024
9a4864f
System monitor improvements
pawelirh Aug 20, 2024
8005a9d
Round temperature precision
pawelirh Aug 20, 2024
7683c7b
Implement filesystem unit tests
pawelirh Aug 20, 2024
b516fa2
Formatting
pawelirh Aug 20, 2024
4248f59
Add integration tests condition
pawelirh Aug 20, 2024
c3978f0
Update ROS_API.md
rafal-gorecki Aug 21, 2024
72fca82
Review changes
pawelirh Aug 21, 2024
cdafc74
Merge pull request #349 from husarion/ros2-testing-poc
KmakD Aug 21, 2024
415a28e
Add pre-commit workflow (#395)
rafal-gorecki Aug 22, 2024
87fdb4c
Merge branch 'ros2-devel' into ros2-ns-refactor
rafal-gorecki Aug 27, 2024
c5eb7ca
Merge pull request #374 from husarion/ros2-ns-refactor
pawelirh Aug 27, 2024
2249998
LEDStrip plugin to Gazebo (#391)
rafal-gorecki Aug 28, 2024
7cf4b1e
gz_estop_gui
rafal-gorecki Aug 30, 2024
b2eac41
Merge pull request #400 from husarion/ros2-update-sim-api
pawelirh Aug 30, 2024
c61fc58
Remove deprecated --namespace arg
rafal-gorecki Sep 2, 2024
85a7d6c
Merge pull request #403 from husarion/ros2-control-ns-fix
KmakD Sep 2, 2024
6b25bf6
Update pr template (#402)
pawelirh Sep 2, 2024
bb57407
Update changelog
Sep 5, 2024
fbf5e79
2.1.1
Sep 5, 2024
caa2b3c
Merge pull request #405 from husarion/release-2.1.1
github-actions[bot] Sep 5, 2024
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
4 changes: 4 additions & 0 deletions .docs/panther_ros2_api.drawio.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
13 changes: 10 additions & 3 deletions .github/pull_request_template.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,14 @@
### Description

[Summary of the changes]
-

### Modifications
### Requirements

-
- [ ] Code style guidelines followed
- [ ] Documentation updated

### Tests 🧪

- [ ] Robot
- [ ] Container
- [ ] Simulation
11 changes: 11 additions & 0 deletions .github/workflows/pre-commit.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
---
name: Pre-Commit

on:
push:

jobs:
pre-commit:
uses: ros-controls/ros2_control_ci/.github/workflows/reusable-pre-commit.yml@master
with:
ros_distro: humble
10 changes: 5 additions & 5 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ repos:
- id: cmake-format

- repo: https://github.com/pre-commit/mirrors-clang-format
rev: v18.1.6
rev: v18.1.8
hooks:
- id: clang-format

Expand All @@ -51,7 +51,7 @@ repos:
"--ignore-words-list",
"ned" # north, east, down (NED)
]
exclude_types: [rst]
exclude_types: [rst, svg]
language: python
types: [text]

Expand All @@ -63,13 +63,13 @@ repos:
args: [--mapping, '2', --sequence, '4', --offset, '2', --width, '100']

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

- repo: https://github.com/PyCQA/flake8
rev: 7.1.0
rev: 7.1.1
hooks:
- id: flake8
args:
Expand All @@ -94,7 +94,7 @@ repos:
exclude: ^.*\/CHANGELOG\.rst/.*$

- repo: https://github.com/tier4/pre-commit-hooks-ros
rev: v0.8.0
rev: v0.10.0
hooks:
- id: prettier-package-xml
- id: sort-package-xml
54 changes: 54 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,11 @@ ROS 2 packages for Panther autonomous mobile robot

[![pre-commit](https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit)](https://github.com/pre-commit/pre-commit)

<picture>
<source media="(prefers-color-scheme: dark)" srcset="https://github-readme-figures.s3.eu-central-1.amazonaws.com/panther/panther_ros/day_with_lights.png">
<img alt="Panther preview" src="https://github-readme-figures.s3.eu-central-1.amazonaws.com/panther/panther_ros/day_no_lights.png">
</picture>

## Quick start

### Create workspace
Expand Down Expand Up @@ -66,6 +71,55 @@ Simulation:
ros2 launch panther_gazebo simulation.launch.py
```

### Launch Arguments

Launch arguments are largely common to both simulation and physical robot. However, there is a group of arguments that apply only to hardware or only to the simulator. Below is a legend to the tables with all launch arguments.

| Symbol | Meaning |
| ------ | ---------------------------- |
| 🤖 | Available for physical robot |
| 🖥️ | Available in simulation |

| | Argument | Description <br/> ***Type:*** `Default` |
| --- | ---------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| 🖥️ | `add_wheel_joints` | Flag enabling joint_state_publisher to publish information about the wheel position. Should be false when there is a controller that sends this information. <br/> ***bool:*** `False` |
| 🖥️ | `add_world_transform` | Adds a world frame that connects the tf trees of individual robots (useful when running multiple robots). <br/> ***bool:*** `False` |
| 🖥️ | `battery_config_path` | Path to the Ignition LinearBatteryPlugin configuration file. This configuration is intended for use in simulations only. <br/> ***string:*** `None` |
| 🤖🖥️ | `components_config_path` | Additional components configuration file. Components described in this file are dynamically included in Panther's urdf. Panther options are described in [the manual](https://husarion.com/manuals/panther/panther-options). <br/> ***string:*** [`components.yaml`](./panther_description/config/components.yaml) |
| 🤖🖥️ | `controller_config_path` | Path to controller configuration file. A path to custom configuration can be specified here. <br/> ***string:*** [`{wheel_type}_controller.yaml`](./panther_controller/config/) |
| 🤖 | `disable_manager` | Enable or disable manager_bt_node. <br/> ***bool:*** `False` |
| 🤖🖥️ | `fuse_gps` | Include GPS for data fusion. <br/> ***bool:*** `False` |
| 🖥️ | `gz_bridge_config_path` | Path to the parameter_bridge configuration file. <br/> ***string:*** [`gz_bridge.yaml`](./panther_gazebo/config/gz_bridge.yaml) |
| 🖥️ | `gz_gui` | Run simulation with specific GUI layout. <br/> ***string:*** [`teleop.config`](https://github.com/husarion/husarion_gz_worlds/blob/main/config/teleop.config) |
| 🖥️ | `gz_headless_mode` | Run the simulation in headless mode. Useful when a GUI is not needed or to reduce the number of calculations. <br/> ***bool:*** `False` |
| 🖥️ | `gz_log_level` | Adjust the level of console output. <br/> ***int:*** `1` (choices: `0`, `1`, `2`, `3`, `4`) |
| 🖥️ | `gz_world` | Absolute path to SDF world file. <br/> ***string:*** [`husarion_world.sdf`](https://github.com/husarion/husarion_gz_worlds/blob/main/worlds/husarion_world.sdf) |
| 🤖 | `launch_nmea_gps` | Whether to launch the NMEA NavSat driver node. Advisable when the robot is equipped with the [ANT02](https://husarion.com/manuals/panther/panther-options/#ant02---wi-fi--lte--gps). <br/> ***bool:*** `False` |
| 🤖🖥️ | `led_config_file` | Path to a YAML file with a description of led configuration. This file includes definition of robot panels, virtual segments and default animations. <br/> ***string:*** [`led_config.yaml`](./panther_lights/config/led_config.yaml) |
| 🤖🖥️ | `lights_bt_project_path` | Path to BehaviorTree project file, responsible for lights management. <br/> ***string:*** [`PantherLightsBT.btproj`](./panther_manager/behavior_trees/PantherLightsBT.btproj) |
| 🤖🖥️ | `localization_config_path` | Specify the path to the localization configuration file. <br/> ***string:*** [`relative_localization.yaml`](./panther_localization/config/relative_localization.yaml) |
| 🤖🖥️ | `localization_mode` | Specifies the localization mode: <br/>- 'relative' `odometry/filtered` data is relative to the initial position and orientation. <br/>- 'enu' `odometry/filtered` data is relative to initial position and ENU (East North Up) orientation. <br/> ***string:*** `relative` (choices: `relative`, `enu`) |
| 🤖🖥️ | `namespace` | Add namespace to all launched nodes. <br/> ***string:*** `env(ROBOT_NAMESPACE)` |
| 🤖🖥️ | `publish_robot_state` | Whether to publish the default Panther robot description. <br/> ***bool:*** `True` |
| 🖥️ | `robots` | The list of the robots spawned in the simulation e.g. `robots:='robot1={x: 1.0, y: -2.0}; robot2={x: 1.0, y: -4.0}'` <br/> ***string:*** `''` |
| 🤖🖥️ | `safety_bt_project_path` | Path to BehaviorTree project file, responsible for safety and shutdown management. <br/> ***string:*** [`PantherSafetyBT.btproj`](./panther_manager/behavior_trees/PantherSafetyBT.btproj) |
| 🤖🖥️ | `shutdown_hosts_config_path` | Path to file with list of hosts to request shutdown. <br/> ***string:*** [`shutdown_hosts_config.yaml`](./panther_manager/config/shutdown_hosts_config.yaml) |
| 🤖🖥️ | `use_ekf` | Enable or disable EKF. <br/> ***bool:*** `True` |
| 🤖🖥️ | `use_sim` | Whether simulation is used. <br/> ***bool:*** `False` |
| 🤖🖥️ | `user_led_animations_file` | Path to a YAML file with a description of the user-defined animations. <br/> ***string:*** `''` |
| 🤖🖥️ | `wheel_config_path` | Path to wheel configuration file. <br/> ***string:*** [`{wheel_type}.yaml`](./panther_description/config) |
| 🤖🖥️ | `wheel_type` | Type of wheel. If you choose a value from the preset options ('WH01', 'WH02', 'WH04'), you can ignore the 'wheel_config_path' and 'controller_config_path' parameters. For custom wheels, please define these parameters to point to files that accurately describe the custom wheels. <br/> ***string:*** `WH01` (choices: `WH01`, `WH02`, `WH04`, `custom`) |
| 🖥️ | `x` | Initial robot position in the global 'x' axis. <br/> ***float:*** `0.0` |
| 🖥️ | `y` | Initial robot position in the global 'y' axis. <br/> ***float:***` -2.0` |
| 🖥️ | `z` | Initial robot position in the global 'z' axis. <br/> ***float:*** `0.2` |
| 🖥️ | `roll` | Initial robot 'roll' orientation. <br/> ***float:*** `0.0` |
| 🖥️ | `pitch` | Initial robot 'pitch' orientation. <br/> ***float:*** `0.0` |
| 🖥️ | `yaw` | Initial robot 'yaw' orientation. <br/> ***float:*** `0.0` |

> [!TIP]
>
> To read the arguments for individual packages, add the `-s` flag to the `ros2 launch` command (e.g. `ros2 launch panther_bringup bringup.launch.py ​​-s`)

## Developer Info

### Setup pre-commit
Expand Down
Loading