1.4K Views
September 18, 24
スライド概要
テレポーテーション実現?その1(IoTLT版)@ IoTLT vol.115
一種のテレポーテーションをとりあえず実現することができたので、見てください。
テレポーテーション実現?その1(IoTLT版) IoT縛りの勉強会! IoTLT vol.115 2024 9/19 福山大学工学部情報工学科 山之上卓
自己紹介 福山大学の教員 高専OB 着る電光掲示板、 テレポートドレッサー、 シン3次元表示装置 テレポーテーション システム作成中
自己紹介 ⚫1980年 interface LKIT-16によるFORTRANシステム ⚫1980年 bit ナノピコ教室じゃんけん大会優勝 ⚫ 1988年日本経済新聞「パソコン通信使い電算機言語開発」 ⚫2016年 ACM SIGUCCS Hall of Fame ⚫ 「ギャル電の意識の低いプレゼンバトル」優勝 @Geek night 広島, 2017 12/9 ⚫ MF Tokyo 2018, MF Taipei 2018, NT広島2019 ⚫ NT金沢2022, OMMF2022, MFT2023, MFK2024 ⚫ ヒーローズ・リーグ2023 トランジスタ技術賞受賞 ⚫ 情報処理学会フェロー
背景 • テレポーテーション(物体瞬間移動)を実現したい! 材料の部品 送信元の構造物 プローブ 通信経路 (ネットワーク) 受信装置(小型工場) 送信装置 (コンピュータ ) 受信された構造物
経緯 • 1994 うどんをネットワークで送りたい@JAINコンソーシアム@ 志賀島 • 1995年、What How For 北九州(産学官交流サロン)で開発 スタート • 1999年、特許出願(2009年査定) • 2002年、試作開始、シミュレータ作成 • 2021年、Real->Virtual 転送成功(IoTLT vol.93)
テレポーテーション実現 の証拠ビデオ • ビデオ – https://youtu.be/WeB2JJEjZQY?si=Vfw30XjyQu4gHbWx
システム概要 送信元 command tesla_transformer.py command 受信機(controller) factory_controller.py 受信機(自動工場) parser 構造情報 送信元 受信地 Wifi/ 組み立て/ TCP/IP 回転 組み立て手順 LAN/ 構造情報 TCP/IP command LAN/ TCP/IP 組み立て Virtual world 受信結果
構造情報 • 送信元->tesla_transformer.py の構造情報の例 – send up "str (this s* f2d3 next s*2 f5d3)". • ダイス s* の2番目の面が、ダイス s*2の5番目の面と、向き1で向かい合っ ている。 – send up “str (this s*2 f2d0 next s*22 f0d0)”. • ダイス s*2 の2番目の面が、ダイス s*22 の0番目の面と、向き0で向かい 合っている。
組み立て手順 • tesla_transformer.py -> factory_controller.pyの組み立て手 順の例 – asm start. self.get_dice_from_the_belt() … ダイスをベルトコンベアから取り上げる self.place_at_the_rotation_point() … 取ったダイスを回転場所に移動する self.v_rotate_f() … ダイスを手前方向に90度垂直回転させる self.get_at_the_rotation_point() … 回転場所からダイスを取り上げる self.place_at_0_0() … 取ったダイスを (0 0) の位置に置く …
送信部分 Real->Virtual
部品間接続・通信機構
LPC 546XX ------
受信装置(自動組み立て工場) • 2023年12月 Qiita, IoTLT Advent Calendar 11日目 「秋月AE-TB67H450とM5Stack(Basic)とRaspberry Piを使っ た電磁石の制御」 – 電磁石を使ったテスラダイスの把握と分離 • ネオジム磁石の脅威 –電流を流さないのにくっつく –電流の向きを変えても離れない
製作中の受信装置(自動工場)
ロボットアームの 部品把握部分
ロボットアームの 部品把握部分
Hardware ベルトコンベアとその制御 RCB-4mini LAN ロボットアームとその制御 x 電磁石とその制御 y-l ダイス(部品)の水平方向の移動 y-r
Software Command UART Chat Server Arduino Arduino Arduino ↓I2C I2C command Slide command ↓ Table ↓ Ne ・・・ Command UART Raspberry Pi Main Controller Command Interpreter, Communication(TCP client), PyRealSense, … Remote Controlled Command Interpreter Command UART M5Stack Arduino Arduino Arduino ↓ I2C I2C Magnet/ command I2C command Motor ↓ command ↓ ↓ Neopixel Neopixel Neopixel RCB-4 ↓ Robot Arm
ロボットアームの制御 • ロボットアーム – Kondo KHR-A5, サーボモータ追 加。高出力サーボモータに一部交換 • アームの動きの作成: – Windowsの Heart2Heart4 で作成, RCB-4mini に書き込み TEACH 機能大活躍 – Raspberry Pi –動作番号->UART>RCB-4mini – Heart2Heart4, RCB-4 Library for Python • Raspberry Pi<->RCB-4mini
全体の制御 time.sleep(10.0) • 受信装置の制御は、main self.send_init_belt_command() controllerでpython の文の列を self.send_arm_motion_command("1") exec関数で実行することで実施。 time.sleep(8.0) • 各文は、スライドテーブル、ベルトコ self.send_magnet_command(0,”go”) time.sleep(2.0) ンベア、電磁石、アームを制御する self.send_stop_belt_command() 機構のついたRaspberry time.sleep(1.0) Pi+(Arduino/M5Stack/RCB4-mini) self.send_arm_motion_command(“2”) へコマンドを送り、各担当機器を制 time.sleep(4.0) self.send_magnet_command(0,”stop”) 御。 self.send_move_command(28.0,100.0) ….
発生した問題 • 事前の予想どおり、アームの電磁石とダイスが離れない – ちょっとずるしました。ガイドの貼り付け。
発生した問題 • 電磁石が発熱して相手側のダイスの面の被服を溶かして、 ネオジム磁石を剥がしてしまいました。
発生した問題 • 熱対策… すべての面にステッカーの保護シールを貼りました
発生した問題 • 回転場所の電磁石を張り付けているシールに、ダイスが引っ掛 かって、意図した動作にならない。 – ひっかかりがないように、別のシールを張り付け。
発生した問題 • 一部のlinear slide table が動かないことがある ->部品移動機構が壊れる – 非常停止ボタンを付加。ついでにマニュアル移動ボタンも付加。 非常停止ボタン マニュアル移動ボタン
おわりに • テレポーテーション実現? – いまはまだ3つのダイスの、しかも一部しか実験していない • しかも、いろいろ不安定要素あり。 – 受信装置が遅い…今回のビデオ、約20分を20倍速 – OMMF2024までには4つで安定してテレポーテーションをデモした い。 – OMMF2024、是非、見に来てください。 • (MFT2024には、テレポートドレッサーを着て見物に行く予定です。) – 色々問題山積み。
謝辞 • What How For Kitakyushu