搜索
产品简介PRODUCT DESCRIPTION

双臂人形机器人科研平台

人形机器人已经成为全球科技界看好的发展热点之一,已有不少科技公司对人形机器人进行了布局,但真正适用于人形机器人控制算法研究并提供多样友好的开发环境的人形机器人平台并不多。本文介绍一款双臂人形机器人开源平台,该平台更好的辅助科研人员进行双臂人形机器人方面的算法研究。本平台使用自主研发的通用机器人控制器,开发环境包括:c/c++ 代码开发环境、MATLAB/Simulink 图形化开发环境及ROS开发环境。

联系电话:13720126958 / 13387619634

产品简介

1.以18自由度仿人双臂机器人为研究对象,多子系统协调控制算法为核心,结合外部传感设备,开展机器人自主规划、协调控制、柔顺控制等算法实验研究。
2.支持c/c++、matlab/simulink、ros等多种开发环境。
3.提供通信接口,无需关心设备通信,专注算法研究。
4.控制器支持自定义修改、所开发算法运行与控制器内,具备1bz及以上通信能力。
5.集成度高,便于与移动机器人集成。

产品特点

1、提供机器人柔顺控制算法、机器人自主规划算法、多机器人协调控制算法
2、提供各层次c/c++、matlab/simulink、ros开发环境的二次开发接口
C/C++代码开发环境:
本控制系统提供了一套用于二次开发的SDK,主要包括控制系统运行必须的动态连接库、接口头文件。用户可以利用这套SDK生成在控制器中运行的应用程序。因此提供的动态链接库必须在控制器中才能正常运行。但可以将其放到装有ubuntu系统的pc及或虚拟机中开发。如要运行需要将用户自己开发的库或可执行程序放到控制器中。
用户可以将这套SDK添加到自己的开发环境下(c,c++均可),同时可以结合其他第三方功能进行二次开发。用户可以在ubuntu虚拟机中进行开发,再将动态库及可执行文件的部署部署到控制器中(可以利用ssh远程文件拷贝)。用户可以直接在控制器中直接进行开发,但不建议这么做,因为可能会破坏系统实时性。
本系统提供了一套基于vscode的二次开发工程(c++),但不局限于vscode,可以将SDK中的头文件及动态库添加的自己的开发工程下。下面以提供vscode二次开发工程介绍开发工程的组成部分及用法。


用户可以在系统初始化后添加自己的代码入口函数。在系统启动后会进入该函数执行用户代码。用户也可以建立自己的动态链接库,完成功能开发后需要将生产的动态库及可执行文件拷贝到控制系统中的相应路径下(动态库拷贝到“动态库所在路径”,可知文件拷贝到“运动控制程序所在路径”)。
如果用户不添加任何代码,所具有的功能为本控制系统提供的功能。用户的二次开发实际上是在控制系统所提供功能的基础上增加自定义功能。其中提供了诸多demo程序,供用户参考使用。
用户可以利用驱动类接口实现底层算法的开发和验证,也可以利用运动类接口结合视觉系统实现视觉伺服类应用。
例如io_teach.cpp中使用了驱动类、运动类、示教类接口,实现了利用两个数字io信号对机器人的第一个轴进行示教移动操作。代码如下:


#include <stdlib.h>
#include <stdio.h>
#include <unistd.h>
#include <time.h>
#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图形化开发环境:

本工具主要用于机器人系统的算法开发及验证,需要嵌入的MATLAB中使用,用户需要自行安装适合版本的MATLAB,推荐2022及以后版本。同时该工具需要使用HYY机器人控制器作为目标机。

该工具目前支持机器人工具箱和总线工具箱,允许在安装过程中进行选择。基于该工具用户可快速的在机器人或电机系统上进行算法的研发及验证。

开发环境包括:

机器人工具箱——基于底层目标机的机器人控制系统开发,主要Base(基础数据接口)、Mode(运动学及动力学)、Trajectory(关节及笛卡尔轨迹)、Utilities(辅助转换),根据需要选择对应模块拖拽到工程中进行设置并进行算法模型搭建,其中Base中的RobotInitialize模块必须使用。并且模块数据已被映射的机器人空间,无需关心减速比、编码器位数等硬件信息。

总线通信工具箱——包括:Bus Init、PDO Transmit、PDO Receive、SDO Ssync Download、SDO Async Upload、SDO Sync DownLoad、SDO Sync Upload模块,其中的模块直接对应EtherCAT/CanOpen总线的pdo数据,类型与Simulink Real-Time工具箱。

基础开发工程——基于机器人工具箱,搭建了包含逻辑控制、初始化移动、目标输出、实时反馈、安全限制等功能的子系统模型,用户可将其作为被控对象模型直接使用。

其他MATLAB官方工具箱——如MATLAB官方机器人工具箱、模糊工具箱等。

ROS开发环境:

本控制系统为融入ROS生态,提供了驱动包,将本控制系统对接到ROS及ROS2中,支持moveit等软件对接使用。为了使用ROS需要在控制器中安装ROS及本控制系统的ROS驱动包,并且配合PC使用。通过ROS主从机机制实现控制器和PC机配合工作,控制器作为ROS主机运行实时驱动节点,PC机作为ROS从机运行非实时节点。实际上也可以不使用PC机,完全在控制器中运行ROS,即实时驱动节点和非实时节点均在控制器中运行。但这可能降低控制器的实时性,不建议用户这么做。结合ROS的控制系统框图如下:

支持的研究方向:

1、机器人力控制理论研究:通过研究柔顺控制算法提高机器人接触式任务的控制性能,如自适应控制、滑模控制、模糊PID控制等,以提高系统的鲁棒性和作业精度。

2、多机器人系统动力学建模与辨识方法研究:建立机器人及柔顺装置的精确动力学模型,为控制算法提供理论基础。

3、机器人自主规划研究:研究和开发高效率的轨迹规划算法,根据不同路径自适应实现不同轨迹的生成,同时可以兼顾深度学习、强化学习开展自主规划的研究。

4、多机器人协调控制算法研究:利用人工智能技术,针对多机器人系统的动力学模型开展多机器人协调控制的研究。

5、大模型语义解析研究:可以将大模型与双臂人形机器人科研平台结合,开展基于大模型的语义级解析。