Robotis 에서 제공하는 Turtlebot3 패키지를 변경하여 간단한 프로젝트를 구현하려고 했는데 아래 사이트에서 나와있는 Turtlebot3 과 world를 launch 파일로 불러 오는 것에 성공을 했지만
https://emanual.robotis.com/docs/en/platform/turtlebot3/simulation/#gazebo-simulation
ROBOTIS e-Manual
emanual.robotis.com
keyboard를 사용해 조작하려면 아래와 같은 오류가 발생한다...
난 정말 이 명령어 그대로 쳤는데.... 패키지를 다 지우고 다시 깔아봐도 오류가 생기고 전부 다 지우고 재설치 해도 똑같은 오류가 생긴다.. 오류 내용을 살펴보니 실행 과정에서 turtlebot3model을 못불러 오는거 같다.(export TURTLEBOT3_MODEL=burger 혹은 waffle 지정해줘도 문제가 발생한다...)
근데 다른 drive나 navigation 관련 명령어는 잘 돌아간다... 구글에 검색해도 나같은 오류가 생긴 사람이 거의 없고 정말 하루동안 매달린 와중에 의도치 않은 곳에서 정답이 나왔다...
유튜브 공식 계정에 ROS2 foxy로 keyboard 실행 영상이 있었다....! ( 왜 이걸 나는 삽질하다가 마지막에 발견했는지....ㅠ)
그래서 나처럼 다른 사람들은 삽질 하지 말라고 내용을 공유한다.
먼저 그동안 만들었던 디렉토리들을 다 지우고 처음부터 다시 시작한다.
항상 우분투에서 작업을 시작하기 전에 (설치를 해야한다면) update는 필수다 (작업 경로는 홈화면이다)
만약 자신의 경로가 어딘지 모르겠다면 pwd 를 입력해 경로를 확인한다.
sudo apt update && apt upgrade
이후 다음 패키지를 설치한다.
sudo apt install ros-foxy-gazebo-ros-pkgs
sudo apt install ros-foxy-cartographer
sudo apt install ros-foxy-cartographer-ros
sudo apt install ros-foxy-navigation2 ros-foxy-nav2-bringup
sudo apt install ros-foxy-turtlebot3-msgs
sudo apt install ros-foxy-dynamixel-sdk
sudo apt install ros-foxy-hls-lfcd-lds-driver
설치가 끝났으면 작업 디렉토리를 만든다.
mkdir -p ~/turtlebot3_ws/src
작업 디렉토리로 이동한다.
cd turtlebot3_ws/src
src 폴더에서 다음을 설치한다.
git clone -b foxy-devel https://github.com/ROBOTIS-GIT/turtlebot3
git clone -b foxy-devel https://github.com/ROBOTIS-GIT/turtlebot3_simulations
다음 빌드를 위해 상위 폴더인 turtlebot3_ws로 이동한다.
cd ..
ROS2 환경을 불러온다. (저는 단축어 ros2foxy 만들어 사용했습니다)
source /opt/ros/foxy/setup.bash
빌드를 시작한다.
colcon build --symlink-install --parallel-workers 1
사진과 같이 빌드가 잘 된것이 확인 되면 상위 폴더로 이동한다. (cd ..)
아래 명령어를 입력해 주고
echo 'export GAZEBO_MODEL_PATH=$GAZEBO_MODEL_PATH:~/turtlebot3_ws/src/turtlebot3_simulations/turtlebot3_gazebo/models' >> ~/.bashrc
source ~/.bashrc
불러올 Turtlebot3 model을 지정해준다.
export TURTLEBOT3_MODEL=burger
launch 파일을 실행해 Gazebo 상에서 turtlebot3을 불러온다.
ros2 launch turtlebot3_gazebo turtlebot3_world.launch.py
그럼 Gazebo가 실행되어 Turtlebot3을 볼 수 있다.
잘 불러온것이 확인 됬으면 Ctrl+Alt+t 혹은 Ctrl+Shift+t 를 눌러 새로운 터미널을 연다.
ROS2 환경 불러오고
source /opt/ros/foxy/setup.bash
불러올 Turtlebot3 model을 지정해준다.
export TURTLEBOT3_MODEL=burger
Keyboard를 실행한다.
ros2 run turtlebot3_teleop teleop_keyboard
결론
사이트에서 keyboard를 사용해서 조작하고 싶으면 새로운 터미널에 ros2 run turtlebot3_teleop teleop_keyboard를 치면 된다고 나와있기도 하고,
다른 사람들이 다양한 ros환경에서 keyboard를 사용할때 keyboard 실행 명령어만 치길래 그거면 되는줄 알았지만
몇번의 시행착오 끝에 깨달은 것은 나와 같은 오류가 생기는 경우에는 ros2 run 명령어 전에 다시한번 모델을 지정하는
export TURTLEBOT3_MODEL=burger
이 명령어를 치고 keyboard 명령어를 쳐야지만 돌아가는것 같다.
참고한 유튜브 영상 이다.
https://www.youtube.com/watch?v=8w3xhG1GPdo
'공대생 잡학사전 > ROS' 카테고리의 다른 글
ROS2(Topic)를 활용해 Webcam 사용해보기 (0) | 2022.12.16 |
---|---|
Virtual Box Ubuntu 20.04에서 OpenCV를 활용해 Webcam 사용하기 (0) | 2022.12.16 |