CS機(jī)器人二次開發(fā)啟動流程
1.簡介
客戶應(yīng)用場景中可能會要求使用 SDK 來開發(fā),下面介紹 SDK 啟動機(jī)器人方法,過程中請保持機(jī)器人為遠(yuǎn)程模式,與示教器操作大體一致只是以代碼的形式分步執(zhí)行,打開電源,釋放抱閘等功能,至機(jī)器人處于正常模式后運(yùn)行。
以下各指令代碼可參考EliRobot Dashboard手冊技術(shù)資料_機(jī)器人技術(shù)-金年會jinnian(金字招牌)誠信至上機(jī)器人
2. 操作流程
2.1 定義函數(shù)
連接函數(shù):
#建立socket連接
def connectETController(ip, port):
#ip, port:IP和端口號
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
try:
sock.connect((ip, port))
return (True, sock)
except Exception as e:
sock.close()
return (False)
29999端口接收和發(fā)送函數(shù):
#29999端口使用,參考dashboard_shell手冊
def dashboard_shell(content):
#content:輸入的內(nèi)容
robot_ip = "192.168.1.140"
port = 29999
##連接機(jī)器人ip和端口
conSuc, sock = connectETController(robot_ip, port)
recvData1 = sock.recv(4096) #清空緩存區(qū)
if (conSuc):
# 命令轉(zhuǎn)字符串加換行
# 發(fā)送給機(jī)器人
sock.sendall(bytes(str(content + '\n'),"utf-8"))
# 接受機(jī)器人該端口的返回信息
recvData = sock.recv(4096)
# decode()方法將一個字節(jié)序列轉(zhuǎn)換成字符串
recvData = recvData.decode()
# 返回對應(yīng)指令的字符,成功或者不成功
return (recvData.replace('\n', '').replace('\r', ''))
2.2 機(jī)器人上電
#利用29999端口打開電源
def powering_on():
##電控柜上電后啟動機(jī)器人上電
Data = dashboard_shell("robotControl -on")
# 返回Powering on上電成功,其他為失敗
print(Data)
if Data == 'Powering on':
print('上電成功')
else:
print(Data)
time.sleep(0.5)

2.3 釋放抱閘
#利用29999端口釋放抱閘
def brake_releasing():
while True:
Data = dashboard_shell("brakeRelease")
# 返回Brake is released.抱閘釋放成功,其他為失敗
if Data == 'Brake is released':
print('抱閘釋放成功')
break
else:
print(Data)
time.sleep(0.5)

2.4 運(yùn)行任務(wù)
#利用29999端口運(yùn)行任務(wù)
def play():
Data = dashboard_shell("play")
# 返回Starting task任務(wù)運(yùn)行成功,其他為失敗
if Data == 'Starting task':
print('已啟動任務(wù)')
else:
print('運(yùn)行失敗:'+Data)
time.sleep(1)

2.5 任務(wù)狀態(tài)查詢
#利用29999端口查詢?nèi)蝿?wù)狀態(tài)
def task():
Data = dashboard_shell("task -r")
# 返回Task is running.任務(wù)正在運(yùn)行,其他為失敗
if Data == 'Task is running':
print('任務(wù)正在運(yùn)行')
else:
print('當(dāng)前運(yùn)行狀態(tài)為:'+Data)
time.sleep(1)
3. 匯總
操作流程的2.1-2.4匯總在一起就可以實(shí)現(xiàn)SDK一鍵啟動至運(yùn)行狀態(tài)(見下圖)。
#打開電源
powering_on()
#釋放抱閘
brake_releasing()
#運(yùn)行任務(wù)
play()
#查詢?nèi)蝿?wù)狀態(tài)
task()

4. 其他
29999端口還可以打開或切換不同的任務(wù)和配置,具體使用指令可查詢EliRobot Dashboard手冊,手冊下載可至官網(wǎng)或咨詢金年會jinnian(金字招牌)誠信至上技術(shù)人員技術(shù)資料_機(jī)器人技術(shù)-金年會jinnian(金字招牌)誠信至上機(jī)器人