Bye Bye Moore

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

xArm Python SDK で動いてるものに名前付きパイプで他所から位置情報をながす

ArUcoとの連動を前提としますが、まずはロボットアームのみを実験

実際のところ

実行環境

  • Nano Pi Neo 2

受け手側(実行側)のPython

import os
import sys
import time

sys.path.append(os.path.join(os.path.dirname(__file__), '../../..'))

from xarm.wrapper import XArmAPI


#######################################################
"""
Just for test example
"""
if len(sys.argv) >= 2:
    ip = sys.argv[1]
else:
    try:
        from configparser import ConfigParser
        parser = ConfigParser()
        parser.read('../robot.conf')
        ip = parser.get('xArm', 'ip')
    except:
        ip = input('Please input the xArm ip address:')
        if not ip:
            print('input error, exit')
            sys.exit(1)
########################################################


arm = XArmAPI(ip)
arm.motion_enable(enable=True)
arm.set_mode(0)
arm.set_state(state=0)


while True:
  data = sys.stdin.readline()
  data = data.rstrip("\n")
  if ( data != "" ):
    val = int(data)
    arm.set_position(x=val, y=0, z=300, roll=-180, pitch=0, yaw=0, speed=100, wait=False)
    print(arm.get_position(), arm.get_position(is_radian=True))


#arm.reset(wait=True)
arm.disconnect()

これを

$ python3 999-own.py 192.168.1.XXX < NAMEDPIPE

送信側

名前付きパイプに標準出力を繋ぐだけ
刻み動作を確認したいのでseqコマンドを使用

$ seq 300 40 460 > NAMEDPIPE