[M2M2 Mapper] Beginner Error - Slamware Mapper - worker name: ImuRawData

Hello forum!

Briefly in advance: I’m more of a beginner in ROS and Linux. (and German, so not a native English speaker)

I have the M2M2 Mapper from Slamtec and am trying to connect it to ROS Noetic in Linux 20.04 on a Virtualbox (Windows 11). Background: I want to export point clouds.

I was able to install ROS successfully and I’m making relatively good progress thanks to a course on Udemy. My problem now is that I can’t get the mapper to work properly. The connection via WLAN works, only the following error appears:
(I have already sent an email to Slamtec, but nothing has come back yet)

I would be very grateful if you could help me!
(and could explain it to me for complete beginners…)

TERMINAL:

lwr@lwrkinski:~/catkin_ws$ roslaunch slamware_ros_sdk slamware_ros_sdk_server_node.launch ip_address:=192.168.11.1
… logging to /home/lwr/.ros/log/3602f446-d413-11ee-b2ac-5f23716756fb/roslaunch-lwrkinski-3055.log
Checking log directory for disk usage. This may take a while.
Press Ctrl-C to interrupt
Done checking log file disk usage. Usage is <1GB.

started roslaunch server http://lwrkinski:40687/

SUMMARY

PARAMETERS

  • /rosdistro: noetic
  • /rosversion: 1.16.0
  • /slamware_ros_sdk_server_node/angle_compensate: True
  • /slamware_ros_sdk_server_node/cmd_vel: /cmd_vel
  • /slamware_ros_sdk_server_node/fixed_odom_map_tf: True
  • /slamware_ros_sdk_server_node/global_plan_path: global_plan_path
  • /slamware_ros_sdk_server_node/imu_raw_data_period: 0.05
  • /slamware_ros_sdk_server_node/ip_address: 192.168.11.1
  • /slamware_ros_sdk_server_node/laser_frame: /laser
  • /slamware_ros_sdk_server_node/map: map
  • /slamware_ros_sdk_server_node/map_frame: /slamware_map
  • /slamware_ros_sdk_server_node/map_metadata: map_metadata
  • /slamware_ros_sdk_server_node/map_pub_period: 0.2
  • /slamware_ros_sdk_server_node/move_base_simple/goal: /move_base_simple…
  • /slamware_ros_sdk_server_node/odom: odom
  • /slamware_ros_sdk_server_node/odom_frame: /odom
  • /slamware_ros_sdk_server_node/path_pub_period: 0.05
  • /slamware_ros_sdk_server_node/robot_frame: /base_link
  • /slamware_ros_sdk_server_node/robot_pose_pub_period: 0.05
  • /slamware_ros_sdk_server_node/scan: scan
  • /slamware_ros_sdk_server_node/scan_pub_period: 0.1

NODES
/
base2laser (tf/static_transform_publisher)
map2odom (tf/static_transform_publisher)
slamware_ros_sdk_server_node (slamware_ros_sdk/slamware_ros_sdk_server_node)

ROS_MASTER_URI=http://localhost:11311

process[slamware_ros_sdk_server_node-1]: started with pid [3069]
process[map2odom-2]: started with pid [3070]
process[base2laser-3]: started with pid [3071]
[ INFO] [1708889561.967986381]: SlamwareRosSdkServer, work thread begin.
[ INFO] [1708889561.971504973]: try to connect to 192.168.11.1:1445, tryCnt: 1.
[ INFO] [1708889561.984098150]: connect to 192.168.11.1:1445, OK, tryCnt: 1.
[ INFO] [1708889561.984250683]: reset all 14 workers on work loop begin.
[ INFO] [1708889562.039001738]: device_id: B298ABEDF4EAFE98D7EBF3EC24435030, hardware_version: 1, software_version: release-2.7.4-rc2-MAPPER-M2M1-20201207, sdp_version: 4.3.4-rtm (May 31 2022), sdk_version: 4.6.1-rc2.
[ INFO] [1708889562.076202296]: successed to reinit all workers on work loop begin.
[ INFO] [1708889562.113432467]: try to reinit explore map.
[ INFO] [1708889562.147937750]: explore map initialized, resolution: 0.050000, moreCellCntToExtend: 32.
[ INFO] [1708889562.148083297]: try to sync whole explore map.
[ INFO] [1708889562.189472595]: known area: ((-1.700000, -4.350000), (4.700000, 5.150000)), cell rect: ((-34, -87), (94, 103)), iOnceMaxCellCntWH: 2000.
[ INFO] [1708889562.199567587]: whole explore map synchronized.
[ERROR] [1708889562.388684976]: worker name: ImuRawData, exception: : UnsupportedCommandException: unsupported command.

Dear @LWR,

I trust you are well.

I would personally recommend always to try and dual boot your system with the native Ubuntu 20.04 as down the line in development it saves you alot of trouble from quirky networking issues and limitations, though in this case that might not be the issue.

Just incase, have you correctly setup a static LAN connection with the Lidar and aree you able to access its website. More often than not the settings to export to a specific ip can be configured from the lidars local website In your case the driver is connecting to 192.168.11.1 address and I assume your local connected address is 192.168.11.xxx something. Pleasse try accessing the .11.1 website and see if there is an option to export it to your pcs network

Also try pinging the ip via

ping 192.168.11.1

Another issue is that the repository you are currently using is either for the latest for the M2M2 mapper or is for an older version, please try looking at the repositories’ GitHub issues to see if there are existing issues and/or if you have to use an older version.

Hope this helps!

Regards,
S. O. Sohail

I think the problem is the difference in versions between the Slamware SDK and the firmware version on the M2M2. Version 2.8.2 of the SDK is sending commands to the M2M2 that don’t exist in the firmware of the device. Devices like the E1M2 have firmware version of 2.8.2 which matches the SDK. Whereas the M2M2 has firmware version 4.3.4, if you’ve upgraded the firmware (which I think combines lidar firmware 1.29 and CP0 firmware 2.64). A Chinese colleague has reached out to Slamtec about this disconnect, but in the meantime commenting out lines 269-272 in slamware_ros_sdk_server.cpp (with “//” before each line) will stop the error appearing if you re-run catkin_make, but you obviously won’t get the raw IMU data. Hope that helps. T