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

Package Summary

Version 1.0.0
License Apache-2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/simone-contorno/prox_mpc.git
VCS Type git
VCS Version main
Last Updated 2026-07-28
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

In-house 2D-lidar dynamic-obstacle detector and tracker for ProxMPC: a lifecycle node that clusters a LaserScan, associates clusters to IMM (constant-velocity / constant-turn-rate) Kalman tracks in a fixed frame, and publishes their position and velocity as a prox_mpc_msgs/ObstacleArray. License-clean (no third-party trackers).

Additional Links

Maintainers

  • Simone Contorno

Authors

No additional authors.

prox_mpc_obstacle_tracker

An in-house 2D-lidar dynamic-obstacle detector and tracker for ProxMPC.

A managed lifecycle node clusters a sensor_msgs/LaserScan, transforms the cluster centroids into a fixed tracking frame, runs one IMM (constant-velocity + constant-turn-rate) filter per object, and publishes the confirmed tracks - including sampled predicted positions along each track’s estimated arc - as a prox_mpc_msgs/ObstacleArray. That feed is what prox_mpc_controller consumes for predictive (dynamic) obstacle avoidance.

The detection and tracking math is written from scratch (Eigen only, no third-party tracker), so the package is license-clean and unit-testable without ROS. The design, algorithm, parameters, and interfaces are documented in doc/architecture.md.

Table of Contents

Key Features

  • Lifecycle node: managed configure -> activate -> deactivate -> cleanup, with a signal-safe shutdown ladder in the standalone driver.
  • Self-contained pipeline: LaserScan -> planar points -> adjacency clusters -> tracking-frame centroids -> IMM (CV + CTRV) tracks with sampled predicted positions.
  • Multi-object tracking: gated greedy nearest-neighbour association, one IMM filter per track (a constant-velocity Kalman filter and a constant-turn-rate-and-velocity EKF run in parallel, blended by model probability), and a birth/confirm/death lifecycle. imm_enabled: false restores the legacy single-CV path.
  • Curved prediction feed: each published obstacle carries prediction_steps predicted positions at prediction_dt spacing (default 25 x 0.1 s = 2.5 s), so the controller can follow turning obstacles instead of a straight constant-velocity ray.
  • Wall rejection: a cluster-radius cap drops extended structure (walls) whose centroid would otherwise be tracked as a phantom fast-moving obstacle.
  • Pure core: the clustering and tracker are a ROS-free Eigen library (prox_mpc_obstacle_tracker_core) covered by GoogleTest.

Prerequisites

  • ROS 2 Jazzy on Ubuntu 24.04.
  • prox_mpc_msgs (workspace package).
  • Eigen3, rclcpp, rclcpp_components, rclcpp_lifecycle, lifecycle_msgs, sensor_msgs, geometry_msgs, tf2, tf2_ros (resolved by rosdep).

Build

colcon build --symlink-install --packages-select prox_mpc_msgs prox_mpc_obstacle_tracker
source install/setup.bash

Run

The standalone executable is a self-activating lifecycle node: it brings itself up (configure -> activate), spins, and tears itself down on SIGINT/SIGTERM. The bundled launch file loads config/obstacle_tracker.yaml and wires the node-only logger level, with a params_file argument to override the parameters:

ros2 launch prox_mpc_obstacle_tracker obstacle_tracker.launch.py
ros2 launch prox_mpc_obstacle_tracker obstacle_tracker.launch.py \
  params_file:=/path/to/custom.yaml

To run the executable directly instead of through the launch file:

ros2 run prox_mpc_obstacle_tracker obstacle_tracker \
  --ros-args --params-file \
  $(ros2 pkg prefix prox_mpc_obstacle_tracker)/share/prox_mpc_obstacle_tracker/config/obstacle_tracker.yaml

config/obstacle_tracker.yaml is the single source of truth for the parameters. Watch the output with:

ros2 topic echo /tracked_obstacles

In simulation the tracker is started automatically by the demo’s Nav2 launch with predictive:=True (see prox_mpc_demo/doc/nav2-simulation.md).

Interfaces

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package prox_mpc_obstacle_tracker

1.0.0 (2026-07-28)

  • Initial release: lifecycle node that clusters a 2D LaserScan, associates clusters to an IMM (constant-velocity + constant-turn-rate) filter in a fixed frame, and publishes a prox_mpc_msgs/ObstacleArray.
  • Composable component registration plus a mutually-exclusive callback group and teardown guard, so it is safe under a MultiThreadedExecutor; node-only log_level parameter and a standalone launch file.
  • Contributors: Simone Contorno

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged prox_mpc_obstacle_tracker at Robotics Stack Exchange

Package Summary

Version 1.0.0
License Apache-2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/simone-contorno/prox_mpc.git
VCS Type git
VCS Version main
Last Updated 2026-07-28
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

In-house 2D-lidar dynamic-obstacle detector and tracker for ProxMPC: a lifecycle node that clusters a LaserScan, associates clusters to IMM (constant-velocity / constant-turn-rate) Kalman tracks in a fixed frame, and publishes their position and velocity as a prox_mpc_msgs/ObstacleArray. License-clean (no third-party trackers).

Additional Links

Maintainers

  • Simone Contorno

Authors

No additional authors.

prox_mpc_obstacle_tracker

An in-house 2D-lidar dynamic-obstacle detector and tracker for ProxMPC.

A managed lifecycle node clusters a sensor_msgs/LaserScan, transforms the cluster centroids into a fixed tracking frame, runs one IMM (constant-velocity + constant-turn-rate) filter per object, and publishes the confirmed tracks - including sampled predicted positions along each track’s estimated arc - as a prox_mpc_msgs/ObstacleArray. That feed is what prox_mpc_controller consumes for predictive (dynamic) obstacle avoidance.

The detection and tracking math is written from scratch (Eigen only, no third-party tracker), so the package is license-clean and unit-testable without ROS. The design, algorithm, parameters, and interfaces are documented in doc/architecture.md.

Table of Contents

Key Features

  • Lifecycle node: managed configure -> activate -> deactivate -> cleanup, with a signal-safe shutdown ladder in the standalone driver.
  • Self-contained pipeline: LaserScan -> planar points -> adjacency clusters -> tracking-frame centroids -> IMM (CV + CTRV) tracks with sampled predicted positions.
  • Multi-object tracking: gated greedy nearest-neighbour association, one IMM filter per track (a constant-velocity Kalman filter and a constant-turn-rate-and-velocity EKF run in parallel, blended by model probability), and a birth/confirm/death lifecycle. imm_enabled: false restores the legacy single-CV path.
  • Curved prediction feed: each published obstacle carries prediction_steps predicted positions at prediction_dt spacing (default 25 x 0.1 s = 2.5 s), so the controller can follow turning obstacles instead of a straight constant-velocity ray.
  • Wall rejection: a cluster-radius cap drops extended structure (walls) whose centroid would otherwise be tracked as a phantom fast-moving obstacle.
  • Pure core: the clustering and tracker are a ROS-free Eigen library (prox_mpc_obstacle_tracker_core) covered by GoogleTest.

Prerequisites

  • ROS 2 Jazzy on Ubuntu 24.04.
  • prox_mpc_msgs (workspace package).
  • Eigen3, rclcpp, rclcpp_components, rclcpp_lifecycle, lifecycle_msgs, sensor_msgs, geometry_msgs, tf2, tf2_ros (resolved by rosdep).

Build

colcon build --symlink-install --packages-select prox_mpc_msgs prox_mpc_obstacle_tracker
source install/setup.bash

Run

The standalone executable is a self-activating lifecycle node: it brings itself up (configure -> activate), spins, and tears itself down on SIGINT/SIGTERM. The bundled launch file loads config/obstacle_tracker.yaml and wires the node-only logger level, with a params_file argument to override the parameters:

ros2 launch prox_mpc_obstacle_tracker obstacle_tracker.launch.py
ros2 launch prox_mpc_obstacle_tracker obstacle_tracker.launch.py \
  params_file:=/path/to/custom.yaml

To run the executable directly instead of through the launch file:

ros2 run prox_mpc_obstacle_tracker obstacle_tracker \
  --ros-args --params-file \
  $(ros2 pkg prefix prox_mpc_obstacle_tracker)/share/prox_mpc_obstacle_tracker/config/obstacle_tracker.yaml

config/obstacle_tracker.yaml is the single source of truth for the parameters. Watch the output with:

ros2 topic echo /tracked_obstacles

In simulation the tracker is started automatically by the demo’s Nav2 launch with predictive:=True (see prox_mpc_demo/doc/nav2-simulation.md).

Interfaces

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package prox_mpc_obstacle_tracker

1.0.0 (2026-07-28)

  • Initial release: lifecycle node that clusters a 2D LaserScan, associates clusters to an IMM (constant-velocity + constant-turn-rate) filter in a fixed frame, and publishes a prox_mpc_msgs/ObstacleArray.
  • Composable component registration plus a mutually-exclusive callback group and teardown guard, so it is safe under a MultiThreadedExecutor; node-only log_level parameter and a standalone launch file.
  • Contributors: Simone Contorno

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged prox_mpc_obstacle_tracker 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.0
License Apache-2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/simone-contorno/prox_mpc.git
VCS Type git
VCS Version main
Last Updated 2026-07-28
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

In-house 2D-lidar dynamic-obstacle detector and tracker for ProxMPC: a lifecycle node that clusters a LaserScan, associates clusters to IMM (constant-velocity / constant-turn-rate) Kalman tracks in a fixed frame, and publishes their position and velocity as a prox_mpc_msgs/ObstacleArray. License-clean (no third-party trackers).

Additional Links

Maintainers

  • Simone Contorno

Authors

No additional authors.

prox_mpc_obstacle_tracker

An in-house 2D-lidar dynamic-obstacle detector and tracker for ProxMPC.

A managed lifecycle node clusters a sensor_msgs/LaserScan, transforms the cluster centroids into a fixed tracking frame, runs one IMM (constant-velocity + constant-turn-rate) filter per object, and publishes the confirmed tracks - including sampled predicted positions along each track’s estimated arc - as a prox_mpc_msgs/ObstacleArray. That feed is what prox_mpc_controller consumes for predictive (dynamic) obstacle avoidance.

The detection and tracking math is written from scratch (Eigen only, no third-party tracker), so the package is license-clean and unit-testable without ROS. The design, algorithm, parameters, and interfaces are documented in doc/architecture.md.

Table of Contents

Key Features

  • Lifecycle node: managed configure -> activate -> deactivate -> cleanup, with a signal-safe shutdown ladder in the standalone driver.
  • Self-contained pipeline: LaserScan -> planar points -> adjacency clusters -> tracking-frame centroids -> IMM (CV + CTRV) tracks with sampled predicted positions.
  • Multi-object tracking: gated greedy nearest-neighbour association, one IMM filter per track (a constant-velocity Kalman filter and a constant-turn-rate-and-velocity EKF run in parallel, blended by model probability), and a birth/confirm/death lifecycle. imm_enabled: false restores the legacy single-CV path.
  • Curved prediction feed: each published obstacle carries prediction_steps predicted positions at prediction_dt spacing (default 25 x 0.1 s = 2.5 s), so the controller can follow turning obstacles instead of a straight constant-velocity ray.
  • Wall rejection: a cluster-radius cap drops extended structure (walls) whose centroid would otherwise be tracked as a phantom fast-moving obstacle.
  • Pure core: the clustering and tracker are a ROS-free Eigen library (prox_mpc_obstacle_tracker_core) covered by GoogleTest.

Prerequisites

  • ROS 2 Jazzy on Ubuntu 24.04.
  • prox_mpc_msgs (workspace package).
  • Eigen3, rclcpp, rclcpp_components, rclcpp_lifecycle, lifecycle_msgs, sensor_msgs, geometry_msgs, tf2, tf2_ros (resolved by rosdep).

Build

colcon build --symlink-install --packages-select prox_mpc_msgs prox_mpc_obstacle_tracker
source install/setup.bash

Run

The standalone executable is a self-activating lifecycle node: it brings itself up (configure -> activate), spins, and tears itself down on SIGINT/SIGTERM. The bundled launch file loads config/obstacle_tracker.yaml and wires the node-only logger level, with a params_file argument to override the parameters:

ros2 launch prox_mpc_obstacle_tracker obstacle_tracker.launch.py
ros2 launch prox_mpc_obstacle_tracker obstacle_tracker.launch.py \
  params_file:=/path/to/custom.yaml

To run the executable directly instead of through the launch file:

ros2 run prox_mpc_obstacle_tracker obstacle_tracker \
  --ros-args --params-file \
  $(ros2 pkg prefix prox_mpc_obstacle_tracker)/share/prox_mpc_obstacle_tracker/config/obstacle_tracker.yaml

config/obstacle_tracker.yaml is the single source of truth for the parameters. Watch the output with:

ros2 topic echo /tracked_obstacles

In simulation the tracker is started automatically by the demo’s Nav2 launch with predictive:=True (see prox_mpc_demo/doc/nav2-simulation.md).

Interfaces

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package prox_mpc_obstacle_tracker

1.0.0 (2026-07-28)

  • Initial release: lifecycle node that clusters a 2D LaserScan, associates clusters to an IMM (constant-velocity + constant-turn-rate) filter in a fixed frame, and publishes a prox_mpc_msgs/ObstacleArray.
  • Composable component registration plus a mutually-exclusive callback group and teardown guard, so it is safe under a MultiThreadedExecutor; node-only log_level parameter and a standalone launch file.
  • Contributors: Simone Contorno

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged prox_mpc_obstacle_tracker at Robotics Stack Exchange

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

Package Summary

Version 1.0.0
License Apache-2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/simone-contorno/prox_mpc.git
VCS Type git
VCS Version main
Last Updated 2026-07-28
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

In-house 2D-lidar dynamic-obstacle detector and tracker for ProxMPC: a lifecycle node that clusters a LaserScan, associates clusters to IMM (constant-velocity / constant-turn-rate) Kalman tracks in a fixed frame, and publishes their position and velocity as a prox_mpc_msgs/ObstacleArray. License-clean (no third-party trackers).

Additional Links

Maintainers

  • Simone Contorno

Authors

No additional authors.

prox_mpc_obstacle_tracker

An in-house 2D-lidar dynamic-obstacle detector and tracker for ProxMPC.

A managed lifecycle node clusters a sensor_msgs/LaserScan, transforms the cluster centroids into a fixed tracking frame, runs one IMM (constant-velocity + constant-turn-rate) filter per object, and publishes the confirmed tracks - including sampled predicted positions along each track’s estimated arc - as a prox_mpc_msgs/ObstacleArray. That feed is what prox_mpc_controller consumes for predictive (dynamic) obstacle avoidance.

The detection and tracking math is written from scratch (Eigen only, no third-party tracker), so the package is license-clean and unit-testable without ROS. The design, algorithm, parameters, and interfaces are documented in doc/architecture.md.

Table of Contents

Key Features

  • Lifecycle node: managed configure -> activate -> deactivate -> cleanup, with a signal-safe shutdown ladder in the standalone driver.
  • Self-contained pipeline: LaserScan -> planar points -> adjacency clusters -> tracking-frame centroids -> IMM (CV + CTRV) tracks with sampled predicted positions.
  • Multi-object tracking: gated greedy nearest-neighbour association, one IMM filter per track (a constant-velocity Kalman filter and a constant-turn-rate-and-velocity EKF run in parallel, blended by model probability), and a birth/confirm/death lifecycle. imm_enabled: false restores the legacy single-CV path.
  • Curved prediction feed: each published obstacle carries prediction_steps predicted positions at prediction_dt spacing (default 25 x 0.1 s = 2.5 s), so the controller can follow turning obstacles instead of a straight constant-velocity ray.
  • Wall rejection: a cluster-radius cap drops extended structure (walls) whose centroid would otherwise be tracked as a phantom fast-moving obstacle.
  • Pure core: the clustering and tracker are a ROS-free Eigen library (prox_mpc_obstacle_tracker_core) covered by GoogleTest.

Prerequisites

  • ROS 2 Jazzy on Ubuntu 24.04.
  • prox_mpc_msgs (workspace package).
  • Eigen3, rclcpp, rclcpp_components, rclcpp_lifecycle, lifecycle_msgs, sensor_msgs, geometry_msgs, tf2, tf2_ros (resolved by rosdep).

Build

colcon build --symlink-install --packages-select prox_mpc_msgs prox_mpc_obstacle_tracker
source install/setup.bash

Run

The standalone executable is a self-activating lifecycle node: it brings itself up (configure -> activate), spins, and tears itself down on SIGINT/SIGTERM. The bundled launch file loads config/obstacle_tracker.yaml and wires the node-only logger level, with a params_file argument to override the parameters:

ros2 launch prox_mpc_obstacle_tracker obstacle_tracker.launch.py
ros2 launch prox_mpc_obstacle_tracker obstacle_tracker.launch.py \
  params_file:=/path/to/custom.yaml

To run the executable directly instead of through the launch file:

ros2 run prox_mpc_obstacle_tracker obstacle_tracker \
  --ros-args --params-file \
  $(ros2 pkg prefix prox_mpc_obstacle_tracker)/share/prox_mpc_obstacle_tracker/config/obstacle_tracker.yaml

config/obstacle_tracker.yaml is the single source of truth for the parameters. Watch the output with:

ros2 topic echo /tracked_obstacles

In simulation the tracker is started automatically by the demo’s Nav2 launch with predictive:=True (see prox_mpc_demo/doc/nav2-simulation.md).

Interfaces

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package prox_mpc_obstacle_tracker

1.0.0 (2026-07-28)

  • Initial release: lifecycle node that clusters a 2D LaserScan, associates clusters to an IMM (constant-velocity + constant-turn-rate) filter in a fixed frame, and publishes a prox_mpc_msgs/ObstacleArray.
  • Composable component registration plus a mutually-exclusive callback group and teardown guard, so it is safe under a MultiThreadedExecutor; node-only log_level parameter and a standalone launch file.
  • Contributors: Simone Contorno

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged prox_mpc_obstacle_tracker 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.0
License Apache-2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/simone-contorno/prox_mpc.git
VCS Type git
VCS Version main
Last Updated 2026-07-28
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

In-house 2D-lidar dynamic-obstacle detector and tracker for ProxMPC: a lifecycle node that clusters a LaserScan, associates clusters to IMM (constant-velocity / constant-turn-rate) Kalman tracks in a fixed frame, and publishes their position and velocity as a prox_mpc_msgs/ObstacleArray. License-clean (no third-party trackers).

Additional Links

Maintainers

  • Simone Contorno

Authors

No additional authors.

prox_mpc_obstacle_tracker

An in-house 2D-lidar dynamic-obstacle detector and tracker for ProxMPC.

A managed lifecycle node clusters a sensor_msgs/LaserScan, transforms the cluster centroids into a fixed tracking frame, runs one IMM (constant-velocity + constant-turn-rate) filter per object, and publishes the confirmed tracks - including sampled predicted positions along each track’s estimated arc - as a prox_mpc_msgs/ObstacleArray. That feed is what prox_mpc_controller consumes for predictive (dynamic) obstacle avoidance.

The detection and tracking math is written from scratch (Eigen only, no third-party tracker), so the package is license-clean and unit-testable without ROS. The design, algorithm, parameters, and interfaces are documented in doc/architecture.md.

Table of Contents

Key Features

  • Lifecycle node: managed configure -> activate -> deactivate -> cleanup, with a signal-safe shutdown ladder in the standalone driver.
  • Self-contained pipeline: LaserScan -> planar points -> adjacency clusters -> tracking-frame centroids -> IMM (CV + CTRV) tracks with sampled predicted positions.
  • Multi-object tracking: gated greedy nearest-neighbour association, one IMM filter per track (a constant-velocity Kalman filter and a constant-turn-rate-and-velocity EKF run in parallel, blended by model probability), and a birth/confirm/death lifecycle. imm_enabled: false restores the legacy single-CV path.
  • Curved prediction feed: each published obstacle carries prediction_steps predicted positions at prediction_dt spacing (default 25 x 0.1 s = 2.5 s), so the controller can follow turning obstacles instead of a straight constant-velocity ray.
  • Wall rejection: a cluster-radius cap drops extended structure (walls) whose centroid would otherwise be tracked as a phantom fast-moving obstacle.
  • Pure core: the clustering and tracker are a ROS-free Eigen library (prox_mpc_obstacle_tracker_core) covered by GoogleTest.

Prerequisites

  • ROS 2 Jazzy on Ubuntu 24.04.
  • prox_mpc_msgs (workspace package).
  • Eigen3, rclcpp, rclcpp_components, rclcpp_lifecycle, lifecycle_msgs, sensor_msgs, geometry_msgs, tf2, tf2_ros (resolved by rosdep).

Build

colcon build --symlink-install --packages-select prox_mpc_msgs prox_mpc_obstacle_tracker
source install/setup.bash

Run

The standalone executable is a self-activating lifecycle node: it brings itself up (configure -> activate), spins, and tears itself down on SIGINT/SIGTERM. The bundled launch file loads config/obstacle_tracker.yaml and wires the node-only logger level, with a params_file argument to override the parameters:

ros2 launch prox_mpc_obstacle_tracker obstacle_tracker.launch.py
ros2 launch prox_mpc_obstacle_tracker obstacle_tracker.launch.py \
  params_file:=/path/to/custom.yaml

To run the executable directly instead of through the launch file:

ros2 run prox_mpc_obstacle_tracker obstacle_tracker \
  --ros-args --params-file \
  $(ros2 pkg prefix prox_mpc_obstacle_tracker)/share/prox_mpc_obstacle_tracker/config/obstacle_tracker.yaml

config/obstacle_tracker.yaml is the single source of truth for the parameters. Watch the output with:

ros2 topic echo /tracked_obstacles

In simulation the tracker is started automatically by the demo’s Nav2 launch with predictive:=True (see prox_mpc_demo/doc/nav2-simulation.md).

Interfaces

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package prox_mpc_obstacle_tracker

1.0.0 (2026-07-28)

  • Initial release: lifecycle node that clusters a 2D LaserScan, associates clusters to an IMM (constant-velocity + constant-turn-rate) filter in a fixed frame, and publishes a prox_mpc_msgs/ObstacleArray.
  • Composable component registration plus a mutually-exclusive callback group and teardown guard, so it is safe under a MultiThreadedExecutor; node-only log_level parameter and a standalone launch file.
  • Contributors: Simone Contorno

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged prox_mpc_obstacle_tracker 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.0
License Apache-2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/simone-contorno/prox_mpc.git
VCS Type git
VCS Version main
Last Updated 2026-07-28
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

In-house 2D-lidar dynamic-obstacle detector and tracker for ProxMPC: a lifecycle node that clusters a LaserScan, associates clusters to IMM (constant-velocity / constant-turn-rate) Kalman tracks in a fixed frame, and publishes their position and velocity as a prox_mpc_msgs/ObstacleArray. License-clean (no third-party trackers).

Additional Links

Maintainers

  • Simone Contorno

Authors

No additional authors.

prox_mpc_obstacle_tracker

An in-house 2D-lidar dynamic-obstacle detector and tracker for ProxMPC.

A managed lifecycle node clusters a sensor_msgs/LaserScan, transforms the cluster centroids into a fixed tracking frame, runs one IMM (constant-velocity + constant-turn-rate) filter per object, and publishes the confirmed tracks - including sampled predicted positions along each track’s estimated arc - as a prox_mpc_msgs/ObstacleArray. That feed is what prox_mpc_controller consumes for predictive (dynamic) obstacle avoidance.

The detection and tracking math is written from scratch (Eigen only, no third-party tracker), so the package is license-clean and unit-testable without ROS. The design, algorithm, parameters, and interfaces are documented in doc/architecture.md.

Table of Contents

Key Features

  • Lifecycle node: managed configure -> activate -> deactivate -> cleanup, with a signal-safe shutdown ladder in the standalone driver.
  • Self-contained pipeline: LaserScan -> planar points -> adjacency clusters -> tracking-frame centroids -> IMM (CV + CTRV) tracks with sampled predicted positions.
  • Multi-object tracking: gated greedy nearest-neighbour association, one IMM filter per track (a constant-velocity Kalman filter and a constant-turn-rate-and-velocity EKF run in parallel, blended by model probability), and a birth/confirm/death lifecycle. imm_enabled: false restores the legacy single-CV path.
  • Curved prediction feed: each published obstacle carries prediction_steps predicted positions at prediction_dt spacing (default 25 x 0.1 s = 2.5 s), so the controller can follow turning obstacles instead of a straight constant-velocity ray.
  • Wall rejection: a cluster-radius cap drops extended structure (walls) whose centroid would otherwise be tracked as a phantom fast-moving obstacle.
  • Pure core: the clustering and tracker are a ROS-free Eigen library (prox_mpc_obstacle_tracker_core) covered by GoogleTest.

Prerequisites

  • ROS 2 Jazzy on Ubuntu 24.04.
  • prox_mpc_msgs (workspace package).
  • Eigen3, rclcpp, rclcpp_components, rclcpp_lifecycle, lifecycle_msgs, sensor_msgs, geometry_msgs, tf2, tf2_ros (resolved by rosdep).

Build

colcon build --symlink-install --packages-select prox_mpc_msgs prox_mpc_obstacle_tracker
source install/setup.bash

Run

The standalone executable is a self-activating lifecycle node: it brings itself up (configure -> activate), spins, and tears itself down on SIGINT/SIGTERM. The bundled launch file loads config/obstacle_tracker.yaml and wires the node-only logger level, with a params_file argument to override the parameters:

ros2 launch prox_mpc_obstacle_tracker obstacle_tracker.launch.py
ros2 launch prox_mpc_obstacle_tracker obstacle_tracker.launch.py \
  params_file:=/path/to/custom.yaml

To run the executable directly instead of through the launch file:

ros2 run prox_mpc_obstacle_tracker obstacle_tracker \
  --ros-args --params-file \
  $(ros2 pkg prefix prox_mpc_obstacle_tracker)/share/prox_mpc_obstacle_tracker/config/obstacle_tracker.yaml

config/obstacle_tracker.yaml is the single source of truth for the parameters. Watch the output with:

ros2 topic echo /tracked_obstacles

In simulation the tracker is started automatically by the demo’s Nav2 launch with predictive:=True (see prox_mpc_demo/doc/nav2-simulation.md).

Interfaces

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package prox_mpc_obstacle_tracker

1.0.0 (2026-07-28)

  • Initial release: lifecycle node that clusters a 2D LaserScan, associates clusters to an IMM (constant-velocity + constant-turn-rate) filter in a fixed frame, and publishes a prox_mpc_msgs/ObstacleArray.
  • Composable component registration plus a mutually-exclusive callback group and teardown guard, so it is safe under a MultiThreadedExecutor; node-only log_level parameter and a standalone launch file.
  • Contributors: Simone Contorno

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged prox_mpc_obstacle_tracker 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.0
License Apache-2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/simone-contorno/prox_mpc.git
VCS Type git
VCS Version main
Last Updated 2026-07-28
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

In-house 2D-lidar dynamic-obstacle detector and tracker for ProxMPC: a lifecycle node that clusters a LaserScan, associates clusters to IMM (constant-velocity / constant-turn-rate) Kalman tracks in a fixed frame, and publishes their position and velocity as a prox_mpc_msgs/ObstacleArray. License-clean (no third-party trackers).

Additional Links

Maintainers

  • Simone Contorno

Authors

No additional authors.

prox_mpc_obstacle_tracker

An in-house 2D-lidar dynamic-obstacle detector and tracker for ProxMPC.

A managed lifecycle node clusters a sensor_msgs/LaserScan, transforms the cluster centroids into a fixed tracking frame, runs one IMM (constant-velocity + constant-turn-rate) filter per object, and publishes the confirmed tracks - including sampled predicted positions along each track’s estimated arc - as a prox_mpc_msgs/ObstacleArray. That feed is what prox_mpc_controller consumes for predictive (dynamic) obstacle avoidance.

The detection and tracking math is written from scratch (Eigen only, no third-party tracker), so the package is license-clean and unit-testable without ROS. The design, algorithm, parameters, and interfaces are documented in doc/architecture.md.

Table of Contents

Key Features

  • Lifecycle node: managed configure -> activate -> deactivate -> cleanup, with a signal-safe shutdown ladder in the standalone driver.
  • Self-contained pipeline: LaserScan -> planar points -> adjacency clusters -> tracking-frame centroids -> IMM (CV + CTRV) tracks with sampled predicted positions.
  • Multi-object tracking: gated greedy nearest-neighbour association, one IMM filter per track (a constant-velocity Kalman filter and a constant-turn-rate-and-velocity EKF run in parallel, blended by model probability), and a birth/confirm/death lifecycle. imm_enabled: false restores the legacy single-CV path.
  • Curved prediction feed: each published obstacle carries prediction_steps predicted positions at prediction_dt spacing (default 25 x 0.1 s = 2.5 s), so the controller can follow turning obstacles instead of a straight constant-velocity ray.
  • Wall rejection: a cluster-radius cap drops extended structure (walls) whose centroid would otherwise be tracked as a phantom fast-moving obstacle.
  • Pure core: the clustering and tracker are a ROS-free Eigen library (prox_mpc_obstacle_tracker_core) covered by GoogleTest.

Prerequisites

  • ROS 2 Jazzy on Ubuntu 24.04.
  • prox_mpc_msgs (workspace package).
  • Eigen3, rclcpp, rclcpp_components, rclcpp_lifecycle, lifecycle_msgs, sensor_msgs, geometry_msgs, tf2, tf2_ros (resolved by rosdep).

Build

colcon build --symlink-install --packages-select prox_mpc_msgs prox_mpc_obstacle_tracker
source install/setup.bash

Run

The standalone executable is a self-activating lifecycle node: it brings itself up (configure -> activate), spins, and tears itself down on SIGINT/SIGTERM. The bundled launch file loads config/obstacle_tracker.yaml and wires the node-only logger level, with a params_file argument to override the parameters:

ros2 launch prox_mpc_obstacle_tracker obstacle_tracker.launch.py
ros2 launch prox_mpc_obstacle_tracker obstacle_tracker.launch.py \
  params_file:=/path/to/custom.yaml

To run the executable directly instead of through the launch file:

ros2 run prox_mpc_obstacle_tracker obstacle_tracker \
  --ros-args --params-file \
  $(ros2 pkg prefix prox_mpc_obstacle_tracker)/share/prox_mpc_obstacle_tracker/config/obstacle_tracker.yaml

config/obstacle_tracker.yaml is the single source of truth for the parameters. Watch the output with:

ros2 topic echo /tracked_obstacles

In simulation the tracker is started automatically by the demo’s Nav2 launch with predictive:=True (see prox_mpc_demo/doc/nav2-simulation.md).

Interfaces

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package prox_mpc_obstacle_tracker

1.0.0 (2026-07-28)

  • Initial release: lifecycle node that clusters a 2D LaserScan, associates clusters to an IMM (constant-velocity + constant-turn-rate) filter in a fixed frame, and publishes a prox_mpc_msgs/ObstacleArray.
  • Composable component registration plus a mutually-exclusive callback group and teardown guard, so it is safe under a MultiThreadedExecutor; node-only log_level parameter and a standalone launch file.
  • Contributors: Simone Contorno

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged prox_mpc_obstacle_tracker 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.0
License Apache-2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/simone-contorno/prox_mpc.git
VCS Type git
VCS Version main
Last Updated 2026-07-28
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

In-house 2D-lidar dynamic-obstacle detector and tracker for ProxMPC: a lifecycle node that clusters a LaserScan, associates clusters to IMM (constant-velocity / constant-turn-rate) Kalman tracks in a fixed frame, and publishes their position and velocity as a prox_mpc_msgs/ObstacleArray. License-clean (no third-party trackers).

Additional Links

Maintainers

  • Simone Contorno

Authors

No additional authors.

prox_mpc_obstacle_tracker

An in-house 2D-lidar dynamic-obstacle detector and tracker for ProxMPC.

A managed lifecycle node clusters a sensor_msgs/LaserScan, transforms the cluster centroids into a fixed tracking frame, runs one IMM (constant-velocity + constant-turn-rate) filter per object, and publishes the confirmed tracks - including sampled predicted positions along each track’s estimated arc - as a prox_mpc_msgs/ObstacleArray. That feed is what prox_mpc_controller consumes for predictive (dynamic) obstacle avoidance.

The detection and tracking math is written from scratch (Eigen only, no third-party tracker), so the package is license-clean and unit-testable without ROS. The design, algorithm, parameters, and interfaces are documented in doc/architecture.md.

Table of Contents

Key Features

  • Lifecycle node: managed configure -> activate -> deactivate -> cleanup, with a signal-safe shutdown ladder in the standalone driver.
  • Self-contained pipeline: LaserScan -> planar points -> adjacency clusters -> tracking-frame centroids -> IMM (CV + CTRV) tracks with sampled predicted positions.
  • Multi-object tracking: gated greedy nearest-neighbour association, one IMM filter per track (a constant-velocity Kalman filter and a constant-turn-rate-and-velocity EKF run in parallel, blended by model probability), and a birth/confirm/death lifecycle. imm_enabled: false restores the legacy single-CV path.
  • Curved prediction feed: each published obstacle carries prediction_steps predicted positions at prediction_dt spacing (default 25 x 0.1 s = 2.5 s), so the controller can follow turning obstacles instead of a straight constant-velocity ray.
  • Wall rejection: a cluster-radius cap drops extended structure (walls) whose centroid would otherwise be tracked as a phantom fast-moving obstacle.
  • Pure core: the clustering and tracker are a ROS-free Eigen library (prox_mpc_obstacle_tracker_core) covered by GoogleTest.

Prerequisites

  • ROS 2 Jazzy on Ubuntu 24.04.
  • prox_mpc_msgs (workspace package).
  • Eigen3, rclcpp, rclcpp_components, rclcpp_lifecycle, lifecycle_msgs, sensor_msgs, geometry_msgs, tf2, tf2_ros (resolved by rosdep).

Build

colcon build --symlink-install --packages-select prox_mpc_msgs prox_mpc_obstacle_tracker
source install/setup.bash

Run

The standalone executable is a self-activating lifecycle node: it brings itself up (configure -> activate), spins, and tears itself down on SIGINT/SIGTERM. The bundled launch file loads config/obstacle_tracker.yaml and wires the node-only logger level, with a params_file argument to override the parameters:

ros2 launch prox_mpc_obstacle_tracker obstacle_tracker.launch.py
ros2 launch prox_mpc_obstacle_tracker obstacle_tracker.launch.py \
  params_file:=/path/to/custom.yaml

To run the executable directly instead of through the launch file:

ros2 run prox_mpc_obstacle_tracker obstacle_tracker \
  --ros-args --params-file \
  $(ros2 pkg prefix prox_mpc_obstacle_tracker)/share/prox_mpc_obstacle_tracker/config/obstacle_tracker.yaml

config/obstacle_tracker.yaml is the single source of truth for the parameters. Watch the output with:

ros2 topic echo /tracked_obstacles

In simulation the tracker is started automatically by the demo’s Nav2 launch with predictive:=True (see prox_mpc_demo/doc/nav2-simulation.md).

Interfaces

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package prox_mpc_obstacle_tracker

1.0.0 (2026-07-28)

  • Initial release: lifecycle node that clusters a 2D LaserScan, associates clusters to an IMM (constant-velocity + constant-turn-rate) filter in a fixed frame, and publishes a prox_mpc_msgs/ObstacleArray.
  • Composable component registration plus a mutually-exclusive callback group and teardown guard, so it is safe under a MultiThreadedExecutor; node-only log_level parameter and a standalone launch file.
  • Contributors: Simone Contorno

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged prox_mpc_obstacle_tracker 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.0
License Apache-2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/simone-contorno/prox_mpc.git
VCS Type git
VCS Version main
Last Updated 2026-07-28
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

In-house 2D-lidar dynamic-obstacle detector and tracker for ProxMPC: a lifecycle node that clusters a LaserScan, associates clusters to IMM (constant-velocity / constant-turn-rate) Kalman tracks in a fixed frame, and publishes their position and velocity as a prox_mpc_msgs/ObstacleArray. License-clean (no third-party trackers).

Additional Links

Maintainers

  • Simone Contorno

Authors

No additional authors.

prox_mpc_obstacle_tracker

An in-house 2D-lidar dynamic-obstacle detector and tracker for ProxMPC.

A managed lifecycle node clusters a sensor_msgs/LaserScan, transforms the cluster centroids into a fixed tracking frame, runs one IMM (constant-velocity + constant-turn-rate) filter per object, and publishes the confirmed tracks - including sampled predicted positions along each track’s estimated arc - as a prox_mpc_msgs/ObstacleArray. That feed is what prox_mpc_controller consumes for predictive (dynamic) obstacle avoidance.

The detection and tracking math is written from scratch (Eigen only, no third-party tracker), so the package is license-clean and unit-testable without ROS. The design, algorithm, parameters, and interfaces are documented in doc/architecture.md.

Table of Contents

Key Features

  • Lifecycle node: managed configure -> activate -> deactivate -> cleanup, with a signal-safe shutdown ladder in the standalone driver.
  • Self-contained pipeline: LaserScan -> planar points -> adjacency clusters -> tracking-frame centroids -> IMM (CV + CTRV) tracks with sampled predicted positions.
  • Multi-object tracking: gated greedy nearest-neighbour association, one IMM filter per track (a constant-velocity Kalman filter and a constant-turn-rate-and-velocity EKF run in parallel, blended by model probability), and a birth/confirm/death lifecycle. imm_enabled: false restores the legacy single-CV path.
  • Curved prediction feed: each published obstacle carries prediction_steps predicted positions at prediction_dt spacing (default 25 x 0.1 s = 2.5 s), so the controller can follow turning obstacles instead of a straight constant-velocity ray.
  • Wall rejection: a cluster-radius cap drops extended structure (walls) whose centroid would otherwise be tracked as a phantom fast-moving obstacle.
  • Pure core: the clustering and tracker are a ROS-free Eigen library (prox_mpc_obstacle_tracker_core) covered by GoogleTest.

Prerequisites

  • ROS 2 Jazzy on Ubuntu 24.04.
  • prox_mpc_msgs (workspace package).
  • Eigen3, rclcpp, rclcpp_components, rclcpp_lifecycle, lifecycle_msgs, sensor_msgs, geometry_msgs, tf2, tf2_ros (resolved by rosdep).

Build

colcon build --symlink-install --packages-select prox_mpc_msgs prox_mpc_obstacle_tracker
source install/setup.bash

Run

The standalone executable is a self-activating lifecycle node: it brings itself up (configure -> activate), spins, and tears itself down on SIGINT/SIGTERM. The bundled launch file loads config/obstacle_tracker.yaml and wires the node-only logger level, with a params_file argument to override the parameters:

ros2 launch prox_mpc_obstacle_tracker obstacle_tracker.launch.py
ros2 launch prox_mpc_obstacle_tracker obstacle_tracker.launch.py \
  params_file:=/path/to/custom.yaml

To run the executable directly instead of through the launch file:

ros2 run prox_mpc_obstacle_tracker obstacle_tracker \
  --ros-args --params-file \
  $(ros2 pkg prefix prox_mpc_obstacle_tracker)/share/prox_mpc_obstacle_tracker/config/obstacle_tracker.yaml

config/obstacle_tracker.yaml is the single source of truth for the parameters. Watch the output with:

ros2 topic echo /tracked_obstacles

In simulation the tracker is started automatically by the demo’s Nav2 launch with predictive:=True (see prox_mpc_demo/doc/nav2-simulation.md).

Interfaces

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package prox_mpc_obstacle_tracker

1.0.0 (2026-07-28)

  • Initial release: lifecycle node that clusters a 2D LaserScan, associates clusters to an IMM (constant-velocity + constant-turn-rate) filter in a fixed frame, and publishes a prox_mpc_msgs/ObstacleArray.
  • Composable component registration plus a mutually-exclusive callback group and teardown guard, so it is safe under a MultiThreadedExecutor; node-only log_level parameter and a standalone launch file.
  • Contributors: Simone Contorno

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged prox_mpc_obstacle_tracker 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.0
License Apache-2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/simone-contorno/prox_mpc.git
VCS Type git
VCS Version main
Last Updated 2026-07-28
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

In-house 2D-lidar dynamic-obstacle detector and tracker for ProxMPC: a lifecycle node that clusters a LaserScan, associates clusters to IMM (constant-velocity / constant-turn-rate) Kalman tracks in a fixed frame, and publishes their position and velocity as a prox_mpc_msgs/ObstacleArray. License-clean (no third-party trackers).

Additional Links

Maintainers

  • Simone Contorno

Authors

No additional authors.

prox_mpc_obstacle_tracker

An in-house 2D-lidar dynamic-obstacle detector and tracker for ProxMPC.

A managed lifecycle node clusters a sensor_msgs/LaserScan, transforms the cluster centroids into a fixed tracking frame, runs one IMM (constant-velocity + constant-turn-rate) filter per object, and publishes the confirmed tracks - including sampled predicted positions along each track’s estimated arc - as a prox_mpc_msgs/ObstacleArray. That feed is what prox_mpc_controller consumes for predictive (dynamic) obstacle avoidance.

The detection and tracking math is written from scratch (Eigen only, no third-party tracker), so the package is license-clean and unit-testable without ROS. The design, algorithm, parameters, and interfaces are documented in doc/architecture.md.

Table of Contents

Key Features

  • Lifecycle node: managed configure -> activate -> deactivate -> cleanup, with a signal-safe shutdown ladder in the standalone driver.
  • Self-contained pipeline: LaserScan -> planar points -> adjacency clusters -> tracking-frame centroids -> IMM (CV + CTRV) tracks with sampled predicted positions.
  • Multi-object tracking: gated greedy nearest-neighbour association, one IMM filter per track (a constant-velocity Kalman filter and a constant-turn-rate-and-velocity EKF run in parallel, blended by model probability), and a birth/confirm/death lifecycle. imm_enabled: false restores the legacy single-CV path.
  • Curved prediction feed: each published obstacle carries prediction_steps predicted positions at prediction_dt spacing (default 25 x 0.1 s = 2.5 s), so the controller can follow turning obstacles instead of a straight constant-velocity ray.
  • Wall rejection: a cluster-radius cap drops extended structure (walls) whose centroid would otherwise be tracked as a phantom fast-moving obstacle.
  • Pure core: the clustering and tracker are a ROS-free Eigen library (prox_mpc_obstacle_tracker_core) covered by GoogleTest.

Prerequisites

  • ROS 2 Jazzy on Ubuntu 24.04.
  • prox_mpc_msgs (workspace package).
  • Eigen3, rclcpp, rclcpp_components, rclcpp_lifecycle, lifecycle_msgs, sensor_msgs, geometry_msgs, tf2, tf2_ros (resolved by rosdep).

Build

colcon build --symlink-install --packages-select prox_mpc_msgs prox_mpc_obstacle_tracker
source install/setup.bash

Run

The standalone executable is a self-activating lifecycle node: it brings itself up (configure -> activate), spins, and tears itself down on SIGINT/SIGTERM. The bundled launch file loads config/obstacle_tracker.yaml and wires the node-only logger level, with a params_file argument to override the parameters:

ros2 launch prox_mpc_obstacle_tracker obstacle_tracker.launch.py
ros2 launch prox_mpc_obstacle_tracker obstacle_tracker.launch.py \
  params_file:=/path/to/custom.yaml

To run the executable directly instead of through the launch file:

ros2 run prox_mpc_obstacle_tracker obstacle_tracker \
  --ros-args --params-file \
  $(ros2 pkg prefix prox_mpc_obstacle_tracker)/share/prox_mpc_obstacle_tracker/config/obstacle_tracker.yaml

config/obstacle_tracker.yaml is the single source of truth for the parameters. Watch the output with:

ros2 topic echo /tracked_obstacles

In simulation the tracker is started automatically by the demo’s Nav2 launch with predictive:=True (see prox_mpc_demo/doc/nav2-simulation.md).

Interfaces

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package prox_mpc_obstacle_tracker

1.0.0 (2026-07-28)

  • Initial release: lifecycle node that clusters a 2D LaserScan, associates clusters to an IMM (constant-velocity + constant-turn-rate) filter in a fixed frame, and publishes a prox_mpc_msgs/ObstacleArray.
  • Composable component registration plus a mutually-exclusive callback group and teardown guard, so it is safe under a MultiThreadedExecutor; node-only log_level parameter and a standalone launch file.
  • Contributors: Simone Contorno

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged prox_mpc_obstacle_tracker 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.0
License Apache-2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/simone-contorno/prox_mpc.git
VCS Type git
VCS Version main
Last Updated 2026-07-28
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

In-house 2D-lidar dynamic-obstacle detector and tracker for ProxMPC: a lifecycle node that clusters a LaserScan, associates clusters to IMM (constant-velocity / constant-turn-rate) Kalman tracks in a fixed frame, and publishes their position and velocity as a prox_mpc_msgs/ObstacleArray. License-clean (no third-party trackers).

Additional Links

Maintainers

  • Simone Contorno

Authors

No additional authors.

prox_mpc_obstacle_tracker

An in-house 2D-lidar dynamic-obstacle detector and tracker for ProxMPC.

A managed lifecycle node clusters a sensor_msgs/LaserScan, transforms the cluster centroids into a fixed tracking frame, runs one IMM (constant-velocity + constant-turn-rate) filter per object, and publishes the confirmed tracks - including sampled predicted positions along each track’s estimated arc - as a prox_mpc_msgs/ObstacleArray. That feed is what prox_mpc_controller consumes for predictive (dynamic) obstacle avoidance.

The detection and tracking math is written from scratch (Eigen only, no third-party tracker), so the package is license-clean and unit-testable without ROS. The design, algorithm, parameters, and interfaces are documented in doc/architecture.md.

Table of Contents

Key Features

  • Lifecycle node: managed configure -> activate -> deactivate -> cleanup, with a signal-safe shutdown ladder in the standalone driver.
  • Self-contained pipeline: LaserScan -> planar points -> adjacency clusters -> tracking-frame centroids -> IMM (CV + CTRV) tracks with sampled predicted positions.
  • Multi-object tracking: gated greedy nearest-neighbour association, one IMM filter per track (a constant-velocity Kalman filter and a constant-turn-rate-and-velocity EKF run in parallel, blended by model probability), and a birth/confirm/death lifecycle. imm_enabled: false restores the legacy single-CV path.
  • Curved prediction feed: each published obstacle carries prediction_steps predicted positions at prediction_dt spacing (default 25 x 0.1 s = 2.5 s), so the controller can follow turning obstacles instead of a straight constant-velocity ray.
  • Wall rejection: a cluster-radius cap drops extended structure (walls) whose centroid would otherwise be tracked as a phantom fast-moving obstacle.
  • Pure core: the clustering and tracker are a ROS-free Eigen library (prox_mpc_obstacle_tracker_core) covered by GoogleTest.

Prerequisites

  • ROS 2 Jazzy on Ubuntu 24.04.
  • prox_mpc_msgs (workspace package).
  • Eigen3, rclcpp, rclcpp_components, rclcpp_lifecycle, lifecycle_msgs, sensor_msgs, geometry_msgs, tf2, tf2_ros (resolved by rosdep).

Build

colcon build --symlink-install --packages-select prox_mpc_msgs prox_mpc_obstacle_tracker
source install/setup.bash

Run

The standalone executable is a self-activating lifecycle node: it brings itself up (configure -> activate), spins, and tears itself down on SIGINT/SIGTERM. The bundled launch file loads config/obstacle_tracker.yaml and wires the node-only logger level, with a params_file argument to override the parameters:

ros2 launch prox_mpc_obstacle_tracker obstacle_tracker.launch.py
ros2 launch prox_mpc_obstacle_tracker obstacle_tracker.launch.py \
  params_file:=/path/to/custom.yaml

To run the executable directly instead of through the launch file:

ros2 run prox_mpc_obstacle_tracker obstacle_tracker \
  --ros-args --params-file \
  $(ros2 pkg prefix prox_mpc_obstacle_tracker)/share/prox_mpc_obstacle_tracker/config/obstacle_tracker.yaml

config/obstacle_tracker.yaml is the single source of truth for the parameters. Watch the output with:

ros2 topic echo /tracked_obstacles

In simulation the tracker is started automatically by the demo’s Nav2 launch with predictive:=True (see prox_mpc_demo/doc/nav2-simulation.md).

Interfaces

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package prox_mpc_obstacle_tracker

1.0.0 (2026-07-28)

  • Initial release: lifecycle node that clusters a 2D LaserScan, associates clusters to an IMM (constant-velocity + constant-turn-rate) filter in a fixed frame, and publishes a prox_mpc_msgs/ObstacleArray.
  • Composable component registration plus a mutually-exclusive callback group and teardown guard, so it is safe under a MultiThreadedExecutor; node-only log_level parameter and a standalone launch file.
  • Contributors: Simone Contorno

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged prox_mpc_obstacle_tracker 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.0
License Apache-2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/simone-contorno/prox_mpc.git
VCS Type git
VCS Version main
Last Updated 2026-07-28
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

In-house 2D-lidar dynamic-obstacle detector and tracker for ProxMPC: a lifecycle node that clusters a LaserScan, associates clusters to IMM (constant-velocity / constant-turn-rate) Kalman tracks in a fixed frame, and publishes their position and velocity as a prox_mpc_msgs/ObstacleArray. License-clean (no third-party trackers).

Additional Links

Maintainers

  • Simone Contorno

Authors

No additional authors.

prox_mpc_obstacle_tracker

An in-house 2D-lidar dynamic-obstacle detector and tracker for ProxMPC.

A managed lifecycle node clusters a sensor_msgs/LaserScan, transforms the cluster centroids into a fixed tracking frame, runs one IMM (constant-velocity + constant-turn-rate) filter per object, and publishes the confirmed tracks - including sampled predicted positions along each track’s estimated arc - as a prox_mpc_msgs/ObstacleArray. That feed is what prox_mpc_controller consumes for predictive (dynamic) obstacle avoidance.

The detection and tracking math is written from scratch (Eigen only, no third-party tracker), so the package is license-clean and unit-testable without ROS. The design, algorithm, parameters, and interfaces are documented in doc/architecture.md.

Table of Contents

Key Features

  • Lifecycle node: managed configure -> activate -> deactivate -> cleanup, with a signal-safe shutdown ladder in the standalone driver.
  • Self-contained pipeline: LaserScan -> planar points -> adjacency clusters -> tracking-frame centroids -> IMM (CV + CTRV) tracks with sampled predicted positions.
  • Multi-object tracking: gated greedy nearest-neighbour association, one IMM filter per track (a constant-velocity Kalman filter and a constant-turn-rate-and-velocity EKF run in parallel, blended by model probability), and a birth/confirm/death lifecycle. imm_enabled: false restores the legacy single-CV path.
  • Curved prediction feed: each published obstacle carries prediction_steps predicted positions at prediction_dt spacing (default 25 x 0.1 s = 2.5 s), so the controller can follow turning obstacles instead of a straight constant-velocity ray.
  • Wall rejection: a cluster-radius cap drops extended structure (walls) whose centroid would otherwise be tracked as a phantom fast-moving obstacle.
  • Pure core: the clustering and tracker are a ROS-free Eigen library (prox_mpc_obstacle_tracker_core) covered by GoogleTest.

Prerequisites

  • ROS 2 Jazzy on Ubuntu 24.04.
  • prox_mpc_msgs (workspace package).
  • Eigen3, rclcpp, rclcpp_components, rclcpp_lifecycle, lifecycle_msgs, sensor_msgs, geometry_msgs, tf2, tf2_ros (resolved by rosdep).

Build

colcon build --symlink-install --packages-select prox_mpc_msgs prox_mpc_obstacle_tracker
source install/setup.bash

Run

The standalone executable is a self-activating lifecycle node: it brings itself up (configure -> activate), spins, and tears itself down on SIGINT/SIGTERM. The bundled launch file loads config/obstacle_tracker.yaml and wires the node-only logger level, with a params_file argument to override the parameters:

ros2 launch prox_mpc_obstacle_tracker obstacle_tracker.launch.py
ros2 launch prox_mpc_obstacle_tracker obstacle_tracker.launch.py \
  params_file:=/path/to/custom.yaml

To run the executable directly instead of through the launch file:

ros2 run prox_mpc_obstacle_tracker obstacle_tracker \
  --ros-args --params-file \
  $(ros2 pkg prefix prox_mpc_obstacle_tracker)/share/prox_mpc_obstacle_tracker/config/obstacle_tracker.yaml

config/obstacle_tracker.yaml is the single source of truth for the parameters. Watch the output with:

ros2 topic echo /tracked_obstacles

In simulation the tracker is started automatically by the demo’s Nav2 launch with predictive:=True (see prox_mpc_demo/doc/nav2-simulation.md).

Interfaces

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package prox_mpc_obstacle_tracker

1.0.0 (2026-07-28)

  • Initial release: lifecycle node that clusters a 2D LaserScan, associates clusters to an IMM (constant-velocity + constant-turn-rate) filter in a fixed frame, and publishes a prox_mpc_msgs/ObstacleArray.
  • Composable component registration plus a mutually-exclusive callback group and teardown guard, so it is safe under a MultiThreadedExecutor; node-only log_level parameter and a standalone launch file.
  • Contributors: Simone Contorno

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged prox_mpc_obstacle_tracker 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.0
License Apache-2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/simone-contorno/prox_mpc.git
VCS Type git
VCS Version main
Last Updated 2026-07-28
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

In-house 2D-lidar dynamic-obstacle detector and tracker for ProxMPC: a lifecycle node that clusters a LaserScan, associates clusters to IMM (constant-velocity / constant-turn-rate) Kalman tracks in a fixed frame, and publishes their position and velocity as a prox_mpc_msgs/ObstacleArray. License-clean (no third-party trackers).

Additional Links

Maintainers

  • Simone Contorno

Authors

No additional authors.

prox_mpc_obstacle_tracker

An in-house 2D-lidar dynamic-obstacle detector and tracker for ProxMPC.

A managed lifecycle node clusters a sensor_msgs/LaserScan, transforms the cluster centroids into a fixed tracking frame, runs one IMM (constant-velocity + constant-turn-rate) filter per object, and publishes the confirmed tracks - including sampled predicted positions along each track’s estimated arc - as a prox_mpc_msgs/ObstacleArray. That feed is what prox_mpc_controller consumes for predictive (dynamic) obstacle avoidance.

The detection and tracking math is written from scratch (Eigen only, no third-party tracker), so the package is license-clean and unit-testable without ROS. The design, algorithm, parameters, and interfaces are documented in doc/architecture.md.

Table of Contents

Key Features

  • Lifecycle node: managed configure -> activate -> deactivate -> cleanup, with a signal-safe shutdown ladder in the standalone driver.
  • Self-contained pipeline: LaserScan -> planar points -> adjacency clusters -> tracking-frame centroids -> IMM (CV + CTRV) tracks with sampled predicted positions.
  • Multi-object tracking: gated greedy nearest-neighbour association, one IMM filter per track (a constant-velocity Kalman filter and a constant-turn-rate-and-velocity EKF run in parallel, blended by model probability), and a birth/confirm/death lifecycle. imm_enabled: false restores the legacy single-CV path.
  • Curved prediction feed: each published obstacle carries prediction_steps predicted positions at prediction_dt spacing (default 25 x 0.1 s = 2.5 s), so the controller can follow turning obstacles instead of a straight constant-velocity ray.
  • Wall rejection: a cluster-radius cap drops extended structure (walls) whose centroid would otherwise be tracked as a phantom fast-moving obstacle.
  • Pure core: the clustering and tracker are a ROS-free Eigen library (prox_mpc_obstacle_tracker_core) covered by GoogleTest.

Prerequisites

  • ROS 2 Jazzy on Ubuntu 24.04.
  • prox_mpc_msgs (workspace package).
  • Eigen3, rclcpp, rclcpp_components, rclcpp_lifecycle, lifecycle_msgs, sensor_msgs, geometry_msgs, tf2, tf2_ros (resolved by rosdep).

Build

colcon build --symlink-install --packages-select prox_mpc_msgs prox_mpc_obstacle_tracker
source install/setup.bash

Run

The standalone executable is a self-activating lifecycle node: it brings itself up (configure -> activate), spins, and tears itself down on SIGINT/SIGTERM. The bundled launch file loads config/obstacle_tracker.yaml and wires the node-only logger level, with a params_file argument to override the parameters:

ros2 launch prox_mpc_obstacle_tracker obstacle_tracker.launch.py
ros2 launch prox_mpc_obstacle_tracker obstacle_tracker.launch.py \
  params_file:=/path/to/custom.yaml

To run the executable directly instead of through the launch file:

ros2 run prox_mpc_obstacle_tracker obstacle_tracker \
  --ros-args --params-file \
  $(ros2 pkg prefix prox_mpc_obstacle_tracker)/share/prox_mpc_obstacle_tracker/config/obstacle_tracker.yaml

config/obstacle_tracker.yaml is the single source of truth for the parameters. Watch the output with:

ros2 topic echo /tracked_obstacles

In simulation the tracker is started automatically by the demo’s Nav2 launch with predictive:=True (see prox_mpc_demo/doc/nav2-simulation.md).

Interfaces

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package prox_mpc_obstacle_tracker

1.0.0 (2026-07-28)

  • Initial release: lifecycle node that clusters a 2D LaserScan, associates clusters to an IMM (constant-velocity + constant-turn-rate) filter in a fixed frame, and publishes a prox_mpc_msgs/ObstacleArray.
  • Composable component registration plus a mutually-exclusive callback group and teardown guard, so it is safe under a MultiThreadedExecutor; node-only log_level parameter and a standalone launch file.
  • Contributors: Simone Contorno

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged prox_mpc_obstacle_tracker 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.0
License Apache-2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/simone-contorno/prox_mpc.git
VCS Type git
VCS Version main
Last Updated 2026-07-28
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

In-house 2D-lidar dynamic-obstacle detector and tracker for ProxMPC: a lifecycle node that clusters a LaserScan, associates clusters to IMM (constant-velocity / constant-turn-rate) Kalman tracks in a fixed frame, and publishes their position and velocity as a prox_mpc_msgs/ObstacleArray. License-clean (no third-party trackers).

Additional Links

Maintainers

  • Simone Contorno

Authors

No additional authors.

prox_mpc_obstacle_tracker

An in-house 2D-lidar dynamic-obstacle detector and tracker for ProxMPC.

A managed lifecycle node clusters a sensor_msgs/LaserScan, transforms the cluster centroids into a fixed tracking frame, runs one IMM (constant-velocity + constant-turn-rate) filter per object, and publishes the confirmed tracks - including sampled predicted positions along each track’s estimated arc - as a prox_mpc_msgs/ObstacleArray. That feed is what prox_mpc_controller consumes for predictive (dynamic) obstacle avoidance.

The detection and tracking math is written from scratch (Eigen only, no third-party tracker), so the package is license-clean and unit-testable without ROS. The design, algorithm, parameters, and interfaces are documented in doc/architecture.md.

Table of Contents

Key Features

  • Lifecycle node: managed configure -> activate -> deactivate -> cleanup, with a signal-safe shutdown ladder in the standalone driver.
  • Self-contained pipeline: LaserScan -> planar points -> adjacency clusters -> tracking-frame centroids -> IMM (CV + CTRV) tracks with sampled predicted positions.
  • Multi-object tracking: gated greedy nearest-neighbour association, one IMM filter per track (a constant-velocity Kalman filter and a constant-turn-rate-and-velocity EKF run in parallel, blended by model probability), and a birth/confirm/death lifecycle. imm_enabled: false restores the legacy single-CV path.
  • Curved prediction feed: each published obstacle carries prediction_steps predicted positions at prediction_dt spacing (default 25 x 0.1 s = 2.5 s), so the controller can follow turning obstacles instead of a straight constant-velocity ray.
  • Wall rejection: a cluster-radius cap drops extended structure (walls) whose centroid would otherwise be tracked as a phantom fast-moving obstacle.
  • Pure core: the clustering and tracker are a ROS-free Eigen library (prox_mpc_obstacle_tracker_core) covered by GoogleTest.

Prerequisites

  • ROS 2 Jazzy on Ubuntu 24.04.
  • prox_mpc_msgs (workspace package).
  • Eigen3, rclcpp, rclcpp_components, rclcpp_lifecycle, lifecycle_msgs, sensor_msgs, geometry_msgs, tf2, tf2_ros (resolved by rosdep).

Build

colcon build --symlink-install --packages-select prox_mpc_msgs prox_mpc_obstacle_tracker
source install/setup.bash

Run

The standalone executable is a self-activating lifecycle node: it brings itself up (configure -> activate), spins, and tears itself down on SIGINT/SIGTERM. The bundled launch file loads config/obstacle_tracker.yaml and wires the node-only logger level, with a params_file argument to override the parameters:

ros2 launch prox_mpc_obstacle_tracker obstacle_tracker.launch.py
ros2 launch prox_mpc_obstacle_tracker obstacle_tracker.launch.py \
  params_file:=/path/to/custom.yaml

To run the executable directly instead of through the launch file:

ros2 run prox_mpc_obstacle_tracker obstacle_tracker \
  --ros-args --params-file \
  $(ros2 pkg prefix prox_mpc_obstacle_tracker)/share/prox_mpc_obstacle_tracker/config/obstacle_tracker.yaml

config/obstacle_tracker.yaml is the single source of truth for the parameters. Watch the output with:

ros2 topic echo /tracked_obstacles

In simulation the tracker is started automatically by the demo’s Nav2 launch with predictive:=True (see prox_mpc_demo/doc/nav2-simulation.md).

Interfaces

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package prox_mpc_obstacle_tracker

1.0.0 (2026-07-28)

  • Initial release: lifecycle node that clusters a 2D LaserScan, associates clusters to an IMM (constant-velocity + constant-turn-rate) filter in a fixed frame, and publishes a prox_mpc_msgs/ObstacleArray.
  • Composable component registration plus a mutually-exclusive callback group and teardown guard, so it is safe under a MultiThreadedExecutor; node-only log_level parameter and a standalone launch file.
  • Contributors: Simone Contorno

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged prox_mpc_obstacle_tracker 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.0
License Apache-2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/simone-contorno/prox_mpc.git
VCS Type git
VCS Version main
Last Updated 2026-07-28
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

In-house 2D-lidar dynamic-obstacle detector and tracker for ProxMPC: a lifecycle node that clusters a LaserScan, associates clusters to IMM (constant-velocity / constant-turn-rate) Kalman tracks in a fixed frame, and publishes their position and velocity as a prox_mpc_msgs/ObstacleArray. License-clean (no third-party trackers).

Additional Links

Maintainers

  • Simone Contorno

Authors

No additional authors.

prox_mpc_obstacle_tracker

An in-house 2D-lidar dynamic-obstacle detector and tracker for ProxMPC.

A managed lifecycle node clusters a sensor_msgs/LaserScan, transforms the cluster centroids into a fixed tracking frame, runs one IMM (constant-velocity + constant-turn-rate) filter per object, and publishes the confirmed tracks - including sampled predicted positions along each track’s estimated arc - as a prox_mpc_msgs/ObstacleArray. That feed is what prox_mpc_controller consumes for predictive (dynamic) obstacle avoidance.

The detection and tracking math is written from scratch (Eigen only, no third-party tracker), so the package is license-clean and unit-testable without ROS. The design, algorithm, parameters, and interfaces are documented in doc/architecture.md.

Table of Contents

Key Features

  • Lifecycle node: managed configure -> activate -> deactivate -> cleanup, with a signal-safe shutdown ladder in the standalone driver.
  • Self-contained pipeline: LaserScan -> planar points -> adjacency clusters -> tracking-frame centroids -> IMM (CV + CTRV) tracks with sampled predicted positions.
  • Multi-object tracking: gated greedy nearest-neighbour association, one IMM filter per track (a constant-velocity Kalman filter and a constant-turn-rate-and-velocity EKF run in parallel, blended by model probability), and a birth/confirm/death lifecycle. imm_enabled: false restores the legacy single-CV path.
  • Curved prediction feed: each published obstacle carries prediction_steps predicted positions at prediction_dt spacing (default 25 x 0.1 s = 2.5 s), so the controller can follow turning obstacles instead of a straight constant-velocity ray.
  • Wall rejection: a cluster-radius cap drops extended structure (walls) whose centroid would otherwise be tracked as a phantom fast-moving obstacle.
  • Pure core: the clustering and tracker are a ROS-free Eigen library (prox_mpc_obstacle_tracker_core) covered by GoogleTest.

Prerequisites

  • ROS 2 Jazzy on Ubuntu 24.04.
  • prox_mpc_msgs (workspace package).
  • Eigen3, rclcpp, rclcpp_components, rclcpp_lifecycle, lifecycle_msgs, sensor_msgs, geometry_msgs, tf2, tf2_ros (resolved by rosdep).

Build

colcon build --symlink-install --packages-select prox_mpc_msgs prox_mpc_obstacle_tracker
source install/setup.bash

Run

The standalone executable is a self-activating lifecycle node: it brings itself up (configure -> activate), spins, and tears itself down on SIGINT/SIGTERM. The bundled launch file loads config/obstacle_tracker.yaml and wires the node-only logger level, with a params_file argument to override the parameters:

ros2 launch prox_mpc_obstacle_tracker obstacle_tracker.launch.py
ros2 launch prox_mpc_obstacle_tracker obstacle_tracker.launch.py \
  params_file:=/path/to/custom.yaml

To run the executable directly instead of through the launch file:

ros2 run prox_mpc_obstacle_tracker obstacle_tracker \
  --ros-args --params-file \
  $(ros2 pkg prefix prox_mpc_obstacle_tracker)/share/prox_mpc_obstacle_tracker/config/obstacle_tracker.yaml

config/obstacle_tracker.yaml is the single source of truth for the parameters. Watch the output with:

ros2 topic echo /tracked_obstacles

In simulation the tracker is started automatically by the demo’s Nav2 launch with predictive:=True (see prox_mpc_demo/doc/nav2-simulation.md).

Interfaces

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package prox_mpc_obstacle_tracker

1.0.0 (2026-07-28)

  • Initial release: lifecycle node that clusters a 2D LaserScan, associates clusters to an IMM (constant-velocity + constant-turn-rate) filter in a fixed frame, and publishes a prox_mpc_msgs/ObstacleArray.
  • Composable component registration plus a mutually-exclusive callback group and teardown guard, so it is safe under a MultiThreadedExecutor; node-only log_level parameter and a standalone launch file.
  • Contributors: Simone Contorno

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged prox_mpc_obstacle_tracker 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.0
License Apache-2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/simone-contorno/prox_mpc.git
VCS Type git
VCS Version main
Last Updated 2026-07-28
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

In-house 2D-lidar dynamic-obstacle detector and tracker for ProxMPC: a lifecycle node that clusters a LaserScan, associates clusters to IMM (constant-velocity / constant-turn-rate) Kalman tracks in a fixed frame, and publishes their position and velocity as a prox_mpc_msgs/ObstacleArray. License-clean (no third-party trackers).

Additional Links

Maintainers

  • Simone Contorno

Authors

No additional authors.

prox_mpc_obstacle_tracker

An in-house 2D-lidar dynamic-obstacle detector and tracker for ProxMPC.

A managed lifecycle node clusters a sensor_msgs/LaserScan, transforms the cluster centroids into a fixed tracking frame, runs one IMM (constant-velocity + constant-turn-rate) filter per object, and publishes the confirmed tracks - including sampled predicted positions along each track’s estimated arc - as a prox_mpc_msgs/ObstacleArray. That feed is what prox_mpc_controller consumes for predictive (dynamic) obstacle avoidance.

The detection and tracking math is written from scratch (Eigen only, no third-party tracker), so the package is license-clean and unit-testable without ROS. The design, algorithm, parameters, and interfaces are documented in doc/architecture.md.

Table of Contents

Key Features

  • Lifecycle node: managed configure -> activate -> deactivate -> cleanup, with a signal-safe shutdown ladder in the standalone driver.
  • Self-contained pipeline: LaserScan -> planar points -> adjacency clusters -> tracking-frame centroids -> IMM (CV + CTRV) tracks with sampled predicted positions.
  • Multi-object tracking: gated greedy nearest-neighbour association, one IMM filter per track (a constant-velocity Kalman filter and a constant-turn-rate-and-velocity EKF run in parallel, blended by model probability), and a birth/confirm/death lifecycle. imm_enabled: false restores the legacy single-CV path.
  • Curved prediction feed: each published obstacle carries prediction_steps predicted positions at prediction_dt spacing (default 25 x 0.1 s = 2.5 s), so the controller can follow turning obstacles instead of a straight constant-velocity ray.
  • Wall rejection: a cluster-radius cap drops extended structure (walls) whose centroid would otherwise be tracked as a phantom fast-moving obstacle.
  • Pure core: the clustering and tracker are a ROS-free Eigen library (prox_mpc_obstacle_tracker_core) covered by GoogleTest.

Prerequisites

  • ROS 2 Jazzy on Ubuntu 24.04.
  • prox_mpc_msgs (workspace package).
  • Eigen3, rclcpp, rclcpp_components, rclcpp_lifecycle, lifecycle_msgs, sensor_msgs, geometry_msgs, tf2, tf2_ros (resolved by rosdep).

Build

colcon build --symlink-install --packages-select prox_mpc_msgs prox_mpc_obstacle_tracker
source install/setup.bash

Run

The standalone executable is a self-activating lifecycle node: it brings itself up (configure -> activate), spins, and tears itself down on SIGINT/SIGTERM. The bundled launch file loads config/obstacle_tracker.yaml and wires the node-only logger level, with a params_file argument to override the parameters:

ros2 launch prox_mpc_obstacle_tracker obstacle_tracker.launch.py
ros2 launch prox_mpc_obstacle_tracker obstacle_tracker.launch.py \
  params_file:=/path/to/custom.yaml

To run the executable directly instead of through the launch file:

ros2 run prox_mpc_obstacle_tracker obstacle_tracker \
  --ros-args --params-file \
  $(ros2 pkg prefix prox_mpc_obstacle_tracker)/share/prox_mpc_obstacle_tracker/config/obstacle_tracker.yaml

config/obstacle_tracker.yaml is the single source of truth for the parameters. Watch the output with:

ros2 topic echo /tracked_obstacles

In simulation the tracker is started automatically by the demo’s Nav2 launch with predictive:=True (see prox_mpc_demo/doc/nav2-simulation.md).

Interfaces

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package prox_mpc_obstacle_tracker

1.0.0 (2026-07-28)

  • Initial release: lifecycle node that clusters a 2D LaserScan, associates clusters to an IMM (constant-velocity + constant-turn-rate) filter in a fixed frame, and publishes a prox_mpc_msgs/ObstacleArray.
  • Composable component registration plus a mutually-exclusive callback group and teardown guard, so it is safe under a MultiThreadedExecutor; node-only log_level parameter and a standalone launch file.
  • Contributors: Simone Contorno

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged prox_mpc_obstacle_tracker 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.0
License Apache-2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/simone-contorno/prox_mpc.git
VCS Type git
VCS Version main
Last Updated 2026-07-28
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

In-house 2D-lidar dynamic-obstacle detector and tracker for ProxMPC: a lifecycle node that clusters a LaserScan, associates clusters to IMM (constant-velocity / constant-turn-rate) Kalman tracks in a fixed frame, and publishes their position and velocity as a prox_mpc_msgs/ObstacleArray. License-clean (no third-party trackers).

Additional Links

Maintainers

  • Simone Contorno

Authors

No additional authors.

prox_mpc_obstacle_tracker

An in-house 2D-lidar dynamic-obstacle detector and tracker for ProxMPC.

A managed lifecycle node clusters a sensor_msgs/LaserScan, transforms the cluster centroids into a fixed tracking frame, runs one IMM (constant-velocity + constant-turn-rate) filter per object, and publishes the confirmed tracks - including sampled predicted positions along each track’s estimated arc - as a prox_mpc_msgs/ObstacleArray. That feed is what prox_mpc_controller consumes for predictive (dynamic) obstacle avoidance.

The detection and tracking math is written from scratch (Eigen only, no third-party tracker), so the package is license-clean and unit-testable without ROS. The design, algorithm, parameters, and interfaces are documented in doc/architecture.md.

Table of Contents

Key Features

  • Lifecycle node: managed configure -> activate -> deactivate -> cleanup, with a signal-safe shutdown ladder in the standalone driver.
  • Self-contained pipeline: LaserScan -> planar points -> adjacency clusters -> tracking-frame centroids -> IMM (CV + CTRV) tracks with sampled predicted positions.
  • Multi-object tracking: gated greedy nearest-neighbour association, one IMM filter per track (a constant-velocity Kalman filter and a constant-turn-rate-and-velocity EKF run in parallel, blended by model probability), and a birth/confirm/death lifecycle. imm_enabled: false restores the legacy single-CV path.
  • Curved prediction feed: each published obstacle carries prediction_steps predicted positions at prediction_dt spacing (default 25 x 0.1 s = 2.5 s), so the controller can follow turning obstacles instead of a straight constant-velocity ray.
  • Wall rejection: a cluster-radius cap drops extended structure (walls) whose centroid would otherwise be tracked as a phantom fast-moving obstacle.
  • Pure core: the clustering and tracker are a ROS-free Eigen library (prox_mpc_obstacle_tracker_core) covered by GoogleTest.

Prerequisites

  • ROS 2 Jazzy on Ubuntu 24.04.
  • prox_mpc_msgs (workspace package).
  • Eigen3, rclcpp, rclcpp_components, rclcpp_lifecycle, lifecycle_msgs, sensor_msgs, geometry_msgs, tf2, tf2_ros (resolved by rosdep).

Build

colcon build --symlink-install --packages-select prox_mpc_msgs prox_mpc_obstacle_tracker
source install/setup.bash

Run

The standalone executable is a self-activating lifecycle node: it brings itself up (configure -> activate), spins, and tears itself down on SIGINT/SIGTERM. The bundled launch file loads config/obstacle_tracker.yaml and wires the node-only logger level, with a params_file argument to override the parameters:

ros2 launch prox_mpc_obstacle_tracker obstacle_tracker.launch.py
ros2 launch prox_mpc_obstacle_tracker obstacle_tracker.launch.py \
  params_file:=/path/to/custom.yaml

To run the executable directly instead of through the launch file:

ros2 run prox_mpc_obstacle_tracker obstacle_tracker \
  --ros-args --params-file \
  $(ros2 pkg prefix prox_mpc_obstacle_tracker)/share/prox_mpc_obstacle_tracker/config/obstacle_tracker.yaml

config/obstacle_tracker.yaml is the single source of truth for the parameters. Watch the output with:

ros2 topic echo /tracked_obstacles

In simulation the tracker is started automatically by the demo’s Nav2 launch with predictive:=True (see prox_mpc_demo/doc/nav2-simulation.md).

Interfaces

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package prox_mpc_obstacle_tracker

1.0.0 (2026-07-28)

  • Initial release: lifecycle node that clusters a 2D LaserScan, associates clusters to an IMM (constant-velocity + constant-turn-rate) filter in a fixed frame, and publishes a prox_mpc_msgs/ObstacleArray.
  • Composable component registration plus a mutually-exclusive callback group and teardown guard, so it is safe under a MultiThreadedExecutor; node-only log_level parameter and a standalone launch file.
  • Contributors: Simone Contorno

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged prox_mpc_obstacle_tracker 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.0
License Apache-2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/simone-contorno/prox_mpc.git
VCS Type git
VCS Version main
Last Updated 2026-07-28
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

In-house 2D-lidar dynamic-obstacle detector and tracker for ProxMPC: a lifecycle node that clusters a LaserScan, associates clusters to IMM (constant-velocity / constant-turn-rate) Kalman tracks in a fixed frame, and publishes their position and velocity as a prox_mpc_msgs/ObstacleArray. License-clean (no third-party trackers).

Additional Links

Maintainers

  • Simone Contorno

Authors

No additional authors.

prox_mpc_obstacle_tracker

An in-house 2D-lidar dynamic-obstacle detector and tracker for ProxMPC.

A managed lifecycle node clusters a sensor_msgs/LaserScan, transforms the cluster centroids into a fixed tracking frame, runs one IMM (constant-velocity + constant-turn-rate) filter per object, and publishes the confirmed tracks - including sampled predicted positions along each track’s estimated arc - as a prox_mpc_msgs/ObstacleArray. That feed is what prox_mpc_controller consumes for predictive (dynamic) obstacle avoidance.

The detection and tracking math is written from scratch (Eigen only, no third-party tracker), so the package is license-clean and unit-testable without ROS. The design, algorithm, parameters, and interfaces are documented in doc/architecture.md.

Table of Contents

Key Features

  • Lifecycle node: managed configure -> activate -> deactivate -> cleanup, with a signal-safe shutdown ladder in the standalone driver.
  • Self-contained pipeline: LaserScan -> planar points -> adjacency clusters -> tracking-frame centroids -> IMM (CV + CTRV) tracks with sampled predicted positions.
  • Multi-object tracking: gated greedy nearest-neighbour association, one IMM filter per track (a constant-velocity Kalman filter and a constant-turn-rate-and-velocity EKF run in parallel, blended by model probability), and a birth/confirm/death lifecycle. imm_enabled: false restores the legacy single-CV path.
  • Curved prediction feed: each published obstacle carries prediction_steps predicted positions at prediction_dt spacing (default 25 x 0.1 s = 2.5 s), so the controller can follow turning obstacles instead of a straight constant-velocity ray.
  • Wall rejection: a cluster-radius cap drops extended structure (walls) whose centroid would otherwise be tracked as a phantom fast-moving obstacle.
  • Pure core: the clustering and tracker are a ROS-free Eigen library (prox_mpc_obstacle_tracker_core) covered by GoogleTest.

Prerequisites

  • ROS 2 Jazzy on Ubuntu 24.04.
  • prox_mpc_msgs (workspace package).
  • Eigen3, rclcpp, rclcpp_components, rclcpp_lifecycle, lifecycle_msgs, sensor_msgs, geometry_msgs, tf2, tf2_ros (resolved by rosdep).

Build

colcon build --symlink-install --packages-select prox_mpc_msgs prox_mpc_obstacle_tracker
source install/setup.bash

Run

The standalone executable is a self-activating lifecycle node: it brings itself up (configure -> activate), spins, and tears itself down on SIGINT/SIGTERM. The bundled launch file loads config/obstacle_tracker.yaml and wires the node-only logger level, with a params_file argument to override the parameters:

ros2 launch prox_mpc_obstacle_tracker obstacle_tracker.launch.py
ros2 launch prox_mpc_obstacle_tracker obstacle_tracker.launch.py \
  params_file:=/path/to/custom.yaml

To run the executable directly instead of through the launch file:

ros2 run prox_mpc_obstacle_tracker obstacle_tracker \
  --ros-args --params-file \
  $(ros2 pkg prefix prox_mpc_obstacle_tracker)/share/prox_mpc_obstacle_tracker/config/obstacle_tracker.yaml

config/obstacle_tracker.yaml is the single source of truth for the parameters. Watch the output with:

ros2 topic echo /tracked_obstacles

In simulation the tracker is started automatically by the demo’s Nav2 launch with predictive:=True (see prox_mpc_demo/doc/nav2-simulation.md).

Interfaces

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package prox_mpc_obstacle_tracker

1.0.0 (2026-07-28)

  • Initial release: lifecycle node that clusters a 2D LaserScan, associates clusters to an IMM (constant-velocity + constant-turn-rate) filter in a fixed frame, and publishes a prox_mpc_msgs/ObstacleArray.
  • Composable component registration plus a mutually-exclusive callback group and teardown guard, so it is safe under a MultiThreadedExecutor; node-only log_level parameter and a standalone launch file.
  • Contributors: Simone Contorno

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged prox_mpc_obstacle_tracker 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.0
License Apache-2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/simone-contorno/prox_mpc.git
VCS Type git
VCS Version main
Last Updated 2026-07-28
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

In-house 2D-lidar dynamic-obstacle detector and tracker for ProxMPC: a lifecycle node that clusters a LaserScan, associates clusters to IMM (constant-velocity / constant-turn-rate) Kalman tracks in a fixed frame, and publishes their position and velocity as a prox_mpc_msgs/ObstacleArray. License-clean (no third-party trackers).

Additional Links

Maintainers

  • Simone Contorno

Authors

No additional authors.

prox_mpc_obstacle_tracker

An in-house 2D-lidar dynamic-obstacle detector and tracker for ProxMPC.

A managed lifecycle node clusters a sensor_msgs/LaserScan, transforms the cluster centroids into a fixed tracking frame, runs one IMM (constant-velocity + constant-turn-rate) filter per object, and publishes the confirmed tracks - including sampled predicted positions along each track’s estimated arc - as a prox_mpc_msgs/ObstacleArray. That feed is what prox_mpc_controller consumes for predictive (dynamic) obstacle avoidance.

The detection and tracking math is written from scratch (Eigen only, no third-party tracker), so the package is license-clean and unit-testable without ROS. The design, algorithm, parameters, and interfaces are documented in doc/architecture.md.

Table of Contents

Key Features

  • Lifecycle node: managed configure -> activate -> deactivate -> cleanup, with a signal-safe shutdown ladder in the standalone driver.
  • Self-contained pipeline: LaserScan -> planar points -> adjacency clusters -> tracking-frame centroids -> IMM (CV + CTRV) tracks with sampled predicted positions.
  • Multi-object tracking: gated greedy nearest-neighbour association, one IMM filter per track (a constant-velocity Kalman filter and a constant-turn-rate-and-velocity EKF run in parallel, blended by model probability), and a birth/confirm/death lifecycle. imm_enabled: false restores the legacy single-CV path.
  • Curved prediction feed: each published obstacle carries prediction_steps predicted positions at prediction_dt spacing (default 25 x 0.1 s = 2.5 s), so the controller can follow turning obstacles instead of a straight constant-velocity ray.
  • Wall rejection: a cluster-radius cap drops extended structure (walls) whose centroid would otherwise be tracked as a phantom fast-moving obstacle.
  • Pure core: the clustering and tracker are a ROS-free Eigen library (prox_mpc_obstacle_tracker_core) covered by GoogleTest.

Prerequisites

  • ROS 2 Jazzy on Ubuntu 24.04.
  • prox_mpc_msgs (workspace package).
  • Eigen3, rclcpp, rclcpp_components, rclcpp_lifecycle, lifecycle_msgs, sensor_msgs, geometry_msgs, tf2, tf2_ros (resolved by rosdep).

Build

colcon build --symlink-install --packages-select prox_mpc_msgs prox_mpc_obstacle_tracker
source install/setup.bash

Run

The standalone executable is a self-activating lifecycle node: it brings itself up (configure -> activate), spins, and tears itself down on SIGINT/SIGTERM. The bundled launch file loads config/obstacle_tracker.yaml and wires the node-only logger level, with a params_file argument to override the parameters:

ros2 launch prox_mpc_obstacle_tracker obstacle_tracker.launch.py
ros2 launch prox_mpc_obstacle_tracker obstacle_tracker.launch.py \
  params_file:=/path/to/custom.yaml

To run the executable directly instead of through the launch file:

ros2 run prox_mpc_obstacle_tracker obstacle_tracker \
  --ros-args --params-file \
  $(ros2 pkg prefix prox_mpc_obstacle_tracker)/share/prox_mpc_obstacle_tracker/config/obstacle_tracker.yaml

config/obstacle_tracker.yaml is the single source of truth for the parameters. Watch the output with:

ros2 topic echo /tracked_obstacles

In simulation the tracker is started automatically by the demo’s Nav2 launch with predictive:=True (see prox_mpc_demo/doc/nav2-simulation.md).

Interfaces

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package prox_mpc_obstacle_tracker

1.0.0 (2026-07-28)

  • Initial release: lifecycle node that clusters a 2D LaserScan, associates clusters to an IMM (constant-velocity + constant-turn-rate) filter in a fixed frame, and publishes a prox_mpc_msgs/ObstacleArray.
  • Composable component registration plus a mutually-exclusive callback group and teardown guard, so it is safe under a MultiThreadedExecutor; node-only log_level parameter and a standalone launch file.
  • Contributors: Simone Contorno

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged prox_mpc_obstacle_tracker 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.0
License Apache-2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/simone-contorno/prox_mpc.git
VCS Type git
VCS Version main
Last Updated 2026-07-28
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

In-house 2D-lidar dynamic-obstacle detector and tracker for ProxMPC: a lifecycle node that clusters a LaserScan, associates clusters to IMM (constant-velocity / constant-turn-rate) Kalman tracks in a fixed frame, and publishes their position and velocity as a prox_mpc_msgs/ObstacleArray. License-clean (no third-party trackers).

Additional Links

Maintainers

  • Simone Contorno

Authors

No additional authors.

prox_mpc_obstacle_tracker

An in-house 2D-lidar dynamic-obstacle detector and tracker for ProxMPC.

A managed lifecycle node clusters a sensor_msgs/LaserScan, transforms the cluster centroids into a fixed tracking frame, runs one IMM (constant-velocity + constant-turn-rate) filter per object, and publishes the confirmed tracks - including sampled predicted positions along each track’s estimated arc - as a prox_mpc_msgs/ObstacleArray. That feed is what prox_mpc_controller consumes for predictive (dynamic) obstacle avoidance.

The detection and tracking math is written from scratch (Eigen only, no third-party tracker), so the package is license-clean and unit-testable without ROS. The design, algorithm, parameters, and interfaces are documented in doc/architecture.md.

Table of Contents

Key Features

  • Lifecycle node: managed configure -> activate -> deactivate -> cleanup, with a signal-safe shutdown ladder in the standalone driver.
  • Self-contained pipeline: LaserScan -> planar points -> adjacency clusters -> tracking-frame centroids -> IMM (CV + CTRV) tracks with sampled predicted positions.
  • Multi-object tracking: gated greedy nearest-neighbour association, one IMM filter per track (a constant-velocity Kalman filter and a constant-turn-rate-and-velocity EKF run in parallel, blended by model probability), and a birth/confirm/death lifecycle. imm_enabled: false restores the legacy single-CV path.
  • Curved prediction feed: each published obstacle carries prediction_steps predicted positions at prediction_dt spacing (default 25 x 0.1 s = 2.5 s), so the controller can follow turning obstacles instead of a straight constant-velocity ray.
  • Wall rejection: a cluster-radius cap drops extended structure (walls) whose centroid would otherwise be tracked as a phantom fast-moving obstacle.
  • Pure core: the clustering and tracker are a ROS-free Eigen library (prox_mpc_obstacle_tracker_core) covered by GoogleTest.

Prerequisites

  • ROS 2 Jazzy on Ubuntu 24.04.
  • prox_mpc_msgs (workspace package).
  • Eigen3, rclcpp, rclcpp_components, rclcpp_lifecycle, lifecycle_msgs, sensor_msgs, geometry_msgs, tf2, tf2_ros (resolved by rosdep).

Build

colcon build --symlink-install --packages-select prox_mpc_msgs prox_mpc_obstacle_tracker
source install/setup.bash

Run

The standalone executable is a self-activating lifecycle node: it brings itself up (configure -> activate), spins, and tears itself down on SIGINT/SIGTERM. The bundled launch file loads config/obstacle_tracker.yaml and wires the node-only logger level, with a params_file argument to override the parameters:

ros2 launch prox_mpc_obstacle_tracker obstacle_tracker.launch.py
ros2 launch prox_mpc_obstacle_tracker obstacle_tracker.launch.py \
  params_file:=/path/to/custom.yaml

To run the executable directly instead of through the launch file:

ros2 run prox_mpc_obstacle_tracker obstacle_tracker \
  --ros-args --params-file \
  $(ros2 pkg prefix prox_mpc_obstacle_tracker)/share/prox_mpc_obstacle_tracker/config/obstacle_tracker.yaml

config/obstacle_tracker.yaml is the single source of truth for the parameters. Watch the output with:

ros2 topic echo /tracked_obstacles

In simulation the tracker is started automatically by the demo’s Nav2 launch with predictive:=True (see prox_mpc_demo/doc/nav2-simulation.md).

Interfaces

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package prox_mpc_obstacle_tracker

1.0.0 (2026-07-28)

  • Initial release: lifecycle node that clusters a 2D LaserScan, associates clusters to an IMM (constant-velocity + constant-turn-rate) filter in a fixed frame, and publishes a prox_mpc_msgs/ObstacleArray.
  • Composable component registration plus a mutually-exclusive callback group and teardown guard, so it is safe under a MultiThreadedExecutor; node-only log_level parameter and a standalone launch file.
  • Contributors: Simone Contorno

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged prox_mpc_obstacle_tracker at Robotics Stack Exchange