我创建了一个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>
此错误意味着您的参数之一为空(未定义或空字符串)。将 --dump-params 选项添加到 roslaunch 命令中,它将列出所有参数(均在启动文件中设置并在您的环境中设置)。然后您可以查看哪些参数导致了问题。
对于任何仍在寻找此问题答案的人,您必须确保 XML RPC 服务器的注册方法正在返回某些内容,而不能返回 None。 来源。