-
Notifications
You must be signed in to change notification settings - Fork 10
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Need help for fetching the info of PLEXIL Update node into OwAdapter [Release 7] #43
Comments
Thanks for the detailed report, @oceank. The documentation for Update node adapters is noticeably missing on the Plexil website, but your approach looks reasonable. I was able to reproduce your problem in a small example that I've shared with Chuck, the lead PLEXIL developer. I suspect there is a simple missing step, and hope to have an answer to you soon. |
Thanks, Mike! Look forward to the feedback from Chuck. |
Hi @oceank, sorry for the wait, but I have a solution. As I mentioned, the PLEXIL documentation on Sourceforge is out of date and incomplete, but the needed interfacing support exists. Here's what you need to do.
This should get you going. We will update the PLEXIL docs in time. I'm also told that the Update Node approach may be less preferable to a newer interface for writing Exec Listeners, but I am at present inexperienced with these. |
Thanks @kmdalal! I will follow your suggestion and update here soon. For the preferred newer interface for wrting Exec Listeners, is there a document for it? |
Unfortunately the section on Exec Listeners is blank, and I don't have the knowledge to write it. I suggest going with the above approach for now. Here is a brief explanation I got for it, which may not be much to go on: "The ExecListener's implementNotifyNodeTransition() method looks for an Update node transitioning to EXECUTING. The Node* pointer passed into the method would have to be dynamic_cast to UpdateNode*; then the update can be read from the node, and the update pairs published as required." I think the feature needs more clarification, documentation, and probably some interface enhancement to make more user-friendly. I have created a request to do this. |
@kmdalal Thanks! Your suggested approach works well! I have successfully implemented and tested re-planning on the fly. I will really appreciate it If you could send me the update when you get further information regarding ExecListener's documentation and examples. Let's close the issue. BTW: in case you are interested, my implementation can be found in the forked repo nasa-raspberry-si/ow_autonomy. |
Hi, @mikedalal
Could you please give me some advices on how to retrieve information sent by a PLEXIL Update node to OwAdapter (or, OwInterface)?
I tried to fetch information (execution status) from a PLEXIL Update node and use it to decide if a re-planning is required by overriding the member function sendPlannerUpdate() of the class OwAdapter, which is inherited from the class InterfaceAdapter. But OwAdapter::sendPlannerUpdate() seems to be not called during the execution of the PLEXIL plan where I have manually inserted an Update node as follows. The Update node does exist in the compiled ple file.
Below is the implementation of sendPlannerUpdate() based on release 7 of ow_simulator and ow_autonomy. As seen, two pieces of debugging codes are added to check if this function is called. But I did not see the file called_sendPlannerUpdate.txt is created and neighter observed [OwAdapter:SendPlannerupdate] on the screen. I also tried to look for the ros log for autonomy node in ~/.ros/log, but did not find it.
I get stuck here. Any advice and thoughts are welcome! Thanks!
The text was updated successfully, but these errors were encountered: