Bye Bye Moore

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

python

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 · …

xArm Python SDKをUbuntu 22.04 LTSに構築する その2:位置制御・軸制御

実際のところ from xarm.wrapper import XArmAPI ## アーム接続先の決定 robot_ip = '192.168.1.195' arm = XArmAPI(robot_ip) #>> ROBOT_IP: 192.168.1.195, VERSION: v2.3.102, PROTOCOL: V1, DETAIL: 7,13,CS1304,DC1303,v2.3.102, TYPE1300: [1, 1] #>> …

xArm Python SDKをUbuntu 22.04 LTSに構築する その1:環境構築

実際のところ 必要なパッケージ $ sudo apt install git $ sudo apt install python-is-python3 リポジトリの用意 $ git clone https://github.com/xArm-Developer/xArm-Python-SDK.git 導入 $ cd xArm-Python-SDK $ python setup.py installfrom xarm.wrapp…

ROS2のlaunchファイルで引数を与える

実際のところ UFactory Lite6用ノード Joystick用ノード JoystickでUFactory Lite6を動かすpythonアプリ の三つを起動する例を考えます。 from launch_ros.actions import Node from launch.actions import DeclareLaunchArgument, ExecuteProcess from laun…

rclpyを活用しJoystickでロボットアームを動かす その2:Joyとxarmを連動する

実際のところ rclpyでやる せっかくVelもあるので xarm_ros2/xarm_msgs/srv/MoveVelocity.srv at humble · xArm-Developer/xarm_ros2 · GitHub import rclpy from rclpy.node import Node from xarm_msgs.srv import SetInt16ById,SetInt16, MoveVelocity fr…

rclpyを活用しJoystickでロボットアームを動かす その1:Joyの環境をROS2 humbleに構築

実際のところ 導入 $ sudo apt install ros-$ROS_DISTRO-joy*一緒に導入されるteleop_toolsはこれのこと GitHub - ros-teleop/teleop_tools: A set of generic teleoperation tools for any robot. つかう デバイス名の確認 $ lsusb ... Bus 001 Device 004:…

リスト内包表記なる魔界記法 その3:メソッドを連続して実行させてデータをつくる

存在ごと忘れていましたが……PythonにもRuby黒魔術めいた匂いのする暗黒記法「リスト内包表記」というやつがあります。 lambdaでぶん回すみたいなアレです。 実際のところ depth_info_topic_publisherのクラス内変数recent_valueを6回とって、 それを格納し…

rclpyの購読ノードに値を保存して読み出す

実際のところ ROS2標準メッセージのPointを購読し、 その値を内部の変数"recent_value"に格納するようなケースを考えます import rclpy from rclpy.node import Node from geometry_msgs.msg import Point # グローバル変数 global_value = None class Point…

ROSBOARDがQoS設定由来のエラーでROS2で使えないときの対処

このエラー対応は、恐らく近い将来本体にマージされます。 実際のところ ROS2 humble用のプロジェクトでもROSBOARDを使ってみようとしたところ、以下のようなエラーが。 [INFO] [XXX.YYY] [rosboard_node]: Subscribing to /camera/camera/color/camera_info…