0
$\begingroup$

Rosanswers logo

I have a problem with my Turtlebot and amcl, but I don't know exactly how to describe it. I am working on a project that uses programming elements to direct a turtlebot from a remote computer over an internet connection. I use rosbridge server to direct the turtlebot. I can, for instance, perform simple tele-op in this way. I also want to remotely start the gmapping and amcl functions. I can use gmapping to make a map, and then in amcl load the map and even track it on rviz. That is where I have my problem. I can give amcl my start position, and then when I give it the goal position it doesn't go to the new place.

I have gone through the turtlebot howto demos online. I can do all the three functions teleop, mapping, and amcl. In the demos in amcl I can set the start position, the goal position, and watch my turtlebot move from one to the other. I have used the launch file from amcl_demo.launch as the basis for my own launch file.

In my application there is a central launch file called 'app_manager.launch'. It starts the app manager application. I then launch the amcl launch file as a rapp. This way I can launch an amcl rapp, a gmapping rapp, or a teleop rapp. The topic names for the rapps are all converted to '/app_manager/application/name' where 'name' is the name of the original topic. This means I have to send all my messages to '/app_manager/application/name' not '/name'. The name of my catkin package is 'tele_presence'. (My python code in 'tele_presence' minimal.launch loads maps and saves maps to the mongodb instance...)

This is my 'app_manager.launch' file. It's part of my 'tele_presence' package.

<launch>

  <arg name="rapp_lists" default="tele_presence/tele_presence_apps.rapps"/> 
  <include file="$(find tele_presence)/launch/includes/app_manager_rocon.launch.xml">
    <arg name="rapp_lists" value="$(arg rapp_lists)" />
  </include>

  <include file="$(find rosbridge_server)/launch/rosbridge_websocket.launch"/>
</launch>

This is my 'navigate.launch' file. It's part of the 'navigate' rapp.

<launch>

  <include file="$(find turtlebot_bringup)/launch/minimal.launch"/>
  <include file="$(find tele_presence)/launch/minimal.launch"/>

  <include file="$(find turtlebot_bringup)/launch/3dsensor.launch">
    <arg name="rgb_processing" value="true" />
    <arg name="depth_registration" value="false" />
    <arg name="depth_processing" value="false" />
    
    <!-- We must specify an absolute topic name because if not it will be prefixed by "$(arg camera)".
Probably is a bug in the nodelet manager: https://github.com/ros/nodelet_core/issues/7 -->
    <arg name="scan_topic" value="/app_manager/application/scan" />
  </include>

  
  <!-- Map server -->
  <include file="$(find tele_presence)/launch/manage_map.launch"/>

  <arg name="initial_pose_x" default="0.0"/> <!-- Use 17.0 for willow's map in simulation -->
  <arg name="initial_pose_y" default="0.0"/> <!-- Use 17.0 for willow's map in simulation -->
  <arg name="initial_pose_a" default="0.0"/>
  <include file="$(find turtlebot_navigation)/launch/includes/amcl.launch.xml">
    <arg name="initial_pose_x" value="$(arg initial_pose_x)"/>
    <arg name="initial_pose_y" value="$(arg initial_pose_y)"/>
    <arg name="initial_pose_a" value="$(arg initial_pose_a)"/>
    <arg name="use_map_topic" value="true"/>

  </include>

  <include file="$(find turtlebot_navigation)/launch/includes/move_base.launch.xml">
    <arg name="odom_topic" value ="/app_manager/application/odom" />
  </include>

</launch>

The thing is, I can load a map that I created with the gmapping rapp into the amcl demo (the one with amcl_demo.launch from the howto wiki) and then direct the robot to navigate from a starting position to an ending position. Then I modify the amcl launch file and put it in my own rapp. There I can load the same map, and designate the same starting position (which seems to work) then when I designate a goal position (using '/app_manager/application/move_base_simple/goal') the robot doesn't move. If I track it on rviz the robot is shown, in the proper starting position with a little blue line that (it seems) connects to the end position. Blue line or no, the robot does not move. This is where my problem is.

As for error messages, there may be some, and I will look on the two computers I'm using and provide them here at my next opportunity. I can also provide the actual rapp file and/or the rapp interface file if it is requested. Thank you for reading. Any help would be appreciated...

EDIT 1: here's the only error messages I've been able to collect.

[ERROR] [1395855033.643043530]: You must specify at least three points for the robot footprint, reverting to previous footprint.
[ERROR] [1395855272.649858970]: Aborting because the robot appears to be oscillating over and over. Even after executing all recovery behaviors

it says it's tried all recovery behaviors, but it has not in fact moved.


Originally posted by david.c.liebman on ROS Answers with karma: 125 on 2014-03-25

Post score: 0


Original comments

Comment by jihoonl on 2014-03-25:
Is there any error message or log in terminal?

Comment by david.c.liebman on 2014-03-26:
I have edited the content of the question a little bit to include some error messages.

$\endgroup$

1 Answer 1

0
$\begingroup$

Rosanswers logo

In the navigate.launch file, this line points to a file called move_base.launch.xml I made a copy of the file and went through its contents.

<include file="$(find turtlebot_navigation)/launch/includes/move_base.launch.xml">
 ...
</include>

In that file there's a section that reads like this:

<remap from="cmd_vel" to="navigation_velocity_smoother/raw_cmd_vel"/>

I rewrote the line as this:

<remap from="/app_manager/application/cmd_vel" to="/app_manager/application/mobile_base/commands/velocity"/>

I then referenced the file from the navigate.launch file. This solved my problem.


Originally posted by david.c.liebman with karma: 125 on 2014-03-30

This answer was ACCEPTED on the original site

Post score: 0


Original comments

Comment by bit-pirate on 2014-03-30:
The remapping you changed is needed for the velocity smoother. With your change, it looks like you circumvent that, which is fine, if you don't use the velocity smoother. If you do however, then you should keep searching for the unconnected topic AKA the remapping, which goes wrong

Comment by david.c.liebman on 2014-03-31:
This is true. I believe the velocity smoother is no longer in the picture. I think I will leave it this way.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.