Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -7,3 +7,6 @@ install/
.venv/
__pycache__/
data/

CLAUDE.md
NOTES.md
25,627 changes: 25,002 additions & 625 deletions data/planned_path.csv

Large diffs are not rendered by default.

Binary file modified data/planned_path.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
133 changes: 0 additions & 133 deletions potential_fields/CHANGELOG.rst

This file was deleted.

4 changes: 2 additions & 2 deletions potential_fields/config/pfield_config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,12 @@ pfield_manager:
visualize_pf_frequency: 10.0 # [Hz]
attractive_gain: 3.0 # [Nm]
rotational_attractive_gain: 0.15 # [Nm/rad]
repulsive_gain: 0.6 # [Nm]
repulsive_gain: 0.3 # [Nm]
max_linear_velocity: 0.05 # [m/s]
max_angular_velocity: 0.4 # [rad/s]
max_linear_acceleration: 1.0 # [m/s^2]
max_angular_acceleration: 0.2 # [rad/s^2]
influence_distance: 0.2 # Influence distance for obstacle repulsion [m]
influence_distance: 0.1 # Influence distance for obstacle repulsion [m]
visualize_field_vectors: false # Whether to visualize the potential field vectors (Slows down computation if true)
visualizer_buffer_area: 0.5 # Extra area around obstacles and goal to visualize the PF [m]
field_resolution: 1.0 # Resolution to show PF velocity arrows in RViz [m]
Original file line number Diff line number Diff line change
Expand Up @@ -152,6 +152,40 @@ class PotentialFieldManager : public rclcpp::Node {
*/
MarkerArray createObstacleMarkers(std::shared_ptr<pfield::PotentialField> pf);

/**
* @brief Build obstacle shape markers and their semi-transparent influence-zone overlays
* for all environment and robot obstacles.
*
* @param obstacles Combined list of environment and robot obstacles.
* @param influenceDistance Repulsive influence radius [m].
* @return MarkerArray Markers in namespaces "robot_obstacles", "environment_obstacles",
* and "environment_influence_zones".
*/
MarkerArray createObstaclesWithInfluenceZoneMarkerArray(
const std::vector<pfield::PotentialFieldObstacle>& obstacles,
double influenceDistance);

/**
* @brief Build semi-transparent ghost mesh markers for CAPSULE robot obstacles that
* were fitted from a mesh, so the original mesh is visible alongside the capsule
* approximation in RViz.
*
* @param robotObstacles Robot link obstacles.
* @return MarkerArray Markers in namespace "robot_mesh_ghost".
*/
MarkerArray createGhostMeshOverlayMarkerArray(
const std::vector<pfield::PotentialFieldObstacle>& robotObstacles);

/**
* @brief Build small sphere markers at each robot link control point used by the
* whole-body velocity repulsion, for visualization in RViz.
*
* @param robotObstacles Robot link obstacles.
* @return MarkerArray Markers in namespace "robot_control_points".
*/
MarkerArray createRobotLinkControlPointsMarkerArray(
const std::vector<pfield::PotentialFieldObstacle>& robotObstacles);

/**
* @brief Create a marker for the goal position in the potential field
*
Expand Down
Loading
Loading