On Mon, Jan 10, 2011 at 4:07 PM, Steven Bellens <span dir="ltr"><<a href="mailto:steven.bellens@mech.kuleuven.be">steven.bellens@mech.kuleuven.be</a>></span> wrote:<br><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
[...]<br>
<div class="im">>><br>
>> There are a few parameters in the costmap that you may want to look at.<br>
>> First, you'll want to make sure that your costmaps are tracking unknown<br>
>> space. Depending on whether you're using a voxel or costmap model for your<br>
>> costmap that may involve different parameters.<br>
>> See: <a href="http://www.ros.org/wiki/costmap_2d#Map_type_parameters" target="_blank">http://www.ros.org/wiki/costmap_2d#Map_type_parameters</a>. You'll also<br>
>> want to make sure that when maps come in from gmapping, the<br>
>> unknown_cost_value is set correctly to recognize unknown space as unknown,<br>
>> see: <a href="http://www.ros.org/wiki/costmap_2d#Map_management_parameters" target="_blank">http://www.ros.org/wiki/costmap_2d#Map_management_parameters</a>. After<br>
>> this, you may want to configure navfn, assuming you're using the default<br>
>> global planner to allow the robot to make plans through unknown space. You<br>
>> can do this by setting the allow_unknown parameter documented<br>
>> here: <a href="http://www.ros.org/wiki/navfn#Parameters" target="_blank">http://www.ros.org/wiki/navfn#Parameters</a>.<br>
>> Hope this helps and navigation 1.2.3 should be fine for what you want to do,<br>
>> Eitan<br>
><br>
> Thanks Eitan,<br>
><br>
> In the meantime, I managed to make some progress. The robot now finds<br>
> plans using a static map, but still rotates a lot and sometimes<br>
> doesn't get his final orientation right. When using a dynamic map, the<br>
> costmap always pops up with this origin out of map warning.<br>
> I'll try your suggestions on monday and let you know if it works out.<br>
<br>
</div>I managed to get the navigation working without an a priori map using<br>
gmapping. I added the costmap type (costmap) and configured the<br>
allow_unknown (true) parameter and the unknown_cost_value (-1). To get<br>
the planner to work however, I have to drive the robot around a little<br>
bit at the start, as the origin of the base link falls off the, at<br>
that moment known map. I guess this is how it is supposed to work?<br>
As soon as the robot is in the map, the planner is ok. I did notice<br>
that all unknown space is still filled in as 'obstacle', but to<br>
understand why this is, I'd like to know how the different<br>
configuration parameter files are structured.<br>
The navigation stacks suggests usage of 3 configuration files<br>
(costmap_common, global and local), beside there are other files for<br>
e.g. the navPlanner. I understand the naming scheme of the files, but<br>
can each costmap_2d parameter be configured in every file?<br>
- e.g. can I set the global map as static and the local map as<br>
dynamic? What about the other parameters?<br></blockquote><div><br></div><div>Yes, the global map can be set to static and the local map can be set to rolling_window. This is exactly how the setup tutorial does it (<a href="http://www.ros.org/wiki/navigation/Tutorials/RobotSetup">http://www.ros.org/wiki/navigation/Tutorials/RobotSetup</a>). You can also set any other parameters uniquely for each costmap. Having that costmap_common.yaml is really just a helper so you don't repeat any parameters. That file gets loaded up into each costmap's namespace separately and each costmap should only access parameters in its own namespace. If you do want to set a parameter separately for each costmap, you should remove it from costmap_common and then add it to each of the global and local costmap config files.</div>
<meta http-equiv="content-type" content="text/html; charset=utf-8"><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
- does the spacing at the start of a line matter?<br></blockquote><div><br></div><div>The files need to be valid YAML. I don't recall exactly what the rules on that are, but I do know that if you muck up your spaces/tabs and such the YAML parsers may start spewing errors at you.</div>
<div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
- sometimes the first line of the file states a name, e.g. 'global<br>
costmap' - what is this for?<br></blockquote><div><br></div><div>It's the namespace in which to load those parameters. So, following the examples in <a href="http://www.ros.org/wiki/navigation/Tutorials/RobotSetup">http://www.ros.org/wiki/navigation/Tutorials/RobotSetup</a> , all of the parameters in local_costmap_params.yaml will get loaded up into a namespace like "/move_base/local_costmap/param" because that file as "local_costmap:" at the top and all of the parameters are indented (it's basically a YAML dictionary).</div>
<div><br></div><div>The rosparam docs are a good place to look for more info on the YAML format for specifying parameters: <a href="http://www.ros.org/wiki/rosparam">http://www.ros.org/wiki/rosparam</a></div><div><br></div>
<div>- Eric</div><meta http-equiv="content-type" content="text/html; charset=utf-8"><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<br>
regards,<br>
<font color="#888888"><br>
Steven<br>
</font><div><div></div><div class="h5"><br>
><br>
> Steven<br>
><br>
>><br>
>>><br>
>>> Steven<br>
>>><br>
>>> ><br>
>>> > Steven<br>
>>> ><br>
>>> >><br>
>>> >>        brian.<br>
>>> >> _______________________________________________<br>
>>> >> ros-users mailing list<br>
>>> >> <a href="mailto:ros-users@code.ros.org">ros-users@code.ros.org</a><br>
>>> >> <a href="https://code.ros.org/mailman/listinfo/ros-users" target="_blank">https://code.ros.org/mailman/listinfo/ros-users</a><br>
>>> >><br>
>>> ><br>
>>> _______________________________________________<br>
>>> ros-users mailing list<br>
>>> <a href="mailto:ros-users@code.ros.org">ros-users@code.ros.org</a><br>
>>> <a href="https://code.ros.org/mailman/listinfo/ros-users" target="_blank">https://code.ros.org/mailman/listinfo/ros-users</a><br>
>><br>
>><br>
>> _______________________________________________<br>
>> ros-users mailing list<br>
>> <a href="mailto:ros-users@code.ros.org">ros-users@code.ros.org</a><br>
>> <a href="https://code.ros.org/mailman/listinfo/ros-users" target="_blank">https://code.ros.org/mailman/listinfo/ros-users</a><br>
>><br>
>><br>
><br>
_______________________________________________<br>
ros-users mailing list<br>
<a href="mailto:ros-users@code.ros.org">ros-users@code.ros.org</a><br>
<a href="https://code.ros.org/mailman/listinfo/ros-users" target="_blank">https://code.ros.org/mailman/listinfo/ros-users</a><br>
</div></div></blockquote></div><br>