RTAB-Map parameters can be also set using node arguments (or rtabmap_args for some launch files)

This commit is contained in:
matlabbe
2016-03-11 16:56:32 -05:00
parent 542aa43ccc
commit af87689718
4 changed files with 23 additions and 20 deletions
+3 -18
View File
@@ -48,18 +48,6 @@ int main(int argc, char** argv)
{
deleteDbOnStart = true;
}
else if(strcmp(argv[i], "--udebug") == 0)
{
ULogger::setLevel(ULogger::kDebug);
}
else if(strcmp(argv[i], "--uinfo") == 0)
{
ULogger::setLevel(ULogger::kInfo);
}
else if(strcmp(argv[i], "--uwarn") == 0)
{
ULogger::setLevel(ULogger::kWarning);
}
else if(strcmp(argv[i], "--params") == 0 || strcmp(argv[i], "--params-all") == 0)
{
rtabmap::ParametersMap parameters = rtabmap::Parameters::getDefaultParameters();
@@ -98,14 +86,11 @@ int main(int argc, char** argv)
"argument \"--params\" is detected!");
exit(0);
}
else
{
ROS_ERROR("Not recognized argument \"%s\"", argv[i]);
exit(-1);
}
}
CoreWrapper * rtabmap = new CoreWrapper(deleteDbOnStart);
rtabmap::ParametersMap parameters = rtabmap::Parameters::parseArguments(argc, argv);
CoreWrapper * rtabmap = new CoreWrapper(deleteDbOnStart, parameters);
ROS_INFO("rtabmap %s started...", RTABMAP_VERSION);
ros::spin();
+8 -1
View File
@@ -71,7 +71,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
using namespace rtabmap;
CoreWrapper::CoreWrapper(bool deleteDbOnStart) :
CoreWrapper::CoreWrapper(bool deleteDbOnStart, const ParametersMap & parameters) :
paused_(false),
lastPose_(Transform::getIdentity()),
lastPoseIntermediate_(false),
@@ -281,6 +281,13 @@ CoreWrapper::CoreWrapper(bool deleteDbOnStart) :
}
}
//update with input arguments
for(ParametersMap::const_iterator iter=parameters.begin(); iter!=parameters.end(); ++iter)
{
uInsert(parameters_, ParametersPair(iter->first, iter->second));
ROS_INFO("Update RTAB-Map parameter \"%s\"=\"%s\" from arguments", iter->first.c_str(), iter->second.c_str());
}
// Backward compatibility
for(std::map<std::string, std::pair<bool, std::string> >::const_iterator iter=Parameters::getRemovedParameters().begin();
iter!=Parameters::getRemovedParameters().end();
+1 -1
View File
@@ -80,7 +80,7 @@ typedef actionlib::SimpleActionClient<move_base_msgs::MoveBaseAction> MoveBaseCl
class CoreWrapper
{
public:
CoreWrapper(bool deleteDbOnStart);
CoreWrapper(bool deleteDbOnStart, const rtabmap::ParametersMap & parameters);
virtual ~CoreWrapper();
private:
+11
View File
@@ -182,6 +182,17 @@ OdometryROS::OdometryROS(int argc, char * argv[], bool stereo) :
}
}
rtabmap::ParametersMap parameters = rtabmap::Parameters::parseArguments(argc, argv);
for(rtabmap::ParametersMap::iterator iter=parameters.begin(); iter!=parameters.end(); ++iter)
{
rtabmap::ParametersMap::iterator jter = parameters_.find(iter->first);
if(jter!=parameters_.end())
{
ROS_INFO("Update odometry parameter \"%s\"=\"%s\" from arguments", iter->first.c_str(), iter->second.c_str());
jter->second = iter->second;
}
}
// Backward compatibility
for(std::map<std::string, std::pair<bool, std::string> >::const_iterator iter=Parameters::getRemovedParameters().begin();
iter!=Parameters::getRemovedParameters().end();