LCAS / topological_navigation

The topological navigation framework
Apache License 2.0
31 stars 36 forks source link

executive_policy_mode working with tmap2 #61

Closed gpdas closed 3 years ago

gpdas commented 3 years ago

execute_policy_mode is brought to working state using tmap2. This is with the ExecutePolicyMode object in navigate.py.

Jailander commented 3 years ago

Hi @ayu135 can you test this? and check with @gpdas you are not doing the same task :grin:

adambinch commented 3 years ago

@ayu135 you should be able to test this using the multisim https://github.com/LCAS/RASberry/wiki/In-Field-Logistics-For-Soft-Fruit-Production. Use the callarobot (CAR) interface. Or you can work with a single robot simulation as well. Send a small executive_policy_goal with one or two edges.

ayu135 commented 3 years ago

Will test it today thanks

ayu135 commented 3 years ago

While testing with a single robot simulation scenario "transportation_riseholme_polytunnel_sim" I am getting the following error

[ERROR] [1614607369.327302, 1414.485000]: bad callback: <bound method PolicyExecutionServer.MapCallback o
f <execute_policy_server.PolicyExecutionServer object at 0x7fcff044cfd0>>                                
Traceback (most recent call last):                                                                       
  File "/opt/ros/melodic/lib/python2.7/dist-packages/rospy/topics.py", line 750, in _invoke_callback     
    cb(msg)                                                                                              
  File "/home/n0mad/rasberry_ws/src/topological_navigation/topological_navigation/scripts/execute_policy_
server.py", line 903, in MapCallback                                                                     
    for i in self.lnodes:                                                                                
TypeError: 'TopologicalMap' object is not iterable 
gpdas commented 3 years ago

I am definitely not trying to do @ayu135 's work :) I was just trying to get the robot moving in multisim. My intention was only to get the ball rolling.

i think the error Ayush got could be from some files in rasberry repo. I will have a look.

ayu135 commented 3 years ago

There seem to be a few other errors that I am getting when testing with the toponav-2 devel scenario

[WARN] [1614608311.295095, 1462.200000]: I couldn't create reconfigure client /move_base/move_base/DWAPla
nnerROS. remaining tries 1                                                                               
Traceback (most recent call last):                                                                       
  File "/home/n0mad/rasberry_ws/src/topological_navigation/topological_navigation/scripts/navigation.py",
 line 990, in <module>                                                                                   
    policy_server = PolicyExecutionServer(use_tmap2)                                                     
  File "/home/n0mad/rasberry_ws/src/topological_navigation/topological_navigation/scripts/execute_policy_
server.py", line 162, in __init__                                                                        
    service_created = self.create_reconfigure_client(i)                                                  
  File "/home/n0mad/rasberry_ws/src/topological_navigation/topological_navigation/scripts/execute_policy_
server.py", line 221, in create_reconfigure_client                                                       
    % (rcnfsrvrname, i)                                                                                  
NameError: global name 'i' is not defined
gpdas commented 3 years ago

@ayu135 please do a git pull. @adambinch made changes to that today.

ayu135 commented 3 years ago

I have the latest branch I think I am still getting this error. There seems to be an unassigned variable on line 221 and 172 that seems to be causing this issue.

And thanks for this by the way I definitely appreciate the help.

gpdas commented 3 years ago

I tried to add some logical fixes to the random undefined variables here and there noted by @ayu135. The main issue is that the topological_navigation and execute_policy_mode actions have diverged a lot in the past years.

On a good note, after the fix I added, executive_policy_mode action works with a value of DWAPlannerROS for move_base_planner. But topological_navigation action expects this to be move_base/DWAPlannerROS. So it breaks topological_navigation action. Similarly the other value will break the execute_policy_mode action.

I have the toponav2-devel PR in rasberry repo updated with values to make it work with execute_policy_mode. (rasberry-robot.yaml, rasberry-simple-robot.yaml and rasberry-multisim.yaml)

I think, any further debugging or development activities on this clearly falls into Ayush's workplan to allow non-move_base type actions, removing monitored_navigation and merging both actions together. So I would stop working on this here.

Comments please @adambinch @Jailander @ayu135

ayu135 commented 3 years ago

Sounds good to me! I am working on the combined version and will create a pr for that soon hopefully.

adambinch commented 3 years ago

How are you approaching it @ayu135 ? Combined navigation + execute policy (with tmap2 only) in a first PR, then remove monitored nav and implement non move base goals in a second PR? Or are you going to do it all together? You could split the last 2 tasks into two PRs I suppose.

gpdas commented 3 years ago

63 already addressed this. closing now.