Universal Robots向けのCLIツール作ってみた
目的
URを動かすためのツールを作ったので自慢したい
対象とする読者
この記事は仕事でUniversalRobotsのロボットを使う必要が出てきたプログラマ向けに書いています。
環境
- コントロールボックス CB3.1 SW3.4
- ロボット UR5
- 言語 python3.6
- 使用ライブラリ click
何を作ったか
スクリプトをコマンドラインから送ることのできるCLIツールを作りました。この記事で解説しましたが、Universal Robotsのロボットは外部からスクリプトでコントロールが可能です。
ロボットに送るスクリプトをコマンドラインから簡単にテストできるツールが欲しくて作りました。コマンドラインパーサーのclickを使って作ったので、ソース自体は数行でできました。
ソケット繋いで送るだけなので正直公開するか悩みましたが、とりあえずおいておきます。
もう少し機能を追加したら年内にはgithubで公開する予定です。。
アドベントカレンダー記事公開に間に合わなかった。。。
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import socket
import time
import sys
import click
def to_bytes(script_str):
return bytes(script_str.encode())
@click.command(help='UR script sending program')
@click.option('-p', '--port', 'port', type=int, default=30002, help='UR robot TCP port. 3002 is default. value between 30001 to 30004')
@click.argument('host',type=str)
@click.argument('file_path', type=str)
def send_script(file_path, host, port):
with open(file_path, 'r') as file:
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
s.connect((host, port))
script = ''.join(file) ## 文字列連結
print(script)
s.send(to_bytes(script))
def main():
send_script()
if __name__ == '__main__':
main()
今後やること
- Dashbord Serverにジョブコールに対応させる(Play Load等)
- サブコマンドをもう少し充実させる
- pipからインストールできるようにGithubで公開する
Author And Source
この問題について(Universal Robots向けのCLIツール作ってみた), 我々は、より多くの情報をここで見つけました https://qiita.com/MrBearing/items/3d1cbc7fe268888d9500著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .