Open TheodoroCardoso opened 1 year ago
Hello Theo,
You need to specify the type of the sensor_sn param on line 96 as follows
<param name="sensor_sn" type="string" value="$(arg sensor_sn)" />
For some reason, the sensor_sn parameter doesn't get parsed in C++ code without specifying the argument type.
Hey farazxavor,
This indeed does the trick.
Just tested it with real hardware.
Here's my fork with type
added to all params just like in driver.launch
https://github.com/microsoft/Azure_Kinect_ROS_Driver/compare/melodic...TheodoroCardoso:Azure_Kinect_ROS_Driver:melodic
Thanks for pointing that out!
Hello,
So I have been struggling with this problem too on Ubuntu 22.04
I first tried to use
sensor_sn_value = ParameterValue(value=LaunchConfiguration('sensor_sn'), value_type=str)
And it worked fine for a serial number, but when I tried for 001087594512 somehow, I get the error that I am sending a double to the node.
It may be cause by the way python process numbers starting by 00 in the background, converting them into double.
My workaround is to add a letter to the string, such as S001087594512 and add
if(params_.sensor_sn != ""){ params_.sensor_sn.erase(0, 1); }
in the k4a_ros_device.cpp, and it works fine
Describe the bug As opposed to
driver.launch
which actually uses the correct serial number (sensor_sn
parameter), thekinect_rgbd.launch
file seems to ignore it, even though it's passed into thek4a_ros_bridge nodelet
To Reproduce
roslaunch azure_kinect_ros_driver kinect_rgbd.launch sensor_sn:=999
Expected behavior Parse the parameter properly, print it, and launch the camera that has the provided serial number when multiple devices are connected.
Desktop (please complete the following information):
Additional context
roslaunch azure_kinect_ros_driver driver.launch sensor_sn:=999
Prints:roslaunch azure_kinect_ros_driver kinect_rgbd.launch sensor_sn:=999
Prints: