R1 ROS 원격 구동

ROS가 설치된 PC를 Robot에 설치하고 같은 무선 라우터에 연결된 원격 Host PC에 ROS가 설치되어있으면 ROS를 원격으로 연결하여 구동할 수 있습니다.


ROS 설정하기 #

HOST PC의 .bashrc 설정 #

HOST PC의 IP 주소를 확인합니다. HOST PC의 IP주소가 “192.168.1.23” 인 경우

$ ifconfig
wlo1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
inet 192.168.1.23  netmask 255.255.255.0  broadcast 192.168.1.255
inet6 ##################  prefixlen 64  scopeid 0x20<link>
ether ##################  txqueuelen 1000  (Ethernet)
RX packets 523729  bytes 421964779 (421.9 MB)
RX errors 0  dropped 0  overruns 0  frame 0
TX packets 335162  bytes 39447419 (39.4 MB)
TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

HOME 폴더의 .bashrc를 에디터로 열고 파일의 끝에 다음과 같이 추가합니다.

$ gedit ~/.bashrc
...
export ROS_MASTER_URI=http://192.168.1.23:11311
export ROS_HOSTNAME=192.168.1.23

이제 source 명령으로 bash에 load합니다.

$ source ~/.bashrc

ROBOT PC의 .bashrc 설정 #

ROBOT PC의 IP주소가 “192.168.1.24” 인 경우 아래와 같이 ssh 명령으로 로봇에 접근합니다.

$ ssh r1@192.168.1.24

기본 패스워드는 1 입니다.

HOME 폴더의 .bashrc를 에디터로 열고 다음을 추가합니다.

ROS_MASTER_URI의 주소는 HOST PC의 IP로 ROS_HOSTNAME은 ROBOT PC의 IP 주소로 설정합니다.

$ nano ~/.bashrc
...
export ROS_MASTER_URI=http://192.168.1.23:11311
export ROS_HOSTNAME=192.168.1.24

이제 이 파일을 bash에 load합니다.

$ source ~/.bashrc

ROS로 로봇 조작하기 #

Teleop Keyboard를 사용하여 키보드로 조종하기 #

HOST PC에서 roscore 실행

$ roscore

새로운 터미널을 열고 SSH를 통해 로봇으로 접근합니다

$ ssh r1@192.168.1.24

다음 명령어를 입력하여 motor를 기동합니다.

다음 명령어를 입력하여 motor를 기동합니다.

이제 다른 터미널에서 teleop keyboard 를 실행합니다.

$ roslaunch omo_r1_teleop omo_r1_teleop_key.launch

그러면 아래와 같은 상태가 됩니다.

좌측은 HOST PC, 우측은 ROBOT PC입니다.

이제 좌측 하단의 터미널에 커서를 놓고 키보드로 로봇을 조작할 수 있습니다.조작명령은 다음과 같습니다.

  • w: 전진
  • x: 후진
  • a: 좌회전
  • d: 우회전
  • s: 정지