728x90

본 포스팅은 표윤석 박사님의 youtube 강의와 자료들을 토대로 작성하였습니다.

자료 출처

- 표윤석 박사님의 ROS Courses, ROS 강의 Chapter2. 로봇 운영체제 ROS,https://www.youtube.com/watch?v=KcIUl3WH-C8&list=PLRG6WP3c31_VIFtFAxSke2NG_DumVZPgw&index=2

- ros-seminar pdf Github Link, https://github.com/robotpilot/ros-seminar

- ros wiki, http://wiki.ros.org/ko/ROS/Introduction

Ros란?

  • ROS is an open-source, meta-operating system for your robot. It provides the services you would expect from an operating system, including hardware abstraction, low-level device control, implementation of commonly-used functionality, message-passing between processes, and package management. It also provides tools and libraries for obtaining, building, writing, and running code across multiple computers.
  • 로봇 소프트웨어를 개발하기 위한 소프트웨어 프레임워크
    • 노든간에 메시지 교환 방법으로 복잡한 프로그램을 나눠 공동 개발 가능
    • 명령어 도구, 시각화 도구 Rviz. GUI 도구 모음 rqt, 3차원 시뮬레이터 Gazebo 지원
    • 로보틱스에서 많이 사용되는 모델링, 센싱, 인식, 내비게이션, 매니퓰레이션 기능 지원

Ros 특징

1. 이기종 디바이스 간의 통신 지원

  • Ros를 깔고 앱 사용 시 다른 운영체제, 로봇간에 움직이거나 데이터를 주고받을 수 있음

2. 유닉스 기반의 다양한 운영체제에서 사용 가능

  • Ubuntu, OS X, Windows, Fedora, Gentoo, OpenSUSE, Debian, Raspbian, Arch, QNX REaltime OS 등이 있으나 기능 제한사항이 있을 수 있다.
  • Android. iOS의 경우 부분적으로 사용 가능
  • OS를 탑재할 수 없는 마이크로 컨트롤러 유닛(MCU)의 경우 시리얼 통신, 블루투스, LAN 경유로 통신할 수 있는 라이브러리 제공
  • 기본적으로 Ubuntu, OS X에서 구동하는 것을 추천

3. 통신 인프라

  • 노드 간 데이터 통신을 제공
  • 통상적 미들웨어로 지칭되는 메시지 전달 인터페이스 지원
  • 메시지 파싱 기능
    • 로봇 개발 시에 빈번히 사용되는 통신 시스템 제공
    • 캡슐화 및 코드 재사용을 촉진하는 노드들 간의 메시지 전달 인터페이스
  • 메시지의 기록 및 재생
    • 노드 간 송/수신되는 데이터인 메시지를 저장하고 필요시에 재사용 가능
    • 저장된 메시지를 기반으로 반복적인 실험 가능, 알고리즘 개발에 용이
  • 메시지 사용으로 인한 다양한 프로그래밍 언어 사용 가능
    • 노드 간의 데이터 교환이 메시지를 사용하기 때문에 각 노드는 서로 다른 언어로 작성 가능
    • 클라이언트 라이브러리 : roscpp, rospy, oslisp, rosjava, roslua, roscs, roseus, PhaROS, rosR
  • 분산 매개 변수 시스템
    • 시스템에서 사용되는 변수를 글로벌 키 값으로 작성하여 공유 및 수정하여 실시간으로 반영

4. 로봇 관련 다양한 기능

  • 로봇에 대한 표준 메시지 정의
  • 로봇 기하학 라이브러리 제공
  • 로봇 기술 언어
  • 진단 시스템 제공
  • 센서 드라이버, 센싱/인식 레벨의 라이브러리 제공
  • 로봇에서 많이 사용되는 롭소의 포즈 추정, 지대 내의 자기 위치 추정 제공하며, 지도 작성에 필요한 SLAM, 작성된 지도 내에서 목적지를 찾아가는 Navigation 라이브러리 제공
  • 로봇 암에 사용되는 IK, FK는 물론 응용단의 Pick and Place를 지원하는 다양한 Manipulation 라이브러리를 제공
  • GUI 형태의 Manipulation Tools 제공 (MoveIt!)

5. 다양한 개발 도구

  • 로봇 개발에 필요한 다양한 개발 도구를 제공
    • Command-Line Tools
      • GUI 없이 ROS에서 제공되는 명령어로만 로봇 엑세스 및 거의 모든 ROS 기능 소화
    • RViz
      • 강력한 3D 시각화 툴 제공
      • 레이저, 카메라 등의 센서 데이터를 시각화
      • 로봇 외형과 계획된 동작을 표현
    • RQT
      • 그래픽 인터페이스 개발을 위한 Qt 기반 프레임 워크 제공
      • 노드와 그들 사이의 연결 정보 표시(rqt_graph)
      • 인코더, 전압, 또는 시간이 지남에 따라 변화하는 숫자를 플로팅(rqt_plot)
      • 데이터를 메시지 형태로 기록하고 재생(rqt_bag)
    • Gazebo
      • 물리 엔진을 탑재, 로봇, 센서, 환경 모델 등을 지원, 3차원 시뮬레이터
      • ROS와의 높은 호완성을 가
  • 로봇 개발의 효율성 향상
728x90

'Programming > Ros' 카테고리의 다른 글

Ros의 중요 컨셉  (0) 2019.07.25
Ros 개발환경 구축  (2) 2019.07.15
728x90

1. 삼바(Samba)란?

Windows 운영체제를 사용하는 PC에서 Linux 또는 Unix 서버에 접속하여 파일이나 프린터를 공유하여 사용할 수 있도록 해주는 소프트웨어이다.

2. 삼바 설치

터미널에서 sudo apt-get update을 입력하여 업데이트를 해준 다음 sudo apt-get install samba samba-common-bin명령어를 이용하여 설치한다.

3. 삼바 유저 추가 및 패스워드 설정

설치가 완료되었다면 sudo smbpasswd -a pi 명령어를 입력해 비밀번호를 설정해야 한다. 설정한 다음 sudo nano /etc/samba/smb.conf로 들어간다.

smb.conf 파일에 들어온 후 다음과 같이 수정한다.

comment = 유저 서버 설정에 대한 코멘트
path = 삼바 서버 접속 시 최초 화면
vaild user = 사용 가능한 유저
writable = 쓰기 허용 여부
read only = 읽기만 가능하게 하는 지
browseable = 공유 폴더의 목록을 보여주는 옵션

을 입력 후 에디터를 빠져나오고 sudo service samba restart 명령어를 입력해 서비스를 재실행 시켜준다. 만약 다음과 같이 Failed to restart samba.service 오류가 뜨게 된다면 sudo service smbd restart 명령어로 재실행 시켜준다.

4. 삼바 접속

라즈베리파이쪽에서 설정을 모두 했다면 윈도우 R키를 눌러 실행창에 들어간 후 다음과 같이 입력해준다.

다음과 같은 창이 뜨게 된다면 설정해준 id, password를 입력해주면 된다.

 

자료 출처

- 지구빵집, 라즈베리 파이 삼바 서버 접속과 설치방법 - 삼바서버, 삼바설치, https://fishpoint.tistory.com/1553

728x90
728x90

1. SSH Enable

putty를 이용하여 원격접속을 하기위해서는 먼저 SSH를 활성화 시켜줘야 한다. 아직 ssh 환경에 접속할 수 없으니 hdmi를 이용해 모니터에 연결한다. 터미널에서 sudo raspi-config 명령어를 입력한다. 여기서 5. Interfacing Options > P2 SSH 를 선택한다.

 

다음과 같은 창이 뜨게되면 Yes를 선택하고 엔터를 눌러주면 SSH가 활성화 된다.

 

2. IP 주소 확인

ssh를 활성화를 했다면 IP 주소를 확인해야 한다. 터미널에서 ifconfig 로 ip addr를 확인해야 한다. 유선으로 연결했다면 eth, 무선으로 연결했다면 wlan에서 inet을 확인한다.

inet 값을 putty의 Host Name (or IP address) 칸에 입력한 후 Open을 누르면 로그인 창이 뜬다. 초기 ID와 Password는 pi / raspberry 이다. 아이디와 패스워드가 맞다면 아래처럼 실행이 된다.

 

 

3. 고정 IP주소 할당

먼저 netstat -nr 명령어를 입력해 gateway 주소를 확인하고 sudo nano /etc/dhcpcd.conf 명령어를 입력한다.

 

static ip_address, static routers, static domain_name_servers의 주석을 지우고 하얗게 칠한 부분을 ip_address는 원하는 IP주소, static routers, domain_name_servers에는 netstat -nr 로 확인한 gateway 주소를 입력한다. 그 후 sudo reboot 를 이용해 재부팅한 후 ifconfig 로 다시 아이피를 확인해보면 설정한 IP가 할당되어 있다.

 

자료 출처

- 아이씨뱅큐, 반돌이's 라즈베리파이 강좌 [#9 putty를 이용한 원격 접속], http://blog.naver.com/PostView.nhn?blogId=icbanq&logNo=220924724563&parentCategoryNo=&categoryNo=78&viewDate=&isShowPopularPosts=true&from=search

- 인생은30부터, [라즈베리파이] 고정 IP Setting 방법, https://kgu0724.tistory.com/33

728x90
728x90

1. 준비물

  1. Raspbian Image File
  2. Etcher Flash Program : Raspian Image File을 Micro SD card에 구워주는 프로그램
  3. Micro SD card

2. Raspbian

Raspbian 다운로드 링크로 들어가서 Raspbian Buster with desktop를 선택한다. Torrent를 사용한다면 Torrent를 이용하는게 훨씬 빠르다.

3. Etcher Flash Program

Etcher Flash Program 다운로드로 들어가서 Download for Windows를 눌러 프로그램 다운로드를 한다.

프로그램을 실행하면 다음과 같은 창이 뜨게 되는데 Select image 버튼을 클릭하여 다운로드한 Raspbian Image File을 선택한다.

Micro SD Card가 삽입된 USB를 선택하고 Flash 버튼을 누르게 되면

Flash가 진행된다.

Flash가 완료되면 Micro SD Card를 Reader기에서 제거 후 Raspberrypi에 꽂아준다.


2. 라즈비안 초기 설정

언어 설정

미국식 키보드를 이용해서 프로그래밍을 진행 해기 위해선 언어를 먼저 설정해야 한다. 터미널에서 sudo raspi-config 명령어를 입력하고 여기서 4. Localisation Options를 선택하고 I1. Change Locale을 선택한다.

Change Locale 항목을 선택하고 들어가면 여러 언어의 옵션이 있는데 키보드의 방향키를 이용해서 en_GB, UTF-8 UTF-8, en_US.UTF-8 UTF-8을 스페이스바를 눌러서 선택해준다.

 

엔터를 누르게 되면 기본 언어를 설정하는 창이 뜨게 된다. 여기서 en_US.UTF-8 UTF-8을 기본 언어로 선택하면 된다.

다음으로 키보드 레이아웃 설정이다. 처음화면에서 4. Localisation Option을 선택한 후 I3. Change Keyboard Layout을 선택한다.

Generic 105-key PC (intl.)을 선택하고 엔터를 눌러준다. 그리고 Korean - Korean (101/104 key compatible)을 선택한 후 마지막으로 No compose key를 선택한 후 엔터를 누르면 된다.

 

 

자료 출처

- Raspberry pi Geek, 라즈베리파이3 B+ 설치가이드(2) RASPBIAN OS 설치, https://geeksvoyage.com/raspberry%20pi/installing-os-for-pi/

 

라즈베리파이3 B+ 설치가이드(2) RASPBIAN OS 설치

라즈베리파이의 공식 OS인 RASPBIAN의 설치가이드 입니다.

geeksvoyage.com

- 서영진, 사물인터넷을 위한 리눅스 프로그래밍 with 라즈베리파이 책, 제이펍

728x90

+ Recent posts