SlideShare a Scribd company logo
HTML5j ロボット部 勉強会 第4回
ROS.js の紹介
自己紹介

名前: @masap

職業: 組み込みプログラマ(主に Wi-Fi)
3/18
WebSocket 経由でルンバを動かす
4/18
ソフトウェア構成図
PC ルンバPC
WebSocket USB Serial
ROS
Rosbridge
(WebSocket Server)
roslib.js
Webアプリ
ROSとは

ロボット制御のためのライブラリ、ツール

Robot Operating Systemの略だがOSではない

ロボットを制御するための統一的なAPIを提供する

制御プログラムは、ユーザーが C++ で記述する
Rosbridge とは

ROS を JavaScript から使用できるようにするパッ
ケージ

WebSocket サーバー機能を持つ

ユーザーは JavaScript で WebSocket サーバに接続
し、ロボットにコマンドを送る

ROS を使うには C++ を書く必要があったが JavaScript
で書けるので Web 開発者にやさしい
Rosbridge の使い方

ライブラリのインストール

eventemitter2.jsとroslib.jsをダウンロードする

WebScoket サーバへ接続
var ros = new ROSLIB.Ros();
ros.connect('ws://localhost:9090');
ルンバに指示を送る (1/2)

ルンバに移動コマンドを送る

cmd_vel というノードに前進コマンドを送る
var cmdVel = new ROSLIB.Topic({
ros : ros,
name : '/cmd_vel',
messageType : 'geometry_msgs/Twist'
});
var forward = new ROSLIB.Message({
linear : { x : 0.1, y : 0.0, z : 0.0 },
angular : { x : 0.0, y : 0.0, z : 0.0 }
});
cmdVel.publish(forward); ROS
アプリ
cmd_vel ノード
(移動指示を受ける)
publish
(前進、回転等の
指示を送る)
ルンバに指示を送る (2/2)

指示の詳細

進行方向と回転方向を指定

linear: 進行方向と速度 (meter/sec)

angular: 回転方向と速度 (radian/sec)

平面で考えると簡単

linear の x 座標が + なら前進、 - なら後退

angular の z 座標が + なら反時計回り、 - なら時計回り
ルンバの情報を受け取る

ルンバの情報を受け取る

odom というノードを subscribe する
var listener = new ROSLIB.Topic({
ros : ros,
name : '/odom',
messageType : 'nav_msgs/Odometry'
});
listener.subscribe(function(message) {
console.log('Received message: ' +
message.header.seq);
listener.unsubscribe();
}); ROS
アプリ
odom ノード
(位置情報を発信する)
subscribe
(情報を取得する)
ROS要るの?

ここまでは...

ROSが無くてもnode.jsを使ってWebSocketサーバを立
てればできる

自律移動

人間が操縦するなら、 Roomba ぐらいなら ROS が無く
ても可能

自律移動をするには ROS が必要
SLAM

Simultaneous Localization and Mapping

自動的に地図を作成する & 自分の現在位置を推定す
る

指示した場所にロボットを移動できる

ROS を使えば SLAM ができる

SLAM に必要なもの

目隠しをされた状態で「ここはどこでしょう?」って言われ
たら? → とりあえず手探りで周囲の状況を探ろうとする

手探りをするためのデバイス
周囲の状況を手探りするデバイス

レーザースキャナ

レーザーを用いて周囲の障害物を検出
距離:0.02~5.6m
角度:240°
マッピング

自動マッピング

ROSはレーザースキャナのデータを集計して自動マッピ
ングする機能がある

マップ上の場所を指定してロボットを移動すること
ができる(オートパイロット)
ROSjs で使う

canvas で使う

自動マッピング及びオートパイロットは rviz というツール
で行う

ROSjsを使えば canvas でできる
ROSブラウザ
周囲の
障害物データ
作成した
地図データ
ルンバ
目的地の指定 目的地への移動
デモ

目的地を指定して自動的に移動

dots さんの地図
窓
ステージ
非常口
課題

機材がお高い

レーザースキャナは 9 万円...

測定可能距離が短い

4.2m まで

速く動けない

スピードを上げるとマップが崩れる
18/18
以上

More Related Content

PDF
ストリーム処理を支えるキューイングシステムの選び方
PDF
Apache Kafka’s Transactions in the Wild! Developing an exactly-once KafkaSink...
PDF
SHOWROOMとDeNAで取り組んだライブ配信基盤刷新・超低遅延ライブ配信の裏側【DeNA TechCon 2020 ライブ配信】
PDF
At least onceってぶっちゃけ問題の先送りだったよね #kafkajp
PPTX
今だから!Amazon CloudFront 徹底活用
PDF
ここが良かったDatadog
PPTX
CEDEC2021 ダウンロード時間を大幅減!~大量のアセットをさばく高速な実装と運用事例の共有~
PDF
IoT時代におけるストリームデータ処理と急成長の Apache Flink
ストリーム処理を支えるキューイングシステムの選び方
Apache Kafka’s Transactions in the Wild! Developing an exactly-once KafkaSink...
SHOWROOMとDeNAで取り組んだライブ配信基盤刷新・超低遅延ライブ配信の裏側【DeNA TechCon 2020 ライブ配信】
At least onceってぶっちゃけ問題の先送りだったよね #kafkajp
今だから!Amazon CloudFront 徹底活用
ここが良かったDatadog
CEDEC2021 ダウンロード時間を大幅減!~大量のアセットをさばく高速な実装と運用事例の共有~
IoT時代におけるストリームデータ処理と急成長の Apache Flink

What's hot (20)

PPTX
Hadoop -NameNode HAの仕組み-
PDF
대용량 트래픽을 처리하는 최적의 서버리스 애플리케이션 - 안효빈, 구성완 AWS 솔루션즈 아키텍트 :: AWS Summit Seoul 2021
PDF
痛い目にあってわかる HAクラスタのありがたさ
PDF
ストリーム処理プラットフォームにおけるKafka導入事例 #kafkajp
PDF
WebRTC入門+最新動向
PDF
そんなトランザクションマネージャで大丈夫か?
PPTX
Apache BigtopによるHadoopエコシステムのパッケージング(Open Source Conference 2021 Online/Osaka...
PDF
ドメイン駆動設計のための Spring の上手な使い方
PDF
[CEDEC 2021] 運用中タイトルでも怖くない! 『メルクストーリア』におけるハイパフォーマンス・ローコストなリアルタイム通信技術の導入事例
PDF
DeNAの大規模ライブ配信基盤を支える技術
PDF
ゲームサーバ開発現場の考え方
PPTX
Introduction to arm virtualization
PDF
実運用して分かったRabbit MQの良いところ・気をつけること #jjug
PDF
レガシーコードとの付き合い方とテストでの話
PDF
Google Cloud でアプリケーションを動かす.pdf
PDF
SparkとCassandraの美味しい関係
PPTX
BuildKitによる高速でセキュアなイメージビルド
PPTX
RDB開発者のためのApache Cassandra データモデリング入門
PDF
【BS4】時は来たれり。今こそ .NET 6 へ移行する時。
Hadoop -NameNode HAの仕組み-
대용량 트래픽을 처리하는 최적의 서버리스 애플리케이션 - 안효빈, 구성완 AWS 솔루션즈 아키텍트 :: AWS Summit Seoul 2021
痛い目にあってわかる HAクラスタのありがたさ
ストリーム処理プラットフォームにおけるKafka導入事例 #kafkajp
WebRTC入門+最新動向
そんなトランザクションマネージャで大丈夫か?
Apache BigtopによるHadoopエコシステムのパッケージング(Open Source Conference 2021 Online/Osaka...
ドメイン駆動設計のための Spring の上手な使い方
[CEDEC 2021] 運用中タイトルでも怖くない! 『メルクストーリア』におけるハイパフォーマンス・ローコストなリアルタイム通信技術の導入事例
DeNAの大規模ライブ配信基盤を支える技術
ゲームサーバ開発現場の考え方
Introduction to arm virtualization
実運用して分かったRabbit MQの良いところ・気をつけること #jjug
レガシーコードとの付き合い方とテストでの話
Google Cloud でアプリケーションを動かす.pdf
SparkとCassandraの美味しい関係
BuildKitによる高速でセキュアなイメージビルド
RDB開発者のためのApache Cassandra データモデリング入門
【BS4】時は来たれり。今こそ .NET 6 へ移行する時。
Ad

Similar to ROS.js の紹介 (20)

PDF
HTML5 によるロボット制御
PDF
WebMatrix 2 と Azure Web Sites を使ったスマートフォンサイト構築のすすめ
PDF
OSC 2010 Tokyo/Fall MSセッション
PDF
WebMatrix 2 と Azure を使ったスマートフォンサイト構築のすすめ
PDF
Introduction to web development 1
PPTX
PHP 開発環境構築 - Windows 編 -
PDF
Linux & Mac OS でも動く! ~ オープンソース & クロスプラットフォーム .NET の歩き方 ~
PDF
WebSocket + Node.jsでつくるチャットアプリ
PDF
クラウド開発に役立つ OSS あれこれ
PDF
Kilimanjaro Event
PDF
New Features of DotNet 6 Blazor WASM
PDF
Elixir入門「第3回:Phoenix 1.2で高速Webアプリ & REST APIをサクッと書いてみる」【旧版】※新版あります
PDF
2 TomcatによるWebアプリケーションサーバ構築 第1章 Tomcatのインストールと設定
PPTX
勉強会資料①
PDF
OpenWhisk - Docker action で MeCab を動かす
PPTX
20070310
KEY
Web App Framework at SwapSkills vol28
PPTX
120512 metro styleapp_javascript
PPTX
サーバー管理よ、サヨウナラ。サーバーレス アーキテクチャの意義と実践
PDF
マイクロソフトWeb開発の今と今後
HTML5 によるロボット制御
WebMatrix 2 と Azure Web Sites を使ったスマートフォンサイト構築のすすめ
OSC 2010 Tokyo/Fall MSセッション
WebMatrix 2 と Azure を使ったスマートフォンサイト構築のすすめ
Introduction to web development 1
PHP 開発環境構築 - Windows 編 -
Linux & Mac OS でも動く! ~ オープンソース & クロスプラットフォーム .NET の歩き方 ~
WebSocket + Node.jsでつくるチャットアプリ
クラウド開発に役立つ OSS あれこれ
Kilimanjaro Event
New Features of DotNet 6 Blazor WASM
Elixir入門「第3回:Phoenix 1.2で高速Webアプリ & REST APIをサクッと書いてみる」【旧版】※新版あります
2 TomcatによるWebアプリケーションサーバ構築 第1章 Tomcatのインストールと設定
勉強会資料①
OpenWhisk - Docker action で MeCab を動かす
20070310
Web App Framework at SwapSkills vol28
120512 metro styleapp_javascript
サーバー管理よ、サヨウナラ。サーバーレス アーキテクチャの意義と実践
マイクロソフトWeb開発の今と今後
Ad

More from Honma Masashi (13)

PDF
Fxos for Embedded Systems (English version)
PDF
Firefox OS for Embedded System
PDF
Photo hack day Japan 2014 プレゼン資料
PDF
Firefox OS 日本語 IME 開発状況
PDF
Firefox OS を使って HTML5 でハードウェアを動かしてみよう
PDF
Designers hack 011 ウォシュレットのリモコンから UI を極力無くすには
PDF
次世代プラットフォームでのHTML5アプリ開発 Firefox OS/Ubuntu Touch
PDF
さわってみよう Firefox OS in 大阪
PDF
Firefox OS 2012 年まとめ
PDF
さわってみよう Firefox OS in 福岡
PDF
Firefox OS の Wi-Fi 機能改善
PDF
デザイナー目線で Firefox OS を変えよう
PDF
Firefox OS カスタム ROM の作成
Fxos for Embedded Systems (English version)
Firefox OS for Embedded System
Photo hack day Japan 2014 プレゼン資料
Firefox OS 日本語 IME 開発状況
Firefox OS を使って HTML5 でハードウェアを動かしてみよう
Designers hack 011 ウォシュレットのリモコンから UI を極力無くすには
次世代プラットフォームでのHTML5アプリ開発 Firefox OS/Ubuntu Touch
さわってみよう Firefox OS in 大阪
Firefox OS 2012 年まとめ
さわってみよう Firefox OS in 福岡
Firefox OS の Wi-Fi 機能改善
デザイナー目線で Firefox OS を変えよう
Firefox OS カスタム ROM の作成

ROS.js の紹介