Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

Reload Parameters using roslaunch saved as .yaml from RQT Dynamic Reconfigure

Hello All,

I have a motor controller board which is tuned using a ros node. The parameters of this board need to be tuned only once and then use the tuning parameters at each launch. Currently I have two parts to this node. Part A launches the node with parameters in a config.yaml file. The contents of which i manually typed in. Part B launches the dynamic reconfiguration tool and helps me figure out the values of these parameters. I can then save the current configuration from dyn reconfigure using the save icon in rqt (top left) ( let say this file is dynConfig.yaml ).

I want to launch using rosparam load with dynConfig.yaml as the file instead of config.yaml. If i directly use the file in launch file i get the following error

error loading <rosparam> tag: 
    'param' attribute must be set for non-dictionary values
XML is <rosparam command="load" file="$(find drive_control)/cfg/dynConfig.yaml"/>
The traceback for the exception was written to the log file

My understanding is that this is because dynamic reconfigure adds some additional lines in the dynConfig.yaml which the rosparam is not expecting. these are the first few lines of the file when saved from rqt.

!!python/object/new:dynamic_reconfigure.encoding.Config
dictitems:
  UPLOAD_VALUES_PORT_1: false
  UPLOAD_VALUES_PORT_2: false
  groups: !!python/object/new:dynamic_reconfigure.encoding.Config
    dictitems:
      groups: !!python/object/new:dynamic_reconfigure.encoding.Config
        dictitems:
          PORT_1: !!python/object/new:dynamic_reconfigure.encoding.Config
            dictitems:

I want to know if there is a way that i can either convert dynConfig.yaml formatting to the .yaml that roslaunch expects or a way to directly save it in the right formatting. OR if i doing it entirely wrong.

Thank you

Reload Parameters using roslaunch saved as .yaml from RQT Dynamic Reconfigure

Hello All,

I have a motor controller board which is tuned using a ros node. The parameters of this board need to be tuned only once and then use the tuning parameters at each launch. Currently I have two parts to this node. Part A launches the node with parameters in a config.yaml file. The contents of which i manually typed in. Part B launches the dynamic reconfiguration tool and helps me figure out the values of these parameters. parameters ( which i manually type into config.yaml) . I can then save the current configuration from dyn reconfigure using the save icon in rqt (top left) ( let say this file is dynConfig.yaml ).

I want to launch using rosparam load with dynConfig.yaml as the file instead of config.yaml. If i directly use the file in launch file i get the following error

error loading <rosparam> tag: 
    'param' attribute must be set for non-dictionary values
XML is <rosparam command="load" file="$(find drive_control)/cfg/dynConfig.yaml"/>
The traceback for the exception was written to the log file

My understanding is that this is because dynamic reconfigure adds some additional lines in the dynConfig.yaml which the rosparam is not expecting. these are the first few lines of the file when saved from rqt.

!!python/object/new:dynamic_reconfigure.encoding.Config
dictitems:
  UPLOAD_VALUES_PORT_1: false
  UPLOAD_VALUES_PORT_2: false
  groups: !!python/object/new:dynamic_reconfigure.encoding.Config
    dictitems:
      groups: !!python/object/new:dynamic_reconfigure.encoding.Config
        dictitems:
          PORT_1: !!python/object/new:dynamic_reconfigure.encoding.Config
            dictitems:

I want to know if there is a way that i can either convert dynConfig.yaml formatting to the .yaml that roslaunch expects or a way to directly save it in the right formatting. OR if i doing it entirely wrong.

Thank you

Reload Parameters using roslaunch saved as .yaml from RQT Dynamic Reconfigure

Hello All,

I have a motor controller board which is tuned using a ros node. The parameters of this board need to be tuned only once and then use the tuning parameters at each launch. Currently I have two parts to this node. Part A launches the node with parameters in a config.yaml file. The contents of which i manually typed in. Part B launches the dynamic reconfiguration tool and helps me figure out the values of these parameters ( which i manually type into config.yaml) . I can then save the current configuration from dyn reconfigure using the save icon in rqt (top left) ( let say this file is dynConfig.yaml ).

I want to launch Part A of the node using rosparam load with dynConfig.yaml as the file instead of config.yaml. If i directly use the dynConfig.yaml file in launch file i get the following error

error loading <rosparam> tag: 
    'param' attribute must be set for non-dictionary values
XML is <rosparam command="load" file="$(find drive_control)/cfg/dynConfig.yaml"/>
The traceback for the exception was written to the log file

My understanding is that this is because dynamic reconfigure adds some additional lines in the dynConfig.yaml which the rosparam is not expecting. these are the first few lines of the file when saved from rqt.

!!python/object/new:dynamic_reconfigure.encoding.Config
dictitems:
  UPLOAD_VALUES_PORT_1: false
  UPLOAD_VALUES_PORT_2: false
  groups: !!python/object/new:dynamic_reconfigure.encoding.Config
    dictitems:
      groups: !!python/object/new:dynamic_reconfigure.encoding.Config
        dictitems:
          PORT_1: !!python/object/new:dynamic_reconfigure.encoding.Config
            dictitems:

I want to know if there is a way that i can either convert dynConfig.yaml formatting to the .yaml that roslaunch expects or a way to directly save it in the right formatting. OR if i doing it entirely wrong.

Thank you

Reload Parameters using roslaunch saved as .yaml from RQT Dynamic Reconfigure

Hello All,

I have a motor controller board which is tuned using a ros node. The parameters of this board need to be tuned only once and then use the tuning parameters at each launch. Currently I have two parts to this node. Part A launches the node with parameters in a config.yaml file. The contents of which i manually typed in. Part B launches the dynamic reconfiguration tool and helps me figure out the values of these parameters ( which i manually type into config.yaml) . I can then save the current configuration from dyn reconfigure using the save icon in rqt (top left) ( let say this file is dynConfig.yaml ).

I want to launch Part A of the node using rosparam load with dynConfig.yaml as the file instead of config.yaml. If i directly use the dynConfig.yaml file in launch file i get the following error

error loading <rosparam> tag: 
    'param' attribute must be set for non-dictionary values
XML is <rosparam command="load" file="$(find drive_control)/cfg/dynConfig.yaml"/>
The traceback for the exception was written to the log file

My understanding is that this is because dynamic reconfigure adds some additional lines in the dynConfig.yaml which the rosparam is not expecting. these are the first few lines of the file when saved from rqt.

!!python/object/new:dynamic_reconfigure.encoding.Config
dictitems:
  UPLOAD_VALUES_PORT_1: false
  UPLOAD_VALUES_PORT_2: false
  groups: !!python/object/new:dynamic_reconfigure.encoding.Config
    dictitems:
      groups: !!python/object/new:dynamic_reconfigure.encoding.Config
        dictitems:
          PORT_1: !!python/object/new:dynamic_reconfigure.encoding.Config
            dictitems:

I want to know if there is a way that i can either convert dynConfig.yaml formatting to the .yaml that roslaunch expects or a way to directly save it in the right formatting. OR if i am doing it entirely wrong.the wrong way.

Thank you

Reload Parameters using roslaunch saved as .yaml from RQT Dynamic Reconfigure

Hello All,

I have a motor controller board which is tuned using a ros node. The parameters of this board need to be tuned only once and then use the tuning parameters at each launch. Currently I have two parts to this node. Part A launches the node with parameters in a config.yaml file. The contents of which i manually typed in. Part B launches the dynamic reconfiguration tool and helps me figure out the values of these parameters ( which i manually type into config.yaml) . I can then save the current configuration from dyn reconfigure using the save icon in rqt (top left) ( let say this file is dynConfig.yaml ).

I want to launch Part A of the node using rosparam load with dynConfig.yaml as the file instead of config.yaml. If i directly use the dynConfig.yaml file in launch file i get the following error

error loading <rosparam> tag: 
    'param' attribute must be set for non-dictionary values
XML is <rosparam command="load" file="$(find drive_control)/cfg/dynConfig.yaml"/>
The traceback for the exception was written to the log file

My understanding is that this is because dynamic reconfigure adds some additional lines in the dynConfig.yaml which the rosparam is not expecting. these are the first few lines of the file when saved from rqt.

!!python/object/new:dynamic_reconfigure.encoding.Config
dictitems:
  UPLOAD_VALUES_PORT_1: false
  UPLOAD_VALUES_PORT_2: false
  groups: !!python/object/new:dynamic_reconfigure.encoding.Config
    dictitems:
      groups: !!python/object/new:dynamic_reconfigure.encoding.Config
        dictitems:
          PORT_1: !!python/object/new:dynamic_reconfigure.encoding.Config
            dictitems:

I want to know if there is a way that i can either convert dynConfig.yaml formatting to the .yaml that roslaunch expects or a way to directly save it in the right formatting. OR if i am doing it entirely the wrong way.

Thank you