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__':
の部分
try
、except
を持つ場合があります
プロセス:#
-
クライアント --- ゴール ---> サーバー :1 回だけ
rostopic pub {goal}[Tab][Space]
-
クライアント <--- フィードバック --- サーバー :更新があるたびに
クライアントのコールバック関数は、サーバーによって自動的に呼び出されます。
- クライアント <--- ステータス --- サーバー
ステータス値はサーバーによって判断され、クライアントに送信されます
- クライアント <--- 結果 --- サーバー
client.get_result()
を使用して、client.py 内で値を取得できます
その他#
from geometry_msgs.msg import Twist
Twist は Type です
geometry_msgs は Package です
トピックベース:他のノードが理解できる
サービス:低リスク、高速、操作または計算
アクション:長時間かかる場合があり、失敗する可能性があります