最近在ros的仿真环境中进行实验时,想要读取机械臂的关节状态,导入到matlab中,画出机械臂的末端运动运动轨迹。一般有的方法是利用rosbag记录话题信息,但是这种保存的信息对于后面导入到matlab时不太好处理,因此请教了教研室的大神,大概的步骤如下:
从ROS中读取关节状态
第一步是在ros中写一个订阅的的节点,订阅话题/joint_states,然后将我的关节状态保存在一个txt文件中,首先写一个回调函数如下:
void joint_sub_CB(const sensor_msgs::JointState &joint_tmp)
{
for(int i=0;i<joint_tmp.name.size();i++)
{
if(joint_tmp.name[i]=="l_joint_1")
{
arm_joint_pos_tmp.j1 = joint_tmp.position[i];
}
if(joint_tmp.name[i]=="l_joint_2")
{
arm_joint_pos_tmp.j2 = joint_tmp.position[i];
}
if(joint_tmp.name[i]=="l_joint_3")
{
arm_joint_pos_tmp.j3 = joint_tmp.position[i];
}
if(joint_tmp.name[i]=="l_joint_4")
{
arm_joint_po