Skip to content
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

rqt_reconfigure Can no longer easily use checkboxes as push buttons #107

Closed
chadrockey opened this issue Aug 1, 2013 · 16 comments
Closed
Assignees
Labels

Comments

@chadrockey
Copy link

In the old dynamic_reconfigure gui, it was possible to send 'clocked' data by changing values, then clicking on a boolean. The problem within rqt_reconfigure is that the update of the boolean state doesn't update properly. The callback looked like this:

callback(config):
   if(config.bool):
       accept new values and do something
       sleep(0.1 second)
   config.bool = false
   return config

This would let you push the button to trigger an event. In the past, I've used this for writing values to flash for microcontrollers among other things.

This would be useful for ros/geometry#25

The specific problem is that we'd like to set a quaternion, but since quaternions are normalized and the values depend on each other, you get an invalid quaternion while setting the other values. Adding a push_button for 'accept_quaternion' would fix this.

@ablasdel
Copy link
Contributor

ablasdel commented Aug 1, 2013

My familiarity with this one is limited. @130s Can you give an opinion on this?

@ablasdel
Copy link
Contributor

ablasdel commented Aug 2, 2013

It seems strange to me that we are using check boxes as push buttons in the first place and this doesn't seem as if it was intended behavior. Which is probably why it was accidentally broken. I can get a chance to chat with the designers I will know more. @130s @zklapow

@130s
Copy link
Member

130s commented Aug 13, 2013

Although I wasn't aware about this feature in the old reconfigure gui, I'm ok to label this ticket to bug, which I just did (following the tacit rule for rx-rqt conversion, which is to realize all features that are available in old version, to minimize long-lived users' inconvenience).

@130s
Copy link
Member

130s commented Aug 20, 2013

Chad, did old dynamic reconfigure gui have a special checkbox to allow you
to send "clocked" data? Or did you just use a checkbox for normal param for
that purpose?

Either way, as I understand more your usecase and the nature of the plugin,
I began to think this is a request for adding a special button (/
checkbox??) for delaying data synchronization. Looking at a few discussions
in geometry, looks like it's in need (for calculating quaternion), and the
feature goes along with dyn reconf gui.

Also, if any way I can replicate / mock the environment you're running
that'll be great (eg. a pointer to the packages that contain .cfg and
server nodes). I don't always have an access to robots that use Parameter
server.

Isao Isaac Saito from Android

@bgromov
Copy link

bgromov commented Aug 20, 2013

Isaac, there is a pending pull request ros/geometry#25 that adds dynamic reconfigure for statit_transform_publisher. The use_quaternion checkbox there is used as a push-button. So no hardware is needed to replicate the problem.

@chadrockey
Copy link
Author

I woke up to make you a special gift, @130s

Here's a gist with a minimal sample that should show the problem:
https://gist.github.com/chadrockey/6278266

@130s
Copy link
Member

130s commented Aug 21, 2013

@bgromov I get this error when I try to build your code and thus can't run your dynamic reconf server. Can you help me out (I opened a ticket on my repo since your repo doesn't take an issue)?

@130s
Copy link
Member

130s commented Aug 21, 2013

@chadrockey thanks for a nightcap! That doesn't look like simulating Quaternion situation, but I see the checkbox so that I can test my code and I added it to my test dynamic_reconfigure server package 130s/test_dynamic_reconfigure@779e5f7 (since I was lazy in writing header file, I converted it into python).

@ghost ghost assigned 130s Aug 27, 2013
@aleeper
Copy link

aleeper commented Jan 30, 2014

bump
+1 for this being a useful (or even, important) use case.

@dirk-thomas
Copy link
Contributor

The original maintainer is not actively working in this.

And due to the many ticket pending for this plugin it has been marked to be experimental (https://github.com/ros-visualization/rqt_common_plugins/blob/groovy-devel/rqt_reconfigure/plugin.xml#L12).

Please consider to provide pull requests and/or take over the maintainer role for this plugin.

@130s
Copy link
Member

130s commented Jan 30, 2014

I'm the original maintainer and haven't had extra gear for this...Please
consider making patch as suggested. Thanks.

@chadrockey
Copy link
Author

@dirk-thomas @tfoote @wjwwood @130s

dynamic_reconfigure and reconfigure_gui were some of the friendlier and important ROS packages. In my option, the order of usefulness was ros_comm -> rviz -> tf -> dynamic_reconfigure. With the old wx version removed, there's essentially no way to reliably use dynamic_reconfigure other than loading the wx version from a fuerte environment.

In the past, we attempted to solicit a maintainer from ros-users. It may be time to ask for volunteers again. I don't have experience in qt and don't have time with the startup life to look into this currently. Other options could be an OSRF code sprint or if OSRF has the resources, an internship/sponsorship/Summer of Code/contract to HiDoF/others to patch things up. Are there any other options? Of course I'll volunteer to test fixes and work toward restoring this functionality.


In other news wxWidgets just released version 3.0 and because it's newer I propose we move all rqt_gui components to wx 3.0. :trollface: </ sarcasm> </ nowayever>
https://groups.google.com/forum/#!msg/wx-announce/Ngt-fa-8Rkc/26GQ9zXgQxgJ

@130s
Copy link
Member

130s commented Feb 9, 2014

I JUST started looking at this issue last night. I'm willing to work on
this if up to 2 weeks (due to my upcoming workload in my work) is
acceptable. Sorry for inconvenience anyway.

@cottsay
Copy link
Member

cottsay commented Feb 15, 2014

Pull Request #210:
  • Should fix your problem
  • Is in testing and has not been merged yet

Please comment on the pull request when you have tested for your issue.

@cottsay cottsay assigned cottsay and unassigned 130s Feb 15, 2014
@130s
Copy link
Member

130s commented Feb 17, 2014

I'm seeing that flushing with use_quaternion boolean checkbox works on rqt_reconfigure with the steps mentioned here. I'm comparing with fuerte version of reconfigure_gui and both seem to behave the same in terms of the functionality in question.

(I'm using commits in the pull request from @cottsay.)

Question; I think the result above relies only on the enhancement in geometry. Is this behaviour required for a general boolean checkbox that doesn't come with the special background logic like use_quaternion?

@cottsay
Copy link
Member

cottsay commented Feb 18, 2014

Fixed via d3da5e0

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

7 participants