본 글은 제가 직접 쓴 글이 아니라, 저희 PinkLAB의 유투브 채널의 공개 강의 영상들을 읽고, 따라한 한 수강생의 글을 제 블로그에 공유한 내용입니다.
https://www.youtube.com/watch?v=7_KSuOtNxes
안녕하세요!
오늘은 [ HSV 색 체계를 이용한 채도, 명도 조절 패키지 사용해보기 - 실습 ] 을 주제로 공부 해 봤어요.
지금 현재, 우리는 R2R 실전편에서 OpenCV 부분을 하고있어요.
지난 시간에는 HSV converter 라는 걸 만들었는데요,
이번 시간 수업은 그걸 실제로 보게 되는 시간이에요. ( 두구두구 ㅋ_ㅋ )
구글 창에서 " pinkwink github opencv tutorials for ros2 " 검색 하면 바로 떠요!
repositories 로 가서요, opencv_tutorials_for_ROS2 여기로 가면 돼요.
branch 가 없기때문에 상단의 주소 창을 클릭해서 그대로 복사 해도 되구요,
💚초록 박스의 <>code 클릭 해서 복사 클릭 하셔도 된답니다!
강사님께서는 이미 테스트 하시느라 만들어 두셨는데요, 그래서 지우고 다시 실행 하는 과정을 보여주셨어요.
지우는 명령어까지 같이 봐요!
sudo rm -r my_opencv_tutorials
폴더를 통으로 지우고,
ls 해서 폴더가 없는 걸 확인하고,
mkdir -p ~/my_opencv_tutorials/src
홈에( ~/ ) my_opencv_tutorials/src 폴더를 새로 만들게요,
그리고 ( cd ) src 폴더까지 가서,
git clone + 주소를 < ctrl + shift + v > !
아까 복사 해 둔 깃허브 주소예요.
그렇게 클론을 받았구요,
이제 ls 해 보시면 clone 한 결과로 opencv_tutorials_for_ROS2 가 뜨구요,
현재 위치에서 그 폴더로 이동 해 볼게요.
cd opencv_tutorials_for_ROS2/
거기서 또 ls 해 보시면
my_opencv_tutorials 가 있고, READ.md 파일이 있어요.
또 my_opencv_tutorials로 이동을 해 볼게요.
cd my_opencv_tutorials/
여기서 또 ls 해 보시면
친구들이 많아요!
config, launch, my_opencv_tutorials, package.xml .... 등등
그렇게 하구나서!
tree 해 볼게요.
설치를 하라고 떠요.
sudo apt install tree
해서 설치를 한 다음에
tree 라고 다시 입력하면 이렇게 구조가 나와요.
설명을 하자면..
여기 img_pub.py 이미지 팝이,
제일 처음 만들었던 camera를 기동해서,
ros2 topic으로 image_raw라는 이름의 토픽을 발행하는 아이였어요.
그래서 이 아이는 height 나 weight를 조정할 수 있었고, 그 다음에 framerate도 조정할 수 있었어요.
그리고 이 아이( convert_hsv.py ) 가 BGR 색체계에 있던 걸 HSV로 바꾸고
S 나 V 채널을 parameter로 조정할 수 있도록 해서
다시 토픽으로 발행하도록 하는 기능이 들어간 아이예요.
cv_params.yaml 이 아이는 그와 관련된 convert_hsv.py와 img_pub.py 이 두가지가 사용하고 있는 parameter가 정의되어 있던 아이예요.
그리고 bringup_usb_cam.launch.xml --> 이 launch 파일은, ROS2에서 제공하는 usb_cam이라는 패키지를 그냥 쓰는 거예요.
거기에 대한 설정들도 있긴 하다고 하셨어요.
그리고 bringup_cv.launch.xml 이 친구는,
OpenCV로 직접 카메라를 열어서 토픽을 발행하는 --> img_pub.py 이 노드
를 실행하도록 만들어 둔 거예요.
cv_params.yaml에서 parameter를 읽어와서 말이에요.
그 다음,
위에서 두번째 동그라미💙의 hsv_converter_cv.launch.xml 이 아이는
밑줄이 쳐 져있는 convert_hsv.py 이 친구와 img_pub.py 이 친구 , 두 친구를
맨 위 동그라미💙의 cv_params.yaml , 여기 있는 파라미터를 적용을 해서
한 번에 실행하도록 해 둔 아이랍니다.
이제 다시 워크스페이스로 가서,,
( 기억해야할 게 있는데요, ls 했을 때 src 가 뜨는 곳, 여기가 workspace랍니다! )
workspace에서 source 명령어로 opt/ros/jazzy/setup.bash 를 불러요.
( 현재 Ubuntu 24.04의 ROS jazzy를 쓰고있어요. )
강사님께서는 alias로 jazzy 를 만들어 두셨답니다!
" source /opt/ros/jazzy/setup.bash " 이 명령을
alias jazzy='source /opt/ros/jazzy/setup.bash; ros_domain; echo "ROS2 jazzy is activated"'
alias로 예쁘게 만들어 두었고, echo 명령도 예쁘게 발행하도록 했어요.
( alias가 어려우시다면 입문편 수업을 들어보시면 이해가 될거예요! )
https://www.youtube.com/watch?v=i7ocNBvJWIs&list=PL0xYz_4oqpvhj4JaPSTeGI2k5GQEE36oi&index=11
그래서 이 명령을 그대로 jazzy 해서 실행하고,
이 상태에서 colcon build 할게요. (workspace에서! )
끝!
build를 했으면, 이제 뭘 할까요오오 !
나의 워크스페이스에 있는 local_setup.bash를 불러야
내 workspace 에 있는 내용을 실행 할 수 있어요.
그래서 source ./install/local_setup.bash 라고 입력 해 줬어요.
그러구 나서
ros2 launch my_opencv_tutorials hsv_converter_cv.launch.xml
ros2 launch my_opencv_tutorials 에 있는 hsv_converter 를 실행하시면 된답니다.
됐어요!
여기 보시면 hsv_converter에서 강사님께서 아까 찍으려고 하셨던 로그들과
그 다음에 카메라 기동하는 img_publisher 노드에서 지정한 로그들이 현재 찍혔어요.
그리고 새로운 터미널을 열구요, jazzy 부르시구요,
그 다음에 source로 install에 있는 local_setup.bash를 부르시면 된답니다.
읽기 귀찮으시면 역시 alias 해둬야해요.
강사님께서는 alias를 만들어 두셨어요. alias grep 명령어로 만들어 둔 my_opencv를 보면,
alias my_opencv_tutorials='ws_setting "my_opencv_tutorials" '
이렇게 만들어 두었다는게 확인이 된답니다!
그럼 그냥 my_opencv_tutorials하고 부르면!
아름답게 echo 명령으로 설정 된 것 ( 내가 뭘 했는지 ) 도 떠요.
이렇게 하고 ros2 topic list 해서 보시면,
원래 카메라가 쏘던 image_raw와
image_hsv가 보인다는 거예요.
그러면 rqt를 실행해서 관찰을 해 볼게요.
ㅋㅋ 또 면도를 안하셨다고 하셨슴니당. ㅋㅋㅋ
여기는 [ 6:10 ] 입니다 ^-^
화면을 보려면 plugin 에 visualization 에 image View 누르시구요,
오른쪽 부분은 Configuration - Dynamic Reconfigure를 클릭 한 거예요.
이 두가지 띄워 뒀어요.
Image_raw는 기본이구요,
Image_hsv는 내가 바꾼 거예요.
아직은 바꾼 파라미터가 하나도 적용되지 않아서 그대로인거구요.
saturation_scale , value_scale 을 막대에서 샤샤샤 샤샤샤 🧚🏻 😂 오른쪽으로 올리면
이렇게 많이 많이 밝아졌어요.
반대로, 사이드바에서 왼쪽으로 옮겨주면
많이많이 어두워져요.
이제 다시 코드 이야기로 ..!
구조를 다시 볼게요,
my_opencv_tutorials이 있어요, 여기에서 폴더를 보면
config 폴더, launch 폴더, 그리고 우리 파이썬 코드들이 작동되는 코드 폴더가 있어요.
여기에 convert_hsv 라는 코드가 위치 해 있어요.
이 코드는 github 에서 모두 다운 받으실 수 있어요.
차례대로 저의 글을 보신 분이 계시다면... 또!!! 하실 수 있지만, ㅋ_ㅋ
한번 더 언급 해 볼게요,
google 검색창 -> pinkwink github -> repositories -> opencv_tutorials_for_ROS2
-> my_opencv_tutorials -> my_opencv_tutorials -> conver_hsv.py
repositories 에서 경로 : opencv_tutorials_for_ROS2 / my_opencv_tutorials / my_opencv_tutorials / convert_hsv.py
🩵 아래는 이유식같은 주소예요. 떠먹여주는 주소 or... 하이패스 주소 or... 바쁜 사람의 주소.ㅋㅋ
opencv_tutorials_for_ROS2/my_opencv_tutorials/my_opencv_tutorials/convert_hsv.py at main · PinkWink/opencv_tutorials_for_ROS2
opencv_tutorials_for_ROS2. Contribute to PinkWink/opencv_tutorials_for_ROS2 development by creating an account on GitHub.
github.com
중요한 건 launch 파일들!
이 코드가 조금 비효율적이라 하셨어요!
표시 된 부분에서 이미 argument를 선언했기때문에,
똑같이 여기에도 적용을 해 주면 되는건데
별도로 또 요기 적어둔게 조금 비효율적이라고... 말씀 해 주셨어요.
다음에 고쳐주신대요!
다음번엔 경계선 추출 같은 이야기도 해 주신다고 하셨답니다.
스승의날에 학생들에게 꽃 받으시고 행복해 하셨던 강사님 모습이에요.
오늘도 귀한 강의에 감사드리며
공부하시는 여러분 모두 고생 많으셨습니다 !
🙂↕️ 꾸우벅
'Robot > Robot Program - ROS' 카테고리의 다른 글
[R2R] 1-6 HSV 색 체계를 이용한 채도, 명도 조절 패키지 만들어보기. (1) | 2025.07.21 |
---|---|
[R2R] 1-5 OpenCV에서 직접 받은 영상을 ROS2에서 FPS, size 조절하기 (2) | 2025.07.17 |
[R2R] 1-4 OpenCV로 읽은 영상에 parameter 적용하기 (1) | 2025.07.14 |
[R2R] 1-3 cv_bridge로 OpenCV 영상 토픽 발행 해보기 (1) | 2025.07.10 |
[R2R] 1-2 usb_cam pkg로 USB 카메라 활성화하기 2 (0) | 2025.07.07 |
[R2R] 1-1 usb_cam pkg로 USB 카메라 활성화하기 1 (1) | 2025.07.03 |
[R2R] 1-0 또. 다시. 강조하는 bashrc (1) | 2025.06.30 |