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

    display_robot.launch.py执行有错误

    已定时 已固定 已锁定 已移动
    学习资源
    程序报错 如何解决 程序报错
    3
    5
    328
    正在加载更多帖子
    • 从旧到新
    • 从新到旧
    • 最多赞同
    回复
    • 在新帖中回复
    登录后回复
    此主题已被删除。只有拥有主题管理权限的用户可以查看。
    • 7149501587
      上午阳光
      最后由 编辑

      display_robot.launch.py执行有错误,是什么原因,如何解决?
      source 做完了;
      然后执行:ros2 launch display_robot.launch.py报错如下:
      substitutions_command_result = launch.substitutions.command(['cat',launch.substitutions.LaunchConfiguration('model')]) TypeError: 'module' object is not callable

      是什么原因?如何解决呢?

      小鱼小 1 条回复 最后回复 回复 引用 0
      • 小伊小
        机器人小伊
        最后由 编辑

        您遇到的错误提示 TypeError: 'module' object is not callable 通常意味着在 Python 代码中尝试调用了一个模块,而不是模块中的一个函数或方法。在您的情况中,错误发生在 launch.substitutions.command 的使用上。

        从错误信息来看,launch.substitutions.command 被错误地当作一个函数来调用,但实际上它可能是一个类或模块的一部分,而不是一个直接可调用的函数。在 ROS 2 的 launch 库中,command 确实是一个类,用于创建一个命令替换项,但您需要正确地使用它。

        解决步骤

        1. 检查 launch 库的版本和文档:

          • 确保您使用的 launch 库版本与您的 ROS 2 发行版兼容。
          • 查阅 ROS 2 的官方文档或 launch 库的文档,了解如何正确使用 command 类。
        2. 修改代码:

          • 如果您正在尝试创建一个命令替换项,您应该使用 Command 类(假设这是正确的类名,具体取决于您的 launch 库版本)。
          • 示例代码应该类似于:
            from launch import LaunchDescription
            from launch.actions import DeclareLaunchArgument, OpaqueFunction
            from launch.substitutions import LaunchConfiguration, Command
            
            def generate_launch_description():
                return LaunchDescription([
                    DeclareLaunchArgument(
                        'model',
                        default_value='default_model',
                        description='Model to use'
                    ),
                    OpaqueFunction(
                        function=lambda context: Command(['cat', LaunchConfiguration('model')]).create_process(context),
                        name='PrintModel'
                    )
                ])
            
            if __name__ == '__main__':
                generate_launch_description().finalize()
            
          • 注意,上面的代码是一个示例,您需要根据您的具体需求调整它。特别是,OpaqueFunction 的使用可能需要根据您的实际场景调整。
        3. 测试修改:

          • 在做出修改后,重新运行您的 launch 文件以查看是否解决了问题。
        4. 查看错误和日志:

          • 如果问题仍然存在,仔细查看错误消息和日志输出,以获取更多关于问题的线索。
        5. 寻求帮助:

          • 如果您仍然无法解决问题,可以考虑在 ROS 2 的社区论坛、Stack Overflow 或相关的 GitHub 仓库中寻求帮助。

        确保您的代码与 ROS 2 的版本和 launch 库的 API 兼容。随着 ROS 2 的不断发展,API 可能会发生变化。


        以上为生成回答,仅供参考~

        我是小伊,已接入ChatGpt,所有回复,仅供参考~

        1 条回复 最后回复 回复 引用 0
        • 7149501587
          上午阳光
          最后由 编辑

          (base) xugang@xugang-ZhaoYang-K4e-ITL:~/chpt6/chapt6_ws/src/fishbot_description/launch$ source /home/xugang/chpt6/chapt6_ws/src/fishbot_description/launch/install/setup.bash
          (base) xugang@xugang-ZhaoYang-K4e-ITL:~/chpt6/chapt6_ws/src/fishbot_description/launch$ ros2 launch display_robot.launch.py

          [INFO] [launch]: All log files can be found below /home/xugang/.ros/log/2024-12-28-22-36-48-608344-xugang-ZhaoYang-K4e-ITL-5955
          [INFO] [launch]: Default logging verbosity is set to INFO
          [ERROR] [launch]: Caught exception in launch (see debug for traceback): Caught multiple exceptions when trying to load file of format [py]:

          • TypeError: 'module' object is not callable
          • InvalidFrontendLaunchFileError: The launch file may have a syntax error, or its format is unknown
          1 条回复 最后回复 回复 引用 0
          • 小鱼小
            小鱼 技术大佬 @714950158
            最后由 编辑

            @714950158 在 display_robot.launch.py执行有错误 中说:

            ['cat',launch

            'cat '

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

            7149501587 1 条回复 最后回复 回复 引用 0
            • 7149501587
              上午阳光 @小鱼
              最后由 编辑

              @小鱼 谢谢,这里有个空格,的确,一丝一毫都不能差。

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