lucasw / dynamic_reconfigure_tools Goto Github PK
View Code? Open in Web Editor NEWTools for use with dynamic reconfigure with ROS
Tools for use with dynamic reconfigure with ROS
Currently interpreting these as floats, but this will cause the regular rqt dr plugin to crash if it sees an enum value that is invalid.
File "/opt/ros/kinetic/lib/python2.7/dist-packages/rqt_reconfigure/dynreconf_client_widget.py", line 109, in config_callback
widget.update_value(config[widget.param_name])
File "/opt/ros/kinetic/lib/python2.7/dist-packages/rqt_reconfigure/param_editors.py", line 439, in update_value
self._update_signal.emit(self.values.index(value))
ValueError: 2.9 is not in list
Need setValue()
cast values to int where appropirate- new python checks types more.
File "/home/lucasw/catkin_ws/src/lucasw/dynamic_reconfigure_tools/rqt_dr_single/src/rqt_dr_single/dr_single.py", line 260, in update_description
widget.setValue(slider_val)
TypeError: setValue(self, int): argument 1 has unexpected type 'float'
Also
[ERROR] [1651934929.309268 /rqt_gui_py_node_13391 /home/lucasw/catkin_ws/src/lucasw/dynamic_reconfigure_tools/rqt_dr_single/src/rqt_dr_single/dr_single.py:482]: 'Thread' object has no attribute 'isAlive'
-> is_alive()
should work in 20.04 also fkie/multimaster_fkie#149
Following on from lucasw/ros_from_src#6
If it isn't possible to fix ros/dynamic_reconfigure#100 then the update_configuration needs to be made to run in a separate thread- it looks like rqt_recongfigure does this (does it actually recover? Does the thread get killed off and remade if it becomes unresponsive?).
Currently the lock up in the dr server locks up rqt_dr_single and rqt also.
Exclude certain parameters from view with a blacklist, or only show listed parameters with a whitelist.
Introspect a message type then create dynamic reconfigure controls for each compatible field. Min and maxes and defaults will be set automatically or overridden by parameters.
Supply the topic and message type by parameter and instance settings.
Extra controls for standard rostopic pub features like latching, update rate.
Publish checkbox for enabling.
Want to be able to lock a dynamic reconfigure single client to a specific server.
Still need the status and refresh button.
The disable doesn't need to be easy to get to, it could be just a saved value within the .perspective
How to change width of the different columns?
Add a drop-down with a list of all the dr servers, make it possible to hide it with right click menu.
Wait for server to become available if it isn't already, notify user if a live server goes offline.
When closing an RQT window with a dynamic reconfigure single widget in it, the widget crashes with the following error message:
PluginHandlerDirect._save_settings() plugin "rqt_dr_single/dr_single#7" raised an exception:
Traceback (most recent call last):
File "/opt/ros/noetic/lib/python3/dist-packages/qt_gui/plugin_handler_direct.py", line 109, in _save_settings
self._plugin.save_settings(plugin_settings_plugin, instance_settings_plugin)
File "/home/jamesmuir/catkin_workspaces/base_ws/src/lucasw/dynamic_reconfigure_tools/rqt_dr_single/src/rqt_dr_single/dr_single.py", line 512, in save_settings
rospy.logdebug("saving server " + self.server_name)
TypeError: can only concatenate str (not "NoneType") to str
Checkbox on the header, or just a param.
Current using defaults, until a single value is sent and config_callback is called- but shouldn't config_callback get called immediately after it is set up the first time?
I think in the demo launch file there is a race and if the server isn't already up and running initially the initial values don't get set.
This possibly duplicates or does differently some of the dynamic dynamic reconfigure done here:
https://github.com/pal-robotics/ddynamic_reconfigure_python
https://answers.ros.org/question/268386/can-global-parameters-be-used-with-dynamic_reconfigure/
Make specifying the same named parameter multiple times with different servers make that control get reflected across all of them (the type would of course have to be the same).
roslaunch rqt_dr_single demo_dr_single.launch
rqt
then add an rqt dr single plugin, select one of the example servers, press the reload button in the top (not the dropdown reload button within the widget).
Traceback (most recent call last):
File "/home/lucasw/catkin_ws/src/dynamic_reconfigure_tools/rqt_dr_single/src/rqt_dr_single/dr_single.py", line 322, in update_config
self.val_label[param_name].setText(str(config[param_name]))
RuntimeError: wrapped C/C++ object of type QLineEdit has been deleted
String enums aren't working currently, add one to example cfg to test with.
Using a 22.04 system with https://github.com/lucasw/ros_from_src/tree/github_action_2204 process, but observed instance of one dr_single instance causing a bool to flip on another instance despite having different server names. All the instances run in the same thread, but have different contexts- but a signal or something else is in common between them? After a restart couldn't duplicate the issue.
May need to dig into https://github.com/ros-o/qt_gui_core/commits/obese-devel (which is identical to upstream currently) or https://github.com/ros-o/python_qt_binding/ (upstream must have been https://github.com/ros-visualization/python_qt_binding/commits/melodic-devel)
roslaunch rqt_dr_single demo_dr_single.launch
# move a slider
rosnode kill /example_server
# click on window
No traceback in stdout, but log has more info:
[rosout][INFO] 2017-09-06 06:26:23,293: restore /example_server
[rospy.internal][INFO] 2017-09-06 06:26:23,394: topic[/example_server/parameter_updates] adding connection to [http://127.0.0.1:39084/], count 0
[rospy.internal][INFO] 2017-09-06 06:26:23,395: topic[/example_server/parameter_descriptions] adding connection to [http://127.0.0.1:39084/], count 0
[rosout][INFO] 2017-09-06 06:26:23,398: clearing layout 0
[rospy.internal][INFO] 2017-09-06 06:26:23,447: topic[/rosout] adding connection to [/rosout], count 0
[rospy.internal][ERROR] 2017-09-06 06:26:50,979: Unable to initiate TCP/IP socket to 127.0.0.1:35907 (http://127.0.0.1:39084/): Traceback (most recent call last):
File "/opt/ros/kinetic/lib/python2.7/dist-packages/rospy/impl/tcpros_base.py", line 557, in connect
self.read_header()
File "/opt/ros/kinetic/lib/python2.7/dist-packages/rospy/impl/tcpros_base.py", line 650, in read_header
self._validate_header(read_ros_handshake_header(sock, self.read_buff, self.protocol.buff_size))
File "/opt/ros/kinetic/lib/python2.7/dist-packages/rospy/impl/tcpros_base.py", line 593, in _validate_header
raise TransportInitError("remote error reported: %s"%header['error'])
TransportInitError: remote error reported: node shutting down
[rospy.internal][WARNING] 2017-09-06 06:26:50,979: Unknown error initiating TCP/IP socket to 127.0.0.1:35907 (http://127.0.0.1:39084/): Traceback (most recent call last):
File "/opt/ros/kinetic/lib/python2.7/dist-packages/rospy/impl/tcpros_base.py", line 557, in connect
self.read_header()
File "/opt/ros/kinetic/lib/python2.7/dist-packages/rospy/impl/tcpros_base.py", line 650, in read_header
self._validate_header(read_ros_handshake_header(sock, self.read_buff, self.protocol.buff_size))
File "/opt/ros/kinetic/lib/python2.7/dist-packages/rosgraph/network.py", line 364, in read_ros_handshake_header
raise ROSHandshakeException("connection from sender terminated before handshake header received. %s bytes were received. Please check sender for additional details."%b.tell())
ROSHandshakeException: connection from sender terminated before handshake header received. 0 bytes were received. Please check sender for additional details.
[rospy.internal][INFO] 2017-09-06 06:26:50,979: topic[/example_server/parameter_updates] removing connection to http://127.0.0.1:39084/
[rospy.internal][WARNING] 2017-09-06 06:26:51,980: Unknown error initiating TCP/IP socket to 127.0.0.1:35907 (http://127.0.0.1:39084/): Traceback (most recent call last):
File "/opt/ros/kinetic/lib/python2.7/dist-packages/rospy/impl/tcpros_base.py", line 555, in connect
self.socket.connect((dest_addr, dest_port))
File "/usr/lib/python2.7/socket.py", line 228, in meth
return getattr(self._sock,name)(*args)
error: [Errno 111] Connection refused
[rospy.internal][INFO] 2017-09-06 06:26:51,981: topic[/example_server/parameter_descriptions] removing connection to http://127.0.0.1:39084/
Slow to browse windows, image viewers are slow to update.
Is there a tight loop in there?
Or a blocking wait that takes all cpu core?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.