Error while loading robot control.
Unable to set parameters. Cannot marshal None unless allow_none is enabled.
After issuing:
roslaunch robot_control robot_control.launch
(after gazebo has been loaded with my model, correctly), I get the following error:
load_parameters: unable to set parameters (last param was [/robot/BLJ_position_controller/pid/d=0.0]): cannot marshal None unless allow_none is enabled
FULL OUTPUT:
SUMMARY
========
PARAMETERS
* /joint_state_publisher/use_gui: True
* /robot/BLJ_position_controller/joint: BLJ
* /robot/BLJ_position_controller/pid/d: 0.0
* /robot/BLJ_position_controller/pid/i: 0.0
* /robot/BLJ_position_controller/pid/p: 1.0
* /robot/BLJ_position_controller/type: effort_controller...
* /robot/BLJ_velocity_controller: None
* /robot/BRJ_position_controller/joint: BRJ
* /robot/BRJ_position_controller/pid/d: 0.0
* /robot/BRJ_position_controller/pid/i: 0.0
* /robot/BRJ_position_controller/pid/p: 1.0
* /robot/BRJ_position_controller/type: effort_controller...
* /robot/BRJ_velocity_controller: None
* /robot/FLJ_position_controller/joint: FLJ
* /robot/FLJ_position_controller/pid/d: 0.0
* /robot/FLJ_position_controller/pid/i: 0.0
* /robot/FLJ_position_controller/pid/p: 1.0
* /robot/FLJ_position_controller/type: effort_controller...
* /robot/FLJ_velocity_controller: None
* /robot/FRJ_position_controller/joint: FRJ
* /robot/FRJ_position_controller/pid/d: 0.0
* /robot/FRJ_position_controller/pid/i: 0.0
* /robot/FRJ_position_controller/pid/p: 1.0
* /robot/FRJ_position_controller/type: effort_controller...
* /robot/FRJ_velocity_controller: None
* /robot/joint: BLJ
* /robot/joint_state_controller/publish_rate: 50
* /robot/joint_state_controller/type: effort_controller...
* /robot/pid/d: 0.0
* /robot/pid/i: 0.0
* /robot/pid/p: 1.0
* /robot/type: effort_controller...
* /robot_description: <?xml version="1....
* /rosdistro: kinetic
* /rosversion: 1.12.14
NODES
/
joint_state_publisher (joint_state_publisher/joint_state_publisher)
robot_state_publisher (robot_state_publisher/robot_state_publisher)
rviz (rviz/rviz)
/robot/
controller_spawner (controller_manager/spawner)
ROS_MASTER_URI=http://localhost:11311
load_parameters: unable to set parameters (last param was [/robot/BLJ_position_controller/pid/d=0.0]): cannot marshal None unless allow_none is enabled
Traceback (most recent call last):
File "/opt/ros/kinetic/lib/python2.7/dist-packages/roslaunch/__init__.py", line 306, in main
p.start()
File "/opt/ros/kinetic/lib/python2.7/dist-packages/roslaunch/parent.py", line 279, in start
self.runner.launch()
File "/opt/ros/kinetic/lib/python2.7/dist-packages/roslaunch/launch.py", line 657, in launch
self._setup()
File "/opt/ros/kinetic/lib/python2.7/dist-packages/roslaunch/launch.py", line 644, in _setup
self._load_parameters()
File "/opt/ros/kinetic/lib/python2.7/dist-packages/roslaunch/launch.py", line 338, 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)
File "/usr/lib/python2.7/xmlrpclib.py", line 638, in dumps
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 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 ...
Well, this seems like it would be a problem:
If what you show as your
robot_control.yaml
is a verbatim copy-paste, you'll want to check the indentation of the stanzas in the "Velocity Controllers" section.You need to pay attention to such things. Computers are non-forgiving when it comes to this.
Thank you very much for your reply. I didn't know yaml had a thing with identations... In any case my issue was not solve. I still experience the
I have removed the ns="/robot" from the section of controller Launch file. Please check my new addition on my Question for the results. It says something about "Controller Spawner couldn't find the expected controller_manager ROS interface."
My opinion is that we need to have the namespace defined but if I do so, I cannot get the joint_state_controller to load...