데스크탑 로봇/Roarm 시리즈

Waveshare Roarm-M2-S 파이썬 프로그램 - USB 이용 JSON 명령어 실행

NDoLab 2025. 5. 24. 16:08

이 응용 프로그램은 Roarm-M2-S를 USB로 연결하고 파이썬 프로그램에서 JSON 명령어를 연속적으로 실행시킨다. 로봇 비동기 프로그램 방법 아직 확보하지 못하여 sleep( )으로 명령 완료를 기다린다.

Roarm-M2-S의 Json 명령어는 다음 문서를 참고한다.

'RoArm-M2-S_JSON_Command_Meaning' 읽어보기 >

다음은 USB를 통해 Json 명령어를 실행하는 파이썬 프로그램이다.

# 02 Serial Control of Roarm-M2-S
# Serial JSON Communication
# by NDoLab namchuldo@gmail.com
# 2024/9/30 in place 2024/9/29
import serial
import argparse
import threading
import time

ser = serial.Serial('COM7', baudrate=115200, dsrdtr=None)
ser.setRTS(False)
ser.setDTR(False)

commands = [
    "{\"T\":104,\"x\":235,\"y\":0,\"z\":235,\"t\":3.14, \"spd\":0.35}", # original
    "{\"T\":104,\"x\":235,\"y\":0,\"z\":0,\"t\":3.14, \"spd\":0.35}", # -z
    "{\"T\":104,\"x\":235,\"y\":235,\"z\":0,\"t\":3.14, \"spd\":0.35}", # +y
    "{\"T\":104,\"x\":0,\"y\":235,\"z\":0,\"t\":3.14, \"spd\":0.35}", # -x
    "{\"T\":104,\"x\":0,\"y\":235,\"z\":235,\"t\":3.14, \"spd\":0.35}", # +z
    "{\"T\":104,\"x\":0,\"y\":0,\"z\":235,\"t\":3.14, \"spd\":0.35}", # -y
    "{\"T\":104,\"x\":235,\"y\":0,\"z\":235,\"t\":3.14, \"spd\":0.35}" # +x
    ]

for h in range(2):
    for i in range(len(commands)):
        print(i, commands[i])
        ser.write(commands[i].encode()+b'\n')
        time.sleep(3)

ser.close()

비교적 진동과 ±0.2mm로 Repeatiablity 값이 높은 Roarm-M2-S의 이동 속도에 따른 진동 수준이 궁금하여 명령어의 spd를 이용하여 시험해 보았다. 시험결과 속도가 낮으면 (예 spd=0.01) 단위 이동을 끊어서 진행하게 되어 진동이 더 커지는 것을 확인하였다. 경험상 0.35가 가장 낮은 진동을 보여주었다.

2024 NDoLab

2024/9/16 처음 2024/9/16

systems/trip/roarm/python/serial_ctr_02.py

 

반응형