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

    ROS2 IncludeLaunch如何传递参数?

    已定时 已固定 已锁定 已移动
    ROS 2相关问题
    ros2 launch
    2
    2
    465
    正在加载更多帖子
    • 从旧到新
    • 从新到旧
    • 最多赞同
    回复
    • 在新帖中回复
    登录后回复
    此主题已被删除。只有拥有主题管理权限的用户可以查看。
    • 小鱼小
      小鱼 技术大佬
      最后由 编辑

      这是一个小伙伴问小鱼的问题,结果小鱼想当然了,发现并不是一件容易的事情,涉及到了launch的上下文问题。

      下一个launch比如要从上文中才能获取到某个参数的值,给一个代码例程

      launch1.py

      from launch import LaunchDescription
      from launch.substitutions import LaunchConfiguration
      from launch.actions import IncludeLaunchDescription
      from launch.launch_description_sources import PythonLaunchDescriptionSource
      from launch.substitutions import ThisLaunchFileDir
      
      
      
      def generate_launch_description():
          test_p = LaunchConfiguration('test_p', default='12345678')
          
          return LaunchDescription([
              IncludeLaunchDescription(
                  PythonLaunchDescriptionSource([ThisLaunchFileDir(), '/launch2.py']),
                  launch_arguments={'test_p': test_p}.items(),
              )
          ])
      
      

      launch2.py

      from launch import LaunchDescription
      from launch.actions import OpaqueFunction
      from launch.substitutions import LaunchConfiguration
      from launch_ros.actions import  SetParameter
      
      def launch_setup(context, *args, **kwargs):
          test_p = LaunchConfiguration('test_p')
          print(f"use_sim_time: {test_p.perform(context)}")
          set_test_p = SetParameter(name="test_p", value=test_p)
          return [
              set_test_p,
          ]
      
      def generate_launch_description():
          return LaunchDescription([
          OpaqueFunction(function=launch_setup),
          ])
      
      

      运行打印

      [INFO] [launch]: All log files can be found below 
      [INFO] [launch]: Default logging verbosity is set to INFO
      use_sim_time: 12345678
      

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

      1 条回复 最后回复 回复 引用 0
      • 小鱼小 小鱼 从 中的 动手学ROS2 移动了该主题
      • 3748703613
        孤独的幸存者
        最后由 374870361 编辑

        这个代码是在launch1.py里调用launch2.py吧,参数是传给launch2.py了,但是怎么把参数传给launch2.py里的节点又是个大难题啊.
        有没有大佬可以补充一下从launch1.py传参到launch2.py里的节点的代码呀。

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