Package symbol

autoware_crop_box_filter package from autoware_core repo

autoware_adapi_adaptors autoware_adapi_specs autoware_core_api autoware_default_adapi autoware_core autoware_agnocast_wrapper autoware_component_interface_specs autoware_geography_utils autoware_global_parameter_loader autoware_interpolation autoware_kalman_filter autoware_lanelet2_utils autoware_marker_utils autoware_motion_utils autoware_node autoware_object_recognition_utils autoware_osqp_interface autoware_point_types autoware_qos_utils autoware_qp_interface autoware_signal_processing autoware_trajectory autoware_vehicle_info_utils autoware_core_control autoware_simple_pure_pursuit autoware_awsim_sensor_kit_description autoware_sample_sensor_kit_description autoware_sample_vehicle_description autoware_core_localization autoware_ekf_localizer autoware_gyro_odometer autoware_localization_util autoware_ndt_scan_matcher autoware_pose_initializer autoware_stop_filter autoware_twist2accel autoware_core_map autoware_lanelet2_map_visualizer autoware_map_height_fitter autoware_map_loader autoware_map_projection_loader autoware_core_perception autoware_euclidean_cluster_object_detector autoware_ground_filter autoware_perception_objects_converter autoware_core_planning autoware_mission_planner autoware_objects_of_interest_marker_interface autoware_path_generator autoware_planning_factor_interface autoware_planning_topic_converter autoware_route_handler autoware_velocity_smoother autoware_behavior_velocity_planner autoware_behavior_velocity_planner_common autoware_behavior_velocity_stop_line_module autoware_motion_velocity_obstacle_stop_module autoware_motion_velocity_planner autoware_motion_velocity_planner_common autoware_core_sensing autoware_crop_box_filter autoware_downsample_filters autoware_gnss_poser autoware_vehicle_velocity_converter autoware_planning_test_manager autoware_pyplot autoware_test_node autoware_test_utils autoware_testing autoware_core_vehicle

ROS Distro
humble

Package Summary

Version 1.8.0
License Apache License 2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/autowarefoundation/autoware_core.git
VCS Type git
VCS Version main
Last Updated 2026-05-02
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

The ROS 2 autoware_crop_box_filter package

Maintainers

  • amc-nu
  • Yukihiro Saito
  • Kyoichi Sugahara
  • Dai Nguyen
  • Kenzo Lobos-Tsunekawa
  • Yihsiang Fang
  • Yoshi Ri
  • David Wong
  • Melike Tanrikulu
  • Max Schmeller
  • Xingang Liu

Authors

No additional authors.

autoware_crop_box_filter

Overview

The autoware_crop_box_filter is a package that crops the input pointcloud to a specified bounding box. This is useful for reducing the computational load and improving the performance of the system.

Design

The autoware_crop_box_filter is implemented as a autoware core node that subscribes to the input pointcloud, and publishes the filtered pointcloud. The bounding box is specified using the min_point and max_point parameters.

Inputs / Outputs

Input

Name Type Description
~/input/points sensor_msgs::msg::PointCloud2 reference points

Output

Name Type Description
~/output/points sensor_msgs::msg::PointCloud2 filtered points
~/crop_box_polygon geometry_msgs::msg::PolygonStamped bounding box polygon

Parameters

Launch file Parameters

Name Type Default Value Description
input_frame string ” “ the frame id in which filtering is performed
output_frame string ” “ output frame id of the filtered points
input_pointcloud_frame string ” “ frame id of input pointcloud
max_queue_size int 5 max buffer size of input/output topics
crop_box_filter_param_file string ” “ path to the parameter file for the node

Node Parameters

Name Type Default Value Description
min_x double -5.0 minimum x value of the crop box
min_y double -5.0 minimum y value of the crop box
min_z double -5.0 minimum z value of the crop box
max_x double 5.0 maximum x value of the crop box
max_y double 5.0 maximum y value of the crop box
max_z double 5.0 maximum z value of the crop box
negative bool true if true, points inside the box are removed, otherwise points outside the box are removed

Usage

1.publish static tf from input pointcloud to target frame that is used for filtering

ros2 run tf2_ros static_transform_publisher 2.0 3.2 1.3 0 0 0 1  velodyne_top_base_link  base_link

2.launch node

ros2 launch autoware_crop_box_filter crop_box_filter_node.launch.xml

3. launch rviz2 and AWSIM

CHANGELOG

Changelog for package autoware_crop_box_filter

1.1.0 (2025-05-01)

  • feat(autoware_utils): remove managed transform buffer (#360)

    • feat(autoware_utils): remove managed transform buffer

    * fix(autoware_ground_filter): redundant inclusion ---------Co-authored-by: Yutaka Kondo <<yutaka.kondo@youtalk.jp>>

  • Contributors: Amadeusz Szymko

1.8.0 (2026-05-01)

  • Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base

  • refactor(autoware_core): add USE_SCOPED_HEADER_INSTALL_DIR to sensing packages (#985) Co-authored-by: github-actions <<github-actions@github.com>>

  • fix(autoware_crop_box_filter): add optional check before accessing crop_box_filter_ (#1016)

  • refactor(crop_box_filter): simplify filter logic by using identity matrix for no-transform case (#959) refactor(autoware_crop_box_filter): simplify filter logic by using identity matrix for no-transform case Use identity matrices as default for preprocess/postprocess transforms, eliminating conditional branches in the filter loop. Pre-compute output_frame_id in the constructor to simplify frame_id resolution. Co-authored-by: Takahisa.Ishikawa <<takahisa.ishikawa@tier4.jp>>

  • fix(autoware_crop_box_filter): fix bugprone-implicit-widening-of-multiplication-result warnings (#911)

  • fix(autoware_crop_box_filter): fix bugprone-narrowing-conversions warnings (#936)

  • refactor(autoware_crop_box_filter): extract CropBoxFilter logic class (#941)

    • refactor(autoware_crop_box_filter): rename CropBoxFilter node class to CropBoxFilterNode
    • refactor(autoware_crop_box_filter): extract CropBoxFilter logic class
    • refactor(autoware_crop_box_filter): remove output_frame from CropBoxFilterConfig

    * refactor(autoware_crop_box_filter): remove unnecessary member variables Convert tf_input_orig_frame_ and max_queue_size_ to local variables as they are only used in the constructor.

    • test(autoware_crop_box_filter): add unit tests for preprocess and postprocess transform
    • refactor(crop_box_filter): rename variable for clarity in transform handling

    * refactor(crop_box_filter): simplify transform handling by removing has_value checks ---------Co-authored-by: Takahisa.Ishikawa <<takahisa.ishikawa@tier4.jp>> Co-authored-by: Junya Sasaki <<j2sasaki1990@gmail.com>>

  • fix(crop_box_filter): maybe-uninitialized build error (#909) fix(crop_box_filter): initialize CropBoxParam with default values in test Co-authored-by: Takahisa.Ishikawa <<takahisa.ishikawa@tier4.jp>>

  • refactor(crop_box_filter): extract core and add unit tests (#886)

    • refactor(autoware_crop_box_filter): extract CropBoxParam and generate_crop_box_polygon to core library
    • test(autoware_crop_box_filter): add unit test for generate_crop_box_polygon
    • refactor(autoware_crop_box_filter): extract filter_pointcloud logic to core library
    • refactor(autoware_crop_box_filter): remove unnecessary includes from crop_box_filter_node.hpp

    * refactor(autoware_crop_box_filter): move filter_pointcloud tests to unit test file Move filter_pointcloud() tests from test_crop_box_filter_node.cpp to test_crop_box_filter.cpp since they test core logic, not node behavior.

    • refactor(autoware_crop_box_filter): apply AAA pattern and type aliases to filter_pointcloud tests

    * refactor(autoware_crop_box_filter): rename negative to keep_outside_box ---------Co-authored-by: Takahisa.Ishikawa

File truncated at 100 lines see the full file

Launch files

  • launch/crop_box_filter_node.launch.xml
      • input_topic_name [default: /sensing/lidar/top/pointcloud_raw_ex]
      • output_topic_name [default: /sensing/lidar/top/self_cropped/pointcloud_ex]
      • input_frame [default: base_link]
      • output_frame [default: base_link]
      • input_pointcloud_frame [default: velodyne_top_base_link]
      • crop_box_filter_param_file [default: $(find-pkg-share autoware_crop_box_filter)/config/crop_box_filter_node.param.yaml]

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged autoware_crop_box_filter at Robotics Stack Exchange

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

autoware_crop_box_filter package from autoware_core repo

autoware_adapi_adaptors autoware_adapi_specs autoware_core_api autoware_default_adapi autoware_core autoware_agnocast_wrapper autoware_component_interface_specs autoware_geography_utils autoware_global_parameter_loader autoware_interpolation autoware_kalman_filter autoware_lanelet2_utils autoware_marker_utils autoware_motion_utils autoware_node autoware_object_recognition_utils autoware_osqp_interface autoware_point_types autoware_qos_utils autoware_qp_interface autoware_signal_processing autoware_trajectory autoware_vehicle_info_utils autoware_core_control autoware_simple_pure_pursuit autoware_awsim_sensor_kit_description autoware_sample_sensor_kit_description autoware_sample_vehicle_description autoware_core_localization autoware_ekf_localizer autoware_gyro_odometer autoware_localization_util autoware_ndt_scan_matcher autoware_pose_initializer autoware_stop_filter autoware_twist2accel autoware_core_map autoware_lanelet2_map_visualizer autoware_map_height_fitter autoware_map_loader autoware_map_projection_loader autoware_core_perception autoware_euclidean_cluster_object_detector autoware_ground_filter autoware_perception_objects_converter autoware_core_planning autoware_mission_planner autoware_objects_of_interest_marker_interface autoware_path_generator autoware_planning_factor_interface autoware_planning_topic_converter autoware_route_handler autoware_velocity_smoother autoware_behavior_velocity_planner autoware_behavior_velocity_planner_common autoware_behavior_velocity_stop_line_module autoware_motion_velocity_obstacle_stop_module autoware_motion_velocity_planner autoware_motion_velocity_planner_common autoware_core_sensing autoware_crop_box_filter autoware_downsample_filters autoware_gnss_poser autoware_vehicle_velocity_converter autoware_planning_test_manager autoware_pyplot autoware_test_node autoware_test_utils autoware_testing autoware_core_vehicle

ROS Distro
humble

Package Summary

Version 1.8.0
License Apache License 2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/autowarefoundation/autoware_core.git
VCS Type git
VCS Version main
Last Updated 2026-05-02
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

The ROS 2 autoware_crop_box_filter package

Maintainers

  • amc-nu
  • Yukihiro Saito
  • Kyoichi Sugahara
  • Dai Nguyen
  • Kenzo Lobos-Tsunekawa
  • Yihsiang Fang
  • Yoshi Ri
  • David Wong
  • Melike Tanrikulu
  • Max Schmeller
  • Xingang Liu

Authors

No additional authors.

autoware_crop_box_filter

Overview

The autoware_crop_box_filter is a package that crops the input pointcloud to a specified bounding box. This is useful for reducing the computational load and improving the performance of the system.

Design

The autoware_crop_box_filter is implemented as a autoware core node that subscribes to the input pointcloud, and publishes the filtered pointcloud. The bounding box is specified using the min_point and max_point parameters.

Inputs / Outputs

Input

Name Type Description
~/input/points sensor_msgs::msg::PointCloud2 reference points

Output

Name Type Description
~/output/points sensor_msgs::msg::PointCloud2 filtered points
~/crop_box_polygon geometry_msgs::msg::PolygonStamped bounding box polygon

Parameters

Launch file Parameters

Name Type Default Value Description
input_frame string ” “ the frame id in which filtering is performed
output_frame string ” “ output frame id of the filtered points
input_pointcloud_frame string ” “ frame id of input pointcloud
max_queue_size int 5 max buffer size of input/output topics
crop_box_filter_param_file string ” “ path to the parameter file for the node

Node Parameters

Name Type Default Value Description
min_x double -5.0 minimum x value of the crop box
min_y double -5.0 minimum y value of the crop box
min_z double -5.0 minimum z value of the crop box
max_x double 5.0 maximum x value of the crop box
max_y double 5.0 maximum y value of the crop box
max_z double 5.0 maximum z value of the crop box
negative bool true if true, points inside the box are removed, otherwise points outside the box are removed

Usage

1.publish static tf from input pointcloud to target frame that is used for filtering

ros2 run tf2_ros static_transform_publisher 2.0 3.2 1.3 0 0 0 1  velodyne_top_base_link  base_link

2.launch node

ros2 launch autoware_crop_box_filter crop_box_filter_node.launch.xml

3. launch rviz2 and AWSIM

CHANGELOG

Changelog for package autoware_crop_box_filter

1.1.0 (2025-05-01)

  • feat(autoware_utils): remove managed transform buffer (#360)

    • feat(autoware_utils): remove managed transform buffer

    * fix(autoware_ground_filter): redundant inclusion ---------Co-authored-by: Yutaka Kondo <<yutaka.kondo@youtalk.jp>>

  • Contributors: Amadeusz Szymko

1.8.0 (2026-05-01)

  • Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base

  • refactor(autoware_core): add USE_SCOPED_HEADER_INSTALL_DIR to sensing packages (#985) Co-authored-by: github-actions <<github-actions@github.com>>

  • fix(autoware_crop_box_filter): add optional check before accessing crop_box_filter_ (#1016)

  • refactor(crop_box_filter): simplify filter logic by using identity matrix for no-transform case (#959) refactor(autoware_crop_box_filter): simplify filter logic by using identity matrix for no-transform case Use identity matrices as default for preprocess/postprocess transforms, eliminating conditional branches in the filter loop. Pre-compute output_frame_id in the constructor to simplify frame_id resolution. Co-authored-by: Takahisa.Ishikawa <<takahisa.ishikawa@tier4.jp>>

  • fix(autoware_crop_box_filter): fix bugprone-implicit-widening-of-multiplication-result warnings (#911)

  • fix(autoware_crop_box_filter): fix bugprone-narrowing-conversions warnings (#936)

  • refactor(autoware_crop_box_filter): extract CropBoxFilter logic class (#941)

    • refactor(autoware_crop_box_filter): rename CropBoxFilter node class to CropBoxFilterNode
    • refactor(autoware_crop_box_filter): extract CropBoxFilter logic class
    • refactor(autoware_crop_box_filter): remove output_frame from CropBoxFilterConfig

    * refactor(autoware_crop_box_filter): remove unnecessary member variables Convert tf_input_orig_frame_ and max_queue_size_ to local variables as they are only used in the constructor.

    • test(autoware_crop_box_filter): add unit tests for preprocess and postprocess transform
    • refactor(crop_box_filter): rename variable for clarity in transform handling

    * refactor(crop_box_filter): simplify transform handling by removing has_value checks ---------Co-authored-by: Takahisa.Ishikawa <<takahisa.ishikawa@tier4.jp>> Co-authored-by: Junya Sasaki <<j2sasaki1990@gmail.com>>

  • fix(crop_box_filter): maybe-uninitialized build error (#909) fix(crop_box_filter): initialize CropBoxParam with default values in test Co-authored-by: Takahisa.Ishikawa <<takahisa.ishikawa@tier4.jp>>

  • refactor(crop_box_filter): extract core and add unit tests (#886)

    • refactor(autoware_crop_box_filter): extract CropBoxParam and generate_crop_box_polygon to core library
    • test(autoware_crop_box_filter): add unit test for generate_crop_box_polygon
    • refactor(autoware_crop_box_filter): extract filter_pointcloud logic to core library
    • refactor(autoware_crop_box_filter): remove unnecessary includes from crop_box_filter_node.hpp

    * refactor(autoware_crop_box_filter): move filter_pointcloud tests to unit test file Move filter_pointcloud() tests from test_crop_box_filter_node.cpp to test_crop_box_filter.cpp since they test core logic, not node behavior.

    • refactor(autoware_crop_box_filter): apply AAA pattern and type aliases to filter_pointcloud tests

    * refactor(autoware_crop_box_filter): rename negative to keep_outside_box ---------Co-authored-by: Takahisa.Ishikawa

File truncated at 100 lines see the full file

Launch files

  • launch/crop_box_filter_node.launch.xml
      • input_topic_name [default: /sensing/lidar/top/pointcloud_raw_ex]
      • output_topic_name [default: /sensing/lidar/top/self_cropped/pointcloud_ex]
      • input_frame [default: base_link]
      • output_frame [default: base_link]
      • input_pointcloud_frame [default: velodyne_top_base_link]
      • crop_box_filter_param_file [default: $(find-pkg-share autoware_crop_box_filter)/config/crop_box_filter_node.param.yaml]

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged autoware_crop_box_filter at Robotics Stack Exchange

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

autoware_crop_box_filter package from autoware_core repo

autoware_adapi_adaptors autoware_adapi_specs autoware_core_api autoware_default_adapi autoware_core autoware_agnocast_wrapper autoware_component_interface_specs autoware_geography_utils autoware_global_parameter_loader autoware_interpolation autoware_kalman_filter autoware_lanelet2_utils autoware_marker_utils autoware_motion_utils autoware_node autoware_object_recognition_utils autoware_osqp_interface autoware_point_types autoware_qos_utils autoware_qp_interface autoware_signal_processing autoware_trajectory autoware_vehicle_info_utils autoware_core_control autoware_simple_pure_pursuit autoware_awsim_sensor_kit_description autoware_sample_sensor_kit_description autoware_sample_vehicle_description autoware_core_localization autoware_ekf_localizer autoware_gyro_odometer autoware_localization_util autoware_ndt_scan_matcher autoware_pose_initializer autoware_stop_filter autoware_twist2accel autoware_core_map autoware_lanelet2_map_visualizer autoware_map_height_fitter autoware_map_loader autoware_map_projection_loader autoware_core_perception autoware_euclidean_cluster_object_detector autoware_ground_filter autoware_perception_objects_converter autoware_core_planning autoware_mission_planner autoware_objects_of_interest_marker_interface autoware_path_generator autoware_planning_factor_interface autoware_planning_topic_converter autoware_route_handler autoware_velocity_smoother autoware_behavior_velocity_planner autoware_behavior_velocity_planner_common autoware_behavior_velocity_stop_line_module autoware_motion_velocity_obstacle_stop_module autoware_motion_velocity_planner autoware_motion_velocity_planner_common autoware_core_sensing autoware_crop_box_filter autoware_downsample_filters autoware_gnss_poser autoware_vehicle_velocity_converter autoware_planning_test_manager autoware_pyplot autoware_test_node autoware_test_utils autoware_testing autoware_core_vehicle

ROS Distro
humble

Package Summary

Version 1.8.0
License Apache License 2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/autowarefoundation/autoware_core.git
VCS Type git
VCS Version main
Last Updated 2026-05-02
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

The ROS 2 autoware_crop_box_filter package

Maintainers

  • amc-nu
  • Yukihiro Saito
  • Kyoichi Sugahara
  • Dai Nguyen
  • Kenzo Lobos-Tsunekawa
  • Yihsiang Fang
  • Yoshi Ri
  • David Wong
  • Melike Tanrikulu
  • Max Schmeller
  • Xingang Liu

Authors

No additional authors.

autoware_crop_box_filter

Overview

The autoware_crop_box_filter is a package that crops the input pointcloud to a specified bounding box. This is useful for reducing the computational load and improving the performance of the system.

Design

The autoware_crop_box_filter is implemented as a autoware core node that subscribes to the input pointcloud, and publishes the filtered pointcloud. The bounding box is specified using the min_point and max_point parameters.

Inputs / Outputs

Input

Name Type Description
~/input/points sensor_msgs::msg::PointCloud2 reference points

Output

Name Type Description
~/output/points sensor_msgs::msg::PointCloud2 filtered points
~/crop_box_polygon geometry_msgs::msg::PolygonStamped bounding box polygon

Parameters

Launch file Parameters

Name Type Default Value Description
input_frame string ” “ the frame id in which filtering is performed
output_frame string ” “ output frame id of the filtered points
input_pointcloud_frame string ” “ frame id of input pointcloud
max_queue_size int 5 max buffer size of input/output topics
crop_box_filter_param_file string ” “ path to the parameter file for the node

Node Parameters

Name Type Default Value Description
min_x double -5.0 minimum x value of the crop box
min_y double -5.0 minimum y value of the crop box
min_z double -5.0 minimum z value of the crop box
max_x double 5.0 maximum x value of the crop box
max_y double 5.0 maximum y value of the crop box
max_z double 5.0 maximum z value of the crop box
negative bool true if true, points inside the box are removed, otherwise points outside the box are removed

Usage

1.publish static tf from input pointcloud to target frame that is used for filtering

ros2 run tf2_ros static_transform_publisher 2.0 3.2 1.3 0 0 0 1  velodyne_top_base_link  base_link

2.launch node

ros2 launch autoware_crop_box_filter crop_box_filter_node.launch.xml

3. launch rviz2 and AWSIM

CHANGELOG

Changelog for package autoware_crop_box_filter

1.1.0 (2025-05-01)

  • feat(autoware_utils): remove managed transform buffer (#360)

    • feat(autoware_utils): remove managed transform buffer

    * fix(autoware_ground_filter): redundant inclusion ---------Co-authored-by: Yutaka Kondo <<yutaka.kondo@youtalk.jp>>

  • Contributors: Amadeusz Szymko

1.8.0 (2026-05-01)

  • Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base

  • refactor(autoware_core): add USE_SCOPED_HEADER_INSTALL_DIR to sensing packages (#985) Co-authored-by: github-actions <<github-actions@github.com>>

  • fix(autoware_crop_box_filter): add optional check before accessing crop_box_filter_ (#1016)

  • refactor(crop_box_filter): simplify filter logic by using identity matrix for no-transform case (#959) refactor(autoware_crop_box_filter): simplify filter logic by using identity matrix for no-transform case Use identity matrices as default for preprocess/postprocess transforms, eliminating conditional branches in the filter loop. Pre-compute output_frame_id in the constructor to simplify frame_id resolution. Co-authored-by: Takahisa.Ishikawa <<takahisa.ishikawa@tier4.jp>>

  • fix(autoware_crop_box_filter): fix bugprone-implicit-widening-of-multiplication-result warnings (#911)

  • fix(autoware_crop_box_filter): fix bugprone-narrowing-conversions warnings (#936)

  • refactor(autoware_crop_box_filter): extract CropBoxFilter logic class (#941)

    • refactor(autoware_crop_box_filter): rename CropBoxFilter node class to CropBoxFilterNode
    • refactor(autoware_crop_box_filter): extract CropBoxFilter logic class
    • refactor(autoware_crop_box_filter): remove output_frame from CropBoxFilterConfig

    * refactor(autoware_crop_box_filter): remove unnecessary member variables Convert tf_input_orig_frame_ and max_queue_size_ to local variables as they are only used in the constructor.

    • test(autoware_crop_box_filter): add unit tests for preprocess and postprocess transform
    • refactor(crop_box_filter): rename variable for clarity in transform handling

    * refactor(crop_box_filter): simplify transform handling by removing has_value checks ---------Co-authored-by: Takahisa.Ishikawa <<takahisa.ishikawa@tier4.jp>> Co-authored-by: Junya Sasaki <<j2sasaki1990@gmail.com>>

  • fix(crop_box_filter): maybe-uninitialized build error (#909) fix(crop_box_filter): initialize CropBoxParam with default values in test Co-authored-by: Takahisa.Ishikawa <<takahisa.ishikawa@tier4.jp>>

  • refactor(crop_box_filter): extract core and add unit tests (#886)

    • refactor(autoware_crop_box_filter): extract CropBoxParam and generate_crop_box_polygon to core library
    • test(autoware_crop_box_filter): add unit test for generate_crop_box_polygon
    • refactor(autoware_crop_box_filter): extract filter_pointcloud logic to core library
    • refactor(autoware_crop_box_filter): remove unnecessary includes from crop_box_filter_node.hpp

    * refactor(autoware_crop_box_filter): move filter_pointcloud tests to unit test file Move filter_pointcloud() tests from test_crop_box_filter_node.cpp to test_crop_box_filter.cpp since they test core logic, not node behavior.

    • refactor(autoware_crop_box_filter): apply AAA pattern and type aliases to filter_pointcloud tests

    * refactor(autoware_crop_box_filter): rename negative to keep_outside_box ---------Co-authored-by: Takahisa.Ishikawa

File truncated at 100 lines see the full file

Launch files

  • launch/crop_box_filter_node.launch.xml
      • input_topic_name [default: /sensing/lidar/top/pointcloud_raw_ex]
      • output_topic_name [default: /sensing/lidar/top/self_cropped/pointcloud_ex]
      • input_frame [default: base_link]
      • output_frame [default: base_link]
      • input_pointcloud_frame [default: velodyne_top_base_link]
      • crop_box_filter_param_file [default: $(find-pkg-share autoware_crop_box_filter)/config/crop_box_filter_node.param.yaml]

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged autoware_crop_box_filter at Robotics Stack Exchange

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

autoware_crop_box_filter package from autoware_core repo

autoware_adapi_adaptors autoware_adapi_specs autoware_core_api autoware_default_adapi autoware_core autoware_agnocast_wrapper autoware_component_interface_specs autoware_geography_utils autoware_global_parameter_loader autoware_interpolation autoware_kalman_filter autoware_lanelet2_utils autoware_marker_utils autoware_motion_utils autoware_node autoware_object_recognition_utils autoware_osqp_interface autoware_point_types autoware_qos_utils autoware_qp_interface autoware_signal_processing autoware_trajectory autoware_vehicle_info_utils autoware_core_control autoware_simple_pure_pursuit autoware_awsim_sensor_kit_description autoware_sample_sensor_kit_description autoware_sample_vehicle_description autoware_core_localization autoware_ekf_localizer autoware_gyro_odometer autoware_localization_util autoware_ndt_scan_matcher autoware_pose_initializer autoware_stop_filter autoware_twist2accel autoware_core_map autoware_lanelet2_map_visualizer autoware_map_height_fitter autoware_map_loader autoware_map_projection_loader autoware_core_perception autoware_euclidean_cluster_object_detector autoware_ground_filter autoware_perception_objects_converter autoware_core_planning autoware_mission_planner autoware_objects_of_interest_marker_interface autoware_path_generator autoware_planning_factor_interface autoware_planning_topic_converter autoware_route_handler autoware_velocity_smoother autoware_behavior_velocity_planner autoware_behavior_velocity_planner_common autoware_behavior_velocity_stop_line_module autoware_motion_velocity_obstacle_stop_module autoware_motion_velocity_planner autoware_motion_velocity_planner_common autoware_core_sensing autoware_crop_box_filter autoware_downsample_filters autoware_gnss_poser autoware_vehicle_velocity_converter autoware_planning_test_manager autoware_pyplot autoware_test_node autoware_test_utils autoware_testing autoware_core_vehicle

ROS Distro
humble

Package Summary

Version 1.8.0
License Apache License 2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/autowarefoundation/autoware_core.git
VCS Type git
VCS Version main
Last Updated 2026-05-02
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

The ROS 2 autoware_crop_box_filter package

Maintainers

  • amc-nu
  • Yukihiro Saito
  • Kyoichi Sugahara
  • Dai Nguyen
  • Kenzo Lobos-Tsunekawa
  • Yihsiang Fang
  • Yoshi Ri
  • David Wong
  • Melike Tanrikulu
  • Max Schmeller
  • Xingang Liu

Authors

No additional authors.

autoware_crop_box_filter

Overview

The autoware_crop_box_filter is a package that crops the input pointcloud to a specified bounding box. This is useful for reducing the computational load and improving the performance of the system.

Design

The autoware_crop_box_filter is implemented as a autoware core node that subscribes to the input pointcloud, and publishes the filtered pointcloud. The bounding box is specified using the min_point and max_point parameters.

Inputs / Outputs

Input

Name Type Description
~/input/points sensor_msgs::msg::PointCloud2 reference points

Output

Name Type Description
~/output/points sensor_msgs::msg::PointCloud2 filtered points
~/crop_box_polygon geometry_msgs::msg::PolygonStamped bounding box polygon

Parameters

Launch file Parameters

Name Type Default Value Description
input_frame string ” “ the frame id in which filtering is performed
output_frame string ” “ output frame id of the filtered points
input_pointcloud_frame string ” “ frame id of input pointcloud
max_queue_size int 5 max buffer size of input/output topics
crop_box_filter_param_file string ” “ path to the parameter file for the node

Node Parameters

Name Type Default Value Description
min_x double -5.0 minimum x value of the crop box
min_y double -5.0 minimum y value of the crop box
min_z double -5.0 minimum z value of the crop box
max_x double 5.0 maximum x value of the crop box
max_y double 5.0 maximum y value of the crop box
max_z double 5.0 maximum z value of the crop box
negative bool true if true, points inside the box are removed, otherwise points outside the box are removed

Usage

1.publish static tf from input pointcloud to target frame that is used for filtering

ros2 run tf2_ros static_transform_publisher 2.0 3.2 1.3 0 0 0 1  velodyne_top_base_link  base_link

2.launch node

ros2 launch autoware_crop_box_filter crop_box_filter_node.launch.xml

3. launch rviz2 and AWSIM

CHANGELOG

Changelog for package autoware_crop_box_filter

1.1.0 (2025-05-01)

  • feat(autoware_utils): remove managed transform buffer (#360)

    • feat(autoware_utils): remove managed transform buffer

    * fix(autoware_ground_filter): redundant inclusion ---------Co-authored-by: Yutaka Kondo <<yutaka.kondo@youtalk.jp>>

  • Contributors: Amadeusz Szymko

1.8.0 (2026-05-01)

  • Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base

  • refactor(autoware_core): add USE_SCOPED_HEADER_INSTALL_DIR to sensing packages (#985) Co-authored-by: github-actions <<github-actions@github.com>>

  • fix(autoware_crop_box_filter): add optional check before accessing crop_box_filter_ (#1016)

  • refactor(crop_box_filter): simplify filter logic by using identity matrix for no-transform case (#959) refactor(autoware_crop_box_filter): simplify filter logic by using identity matrix for no-transform case Use identity matrices as default for preprocess/postprocess transforms, eliminating conditional branches in the filter loop. Pre-compute output_frame_id in the constructor to simplify frame_id resolution. Co-authored-by: Takahisa.Ishikawa <<takahisa.ishikawa@tier4.jp>>

  • fix(autoware_crop_box_filter): fix bugprone-implicit-widening-of-multiplication-result warnings (#911)

  • fix(autoware_crop_box_filter): fix bugprone-narrowing-conversions warnings (#936)

  • refactor(autoware_crop_box_filter): extract CropBoxFilter logic class (#941)

    • refactor(autoware_crop_box_filter): rename CropBoxFilter node class to CropBoxFilterNode
    • refactor(autoware_crop_box_filter): extract CropBoxFilter logic class
    • refactor(autoware_crop_box_filter): remove output_frame from CropBoxFilterConfig

    * refactor(autoware_crop_box_filter): remove unnecessary member variables Convert tf_input_orig_frame_ and max_queue_size_ to local variables as they are only used in the constructor.

    • test(autoware_crop_box_filter): add unit tests for preprocess and postprocess transform
    • refactor(crop_box_filter): rename variable for clarity in transform handling

    * refactor(crop_box_filter): simplify transform handling by removing has_value checks ---------Co-authored-by: Takahisa.Ishikawa <<takahisa.ishikawa@tier4.jp>> Co-authored-by: Junya Sasaki <<j2sasaki1990@gmail.com>>

  • fix(crop_box_filter): maybe-uninitialized build error (#909) fix(crop_box_filter): initialize CropBoxParam with default values in test Co-authored-by: Takahisa.Ishikawa <<takahisa.ishikawa@tier4.jp>>

  • refactor(crop_box_filter): extract core and add unit tests (#886)

    • refactor(autoware_crop_box_filter): extract CropBoxParam and generate_crop_box_polygon to core library
    • test(autoware_crop_box_filter): add unit test for generate_crop_box_polygon
    • refactor(autoware_crop_box_filter): extract filter_pointcloud logic to core library
    • refactor(autoware_crop_box_filter): remove unnecessary includes from crop_box_filter_node.hpp

    * refactor(autoware_crop_box_filter): move filter_pointcloud tests to unit test file Move filter_pointcloud() tests from test_crop_box_filter_node.cpp to test_crop_box_filter.cpp since they test core logic, not node behavior.

    • refactor(autoware_crop_box_filter): apply AAA pattern and type aliases to filter_pointcloud tests

    * refactor(autoware_crop_box_filter): rename negative to keep_outside_box ---------Co-authored-by: Takahisa.Ishikawa

File truncated at 100 lines see the full file

Launch files

  • launch/crop_box_filter_node.launch.xml
      • input_topic_name [default: /sensing/lidar/top/pointcloud_raw_ex]
      • output_topic_name [default: /sensing/lidar/top/self_cropped/pointcloud_ex]
      • input_frame [default: base_link]
      • output_frame [default: base_link]
      • input_pointcloud_frame [default: velodyne_top_base_link]
      • crop_box_filter_param_file [default: $(find-pkg-share autoware_crop_box_filter)/config/crop_box_filter_node.param.yaml]

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged autoware_crop_box_filter at Robotics Stack Exchange

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

autoware_crop_box_filter package from autoware_core repo

autoware_adapi_adaptors autoware_adapi_specs autoware_core_api autoware_default_adapi autoware_core autoware_agnocast_wrapper autoware_component_interface_specs autoware_geography_utils autoware_global_parameter_loader autoware_interpolation autoware_kalman_filter autoware_lanelet2_utils autoware_marker_utils autoware_motion_utils autoware_node autoware_object_recognition_utils autoware_osqp_interface autoware_point_types autoware_qos_utils autoware_qp_interface autoware_signal_processing autoware_trajectory autoware_vehicle_info_utils autoware_core_control autoware_simple_pure_pursuit autoware_awsim_sensor_kit_description autoware_sample_sensor_kit_description autoware_sample_vehicle_description autoware_core_localization autoware_ekf_localizer autoware_gyro_odometer autoware_localization_util autoware_ndt_scan_matcher autoware_pose_initializer autoware_stop_filter autoware_twist2accel autoware_core_map autoware_lanelet2_map_visualizer autoware_map_height_fitter autoware_map_loader autoware_map_projection_loader autoware_core_perception autoware_euclidean_cluster_object_detector autoware_ground_filter autoware_perception_objects_converter autoware_core_planning autoware_mission_planner autoware_objects_of_interest_marker_interface autoware_path_generator autoware_planning_factor_interface autoware_planning_topic_converter autoware_route_handler autoware_velocity_smoother autoware_behavior_velocity_planner autoware_behavior_velocity_planner_common autoware_behavior_velocity_stop_line_module autoware_motion_velocity_obstacle_stop_module autoware_motion_velocity_planner autoware_motion_velocity_planner_common autoware_core_sensing autoware_crop_box_filter autoware_downsample_filters autoware_gnss_poser autoware_vehicle_velocity_converter autoware_planning_test_manager autoware_pyplot autoware_test_node autoware_test_utils autoware_testing autoware_core_vehicle

ROS Distro
humble

Package Summary

Version 1.8.0
License Apache License 2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/autowarefoundation/autoware_core.git
VCS Type git
VCS Version main
Last Updated 2026-05-02
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

The ROS 2 autoware_crop_box_filter package

Maintainers

  • amc-nu
  • Yukihiro Saito
  • Kyoichi Sugahara
  • Dai Nguyen
  • Kenzo Lobos-Tsunekawa
  • Yihsiang Fang
  • Yoshi Ri
  • David Wong
  • Melike Tanrikulu
  • Max Schmeller
  • Xingang Liu

Authors

No additional authors.

autoware_crop_box_filter

Overview

The autoware_crop_box_filter is a package that crops the input pointcloud to a specified bounding box. This is useful for reducing the computational load and improving the performance of the system.

Design

The autoware_crop_box_filter is implemented as a autoware core node that subscribes to the input pointcloud, and publishes the filtered pointcloud. The bounding box is specified using the min_point and max_point parameters.

Inputs / Outputs

Input

Name Type Description
~/input/points sensor_msgs::msg::PointCloud2 reference points

Output

Name Type Description
~/output/points sensor_msgs::msg::PointCloud2 filtered points
~/crop_box_polygon geometry_msgs::msg::PolygonStamped bounding box polygon

Parameters

Launch file Parameters

Name Type Default Value Description
input_frame string ” “ the frame id in which filtering is performed
output_frame string ” “ output frame id of the filtered points
input_pointcloud_frame string ” “ frame id of input pointcloud
max_queue_size int 5 max buffer size of input/output topics
crop_box_filter_param_file string ” “ path to the parameter file for the node

Node Parameters

Name Type Default Value Description
min_x double -5.0 minimum x value of the crop box
min_y double -5.0 minimum y value of the crop box
min_z double -5.0 minimum z value of the crop box
max_x double 5.0 maximum x value of the crop box
max_y double 5.0 maximum y value of the crop box
max_z double 5.0 maximum z value of the crop box
negative bool true if true, points inside the box are removed, otherwise points outside the box are removed

Usage

1.publish static tf from input pointcloud to target frame that is used for filtering

ros2 run tf2_ros static_transform_publisher 2.0 3.2 1.3 0 0 0 1  velodyne_top_base_link  base_link

2.launch node

ros2 launch autoware_crop_box_filter crop_box_filter_node.launch.xml

3. launch rviz2 and AWSIM

CHANGELOG

Changelog for package autoware_crop_box_filter

1.1.0 (2025-05-01)

  • feat(autoware_utils): remove managed transform buffer (#360)

    • feat(autoware_utils): remove managed transform buffer

    * fix(autoware_ground_filter): redundant inclusion ---------Co-authored-by: Yutaka Kondo <<yutaka.kondo@youtalk.jp>>

  • Contributors: Amadeusz Szymko

1.8.0 (2026-05-01)

  • Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base

  • refactor(autoware_core): add USE_SCOPED_HEADER_INSTALL_DIR to sensing packages (#985) Co-authored-by: github-actions <<github-actions@github.com>>

  • fix(autoware_crop_box_filter): add optional check before accessing crop_box_filter_ (#1016)

  • refactor(crop_box_filter): simplify filter logic by using identity matrix for no-transform case (#959) refactor(autoware_crop_box_filter): simplify filter logic by using identity matrix for no-transform case Use identity matrices as default for preprocess/postprocess transforms, eliminating conditional branches in the filter loop. Pre-compute output_frame_id in the constructor to simplify frame_id resolution. Co-authored-by: Takahisa.Ishikawa <<takahisa.ishikawa@tier4.jp>>

  • fix(autoware_crop_box_filter): fix bugprone-implicit-widening-of-multiplication-result warnings (#911)

  • fix(autoware_crop_box_filter): fix bugprone-narrowing-conversions warnings (#936)

  • refactor(autoware_crop_box_filter): extract CropBoxFilter logic class (#941)

    • refactor(autoware_crop_box_filter): rename CropBoxFilter node class to CropBoxFilterNode
    • refactor(autoware_crop_box_filter): extract CropBoxFilter logic class
    • refactor(autoware_crop_box_filter): remove output_frame from CropBoxFilterConfig

    * refactor(autoware_crop_box_filter): remove unnecessary member variables Convert tf_input_orig_frame_ and max_queue_size_ to local variables as they are only used in the constructor.

    • test(autoware_crop_box_filter): add unit tests for preprocess and postprocess transform
    • refactor(crop_box_filter): rename variable for clarity in transform handling

    * refactor(crop_box_filter): simplify transform handling by removing has_value checks ---------Co-authored-by: Takahisa.Ishikawa <<takahisa.ishikawa@tier4.jp>> Co-authored-by: Junya Sasaki <<j2sasaki1990@gmail.com>>

  • fix(crop_box_filter): maybe-uninitialized build error (#909) fix(crop_box_filter): initialize CropBoxParam with default values in test Co-authored-by: Takahisa.Ishikawa <<takahisa.ishikawa@tier4.jp>>

  • refactor(crop_box_filter): extract core and add unit tests (#886)

    • refactor(autoware_crop_box_filter): extract CropBoxParam and generate_crop_box_polygon to core library
    • test(autoware_crop_box_filter): add unit test for generate_crop_box_polygon
    • refactor(autoware_crop_box_filter): extract filter_pointcloud logic to core library
    • refactor(autoware_crop_box_filter): remove unnecessary includes from crop_box_filter_node.hpp

    * refactor(autoware_crop_box_filter): move filter_pointcloud tests to unit test file Move filter_pointcloud() tests from test_crop_box_filter_node.cpp to test_crop_box_filter.cpp since they test core logic, not node behavior.

    • refactor(autoware_crop_box_filter): apply AAA pattern and type aliases to filter_pointcloud tests

    * refactor(autoware_crop_box_filter): rename negative to keep_outside_box ---------Co-authored-by: Takahisa.Ishikawa

File truncated at 100 lines see the full file

Launch files

  • launch/crop_box_filter_node.launch.xml
      • input_topic_name [default: /sensing/lidar/top/pointcloud_raw_ex]
      • output_topic_name [default: /sensing/lidar/top/self_cropped/pointcloud_ex]
      • input_frame [default: base_link]
      • output_frame [default: base_link]
      • input_pointcloud_frame [default: velodyne_top_base_link]
      • crop_box_filter_param_file [default: $(find-pkg-share autoware_crop_box_filter)/config/crop_box_filter_node.param.yaml]

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged autoware_crop_box_filter at Robotics Stack Exchange

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

autoware_crop_box_filter package from autoware_core repo

autoware_adapi_adaptors autoware_adapi_specs autoware_core_api autoware_default_adapi autoware_core autoware_agnocast_wrapper autoware_component_interface_specs autoware_geography_utils autoware_global_parameter_loader autoware_interpolation autoware_kalman_filter autoware_lanelet2_utils autoware_marker_utils autoware_motion_utils autoware_node autoware_object_recognition_utils autoware_osqp_interface autoware_point_types autoware_qos_utils autoware_qp_interface autoware_signal_processing autoware_trajectory autoware_vehicle_info_utils autoware_core_control autoware_simple_pure_pursuit autoware_awsim_sensor_kit_description autoware_sample_sensor_kit_description autoware_sample_vehicle_description autoware_core_localization autoware_ekf_localizer autoware_gyro_odometer autoware_localization_util autoware_ndt_scan_matcher autoware_pose_initializer autoware_stop_filter autoware_twist2accel autoware_core_map autoware_lanelet2_map_visualizer autoware_map_height_fitter autoware_map_loader autoware_map_projection_loader autoware_core_perception autoware_euclidean_cluster_object_detector autoware_ground_filter autoware_perception_objects_converter autoware_core_planning autoware_mission_planner autoware_objects_of_interest_marker_interface autoware_path_generator autoware_planning_factor_interface autoware_planning_topic_converter autoware_route_handler autoware_velocity_smoother autoware_behavior_velocity_planner autoware_behavior_velocity_planner_common autoware_behavior_velocity_stop_line_module autoware_motion_velocity_obstacle_stop_module autoware_motion_velocity_planner autoware_motion_velocity_planner_common autoware_core_sensing autoware_crop_box_filter autoware_downsample_filters autoware_gnss_poser autoware_vehicle_velocity_converter autoware_planning_test_manager autoware_pyplot autoware_test_node autoware_test_utils autoware_testing autoware_core_vehicle

ROS Distro
humble

Package Summary

Version 1.8.0
License Apache License 2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/autowarefoundation/autoware_core.git
VCS Type git
VCS Version main
Last Updated 2026-05-02
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

The ROS 2 autoware_crop_box_filter package

Maintainers

  • amc-nu
  • Yukihiro Saito
  • Kyoichi Sugahara
  • Dai Nguyen
  • Kenzo Lobos-Tsunekawa
  • Yihsiang Fang
  • Yoshi Ri
  • David Wong
  • Melike Tanrikulu
  • Max Schmeller
  • Xingang Liu

Authors

No additional authors.

autoware_crop_box_filter

Overview

The autoware_crop_box_filter is a package that crops the input pointcloud to a specified bounding box. This is useful for reducing the computational load and improving the performance of the system.

Design

The autoware_crop_box_filter is implemented as a autoware core node that subscribes to the input pointcloud, and publishes the filtered pointcloud. The bounding box is specified using the min_point and max_point parameters.

Inputs / Outputs

Input

Name Type Description
~/input/points sensor_msgs::msg::PointCloud2 reference points

Output

Name Type Description
~/output/points sensor_msgs::msg::PointCloud2 filtered points
~/crop_box_polygon geometry_msgs::msg::PolygonStamped bounding box polygon

Parameters

Launch file Parameters

Name Type Default Value Description
input_frame string ” “ the frame id in which filtering is performed
output_frame string ” “ output frame id of the filtered points
input_pointcloud_frame string ” “ frame id of input pointcloud
max_queue_size int 5 max buffer size of input/output topics
crop_box_filter_param_file string ” “ path to the parameter file for the node

Node Parameters

Name Type Default Value Description
min_x double -5.0 minimum x value of the crop box
min_y double -5.0 minimum y value of the crop box
min_z double -5.0 minimum z value of the crop box
max_x double 5.0 maximum x value of the crop box
max_y double 5.0 maximum y value of the crop box
max_z double 5.0 maximum z value of the crop box
negative bool true if true, points inside the box are removed, otherwise points outside the box are removed

Usage

1.publish static tf from input pointcloud to target frame that is used for filtering

ros2 run tf2_ros static_transform_publisher 2.0 3.2 1.3 0 0 0 1  velodyne_top_base_link  base_link

2.launch node

ros2 launch autoware_crop_box_filter crop_box_filter_node.launch.xml

3. launch rviz2 and AWSIM

CHANGELOG

Changelog for package autoware_crop_box_filter

1.1.0 (2025-05-01)

  • feat(autoware_utils): remove managed transform buffer (#360)

    • feat(autoware_utils): remove managed transform buffer

    * fix(autoware_ground_filter): redundant inclusion ---------Co-authored-by: Yutaka Kondo <<yutaka.kondo@youtalk.jp>>

  • Contributors: Amadeusz Szymko

1.8.0 (2026-05-01)

  • Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base

  • refactor(autoware_core): add USE_SCOPED_HEADER_INSTALL_DIR to sensing packages (#985) Co-authored-by: github-actions <<github-actions@github.com>>

  • fix(autoware_crop_box_filter): add optional check before accessing crop_box_filter_ (#1016)

  • refactor(crop_box_filter): simplify filter logic by using identity matrix for no-transform case (#959) refactor(autoware_crop_box_filter): simplify filter logic by using identity matrix for no-transform case Use identity matrices as default for preprocess/postprocess transforms, eliminating conditional branches in the filter loop. Pre-compute output_frame_id in the constructor to simplify frame_id resolution. Co-authored-by: Takahisa.Ishikawa <<takahisa.ishikawa@tier4.jp>>

  • fix(autoware_crop_box_filter): fix bugprone-implicit-widening-of-multiplication-result warnings (#911)

  • fix(autoware_crop_box_filter): fix bugprone-narrowing-conversions warnings (#936)

  • refactor(autoware_crop_box_filter): extract CropBoxFilter logic class (#941)

    • refactor(autoware_crop_box_filter): rename CropBoxFilter node class to CropBoxFilterNode
    • refactor(autoware_crop_box_filter): extract CropBoxFilter logic class
    • refactor(autoware_crop_box_filter): remove output_frame from CropBoxFilterConfig

    * refactor(autoware_crop_box_filter): remove unnecessary member variables Convert tf_input_orig_frame_ and max_queue_size_ to local variables as they are only used in the constructor.

    • test(autoware_crop_box_filter): add unit tests for preprocess and postprocess transform
    • refactor(crop_box_filter): rename variable for clarity in transform handling

    * refactor(crop_box_filter): simplify transform handling by removing has_value checks ---------Co-authored-by: Takahisa.Ishikawa <<takahisa.ishikawa@tier4.jp>> Co-authored-by: Junya Sasaki <<j2sasaki1990@gmail.com>>

  • fix(crop_box_filter): maybe-uninitialized build error (#909) fix(crop_box_filter): initialize CropBoxParam with default values in test Co-authored-by: Takahisa.Ishikawa <<takahisa.ishikawa@tier4.jp>>

  • refactor(crop_box_filter): extract core and add unit tests (#886)

    • refactor(autoware_crop_box_filter): extract CropBoxParam and generate_crop_box_polygon to core library
    • test(autoware_crop_box_filter): add unit test for generate_crop_box_polygon
    • refactor(autoware_crop_box_filter): extract filter_pointcloud logic to core library
    • refactor(autoware_crop_box_filter): remove unnecessary includes from crop_box_filter_node.hpp

    * refactor(autoware_crop_box_filter): move filter_pointcloud tests to unit test file Move filter_pointcloud() tests from test_crop_box_filter_node.cpp to test_crop_box_filter.cpp since they test core logic, not node behavior.

    • refactor(autoware_crop_box_filter): apply AAA pattern and type aliases to filter_pointcloud tests

    * refactor(autoware_crop_box_filter): rename negative to keep_outside_box ---------Co-authored-by: Takahisa.Ishikawa

File truncated at 100 lines see the full file

Launch files

  • launch/crop_box_filter_node.launch.xml
      • input_topic_name [default: /sensing/lidar/top/pointcloud_raw_ex]
      • output_topic_name [default: /sensing/lidar/top/self_cropped/pointcloud_ex]
      • input_frame [default: base_link]
      • output_frame [default: base_link]
      • input_pointcloud_frame [default: velodyne_top_base_link]
      • crop_box_filter_param_file [default: $(find-pkg-share autoware_crop_box_filter)/config/crop_box_filter_node.param.yaml]

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged autoware_crop_box_filter at Robotics Stack Exchange

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

autoware_crop_box_filter package from autoware_core repo

autoware_adapi_adaptors autoware_adapi_specs autoware_core_api autoware_default_adapi autoware_core autoware_agnocast_wrapper autoware_component_interface_specs autoware_geography_utils autoware_global_parameter_loader autoware_interpolation autoware_kalman_filter autoware_lanelet2_utils autoware_marker_utils autoware_motion_utils autoware_node autoware_object_recognition_utils autoware_osqp_interface autoware_point_types autoware_qos_utils autoware_qp_interface autoware_signal_processing autoware_trajectory autoware_vehicle_info_utils autoware_core_control autoware_simple_pure_pursuit autoware_awsim_sensor_kit_description autoware_sample_sensor_kit_description autoware_sample_vehicle_description autoware_core_localization autoware_ekf_localizer autoware_gyro_odometer autoware_localization_util autoware_ndt_scan_matcher autoware_pose_initializer autoware_stop_filter autoware_twist2accel autoware_core_map autoware_lanelet2_map_visualizer autoware_map_height_fitter autoware_map_loader autoware_map_projection_loader autoware_core_perception autoware_euclidean_cluster_object_detector autoware_ground_filter autoware_perception_objects_converter autoware_core_planning autoware_mission_planner autoware_objects_of_interest_marker_interface autoware_path_generator autoware_planning_factor_interface autoware_planning_topic_converter autoware_route_handler autoware_velocity_smoother autoware_behavior_velocity_planner autoware_behavior_velocity_planner_common autoware_behavior_velocity_stop_line_module autoware_motion_velocity_obstacle_stop_module autoware_motion_velocity_planner autoware_motion_velocity_planner_common autoware_core_sensing autoware_crop_box_filter autoware_downsample_filters autoware_gnss_poser autoware_vehicle_velocity_converter autoware_planning_test_manager autoware_pyplot autoware_test_node autoware_test_utils autoware_testing autoware_core_vehicle

ROS Distro
humble

Package Summary

Version 1.8.0
License Apache License 2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/autowarefoundation/autoware_core.git
VCS Type git
VCS Version main
Last Updated 2026-05-02
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

The ROS 2 autoware_crop_box_filter package

Maintainers

  • amc-nu
  • Yukihiro Saito
  • Kyoichi Sugahara
  • Dai Nguyen
  • Kenzo Lobos-Tsunekawa
  • Yihsiang Fang
  • Yoshi Ri
  • David Wong
  • Melike Tanrikulu
  • Max Schmeller
  • Xingang Liu

Authors

No additional authors.

autoware_crop_box_filter

Overview

The autoware_crop_box_filter is a package that crops the input pointcloud to a specified bounding box. This is useful for reducing the computational load and improving the performance of the system.

Design

The autoware_crop_box_filter is implemented as a autoware core node that subscribes to the input pointcloud, and publishes the filtered pointcloud. The bounding box is specified using the min_point and max_point parameters.

Inputs / Outputs

Input

Name Type Description
~/input/points sensor_msgs::msg::PointCloud2 reference points

Output

Name Type Description
~/output/points sensor_msgs::msg::PointCloud2 filtered points
~/crop_box_polygon geometry_msgs::msg::PolygonStamped bounding box polygon

Parameters

Launch file Parameters

Name Type Default Value Description
input_frame string ” “ the frame id in which filtering is performed
output_frame string ” “ output frame id of the filtered points
input_pointcloud_frame string ” “ frame id of input pointcloud
max_queue_size int 5 max buffer size of input/output topics
crop_box_filter_param_file string ” “ path to the parameter file for the node

Node Parameters

Name Type Default Value Description
min_x double -5.0 minimum x value of the crop box
min_y double -5.0 minimum y value of the crop box
min_z double -5.0 minimum z value of the crop box
max_x double 5.0 maximum x value of the crop box
max_y double 5.0 maximum y value of the crop box
max_z double 5.0 maximum z value of the crop box
negative bool true if true, points inside the box are removed, otherwise points outside the box are removed

Usage

1.publish static tf from input pointcloud to target frame that is used for filtering

ros2 run tf2_ros static_transform_publisher 2.0 3.2 1.3 0 0 0 1  velodyne_top_base_link  base_link

2.launch node

ros2 launch autoware_crop_box_filter crop_box_filter_node.launch.xml

3. launch rviz2 and AWSIM

CHANGELOG

Changelog for package autoware_crop_box_filter

1.1.0 (2025-05-01)

  • feat(autoware_utils): remove managed transform buffer (#360)

    • feat(autoware_utils): remove managed transform buffer

    * fix(autoware_ground_filter): redundant inclusion ---------Co-authored-by: Yutaka Kondo <<yutaka.kondo@youtalk.jp>>

  • Contributors: Amadeusz Szymko

1.8.0 (2026-05-01)

  • Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base

  • refactor(autoware_core): add USE_SCOPED_HEADER_INSTALL_DIR to sensing packages (#985) Co-authored-by: github-actions <<github-actions@github.com>>

  • fix(autoware_crop_box_filter): add optional check before accessing crop_box_filter_ (#1016)

  • refactor(crop_box_filter): simplify filter logic by using identity matrix for no-transform case (#959) refactor(autoware_crop_box_filter): simplify filter logic by using identity matrix for no-transform case Use identity matrices as default for preprocess/postprocess transforms, eliminating conditional branches in the filter loop. Pre-compute output_frame_id in the constructor to simplify frame_id resolution. Co-authored-by: Takahisa.Ishikawa <<takahisa.ishikawa@tier4.jp>>

  • fix(autoware_crop_box_filter): fix bugprone-implicit-widening-of-multiplication-result warnings (#911)

  • fix(autoware_crop_box_filter): fix bugprone-narrowing-conversions warnings (#936)

  • refactor(autoware_crop_box_filter): extract CropBoxFilter logic class (#941)

    • refactor(autoware_crop_box_filter): rename CropBoxFilter node class to CropBoxFilterNode
    • refactor(autoware_crop_box_filter): extract CropBoxFilter logic class
    • refactor(autoware_crop_box_filter): remove output_frame from CropBoxFilterConfig

    * refactor(autoware_crop_box_filter): remove unnecessary member variables Convert tf_input_orig_frame_ and max_queue_size_ to local variables as they are only used in the constructor.

    • test(autoware_crop_box_filter): add unit tests for preprocess and postprocess transform
    • refactor(crop_box_filter): rename variable for clarity in transform handling

    * refactor(crop_box_filter): simplify transform handling by removing has_value checks ---------Co-authored-by: Takahisa.Ishikawa <<takahisa.ishikawa@tier4.jp>> Co-authored-by: Junya Sasaki <<j2sasaki1990@gmail.com>>

  • fix(crop_box_filter): maybe-uninitialized build error (#909) fix(crop_box_filter): initialize CropBoxParam with default values in test Co-authored-by: Takahisa.Ishikawa <<takahisa.ishikawa@tier4.jp>>

  • refactor(crop_box_filter): extract core and add unit tests (#886)

    • refactor(autoware_crop_box_filter): extract CropBoxParam and generate_crop_box_polygon to core library
    • test(autoware_crop_box_filter): add unit test for generate_crop_box_polygon
    • refactor(autoware_crop_box_filter): extract filter_pointcloud logic to core library
    • refactor(autoware_crop_box_filter): remove unnecessary includes from crop_box_filter_node.hpp

    * refactor(autoware_crop_box_filter): move filter_pointcloud tests to unit test file Move filter_pointcloud() tests from test_crop_box_filter_node.cpp to test_crop_box_filter.cpp since they test core logic, not node behavior.

    • refactor(autoware_crop_box_filter): apply AAA pattern and type aliases to filter_pointcloud tests

    * refactor(autoware_crop_box_filter): rename negative to keep_outside_box ---------Co-authored-by: Takahisa.Ishikawa

File truncated at 100 lines see the full file

Launch files

  • launch/crop_box_filter_node.launch.xml
      • input_topic_name [default: /sensing/lidar/top/pointcloud_raw_ex]
      • output_topic_name [default: /sensing/lidar/top/self_cropped/pointcloud_ex]
      • input_frame [default: base_link]
      • output_frame [default: base_link]
      • input_pointcloud_frame [default: velodyne_top_base_link]
      • crop_box_filter_param_file [default: $(find-pkg-share autoware_crop_box_filter)/config/crop_box_filter_node.param.yaml]

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged autoware_crop_box_filter at Robotics Stack Exchange

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

autoware_crop_box_filter package from autoware_core repo

autoware_adapi_adaptors autoware_adapi_specs autoware_core_api autoware_default_adapi autoware_core autoware_agnocast_wrapper autoware_component_interface_specs autoware_geography_utils autoware_global_parameter_loader autoware_interpolation autoware_kalman_filter autoware_lanelet2_utils autoware_marker_utils autoware_motion_utils autoware_node autoware_object_recognition_utils autoware_osqp_interface autoware_point_types autoware_qos_utils autoware_qp_interface autoware_signal_processing autoware_trajectory autoware_vehicle_info_utils autoware_core_control autoware_simple_pure_pursuit autoware_awsim_sensor_kit_description autoware_sample_sensor_kit_description autoware_sample_vehicle_description autoware_core_localization autoware_ekf_localizer autoware_gyro_odometer autoware_localization_util autoware_ndt_scan_matcher autoware_pose_initializer autoware_stop_filter autoware_twist2accel autoware_core_map autoware_lanelet2_map_visualizer autoware_map_height_fitter autoware_map_loader autoware_map_projection_loader autoware_core_perception autoware_euclidean_cluster_object_detector autoware_ground_filter autoware_perception_objects_converter autoware_core_planning autoware_mission_planner autoware_objects_of_interest_marker_interface autoware_path_generator autoware_planning_factor_interface autoware_planning_topic_converter autoware_route_handler autoware_velocity_smoother autoware_behavior_velocity_planner autoware_behavior_velocity_planner_common autoware_behavior_velocity_stop_line_module autoware_motion_velocity_obstacle_stop_module autoware_motion_velocity_planner autoware_motion_velocity_planner_common autoware_core_sensing autoware_crop_box_filter autoware_downsample_filters autoware_gnss_poser autoware_vehicle_velocity_converter autoware_planning_test_manager autoware_pyplot autoware_test_node autoware_test_utils autoware_testing autoware_core_vehicle

ROS Distro
humble

Package Summary

Version 1.8.0
License Apache License 2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/autowarefoundation/autoware_core.git
VCS Type git
VCS Version main
Last Updated 2026-05-02
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

The ROS 2 autoware_crop_box_filter package

Maintainers

  • amc-nu
  • Yukihiro Saito
  • Kyoichi Sugahara
  • Dai Nguyen
  • Kenzo Lobos-Tsunekawa
  • Yihsiang Fang
  • Yoshi Ri
  • David Wong
  • Melike Tanrikulu
  • Max Schmeller
  • Xingang Liu

Authors

No additional authors.

autoware_crop_box_filter

Overview

The autoware_crop_box_filter is a package that crops the input pointcloud to a specified bounding box. This is useful for reducing the computational load and improving the performance of the system.

Design

The autoware_crop_box_filter is implemented as a autoware core node that subscribes to the input pointcloud, and publishes the filtered pointcloud. The bounding box is specified using the min_point and max_point parameters.

Inputs / Outputs

Input

Name Type Description
~/input/points sensor_msgs::msg::PointCloud2 reference points

Output

Name Type Description
~/output/points sensor_msgs::msg::PointCloud2 filtered points
~/crop_box_polygon geometry_msgs::msg::PolygonStamped bounding box polygon

Parameters

Launch file Parameters

Name Type Default Value Description
input_frame string ” “ the frame id in which filtering is performed
output_frame string ” “ output frame id of the filtered points
input_pointcloud_frame string ” “ frame id of input pointcloud
max_queue_size int 5 max buffer size of input/output topics
crop_box_filter_param_file string ” “ path to the parameter file for the node

Node Parameters

Name Type Default Value Description
min_x double -5.0 minimum x value of the crop box
min_y double -5.0 minimum y value of the crop box
min_z double -5.0 minimum z value of the crop box
max_x double 5.0 maximum x value of the crop box
max_y double 5.0 maximum y value of the crop box
max_z double 5.0 maximum z value of the crop box
negative bool true if true, points inside the box are removed, otherwise points outside the box are removed

Usage

1.publish static tf from input pointcloud to target frame that is used for filtering

ros2 run tf2_ros static_transform_publisher 2.0 3.2 1.3 0 0 0 1  velodyne_top_base_link  base_link

2.launch node

ros2 launch autoware_crop_box_filter crop_box_filter_node.launch.xml

3. launch rviz2 and AWSIM

CHANGELOG

Changelog for package autoware_crop_box_filter

1.1.0 (2025-05-01)

  • feat(autoware_utils): remove managed transform buffer (#360)

    • feat(autoware_utils): remove managed transform buffer

    * fix(autoware_ground_filter): redundant inclusion ---------Co-authored-by: Yutaka Kondo <<yutaka.kondo@youtalk.jp>>

  • Contributors: Amadeusz Szymko

1.8.0 (2026-05-01)

  • Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base

  • refactor(autoware_core): add USE_SCOPED_HEADER_INSTALL_DIR to sensing packages (#985) Co-authored-by: github-actions <<github-actions@github.com>>

  • fix(autoware_crop_box_filter): add optional check before accessing crop_box_filter_ (#1016)

  • refactor(crop_box_filter): simplify filter logic by using identity matrix for no-transform case (#959) refactor(autoware_crop_box_filter): simplify filter logic by using identity matrix for no-transform case Use identity matrices as default for preprocess/postprocess transforms, eliminating conditional branches in the filter loop. Pre-compute output_frame_id in the constructor to simplify frame_id resolution. Co-authored-by: Takahisa.Ishikawa <<takahisa.ishikawa@tier4.jp>>

  • fix(autoware_crop_box_filter): fix bugprone-implicit-widening-of-multiplication-result warnings (#911)

  • fix(autoware_crop_box_filter): fix bugprone-narrowing-conversions warnings (#936)

  • refactor(autoware_crop_box_filter): extract CropBoxFilter logic class (#941)

    • refactor(autoware_crop_box_filter): rename CropBoxFilter node class to CropBoxFilterNode
    • refactor(autoware_crop_box_filter): extract CropBoxFilter logic class
    • refactor(autoware_crop_box_filter): remove output_frame from CropBoxFilterConfig

    * refactor(autoware_crop_box_filter): remove unnecessary member variables Convert tf_input_orig_frame_ and max_queue_size_ to local variables as they are only used in the constructor.

    • test(autoware_crop_box_filter): add unit tests for preprocess and postprocess transform
    • refactor(crop_box_filter): rename variable for clarity in transform handling

    * refactor(crop_box_filter): simplify transform handling by removing has_value checks ---------Co-authored-by: Takahisa.Ishikawa <<takahisa.ishikawa@tier4.jp>> Co-authored-by: Junya Sasaki <<j2sasaki1990@gmail.com>>

  • fix(crop_box_filter): maybe-uninitialized build error (#909) fix(crop_box_filter): initialize CropBoxParam with default values in test Co-authored-by: Takahisa.Ishikawa <<takahisa.ishikawa@tier4.jp>>

  • refactor(crop_box_filter): extract core and add unit tests (#886)

    • refactor(autoware_crop_box_filter): extract CropBoxParam and generate_crop_box_polygon to core library
    • test(autoware_crop_box_filter): add unit test for generate_crop_box_polygon
    • refactor(autoware_crop_box_filter): extract filter_pointcloud logic to core library
    • refactor(autoware_crop_box_filter): remove unnecessary includes from crop_box_filter_node.hpp

    * refactor(autoware_crop_box_filter): move filter_pointcloud tests to unit test file Move filter_pointcloud() tests from test_crop_box_filter_node.cpp to test_crop_box_filter.cpp since they test core logic, not node behavior.

    • refactor(autoware_crop_box_filter): apply AAA pattern and type aliases to filter_pointcloud tests

    * refactor(autoware_crop_box_filter): rename negative to keep_outside_box ---------Co-authored-by: Takahisa.Ishikawa

File truncated at 100 lines see the full file

Launch files

  • launch/crop_box_filter_node.launch.xml
      • input_topic_name [default: /sensing/lidar/top/pointcloud_raw_ex]
      • output_topic_name [default: /sensing/lidar/top/self_cropped/pointcloud_ex]
      • input_frame [default: base_link]
      • output_frame [default: base_link]
      • input_pointcloud_frame [default: velodyne_top_base_link]
      • crop_box_filter_param_file [default: $(find-pkg-share autoware_crop_box_filter)/config/crop_box_filter_node.param.yaml]

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged autoware_crop_box_filter at Robotics Stack Exchange

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

autoware_crop_box_filter package from autoware_core repo

autoware_adapi_adaptors autoware_adapi_specs autoware_core_api autoware_default_adapi autoware_core autoware_agnocast_wrapper autoware_component_interface_specs autoware_geography_utils autoware_global_parameter_loader autoware_interpolation autoware_kalman_filter autoware_lanelet2_utils autoware_marker_utils autoware_motion_utils autoware_node autoware_object_recognition_utils autoware_osqp_interface autoware_point_types autoware_qos_utils autoware_qp_interface autoware_signal_processing autoware_trajectory autoware_vehicle_info_utils autoware_core_control autoware_simple_pure_pursuit autoware_awsim_sensor_kit_description autoware_sample_sensor_kit_description autoware_sample_vehicle_description autoware_core_localization autoware_ekf_localizer autoware_gyro_odometer autoware_localization_util autoware_ndt_scan_matcher autoware_pose_initializer autoware_stop_filter autoware_twist2accel autoware_core_map autoware_lanelet2_map_visualizer autoware_map_height_fitter autoware_map_loader autoware_map_projection_loader autoware_core_perception autoware_euclidean_cluster_object_detector autoware_ground_filter autoware_perception_objects_converter autoware_core_planning autoware_mission_planner autoware_objects_of_interest_marker_interface autoware_path_generator autoware_planning_factor_interface autoware_planning_topic_converter autoware_route_handler autoware_velocity_smoother autoware_behavior_velocity_planner autoware_behavior_velocity_planner_common autoware_behavior_velocity_stop_line_module autoware_motion_velocity_obstacle_stop_module autoware_motion_velocity_planner autoware_motion_velocity_planner_common autoware_core_sensing autoware_crop_box_filter autoware_downsample_filters autoware_gnss_poser autoware_vehicle_velocity_converter autoware_planning_test_manager autoware_pyplot autoware_test_node autoware_test_utils autoware_testing autoware_core_vehicle

ROS Distro
humble

Package Summary

Version 1.8.0
License Apache License 2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/autowarefoundation/autoware_core.git
VCS Type git
VCS Version main
Last Updated 2026-05-02
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

The ROS 2 autoware_crop_box_filter package

Maintainers

  • amc-nu
  • Yukihiro Saito
  • Kyoichi Sugahara
  • Dai Nguyen
  • Kenzo Lobos-Tsunekawa
  • Yihsiang Fang
  • Yoshi Ri
  • David Wong
  • Melike Tanrikulu
  • Max Schmeller
  • Xingang Liu

Authors

No additional authors.

autoware_crop_box_filter

Overview

The autoware_crop_box_filter is a package that crops the input pointcloud to a specified bounding box. This is useful for reducing the computational load and improving the performance of the system.

Design

The autoware_crop_box_filter is implemented as a autoware core node that subscribes to the input pointcloud, and publishes the filtered pointcloud. The bounding box is specified using the min_point and max_point parameters.

Inputs / Outputs

Input

Name Type Description
~/input/points sensor_msgs::msg::PointCloud2 reference points

Output

Name Type Description
~/output/points sensor_msgs::msg::PointCloud2 filtered points
~/crop_box_polygon geometry_msgs::msg::PolygonStamped bounding box polygon

Parameters

Launch file Parameters

Name Type Default Value Description
input_frame string ” “ the frame id in which filtering is performed
output_frame string ” “ output frame id of the filtered points
input_pointcloud_frame string ” “ frame id of input pointcloud
max_queue_size int 5 max buffer size of input/output topics
crop_box_filter_param_file string ” “ path to the parameter file for the node

Node Parameters

Name Type Default Value Description
min_x double -5.0 minimum x value of the crop box
min_y double -5.0 minimum y value of the crop box
min_z double -5.0 minimum z value of the crop box
max_x double 5.0 maximum x value of the crop box
max_y double 5.0 maximum y value of the crop box
max_z double 5.0 maximum z value of the crop box
negative bool true if true, points inside the box are removed, otherwise points outside the box are removed

Usage

1.publish static tf from input pointcloud to target frame that is used for filtering

ros2 run tf2_ros static_transform_publisher 2.0 3.2 1.3 0 0 0 1  velodyne_top_base_link  base_link

2.launch node

ros2 launch autoware_crop_box_filter crop_box_filter_node.launch.xml

3. launch rviz2 and AWSIM

CHANGELOG

Changelog for package autoware_crop_box_filter

1.1.0 (2025-05-01)

  • feat(autoware_utils): remove managed transform buffer (#360)

    • feat(autoware_utils): remove managed transform buffer

    * fix(autoware_ground_filter): redundant inclusion ---------Co-authored-by: Yutaka Kondo <<yutaka.kondo@youtalk.jp>>

  • Contributors: Amadeusz Szymko

1.8.0 (2026-05-01)

  • Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base

  • refactor(autoware_core): add USE_SCOPED_HEADER_INSTALL_DIR to sensing packages (#985) Co-authored-by: github-actions <<github-actions@github.com>>

  • fix(autoware_crop_box_filter): add optional check before accessing crop_box_filter_ (#1016)

  • refactor(crop_box_filter): simplify filter logic by using identity matrix for no-transform case (#959) refactor(autoware_crop_box_filter): simplify filter logic by using identity matrix for no-transform case Use identity matrices as default for preprocess/postprocess transforms, eliminating conditional branches in the filter loop. Pre-compute output_frame_id in the constructor to simplify frame_id resolution. Co-authored-by: Takahisa.Ishikawa <<takahisa.ishikawa@tier4.jp>>

  • fix(autoware_crop_box_filter): fix bugprone-implicit-widening-of-multiplication-result warnings (#911)

  • fix(autoware_crop_box_filter): fix bugprone-narrowing-conversions warnings (#936)

  • refactor(autoware_crop_box_filter): extract CropBoxFilter logic class (#941)

    • refactor(autoware_crop_box_filter): rename CropBoxFilter node class to CropBoxFilterNode
    • refactor(autoware_crop_box_filter): extract CropBoxFilter logic class
    • refactor(autoware_crop_box_filter): remove output_frame from CropBoxFilterConfig

    * refactor(autoware_crop_box_filter): remove unnecessary member variables Convert tf_input_orig_frame_ and max_queue_size_ to local variables as they are only used in the constructor.

    • test(autoware_crop_box_filter): add unit tests for preprocess and postprocess transform
    • refactor(crop_box_filter): rename variable for clarity in transform handling

    * refactor(crop_box_filter): simplify transform handling by removing has_value checks ---------Co-authored-by: Takahisa.Ishikawa <<takahisa.ishikawa@tier4.jp>> Co-authored-by: Junya Sasaki <<j2sasaki1990@gmail.com>>

  • fix(crop_box_filter): maybe-uninitialized build error (#909) fix(crop_box_filter): initialize CropBoxParam with default values in test Co-authored-by: Takahisa.Ishikawa <<takahisa.ishikawa@tier4.jp>>

  • refactor(crop_box_filter): extract core and add unit tests (#886)

    • refactor(autoware_crop_box_filter): extract CropBoxParam and generate_crop_box_polygon to core library
    • test(autoware_crop_box_filter): add unit test for generate_crop_box_polygon
    • refactor(autoware_crop_box_filter): extract filter_pointcloud logic to core library
    • refactor(autoware_crop_box_filter): remove unnecessary includes from crop_box_filter_node.hpp

    * refactor(autoware_crop_box_filter): move filter_pointcloud tests to unit test file Move filter_pointcloud() tests from test_crop_box_filter_node.cpp to test_crop_box_filter.cpp since they test core logic, not node behavior.

    • refactor(autoware_crop_box_filter): apply AAA pattern and type aliases to filter_pointcloud tests

    * refactor(autoware_crop_box_filter): rename negative to keep_outside_box ---------Co-authored-by: Takahisa.Ishikawa

File truncated at 100 lines see the full file

Launch files

  • launch/crop_box_filter_node.launch.xml
      • input_topic_name [default: /sensing/lidar/top/pointcloud_raw_ex]
      • output_topic_name [default: /sensing/lidar/top/self_cropped/pointcloud_ex]
      • input_frame [default: base_link]
      • output_frame [default: base_link]
      • input_pointcloud_frame [default: velodyne_top_base_link]
      • crop_box_filter_param_file [default: $(find-pkg-share autoware_crop_box_filter)/config/crop_box_filter_node.param.yaml]

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged autoware_crop_box_filter at Robotics Stack Exchange

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

autoware_crop_box_filter package from autoware_core repo

autoware_adapi_adaptors autoware_adapi_specs autoware_core_api autoware_default_adapi autoware_core autoware_agnocast_wrapper autoware_component_interface_specs autoware_geography_utils autoware_global_parameter_loader autoware_interpolation autoware_kalman_filter autoware_lanelet2_utils autoware_marker_utils autoware_motion_utils autoware_node autoware_object_recognition_utils autoware_osqp_interface autoware_point_types autoware_qos_utils autoware_qp_interface autoware_signal_processing autoware_trajectory autoware_vehicle_info_utils autoware_core_control autoware_simple_pure_pursuit autoware_awsim_sensor_kit_description autoware_sample_sensor_kit_description autoware_sample_vehicle_description autoware_core_localization autoware_ekf_localizer autoware_gyro_odometer autoware_localization_util autoware_ndt_scan_matcher autoware_pose_initializer autoware_stop_filter autoware_twist2accel autoware_core_map autoware_lanelet2_map_visualizer autoware_map_height_fitter autoware_map_loader autoware_map_projection_loader autoware_core_perception autoware_euclidean_cluster_object_detector autoware_ground_filter autoware_perception_objects_converter autoware_core_planning autoware_mission_planner autoware_objects_of_interest_marker_interface autoware_path_generator autoware_planning_factor_interface autoware_planning_topic_converter autoware_route_handler autoware_velocity_smoother autoware_behavior_velocity_planner autoware_behavior_velocity_planner_common autoware_behavior_velocity_stop_line_module autoware_motion_velocity_obstacle_stop_module autoware_motion_velocity_planner autoware_motion_velocity_planner_common autoware_core_sensing autoware_crop_box_filter autoware_downsample_filters autoware_gnss_poser autoware_vehicle_velocity_converter autoware_planning_test_manager autoware_pyplot autoware_test_node autoware_test_utils autoware_testing autoware_core_vehicle

ROS Distro
humble

Package Summary

Version 1.8.0
License Apache License 2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/autowarefoundation/autoware_core.git
VCS Type git
VCS Version main
Last Updated 2026-05-02
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

The ROS 2 autoware_crop_box_filter package

Maintainers

  • amc-nu
  • Yukihiro Saito
  • Kyoichi Sugahara
  • Dai Nguyen
  • Kenzo Lobos-Tsunekawa
  • Yihsiang Fang
  • Yoshi Ri
  • David Wong
  • Melike Tanrikulu
  • Max Schmeller
  • Xingang Liu

Authors

No additional authors.

autoware_crop_box_filter

Overview

The autoware_crop_box_filter is a package that crops the input pointcloud to a specified bounding box. This is useful for reducing the computational load and improving the performance of the system.

Design

The autoware_crop_box_filter is implemented as a autoware core node that subscribes to the input pointcloud, and publishes the filtered pointcloud. The bounding box is specified using the min_point and max_point parameters.

Inputs / Outputs

Input

Name Type Description
~/input/points sensor_msgs::msg::PointCloud2 reference points

Output

Name Type Description
~/output/points sensor_msgs::msg::PointCloud2 filtered points
~/crop_box_polygon geometry_msgs::msg::PolygonStamped bounding box polygon

Parameters

Launch file Parameters

Name Type Default Value Description
input_frame string ” “ the frame id in which filtering is performed
output_frame string ” “ output frame id of the filtered points
input_pointcloud_frame string ” “ frame id of input pointcloud
max_queue_size int 5 max buffer size of input/output topics
crop_box_filter_param_file string ” “ path to the parameter file for the node

Node Parameters

Name Type Default Value Description
min_x double -5.0 minimum x value of the crop box
min_y double -5.0 minimum y value of the crop box
min_z double -5.0 minimum z value of the crop box
max_x double 5.0 maximum x value of the crop box
max_y double 5.0 maximum y value of the crop box
max_z double 5.0 maximum z value of the crop box
negative bool true if true, points inside the box are removed, otherwise points outside the box are removed

Usage

1.publish static tf from input pointcloud to target frame that is used for filtering

ros2 run tf2_ros static_transform_publisher 2.0 3.2 1.3 0 0 0 1  velodyne_top_base_link  base_link

2.launch node

ros2 launch autoware_crop_box_filter crop_box_filter_node.launch.xml

3. launch rviz2 and AWSIM

CHANGELOG

Changelog for package autoware_crop_box_filter

1.1.0 (2025-05-01)

  • feat(autoware_utils): remove managed transform buffer (#360)

    • feat(autoware_utils): remove managed transform buffer

    * fix(autoware_ground_filter): redundant inclusion ---------Co-authored-by: Yutaka Kondo <<yutaka.kondo@youtalk.jp>>

  • Contributors: Amadeusz Szymko

1.8.0 (2026-05-01)

  • Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base

  • refactor(autoware_core): add USE_SCOPED_HEADER_INSTALL_DIR to sensing packages (#985) Co-authored-by: github-actions <<github-actions@github.com>>

  • fix(autoware_crop_box_filter): add optional check before accessing crop_box_filter_ (#1016)

  • refactor(crop_box_filter): simplify filter logic by using identity matrix for no-transform case (#959) refactor(autoware_crop_box_filter): simplify filter logic by using identity matrix for no-transform case Use identity matrices as default for preprocess/postprocess transforms, eliminating conditional branches in the filter loop. Pre-compute output_frame_id in the constructor to simplify frame_id resolution. Co-authored-by: Takahisa.Ishikawa <<takahisa.ishikawa@tier4.jp>>

  • fix(autoware_crop_box_filter): fix bugprone-implicit-widening-of-multiplication-result warnings (#911)

  • fix(autoware_crop_box_filter): fix bugprone-narrowing-conversions warnings (#936)

  • refactor(autoware_crop_box_filter): extract CropBoxFilter logic class (#941)

    • refactor(autoware_crop_box_filter): rename CropBoxFilter node class to CropBoxFilterNode
    • refactor(autoware_crop_box_filter): extract CropBoxFilter logic class
    • refactor(autoware_crop_box_filter): remove output_frame from CropBoxFilterConfig

    * refactor(autoware_crop_box_filter): remove unnecessary member variables Convert tf_input_orig_frame_ and max_queue_size_ to local variables as they are only used in the constructor.

    • test(autoware_crop_box_filter): add unit tests for preprocess and postprocess transform
    • refactor(crop_box_filter): rename variable for clarity in transform handling

    * refactor(crop_box_filter): simplify transform handling by removing has_value checks ---------Co-authored-by: Takahisa.Ishikawa <<takahisa.ishikawa@tier4.jp>> Co-authored-by: Junya Sasaki <<j2sasaki1990@gmail.com>>

  • fix(crop_box_filter): maybe-uninitialized build error (#909) fix(crop_box_filter): initialize CropBoxParam with default values in test Co-authored-by: Takahisa.Ishikawa <<takahisa.ishikawa@tier4.jp>>

  • refactor(crop_box_filter): extract core and add unit tests (#886)

    • refactor(autoware_crop_box_filter): extract CropBoxParam and generate_crop_box_polygon to core library
    • test(autoware_crop_box_filter): add unit test for generate_crop_box_polygon
    • refactor(autoware_crop_box_filter): extract filter_pointcloud logic to core library
    • refactor(autoware_crop_box_filter): remove unnecessary includes from crop_box_filter_node.hpp

    * refactor(autoware_crop_box_filter): move filter_pointcloud tests to unit test file Move filter_pointcloud() tests from test_crop_box_filter_node.cpp to test_crop_box_filter.cpp since they test core logic, not node behavior.

    • refactor(autoware_crop_box_filter): apply AAA pattern and type aliases to filter_pointcloud tests

    * refactor(autoware_crop_box_filter): rename negative to keep_outside_box ---------Co-authored-by: Takahisa.Ishikawa

File truncated at 100 lines see the full file

Launch files

  • launch/crop_box_filter_node.launch.xml
      • input_topic_name [default: /sensing/lidar/top/pointcloud_raw_ex]
      • output_topic_name [default: /sensing/lidar/top/self_cropped/pointcloud_ex]
      • input_frame [default: base_link]
      • output_frame [default: base_link]
      • input_pointcloud_frame [default: velodyne_top_base_link]
      • crop_box_filter_param_file [default: $(find-pkg-share autoware_crop_box_filter)/config/crop_box_filter_node.param.yaml]

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged autoware_crop_box_filter at Robotics Stack Exchange

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

autoware_crop_box_filter package from autoware_core repo

autoware_adapi_adaptors autoware_adapi_specs autoware_core_api autoware_default_adapi autoware_core autoware_agnocast_wrapper autoware_component_interface_specs autoware_geography_utils autoware_global_parameter_loader autoware_interpolation autoware_kalman_filter autoware_lanelet2_utils autoware_marker_utils autoware_motion_utils autoware_node autoware_object_recognition_utils autoware_osqp_interface autoware_point_types autoware_qos_utils autoware_qp_interface autoware_signal_processing autoware_trajectory autoware_vehicle_info_utils autoware_core_control autoware_simple_pure_pursuit autoware_awsim_sensor_kit_description autoware_sample_sensor_kit_description autoware_sample_vehicle_description autoware_core_localization autoware_ekf_localizer autoware_gyro_odometer autoware_localization_util autoware_ndt_scan_matcher autoware_pose_initializer autoware_stop_filter autoware_twist2accel autoware_core_map autoware_lanelet2_map_visualizer autoware_map_height_fitter autoware_map_loader autoware_map_projection_loader autoware_core_perception autoware_euclidean_cluster_object_detector autoware_ground_filter autoware_perception_objects_converter autoware_core_planning autoware_mission_planner autoware_objects_of_interest_marker_interface autoware_path_generator autoware_planning_factor_interface autoware_planning_topic_converter autoware_route_handler autoware_velocity_smoother autoware_behavior_velocity_planner autoware_behavior_velocity_planner_common autoware_behavior_velocity_stop_line_module autoware_motion_velocity_obstacle_stop_module autoware_motion_velocity_planner autoware_motion_velocity_planner_common autoware_core_sensing autoware_crop_box_filter autoware_downsample_filters autoware_gnss_poser autoware_vehicle_velocity_converter autoware_planning_test_manager autoware_pyplot autoware_test_node autoware_test_utils autoware_testing autoware_core_vehicle

ROS Distro
humble

Package Summary

Version 1.8.0
License Apache License 2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/autowarefoundation/autoware_core.git
VCS Type git
VCS Version main
Last Updated 2026-05-02
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

The ROS 2 autoware_crop_box_filter package

Maintainers

  • amc-nu
  • Yukihiro Saito
  • Kyoichi Sugahara
  • Dai Nguyen
  • Kenzo Lobos-Tsunekawa
  • Yihsiang Fang
  • Yoshi Ri
  • David Wong
  • Melike Tanrikulu
  • Max Schmeller
  • Xingang Liu

Authors

No additional authors.

autoware_crop_box_filter

Overview

The autoware_crop_box_filter is a package that crops the input pointcloud to a specified bounding box. This is useful for reducing the computational load and improving the performance of the system.

Design

The autoware_crop_box_filter is implemented as a autoware core node that subscribes to the input pointcloud, and publishes the filtered pointcloud. The bounding box is specified using the min_point and max_point parameters.

Inputs / Outputs

Input

Name Type Description
~/input/points sensor_msgs::msg::PointCloud2 reference points

Output

Name Type Description
~/output/points sensor_msgs::msg::PointCloud2 filtered points
~/crop_box_polygon geometry_msgs::msg::PolygonStamped bounding box polygon

Parameters

Launch file Parameters

Name Type Default Value Description
input_frame string ” “ the frame id in which filtering is performed
output_frame string ” “ output frame id of the filtered points
input_pointcloud_frame string ” “ frame id of input pointcloud
max_queue_size int 5 max buffer size of input/output topics
crop_box_filter_param_file string ” “ path to the parameter file for the node

Node Parameters

Name Type Default Value Description
min_x double -5.0 minimum x value of the crop box
min_y double -5.0 minimum y value of the crop box
min_z double -5.0 minimum z value of the crop box
max_x double 5.0 maximum x value of the crop box
max_y double 5.0 maximum y value of the crop box
max_z double 5.0 maximum z value of the crop box
negative bool true if true, points inside the box are removed, otherwise points outside the box are removed

Usage

1.publish static tf from input pointcloud to target frame that is used for filtering

ros2 run tf2_ros static_transform_publisher 2.0 3.2 1.3 0 0 0 1  velodyne_top_base_link  base_link

2.launch node

ros2 launch autoware_crop_box_filter crop_box_filter_node.launch.xml

3. launch rviz2 and AWSIM

CHANGELOG

Changelog for package autoware_crop_box_filter

1.1.0 (2025-05-01)

  • feat(autoware_utils): remove managed transform buffer (#360)

    • feat(autoware_utils): remove managed transform buffer

    * fix(autoware_ground_filter): redundant inclusion ---------Co-authored-by: Yutaka Kondo <<yutaka.kondo@youtalk.jp>>

  • Contributors: Amadeusz Szymko

1.8.0 (2026-05-01)

  • Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base

  • refactor(autoware_core): add USE_SCOPED_HEADER_INSTALL_DIR to sensing packages (#985) Co-authored-by: github-actions <<github-actions@github.com>>

  • fix(autoware_crop_box_filter): add optional check before accessing crop_box_filter_ (#1016)

  • refactor(crop_box_filter): simplify filter logic by using identity matrix for no-transform case (#959) refactor(autoware_crop_box_filter): simplify filter logic by using identity matrix for no-transform case Use identity matrices as default for preprocess/postprocess transforms, eliminating conditional branches in the filter loop. Pre-compute output_frame_id in the constructor to simplify frame_id resolution. Co-authored-by: Takahisa.Ishikawa <<takahisa.ishikawa@tier4.jp>>

  • fix(autoware_crop_box_filter): fix bugprone-implicit-widening-of-multiplication-result warnings (#911)

  • fix(autoware_crop_box_filter): fix bugprone-narrowing-conversions warnings (#936)

  • refactor(autoware_crop_box_filter): extract CropBoxFilter logic class (#941)

    • refactor(autoware_crop_box_filter): rename CropBoxFilter node class to CropBoxFilterNode
    • refactor(autoware_crop_box_filter): extract CropBoxFilter logic class
    • refactor(autoware_crop_box_filter): remove output_frame from CropBoxFilterConfig

    * refactor(autoware_crop_box_filter): remove unnecessary member variables Convert tf_input_orig_frame_ and max_queue_size_ to local variables as they are only used in the constructor.

    • test(autoware_crop_box_filter): add unit tests for preprocess and postprocess transform
    • refactor(crop_box_filter): rename variable for clarity in transform handling

    * refactor(crop_box_filter): simplify transform handling by removing has_value checks ---------Co-authored-by: Takahisa.Ishikawa <<takahisa.ishikawa@tier4.jp>> Co-authored-by: Junya Sasaki <<j2sasaki1990@gmail.com>>

  • fix(crop_box_filter): maybe-uninitialized build error (#909) fix(crop_box_filter): initialize CropBoxParam with default values in test Co-authored-by: Takahisa.Ishikawa <<takahisa.ishikawa@tier4.jp>>

  • refactor(crop_box_filter): extract core and add unit tests (#886)

    • refactor(autoware_crop_box_filter): extract CropBoxParam and generate_crop_box_polygon to core library
    • test(autoware_crop_box_filter): add unit test for generate_crop_box_polygon
    • refactor(autoware_crop_box_filter): extract filter_pointcloud logic to core library
    • refactor(autoware_crop_box_filter): remove unnecessary includes from crop_box_filter_node.hpp

    * refactor(autoware_crop_box_filter): move filter_pointcloud tests to unit test file Move filter_pointcloud() tests from test_crop_box_filter_node.cpp to test_crop_box_filter.cpp since they test core logic, not node behavior.

    • refactor(autoware_crop_box_filter): apply AAA pattern and type aliases to filter_pointcloud tests

    * refactor(autoware_crop_box_filter): rename negative to keep_outside_box ---------Co-authored-by: Takahisa.Ishikawa

File truncated at 100 lines see the full file

Launch files

  • launch/crop_box_filter_node.launch.xml
      • input_topic_name [default: /sensing/lidar/top/pointcloud_raw_ex]
      • output_topic_name [default: /sensing/lidar/top/self_cropped/pointcloud_ex]
      • input_frame [default: base_link]
      • output_frame [default: base_link]
      • input_pointcloud_frame [default: velodyne_top_base_link]
      • crop_box_filter_param_file [default: $(find-pkg-share autoware_crop_box_filter)/config/crop_box_filter_node.param.yaml]

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged autoware_crop_box_filter at Robotics Stack Exchange

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

autoware_crop_box_filter package from autoware_core repo

autoware_adapi_adaptors autoware_adapi_specs autoware_core_api autoware_default_adapi autoware_core autoware_agnocast_wrapper autoware_component_interface_specs autoware_geography_utils autoware_global_parameter_loader autoware_interpolation autoware_kalman_filter autoware_lanelet2_utils autoware_marker_utils autoware_motion_utils autoware_node autoware_object_recognition_utils autoware_osqp_interface autoware_point_types autoware_qos_utils autoware_qp_interface autoware_signal_processing autoware_trajectory autoware_vehicle_info_utils autoware_core_control autoware_simple_pure_pursuit autoware_awsim_sensor_kit_description autoware_sample_sensor_kit_description autoware_sample_vehicle_description autoware_core_localization autoware_ekf_localizer autoware_gyro_odometer autoware_localization_util autoware_ndt_scan_matcher autoware_pose_initializer autoware_stop_filter autoware_twist2accel autoware_core_map autoware_lanelet2_map_visualizer autoware_map_height_fitter autoware_map_loader autoware_map_projection_loader autoware_core_perception autoware_euclidean_cluster_object_detector autoware_ground_filter autoware_perception_objects_converter autoware_core_planning autoware_mission_planner autoware_objects_of_interest_marker_interface autoware_path_generator autoware_planning_factor_interface autoware_planning_topic_converter autoware_route_handler autoware_velocity_smoother autoware_behavior_velocity_planner autoware_behavior_velocity_planner_common autoware_behavior_velocity_stop_line_module autoware_motion_velocity_obstacle_stop_module autoware_motion_velocity_planner autoware_motion_velocity_planner_common autoware_core_sensing autoware_crop_box_filter autoware_downsample_filters autoware_gnss_poser autoware_vehicle_velocity_converter autoware_planning_test_manager autoware_pyplot autoware_test_node autoware_test_utils autoware_testing autoware_core_vehicle

ROS Distro
humble

Package Summary

Version 1.8.0
License Apache License 2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/autowarefoundation/autoware_core.git
VCS Type git
VCS Version main
Last Updated 2026-05-02
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

The ROS 2 autoware_crop_box_filter package

Maintainers

  • amc-nu
  • Yukihiro Saito
  • Kyoichi Sugahara
  • Dai Nguyen
  • Kenzo Lobos-Tsunekawa
  • Yihsiang Fang
  • Yoshi Ri
  • David Wong
  • Melike Tanrikulu
  • Max Schmeller
  • Xingang Liu

Authors

No additional authors.

autoware_crop_box_filter

Overview

The autoware_crop_box_filter is a package that crops the input pointcloud to a specified bounding box. This is useful for reducing the computational load and improving the performance of the system.

Design

The autoware_crop_box_filter is implemented as a autoware core node that subscribes to the input pointcloud, and publishes the filtered pointcloud. The bounding box is specified using the min_point and max_point parameters.

Inputs / Outputs

Input

Name Type Description
~/input/points sensor_msgs::msg::PointCloud2 reference points

Output

Name Type Description
~/output/points sensor_msgs::msg::PointCloud2 filtered points
~/crop_box_polygon geometry_msgs::msg::PolygonStamped bounding box polygon

Parameters

Launch file Parameters

Name Type Default Value Description
input_frame string ” “ the frame id in which filtering is performed
output_frame string ” “ output frame id of the filtered points
input_pointcloud_frame string ” “ frame id of input pointcloud
max_queue_size int 5 max buffer size of input/output topics
crop_box_filter_param_file string ” “ path to the parameter file for the node

Node Parameters

Name Type Default Value Description
min_x double -5.0 minimum x value of the crop box
min_y double -5.0 minimum y value of the crop box
min_z double -5.0 minimum z value of the crop box
max_x double 5.0 maximum x value of the crop box
max_y double 5.0 maximum y value of the crop box
max_z double 5.0 maximum z value of the crop box
negative bool true if true, points inside the box are removed, otherwise points outside the box are removed

Usage

1.publish static tf from input pointcloud to target frame that is used for filtering

ros2 run tf2_ros static_transform_publisher 2.0 3.2 1.3 0 0 0 1  velodyne_top_base_link  base_link

2.launch node

ros2 launch autoware_crop_box_filter crop_box_filter_node.launch.xml

3. launch rviz2 and AWSIM

CHANGELOG

Changelog for package autoware_crop_box_filter

1.1.0 (2025-05-01)

  • feat(autoware_utils): remove managed transform buffer (#360)

    • feat(autoware_utils): remove managed transform buffer

    * fix(autoware_ground_filter): redundant inclusion ---------Co-authored-by: Yutaka Kondo <<yutaka.kondo@youtalk.jp>>

  • Contributors: Amadeusz Szymko

1.8.0 (2026-05-01)

  • Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base

  • refactor(autoware_core): add USE_SCOPED_HEADER_INSTALL_DIR to sensing packages (#985) Co-authored-by: github-actions <<github-actions@github.com>>

  • fix(autoware_crop_box_filter): add optional check before accessing crop_box_filter_ (#1016)

  • refactor(crop_box_filter): simplify filter logic by using identity matrix for no-transform case (#959) refactor(autoware_crop_box_filter): simplify filter logic by using identity matrix for no-transform case Use identity matrices as default for preprocess/postprocess transforms, eliminating conditional branches in the filter loop. Pre-compute output_frame_id in the constructor to simplify frame_id resolution. Co-authored-by: Takahisa.Ishikawa <<takahisa.ishikawa@tier4.jp>>

  • fix(autoware_crop_box_filter): fix bugprone-implicit-widening-of-multiplication-result warnings (#911)

  • fix(autoware_crop_box_filter): fix bugprone-narrowing-conversions warnings (#936)

  • refactor(autoware_crop_box_filter): extract CropBoxFilter logic class (#941)

    • refactor(autoware_crop_box_filter): rename CropBoxFilter node class to CropBoxFilterNode
    • refactor(autoware_crop_box_filter): extract CropBoxFilter logic class
    • refactor(autoware_crop_box_filter): remove output_frame from CropBoxFilterConfig

    * refactor(autoware_crop_box_filter): remove unnecessary member variables Convert tf_input_orig_frame_ and max_queue_size_ to local variables as they are only used in the constructor.

    • test(autoware_crop_box_filter): add unit tests for preprocess and postprocess transform
    • refactor(crop_box_filter): rename variable for clarity in transform handling

    * refactor(crop_box_filter): simplify transform handling by removing has_value checks ---------Co-authored-by: Takahisa.Ishikawa <<takahisa.ishikawa@tier4.jp>> Co-authored-by: Junya Sasaki <<j2sasaki1990@gmail.com>>

  • fix(crop_box_filter): maybe-uninitialized build error (#909) fix(crop_box_filter): initialize CropBoxParam with default values in test Co-authored-by: Takahisa.Ishikawa <<takahisa.ishikawa@tier4.jp>>

  • refactor(crop_box_filter): extract core and add unit tests (#886)

    • refactor(autoware_crop_box_filter): extract CropBoxParam and generate_crop_box_polygon to core library
    • test(autoware_crop_box_filter): add unit test for generate_crop_box_polygon
    • refactor(autoware_crop_box_filter): extract filter_pointcloud logic to core library
    • refactor(autoware_crop_box_filter): remove unnecessary includes from crop_box_filter_node.hpp

    * refactor(autoware_crop_box_filter): move filter_pointcloud tests to unit test file Move filter_pointcloud() tests from test_crop_box_filter_node.cpp to test_crop_box_filter.cpp since they test core logic, not node behavior.

    • refactor(autoware_crop_box_filter): apply AAA pattern and type aliases to filter_pointcloud tests

    * refactor(autoware_crop_box_filter): rename negative to keep_outside_box ---------Co-authored-by: Takahisa.Ishikawa

File truncated at 100 lines see the full file

Launch files

  • launch/crop_box_filter_node.launch.xml
      • input_topic_name [default: /sensing/lidar/top/pointcloud_raw_ex]
      • output_topic_name [default: /sensing/lidar/top/self_cropped/pointcloud_ex]
      • input_frame [default: base_link]
      • output_frame [default: base_link]
      • input_pointcloud_frame [default: velodyne_top_base_link]
      • crop_box_filter_param_file [default: $(find-pkg-share autoware_crop_box_filter)/config/crop_box_filter_node.param.yaml]

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged autoware_crop_box_filter at Robotics Stack Exchange

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

autoware_crop_box_filter package from autoware_core repo

autoware_adapi_adaptors autoware_adapi_specs autoware_core_api autoware_default_adapi autoware_core autoware_agnocast_wrapper autoware_component_interface_specs autoware_geography_utils autoware_global_parameter_loader autoware_interpolation autoware_kalman_filter autoware_lanelet2_utils autoware_marker_utils autoware_motion_utils autoware_node autoware_object_recognition_utils autoware_osqp_interface autoware_point_types autoware_qos_utils autoware_qp_interface autoware_signal_processing autoware_trajectory autoware_vehicle_info_utils autoware_core_control autoware_simple_pure_pursuit autoware_awsim_sensor_kit_description autoware_sample_sensor_kit_description autoware_sample_vehicle_description autoware_core_localization autoware_ekf_localizer autoware_gyro_odometer autoware_localization_util autoware_ndt_scan_matcher autoware_pose_initializer autoware_stop_filter autoware_twist2accel autoware_core_map autoware_lanelet2_map_visualizer autoware_map_height_fitter autoware_map_loader autoware_map_projection_loader autoware_core_perception autoware_euclidean_cluster_object_detector autoware_ground_filter autoware_perception_objects_converter autoware_core_planning autoware_mission_planner autoware_objects_of_interest_marker_interface autoware_path_generator autoware_planning_factor_interface autoware_planning_topic_converter autoware_route_handler autoware_velocity_smoother autoware_behavior_velocity_planner autoware_behavior_velocity_planner_common autoware_behavior_velocity_stop_line_module autoware_motion_velocity_obstacle_stop_module autoware_motion_velocity_planner autoware_motion_velocity_planner_common autoware_core_sensing autoware_crop_box_filter autoware_downsample_filters autoware_gnss_poser autoware_vehicle_velocity_converter autoware_planning_test_manager autoware_pyplot autoware_test_node autoware_test_utils autoware_testing autoware_core_vehicle

ROS Distro
humble

Package Summary

Version 1.8.0
License Apache License 2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/autowarefoundation/autoware_core.git
VCS Type git
VCS Version main
Last Updated 2026-05-02
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

The ROS 2 autoware_crop_box_filter package

Maintainers

  • amc-nu
  • Yukihiro Saito
  • Kyoichi Sugahara
  • Dai Nguyen
  • Kenzo Lobos-Tsunekawa
  • Yihsiang Fang
  • Yoshi Ri
  • David Wong
  • Melike Tanrikulu
  • Max Schmeller
  • Xingang Liu

Authors

No additional authors.

autoware_crop_box_filter

Overview

The autoware_crop_box_filter is a package that crops the input pointcloud to a specified bounding box. This is useful for reducing the computational load and improving the performance of the system.

Design

The autoware_crop_box_filter is implemented as a autoware core node that subscribes to the input pointcloud, and publishes the filtered pointcloud. The bounding box is specified using the min_point and max_point parameters.

Inputs / Outputs

Input

Name Type Description
~/input/points sensor_msgs::msg::PointCloud2 reference points

Output

Name Type Description
~/output/points sensor_msgs::msg::PointCloud2 filtered points
~/crop_box_polygon geometry_msgs::msg::PolygonStamped bounding box polygon

Parameters

Launch file Parameters

Name Type Default Value Description
input_frame string ” “ the frame id in which filtering is performed
output_frame string ” “ output frame id of the filtered points
input_pointcloud_frame string ” “ frame id of input pointcloud
max_queue_size int 5 max buffer size of input/output topics
crop_box_filter_param_file string ” “ path to the parameter file for the node

Node Parameters

Name Type Default Value Description
min_x double -5.0 minimum x value of the crop box
min_y double -5.0 minimum y value of the crop box
min_z double -5.0 minimum z value of the crop box
max_x double 5.0 maximum x value of the crop box
max_y double 5.0 maximum y value of the crop box
max_z double 5.0 maximum z value of the crop box
negative bool true if true, points inside the box are removed, otherwise points outside the box are removed

Usage

1.publish static tf from input pointcloud to target frame that is used for filtering

ros2 run tf2_ros static_transform_publisher 2.0 3.2 1.3 0 0 0 1  velodyne_top_base_link  base_link

2.launch node

ros2 launch autoware_crop_box_filter crop_box_filter_node.launch.xml

3. launch rviz2 and AWSIM

CHANGELOG

Changelog for package autoware_crop_box_filter

1.1.0 (2025-05-01)

  • feat(autoware_utils): remove managed transform buffer (#360)

    • feat(autoware_utils): remove managed transform buffer

    * fix(autoware_ground_filter): redundant inclusion ---------Co-authored-by: Yutaka Kondo <<yutaka.kondo@youtalk.jp>>

  • Contributors: Amadeusz Szymko

1.8.0 (2026-05-01)

  • Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base

  • refactor(autoware_core): add USE_SCOPED_HEADER_INSTALL_DIR to sensing packages (#985) Co-authored-by: github-actions <<github-actions@github.com>>

  • fix(autoware_crop_box_filter): add optional check before accessing crop_box_filter_ (#1016)

  • refactor(crop_box_filter): simplify filter logic by using identity matrix for no-transform case (#959) refactor(autoware_crop_box_filter): simplify filter logic by using identity matrix for no-transform case Use identity matrices as default for preprocess/postprocess transforms, eliminating conditional branches in the filter loop. Pre-compute output_frame_id in the constructor to simplify frame_id resolution. Co-authored-by: Takahisa.Ishikawa <<takahisa.ishikawa@tier4.jp>>

  • fix(autoware_crop_box_filter): fix bugprone-implicit-widening-of-multiplication-result warnings (#911)

  • fix(autoware_crop_box_filter): fix bugprone-narrowing-conversions warnings (#936)

  • refactor(autoware_crop_box_filter): extract CropBoxFilter logic class (#941)

    • refactor(autoware_crop_box_filter): rename CropBoxFilter node class to CropBoxFilterNode
    • refactor(autoware_crop_box_filter): extract CropBoxFilter logic class
    • refactor(autoware_crop_box_filter): remove output_frame from CropBoxFilterConfig

    * refactor(autoware_crop_box_filter): remove unnecessary member variables Convert tf_input_orig_frame_ and max_queue_size_ to local variables as they are only used in the constructor.

    • test(autoware_crop_box_filter): add unit tests for preprocess and postprocess transform
    • refactor(crop_box_filter): rename variable for clarity in transform handling

    * refactor(crop_box_filter): simplify transform handling by removing has_value checks ---------Co-authored-by: Takahisa.Ishikawa <<takahisa.ishikawa@tier4.jp>> Co-authored-by: Junya Sasaki <<j2sasaki1990@gmail.com>>

  • fix(crop_box_filter): maybe-uninitialized build error (#909) fix(crop_box_filter): initialize CropBoxParam with default values in test Co-authored-by: Takahisa.Ishikawa <<takahisa.ishikawa@tier4.jp>>

  • refactor(crop_box_filter): extract core and add unit tests (#886)

    • refactor(autoware_crop_box_filter): extract CropBoxParam and generate_crop_box_polygon to core library
    • test(autoware_crop_box_filter): add unit test for generate_crop_box_polygon
    • refactor(autoware_crop_box_filter): extract filter_pointcloud logic to core library
    • refactor(autoware_crop_box_filter): remove unnecessary includes from crop_box_filter_node.hpp

    * refactor(autoware_crop_box_filter): move filter_pointcloud tests to unit test file Move filter_pointcloud() tests from test_crop_box_filter_node.cpp to test_crop_box_filter.cpp since they test core logic, not node behavior.

    • refactor(autoware_crop_box_filter): apply AAA pattern and type aliases to filter_pointcloud tests

    * refactor(autoware_crop_box_filter): rename negative to keep_outside_box ---------Co-authored-by: Takahisa.Ishikawa

File truncated at 100 lines see the full file

Launch files

  • launch/crop_box_filter_node.launch.xml
      • input_topic_name [default: /sensing/lidar/top/pointcloud_raw_ex]
      • output_topic_name [default: /sensing/lidar/top/self_cropped/pointcloud_ex]
      • input_frame [default: base_link]
      • output_frame [default: base_link]
      • input_pointcloud_frame [default: velodyne_top_base_link]
      • crop_box_filter_param_file [default: $(find-pkg-share autoware_crop_box_filter)/config/crop_box_filter_node.param.yaml]

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged autoware_crop_box_filter at Robotics Stack Exchange

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

autoware_crop_box_filter package from autoware_core repo

autoware_adapi_adaptors autoware_adapi_specs autoware_core_api autoware_default_adapi autoware_core autoware_agnocast_wrapper autoware_component_interface_specs autoware_geography_utils autoware_global_parameter_loader autoware_interpolation autoware_kalman_filter autoware_lanelet2_utils autoware_marker_utils autoware_motion_utils autoware_node autoware_object_recognition_utils autoware_osqp_interface autoware_point_types autoware_qos_utils autoware_qp_interface autoware_signal_processing autoware_trajectory autoware_vehicle_info_utils autoware_core_control autoware_simple_pure_pursuit autoware_awsim_sensor_kit_description autoware_sample_sensor_kit_description autoware_sample_vehicle_description autoware_core_localization autoware_ekf_localizer autoware_gyro_odometer autoware_localization_util autoware_ndt_scan_matcher autoware_pose_initializer autoware_stop_filter autoware_twist2accel autoware_core_map autoware_lanelet2_map_visualizer autoware_map_height_fitter autoware_map_loader autoware_map_projection_loader autoware_core_perception autoware_euclidean_cluster_object_detector autoware_ground_filter autoware_perception_objects_converter autoware_core_planning autoware_mission_planner autoware_objects_of_interest_marker_interface autoware_path_generator autoware_planning_factor_interface autoware_planning_topic_converter autoware_route_handler autoware_velocity_smoother autoware_behavior_velocity_planner autoware_behavior_velocity_planner_common autoware_behavior_velocity_stop_line_module autoware_motion_velocity_obstacle_stop_module autoware_motion_velocity_planner autoware_motion_velocity_planner_common autoware_core_sensing autoware_crop_box_filter autoware_downsample_filters autoware_gnss_poser autoware_vehicle_velocity_converter autoware_planning_test_manager autoware_pyplot autoware_test_node autoware_test_utils autoware_testing autoware_core_vehicle

ROS Distro
humble

Package Summary

Version 1.8.0
License Apache License 2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/autowarefoundation/autoware_core.git
VCS Type git
VCS Version main
Last Updated 2026-05-02
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

The ROS 2 autoware_crop_box_filter package

Maintainers

  • amc-nu
  • Yukihiro Saito
  • Kyoichi Sugahara
  • Dai Nguyen
  • Kenzo Lobos-Tsunekawa
  • Yihsiang Fang
  • Yoshi Ri
  • David Wong
  • Melike Tanrikulu
  • Max Schmeller
  • Xingang Liu

Authors

No additional authors.

autoware_crop_box_filter

Overview

The autoware_crop_box_filter is a package that crops the input pointcloud to a specified bounding box. This is useful for reducing the computational load and improving the performance of the system.

Design

The autoware_crop_box_filter is implemented as a autoware core node that subscribes to the input pointcloud, and publishes the filtered pointcloud. The bounding box is specified using the min_point and max_point parameters.

Inputs / Outputs

Input

Name Type Description
~/input/points sensor_msgs::msg::PointCloud2 reference points

Output

Name Type Description
~/output/points sensor_msgs::msg::PointCloud2 filtered points
~/crop_box_polygon geometry_msgs::msg::PolygonStamped bounding box polygon

Parameters

Launch file Parameters

Name Type Default Value Description
input_frame string ” “ the frame id in which filtering is performed
output_frame string ” “ output frame id of the filtered points
input_pointcloud_frame string ” “ frame id of input pointcloud
max_queue_size int 5 max buffer size of input/output topics
crop_box_filter_param_file string ” “ path to the parameter file for the node

Node Parameters

Name Type Default Value Description
min_x double -5.0 minimum x value of the crop box
min_y double -5.0 minimum y value of the crop box
min_z double -5.0 minimum z value of the crop box
max_x double 5.0 maximum x value of the crop box
max_y double 5.0 maximum y value of the crop box
max_z double 5.0 maximum z value of the crop box
negative bool true if true, points inside the box are removed, otherwise points outside the box are removed

Usage

1.publish static tf from input pointcloud to target frame that is used for filtering

ros2 run tf2_ros static_transform_publisher 2.0 3.2 1.3 0 0 0 1  velodyne_top_base_link  base_link

2.launch node

ros2 launch autoware_crop_box_filter crop_box_filter_node.launch.xml

3. launch rviz2 and AWSIM

CHANGELOG

Changelog for package autoware_crop_box_filter

1.1.0 (2025-05-01)

  • feat(autoware_utils): remove managed transform buffer (#360)

    • feat(autoware_utils): remove managed transform buffer

    * fix(autoware_ground_filter): redundant inclusion ---------Co-authored-by: Yutaka Kondo <<yutaka.kondo@youtalk.jp>>

  • Contributors: Amadeusz Szymko

1.8.0 (2026-05-01)

  • Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base

  • refactor(autoware_core): add USE_SCOPED_HEADER_INSTALL_DIR to sensing packages (#985) Co-authored-by: github-actions <<github-actions@github.com>>

  • fix(autoware_crop_box_filter): add optional check before accessing crop_box_filter_ (#1016)

  • refactor(crop_box_filter): simplify filter logic by using identity matrix for no-transform case (#959) refactor(autoware_crop_box_filter): simplify filter logic by using identity matrix for no-transform case Use identity matrices as default for preprocess/postprocess transforms, eliminating conditional branches in the filter loop. Pre-compute output_frame_id in the constructor to simplify frame_id resolution. Co-authored-by: Takahisa.Ishikawa <<takahisa.ishikawa@tier4.jp>>

  • fix(autoware_crop_box_filter): fix bugprone-implicit-widening-of-multiplication-result warnings (#911)

  • fix(autoware_crop_box_filter): fix bugprone-narrowing-conversions warnings (#936)

  • refactor(autoware_crop_box_filter): extract CropBoxFilter logic class (#941)

    • refactor(autoware_crop_box_filter): rename CropBoxFilter node class to CropBoxFilterNode
    • refactor(autoware_crop_box_filter): extract CropBoxFilter logic class
    • refactor(autoware_crop_box_filter): remove output_frame from CropBoxFilterConfig

    * refactor(autoware_crop_box_filter): remove unnecessary member variables Convert tf_input_orig_frame_ and max_queue_size_ to local variables as they are only used in the constructor.

    • test(autoware_crop_box_filter): add unit tests for preprocess and postprocess transform
    • refactor(crop_box_filter): rename variable for clarity in transform handling

    * refactor(crop_box_filter): simplify transform handling by removing has_value checks ---------Co-authored-by: Takahisa.Ishikawa <<takahisa.ishikawa@tier4.jp>> Co-authored-by: Junya Sasaki <<j2sasaki1990@gmail.com>>

  • fix(crop_box_filter): maybe-uninitialized build error (#909) fix(crop_box_filter): initialize CropBoxParam with default values in test Co-authored-by: Takahisa.Ishikawa <<takahisa.ishikawa@tier4.jp>>

  • refactor(crop_box_filter): extract core and add unit tests (#886)

    • refactor(autoware_crop_box_filter): extract CropBoxParam and generate_crop_box_polygon to core library
    • test(autoware_crop_box_filter): add unit test for generate_crop_box_polygon
    • refactor(autoware_crop_box_filter): extract filter_pointcloud logic to core library
    • refactor(autoware_crop_box_filter): remove unnecessary includes from crop_box_filter_node.hpp

    * refactor(autoware_crop_box_filter): move filter_pointcloud tests to unit test file Move filter_pointcloud() tests from test_crop_box_filter_node.cpp to test_crop_box_filter.cpp since they test core logic, not node behavior.

    • refactor(autoware_crop_box_filter): apply AAA pattern and type aliases to filter_pointcloud tests

    * refactor(autoware_crop_box_filter): rename negative to keep_outside_box ---------Co-authored-by: Takahisa.Ishikawa

File truncated at 100 lines see the full file

Launch files

  • launch/crop_box_filter_node.launch.xml
      • input_topic_name [default: /sensing/lidar/top/pointcloud_raw_ex]
      • output_topic_name [default: /sensing/lidar/top/self_cropped/pointcloud_ex]
      • input_frame [default: base_link]
      • output_frame [default: base_link]
      • input_pointcloud_frame [default: velodyne_top_base_link]
      • crop_box_filter_param_file [default: $(find-pkg-share autoware_crop_box_filter)/config/crop_box_filter_node.param.yaml]

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged autoware_crop_box_filter at Robotics Stack Exchange

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

autoware_crop_box_filter package from autoware_core repo

autoware_adapi_adaptors autoware_adapi_specs autoware_core_api autoware_default_adapi autoware_core autoware_agnocast_wrapper autoware_component_interface_specs autoware_geography_utils autoware_global_parameter_loader autoware_interpolation autoware_kalman_filter autoware_lanelet2_utils autoware_marker_utils autoware_motion_utils autoware_node autoware_object_recognition_utils autoware_osqp_interface autoware_point_types autoware_qos_utils autoware_qp_interface autoware_signal_processing autoware_trajectory autoware_vehicle_info_utils autoware_core_control autoware_simple_pure_pursuit autoware_awsim_sensor_kit_description autoware_sample_sensor_kit_description autoware_sample_vehicle_description autoware_core_localization autoware_ekf_localizer autoware_gyro_odometer autoware_localization_util autoware_ndt_scan_matcher autoware_pose_initializer autoware_stop_filter autoware_twist2accel autoware_core_map autoware_lanelet2_map_visualizer autoware_map_height_fitter autoware_map_loader autoware_map_projection_loader autoware_core_perception autoware_euclidean_cluster_object_detector autoware_ground_filter autoware_perception_objects_converter autoware_core_planning autoware_mission_planner autoware_objects_of_interest_marker_interface autoware_path_generator autoware_planning_factor_interface autoware_planning_topic_converter autoware_route_handler autoware_velocity_smoother autoware_behavior_velocity_planner autoware_behavior_velocity_planner_common autoware_behavior_velocity_stop_line_module autoware_motion_velocity_obstacle_stop_module autoware_motion_velocity_planner autoware_motion_velocity_planner_common autoware_core_sensing autoware_crop_box_filter autoware_downsample_filters autoware_gnss_poser autoware_vehicle_velocity_converter autoware_planning_test_manager autoware_pyplot autoware_test_node autoware_test_utils autoware_testing autoware_core_vehicle

ROS Distro
humble

Package Summary

Version 1.8.0
License Apache License 2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/autowarefoundation/autoware_core.git
VCS Type git
VCS Version main
Last Updated 2026-05-02
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

The ROS 2 autoware_crop_box_filter package

Maintainers

  • amc-nu
  • Yukihiro Saito
  • Kyoichi Sugahara
  • Dai Nguyen
  • Kenzo Lobos-Tsunekawa
  • Yihsiang Fang
  • Yoshi Ri
  • David Wong
  • Melike Tanrikulu
  • Max Schmeller
  • Xingang Liu

Authors

No additional authors.

autoware_crop_box_filter

Overview

The autoware_crop_box_filter is a package that crops the input pointcloud to a specified bounding box. This is useful for reducing the computational load and improving the performance of the system.

Design

The autoware_crop_box_filter is implemented as a autoware core node that subscribes to the input pointcloud, and publishes the filtered pointcloud. The bounding box is specified using the min_point and max_point parameters.

Inputs / Outputs

Input

Name Type Description
~/input/points sensor_msgs::msg::PointCloud2 reference points

Output

Name Type Description
~/output/points sensor_msgs::msg::PointCloud2 filtered points
~/crop_box_polygon geometry_msgs::msg::PolygonStamped bounding box polygon

Parameters

Launch file Parameters

Name Type Default Value Description
input_frame string ” “ the frame id in which filtering is performed
output_frame string ” “ output frame id of the filtered points
input_pointcloud_frame string ” “ frame id of input pointcloud
max_queue_size int 5 max buffer size of input/output topics
crop_box_filter_param_file string ” “ path to the parameter file for the node

Node Parameters

Name Type Default Value Description
min_x double -5.0 minimum x value of the crop box
min_y double -5.0 minimum y value of the crop box
min_z double -5.0 minimum z value of the crop box
max_x double 5.0 maximum x value of the crop box
max_y double 5.0 maximum y value of the crop box
max_z double 5.0 maximum z value of the crop box
negative bool true if true, points inside the box are removed, otherwise points outside the box are removed

Usage

1.publish static tf from input pointcloud to target frame that is used for filtering

ros2 run tf2_ros static_transform_publisher 2.0 3.2 1.3 0 0 0 1  velodyne_top_base_link  base_link

2.launch node

ros2 launch autoware_crop_box_filter crop_box_filter_node.launch.xml

3. launch rviz2 and AWSIM

CHANGELOG

Changelog for package autoware_crop_box_filter

1.1.0 (2025-05-01)

  • feat(autoware_utils): remove managed transform buffer (#360)

    • feat(autoware_utils): remove managed transform buffer

    * fix(autoware_ground_filter): redundant inclusion ---------Co-authored-by: Yutaka Kondo <<yutaka.kondo@youtalk.jp>>

  • Contributors: Amadeusz Szymko

1.8.0 (2026-05-01)

  • Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base

  • refactor(autoware_core): add USE_SCOPED_HEADER_INSTALL_DIR to sensing packages (#985) Co-authored-by: github-actions <<github-actions@github.com>>

  • fix(autoware_crop_box_filter): add optional check before accessing crop_box_filter_ (#1016)

  • refactor(crop_box_filter): simplify filter logic by using identity matrix for no-transform case (#959) refactor(autoware_crop_box_filter): simplify filter logic by using identity matrix for no-transform case Use identity matrices as default for preprocess/postprocess transforms, eliminating conditional branches in the filter loop. Pre-compute output_frame_id in the constructor to simplify frame_id resolution. Co-authored-by: Takahisa.Ishikawa <<takahisa.ishikawa@tier4.jp>>

  • fix(autoware_crop_box_filter): fix bugprone-implicit-widening-of-multiplication-result warnings (#911)

  • fix(autoware_crop_box_filter): fix bugprone-narrowing-conversions warnings (#936)

  • refactor(autoware_crop_box_filter): extract CropBoxFilter logic class (#941)

    • refactor(autoware_crop_box_filter): rename CropBoxFilter node class to CropBoxFilterNode
    • refactor(autoware_crop_box_filter): extract CropBoxFilter logic class
    • refactor(autoware_crop_box_filter): remove output_frame from CropBoxFilterConfig

    * refactor(autoware_crop_box_filter): remove unnecessary member variables Convert tf_input_orig_frame_ and max_queue_size_ to local variables as they are only used in the constructor.

    • test(autoware_crop_box_filter): add unit tests for preprocess and postprocess transform
    • refactor(crop_box_filter): rename variable for clarity in transform handling

    * refactor(crop_box_filter): simplify transform handling by removing has_value checks ---------Co-authored-by: Takahisa.Ishikawa <<takahisa.ishikawa@tier4.jp>> Co-authored-by: Junya Sasaki <<j2sasaki1990@gmail.com>>

  • fix(crop_box_filter): maybe-uninitialized build error (#909) fix(crop_box_filter): initialize CropBoxParam with default values in test Co-authored-by: Takahisa.Ishikawa <<takahisa.ishikawa@tier4.jp>>

  • refactor(crop_box_filter): extract core and add unit tests (#886)

    • refactor(autoware_crop_box_filter): extract CropBoxParam and generate_crop_box_polygon to core library
    • test(autoware_crop_box_filter): add unit test for generate_crop_box_polygon
    • refactor(autoware_crop_box_filter): extract filter_pointcloud logic to core library
    • refactor(autoware_crop_box_filter): remove unnecessary includes from crop_box_filter_node.hpp

    * refactor(autoware_crop_box_filter): move filter_pointcloud tests to unit test file Move filter_pointcloud() tests from test_crop_box_filter_node.cpp to test_crop_box_filter.cpp since they test core logic, not node behavior.

    • refactor(autoware_crop_box_filter): apply AAA pattern and type aliases to filter_pointcloud tests

    * refactor(autoware_crop_box_filter): rename negative to keep_outside_box ---------Co-authored-by: Takahisa.Ishikawa

File truncated at 100 lines see the full file

Launch files

  • launch/crop_box_filter_node.launch.xml
      • input_topic_name [default: /sensing/lidar/top/pointcloud_raw_ex]
      • output_topic_name [default: /sensing/lidar/top/self_cropped/pointcloud_ex]
      • input_frame [default: base_link]
      • output_frame [default: base_link]
      • input_pointcloud_frame [default: velodyne_top_base_link]
      • crop_box_filter_param_file [default: $(find-pkg-share autoware_crop_box_filter)/config/crop_box_filter_node.param.yaml]

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged autoware_crop_box_filter at Robotics Stack Exchange

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

autoware_crop_box_filter package from autoware_core repo

autoware_adapi_adaptors autoware_adapi_specs autoware_core_api autoware_default_adapi autoware_core autoware_agnocast_wrapper autoware_component_interface_specs autoware_geography_utils autoware_global_parameter_loader autoware_interpolation autoware_kalman_filter autoware_lanelet2_utils autoware_marker_utils autoware_motion_utils autoware_node autoware_object_recognition_utils autoware_osqp_interface autoware_point_types autoware_qos_utils autoware_qp_interface autoware_signal_processing autoware_trajectory autoware_vehicle_info_utils autoware_core_control autoware_simple_pure_pursuit autoware_awsim_sensor_kit_description autoware_sample_sensor_kit_description autoware_sample_vehicle_description autoware_core_localization autoware_ekf_localizer autoware_gyro_odometer autoware_localization_util autoware_ndt_scan_matcher autoware_pose_initializer autoware_stop_filter autoware_twist2accel autoware_core_map autoware_lanelet2_map_visualizer autoware_map_height_fitter autoware_map_loader autoware_map_projection_loader autoware_core_perception autoware_euclidean_cluster_object_detector autoware_ground_filter autoware_perception_objects_converter autoware_core_planning autoware_mission_planner autoware_objects_of_interest_marker_interface autoware_path_generator autoware_planning_factor_interface autoware_planning_topic_converter autoware_route_handler autoware_velocity_smoother autoware_behavior_velocity_planner autoware_behavior_velocity_planner_common autoware_behavior_velocity_stop_line_module autoware_motion_velocity_obstacle_stop_module autoware_motion_velocity_planner autoware_motion_velocity_planner_common autoware_core_sensing autoware_crop_box_filter autoware_downsample_filters autoware_gnss_poser autoware_vehicle_velocity_converter autoware_planning_test_manager autoware_pyplot autoware_test_node autoware_test_utils autoware_testing autoware_core_vehicle

ROS Distro
humble

Package Summary

Version 1.8.0
License Apache License 2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/autowarefoundation/autoware_core.git
VCS Type git
VCS Version main
Last Updated 2026-05-02
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

The ROS 2 autoware_crop_box_filter package

Maintainers

  • amc-nu
  • Yukihiro Saito
  • Kyoichi Sugahara
  • Dai Nguyen
  • Kenzo Lobos-Tsunekawa
  • Yihsiang Fang
  • Yoshi Ri
  • David Wong
  • Melike Tanrikulu
  • Max Schmeller
  • Xingang Liu

Authors

No additional authors.

autoware_crop_box_filter

Overview

The autoware_crop_box_filter is a package that crops the input pointcloud to a specified bounding box. This is useful for reducing the computational load and improving the performance of the system.

Design

The autoware_crop_box_filter is implemented as a autoware core node that subscribes to the input pointcloud, and publishes the filtered pointcloud. The bounding box is specified using the min_point and max_point parameters.

Inputs / Outputs

Input

Name Type Description
~/input/points sensor_msgs::msg::PointCloud2 reference points

Output

Name Type Description
~/output/points sensor_msgs::msg::PointCloud2 filtered points
~/crop_box_polygon geometry_msgs::msg::PolygonStamped bounding box polygon

Parameters

Launch file Parameters

Name Type Default Value Description
input_frame string ” “ the frame id in which filtering is performed
output_frame string ” “ output frame id of the filtered points
input_pointcloud_frame string ” “ frame id of input pointcloud
max_queue_size int 5 max buffer size of input/output topics
crop_box_filter_param_file string ” “ path to the parameter file for the node

Node Parameters

Name Type Default Value Description
min_x double -5.0 minimum x value of the crop box
min_y double -5.0 minimum y value of the crop box
min_z double -5.0 minimum z value of the crop box
max_x double 5.0 maximum x value of the crop box
max_y double 5.0 maximum y value of the crop box
max_z double 5.0 maximum z value of the crop box
negative bool true if true, points inside the box are removed, otherwise points outside the box are removed

Usage

1.publish static tf from input pointcloud to target frame that is used for filtering

ros2 run tf2_ros static_transform_publisher 2.0 3.2 1.3 0 0 0 1  velodyne_top_base_link  base_link

2.launch node

ros2 launch autoware_crop_box_filter crop_box_filter_node.launch.xml

3. launch rviz2 and AWSIM

CHANGELOG

Changelog for package autoware_crop_box_filter

1.1.0 (2025-05-01)

  • feat(autoware_utils): remove managed transform buffer (#360)

    • feat(autoware_utils): remove managed transform buffer

    * fix(autoware_ground_filter): redundant inclusion ---------Co-authored-by: Yutaka Kondo <<yutaka.kondo@youtalk.jp>>

  • Contributors: Amadeusz Szymko

1.8.0 (2026-05-01)

  • Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base

  • refactor(autoware_core): add USE_SCOPED_HEADER_INSTALL_DIR to sensing packages (#985) Co-authored-by: github-actions <<github-actions@github.com>>

  • fix(autoware_crop_box_filter): add optional check before accessing crop_box_filter_ (#1016)

  • refactor(crop_box_filter): simplify filter logic by using identity matrix for no-transform case (#959) refactor(autoware_crop_box_filter): simplify filter logic by using identity matrix for no-transform case Use identity matrices as default for preprocess/postprocess transforms, eliminating conditional branches in the filter loop. Pre-compute output_frame_id in the constructor to simplify frame_id resolution. Co-authored-by: Takahisa.Ishikawa <<takahisa.ishikawa@tier4.jp>>

  • fix(autoware_crop_box_filter): fix bugprone-implicit-widening-of-multiplication-result warnings (#911)

  • fix(autoware_crop_box_filter): fix bugprone-narrowing-conversions warnings (#936)

  • refactor(autoware_crop_box_filter): extract CropBoxFilter logic class (#941)

    • refactor(autoware_crop_box_filter): rename CropBoxFilter node class to CropBoxFilterNode
    • refactor(autoware_crop_box_filter): extract CropBoxFilter logic class
    • refactor(autoware_crop_box_filter): remove output_frame from CropBoxFilterConfig

    * refactor(autoware_crop_box_filter): remove unnecessary member variables Convert tf_input_orig_frame_ and max_queue_size_ to local variables as they are only used in the constructor.

    • test(autoware_crop_box_filter): add unit tests for preprocess and postprocess transform
    • refactor(crop_box_filter): rename variable for clarity in transform handling

    * refactor(crop_box_filter): simplify transform handling by removing has_value checks ---------Co-authored-by: Takahisa.Ishikawa <<takahisa.ishikawa@tier4.jp>> Co-authored-by: Junya Sasaki <<j2sasaki1990@gmail.com>>

  • fix(crop_box_filter): maybe-uninitialized build error (#909) fix(crop_box_filter): initialize CropBoxParam with default values in test Co-authored-by: Takahisa.Ishikawa <<takahisa.ishikawa@tier4.jp>>

  • refactor(crop_box_filter): extract core and add unit tests (#886)

    • refactor(autoware_crop_box_filter): extract CropBoxParam and generate_crop_box_polygon to core library
    • test(autoware_crop_box_filter): add unit test for generate_crop_box_polygon
    • refactor(autoware_crop_box_filter): extract filter_pointcloud logic to core library
    • refactor(autoware_crop_box_filter): remove unnecessary includes from crop_box_filter_node.hpp

    * refactor(autoware_crop_box_filter): move filter_pointcloud tests to unit test file Move filter_pointcloud() tests from test_crop_box_filter_node.cpp to test_crop_box_filter.cpp since they test core logic, not node behavior.

    • refactor(autoware_crop_box_filter): apply AAA pattern and type aliases to filter_pointcloud tests

    * refactor(autoware_crop_box_filter): rename negative to keep_outside_box ---------Co-authored-by: Takahisa.Ishikawa

File truncated at 100 lines see the full file

Launch files

  • launch/crop_box_filter_node.launch.xml
      • input_topic_name [default: /sensing/lidar/top/pointcloud_raw_ex]
      • output_topic_name [default: /sensing/lidar/top/self_cropped/pointcloud_ex]
      • input_frame [default: base_link]
      • output_frame [default: base_link]
      • input_pointcloud_frame [default: velodyne_top_base_link]
      • crop_box_filter_param_file [default: $(find-pkg-share autoware_crop_box_filter)/config/crop_box_filter_node.param.yaml]

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged autoware_crop_box_filter at Robotics Stack Exchange

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

autoware_crop_box_filter package from autoware_core repo

autoware_adapi_adaptors autoware_adapi_specs autoware_core_api autoware_default_adapi autoware_core autoware_agnocast_wrapper autoware_component_interface_specs autoware_geography_utils autoware_global_parameter_loader autoware_interpolation autoware_kalman_filter autoware_lanelet2_utils autoware_marker_utils autoware_motion_utils autoware_node autoware_object_recognition_utils autoware_osqp_interface autoware_point_types autoware_qos_utils autoware_qp_interface autoware_signal_processing autoware_trajectory autoware_vehicle_info_utils autoware_core_control autoware_simple_pure_pursuit autoware_awsim_sensor_kit_description autoware_sample_sensor_kit_description autoware_sample_vehicle_description autoware_core_localization autoware_ekf_localizer autoware_gyro_odometer autoware_localization_util autoware_ndt_scan_matcher autoware_pose_initializer autoware_stop_filter autoware_twist2accel autoware_core_map autoware_lanelet2_map_visualizer autoware_map_height_fitter autoware_map_loader autoware_map_projection_loader autoware_core_perception autoware_euclidean_cluster_object_detector autoware_ground_filter autoware_perception_objects_converter autoware_core_planning autoware_mission_planner autoware_objects_of_interest_marker_interface autoware_path_generator autoware_planning_factor_interface autoware_planning_topic_converter autoware_route_handler autoware_velocity_smoother autoware_behavior_velocity_planner autoware_behavior_velocity_planner_common autoware_behavior_velocity_stop_line_module autoware_motion_velocity_obstacle_stop_module autoware_motion_velocity_planner autoware_motion_velocity_planner_common autoware_core_sensing autoware_crop_box_filter autoware_downsample_filters autoware_gnss_poser autoware_vehicle_velocity_converter autoware_planning_test_manager autoware_pyplot autoware_test_node autoware_test_utils autoware_testing autoware_core_vehicle

ROS Distro
humble

Package Summary

Version 1.8.0
License Apache License 2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/autowarefoundation/autoware_core.git
VCS Type git
VCS Version main
Last Updated 2026-05-02
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

The ROS 2 autoware_crop_box_filter package

Maintainers

  • amc-nu
  • Yukihiro Saito
  • Kyoichi Sugahara
  • Dai Nguyen
  • Kenzo Lobos-Tsunekawa
  • Yihsiang Fang
  • Yoshi Ri
  • David Wong
  • Melike Tanrikulu
  • Max Schmeller
  • Xingang Liu

Authors

No additional authors.

autoware_crop_box_filter

Overview

The autoware_crop_box_filter is a package that crops the input pointcloud to a specified bounding box. This is useful for reducing the computational load and improving the performance of the system.

Design

The autoware_crop_box_filter is implemented as a autoware core node that subscribes to the input pointcloud, and publishes the filtered pointcloud. The bounding box is specified using the min_point and max_point parameters.

Inputs / Outputs

Input

Name Type Description
~/input/points sensor_msgs::msg::PointCloud2 reference points

Output

Name Type Description
~/output/points sensor_msgs::msg::PointCloud2 filtered points
~/crop_box_polygon geometry_msgs::msg::PolygonStamped bounding box polygon

Parameters

Launch file Parameters

Name Type Default Value Description
input_frame string ” “ the frame id in which filtering is performed
output_frame string ” “ output frame id of the filtered points
input_pointcloud_frame string ” “ frame id of input pointcloud
max_queue_size int 5 max buffer size of input/output topics
crop_box_filter_param_file string ” “ path to the parameter file for the node

Node Parameters

Name Type Default Value Description
min_x double -5.0 minimum x value of the crop box
min_y double -5.0 minimum y value of the crop box
min_z double -5.0 minimum z value of the crop box
max_x double 5.0 maximum x value of the crop box
max_y double 5.0 maximum y value of the crop box
max_z double 5.0 maximum z value of the crop box
negative bool true if true, points inside the box are removed, otherwise points outside the box are removed

Usage

1.publish static tf from input pointcloud to target frame that is used for filtering

ros2 run tf2_ros static_transform_publisher 2.0 3.2 1.3 0 0 0 1  velodyne_top_base_link  base_link

2.launch node

ros2 launch autoware_crop_box_filter crop_box_filter_node.launch.xml

3. launch rviz2 and AWSIM

CHANGELOG

Changelog for package autoware_crop_box_filter

1.1.0 (2025-05-01)

  • feat(autoware_utils): remove managed transform buffer (#360)

    • feat(autoware_utils): remove managed transform buffer

    * fix(autoware_ground_filter): redundant inclusion ---------Co-authored-by: Yutaka Kondo <<yutaka.kondo@youtalk.jp>>

  • Contributors: Amadeusz Szymko

1.8.0 (2026-05-01)

  • Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base

  • refactor(autoware_core): add USE_SCOPED_HEADER_INSTALL_DIR to sensing packages (#985) Co-authored-by: github-actions <<github-actions@github.com>>

  • fix(autoware_crop_box_filter): add optional check before accessing crop_box_filter_ (#1016)

  • refactor(crop_box_filter): simplify filter logic by using identity matrix for no-transform case (#959) refactor(autoware_crop_box_filter): simplify filter logic by using identity matrix for no-transform case Use identity matrices as default for preprocess/postprocess transforms, eliminating conditional branches in the filter loop. Pre-compute output_frame_id in the constructor to simplify frame_id resolution. Co-authored-by: Takahisa.Ishikawa <<takahisa.ishikawa@tier4.jp>>

  • fix(autoware_crop_box_filter): fix bugprone-implicit-widening-of-multiplication-result warnings (#911)

  • fix(autoware_crop_box_filter): fix bugprone-narrowing-conversions warnings (#936)

  • refactor(autoware_crop_box_filter): extract CropBoxFilter logic class (#941)

    • refactor(autoware_crop_box_filter): rename CropBoxFilter node class to CropBoxFilterNode
    • refactor(autoware_crop_box_filter): extract CropBoxFilter logic class
    • refactor(autoware_crop_box_filter): remove output_frame from CropBoxFilterConfig

    * refactor(autoware_crop_box_filter): remove unnecessary member variables Convert tf_input_orig_frame_ and max_queue_size_ to local variables as they are only used in the constructor.

    • test(autoware_crop_box_filter): add unit tests for preprocess and postprocess transform
    • refactor(crop_box_filter): rename variable for clarity in transform handling

    * refactor(crop_box_filter): simplify transform handling by removing has_value checks ---------Co-authored-by: Takahisa.Ishikawa <<takahisa.ishikawa@tier4.jp>> Co-authored-by: Junya Sasaki <<j2sasaki1990@gmail.com>>

  • fix(crop_box_filter): maybe-uninitialized build error (#909) fix(crop_box_filter): initialize CropBoxParam with default values in test Co-authored-by: Takahisa.Ishikawa <<takahisa.ishikawa@tier4.jp>>

  • refactor(crop_box_filter): extract core and add unit tests (#886)

    • refactor(autoware_crop_box_filter): extract CropBoxParam and generate_crop_box_polygon to core library
    • test(autoware_crop_box_filter): add unit test for generate_crop_box_polygon
    • refactor(autoware_crop_box_filter): extract filter_pointcloud logic to core library
    • refactor(autoware_crop_box_filter): remove unnecessary includes from crop_box_filter_node.hpp

    * refactor(autoware_crop_box_filter): move filter_pointcloud tests to unit test file Move filter_pointcloud() tests from test_crop_box_filter_node.cpp to test_crop_box_filter.cpp since they test core logic, not node behavior.

    • refactor(autoware_crop_box_filter): apply AAA pattern and type aliases to filter_pointcloud tests

    * refactor(autoware_crop_box_filter): rename negative to keep_outside_box ---------Co-authored-by: Takahisa.Ishikawa

File truncated at 100 lines see the full file

Launch files

  • launch/crop_box_filter_node.launch.xml
      • input_topic_name [default: /sensing/lidar/top/pointcloud_raw_ex]
      • output_topic_name [default: /sensing/lidar/top/self_cropped/pointcloud_ex]
      • input_frame [default: base_link]
      • output_frame [default: base_link]
      • input_pointcloud_frame [default: velodyne_top_base_link]
      • crop_box_filter_param_file [default: $(find-pkg-share autoware_crop_box_filter)/config/crop_box_filter_node.param.yaml]

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged autoware_crop_box_filter at Robotics Stack Exchange

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

autoware_crop_box_filter package from autoware_core repo

autoware_adapi_adaptors autoware_adapi_specs autoware_core_api autoware_default_adapi autoware_core autoware_agnocast_wrapper autoware_component_interface_specs autoware_geography_utils autoware_global_parameter_loader autoware_interpolation autoware_kalman_filter autoware_lanelet2_utils autoware_marker_utils autoware_motion_utils autoware_node autoware_object_recognition_utils autoware_osqp_interface autoware_point_types autoware_qos_utils autoware_qp_interface autoware_signal_processing autoware_trajectory autoware_vehicle_info_utils autoware_core_control autoware_simple_pure_pursuit autoware_awsim_sensor_kit_description autoware_sample_sensor_kit_description autoware_sample_vehicle_description autoware_core_localization autoware_ekf_localizer autoware_gyro_odometer autoware_localization_util autoware_ndt_scan_matcher autoware_pose_initializer autoware_stop_filter autoware_twist2accel autoware_core_map autoware_lanelet2_map_visualizer autoware_map_height_fitter autoware_map_loader autoware_map_projection_loader autoware_core_perception autoware_euclidean_cluster_object_detector autoware_ground_filter autoware_perception_objects_converter autoware_core_planning autoware_mission_planner autoware_objects_of_interest_marker_interface autoware_path_generator autoware_planning_factor_interface autoware_planning_topic_converter autoware_route_handler autoware_velocity_smoother autoware_behavior_velocity_planner autoware_behavior_velocity_planner_common autoware_behavior_velocity_stop_line_module autoware_motion_velocity_obstacle_stop_module autoware_motion_velocity_planner autoware_motion_velocity_planner_common autoware_core_sensing autoware_crop_box_filter autoware_downsample_filters autoware_gnss_poser autoware_vehicle_velocity_converter autoware_planning_test_manager autoware_pyplot autoware_test_node autoware_test_utils autoware_testing autoware_core_vehicle

ROS Distro
humble

Package Summary

Version 1.8.0
License Apache License 2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/autowarefoundation/autoware_core.git
VCS Type git
VCS Version main
Last Updated 2026-05-02
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

The ROS 2 autoware_crop_box_filter package

Maintainers

  • amc-nu
  • Yukihiro Saito
  • Kyoichi Sugahara
  • Dai Nguyen
  • Kenzo Lobos-Tsunekawa
  • Yihsiang Fang
  • Yoshi Ri
  • David Wong
  • Melike Tanrikulu
  • Max Schmeller
  • Xingang Liu

Authors

No additional authors.

autoware_crop_box_filter

Overview

The autoware_crop_box_filter is a package that crops the input pointcloud to a specified bounding box. This is useful for reducing the computational load and improving the performance of the system.

Design

The autoware_crop_box_filter is implemented as a autoware core node that subscribes to the input pointcloud, and publishes the filtered pointcloud. The bounding box is specified using the min_point and max_point parameters.

Inputs / Outputs

Input

Name Type Description
~/input/points sensor_msgs::msg::PointCloud2 reference points

Output

Name Type Description
~/output/points sensor_msgs::msg::PointCloud2 filtered points
~/crop_box_polygon geometry_msgs::msg::PolygonStamped bounding box polygon

Parameters

Launch file Parameters

Name Type Default Value Description
input_frame string ” “ the frame id in which filtering is performed
output_frame string ” “ output frame id of the filtered points
input_pointcloud_frame string ” “ frame id of input pointcloud
max_queue_size int 5 max buffer size of input/output topics
crop_box_filter_param_file string ” “ path to the parameter file for the node

Node Parameters

Name Type Default Value Description
min_x double -5.0 minimum x value of the crop box
min_y double -5.0 minimum y value of the crop box
min_z double -5.0 minimum z value of the crop box
max_x double 5.0 maximum x value of the crop box
max_y double 5.0 maximum y value of the crop box
max_z double 5.0 maximum z value of the crop box
negative bool true if true, points inside the box are removed, otherwise points outside the box are removed

Usage

1.publish static tf from input pointcloud to target frame that is used for filtering

ros2 run tf2_ros static_transform_publisher 2.0 3.2 1.3 0 0 0 1  velodyne_top_base_link  base_link

2.launch node

ros2 launch autoware_crop_box_filter crop_box_filter_node.launch.xml

3. launch rviz2 and AWSIM

CHANGELOG

Changelog for package autoware_crop_box_filter

1.1.0 (2025-05-01)

  • feat(autoware_utils): remove managed transform buffer (#360)

    • feat(autoware_utils): remove managed transform buffer

    * fix(autoware_ground_filter): redundant inclusion ---------Co-authored-by: Yutaka Kondo <<yutaka.kondo@youtalk.jp>>

  • Contributors: Amadeusz Szymko

1.8.0 (2026-05-01)

  • Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base

  • refactor(autoware_core): add USE_SCOPED_HEADER_INSTALL_DIR to sensing packages (#985) Co-authored-by: github-actions <<github-actions@github.com>>

  • fix(autoware_crop_box_filter): add optional check before accessing crop_box_filter_ (#1016)

  • refactor(crop_box_filter): simplify filter logic by using identity matrix for no-transform case (#959) refactor(autoware_crop_box_filter): simplify filter logic by using identity matrix for no-transform case Use identity matrices as default for preprocess/postprocess transforms, eliminating conditional branches in the filter loop. Pre-compute output_frame_id in the constructor to simplify frame_id resolution. Co-authored-by: Takahisa.Ishikawa <<takahisa.ishikawa@tier4.jp>>

  • fix(autoware_crop_box_filter): fix bugprone-implicit-widening-of-multiplication-result warnings (#911)

  • fix(autoware_crop_box_filter): fix bugprone-narrowing-conversions warnings (#936)

  • refactor(autoware_crop_box_filter): extract CropBoxFilter logic class (#941)

    • refactor(autoware_crop_box_filter): rename CropBoxFilter node class to CropBoxFilterNode
    • refactor(autoware_crop_box_filter): extract CropBoxFilter logic class
    • refactor(autoware_crop_box_filter): remove output_frame from CropBoxFilterConfig

    * refactor(autoware_crop_box_filter): remove unnecessary member variables Convert tf_input_orig_frame_ and max_queue_size_ to local variables as they are only used in the constructor.

    • test(autoware_crop_box_filter): add unit tests for preprocess and postprocess transform
    • refactor(crop_box_filter): rename variable for clarity in transform handling

    * refactor(crop_box_filter): simplify transform handling by removing has_value checks ---------Co-authored-by: Takahisa.Ishikawa <<takahisa.ishikawa@tier4.jp>> Co-authored-by: Junya Sasaki <<j2sasaki1990@gmail.com>>

  • fix(crop_box_filter): maybe-uninitialized build error (#909) fix(crop_box_filter): initialize CropBoxParam with default values in test Co-authored-by: Takahisa.Ishikawa <<takahisa.ishikawa@tier4.jp>>

  • refactor(crop_box_filter): extract core and add unit tests (#886)

    • refactor(autoware_crop_box_filter): extract CropBoxParam and generate_crop_box_polygon to core library
    • test(autoware_crop_box_filter): add unit test for generate_crop_box_polygon
    • refactor(autoware_crop_box_filter): extract filter_pointcloud logic to core library
    • refactor(autoware_crop_box_filter): remove unnecessary includes from crop_box_filter_node.hpp

    * refactor(autoware_crop_box_filter): move filter_pointcloud tests to unit test file Move filter_pointcloud() tests from test_crop_box_filter_node.cpp to test_crop_box_filter.cpp since they test core logic, not node behavior.

    • refactor(autoware_crop_box_filter): apply AAA pattern and type aliases to filter_pointcloud tests

    * refactor(autoware_crop_box_filter): rename negative to keep_outside_box ---------Co-authored-by: Takahisa.Ishikawa

File truncated at 100 lines see the full file

Launch files

  • launch/crop_box_filter_node.launch.xml
      • input_topic_name [default: /sensing/lidar/top/pointcloud_raw_ex]
      • output_topic_name [default: /sensing/lidar/top/self_cropped/pointcloud_ex]
      • input_frame [default: base_link]
      • output_frame [default: base_link]
      • input_pointcloud_frame [default: velodyne_top_base_link]
      • crop_box_filter_param_file [default: $(find-pkg-share autoware_crop_box_filter)/config/crop_box_filter_node.param.yaml]

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged autoware_crop_box_filter at Robotics Stack Exchange

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

autoware_crop_box_filter package from autoware_core repo

autoware_adapi_adaptors autoware_adapi_specs autoware_core_api autoware_default_adapi autoware_core autoware_agnocast_wrapper autoware_component_interface_specs autoware_geography_utils autoware_global_parameter_loader autoware_interpolation autoware_kalman_filter autoware_lanelet2_utils autoware_marker_utils autoware_motion_utils autoware_node autoware_object_recognition_utils autoware_osqp_interface autoware_point_types autoware_qos_utils autoware_qp_interface autoware_signal_processing autoware_trajectory autoware_vehicle_info_utils autoware_core_control autoware_simple_pure_pursuit autoware_awsim_sensor_kit_description autoware_sample_sensor_kit_description autoware_sample_vehicle_description autoware_core_localization autoware_ekf_localizer autoware_gyro_odometer autoware_localization_util autoware_ndt_scan_matcher autoware_pose_initializer autoware_stop_filter autoware_twist2accel autoware_core_map autoware_lanelet2_map_visualizer autoware_map_height_fitter autoware_map_loader autoware_map_projection_loader autoware_core_perception autoware_euclidean_cluster_object_detector autoware_ground_filter autoware_perception_objects_converter autoware_core_planning autoware_mission_planner autoware_objects_of_interest_marker_interface autoware_path_generator autoware_planning_factor_interface autoware_planning_topic_converter autoware_route_handler autoware_velocity_smoother autoware_behavior_velocity_planner autoware_behavior_velocity_planner_common autoware_behavior_velocity_stop_line_module autoware_motion_velocity_obstacle_stop_module autoware_motion_velocity_planner autoware_motion_velocity_planner_common autoware_core_sensing autoware_crop_box_filter autoware_downsample_filters autoware_gnss_poser autoware_vehicle_velocity_converter autoware_planning_test_manager autoware_pyplot autoware_test_node autoware_test_utils autoware_testing autoware_core_vehicle

ROS Distro
humble

Package Summary

Version 1.8.0
License Apache License 2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/autowarefoundation/autoware_core.git
VCS Type git
VCS Version main
Last Updated 2026-05-02
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

The ROS 2 autoware_crop_box_filter package

Maintainers

  • amc-nu
  • Yukihiro Saito
  • Kyoichi Sugahara
  • Dai Nguyen
  • Kenzo Lobos-Tsunekawa
  • Yihsiang Fang
  • Yoshi Ri
  • David Wong
  • Melike Tanrikulu
  • Max Schmeller
  • Xingang Liu

Authors

No additional authors.

autoware_crop_box_filter

Overview

The autoware_crop_box_filter is a package that crops the input pointcloud to a specified bounding box. This is useful for reducing the computational load and improving the performance of the system.

Design

The autoware_crop_box_filter is implemented as a autoware core node that subscribes to the input pointcloud, and publishes the filtered pointcloud. The bounding box is specified using the min_point and max_point parameters.

Inputs / Outputs

Input

Name Type Description
~/input/points sensor_msgs::msg::PointCloud2 reference points

Output

Name Type Description
~/output/points sensor_msgs::msg::PointCloud2 filtered points
~/crop_box_polygon geometry_msgs::msg::PolygonStamped bounding box polygon

Parameters

Launch file Parameters

Name Type Default Value Description
input_frame string ” “ the frame id in which filtering is performed
output_frame string ” “ output frame id of the filtered points
input_pointcloud_frame string ” “ frame id of input pointcloud
max_queue_size int 5 max buffer size of input/output topics
crop_box_filter_param_file string ” “ path to the parameter file for the node

Node Parameters

Name Type Default Value Description
min_x double -5.0 minimum x value of the crop box
min_y double -5.0 minimum y value of the crop box
min_z double -5.0 minimum z value of the crop box
max_x double 5.0 maximum x value of the crop box
max_y double 5.0 maximum y value of the crop box
max_z double 5.0 maximum z value of the crop box
negative bool true if true, points inside the box are removed, otherwise points outside the box are removed

Usage

1.publish static tf from input pointcloud to target frame that is used for filtering

ros2 run tf2_ros static_transform_publisher 2.0 3.2 1.3 0 0 0 1  velodyne_top_base_link  base_link

2.launch node

ros2 launch autoware_crop_box_filter crop_box_filter_node.launch.xml

3. launch rviz2 and AWSIM

CHANGELOG

Changelog for package autoware_crop_box_filter

1.1.0 (2025-05-01)

  • feat(autoware_utils): remove managed transform buffer (#360)

    • feat(autoware_utils): remove managed transform buffer

    * fix(autoware_ground_filter): redundant inclusion ---------Co-authored-by: Yutaka Kondo <<yutaka.kondo@youtalk.jp>>

  • Contributors: Amadeusz Szymko

1.8.0 (2026-05-01)

  • Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base

  • refactor(autoware_core): add USE_SCOPED_HEADER_INSTALL_DIR to sensing packages (#985) Co-authored-by: github-actions <<github-actions@github.com>>

  • fix(autoware_crop_box_filter): add optional check before accessing crop_box_filter_ (#1016)

  • refactor(crop_box_filter): simplify filter logic by using identity matrix for no-transform case (#959) refactor(autoware_crop_box_filter): simplify filter logic by using identity matrix for no-transform case Use identity matrices as default for preprocess/postprocess transforms, eliminating conditional branches in the filter loop. Pre-compute output_frame_id in the constructor to simplify frame_id resolution. Co-authored-by: Takahisa.Ishikawa <<takahisa.ishikawa@tier4.jp>>

  • fix(autoware_crop_box_filter): fix bugprone-implicit-widening-of-multiplication-result warnings (#911)

  • fix(autoware_crop_box_filter): fix bugprone-narrowing-conversions warnings (#936)

  • refactor(autoware_crop_box_filter): extract CropBoxFilter logic class (#941)

    • refactor(autoware_crop_box_filter): rename CropBoxFilter node class to CropBoxFilterNode
    • refactor(autoware_crop_box_filter): extract CropBoxFilter logic class
    • refactor(autoware_crop_box_filter): remove output_frame from CropBoxFilterConfig

    * refactor(autoware_crop_box_filter): remove unnecessary member variables Convert tf_input_orig_frame_ and max_queue_size_ to local variables as they are only used in the constructor.

    • test(autoware_crop_box_filter): add unit tests for preprocess and postprocess transform
    • refactor(crop_box_filter): rename variable for clarity in transform handling

    * refactor(crop_box_filter): simplify transform handling by removing has_value checks ---------Co-authored-by: Takahisa.Ishikawa <<takahisa.ishikawa@tier4.jp>> Co-authored-by: Junya Sasaki <<j2sasaki1990@gmail.com>>

  • fix(crop_box_filter): maybe-uninitialized build error (#909) fix(crop_box_filter): initialize CropBoxParam with default values in test Co-authored-by: Takahisa.Ishikawa <<takahisa.ishikawa@tier4.jp>>

  • refactor(crop_box_filter): extract core and add unit tests (#886)

    • refactor(autoware_crop_box_filter): extract CropBoxParam and generate_crop_box_polygon to core library
    • test(autoware_crop_box_filter): add unit test for generate_crop_box_polygon
    • refactor(autoware_crop_box_filter): extract filter_pointcloud logic to core library
    • refactor(autoware_crop_box_filter): remove unnecessary includes from crop_box_filter_node.hpp

    * refactor(autoware_crop_box_filter): move filter_pointcloud tests to unit test file Move filter_pointcloud() tests from test_crop_box_filter_node.cpp to test_crop_box_filter.cpp since they test core logic, not node behavior.

    • refactor(autoware_crop_box_filter): apply AAA pattern and type aliases to filter_pointcloud tests

    * refactor(autoware_crop_box_filter): rename negative to keep_outside_box ---------Co-authored-by: Takahisa.Ishikawa

File truncated at 100 lines see the full file

Launch files

  • launch/crop_box_filter_node.launch.xml
      • input_topic_name [default: /sensing/lidar/top/pointcloud_raw_ex]
      • output_topic_name [default: /sensing/lidar/top/self_cropped/pointcloud_ex]
      • input_frame [default: base_link]
      • output_frame [default: base_link]
      • input_pointcloud_frame [default: velodyne_top_base_link]
      • crop_box_filter_param_file [default: $(find-pkg-share autoware_crop_box_filter)/config/crop_box_filter_node.param.yaml]

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged autoware_crop_box_filter at Robotics Stack Exchange