mirror of
https://github.com/introlab/rtabmap_ros.git
synced 2026-10-11 12:09:51 +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;
|
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)
|
else if(strcmp(argv[i], "--params") == 0 || strcmp(argv[i], "--params-all") == 0)
|
||||||
{
|
{
|
||||||
rtabmap::ParametersMap parameters = rtabmap::Parameters::getDefaultParameters();
|
rtabmap::ParametersMap parameters = rtabmap::Parameters::getDefaultParameters();
|
||||||
@@ -98,14 +86,11 @@ int main(int argc, char** argv)
|
|||||||
"argument \"--params\" is detected!");
|
"argument \"--params\" is detected!");
|
||||||
exit(0);
|
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_INFO("rtabmap %s started...", RTABMAP_VERSION);
|
||||||
ros::spin();
|
ros::spin();
|
||||||
|
|||||||
+8
-1
@@ -71,7 +71,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|||||||
|
|
||||||
using namespace rtabmap;
|
using namespace rtabmap;
|
||||||
|
|
||||||
CoreWrapper::CoreWrapper(bool deleteDbOnStart) :
|
CoreWrapper::CoreWrapper(bool deleteDbOnStart, const ParametersMap & parameters) :
|
||||||
paused_(false),
|
paused_(false),
|
||||||
lastPose_(Transform::getIdentity()),
|
lastPose_(Transform::getIdentity()),
|
||||||
lastPoseIntermediate_(false),
|
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
|
// Backward compatibility
|
||||||
for(std::map<std::string, std::pair<bool, std::string> >::const_iterator iter=Parameters::getRemovedParameters().begin();
|
for(std::map<std::string, std::pair<bool, std::string> >::const_iterator iter=Parameters::getRemovedParameters().begin();
|
||||||
iter!=Parameters::getRemovedParameters().end();
|
iter!=Parameters::getRemovedParameters().end();
|
||||||
|
|||||||
+1
-1
@@ -80,7 +80,7 @@ typedef actionlib::SimpleActionClient<move_base_msgs::MoveBaseAction> MoveBaseCl
|
|||||||
class CoreWrapper
|
class CoreWrapper
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
CoreWrapper(bool deleteDbOnStart);
|
CoreWrapper(bool deleteDbOnStart, const rtabmap::ParametersMap & parameters);
|
||||||
virtual ~CoreWrapper();
|
virtual ~CoreWrapper();
|
||||||
|
|
||||||
private:
|
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
|
// Backward compatibility
|
||||||
for(std::map<std::string, std::pair<bool, std::string> >::const_iterator iter=Parameters::getRemovedParameters().begin();
|
for(std::map<std::string, std::pair<bool, std::string> >::const_iterator iter=Parameters::getRemovedParameters().begin();
|
||||||
iter!=Parameters::getRemovedParameters().end();
|
iter!=Parameters::getRemovedParameters().end();
|
||||||
|
|||||||
Reference in New Issue
Block a user