educationdemura.nethomeeducationprofileodedownloadteamwrslinkROS演習4:双方向通信しよう!(サービス)lecture2016.11.11この記事は私が担当している講義ロボットプログラミングII用です。今回はROSのサービスを理解しましょう。Wikiを参考にしています。C++でシンプルなサービスとクライアントを書くシンプルなサービスとクライアントを実行してみるサービスはROSの通信方法の一つで、双方向通信に使います。ある仕事をお願いするクライアントとそれを処理して返すサーバーからなります。今回、作成するプログラムは速度指令値を送るクライアントと、それをロボットへ伝え(リクエスト)、ロボットから現在の速度を取得しクライアントに返す(レスポンス)サーバーです。次の手順でやりましょう。この例は、前回学んだトピック通信も入れていますので、実践的な内容です。roscpp2.srvファイルの作成。srvファイルはやり取りするデータの型を表すテキストファイル。拡張子がsrv、この例のファイル名はWheel.srv。Wheel.srv内容は次のコード。——-の上が入力(リクエスト)、下が出力(レスポンス)を表す。current_angular_velocityがリスポンスされる。3.Package.xmlの変更~/catkin_ws/src/my_service/Package.xmlの35、39行目のコメントタグを次のように外す。message_runtimeを有効にする必要あり。<run_depend>message_runtime</run_depend>4.CMakeLists.txtの変更~/catkin_ws/src/my_service/CMakeLists.txtの11行目、std_msgsの下にmessage_generationを追加。)のコメントを外し、次にする。5.ビルドソースコードを書く前にサービスのライブラリを作成するためにcatkin_makeしてビルドする。CMakelists.txtに間違えがないか確認し、直して再度ビルド。6.サービスサーバーのソースコード作成では、依頼された仕事を処理するサーバープログラムを作ります。次のプログラムをgeditなどを使いwheel_server.cppというファイル名を付けて~/catkin_ws/src/my_service/src/wheel_server.cppと保存。一字でも打ち間違えると動かないのでコピペする。次に仕事を依頼するのクライアントのソースコートを作成する。以下のソースコードをwheel_client.cppという名前で~/catkin_ws/src/my_service/src/wheel_client.cpp保存する。wheel_serverサーバーは次のように表示される。wheel_clientクライアントはキーボードから入力(速度指令値)をサーバーへ送る。速度指令値が最小、最大値の範囲外ならエラーを返す。それ以外は、シミュレータ上のロボットが動きます。うまく動かない場合は、打ち間違えや手順に間違いがないか確認し、再度実行しましょう。今回のソースコードをまとめてここmy_service.tgzに置いておきます。解凍の仕方は次の通り。Kobukiでナビゲーションこの回では、ROSのナビゲーションパッケージと前回作成した地図を使いKobukiを自動でナビゲーションします。ロボットアームと位置センサ今週は先週作った2自由度のロボットアームの先端に位置センサを取り付け、先端位置を取得するプログラムを作ります。gazeboのロボットモデルに位置センサを取り付けるために、~/catkin_ws/s...lectureロボットプログラミングII-2017:環境設定この記事は私が担当している講義ロボットプログラミングII用です。ロボットプログラミングIIでは、フレームワークとしてROSロボットシミュレータとしてGAZEBOを使用します。インストールは次の手順です。gazeboのインストールこの記事は私が担当している講義ロボットプログラミングII用です。ここでは、VirtualBox、Ubuntu12.04のインストールが終わっているものとして、gazeboをインストールします。GAZEBO初体験ロボットプログラミングIIの3週目。今週はLinuxの基礎とgazeboを初体験します。Gaze...lectureロボットプログラミングII:VirtualBoxとUbuntu12.04のインストールこの記事は私が担当している講義ロボットプログラミングII用です。ここでは、仮想ハードディスクのイメージを使いVirtualBox4.3.16へUbuntu12.04をインストールする方法を紹介します。コメントをキャンセルメールアドレスが公開されることはありません。コメントデータの処理方法の詳細はこちらをご覧ください。(3)タイトルとURLをコピーしました。