Coder Social home page Coder Social logo

Comments (3)

hrnr avatar hrnr commented on August 22, 2024

Thanks for reporting. The bug is fixed in 745ae1e

Use current master to receive the fix.

from m-explore.

ccimrie avatar ccimrie commented on August 22, 2024

Hi,

Thanks for getting back so quickly!

That's it working, though the merged map produced is a little off. I have 4 robots in a room in Gazebo (they're the 4 black dots in the bottom left room):

gazebo_setup

I'm only using concerned with merging three of the robots' maps, and below are there produced maps:

robot0
robot1
robot2

Using the XML file:

<launch>
  <group ns="/robot0/map_merge">
    <param name="init_pose_x" value="40.003349"/>
    <param name="init_pose_y" value="-20.011330"/>
    <param name="init_pose_z" value="0.180003"/>
    <param name="init_pose_yaw" value="-0.000910"/>
  </group>

  <group ns="/robot1/map_merge">
    <param name="init_pose_x" value="39.964791"/>
    <param name="init_pose_y" value="-22.008312"/>
    <param name="init_pose_z" value="0.180003"/>
    <param name="init_pose_yaw" value="-3.045119"/>
  </group>

  <group ns="/robot2/map_merge">
    <param name="init_pose_x" value="40.005176"/>
    <param name="init_pose_y" value="-22.017528"/>
    <param name="init_pose_z" value="0.180003"/>
    <param name="init_pose_yaw" value="-0.001420"/>
  </group>

    <group ns="map_merge">
      <node pkg="multirobot_map_merge" type="map_merge" respawn="false" name="map_merge" output="screen">
        <param name="robot_map_topic" value="map"/>
        <param name="robot_namespace" value=""/>
        <param name="merged_map_topic" value="map"/>
        <param name="world_frame" value="map"/>
        <param name="known_init_poses" value="true"/>
        <param name="merging_rate" value="0.5"/>
        <param name="discovery_rate" value="0.05"/>
        <param name="estimation_rate" value="0.1"/>
        <param name="estimation_confidence" value="1.0"/>
      </node>
    </group>
</launch>

however produces this output:

map_merge_output

Where two of the robots are merged together at the opposite side of the other robot as well far from their actual initial positions?

(Sorry for potentially too many pictures!)

from m-explore.

hrnr avatar hrnr commented on August 22, 2024

The initial positions you are giving seems weird. Are you sure they are correct? The merged map clearly contains one map rotated. That would be the map for robot1, since you have put rotation to its init_pose_yaw.

Why the headings are not the same? To me the roots seems to be aligned with the coordinate system and they seems to have the same heading.

If you are sure the initial positions are indeed correct, there might be a problem with map_merge handling of map origins. You might need to offset the origins manually.

I still need to investigate the issue with map origins, see #15. It would help if you could provide the maps in .yaml+.pgm map_server format.

As a workaround just adjust the initial positions you are giving until you get the correct merge. If you let me know what transformation was needed to initial positions to get the correct merge, I can then fix map_merge to do it automatically. I believe we just need to transform the initial positions by the map origins, but I might be wrong.

from m-explore.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.