すべてのチュートリアルは,チュートリアルのための作業スペースを作成していることを想定しています。もし,作成していないのであれば, こちら をご覧下さい。
ROS tutorial の作業スペースを作成する
以下では,チュートリアルのための環境設定の仕方を説明します。
Show EOL distros:
以下の内容で~/tutorials.rosinstall という名前のファイルを作成してください:
- other: { local-name: workspace }
ROS distro にオーバーレイするために以下の文を使用してください:
rosinstall ~/tutorials /opt/ros/%YOUR_ROS_DISTRO% ~/tutorials.rosinstall
%YOUR_ROS_DISTRO% に{ electric, fuerte } のどちらか,または使用しているdistroを入れて下さい。
この作業スペースを新しいターミナルを開いたときに いつでも使用できるよう,以下の分を追加し,ROSの環境を整えてください:
source ~/tutorials/setup.bash
これにより ~/tutorials/workspace を ROS_PACKAGE_PATHに追加することができます。
以下の内容で~/tutorials.rosinstall という名前のファイルを作成してください:
- other: { local-name: workspace }
ROS distro にオーバーレイするために以下の文を使用してください:
rosinstall ~/tutorials /opt/ros/%YOUR_ROS_DISTRO% ~/tutorials.rosinstall
%YOUR_ROS_DISTRO% に{ electric, fuerte } のどちらか,または使用しているdistroを入れて下さい。
この作業スペースを新しいターミナルを開いたときに いつでも使用できるよう,以下の文を追加し,ROSの環境を整えてください:
source ~/tutorials/setup.bash
これにより ~/tutorials/workspace を ROS_PACKAGE_PATHに追加することができます。
こちらのチュートリアルにしたがって catkin 作業スペースを作成して下さい。 リンク先のチュートリアルに記載されているsetup のスクリプトを忘れないようにしてください。
ディレクトリに作成したどのパッケージもrospackによって探すことができます。
スクリプトファイルを書く代わりに,.bashrcに追加することできますが,これがずっと残りつづけることに注意して下さい。また,一つの環境セットアップしか設定することができません。ここで何をしているかもっと知りたい場合は,こちらのページをご覧下さい。
actionlibのチュートリアルを始める前に,以下の依存関係を持つ,コードの例を動かすためのパッケージを作成してください。
$ cd %YOUR_CATKIN_WORKSPACE%/src $ catkin_create_pkg learning_actionlib actionlib message_generation roscpp rospy std_msgs actionlib_msgs
(もし,catkinパッケージを作成することに慣れていないのであれば,Creating_a_catkin_Package tutorialをご覧下さい。 (この時,リンク先のページでビルドシステムとして,catkinを選ぶことを忘れないようにしてください。)
$ roscd tutorials $ roscreate-pkg learning_actionlib actionlib roscpp rospy roslib std_msgs actionlib_msgs
learning_actionlib ディレクトリがROS_PACKAGE_PATHに含まれていることを確認してください. learning_actionlib/CMakeLists.txtの中のrosbuild_genmsg()のコメントを外し,ビルドしてください:
$ rosmake learning_actionlib
(Note: このチュートリアルでは common-0.5.0かそれ以降のバージョンを必要とします)
初心者向け Tutorials
In C++
- コールバックを用いてシンプルなアクションサーバーを書く
このチュートリアルではsimple_action_serverライブラリを用いてフィボナッチアクションサーバーを作ります。この例のアクションサーバーではフィボナッチ数列を生成し、ゴールは数列の大きさとし、フィードバックはそれまでの実行結果の数列とし、リザルトは最終的な数列とします。
- シンプルなアクションクライアントを書く
このチュートリアルではsimple_action_clientライブラリを用いたフィボナッチアクションクライアントを作ります。この例をプログラムではアクションクライアントを作ってアクションサーバーへゴールを送ります。
In Python
- Pythonでコールバックを用いてシンプルなアクションサーバーを書く
このチュートリアルではシンプルアクションサーバーを用いてフィボナッチアクションサーバーを実装します。この例ではアクションサーバーはフィボナッチ数列を生成し、ゴールは数列の大きさ、フィードバックは計算された数列、リザルトは最終の数列とします。
- Pythonでシンプルなアクションクライアントを書く
このチュートリアルではアクションクライアントライブラリを用いてフィボナッチシンプルアクションクライアントをPythonで書きます。
Execution
- アクションクライアントとサーバーを実行する
このチュートリアルではフィボナッチサーバーとクライアントを実行し、チャンネルの出力とノードのグラフをビジュアライズします。
中級者向け Tutorials
- ゴールコールバックメソッドを使ったシンプルなアクションサーバを書く
このチュートリアルは、simple_action_serverライブラリを使ってデータを平均化するアクションサーバについて扱います。この例はROSノードから入ってくるデータを処理またはデータに反応するためのアクションの使い方を示します。アクションサーバはROSノードからのデータを平均化し、ゴールはサンプル数で平均し、平均するサンプルの数であり、フィードバックはサンプル数、サンプルデータ、現在の平均、および現在の標準偏差で、結果はサンプルの要求された数の平均と標準偏差です。
- スレッドのシンプルなアクションクライアントを書く
このチュートリアルは、simple_action_clientライブラリを使って、平均化するアクションクライアントの作成を扱います。このサンプルプログラムはスレッドを回し、アクションクライアントを作成し、ゴールをアクションサーバーに送ります。
- アクションサーバとクライアントを他のノードとともに実行する
このチュートリアルは、平均化するアクションサーバとクライアントを他のデータノードと共に実行し、チャネルの出力とノードグラフを可視化について扱います。
上級者向け Tutorials
- Writing a Callback Based SimpleActionClient
Example of using callbacks for program flow that's more complicated than a simple, linear script.