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_HOSTNAMEROBOT 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를 기동합니다. 


$ roslaunch omo_r1_bringup omo_r1_motor.launch


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


$ roslaunch omo_r1_teleop omo_r1_teleop_key.launch


그러면 아래와 같은 상태가 됩니다. 좌측은 HOST PC, 우측은 ROBOT PC입니다.

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


조작명령은 다음과 같습니다

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