環境
この記事は以下の環境で動いています。
項目 | 値 |
---|---|
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
ディレクトリ
roslaunch roswww roswww.launch
roswwwを起動したらブラウザでhttp://localhost:8085
というアドレスでアクセスします。このページではPCにインストールされているROSパッケージの一覧が表示されます。
http://localhost:8085/{ROSパッケージ名}
というアドレスでは{ROSパッケージのディレクトリ}/www
というフォルダにアクセスします。
ソースコード
html
シンプルなただ文字を表示させるだけの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で更新しましょう。