ROS講座52 webサーバーを立てる


環境

この記事は以下の環境で動いています。

項目
CPU Core i5-8250U
Ubuntu 20.04
ROS Noetic

インストールについてはROS講座02 インストールを参照してください。
またこの記事のプログラムはgithubにアップロードされています。ROS講座11 gitリポジトリを参照してください。

概要

ROSとの通信を他のデバイスから行いたいことがあります。例えば

  • ロボットへのボタン入力を行いたい。
  • スマホでシステムの状態を監視しながらロボットを動かしたい
  • 遠くからROSにつながっているWebカメラの画像を見たい

ということがあります。1番目のボタン入力ですが、ROSはRvizがあるので表示などの出力側は豊富にあるのですが、ボタン入力などの入力側の機能はあまりリッチではありません。人とのインターフェイスはWEB系のほうが豊富なので、Web経由でROSと通信できるとこの部分の製作が楽になります。
今回はそのはじめとしてROSの機能でWebサーバーを立てる方法を説明します。

roswwについて

インストール

rowwwwというROSパッケージをインストールします。これはwebサーバーを立ち上げるROSパッケージです。

sudo apt-get install ros-noetic-roswww

ディレクトリ

roswwwの起動
roslaunch roswww roswww.launch 

roswwwを起動したらブラウザでhttp://localhost:8085というアドレスでアクセスします。このページではPCにインストールされているROSパッケージの一覧が表示されます。

http://localhost:8085/{ROSパッケージ名}というアドレスでは{ROSパッケージのディレクトリ}/wwwというフォルダにアクセスします。

ソースコード

html

シンプルなただ文字を表示させるだけのhtmlです。

web_lecture/www/index.html
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
  <head>
    web_lecture index.html
  </head>
  </body>
</html>

web閲覧

roswwwを起動したらブラウザを開いてhttp://localhost:8085/web_lecture/index.htmlにアクセスします。先ほどのwwwフォルダに入れたhtmlファイルが見えます。

ブラウザによっては同じアドレスで前にアクセスしたページをキャッシュしていることがあります(FireFoxはこの仕様です)。この状態だとF5を押しても更新されません。ctrl+F5で更新しましょう。

参考

ROSのwebインターフェイスを作る

目次ページへのリンク

ROS講座の目次へのリンク