和工作日志:MATLAB和gazebo联合仿真思路类似。首先完成MATALB和ROS的连接,然后有如下思路:
一、MATLAB向真实机械臂发送数据
真实机械臂和gazebo当中的仿真环境的机械臂一样,都是通过控制器订阅话题和发布关节数据来实现,不同的是厂商封装了很多相关的库,将某些功能隐藏了起来,,不一定可以直接向机械臂发布话题。而且很多话题名是厂商自定义的,和gazebo里不一样。
目前有以下思路:
(一)ROS订阅中转
厂商提供了SendTranjectory函数来驱动真实机械臂运动(详见RobotPlanning_test.cpp文件),可以在Simulink里算好数据并作为话题发布,在ROS当中创建一个订阅者来订阅该话题,并在回调函数中使用该消息作为关节空间的角度目标位置,先用PlanPose函数规划,再使用SendTranjectory来驱动真实机械臂。
但以上方法可能存在的问题:
(1)回调函数好像只能传参订阅的数据,无法将实例化的机械臂进行传参。如果在回调函数中使用SendTranjectory,不可能回调一次就实例化一次,这一运行速度太慢。需要查找回调函数如何传参实例化的机械臂。
(2)每一个数据都先规划再运动,速度上可能根本做不到实时,而且后发布的数据可能因为处理不及时而丢失,即使能用,结果可能也是机械臂卡顿运行,因为默认的规划函数默认初始和末尾的速度为