<html><head><style type="text/css"><!-- DIV {margin:0px;} --></style></head><body><div style="font-family:times new roman,new york,times,serif;font-size:12pt"><div>I managed to solve the problem.<br><span>In "<a target="_blank" href="http://www.ros.org/wiki/filters/Tutorials/Implementing">http://www.ros.org/wiki/filters/Tutorials/Implementing</a> a simple filter" it says that something similar to </span><br><class name="IncrementFilterInt" type="filtersIncrementFilter<int>"<br>            base_class_type="filtersFilterBase<int>"> should be included in the plugin_description_file.<br><br><span>However, according to <a target="_blank" href="http://www.ros.org/wiki/pluginlib/PluginDescriptionFile">http://www.ros.org/wiki/pluginlib/PluginDescriptionFile</a> it should be</span><br><class name="MyPlugin" type="my_namespace::MyPlugin"
 base_class_type="interface_namespace::PluginInterface"><br><br>so the filtersIncrementFilter part should be filters::IncrementFilter and filtersFilterBase should be filters::FilterBase<br><br>Please correct me if I am wrong.<br>Now I can load my plugin inside the node scan_to_scan_filter_chain<br><br>Thanks<br><br>Peshala<br></div><div style="font-family: times new roman,new york,times,serif; font-size: 12pt;"><br><div style="font-family: times new roman,new york,times,serif; font-size: 12pt;"><font face="Tahoma" size="2"><hr size="1"><b><span style="font-weight: bold;">From:</span></b> Peshala Jayasekara <peshala_24@yahoo.com><br><b><span style="font-weight: bold;">To:</span></b> ros-users@code.ros.org<br><b><span style="font-weight: bold;">Sent:</span></b> Thursday, April 1, 2010 18:53:28<br><b><span style="font-weight: bold;">Subject:</span></b> Re: [ros-users] Filters<br></font><br><div style="font-family: times new roman,new
 york,times,serif; font-size: 12pt;">Tully,<br><br>Thank you very much for your reply.<br><br>I have already added a plugin description file.<br>Its contents are as follows:<br><br><class_libraries><br>  <library path="lib/libbackgroundsubtraction"><br>    <class name="LaserBackgroundSubtractionFilter" type="beginner_tutorials::LaserBackgroundSubtractionFilter"<br>            base_class_type="filtersFilterBase<sensor_msgs::LaserScan>"><br>      <description><br>        This is a background subtraction filter.<br>      </description><br>    </class><br>  </library><br></class_libraries><br><div><br>Also, I
 have edited the manifest file as follows:<br>  <depend package="filters"/><br>  <depend package="sensor_msgs"/><br>  <depend package="pluginlib"/><br>  <export><filters plugin="${prefix}/plugin_description_file.xml"/><br>  </export><br><br>and<br>PLUGINLIB_REGISTER_CLASS(LaserBackgroundSubtractionFilter, beginner_tutorials::LaserBackgroundSubtractionFilter, filters::FilterBase<sensor_msgs::LaserScan>)<br>in the .cpp file<br><br>I am confused with adding the node configuration parameters. <br>Because I am running a launch file<br><launch><br><node pkg="laser_filters" type="scan_to_scan_filter_chain" output="screen" name="background_subtraction_filter">      <br>      <rosparam command="load" file="$(find beginner_tutorials)/launch/background_subtraction_filter.yaml" /><br></node><br></launch><br><br>So when I
 run the launch file it says <br>According to the loaded plugin descriptions the class
LaserBackgroundSubtractionFilter with base class type
filters::FilterBase<sensor_msgs::LaserScan> does not exist.<br><br>On the other hand, when I tried putting my .h and .cpp files inside laser_filters and using laser_filter namespace and editing its CMakeLists and laser_filters_plugins I could run the scan_to_scan_filter_chain node without problem; however I know this is not the recommended way.<br><br><span>Also, in <a rel="nofollow" target="_blank" href="http://www.ros.org/wiki/pluginlib">http://www.ros.org/wiki/pluginlib</a></span><br>it says PLUGINLIB_DECLARE_CLASS which is not to be found in  <pluginlib/class_list_macros.h><br><br>Need some advice how I can run scan_to_scan_filter_chain node using my libbackground_subtraction_filter.so outside the laser_filters package<br><br>Thanks in advance<br>Peshala<br><br></div><div style="font-family: times new roman,new york,times,serif; font-size: 12pt;"><br><div style="font-family: times new roman,new york,times,serif; font-size:
 12pt;"><font face="Tahoma" size="2"><hr size="1"><b><span style="font-weight: bold;">From:</span></b> Tully Foote <tfoote@willowgarage.com><br><b><span style="font-weight: bold;">To:</span></b> ros-users@code.ros.org<br><b><span style="font-weight: bold;">Sent:</span></b> Thursday, April 1, 2010 4:49:23<br><b><span style="font-weight: bold;">Subject:</span></b> Re: [ros-users] Filters<br></font><br>Peshala, <br><br>For question 1 you need to add a plugin description file.  See <a rel="nofollow" target="_blank" href="http://www.ros.org/wiki/pluginlib">http://www.ros.org/wiki/pluginlib</a>  linked from here <a rel="nofollow" target="_blank" href="http://www.ros.org/wiki/filters">http://www.ros.org/wiki/filters</a>  You will both need to add this file and export it in the manifest.  <br>

<br>To run it inside the scan_to_scan_filter_chain node you just need to add your filter to the nodes configuration parameters.  See 3.2.2 in <a rel="nofollow" target="_blank" href="http://www.ros.org/wiki/filters#Steps_to_create_a_filter">http://www.ros.org/wiki/filters#Steps_to_create_a_filter</a>  There is specific documentation on scan_to_scan_filter_chain node at <a rel="nofollow" target="_blank" href="http://www.ros.org/wiki/laser_filters">http://www.ros.org/wiki/laser_filters</a><br>

<br>For question 2, filters can be run in any node.  The filters::FilterChain class is the recommended way to instantiate filters in code.  However for your purposes the scan_to_scan_filter_chain node is likely the easiest.  <br>

<br>Tully<br><br><div class="gmail_quote">On Wed, Mar 31, 2010 at 12:05 AM, Peshala Jayasekara <span dir="ltr"><<a rel="nofollow" ymailto="mailto:peshala_24@yahoo.com" target="_blank" href="mailto:peshala_24@yahoo.com">peshala_24@yahoo.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">

<div><div style="font-family: times new roman,new york,times,serif; font-size: 12pt; color: rgb(0, 0, 0);"><div>Dear Ros-Users,<br><br>I am thinking of writing a background subtraction filter for my incoming laser data through hokoyo_node.<br>

<br>Here are my problems.<br><br>1) After going through the examples of laser_filters, I thought I can use scan_to_scan_filter_chain node to run "background_subtraction_filter-which is the one I am writing, inside it. However, it gave an error msg saying <br>

<br></div>
According to the loaded plugin descriptions the class LaserBackgroundSubtractionFilter with base class type filters::FilterBase<sensor_msgs::LaserScan> does not exist.<br><br>Is there a way to run a user's filter inside  scan_to_scan_filter_chain node?<br>

<br>2) On the other hand, once you write your own filter according to the "Implementing a simple filter" tutorial how do you run it - what node should it be associated with ?<br><br>Thank you in advance<br>Peshala <br>

<br><br></div><br>




      <hr size="1"> <a rel="nofollow" target="_blank" href="http://sg.rd.yahoo.com/aa/mail/domainchoice/mail/signature/*http://mail.promotions.yahoo.com/newdomains/aa/"> Get your preferred Email name! </a> <br>
Now you can @<a rel="nofollow" target="_blank" href="http://ymail.com">ymail.com</a> and @<a rel="nofollow" target="_blank" href="http://rocketmail.com">rocketmail.com</a>.</div><br>_______________________________________________<br>
ros-users mailing list<br>
<a rel="nofollow" ymailto="mailto:ros-users@code.ros.org" target="_blank" href="mailto:ros-users@code.ros.org">ros-users@code.ros.org</a><br>
<a rel="nofollow" target="_blank" href="https://code.ros.org/mailman/listinfo/ros-users">https://code.ros.org/mailman/listinfo/ros-users</a><br>
<br></blockquote></div><br><br clear="all"><br>-- <br>Tully Foote<br>Systems Engineer<br>Willow Garage, Inc.<br><a rel="nofollow" ymailto="mailto:tfoote@willowgarage.com" target="_blank" href="mailto:tfoote@willowgarage.com">tfoote@willowgarage.com</a><br>(650) 475-2827<br>
</div></div>
</div><br>




      <hr size="1"> <a rel="nofollow" target="_blank" href="http://sg.rd.yahoo.com/aa/mail/domainchoice/mail/signature/*http://mail.promotions.yahoo.com/newdomains/aa/"> Get your preferred Email name! </a> <br>
Now you can @ymail.com and @rocketmail.com.</div></div>
</div><br>
      <hr size=1> <a href="http://sg.rd.yahoo.com/aa/mail/domainchoice/mail/signature/*http://mail.promotions.yahoo.com/newdomains/aa/"> New Email addresses available on Yahoo! </a> <br>
Get the Email name you've always wanted on the new @ymail and @rocketmail.<br>
Hurry before someone else does!</body></html>