find_moving_objects package from find_moving_objects repofind_moving_objects |
|
Package Summary
Tags | No category tags. |
Version | 0.1.0 |
License | BSD |
Build type | CATKIN |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/andreasgustavsson/find_moving_objects.git |
VCS Type | git |
VCS Version | kinetic-devel |
Last Updated | 2019-06-04 |
Dev Status | MAINTAINED |
CI status | Continuous Integration |
Released | UNRELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
find_moving_objects
A ROS library that can be used to find moving objects. It derives their positions and velocities, based on a 2D LaserScan or a 3D PointCloud2 data stream.
The file src/find_moving_objects/bank.h declares a class called BankArgument. An object of this class is taken as input by the main class, Bank, also declared in this file. BankArgument mainly consists of variables that control the behavior of the Bank object. Please refer to src/find_moving_objects/bank.h or a doxygen-generated documentation for each variable. Note that Bank declares the function virtual double calculateConfidence(…), but it is up to the user of Bank to define it!
The package defines two executable ROS nodes which use the Bank; one for interpreting a LaserScan data stream and one for interpreting a PointCloud2 data stream. There are also two corresponding nodelets.
The nodelet for interpreting PointCloud2 data streams and the node interpreting LaserScan data streams are used in the provided launch file. This launch file can be used to run the interpreters on live or recorded (an example bag file is provided) sensor data. The sensors supported by the launch file are the following.
- Intel Realsense D435 depth camera (for PointCloud2 data at about 30Hz)
- Slamtec rplidar A2 (for LaserScan data at about 12Hz)
NOTE: If running the *_bag.launch file, then bags/*.bag.tar.gz must first be extracted to bags/*.bag. Also note that rosbag and rviz are used by the launch file.
The default values for the BankArgument variables (which are set by the default ROS parameter values as found in the launch/includes/*.launch.xml files) have been tested and work well for an office setting and a robot moving at about 0.5 m/s, equipped with the above-mentioned sensors.
NOTE: If running the launch file for real sensors, then you need the realsense2_camera and rplidar_ros packages, and the librealsense camera driver installed. These are not dependencies of find_moving_objects because this package can be used with several different sensors, not only these. The launch file is merely given as an example, and can be used by those who have the named packages installed. Also note that rviz is used by the launch file.
This library is developed for, and tested on, ROS Kinetic.
Wiki Tutorials
Package Dependencies
Deps | Name |
---|---|
roscpp | |
tf2 | |
tf2_ros | |
tf2_geometry_msgs | |
message_generation | |
visualization_msgs | |
sensor_msgs | |
geometry_msgs | |
nodelet | |
catkin | |
message_runtime |
System Dependencies
Name |
---|
doxygen |
Dependant Packages
Launch files
- launch/intel_realsense_d435_and_slamtec_rplidar_a2_w_enhancer.launch
-
- use_lidar [default: true] — Set to false if lidar should not be used
- use_camera [default: true] — Set to false if camera should not be used
- use_bag [default: false] — Set to true if provided bag file should be played instead of using real sensors
- use_rviz [default: true] — Set to false if rviz should not be launched
- downscale_pointcloud [default: false] — Set to true if voxel grid filter should be applied to camera output
- laserscan_interpreter_extra_args [default: ] — Additional args for the laserscan interpreter
- pointcloud2_interpreter_extra_args [default: ] — Additional args for the pointcloud2 interpreter
- frame_broadcaster_extra_args [default: ] — Additional args for the frame broadcaster
- rosbag_extra_args [default: ] — Additional args for rosbag play
- rviz_required [default: false] — Set this to true if rviz is a required node
- rosbag_required [default: false] — Set this to true if rosbag is a required node
- bag_path [default: $(find find_moving_objects)/bags] — Base path to log/bag files
- bag [default: object_is_moving_in_a_convex_arc.bag] — bag file to play
- launch/rviz_only_for_intel_realsense_d435_and_slamtec_rplidar_a2.launch
- launch/includes/pointcloud2array_interpreter_nodelet.launch.xml
-
- manager [default: manager]
- create_manager [default: false]
- subscribe_topic [default: pointcloudArray]
- subscribe_buffer_size [default: 1]
- sensor_frame_has_z_axis_forward [default: true]
- ema_alpha [default: 1.0]
- map_frame [default: map]
- fixed_frame [default: odom]
- base_frame [default: base_link]
- nr_scans_in_bank [default: 0]
- optimize_nr_scans_in_bank [default: 0.5]
- max_confidence_for_dt_match [default: 0.5]
- delta_width_confidence_decrease_factor [default: 0.5]
- bank_view_angle [default: 3.141592654]
- nr_points_per_scan_in_bank [default: 360]
- publish_objects [default: true]
- publish_ema [default: true]
- publish_objects_closest_points_markers [default: true]
- publish_objects_velocity_arrows [default: true]
- publish_objects_delta_position_lines [default: true]
- publish_objects_width_lines [default: true]
- publish_buffer_size [default: 1]
- topic_objects [default: moving_objects]
- topic_ema [default: ema]
- topic_objects_closest_points_markers [default: objects_closest_point_markers]
- topic_objects_velocity_arrows [default: objects_velocity_arrows]
- topic_objects_delta_position_lines [default: objects_delta_position_lines]
- topic_objects_width_lines [default: objects_width_lines]
- ns_velocity_arrows [default: velocity_arrows]
- ns_delta_position_lines [default: delta_position_lines]
- ns_width_lines [default: width_lines]
- velocity_arrows_use_full_gray_scale [default: false]
- velocity_arrows_use_sensor_frame [default: false]
- velocity_arrows_use_base_frame [default: false]
- velocity_arrows_use_fixed_frame [default: false]
- message_x_coordinate_field_name [default: x]
- message_y_coordinate_field_name [default: y]
- message_z_coordinate_field_name [default: z]
- voxel_leaf_size [default: 0.01]
- threshold_z_min [default: 0.0]
- threshold_z_max [default: 1.0]
- object_threshold_edge_max_delta_range [default: 0.15]
- object_threshold_min_nr_points [default: 3]
- object_threshold_max_distance [default: 6.5]
- object_threshold_min_speed [default: 0.1]
- object_threshold_max_delta_width_in_points [default: 15]
- object_threshold_bank_tracking_max_delta_distance [default: 0.4]
- object_threshold_min_confidence [default: 0.7]
- base_confidence [default: 0.5]
- launch/includes/pointcloud2_interpreter_node.launch.xml
-
- subscribe_topic [default: pointcloud]
- subscribe_buffer_size [default: 1]
- sensor_frame_has_z_axis_forward [default: true]
- ema_alpha [default: 1.0]
- map_frame [default: map]
- fixed_frame [default: odom]
- base_frame [default: base_link]
- nr_scans_in_bank [default: 0]
- optimize_nr_scans_in_bank [default: 0.5]
- max_confidence_for_dt_match [default: 0.5]
- delta_width_confidence_decrease_factor [default: 0.5]
- bank_view_angle [default: 3.141592654]
- nr_points_per_scan_in_bank [default: 360]
- publish_objects [default: true]
- publish_ema [default: true]
- publish_objects_closest_points_markers [default: true]
- publish_objects_velocity_arrows [default: true]
- publish_objects_delta_position_lines [default: true]
- publish_objects_width_lines [default: true]
- publish_buffer_size [default: 1]
- topic_objects [default: moving_objects]
- topic_ema [default: ema]
- topic_objects_closest_points_markers [default: objects_closest_point_markers]
- topic_objects_velocity_arrows [default: objects_velocity_arrows]
- topic_objects_delta_position_lines [default: objects_delta_position_lines]
- topic_objects_width_lines [default: objects_width_lines]
- ns_velocity_arrows [default: velocity_arrows]
- ns_delta_position_lines [default: delta_position_lines]
- ns_width_lines [default: width_lines]
- velocity_arrows_use_full_gray_scale [default: false]
- velocity_arrows_use_sensor_frame [default: false]
- velocity_arrows_use_base_frame [default: false]
- velocity_arrows_use_fixed_frame [default: false]
- message_x_coordinate_field_name [default: x]
- message_y_coordinate_field_name [default: y]
- message_z_coordinate_field_name [default: z]
- voxel_leaf_size [default: 0.01]
- threshold_z_min [default: 0.0]
- threshold_z_max [default: 1.0]
- object_threshold_edge_max_delta_range [default: 0.15]
- object_threshold_min_nr_points [default: 3]
- object_threshold_max_distance [default: 6.5]
- object_threshold_min_speed [default: 0.1]
- object_threshold_max_delta_width_in_points [default: 15]
- object_threshold_bank_tracking_max_delta_distance [default: 0.4]
- object_threshold_min_confidence [default: 0.7]
- base_confidence [default: 0.5]
- launch/includes/laserscan_interpreter_nodelet.launch.xml
-
- manager [default: manager]
- create_manager [default: false]
- subscribe_topic [default: laserscan]
- subscribe_buffer_size [default: 1]
- ema_alpha [default: 1.0]
- map_frame [default: map]
- fixed_frame [default: odom]
- base_frame [default: base_link]
- nr_scans_in_bank [default: 0]
- optimize_nr_scans_in_bank [default: 0.5]
- max_confidence_for_dt_match [default: 0.5]
- delta_width_confidence_decrease_factor [default: 0.5]
- publish_objects [default: true]
- publish_ema [default: true]
- publish_objects_closest_points_markers [default: true]
- publish_objects_velocity_arrows [default: true]
- publish_objects_delta_position_lines [default: true]
- publish_objects_width_lines [default: true]
- publish_buffer_size [default: 1]
- topic_objects [default: moving_objects]
- topic_ema [default: ema]
- topic_objects_closest_points_markers [default: objects_closest_point_markers]
- topic_objects_velocity_arrows [default: objects_velocity_arrows]
- topic_objects_delta_position_lines [default: objects_delta_position_lines]
- topic_objects_width_lines [default: objects_width_lines]
- ns_velocity_arrows [default: velocity_arrows]
- ns_delta_position_lines [default: delta_position_lines]
- ns_width_lines [default: width_lines]
- velocity_arrows_use_full_gray_scale [default: false]
- velocity_arrows_use_sensor_frame [default: false]
- velocity_arrows_use_base_frame [default: false]
- velocity_arrows_use_fixed_frame [default: false]
- object_threshold_edge_max_delta_range [default: 0.15]
- object_threshold_min_nr_points [default: 3]
- object_threshold_max_distance [default: 6.5]
- object_threshold_min_speed [default: 0.1]
- object_threshold_max_delta_width_in_points [default: 15]
- object_threshold_bank_tracking_max_delta_distance [default: 0.4]
- object_threshold_min_confidence [default: 0.7]
- base_confidence [default: 0.5]
- launch/includes/laserscan_interpreter_node.launch.xml
-
- subscribe_topic [default: laserscan]
- subscribe_buffer_size [default: 1]
- ema_alpha [default: 1.0]
- map_frame [default: map]
- fixed_frame [default: odom]
- base_frame [default: base_link]
- nr_scans_in_bank [default: 0]
- optimize_nr_scans_in_bank [default: 0.5]
- max_confidence_for_dt_match [default: 0.5]
- delta_width_confidence_decrease_factor [default: 0.5]
- publish_objects [default: true]
- publish_ema [default: true]
- publish_objects_closest_points_markers [default: true]
- publish_objects_velocity_arrows [default: true]
- publish_objects_delta_position_lines [default: true]
- publish_objects_width_lines [default: true]
- publish_buffer_size [default: 1]
- topic_objects [default: moving_objects]
- topic_ema [default: ema]
- topic_objects_closest_points_markers [default: objects_closest_point_markers]
- topic_objects_velocity_arrows [default: objects_velocity_arrows]
- topic_objects_delta_position_lines [default: objects_delta_position_lines]
- topic_objects_width_lines [default: objects_width_lines]
- ns_velocity_arrows [default: velocity_arrows]
- ns_delta_position_lines [default: delta_position_lines]
- ns_width_lines [default: width_lines]
- velocity_arrows_use_full_gray_scale [default: false]
- velocity_arrows_use_sensor_frame [default: false]
- velocity_arrows_use_base_frame [default: false]
- velocity_arrows_use_fixed_frame [default: false]
- object_threshold_edge_max_delta_range [default: 0.15]
- object_threshold_min_nr_points [default: 3]
- object_threshold_max_distance [default: 6.5]
- object_threshold_min_speed [default: 0.1]
- object_threshold_max_delta_width_in_points [default: 15]
- object_threshold_bank_tracking_max_delta_distance [default: 0.4]
- object_threshold_min_confidence [default: 0.7]
- base_confidence [default: 0.5]
- launch/includes/pointcloud2_interpreter_nodelet.launch.xml
-
- manager [default: manager]
- create_manager [default: false]
- subscribe_topic [default: pointcloud]
- subscribe_buffer_size [default: 1]
- sensor_frame_has_z_axis_forward [default: true]
- ema_alpha [default: 1.0]
- map_frame [default: map]
- fixed_frame [default: odom]
- base_frame [default: base_link]
- nr_scans_in_bank [default: 0]
- optimize_nr_scans_in_bank [default: 0.5]
- max_confidence_for_dt_match [default: 0.5]
- delta_width_confidence_decrease_factor [default: 0.5]
- bank_view_angle [default: 3.141592654]
- nr_points_per_scan_in_bank [default: 360]
- publish_objects [default: true]
- publish_ema [default: true]
- publish_objects_closest_points_markers [default: true]
- publish_objects_velocity_arrows [default: true]
- publish_objects_delta_position_lines [default: true]
- publish_objects_width_lines [default: true]
- publish_buffer_size [default: 1]
- topic_objects [default: moving_objects]
- topic_ema [default: ema]
- topic_objects_closest_points_markers [default: objects_closest_point_markers]
- topic_objects_velocity_arrows [default: objects_velocity_arrows]
- topic_objects_delta_position_lines [default: objects_delta_position_lines]
- topic_objects_width_lines [default: objects_width_lines]
- ns_velocity_arrows [default: velocity_arrows]
- ns_delta_position_lines [default: delta_position_lines]
- ns_width_lines [default: width_lines]
- velocity_arrows_use_full_gray_scale [default: false]
- velocity_arrows_use_sensor_frame [default: false]
- velocity_arrows_use_base_frame [default: false]
- velocity_arrows_use_fixed_frame [default: false]
- message_x_coordinate_field_name [default: x]
- message_y_coordinate_field_name [default: y]
- message_z_coordinate_field_name [default: z]
- voxel_leaf_size [default: 0.01]
- threshold_z_min [default: 0.0]
- threshold_z_max [default: 1.0]
- object_threshold_edge_max_delta_range [default: 0.15]
- object_threshold_min_nr_points [default: 3]
- object_threshold_max_distance [default: 6.5]
- object_threshold_min_speed [default: 0.1]
- object_threshold_max_delta_width_in_points [default: 15]
- object_threshold_bank_tracking_max_delta_distance [default: 0.4]
- object_threshold_min_confidence [default: 0.7]
- base_confidence [default: 0.5]
- launch/includes/laserscanarray_interpreter_node.launch.xml
-
- subscribe_topic [default: laserscanArray]
- subscribe_buffer_size [default: 1]
- ema_alpha [default: 1.0]
- map_frame [default: map]
- fixed_frame [default: odom]
- base_frame [default: base_link]
- nr_scans_in_bank [default: 0]
- optimize_nr_scans_in_bank [default: 0.5]
- max_confidence_for_dt_match [default: 0.5]
- delta_width_confidence_decrease_factor [default: 0.5]
- publish_objects [default: true]
- publish_ema [default: true]
- publish_objects_closest_points_markers [default: true]
- publish_objects_velocity_arrows [default: true]
- publish_objects_delta_position_lines [default: true]
- publish_objects_width_lines [default: true]
- publish_buffer_size [default: 1]
- topic_objects [default: moving_objects]
- topic_ema [default: ema]
- topic_objects_closest_points_markers [default: objects_closest_point_markers]
- topic_objects_velocity_arrows [default: objects_velocity_arrows]
- topic_objects_delta_position_lines [default: objects_delta_position_lines]
- topic_objects_width_lines [default: objects_width_lines]
- ns_velocity_arrows [default: velocity_arrows]
- ns_delta_position_lines [default: delta_position_lines]
- ns_width_lines [default: width_lines]
- velocity_arrows_use_full_gray_scale [default: false]
- velocity_arrows_use_sensor_frame [default: false]
- velocity_arrows_use_base_frame [default: false]
- velocity_arrows_use_fixed_frame [default: false]
- object_threshold_edge_max_delta_range [default: 0.15]
- object_threshold_min_nr_points [default: 3]
- object_threshold_max_distance [default: 6.5]
- object_threshold_min_speed [default: 0.1]
- object_threshold_max_delta_width_in_points [default: 15]
- object_threshold_bank_tracking_max_delta_distance [default: 0.4]
- object_threshold_min_confidence [default: 0.7]
- base_confidence [default: 0.5]
- launch/includes/pointcloud2array_interpreter_node.launch.xml
-
- subscribe_topic [default: pointcloudArray]
- subscribe_buffer_size [default: 1]
- sensor_frame_has_z_axis_forward [default: true]
- ema_alpha [default: 1.0]
- map_frame [default: map]
- fixed_frame [default: odom]
- base_frame [default: base_link]
- nr_scans_in_bank [default: 0]
- optimize_nr_scans_in_bank [default: 0.5]
- max_confidence_for_dt_match [default: 0.5]
- delta_width_confidence_decrease_factor [default: 0.5]
- bank_view_angle [default: 3.141592654]
- nr_points_per_scan_in_bank [default: 360]
- publish_objects [default: true]
- publish_ema [default: true]
- publish_objects_closest_points_markers [default: true]
- publish_objects_velocity_arrows [default: true]
- publish_objects_delta_position_lines [default: true]
- publish_objects_width_lines [default: true]
- publish_buffer_size [default: 1]
- topic_objects [default: moving_objects]
- topic_ema [default: ema]
- topic_objects_closest_points_markers [default: objects_closest_point_markers]
- topic_objects_velocity_arrows [default: objects_velocity_arrows]
- topic_objects_delta_position_lines [default: objects_delta_position_lines]
- topic_objects_width_lines [default: objects_width_lines]
- ns_velocity_arrows [default: velocity_arrows]
- ns_delta_position_lines [default: delta_position_lines]
- ns_width_lines [default: width_lines]
- velocity_arrows_use_full_gray_scale [default: false]
- velocity_arrows_use_sensor_frame [default: false]
- velocity_arrows_use_base_frame [default: false]
- velocity_arrows_use_fixed_frame [default: false]
- message_x_coordinate_field_name [default: x]
- message_y_coordinate_field_name [default: y]
- message_z_coordinate_field_name [default: z]
- voxel_leaf_size [default: 0.01]
- threshold_z_min [default: 0.0]
- threshold_z_max [default: 1.0]
- object_threshold_edge_max_delta_range [default: 0.15]
- object_threshold_min_nr_points [default: 3]
- object_threshold_max_distance [default: 6.5]
- object_threshold_min_speed [default: 0.1]
- object_threshold_max_delta_width_in_points [default: 15]
- object_threshold_bank_tracking_max_delta_distance [default: 0.4]
- object_threshold_min_confidence [default: 0.7]
- base_confidence [default: 0.5]
- launch/includes/laserscanarray_interpreter_nodelet.launch.xml
-
- manager [default: manager]
- create_manager [default: false]
- subscribe_topic [default: laserscanArray]
- subscribe_buffer_size [default: 1]
- ema_alpha [default: 1.0]
- map_frame [default: map]
- fixed_frame [default: odom]
- base_frame [default: base_link]
- nr_scans_in_bank [default: 0]
- optimize_nr_scans_in_bank [default: 0.5]
- max_confidence_for_dt_match [default: 0.5]
- delta_width_confidence_decrease_factor [default: 0.5]
- publish_objects [default: true]
- publish_ema [default: true]
- publish_objects_closest_points_markers [default: true]
- publish_objects_velocity_arrows [default: true]
- publish_objects_delta_position_lines [default: true]
- publish_objects_width_lines [default: true]
- publish_buffer_size [default: 1]
- topic_objects [default: moving_objects]
- topic_ema [default: ema]
- topic_objects_closest_points_markers [default: objects_closest_point_markers]
- topic_objects_velocity_arrows [default: objects_velocity_arrows]
- topic_objects_delta_position_lines [default: objects_delta_position_lines]
- topic_objects_width_lines [default: objects_width_lines]
- ns_velocity_arrows [default: velocity_arrows]
- ns_delta_position_lines [default: delta_position_lines]
- ns_width_lines [default: width_lines]
- velocity_arrows_use_full_gray_scale [default: false]
- velocity_arrows_use_sensor_frame [default: false]
- velocity_arrows_use_base_frame [default: false]
- velocity_arrows_use_fixed_frame [default: false]
- object_threshold_edge_max_delta_range [default: 0.15]
- object_threshold_min_nr_points [default: 3]
- object_threshold_max_distance [default: 6.5]
- object_threshold_min_speed [default: 0.1]
- object_threshold_max_delta_width_in_points [default: 15]
- object_threshold_bank_tracking_max_delta_distance [default: 0.4]
- object_threshold_min_confidence [default: 0.7]
- base_confidence [default: 0.5]