No version for distro humble showing jazzy. Known supported distros are highlighted in the buttons above.

Package Summary

Version 1.0.2
License Apache 2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

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

Custom Messages and Services for potential_fields package

Maintainers

  • Sharwin Patil

Authors

No additional 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

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

Launch files

No launch files found

Plugins

No plugins found.

Recent questions tagged potential_fields_interfaces at Robotics Stack Exchange

Package Summary

Version 1.0.2
License Apache 2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

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

Custom Messages and Services for potential_fields package

Maintainers

  • Sharwin Patil

Authors

No additional 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

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

Launch files

No launch files found

Plugins

No plugins found.

Recent questions tagged potential_fields_interfaces at Robotics Stack Exchange

No version for distro kilted showing jazzy. Known supported distros are highlighted in the buttons above.

Package Summary

Version 1.0.2
License Apache 2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

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

Custom Messages and Services for potential_fields package

Maintainers

  • Sharwin Patil

Authors

No additional 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

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

Launch files

No launch files found

Plugins

No plugins found.

Recent questions tagged potential_fields_interfaces at Robotics Stack Exchange

No version for distro rolling showing jazzy. Known supported distros are highlighted in the buttons above.

Package Summary

Version 1.0.2
License Apache 2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

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

Custom Messages and Services for potential_fields package

Maintainers

  • Sharwin Patil

Authors

No additional 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

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

Launch files

No launch files found

Plugins

No plugins found.

Recent questions tagged potential_fields_interfaces at Robotics Stack Exchange

No version for distro ardent showing jazzy. Known supported distros are highlighted in the buttons above.

Package Summary

Version 1.0.2
License Apache 2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

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

Custom Messages and Services for potential_fields package

Maintainers

  • Sharwin Patil

Authors

No additional 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

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

Launch files

No launch files found

Plugins

No plugins found.

Recent questions tagged potential_fields_interfaces at Robotics Stack Exchange

No version for distro bouncy showing jazzy. Known supported distros are highlighted in the buttons above.

Package Summary

Version 1.0.2
License Apache 2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

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

Custom Messages and Services for potential_fields package

Maintainers

  • Sharwin Patil

Authors

No additional 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

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

Launch files

No launch files found

Plugins

No plugins found.

Recent questions tagged potential_fields_interfaces at Robotics Stack Exchange

No version for distro crystal showing jazzy. Known supported distros are highlighted in the buttons above.

Package Summary

Version 1.0.2
License Apache 2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

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

Custom Messages and Services for potential_fields package

Maintainers

  • Sharwin Patil

Authors

No additional 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

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

Launch files

No launch files found

Plugins

No plugins found.

Recent questions tagged potential_fields_interfaces at Robotics Stack Exchange

No version for distro eloquent showing jazzy. Known supported distros are highlighted in the buttons above.

Package Summary

Version 1.0.2
License Apache 2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

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

Custom Messages and Services for potential_fields package

Maintainers

  • Sharwin Patil

Authors

No additional 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

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

Launch files

No launch files found

Plugins

No plugins found.

Recent questions tagged potential_fields_interfaces at Robotics Stack Exchange

No version for distro dashing showing jazzy. Known supported distros are highlighted in the buttons above.

Package Summary

Version 1.0.2
License Apache 2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

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

Custom Messages and Services for potential_fields package

Maintainers

  • Sharwin Patil

Authors

No additional 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

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

Launch files

No launch files found

Plugins

No plugins found.

Recent questions tagged potential_fields_interfaces at Robotics Stack Exchange

No version for distro galactic showing jazzy. Known supported distros are highlighted in the buttons above.

Package Summary

Version 1.0.2
License Apache 2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

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

Custom Messages and Services for potential_fields package

Maintainers

  • Sharwin Patil

Authors

No additional 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

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

Launch files

No launch files found

Plugins

No plugins found.

Recent questions tagged potential_fields_interfaces at Robotics Stack Exchange

No version for distro foxy showing jazzy. Known supported distros are highlighted in the buttons above.

Package Summary

Version 1.0.2
License Apache 2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

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

Custom Messages and Services for potential_fields package

Maintainers

  • Sharwin Patil

Authors

No additional 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

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

Launch files

No launch files found

Plugins

No plugins found.

Recent questions tagged potential_fields_interfaces at Robotics Stack Exchange

No version for distro iron showing jazzy. Known supported distros are highlighted in the buttons above.

Package Summary

Version 1.0.2
License Apache 2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

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

Custom Messages and Services for potential_fields package

Maintainers

  • Sharwin Patil

Authors

No additional 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

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

Launch files

No launch files found

Plugins

No plugins found.

Recent questions tagged potential_fields_interfaces at Robotics Stack Exchange

No version for distro lunar showing jazzy. Known supported distros are highlighted in the buttons above.

Package Summary

Version 1.0.2
License Apache 2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

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

Custom Messages and Services for potential_fields package

Maintainers

  • Sharwin Patil

Authors

No additional 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

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

Launch files

No launch files found

Plugins

No plugins found.

Recent questions tagged potential_fields_interfaces at Robotics Stack Exchange

No version for distro jade showing jazzy. Known supported distros are highlighted in the buttons above.

Package Summary

Version 1.0.2
License Apache 2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

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

Custom Messages and Services for potential_fields package

Maintainers

  • Sharwin Patil

Authors

No additional 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

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

Launch files

No launch files found

Plugins

No plugins found.

Recent questions tagged potential_fields_interfaces at Robotics Stack Exchange

No version for distro indigo showing jazzy. Known supported distros are highlighted in the buttons above.

Package Summary

Version 1.0.2
License Apache 2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

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

Custom Messages and Services for potential_fields package

Maintainers

  • Sharwin Patil

Authors

No additional 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

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

Launch files

No launch files found

Plugins

No plugins found.

Recent questions tagged potential_fields_interfaces at Robotics Stack Exchange

No version for distro hydro showing jazzy. Known supported distros are highlighted in the buttons above.

Package Summary

Version 1.0.2
License Apache 2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

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

Custom Messages and Services for potential_fields package

Maintainers

  • Sharwin Patil

Authors

No additional 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

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

Launch files

No launch files found

Plugins

No plugins found.

Recent questions tagged potential_fields_interfaces at Robotics Stack Exchange

No version for distro kinetic showing jazzy. Known supported distros are highlighted in the buttons above.

Package Summary

Version 1.0.2
License Apache 2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

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

Custom Messages and Services for potential_fields package

Maintainers

  • Sharwin Patil

Authors

No additional 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

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

Launch files

No launch files found

Plugins

No plugins found.

Recent questions tagged potential_fields_interfaces at Robotics Stack Exchange

No version for distro melodic showing jazzy. Known supported distros are highlighted in the buttons above.

Package Summary

Version 1.0.2
License Apache 2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

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

Custom Messages and Services for potential_fields package

Maintainers

  • Sharwin Patil

Authors

No additional 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

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

Launch files

No launch files found

Plugins

No plugins found.

Recent questions tagged potential_fields_interfaces at Robotics Stack Exchange

No version for distro noetic showing jazzy. Known supported distros are highlighted in the buttons above.

Package Summary

Version 1.0.2
License Apache 2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

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

Custom Messages and Services for potential_fields package

Maintainers

  • Sharwin Patil

Authors

No additional 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

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

Launch files

No launch files found

Plugins

No plugins found.

Recent questions tagged potential_fields_interfaces at Robotics Stack Exchange