ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [젯슨과인노 프로젝트]자율 주행 배달 로봇(3)_ROS 기반의 로봇 소프트웨어 구상 봅시다
    카테고리 없음 2020. 2. 17. 12:20

    프로젝트 워크플로우에 대한 프로세스를 대략적으로 구상하고, 가장 기초 작업으로 로봇에 부착된 센서를 제어하여 방향 전환, 속도 증가 등 로봇 동역학을 제어하는 역할의 로봇 소프트웨어를 구상하였다.초기 구상 어기어는 python에서 직접 제어하는 소프트웨어였다. 따라서 단일 스레드로 운영되는 파이슨에서는 여러 센서의 데이터를 동시에 받아볼 수 없으며 센서 간의 데이터 하월에 지연이 생겨 통신이 비효율적입니다.해결 방법을 찾다가 로봇 운영체제인 ROS를 발견했다.​​​


    ROS: 로봇 제어를 위한 오픈 소스 형태의 소프트웨어 플랫폼. 메시지(message) 단위로 데이터를 주고받으며 메시지는 토픽(topic)과 해당 토픽에 대한 데이터 값을 갖고 있다. 메시지를 주고받는 행위는 노드(node) 단에서 이루어진다.메시지를 보내는 노드인 publisher와 메시지를 받는 노드인 subscriber, 각 노드의 정보를 갖는 master 노드로 이루어진다.​​​


    >


    ROS를 이용하여 센서 데이터를 수집하고 정렬하여 자체 컨트롤러로 데이터를 정렬하는 비법을 사용하기로 했다.워크 플로우는 앞으로 같다. 처음이다.지에쯔승쟈싱노에 아도우이노 설치, ROS serial통신에서 상호 제어 2. 지에쯔승쟈싱노에 센서 직접 연결, 컨트롤러 제어 파일에서 수집한 데이터 전송.3. 수집한 데이터를 종합하여 제어 메시지를 아도우이노에 전송 4. 아 도우이노는 달리는 메시지를 기초로 모터 센서를 제어하고 방향과 속도 제어.​​​


    개발 환경:ROS melodic, 파이썬 3.6.9, Arduino, openCV 4.1.1, Tensorflow 1.13.0 Keras​ 지에쯔승 본인 놀우붕토우 18.04를 사용하므로 ros melodic버전을 설치합니다. ROS는 파이썬 2버전을 지원하지만 디플러 닌의 개발을 위한 텐서 플로우와 가하 라스 활용하기 위해서는 파이썬 3버전을 설치해야 합니다.​


    >


    센서가 수집하는 데이터의 값은 ROS의 rviz로 디스플레이 가능하다.모터제어를 위해 제트 송아인노에 아두이노를 설치하고 모터 센서를 연결하여 제어합니다.아두이노에 ROS를 통해 메시지를 전달하기 위해 rosserial을 설치하여 시리얼 통신을 사용하고, 키보드로 방향을 제어하기 위해 pygame을 설치하여 핸들러를 사용합니다.​


    향후와 같이 jetsonnano에 설치한 ROS를 통해 아두이노를 컨트롤 할 수 있다.


    댓글

Designed by Tistory.