mirror of
https://github.com/introlab/rtabmap_ros.git
synced 2026-10-03 16:27:46 +08:00
RTAB-Map parameters can be also set using node arguments (or rtabmap_args for some launch files)
This commit is contained in:
+3
-18
@@ -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
@@ -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
@@ -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:
|
||||
|
||||
@@ -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();
|
||||
|
||||
Reference in New Issue
Block a user