Open jsampat2 opened 5 years ago
Hi Jigisha, are you working with Omar? Is this the same setup he's been working with?
Hello,
Yes, I am working with Omar. We are facing new errors with the version update. We were able to track 3 markers on a rigid body but ran into the error above when we tried to stream a skeleton. The skeleton is streaming successfully to a NatNet SDK program, so we are fairly certain the settings on Motive are not incorrect.
If you could guide us through this error, we would be most obliged.
Thank you, Jigisha
Ok, which version of Motive are you using now and which branch and commit of natnet_ros are you on?
Could you please show me the command you run and its full output, not just the error? Could you please also capture the network traffic for me (as Omar did here), first with the natnet_ros client and then with the Natnet SDK SampleClient.exe?
Oh, and if you aren't on the latest commit in the dev branch then please change to that first!
Hi Matthew, we are using motive 2.1.1. We are also in dev and our commit is 8cadd00f99539259eb5b0ec9aa6a5bf3c5a0a966. I believe that is the latest commit.
Also below is the wireshark output when running SampleClient.exe. We weren't able to capture any data from natnet since it produced an error, which is the following:
radlab@DESKTOP-TSTVI8U:~$ cd catkin_jigisha/ radlab@DESKTOP-TSTVI8U:~/catkin_jigisha$ source devel/setup.bash radlab@DESKTOP-TSTVI8U:~/catkin_jigisha$ cd src/natnet_ros/ radlab@DESKTOP-TSTVI8U:~/catkin_jigisha/src/natnet_ros$ rosrun natnet_ros client _server:=127.0.0.1 [INFO] [1556761985.181307]: Connecting to 127.0.0.1 Traceback (most recent call last): File "/home/radlab/catkin_jigisha/src/natnet_ros/natnet_ros/scripts/client", line 273, in <module> node.run() File "/home/radlab/catkin_jigisha/src/natnet_ros/natnet_ros/scripts/client", line 263, in run client = natnet.Client.connect(server, logger=self.log) File "/home/radlab/catkin_jigisha/src/natnet_ros/python_natnet/python_natnet/src/natnet/comms.py", line 415, in connect return cls._simple_connect(server, logger, timeout) File "/home/radlab/catkin_jigisha/src/natnet_ros/python_natnet/python_natnet/src/natnet/comms.py", line 398, in _simple_connect return cls._setup_client(conn, server_info, logger) File "/home/radlab/catkin_jigisha/src/natnet_ros/python_natnet/python_natnet/src/natnet/comms.py", line 351, in _setup_client model_definitions_message, _ = conn.wait_for_message_with_id(protocol.MessageId.ModelDef) File "/home/radlab/catkin_jigisha/src/natnet_ros/python_natnet/python_natnet/src/natnet/comms.py", line 154, in wait_for_message_with_id return protocol.deserialize_payload(message_id, payload), received_time File "/home/radlab/catkin_jigisha/src/natnet_ros/python_natnet/python_natnet/src/natnet/protocol/common.py", line 271, in deserialize_payload return _registry.deserialize_payload(*args, **kwargs) File "/home/radlab/catkin_jigisha/src/natnet_ros/python_natnet/python_natnet/src/natnet/protocol/common.py", line 221, in deserialize_payload message = message_type.deserialize(payload_data, version) File "/home/radlab/catkin_jigisha/src/natnet_ros/python_natnet/python_natnet/src/natnet/protocol/ModelDefinitionsMessage.py", line 190, in deserialize models.append(MarkersetDescription.deserialize(data, version)) File "/home/radlab/catkin_jigisha/src/natnet_ros/python_natnet/python_natnet/src/natnet/protocol/ModelDefinitionsMessage.py", line 49, in deserialize marker_names = [data.unpack_cstr() for i in range(marker_count)] File "/home/radlab/catkin_jigisha/src/natnet_ros/python_natnet/python_natnet/src/natnet/protocol/common.py", line 115, in unpack_cstr return value.decode('utf-8') File "/usr/lib/python2.7/encodings/utf_8.py", line 16, in decode return codecs.utf_8_decode(input, errors, True) UnicodeDecodeError: 'utf8' codec can't decode byte 0xa2 in position 2: invalid start byte radlab@DESKTOP-TSTVI8U:~/catkin_jigisha/src/natnet_ros$ rosrun natnet_ros client _server:=127.0.0.1 [INFO] [1556762027.704857]: Connecting to 127.0.0.1 Traceback (most recent call last): File "/home/radlab/catkin_jigisha/src/natnet_ros/natnet_ros/scripts/client", line 273, in <module> node.run() File "/home/radlab/catkin_jigisha/src/natnet_ros/natnet_ros/scripts/client", line 263, in run client = natnet.Client.connect(server, logger=self.log) File "/home/radlab/catkin_jigisha/src/natnet_ros/python_natnet/python_natnet/src/natnet/comms.py", line 415, in connect return cls._simple_connect(server, logger, timeout) File "/home/radlab/catkin_jigisha/src/natnet_ros/python_natnet/python_natnet/src/natnet/comms.py", line 398, in _simple_connect return cls._setup_client(conn, server_info, logger) File "/home/radlab/catkin_jigisha/src/natnet_ros/python_natnet/python_natnet/src/natnet/comms.py", line 351, in _setup_client model_definitions_message, _ = conn.wait_for_message_with_id(protocol.MessageId.ModelDef) File "/home/radlab/catkin_jigisha/src/natnet_ros/python_natnet/python_natnet/src/natnet/comms.py", line 154, in wait_for_message_with_id return protocol.deserialize_payload(message_id, payload), received_time File "/home/radlab/catkin_jigisha/src/natnet_ros/python_natnet/python_natnet/src/natnet/protocol/common.py", line 271, in deserialize_payload return _registry.deserialize_payload(*args, **kwargs) File "/home/radlab/catkin_jigisha/src/natnet_ros/python_natnet/python_natnet/src/natnet/protocol/common.py", line 221, in deserialize_payload message = message_type.deserialize(payload_data, version) File "/home/radlab/catkin_jigisha/src/natnet_ros/python_natnet/python_natnet/src/natnet/protocol/ModelDefinitionsMessage.py", line 190, in deserialize models.append(MarkersetDescription.deserialize(data, version)) File "/home/radlab/catkin_jigisha/src/natnet_ros/python_natnet/python_natnet/src/natnet/protocol/ModelDefinitionsMessage.py", line 49, in deserialize marker_names = [data.unpack_cstr() for i in range(marker_count)] File "/home/radlab/catkin_jigisha/src/natnet_ros/python_natnet/python_natnet/src/natnet/protocol/common.py", line 115, in unpack_cstr return value.decode('utf-8') File "/usr/lib/python2.7/encodings/utf_8.py", line 16, in decode return codecs.utf_8_decode(input, errors, True) UnicodeDecodeError: 'utf8' codec can't decode byte 0xa2 in position 2: invalid start byte radlab@DESKTOP-TSTVI8U:~/catkin_jigisha/src/natnet_ros$ rosrun natnet_ros client _server:=127.0.0.1 [INFO] [1556762040.926537]: Connecting to 127.0.0.1 Traceback (most recent call last): File "/home/radlab/catkin_jigisha/src/natnet_ros/natnet_ros/scripts/client", line 273, in <module> node.run() File "/home/radlab/catkin_jigisha/src/natnet_ros/natnet_ros/scripts/client", line 263, in run client = natnet.Client.connect(server, logger=self.log) File "/home/radlab/catkin_jigisha/src/natnet_ros/python_natnet/python_natnet/src/natnet/comms.py", line 415, in connect return cls._simple_connect(server, logger, timeout) File "/home/radlab/catkin_jigisha/src/natnet_ros/python_natnet/python_natnet/src/natnet/comms.py", line 398, in _simple_connect return cls._setup_client(conn, server_info, logger) File "/home/radlab/catkin_jigisha/src/natnet_ros/python_natnet/python_natnet/src/natnet/comms.py", line 351, in _setup_client model_definitions_message, _ = conn.wait_for_message_with_id(protocol.MessageId.ModelDef) File "/home/radlab/catkin_jigisha/src/natnet_ros/python_natnet/python_natnet/src/natnet/comms.py", line 154, in wait_for_message_with_id return protocol.deserialize_payload(message_id, payload), received_time File "/home/radlab/catkin_jigisha/src/natnet_ros/python_natnet/python_natnet/src/natnet/protocol/common.py", line 271, in deserialize_payload return _registry.deserialize_payload(*args, **kwargs) File "/home/radlab/catkin_jigisha/src/natnet_ros/python_natnet/python_natnet/src/natnet/protocol/common.py", line 221, in deserialize_payload message = message_type.deserialize(payload_data, version) File "/home/radlab/catkin_jigisha/src/natnet_ros/python_natnet/python_natnet/src/natnet/protocol/ModelDefinitionsMessage.py", line 190, in deserialize models.append(MarkersetDescription.deserialize(data, version)) File "/home/radlab/catkin_jigisha/src/natnet_ros/python_natnet/python_natnet/src/natnet/protocol/ModelDefinitionsMessage.py", line 49, in deserialize marker_names = [data.unpack_cstr() for i in range(marker_count)] File "/home/radlab/catkin_jigisha/src/natnet_ros/python_natnet/python_natnet/src/natnet/protocol/common.py", line 115, in unpack_cstr return value.decode('utf-8') File "/usr/lib/python2.7/encodings/utf_8.py", line 16, in decode return codecs.utf_8_decode(input, errors, True) UnicodeDecodeError: 'utf8' codec can't decode byte 0xa2 in position 2: invalid start byte
Great, thanks. The Wireshark file is missing most of the data though, did you follow my instructions to Omar exactly?
Open a command prompt in the NatNet SDK samples folder. Start the capture with the filter "port 1510 or port 1511" so you only include NatNet traffic. Run SampleClient.exe in the command prompt, press 1 to connect, wait a few seconds while data flashes past, then press q to quit. Select all the output (Ctrl-A), copy it (Enter), and attach it here along with the capture file.
Hi Matthew,
Please see attached the zip file with both capture WireShark data and command prompt data.
Regards, Omar WireShark_05-5-2019.zip
Thanks Omar, could you please do the same for the natnet_ros client?
Hi Matthew,
Please see attached. I'm not quite sure if WireShark is able to catch any data since "rosrun natnet_ros client _server:=(Motive IP)" errors out very quickly. I have attached anything caught by WireShark in addition to what we entered in Ubuntu.
Regards WireShark_05-06-2019.zip
Thanks! That one has the one packet I needed to reproduce your error and it should be fixed now, please update and try again.
Hi Matthew,
Great news, it is able to track a rigid body now and is showing us data. We tried it with a skeleton and it didn't return any data. Is there a reason for that? Please advice
Regards
Oh good! Can you show me your Data Streaming settings in Motive? I think I probably need "Skeletons as Rigid Bodies" turned off.
Is it working for you now?
Hello,
I was trying to use your package to run a skeleton tracking with 37 markers (default on Motive). But I kept getting the following decode error:
Traceback (most recent call last): File "/home/radlab/catkin_omar/src/natnet_ros/natnet_ros/scripts/client", line 217, in
node.run()
File "/home/radlab/catkin_omar/src/natnet_ros/natnet_ros/scripts/client", line 207, in run
client = natnet.Client.connect(server, logger=self.log)
File "/home/radlab/catkin_omar/src/natnet_ros/python_natnet/python_natnet/src/natnet/comms.py", line 415, in connect
return cls._simple_connect(server, logger, timeout)
File "/home/radlab/catkin_omar/src/natnet_ros/python_natnet/python_natnet/src/natnet/comms.py", line 398, in _simple_connect
return cls._setup_client(conn, server_info, logger)
File "/home/radlab/catkin_omar/src/natnet_ros/python_natnet/python_natnet/src/natnet/comms.py", line 351, in _setup_client
model_definitionsmessage, = conn.wait_for_message_with_id(protocol.MessageId.ModelDef)
File "/home/radlab/catkin_omar/src/natnet_ros/python_natnet/python_natnet/src/natnet/comms.py", line 154, in wait_for_message_with_id
return protocol.deserialize_payload(message_id, payload), received_time
File "/home/radlab/catkin_omar/src/natnet_ros/python_natnet/python_natnet/src/natnet/protocol/common.py", line 281, in deserialize_payload
return _registry.deserialize_payload(*args, **kwargs)
File "/home/radlab/catkin_omar/src/natnet_ros/python_natnet/python_natnet/src/natnet/protocol/common.py", line 231, in deserialize_payload
message = message_type.deserialize(payload_data, version)
File "/home/radlab/catkin_omar/src/natnet_ros/python_natnet/python_natnet/src/natnet/protocol/ModelDefinitionsMessage.py", line 196, in deserialize
models.append(MarkersetDescription.deserialize(data, version))
File "/home/radlab/catkin_omar/src/natnet_ros/python_natnet/python_natnet/src/natnet/protocol/ModelDefinitionsMessage.py", line 53, in deserialize
marker_names = [data.unpack_cstr() for i in range(marker_count)]
File "/home/radlab/catkin_omar/src/natnet_ros/python_natnet/python_natnet/src/natnet/protocol/common.py", line 125, in unpack_cstr
return value.decode('utf-8')
File "/usr/lib/python2.7/encodings/utf_8.py", line 16, in decode
return codecs.utf_8_decode(input, errors, True)
UnicodeDecodeError: 'utf8' codec can't decode byte 0xf5 in position 0: invalid start byte
Could you help figure out what the error could be? This error wasn't showing up when I tried to stream a rigid body with 3 markers. Your help would be most appreciated!
Thank you, Jigisha