じどう化とか

ロボット、IoT、AIとか

製品のモジュール化設計は、普段より商売自体の設計を考える

ビックカメラを歩いていたら、モジュール化された延長ケーブルを見つけたので楽しくなって買ってみました。レゴ好きなので、楽しくなりました。

この製品は、既存のコンセントと互換性を保ちながらモジュールとして利用できます。

モジュール化を考える場合に考えなくてはいけないことの1つは、「設計費用、原材料費はモジュール機能実現の分高くなる」

  • 互換性や接続のため、ほぼ全パターンを網羅的に考える必要があります。検討の時間は長くなります、設計時間は長くなり、費用は大きくなります。
  • モジュール化の接続部分の構成(モジュール実現機能)のためにコストが上がります。今回の例だと、モジュール実現機能は1つの製品ごとのプラグ部分とロック部分です。この部分は、完成品の4つ穴スイッチ付きコンセントを買った不要です。
  • 設計時の機能確認、生産時の品質確認もモジュール実現機能のために時間がかかります。

コスト的には高くなりますが、メリットは次に用になります。

  • 仕様違いに新規開発費用を抑えられる。今回の例だと、7つ穴付きスイッチ付きコンセントを新規開発費用をかけずに市場に提供できます。結果、ユーザーに寄り添った製品を提供できます。
  • 製品の在庫がしやすい。仕様がたくさんあると、受注生産になりがちですがモジュールで在庫することが可能になります。
  • 量産効果でコストダウンもある程度期待できる。どこでモジュールを分割するかが影響します。
  • 部品やモジュールで量産効果が出ることもある(特に少量多品種の量産効果が聞いにくい製品)。
  • (BtoC)組み合わせが顧客の楽しみになる

多々、メリットはありますが、設計時に、どこでモジュールを分割するを考える必要がありますが、どう発注するか、在庫するか、カタログにどう記載するかまで考えないといけなくなってきます。

とくに新規にモジュール設計を採用する際は、商売全体を考えて設計していかなくてはいけません。よく関係部署とすり合わせてください。

市販している(してそうな)、フィンガー系ロボットハンドを調べてみた(主に多指)

SVH [SCHUNK Japan]

人間の手にそっくりな、電動サーボ5本指ハンド!

youtu.be


schunk.com

K3Hand [Orbray株式会社(旧 アダマンド並木精密宝石株式会社)]


www.youtube.com

協働ロボット用エンドエフェクタ |Orbray株式会社

BARRETTHAND


www.youtube.com

advanced.barrett.com

国内販売

www.nihonbinary.co.jp

 

書いてから公開するの忘れてた

CADがおしゃべりしたらCADもゲームみたいに楽しくならないかな?

CADのコマンドがゲームの必殺技みたいに叫んだら楽しくないかな?

というわけで作っていみました。
Solidworksでコマンドを実行するたびにwavファイルを呼び出します。動画ではずんだもんにしゃべってもらってます。

エラー処理もろくにしてないので、あくまで遊びの範囲にしてください。なお、bingに相談して作ってます(便利)。


www.youtube.com

概要

今回はSolidworksのマクロを利用しています。

  • Cドライブの中に"C:\temp\wave"というフォルダを作ります。
  • そのフォルダの中に、音声ファイル(WAV)と設定ファイル(CSV)を入れます。
  • 設定ファイルでは、数字と音声ファイルの名前を書きます。数字は、Solidworksでどんな操作をしたかを表すもので、swCommands_e Enumerationと呼ばれています。どんな数字がどんな操作に対応しているかは、次のサイトで見ることができます。
    swCommands_e Enumeration - 2021 - SOLIDWORKS API Help
  • マクロを実行すると、設定ファイルに書いた数字の操作をするたびに、その数字に対応した音声ファイルが再生されます。この効果はSolidworksを終了するまで続きます

マクロ本体

メイン部分

Dim swEventsHandler  As EventsHandler

Sub main()

    Set swEventsHandler = New EventsHandler

End Sub

クラスモジュール部分

Option Explicit
Private Declare PtrSafe Function mciSendString Lib "winmm.dll" Alias "mciSendStringA" (ByVal lpstrCommand As String, ByVal lpstrReturnString As String, ByVal uReturnLength As Long, ByVal hwndCallback As Long) As Long

Public WithEvents swApp As SldWorks.SldWorks
Private filePaths() As String 'ファイルパスを格納する配列
Private commandIDs() As String '数字を格納する配列

Private Sub Class_Initialize()
    Set swApp = Application.SldWorks
    Dim fileNum As Integer 'ファイル数
    Dim i As Integer 'ループカウンタ
    Open "C:\temp\wave\sound_list.csv" For Input As #1
    fileNum = 0
    While Not EOF(1)
        ReDim Preserve filePaths(fileNum)
        ReDim Preserve commandIDs(fileNum)
        Input #1, filePaths(fileNum), commandIDs(fileNum)
        fileNum = fileNum + 1
    Wend
    Close #1
    MsgBox "VOICEVOX:ずんだもん" & vbCrLf & "(Exit Load : " & fileNum & ")"
End Sub

 

Private Function swApp_CommandOpenPreNotify(ByVal command As Long, ByVal userCommand As Long) As Long
    Dim i As Integer 'ループカウンタ
    Dim comandStr As String '再生するコマンドを格納する変数
    '数字と比較して対応するファイルを検索する
    For i = 0 To UBound(commandIDs)
        If commandIDs(i) = CStr(command) Then
            comandStr = "play " & filePaths(i)
            Exit For
        End If
    Next i
    
    '再生するファイルが見つかった場合は、wavファイルを再生する
    If comandStr <> "" Then
        Call mciSendString(comandStr, "", 0, 0)
        'MsgBox comandStr
    End If
End Function

設定ファイルの例("C:\temp\wave\sound_list.csv")

C:\temp\wave\001_ずんだもん(ノーマル)_おしだし.wav,8
C:\temp\wave\002_ずんだもん(ノーマル)_おしだかっとっ.wav,10
C:\temp\wave\003_ずんだもん(ノーマル)_ぐるん.wav,24
C:\temp\wave\004_ずんだもん(ノーマル)_ぐるんかっと.wav,48
C:\temp\wave\005_ずんだもん(ノーマル)_ねじねじ.wav,39
C:\temp\wave\006_ずんだもん(ノーマル)_あーる.wav,9

参考サイト

swCommands_e Enumeration - 2021 - SOLIDWORKS API Help

Handling SOLIDWORKS events (codestack.net)

Qidi i-matesの冷却ノズルダクトを変えてみる

ことの経緯(関係ないし)

Qidi i-matesを運転していると、フィラメントが出てこなくなり、お?

フィラメントを抜いてみると途中で溶けている。

調べていくと、別件で分解修理をしたときにヘッド冷却用ファンを間違えて組付けてしまい。ファンが回らなくなって、ファンが焼けてしまって故障したみたい。細ノズル用のヘッドのファンと部品を交換して修理完了。

で、いろいろ調べている中でQidi用のダクトノズルのデータに出会う!

ダクトノズルの印刷

調べる中で、ノズル冷却用ファンのダクトノズルを見つけたので取り付けてみます。

www.printables.com

サポートがうまくレイアウトできないの45度印刷

結果

 

同じモデルで比較したいので、ダクトノズルを印刷

i-matesに取り付けた様子(取り付けのネジがとどいてない)


(右)ダクトノズルをつけて印刷

(左)標準

(右)ダクトノズルをつけて印刷

(左)標準

標準のダクトノズルではわずかに欠けていた部分がきれいに印刷。気持ち糸引きの糸が細くなったかな?

ClearGraspを使って、透明なボトルをRealsenseで撮影したい!それもWindows(WSL)で

Google AI blogのClearGraspを利用して、透明なボトルを撮影してみる。いつかマッチングをさせたい。という内容です。

現在我が家には、Linux環境がないのでWindowsで行いたいのですが、ClearGraspは構成上でonly Linuxとなっています。このためWSLから実行するために用意しました。

思い出しながら書いているので抜けてるかもしれませんがご容赦ください

github.com

環境を用意

WSLのインストール

WSL2のインストールと分かりやすく解説【Windows10/11】 | チグサウェブ

WSLでUSBを動かせるようにする

【第4回】WSL2にUbuntu 22.04 LTSを導入する(Webカメラを使う) - パソコン関連もろもろ

WSL2 USBカメラ+他のUSB機器 2022年09月06日版

他には、動作試験用にfswebcamやGeditもインストール

3DとRealsense周りは以下の物をインストール

  • Pytorch
  • CUDA

WSL2 上の Ubuntu での NVIDIA CUDA ツールキット, NVIDIA cuDNN, PyTorch, TensorFlow 2.7 のインストールと動作確認(Windows 上)

  • LibRealsense

RealsenseをセットアップしてROSやUnityで使う方法

【第4回】WSL2にUbuntu 22.04 LTSを導入する(Webカメラを使う) - パソコン関連もろもろ

/bin/sh: 1: bc: not found

buを別でインストール

3.9.1-landiskクロスコンパイル - forester3の日記

 

本体の用意(での問題点)

  • $ sudo apt-get install libhdf5-10 libhdf5-serial-dev libhdf5-dev libhdf5-cpp-11
    で"libhdf5-10"と"libhdf5-cpp-11"がインストールできず。
    "sudo apt update"などやったが効果なし。
    結局問題のあった"libhdf5-10"と"libhdf5-cpp-11"を取り除いて実行
    $ sudo apt-get install libhdf5-serial-dev libhdf5-dev
    なんでこれでよいかがわからない。
  • $ pip install -r requirements.txt
    でCould not find a version that satisfies the requirement opencv-python==4.1.2.30と怒られる。opencv-python==4.1.2.30が無いとのこと。
    requirements.txtをopencv-python==4.7.0.68と書き換え
  • depth2depthは"api/depth2depth/gaps"に入っており自分でコンパイルする。
  • depth2depthをコンパイル中、GL/Glu.hが無いといわれる。

    以下を実行した。
    $ sudo apt-get install libglfw3-dev libgl1-mesa-dev libglu1-mesa-dev
  • python起動し足りなかったライブラリは入れていく
  • eval_dept_completion.py を実行の際に__init__.py周りでエラーが出た。__init__.pyの書き方を少し修正した。

  • live_demoを起動するために、パイプラインソフトを起動するとエラーが出る。
    • realsense.cppの解像度を変更、154,156行のフレームレートも30fpsに固定

    合わせてcamera.pyも修正
  • ダウンロードした”cleargrasp-checkpoints”はフォルダ"data"以下に"cleargrasp"といフォルダを作って入れる
  •  libcuda.soのリンクが見つからない

    "~/.bashrc"に以下を追加
    export PATH=/usr/local/cuda/bin:$PATH
    export LD_LIBRARY_PATH=/usr/local/cuda/lib64:/usr/lib/wsl/lib/:$LD_LIBRARY_PATH
  • camera.pyでエラーが出る。

    284行目のlongをint64に修正

普段の起動

wslにUSBを紐づける

USBのリストを確認して、1-5をwslに紐づける

wsl側

>usbipd wsl list

>usbipd wsl attach --busid 1-5

以下、画像は1-5を紐づけた様子

wsl側でカメラの接続を確認

$ lsusb

カメラの権限を変更する

$ sudo chmod 777 /dev/video*

カメラ準備完了

デモを動かす。まずはRealsenseの画像をTCP経由(パソコン内)で渡すソフトを起動する。このソフトは"&"をつけて起動したまま次のコマンドへ行く。

$ cd ~/cleargrasp/live_demo/

$ ./realsense/build/realsense &

続いてスクリプト本体を起動する

python live_demo.py -c config/config.yaml

 

WSLでUbuntu,Python,PyTorch,CUDAのバージョンを確認

Ubuntuのバージョンの確認

$ lsb_release -a

No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 22.04.1 LTS
Release:        22.04
Codename:       jammy

Pythonのバージョンの確認

$python3 --version

Python 3.10.6

PyTorchのバージョン確認

PyTorchのバージョンを確認 (version) | 日々、学ぶ

$ pip show torch
Name: torch
Version: 1.13.1
Summary: Tensors and Dynamic neural networks in Python with strong GPU acceleration
Home-page: https://pytorch.org/
Author: PyTorch Team
Author-email: packages@pytorch.org
License: BSD-3
Location: /home/ootone/.local/lib/python3.10/site-packages
Requires: nvidia-cublas-cu11, nvidia-cuda-nvrtc-cu11, nvidia-cuda-runtime-cu11, nvidia-cudnn-cu11, typing-extensions
Required-by: torchaudio, torchvision

CUDAのバージョン確認

$ nvidia-smi
Thu Jan 19 23:30:12 2023
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 527.92.01    Driver Version: 528.02       CUDA Version: 12.0     |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|                               |                      |               MIG M. |
|===============================+======================+======================|
|   0  Quadro P1000        On   | 00000000:01:00.0  On |                  N/A |
| 34%   35C    P8    N/A /  47W |    635MiB /  4096MiB |      2%      Default |
|                               |                      |                  N/A |
+-------------------------------+----------------------+----------------------+

+-----------------------------------------------------------------------------+
| Processes:                                                                  |
|  GPU   GI   CI        PID   Type   Process name                  GPU Memory |
|        ID   ID                                                   Usage      |
|=============================================================================|
|  No running processes found                                                 |
+-----------------------------------------------------------------------------+

 

 

1mmノズルでPETGの透明を何とかきれいに印刷したい2「直行表で実験して、多変量解析で要因ごとに分解し、ソルバーで解くアプローチをエクセルで」

1mmノズルでPETGをきれいに印刷したい。

でも、条件が出ない・・・ということが続いているので実験計画法を使って調節してみます。・・・のパート2です。

アプローチの紹介

今回は条件を探るために、エクセルでプリンタ設定と各不具合の関係式を作ります。その式でシミュレータし、不具合が最小になる設定条件を求めて印刷してみます。

結果➡失敗!

最終的にまったく満足いってません。なんなら前回より悪化しています。太ノズルは難しいですね。

いい経験になったので、記録としてまとめおきます。

続きを読む