PepperlFuchs / pf_lidar_ros_driver

ROS driver for Pepperl+Fuchs R2000 and R2300 laser scanners
https://www.pepperl-fuchs.com/global/en/23097.htm
Apache License 2.0
39 stars 38 forks source link

Device unsupported #79

Closed guomengnick closed 2 years ago

guomengnick commented 2 years ago

Hi i'm using
OMD30M-R2000-B23-V1V1D-HD-1L On Ubuntu20.04 ROS noetic , when i launch " roslaunch pf_driver r2000.launch " it shows error below: Device unsupported Unable to initialize device

and i'm sure that i can "ping" Lidar's IP thanks

hsd-dev commented 2 years ago

This issue sounds similar to https://github.com/PepperlFuchs/pf_lidar_ros_driver/issues/78. What is major and minor versions of your device?

The current implementation needs to be changed so that it does not rely on the version numbers to identify the device, but checks for the device_family. I will make a new PR this week with this update.

guomengnick commented 2 years ago

Lidar i'm using is this : P+F

and i use "PACTWare " to see Version infomation below: Firmware: 1.60 Hardware: 1.71 Protocol: 1.04

hsd-dev commented 2 years ago

I have pushed some changes in https://github.com/PepperlFuchs/pf_lidar_ros_driver/pull/77/commits/8234c6f212a8fe622b755bd2e25db8297444a41e which is part of https://github.com/PepperlFuchs/pf_lidar_ros_driver/pull/77. Hopefully that should solve the problem.

guomengnick commented 2 years ago

hi i'm using updated code but there is still something wrong the error code is the same as above

[ERROR] [1654658163.667808723]: Device unsupported [ERROR] [1654658163.669342408]: Unable to initialize devicer [2000_node-3] process has died [pid 125369, exit code 255, cmd /home/ros/pf_ws/devel/lib/pf_driver/ros_main_name:=r2000_node __log:=/home/ros/.ros/log/539ef906-e6d9-11ec-997c-150ca0cd6143/r2000_node-3.log]. log file: /home/ros/.ros/log/539ef906-e6d9-11ec-997c-150ca0cd6143/r2000_node-3*.log

By the way , i use catkin_make to build the code thanks.

hsd-dev commented 2 years ago

@guomengnick https://github.com/PepperlFuchs/pf_lidar_ros_driver/pull/77 has still not been merged, so if you are using the updated main branch, you would still face the error.

and i use "PACTWare " to see Version infomation below:
Firmware: 1.60
Hardware: 1.71
Protocol: 1.04

Did you also see major_version and minor_version?

guomengnick commented 2 years ago

I don't see any major or minor version you said my PACTware version is 5.0 where is major_version on the PACTware?

thanks

hsd-dev commented 2 years ago

I have never used PACTware so I am not sure how you can check there. But in your browser you can type

http://169.254.253.4/cmd/get_protocol_info

replace it with the IP of your device. In response you should see

{
"protocol_name":"pfsdp",
"version_major":1,
"version_minor":3,
"commands":[
"get_protocol_info",
"list_parameters",
"get_parameter",
"set_parameter",
"reboot_device",
"factory_reset",
"reset_parameter",
"request_handle_udp",
"request_handle_tcp",
"feed_watchdog",
"set_scanoutput_config",
"get_scanoutput_config",
"start_scanoutput",
"stop_scanoutput",
"release_handle",
"get_iq_parameter",
"set_iq_parameter",
"list_iq_parameters"
],
"error_code":0,
"error_text":"success"
}

What we are looking for is

"version_major":1,
"version_minor":3,

But this should not be needed anymore because we now check for device_family to recognize the device https://github.com/PepperlFuchs/pf_lidar_ros_driver/pull/77/commits/8234c6f212a8fe622b755bd2e25db8297444a41e. This commit is part of https://github.com/PepperlFuchs/pf_lidar_ros_driver/pull/77 which has not been merged yet. You can test it with this PR if possible.

guomengnick commented 2 years ago

this is my Lidar configuration : { "protocol_name":"pfsdp", "version_major":1, "version_minor":4, "commands":[ "get_protocol_info", "list_parameters", "get_parameter", "set_parameter", "reboot_device", "factory_reset", "reset_parameter", "request_handle_udp", "request_handle_tcp", "feed_watchdog", "set_scanoutput_config", "get_scanoutput_config", "start_scanoutput", "stop_scanoutput", "release_handle", "get_iq_parameter", "set_iq_parameter", "list_iq_parameters" ], "error_code":0, "error_text":"success" }

hsd-dev commented 2 years ago

In this line https://github.com/PepperlFuchs/pf_lidar_ros_driver/blob/90213cad3edb4378f379b310a4fd40be6a9dcc47/pf_driver/src/pf/pf_interface.cpp#L108 you need to change it from 3 to 4

if (major_version == 1 && minor_version == 4)
guomengnick commented 2 years ago

Okay i change to 4 and it works ! Thank you for your help!!