Notice
Recent Posts
Recent Comments
Link
반응형
«   2025/03   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31
Archives
Today
Total
관리 메뉴

To Be Develop

ROS 기반 원격 조작 시스템 구현하기 본문

study

ROS 기반 원격 조작 시스템 구현하기

To Be Develop 2024. 11. 21. 00:19
반응형

ROS 기반 원격 조작 시스템 구현하기

개요

로봇 운영 체제(ROS, Robot Operating System)는 로봇 소프트웨어 개발을 위한 오픈 소스 프레임워크로, 다양한 로봇 플랫폼에서 활용되고 있습니다. 특히 원격 조작 시스템(teleoperation)은 로봇을 원거리에서 제어할 수 있게 해주어 산업, 의료, 연구 등 다양한 분야에서 중요하게 사용됩니다. 이번 글에서는 ROS를 활용하여 원격 조작 시스템을 구현하는 방법을 단계별로 자세히 설명하겠습니다.

1. ROS 환경 설정

1.1 ROS 설치

ROS를 사용하려면 먼저 시스템에 ROS를 설치해야 합니다. ROS는 주로 Ubuntu 운영체제에서 사용되며, 설치 방법은 다음과 같습니다:

# 1. 패키지 목록 업데이트
sudo apt update

# 2. ROS 키 추가
sudo apt install curl
curl -s https://raw.githubusercontent.com/ros/rosdistro/master/ros.asc | sudo apt-key add -

# 3. ROS 저장소 추가
sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'

# 4. 패키지 목록 업데이트
sudo apt update

# 5. ROS 설치
sudo apt install ros-noetic-desktop-full

# 6. rosdep 초기화 및 업데이트
sudo rosdep init
rosdep update

# 7. 환경 설정
echo "source /opt/ros/noetic/setup.bash" >> ~/.bashrc
source ~/.bashrc

위 명령어를 순서대로 실행하면 ROS Noetic이 설치됩니다. 설치 후에는 roscore 명령어를 통해 ROS 마스터를 실행하여 정상적으로 설치되었는지 확인할 수 있습니다.

1.2 워크스페이스 생성

ROS에서는 작업 공간(workspace)을 생성하여 패키지를 관리합니다. 다음과 같이 워크스페이스를 생성할 수 있습니다:

# 1. catkin 워크스페이스 디렉토리 생성
mkdir -p ~/catkin_ws/src

# 2. 워크스페이스 초기화
cd ~/catkin_ws/
catkin_make

# 3. 환경 설정
echo "source ~/catkin_ws/devel/setup.bash" >> ~/.bashrc
source ~/.bashrc

이제 ~/catkin_ws 디렉토리가 ROS 워크스페이스로 설정되었습니다.

2. 원격 조작을 위한 ROS 패키지 선택

원격 조작 시스템을 구현하기 위해서는 입력 장치(예: 조이스틱, 키보드)와 로봇 간의 통신을 처리하는 ROS 패키지가 필요합니다. 대표적으로 teleop_twist_keyboardteleop_twist_joy 패키지가 있습니다.

2.1 teleop_twist_keyboard 패키지

이 패키지는 키보드를 통해 로봇을 제어할 수 있도록 합니다. 설치 방법은 다음과 같습니다:

# 1. 패키지 설치
sudo apt install ros-noetic-teleop-twist-keyboard

# 2. 패키지 실행
rosrun teleop_twist_keyboard teleop_twist_keyboard.py

실행 후 터미널에서 키보드를 사용하여 로봇을 제어할 수 있습니다.

2.2 teleop_twist_joy 패키지

이 패키지는 조이스틱을 통해 로봇을 제어할 수 있도록 합니다. 설치 방법은 다음과 같습니다:

# 1. 패키지 설치
sudo apt install ros-noetic-teleop-twist-joy

# 2. 조이스틱 드라이버 설치
sudo apt install joystick

# 3. 조이스틱 연결 확인
jstest /dev/input/js0

# 4. 패키지 실행
rosrun teleop_twist_joy teleop_node

조이스틱이 /dev/input/js0로 인식되었는지 확인하고, 해당 장치를 통해 로봇을 제어할 수 있습니다.

3. 로봇 플랫폼 설정

원격 조작 시스템을 구축하려면 제어하려는 로봇 플랫폼에 대한 ROS 패키지가 필요합니다. 예를 들어, 터틀봇3(TurtleBot3)를 사용한다면 다음과 같이 설정할 수 있습니다:

3.1 터틀봇3 패키지 설치

# 1. 패키지 설치
sudo apt install ros-noetic-turtlebot3

# 2. 환경 변수 설정
echo "export TURTLEBOT3_MODEL=burger" >> ~/.bashrc
source ~/.bashrc

이제 터틀봇3를 위한 ROS 패키지가 설치되었습니다.

3.2 시뮬레이션 환경 설정

Gazebo 시뮬레이터를 사용하여 터틀봇3를 시뮬레이션할 수 있습니다:

# 1. Gazebo 패키지 설치
sudo apt install ros-noetic-turtlebot3-gazebo

# 2. 시뮬레이션 실행
roslaunch turtlebot3_gazebo turtlebot3_world.launch

시뮬레이션이 실행되면 Gazebo 환경에서 터틀봇3를 확인할 수 있습니다.

4. 원격 조작 시스템 통합

이제 입력 장치와 로봇 플랫폼을 통합하여 원격 조작 시스템을 완성하겠습니다.

4.1 키보드를 통한 원격 조작

# 1. ROS 마스터 실행
roscore

# 2. 터틀봇3 시뮬레이션 실행
roslaunch turtlebot3_gazebo turtlebot3_world.launch

# 3. 키보드 제어 노드 실행
rosrun teleop_twist_keyboard teleop_twist_keyboard.py

이제 키보드를 통해 터틀봇3를 제어할 수 있습니다.

반응형