qq_42978799 2019-07-17 19:07 采纳率: 0%
浏览 725

ROS中subscribe接受时用boost::bind为回掉函数传参报错???

#include
#include
#include
#include
#include
#include
#include
#include
#include
//ros::NodeHandle ph;

void callBack(const geometry_msgs::Twist twist, ros::Publisher& path_pub)
{
// ros::Publisher path_pub = ph.advertise("trajectory", 1, true);
nav_msgs::Path path;

ros::Time current_time, last_time;
current_time = ros::Time::now();
    last_time = ros::Time::now();

    path.header.stamp=current_time;
     path.header.frame_id="odom";

ros::Rate loop_rate(1);

double x=0.0;
double y = 0.0;
    double th=0.0;

while (ros::ok())
{
    double temp_x;
            double temp_y;
    double dt=0.1;
    temp_x = twist.linear.x * dt; 
    x += temp_x;
            temp_y=twist.linear.y * dt;
    y+=temp_y;

    geometry_msgs::PoseStamped this_pose_stamped;

    this_pose_stamped.pose.position.x = x;
    this_pose_stamped.pose.position.y = y;

    geometry_msgs::Quaternion goal_quat = tf::createQuaternionMsgFromYaw(th);
    this_pose_stamped.pose.orientation.x = goal_quat.x;
    this_pose_stamped.pose.orientation.y = goal_quat.y;
    this_pose_stamped.pose.orientation.z = goal_quat.z;
    this_pose_stamped.pose.orientation.w = goal_quat.w;

    this_pose_stamped.header.stamp=current_time;
    this_pose_stamped.header.frame_id = "odom";
    path.poses.push_back(this_pose_stamped);

            path_pub.publish(path);
    ros::spinOnce();               // check for incoming messages

    last_time = current_time;
    loop_rate.sleep();
}

}

int main(int argc, char **argv)
{
ros::init(argc, argv, "showpath");
ros::NodeHandle ph;
//接受消息
ros::Publisher path_pub = ph.advertise("trajectory", 1, true);

    ros::Subscriber sub=ph.subscribe<geometry_msgs::Twist>("cmd_vel", 1,boost::bind(callBack, _1, path_pub));

// ros::Subscriber sub=ph.subscribe("cmd_vel", 1,callBack);
ros::spin();
return 0;

}
图片说明图片说明


  • 写回答

1条回答 默认 最新

  • weixin_42149161 2021-04-26 18:05
    关注

    解决了吗?

     

    评论

报告相同问题?

悬赏问题

  • ¥15 LiBeAs的带隙等于0.997eV,计算阴离子的N和P
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘
  • ¥15 matlab有关常微分方程的问题求解决
  • ¥15 perl MISA分析p3_in脚本出错
  • ¥15 k8s部署jupyterlab,jupyterlab保存不了文件
  • ¥15 ubuntu虚拟机打包apk错误
  • ¥199 rust编程架构设计的方案 有偿
  • ¥15 回答4f系统的像差计算
  • ¥15 java如何提取出pdf里的文字?
  • ¥100 求三轴之间相互配合画圆以及直线的算法