carnegierobotics / multisense_ros

ROS Wrapper for LibMultiSense
Other
7 stars 18 forks source link

Getting error while trying to launch the multisense.launch file #79

Closed prabal27 closed 3 months ago

prabal27 commented 10 months ago

I am getting the following error while trying to launch using the following command "roslaunch multisense_bringup multisense.launch" :

[[ERROR] [1701114334.024604260]: multisense_ros: failed to create communication channel to sensor @ "10.66.171.21" with head ID -1
[multisense/multisense_driver-3] process has died [pid 30012, exit code 254, cmd /home/prabal/multisense_s30/devel/lib/multisense_ros/ros_driver __name:=multisense_driver __log:=/home/prabal/.ros/log/8545d84a-8d5d-11ee-bc1f-37ac7352f0b5/multisense-multisense_driver-3.log].
log file: /home/prabal/.ros/log/8545d84a-8d5d-11ee-bc1f-37ac7352f0b5/multisense-multisense_driver-3*.log

I am attaching the screenshot of the error as well.

MicrosoftTeams-image (2)

Can you please help me solve this error?

Note: I am able to visualize the camera feed using the multisense_viewer application

mattalvarado commented 10 months ago

@prabal27 Can you confirm you can ping the camera at 10.66.171.21 before launching the ROS driver?

Also is there a chance your camera's IP address was changed from the default 10.66.171.21 address? If you are unsure, you can use the LibMultiSense ChangeIpUtility to reset all cameras on the network interface specified by the -b argument.

Could you also provide any additional information about your systems network configuration? Do you have your camera connected directly to your machine's PCIe network interface? Are you running the ROS driver in a docker container, a VM, or a native Ubuntu install? Do you have any intermediate networking hardware (i.e. switch or router), between the camera and your host machine?

ab3nd commented 8 months ago

I'm having the same problem.

I cannot ping the camera, but the response I get is that the packet was filtered: $ ping 10.66.171.21 PING 10.66.171.21 (10.66.171.21) 56(84) bytes of data. From 207.180.135.129 icmp_seq=1 Packet filtered From 207.180.135.129 icmp_seq=3 Packet filtered From 207.180.135.129 icmp_seq=4 Packet filtered From 207.180.135.129 icmp_seq=5 Packet filtered From 207.180.135.129 icmp_seq=8 Packet filtered From 207.180.135.129 icmp_seq=9 Packet filtered

The camera address shouldn't have changed, it's fresh out of the box and this is the first time I've turned it on.

The camera is plugged directly into the laptop, and the configuration of MTU and IP seems to have gone right: ifconfig enp59s0 enp59s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 7200 inet 10.66.171.20 netmask 255.0.0.0 broadcast 10.255.255.255 inet6 fe80::d75e:9b5e:737f:b598 prefixlen 64 scopeid 0x20 ether 60:18:95:2e:ec:25 txqueuelen 1000 (Ethernet) RX packets 0 bytes 0 (0.0 B) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 190 bytes 35657 (35.6 KB) TX errors 1 dropped 0 overruns 0 carrier 0 collisions 0

I'm going to get the libmultisense tools built and see if I can reach it that way.

ab3nd commented 8 months ago

$ ./ChangeIpUtility -b enp59s0 NEW address: 10.66.171.21 NEW gateway: 10.66.171.1 NEW netmask: 255.255.240.0

WARNING: All MultiSense devices attached to interface 'enp59s0' will have their addresses changed

Really update network configuration? (y/n): y Successfully transmitted network parameter change command

That looks optimistic, but then I still don't reach it when using the DeviceInfoUtility

$ ./DeviceInfoUtility [1707423769.486] channel.cc(762): static crl::multisense::Channel* crl::multisense::Channel::Create(const string&): exception: channel.cc(199): crl::multisense::details::impl::impl(const string&, const RemoteHeadChannel&, const string&): failed to establish comms with the sensor at "10.66.171.21", with remote head enum -1 Failed to establish communications with "10.66.171.21"

mattalvarado commented 8 months ago

@ab3nd When you configure your interface could you try setting your netmask to 255.255.255.0 and broadcast to 10.66.171.255?

Here is the ifconfig output for my local interface:

ifconfig enp0s31f6
enp0s31f6: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 9000
        inet 10.66.171.22  netmask 255.255.255.0  broadcast 10.66.171.255
        inet6 fe80::84db:64dd:62cd:2491  prefixlen 64  scopeid 0x20<link>
        ether 00:2b:67:35:38:9b  txqueuelen 1000  (Ethernet)
        RX packets 70777595  bytes 557885713395 (557.8 GB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 6382170  bytes 4910610050 (4.9 GB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
        device interrupt 16  memory 0xeb500000-eb520000  
ab3nd commented 7 months ago

Yep, that seems to have fixed it. Thank you!