카테고리 없음

ros2-web-bridge 사용하기(우분투)

Wood Pecker 2023. 12. 22. 23:02

1. 개요

    ros2-web-bridge는 ROS 2와 웹 애플리케이션 간에 통신을 위한 브릿지이다. 이 브릿지를 사용하면 ROS 2에서 실행 중인 노드들과 웹 기반의 사용자 인터페이스 간에 메시지를 주고받을 수 있다. 주로 ROS 2의 데이터를 시각화하거나 웹 애플리케이션에서 로봇을 제어하는 데 사용된다. ROS 2에서 실행되는 노드들과 웹 애플리케이션 간에 양방향 통신을 가능케 한다. ROS 2의 토픽, 서비스, 액션 등과 같은 통신 메커니즘을 사용하여 데이터를 주고받을 수 있다. 

  • ro2-web-bridge는 웹 소켓(WebSocket) 프로토콜을 사용하여 통신한다.
  • 웹 소켓은 실시간 양방향 통신을 지원하여 ROS 2에서 발생하는 데이터를 실시간으로 웹 애플리케이션에 전달할 수 있다.

2. 사용환경

      우부투 20.04,  ROS2(Foxy)

3. 설치

nvm을 사용하여 nodejs를 최신버전으로 설치한다. (  nodejs 20.10.0을 사용한다). 
다음과 같이 nvm 모듈을 설치 한다. 

wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.2/install.sh | bash

홈 디렉토리에 .nvm 폴더가 생기고 .bashrc에 추가로 정보가 저장된다.

> cd ~

> source .bashrc

> nvm --version

> nvm ls-remote  <== 설치 가능한 nodejs 버전을 알아본다.

> nvm install v20.10.0   <= nodejs v20.10.0을 설치한다.

> node -v    <== 설치확인

> npm -v

> npm install npm@latest   <== 최신버전으로 업데이트

 

> mkdir -p ~/web_ws/src
> cd web_ws/src
> git clone https://github.com/RobotWebTools/ros2-web-bridge.git

 

> cd ros2-web-bridge          <== 하위 폴더로 이동    ~/web_ws/src/ros2-web-bridge

> sudo npm  install         <== 필요한 모듈 설치하기  Nodejs version >= 16.13.0.이상이어야 함

 

  에러가 방생한다면 아래의 명령을 실행

> npm audit fix
> pip install git+https://chromium.googlesource.com/external/gyp 

> npm cache clean --force

> rm package-lock.json 

> sudo npm install int64-napi

> npm update

> sudo npm  install    

 

npm install이 삽질을 하는 과정에서 성공적으로 통과되었다.  이제 아래 명령을 실행한다.

> node   bin/rosbridge.js        <== Websocket started on ws://localhost:9090

새 터미널을 열고 다음 명령을 실행합니다.

> cd ~ /web_ws/src/examples
> node index.js             
<== ' The web server started on http://localhost:3000'
그런 다음 브라우저에서 http://localhost:3000/html/publisher.html 로 이동합니다.

 

 

반응형