This shows you the differences between two versions of the page.
tutorials:advanced:ros_tutorial [2016/06/17 08:57] wingcloud created |
tutorials:advanced:ros_tutorial [2021/04/01 13:52] |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | FIXME **This page is not fully translated, yet. Please help completing the translation.**\\ //(remove this paragraph once the translation is finished)// | ||
- | < | ||
- | ROS Tutorial | ||
- | ================ | ||
- | |||
- | ## | ||
- | - Ubuntu | ||
- | - ROS indigo | ||
- | - python 2.7 | ||
- | |||
- | ## | ||
- | 公式の日本語のROSページである[こちら](http:// | ||
- | |||
- | ## | ||
- | ROSを利用して開発を行うために、作業用ディレクトリを作成し、catkinコマンドで作業用ディレクトリを初期化します。 | ||
- | |||
- | ```bash | ||
- | $ mkdir -p ~/ | ||
- | $ cd ~/ | ||
- | $ catkin_init_workspace | ||
- | ``` | ||
- | |||
- | ```bash | ||
- | $ cd ~/catkin_ws | ||
- | $ catkin_make | ||
- | ``` | ||
- | |||
- | ROSを利用できる環境にするためsetup.bashを読み込みます。 | ||
- | |||
- | ```bash | ||
- | $ source ~/ | ||
- | ``` | ||
- | この作業は毎回必要となるため、「~/ | ||
- | |||
- | ```bash | ||
- | #source / | ||
- | source ~/ | ||
- | ``` | ||
- | を修正し、追加することでその作業を省略できます。 | ||
- | |||
- | ## | ||
- | ディレクトリを移動して、パッケージを作成します。 | ||
- | |||
- | ```bash | ||
- | $ cd ~/ | ||
- | ``` | ||
- | |||
- | ```bash | ||
- | $ catkin_create_pkg < | ||
- | ``` | ||
- | ここでもう一度catkin_makeを行います。 | ||
- | |||
- | ```bash | ||
- | $ cd ~/catkin_ws | ||
- | $ catkin_make | ||
- | $ source ~/ | ||
- | ``` | ||
- | これで自作のパッケージを利用することができます。 | ||
- | 確認のため | ||
- | |||
- | ```bash | ||
- | catkin_ws$ roscd < | ||
- | ``` | ||
- | をすると | ||
- | |||
- | ```bash | ||
- | catkin_ws/ | ||
- | ``` | ||
- | と移動できれば成功です。 | ||
- | |||
- | ## | ||
- | PLEN2はアクセスポイントになっています。PLEN2にはそれぞれ異なるアクセスポイントの名前と同じパスワードが設定されています。 | ||
- | |||
- | ```bash | ||
- | ssid: | ||
- | password: | ||
- | ``` | ||
- | |||
- | ## | ||
- | PLEN2に接続できたらifconfigコマンドを利用してPCに割り振られたIPアドレスを調べ、以下の様にROSの環境変数の設定を行います。 | ||
- | |||
- | ```bash | ||
- | export ROS_IP=< | ||
- | export ROS_HOSTNAME=< | ||
- | export ROS_MASTER_URI=http:// | ||
- | ``` | ||
- | この設定を行うことで異なるパソコン間でROSを利用することが可能となります。 | ||
- | |||
- | ## | ||
- | それでは簡単にPLEN2の目を点滅させてみます。言語はPythonを利用します。まずPythonのプログラムを保存するためにscriptsディレクトリを作成します。 | ||
- | |||
- | ```bash | ||
- | $ mkdir scripts | ||
- | $ cd scripts | ||
- | |||
- | ``` | ||
- | 以下のプログラムをpythonファイルとして保存します。 | ||
- | |||
- | ```python | ||
- | # | ||
- | |||
- | import rospy | ||
- | from std_msgs.msg import String | ||
- | |||
- | |||
- | def talker(): | ||
- | rospy.init_node(' | ||
- | pub = rospy.Publisher(' | ||
- | rate = rospy.Rate(1) | ||
- | hello_str = String() | ||
- | hello_str.data =" | ||
- | while not rospy.is_shutdown(): | ||
- | |||
- | if (" | ||
- | hello_str.data = " | ||
- | elif (" | ||
- | hello_str.data = " | ||
- | |||
- | rospy.loginfo(" | ||
- | pub.publish(hello_str) | ||
- | rate.sleep() | ||
- | |||
- | if __name__ == ' | ||
- | try: | ||
- | talker() | ||
- | except rospy.ROSInterruptException: | ||
- | pass | ||
- | |||
- | ``` | ||
- | このプログラムはPLEN2の目を一秒ごとに点滅させるものです。「PcToControl」という名前で「Topic」に「Publish」するとPLEN2はそのTopicを読んでくれます。 | ||
- | 最後に | ||
- | |||
- | ```bash | ||
- | $ chmod 755 < | ||
- | $ python < | ||
- | ``` | ||
- | で実行することができます。 | ||
- | |||
- | 他にもPublishする内容を変更することでPLEN2を動かしたりすることが可能です。例えば、スロット4のモーションを再生したい場合は | ||
- | |||
- | ``` | ||
- | serial, | ||
- | ``` | ||
- | としてPublishすることでPLEN2を動かすことができます。 | ||
- | |||
- | </ |