Untitled

ROS를 다루고 있는 본체에 대해서 다른 마이크로 컨트롤러나 다른 컴퓨터들과 연결하는 방법을

알아보자.

  1. Arduino와 ROS를 연결하는 방법 (Serial 통신을 활용 예정)
  2. Windows의 컴퓨터와 ROS를 연결하는 방법 (ssh 통신을 활용 예정)

Arduino와 ROS 연결하는 방법

  1. 우선 ROS가 돌아가고 있는 곳에 아두이노 프로그램을 깔아야 한다.————————————

    Previous IDE Releases

  2. 이제 Arduino를 깔았으니, 실행하여 환경설정을 해줘야한다. ———————————————

    1. 아두이노가 작동이 되니 이제, ROS와 연결이 가능한 라이브러리를 깔아야 한다—————

      • 아두이노를 다시 키고 crtl+shift+i 를 눌러 라이브러리 매니저를 켜자

        Untitled

      • 그리고 위에 사진처럼 rosserial을 검색하여 깔아주자

      • 그렇다면, 이제 ROS를 아두이노에서 다룰 수 있고, Example을 보면 예시가 존재한다.

      • 만일 업로드가 되지 않는 문제가 있다면..

      만약 아래와 같은 에러가 난 다면 rosserial 을 0.7.9로 잘 깔았는지 다시 확인해보기 바란다.

       #include <cstring>
                ^~~~~~~~~
      compilation terminated.
      exit status 1
      Error compiling for board Arduino Mega or Mega 2560.
      
    2. 아두이노 업로드가 되도록 포트에 권한을 줍시다———————————————————

      아두이노의 라이브러리도 잘 깔았는데(이건 컴파일 되면 된거임) 업로드가 안된다고요?

      그건, 아직 우리가 포트(usb꽂는 곳)에 권한을 안주었기에 함부로 업로드를 못하는 겁니다..

      그럼 포트에 권한을 주기 위해 아래의 명령을 해봅시다.

      • ROSSerial을 먼저 깔아준다.

        $ sudo apt-get install ros-noetic-rosserial ros-noetic-rosserial-arduino
        //이때 다른 ROS 버전이라면 바꿔야겠죠? 빨간 부분입니다
        
      • 터미널을 통하여 우리가 이용하는 포트가 어떤건지 확인한다.

        $ dmesg | grep tty
        //이걸 치면 아래처럼 몇개가 뜬다.
        
        [    0.085689] printk: console [tty0] enabled
        [    4.456252] usb 2-2: ch341-uart converter now attached to ttyUSB0
        
      • 난 이때, ttyUSB0이 나의 포트임을 감성적으로 알아내었다. 그리고 이제 아래의 코드를 통하여 그 포트에 권한을 부여한다.

        (앞의 /dev/는 그냥 적어야 되는 것 같다)

        $ sudo chmod a+rw /dev/ttyUSB0
        
    3. ROS와 연결————————————————————————————————————

    이제, 아두이노의 세팅은 끝났다. 만일 아두이노의 값들을 하나의 노드로 이용하여 데이터를 전송할 일이 있다면, 아래의 코드를 활용하여 Serial통신을 활성화 시켜야만 가능하다. 참고!

    $ rosrun rosserial_python serial_node.py _port:=/dev/ttyUSB0 _baud:=57600