5.14 외부 제어
설명
로봇의 이동에 대한 위치 지령 생성은 외부 장치에서 수행하고 이 생성된 외부 지령을 이더넷이나 시리얼 통신을 통해 문자열 데이터로 Hi6 제어기에 전송하면 Hi6 제어기는 이 지령을 수신하여 해당 로봇을 제어하는 기능입니다.
문법
global onl_trj
var msg # 포즈 or 포즈형 문자열
onl_trj=online.Traject()
onl_trj.time_from_start=-1.0
onl_trj.look_ahead_time=1.0
onl_trj.interval=0.1
onl_trj.init
onl_trj.buf_in msg
파라미터
time_from_start : 시작 지령으로 부터 경과된 시간 (-1= 미사용)
look_ahead_time : 지령 출력을 위한 지연시간 (단위 [s])
interval : 생성된 지령의 샘플링 시간 (단위 [s])
init : 온라인 지령상태 초기화, 지령 버퍼를 초기화
buf_in : <포즈> 또는 <포즈형 문자열>을 지령 버퍼에 추가
사용 예
enet 통신을 통해 외부에서 생성된 지령을 수신하여 로봇을 이동합니다.
import enet
global enet0
enet0=enet.ENet("tcp")
enet0.ip_addr="192.168.1.213"
enet0.lport=7000
enet0.rport=7000
enet0.open()
var ret=enet0.open()
ret=enet0.listen()
ret=enet0.accept()
global onl_trj
onl_trj=online.Traject()
onl_trj.time_from_start=-1.0
onl_trj.look_ahead_time=1.0 # 로봇이동 시작의 지연시간
onl_trj.interval=0.1 # 생성된 지령의 샘플링 시간
onl_trj.init # 버퍼 초기화
var msg
10 enet0.recv
msg=result()
if msg == "stop"
onl_trj.init # 버퍼 클리어 (즉시정지)
else
onl_trj.buf_in msg
endif
goto 10
end
Last updated
Was this helpful?