代码之家  ›  专栏  ›  技术社区  ›  anonymouse_28

我试图在ROS中在一个单独的包中制作自己的消息,然后使用主题上的发布者节点从另一个包访问消息

  •  0
  • anonymouse_28  · 技术社区  · 2 年前

    代码正在工作,我得到了想要的结果,但仍然面临这个错误

    #包括检测到的错误。请更新您的includePath。此翻译单元(/home/sparsh28/catkin_WS/src/my_robot_controller/src/my_robut_publisher.cpp)禁用了Squiggles。

    我的代码是:

    #include <ros/ros.h>
    #include <my_robot_msgs/HardwareStatus.h>
    
    int main( int argc, char **argv)
    {
        ros::init(argc, argv, "my_robot_publisher");
        ros::NodeHandle nh;
        ros::Publisher pub = nh.advertise<my_robot_msgs::HardwareStatus>("/my_robot/hd_st", 10);
        ROS_INFO("Node Started");
        ros::Rate rate(5);
    
        while(ros::ok())
        {
            my_robot_msgs::HardwareStatus msg;
            msg.temperature=30;
            msg.are_motors_up=true;
            msg.debug_message="Ok";
            pub.publish(msg);
            rate.sleep();
        }
    }
    

    这是代码,我遇到了主代码第2行的错误

    c_cpp属性.json文件

    {
      "configurations": [
        {
          "browse": {
            "databaseFilename": "${default}",
            "limitSymbolsToIncludedHeaders": false
          },
          "includePath": [
            "/opt/ros/noetic/include/**",
            "/usr/include/**",
            "~/catkin_WS/devel/include/my_robot_msgs;/opt/ros/noetic/**"
          ],
          "name": "ROS",
          "intelliSenseMode": "gcc-x64",
          "compilerPath": "/usr/bin/gcc",
          "cStandard": "gnu11",
          "cppStandard": "c++14"
        }
      ],
      "version": 4
    }
    

    settings.json文件

    {
        "python.autoComplete.extraPaths": [
            "/opt/ros/noetic/lib/python3/dist-packages"
        ],
        "python.analysis.extraPaths": [
            "/opt/ros/noetic/lib/python3/dist-packages"
        ]
    }
    

    我为此使用Visual Studio代码

    0 回复  |  直到 2 年前
        1
  •  1
  •   anonymouse_28    2 年前
    "~/catkin_WS/devel/include/**"
    

    我在includePath部分的配置文件中添加了此行,问题就解决了。

    以前我的代码工作得很好,我也得到了我想要的结果,但我的msg包的包含路径上不断出现错误。 最终,我的代码将产生结果,因为该包被添加为依赖项,因此可以访问它并产生结果,但定义了指向头文件的明确路径。因此,上述代码或行定义了该头文件的确切路径。