공부중

[TurtleBot3 Burger] 기본 패키지 설치 본문

인공지능...?/터틀봇 프로젝트

[TurtleBot3 Burger] 기본 패키지 설치

복습 2024. 6. 16. 18:48
728x90

링크를 참고한다. 

https://emanual.robotis.com/docs/en/platform/turtlebot3/quick-start/#pc-setup

 

ROBOTIS e-Manual

 

emanual.robotis.com

 

1. 원격 PC 설정

원격 PC는 윈도우에서 wsl을 통한 ubuntu 20.04 운영체제를 설치하여 진행하였다. 

 

1.1 ros2 foxy를 설치한다. 

로보딕스의 깃허브에서 ros2 foxy 쉘 파일을 다운 받고 해당 파일에 권한을 부여한다. 

755의 의미는 user 에게는 모든 권한을 부여하고 group, other 에게는 읽기와 실행 기능만 준다는 뜻이다.

$ wget https://raw.githubusercontent.com/ROBOTIS-GIT/robotis_tools/master/install_ros2_foxy.sh
$ sudo chmod 755 ./install_ros2_foxy.sh
$ bash ./install_ros2_foxy.sh

 

더보기

각 명령어의 설명은 다음과 같습니다:

  1. $ wget https://raw.githubusercontent.com/ROBOTIS-GIT/robotis_tools/master/install_ros2_foxy.sh
  2. wget 명령어는 웹에서 파일을 다운로드할 때 사용합니다. 여기서는 GitHub의 특정 URL에서 install_ros2_foxy.sh라는 스크립트 파일을 다운로드하고 있습니다.
  3. $ sudo chmod 755 ./install_ros2_foxy.sh
    • sudo: 관리자 권한으로 명령어를 실행
    • chmod: 파일 권한을 변경하는 명령어
    • 755: 파일 권한 설정 (소유자에게 읽기, 쓰기, 실행 권한, 그룹 및 다른 사용자에게 읽기 및 실행 권한 부여)
    • ./install_ros2_foxy.sh: 권한을 변경할 파일
  4. chmod 명령어는 파일의 권한을 변경할 때 사용합니다. 여기서는 install_ros2_foxy.sh 파일에 실행 권한을 부여하고 있습니다. 755는 소유자에게 읽기, 쓰기, 실행 권한을 부여하고 그룹 및 다른 사용자에게 읽기 및 실행 권한을 부여합니다.
  5. $ bash ./install_ros2_foxy.sh
    • bash: Bash 셸에서 명령어를 실행하는 명령어
    • ./install_ros2_foxy.sh: 실행할 스크립트 파일
  6. bash 명령어는 Bash 셸에서 스크립트를 실행할 때 사용합니다. 여기서는 install_ros2_foxy.sh 스크립트 파일을 실행하여 ROS2 Foxy를 설치하는 과정을 시작합니다.

이 쉘파일을 다운받을 경우 별도로 ros를 설치할 필요없지만 실패할 경우에는 따로 설치를 진행한다. 

 

 

1.2 ros 프로그램 설치

1.2.1  Gazebo11 설치

$ sudo apt-get install ros-foxy-gazebo-*

 

 

1.2.2 cartographer 설치 

$ sudo apt install ros-foxy-cartographer
$ sudo apt install ros-foxy-cartographer-ros

 

 

1.2.3 네비게이션 설치 

$ sudo apt install ros-foxy-navigation2
$ sudo apt install ros-foxy-nav2-bringup

 

 

1.3. 터틀봇 3 패키지 설치 

$ source ~/.bashrc
$ sudo apt install ros-foxy-dynamixel-sdk
$ sudo apt install ros-foxy-turtlebot3-msgs
$ sudo apt install ros-foxy-turtlebot3

 

하지만 위의 명령어를 사용해서 설치할 경우 작동에는 문제가 없지만 관련 파일 정보를 확인할 수 없다. 

관련 파일을 확인할 필요가 없다면 넘어가고, 아래 파일의 정보를 보고 싶다면 아래의 방법으로 소스코드를 다운받아 확인할 수 있다. 

$ sudo apt remove ros-foxy-turtlebot3-msgs
$ sudo apt remove ros-foxy-turtlebot3
$ mkdir -p ~/turtlebot3_ws/src
$ cd ~/turtlebot3_ws/src/
$ git clone -b foxy-devel https://github.com/ROBOTIS-GIT/DynamixelSDK.git
$ git clone -b foxy-devel https://github.com/ROBOTIS-GIT/turtlebot3_msgs.git
$ git clone -b foxy-devel https://github.com/ROBOTIS-GIT/turtlebot3.git
$ cd ~/turtlebot3_ws
$ colcon build --symlink-install
$ echo 'source ~/turtlebot3_ws/install/setup.bash' >> ~/.bashrc
$ source ~/.bashrc

 

 

1.4 환경 구성 

$ echo 'export ROS_DOMAIN_ID=30 #TURTLEBOT3' >> ~/.bashrc
$ source ~/.bashrc

 

2. 터틀봇 설정( 라즈베리파이4 설정)

기존에 우분투 20.04를 설치하였으므로 관련 설치 내용은 생략한다. 

 

2.1 네트워크 확인 

우분투 네트워크가 아니라 ros domain에 대한 설명이다. 

vi ~/.bashrc

를 확인하여 아래의 내용을 확인한다. 

ROS_DOMAIN_ID=30 #TURTLEBOT3

터틀봇을 하나만 가진 사용자(다른 터틀봇이 없는 환경)는 생략해도 될 항목인 듯 하다. 

 

2.2 라이다 설치 

- 아직 확인을 안해봤는데 지금 사용하는 터틀봇은 LDS-01 을사용하고 있는 것 같다. 

라이다 2를 사용할 경우 아래의 과정을 따른다. 

$ sudo apt update
$ sudo apt install libudev-dev
$ cd ~/turtlebot3_ws/src
$ git clone -b ros2-devel https://github.com/ROBOTIS-GIT/ld08_driver.git
$ cd ~/turtlebot3_ws/src/turtlebot3 && git pull
$ rm -r turtlebot3_cartographer turtlebot3_navigation2
$ cd ~/turtlebot3_ws && colcon build --symlink-install

 

$ echo 'export LDS_MODEL=LDS-02' >> ~/.bashrc
$ source ~/.bashrc

 

근데 라이다 1을 사용할때 위의 명령어를 입력해도 별 문제는 없었던 것 같다. 

라이다 관련 문제생기면 이거 때문일수도..

 

 

 

2.3 

근데 처음에 아무것도 모르고 라즈베리파이에서도 1의 과정을 진행하였다. 

기존 터틀봇 라즈베리파이 관련 환경으로 설치한 것이 아니라 따로 우분투를 설치해서 진행했기 때문에 다운받는게 맞는거 같기도 하고,,,

 

3. OPEN CR 관련 설정

open cr에 펌웨어를 업로드 하기 위해 라즈베리 파이에 open cr을 연결한다. 

$ sudo dpkg --add-architecture armhf
$ sudo apt update
$ sudo apt install libc6:armhf

 

$ export OPENCR_PORT=/dev/ttyACM0
$ export OPENCR_MODEL=burger
$ rm -rf ./opencr_update.tar.bz2

 

$ wget https://github.com/ROBOTIS-GIT/OpenCR-Binaries/raw/master/turtlebot3/ROS2/latest/opencr_update.tar.bz2
$ tar -xvf ./opencr_update.tar.bz2

 

$ cd ~/opencr_update
$ ./update.sh $OPENCR_PORT $OPENCR_MODEL.opencr

 

 

 

 

 

728x90