코딩일지(2024-06-07)
듀얼리눅스에 ROS2 Humble을 설치하려고 한다.
ROS2 험블의 설치를 진행하게 되었다.
아래 velog포스팅 링크와 유튜브 링크를 참고했다.
일단 캐시삭제부터!
위 velog링크대로 “Waiting for cache lock: Could not get lock /var/lib/dpkg/lock-frontend. It is held by process 5572 “를 실행했을떄, 문제가 발생함.
Waiting for cache lock: Could not get lock /var/lib/dpkg/lock-frontend. It is held by process 5572
그래서 캐시삭제를 진행하기 로 했다.
$sudo rm /var/lib/apt/lists/lock
$sudo rm /var/cache/apt/archives/lock
$sudo rm /var/lib/dpkg/lcok*
$sudo dpkg --configure -a
$sudo apt update
Ubuntu Universe Repository를 활성화하다!
이후 정상적으로 아래 명령어를 실행하였다.
sudo apt install software-properties-common
sudo add-apt-repository universe
sudo apt update && sudo apt install curl -y
sudo curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -o /usr/share/keyrings/ros-archive-keyring.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/ros-archive-keyring.gpg] http://packages.ros.org/ros2/ubuntu $(. /etc/os-release && echo $UBUNTU_CODENAME) main" | sudo tee /etc/apt/sources.list.d/ros2.list > /dev/null
sudo apt update
sudo apt upgrade
근데 아래 마지막 명령어에서 막혀버렸다.
sudo apt install ros-humble-desktop
찾아보니 나의 버전 문제인거 같다. 나는 당연히 22.04버전을 설치한줄로만 알았는데 lsb_release -a
명령어를 통해 버전을 체크해보니 20.04가 깔려있는 대참사가 발생한 것이었다ㄷㄷ.
그래서 아래와 같은 버전 업그레이트 조치를 취해주었다.
$do-release-upgrade -c
위 명령어를 통해 업그레이드 가능한 버전이 어디까지인지 확인하였다.
22.04라는 것을 확인하였다. 아래 명령어를 실행하여 업그레이드를 진행해주었다.
$sudo do-release-upgrade
아래는 업그레이드 되고 있는 cmd창 화면이다.
다시 humble설치로 돌아가자!
아래 명령어가 정상적으로 수행되었다.
sudo apt install ros-humble-desktop
sudo apt install ros-dev-tools
아래 명령어로 편집창을 열어주었다.
gedit ~/.bashrc
이후 파일 맨 아래쪽에 아래 내용을 넣어주었다.
source /opt/ros/humble/setup.bash
ROS2 설치를 확인해보았다.
ctrl+alt+t
를 눌러 커맨드 창을 열고, 다음과 같이 ROS2 환경을 설정해주었다.
source /opt/ros/humble/setup.bash
아래와 같이 talker라는 노드를 실행한다. Honestly I don’t know…. but!! ros에서 로봇개발을 진행할때는 이 노드라는 개념과 토픽이라는 개념이 매우 중요하다고 한다.
ros2 run demo_nodes_cpp talker
- If there is no Issue, 터미널에 “Publishing”이라고 뜰 것이다.
이제 또다른 터미널을 열고, 마찬가지로 ROS2환경설정을 해주었다.
source /opt/ros/humble/setup.bash
그리고! 아까 위에서 말하는 사람(Talker)을 실행했으니, 이제 듣는사람(Listener)을 담당하는 애플리케이션을 실행해주었다.
ros2 run demo_nodes_py listener
- If there is no Issue, 터미널에 “I heard”이라고 뜰 것이다.
이를 통해 ros2의 정상적인 설치여부를 판단할 수 있었다.
한가지 작은 고찰을 적는다면, 이렇게 연과지어 생각해볼 수 있을 것이다.
우리가 도커를 설치하든 아니면 가장 쉬운 파이썬을 설치하든 간에, 결국 이게 제대로 설치가 되었는지 확인하기 위해서 뭘하는가?
바로 버전확인이다!
파이썬 3.9.12버전을 설치했다면, 해당 버전이 잘 설치되었는지 확인해보기 위해 우리는
python --version
이라고 커멘드창에 쳐본다.도커 25.0.3버전을 설치했다면, 해당 버전이 잘 설치되었는지 확인해보기 위해 우리는
docker --version
이라고 커맨드창에 쳐본다.이와 같이 우리는 잘 설치되었는지 확인해보기 위해 특정 프로세스를 진행하고 이 습관은 필수적인것 같다.
댓글남기기