'"cannot marshal None unless allow_none is enabled" TypeError: cannot marshal None unless allow_none is enabled

i created a lauch file to launch my robot into gazebo. first i got oid gains error so i added pid gains manually.Then when i run the launch file i am getting the following error

load_parameters: unable to set parameters (last param was [/p=100.0]): cannot marshal None unless allow_none is enabled
Traceback (most recent call last):
  File "/opt/ros/melodic/lib/python2.7/dist-packages/roslaunch/__init__.py", line 332, in main
    p.start()
  File "/opt/ros/melodic/lib/python2.7/dist-packages/roslaunch/parent.py", line 300, in start
    self.runner.launch()
  File "/opt/ros/melodic/lib/python2.7/dist-packages/roslaunch/launch.py", line 662, in launch
    self._setup()
  File "/opt/ros/melodic/lib/python2.7/dist-packages/roslaunch/launch.py", line 649, in _setup
    self._load_parameters()


    File "/opt/ros/melodic/lib/python2.7/dist-pack

ages/roslaunch/launch.py", line 341, in _load_parameters
    r  = param_server_multi()
  File "/usr/lib/python2.7/xmlrpclib.py", line 1006, in __call__
    return MultiCallIterator(self.__server.system.multicall(marshalled_list))
  File "/usr/lib/python2.7/xmlrpclib.py", line 1243, in __call__
    return self.__send(self.__name, args)
  File "/usr/lib/python2.7/xmlrpclib.py", line 1596, in __request
    allow_none=self.__allow_none)
  File "/usr/lib/python2.7/xmlrpclib.py", line 1094, in dumps
    data = m.dumps(params)



    dump(v, write)
  File "/usr/lib/python2.7/xmlrpclib.py", line 660, in __dump
    f(self, value, write)
  File "/usr/lib/python2.7/xmlrpclib.py", line 741, in dump_struct
    dump(v, write)
  File "/usr/lib/python2.7/xmlrpclib.py", line 660, in __dump
    f(self, value, write)
  File "/usr/lib/python2.7/xmlrpclib.py", line 719, in dump_array
    dump(v, write)
  File "/usr/lib/python2.7/xmlrpclib.py", line 660, in __dump
    f(self, value, write)
  File "/usr/lib/python2.7/xmlrpclib.py", line 664, in dump_nil
    raise TypeError, "cannot marshal None unless allow_none is enabled"
TypeError: cannot marshal None unless allow_none is enabled

and i first launched the gazebo empty world and launched my file to spawn the robot

<?xml version="1.0" encoding="UTF-8"?>

<launch>
    <param name="robot_description" command="$(find xacro)/xacro --inorder '$(find tm_grasp_description)/urdf/tm700_robot.urdf.xacro'" />

    <arg name="x" default="0"/>
    <arg name="y" default="0"/>
    <arg name="z" default="0.5"/>

    <node name="mybot_spawn" pkg="gazebo_ros" type="spawn_model" output="screen"
          args="-urdf -param robot_description -model m2wr -x $(arg x) -y $(arg y) -z $(arg z)" />
    <rosparam file="$(find tm700_moveit_config)/config/gazebo_ros_control.yaml" command="load"/> 
</launch>
ros


Solution 1:[1]

This error means one of your parameters is null (undefined or an empty string). Add the --dump-params option to your roslaunch command and it will list all parameters (both set in your launch file and set in your environment). You can then see what parameters are causing problems.

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 J. Smith