Skip to content

Commit

Permalink
Merge pull request #406 from husarion/2.1.1-20240828
Browse files Browse the repository at this point in the history
Release 2.1.1 to ros2
  • Loading branch information
github-actions[bot] authored Sep 5, 2024
2 parents 2fb4b49 + caa2b3c commit 3a68979
Show file tree
Hide file tree
Showing 228 changed files with 5,671 additions and 3,305 deletions.
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

0 comments on commit 3a68979

Please sign in to comment.