|
From: <tf...@us...> - 2009-03-25 23:51:47
|
Revision: 12988
http://personalrobots.svn.sourceforge.net/personalrobots/?rev=12988&view=rev
Author: tfoote
Date: 2009-03-25 23:51:37 +0000 (Wed, 25 Mar 2009)
Log Message:
-----------
making it easier to configure from a parameter
Modified Paths:
--------------
pkg/trunk/prcore/filters/include/filters/filter_chain.h
pkg/trunk/util/laser_scan/src/generic_laser_filter_node.cpp
Modified: pkg/trunk/prcore/filters/include/filters/filter_chain.h
===================================================================
--- pkg/trunk/prcore/filters/include/filters/filter_chain.h 2009-03-25 22:36:23 UTC (rev 12987)
+++ pkg/trunk/prcore/filters/include/filters/filter_chain.h 2009-03-25 23:51:37 UTC (rev 12988)
@@ -104,7 +104,6 @@
}
-
/********************** Do the allocation *********************/
buffer0_.resize(size);
buffer1_.resize(size);
@@ -153,7 +152,19 @@
return result;
};
+ /**@brief Configure the filter from xml stored on the parameter server
+ * This is simply a convienience function for this is the recommended way to setup filters*/
+ bool configureFromXMLString(unsigned int size, std::string filter_xml)
+ {
+ TiXmlDocument xml_doc;
+ xml_doc.Parse(filter_xml.c_str());
+ TiXmlElement * config = xml_doc.RootElement();
+
+ return this->configure(1, config);
+ };
+
+
/** \brief Clear all filters from this chain */
bool clear()
{
Modified: pkg/trunk/util/laser_scan/src/generic_laser_filter_node.cpp
===================================================================
--- pkg/trunk/util/laser_scan/src/generic_laser_filter_node.cpp 2009-03-25 22:36:23 UTC (rev 12987)
+++ pkg/trunk/util/laser_scan/src/generic_laser_filter_node.cpp 2009-03-25 23:51:37 UTC (rev 12988)
@@ -44,15 +44,13 @@
MedianFilterNode(ros::Node& anode) : filter_chain_(), node_(anode)
{
- std::string filter_xml;
node_.advertise<laser_scan::LaserScan>("~output", 1000);
- node_.param("~filters", filter_xml, median_filter_xml);
- ROS_INFO("Got ~filters as: %s\n", filter_xml.c_str());
- TiXmlDocument xml_doc;
- xml_doc.Parse(filter_xml.c_str());
- TiXmlElement * config = xml_doc.RootElement();
- filter_chain_.configure(1, config);
+ std::string filter_xml;
+ node_.param("~filters", filter_xml, std::string("<filters><!--Filter Parameter Not Set--></filters>"));
+ ROS_INFO("Got parameter'~filters' as: %s\n", filter_xml.c_str());
+
+ filter_chain_.configureFromXMLString(1, filter_xml);
node_.subscribe("scan_in", msg, &MedianFilterNode::callback,this, 3);
}
void callback()
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|