鱼香ROS社区
    • 版块
    • 最新
    • 未解决
    • 已解决
    • 群组
    • 注册
    • 登录
    紧急通知:禁止一切关于政治&VPN翻墙等话题,发现相关帖子会立马删除封号
    提问前必看的发帖注意事项: 社区问答规则(小鱼个人)更新 | 高质量帖子发布指南

    编译时colcon build 报stderr错误

    已定时 已固定 已锁定 已移动
    ROS 2相关问题
    ros2 stderr错误 colcon build
    2
    5
    436
    正在加载更多帖子
    • 从旧到新
    • 从新到旧
    • 最多赞同
    回复
    • 在新帖中回复
    登录后回复
    此主题已被删除。只有拥有主题管理权限的用户可以查看。
    • Z
      zyg_sddy
      最后由 编辑

      这个是我编写的服务端代码

      #include "rclcpp/rclcpp.hpp"
      #include "underwater_interfaces/srv/jointvalue.hpp"
      
      
      class Joint_value: public rclcpp::Node
      {
          private:
              rclcpp::Service<underwater_interfaces::srv::Jointvalue>::SharedPtr joint_value_calculate;
              void Joint_calculate01(const underwater_interfaces::srv::Jointvalue::Request::SharedPtr request,
                                     const underwater_interfaces::srv::Jointvalue::Response::SharedPtr response)
              {
                  RCLCPP_INFO(this->get_logger(),"Joint calcuater started!");
                  response->joint0=77.66;
                  response->joint1=77.66;
                  response->joint2=77.66;
                  response->joint3=77.66;
              }
      
          public:
              Joint_value(std::string name): Node (name)
              {
                  RCLCPP_INFO(this->get_logger(),"Joint_value service is started!");
                  joint_value_calculate = this->create_service<underwater_interfaces::srv::Jointvalue>("joint_value_calculater",
                                                                                                          std::bind(&Joint_value::Joint_calculate01,this,
                                                                                                          std::placeholders::_1,std::placeholders::_2));
                  
      
              }
      
      };
      
      int main(int argc ,char  **argv)
      {
          rclcpp::init(argc,argv);
          auto node=std::make_shared<rclcpp::Node>("joint_value_calculate");
          RCLCPP_INFO(node->get_logger(),"joint_value_calculate started!");
      
          rclcpp::spin(node);
          rclcpp::shutdown();
      
          return 0;
      }
      
      
      

      报错如下:

      stderr: robot_joint                              
      /home/mansenjoy/robot/src/robot_joint/src/robot_joint.cpp: In member function ‘void Joint_value::Joint_calculate01(underwater_interfaces::srv::Jointvalue_Request_<std::allocator<void> >::SharedPtr, underwater_interfaces::srv::Jointvalue_Response_<std::allocator<void> >::SharedPtr)’:
      
      

      自定义的接口

      float32 x
      float32 y
      float32 z
      ---
      float32 joint0
      float32 joint1
      float32 joint2
      float32 joint3
      
      小鱼小 1 条回复 最后回复 回复 引用 0
      • 小鱼小
        小鱼 技术大佬 @zyg_sddy
        最后由 编辑

        @zyg_sddy 给一下完整的错误,有些错误没关系,你给的信息不太全

        新书配套视频:https://www.bilibili.com/video/BV1GW42197Ck/

        Z 1 条回复 最后回复 回复 引用 0
        • Z
          zyg_sddy @小鱼
          最后由 编辑

          @小鱼 我看了,底下是一个警告,警告我在服务的回调函数里定义了request但是没有调用,然后我调用了以后上面的stderr错误也没了,我又尝试了定义别的变量不引用,也会报这个错误。

          小鱼小 1 条回复 最后回复 回复 引用 0
          • 小鱼小
            小鱼 技术大佬 @zyg_sddy
            最后由 编辑

            @zyg_sddy 可以在不用的变量前加个void,即
            (void)xxxx;

            新书配套视频:https://www.bilibili.com/video/BV1GW42197Ck/

            Z 1 条回复 最后回复 回复 引用 0
            • Z
              zyg_sddy @小鱼
              最后由 编辑

              @小鱼 好的谢谢

              1 条回复 最后回复 回复 引用 0
              • 第一个帖子
                最后一个帖子
              皖ICP备16016415号-7
              Powered by NodeBB | 鱼香ROS