Problem configuring Navigation stack
I am using navigation stack along with movebase and for localization, i am relying on robotlocalization instead of amcl. Also i am not using gmapping. Here is what i am doing. first roscore
on my PC, then roslaunch bringup.....
on my robot, then launching ekf_template.launch file
whose .yaml file is below. i am using two sources of odomtery.
map_frame: map
odom_frame: odom
base_link_frame: base_link
world_frame: odom
Then launch a map
through launch file without specifying any frame.Then launch navigation stack
and then move_base
. Now i want to configure the global and local cost map
values and also how the tf
will work. My environment is static
and and require no dynamic obstacles. But if use default values of move_base
, i am getting error. I am not very profound in ROS, so a little help/guide will be highly appreciated.I try to learn from wiki.ros
about how the parameters will act but still i am unable to use.
Update::
Errors and .yaml
files
My local cost map .yaml
file is
local_costmap:
global_frame: /map
robot_base_frame: base_link
update_frequency: 10.0
publish_frequency: 10.0
transform_tolerance: 0.5
static_map: true
rolling_window: true
width: 5
height: 5
resolution: 0.0
and my global costmap .yaml
file is
global_costmap:
global_frame: odom
robot_base_frame: base_link
update_frequency: 10.0
publish_frequency: 10.0
transform_tolerance: 0.5
static_map: true
Update:
So i guess i was missing state publisher in robotlocalization. I added this code in my ekftemplate file, and now i am not getting the above warning, instead i get this.
[ WARN] [1570390223.076345613]: Costmap2DROS transform timeout. Current time: 1570390223.0762, global_pose stamp: 1570211809.1178, tolerance: 0.5000
This is what i added.
initial_state: [1.5, 2.0, 0.0,
0.0, 0.0, 1.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0]
i have provided my tf tree in updated question. I want to move my robot using movebase while locating it by the information provided by `robotlocalization`. What should i do? Rosnode list:
/ekf_se
/map_server
/publisher_turtlebot_1028_1570209552521
/robot_state_publisher
/rosout
/rviz
/turtlebot3_core
/turtlebot3_diagnostics
Tf tree:
Any suggestions how should i make the frame selection
Asked by Ahmed1212 on 2019-10-04 11:52:59 UTC
Comments
Can you please update your question wit a copy and paste of the error?
Asked by jayess on 2019-10-04 12:59:15 UTC
i have updated my question. Can you please have a look and hopefully help me with some solution
Asked by Ahmed1212 on 2019-10-05 14:45:14 UTC
Hi.
will come up until the robot initial pose has been set. It's not serious unless you have set the initial pose and are still seeing it. Note that it is not a error. It is a warning.
You can search for many other questions here for the time stamp question.
If you haven't yet gone through the entire tutorial for the Navigation Stack, I strongly suggest you take the time to do so.
When I start up nav stack I get serveral warnings as different nodes get started and things get set up. If you have a specific question about something not working, it will be easier to help.
I suggest you add your TF tree to the question to allow us to have better idea of what you're working on.
Asked by billy on 2019-10-05 18:53:32 UTC
So i guess i was missing state publisher in robot_localization. I added this code in my ekf_template file, and now i am not getting the above warning, instead i get this.
This is what i added.
i have provided my tf tree in updated question. I want to move my robot using move_base while locating it by the information provided by robot_localization. What should i do? I am unable to provide my tf tree as it requires 5 points and i am new on here. But from odom, it goes to base_footprint (broadcaster: turtlebot3_core) and base_link(broad caster: ekf_se), and base_footprint ends there while base_link goes to wheels and base scan and all others
Asked by Ahmed1212 on 2019-10-06 14:44:11 UTC
@Ahmed1212 I upvoted your question so that you have enough points to upload a picture of your tf tree.
Asked by jayess on 2019-10-06 16:55:52 UTC
Thanks. I Have updated my question
Asked by Ahmed1212 on 2019-10-06 18:47:03 UTC
I dont see the map frame being generated at all. Also 0.0 resolution for the local costmap does not make any sense. To begin with, I would suggest using
odom
asglobal_frame
for both local and global costmaps and set some reasonable resolution (0.1-0.5) for them both. Also can you post your costmap common parameters where the plugins/layers are declaredAsked by pavel92 on 2019-10-07 02:47:04 UTC
I have changed my resolution to 0.5 and also odom as global frame in both,but still of no good. Below is my costmap common parameters. I am not declaring any plugins. How and what should i do?
Asked by Ahmed1212 on 2019-10-07 03:27:17 UTC
how do you launch the map?
Asked by pavel92 on 2019-10-07 03:30:46 UTC
add the static map layer in you commom costmap params:
Asked by pavel92 on 2019-10-07 03:33:25 UTC
One more thing, this is launch file of robot_localization. DO i need to put odom in here?
Asked by Ahmed1212 on 2019-10-07 03:47:18 UTC
Depends what you have in
ekf_template.yaml
? Does it contain the frame params and sensor params?But note that this is already diverging from the initial question. I would suggest opening a new question if you have localization related problem. Once you have a reasonable localization running, then I would go with the navigation part.
Asked by pavel92 on 2019-10-07 03:58:44 UTC
Yes i have localizing running. you can ignore this, this was just for a confirmation. My launch file for map is shared. Should i share my navigation and move_base launch files also?
Asked by Ahmed1212 on 2019-10-07 04:04:44 UTC
In addition to the previous stated things, try increasing the transform tolerance in costmap common params. For example:
Asked by pavel92 on 2019-10-08 05:18:28 UTC
Although I am not sure that it will help since I just noticed the difference in the timestamps
Asked by pavel92 on 2019-10-08 05:20:35 UTC
It looks like 3 of your transforms aren't getting published given most recent transform = 0. Are you using simulated time?
Asked by billy on 2019-10-09 01:38:53 UTC
Did you ever figure this out? I haven't gone over the comments, but if you don't have a global pose source from a package that does scan-to-map matching (like
amcl
), your pose estimate will drift without bound and become unusable for nav.Asked by Tom Moore on 2020-01-02 05:05:43 UTC