𝖄𝕺🌎𝕿𝕽𝕺¥

𝖄𝕺🌎𝕿𝕽𝕺¥

𝕴 𝖉𝖔 𝖒𝖆𝖌𝖎𝖈
github

ROS1 基礎およびよく使用されるコマンド ノート

ros#

roslaunch#

launch multiple ROS Nodes via launch files.

roslaunch {パッケージ名} {launchファイル}
roslaunch turtlebot3_gazebo turtlebot3_empty_world.launch

rosnode#

アクティブな ROS ノードに関する情報を表示します。

rosnode list

rosrun#

ROS パッケージ内の実行可能ファイルを実行します。

rosrun {パッケージ名} {スクリプト名}
rosrun rqt_graph rqt_graph

rostopic#

アクティブな ROS トピックに関する情報を表示します。

rostopic list
rostopic list | grep /camera     //'/camera'に関連するトピックのみを表示するためにフィルタリングします。

rostopic info /{トピック名}
$ rostopic info /cmd_vel

<!-- echo:これらのメッセージの要素に具体的にドリルダウンして、その値を調べます -->
$ rostopic echo /chatter      //chatterトピックに公開されているメッセージを表示します。
$ rostopic echo -h    // 追加のオプション
$ rostopic echo /chatter -n2      // 2つのセットの情報を表示するために-n2を設定します。

$ rostopic echo -c /odom      //odom

rostopic pub {トピック名} {メッセージタイプ} {データ}     //コマンドラインからアクションを呼び出すために使用します。

rosmsg#

ROS アプリケーションで使用できるすべての ROS メッセージに関する情報を表示します。

rosmsg info {タイプ}      //タイプは'rostopic info'で取得します
$ rosmsg info geometry_msgs/Twist

rosservice#

Type を取得でき、Type はこのサービスが使用するメッセージのタイプを示します。Rosrun、次に rosservice call を実行し、両方のターミナルで出力を取得します。Rosrun は、設定されている場合にプリントを取得します。rosservice call は応答(例:response_signal、response_message)を返します。

rosservice list
rosservice info /{サービス名}

$ rosservice info /move_service    //名前は'service_name = "move_service"'にする必要があります
$ rosservice call /move_service[SPACE][TAB]

rossrv info#

アクションには役に立ちません
サービスのリクエストとレスポンスを表示します。

rossrv info {タイプ}
$ rossrv info tuos_ros_msgs/SetBool

<!-- 出力の例 -->

bool request_signal     <-- リクエスト
---
bool response_signal    <-- レスポンス(パラメータ1/2)
string response_message <-- レスポンス(パラメータ2/2)

chmod#

読み取りまたは書き込みの権限を設定します。

chmod +x publisher.py

catkin_create_pkg#

catkin_create_pkg week1_pubsub std_msgs rospy

catkin build#

catkin build week1_pubsub
source ~/.bashrc    //ビルド後に実行する必要があります

roscore#

ROS マスターを起動します。ROS が機能するために必要なベースラインノードとプログラム。ROS マスターを再起動します。

roscore

backup#

wsl_ros backup

restore#

wsl_ros restore

eog#

コマンドラインで画像を開きます。

eog .

アプリケーション#

サーバー#

サーバーを最初に実装し、その後クライアントを実装します。
サーバーとクライアントは同じトピック名を持つ必要があります。

クライアント#

client.py からのリクエスト、server.py へのレスポンス

サービス#

......

アクション#

rostopic#

  • rostopic list:ネットワーク上で利用可能なアクションサーバーを特定します。
  • rostopic echo:指定されたアクションサーバーが公開しているメッセージを表示します。
  • rostopic pub:コマンドラインからアクションを呼び出します。

どのパラメータが必要かを取得する#

  • rostopic info:アクションサーバーの情報形式を取得します。{Type} をコピーします。
  • rosmsg info {Type}

手順:#

  • クライアントをクラスとして初期化するか、オブジェクトとして設定する
    名前、レート、パラメータ、クライアントはサーバーを待機する必要があります
    シャットダウンオプションを持つことができます

  • feedback_callback 関数を設定します
    パネルに印刷することができます
    このクライアントの関数自体ではなく、サーバーによって自動的に呼び出されます。

  • ゴールを設定します
    client.send_goal(self.goal, feedback_cb=self.feedback_callback)のようなクライアント内の send_goal 関数を含みます。

  • メインループ
    whileを持つことができます
    ブール値を変更してshutdown_opsにすることができます

  • shutdown_ops 関数
    if条件を設定してrospy.logwarn()を実行する必要があります
    関数内に結果を表示する必要があります

  • if __name__ == '__main__':の部分
    tryexceptを持つ場合があります

プロセス:#

  • クライアント --- ゴール ---> サーバー :1 回だけ
    rostopic pub {goal}[Tab][Space]

  • クライアント <--- フィードバック --- サーバー :更新があるたびに

クライアントのコールバック関数は、サーバーによって自動的に呼び出されます。

  • クライアント <--- ステータス --- サーバー

ステータス値はサーバーによって判断され、クライアントに送信されます

  • クライアント <--- 結果 --- サーバー

client.get_result()を使用して、client.py 内で値を取得できます

その他#

from geometry_msgs.msg import Twist
Twist は Type です
geometry_msgs は Package です

トピックベース:他のノードが理解できる

サービス:低リスク、高速、操作または計算

アクション:長時間かかる場合があり、失敗する可能性があります

読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。