본 글은 제가 직접 쓴 글이 아니라, 저희 PinkLAB의 유투브 채널의 공개 강의 영상들을 읽고, 따라한 한 수강생의 글을 제 블로그에 공유한 내용입니다.
https://youtu.be/NLZwZaMEhxA?feature=shared
[ R2R 실전편, 또. 다시. 강조하는 bashrc ] 위 강의를 듣고 내용 정리 해 봤어요!
이번 시간에는 bashrc 이야기를 배웠어요. 반복해서 여러번 들으니 좀 익숙해지네요. (다행히..^^)
아직 못다 한 basrhrc 이야기가 크게는 하나, 작게는 두 개가 남아있어요.
이번시간에 배운 내용 하나씩 적어볼게요.
이렇게 검색창에 'jazzy install' 혹은 'jazzy' 라고 치면 installation document 나와요.
ROS는 버전마다 installation 페이지를 항상 제공을 한대요!
우분투 바이너리로 설치하는 과정이 나오는데요, 별 차이가 없는 것 같아요.
터미널에 < ctrl + c > 하시던지, 오른쪽 위의 네모버튼을 누르시던지 해서 터미널에 붙여넣기 하시면서 실행 해 가시면 된답니다.
* 혹시 잘 모르시는 분들을 위해 ..
1. 한 번 클릭 하면 ' 그냥 클릭 '
2. 두 번 클릭 하면 ' 단어 선택 '
3. 세 번 클릭 하면 ' 문장 선택 '
이 됩니다.
터미널에 붙여 넣을 때에는 < ctrl + shift + v > 이렇게 붙여넣으시면 되구요.
Install ROS2 윗부분까지 < ctrl + c > + < ctrl + shift + v > 하시면 됩니다.
이제 jazzy 버전 설치가 되었는지 확인! 아직 소스 아무것도 안 했어요. 설치 직후에요.
source /opt/ros 경로에 humble이 없어요. jazzy만 있어요.
jazzy 에 setup.bash 부르고
ros2 run demo_nodes_cpp talker 이렇게 하면 설치 끝! (listen 안해도 돼요.)
콜콘 한 번 실행 해 볼게요.
colcon 하면 명령이 실행돼서 요런게 나온거에요. '너 저 문법 하나도 안 지켰는데 콜콘만 하면 어떡하니' 뭐 그런 내용이 뜬 거래요.
(Error 떴거든요.... !!)
두가지 설치가 잘 됐습니다.
현재 이 페이지에서의 가정은, '우분투가 24.04이고 ROS2 jazzy 버전이 잘 설치 되었다' 입니다.
bashrc 이야기를 좀 더 하신댔어요. 익숙해져야한다구!
alias 이야기도 많이 했다구...(네!! 👉🏻👈🏻 공부 더 할게요오ㅋㅋ)
이제 그 이야기 좀 더 이어서 가 볼게요. sh 파일이 있습니다. 이게 어떤 파일인지 알려줄게요.
bashrc 직접 건드리는게 별로 좋지 않대요!
어딜 고쳤는지 모를 수 있어요. 지우거나 딴 데를 건드렸거나.
그래서 옆 사람에게 파일을 빌려오기도 한대요. 성격상 그걸 못 하시면.. 그러면 예쁘게 포-맷.. ! 😱
그래서 bashrc 를 건드리는건 썩 좋은 일은 아닌 것 같아요. 급할 때는 하더라도 파일을 하나 만들어 두는게 좋다고 해요.
위의 이미지 내용이 bashrc에요. bashrc에다가 alias_settings.sh 라는 파일을 만들어두고, 그걸 홈에다 둔 다음에, source 하도록 만들어 두는거에요. 여기까지가 bashrc의 내용이에요. 원래 bashrc의 기본 내용이에요. 아래에 한 줄만 추가 한 거에요. 그리고 이 파일에서 내가 하고싶은 이야기를 하는거죠.
자 alias_settings.sh라고 하고 홈에 둔거죠.
그리고 그 내용은 이렇습니다. 강사님이 타이핑하시기 어려울 것 같다고 깃허브에 넣어주셨어요. https://github.com/PinkWink/for_ROS2_study/blob/main/bash_settings/alias_settings.sh
이건 강사님이 좋아하는 스타일이래요. 이 파일은 humble 기준으로 작성이 되어 있어요.
opt ROS 의 humble 버전을 불러온단 말이죠.
여러분들이 지금 jazzy를 쓰신다면 여기를 humble -> jazzy로 바꾸시면 됩니다.
이 파일을 alias_settings.sh라고 두는거죠.
자, 그럼 이 많은 내용들은 다 뭐지! 첫 두 줄 부터 설명 해 볼게요,
서두에... 강사님은 pc가 여러대가 있대요.(자그마치 네대!) 하나는 수업용 자료를 만드는 pc라 하시네요. 그 pc는 항상 포맷하고 항상 처음부터 시작해서 코드가 이상이 없는지 점검하신대요. 그런데 항상 포맷을 할 수가 없잖아요.
개인 pc가 따로 있으시다 합니다. 근데 이게 우분투용 pc이긴 한데, 설치하신 건 'mint'래요. 리눅스 민트 엄~청 좋아하신대요.
그런데 리눅스 민트의 한가지 문제가, ROS2에서 Tap 누르면 자동완성되는 그 기능이 잘 안 될 때가 있대요.
그것때문에 여기에 넣어 놓으신 거래요. 이게 그걸 잘 잡아준다나... (잘 모르지만 알아두기로..)
그리고 이런 것도 좋아하신대요. ID를 변수로 선언해서 사용하는 것! 이렇게 하면 내가 ID를 바꿀 때, 여기를 찾아다니면서 안 바꿔도 되거든요. 그래서 달러 기호($) 에 ID 설정 해두면 그 자리만 바꿔주면 되는거죠. 이게 '변수 지정' 입니다.
또 하나 있습니다. 이게 이제 sh 파일에서 함수를 선언하는 기능이에요. 파이썬에서 df 함수를 선언하는 기능이 또 있어요. 이게 뭐냐면,
ws_setting 이라는 함수를 쓰면 humble 을 부르고, 그러고 난 다음에 소스 명령어로 여기에 함수를 사용할 때 입력 인자가 있을 거잖아요. 이걸 여기다 넣으라는 거에요. 그걸 그렇게 해서 만들고 에코로 만들어주라는 거에요.
temp2는 뭐냐면, 아까 자동 완성한다던 것 때문에 읽는 거구요, 그래서 자동완성 잘 되시는 분들은 넣을 필요가 없대요.
이게 함수 선언이에요. 그럼 이걸 어떻게 쓰는지는? 밑으로...
강사님은 ws_setting / rmf_ws 라고 하고, rmf_ws라고 이름 붙여주셨어요.
alias / rmf_ws라고 잡은 것은
괄호 안에 rmf_ws 를 넣으면 < $1 > 들이 다 바뀌게 되는거죠.
이렇게 함수로 선언 해 놓고 workspace를 만들 때 쓰는 그 alias를 잡아주면 좋다 하네요.
alias 의 내용이 이해가 잘 안되신다면, 꼭 R2R ROS2 PinkLab 여기로 가셔요. 여기에 가셔서 bashrc 설정, bashrc alias 설정, ROS_DOMAIN_ID 설정 까지 보고 오시면 이해가 잘 될거에요.
PinkWink Github - Repositories - for_ROS2_study 를 찾으시면 됩니다. bash_settings - alias_settings.sh 이 파일이 있어요.
Git 내용을 카피해서 넣을거에요. ( 검색해서 제목만 보고 오셨다면, 어느정도 ROS나 ubuntu 에 익숙하실테니 VS Code, Cursor, Sublime Text 어느 것을 사용 하셔도 괜찮다 합니다! )
새파일 만들기에서, 제목은 alias_settings.sh로 만들어 넣어요.
다음으로..
humble을 사용하시는 분들은 그대로 쓰시구요,
만약에 jazzy로 바꿨다, 하시면 humble 만 찾아서 jazzy로 바꾸고
저장을 하시면 돼요.
잘 적용 되었는지 확인 해 보도록 해요!
여기 alias_settings.sh 보이죠,
vscode 에서 명령어로 source ~/alias_settings.sh 적어주면 됩니다. 저장!
이제 홈에 있는 bashrc 읽어라 하고 터미널에 source ~/.bashrc 적어주고
alias 관찰 해 볼게요. ros2 study 보이고, jazzy alias 보이죠. 그럼 이제 한번 써 볼게요.
jazzy 입력하면 ROS_DOMAIN_ID 뜨구요, Activated 뜨네요. ROS2 명령이 적용 되었어요. 여기까지 하면 alias 이야기 하나!
작은 이야기 하나 더 있어요. 이것도 이야기 한 적이 있으시다...하는데 (@.@)
네트워크 문제가 있어서 내 pc에서 topic이 밖으로 안 나가게 해야한다, 그러면 ROS_LOCALHOST_ONLY=1로 설정 해야하구요, 이것도 bashrc나 alias_settings.sh에 넣어주면 됩니다.
Rasberry Pi 나, 여러 device 들이 네트워크로 연결되어 있는 경우에, ROS_DOMAIN_ID 가 여러개 만들어져요. 그럼 내가 주로 작업하는 main pc 에 터미널이 네 개가 떠있고, 각각 DOMAIN_ID가 다르면, 나중에 헷갈려요. 그러면 ' ROS_DOMAIN_ID 를 쉽게 보여주는 방법이 없을까? ' 이게 이번 주제였어요. (쉬운거 좋아요 ㅋ_ㅋ) 이건 색상과 글자, 자간을 설정하는 터미널 명령어에요. 터미널을 예쁘게! (진작에 알았더라면..!) 사용자ID, 초록색, User ID,, 이런 것들이에요.
잘 셋팅하고 나면 이렇게 떠요. 셋팅을 안하면 ROS_DOMAIN_ID 는 0 이에요. setting이 되고나면 앞에 13 보이죠,
예쁘게 숫자가 떠요. 저는 USER_ID 만 초록색 pw로살짝 들어가있네요.
이거 조금만 자세히 설명 해 보면 아래와 같아요.
GREEN= '\[\e[1;32m\]'
BLUE='\[\e[1;34m\]'
NC='\[\e[0m\]'
PS1="${BLUE}(ID: \${ROS_DOMAIN_ID:-0})${GREEN}\u${NC}:${BLUE}\w${NC}:${BLUE}\w${NC}\$"
되어있는데요,
PS1="${ 1 }(ID: \${ 2 })${ 3 }\u${ 4 }:${ 5 }\w${ 6 }:${ 7 }\w${ 8 }\$"
중괄호 안에
1 - BLUE,
2 - ROS_DOMAIN_ID,
3 - GREEN,
4 - NC,
5 - BLUE,
6 - NC,
7 - BLUE,
8 - NC
차례대로 적어 넣으셨어요.
참고! ID:-0 요건 '없다면 0을 넣어라' 예요. (친절히 알려주신 내용)
그러구 나서 !
sb는 source bashrc 줄임말! 다시 불러오면 DOMAIN_ID 호출 되어 뜨죠.
export ROS_DOMAIN_ID=9 하면 ROS_DOMAIN_ID 바뀐게 보일거예요.
echo $ROS_DOMAIN_ID 해서 부르면 9 라고 뜨죠.
이제 bashrc는 이야기 안하실거래요 ㅠ_ㅠ 그래도 하실거 알아요... 잘 배웠습니다아 ^-^
'Robot > Robot Program - ROS' 카테고리의 다른 글
ROS2 교육 유데미 유료 교육을 오픈했습니다. (8) | 2024.11.21 |
---|---|
ROS2 무료 강의 R2R 응용편이 끝났습니다. (8) | 2024.11.11 |
Mac에서 ROS2 humble 설치 및 원격 설정 (5) | 2024.10.24 |
ROS2에서 rqt의 플러그인에서 TF tree가 시각화 되지 않을때 (2) | 2024.10.17 |
ROS2 유투브 강의 벌써 응용편으로 진입했습니다. -R2R- ROS2 강좌 (2) | 2024.06.13 |
ROS/ROS2 사용할 때 Jupyter도 함께 써보세요. (0) | 2024.03.22 |
로봇 관제 OpenRMF - 핑크랩은 뭐가 다를까요? (0) | 2024.03.19 |