Cain50 2023-10-19 15:42 采纳率: 40%
浏览 58

rosrun报错.cpp: 行 4: 未预期的符号 `(' 附近有语法错误


#include <ros/ros.h>
#include <geometry_msgs/Quaternion.h>

void orientationCallback(const geometry_msgs::Quaternion::ConstPtr& msg)
{
    // 在这里处理接收到的物体方向信息
    double x = msg->x;
    double y = msg->y;
    double z = msg->z;
    double w = msg->w;

    // 输出物体方向信息到终端
    std::cout << "Received orientation:\n";
    std::cout << "x: " << x << std::endl;
    std::cout << "y: " << y << std::endl;
    std::cout << "z: " << z << std::endl;
    std::cout << "w: " << w << std::endl;

    // 进行进一步的处理或操作
    // ...
}

int main(int argc, char** argv)
{
    ros::init(argc, argv, "orientation_subscriber");
    ros::NodeHandle nh;

    // 创建一个 Subscriber 对象来订阅 rostopic,指定回调函数
    ros::Subscriber sub = nh.subscribe<geometry_msgs::Quaternion>("/wit/mag", 1000, orientationCallback);

    ros::spin();

    return 0;
}

这个代码在使用rosrun的时候会报错,报错如下:

/home/xx/xx/src/xx/scripts/seize_message.cpp: 行 4: 未预期的符号 `(' 附近有语法错误
/home/xx/xx/src/xx/scripts/seize_message.cpp: 行 4: `void orientationCallback(const geometry_msgs::Quaternion::ConstPtr& msg)'

请问这个问题怎么解决呢

  • 写回答

1条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2023-10-19 19:24
    关注

    【相关推荐】



    • 这篇博客: ROS入门学习笔记|服务数据的定义与使用中的 2.服务端.cpp文件 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
      cd ~/sor_ws/src/learning_service/src
      touch person_server.cpp
      sudo gedit person_server.cpp
      

      编写代码,保存退出
      在这里插入图片描述
      完整代码如下

      /***********************************************************************
      Copyright 2020 GuYueHome (www.guyuehome.com).
      ***********************************************************************/
      
      /**
       * 该例程将执行/show_person服务,服务数据类型learning_service::Person
       */
       
      #include <ros/ros.h>
      #include "learning_service/Person.h"
      
      // service回调函数,输入参数req,输出参数res
      bool personCallback(learning_service::Person::Request  &req,
               			learning_service::Person::Response &res)
      {
          // 显示请求数据
          ROS_INFO("Person: name:%s  age:%d  sex:%d", req.name.c_str(), req.age, req.sex);
      
      	// 设置反馈数据
      	res.result = "OK";
      
          return true;
      }
      
      int main(int argc, char **argv)
      {
          // ROS节点初始化
          ros::init(argc, argv, "person_server");
      
          // 创建节点句柄
          ros::NodeHandle n;
      
          // 创建一个名为/show_person的server,注册回调函数personCallback
          ros::ServiceServer person_service = n.advertiseService("/show_person", personCallback);
      
          // 循环等待回调函数
          ROS_INFO("Ready to show person informtion.");
          ros::spin();
      
          return 0;
      }
      

    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
    评论

报告相同问题?

问题事件

  • 创建了问题 10月19日