Service
Last updated
Last updated
ΠΠΎΠ΄Π΅Π»Ρ ΠΊΠΎΠΌΠΌΡΠ½ΠΈΠΊΠ°ΡΠΈΠΈ Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ Π‘Π΅ΡΠ²ΠΈΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ Π΄Π²ΡΠ½Π°ΠΏΡΠ°Π²Π»Π΅Π½Π½ΡΡ ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΡΡ ΡΠ²ΡΠ·Ρ ΠΌΠ΅ΠΆΠ΄Ρ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠΌ (Service Client), ΡΠΎΠ·Π΄Π°ΡΡΠΈΠΌ Π·Π°ΠΏΡΠΎΡ, ΠΈ ΡΠ΅ΡΠ²Π΅ΡΠΎΠΌ (Service Server), ΠΎΡΠ²Π΅ΡΠ°ΡΡΠΈΠΌ Π½Π° Π·Π°ΠΏΡΠΎΡ. Π‘ΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΎΡΡΡ Π² Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ Π΅ΡΠ»ΠΈ Π½Π°ΡΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΠΎΡΠΏΡΠ°Π²ΠΈΡ Π·Π°ΠΏΡΠΎΡ, ΡΠΎ Π΄ΠΎ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΠΎΡΠ²Π΅ΡΠ° ΠΎΡ ΡΠ΅ΡΠ²Π΅ΡΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π² ΡΡΠΎΠΉ ΡΠΎΡΠΊΠ΅ ΠΈ ΠΎΠΆΠΈΠ΄Π°Π΅Ρ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ.
ΠΠ°Π½Π½ΡΠΉ ΡΠΏΠΎΡΠΎΠ± ΡΠ΄ΠΎΠ±Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ ΠΏΠ΅ΡΠΈΠΎΠ΄ΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ Π΄Π°Π½Π½ΡΡ ΠΈΠ»ΠΈ ΠΊΠΎΠ³Π΄Π° ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΠΏΠΎΡΡΠ΅Π±Π½ΠΎΡΡΡ Π² ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΎΠΉ ΡΠ²ΡΠ·ΠΈ (ΡΠ΅ΠΆΠΈΠΌ Π·Π°ΠΏΡΠΎΡ-ΠΎΡΠ²Π΅Ρ).
Π‘Π΅ΡΠ²Π΅Ρ ΠΎΡΠ²Π΅ΡΠ°Π΅Ρ ΡΠΎΠ»ΡΠΊΠΎ ΡΠΎΠ³Π΄Π°, ΠΊΠΎΠ³Π΄Π° Π΅ΡΡΡ Π·Π°ΠΏΡΠΎΡ (Service Request) ΠΈ ΠΊΠ»ΠΈΠ΅Π½Ρ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΎΡΠ²Π΅Ρ (Service Response). Π ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΡΠ°Π±ΠΎΡΡ Ρ ΡΠΎΠΏΠΈΠΊΠ°ΠΌΠΈ, ΠΌΠΎΠ΄Π΅Π»Ρ ΡΠ΅ΡΠ²ΠΈΡ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Ρ "ΠΎΠ΄Π½ΠΎΡΠ°Π·ΠΎΠ²ΡΠΌΠΈ" ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡΠΌΠΈ. ΠΠΎΡΡΠΎΠΌΡ, ΠΊΠΎΠ³Π΄Π° ΡΠΈΠΊΠ» Π·Π°ΠΏΡΠΎΡ ΠΈ ΠΎΡΠ²Π΅Ρ Π·Π°Π²Π΅ΡΡΠ΅Π½, ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρ Π΄Π²ΡΠΌΡ Π½ΠΎΠ΄Π°ΠΌΠΈ Π±ΡΠ΄Π΅Ρ ΠΏΡΠ΅ΡΠ²Π°Π½ΠΎ.
Π€ΠΎΡΠΌΠ°Ρ Π·Π°ΠΏΡΠΎΡΠ° ΠΈ ΠΎΡΠ²Π΅ΡΠ° Π·Π°Π΄Π°Π΅ΡΡΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠΌ ΠΏΠ°ΡΠ½ΡΠΌ Π‘ΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ΠΌ (Message), Π² ΠΊΠΎΡΠΎΡΠΎΠΌ Π΅ΡΡΡ Π΄Π²Π° ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ: ΠΏΠ΅ΡΠ²ΠΎΠ΅ Π΄Π»Ρ Π·Π°ΠΏΡΠΎΡΠ° (Service Request), Π²ΡΠΎΡΠΎΠ΅ Π΄Π»Ρ ΠΎΡΠ²Π΅ΡΠ° (Service Response). Π€Π°ΠΉΠ»Ρ Ρ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ΠΌ ΡΠ΅ΡΠ²ΠΈΡΠΎΠ² Ρ
ΡΠ°Π½ΡΡΡΡ Π² Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ srv
ΠΈ ΠΈΠΌΠ΅ΡΡ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ .srv
ΠΠΎΠ΄ΡΠΎΠ±Π½ΠΎΠ΅ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΡΠ°ΠΉΠ»Π° Π΄ΠΎΡΡΡΠΏΠ½ΠΎ Π½Π° ΡΡΡΠ°Π½ΠΈΡΠ΅ wiki http://wiki.ros.org/rosbuild/srv
Π ΡΠ°ΠΉΠ»Π΅ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ ΡΠ΅ΡΠ²ΠΈΡΠ° ΠΏΠ΅ΡΠ²Π°Ρ ΡΠ°ΡΡΡ (Π΄ΠΎ ΡΠ°Π·Π΄Π΅Π»ΠΈΡΠ΅Π»Ρ ---) - ΡΡΠΎ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ Π·Π°ΠΏΡΠΎΡΠ°, Π΄Π°Π»Π΅Π΅ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΎΡΠ²Π΅ΡΠ°.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ srv/AddToInts.srv
ΠΡΠΈ ΡΡΠΎΠΌ, ΠΈΠΌΡ ΡΠ°ΠΉΠ»Π° AddToInts.srv
ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ ΠΈΠΌΠ΅Π½ΠΈ Π‘Π΅ΡΠ²ΠΈΡΠ° AddToInts.
ΠΠ»Ρ ΠΎΡΠ»Π°Π΄ΠΊΠΈ ΠΈ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠ΅ΡΠ²ΠΈΡΠΎΠ² ROS ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½Π°Ρ ΠΊΠΎΠ½ΡΠΎΠ»ΡΠ½Π°Ρ ΡΡΠΈΠ»ΠΈΡΠ° rosservice
:
ΠΡΠΈΠΌΠ΅ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ rosservice
:
ΠΡΠ·ΠΎΠ² ΡΠ΅ΡΠ²ΠΈΡΠ° service_name
c Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ°ΠΌΠΈ service-args
:
ΠΡΠ·ΠΎΠ² ΡΠ΅ΡΠ²ΠΈΡΠ° my_service
Ρ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ°ΠΌΠΈ 1 ΠΈ 2:
ΠΠ»Ρ ΡΠ»ΠΎΠΆΠ½ΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°ΠΌΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΈΡΠ°ΡΡ Π² YAML ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ:
ΠΠΎΠ΄ΡΠΎΠ±Π½ΠΎ ΠΎΠ± ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ YAML http://wiki.ros.org/ROS/YAMLCommandLine.
ΠΡΠ²ΠΎΠ΄ΠΈΡ ΡΠΏΠΈΡΠΎΠΊ Π°ΠΊΡΠΈΠ²Π½ΡΡ ΡΠ΅ΡΠ²ΠΈΡΠΎΠ².
ΠΡΠ²ΠΎΠ΄ΠΈΡ ΡΠΈΠΏ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅ΠΌΠΎΠ³ΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ.
ΠΡΠΈΠΌΠ΅Ρ Π²ΡΠ²ΠΎΠ΄ΠΈΡ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΡΠΈΠΏΠ° ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ Π΄Π»Ρ ΡΠ΅ΡΠ²ΠΈΡΠ°.