Skip to content

A ROS library that finds moving objects and derives their position and velocity, based on 2D laser scan or 3D point cloud 2 data streams.

License

Notifications You must be signed in to change notification settings

tberriel/find_moving_objects

 
 

Repository files navigation

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.

Changlog

0.01

  • Added costmap_converter::ObstacleArrayMessage publications
  • Edit to publish only objects moving relative to the robot
  • Added python kalman filter to track MovingObjects array

0.002

  • Removed python kalman filter. Better use STRAND bayes_tracker

About

A ROS library that finds moving objects and derives their position and velocity, based on 2D laser scan or 3D point cloud 2 data streams.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 94.7%
  • CMake 5.3%