1 of 17

片付けロボを作ってみた&

Jetson Orin NanoでNanoLLM(VLM)

を動かしてみた

                 taki

2 of 17

自己紹介

taki

・メカエンジニア

・趣味でロボットを作っている

モジュラロボットに興味がある

今は単体ロボットの技術を勉強中

モジュラロボット

モジュール

アセンブリロボット

今回は片付けロボット

3 of 17

片付けロボット

1.頭のカメラで片付け品を見つける

2.周りにぶつからないように移動

3.片付け品を掴む

4.周りにぶつからないように戻る

5.片付け箱に片付け品を戻す

4 of 17

作った目的:

・気軽にロボット技術の実験ができる汎用プラットフォームが欲しい

・.メカだけでなく認識などもあわせてロボットを作れるようになりたい

・そろそろ人に役立つ(最低でも自分用には使える)ロボが作りたい

ロボットの狙うスペック

・安く作りたい(~10万くらい)

・過般重量500gは欲しい

・稼働時間2Hくらいは欲しい

・参考はH〇R

5 of 17

片付けロボットの構成部品

Lidar:Camsense

(もっと良いのはある)

PC:Jetson AGX xavier

NVIDIA製

(中古品)

Depth camera:

Intel製

Realsense435(中古)

サーボモータ:STS3215x13

Feetec製

(電流見れるの嬉しい)

足回り:4個

アーム:4個

リフト:2個

パンチルト:2個

ハンド:1個

メカナムホイール

(Amazon品)

マイコン:ESP32

Espressif Systems製

サーボ制御基板: FE-URT-1

Feetec品

送りネジx2:Amazon品

(リード8mm)

バッテリ:

UGREEN製

(25000mAh、145W)

金属部品、板金Meviy製

6 of 17

片付けロボットの作り方:メカ関係

CAD:

Solidworks for Maker

(実質タダ!)

樹脂品:

3Dプリンタで印刷

3D Printer:

prusa mk3S+→Bambu

金属部品:

meviyの板金部品

(これも実質タダ!)

7 of 17

片付けロボットの作り方:電気関係

Amazonの~20V~3A流せる

DC-DC小さくて良い

Lidar

Jetson

20V

サーボ用制御基板

9V

足回りサーボs

アーム、パンチルトサーボs

Depth camera

Realsense

DCDC

9V

DCDC

5V

ESP32

電源線

通信線

センサ類はESP32でRosserialに乗せてJetsonへ

バッテリ

25000mAh、145W

TypeCで20V出力

Type C 20V

8 of 17

片付けロボット:ソフト(ほぼROS)関係

制御(ESP32)

システム(Jetson)

センシング(Jetson)

物体検出:YOlOv8

SLAM:

ROS1、Gmapping

モータ制御:

SCSServo_Linux

(Feetech

 純正ライブラリ)

統合

ROS1

経路計画:

ROS1、move_base

逆運動学:

自作C++

ライブラリ

環境認識点群取得:

Lidarの内部マイコン

モータ制御基板

9 of 17

NEXT片付けロボット(今年の目標)

・片付けの成功率、速度向上

・声で指示出したら冷蔵庫から飲み物持ってくるくらいは役立って欲しい

・片付けの成功率、速度向上

→把持の効率、成功率の向上(SLAMとかの移動に関しては脇に置いとく)

→触覚センサの導入

・声で指示出したら冷蔵庫から飲み物持ってくるくらいは役立って欲しい

→ドアや冷蔵庫の開閉をどうすればよいかイメージできてない

→家の環境に寄せ切ったシステムインテグレートはしたくない

→タスクセットを用意したら、あとはLLMが何とかしてくれないか?

→ローカルLLMの導入

10 of 17

ローカルLLM

・引き続きJetsonシリーズを選択

・JetsonにもミニローカルLLMがあるらしい

・最近Jetson orin nanoの性能が上がって、半額になったらしい

→どんなもんか使ってみた

Jetpack6.1を入れれば君のjetsonもsuperに

11 of 17

nanoLLM(Efficient-Large-Model/VILA-2.7b)

→応答は結構早い、RAMは7GBくらい使う

12 of 17

nanoVLM(Efficient-Large-Model/VILA-2.7b)

→1秒毎に「画像」と「描写してください」を入力

→応答は遅い(遅延が5秒くらいある)、RAMは7GBくらい使う

13 of 17

nanoVLMは画像の位置も把握してる

→バウンディングボックスを返せる

14 of 17

以上 ご清聴ありがとうございました

15 of 17

片付けロボット作ってみた所感(個人の感想):

目的に対して

・今後も使えそうなものはできた→継続開発中

・認識技術やROSの勉強になったが、課題も増えた(見えた)...

・自分ですら使えるロボットにはまるでなってない...

制作に関して

・ロボット部品はだいぶ安くなった

・加工選択肢も増えた(Bambu、Meviy、JLCPCBとか)

・ソフトのサポートも増えた(CHAPTGPTとか)

・ROS最高(個々のライブラリもだけどシステム統合やりやすい)

→ロボットが非常に作りやすい時代

ロボット技術に関して

・指先が柔軟材なだけで把持成功率は大きく変わる

・視覚だけでの安定把持は厳しい(触覚センサとかほしい)

・SLAMや軌道生成もROSだけじゃうまくいかない

・システムインテグレートが面倒くさい

・音声入出力とか無いと実用上コミュニケーション取れない

・Jetsonの消費電力のおかげかバッテリは意外と長くもつ(2H~3H)

16 of 17

試したい人は下記のリンクに従えば再現できます

https://www.jetson-ai-lab.com/tutorial_nano-llm.html

https://www.jetson-ai-lab.com/tutorial_nano-vlm.html

https://www.jetson-ai-lab.com/ros.html

ROS2はoutput_textとinput_imageを結合してpublishするトピックを自分で追加。gitにあげる

17 of 17

Jetson orin nanoでNanoLLMしたときにハマったこと

・jetpackのインストール

→PCのSDKマネージャーをつかうときにPCのjetpackも6.1にしないとjetsonに流し込むときに通信エラー

・nanoLLM関係

→jetson orin nanoはメモリが8GしかないのでSWAPを16GBくらい作らないと動かない

・nanoVLM関係(ROS2関係)

→公式デモがVLM結果をオンラインストリーミングでやってるが映らん。というか今後を考えてローカルで確認したい

→ROS2のnanoVLMパッケージがあった

→公式のnanoLLMにhumbleタグのイメージがあるのにhumble入ってない

→公式のnanoLLMイメージにhumbleイメージをマージ

(アーカイブにhumbleベースのものもあったがNANOLLMが回らなかった)

→openCVの互換性とかでエラー、purgeでopencv関係を消してからhumbleをインストール(openCVはこのときまたインストールされる)

→ROS2のcam2imageの画像サイズがカメラと合ってないとエラー