ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [젯슨자신노 프로젝트]자율 주행 배달 로봇(3)_ROS 기반의 로봇 소프트웨어 구상
    카테고리 없음 2020. 3. 7. 18:43

    프로젝트 워크플로우에 대한 프로세스를 대략적으로 구상하고, 가장 기초 작업으로 로봇에 부착된 센서를 제어하여 방향 전환, 속도 증가 등 로봇 동역학을 제어하는 역할의 로봇 소프트웨어를 구상하였다.초기 구상 아이디어는 python에서 직접 제어하는 소프트웨어였다. 참 제 단 1스레드에서 운영하는 파이썬에서는 다양한 센서의 데이터를 동시에 받는 것이 불가능하며 센서 간의 데이터 통보에 차질이 빚어지고 통신이 비효율적이었다.해결 방법을 찾다가 로봇 운영체제인 ROS를 발견했다.​​​


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


    >


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


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


    >


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


    앞으로의 과와 함께 jetsonnano에 설치한 ROS를 통해 아두이노를 컨트롤 할 수 있다.


    댓글

Designed by Tistory.