為方便用戶(hù)更高效的使用移動(dòng)機(jī)器人,仙知向用戶(hù)開(kāi)放機(jī)器人操作的相關(guān) API。
仙知小課堂
之前分別介紹了機(jī)器人導(dǎo)航API—API列表、暫停當(dāng)前導(dǎo)航、繼續(xù)當(dāng)前導(dǎo)航、取消當(dāng)前導(dǎo)航等,本期將繼續(xù)介紹“機(jī)器人導(dǎo)航API”,包括“路徑導(dǎo)航”、“獲取路徑導(dǎo)航的路徑”、“平動(dòng)”及“轉(zhuǎn)動(dòng)”:
路徑導(dǎo)航
路徑導(dǎo)航為給定目標(biāo)站點(diǎn), 由機(jī)器人自動(dòng)規(guī)劃沿著貝塞爾曲線(xiàn)的路徑運(yùn)行, 期間會(huì)經(jīng)過(guò)其它中間站點(diǎn)但不會(huì)停留。
請(qǐng)求
編號(hào): 3051 (0x0BEB)
名稱(chēng): robot_task_gotarget_req
描述: 路徑導(dǎo)航
JSON 數(shù)據(jù)區(qū): 見(jiàn)下表
注意 1: angle 為到點(diǎn)朝向, 如果缺省則會(huì)使用站點(diǎn)上設(shè)置的值。
注意 2: max_speed, max_wspeed, max_acc, max_wacc 字段不建議使用, 最好通過(guò)地圖上的路徑和區(qū)域?qū)傩曰驒C(jī)器人參數(shù)來(lái)控制這些值, 并且這些字段可能在將來(lái)被刪除。
請(qǐng)求示例
operation 相關(guān)說(shuō)明
在 Roboshop pro 中使用路徑導(dǎo)航至 AP(或 TL,WL)點(diǎn)時(shí),可以選擇執(zhí)行動(dòng)作(含義為導(dǎo)航至AP并執(zhí)行動(dòng)作),如下圖:
根據(jù) AP 點(diǎn)上配置的執(zhí)行對(duì)象和識(shí)別模型文件,可以執(zhí)行各種動(dòng)作
此時(shí)需要在路徑導(dǎo)航指令中增加更多參數(shù)來(lái)使機(jī)器人導(dǎo)航至目標(biāo)點(diǎn)并完成相應(yīng)的動(dòng)作,現(xiàn)說(shuō)明如下:
1、貨叉
AP 點(diǎn)的執(zhí)行對(duì)象需配置為 fork,識(shí)別模型文件按需求配置為棧板的模型文件或者不配置。
operation:動(dòng)作可以為 "ForkLoad" 或 "ForkUnload"
recognize:代表插入棧板時(shí)是否需要識(shí)別(如果需要識(shí)別,請(qǐng)確保識(shí)別模型文件配置正確)
layer:為需要貨叉插入的棧板層數(shù)(僅 recognize = true 時(shí)有意義)
start_height:動(dòng)作開(kāi)始時(shí),貨叉的起始高度(僅 recognize = false 時(shí)有意義)
end_height:動(dòng)作結(jié)束后,貨叉的終止高度(僅 recognize = false 時(shí)有意義)
2、輥筒
AP 點(diǎn)的執(zhí)行對(duì)象需配置為 roller,識(shí)別模型文件不需要配置。(roller 目前不存在識(shí)別)
operation:動(dòng)作可以為 "RollerLoad" 或 "RollerUnload"
direction:為輥筒運(yùn)動(dòng)的方向,可以為 "left" 或 "right"
recognize:代表是否需要識(shí)別(對(duì)于輥筒來(lái)說(shuō),recognize 目前無(wú)效)
3、頂升
AP 點(diǎn)的執(zhí)行對(duì)象需配置為 jack,識(shí)別模型文件按需求配置為貨架的模型文件或者不配置。
operation:動(dòng)作可以為 "JackLoad" 或 "JackUnload" 或 "JackHeight"
jack_height:為頂升定高的高度(僅 operation = "JackHeight" 時(shí)才有意義)
recognize:代表鉆入貨架時(shí)是否需要識(shí)別(如果需要識(shí)別,請(qǐng)確保識(shí)別模型文件配置正確,對(duì)于需要識(shí)別鉆貨架頂升的使用,請(qǐng)參考該教程)
use_pgv:代表是否使用 PGV 傳感器矯正鉆入貨架后的位置
4、牽引
AP 點(diǎn)的執(zhí)行對(duì)象需配置為 hook,識(shí)別模型文件按需求配置為料車(chē)的模型文件或者不配置。
operation:動(dòng)作可以為 "HookLoad" 或 "HookUnload"
recognize:代表牽引料車(chē)前是否需要識(shí)別
響應(yīng)
編號(hào): 13051 (0x32FB)
名稱(chēng): robot_task_gotarget_res
描述: 路徑導(dǎo)航的響應(yīng)
JSON 數(shù)據(jù)區(qū): 見(jiàn)下表
響應(yīng)示例
略
獲取路徑導(dǎo)航的路徑
該請(qǐng)求只返回使用路徑導(dǎo)航去到目標(biāo)點(diǎn)所規(guī)劃的路徑, 并不實(shí)際執(zhí)行導(dǎo)航。
請(qǐng)?jiān)跈C(jī)器人未進(jìn)行導(dǎo)航時(shí)使用該指令,請(qǐng)勿在機(jī)器人導(dǎo)航時(shí)使用該指令,否則會(huì)造車(chē)機(jī)器人停止。
請(qǐng)求
編號(hào): 3053 (0x0BED)
名稱(chēng): robot_task_target_path_req
描述: 獲取路徑導(dǎo)航的路徑
JSON 數(shù)據(jù)區(qū): 見(jiàn)下表
請(qǐng)求示例
略
響應(yīng)
編號(hào): 13053 (0x32FD)
名稱(chēng): robot_task_target_path_res
描述: 獲取路徑導(dǎo)航的路徑的響應(yīng)
JSON 數(shù)據(jù)區(qū): 見(jiàn)下表
響應(yīng)示例
略
平動(dòng)
請(qǐng)求
編號(hào): 3055 (0x0BEF)
名稱(chēng): robot_task_translate_req
描述: 平動(dòng),以固定速度直線(xiàn)運(yùn)動(dòng)固定距離
JSON 數(shù)據(jù)區(qū): 見(jiàn)下表
注意: 3055(平動(dòng)), 3056(轉(zhuǎn)動(dòng)), 3057 不能同時(shí)進(jìn)行
如果 vx, vy 都有值, 則會(huì)將速度合成。
里程模式不需要定位精準(zhǔn), 但是對(duì)于長(zhǎng)距離的運(yùn)動(dòng)可能會(huì)產(chǎn)生較大誤差, 誤差隨距離的增大而增大。
定位模式需要當(dāng)前環(huán)境定位穩(wěn)定, 誤差與當(dāng)前環(huán)境和定位精度相關(guān)。
請(qǐng)求示例
略
響應(yīng)
編號(hào): 13055 (0x32FF)
名稱(chēng): robot_task_translate_res
描述: 平動(dòng),以固定速度直線(xiàn)運(yùn)動(dòng)固定距離的響應(yīng)
JSON 數(shù)據(jù)區(qū): 見(jiàn)下表
響應(yīng)示例
略
轉(zhuǎn)動(dòng)
請(qǐng)求
編號(hào): 3056 (0x0BF0)
名稱(chēng): robot_task_turn_req
描述: 轉(zhuǎn)動(dòng), 以固定角速度旋轉(zhuǎn)固定角度
JSON 數(shù)據(jù)區(qū): 見(jiàn)下表
注意: 3055(平動(dòng)), 3056(轉(zhuǎn)動(dòng)), 3057 不能同時(shí)進(jìn)行
里程模式不需要定位精準(zhǔn), 但是對(duì)于角度很大的轉(zhuǎn)動(dòng)動(dòng)可能會(huì)產(chǎn)生較大誤差, 誤差隨旋轉(zhuǎn)角度的增大而增大。
定位模式需要當(dāng)前環(huán)境定位穩(wěn)定, 誤差與當(dāng)前環(huán)境和定位精度相關(guān)。
請(qǐng)求示例
略
響應(yīng)
編號(hào): 13056 (0x3300)
名稱(chēng): robot_task_turn_res
描述: 轉(zhuǎn)動(dòng), 以固定角速度旋轉(zhuǎn)固定角度的響應(yīng)
JSON 數(shù)據(jù)區(qū): 見(jiàn)下表
響應(yīng)示例
略
(轉(zhuǎn)載)