ROS
タイトルの通りです。 別々のTopicをSubscribeしている複数のSubscriberで、同じコールバック関数を呼び出す方法です。 準備 rostopic pub -r 10 chatter_0 std_msgs/String "message of chatter 0" & rostopic pub -r 15 chatter_1 std_msgs/String "messag…
navigationスタックはpluginlibによる実装がなされていて、拡張しようと思ったらpluginlibの知識が必要ということなので、勉強しています。 今回は、navigationスタックのソースを追っかけていきながら、pluginlibの基本的な使い方について解説します。 自分…
勘違いしてました。 costmap_2d/hydro/obstacles - ROS Wiki costmap_2dは、センサ情報としてPointCloudまたはLaserScan型のメッセージを受け取ります。 RoboCup SSLでは、フィールド上部のカメラからロボット及びボールの絶対座標が常に取得できるので、 そ…
Catkin設定方法 How to do common tasks — catkin 0.6.15 documentation ソースファイルの追加 CMakelist.txtの、add_executable()にファイル名を追加する add_executable(node_name src/filename1.cpp src/filename2.cpp) node_nameの部分は、このファイル…
ロボットに限らずですが、状態機械を用いることで、様々なタスクの遷移をスマートに表現することができます。 ROSの"Smach"パッケージを使えば、状態機械をPythonスクリプトによって比較的簡単に実現できます。 ja/smach - ROS Wiki Smachのチュートリアルペ…
やっとぼんやりながら正体が掴めつつあるので、メモを随時残していきます 2016/10/11 追記 座標系のところに、REP 105(座標系についてまとめたROSの文章)の一部翻訳を乗せました。(正確ではない可能せがあります) wikiのこれ(下画像)の階層構造 だいたい…
久方ぶりの記事です。 今回はタイトル通り、rosserialを用いてROSとArduinoを接続します。 ついでに、カスタムメッセージを用いた通信についても解説します。 rosserialとは ja/rosserial - ROS Wiki rosserialは、シリアル通信を用いて、ROSと組み込みボー…
Navigationスタックは、ロボットの移動制御を行うための大規模なスタックです。 このスタックに、目標地点、障害物、マップ、オドメトリの情報をそれぞれ与えると、それらを統合して、台車の速度指令を出力してくれます。 内部的には、グリッドセルに区切っ…
現在、grSimとROSの結合作業をしています。 とりあえず、grSimからマルチキャストで送信される各ロボットの座標を、tfでブロードキャストしようと思ったのですが、問題発生。 おおよそ60Hzで座標データが飛んでくるので、その周期に合わせてブロードキャスト…
ROSの座標変換ライブラリ、tfについて勉強しています。ひとまずtutorial(Python)をひと通り終えました。 ja/tf/Tutorials - ROS Wiki 今までのところでわかったことを記述しておきます。 tfでは、様々な座標軸を定義することで、定義された座標軸から見た別…
僕がROSを使おうと思った理由の一つに、このパッケージの存在があります。 詳しい使い方はまだわかりませんが、とにかく「あの」面倒くさい座標変換が楽チンにできるそうです。 これからサッカーロボットを開発する予定なんですが、サッカーロボットも座標変…
これからロボット開発を行うにあたって用いる、ROS(Robot Operating System)のインストールを行います。 ROSについては、詳しくはググってください。とりあえず、ロボットのソフトウェアを簡単かつ確実に作るためのミドルウェアです。 ROSには様々なディスト…