Найти Π² Π”Π·Π΅Π½Π΅
Stepan.Burmistrov

πŸ›Ž Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ сСрвисы Π² ROS2 ΠΈ Π·Π°Ρ‡Π΅ΠΌ ΠΎΠ½ΠΈ Π½ΡƒΠΆΠ½Ρ‹

πŸ›Ž Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ сСрвисы Π² ROS2 ΠΈ Π·Π°Ρ‡Π΅ΠΌ ΠΎΠ½ΠΈ Π½ΡƒΠΆΠ½Ρ‹? ΠœΡ‹ ΡƒΠΆΠ΅ познакомились с Ρ‚ΠΎΠΏΠΈΠΊΠ°ΠΌΠΈ β€” простым способом постоянного ΠΎΠ±ΠΌΠ΅Π½Π° Π΄Π°Π½Π½Ρ‹ΠΌΠΈ ΠΌΠ΅ΠΆΠ΄Ρƒ Π½ΠΎΠ΄Π°ΠΌΠΈ. Но Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ, Ссли Π½ΡƒΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ запрос? πŸ‘‰ НапримСр: β€” Β«Π‘ΠΎΡ…Ρ€Π°Π½ΠΈ ΠΊΠ°Ρ€Ρ‚ΡƒΒ» β€” Β«Π‘Π±Ρ€ΠΎΡΡŒ ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ Ρ€ΠΎΠ±ΠΎΡ‚Π°Β» β€” Β«Π’ΠΊΠ»ΡŽΡ‡ΠΈ/Π²Ρ‹ΠΊΠ»ΡŽΡ‡ΠΈ Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅Β» β€” Β«Π”Π°ΠΉ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π΅ состояниС Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠ°Β» Для Ρ‚Π°ΠΊΠΈΡ… Π·Π°Π΄Π°Ρ‡ Π² ROS2 Π΅ΡΡ‚ΡŒ сСрвисы (service). πŸ”§ БСрвис = запрос + ΠΎΡ‚Π²Π΅Ρ‚ (ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΠΈ-API Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ€ΠΎΠ±ΠΎΡ‚Π°) БСрвис Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΎΡ‡Π΅Π½ΡŒ просто: 1️⃣ ΠΎΠ΄Π½Π° Π½ΠΎΠ΄Π° Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ сСрвис β†’ отправляСт запрос 2️⃣ другая Π½ΠΎΠ΄Π° ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ β†’ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΎΡ‚Π²Π΅Ρ‚ Π’ΠΎΠΏΠΈΠΊΠΈ β€” это ΠΏΠΎΡ‚ΠΎΠΊ сообщСний πŸ“‘ БСрвисы β€” это Π΄ΠΈΠ°Π»ΠΎΠ³ πŸ›Ž 🧠 Когда Π½ΡƒΠΆΠ½Ρ‹ сСрвисы? βœ”οΈ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ/Π²Ρ‹ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ βœ”οΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ βœ”οΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ дСйствиС ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π· βœ”οΈ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ состояниС Ρ€ΠΎΠ±ΠΎΡ‚Π° Π­Ρ‚ΠΎ Π½Π΅ ΠΏΠΎΡ‚ΠΎΠΊ Π΄Π°Π½Π½Ρ‹Ρ…, Π° ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΈΠ»ΠΈ запрос. 🧰 ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΈΠ· ΡƒΡ€ΠΎΠΊΠ° Π’ нашСм Π½ΠΎΠ²ΠΎΠΌ ΡƒΡ€ΠΎΠΊΠ΅ ΠΌΡ‹ создаём сСрвис, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ: β€” ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ запрос (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, «стартуСм Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅Β»), β€” мСняСт состояниС Π½ΠΎΠ΄Ρ‹, β€” Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½ΠΈΠ΅. И это супСр-ΠΏΠΎΠ»Π΅Π·Π½ΠΎ β€” Ρ€ΠΎΠ²

πŸ›Ž Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ сСрвисы Π² ROS2 ΠΈ Π·Π°Ρ‡Π΅ΠΌ ΠΎΠ½ΠΈ Π½ΡƒΠΆΠ½Ρ‹?

ΠœΡ‹ ΡƒΠΆΠ΅ познакомились с Ρ‚ΠΎΠΏΠΈΠΊΠ°ΠΌΠΈ β€” простым способом постоянного ΠΎΠ±ΠΌΠ΅Π½Π° Π΄Π°Π½Π½Ρ‹ΠΌΠΈ ΠΌΠ΅ΠΆΠ΄Ρƒ Π½ΠΎΠ΄Π°ΠΌΠΈ.

Но Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ, Ссли Π½ΡƒΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ запрос?

πŸ‘‰ НапримСр:

β€” Β«Π‘ΠΎΡ…Ρ€Π°Π½ΠΈ ΠΊΠ°Ρ€Ρ‚ΡƒΒ»

β€” Β«Π‘Π±Ρ€ΠΎΡΡŒ ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ Ρ€ΠΎΠ±ΠΎΡ‚Π°Β»

β€” Β«Π’ΠΊΠ»ΡŽΡ‡ΠΈ/Π²Ρ‹ΠΊΠ»ΡŽΡ‡ΠΈ Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅Β»

β€” Β«Π”Π°ΠΉ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π΅ состояниС Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠ°Β»

Для Ρ‚Π°ΠΊΠΈΡ… Π·Π°Π΄Π°Ρ‡ Π² ROS2 Π΅ΡΡ‚ΡŒ сСрвисы (service).

πŸ”§ БСрвис = запрос + ΠΎΡ‚Π²Π΅Ρ‚

(ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΠΈ-API Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ€ΠΎΠ±ΠΎΡ‚Π°)

БСрвис Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΎΡ‡Π΅Π½ΡŒ просто:

1️⃣ ΠΎΠ΄Π½Π° Π½ΠΎΠ΄Π° Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ сСрвис β†’ отправляСт запрос

2️⃣ другая Π½ΠΎΠ΄Π° ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ β†’ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΎΡ‚Π²Π΅Ρ‚

Π’ΠΎΠΏΠΈΠΊΠΈ β€” это ΠΏΠΎΡ‚ΠΎΠΊ сообщСний πŸ“‘

БСрвисы β€” это Π΄ΠΈΠ°Π»ΠΎΠ³ πŸ›Ž

🧠 Когда Π½ΡƒΠΆΠ½Ρ‹ сСрвисы?

βœ”οΈ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ/Π²Ρ‹ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ

βœ”οΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ

βœ”οΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ дСйствиС ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π·

βœ”οΈ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ состояниС Ρ€ΠΎΠ±ΠΎΡ‚Π°

Π­Ρ‚ΠΎ Π½Π΅ ΠΏΠΎΡ‚ΠΎΠΊ Π΄Π°Π½Π½Ρ‹Ρ…, Π° ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΈΠ»ΠΈ запрос.

🧰 ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΈΠ· ΡƒΡ€ΠΎΠΊΠ°

Π’ нашСм Π½ΠΎΠ²ΠΎΠΌ ΡƒΡ€ΠΎΠΊΠ΅ ΠΌΡ‹ создаём сСрвис, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ:

β€” ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ запрос (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, «стартуСм Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅Β»),

β€” мСняСт состояниС Π½ΠΎΠ΄Ρ‹,

β€” Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½ΠΈΠ΅.

И это супСр-ΠΏΠΎΠ»Π΅Π·Π½ΠΎ β€” Ρ€ΠΎΠ²Π½ΠΎ Ρ‚Π°ΠΊ ΠΌΡ‹ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΡƒΠ΅ΠΌ Ρ€Π°Π±ΠΎΡ‚Ρƒ Π½ΠΎΠ΄Ρ‹, которая ΠΈΡ‰Π΅Ρ‚ линию ΠΈ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ/Π²Ρ‹ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ ΠΏΠΎ запросу.

πŸŽ“ Π£Ρ€ΠΎΠΊ здСсь β€” ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ посмотритС:

https://stepik.org/lesson/1601956/step/1?unit=1623601

Π’Π°ΠΌ Π²Ρ‹ создадитС свой ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ сСрвис, ΠΏΠΎΠΉΠΌΡ‘Ρ‚Π΅ Π΅Π³ΠΎ структуру ΠΈ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅, Ρ‡Π΅ΠΌ ΠΎΠ½ отличаСтся ΠΎΡ‚ Ρ‚ΠΎΠΏΠΈΠΊΠΎΠ².