Problem configuring Navigation stack

asked 2019-10-04 11:55:44 -0500

Ahmed1212 gravatar image

updated 2019-10-06 18:46:38 -0500

I am using navigation stack along with move_base and for localization, i am relying on robot_localization 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 robot_localization. I added this code in my ekf_template 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 move_base while locating it by the information provided by robot_localization. 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: image description

Any suggestions how should i make the frame selection

edit retag flag offensive close merge delete

Comments

i am getting error

Can you please update your question wit a copy and paste of the error?

jayess gravatar imagejayess ( 2019-10-04 12:59:15 -0500 )edit

i have updated my question. Can you please have a look and hopefully help me with some solution

Ahmed1212 gravatar imageAhmed1212 ( 2019-10-05 14:45:14 -0500 )edit

Hi.

[ WARN] [1570234277.210068930]: Could not get robot pose, cancelling reconfiguration

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.

billy gravatar imagebilly ( 2019-10-05 18:53:32 -0500 )edit

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.

[ 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 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 ...(more)

Ahmed1212 gravatar imageAhmed1212 ( 2019-10-06 14:44:11 -0500 )edit

@Ahmed1212 I upvoted your question so that you have enough points to upload a picture of your tf tree.

jayess gravatar imagejayess ( 2019-10-06 16:55:52 -0500 )edit

Thanks. I Have updated my question

Ahmed1212 gravatar imageAhmed1212 ( 2019-10-06 18:47:03 -0500 )edit

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 as global_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 declared

pavel92 gravatar imagepavel92 ( 2019-10-07 02:47:04 -0500 )edit

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?

obstacle_range: 0.5
raytrace_range: 0.5

footprint: [[-0.105, -0.105], [-0.105, 0.105], [0.041, 0.105], [0.041, -0.105]]
#robot_radius: 0.105

inflation_radius: 1.0
cost_scaling_factor: 3.0
Ahmed1212 gravatar imageAhmed1212 ( 2019-10-07 03:27:17 -0500 )edit