CS機器人二次開發啟動流程
1.簡介
客戶應用場景中可能會要求使用 SDK 來開發,下面介紹 SDK 啟動機器人方法,過程中請保持機器人為遠程模式,與示教器操作大體一致只是以代碼的形式分步執行,打開電源,釋放抱閘等功能,至機器人處于正常模式后運行。
以下各指令代碼可參考EliRobot Dashboard手冊技術資料_機器人技術-艾利特機器人
2. 操作流程
2.1 定義函數
連接函數:
#建立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端口接收和發送函數:
#29999端口使用,參考dashboard_shell手冊
def dashboard_shell(content):
#content:輸入的內容
robot_ip = "192.168.1.140"
port = 29999
##連接機器人ip和端口
conSuc, sock = connectETController(robot_ip, port)
recvData1 = sock.recv(4096) #清空緩存區
if (conSuc):
# 命令轉字符串加換行
# 發送給機器人
sock.sendall(bytes(str(content + '\n'),"utf-8"))
# 接受機器人該端口的返回信息
recvData = sock.recv(4096)
# decode()方法將一個字節序列轉換成字符串
recvData = recvData.decode()
# 返回對應指令的字符,成功或者不成功
return (recvData.replace('\n', '').replace('\r', ''))
2.2 機器人上電
#利用29999端口打開電源
def powering_on():
##電控柜上電后啟動機器人上電
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 運行任務
#利用29999端口運行任務
def play():
Data = dashboard_shell("play")
# 返回Starting task任務運行成功,其他為失敗
if Data == 'Starting task':
print('已啟動任務')
else:
print('運行失?。?#39;+Data)
time.sleep(1)

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

4. 其他
29999端口還可以打開或切換不同的任務和配置,具體使用指令可查詢EliRobot Dashboard手冊,手冊下載可至官網或咨詢艾利特技術人員技術資料_機器人技術-艾利特機器人