7
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

プログラミング素人がAutoware.AIを使ったコンテストに参加した話(その2:ROSの情報まとめ)

Last updated at Posted at 2020-12-17

##まずはじめに
Autoware.AIはROSをベースに構成されています。Autoware.AIを使う前にROSについてある程度知識を持っている必要があります。
今回はROSの情報をまとめます。ROSについては私もほとんどわかってないので細かい説明はしてません(できないです。)
Autowareとラズパイマウスをちょっと触った程度の知識レベルなのでまちがってたらすみません。
ご指摘、ご指導ご鞭撻をお願いいたします。

その1:Autoware.AIの環境設定
その2:ROSの情報まとめ←いまここ
その3:Autoware.AIとLGSVLシミュレータを使ってみる

項番 ページ内リンク
1 1. ROSの教材
2 2. よく使うrosコマンド
3 参考リンク

##ROSをはじめるとき
身近にいるROSユーザーを見つけてコンタクトをとりましょう。
その人にくっついていろいろ教えてもらうのが一番早いと思います。

##ROSユーザーが身近にいないとき(←自分の場合)
ROSのバージョン違い(kineticとかmelodicとかいろいろ)に注意しながらROSの教材で勉強しよう。
独学はかなりしんどいですががんばりましょう。ラズパイマウスやTurtlebotシミュレータなどを動かしながら覚えています。

##1. ROSの教材
####ROS Japan UGの勉強会に参加しよう。
ROS Japan UGの勉強会に参加して実際に何ができるのか何をやっているのか触れてみよう。
最初は何言ってるかわからなかったけどだんだんわかってくると聞いているだけで勉強になります。
有識者のみなさまのtwitterを勝手にフォローして日々追いかけて勉強させていただいております。
この場をお借りして厚く御礼申し上げます

ROS Japan UGのSlackに登録してみよう。最新情報が入手できます。

ROS Japan UGのSlack登録フォームはこちら

####お手軽に試せるもの
まずROS講座 ←かなり詳しく書いてあってわかりやすい。
ROSTutorialsを読む。

ROSのturtlebot3(Gazeboのシミュレータ) を動かしてみましょう。 ←これならタダ!

ROBOTIS e-Manual ←Navigationまでやりたい方はこちらが参考になります。

####もうすこしやってみたいならラズパイマウス←給付金でかえます(ROSやるならLidar付)
Raspberry Pi Mouse V3      ただしセットアップがちょっと大変。
Welcome to Mashykom WebSite  Raspberry Pi Mouseの使い方やコードをざっくり知ることができます。
raspimouse_ros_examples     ROSのサンプルコードはこちら

####ROSチートシートの紹介
チートシートはお守り代わりに持っておくとよいかも。ここらに載っているコマンドは頻出なので知らないコマンドは調べて使ってみて覚えるといいです。知らないコマンドあったら調べて使ってみましょう。Linuxコマンドも載っているのもあります。
ROS CHEAT SHEET MELODIC
ROS platform Cheat Sheet

####ROSコマンド紹介
よく使用するROSコマンド 
ROS(Robot Operating System)を使う 

####ROS参考情報
ROSにはメッセージ型(基本形はこちら)というものがありセンサなどの情報をROSメッセージに基づいた型で通信(Publishしたり、Subscribeしたり)しています。
オリジナルのメッセージを作ることも可能です。

ROSにはTF(tf)というものがあります。センサ情報や関節、自分の座標値などの相対関係をまとめるときに使います。
例えばAutowareではマップと自車の位置関係とか、Velodyneセンサは自車のこの辺についているとか、カメラはこの辺についているとか相対位置情報がないとVelodyneの点群情報なんかつかえないよね。という程度の理解です。すみません。

##2. よく使うROSコマンド
よく使用するROSコマンド 
ROS(Robot Operating System)を使う 

####パッケージコマンド

catkin_create_pkg [パッケージ名]
実行したワークスペース内にパッケージディレクトリ/src、及び関連したファイルpackage.xml, CMakeList.txtを作成する。
rosdep install --from-paths src --ignore-src --rosdistro melodic -y
実行したワークスペース内のROS の依存関係を確認・解釈・解決・更新してくれるツール。
 

####ディレクトリーコマンド

roscd [パッケージ名]
指定したROSパッケージのディレクトリに移動できます。

####実行コマンド

roscore
rosマスタを起動します。
killall -9 roscore
rosマスタを強制的に停止します。(ctl+cでrosマスタが停止できないときに使用しています。)
rosrun [パッケージ名] [ノード名]
指定したパッケージのノードを実行します。一つのターミナルで一つのノードを走らせます。
roslaunch [パッケージ名] [launchファイル]
ローンチファイルを起動します。roscoreが起動していなければroscoreが自動で起動されます。
roslaunch [launchファイル]と直接launchファイルを指定することもできます。
rosclean [オプション]
ROSログファイル削除に使うコマンド。
ROSマスタを起動したときにlogが残ることがあり、logの容量が1GBを超えると警告が出るのでそんなときに使ってる。(←多分間違ってるけど)

####ノードコマンド

rosnode list
rosマスタで実行中のノードのリストを表示します。
rosnode info [ノード名]
指定したノードの情報を表示します。トピックのSubscriberとPublisherの情報も確認できるので非常に便利。
ROSのnodeは必要なトピックがないと動作しないのでこれでシラミツブシに調べました。

####トピックコマンド

rostopic list
rosマスタで登録されている全てのトピックのリストを表示します。
rostopic echo[トピック名]
指定したトピックのメッセージの内容をリアルタイムで表示します。
rostopic type [トピック名]
指定したトピックのメッセージ型を表示します。
自分でパッケージ作ってSubscriberとかPublisherとか作るときにメッセージの型を確認するために使います。
rostopic info [トピック名]
指定したトピックの情報を表示します。

####パラメーターコマンド

rosparam list
roscoreに登録されている全てのパラメータを表示します。
rosparam set [パラメータ名]
指定したパラメータの値を設定します。

####ツールコマンド

rosbag record [オプション] [トピック名]
指定したトピックのメッセージをbagファイルに記録します。
rosbag play [ファイル名]
指定したbagファイルを再生します。
roswtf [launchファイル名]
launchファイルの不具合を見つける。Autowareはバージョンによってパラメータが異なるので確認するのにすごく便利。
rosrun rviz rviz
rvizを起動する
rosrun rqt_graph rqt_graph
システム進行状況・挙動を示す,動的なグラフを生成します。
いま起動しているノードやPubSubされているメッセージを確認するのにすごく便利。
rosrun tf view_frames
view_framesは現在のtfの構成を可視化してPDFグラフを作るデバッグツールです。

####参考図書
ROS-melodicの本なかなかないです。(あったら教えてください)
そして全部目を通せてないので積み本になりかけ。
・ROSロボットプログラミングバイブル -Amazonリンク
・実用ロボット開発のためのROSプログラミング (日本語) -Amazonリンク
・プログラミングROS ―Pythonによるロボットアプリケーション開発 (オライリー・ジャパン)  -Amazonリンク ←分厚い
・トランジスタ技術 2020年 9月号 ロボット1日開発 初めてのROS&位置推定 -CQ出版社リンク ←トランジスタ技術でもROSでロボット作ってる特集があるので参考になります。
・ロベールのC++入門講座 -Amazonリンク  ←分厚くてびびった(最近ようやく読み始めた)
・OpenCVによるコンピュータビジョン・機械学習入門 -Amazonリンク←C++とpython両方のコードが載っています。
(ROSはOpenCV3系までしか対応してない)

##まとめ
結局ROSはむずかしいことがわかりました。Autowareなんてさらに複雑。
ということでこれからもよろしくお願いいたします。
かなり長くなってしまったのでAutowareの使い方は別にまとめます。
(LGSVLを使ったAutowareの使い方についてご紹介。)

##3. 参考リンク
ROSTutorials 
ROS Japan UG
ROS講座 
Raspberry Pi Mouse V3
Welcome to Mashykom WebSite
ROS MelodicでTurtlebot3をGazeboで動かしてついでにSLAMする
ROS CHEAT SHEET MELODIC
MRS lab ROS platform Cheat Sheet
ROBOTIS e-Manual 
raspimouse_ros_examples 
よく使用するROSコマンド 
ROS(Robot Operating System)を使う 
ROS tf 
ROS common_msgs 
ROS Japan UGのSlack
ROS Japan UGのSlack登録フォーム
OpenCVによるコンピュータビジョン・機械学習入門

★HTMLタグリファレンス(目的別) 

7
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?