ROS2 various QOL updates (preparing new binary release) (#1225)

* Updating examples and README

* updated main readme

* odom: Added always_check_imu_tf parameter. sync: increased default sync_queue_size from 2 to 5 (to be more flexible to different hardware), added input and output diagnostics. rtabmap_viz: fixed node with same name redeclared warning.

* update readme

* Added husky demo

* converted demo_robot_mapping.launch to ros2

* Converted stereo_outdoor demo from ros1 to ros2

* Converted multi-session demo to ros2

* Converted demo_find_object launch to ros2

* renamed files

* uniformized default qos, increased sync_queue_size default to 10

* Added vlp16 + imu example

* Added husky 3D lidar demos

* moved demos in subdir

* Added vlp16+zed example

* rtabmap_viz: ignore odom update if tf not ready when not using topic (to avoid showing red screen). Added champ VSLAM demo.

* forwarded camera_model arg for zed examples, removed qos for turtlebot4 demo

* pointcloud_to_depthimage: added more error logs, removed output camera_info published twice and match ros1 namespaces

* Created two base general examples for 3D lidar usage, then create hardware specific examples on top of them.

* Added isaac sim demo

* Final update of all demos. Fixed MapCloud rviz plugin crashing when floor/ceiling filtering is used and resulting cloud is empty.

* Fixed 2d scan deskewing output frame, moved nav2 params under "params" folder, added number of topics processed/dropped for odometry, added icp_odometry option for turtlebot3 scan-only demo.

* rtabmap_demos: added README with examples

* Added TOC

* bump version to 0.21.9
This commit is contained in:
matlabbe
2024-11-30 17:28:16 -08:00
committed by GitHub
parent e9aa8ed082
commit 3f6adad463
116 changed files with 6102 additions and 575 deletions
+12 -8
View File
@@ -85,8 +85,7 @@ QString PreferencesDialogROS::getParamMessage()
bool PreferencesDialogROS::hasAllParameters()
{
auto node = std::make_shared<rclcpp::Node>("rtabmap_viz");
auto client = std::make_shared<rclcpp::AsyncParametersClient>(node, rtabmapNodeName_);
auto client = std::make_shared<rclcpp::AsyncParametersClient>(node_, rtabmapNodeName_);
return client->service_is_ready();
}
@@ -98,8 +97,13 @@ bool PreferencesDialogROS::readCoreSettings(const QString & filePath)
path = filePath;
}
auto node = std::make_shared<rclcpp::Node>("rtabmap_viz");
RCLCPP_INFO(node->get_logger(), "%s", this->getParamMessage().toStdString().c_str());
char nodeName[42];
snprintf(
nodeName, sizeof(nodeName), "rtabmap_viz_param_client_%zx",
reinterpret_cast<size_t>(this)
);
auto node = std::make_shared<rclcpp::Node>(nodeName);
RCLCPP_INFO(node_->get_logger(), "%s", this->getParamMessage().toStdString().c_str());
rtabmap::ParametersMap parameters = rtabmap::Parameters::getDefaultParameters();
// remove Odom parameters
for(ParametersMap::iterator iter=parameters.begin(); iter!=parameters.end();)
@@ -145,7 +149,7 @@ bool PreferencesDialogROS::readCoreSettings(const QString & filePath)
auto client = std::make_shared<rclcpp::AsyncParametersClient>(node, rtabmapNodeName_);
if (!client->wait_for_service(std::chrono::seconds(5))) {
RCLCPP_ERROR(node->get_logger(), "Can't call rtabmap parameters service, is the node running?");
RCLCPP_ERROR(node_->get_logger(), "Can't call rtabmap parameters service, is the node running?");
}
int readCount = 0;
if(client->service_is_ready())
@@ -163,18 +167,18 @@ bool PreferencesDialogROS::readCoreSettings(const QString & filePath)
}
}
RCLCPP_INFO(node->get_logger(), "Parameters read = %d", readCount);
RCLCPP_INFO(node_->get_logger(), "Parameters read = %d", readCount);
if(readCount>0)
{
RCLCPP_INFO(node->get_logger(), "Parameters successfully read.");
RCLCPP_INFO(node_->get_logger(), "Parameters successfully read.");
}
else
{
if(this->isVisible())
{
QString warning = tr("Failed to get RTAB-Map parameters from ROS server, the rtabmap node may be not started or some parameters won't work...");
RCLCPP_WARN(node->get_logger(), "%s", warning.toStdString().c_str());
RCLCPP_WARN(node_->get_logger(), "%s", warning.toStdString().c_str());
QMessageBox::warning(this, tr("Can't read parameters from ROS server."), warning);
}
return false;