Robot belonging to fleet is very far #158
Replies: 2 comments 4 replies
-
Hello! 👋 Setting up the transforms between the fleets and RMF can be tricky! It looks like it's very close to working. There are lots of ways to proceed, but in this case, I would suggest to use the robot-generated map image as the base floorplan image in the Levels tab, and set its resolution to 0.05 using the "Edit..." button on the levels tab. I assume it's a 5cm per grid cell, according to the SLAM system. Since there isn't an architectural drawing available, I think it might just be adding extra complexity and potential confusion to also be adding the SLAM-generated map as a layer image. You can just delete the layer in the Once you have defined the robot-generated floorplan resolution as 0.05 meters per pixel, you should be able to delete the pink measurement edge. This will force the map to remain at 0.05 meters per pixel, as defined in the "Edit..." box of the layer in the layers table. I think the generator should be able to use the floorplan's manually-defined resolution to generate the navigation graph, but if there are build errors, just let us know. Using robot-generated maps when architectural-drawing floorplan images are not available is definitely a use case we'd like to support. Once you have a navigation graph that is generated in the exact coordinate frame of the robot-generated map, this should make it easier to define the transforms for FreeFleet. One common point of confusion is that it's important to check the YAML file that is being launched by your robot's nav stack. Some SLAM stacks in ROS will generate a map YAML file with (0, 0) as the corner of the map, others will define (0, 0) as the center of the image, and others will have "expanded" the map as the robot wandered around during data-collection, so the origin may be offset. Specifically, it will be a small YAML file as defined here: http://wiki.ros.org/map_server#YAML_format I'd suggest using (0, 0, 0) as the origin in that YAML file, and ensuring that the map resolution agrees with the SLAM configuration and what was defined in Traffic Editor. 0.05 meters/pixel is a common value. Then everything will hopefully line up between the ROS nav stack coordinates and the RMF coordinate system if the FreeFleet transform translation is (0, 0) and the transform scale is set to 1.0. However, it may be necessary to have a |
Beta Was this translation helpful? Give feedback.
-
Thanks for your patience as we brainstorm the best approach for this type of situation, where a reference floorplan drawing is not available. There is a "Cartesian Meters" mode that can be used in traffic-editor and the building generator. You just set Previously in Anyway, I think it's worth seeing if using cartesian-meters mode in traffic-editor and the building / nav-graph generator might simplify things for this type of situation, where we have a robot-generated map but not a building floorplan. |
Beta Was this translation helpful? Give feedback.
-
Hi, I have configured my ROS1 melodic robot with
free_fleet
and using ROS2 galactic on laptop as ros2 server andRMF is build from source.
For creating building.yaml file i dont have the floor plan so i used the robot's scan map for both Levels and Layers. hope that's ok 😅
The pink marker indicating robot position comes inside desired location only when transform parameters in free_fleet server launch file are set to
start
's (x,y) with signs inverted (from above img).I also tried the transforms values in right side of layers tab but the pink marker was out of bound.
I think this error might be due to cordinate transform mismatch between RMF and robots coordinate. although i'm not sure how to go about fixing it. i hope you can help me.
Video: https://youtu.be/cUw_Z83D_Mk
Error msg:
Robot's rmf ws: https://github.com/KamalanathanN/testbot
Client launch file: https://gist.github.com/KamalanathanN/4b6ace6f42000e010822398b9288a0ce
Server launch file: https://gist.github.com/KamalanathanN/2f9b5385cc5ac9d73ea42ea8a900e2cb
Beta Was this translation helpful? Give feedback.
All reactions