DFKI-NI / mir_robot

ROS support for the MiR Robots. This is a community project to use the MiR Robots with ROS. It is not affiliated with Mobile Industrial Robots.
BSD 3-Clause "New" or "Revised" License
231 stars 157 forks source link

Draft: Galactic-Devel (Help wanted) #96

Open relffok opened 2 years ago

relffok commented 2 years ago

Hi there, I have started porting this package to ROS2 galactic a while ago. It was a lot of effort so far and there is still heaps to do. I wanted to get further in the development before opening a PR but because of the lack of time I am guessing it would be easiest to all work together (hopefully) on this one to move along. And finally be able to use ROS2 for all the MiR platforms.

It is still pretty rudimentary, but the simulation and driver work together with our MiR100 platform and it is great to be able to use ROS2 package once the driver connection is up and running.

Overview:

Some issues to point out:

To sum up, it is useable for a few tasks, but there is still lots of things to do and bugs to remove. Help wanted and appreciated!

mintar commented 2 years ago

Thanks a lot for all this work! I'll review it as soon as possible (I'm pretty swamped with work right now). Just a quick comment on one of your points:

Separate laserscans: The laserscans are the most important part in mapping, localization and mapping and we have two separate scans (front and back). In comparison to ROS1 the slam and nav nodes require the scan to be merged and not only be passed alternately to the same topic. So I needed to merge those (using another package I ported) from laserscan to pointcloud then merge the clouds and then convert it back to a single laserscan. At that time I could not find a better solution, if somebody else can point out anything, I'd be happy to review that.

This is really unfortunate. The problem with merging the laserscans like that is that you lose the information which frame a particular point was recorded from. At least in mapping and navigation there's some ray tracing going on between the sensor frame and the point (to determine free space), so that'll probably be a problem. Perhaps for pure localization it's going to work.

I remember having to do the same hack because gmapping in ROS1 also doesn't support multiple laser scanners, but it didn't produce good results, so I switched to hector_mapping instead (which supports multiple laser scanners).

relffok commented 2 years ago

Thanks a lot for all this work! I'll review it as soon as possible (I'm pretty swamped with work right now).

Thank you. I'm looking forward to get this one fully ported!

This is really unfortunate. The problem with merging the laserscans like that is that you lose the information which frame a particular point was recorded from. At least in mapping and navigation there's some ray tracing going on between the sensor frame and the point (to determine free space), so that'll probably be a problem. Perhaps for pure localization it's going to work.

I used it on MiR for mapping and navigation and also SLAM with a what I called virtual_laser_link (which I placed in the middle of the robot platform) and I didn't run into any issues. But maybe I am overlooking something here and you'll find something explicit to show me once you tested it.

mintar commented 1 year ago

@ros-pull-request-builder retest this please

mintar commented 1 year ago

That doesn't seem to have worked. Closing and reopening to trigger retesting.