chicagoedt / revo_robot

Code for EDT's IGVC entry, Revo.
http://www.igvc.org/
20 stars 23 forks source link

add dynamic_reconfigure to line_detector #23

Closed bsubei closed 9 years ago

bsubei commented 10 years ago

we need to be able to change parameters like Hough or Histogram stuff on the fly using dynamic_reconfigure (instead of having a separate GUI program with sliders for the parameters). That GUI program won't work when we have multiple algorithms.

bsubei commented 10 years ago

doing this in this node will make it so much easier to make it work for the other line_detection nodes we make (for the other algorithms). If we make the current line_detection node good enough and complete, we'll just clone it and modify the algorithm.

bsubei commented 10 years ago

this obviously means I first need to implement a ROS parameter server (which I didn't do yet)

bsubei commented 10 years ago

Helpful links:

https://github.com/UCSD-E4E/stingray-auv/wiki/Writing-publisher-subscriber-with-dynamic-reconfigure-and-parameter-server-(python)

http://library.isr.ist.utl.pt/docs/roswiki/dynamic_reconfigure(2f)Tutorials(2f)SettingUpDynamicReconfigureForANode(28)python(29).html

http://wiki.ros.org/rospy/Overview/Parameter%20Server

bsubei commented 10 years ago

This tutorial goes over setting up dynamic reconfig for a python node (groovy distro, hope this works on indigo) http://wiki.ros.org/dynamic_reconfigure/Tutorials/SettingUpDynamicReconfigureForANode(python)

bsubei commented 10 years ago

so, to be precise, what needs to be done is to create a cfg file for the parameters to be changed, and then rewrite the line_detection nodes to be dynamic_reconfigure servers (so they can listen to rqt_reconfigure that sends params).

bsubei commented 10 years ago

also, it's important to note that we want to implement dynamic_reconfigure as opposed to rosparam, because rosparam is not meant for parameters that change.

http://wiki.ros.org/ROS/Patterns/Parameterization

bsubei commented 10 years ago

this feature introduced a bug, where the parameters that are dynamically changed are not validated before being plugged in to opencv. Check issue #25

bsubei commented 10 years ago

also, abandoning rosparam branch (no need for rosparam if we use dynamic_reconfigure)