ROS의 학습 28탄: 이동 로봇 제작(1)

#프로그래밍 ROS<모바일 로봇의 제작(1)>


개시하다


참고서에 따르면 ROS(Robot Operating System)가 원활하게 작동할 수 있도록 하기 위한 것이다.

컨디션


가상 환경
소프트웨어
VMware Workstation 15
RAM 설치
2 GB
OS
Ubuntu 64비트
iso 파일
ubuntu-mate-20.04.1-desktop-amd64.iso
컴퓨터.
디바이스
MSI
프로세서
Intel(R) Core(TM) i5-7300HQ CPU @ 2.50GHz 2.50GHz
RAM 설치
8.00GB(7.89GB 사용)
OS
Windows(Windows10 Home, 버전: 20H2)
ROS
Distribution
noetic

이동 로봇의 제작


ROS를 사용하여 대부분의 새로운 로봇을 제어하는 절차는 다음과 같다.
1. ROS의 메시지 인터페이스를 확인합니다.
2. 로봇의 모터 드라이버를 쓴다.
3. 로봇의 물리적 구조를 쓴다.
4. Gazebo 시뮬레이션에 사용할 수 있도록 모델에 물리적 특성을 추가합니다.
5. tf를 통해 좌표 변환 데이터를 전송하고 rviz로 가시화한다.
6. 센서를 늘려라. 드라이버와 시뮬레이션 지원이 필요하다.
7. 네비게이션 등 표준 알고리즘을 응용한다.
이동 로봇을 예로 삼아 그 절차를 확인하다.
이번에는 처음으로 1과 2를 모아 모바일 로봇의 제작(1)으로 처리한다.

1단계 ROS 메시지 인터페이스

  • 우선 이동식 트럭을 제어해야 한다
  • 어떤 방식으로 하드웨어(이동저차)와 통신하는 ROS 노드를 작성하여 시스템의 다른 구성 요소에 표준 ROS의 인터페이스를 제공한다
  • 추상화 ROS의 핵심 개념입니다.
    ROS는 모든 로봇에 공통적으로 적용되려고 한다. 그러면 표준 인터페이스로 작동하도록 설계된 도구와 프로그램 라이브러리로 구성된 모든 생태계를 다시 이용할 수 있다.
    예: TortoiseBot
    삼륜차와 같은 동작을 통해 전진(x축 방향)과 회전(z축 주위)으로 이동할 수 있다.
    그 외의 행동은 불가능하다고 여기다.
    따라서 TortoiseBot은 x축의 변환 속도와 z축 주위의 회전 속도를 기준으로
    목표치를 설정하여 운동을 제어할 수 있다.
    vx: x축의 변환 속도(정면)
    vyaw:z축 주위의 회전 속도(시계 반대 방향으로 양의 회전)
    결과적으로 로봇 보고서(x, y,yaw)와 같은 평면 내의 위치와 방향을 기대한다.
  • ROS 커뮤니티에서 다음 메시지 인터페이스에 도달
  • geometry_ms/Twist(cmd vel 테마)
    - 로봇의 목표 속도(로봇에게 명령으로 전송)
    nav_ms/Odometry 테마
    - 로봇의 위치와 방향(로봇으로부터 데이터로 전송)
    geometry_msgs/Twist

    nav_msgs/Odometry

    4원수에 대한 설명은 아마도 이곳을 참고할 수 있을 것이다.
  • 필요한 부분만 사용하고 나머지는 빈 상태에서 사용할 수 있습니다. 필요한 부분만 구성된 메시지 인터페이스를 정의할 수 있지만 다른 도구나 프로그램 라이브러리와의 호환성이 사라질 수 있습니다
  • 따라서 자신이 처리하는 로봇이 기존의 도구와 프로그램 라이브러리를 최대한 활용할 수 있는 방법을 신중히 찾아야 한다
    이렇게 되면 지상에서 주행하든 공중에서 비행하든 모두 이 인터페이스를 통해 실현할 수 있다
    사용하는 이동형 로봇과 마찬가지로 자신의 로봇도 공통된 도구군을 사용하여 조작할 수 있다
    네.

    2단계: 하드웨어 드라이버

  • 로봇의 하드웨어를 어떻게 설계하는지,
    하드웨어와 통신하는 방법에 강하게 의존
  • 통신의 내용이 무엇이든 구동 노드를 통해 어떤 계산을 할 수 있다.
    로봇이 제공하는 명령과 데이터의 표현 형식, 그리고 우리 ROS의 인터페이스
    지원되는 cmdvel/odom 사이에서 변환이 필요합니다
  • 모바일 카트를 제어하는 데 사용되는 범용 드라이버의 코드는 없지만 ROS 친환경 시스템에서
    중, 참고할 만한 많은 샘플이 있다

    감상


    이번부터 드디어 자신이 만든 모바일 로봇을 구축하는 프로그램을 배울 수 있게 됐다. 드디어 로봇의 구조를 접할 수 있게 돼 기대가 크다. 이번에는 아직 도입하지 않았지만 하나하나 열심히 공부하고 이해를 깊게 했으면 한다.

    참고 문헌


    프로그래밍 ROS Pythhon을 통해 로봇 응용 프로그램 개발
    Morgan Quighley, Brian Gerkey, William D.Smart 저서
    하전 탁지 감역
    소나무 밭이 하나 흔들리고, 복지가 바로 나무인 격으로 곡철부가 번역하다.
    일본 발행
  • 좋은 웹페이지 즐겨찾기