> 센서 패키지

 

 

   - LDS (Laser Distance Sensor, 레이저 거리센서)

  • 고성능, 고속 , 실시간 데이터 취득이 가능하다는 장점이 있어 거리 측정 관련분야에서 활용범위가 넓음
  • 로봇분야에서 많이 사용되는 센서 , 물체나 사람을 인식하는 곳에도 사용되며 실시간성이 좋아서 무인자동차 등에 활용
  • 원리 : LDS 는 레이저와 반사거울 , 모터 이렇게 크게 세가지로 구성되어있는데, 비스듬히 기울어져있는 거울을 모터로 회전시켜가며 레이저를 쏘고 , 레이저가 반사되어 돌아오는 시간을 측정하는 원리

 

 

 

 

   - Scan 데이터 확인하기

  •     LDS 지원 패키지 설치 : 각 LDS 마다 지원하는 패키지가 다름

            ex) velodyne 사의 velodyne 패키지터틀봇3을 지원하는 hls_lfcd_lds_driver 

 

  •     LDS 연결 및 사용 권한 변경 : sudo chmod a+rw [해당 LDS인식포트 번호]
  •     roslaunch 를 통해 해당 패키지의 *.launch 폴더를 실행

            ex) roslaunch beginner_tutorials fakeLaserscan.launch

  •     rostopic echo를 통해 해당 토픽 내부 값 확인

            ex) rostopic echo –n1 /fakescan

 

 

 

 

    - GUI 환경에서 거리 정보 확인

 

 

     rviz 실행 : rosrun rviz 또는 rviz

     화면과 같이 세부 설정 변경

'SW > ROS' 카테고리의 다른 글

ROS 지원 패키지 (2)  (3) 2023.11.02
ROS 지원 패키지  (0) 2023.11.02
ROS의 도구  (0) 2023.11.02
ROS의 명령어  (2) 2023.11.02
ROS의 콘셉트  (0) 2023.11.02

 > 센서패키지

 

 

  - 원격으로 이미지 전송하기

 

  SENSOR PC 

    $ gedit ~/.barshrc ROS_MASTER_URI = http://IP_OF_REMOTE_PC:11311 ROS_HOSTNAME = IP_OF_SENSOR_PC 

 

 

 

 

    REMOTE PC

    $ gedit ~/.barshrc ROS_MASTER_URI = http://IP_OF_REMOTE_PC:11311 ROS_HOSTNAME = IP_OF_REMOTE_PC 

    $ roscore

    $ rosrun usb_cam usb_cam_node 

    $ rqt_image_view image:=/image_raw

 

 

 

 

 

 

 - 카메라 캘리브레이션

 

 

  • 영상중심점(image center)과 주점(principal point)의 어긋남, 이미지 기울기 등을 보정하기 위하여 카메라의 고유 파라미터를 찾는 것
  • 스테레오 카메라나 이미지를 가지고 거리값 측정, 물체 인식 등의 영상을 처리할 때 사용

 

 

    캘리브레이션 패키지 설치

    $ sudo apt install ros-melodic-camera-calibration

    $ rosrun usb_cam usb_cam_node

 

 

    실행 방법

    $ rosrun camera_calibration cameracalibrator.py --size 8x6 --square 0.024 image:=/image_raw camera:=/camera

 

 

    파라미터 확인

    $ rostopic echo /camera_info

 

 

 

 - Depth camera (심도카메라)

 

  • ToF (Time of flight) : 적외선을 방사하여 되돌아온 시간으로 거리를 측정하는 방식
  • 구조광(Structured Light) : 기존 ToF 방식에 없던 일관적 방사패턴을 사용
  • 테레오 : 사람의 좌우 눈과 같이 양안시차를 이용하여 거리를 측정

 

'SW > ROS' 카테고리의 다른 글

ROS 지원 패키지 (3)  (0) 2023.11.02
ROS 지원 패키지  (0) 2023.11.02
ROS의 도구  (0) 2023.11.02
ROS의 명령어  (2) 2023.11.02
ROS의 콘셉트  (0) 2023.11.02

> 로봇패키지

 

  - PR2 : 모바일 기반의 휴머노이드형 로봇

  - 터틀봇 : 오픈소스 모바일 로봇

  - 이 외에 180여 개의 공개된 로봇 패키지

 

 

 

 

> 센서패키지

 

  - 1D Range Finders : 적외선 방식의 직선거리 센서

  - 2D Range Finders : 2차 평면상의 거리를 계 측할 수 있는 센서

  - 3D Sensors : 3차원 거리 측정에 사용

  - Audio/Speech Recoqnition음성인식 관련센서

  - 물체인식 얼굴인식 등이 가능한 카메라, 그 외의 센서 인터페이스 등

 

 

 

 > UVC 테스트 

 

  - UVC : USB Video device Class

 

 

 

USB cam 패키지 설치하기 

 

  - $ sudo apt-get install ros-melodic-usb-cam 실행하기 

 

    ① image_view 노드로 확인하기 

       $roscore 

       $ rosrun usb_cam usb_cam_node 

       $rosrun image_view image_view image:=/usb_cam/image_raw 

 

결과

 

   ② rqt_image_view 노드로 확인하기 

       $roscore 

       $ rosrun usb_cam usb_cam_node 

       $rqt_image_view image:=/image_raw 

 

결과

 

 

 ③ Rviz 로 확인하기 

      $roscore 

      $ rosrun usb_cam usb_cam_node 

      $rosrun rviz rviz ➔ Image topic 에서 다음 입력

 

결과

'SW > ROS' 카테고리의 다른 글

ROS 지원 패키지 (3)  (0) 2023.11.02
ROS 지원 패키지 (2)  (3) 2023.11.02
ROS의 도구  (0) 2023.11.02
ROS의 명령어  (2) 2023.11.02
ROS의 콘셉트  (0) 2023.11.02

 

1. Rviz

 

  - Ros Visualization Tool

  - 3차원 시각화 도구

  - 레이저, 카메라 등의 센서 데이터를 시각화

  - 로봇의 외형과 계획된 동작을 표현 : URDF(Unified Robot Description Format)

 

  설치 방법 : sudo apt install ros-melodic-desktop-full

  실행 방법 : rosrun rviz 또는 rviz

 

 

 

 

 

2. rqt 

 

  - QT 기반의 ROS GUI 개발 도구

 

  설치 방법 : sudo apt install ros-melodic-desktop-full

  실행 방법 : rqt

 

  - rqt_image_view : 이미지 표시 도구

  - rqt_graph : 노드 및 메시지 간 상관관계를 그래프로 나타내는 도구

  - rqt_plot : 2차원 데이터 플롯 도구

  - rqt_bag : GUI 기반 bag 데이터 분석 도구

 

 

 

'SW > ROS' 카테고리의 다른 글

ROS 지원 패키지 (2)  (3) 2023.11.02
ROS 지원 패키지  (0) 2023.11.02
ROS의 명령어  (2) 2023.11.02
ROS의 콘셉트  (0) 2023.11.02
ROS의 메시지 통신  (0) 2023.11.02

1. Shell 명령어

 

  roscd

   지정한 ros 패키지의 디렉터리로 이동

  - rosls

    ros 패키지의 파일목록 확인

  - rosed

    ros 패키지의 파일편집

  - roscp

    ros 패키지의 파일 복사

  - rospd

    ros 디렉터리 인덱스에 디렉터리 추가

  - rosd

    ros 디렉터리 인덱스 확인

 

 

 

 2. 실행명령어

 

  - roscore

    Master(ros 네임 등록 서비스) + rosout (로그아웃) + parameter server (파라미터 관리)

    Master 구동 명령어

  - rosrun

    노드 실행

  - rosluanch

    노드를 여러 개 실행 및 실행 옵션 설정

  - rosclean

    ROS 로그 파일을 검사하거나 삭제

 

 

 

  3. 정보명령어

 

  - rostopic
    ROS 토픽 정보 확인
  - rosservice (+ rossrv)
    ROS 서비스 정보 확인
  - rosnode
    ROS 노드 정보 확인
  - rosparam
    ROS 파라미터 정보 확인 및 수정
  - rosbag
    ROS 메시지 기록 및 재생
  - rosmsg
    ROS 메시지 정보 확인
  - rosversion
    ROS 패키지 및 배포 릴리즈 버전 정보 확인
  - roswtf
    ROS 시스템 검사
 
 
 4. catkin 명령어 (빌드시스템 명령어)

- catkin_create_pkg

  catkin 빌드 시스템으로 패키지 자동생성

- catkin_make

  catkin 빌드 시스템에 기반을 둔 빌드

- catkin_eclipse

  catkin 빌드 시스템으로 생성한 패키지를 이클립스에서 사용할 수 있게 변경

- catkin_prepare_release

  릴리즈 할 때 사용되는 로그 정리 및 버전 태깅

- catkin_generate_changelog

  릴리즈 할 때 CHANGELOG.rst 파일 생성 또는 업데이트

- catkin_init_workspace

  catkin 빌드 시스템의 작업 폴더 초기화

- catkin_find

  catkin 검색

 

 

 5. 패키지 명령어
    - rospack
      ROS 패키지와 관련된 정보 보기
    - rosinstall
      ROS 추가 패키지 설치
    - rosdep
      해당 패키지의 의존성 파일 설치
    - roslocate
      ROS 패키지 정보 관련 명령어
    - roscreate-pkg
     ROS 패키지 자동생성 (구 빌드시스템에서 사용)
    - rosmake    
      ROS 패키지 빌드 (구 빌드시스템에서 사용)

'SW > ROS' 카테고리의 다른 글

ROS 지원 패키지  (0) 2023.11.02
ROS의 도구  (0) 2023.11.02
ROS의 콘셉트  (0) 2023.11.02
ROS의 메시지 통신  (0) 2023.11.02
ROS 의 개념  (2) 2023.11.02

1. 메시지

 

  - 파일형태
    msg 파일 
    토픽에 사용되는 메시지파일, 확장자 : *.msg

  - srv 파일 
    서비스에 사용되는 메시지파일, 확장자 : *.srv
    상위메시지: 서비스 요청 메시지, 하위메시지: 서비스 응답 메시지

  - action 파일 
    액션에 사용되는 메시지파일, 확장자 : *.action
    상위 메시지: goal (목표), 중간 메시지 : result, 
    하위 메시지 : feedback(중간결과값)

 

 

 2. 네임

 

  - 노드와 메시지(토픽, 서비스, 액션, 파라미터)가 가지는 고유의 식별자
  - 마스터에 등록하고 네임을 기반으로 검색
  - 다른 유형의 네임과 중복되어도 무방함

    ex) 토픽에 A라는 네 임을 가진 요소가 있고, 서비스에 A라는 네임을 가진 요소가 있어도 무방
  - 네임을 선언하는 방식에 따라 Relative(기본), Global, Private로 나뉨
    ex) ros::Publisher node1_pub = nh.advertise<std_msg::Init32>(“노드이름”,10);
        Relative : ros::Publisher node1_pub = nh.advertise<std_msg::Init32>(“bar”,10);
        Global : ros::Publisher node1_pub = nh.advertise<std_msg::Init32>(“/bar”,10);
        Private : ros::Publisher node1_pub = nh.advertise<std_msg::Init32>(“~bar”,10);

 

 3. 좌표변환 (TF) 

 

  - 사진속의 로봇이 이동하게 되면 로봇의 좌표는 각 상관 관계가 있 는 관적들의 상대 좌표 변환에 따라 이동하게 되는 원리,

로봇 프로그래밍에서 좌 표 변환을 통한 각 로봇의 관절 이용은 매우 중요하며 ROS에서는 이것을 Transforn의 약자인 TF라고 함

 

 

 4. 다양한 클라이언트 라이브러리 지원


  - roscpp(C++), rospy(python), roslisp(Lisp) rosjava(java)
  - roscs, roseus, rosgo, roshask, rosnodejs, RobotOS.jl, roslua, PhaROS, rosR, rosruby, Unreal-Ros-Plugin 등

 

 

 5. 이기종 디바이스간의 통신

 

  - 운영체제와 상관없이 ROS가 설치되어 노드가 개발된 상태라면 노드들 간의 통신 가능
ex) 임베디드 시스템인 마이크로컨트롤러 기반의 디바이스라도 ROS 메시지 송수신 받을 수 있다면 로봇 제어에서 많이 사용하는 제어기 레벨에서도 메시지 통신 가능

 

'SW > ROS' 카테고리의 다른 글

ROS의 도구  (0) 2023.11.02
ROS의 명령어  (2) 2023.11.02
ROS의 메시지 통신  (0) 2023.11.02
ROS 의 개념  (2) 2023.11.02
ROS 개발환경 구축하기  (3) 2023.11.02

+ Recent posts