KCL-Planning / ROSPlan

The ROSPlan framework provides a generic method for task planning in a ROS system.
http://kcl-planning.github.io/ROSPlan
BSD 2-Clause "Simplified" License
359 stars 158 forks source link

sensing_interface.py bug #319

Open slamlixiaodong opened 2 years ago

slamlixiaodong commented 2 years ago

When I executed the "roslaunch rosplan_stage_exploration_demo exploration_multi_robot.launch" command, the following problem occurred in sensing_interface.py. It seems that a parameter is missing, so I added a parameter true or False to GetInstanceServiceRequest in line 155 of sensing_interface.py, and the program can be executed normally. If it is convenient, please tell me how to modify it correctly.

Traceback (most recent call last):
  File "/home/ubuntu/project/test_ws/src/rosplan/rosplan_sensing_interface/scripts/sensing_interface.py", line 532, in <module>
    rps = RosplanSensing()
  File "/home/ubuntu/project/test_ws/src/rosplan/rosplan_sensing_interface/scripts/sensing_interface.py", line 100, in __init__
    subscribed = self.subscribe_topic(predicate_name, pi)
  File "/home/ubuntu/project/test_ws/src/rosplan/rosplan_sensing_interface/scripts/sensing_interface.py", line 187, in subscribe_topic
    params_loaded = self.load_params(predicate_name, predicate_info)  # If parameters found, add 1 to the indexes
  File "/home/ubuntu/project/test_ws/src/rosplan/rosplan_sensing_interface/scripts/sensing_interface.py", line 155, in load_params
    instances = self.get_instances_srv.call(GetInstanceServiceRequest(p.value, True)).instances
  File "/home/ubuntu/project/test_ws/devel/lib/python2.7/dist-packages/rosplan_knowledge_msgs/srv/_GetInstanceService.py", line 38, in __init__
    super(GetInstanceServiceRequest, self).__init__(*args, **kwds)
  File "/opt/ros/melodic/lib/python2.7/dist-packages/genpy/message.py", line 353, in __init__
    raise TypeError('Invalid number of arguments, args should be %s' % str(self.__slots__) + ' args are' + str(args))
TypeError: Invalid number of arguments, args should be ['type_name', 'include_constants', 'include_subtypes'] args are('robot', True)
[rosplan_sensing_interface-17] process has died [pid 31105, exit code 1, cmd /home/ubuntu/project/test_ws/src/rosplan/rosplan_sensing_interface/scripts/sensing_interface.py __name:=rosplan_sensing_interface __log:=/home/ubuntu/.ros/log/aa6997c4-5915-11ed-98a8-347df6159613/rosplan_sensing_interface-17.log].
log file: /home/ubuntu/.ros/log/aa6997c4-5915-11ed-98a8-347df6159613/rosplan_sensing_interface-17*.log**
gerardcanal commented 2 years ago

Hi slamlixiaodong, Apparently this happens due to the last change here https://github.com/KCL-Planning/ROSPlan/issues/319 I guess the correct thing would be to set it to false. If you've done so, feel free to open a PR to fix this! :-)