“除非启用了allow_none,否则无法封送None”类型错误:除非启用了allow_none,否则无法封送None

问题描述 投票:0回答:2

我创建了一个lauch文件来将我的机器人启动到gazebo中。首先我得到了 oid 增益错误,所以我手动添加了 pid 增益。然后当我运行启动文件时,我收到以下错误

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

我首先启动了凉亭空世界并启动了我的文件来生成机器人

<?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
2个回答
1
投票

此错误意味着您的参数之一为空(未定义或空字符串)。将 --dump-params 选项添加到 roslaunch 命令中,它将列出所有参数(均在启动文件中设置并在您的环境中设置)。然后您可以查看哪些参数导致了问题。


0
投票

对于任何仍在寻找此问题答案的人,您必须确保 XML RPC 服务器的注册方法正在返回某些内容,而不能返回 None。 来源

© www.soinside.com 2019 - 2024. All rights reserved.