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

Ros2 docking charging dock wibotic msgs #436

Merged
merged 25 commits into from
Nov 19, 2024
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
c9faeb3
Fixed namespaces and updated ros_component_description
delihus Oct 10, 2024
076a5dc
Changed GetDockPose approach
delihus Oct 29, 2024
1b09ff7
Cleanup charger
delihus Oct 29, 2024
72a6b81
Added unit tests
delihus Oct 29, 2024
d212d79
Update docs:
delihus Oct 30, 2024
791fc8f
Merge remote-tracking branch 'origin/ros2-docking' into ros2-docking-…
delihus Oct 30, 2024
d4edaaf
Fix upside down
delihus Oct 31, 2024
4a04543
Added updateAndPublishStagingPose method
delihus Oct 31, 2024
4a23171
Added suggestins | added reading docking_server parameter is dock pos…
delihus Oct 31, 2024
38186f8
Remove redundant tests
delihus Nov 4, 2024
5b6f5c7
Added reading wibotic_info
delihus Oct 7, 2024
6e96685
Added launching wibotic_connector_can
delihus Nov 5, 2024
12ed571
Added right condition to wibotic_connector_can
delihus Nov 5, 2024
def8fd2
wibotic_ros is needed to build
delihus Nov 12, 2024
7ae2294
Update repose, update parameters
delihus Nov 12, 2024
860b1cf
Merge remote-tracking branch 'origin/ros2-docking' into ros2-docking-…
delihus Nov 12, 2024
bef1139
Added condition for use_docking
delihus Nov 12, 2024
4977ccb
update repose
delihus Nov 12, 2024
b6624d4
Fixed use_wibotic_info param
delihus Nov 15, 2024
90ca7aa
Merge remote-tracking branch 'origin/ros2-docking' into ros2-docking-…
delihus Nov 15, 2024
7605e89
Merge remote-tracking branch 'origin/ros2-docking-charging-dock-wibot…
delihus Nov 15, 2024
0a84793
Rafal's suggestions applied
delihus Nov 15, 2024
48374e1
README update and comment delete
delihus Nov 19, 2024
f2af2f8
Update docs
delihus Nov 19, 2024
8f82837
Update .repose
delihus Nov 19, 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
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -109,6 +109,7 @@ Launch arguments are largely common to both simulation and physical robot. Howev
| 🤖🖥️ | `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:*** `''` |
| 🤖🖥️ | `panther_charging_dock.use_wibotic_info` | Use readings from `wibotic_info` topics to ensure that a robot is charging. <br/> **bool**: `True` |
rafal-gorecki marked this conversation as resolved.
Show resolved Hide resolved
| 🤖🖥️ | `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` |
Expand Down
14 changes: 7 additions & 7 deletions panther_docking/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -46,10 +46,10 @@ The package contains a `PantherChargingDock` plugin for the [opennav_docking](ht

- `base_frame` [*string*, default: **base_link**]: A base frame id of a robot.
- `fixed_frame` [*string*, default: **odom**]: A fixed frame id of a robot.
- `<dock_type>.external_detection_timeout` [*double*, default: **0.2**]: A timeout in seconds for looking up a transformation from an april tag of a dock to a base frame id.
- `<dock_type>.docking_distance_threshold` [*double*, default: **0.05**]: A threshold of a distance between a robot pose and a dock pose to declare if docking succeed.
- `<dock_type>.docking_yaw_threshold` [*double*, default: **0.3**]: A threshold of a difference of yaw angles between a robot pose and a dock pose to declare if docking succeed.
- `<dock_type>.staging_x_offset` [*double*, default: **-0.7**]: A staging pose is defined by offsetting a dock pose in axis X.
- `<dock_type>.filter_coef` [*double*, default: **0.1**]: A key parameter that influences the trade-off between the filter's responsiveness and its smoothness, balancing how quickly it reacts to new pose data pose how much it smooths out fluctuations.
- `<dock_type>.use_wibotic_info` [*bool*, default: **True**]: Use readings from `wibotic_info` topics to ensure that a robot is charging.
- `<dock_type>.wibotic_info_timeout` [*double*, default: **0.2**]: A timeout in seconds for wibotic_info.
- `panther_charging_dock.external_detection_timeout` [*double*, default: **0.2**]: A timeout in seconds for looking up a transformation from an april tag of a dock to a base frame id.
- `panther_charging_dock.docking_distance_threshold` [*double*, default: **0.05**]: A threshold of a distance between a robot pose and a dock pose to declare if docking succeed.
- `panther_charging_dock.docking_yaw_threshold` [*double*, default: **0.3**]: A threshold of a difference of yaw angles between a robot pose and a dock pose to declare if docking succeed.
- `panther_charging_dock.staging_x_offset` [*double*, default: **-0.7**]: A staging pose is defined by offsetting a dock pose in axis X.
- `panther_charging_dock.filter_coef` [*double*, default: **0.1**]: A key parameter that influences the trade-off between the filter's responsiveness and its smoothness, balancing how quickly it reacts to new pose data pose how much it smooths out fluctuations.
- `panther_charging_dock.use_wibotic_info` [*bool*, default: **True**]: Use readings from `wibotic_info` topics to ensure that a robot is charging.
- `panther_charging_dock.wibotic_info_timeout` [*double*, default: **1.5**]: A timeout in seconds to receive wibotic_info.
Original file line number Diff line number Diff line change
Expand Up @@ -155,16 +155,14 @@ class PantherChargingDock : public opennav_docking_core::ChargingDock
/**
* @brief Set the dock pose.
*
* This method sets the dock pose. It can be used as a callback for a subscription.
* This method sets the dock pose. It can be used as a callback for a subscription.
rafal-gorecki marked this conversation as resolved.
Show resolved Hide resolved
*
* @param pose The dock pose.
*/
void setDockPose(const PoseStampedMsg::SharedPtr pose);

/**
* @brief Set the Wibotic info.
*
* This method sets the Wibotic info. It can be used as a callback for a subscription.
* @brief Wibotic info callback, used when `use_wibotic_info` is enabled.
*
* @param msg The Wibotic info message.
*/
Expand Down
10 changes: 6 additions & 4 deletions panther_docking/launch/docking.launch.py
Original file line number Diff line number Diff line change
Expand Up @@ -151,14 +151,16 @@ def generate_launch_description():
name="docking_manager",
parameters=[
PathJoinSubstitution([panther_manager_dir, "config", "docking_manager.yaml"]),
{"bt_project_path": PathJoinSubstitution(
[panther_manager_dir, "behavior_trees", "DockingBT.btproj"])},
{
"bt_project_path": PathJoinSubstitution(
[panther_manager_dir, "behavior_trees", "DockingBT.btproj"]
)
},
],
namespace=namespace,
emulate_tty=True,
)


return LaunchDescription(
[
declare_use_docking_arg,
Expand All @@ -170,6 +172,6 @@ def generate_launch_description():
docking_server_activate_node,
dock_pose_publisher,
wibotic_connector_can,
docking_manager_node
docking_manager_node,
]
)
2 changes: 1 addition & 1 deletion panther_docking/package.xml
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@
<depend>geometry_msgs</depend>
<depend>nav2_util</depend>
<depend>opennav_docking</depend>
<depend>panther_manager</depend>
<depend>panther_utils</depend>
<depend>pluginlib</depend>
<depend>python3-pip</depend>
Expand All @@ -28,7 +29,6 @@
<depend>wibotic_msgs</depend>

<!-- FIXME: Remove before release -->
<depend >panther_manager</depend>

<exec_depend>nav2_lifecycle_manager</exec_depend>
<exec_depend>python3-imageio</exec_depend>
Expand Down
3 changes: 1 addition & 2 deletions panther_docking/src/panther_charging_dock.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -45,11 +45,10 @@ void PantherChargingDock::configure(
declareParameters(node);
getParameters(node);

if(!use_wibotic_info_){
if (!use_wibotic_info_) {
RCLCPP_INFO(logger_, "Wibotic info is disabled.");
}


pose_filter_ = std::make_unique<opennav_docking::PoseFilter>(
pose_filter_coef_, external_detection_timeout_);
}
Expand Down