1、前记

       本文主要是利用baxter机器人的URDF文件可以在Simulink中生成可视化模型,并根据关节的驱动方式选择以关节角度变化来驱动模型运动。其中关节的变化来源于baxter机载ROS下的主题消息,在Simulink中通过Subscribe订阅主题下的消息获得数据。

2、主要模块

2.1.主要模块搭建如下图

            

(1)其中URDF生成模型中各关节的驱动选择如下:

                         

(2)MATLAB函数内容如下:可能需要编辑数据类型,如下截图

function [left,right] = fcn(Position)
%#codegen

[left,right]= reconstruct(Position);

代码中reconstruct是因为订阅消息时同一个主题下有关节的还有抓手的。这里是计划想个办法把抓手的消息过滤掉。

reconstruct代码如下:不过这个方式还是没能过滤掉抓手消息,效果在下面可以看到。

function [left,right]=reconstruct(Position)
a=length(Position);
if a==17   
left = Position(3:9);
right = Position(10:16);
else
    return
end
end

详细:https://ww2.mathworks.cn/matlabcentral/answers/440053-subscribe-the-topic-robot-joint_states-but-i-get-l_gripper_l_finger_joint-message

(3)仿真时间设为inf无穷,仿真算法选择如下:

                 

(4)机器人ip设置和数据管理设置:

3、结果

       

由于没有过滤到抓手的消息,结果显示的机器人模型抖动很厉害。

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐