Bye Bye Moore

PoCソルジャーな零細事業主が作業メモを残すブログ

python

MG4010I36をPythonで動かす

探してみても、以下のような情報くらいしか出ておらず……肝心のパケットはどこに行ったんだっていう Open CAN Protocol 1. CAN bus parameters and single motor command send and receive message format Bus interface: CAN Baud rate: 1Mbps The format of…

ollamaがツールをコールできるようになったので試す

執筆時点で全部のモデルに対応しているわけでは無いそうで 今週、上級モデルならGPT-4o越えだと話題になったLlama 3.1を導入して遊んでみようと思います 実際のところ llama3.1の導入(してない場合) ollama pull llama3.1 スクリプト import json import o…

ローカルLLM環境を構築できるOllamaをためす その6:業務知識を喰わせる

shuzo-kino.hateblo.jp の続き 私が今回【読書メモ】実践 生成AIの教科書 - Bye Bye Mooreから学んだ概念にRAG(Retrieval-Augmented Generation:情報検索補強生成)というのがあります。 要するに業務知識を喰わせるという事……らしい。 実際のところ 与え…

ローカルLLM環境を構築できるOllamaをためす その3:Pythonでチャットしてみる

実際のところ 導入 $ pip install ollama 実験 反応がないと不安になるのでstreamはTrueに設定 import asyncio from ollama import AsyncClient async def chat(): message = {'role': 'user', 'content': 'Why is the sky blue?'} async for part in await …

cybergearをpythonで弄る その4:複数軸を位置で動かす

実際のところ 複数軸動かすときは、ID毎にインスタンスを生成して操作してあげればよいです。 各軸のIDは先に書き込みしておいてください。 import os import sys # 添加pcan_cybergear库的路径 # パスの追加 sys.path.append(os.path.join("..", "cybergear…

cybergearをpythonで弄る その3:一軸だけ速度で動かす

shuzo-kino.hateblo.jp の続き 今度は速度を変更 実際のところ # モーターの有効化 motor1.set_run_mode(motor1.RunModes.SPEED_MODE) motor1.enable() ## 速度パラメータを指定 motor1.write_single_param("spd_ref", value=0) # ゼロ点に移動 motor1.write…

cybergearをpythonで弄る その2:一軸だけ角度で動かす

実際のところ CANの立ち上げ ### CAN状態の確認 $ ip link show type can ### 既存プロセスの停止 $ sudo ip link set can0 down ### 通信レートの設定 $ sudo ip link set can0 type can bitrate 1000000 ### プロセスのたちあげ $ sudo ip link set can0 u…

cybergearをpythonで弄る その1:環境構築

実際のところ 作業環境 Ubuntu 22.04LTS 使用デバイス Ubuntuが動作する機体で操作するので、USB CANFD変換器を使いますUSB - デュアルチャンネル CANFDコンバーター Raspberry Pi4/Pi3B+/Pi3/Pi Zero(W)/Jetson Nano/Tinker Board/PC用 Windows Linuxソフト…

paramikoをつかいpython3でSSHリモートコマンドをやる その1:とりあえず使う

shuzo-kino.hateblo.jp などでやったリモートコマンドですが……これをsubprocessなりで立ち上げると、毎回毎回立ち上げる羽目になり効率が宜しくありません。 実際のところ 導入 $ pip install paramiko スクリプト import paramiko # SSHクライアントのイン…

"c.NotebookApp.ip = '*' "を設定したのにJupyter NotebookがmDNS経由で実行できないとき、起動時に"ip"オプションをつけると何とかなるかもしれない

"c.NotebookApp.ip = '*' "を設定したのにJupyter NotebookがmDNS経由で実行できないとき、 起動時に"ip"オプションをつけると何とかなるかもしれません 実際のところ ついでに、バックグラウンド処理をするようにします 初回はnohup.outからトークンを回収…

【読書メモ】Pythonによる物理シミュレーションと強化学習: PyBullet + PyTorch

Pythonによる物理シミュレーションと強化学習: PyBullet + PyTorch作者:Tech CodeAmazon

pybulletをJupyter Notebookでつかう その4:addUserDebugParameter

ipywidgetsに似たような機能としてaddUserDebugParameterというのもあります 実際のところ メソッドの説明 paramId = p.addUserDebugParameter(paramName, rangeMin, rangeMax, startValue) スクリプト例 import pybullet as p import time # PyBulletのGUI…

pybulletをJupyter Notebookでつかう その3:addUserDebugLine

実際のところ メソッドの詳細 lineId = p.addUserDebugLine(lineFromXYZ, lineToXYZ, lineColorRGB, lineWidth, lifeTime) 使い方 import pybullet as p p.connect(p.GUI) # 線の開始点と終了点 start_point = [0, 0, 0] end_point = [1, 1, 1] # 線を描画(…

pybulletをJupyter Notebookでつかう その2:ロボットアームを動かす

実際のところ import pybullet as p import time import pybullet_data # GUIモードでpybulletを起動 p.connect(p.GUI) # デフォルトのデータパスを設定 p.setAdditionalSearchPath(pybullet_data.getDataPath()) # 重力の設定 p.setGravity(0, 0, -10) # 平…

pybulletをJupyter Notebookでつかう その1:とりあえずキューブを動かす

実際のところ ライブラリ群の読み込み pybulletは当然として、描画のためにIPython.displayのdisplayとclear_outputよみます。 import pybullet as p import time import pybullet_data from IPython.display import display, clear_output import matplotli…

楕円を重心からN度傾けた場合の点の変化

あらかじめ取得済みの、楕円を描く座標点があります これを重心軸からN度傾けた場合、それらの座標点がどうズレるかを計算する 実際のところ 座標点は全部で8点、これを重心を起点に15度ずらす例は以下の通り、。 折角なので、これをmatplotで描画してみ…

Ubuntu 22 LTSでOpenCALM をためす その3:ファインチューニングなるモン

前回までの実験で、とりあえずローカルでLLMが動いたものの……なんやらトンチカンな回答を返す妙なブラックボックスがプロセスに居座っているだけになっていました。 こいつを目的用に改造するには、ファインチューニングなるモンが必要なようです。 実際のと…

Ubuntu 22 LTSでOpenCALM をためす その2:チャット的な挙動

実際のところ スクリプト argから質問文をとって回答するようにします。 import sys import torch from transformers import AutoModelForCausalLM, AutoTokenizer def generate_answer(question): loadmodel = "cyberagent/open-calm-7b" model = AutoModel…

Ubuntu 22 LTSでOpenCALM をためす その1:環境構築

OpenCALMはCyberAgentさんが開発した大規模言語モデル(LLM)です。 ChatGPTなどと同様、テキスト生成や理解など自然言語処理タスクに利用できますが、 特に日本語の理解に重点をおいているようです。 実際のところ 前提 Ubuntu 22.04LTS python 3.10.12 RTX 4…

Python3でgRPCをつかう その4:リフレクション機能

リフレクション機能は、protoファイルを扱う側の環境が同ファイルを動的に使ったりするときに使うアレコレです。 実際のところ という事で……protoファイルで定義されてない内容も動的に解釈して使う方法をやってみます protoファイル syntax = "proto3"; pac…

Python3でgRPCをつかう その2:サーバーとクライアントをつくる

実際のところ ソースコード サーバー側 from concurrent import futures import grpc import helloworld_pb2 import helloworld_pb2_grpc class GreeterServicer(helloworld_pb2_grpc.GreeterServicer): def SayHello(self, request, context): return hello…

Python3でgRPCをつかう その1:準備

gRPCはGoogleによって開発された、異なるデバイスやアプリケーション間で関数や手続きを呼び出すための*1フレームワークです。 HTTP/2を利用してバイナリ形式でデータをやり取りすることで、アプリケーション間を低遅延で安定した通信網でつなぐ事ができます…

Jupyter Notebookでブラウザを一々起動しない

リモート転送時にオプションなしで起動すると、X Window系のエラーが出て鬱陶しいので、調べてみました。 実際のところ jupyter notebook --no-browser 参考もと docs.jupyter.org

ROS2 humbleでxArm公式力覚センサーを使えるようにする

実際のところ サービスを有効化し、力覚センサーを有効化する 設定ファイル $ cd ~/dev_ws/install/xarm_api/share/xarm_api/config/ $ vim xarm_params.yaml最終的に、falseになっている以下の行をtrueにして有効化。 ft_sensor_enable: true ... get_ft_se…

SSHリモートコマンドで接続先のJupyterNotebookファイルを実行する

接続先のJupyterNotebookファイルはWebsocketを使うとスマートに実行できるそうなのですが……私はそんな凄い技術は使えないので、遅くとも慣れたSSHリモートコマンドでやっていこうと思いました( 実際のところ 接続先が「user@remote.local」で、実行するJup…

Jupyter Notebookの接続トークンを知りたいのに"jupyter notebook list"で情報が得られないとき

Jupyter Notebookのトークンをしらべる 実際のところ 通常のjupyterなら、ここでトークンがでてきます が、ご覧の通りOT-2ではそれらしい表記がありません # jupyter notebook list Currently running servers: http://0.0.0.0:48888/ :: /var/lib/jupyter/n…

Jupyeter Notebookのファイルのすべてを実行させる

実際のところ $ jupyter nbconvert --to notebook --execute --inplace MyNotebook.ipynb"--to notebook --execute"で出力フォーマットとしてノートブックを指定し実行します。。 "--inplace"は、元のノートブックファイルを実行結果で上書きします。つまり…

cv2でRealsenseのカラー画像をRGBに明示的に変換

import pyrealsense2 as rs import numpy as np import cv2 # RealSenseの設定オブジェクト conf = rs.config() # カラー画像を取得 conf.enable_stream(rs.stream.color, width, height, rs.format.bgr8, fps) # Realsenseの画像受け取りパイプの解放 pipe …

【読書メモ】Pythonで学ぶ画像認識 機械学習実践シリーズ

Pythonで学ぶ画像認識 機械学習実践シリーズ作者:田村 雅人,中村 克行インプレスAmazon

UFactory Lite6のPython SDKで” API -> set_tgpio_digital(ionum=0, value=1) -> code=1”なるエラーがでるとき、グリッパーは明示的にオンにしておく

実際のところ [SDK][ERROR][2022-10-27 15:48:42][base.py:340] - - API -> set_tgpio_digital(ionum=0, value=1) -> code=1 なとき myip = "192.168.1.X" arm = XArmAPI(myip) arm.set_gripper_enable(True) 参考もと Lite6 - Gripper API Causes Errors · …