embedded/ROS

7. GAZEBO

crab. 2021. 9. 3. 06:49

가제보는 ROS를 설치할 때 풀버전을 설치하면 같이 설치되는 것으로서

 

실행하면 그냥 바로 실행되지만 몇 가지 에러가 같이 떠서 그 에러를 바로 잡으려 할 때 

 

알게 된 내용들을 적어볼 생각이다.

 

우선 가제보를 실행시키려면

gazebo --verbose

강사님께 물어본 결과 로봇이 바로 움직이면 드론 같은 경우는 부딪칠 수도 있으니까 미리 시뮬레이션을 하는 그런 거라 하셨는데 

 

https://ikaros79.tistory.com/entry/ROS2%EC%9A%A9-Gazebo-%EC%84%A4%EC%B9%98%ED%95%98%EA%B8%B0-%EC%9E%91%EC%84%B1%EC%A4%91

진짜 완전 그렇게 보인다..

 

에러는 총 두가지였는데 

 

1. error in REST request

 

이 에러는 네트워크 요청에서 에러가 났다로 해석할 수 있다고 한다.

 

해결방법은 

gedit .ignition/fuel/config.yaml

yaml 파일이 열리면 url에 있는 https://api.ignitionfuel.org  https://api.ignitionrobotics.org로 변경한다.

https://95mkr.tistory.com/entry/ROS7?category=746766

이렇게 하고 저장하면 이제 이 에러는 뜨지 않는다.

 

2. Unable to parse model.config for model [http://gazebosim.org/models/bin_4_dropping_task]

 

이 에러는 나를 하루 정도 괴롭혔는데 일단 알아본 결과 

 

가제보의 /usr/share/gazebo-9/setup.sh 파일에 있는 bin_4_dropping_task 파일이 문제인 것 같다.

 

이 파일의 경로 이름이 DATABASE_URI이고 이 파일이 있는 폴더의 다른 파일들의 이름이 ambulance나 airplane 인걸 보면 데이터들인 것 맞는 것 같다.

 

단지 저 사이트에서 모델들을 가져오는 데 저 특정 파일만 어떤 이유로 읽어오지 못하는 듯하다.

 

그래서 해결방법은 새로 다른 깃허브에서 모델들을 다운로드한 후에 setup.sh에 GAZEBO_MODEL_DATABASE_URI경로를

 

http://gazebosim.org/models/bin_4_dropping_task에서 깃에서 클론 하여 받은 경로로 바꾸는 것인데 

 

이론적으로는 맞는 것 같으나 이상하게도 에러는 사라지지 않았다... 

 

일단 1. 생각보다 시간이 그렇게 많지 않고 2. 강사님께서 정상 작동하고 에러를 확실히 알고 나중에 대처할 자신 있다면 넘어가 보라 하셨고 3. 나는 이 에러가 크게 중요하지 않다 판단하여 

 

우선 넘어가고 나중에 이 에러를 다시 분석해보기로 결정하였다.

 

이제 다음으로는 아두이노 하드웨어 디자인이 남았는데 지금의 모델로는 내가 원하는 결과를 이룰 수가 없다. 

 

그래서 우선 학원의 지원을 받아 아두이노와 바퀴, 모터, 프레임 등등 을 찾아보고 리스트업 하여 다시 진행해야 할 것 같다. 

 

물건은 온라인으로 주문하고 올 때까지는 OpenCV를 해볼까 생각 중이다.