產(chǎn)品簡(jiǎn)介
1.以18自由度仿人雙臂機(jī)器人為研究對(duì)象,多子系統(tǒng)協(xié)調(diào)控制算法為核心,結(jié)合外部傳感設(shè)備,開展機(jī)器人自主規(guī)劃、協(xié)調(diào)控制、柔順控制等算法實(shí)驗(yàn)研究。
2.支持c/c++、matlab/simulink、ros等多種開發(fā)環(huán)境。
3.提供通信接口,無(wú)需關(guān)心設(shè)備通信,專注算法研究。
4.控制器支持自定義修改、所開發(fā)算法運(yùn)行與控制器內(nèi),具備1bz及以上通信能力。
5.集成度高,便于與移動(dòng)機(jī)器人集成。
產(chǎn)品特點(diǎn)
2、提供各層次c/c++、matlab/simulink、ros開發(fā)環(huán)境的二次開發(fā)接口
C/C++代碼開發(fā)環(huán)境:
本控制系統(tǒng)提供了一套用于二次開發(fā)的SDK,主要包括控制系統(tǒng)運(yùn)行必須的動(dòng)態(tài)連接庫(kù)、接口頭文件。用戶可以利用這套SDK生成在控制器中運(yùn)行的應(yīng)用程序。因此提供的動(dòng)態(tài)鏈接庫(kù)必須在控制器中才能正常運(yùn)行。但可以將其放到裝有ubuntu系統(tǒng)的pc及或虛擬機(jī)中開發(fā)。如要運(yùn)行需要將用戶自己開發(fā)的庫(kù)或可執(zhí)行程序放到控制器中。
用戶可以將這套SDK添加到自己的開發(fā)環(huán)境下(c,c++均可),同時(shí)可以結(jié)合其他第三方功能進(jìn)行二次開發(fā)。用戶可以在ubuntu虛擬機(jī)中進(jìn)行開發(fā),再將動(dòng)態(tài)庫(kù)及可執(zhí)行文件的部署部署到控制器中(可以利用ssh遠(yuǎn)程文件拷貝)。用戶可以直接在控制器中直接進(jìn)行開發(fā),但不建議這么做,因?yàn)榭赡軙?huì)破壞系統(tǒng)實(shí)時(shí)性。
本系統(tǒng)提供了一套基于vscode的二次開發(fā)工程(c++),但不局限于vscode,可以將SDK中的頭文件及動(dòng)態(tài)庫(kù)添加的自己的開發(fā)工程下。下面以提供vscode二次開發(fā)工程介紹開發(fā)工程的組成部分及用法。
用戶可以在系統(tǒng)初始化后添加自己的代碼入口函數(shù)。在系統(tǒng)啟動(dòng)后會(huì)進(jìn)入該函數(shù)執(zhí)行用戶代碼。用戶也可以建立自己的動(dòng)態(tài)鏈接庫(kù),完成功能開發(fā)后需要將生產(chǎn)的動(dòng)態(tài)庫(kù)及可執(zhí)行文件拷貝到控制系統(tǒng)中的相應(yīng)路徑下(動(dòng)態(tài)庫(kù)拷貝到“動(dòng)態(tài)庫(kù)所在路徑”,可知文件拷貝到“運(yùn)動(dòng)控制程序所在路徑”)。
如果用戶不添加任何代碼,所具有的功能為本控制系統(tǒng)提供的功能。用戶的二次開發(fā)實(shí)際上是在控制系統(tǒng)所提供功能的基礎(chǔ)上增加自定義功能。其中提供了諸多demo程序,供用戶參考使用。
用戶可以利用驅(qū)動(dòng)類接口實(shí)現(xiàn)底層算法的開發(fā)和驗(yàn)證,也可以利用運(yùn)動(dòng)類接口結(jié)合視覺系統(tǒng)實(shí)現(xiàn)視覺伺服類應(yīng)用。
例如io_teach.cpp中使用了驅(qū)動(dòng)類、運(yùn)動(dòng)類、示教類接口,實(shí)現(xiàn)了利用兩個(gè)數(shù)字io信號(hào)對(duì)機(jī)器人的個(gè)軸進(jìn)行示教移動(dòng)操作。代碼如下:
#Include
#Include
#Include
#Include
#Include "HYYRobotInterface.h"
using namespace HYYRobotBase;
void io_test()
{
RTimer timer;
initUserTimer(&timer, 0, 100);
int io1_index=19;
int io2_index=20;
int io1_1=GetDi(io1_index);
int io1=0;
int io2_1=GetDi(io2_index);
int io2=0;
while (1)
{
userTimer(&timer);
io1=GetDi(io1_index);
io2=GetDi(io2_index);
if (robot_ok())
{
if ((0==io1_1)&&(0!=io1))
{
robot_teach_joint(0, 1);
}
else if ((0==io2_1)&&(0!=io2))
{
robot_teach_joint(0, 1);
}
else if ((0==io1)&&(0==io2))
{
robot_teach_stop();
}
}
io1_1=io1;
io2_1=io2;
}
}
MATLAB/Simulink圖形化開發(fā)環(huán)境:
本工具主要用于機(jī)器人系統(tǒng)的算法開發(fā)及驗(yàn)證,需要嵌入的MATLAB中使用,用戶需要自行安裝適合版本的MATLAB,推薦2022及以后版本。同時(shí)該工具需要使用HYY機(jī)器人控制器作為目標(biāo)機(jī)。
該工具目前支持機(jī)器人工具箱和總線工具箱,允許在安裝過(guò)程中進(jìn)行選擇。基于該工具用戶可快速的在機(jī)器人或電機(jī)系統(tǒng)上進(jìn)行算法的研發(fā)及驗(yàn)證。
開發(fā)環(huán)境包括:
機(jī)器人工具箱——基于底層目標(biāo)機(jī)的機(jī)器人控制系統(tǒng)開發(fā),主要Base(基礎(chǔ)數(shù)據(jù)接口)、Mode(運(yùn)動(dòng)學(xué)及動(dòng)力學(xué))、Trajectory(關(guān)節(jié)及笛卡爾軌跡)、Utilities(輔助轉(zhuǎn)換),根據(jù)需要選擇對(duì)應(yīng)模塊拖拽到工程中進(jìn)行設(shè)置并進(jìn)行算法模型搭建,其中Base中的RobotInitialize模塊必須使用。并且模塊數(shù)據(jù)已被映射的機(jī)器人空間,無(wú)需關(guān)心減速比、編碼器位數(shù)等硬件信息。
其他MATLAB工具箱——如MATLAB機(jī)器人工具箱、模糊工具箱等。
ROS開發(fā)環(huán)境:
本控制系統(tǒng)為融入ROS生態(tài),提供了驅(qū)動(dòng)包,將本控制系統(tǒng)對(duì)接到ROS及ROS2中,支持moveit等軟件對(duì)接使用。為了使用ROS需要在控制器中安裝ROS及本控制系統(tǒng)的ROS驅(qū)動(dòng)包,并且配合PC使用。通過(guò)ROS主從機(jī)機(jī)制實(shí)現(xiàn)控制器和PC機(jī)配合工作,控制器作為ROS主機(jī)運(yùn)行實(shí)時(shí)驅(qū)動(dòng)節(jié)點(diǎn),PC機(jī)作為ROS從機(jī)運(yùn)行非實(shí)時(shí)節(jié)點(diǎn)。實(shí)際上也可以不使用PC機(jī),在控制器中運(yùn)行ROS,即實(shí)時(shí)驅(qū)動(dòng)節(jié)點(diǎn)和非實(shí)時(shí)節(jié)點(diǎn)均在控制器中運(yùn)行。但這可能降低控制器的實(shí)時(shí)性,不建議用戶這么做。結(jié)合ROS的控制系統(tǒng)框圖如下:
支持的研究方向:
1、機(jī)器人力控制理論研究:通過(guò)研究柔順控制算法提高機(jī)器人接觸式任務(wù)的控制性能,如自適應(yīng)控制、滑模控制、模糊PID控制等,以提高系統(tǒng)的魯棒性和作業(yè)精度。
2、多機(jī)器人系統(tǒng)動(dòng)力學(xué)建模與辨識(shí)方法研究:建立機(jī)器人及柔順裝置的精確動(dòng)力學(xué)模型,為控制算法提供理論基礎(chǔ)。
3、機(jī)器人自主規(guī)劃研究:研究和開發(fā)高效率的軌跡規(guī)劃算法,根據(jù)不同路徑自適應(yīng)實(shí)現(xiàn)不同軌跡的生成,同時(shí)可以兼顧深度學(xué)習(xí)、強(qiáng)化學(xué)習(xí)開展自主規(guī)劃的研究。
4、多機(jī)器人協(xié)調(diào)控制算法研究:利用人工智能技術(shù),針對(duì)多機(jī)器人系統(tǒng)的動(dòng)力學(xué)模型開展多機(jī)器人協(xié)調(diào)控制的研究。
5、大模型語(yǔ)義解析研究:可以將大模型與雙臂人形機(jī)器人科研平臺(tái)結(jié)合,開展基于大模型的語(yǔ)義級(jí)解析。