Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Pythonでルンバをハックしてみた
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
KMiura
January 25, 2025
Technology
210
0
Share
Pythonでルンバをハックしてみた
しゃち.py みーてぃんぐ 7th. 新年LT大会
https://shachi-py.connpass.com/event/340010/
KMiura
January 25, 2025
More Decks by KMiura
See All by KMiura
運用しているアプリケーションのDBのリプレイスをやってみた
miura55
1
1.2k
Amazon Rekognitionを使ったインターホンハック
miura55
0
110
あなたの知らないクラフトビールの世界
miura55
0
410
Storage Browser for Amazon S3を触ってみた + α
miura55
0
270
Cloudflare R2をトリガーにCloudflare Workersを動かしてみた
miura55
0
270
あのボタンでつながるSORACOM
miura55
0
170
Postman Flowsで作るAPI連携LINE Bot
miura55
0
420
Lambdaと共に歩んだAWS
miura55
3
950
Bedrock Knowledge baseを使って今年の上半期のニュースを聞いてみた(リベンジ編)
miura55
0
330
Other Decks in Technology
See All in Technology
AI時代のIssue駆動開発のススメ
moongift
PRO
0
330
SaaSの操作主体は人間からAIへ - 経理AIエージェントが目指す深い自動化
nishihira
0
130
RGBに陥らないために -プロダクトの価値を届けるまで-
righttouch
PRO
0
130
MCPで決済に楽にする
mu7889yoon
0
170
AIエージェント勉強会第3回 エージェンティックAIの時代がやってきた
ymiya55
0
180
Oracle Cloud Infrastructure(OCI):Onboarding Session(はじめてのOCI/Oracle Supportご利⽤ガイド)
oracle4engineer
PRO
2
17k
JEDAI認定プログラム JEDAI Order 2026 受賞者一覧 / JEDAI Order 2026 Winners
databricksjapan
0
430
Babylon.js を使って試した色々な内容 / Various things I tried using Babylon.js / Babylon.js 勉強会 vol.5
you
PRO
0
150
【社内勉強会】新年度からコーディングエージェントを使いこなす - 構造と制約で引き出すClaude Codeの実践知
nwiizo
35
16k
「活動」は激変する。「ベース」は変わらない ~ 4つの軸で捉える_AI時代ソフトウェア開発マネジメント
sentokun
0
140
遊びで始めたNew Relic MCP、気づいたらChatOpsなオブザーバビリティボットができてました/From New Relic MCP to a ChatOps Observability Bot
aeonpeople
1
140
自分をひらくと次のチャレンジの敷居が下がる
sudoakiy
5
1.4k
Featured
See All Featured
What’s in a name? Adding method to the madness
productmarketing
PRO
24
4k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
659
61k
We Analyzed 250 Million AI Search Results: Here's What I Found
joshbly
1
1.1k
What's in a price? How to price your products and services
michaelherold
247
13k
Unlocking the hidden potential of vector embeddings in international SEO
frankvandijk
0
230
Visual Storytelling: How to be a Superhuman Communicator
reverentgeek
2
490
Digital Ethics as a Driver of Design Innovation
axbom
PRO
1
250
From Legacy to Launchpad: Building Startup-Ready Communities
dugsong
0
190
DevOps and Value Stream Thinking: Enabling flow, efficiency and business value
helenjbeal
1
160
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
46
2.7k
Designing Powerful Visuals for Engaging Learning
tmiket
1
320
Getting science done with accelerated Python computing platforms
jacobtomlinson
2
160
Transcript
Pythonでルンバをハックしてみた Koki Miura(@k_miura_io)
自己紹介 • 三浦 耕生(こうき) • バックエンドエンジニア • 鯱.py 運営 •
JAWS UG名古屋&神戸 運営 • Cloudflare Meetup 名古屋 運営 @k_miura_io koki.miura05
Discordの参加お待ちしております! https://discord.gg/AJ99S4mp9T
今から3年ぐらい前、ハドフで発見
しかし、ずっと使ってなかった • ルンバ自体は持ってたけどそもそも使ってなかった • リビングに犬がいて何かいたずらされないか心配 だった
一人暮らしを始める ※画像はイメージです
自宅のルンバが大活躍 • 長年放置しててバッテリーが死んでたが、Amazonの 互換バッテリーに交換してあっさり動いた • 自分のデスク意外はものが散らかってなくて割と広々し ているのでかなりのびのびと動いてくれてリビングの掃 除をする手間が省けた
こいつの出番だ!
やってみた
Roomba Open Interface(ROI) • iRobotが定義したルンバを制御するためのソフト ウェアインターフェース • 移動だけじゃなくて、センサーデータの取得やコマ ンドを呼び出すなど一連の制御ができる •
Mini-DINポートを使ってPCやマイコンとシリアル通 信を行う https://edu.irobot.com/learning- library/create-2-oi-spec
iRobotの教育向けプロダクト • 昔からiRobotはルンバをベースにした教育用ロ ボットとしてCreateというロボットを製造していた • 掃除機能が無い代わりに空いたスペースに ArduinoをRaspberry Piを突っ込む想定 • 過去のロボットにまつわる論文を見ているとCreate
を使用した事例をよく見かけるぐらい研究用途でも 使われている
None
このケーブルが何者なのかはわからずw
出るのはだいたいこれ
気を取り直して…
ハードウェア • iRobot Model # 4822(USBシリアルケーブル) • Roomba 760 •
Raspberry Pi 3 Model A+
PyRoombaAdapter • ROIをPythonで扱いやすいよ うに抽象化したライブラリ • 内部ではPySerialを使ってい るのでその感覚でポート指定 すれば簡単に動かせそう https://github.com/AtsushiSakai/PyRoombaAdapter
とりあえず動かす
動かしてみた
何か音楽を流す • send_song_cmdで自由にメロディを流すことができる • MIDIに対応しており、音階はMIDIのノートナンバーを 指定する • ノートナンバーとその音の長さをリスト形式でやるス タイル
None
ミュージックホーン を再現してみる
鳴らしてみる
ルンバのボタン操作をする • send_buttons_cmdメソッドを使うことでROI経 由でボタンを押すような操作を実行できる • 引数で押したいボタンを指定することでそ の操作を実行できる • ボタンは1/6秒押した時と同じ挙動を再現 するらしい
ミュージックホーン を鳴らしてホーム ベースに戻る
動かしてみる
今回のブログ https://bit.ly/4jqrQ5r
やたらスターをつけてもらえたw
読者数が急に 増えたw
公式でピックアップ してもらったw
まとめ • ジャンクで見つけたケーブルが見事に機能してルンバをハックできた • iRobotのインターフェースが良くできていてプログラムで自由にルンバ を操作できる仕組みが整っていた • PyRoombaAdapter結構便利
END