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
KMiura
January 25, 2025
Technology
0
20
Pythonでルンバをハックしてみた
しゃち.py みーてぃんぐ 7th. 新年LT大会
https://shachi-py.connpass.com/event/340010/
KMiura
January 25, 2025
Tweet
Share
More Decks by KMiura
See All by KMiura
あなたの知らないクラフトビールの世界
miura55
0
170
Storage Browser for Amazon S3を触ってみた + α
miura55
0
120
Cloudflare R2をトリガーにCloudflare Workersを動かしてみた
miura55
0
130
あのボタンでつながるSORACOM
miura55
0
80
Postman Flowsで作るAPI連携LINE Bot
miura55
0
290
Lambdaと共に歩んだAWS
miura55
3
640
Bedrock Knowledge baseを使って今年の上半期のニュースを聞いてみた(リベンジ編)
miura55
0
210
Is it wrong to use a web framework with Lambda?
miura55
0
160
Bedrock Knowledge baseを使って今年の上半期のニュースを聞いてみた
miura55
0
180
Other Decks in Technology
See All in Technology
いま現場PMのあなたが、 経営と向き合うPMになるために 必要なこと、腹をくくること
hiro93n
9
8.6k
Microsoft Ignite 2024 最新情報!Microsoft 365 Agents SDK 概要 / Microsoft Ignite 2024 latest news Microsoft 365 Agents SDK overview
karamem0
0
120
Re:Define 可用性を支える モニタリング、パフォーマンス最適化、そしてセキュリティ
pyama86
8
2.8k
今年一年で頑張ること / What I will do my best this year
pauli
1
240
サーバーレス環境における生成AI活用の可能性
mikanbox
1
130
reinvent2024を起点に振り返るサーバーレスアップデート
mihonda
1
140
Goで実践するBFP
hiroyaterui
1
130
Windows Server 2025 へのアップグレードではまった話
tamaiyutaro
1
200
ブロックチェーンR&D企業における SREの実態 / SRE Kaigi 2025
datachain
0
1.6k
2025-01-24-SRETT11-OpenTofuについてそろそろ調べてみるか
masasuzu
0
110
[SRE kaigi 2025] ガバメントクラウドに向けた開発と変化するSRE組織のあり方 / Development for Government Cloud and the Evolving Role of SRE Teams
kazeburo
3
1k
実践!生成AIのビジネス活用 / How to utilize Generative AI in your own business
gakumura
1
160
Featured
See All Featured
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
52k
What’s in a name? Adding method to the madness
productmarketing
PRO
22
3.2k
[RailsConf 2023] Rails as a piece of cake
palkan
53
5.2k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
98
18k
Art, The Web, and Tiny UX
lynnandtonic
298
20k
Documentation Writing (for coders)
carmenintech
67
4.6k
Statistics for Hackers
jakevdp
797
220k
It's Worth the Effort
3n
184
28k
StorybookのUI Testing Handbookを読んだ
zakiyama
28
5.4k
Building Your Own Lightsaber
phodgson
104
6.2k
Git: the NoSQL Database
bkeepers
PRO
427
64k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
132
33k
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