๐คTurtlesim
Turtlesim์ ROS 2 ํ์ต์ ์ํ ๊ฒฝ๋ ์๋ฎฌ๋ ์ดํฐ์ ๋๋ค. ์ด๋ ROS 2๊ฐ ๊ฐ์ฅ ๊ธฐ๋ณธ์ ์ธ ์์ค์์ ์ํํ๋ ์์ ์ ๋ณด์ฌ์ค์ผ๋ก์จ ๋์ค์ ์ค์ ๋ก๋ด์ด๋ ๋ก๋ด ์๋ฎฌ๋ ์ด์ ์ผ๋ก ๋ฌด์์ ํ ๊ฒ์ธ์ง์ ๋ํ ์์ด๋์ด๋ฅผ ์ ๊ณตํฉ๋๋ค.
์๋์ docs๋ฅผ ๋ฐ๋ผ turtlesim์ ์ค์นํ๊ณ ์คํํด๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค.
Using turtlesim, ros2, and rqt — ROS 2 Documentation: Foxy documentation
Open a new terminal and source ROS 2 again. At this point you should have three windows open: a terminal running turtlesim_node, a terminal running turtle_teleop_key and the turtlesim window. Arrange these windows so that you can see the turtlesim window,
docs.ros.org
turtlesim ํจํค์ง๋ฅผ ์์ฑํ๋ค๋ฉด ๋ค์๊ณผ ๊ฐ์ด ์์ฑํ ์ ์์ต๋๋ค.
์ด๋ฅผ ์คํํ๋ฉด ์๋์ ๊ฐ์ ํ๋ฉด์ ํ์ธํ ์ ์์ต๋๋ค.
์ดํ ์๋์ ๊ฐ์ CLI๋ฅผ ์ ๋ ฅํ์ฌ turtlesim์ ๊ฑฐ๋ถ์ด๋ฅผ ์์ง์ผ ์ ์์ต๋๋ค.
(ํด๋น ํฐ๋ฏธ๋ ์์์ ์ ์ ํ ํค๋ฅผ ์ ๋ ฅํด์ผํฉ๋๋ค.)
์ด์ ๊ฒ์๊ธ์์ ๋งํ๊ฒ๊ณผ ๊ฐ์ด Topic์ผ๋ก ์ฃผ๊ณ ๋ฐ๋ Message๋ integer, float, bool, string๊ณผ ๊ฐ์ data type ๋ฟ๋ง ์๋๋ผ ์ด๋ค์ ๋ฌถ์ ๋ฐ์ดํฐ ๊ตฌ์กฐ(Nested Structure)๋ฅผ ์ง์ํ๋ค.
์ด๋ฅผ ํ์ธํ๊ธฐ ์ํด์ CLI์ ๋ค์๊ณผ ๊ฐ์ด ์์ฑํ๋ค.
์ฌ๊ธฐ์๋ ๋ง์ฐฌ๊ฐ์ง๋ก Pub-Sub ๊ตฌ์กฐ๋ฅผ ๊ฐ์ง๊ณ ์๋๋ฐ "turtle_teleop_key" Node์์ Topic์ผ๋ก publish๋ฅผ ํ๋ฉด "turtlesim_node" ๊ฐ Topic์ผ๋ก ๋ถํฐ Subscribeํ๋ค๋ ๊ฒ์ ์ ์ ์์ต๋๋ค.
์์ง์์ ๋ ์๋์ ์ฝ๋๋ฅผ ํตํด์ ๊ฐ๋ค์ด ๋ณํ๋ค๋ ๊ฒ์ ์ ์ ์์ต๋๋ค.
์ฆ, "/turtle/cmd_vel"์ด๋ผ๋ ํ ํฝ์ "ros2 topic echo" ๋ช ๋ น์ด๋ก subscribeํ๊ณ ์๋ค๋ ๊ฒ์ ์ ์ ์์ต๋๋ค.
ํด๋น ํ ํฝ์ ๋ฉ์์ง ๊ตฌ์กฐ๋ 'linear' ์ 'angular' ๋ ๊ฐ์ง ์ฑ๋ถ์ผ๋ก ๊ตฌ๋ถ๋ฉ๋๋ค.
cmd_vel_publisher๋ผ๋ node๋ฅผ ์์ฑํด์ publish๋ฅผ ์งํํด๋ณด๊ฒ ์ต๋๋ค.
์์ ๊ทธ๋ฆผ๊ณผ ๊ฐ์ด cmd_vel_publisher์์ Vector3์ ๋ฐ์ดํฐ ๊ตฌ์กฐ๋ฅผ ๋ฉ์์ง๋ก publishํ๊ณ ์๋ค๋ ๊ฒ์ ์ ์ ์์ต๋๋ค.
์ค์ ๋ก ์๋์ ๊ฐ์ด topic์ ํ์ธํ์ ๋ linear, angular์ ์ ๋ณด๋ฅผ ๋ด์ ๋ฉ์์ง๊ฐ ๋ณด๋ด์ง๊ณ ์๋ค๋ ๊ฒ์ ์ ์ ์์ต๋๋ค.
'AI > ROS2' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ROS2] Service ์ค์ต(Call-And-Response) (0) | 2024.04.18 |
---|---|
[ROS2] Service (1) | 2024.04.18 |
[ROS2] Topic ์ค์ต(Pub-Sub) (0) | 2024.04.17 |
[ROS2] Topic (0) | 2024.04.17 |
[ROS2] ROS2 ์ค์น (0) | 2024.04.17 |