strands-project / autonomous_patrolling

Autonomous Patrolling
11 stars 17 forks source link

Topological Patrolling #111

Open Jailander opened 10 years ago

Jailander commented 10 years ago

Hi,

We want to start working on some kind of topological patrolling, the reason for tackling this right now is that in our new lab we have two levels that are accessible for the robot only through a ramp that we have to cross calling an action server since the ramp is too narrow for the path planner and obstacle avoidance to work.

The idea that we have so far is to create a group of nodes in a topological map associated with waypoints and actions, so when the robot reaches a waypoint it can call an action associated to it like ramp climbing or information recording (e.g. 3D snapshots).

I know some of you have been working on this, any ideas, comments or suggestions? @BFALacerda @cburbridge @nilsbore @RaresAmbrus

RaresAmbrus commented 10 years ago

Hi @Jailander

I added the PT sweep as a separate state in the state machine (in my branch) and modified the waypoint saver to add the pan-tilt info to the database and load it from the database; currently the PT sweep state is called after visiting a patrol point, and the high level patroller script maintains the pan-tilt information and passes it to the pan-tilt state.

I think you want something similar, but more generic in nature. To achieve it I guess you would need a much more sophisticated waypoint recorder so you can specify a range of actions to associate with a waypoint, and also different states for each one of these actions in the state machine. (plus saving to and loading from the database of all the parameters associated with each action). Is this more or less what you had in mind?

Jailander commented 10 years ago

Hi Rares,

That is why I was asking, I have also been working on my own branch of the LTP, to associate these actions to each waypoint, however I still need something to tell the robot to navigate through certain waypoints (the ramp) when travelling between waypoints on different levels, so far I (could) solve it by not allowing the patroller to go in random order and not allowing it to fall bellow the low battery threshold. But of course this is only a short term solution.

hawesie commented 10 years ago

I am certainly interested in segmenting the environment into more meaningful chunks, and this can be done using a range of metrics. We can then plan for/schedule the robot to perform particular actions at particularly topological nodes. To handle the ramp you need to have a multi-level segmentation, e.g. "regions" for the high area and the low area, both decomposed into topological "places", i.e. some total segmentation of the space. You need places at the top and bottom of the ramp and must enforce that any navigation between high a low areas go via these places, and uses whatever special navigation action you have (as opposed to move base).

This whole issue will end up being pretty central to our whole system, so we must make sure we get it right, or at least make a reasonable first attempt at it. Maybe we should add this to the agenda for when Birmingham visits Lincoln in Jan.

Jailander commented 10 years ago

The idea that Marc and I have is to talk about this on our meeting, meanwhile we thought that putting the issue here would be smart so we can have feedback from other people, also I am doing some simple hacking to try to get Linda patrolling to Ramp so we can gather new data and see if there is any other thing that we should consider.

hawesie commented 10 years ago

In case it's useful, we already have code to generate and view PRMs on top of ROS maps:

https://github.com/uobirlab/map_view

And code to drive the robot around the graph:

https://github.com/uobirlab/node_traveller

This latter package does other things too, which you can ignore!

Jailander commented 10 years ago

Thank you!

It looks great, I will give it a try and tell you how it works on Linda.

hawesie commented 10 years ago

Any problems, just open issues on those repos and hopefully @jberthiaume or @shenroon can help you.

Jailander commented 10 years ago

Thank you Nick, I will do, so far I tried map_view and seems fine, I am going on holidays but I will have it tested when you come and visit us on January.

Happy holidays