|
potential_fields_interfaces package from potential_fields repopotential_fields potential_fields_demos potential_fields_interfaces potential_fields_library |
ROS Distro
|
Package Summary
| Version | 1.0.2 |
| License | Apache 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://github.com/argallab/potential_fields.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-04-05 |
| Dev Status | DEVELOPED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Sharwin Patil
Authors
potential_fields_interfaces
ROS 2 message and service definitions for the potential_fields package. All nodes in this repository communicate using these types.
Messages
Obstacle.msg
Describes a single obstacle in the potential field environment.
| Field | Type | Used by | Description |
|---|---|---|---|
frame_id |
string |
all | Unique identifier for this obstacle (e.g. "wall_1") |
type |
string |
all | Shape: "Sphere", "Box", "Cylinder", "Ellipsoid", "Capsule", or "Mesh"
|
group |
string |
all | Class: "Static", "Dynamic", or "Robot"
|
pose |
geometry_msgs/Pose |
all | World-frame center position and orientation |
radius |
float32 |
Sphere, Cylinder, Capsule | Radius of the shape |
height |
float32 |
Box, Cylinder, Capsule | Height / full extent along Z |
length |
float32 |
Box | Full extent along X |
width |
float32 |
Box | Full extent along Y |
semi_x |
float32 |
Ellipsoid | Semi-axis along X |
semi_y |
float32 |
Ellipsoid | Semi-axis along Y |
semi_z |
float32 |
Ellipsoid | Semi-axis along Z |
mesh_resource |
string |
Mesh | URI to mesh file (e.g. package://my_robot/meshes/link.dae) |
scale_x/y/z |
float32 |
Mesh | Per-axis mesh scale |
ObstacleArray.msg
A stamped array of Obstacle messages, published to pfield/obstacles.
| Field | Type | Description |
|---|---|---|
header |
std_msgs/Header |
Timestamp and frame |
obstacles |
Obstacle[] |
List of obstacles |
CLI examples — one per shape type
# Sphere (radius = 0.1 m)
ros2 topic pub --once /pfield/obstacles potential_fields_interfaces/msg/ObstacleArray "{
header: {frame_id: 'world'},
obstacles: [{
frame_id: 'ball', type: 'Sphere', group: 'Static',
pose: {position: {x: 0.4, y: 0.0, z: 0.1}, orientation: {w: 1.0}},
radius: 0.1
}]
}"
# Box (15 cm × 70 cm × 60 cm)
ros2 topic pub --once /pfield/obstacles potential_fields_interfaces/msg/ObstacleArray "{
header: {frame_id: 'world'},
obstacles: [{
frame_id: 'table', type: 'Box', group: 'Static',
pose: {position: {x: 0.66, y: 0.0, z: 0.3}, orientation: {w: 1.0}},
length: 0.15, width: 0.7, height: 0.6
}]
}"
# Cylinder (radius = 9 cm, height = 30 cm)
ros2 topic pub --once /pfield/obstacles potential_fields_interfaces/msg/ObstacleArray "{
header: {frame_id: 'world'},
obstacles: [{
frame_id: 'pitcher', type: 'Cylinder', group: 'Static',
pose: {position: {x: 0.51, y: 0.0, z: 0.15}, orientation: {w: 1.0}},
radius: 0.09, height: 0.3
}]
}"
# Ellipsoid (semi-axes 8 cm × 5 cm × 12 cm)
ros2 topic pub --once /pfield/obstacles potential_fields_interfaces/msg/ObstacleArray "{
header: {frame_id: 'world'},
obstacles: [{
frame_id: 'ellipsoid_obs', type: 'Ellipsoid', group: 'Static',
pose: {position: {x: 0.5, y: 0.1, z: 0.2}, orientation: {w: 1.0}},
semi_x: 0.08, semi_y: 0.05, semi_z: 0.12
}]
}"
# Capsule (radius = 5 cm, shaft length = 20 cm)
ros2 topic pub --once /pfield/obstacles potential_fields_interfaces/msg/ObstacleArray "{
header: {frame_id: 'world'},
obstacles: [{
frame_id: 'capsule_obs', type: 'Capsule', group: 'Static',
pose: {position: {x: 0.45, y: 0.0, z: 0.2}, orientation: {w: 1.0}},
radius: 0.05, height: 0.2
}]
}"
# Mesh
ros2 topic pub --once /pfield/obstacles potential_fields_interfaces/msg/ObstacleArray "{
header: {frame_id: 'world'},
obstacles: [{
frame_id: 'mesh_obs', type: 'Mesh', group: 'Static',
pose: {position: {x: 0.5, y: 0.0, z: 0.1}, orientation: {w: 1.0}},
mesh_resource: 'package://my_robot_description/meshes/obstacle.dae',
scale_x: 1.0, scale_y: 1.0, scale_z: 1.0
}]
}"
Services
File truncated at 100 lines see the full file
Changelog for package potential_fields_interfaces
1.0.2 (2026-04-04)
- Clarified Obstacle type's geometry fields
- New READMEs for demos and interfaces
- Estimate Robot Geometry using Ellipsoids and Control Points for smooth WBV Repulsion (#42) Co-authored-by: Claude Sonnet 4.6 <<noreply@anthropic.com>>
- 1.0.1
- Rename Packages (#35)
- December Final Demos (#26)
- Use Robot Dynamics to convert Joint Torques to Joint Velocities (#24)
- Updating ComputeAutonomyVector
- Collision Avoidance between robot links and environment obstacles (#21)
- Merge branch 'main' of github.com:argallab/pfields_2025
- Merged RobotParser into PFieldManager (#10)
- PlanPath Service Demo (#7)
- Planning "World" for path-planning with robot (#6)
- Motion Interface (#5)
- Update license to Apache 2.0
- Updating email to northwestern email for packages
- Custom service to plan path in PF
- Merge pull request #4 from argallab/demo-package Example Package
- Created robot parser node to listen for the transforms and parse the URDF collision objects
- Created an interfaces package
- Contributors: Sharwin Patil, Sharwin24
Package Dependencies
| Deps | Name |
|---|---|
| rosidl_default_generators | |
| ament_cmake | |
| rosidl_default_runtime | |
| ament_lint_auto | |
| ament_lint_common | |
| ament_cmake_copyright | |
| std_msgs | |
| geometry_msgs | |
| nav_msgs | |
| trajectory_msgs | |
| builtin_interfaces |
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| potential_fields | |
| potential_fields_demos |
Launch files
Messages
Plugins
Recent questions tagged potential_fields_interfaces at Robotics Stack Exchange
|
potential_fields_interfaces package from potential_fields repopotential_fields potential_fields_demos potential_fields_interfaces potential_fields_library |
ROS Distro
|
Package Summary
| Version | 1.0.2 |
| License | Apache 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://github.com/argallab/potential_fields.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-04-05 |
| Dev Status | DEVELOPED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Sharwin Patil
Authors
potential_fields_interfaces
ROS 2 message and service definitions for the potential_fields package. All nodes in this repository communicate using these types.
Messages
Obstacle.msg
Describes a single obstacle in the potential field environment.
| Field | Type | Used by | Description |
|---|---|---|---|
frame_id |
string |
all | Unique identifier for this obstacle (e.g. "wall_1") |
type |
string |
all | Shape: "Sphere", "Box", "Cylinder", "Ellipsoid", "Capsule", or "Mesh"
|
group |
string |
all | Class: "Static", "Dynamic", or "Robot"
|
pose |
geometry_msgs/Pose |
all | World-frame center position and orientation |
radius |
float32 |
Sphere, Cylinder, Capsule | Radius of the shape |
height |
float32 |
Box, Cylinder, Capsule | Height / full extent along Z |
length |
float32 |
Box | Full extent along X |
width |
float32 |
Box | Full extent along Y |
semi_x |
float32 |
Ellipsoid | Semi-axis along X |
semi_y |
float32 |
Ellipsoid | Semi-axis along Y |
semi_z |
float32 |
Ellipsoid | Semi-axis along Z |
mesh_resource |
string |
Mesh | URI to mesh file (e.g. package://my_robot/meshes/link.dae) |
scale_x/y/z |
float32 |
Mesh | Per-axis mesh scale |
ObstacleArray.msg
A stamped array of Obstacle messages, published to pfield/obstacles.
| Field | Type | Description |
|---|---|---|
header |
std_msgs/Header |
Timestamp and frame |
obstacles |
Obstacle[] |
List of obstacles |
CLI examples — one per shape type
# Sphere (radius = 0.1 m)
ros2 topic pub --once /pfield/obstacles potential_fields_interfaces/msg/ObstacleArray "{
header: {frame_id: 'world'},
obstacles: [{
frame_id: 'ball', type: 'Sphere', group: 'Static',
pose: {position: {x: 0.4, y: 0.0, z: 0.1}, orientation: {w: 1.0}},
radius: 0.1
}]
}"
# Box (15 cm × 70 cm × 60 cm)
ros2 topic pub --once /pfield/obstacles potential_fields_interfaces/msg/ObstacleArray "{
header: {frame_id: 'world'},
obstacles: [{
frame_id: 'table', type: 'Box', group: 'Static',
pose: {position: {x: 0.66, y: 0.0, z: 0.3}, orientation: {w: 1.0}},
length: 0.15, width: 0.7, height: 0.6
}]
}"
# Cylinder (radius = 9 cm, height = 30 cm)
ros2 topic pub --once /pfield/obstacles potential_fields_interfaces/msg/ObstacleArray "{
header: {frame_id: 'world'},
obstacles: [{
frame_id: 'pitcher', type: 'Cylinder', group: 'Static',
pose: {position: {x: 0.51, y: 0.0, z: 0.15}, orientation: {w: 1.0}},
radius: 0.09, height: 0.3
}]
}"
# Ellipsoid (semi-axes 8 cm × 5 cm × 12 cm)
ros2 topic pub --once /pfield/obstacles potential_fields_interfaces/msg/ObstacleArray "{
header: {frame_id: 'world'},
obstacles: [{
frame_id: 'ellipsoid_obs', type: 'Ellipsoid', group: 'Static',
pose: {position: {x: 0.5, y: 0.1, z: 0.2}, orientation: {w: 1.0}},
semi_x: 0.08, semi_y: 0.05, semi_z: 0.12
}]
}"
# Capsule (radius = 5 cm, shaft length = 20 cm)
ros2 topic pub --once /pfield/obstacles potential_fields_interfaces/msg/ObstacleArray "{
header: {frame_id: 'world'},
obstacles: [{
frame_id: 'capsule_obs', type: 'Capsule', group: 'Static',
pose: {position: {x: 0.45, y: 0.0, z: 0.2}, orientation: {w: 1.0}},
radius: 0.05, height: 0.2
}]
}"
# Mesh
ros2 topic pub --once /pfield/obstacles potential_fields_interfaces/msg/ObstacleArray "{
header: {frame_id: 'world'},
obstacles: [{
frame_id: 'mesh_obs', type: 'Mesh', group: 'Static',
pose: {position: {x: 0.5, y: 0.0, z: 0.1}, orientation: {w: 1.0}},
mesh_resource: 'package://my_robot_description/meshes/obstacle.dae',
scale_x: 1.0, scale_y: 1.0, scale_z: 1.0
}]
}"
Services
File truncated at 100 lines see the full file
Changelog for package potential_fields_interfaces
1.0.2 (2026-04-04)
- Clarified Obstacle type's geometry fields
- New READMEs for demos and interfaces
- Estimate Robot Geometry using Ellipsoids and Control Points for smooth WBV Repulsion (#42) Co-authored-by: Claude Sonnet 4.6 <<noreply@anthropic.com>>
- 1.0.1
- Rename Packages (#35)
- December Final Demos (#26)
- Use Robot Dynamics to convert Joint Torques to Joint Velocities (#24)
- Updating ComputeAutonomyVector
- Collision Avoidance between robot links and environment obstacles (#21)
- Merge branch 'main' of github.com:argallab/pfields_2025
- Merged RobotParser into PFieldManager (#10)
- PlanPath Service Demo (#7)
- Planning "World" for path-planning with robot (#6)
- Motion Interface (#5)
- Update license to Apache 2.0
- Updating email to northwestern email for packages
- Custom service to plan path in PF
- Merge pull request #4 from argallab/demo-package Example Package
- Created robot parser node to listen for the transforms and parse the URDF collision objects
- Created an interfaces package
- Contributors: Sharwin Patil, Sharwin24
Package Dependencies
| Deps | Name |
|---|---|
| rosidl_default_generators | |
| ament_cmake | |
| rosidl_default_runtime | |
| ament_lint_auto | |
| ament_lint_common | |
| ament_cmake_copyright | |
| std_msgs | |
| geometry_msgs | |
| nav_msgs | |
| trajectory_msgs | |
| builtin_interfaces |
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| potential_fields | |
| potential_fields_demos |
Launch files
Messages
Plugins
Recent questions tagged potential_fields_interfaces at Robotics Stack Exchange
|
potential_fields_interfaces package from potential_fields repopotential_fields potential_fields_demos potential_fields_interfaces potential_fields_library |
ROS Distro
|
Package Summary
| Version | 1.0.2 |
| License | Apache 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://github.com/argallab/potential_fields.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-04-05 |
| Dev Status | DEVELOPED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Sharwin Patil
Authors
potential_fields_interfaces
ROS 2 message and service definitions for the potential_fields package. All nodes in this repository communicate using these types.
Messages
Obstacle.msg
Describes a single obstacle in the potential field environment.
| Field | Type | Used by | Description |
|---|---|---|---|
frame_id |
string |
all | Unique identifier for this obstacle (e.g. "wall_1") |
type |
string |
all | Shape: "Sphere", "Box", "Cylinder", "Ellipsoid", "Capsule", or "Mesh"
|
group |
string |
all | Class: "Static", "Dynamic", or "Robot"
|
pose |
geometry_msgs/Pose |
all | World-frame center position and orientation |
radius |
float32 |
Sphere, Cylinder, Capsule | Radius of the shape |
height |
float32 |
Box, Cylinder, Capsule | Height / full extent along Z |
length |
float32 |
Box | Full extent along X |
width |
float32 |
Box | Full extent along Y |
semi_x |
float32 |
Ellipsoid | Semi-axis along X |
semi_y |
float32 |
Ellipsoid | Semi-axis along Y |
semi_z |
float32 |
Ellipsoid | Semi-axis along Z |
mesh_resource |
string |
Mesh | URI to mesh file (e.g. package://my_robot/meshes/link.dae) |
scale_x/y/z |
float32 |
Mesh | Per-axis mesh scale |
ObstacleArray.msg
A stamped array of Obstacle messages, published to pfield/obstacles.
| Field | Type | Description |
|---|---|---|
header |
std_msgs/Header |
Timestamp and frame |
obstacles |
Obstacle[] |
List of obstacles |
CLI examples — one per shape type
# Sphere (radius = 0.1 m)
ros2 topic pub --once /pfield/obstacles potential_fields_interfaces/msg/ObstacleArray "{
header: {frame_id: 'world'},
obstacles: [{
frame_id: 'ball', type: 'Sphere', group: 'Static',
pose: {position: {x: 0.4, y: 0.0, z: 0.1}, orientation: {w: 1.0}},
radius: 0.1
}]
}"
# Box (15 cm × 70 cm × 60 cm)
ros2 topic pub --once /pfield/obstacles potential_fields_interfaces/msg/ObstacleArray "{
header: {frame_id: 'world'},
obstacles: [{
frame_id: 'table', type: 'Box', group: 'Static',
pose: {position: {x: 0.66, y: 0.0, z: 0.3}, orientation: {w: 1.0}},
length: 0.15, width: 0.7, height: 0.6
}]
}"
# Cylinder (radius = 9 cm, height = 30 cm)
ros2 topic pub --once /pfield/obstacles potential_fields_interfaces/msg/ObstacleArray "{
header: {frame_id: 'world'},
obstacles: [{
frame_id: 'pitcher', type: 'Cylinder', group: 'Static',
pose: {position: {x: 0.51, y: 0.0, z: 0.15}, orientation: {w: 1.0}},
radius: 0.09, height: 0.3
}]
}"
# Ellipsoid (semi-axes 8 cm × 5 cm × 12 cm)
ros2 topic pub --once /pfield/obstacles potential_fields_interfaces/msg/ObstacleArray "{
header: {frame_id: 'world'},
obstacles: [{
frame_id: 'ellipsoid_obs', type: 'Ellipsoid', group: 'Static',
pose: {position: {x: 0.5, y: 0.1, z: 0.2}, orientation: {w: 1.0}},
semi_x: 0.08, semi_y: 0.05, semi_z: 0.12
}]
}"
# Capsule (radius = 5 cm, shaft length = 20 cm)
ros2 topic pub --once /pfield/obstacles potential_fields_interfaces/msg/ObstacleArray "{
header: {frame_id: 'world'},
obstacles: [{
frame_id: 'capsule_obs', type: 'Capsule', group: 'Static',
pose: {position: {x: 0.45, y: 0.0, z: 0.2}, orientation: {w: 1.0}},
radius: 0.05, height: 0.2
}]
}"
# Mesh
ros2 topic pub --once /pfield/obstacles potential_fields_interfaces/msg/ObstacleArray "{
header: {frame_id: 'world'},
obstacles: [{
frame_id: 'mesh_obs', type: 'Mesh', group: 'Static',
pose: {position: {x: 0.5, y: 0.0, z: 0.1}, orientation: {w: 1.0}},
mesh_resource: 'package://my_robot_description/meshes/obstacle.dae',
scale_x: 1.0, scale_y: 1.0, scale_z: 1.0
}]
}"
Services
File truncated at 100 lines see the full file
Changelog for package potential_fields_interfaces
1.0.2 (2026-04-04)
- Clarified Obstacle type's geometry fields
- New READMEs for demos and interfaces
- Estimate Robot Geometry using Ellipsoids and Control Points for smooth WBV Repulsion (#42) Co-authored-by: Claude Sonnet 4.6 <<noreply@anthropic.com>>
- 1.0.1
- Rename Packages (#35)
- December Final Demos (#26)
- Use Robot Dynamics to convert Joint Torques to Joint Velocities (#24)
- Updating ComputeAutonomyVector
- Collision Avoidance between robot links and environment obstacles (#21)
- Merge branch 'main' of github.com:argallab/pfields_2025
- Merged RobotParser into PFieldManager (#10)
- PlanPath Service Demo (#7)
- Planning "World" for path-planning with robot (#6)
- Motion Interface (#5)
- Update license to Apache 2.0
- Updating email to northwestern email for packages
- Custom service to plan path in PF
- Merge pull request #4 from argallab/demo-package Example Package
- Created robot parser node to listen for the transforms and parse the URDF collision objects
- Created an interfaces package
- Contributors: Sharwin Patil, Sharwin24
Package Dependencies
| Deps | Name |
|---|---|
| rosidl_default_generators | |
| ament_cmake | |
| rosidl_default_runtime | |
| ament_lint_auto | |
| ament_lint_common | |
| ament_cmake_copyright | |
| std_msgs | |
| geometry_msgs | |
| nav_msgs | |
| trajectory_msgs | |
| builtin_interfaces |
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| potential_fields | |
| potential_fields_demos |
Launch files
Messages
Plugins
Recent questions tagged potential_fields_interfaces at Robotics Stack Exchange
|
potential_fields_interfaces package from potential_fields repopotential_fields potential_fields_demos potential_fields_interfaces potential_fields_library |
ROS Distro
|
Package Summary
| Version | 1.0.2 |
| License | Apache 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://github.com/argallab/potential_fields.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-04-05 |
| Dev Status | DEVELOPED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Sharwin Patil
Authors
potential_fields_interfaces
ROS 2 message and service definitions for the potential_fields package. All nodes in this repository communicate using these types.
Messages
Obstacle.msg
Describes a single obstacle in the potential field environment.
| Field | Type | Used by | Description |
|---|---|---|---|
frame_id |
string |
all | Unique identifier for this obstacle (e.g. "wall_1") |
type |
string |
all | Shape: "Sphere", "Box", "Cylinder", "Ellipsoid", "Capsule", or "Mesh"
|
group |
string |
all | Class: "Static", "Dynamic", or "Robot"
|
pose |
geometry_msgs/Pose |
all | World-frame center position and orientation |
radius |
float32 |
Sphere, Cylinder, Capsule | Radius of the shape |
height |
float32 |
Box, Cylinder, Capsule | Height / full extent along Z |
length |
float32 |
Box | Full extent along X |
width |
float32 |
Box | Full extent along Y |
semi_x |
float32 |
Ellipsoid | Semi-axis along X |
semi_y |
float32 |
Ellipsoid | Semi-axis along Y |
semi_z |
float32 |
Ellipsoid | Semi-axis along Z |
mesh_resource |
string |
Mesh | URI to mesh file (e.g. package://my_robot/meshes/link.dae) |
scale_x/y/z |
float32 |
Mesh | Per-axis mesh scale |
ObstacleArray.msg
A stamped array of Obstacle messages, published to pfield/obstacles.
| Field | Type | Description |
|---|---|---|
header |
std_msgs/Header |
Timestamp and frame |
obstacles |
Obstacle[] |
List of obstacles |
CLI examples — one per shape type
# Sphere (radius = 0.1 m)
ros2 topic pub --once /pfield/obstacles potential_fields_interfaces/msg/ObstacleArray "{
header: {frame_id: 'world'},
obstacles: [{
frame_id: 'ball', type: 'Sphere', group: 'Static',
pose: {position: {x: 0.4, y: 0.0, z: 0.1}, orientation: {w: 1.0}},
radius: 0.1
}]
}"
# Box (15 cm × 70 cm × 60 cm)
ros2 topic pub --once /pfield/obstacles potential_fields_interfaces/msg/ObstacleArray "{
header: {frame_id: 'world'},
obstacles: [{
frame_id: 'table', type: 'Box', group: 'Static',
pose: {position: {x: 0.66, y: 0.0, z: 0.3}, orientation: {w: 1.0}},
length: 0.15, width: 0.7, height: 0.6
}]
}"
# Cylinder (radius = 9 cm, height = 30 cm)
ros2 topic pub --once /pfield/obstacles potential_fields_interfaces/msg/ObstacleArray "{
header: {frame_id: 'world'},
obstacles: [{
frame_id: 'pitcher', type: 'Cylinder', group: 'Static',
pose: {position: {x: 0.51, y: 0.0, z: 0.15}, orientation: {w: 1.0}},
radius: 0.09, height: 0.3
}]
}"
# Ellipsoid (semi-axes 8 cm × 5 cm × 12 cm)
ros2 topic pub --once /pfield/obstacles potential_fields_interfaces/msg/ObstacleArray "{
header: {frame_id: 'world'},
obstacles: [{
frame_id: 'ellipsoid_obs', type: 'Ellipsoid', group: 'Static',
pose: {position: {x: 0.5, y: 0.1, z: 0.2}, orientation: {w: 1.0}},
semi_x: 0.08, semi_y: 0.05, semi_z: 0.12
}]
}"
# Capsule (radius = 5 cm, shaft length = 20 cm)
ros2 topic pub --once /pfield/obstacles potential_fields_interfaces/msg/ObstacleArray "{
header: {frame_id: 'world'},
obstacles: [{
frame_id: 'capsule_obs', type: 'Capsule', group: 'Static',
pose: {position: {x: 0.45, y: 0.0, z: 0.2}, orientation: {w: 1.0}},
radius: 0.05, height: 0.2
}]
}"
# Mesh
ros2 topic pub --once /pfield/obstacles potential_fields_interfaces/msg/ObstacleArray "{
header: {frame_id: 'world'},
obstacles: [{
frame_id: 'mesh_obs', type: 'Mesh', group: 'Static',
pose: {position: {x: 0.5, y: 0.0, z: 0.1}, orientation: {w: 1.0}},
mesh_resource: 'package://my_robot_description/meshes/obstacle.dae',
scale_x: 1.0, scale_y: 1.0, scale_z: 1.0
}]
}"
Services
File truncated at 100 lines see the full file
Changelog for package potential_fields_interfaces
1.0.2 (2026-04-04)
- Clarified Obstacle type's geometry fields
- New READMEs for demos and interfaces
- Estimate Robot Geometry using Ellipsoids and Control Points for smooth WBV Repulsion (#42) Co-authored-by: Claude Sonnet 4.6 <<noreply@anthropic.com>>
- 1.0.1
- Rename Packages (#35)
- December Final Demos (#26)
- Use Robot Dynamics to convert Joint Torques to Joint Velocities (#24)
- Updating ComputeAutonomyVector
- Collision Avoidance between robot links and environment obstacles (#21)
- Merge branch 'main' of github.com:argallab/pfields_2025
- Merged RobotParser into PFieldManager (#10)
- PlanPath Service Demo (#7)
- Planning "World" for path-planning with robot (#6)
- Motion Interface (#5)
- Update license to Apache 2.0
- Updating email to northwestern email for packages
- Custom service to plan path in PF
- Merge pull request #4 from argallab/demo-package Example Package
- Created robot parser node to listen for the transforms and parse the URDF collision objects
- Created an interfaces package
- Contributors: Sharwin Patil, Sharwin24
Package Dependencies
| Deps | Name |
|---|---|
| rosidl_default_generators | |
| ament_cmake | |
| rosidl_default_runtime | |
| ament_lint_auto | |
| ament_lint_common | |
| ament_cmake_copyright | |
| std_msgs | |
| geometry_msgs | |
| nav_msgs | |
| trajectory_msgs | |
| builtin_interfaces |
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| potential_fields | |
| potential_fields_demos |
Launch files
Messages
Plugins
Recent questions tagged potential_fields_interfaces at Robotics Stack Exchange
|
potential_fields_interfaces package from potential_fields repopotential_fields potential_fields_demos potential_fields_interfaces potential_fields_library |
ROS Distro
|
Package Summary
| Version | 1.0.2 |
| License | Apache 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://github.com/argallab/potential_fields.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-04-05 |
| Dev Status | DEVELOPED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Sharwin Patil
Authors
potential_fields_interfaces
ROS 2 message and service definitions for the potential_fields package. All nodes in this repository communicate using these types.
Messages
Obstacle.msg
Describes a single obstacle in the potential field environment.
| Field | Type | Used by | Description |
|---|---|---|---|
frame_id |
string |
all | Unique identifier for this obstacle (e.g. "wall_1") |
type |
string |
all | Shape: "Sphere", "Box", "Cylinder", "Ellipsoid", "Capsule", or "Mesh"
|
group |
string |
all | Class: "Static", "Dynamic", or "Robot"
|
pose |
geometry_msgs/Pose |
all | World-frame center position and orientation |
radius |
float32 |
Sphere, Cylinder, Capsule | Radius of the shape |
height |
float32 |
Box, Cylinder, Capsule | Height / full extent along Z |
length |
float32 |
Box | Full extent along X |
width |
float32 |
Box | Full extent along Y |
semi_x |
float32 |
Ellipsoid | Semi-axis along X |
semi_y |
float32 |
Ellipsoid | Semi-axis along Y |
semi_z |
float32 |
Ellipsoid | Semi-axis along Z |
mesh_resource |
string |
Mesh | URI to mesh file (e.g. package://my_robot/meshes/link.dae) |
scale_x/y/z |
float32 |
Mesh | Per-axis mesh scale |
ObstacleArray.msg
A stamped array of Obstacle messages, published to pfield/obstacles.
| Field | Type | Description |
|---|---|---|
header |
std_msgs/Header |
Timestamp and frame |
obstacles |
Obstacle[] |
List of obstacles |
CLI examples — one per shape type
# Sphere (radius = 0.1 m)
ros2 topic pub --once /pfield/obstacles potential_fields_interfaces/msg/ObstacleArray "{
header: {frame_id: 'world'},
obstacles: [{
frame_id: 'ball', type: 'Sphere', group: 'Static',
pose: {position: {x: 0.4, y: 0.0, z: 0.1}, orientation: {w: 1.0}},
radius: 0.1
}]
}"
# Box (15 cm × 70 cm × 60 cm)
ros2 topic pub --once /pfield/obstacles potential_fields_interfaces/msg/ObstacleArray "{
header: {frame_id: 'world'},
obstacles: [{
frame_id: 'table', type: 'Box', group: 'Static',
pose: {position: {x: 0.66, y: 0.0, z: 0.3}, orientation: {w: 1.0}},
length: 0.15, width: 0.7, height: 0.6
}]
}"
# Cylinder (radius = 9 cm, height = 30 cm)
ros2 topic pub --once /pfield/obstacles potential_fields_interfaces/msg/ObstacleArray "{
header: {frame_id: 'world'},
obstacles: [{
frame_id: 'pitcher', type: 'Cylinder', group: 'Static',
pose: {position: {x: 0.51, y: 0.0, z: 0.15}, orientation: {w: 1.0}},
radius: 0.09, height: 0.3
}]
}"
# Ellipsoid (semi-axes 8 cm × 5 cm × 12 cm)
ros2 topic pub --once /pfield/obstacles potential_fields_interfaces/msg/ObstacleArray "{
header: {frame_id: 'world'},
obstacles: [{
frame_id: 'ellipsoid_obs', type: 'Ellipsoid', group: 'Static',
pose: {position: {x: 0.5, y: 0.1, z: 0.2}, orientation: {w: 1.0}},
semi_x: 0.08, semi_y: 0.05, semi_z: 0.12
}]
}"
# Capsule (radius = 5 cm, shaft length = 20 cm)
ros2 topic pub --once /pfield/obstacles potential_fields_interfaces/msg/ObstacleArray "{
header: {frame_id: 'world'},
obstacles: [{
frame_id: 'capsule_obs', type: 'Capsule', group: 'Static',
pose: {position: {x: 0.45, y: 0.0, z: 0.2}, orientation: {w: 1.0}},
radius: 0.05, height: 0.2
}]
}"
# Mesh
ros2 topic pub --once /pfield/obstacles potential_fields_interfaces/msg/ObstacleArray "{
header: {frame_id: 'world'},
obstacles: [{
frame_id: 'mesh_obs', type: 'Mesh', group: 'Static',
pose: {position: {x: 0.5, y: 0.0, z: 0.1}, orientation: {w: 1.0}},
mesh_resource: 'package://my_robot_description/meshes/obstacle.dae',
scale_x: 1.0, scale_y: 1.0, scale_z: 1.0
}]
}"
Services
File truncated at 100 lines see the full file
Changelog for package potential_fields_interfaces
1.0.2 (2026-04-04)
- Clarified Obstacle type's geometry fields
- New READMEs for demos and interfaces
- Estimate Robot Geometry using Ellipsoids and Control Points for smooth WBV Repulsion (#42) Co-authored-by: Claude Sonnet 4.6 <<noreply@anthropic.com>>
- 1.0.1
- Rename Packages (#35)
- December Final Demos (#26)
- Use Robot Dynamics to convert Joint Torques to Joint Velocities (#24)
- Updating ComputeAutonomyVector
- Collision Avoidance between robot links and environment obstacles (#21)
- Merge branch 'main' of github.com:argallab/pfields_2025
- Merged RobotParser into PFieldManager (#10)
- PlanPath Service Demo (#7)
- Planning "World" for path-planning with robot (#6)
- Motion Interface (#5)
- Update license to Apache 2.0
- Updating email to northwestern email for packages
- Custom service to plan path in PF
- Merge pull request #4 from argallab/demo-package Example Package
- Created robot parser node to listen for the transforms and parse the URDF collision objects
- Created an interfaces package
- Contributors: Sharwin Patil, Sharwin24
Package Dependencies
| Deps | Name |
|---|---|
| rosidl_default_generators | |
| ament_cmake | |
| rosidl_default_runtime | |
| ament_lint_auto | |
| ament_lint_common | |
| ament_cmake_copyright | |
| std_msgs | |
| geometry_msgs | |
| nav_msgs | |
| trajectory_msgs | |
| builtin_interfaces |
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| potential_fields | |
| potential_fields_demos |
Launch files
Messages
Plugins
Recent questions tagged potential_fields_interfaces at Robotics Stack Exchange
|
potential_fields_interfaces package from potential_fields repopotential_fields potential_fields_demos potential_fields_interfaces potential_fields_library |
ROS Distro
|
Package Summary
| Version | 1.0.2 |
| License | Apache 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://github.com/argallab/potential_fields.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-04-05 |
| Dev Status | DEVELOPED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Sharwin Patil
Authors
potential_fields_interfaces
ROS 2 message and service definitions for the potential_fields package. All nodes in this repository communicate using these types.
Messages
Obstacle.msg
Describes a single obstacle in the potential field environment.
| Field | Type | Used by | Description |
|---|---|---|---|
frame_id |
string |
all | Unique identifier for this obstacle (e.g. "wall_1") |
type |
string |
all | Shape: "Sphere", "Box", "Cylinder", "Ellipsoid", "Capsule", or "Mesh"
|
group |
string |
all | Class: "Static", "Dynamic", or "Robot"
|
pose |
geometry_msgs/Pose |
all | World-frame center position and orientation |
radius |
float32 |
Sphere, Cylinder, Capsule | Radius of the shape |
height |
float32 |
Box, Cylinder, Capsule | Height / full extent along Z |
length |
float32 |
Box | Full extent along X |
width |
float32 |
Box | Full extent along Y |
semi_x |
float32 |
Ellipsoid | Semi-axis along X |
semi_y |
float32 |
Ellipsoid | Semi-axis along Y |
semi_z |
float32 |
Ellipsoid | Semi-axis along Z |
mesh_resource |
string |
Mesh | URI to mesh file (e.g. package://my_robot/meshes/link.dae) |
scale_x/y/z |
float32 |
Mesh | Per-axis mesh scale |
ObstacleArray.msg
A stamped array of Obstacle messages, published to pfield/obstacles.
| Field | Type | Description |
|---|---|---|
header |
std_msgs/Header |
Timestamp and frame |
obstacles |
Obstacle[] |
List of obstacles |
CLI examples — one per shape type
# Sphere (radius = 0.1 m)
ros2 topic pub --once /pfield/obstacles potential_fields_interfaces/msg/ObstacleArray "{
header: {frame_id: 'world'},
obstacles: [{
frame_id: 'ball', type: 'Sphere', group: 'Static',
pose: {position: {x: 0.4, y: 0.0, z: 0.1}, orientation: {w: 1.0}},
radius: 0.1
}]
}"
# Box (15 cm × 70 cm × 60 cm)
ros2 topic pub --once /pfield/obstacles potential_fields_interfaces/msg/ObstacleArray "{
header: {frame_id: 'world'},
obstacles: [{
frame_id: 'table', type: 'Box', group: 'Static',
pose: {position: {x: 0.66, y: 0.0, z: 0.3}, orientation: {w: 1.0}},
length: 0.15, width: 0.7, height: 0.6
}]
}"
# Cylinder (radius = 9 cm, height = 30 cm)
ros2 topic pub --once /pfield/obstacles potential_fields_interfaces/msg/ObstacleArray "{
header: {frame_id: 'world'},
obstacles: [{
frame_id: 'pitcher', type: 'Cylinder', group: 'Static',
pose: {position: {x: 0.51, y: 0.0, z: 0.15}, orientation: {w: 1.0}},
radius: 0.09, height: 0.3
}]
}"
# Ellipsoid (semi-axes 8 cm × 5 cm × 12 cm)
ros2 topic pub --once /pfield/obstacles potential_fields_interfaces/msg/ObstacleArray "{
header: {frame_id: 'world'},
obstacles: [{
frame_id: 'ellipsoid_obs', type: 'Ellipsoid', group: 'Static',
pose: {position: {x: 0.5, y: 0.1, z: 0.2}, orientation: {w: 1.0}},
semi_x: 0.08, semi_y: 0.05, semi_z: 0.12
}]
}"
# Capsule (radius = 5 cm, shaft length = 20 cm)
ros2 topic pub --once /pfield/obstacles potential_fields_interfaces/msg/ObstacleArray "{
header: {frame_id: 'world'},
obstacles: [{
frame_id: 'capsule_obs', type: 'Capsule', group: 'Static',
pose: {position: {x: 0.45, y: 0.0, z: 0.2}, orientation: {w: 1.0}},
radius: 0.05, height: 0.2
}]
}"
# Mesh
ros2 topic pub --once /pfield/obstacles potential_fields_interfaces/msg/ObstacleArray "{
header: {frame_id: 'world'},
obstacles: [{
frame_id: 'mesh_obs', type: 'Mesh', group: 'Static',
pose: {position: {x: 0.5, y: 0.0, z: 0.1}, orientation: {w: 1.0}},
mesh_resource: 'package://my_robot_description/meshes/obstacle.dae',
scale_x: 1.0, scale_y: 1.0, scale_z: 1.0
}]
}"
Services
File truncated at 100 lines see the full file
Changelog for package potential_fields_interfaces
1.0.2 (2026-04-04)
- Clarified Obstacle type's geometry fields
- New READMEs for demos and interfaces
- Estimate Robot Geometry using Ellipsoids and Control Points for smooth WBV Repulsion (#42) Co-authored-by: Claude Sonnet 4.6 <<noreply@anthropic.com>>
- 1.0.1
- Rename Packages (#35)
- December Final Demos (#26)
- Use Robot Dynamics to convert Joint Torques to Joint Velocities (#24)
- Updating ComputeAutonomyVector
- Collision Avoidance between robot links and environment obstacles (#21)
- Merge branch 'main' of github.com:argallab/pfields_2025
- Merged RobotParser into PFieldManager (#10)
- PlanPath Service Demo (#7)
- Planning "World" for path-planning with robot (#6)
- Motion Interface (#5)
- Update license to Apache 2.0
- Updating email to northwestern email for packages
- Custom service to plan path in PF
- Merge pull request #4 from argallab/demo-package Example Package
- Created robot parser node to listen for the transforms and parse the URDF collision objects
- Created an interfaces package
- Contributors: Sharwin Patil, Sharwin24
Package Dependencies
| Deps | Name |
|---|---|
| rosidl_default_generators | |
| ament_cmake | |
| rosidl_default_runtime | |
| ament_lint_auto | |
| ament_lint_common | |
| ament_cmake_copyright | |
| std_msgs | |
| geometry_msgs | |
| nav_msgs | |
| trajectory_msgs | |
| builtin_interfaces |
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| potential_fields | |
| potential_fields_demos |
Launch files
Messages
Plugins
Recent questions tagged potential_fields_interfaces at Robotics Stack Exchange
|
potential_fields_interfaces package from potential_fields repopotential_fields potential_fields_demos potential_fields_interfaces potential_fields_library |
ROS Distro
|
Package Summary
| Version | 1.0.2 |
| License | Apache 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://github.com/argallab/potential_fields.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-04-05 |
| Dev Status | DEVELOPED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Sharwin Patil
Authors
potential_fields_interfaces
ROS 2 message and service definitions for the potential_fields package. All nodes in this repository communicate using these types.
Messages
Obstacle.msg
Describes a single obstacle in the potential field environment.
| Field | Type | Used by | Description |
|---|---|---|---|
frame_id |
string |
all | Unique identifier for this obstacle (e.g. "wall_1") |
type |
string |
all | Shape: "Sphere", "Box", "Cylinder", "Ellipsoid", "Capsule", or "Mesh"
|
group |
string |
all | Class: "Static", "Dynamic", or "Robot"
|
pose |
geometry_msgs/Pose |
all | World-frame center position and orientation |
radius |
float32 |
Sphere, Cylinder, Capsule | Radius of the shape |
height |
float32 |
Box, Cylinder, Capsule | Height / full extent along Z |
length |
float32 |
Box | Full extent along X |
width |
float32 |
Box | Full extent along Y |
semi_x |
float32 |
Ellipsoid | Semi-axis along X |
semi_y |
float32 |
Ellipsoid | Semi-axis along Y |
semi_z |
float32 |
Ellipsoid | Semi-axis along Z |
mesh_resource |
string |
Mesh | URI to mesh file (e.g. package://my_robot/meshes/link.dae) |
scale_x/y/z |
float32 |
Mesh | Per-axis mesh scale |
ObstacleArray.msg
A stamped array of Obstacle messages, published to pfield/obstacles.
| Field | Type | Description |
|---|---|---|
header |
std_msgs/Header |
Timestamp and frame |
obstacles |
Obstacle[] |
List of obstacles |
CLI examples — one per shape type
# Sphere (radius = 0.1 m)
ros2 topic pub --once /pfield/obstacles potential_fields_interfaces/msg/ObstacleArray "{
header: {frame_id: 'world'},
obstacles: [{
frame_id: 'ball', type: 'Sphere', group: 'Static',
pose: {position: {x: 0.4, y: 0.0, z: 0.1}, orientation: {w: 1.0}},
radius: 0.1
}]
}"
# Box (15 cm × 70 cm × 60 cm)
ros2 topic pub --once /pfield/obstacles potential_fields_interfaces/msg/ObstacleArray "{
header: {frame_id: 'world'},
obstacles: [{
frame_id: 'table', type: 'Box', group: 'Static',
pose: {position: {x: 0.66, y: 0.0, z: 0.3}, orientation: {w: 1.0}},
length: 0.15, width: 0.7, height: 0.6
}]
}"
# Cylinder (radius = 9 cm, height = 30 cm)
ros2 topic pub --once /pfield/obstacles potential_fields_interfaces/msg/ObstacleArray "{
header: {frame_id: 'world'},
obstacles: [{
frame_id: 'pitcher', type: 'Cylinder', group: 'Static',
pose: {position: {x: 0.51, y: 0.0, z: 0.15}, orientation: {w: 1.0}},
radius: 0.09, height: 0.3
}]
}"
# Ellipsoid (semi-axes 8 cm × 5 cm × 12 cm)
ros2 topic pub --once /pfield/obstacles potential_fields_interfaces/msg/ObstacleArray "{
header: {frame_id: 'world'},
obstacles: [{
frame_id: 'ellipsoid_obs', type: 'Ellipsoid', group: 'Static',
pose: {position: {x: 0.5, y: 0.1, z: 0.2}, orientation: {w: 1.0}},
semi_x: 0.08, semi_y: 0.05, semi_z: 0.12
}]
}"
# Capsule (radius = 5 cm, shaft length = 20 cm)
ros2 topic pub --once /pfield/obstacles potential_fields_interfaces/msg/ObstacleArray "{
header: {frame_id: 'world'},
obstacles: [{
frame_id: 'capsule_obs', type: 'Capsule', group: 'Static',
pose: {position: {x: 0.45, y: 0.0, z: 0.2}, orientation: {w: 1.0}},
radius: 0.05, height: 0.2
}]
}"
# Mesh
ros2 topic pub --once /pfield/obstacles potential_fields_interfaces/msg/ObstacleArray "{
header: {frame_id: 'world'},
obstacles: [{
frame_id: 'mesh_obs', type: 'Mesh', group: 'Static',
pose: {position: {x: 0.5, y: 0.0, z: 0.1}, orientation: {w: 1.0}},
mesh_resource: 'package://my_robot_description/meshes/obstacle.dae',
scale_x: 1.0, scale_y: 1.0, scale_z: 1.0
}]
}"
Services
File truncated at 100 lines see the full file
Changelog for package potential_fields_interfaces
1.0.2 (2026-04-04)
- Clarified Obstacle type's geometry fields
- New READMEs for demos and interfaces
- Estimate Robot Geometry using Ellipsoids and Control Points for smooth WBV Repulsion (#42) Co-authored-by: Claude Sonnet 4.6 <<noreply@anthropic.com>>
- 1.0.1
- Rename Packages (#35)
- December Final Demos (#26)
- Use Robot Dynamics to convert Joint Torques to Joint Velocities (#24)
- Updating ComputeAutonomyVector
- Collision Avoidance between robot links and environment obstacles (#21)
- Merge branch 'main' of github.com:argallab/pfields_2025
- Merged RobotParser into PFieldManager (#10)
- PlanPath Service Demo (#7)
- Planning "World" for path-planning with robot (#6)
- Motion Interface (#5)
- Update license to Apache 2.0
- Updating email to northwestern email for packages
- Custom service to plan path in PF
- Merge pull request #4 from argallab/demo-package Example Package
- Created robot parser node to listen for the transforms and parse the URDF collision objects
- Created an interfaces package
- Contributors: Sharwin Patil, Sharwin24
Package Dependencies
| Deps | Name |
|---|---|
| rosidl_default_generators | |
| ament_cmake | |
| rosidl_default_runtime | |
| ament_lint_auto | |
| ament_lint_common | |
| ament_cmake_copyright | |
| std_msgs | |
| geometry_msgs | |
| nav_msgs | |
| trajectory_msgs | |
| builtin_interfaces |
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| potential_fields | |
| potential_fields_demos |
Launch files
Messages
Plugins
Recent questions tagged potential_fields_interfaces at Robotics Stack Exchange
|
potential_fields_interfaces package from potential_fields repopotential_fields potential_fields_demos potential_fields_interfaces potential_fields_library |
ROS Distro
|
Package Summary
| Version | 1.0.2 |
| License | Apache 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://github.com/argallab/potential_fields.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-04-05 |
| Dev Status | DEVELOPED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Sharwin Patil
Authors
potential_fields_interfaces
ROS 2 message and service definitions for the potential_fields package. All nodes in this repository communicate using these types.
Messages
Obstacle.msg
Describes a single obstacle in the potential field environment.
| Field | Type | Used by | Description |
|---|---|---|---|
frame_id |
string |
all | Unique identifier for this obstacle (e.g. "wall_1") |
type |
string |
all | Shape: "Sphere", "Box", "Cylinder", "Ellipsoid", "Capsule", or "Mesh"
|
group |
string |
all | Class: "Static", "Dynamic", or "Robot"
|
pose |
geometry_msgs/Pose |
all | World-frame center position and orientation |
radius |
float32 |
Sphere, Cylinder, Capsule | Radius of the shape |
height |
float32 |
Box, Cylinder, Capsule | Height / full extent along Z |
length |
float32 |
Box | Full extent along X |
width |
float32 |
Box | Full extent along Y |
semi_x |
float32 |
Ellipsoid | Semi-axis along X |
semi_y |
float32 |
Ellipsoid | Semi-axis along Y |
semi_z |
float32 |
Ellipsoid | Semi-axis along Z |
mesh_resource |
string |
Mesh | URI to mesh file (e.g. package://my_robot/meshes/link.dae) |
scale_x/y/z |
float32 |
Mesh | Per-axis mesh scale |
ObstacleArray.msg
A stamped array of Obstacle messages, published to pfield/obstacles.
| Field | Type | Description |
|---|---|---|
header |
std_msgs/Header |
Timestamp and frame |
obstacles |
Obstacle[] |
List of obstacles |
CLI examples — one per shape type
# Sphere (radius = 0.1 m)
ros2 topic pub --once /pfield/obstacles potential_fields_interfaces/msg/ObstacleArray "{
header: {frame_id: 'world'},
obstacles: [{
frame_id: 'ball', type: 'Sphere', group: 'Static',
pose: {position: {x: 0.4, y: 0.0, z: 0.1}, orientation: {w: 1.0}},
radius: 0.1
}]
}"
# Box (15 cm × 70 cm × 60 cm)
ros2 topic pub --once /pfield/obstacles potential_fields_interfaces/msg/ObstacleArray "{
header: {frame_id: 'world'},
obstacles: [{
frame_id: 'table', type: 'Box', group: 'Static',
pose: {position: {x: 0.66, y: 0.0, z: 0.3}, orientation: {w: 1.0}},
length: 0.15, width: 0.7, height: 0.6
}]
}"
# Cylinder (radius = 9 cm, height = 30 cm)
ros2 topic pub --once /pfield/obstacles potential_fields_interfaces/msg/ObstacleArray "{
header: {frame_id: 'world'},
obstacles: [{
frame_id: 'pitcher', type: 'Cylinder', group: 'Static',
pose: {position: {x: 0.51, y: 0.0, z: 0.15}, orientation: {w: 1.0}},
radius: 0.09, height: 0.3
}]
}"
# Ellipsoid (semi-axes 8 cm × 5 cm × 12 cm)
ros2 topic pub --once /pfield/obstacles potential_fields_interfaces/msg/ObstacleArray "{
header: {frame_id: 'world'},
obstacles: [{
frame_id: 'ellipsoid_obs', type: 'Ellipsoid', group: 'Static',
pose: {position: {x: 0.5, y: 0.1, z: 0.2}, orientation: {w: 1.0}},
semi_x: 0.08, semi_y: 0.05, semi_z: 0.12
}]
}"
# Capsule (radius = 5 cm, shaft length = 20 cm)
ros2 topic pub --once /pfield/obstacles potential_fields_interfaces/msg/ObstacleArray "{
header: {frame_id: 'world'},
obstacles: [{
frame_id: 'capsule_obs', type: 'Capsule', group: 'Static',
pose: {position: {x: 0.45, y: 0.0, z: 0.2}, orientation: {w: 1.0}},
radius: 0.05, height: 0.2
}]
}"
# Mesh
ros2 topic pub --once /pfield/obstacles potential_fields_interfaces/msg/ObstacleArray "{
header: {frame_id: 'world'},
obstacles: [{
frame_id: 'mesh_obs', type: 'Mesh', group: 'Static',
pose: {position: {x: 0.5, y: 0.0, z: 0.1}, orientation: {w: 1.0}},
mesh_resource: 'package://my_robot_description/meshes/obstacle.dae',
scale_x: 1.0, scale_y: 1.0, scale_z: 1.0
}]
}"
Services
File truncated at 100 lines see the full file
Changelog for package potential_fields_interfaces
1.0.2 (2026-04-04)
- Clarified Obstacle type's geometry fields
- New READMEs for demos and interfaces
- Estimate Robot Geometry using Ellipsoids and Control Points for smooth WBV Repulsion (#42) Co-authored-by: Claude Sonnet 4.6 <<noreply@anthropic.com>>
- 1.0.1
- Rename Packages (#35)
- December Final Demos (#26)
- Use Robot Dynamics to convert Joint Torques to Joint Velocities (#24)
- Updating ComputeAutonomyVector
- Collision Avoidance between robot links and environment obstacles (#21)
- Merge branch 'main' of github.com:argallab/pfields_2025
- Merged RobotParser into PFieldManager (#10)
- PlanPath Service Demo (#7)
- Planning "World" for path-planning with robot (#6)
- Motion Interface (#5)
- Update license to Apache 2.0
- Updating email to northwestern email for packages
- Custom service to plan path in PF
- Merge pull request #4 from argallab/demo-package Example Package
- Created robot parser node to listen for the transforms and parse the URDF collision objects
- Created an interfaces package
- Contributors: Sharwin Patil, Sharwin24
Package Dependencies
| Deps | Name |
|---|---|
| rosidl_default_generators | |
| ament_cmake | |
| rosidl_default_runtime | |
| ament_lint_auto | |
| ament_lint_common | |
| ament_cmake_copyright | |
| std_msgs | |
| geometry_msgs | |
| nav_msgs | |
| trajectory_msgs | |
| builtin_interfaces |
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| potential_fields | |
| potential_fields_demos |
Launch files
Messages
Plugins
Recent questions tagged potential_fields_interfaces at Robotics Stack Exchange
|
potential_fields_interfaces package from potential_fields repopotential_fields potential_fields_demos potential_fields_interfaces potential_fields_library |
ROS Distro
|
Package Summary
| Version | 1.0.2 |
| License | Apache 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://github.com/argallab/potential_fields.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-04-05 |
| Dev Status | DEVELOPED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Sharwin Patil
Authors
potential_fields_interfaces
ROS 2 message and service definitions for the potential_fields package. All nodes in this repository communicate using these types.
Messages
Obstacle.msg
Describes a single obstacle in the potential field environment.
| Field | Type | Used by | Description |
|---|---|---|---|
frame_id |
string |
all | Unique identifier for this obstacle (e.g. "wall_1") |
type |
string |
all | Shape: "Sphere", "Box", "Cylinder", "Ellipsoid", "Capsule", or "Mesh"
|
group |
string |
all | Class: "Static", "Dynamic", or "Robot"
|
pose |
geometry_msgs/Pose |
all | World-frame center position and orientation |
radius |
float32 |
Sphere, Cylinder, Capsule | Radius of the shape |
height |
float32 |
Box, Cylinder, Capsule | Height / full extent along Z |
length |
float32 |
Box | Full extent along X |
width |
float32 |
Box | Full extent along Y |
semi_x |
float32 |
Ellipsoid | Semi-axis along X |
semi_y |
float32 |
Ellipsoid | Semi-axis along Y |
semi_z |
float32 |
Ellipsoid | Semi-axis along Z |
mesh_resource |
string |
Mesh | URI to mesh file (e.g. package://my_robot/meshes/link.dae) |
scale_x/y/z |
float32 |
Mesh | Per-axis mesh scale |
ObstacleArray.msg
A stamped array of Obstacle messages, published to pfield/obstacles.
| Field | Type | Description |
|---|---|---|
header |
std_msgs/Header |
Timestamp and frame |
obstacles |
Obstacle[] |
List of obstacles |
CLI examples — one per shape type
# Sphere (radius = 0.1 m)
ros2 topic pub --once /pfield/obstacles potential_fields_interfaces/msg/ObstacleArray "{
header: {frame_id: 'world'},
obstacles: [{
frame_id: 'ball', type: 'Sphere', group: 'Static',
pose: {position: {x: 0.4, y: 0.0, z: 0.1}, orientation: {w: 1.0}},
radius: 0.1
}]
}"
# Box (15 cm × 70 cm × 60 cm)
ros2 topic pub --once /pfield/obstacles potential_fields_interfaces/msg/ObstacleArray "{
header: {frame_id: 'world'},
obstacles: [{
frame_id: 'table', type: 'Box', group: 'Static',
pose: {position: {x: 0.66, y: 0.0, z: 0.3}, orientation: {w: 1.0}},
length: 0.15, width: 0.7, height: 0.6
}]
}"
# Cylinder (radius = 9 cm, height = 30 cm)
ros2 topic pub --once /pfield/obstacles potential_fields_interfaces/msg/ObstacleArray "{
header: {frame_id: 'world'},
obstacles: [{
frame_id: 'pitcher', type: 'Cylinder', group: 'Static',
pose: {position: {x: 0.51, y: 0.0, z: 0.15}, orientation: {w: 1.0}},
radius: 0.09, height: 0.3
}]
}"
# Ellipsoid (semi-axes 8 cm × 5 cm × 12 cm)
ros2 topic pub --once /pfield/obstacles potential_fields_interfaces/msg/ObstacleArray "{
header: {frame_id: 'world'},
obstacles: [{
frame_id: 'ellipsoid_obs', type: 'Ellipsoid', group: 'Static',
pose: {position: {x: 0.5, y: 0.1, z: 0.2}, orientation: {w: 1.0}},
semi_x: 0.08, semi_y: 0.05, semi_z: 0.12
}]
}"
# Capsule (radius = 5 cm, shaft length = 20 cm)
ros2 topic pub --once /pfield/obstacles potential_fields_interfaces/msg/ObstacleArray "{
header: {frame_id: 'world'},
obstacles: [{
frame_id: 'capsule_obs', type: 'Capsule', group: 'Static',
pose: {position: {x: 0.45, y: 0.0, z: 0.2}, orientation: {w: 1.0}},
radius: 0.05, height: 0.2
}]
}"
# Mesh
ros2 topic pub --once /pfield/obstacles potential_fields_interfaces/msg/ObstacleArray "{
header: {frame_id: 'world'},
obstacles: [{
frame_id: 'mesh_obs', type: 'Mesh', group: 'Static',
pose: {position: {x: 0.5, y: 0.0, z: 0.1}, orientation: {w: 1.0}},
mesh_resource: 'package://my_robot_description/meshes/obstacle.dae',
scale_x: 1.0, scale_y: 1.0, scale_z: 1.0
}]
}"
Services
File truncated at 100 lines see the full file
Changelog for package potential_fields_interfaces
1.0.2 (2026-04-04)
- Clarified Obstacle type's geometry fields
- New READMEs for demos and interfaces
- Estimate Robot Geometry using Ellipsoids and Control Points for smooth WBV Repulsion (#42) Co-authored-by: Claude Sonnet 4.6 <<noreply@anthropic.com>>
- 1.0.1
- Rename Packages (#35)
- December Final Demos (#26)
- Use Robot Dynamics to convert Joint Torques to Joint Velocities (#24)
- Updating ComputeAutonomyVector
- Collision Avoidance between robot links and environment obstacles (#21)
- Merge branch 'main' of github.com:argallab/pfields_2025
- Merged RobotParser into PFieldManager (#10)
- PlanPath Service Demo (#7)
- Planning "World" for path-planning with robot (#6)
- Motion Interface (#5)
- Update license to Apache 2.0
- Updating email to northwestern email for packages
- Custom service to plan path in PF
- Merge pull request #4 from argallab/demo-package Example Package
- Created robot parser node to listen for the transforms and parse the URDF collision objects
- Created an interfaces package
- Contributors: Sharwin Patil, Sharwin24
Package Dependencies
| Deps | Name |
|---|---|
| rosidl_default_generators | |
| ament_cmake | |
| rosidl_default_runtime | |
| ament_lint_auto | |
| ament_lint_common | |
| ament_cmake_copyright | |
| std_msgs | |
| geometry_msgs | |
| nav_msgs | |
| trajectory_msgs | |
| builtin_interfaces |
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| potential_fields | |
| potential_fields_demos |