ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question
0

hector slam (Neato XV-11) map jumping

asked 2017-01-17 10:43:17 -0500

wt70707 gravatar image

I use hector SLAM and Neato xv-11 LIDAR. There is problem that the map will jump when the location jumps even the robot doesn't move. (I have a picture of this but has not enough points to attach). I had played with some of the parameters, and even tried to stop publishing the slam_out_pose message when this pose (the location) change too much, some time it works, but it never works all the way.

The jumping mostly happens when there is warning "SearchDir angle change too large".

The neato Lidar ranges from 0.15m to 6m. I had tested it and it has some invalid data, anyway, I think it should survive with that.

I have no knowledge of SLAM. It seems I am just looking for lucky as I go around the code blindly. Looking forward your help.

Thanks.

Tao Wang

edit retag flag offensive close merge delete

2 Answers

Sort by ยป oldest newest most voted
0

answered 2017-01-17 12:50:18 -0500

billy gravatar image

I have had experience with Neato lidar dropping bytes if it is spinning too quickly. More to the point, if it is not spinning smoothly or too quickly. It uses 115200 baud on the serial port output, and at 5Hz spin rate it has virtually no extra bandwidth. If spinning at 5Hz but not spinning smoothly, there will be places in the rotation that it is actually rotating too quickly for the output to keep up...so you lose bytes, and the data stream get corrupted. This may part of the issue.

I corrected this initially by doing error checking on the data stream, but eventually had to just slow it down.

Try it again with the Neato rotation slowed down, or with a different RPM controller. If you have a way to inspect the data stream, you should try that as well to see if anything is missing.

How are you controlling the spin rate?

edit flag offensive delete link more

Comments

Hello Billy, there is tool to set the speed with the Teensyduino controller. I had ever change it to 200rpm, but it makes it worse. Here is the link to the tool: https://www.getsurreal.com/products/x...

wt70707 gravatar image wt70707  ( 2017-01-17 13:37:10 -0500 )edit

We also consider to inspect the data stream, but from the test, the dropping bytes can be anywhere, so I can't just discard "single" data. And for each rotation of 360 degrees, all exist "bad data", so I can't discard the whole 360 points of each rotation also.

wt70707 gravatar image wt70707  ( 2017-01-17 13:38:22 -0500 )edit

If the lidar isn't working then it's hard to help with the mapping. Can you post one revolution of the data stream using HEX or DEC from the input of the UART. Preferably with a space between packets. Each packet starts with 'FA' or 250 and is 22 bytes long.

Moderators: I know. We're off topic.

billy gravatar image billy  ( 2017-01-17 20:34:46 -0500 )edit

I put two column of data in the answer: one is 4hz(240rpm) and one is 5hz(300rpm). The format for each column is: A,{Angle},{Distance in mm},{Signal Strength}. I got it using Arduino tools.

wt70707 gravatar image wt70707  ( 2017-01-18 09:24:30 -0500 )edit

did you solve this? @wt70707

fyi gravatar image fyi  ( 2019-05-22 07:55:59 -0500 )edit
0

answered 2017-01-18 09:32:36 -0500

wt70707 gravatar image

Two data column: 4hz x 5hz

Each column data format: A,{Angle},{Distance in mm},{Signal Strength}

0: 442 (481) x 0: 442 (490)
1: 441 (568) x 1: 441 (605)
2: 439 (414) x 2: 0 (605)
3: 433 (158) x 3: 433 (107)
4: 440 (1038) x 4: 440 (1020)
5: 439 (1040) x 5: 440 (1117)
6: 439 (1109) x 6: 439 (1041)
7: 439 (984) x 7: 437 (172)
8: 436 (346) x 8: 440 (803)
9: 440 (740) x 9: 440 (750)
10: 441 (625) x 10: 441 (627)
11: 441 (488) x 11: 441 (479)
12: 442 (460) x 12: 442 (478)
13: 443 (437) x 13: 443 (449)
14: 445 (342) x 14: 445 (336)
15: 446 (404) x 15: 446 (387)
16: 447 (278) x 16: 447 (272)
17: 449 (311) x 17: 449 (292)
18: 450 (289) x 18: 450 (284)
19: 452 (265) x 19: 452 (268)
20: 454 (252) x 20: 454 (241)
21: 456 (62) x 21: 455 (72)
22: 450 (328) x 22: 451 (324)
23: 453 (355) x 23: 453 (359)
24: 455 (316) x 24: 455 (333)
25: 458 (251) x 25: 458 (252)
26: 461 (262) x 26: 461 (253)
27: 463 (199) x 27: 464 (197)
28: 466 (106) x 28: 466 (103)
29: 2269 (7) x 29: 2280 (7)
30: 0 (0) x 30: 0 (0)
31: 973 (58) x 31: 0 (0)
32: 951 (52) x 32: 0 (0)
33: 921 (91) x 33: 1044 (6)
34: 903 (67) x 34: 1000 (70)
35: 890 (75) x 35: 970 (39)
36: 869 (80) x 36: 955 (33)
37: 863 (118) x 37: 910 (86)
38: 863 (125) x 38: 907 (107)
39: 863 (132) x 39: 904 (109)
40: 866 (123) x 40: 896 (106)
41: 870 (131) x 41: 887 (106)
42: 870 (121) x 42: 880 (124)
43: 864 (112) x 43: 885 (131)
44: 860 (134) x 44: 892 (112)
45: 857 (125) x 45: 899 (104)
46: 862 (119) x 46: 906 (110)
47: 871 (115) x 47: 912 (108)
48: 882 (99) x 48: 917 (105)
49: 924 (65) x 49: 927 (65)
50: 943 (61) x 50: 963 (68)
51: 1000 (33) x 51: 982 (67)
52: 0 (0) x 52: 987 (53)
53: 0 (0) x 53: 1069 (23)
54: 0 (0) x 54: 0 (0)
55: 0 (0) x 55: 0 (0)
56: 0 (0) x 56: 0 (0)
57: 0 (0) x 57: 0 (0)
58: 0 (0) x 58: 0 (0)
59: 0 (0) x 59: 0 (0)
60: 0 (0) x 60: 0 (0)
61: 0 (0) x 61: 0 (0)
62: 0 (0) x 62: 0 (0)
63: 0 (0) x 63: 0 (0)
64: 0 (0) x 64: 0 (0)
65: 2922 (7) x 65: 0 (0)
66: 0 (0) x 66: 0 (0)
67: 0 (0) x 67: 0 (0)
68: 0 (0) x 68: 0 (0 ... (more)

edit flag offensive delete link more

Comments

I have 5 LIDARs, and the data comes from the "worst" one. Here "worst" means more zero in distance. Zero distance is invalid date which is forced to zero in the ASCII output format.

wt70707 gravatar image wt70707  ( 2017-01-18 13:22:42 -0500 )edit

If the zeros are in the same place every scan, and they are added before you publish the data on the /scan topic, it's possible the mapping may still work. You have 5 Lidars, Does mapping work with the best one? And how big are the jumps when attempting to map?

billy gravatar image billy  ( 2017-01-19 21:09:40 -0500 )edit

The zeros will not be in the same place every scan. If the robot doesn't move, the "change" is small. For the lidars, the "better" ones may work "long" and well in some environment rich in features, but can't stay "stable" all the time. I am trying on your advice to incept the data somewhere.

wt70707 gravatar image wt70707  ( 2017-01-20 10:19:46 -0500 )edit

Question Tools

3 followers

Stats

Asked: 2017-01-17 10:43:17 -0500

Seen: 662 times

Last updated: Jan 18 '17