ふるお〜と!- FullAuto

AI・ロボットが普及しBI(ベーシックインカム)が早急に実現されることを願う元ニートのブログ

ふるお〜と!-FullAuto

ROS1からROS2へ移行メモ

"ros1 to ros2 migration"でググるといろいろ出てくる。

その情報に付け足し。

ロギング

ROS

ROS_INFO ROS_WARN ROS_ERROR

ROS2

#include "rcutils/logging.h"

RCLCPP_DEBUG
RCLCPP_INFO
RCLCPP_WARN
RCLCPP_ERROR
RCLCPP_FATAL

これらの関数を使うには rclcpp::Loggerクラスのオブジェクトが第1引数に必要。

RCLCPP_INFO(node->get_logger(), "Publishing greeting '%s'", greeting.data.c_str());

Dynamic Reconfigure

ROSはDynamic Reconfigureという仕組みを利用して動的なパラメータを変更していたが、
ROS2は動的なパラメータに対応しています。
つまり、全てのノードはパラメータサーバであり、すべてのノードは動的再構成サーバーです。

ros::NodeHandle

下記のように宣言をする。

std::shared_ptr<rclcpp::Node>              node;

ROS1からROS2へ移行

fuerte/Migration - ROS Wiki

ROSをROS2へ - Qiita

ROS1 -> ROS2のポーティングときにハマった点のまとめ - Qiita