kinova test_accuracy源码解析

void PickPlace::evaluate_move_accuracy()
{
    robot_state::RobotState target_state =	group_->getJointValueTarget();
    target_state.update();
    //group_->getcurrentstate does not give the correct values
    robot_state::RobotState current_state(target_state);
    //geting state from joint state message
    std::string topic;
    if (robot_connected_)
    {
        topic = "/" + robot_type_ + "_driver/out/joint_state";
    }
    else
    {
        topic = "/" + robot_type_ + "/joint_states"; //for gazebo
    }
    sensor_msgs::JointStateConstPtr msg = ros::topic::waitForMessage<sensor_msgs::JointState>(topic, ros::Duration(1.0));
    for (int i =0;i<joint_names_.size();i++)
    {
        current_state.setJointPositions(joint_names_[i].c_str(), &(msg->position[i]) );
    }
    current_state.update();
    Eigen::Affine3d transform = current_state.getGlobalLinkTransform (robot_type_ + "_end_effector");
    geometry_msgs::Pose feeback_pose;
    tf::poseEigenToMsg(transform,feeback_pose);

    transform = target_state.getGlobalLinkTransform (robot_type_ + "_end_effector");
    geometry_msgs::Pose target_state_pose;
    tf::poseEigenToMsg(transform,target_state_pose);


    std::string error_out,joints_out,torques_out;
    error_out.clear();
    joints_out.clear();
    torques_out.clear();
    o_file_<<std::endl<<std::endl<<"**********************New trajectory***************************"<<std::endl;
    //geometry_msgs::PoseStampedConstPtr pose_robot = ros::topic::waitForMessage<geomet
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值