☞ 메인보드 : Jetson Nano Developer Kit
☞ 운영 체제 : Ubuntu 18.04 - JetPack 4.3
☞ ROS 버전 : Melodic
<이전 포스트>
6. ROS + OPENCV (cv_bridge) 실시간 스트리밍
메인보드 : Jetson Nano Developer Kit 이미지 파일 버전 : JetPack 4.3 ROS 버전 : Ubuntu 18.04 LTS bionic > ROS Melodic 언어 : C++ <이전 포스트> 5. 예제를 통한 ROS 실행 : 퍼블리셔-서브스크라이버 메세지..
95mkr.tistory.com
목차
○ 1. [Err][REST.cc:205] Error in REST request
○ 2. [Err] [ClientConfig.cc:270] Parser error [3]
○ 3. [Err] [Server.cc:238] Could not open file[empty.world]
저번 시간에는 cv_bridge가 잘 작동하는지 확인해보았고, 이번 포스트에는 가제보를 실행하고 겪었던 에러들의 해결법을 공유하고자 한다.
나는 ROS를 설치할 때 DESKTOP-FULL 버전을 다운로드하였고 가제보와 그 의존성 빌드 패키지들 또한 함께 설치하였다. 동아리 친구는 같은 버전을 받았는데 왜 에러 뜨고 가제보가 안 켜지냐 해서 출장기사를 하고 왔다. (양념갈비를 얻어먹었다.)
가제보를 실행할 때 상세정보를 보고 싶다면
gazebo --verbose
위 명령어를 입력하자. 여러 가지 에러들이 나온다고 하는데 그중에 내가 본 것들만 나열해보겠다.
① [Err][REST.cc:205] Error in REST request
REST - 위키백과, 우리 모두의 백과사전
위키백과, 우리 모두의 백과사전. 둘러보기로 가기 검색하러 가기 대한민국의 힙합 음악가에 대해서는 R-EST 문서를 참조하십시오. REST(Representational State Transfer)는 월드 와이드 웹과 같은 분산 하�
ko.wikipedia.org
위의 글을 읽어봐도 너무 어려워 무슨 말인지 모르겠으나 "네트워크 요청에서 에러가 났다" 정도로 에러를 해석할 수 있다.
이는 입력된 url이 잘못 설정되어서 그렇다.
터미널 창을 실행하여 입력하자.
gedit .ignition/fuel/config.yaml
yaml 파일이 열리면 url에 있는 https://api.ignitionfuel.org https://api.ignitionrobotics.org로 변경한다.
입력이 끝났으면 저장하고 가제보를 실행하면 에러가 나오지 않게 된다.
② [Err] [ClientConfig.cc:270] Parser error [3]
parser는 컴파일러라고 생각하면 된다. parser error라는 것은 문법 오류와도 같다.
위 yaml 파일에서 들여 쓰기나 기호를 잘 못썼는지 확인하자. 그것만으로도 해결이 된다.
③ [Err] [Server.cc:238] Could not open file[empty.world]
위 에러는 empty.world 파일이 가제보 디렉터리에 없는 경우 발생한다.
desktop-full 버전을 설치했는데 이상하게 worlds 디렉터리가 없는 경우가 있다.
일단 위 에러가 발생하면 따라 해 보자.
① /usr/share 디렉터리에서 gazebo-9를 찾는다. (필자의 가제보는 9 버전이기에 gazebo-9 디렉터리가 있었다.)
② gazebo-9 디렉터리의 내용물 중 worlds 폴더가 있다면
sudo gedit ~/.bashrc
.bashrc 파일에
export GAZEBO_RESOURCE_PATH=/usr/share/gazebo-9/worlds:/usr/share/gazebo_models:${GAZEBO_RESOURCE_PATH}
source ~/.bashrc
위 내용을 추가하여 worlds 디렉터리를 직접 입력해준다. (다른 버전을 사용한다면 중간에 있는 gazebo-9에서 본인에게 맞는 버전으로 바꾸어 주면 된다.) 만약 본인이 어떤 버전을 쓰고 있는지 모른다면 pkg-config를 이용하여 찾아주자.
pkg-config --modversion gazebo
[/usr/share/gazebo-9/worlds로 지정해주었는데도 에러가 나온다면 worlds 디렉터리에 있는 empty.world를 지정해주자.]
그리고 만약 worlds 디렉터리가 /usr/share/gazebo-9 디렉터리가 존재하지 않는다면 파일을 다운로드해야 한다.
git clone https://github.com/arpg/Gazebo
위처럼 가제보를 다운로드한다.
그러고 나서 내용을 그대로 /usr/share/gazebo-9 디렉터리에 옮겨주자.
sudo mv -r /usr/share/gazebo-9 ~/Gazebo/*
그리고 .bashrc 에 저장하자.
sudo gedit ~/.bashrc
export GAZEBO_RESOURCE_PATH=/usr/share/gazebo-9/worlds:/usr/share/gazebo_models:${GAZEBO_RESOURCE_PATH}
저장하고 나서 .bashrc 파일을 업데이트해주면 끝
source ~/.bashrc
위 에러 이외에 에러가 발생한다면 아직 만나보지 못하여 잘 모르겠다.
ros를 설치하면서 .bashrc 파일에 ROS_HOSTNAME 환경변수를 지정해주는데 이때 본인의 ip 주소를 제대로 적어주었는지 확인해주길 바란다.
(ip 확인 -> 터미널에서 ifconfig 입력)
'IT > ROS' 카테고리의 다른 글
[ROS] 9. Depth Camera (3) | 2021.02.11 |
---|---|
[ROS] 8. ROS + Arduino 와 통신 Rosserial (8) | 2020.06.10 |
[ROS] 6. ROS + OPENCV (cv_bridge) 실시간 스트리밍 (22) | 2020.05.20 |
[ROS] 5. 퍼블리셔-서브스크라이버 메시지 통신 분석 (0) | 2020.01.13 |
[ROS] 4. 퍼블리셔-서브스크라이버 메시지 통신 (11) | 2020.01.10 |