ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question

Crusty's profile - activity

2022-03-07 02:35:28 -0500 received badge  Taxonomist
2020-04-21 16:07:14 -0500 received badge  Nice Question (source)
2018-01-30 22:59:41 -0500 marked best answer dynamic_reconfigure exception when used with groups

When running

rosrun rqt_reconfigure rqt_reconfigure

And selecting my node, I get the following error:

Traceback (most recent call last):
  File "/opt/ros/groovy/lib/python2.7/dist-packages/rqt_reconfigure/node_selector_widget.py", line 250, in _selection_changed_slot
    self._selection_selected(index_current, rosnode_name_selected)
  File "/opt/ros/groovy/lib/python2.7/dist-packages/rqt_reconfigure/node_selector_widget.py", line 200, in _selection_selected
    item_widget = item_child.get_dynreconf_widget()
  File "/opt/ros/groovy/lib/python2.7/dist-packages/rqt_reconfigure/treenode_qstditem.py", line 148, in get_dynreconf_widget
    self._param_name_raw)
  File "/opt/ros/groovy/lib/python2.7/dist-packages/rqt_reconfigure/dynreconf_client_widget.py", line 57, in __init__
    group_desc, node_name)
  File "/opt/ros/groovy/lib/python2.7/dist-packages/rqt_reconfigure/param_groups.py", line 153, in __init__
    self._create_node_widgets(config)
  File "/opt/ros/groovy/lib/python2.7/dist-packages/rqt_reconfigure/param_groups.py", line 199, in _create_node_widgets
    widget = eval(_GROUP_TYPES[group['type']])(self.updater, group)
  File "/opt/ros/groovy/lib/python2.7/dist-packages/rqt_reconfigure/param_groups.py", line 248, in __init__
    super(BoxGroup, self).__init__(updater, config)
TypeError: __init__() takes exactly 4 arguments (3 given)

And indeed checking the python scripts, BoxGroup does call the super constructor with one argument too few. My config file looks something like this:

PACKAGE="my_package"
from dynamic_reconfigure.parameter_generator_catkin import *

gen = ParameterGenerator()

debug = gen.add_group("Debugging Utilities Left Image Based")
debug.add("dbgShowFeatures",                        bool_t,     0, "Show all detected features",            True) # online
debug.add("dbgShowNMSFilteredFeatures",             bool_t,     0, "Show stable (non maximum suppressed)",  True) # online
debug.add("dbgShowBest3kFeatures",                  bool_t,     0, "Show best 3000 features",               True) # online


exit(gen.generate(PACKAGE, "dynamic_reconfigure_node", "Foo"))

How can I fix this problem? I'm on ROS Groovy, 32 Bit Ubuntu 12.04

2017-07-03 08:33:41 -0500 received badge  Famous Question (source)
2016-07-18 19:01:37 -0500 received badge  Famous Question (source)
2016-06-08 10:16:32 -0500 commented answer Running ROS node with a numeric parameter passed as string doesn't work.

Thanks a lot, I guess I need to try with a launch file then, which is a bit of a problem since I am currently running the binary directly, rather than via the roslaunch / rosrun infrastructure. (The binary is compiled elsewhere and deployed onto a machine without local ROS installation)

2016-06-07 14:03:10 -0500 received badge  Notable Question (source)
2016-06-07 13:46:23 -0500 commented answer Running ROS node with a numeric parameter passed as string doesn't work.

I've tried `rosrun kinect2_bridge kinect2_bridge _sensor:='"123456"' and that didn't work. (ticks reversed compared to your answer)

2016-06-07 11:34:49 -0500 received badge  Popular Question (source)
2016-06-07 09:19:03 -0500 asked a question Running ROS node with a numeric parameter passed as string doesn't work.

I am trying to run the IAI Kinect2 Bridge node as follows, in order to use multiple sensors:

$ kinect2_bridge _sensor:=1234567890

But the node does not recognize the provided sensor ID and falls back to default. The issue here seems to be, that ROS parses this parameter as number (and stores it as an int?) without me being able to force it being a string.

This code: priv_nh.param("sensor", sensor, std::string(""));

Then tries to read this parameter, but in all subsequent code, sensor.empty() is true. Seems that the parameter is an int, then fails the type check and gets ignored. (Source from here: https://github.com/code-iai/iai_kinec... )

How can I force passing _sensor:=.... as a string, despite it being only numbers without using a launch file?

Thanks!

2016-06-07 03:33:49 -0500 received badge  Famous Question (source)
2016-04-28 22:17:55 -0500 received badge  Notable Question (source)
2016-04-12 03:50:02 -0500 commented answer ROS / Point Grey Chameleon USB3 Cam / No Colour Images

Thanks, done :)

2016-04-11 11:32:08 -0500 received badge  Popular Question (source)
2016-04-11 10:27:49 -0500 answered a question ROS / Point Grey Chameleon USB3 Cam / No Colour Images

Answer to my own question:

I switched to a different ROS Point Grey stack from Kumar Robotics ( https://github.com/KumarRobotics/flea3 ) that works for me. Seems that this stack is simply too old for USB3 Pt Grey cameras.

2016-04-11 09:28:37 -0500 received badge  Commentator
2016-04-11 09:28:37 -0500 commented answer ROS / Point Grey Chameleon USB3 Cam / No Colour Images

I am using roslaunch pointgrey_camera_driver camera.launch

2016-04-11 06:25:58 -0500 asked a question ROS / Point Grey Chameleon USB3 Cam / No Colour Images

Hello everyone,

I almost feel silly asking this, but I have sunken enough time into this now, and can't figure it out. I have a USB3 Pt Grey Chameleon Camera, installed according to the ROS guide. Works fine, but by default it outputs a gray valued image. (It's a colour camera). Camera is plugged via an active USB3 5m extension cable into a USB3 port. I cannot convince the camera to output a colour image. I am on ROS Indigo on 64Bit Ubuntu 14.04.1

Steps taken so far:

$ sudo apt-get install ros-indigo-pointgrey-camera-driver

$ sudo cat /etc/udev/rules.d/99-pt-grey-chameleon.rules SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device",ATTRS{idVendor}=="1e10", MODE="0666"

$ rosrun pointgrey_camera_driver list_cameras Number of cameras found: 1 [0]Serial: 15374833, Model: Chameleon3 CM3-U3-13S2C, Vendor: Point Grey Research, Sensor: Sony ICX445AL (1/3" 1296x964 CCD), Resolution: 1288x964, Color: false, Firmware Version: 1.2.3.1

Not sure why this says colour:false, it definitely is a colour camera: https://www.ptgrey.com/chameleon3-13-...

Launched rqt with image view, all works fine. Can change the params like fps successfully with rqt / dynreconfig. Changing the video mode on the camera via RQT kills the camera and/or my entire machine.

The default running mode of the camera is Format7_Mode0. I tried changing it to Format2_Mode1 ("1280x960_bayer8") hoping that I would get a bayer image to the debayer it and end up with colour. Doing so freezes the camera though, and power cycling usually doesnt help.

Any ideas would be greatly appreciated, thanks!

Edit: I use the roslaunch command as given on the ROS wiki page, and the debayer nodelet is happily running and publishing a /color topic, which isn't there when debayer is not running. The /color topic visualized in RQT is still greyscale.

2015-09-04 05:36:49 -0500 received badge  Supporter (source)
2015-09-04 05:36:22 -0500 received badge  Scholar (source)
2015-09-04 05:35:04 -0500 commented answer Private Parameters in a sub namespace

I tested this again today, and it works, thanks. I added some debugging statements, and turns out the rate got set correctly, but the publishing speed was still always at 10 Hz. So I concluded it didn't work. The slow publishing had other reasons in the code I am working with.

2015-09-04 02:17:23 -0500 received badge  Notable Question (source)
2015-09-03 14:13:26 -0500 commented answer Private Parameters in a sub namespace

Yep, it was just a copy paste error to here. I tried reducing and simplifying the example to the essence for the sake of posting it here distraction-free. The topic is indeed called rate_hz everywhere in my code.

2015-09-03 14:11:28 -0500 commented question Private Parameters in a sub namespace

Typo only local to this post, fixed thanks.

2015-09-03 14:10:21 -0500 edited question Private Parameters in a sub namespace

Hello,

I have a ROS node that essentially does this:

      ros::NodeHandle nh("~");
      ros::NodeHandle node_handle(nh, "derp"),
      node_handle.param<double>("rate", rate, 10.0);

Which means that the private parameter "rate" is pushed down into a namespace like so: derp/rate

I want to run aforementioned node from the command line and set this private parameter, but I do get errors. If the parameter were not in a sub namespace i could just launch the node by

rosrun mypack mynode _rate:=100

Running the node via rosrun mypack mynode derp/_rate:=100

Fails with a graph error. How can I set this private parameter via commandline?

Thanks!

Edit: running this with a launch file like so works:

<node name="mynode" pkg="mypack" type="mynode" output="screen"">
    <param name="derp/rate" value="100.0" />
</node>

But I do need to set this parameter via commandline.

2015-09-03 13:02:14 -0500 received badge  Popular Question (source)
2015-09-03 12:16:34 -0500 commented answer Private Parameters in a sub namespace

Tested, sadly doesnt work, node still running at 10Hz :(