Simple sensor filter chain nodes and nodelets

sensor_filters

This package is a collection of nodes and nodelets that service a filters::FilterChain for message types from sensor_msgs package.

Each node/nodelet's task is very simple: load the filter chain, subscribe ~input topic, and publish the filtered messages to ~output topic.

The size of message queues is configured via ~input_queue_size and ~output_queue_size, both defaulting to 10 messages.

The namespaces from which the filters load are the following:

Message Type Namespace Nodelet Name
CompressedImage ~image_filter_chain sensor_filters/compressedimage_filter_chain
Image ~image_filter_chain sensor_filters/image_filter_chain
Imu ~imu_filter_chain sensor_filters/imu_filter_chain
Joy ~joy_filter_chain sensor_filters/joy_filter_chain
LaserScan ~scan_filter_chain sensor_filters/laserscan_filter_chain
MagneticField ~magnetic_field_filter_chain sensor_filters/magneticfield_filter_chain
MultiEchoLaserScan ~scan_filter_chain sensor_filters/multiecholaserscan_filter_chain
NavSatFix ~nav_sat_fix_filter_chain sensor_filters/navsatfix_filter_chain
PointCloud ~cloud_filter_chain sensor_filters/pointcloud_filter_chain
PointCloud2 ~cloud_filter_chain sensor_filters/pointcloud2_filter_chain
Range ~range_filter_chain sensor_filters/range_filter_chain
RelativeHumidity ~humidity_filter_chain sensor_filters/relativehumidity_filter_chain
Temperature ~temperature_filter_chain sensor_filters/temperature_filter_chain

laser_filters compatibility

The LaserScan filter chain node is compatible with the scan_to_scan_node from laser_filters package (it can load the same filters using the same config). It does not, however, use TF message filter, so each filter has to wait for the required TFs itself.

Extensibility

Both the nodes and nodelets offer common code that can be shared so that you can build extensions of the simple filter chain handlers provided by this package.

Nodes

#include <sensor_msgs/PointCloud2.h>
#include <sensor_filters/FilterChainNode.h>

class MyClass : public sensor_filters::FilterChainNode<sensor_msgs::PointCloud2>
{
  // custom class code
};

Nodelets

#include <pluginlib/class_list_macros.h>
#include <sensor_msgs/PointCloud2.h>
#include <sensor_filters/FilterChainNodelet.h>

class MyNodelet : public sensor_filters::FilterChainNodelet<sensor_msgs::PointCloud2>
{
  protected: void onInit() override
  {
    sensor_filters::FilterChainNodelet<sensor_msgs::PointCloud2>::onInit();
    // custom nodelet code
  }
};

PLUGINLIB_EXPORT_CLASS(MyNodelet, nodelet::Nodelet)

Example

filter.yaml

output_queue_size: 1
scan_filter_chain:
  - name: intensity
    type: laser_filters/LaserScanIntensityFilter
    params:
      lower_threshold: 8000
      upper_threshold: 100000
      invert: false
      filter_override_range: true
      filter_override_intensity: false
  - name: shadows
    type: laser_filters/ScanShadowsFilter
    params:
      min_angle: 10
      max_angle: 170
      neighbors: 20
      window: 0

filter.launch

<launch>
    <node pkg="sensor_filters" type="laserscan_filter_chain" output="screen" name="laser_filter">
        <remap from="~input" to="base_scan" />
        <remap from="~output" to="base_scan_filtered" />
        <rosparam command="load" file="$(dirname)/filter.yaml" />
    </node>
</launch>
Owner
Vision for Robotics and Autonomous Systems
Research group at Czech Technical University in Prague (CTU), Faculty of Electrical Engineering, Department of Cybernetics
Vision for Robotics and Autonomous Systems
Similar Resources

Filter and launch links in a browser of your choice!

Link Launcher Filter links with regular expressions and launch them into your favourite browsers Have you ever wanted to open a youtube link from othe

Aug 20, 2021

Gradation Curves filter for VirtualDub and AviSynth+

Gradation Curves filter for VirtualDub and AviSynth+

Gradation Curves An updated version of Alexander Nagiller's Gradation Curves filter for VirtualDub. Additional documentation can be found in the filte

May 11, 2022

Comparing the performance of Wave Digital Filter implementations

WDF Bakeoff Comparing performance between Wave Digital Filters implemented in C++ and Faust. Building First clone the repository and submodules: git c

Oct 12, 2021

High Quality DeNoise 3D is an AviSynth port of the MPlayer filter of the same name

High Quality DeNoise 3D is an AviSynth port of the MPlayer filter of the same name. It performs a 3-way low-pass filter, which can completely remove high-frequency noise while minimizing blending artifacts.

Jun 7, 2022

usb to 5 din midi converter-filter-router, sound generator

usb to 5 din midi converter-filter-router, sound generator

multi What is multi? It's a PCB (shield/hat) hosting a seeeduino Xiao. It has 6 potentiometers, 2 pushbuttons and a 1/8" audio out connected to the Xi

Jun 8, 2022

Extended kalman filter implementation.

Extended kalman filter implementation.

EKF (Extended Kalman Filter) This project is a C++ implementation of EKF.For the related principles of EKF, please check this tutorial (TODO). Project

Feb 21, 2022

Kalman Filter Implementation for MPU6050 with STM32-Nucleo. Via CubeIDE

Kalman Filter Implementation for MPU6050 with STM32-Nucleo. Via CubeIDE

Kalman Filter Implementation for MPU6050 on STM32 Nucleo Board Kalman Filter Implementation for MPU6050 with STM32-Nucleo I implemented a Kalman Filte

May 13, 2022

A toolkit for pointcloud processing, including: filter, bounding box, ground segmentation, cluster

A toolkit for pointcloud processing, including: filter, bounding box, ground segmentation, cluster. And implemented by different algorithms(some with pcl wrapper). c++17 supported

Jun 4, 2022

The CRT filter that I used in my "what is that editor" video

The CRT filter that I used in my

Bisqwit’s CRT filter This is the CRT filter that I used in my ”What is That Editor” video, at https://www.youtube.com/watch?v=ZMBQmhO8KqI. It received

Apr 10, 2022
DIY Zigbee CC2530 Motion sensor (AM312/ AM412/ BS312/ BS412), Temperature /Humidity /Pressure sensor (BME280), Ambient Light sensor (BH1750), 2.9/2.13/1.54 inch e-Paper Module
DIY Zigbee CC2530 Motion sensor (AM312/ AM412/ BS312/ BS412), Temperature /Humidity /Pressure sensor (BME280), Ambient Light sensor (BH1750), 2.9/2.13/1.54 inch e-Paper Module

How to join: If device in FN(factory new) state: Press and hold button (1) for 2-3 seconds, until device start flashing led Wait, in case of successfu

May 26, 2022
Port of Adafruit / NXP Sensor Fusion filter

AHRS Fusion Port of Adafruit NXP sensor fusion algorithms based on Kalman filters for rust. Resources https://github.com/adafruit/Adafruit_AHRS https:

May 14, 2022
Resources for DFIR Professionals Responding to the REvil Ransomware Kaseya Supply Chain Attack

Resources for DFIR Professionals Responding to the REvil Ransomware Kaseya Supply Chain Attack Yesterday Sophos and Huntress Labs identified that Kase

Jun 10, 2022
Basic physics simulation of a chain

Basic Chain Simulation Compile using for example $ g++ ChainElement.cpp ChainLink.cpp Chain.cpp Simulation.cpp main.cpp -std=c++11 -o run -O3 The outp

May 30, 2022
Sensirion Mass Flow Sensor Arduino library, modified from MyElectrons and Nabilphysics Arduino repositories for SFM3300 Digital Mass Flow Sensor
Sensirion Mass Flow Sensor Arduino library, modified from MyElectrons and Nabilphysics Arduino repositories for SFM3300 Digital Mass Flow Sensor

Sensirion Mass Flow Sensor Arduino library, modified from MyElectrons and Nabilphysics Arduino repositories for SFM3300 Digital Mass Flow Sensor. When the sensor data gets stuck, the library has a hard reset function to ensure that it is read continuously.

Apr 11, 2022
multispectral monitoring of a sourdough starter; esp32 eink module, scd30 co2 sensor, vl6180 distance sensor

EINK STARTER MONITOR See full blogpost here Tracks height of starter with a VL6180 i2c distance sensor, and CO2/temperature/humidity with an SCD30. A

Feb 16, 2022
Tasmota-Berry Tank Sensor for fuel-oil usind VL53L1X or SR04 sensor

Tasmota-Tank-Sensor Tasmota-Berry Tank Sensor for fuel-oil volume measurement using an VL53L1X or SR04 sensor The Sensor body The sensor was prepared

Feb 10, 2022
Prototipe of LoRa nodes for airelib.re
Prototipe of LoRa nodes for airelib.re

Suchi and Ma-ti This repository contains the information for devices that sends Particulate Matter information to receiving nodes using LoRa for AireL

Dec 23, 2021
This is a simple filter that will block any attempt to access streams beginning with

Triggering the notification only requires that you visit a particular path on an NTFS volume.

Mar 4, 2022
Fuses IMU readings with a complementary filter to achieve accurate pitch and roll readings.
Fuses IMU readings with a complementary filter to achieve accurate pitch and roll readings.

SimpleFusion A library that fuses accelerometer and gyroscope readings quickly and easily with a complementary filter. Overview This library combines

May 13, 2022