My Research Memo + Silly Story

個人的に興味があったことや、研究やプロジェクトに関する備忘録やプロジェクトの後輩に向けての資料についてまとめていこうと思っています。真面目なこと以外のこともブログに書こうかなと思っています。

KOBUKIの動作方法についての備忘録 part1

Kobukiについての動作について備忘録をまとめていこうと思う。実際にwikiを見ても、日本語で書かれている資料を探しても見つからなかった気がするので、まとめていこうと思います。そして、ROSのパブリッシュやサブスクライブについても再度理解するために、そのことについても触れながら行こうと思います。

 

まず、パブリッシャーについて

ja/ROS/Tutorials/WritingPublisherSubscriber(c++) - ROS Wiki

のところを見れば、だいたいの扱い方をわかります。しかし、私は読んでいてどういうもの何か?と疑問に思い、これだというイメージがわかなかったので自分が理解したイメージについて述べてきます。

 

これは余談ですが、ROSの各パッケージには家みたいのが存在している。そして、パブリッシャー(配信者)というのは毎朝新聞を配達する人で、それをうけて取る人がサブスクライバー(購読者)と考えました。

 

その後のパブリッシャーの仕方やサブスクライバーの仕方については後々まとめていこうと思います。

 

では本題のどうやって動かすかについてはまとめていきます。

kobuki/Tutorials/Kobuki's Control System - ROS Wiki

 以上のwikiを参考に説明していきます。

 

Kobuki's control system

 注目して欲しいのは、cmd_vel_muxという青色のボックスで囲われたノードにつながっているTopicです。ここで、Topicというのは先程のパブリッシャーの説明で言うと新聞です。ここには、safety_controllerやkeyboard_teleopというtopicがつながっています。ここから、cmd_vel_muxというノードに動作情報をおくればKobukiは動くということがわかります。

 

ではcmd_vel_muxというノードについて見ていくと、

cmd_vel_mux - ROS Wiki

Subscribed Topics

~input/cmd_vel (geometry_msgs/Twist)

  • Multiplexer input topic. There can be an arbitrary number of input topics described on the configuration file.

Published Topics

~output/cmd_vel (geometry_msgs/Twist)

  • Multiplexed output. Incoming velocity commands from the active source are republished on this topic. The topic name is specified on the configuration file.

 

ここで、cmd_velというtopicにgeometry_msgs/Twistという型でデータを送れば動作すればいいとわかります。

 

今回はここまでにしてもう少し知る必要があるため、動作に必要な知識はこれぐらいで大丈夫だと思いますので、ここまでとします。

もう少し調べたいことができたので、KOBUKIの動作方法についての備忘録はもう少し続けていこうと思います。

 

参考文献

stackoverflow.com

にそ民メモ