Comments (3)
Thanks for reporting. The bug is fixed in 745ae1e
Use current master to receive the fix.
from m-explore.
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):
I'm only using concerned with merging three of the robots' maps, and below are there produced maps:
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:
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.
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)
- map drifting HOT 2
- Build fails. [Error] : ‘xfeatures2d’ has not been declared` HOT 1
- Merge is not including all robots' maps HOT 1
- Shift in merged map origin even with static transforms HOT 1
- ERROR: cannot launch node of type [explore_lite/explore]: Cannot locate node of type [explore] in package [explore_lite].
- How to pause an exploration
- 0 Frontiers Found HOT 1
- Detailed working of the explore_lite package HOT 1
- Improper merging when robots have different orientations HOT 3
- Getting error while merging two agents in ROS Melodic
- Need help understanding your explore algorithm
- Merge with one robot
- Potential vulnerability: topic names from ROS parameters HOT 1
- Trying to build package in ROS melodic
- Melodic: Exploration Stopped HOT 1
- Waiting to connect to move_base server HOT 2
- Simulate communication delay mapping
- Merged map is not centered and does not overlap the single maps correctly HOT 3
- Exploration with two robots HOT 1
- Moving to the last marker suddenly stops
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from m-explore.