RSNPカスタムプロファイル

プロトコルスタック
共通ライブラリ

クライアントロボット側
・ロボット実装・カスタムプロファイル実装

・カスタムプロファイル通信
RSNP実装クライアントRobot（RSNP_RobotArm）
RSNP_RobotArm_profile_client
RSNP_Custom_Profile_lib
rary_client

RSNP_RobotArm_pr
ofile_common
RSNP_Custom_Profil
e_library_common

サービスRobot
RSNP_RobotArmService
RSNP_RobotArm_profile_service
RSNP_Custom_Profile_li
brary_service

RSNPクライアント（FJLIB）

RSNP_RSi_document

RSNPサービス（FJLIB）• RSNP実装••

FJLIBとRSiDocumentの層
RSNP_RSi_document• Rsi文書をJAXBで取り扱えるようにしたライブラリ。XMLスキーマから生成された単なるJavaオブジェクト• カスタムプロファイル通信••

Data_push_Profileを使用し、カスタムプロファイルを通信できるようにする。上位層のカスタムプロファイルをData_push_profileで運搬する。
カスタムプロファイルごとに実装を行う。実装担当者はカスタムプロファイル提供者。この場合はRobtoArm_profileを提供している。

• カスタムプロファイル実装••

カスタムプロファイルのIFをロボットに提供する層、下位層にはXMLを渡して通信を依頼する。
実装は１つのみで、ライブラリ実装担当者が実装を行う。

• ロボット実装•

サービスロボット側

カスタムプロファイル及びRSNPを使用して、通信を行うロボット

通信の仕様（CLtoSV）
サービスRobot
RSNP_RobotArmService

クライアントRobot（RSNP_RobotArm）
1.
JavaのIF呼び出し

14.
XMLをカスタムプロトコルの仕様に従いJavaの戻り値とするsRSNP_RobotArm_profile_service

RSNP_RobotArm_profile_cli
ent2.
呼び出し内容をXML化し、下位層へ13.
XMLをAttachedFileから取り出し、戻り値とする

RSNP_Custom_Profile_lib
rary_client3.
上位XMLを、下位XMLに内包し、Data_push_profile
にて送信

12.
RetValueを渡す

RSNPクライアント（FJLIB）

7.
XMLから呼び出し引数を生成し、JavaのIF呼び出し

8.
Ret_valueを作成し戻り値とする

9.
Ret_valueを下位層のXMLに内包し、戻り値とする

6.
下位XML内のXMLを取り出し、渡す

RSNP_Custom_Profile_li
brary_service

10.
XMLをRetValueのAttachedFileとして戻り値とす
る

11.
Data_push_profle
4.
Data_push_profile

5.
Data_push_profileのAccepterを呼び出す

RSNPサービス（FJLIB）*SVtoCLは逆の処理になります・カスタムプロファイル通信層 送信用XML• <?xml version="1.0" encoding="UTF-8" standalone="yes"?>• <ns4:custom_profile
xmlns:ns2="http://www.robotservices.org/schemas/custom_profile_header"
xmlns:ns4="http://www.robotservices.org/schemas/custom_profile"
xmlns:ns3="http://www.robotservices.org/schemas/custom_profile_body">• <ns2:custom_profile_header>•<custom_profile_name>カスタムプロファイル名</custom_profile_name>•<operation_name>オペレーション名</operation_name>• </ns2:custom_profile_header>• <ns3:custom_profile_body>•<xml>ここにXMLが入る</xml>• </ns3:custom_profile_body>• </ns4:custom_profile>カスタムプロファイル通信層 受信用XML• <?xml version="1.0" encoding="UTF-8" standalone="yes"?>• <ns3:custom_profile_ret_value
xmlns:ns2="http://www.robotservices.org/schemas/Custom_profile_Ret_v
alue_body"
xmlns:ns3="http://www.robotservices.org/schemas/custom_profile_ret_v
alue">• <custom_profile_Ret_value_header/>• <custom_profile_Ret_value_body>•<ret_value_xml>ここにXMLが入る</ret_value_xml>• </custom_profile_Ret_value_body>• </ns3:custom_profile_ret_value>RobotArmサンプル
Clientロボット

Serviceロボット
Sessionの開始

BasicProfile open
ClientからRobotArmの開始

RobotArmProfile startProfile
ServiceからClientのロボットアーム操作

RobotArmProfile moveArm
ClientからRobotArm終了

RobotArmProfile endProfile
Sessionの終了

BasicProfile close

動作確認方法• RSNP_RobotArmServiceをTomcatにて実行• RSNP_RobotArmのＭａｉｎを実行、サービスに接続される• 以下のＵＲＬを開く• http://localhost:8080/RSNP_RobotArmService/robotarm• 値を適当に入力後、送信を押すと、クライアントにmoveArmが送信される。
• クライアントにログが表示される

RobotArm StartProfile サンプル
• <?xml version="1.0" encoding="UTF-8" standalone="yes"?>• <ns2:robotarm_profile
xmlns:ns2="http://www.robotservices.org/schemas/Robot_arm_profile_start_profile"
xmlns="http://www.robotservices.org/schemas/V02/Common_profile">•<robo_header>•<version>2.2</version>•<direction>CLtoSV</direction>•<message_type>async</message_type>•<message_id>MessageId</message_id>•<reply_to_message_id>ReplyToMessageId</reply_to_message_id>•<last_reply>false</last_reply>•<timestamp>2015-03-09T17:01:36+09</timestamp>•</robo_header>• </ns2:robotarm_profile>RobotArm MoveArmProfileサンプル•<?xml version="1.0" encoding="UTF-8" standalone="yes"?>•<ns3:robotarm_profile xmlns:ns2="http://www.robotservices.org/schemas/V02/Common_profile"xmlns:ns3="http://www.robotservices.org/schemas/Robot_arm_profile_move_arm">•<ns2:robo_header>•<ns2:version>2.2</ns2:version>•<ns2:direction>CLtoSV</ns2:direction>•<ns2:message_type>async</ns2:message_type>•<ns2:message_id>MessageId</ns2:message_id>•<ns2:reply_to_message_id>ReplyToMessageId</ns2:reply_to_message_id>•<ns2:last_reply>true</ns2:last_reply>•<ns2:timestamp>2015-03-09T17:03:34+09</ns2:timestamp>•</ns2:robo_header>•<joint1_radian>1.0</joint1_radian>•<joint2_radian>2.0</joint2_radian>•<joint3_radian>3.0</joint3_radian>•<joint4_radian>4.0</joint4_radian>•<joint5_radian>5.0</joint5_radian>•</ns3:robotarm_profile>RobotArm endProfile サンプル
• <?xml version="1.0" encoding="UTF-8" standalone="yes"?>• <ns2:robotarm_profile xmlns:ns2="http://www.robotservices.org/schemas/Robot_arm_profile_end_profile"
xmlns="http://www.robotservices.org/schemas/V02/Common_profile">•<robo_header>•<version>2.2</version>•<direction>CLtoSV</direction>•<message_type>async</message_type>•<message_id>MessageId</message_id>•<reply_to_message_id>ReplyToMessageId</reply_to_message_id>•<last_reply>false</last_reply>•<timestamp>2015-03-09T17:11:21+09</timestamp>•</robo_header>• </ns2:robotarm_profile>