ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question

igd's profile - activity

2017-09-09 03:56:37 -0500 received badge  Student (source)
2017-03-11 09:18:32 -0500 received badge  Self-Learner (source)
2017-03-11 09:18:32 -0500 received badge  Teacher (source)
2016-11-02 09:09:59 -0500 received badge  Famous Question (source)
2016-11-02 05:22:01 -0500 received badge  Famous Question (source)
2016-09-19 07:25:35 -0500 received badge  Famous Question (source)
2016-07-21 10:03:36 -0500 received badge  Notable Question (source)
2016-07-19 18:39:37 -0500 received badge  Supporter (source)
2016-07-18 14:16:13 -0500 received badge  Popular Question (source)
2016-07-18 12:59:55 -0500 commented question Using move_base without map

I'm very confused as to how and why move_base is looking for a transform to map. I intend to use odom as my global frame and make no mention of map anywhere. Where is move_base even getting the name "map"?

2016-07-18 12:22:44 -0500 commented question Using move_base without map

I didn't have any as there was no mention of them in the navigation stack tutorial, but I added plugins: [] to my launch file and it doesn't seem to do anything. Strangely my error is different now even with my original configuration, it gets stuck waiting for the base_link->map transform

2016-07-15 17:20:05 -0500 asked a question Using move_base without map

Very similar to this question but it went unanswered http://answers.ros.org/question/15509...

I'm trying to use move_base to drive my robot and have no map because I don't need to to any obstacle avoidance. I have robot_localization publishing all the necessary odometry information. This should be fine according to the navigation tutorial but when I launch the move_base node it gets stuck at Requesting the map... and just hangs, is there anything else I should be setting to tell move_base not to look for one? My launch and yaml files are below. Any help figuring out where I'm going wrong would be greatly appreciated. Thanks!

costmap_common_params.yaml

    obstacle_range: 2.5
    raytrace_range: 3.0
    #footprint: [[x0, y0], [x1, y1], ... [xn, yn]]
    robot_radius: 0.1
    inflation_radius: 0.2`

global_costmap_params.yaml

global_costmap:
  global_frame: odom
  robot_base_frame: base_link
  update_frequency: 5.0
  static_map: false
  rolling_window: true
  width: 6.0
  height: 6.0
  resolution: 0.05

local_costmap_params.yaml

local_costmap:
  global_frame: odom
  robot_base_frame: base_link
  update_frequency: 5.0
  publish_frequency: 2.0
  static_map: false
  rolling_window: true
  width: 6.0
  height: 6.0
  resolution: 0.05

base_local_planner_params.yaml

TrajectoryPlannerROS:
  max_vel_x: 0.45
  min_vel_x: 0.1
  max_vel_theta: 1.0
  min_in_place_vel_theta: 0.4

  acc_lim_theta: 3.2
  acc_lim_x: 2.5
  acc_lim_y: 2.5

  holonomic_robot: false

move_base.launch

<launch>
  <master auto="start"/>
   <node pkg="move_base" type="move_base" respawn="false" name="move_base" output="screen">
    <rosparam file="/home/erle/ros_catkin_ws/src/erle_rover_2dnav/costmap_common_params.yaml" command="load" ns="global_costmap" />
    <rosparam file="/home/erle/ros_catkin_ws/src/erle_rover_2dnav/costmap_common_params.yaml" command="load" ns="local_costmap" />
    <rosparam file="/home/erle/ros_catkin_ws/src/erle_rover_2dnav/local_costmap_params.yaml" command="load" />
    <rosparam file="/home/erle/ros_catkin_ws/src/erle_rover_2dnav/global_costmap_params.yaml" command="load" />
    <rosparam file="/home/erle/ros_catkin_ws/src/erle_rover_2dnav/base_local_planner_params.yaml" command="load" />
  </node>
</launch>
2016-07-11 08:38:05 -0500 received badge  Notable Question (source)
2016-07-08 18:28:27 -0500 answered a question Issues using robot_localization with gps and imu

Turns out my issue was from still not setting my frames correctly. I made a static transform between gps (the frame_id of my /gps/fix messages) and base link, left the map_frame as map, and set odom_frame and world_frame to odom, now I'm getting reasonable results. My launch file is below in case it might be useful to anyone with similar issues <launch> <node pkg="tf2_ros" type="static_transform_publisher" name="bl_imu" args="0 0 0 0 0 0 1 base_link imu_link"/> <node pkg="tf2_ros" type="static_transform_publisher" name="bl_gps" args="0 0 0 0 0 0 1 base_link gps"/>

<!-- Start piksi driver, remap spp output to /gps/fix -->
<node pkg="swiftnav_piksi" type="piksi_node" name="piksi_node">
  <param name="port" value="/dev/ttyUSB0" />
  <remap from="fix" to="/gps/fix"/>
</node>

<!-- Start imu running, remap output to /imu/data -->
<node pkg="ros_erle_imu" type="imu_talker" name="imu_talker">
  <remap from="imu9250" to="/imu/data"/>
</node>

<!-- Start  -->
<node pkg="robot_localization" type="ekf_localization_node" name="ekf_localization" clear_params="true">
  <param name="frequency" value="30"/>
  <param name="sensor_timeout" value="0.1"/>
  <param name="two_d_mode" value="false"/>

  <param name="map_frame" value="map"/>            
  <param name="odom_frame" value="odom"/>
  <param name="base_link_frame" value="base_link"/>
  <param name="world_frame" value="odom"/>

  <param name="transform_time_offset" value="0.0"/>

  <param name="odom0" value="/odometry/gps"/>
  <param name="imu0" value="/imu/data"/>

  <rosparam param="odom0_config">[true, true, false,
                                  false, false, false,
                                  false, false, false,
                                  false, false, false,
                                  false, false, false]</rosparam>

  <rosparam param="imu0_config">[false, false, false,
                                 false,  false,  true,
                                 false, false, false,
                                 false,  false,  true,
                                 false,  false,  false]</rosparam>

  <param name="odom0_differential" value="false"/>
  <param name="imu0_differential" value="true"/>

  <param name="odom0_relative" value="false"/>
  <param name="imu0_relative" value="false"/>

  <param name="imu0_remove_gravitational_acceleration" value="true"/>
  <param name="print_diagnostics" value="true"/>

  <param name="odom0_queue_size" value="10"/>
  <param name="imu0_queue_size" value="10"/>

  <param name="debug"           value="false"/>
  <param name="debug_out_file"  value="debug_ekf_localization.txt"/>

  <rosparam param="process_noise_covariance">[0.05, 0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
                                          0.0, 0.05, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
                                          0.0, 0.0, 0.06, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
                                          0.0, 0.0, 0.0, 0.03, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
                                          0.0, 0.0, 0.0, 0.0, 0.03, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
                                          0.0, 0.0, 0.0, 0.0, 0.0, 0.06, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
                                          0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.025, 0.0 ...
(more)
2016-07-08 15:14:24 -0500 commented question Issues using robot_localization with gps and imu
2016-07-08 12:54:10 -0500 commented question Issues using robot_localization with gps and imu

Added the rostopic echo output for /gps/fix and /imu/data, I'll figure out how to share a bag file as well

EDIT- So the warnings were from incorrectly set frame_ids. If I delete the map frame and change odom and world to gps they're silenced. Position is still drifting a ton though.

2016-07-08 12:25:59 -0500 received badge  Enthusiast
2016-07-08 10:29:58 -0500 received badge  Popular Question (source)
2016-07-07 16:58:00 -0500 asked a question Issues using robot_localization with gps and imu

I only have two sensors, gps and and imu, that I am trying to integrate using robot_localization. I've created a launch file based on this question, pasted at the end.

There are a couple of issues. When I run the launch file I'm getting warnings about not having a base_link->map transform. The node handles the transform between odom and base link, do I need to create a transform from odom to map myself? There wasn't anything indicated in the linked answer so I assumed not, but I seem to be missing something. Warnings are pasted below

[ WARN] [1467926395.059514047]: Could not obtain base_link->map transform. Will not remove offset of navsat device from robot's origin.
[ WARN] [1467926397.126389602]: Could not obtain transform from map to base_link. Error was "map" passed to lookupTransform argument source_frame does not exist.

Second, the output of /odometry/gps is stuck at 0 for all values despite my gps data coming in fine, I would guess because of the map to base_link transform issue. Any help figuring out where I went wrong in my setup would be greatly appreciated.

EDIT- After rereading the robot_localization wiki I removed the map_frame line from the file as suggested but get the same results. Why is it still looking for a transform for the map_frame if I'm not using one?

<launch>
<node pkg="tf2_ros" type="static_transform_publisher" name="bl_imu" args="0 0 0 0 0 0 1 base_link imu_link" />

<!-- Start piksi driver, remap spp output to /gps/fix -->
<node pkg="swiftnav_piksi" type="piksi_node" name="piksi_node">
  <param name="port" value="/dev/ttyUSB0" />
  <remap from="fix" to="/gps/fix"/>
</node>

<!-- Start imu running, remap output to /imu/data -->
<node pkg="ros_erle_imu" type="imu_talker" name="imu_talker">
  <remap from="imu9250" to="/imu/data"/>
</node>

<!-- Start  -->
<node pkg="robot_localization" type="ekf_localization_node" name="ekf_localization" clear_params="true">
  <param name="frequency" value="30"/>
  <param name="sensor_timeout" value="0.1"/>
  <param name="two_d_mode" value="true"/>

  <param name="map_frame" value="map"/>
  <param name="odom_frame" value="odom"/>
  <param name="base_link_frame" value="base_link"/>
  <param name="world_frame" value="odom"/>

  <param name="transform_time_offset" value="0.0"/>

  <param name="odom0" value="/odometry/gps"/>
  <param name="imu0" value="/imu/data"/>

  <rosparam param="odom0_config">[true, true, false,
                                  false, false, false,
                                  false, false, false,
                                  false, false, false,
                                  false, false, false]</rosparam>

  <rosparam param="imu0_config">[false, false, false,
                                 true,  true,  true,
                                 false, false, false,
                                 true,  true,  true,
                                 true,  true,  true]</rosparam>

  <param name="odom0_differential" value="false"/>
  <param name="imu0_differential" value="false"/>

  <rosparam param="process_noise_covariance">[0.05, 0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
                                    0.0, 0.05, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
                                    0.0, 0.0, 0.06, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
                                    0 ...
(more)
2016-06-29 15:53:05 -0500 received badge  Notable Question (source)
2016-06-29 13:04:46 -0500 commented question rosparam unable to find yaml file

By the way using /home/<username>/ instead of ~ did work, if you'd like to post that as an answer I'll accept it. Although I would be interested in knowing what I'm doing wrong with the find arg. Thanks for the help.

2016-06-29 12:59:35 -0500 commented question rosparam unable to find yaml file

Good catch, the directories listed don't even exist. There is no src within my packages folder in the install_isolated. Is my workflow off? I've put my yaml and launch files in ros_catkin_ws/src/erle_rover_2dnav. Is that incorrect?

2016-06-28 17:59:02 -0500 received badge  Popular Question (source)
2016-06-28 16:33:02 -0500 received badge  Editor (source)
2016-06-28 16:17:29 -0500 commented question rosparam unable to find yaml file

It is the same as the linked problem. I originally had the find then tried hardcoding the file path because it was not working. It produced the same error. I've edited the original question with the original launch file and resulting error

2016-06-28 15:01:55 -0500 asked a question rosparam unable to find yaml file

I am following the navigation stack tutorial and an unable to launch the move_base node. rosparam is unable to find the yaml files with the costmap and planner configuration

error loading <rosparam> tag: 
file does not exist [~/ros_catkin_ws/src/erle_rover_2dnav/costmap_common_params.yaml]
 XML is <rosparam command="load" file="~/ros_catkin_ws/src/erle_rover_2dnav/costmap_common_params.yaml" ns="global_costmap"/>

The issue is the same as in this question, http://answers.ros.org/question/64615... but the suggested solution of deleting and remaking the file did not work for me. I have verified that the file is in the specified location and the code should be fine as it came directly from the navigation tutorial.

EDIT- Here's the launch file and resulting error code when using find

<launch>
  <master auto="start"/>

  <node pkg="move_base" type="move_base" respawn="false" name="move_base" output="screen">
    <rosparam file="$(find erle_rover_2dnav)/src/erle_rover_2dnav/costmap_common_params.yaml" command="load" ns="global_costmap" />
    <rosparam file="$(find erle_rover_2dnav)/costmap_common_params.yaml" command="load" ns="local_costmap" />
    <rosparam file="$(find erle_rover_2dnav)/local_costmap_params.yaml" command="load" />
    <rosparam file="$(find erle_rover_2dnav)/global_costmap_params.yaml" command="load" />
    <rosparam file="$(find erle_rover_2dnav)/base_local_planner_params.yaml" command="load" />
  </node>
</launch>



error loading <rosparam> tag: 
file does not exist [/home/erle/ros_catkin_ws/install_isolated/share/erle_rover_2dnav/src/erle_rover_2dnav/costmap_common_params.yaml]
XML is <rosparam command="load" file="$(find erle_rover_2dnav)/src/erle_rover_2dnav/costmap_common_params.yaml" ns="global_costmap"/>
The traceback for the exception was written to the log file