[ROS STUDY] ROS 3강

‍이수빈·2025년 2월 10일

[ROS STUDY]

목록 보기
3/12

출처: YOUTUBE: ROS 1 (03강 of 25강) - Developers and Creators

Gazebo

Gazebo란 ROS에서 주로 사용되는 로봇 시뮬레이터.
소프트웨어/알고리즘에 대해서는 시뮬레이터에서 충분한 검증을 마치고 하드웨어 정의가 들어가야함.

Catkin workspace

ROS에게 "이 프로그램은 ROS 프로그램이다. 해당 소스 코드는 ROS를 위한 라이브러리 패키지들이 들어 있다. "라는 것을 알려주기 위한 워크스페이스를 만드는 개념에서 해당 catkin workspace를 필요로 함.
ROS는 catkin이라는 빌드 시스템을 사용함.
c/c++ 등과 같은 컴파일이 필요한 언어들의 경우, 컴파일을 하면서 여러 다른 라이브러리들과 링크시켜주는 과정이 필요한데, 이렇게 빌드하는 일련의 과정을 손쉽게 해주는 것이 빌드 시스템임.

ROS에서 사용하는 catkin 시스템에서는 cmake를 선택했고, cmake는 크로스 플랫폼 시스템이라는 장점이 있음(플랫폼 간 크로스 가능).
파일 구조의 관점에서, catkin workspace 내 여러 패키지들이 들어감(catkin workspace>패키지>ROS 소스파일). 이렇게 목적에 따라서 패키지를 나눌 수 있고(ex. 센싱, 제어 등), 이 패키지가 들어가는 최종적인 워크스페이스가 catkin인 것. catkin은 패키지 단위로 빌드를 진행하기에 더 효율적.

Catkin workspace 생성

Catkin workspace 생성 후, Github에서 외부 패키지를 clone하여 빌드 및 사용해보고자 함.

$ cd ~/
$ mkdir -p gcamp_ws/src
$ cd gcamp_ws/src

# editted 2021-04-11 
$ cop cpp_service_tutorial  
$ cop cpp_topic_tutorial

$ catkin_init_workspace
Creating symlink "/home/swimming/gcamp_ws/src/CMakeLists.txt" pointing to 
"/opt/ros/melodic/share/catkin/cmake/toplevel.cmake"

$ cd ../
$ catkin_make
$ cma
# 항상 make한 다음에는 다음과 같이 source!!
$ source devel/setup.bash
$ sds

cma, sds 둘을 한 세트로 봐주시고.

지난 강의에서 alias를 통해 단축어 설정해둔,
cma: catkin_make
sds: source devel/setup

주의사항

초기 실행 시, 로딩 시간이 오래 걸릴 수 있음.

젯슨 나노가 아닌, 데스크탑 환경에서 작업하는 실습임.

ROS 설치 시, "ros-melodic-desktop-full"로 설치해야 함.

windows key를 눌러 Gazebo 실행 시, 별도의 문제가 없다면 단순 로딩 시간이 긴 것.

G Camp World

강사님이 미리 만들어 놓은 패키지를 clone해서 진행해보고자 함.

Clone & Build

$ cd ~/gcamp_ws/src

$ git clone https://github.com/Road-Balance/gcamp_ros_basic.git
$ cd ~/gcamp_ws
$ catkin_make

# 항상 make한 다음에는 다음과 같이 source!!
$ source devel/setup.bash

Gazebo에 Model Path Add

$ gedit ~/.gazebo/gui.ini

# 다음 부분 수정
[model_paths]
filenames=/home/<user_name>/gcamp_ws/src/gcamp_ros_basic/GazeboFiles/models

gazebo 설치 후, 파일을 수정하여 경로를 입력해 줘야함.

Gazebo launch

$ cd ~/gcamp_ws
$ roslaunch gcamp_gazebo gazebo_world.launch

Gazebo 기본 사용법

터미널을 틀거나, windows키를 누른 뒤 gazebo 실행.

기본 조작법

  • 마우스, 휠 컨트롤(마우스 왼쪽 버튼. 휠 눌러서 회전)
  • View 전환(상단 우측 바 이용)
  • Insert Model(왼쪽 insert 카테고리 내에서 이용)
  • 물체 선택(클릭)(→ delete: 물체 삭제)
  • 물체 이동(십자 화살표(Translaltion Mode) 이용, Rotation 모드를 통해 회전도 가능)
  • 리셋: edit>reset world

Gazebo 좌표체계

gazebo는 하단과 같은 좌표체계를 가짐(왼손 좌표).

teleoperation(원격 조종) 실습

sudo apt-get install ros-melodic-teleop-twist-keyboard를 통해 패키지를 설치해야 함!

키보드로 로봇을 움직여보는 실습.

# 새 터미널에서
$ rosrun teleop_twist_keyboard teleop_twist_keyboard.py

Reading from the keyboard  and Publishing to Twist!
---------------------------
Moving around:
   u    i    o
   j    k    l
   m    ,    .

For Holonomic mode (strafing), hold down the shift key:
---------------------------
   U    I    O
   J    K    L
   M    <    >

t : up (+z)
b : down (-z)

anything else : stop

q/z : increase/decrease max speeds by 10%
w/x : increase/decrease only linear speed by 10%
e/c : increase/decrease only angular speed by 10%

CTRL-C to quit
profile
🏫 Kookmin University, Major in Electrical Engineering (First Major), AI Big Data & Management (Double Major), Smart Car ICT (Interdisciplinary Major)

0개의 댓글