Robotics StackExchange | Archived questions

SICK LMS221 w/ sicktoolbox_wrapper

I am trying to interface with my SICK LMS221 which I inherited from another project. So here goes,

The sensors is connected via RS422 to a RS422-> Ethernet converter (SeaLevel 4103). Across ethernet (using socat on Ubuntu 14) I am able to connect to the laser.

I CAN connect to the serial port.

Through python ...

I CAN send a raw hex serial Sick Status Query (02 00 01 00 31 15 12) and get a response.

I CAN change the baud rate of the device through raw hex command.

I CAN start the data streaming through the raw hex command.

However, when I try and connect to the laser, it fails to recognize that it is connected in any way.

rosrun sicktoolbox_wrapper sicklms _port:=~/dev/ttyLMS _baud:=38400

(Socat creates a PTY at ~/dev/ttyLMS) (The baud rate shouldn't matter at all because the RS422<->Ethernet adapter forces the port settings)

I have several theories ...

1) The RS422<->ethernet adapter introduces some small delay which is larger than the sicktoolbox timeout causing it to fail

2) My laser isn't supported and/or the wrong command/response is being sent

Any ideas? I have been trying to figure this out for a while now ... :(

Asked by baronep on 2015-08-19 22:36:40 UTC

Comments

Answers

you can whireshark the communication and see if some data is send to the Laser, a second rs422 converter woud by handy so you could double check.

Asked by duck-development on 2015-08-21 03:47:27 UTC

Comments

I was able to wireshark the comms using the -x and -v socat options. It looks like the commands being sent by sicktoolbox wrapper are being split up into multiple serial write operations and the laser is not responding. I'm going to try the socat rawer and nodelay options.

Asked by baronep on 2015-08-24 12:44:09 UTC