Raspberry Pi MouseのROS 2対応(断念)
ROS Japan UG #12 Raspberry Pi Mouseハッカソン
ROS Japan Users Groupの第12回のイベントがRaspberry Pi Mouseハッカソンに正式に決定しました。
https://rosjp.connpass.com/event/59669/
今回は参加人数が限られているため、参加申し込みは抽選としました。 すでに応募人数を超えていますが、抽選はまだまだ先ですので、参加を希望される方は、ぜひ申し込んでください。
Rasbperry Pi MouseのROS 2対応
本日のタイトルの時点でバレていますが、いくつかの理由でRasbperry Pi MouseのROS 2対応を断念しました。
- ROS 2はARM CPUも対応予定だが、現時点ではCIも走っておらず茨の道である。
- ROS 1で言うところの
ros_control
に相当するROS 2のロボットコントローラがまだない。
ROS 1をRaspberry Piで動かしつつ、ROS 2をリモートPCで動かしてros1_bridge
で接続するということで、なんちゃってROS 2対応をさせることもできます。 ですが、クライアント側をROS 2にしたところで、現時点ではRViz
やrqt_plot
がROS 2で動くわけではないため、旨味がほとんどありません。
Turtlebot 2のROS 2対応も、蓋を開けてソースコードを読んでみると、TwistメッセージをSubscribeして動かしているだけなので、凝ったことは全然していませんでした。
https://github.com/ros2/turtlebot2_demo/blob/master/turtlebot2_drivers/src/kobuki_node.cpp
void cmdVelCallback(const geometry_msgs::msg::Twist::SharedPtr msg)
{
std::lock_guard<std::mutex> kobuki_guard(g_kobuki_mutex);
double vx = std::min(std::max(msg->linear.x, -g_max_vx), g_max_vx);
double vyaw = std::min(std::max(msg->angular.z, -g_max_vyaw), g_max_vyaw);
g_kobuki->setBaseControl(vx, vyaw);
if (rcutils_system_time_now(&g_last_cmd_vel_time) != RCUTILS_RET_OK) {
std::cerr << "Failed to get system time" << std::endl;
}
}
というわけで、Raspberry Pi MouseをROS 2に対応させる、と啖呵を切ったのですが、一旦お預けにさせてください。気持ちが先走り過ぎました…
次回
次回からは現状のROS 2の開発進行状況を確認する意味でも、https://github.com/ros2のレポジトリを一つ一つ見ていこうと思います。
Comments powered by Disqus.