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

    srv出现报错

    已定时 已固定 已锁定 已移动
    ROS2机器人开发:从入门到实践
    ros ros2 添加接口
    2
    3
    1.3k
    正在加载更多帖子
    • 从旧到新
    • 从新到旧
    • 最多赞同
    回复
    • 在新帖中回复
    登录后回复
    此主题已被删除。只有拥有主题管理权限的用户可以查看。
    • 2
      2691336941
      最后由 编辑

      使用wsl创建自定义接口时编译不通过
      drotheall@Adortheall:~/ros2/CHAT4/server_ws$ colcon build
      Starting >>> chat4_interface
      --- stderr: chat4_interface
      CMake Error at /opt/ros/humble/share/rosidl_adapter/cmake/rosidl_adapt_interfaces.cmake:59 (message):
      execute_process(/usr/bin/python3 -m rosidl_adapter --package-name
      chat4_interface --arguments-file
      /home/drotheall/ros2/CHAT4/server_ws/build/chat4_interface/rosidl_adapter__arguments__chat4_interface.json
      --output-dir
      /home/drotheall/ros2/CHAT4/server_ws/build/chat4_interface/rosidl_adapter/chat4_interface
      --output-file
      /home/drotheall/ros2/CHAT4/server_ws/build/chat4_interface/rosidl_adapter/chat4_interface.idls)
      returned error code 1:

      Error processing 'float32 target_x' of 'chat4_interface/Patrol_Request':
      ''float32' is an invalid message name. It should have the pattern
      '^[A-Z][A-Za-z0-9]*$''

      Traceback (most recent call last):

      File "/usr/lib/python3.10/runpy.py", line 196, in _run_module_as_main
        return _run_code(code, main_globals, None,
      File "/usr/lib/python3.10/runpy.py", line 86, in _run_code
        exec(code, run_globals)
      File "/opt/ros/humble/local/lib/python3.10/dist-packages/rosidl_adapter/__main__.py", line 19, in <module>
        sys.exit(main())
      File "/opt/ros/humble/local/lib/python3.10/dist-packages/rosidl_adapter/main.py", line 53, in main
        abs_idl_file = convert_to_idl(
      File "/opt/ros/humble/local/lib/python3.10/dist-packages/rosidl_adapter/__init__.py", line 24, in convert_to_idl
        return convert_srv_to_idl(
      File "/opt/ros/humble/local/lib/python3.10/dist-packages/rosidl_adapter/srv/__init__.py", line 28, in convert_srv_to_idl
        srv = parse_service_string(package_name, input_file.stem, content)
      File "/opt/ros/humble/local/lib/python3.10/dist-packages/rosidl_adapter/parser.py", line 859, in parse_service_string
        request_message = parse_message_string(
      File "/opt/ros/humble/local/lib/python3.10/dist-packages/rosidl_adapter/parser.py", line 520, in parse_message_string
        Type(type_string, context_package_name=pkg_name),
      File "/opt/ros/humble/local/lib/python3.10/dist-packages/rosidl_adapter/parser.py", line 277, in __init__
        super(Type, self).__init__(
      File "/opt/ros/humble/local/lib/python3.10/dist-packages/rosidl_adapter/parser.py", line 205, in __init__
        raise InvalidResourceName(
      

      rosidl_adapter.parser.InvalidResourceName: 'float32' is an invalid
      message name. It should have the pattern '^[A-Z][A-Za-z0-9]*$'

      Call Stack (most recent call first):
      /opt/ros/humble/share/rosidl_cmake/cmake/rosidl_generate_interfaces.cmake:130 (rosidl_adapt_interfaces)
      CMakeLists.txt:12 (rosidl_generate_interfaces)


      Failed <<< chat4_interface [0.74s, exited with code 1]

      Summary: 0 packages finished [1.17s]
      1 package failed: chat4_interface
      1 package had stderr output: chat4_interface
      屏幕截图 2026-05-25 141956.png

      2 1 条回复 最后回复 回复 引用 0
      • 9
        983766068
        最后由 编辑

        消息名首字母要大写

        1 条回复 最后回复 回复 引用 0
        • 2
          2691336941 @2691336941
          最后由 编辑

          @2691336941 找到问题的解决办法了,主要是因为utf8编码的bom导致识别的问题需要删除相关文件以我的文件为例
          cd ~/ros2/CHAT4/server_ws/src/chat4_interface/srv

          sed -i '1s/^\xEF\xBB\xBF//' Patrol.srv

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