open-rmf / rmf_obstacle

Packages that infer the presence of obstacles from sensor inputs.
Apache License 2.0
6 stars 9 forks source link

Clarification regarding LaneBlocker and LaserscanDetector. #24

Closed suchetanrs closed 8 months ago

suchetanrs commented 8 months ago

Before proceeding, is there an existing issue or discussion for this?

Description

Hey @Yadunund ! I had some clarifications regarding running the lane blocking feature.

Regarding obstacles header.

I see from the discussion that led to this PR https://github.com/open-rmf/rmf_internal_msgs/pull/65 that a header was added to the Obstacles.msg. However looking at the latest source code on the main branch, the header field is not populated in this file from line 382. Since there was no PR related to this issue discussion of populating the header fields. Should I raise one?

Regarding LaneBlocker Node

The lane blocker successfully sent the request to block lanes and I got messages on the topic as well. The logs of the lane blocker node is available on this gist The issue was in the fleet adapter. It showed the following when the lanes callback was called.

[fleet_adapter-16]     fleet_handle.open_lanes(msg.open_lanes)                                                                                                 
[fleet_adapter-16] AttributeError: 'rmf_adapter.EasyFullControl' object has no attribute 'open_lanes'                                                          

I have uploaded a more complete log on this gist Can you please let me know what steps I need to take to fix this?

Regards, Suchetan

Yadunund commented 8 months ago

Thanks for the ticket! It looks like we need to update the implementation to populate the header. I'm hoping the plugin system proposed in #22 will alleviate the need for each obstacle detector to ensure these things. The plugins can just implement a method to set a new list of obstacles along with a header. The node which loads the plugins will be responsible for populating the message that will be published.

Regading the fleet adapter issue, I do see the opne_lanes API available in the python bindings. It might be worth opening a ticket in rmf_demos while also including more details of your setup.

suchetanrs commented 8 months ago

Hi @Yadunund, Thanks a lot for your response! I have raised a PR regarding the header issue. Like you mentioned, populating this is not desired since the final message would be a collation of all obstacles published by all the sensors / plugins. However, to ensure working of this package until this is done, I created the PR.

Turns out that the issue in which open_lanes and close_lanes functions were not being found was a simple fix. I have detailed this in this ticket and also raised this PR for the same.

I will now work on adding an API to the FleetUpdateHandle. I'll create a new issue for this to discuss some questions I had. I am closing this issue since my query was resolved. Thanks a lot for your help! :D

Yadunund commented 8 months ago

Awesome, thanks for the fix!