2017년 1월 17일 화요일
#RobotOperatingSystem_00
ROS is a framework for writing robot software.
ROS는 로봇 소프트웨어를 작성하기 위한 프레임워크입니다.
ROS는 독립된 많은 수의 프로그램이 지속적으로 소통함으로써 이루어진다.
"Fetch An Item", 문제로 ROS를 구상해내었다.
<an office-assistant robot is instructed to retrieve a stapler.>
(1) the robot must understand the request
로봇이 문제를 이해한다.
(2)the robot must start some sort of planner
to coordinate the search for the item, which will likely require
navigating through various rooms in a building, perhaps including elevators and doors.
물건을 찾기위해 계획같은 걸 짜기 시작하는데, 예를 들면 빌딩안의 다양한 방들을 navigating하는 것
(3)Once arriving in a room, the robot must search desks cluttered with similarly sized objects (since all handheld objects are roughly the same size) and find a stapler.
방에 도착하면, 로봇은 비슷한 크기의 물체를 두고있는 책상을 찾는다.그리고 stapler를 찾는다.
(4)The robot must then retrace its steps and deliver the stapler to the desired location.
로봇은 다시 왔던길을 되돌아가고 stapler를 원하는 장소에 배달한다.
->
- one group : producing indoor maps.
- another group : have expertise in using maps to robustly navigate indoor environments.
- other group : have discovered a particular computer vision approach that works well for recognizing small objects in clutter.
"--------------------------------------------------------------------------------------------------------------------------------"
ROS는 다양한 환경을 위해서 제작되었지만, 앞으로 진행되는 실습의 환경은
OS : Ubuntu 14.04 LTS(Ubuntu trusty)
ROS : Indigo
Python : python 2.7.6
인터넷을 찾아보면 이런저런 ROS를 설치하는 방법이 존재한다.
하지만, 간단한 방법인 Two line Install로 설치를 해보자.
(workspace까지 설정된다. 단, 이렇게 설치하게 되면 catkin_ws_oroca에서 작업을 진행해야 합니다.)
http://wiki.ros.org/ROS/Installation/TwoLineInstall
$ sudo wget https://raw.githubusercontent.com/oroca/oroca-ros-pkg/master/ros_install.sh && chmod 755 ./ros_install.sh && ./ros_install.sh catkin_ws_oroca indigo
중간에 설치하다가
$ changing permission of './ros_install.sh': 과 같은 오류가 뜬다면,
$chmod 755 ros_install.sh
$./ros_install.sh cakin_ws_oroca indigo
하고 다시 입력해주면 정상적으로 설치가 시작된다.
"--------------------------------------------------------------------------------------------------------------------------------"
ROS 패키지를 찾거나 사용하는데 문제가 발생한다? 환경변수의 설정이 제대로 되어있는가 확인해보자.
ROS_ROOT, ROS_PACKAGE_PATH가 제대로 설정되어 있는가 확인?
$ export | grep ROS
01 파일시스템 도구
ROS에서 코드는 여러 패키지에 산재되어 있어 ls 나 cd 같은 명령어 만으로 찾아다니는 일은 번거로워서 ROS에서 몇 가지 도구를 제공합니다.
1. rospack 사용하기
: 패키지의 정보를 제공하는 도구, 더 많은 정보를 원한다면, (http://docs.ros.org/independent/api/rospkg/html/rospack.html)
$ rospack find roscpp
2. roscd 사용하기
: 패키지의 이름만으로 cd 처럼 폴더를 이동효과.
$ roscd roscpp
(=$rospack find roscpp)
3.roscd log
: ROS의 로그파일이 저장되는 폴더로 이동효과.
만약 한번도 ROS프로그램을 실행해 본 적이 없다면 폴더를 찾을 수 없다는 경고가 발생합니다.
$ roscd log
4.rosls
: rosbash 도구모음의 일부. 사용자가 지정한 패키지나 스택, 또는 일반적인 경로에 대해 바로 ls를 실행하는 효과.
$ rosls roscpp_tutorials
"--------------------------------------------------------------------------------------------------------------------------------"
ROS는 독립된 수많은 수의 프로그램이 지속적으로 소통함으로써 이루어진다.
그리고 그 독립된 수많은 수의 프로그램이 동시에 움직이는 것과 다른 것 사이에 메세지를 보냄으로써 소통하는 것으로 이루어져있다.
프로그램 자체는 node graph로 표현되고 프로그램 사이의 소통은 edges로 표현된다.
o (node) : module, sending/receiving messages.
- (edge) : a stream of messages between two nodes.
o (node) : typically POSIX Processes
- (edge) : typically TCP connections
따라서 일부가 손상되어도 그 프로세스를 제외하곤 평소처럼 돌아갈 수 있다. 그 부분과의 연결을 끊으면 차단되고 그 프로세스에만 이상이 생기니까.
피드 구독하기:
댓글 (Atom)
댓글 없음:
댓글 쓰기