ROS入門チュートリアル(8) - クライアントライブラリ:rospy(上)

クライアントライブラリ

この概念の概念とAPIの我々の理解は非常に似ています。オファーROSは、基本的なプログラミングライブラリです。たとえば、次のように構築ノード、サービスたinvokeことを発表しました。これは、コールへの書き込みコードを助け、私たちを、基礎となる業務プロセスをカプセル化します。

roscpp、rospy、roslisp:クライアントライブラリはいくつかのバージョンがあります

roscppについての上位2話、この講義はrospy述べます。ノード、トピック、サービス、パラメータ、時間カテゴリを含むrospyインタフェース。

rospy

rospyノード関連

機能
init_node(名)#の登録と初期化ノード

import rospy 
rospy.init_node('my_node') # 没有返回值

MasterProxy

  • get_masterの()#GETハンドルマスター

BOOL

  • is_shutdown()#戻り、閉じたかどうか
  • ノードが閉じている場合(FN)#は関数fnを呼び出すon_shutdown

STR

  • get_node_uri()#戻りノードURI
  • get_name()#は、このノードの完全な名前を返します。
  • get_namespace()#は、現在のノードの名前空間を返します。
rospy-トピック関連

機能
[[STR1、STR2]] get_published_topics ()#のリターンすべてのトピック名がリリースされています(STR1)とタイプ(STR2)

メッセージ

  • wait_for_message(トピック、topic_type、TIME_OUT =なし)#1 の指定したトピックのための待機MSG

  • スピン()#トリガサービスまたは治療の話題は、近くまでブロックされます

出版社クラス

  • __init __(自己、名前、data_class、のqueue_size =なし)#コンストラクタ
  • メッセージを投稿する(自己、MSG)#メンバ関数を公開
  • 登録解除(自己)#メンバ関数公開を停止する
    場合が:
pub = rospy.Publisher('topic_name','topic_type',queue_size=None) #size=None相当于同步通信,大于零会为异步通信
pub.publish(msg)

加入者クラス

  • __init __(自己、名前、data_class、call_back =なし、のqueue_size =なし)#コンストラクタ
  • 登録解除(自己)#メンバ関数は、退会します
rospy-サービス関連

機能

wait_for_service(サービス、タイムアウト=なし) #は、 ブロックされたサービスが利用可能になるまで

サービスカテゴリ - >サーバー関連の
_init_(自己、名前、service_class、ハンドラ)#のコンストラクタサービス
のシャットダウン(自己)#メンバ関数は、サービスを停止します

ハンドラの場合:

def handler(req):
    pass
    return res #只传入请求,只传出响应

ServiceProxyクラス >クライアント関連-
要求者__init __(自己、名前、service_class )#のコンストラクタとサービス

応答

  • コール(自己、* argsを、** kwds)#コールサービス
  • __call __(自己、* argsを、** kwds)#コールサービス
client = ServiceProxy(...) //构造函数
client.call(req)
#或者
resp = client(req)
rospy-Paramの関連

機能

XmlRpcLegalValue

  • GET_PARAM(PARAM_NAME、デフォルト= _unspecified)#GETパラメータの値

[STR]

  • get_param_names()#は、パラメータの名前を取得します。
  • SET_PARAM(PARAM_NAME、param_valueに)#は、パラメータの値を設定します
  • delete_param(PARAM_NAME)#削除のパラメータ

BOOL

  • has_param(PARAM_NAME)#パラメーターは、サーバー・パラメータ上に存在します

STR

  • search_param()#検索パラメータ
rospy時刻関連

クラスの時間は - >時間を意味し、

__init __(自己、秒= 0 、NSECS = 0)# コンストラクタ
今の時間()#の静的メソッドは、現在時刻Timeオブジェクトを返します

場合:

rospy.Time(secs = 1, nsecs = 0)
# or
rospy.Time.now()

期間クラスは - >時間の期間を意味
__init __(自己、秒= 0 、NSECS = 0)#のコンストラクタ秒とナノ秒を

:減算演算時間、結果は、時間内にない時間と2回の加算と減算を変えることができます。

機能

時間

  • get_rostime()#タイム現在の目標時間

浮く

  • GET_TIME()#は、現在の時刻を返し、それが数秒でfloatを返します。
  • スリープ(期間)#は、実行を中断します

レートクラスの
__init __(自己、周波数)#コンストラクタ
スリープ(自己)と考えrate.sleep一度#がハングアップする()の時間

時間

  • 睡眠時間を残り、残りの(自己)#メンバ関数

ソースを記入してください。
本論文では、「AndroidのOSは、はじめに」MOOCの中国の大学をまとめた
リンク:リンク
ビデオキャプチャプログラムからの写真

公開された43元の記事 ウォン称賛20 ビュー1471

おすすめ

転載: blog.csdn.net/Chen_2018k/article/details/104346359