Study: Robotics(Robot)/Robot: ROS(Robot Operating Sytem)

[ROS] apt ์„ค์น˜ํ•œ ํŒจํ‚ค์ง€์™€ buildํ•œ ํŒจํ‚ค์ง€(catkin, colcon) ์ค‘ ์–ด๋–ค ๊ฒƒ์„ ์‚ฌ์šฉ?

DrawingProcess 2023. 11. 10. 16:17
๋ฐ˜์‘ํ˜•
๐Ÿ’ก ๋ณธ ๋ฌธ์„œ๋Š” 'apt ์„ค์น˜ํ•œ ํŒจํ‚ค์ง€์™€ buildํ•œ ํŒจํ‚ค์ง€(catkin, colcon) ์ค‘ ์–ด๋–ค ๊ฒƒ์„ ์‚ฌ์šฉ? '์— ๋Œ€ํ•ด ์ •๋ฆฌํ•ด๋†“์€ ๊ธ€์ž…๋‹ˆ๋‹ค.
ros๋ฅผ ์‚ฌ์šฉํ•˜๋‹ค๋ณด๋ฉด ํŒจํ‚ค์ง€๋ฅผ ์„ค์น˜ํ•˜๋Š” ๊ณผ์ •์€ ๋‘๊ฐ€์ง€๋กœ ๋‚˜๋‰˜๋Š”๋ฐ, ๋‘๊ฐ€์ง€ ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ์ •๋ฆฌํ•˜๊ณ  ๋‘ ๋ฐฉ๋ฒ•์—์„œ ๋™์ผํ•œ ํŒจํ‚ค์ง€๋ฅผ ์„ค์น˜ํ–ˆ์„ ๊ฒฝ์šฐ ์–ด๋–ค ๊ฒƒ์„ ์‚ฌ์šฉํ•˜๋Š”์ง€์— ๋Œ€ํ•ด ์ •๋ฆฌํ•˜์˜€์œผ๋‹ˆ ์ฐธ๊ณ ํ•˜์‹œ๊ธฐ ๋ฐ”๋ž๋‹ˆ๋‹ค.

apt ์„ค์น˜ํ•œ ํŒจํ‚ค์ง€ vs. buildํ•œ ํŒจํ‚ค์ง€(catkin, colcon)

Colcon(Catkin)์€ ROS(๋กœ๋ด‡ ์šด์˜ ์ฒด์ œ)์˜ ๋นŒ๋“œ ์‹œ์Šคํ…œ ์ค‘ ํ•˜๋‚˜๋กœ, ROS ํŒจํ‚ค์ง€ ๋ฐ ์ปดํฌ๋„ŒํŠธ๋ฅผ ๋นŒ๋“œํ•˜๊ณ  ๊ด€๋ฆฌํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ๋ฐ˜๋ฉด apt๋Š” Debian ๋ฐ Ubuntu ๊ธฐ๋ฐ˜์˜ ๋ฆฌ๋ˆ…์Šค ์‹œ์Šคํ…œ์—์„œ ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ๋ฅผ ์œ„ํ•œ ๋„๊ตฌ์ธ Advanced Package Tool์˜ ์•ฝ์ž์ž…๋‹ˆ๋‹ค.

Colcon(Catkin)์„ ์‚ฌ์šฉํ•˜์—ฌ ROS ํŒจํ‚ค์ง€๋ฅผ ๋นŒ๋“œํ•˜๊ณ  apt๋กœ ํŒจํ‚ค์ง€๋ฅผ ์„ค์น˜ํ•˜๋Š” ๊ฒƒ์€ ๋‹ค๋ฅธ ๋ชฉ์ ์„ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ฐจ์ด์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค:

Colcon(Catkin)์„ ์‚ฌ์šฉํ•˜์—ฌ ํŒจํ‚ค์ง€๋ฅผ ๋นŒ๋“œํ•˜๋Š” ๊ฒฝ์šฐ:

  • ROS ํŒจํ‚ค์ง€๋ฅผ ์ปค์Šคํ„ฐ๋งˆ์ด์ง•ํ•˜๊ฑฐ๋‚˜ ๊ฐœ๋ฐœ ์ค‘์ธ ๊ฒฝ์šฐ Catkin์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
  • ROS ํŒจํ‚ค์ง€์˜ ๋นŒ๋“œ, ์˜์กด์„ฑ ๊ด€๋ฆฌ ๋ฐ ํŒจํ‚ค์ง€๋ฅผ ๊ฐœ๋ณ„์ ์œผ๋กœ ๊ฐœ๋ฐœ ๋ฐ ํ…Œ์ŠคํŠธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์ผ๋ถ€ ROS ํŒจํ‚ค์ง€๋Š” ์†Œ์Šค ์ฝ”๋“œ ํ˜•ํƒœ๋กœ ์ œ๊ณต๋˜๋ฏ€๋กœ, ์—ฌ๋Ÿฌ ํŒจํ‚ค์ง€๋ฅผ ์ˆ˜์ •ํ•˜๊ฑฐ๋‚˜ ROS ์›Œํฌ์ŠคํŽ˜์ด์Šค์— ์ถ”๊ฐ€ํ•˜์—ฌ ๊ฐœ๋ฐœํ•˜๋Š” ๊ฒฝ์šฐ Catkin์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

apt๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํŒจํ‚ค์ง€๋ฅผ ์„ค์น˜ํ•˜๋Š” ๊ฒฝ์šฐ:

  • ์‹œ์Šคํ…œ์— ROS ๋ฐ ๋‹ค๋ฅธ ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ์‰ฝ๊ฒŒ ์„ค์น˜ํ•˜๊ณ  ์—…๋ฐ์ดํŠธํ•  ๋•Œ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
  • ์‹œ์Šคํ…œ ์ˆ˜์ค€์˜ ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ๋ฅผ ์ œ๊ณตํ•˜๋ฉฐ, ๊ธฐ์กด์˜ ํŒจํ‚ค์ง€๋ฅผ ์—…๋ฐ์ดํŠธํ•˜๊ฑฐ๋‚˜ ์ƒˆ ํŒจํ‚ค์ง€๋ฅผ ์„ค์น˜ํ•  ๋•Œ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.
  • ๊ธฐ์กด์˜ ๊ณต์‹ ROS ํŒจํ‚ค์ง€ ๋ฐ ๋‹ค๋ฅธ ์†Œํ”„ํŠธ์›จ์–ด ํŒจํ‚ค์ง€๋ฅผ ํŽธ๋ฆฌํ•˜๊ฒŒ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ผ๋ฐ˜์ ์œผ๋กœ ๊ฐœ๋ฐœ ์ค‘์ธ ROS ํŒจํ‚ค์ง€๋ฅผ ๋นŒ๋“œํ•˜๋ ค๋ฉด Catkin์„ ์‚ฌ์šฉํ•˜๊ณ , ์‹œ์Šคํ…œ ์ˆ˜์ค€์˜ ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ ๋ฐ ์ข…์†์„ฑ ํ•ด๊ฒฐ์„ ์œ„ํ•ด apt๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๋‘ ๊ฐ€์ง€ ๋„๊ตฌ๋Š” ์„œ๋กœ ๋ณด์™„์ ์ธ ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค.

apt ์„ค์น˜ํ•œ ํŒจํ‚ค์ง€์™€ buildํ•œ ํŒจํ‚ค์ง€(catkin, colcon) ์ค‘ ์–ด๋–ค ๊ฒƒ์„ ์‚ฌ์šฉ? 

๊ฒฐ๋ก ๋ถ€ํ„ฐ ๋งํ•˜๋ฉด, "์›Œํฌ์ŠคํŽ˜์ด์Šค์˜ sourcing ์ˆœ์„œ์— ๋”ฐ๋ผ ๊ฐ€์žฅ ๋‚˜์ค‘์— ์†Œ์‹ฑํ•œ ์›Œํฌ์ŠคํŽ˜์ด์Šค๊ฐ€ ์šฐ์„ "์ž…๋‹ˆ๋‹ค.

ROS๋ฅผ ์„ค์น˜ํ•˜๋Š” ๊ณผ์ •์—์„œ ๋‹ค์Œ์˜ ๋ช…๋ น์–ด๋ฅผ ๋ณด์‹  ์  ์žˆ์„ ๊ฒ๋‹ˆ๋‹ค.

source /opt/ros/foxy/setup.bash; 
source ~/colcon_ws/install/setup.bash;

์œ„ ๋ช…๋ น์–ด๋Š” ํ•ด๋‹น ํŒŒ์ผ ์ƒ์œ„์— ์„ค์น˜๋œ ํŒจํ‚ค์ง€๋“ค์„ ์ฝ์–ด๋“ค์ด๋Š”(์†Œ์‹ฑ) ๊ณผ์ •์ž…๋‹ˆ๋‹ค. ์ €๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์‚ฌ์šฉํ•˜์—ฌ ROS๋ฅผ ์‚ฌ์šฉํ• ๋•Œ ํ•ญ์ƒ ๋จผ์ € ์‹คํ–‰์‹œ์ผœ์ฃผ๋Š” ๋ช…๋ น์–ด๋“ค์ธ๋ฐ์š”

alias noetic="source /opt/ros/noetic/setup.bash; source ~/catkin_ws/devel/setup.bash; echo \"Noetic is Activated\""
alias foxy="source /opt/ros/foxy/setup.bash; source ~/colcon_ws/install/setup.bash;  echo \"Foxy is Activated\""

์ด๋ ‡๊ฒŒ ๊ด€์Šต(?)์ ์œผ๋กœ ์‹คํ–‰์‹œ์ผœ์ฃผ๋Š” ๋ช…๋ น์–ด๊ฐ€ ์šฐ๋ฆฌ๊ฐ€ ์„ค์น˜ํ•œ ํŒจํ‚ค์ง€์˜ ์œ„์น˜๋ฅผ ์ฝ์–ด๋“ค์ด๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ sourcingํ•œ ์ˆœ์„œ์— ๋”ฐ๋ผ์„œ ๋‚˜์ค‘์— ์†Œ์‹ฑํ•œ ์›Œํฌ์ŠคํŽ˜์ด์Šค์˜ ํŒจํ‚ค์ง€๋ฅผ ์ฝ์–ด๋“ค์ด๊ฒŒ ๋˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋ฐ˜์‘ํ˜•