[ros-users] Simple action client - querying its status

Blaise Gassend blaise at willowgarage.com
Fri Oct 22 19:57:50 UTC 2010


This thread is giving me the impression that it would be useful for
the server to be able to send a global status message. For servers for
which this is relevant, they could say whether they are busy via this
mechanism.

This could probably be done just using a normal topic, but that might
introduce races that could be avoided with better integration with
actionlib. Then again, you inherently have a race: if multiple clients
see the server as free, and all submit requests at once, you could run
into trouble.

I would use this global feedback topic in wpa_supplicant_node to send
feedback that is relevant to all clients. (For example, when you do a
wifi scan, you might be interested in the results of other clients'
scans. Currently I just do that via a separate topic.)

On Fri, Oct 22, 2010 at 10:38 AM, Eitan Marder-Eppstein
<eitan at willowgarage.com> wrote:
> Daniel,
> If your goal is to check whether or not an action server is processing a
> goal, there's no tool currently to give you that information. It would be
> simple to write something that listens to status and lets you know if any
> goals for a given server are marked as active, and it wouldn't be
> unreasonable to put this logic into the action client. You should feel free
> to create a ticket for this feature request. With that said, action servers
> have a number of different policies when it comes to handling goals, as
> Blaise mentioned, and will do different things when you send a goal to them.
> I can, however, see use cases where you might not want to send a goal to an
> action server when it is already processing a request.
> Hope all is well,
> Eitan
>
> On Fri, Oct 22, 2010 at 8:53 AM, Blaise Gassend <blaise at willowgarage.com>
> wrote:
>>
>> Hi Daniel,
>>
>> getState() is telling you the state of the client's current goal, not
>> the state of the server. Hence, if there is no goal, getState is
>> meaningless. This makes sense because a server could have the ability
>> to handle multiple goals in parallel. Hence, there isn't a single
>> state for the server that you can query.
>>
>> I imagine that what you are trying to do is determine if a server that
>> can only handle a single goal is currently busy. I don't think that
>> there is a general answer to that question. Some servers might reject
>> your goal if they are already busy. Others might interrupt the
>> existing goal. Let's see what others have to reply.
>>
>> Blaise
>>
>> On Fri, Oct 22, 2010 at 12:51 AM, Daniel Stonier <d.stonier at gmail.com>
>> wrote:
>> >
>> > Just a quick question with regards to the simple action client - why is
>> > using the getState() method considered improper when there is no goal
>> > (action client outputs an ROS_ERROR when you do so). Is there another
>> > means
>> > of querying the server to know whether it is currently handling a goal
>> > or
>> > not?
>> > Or perhaps, am I mistaken in thinking that I should be needing to?
>> > Regards,
>> > Daniel Stonier.
>> > --
>> > Phone : +82-10-5400-3296 (010-5400-3296)
>> > Home: http://snorriheim.dnsdojo.com/
>> > Yujin Robot: http://www.yujinrobot.com/
>> > Eros: http://www.ros.org/wiki/eros
>> > Embedded Control Libraries:
>> > http://snorriheim.dnsdojo.com/redmine/wiki/ecl
>> >
>> > _______________________________________________
>> > ros-users mailing list
>> > ros-users at code.ros.org
>> > https://code.ros.org/mailman/listinfo/ros-users
>> >
>> >
>> _______________________________________________
>> ros-users mailing list
>> ros-users at code.ros.org
>> https://code.ros.org/mailman/listinfo/ros-users
>
>
> _______________________________________________
> ros-users mailing list
> ros-users at code.ros.org
> https://code.ros.org/mailman/listinfo/ros-users
>
>



More information about the ros-users mailing list