Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

turtlebot3 navigation costmap2DROS transform timeout and Could not get robot pose #383

Closed
velvetbleurose opened this issue Feb 1, 2019 · 13 comments
Assignees
Labels

Comments

@velvetbleurose
Copy link

ISSUE TEMPLATE ver. 0.2.0

Set-up

  • TurtleBot3: Waffle Pi

  • SBC: Raspberry Pi 3

  • OS installed in SBC: Raspbian

  • OS installed on remote PC: Ubuntu 16.04 LTS

  • SW version: v1.12.13

  • Firmware version: v1.2.3

  • Commands:
    [remote PC] roscore
    [turtlebot] roslaunch turtlebot3_bringup turtlebot3_robot.launch
    [remote PC] roslaunch turtlebot3_slam turtlebot3_slam.launch slam_methods:=gmapping
    [remote PC] rosrun map_server map_saver -f map
    [remote PC] kill slam
    [turtlebot] kill bringup
    [turtlebot] roslaunch turtlebot3_bringup turtlebot3_robot.launch
    [turtlebot] roslaunch turtlebot3_navigation turtlebot_turtlebot3_navigation.launch map=$HOME/map.yaml

  • Problem:
    I am trying to follow the navigation portion of the e-manual and have been running into a couple problems. After running the last command, I get the error shown below. The second error, "could not get robot pose, cancelling reconfiguration", comes and goes. I typically use the RC100 to move the bot as using the teleop keyboard doesn't work when trying to move the robot but works in simulation.

navigation output

I've tried redoing SLAM and trying navigation on the new map to see if maybe my map just isn't good but still get the same error.

I've looked at other issues related to mine and have tried the proposed solutions (reseting OpenCR, restarting roscore and bringup, checking if turtlebot and the remote PC are on the same time using ntpdate ntp.ubuntu.com). None of these worked.

I ran roswtf to see what was wrong and noticed that the following nodes were not connected.

roswtf output

I noticed in the related issues that there were mentions of topic frequencies (tf and odom) so I'm attaching tf_monitor output. When I ran rostopic hz /tf, the average frequencies ranged from 30Hz to 70Hz. It also says it's an unknown publisher?

tf_monitor output

I also get this issue sometimes when bringing up turtlebot3: [WARN] Failed to get param: timeout expired

I'm unsure of what is going wrong and would really appreciate any help in getting to the bottom of this! Thank you so much in advanced!

@kijongGil
Copy link
Contributor

Hi, @velvetbleurose :)
To move the turtlebot using RC100 and teleop is absolutely different. The RC100 only controls the DXL by directly connecting to openCR. Teleop is example package for ROS. So, If you can't move to turtlebot3 using teleop, It is not connect to turtlebot3 and PC. This mean that you can't use another package.
First, you have to move the turtlebot3 using teleop.

@velvetbleurose
Copy link
Author

Hi @kijongGil,

Thanks for the quick reply! I guess I moved along in the manual too early. So you’re saying that TurtleBot3 and the remote PC aren’t able to communicate properly?

Do you have any suggestions on why it wouldn’t work? Both systems are able to ping each other.

If I can’t use another package, why was I able to run the SLAM package?

So many questions.

@kijongGil
Copy link
Contributor

You can check connection turtlebot3 and remote PC by rostopic.

  1. Bring up your turtlebot3.
  2. Run teleop launch.
  3. Check topic information follow command.
    rostopic info /cmd_vel

If you connected, you can see publishers and subscribers nodes.

Actually, you can run the another package as SLAM, navigation. But, It can't move to turtlebot3.
In navigation, It use ROS message as /cmd_vel for moving turtlebot3. So, you can't work navigation.
But, In SLAM, It doesn't matter how to communicate for moving turtlebot3. Because It not use /cmd_vel for moving turtlebot3.

@velvetbleurose
Copy link
Author

velvetbleurose commented Feb 1, 2019

@kijongGil

I followed your instructions and this is my output for rostopic info /cmd_vel

Type: geometry_msgs/Twist

Publishers:
  * /turtlebot3_teleop_keyboard (http::/localhost:44901/)

Subscribers:
  * /turtlebot3_core (http://turtlebot:33739)

It looks like they are connected. When I input commands to move around (w for example), I get the following output from the teleop terminal, however, turtlebot doesn't move:

currently:        linear vel 0.01 angular vel 0.0
currently:        linear vel 0.02 angular vel 0.0

However, when I run roswtf I get the following error even though rqt_graph shows they are:

**ERROR** The following nodes should be connected but aren't:
* /turtlebot3_teleop_keyboard->/turtlebot3_core (/cmd_vel) 

@velvetbleurose
Copy link
Author

I found the problem with regards to teleoperation - it was my OS firewall settings. I had only allowed turtlebot to communicate on port 11311 instead of allowing all connections.

For this I ran sudo ufw allow from turtlebot_ip

However, my navigation problem still remains. I ran roswtf and get the same error outputs (move_base --> move_base not connected but should be) minus the cmd_vel error. I also still get the Costmap2DROS transform timeout error and I notice that tf_monitor still says it's from an unknown publisher.

@kijongGil
Copy link
Contributor

I'm sorry for late reply.
Did you type follow command in turtlebot3?
roslaunch turtlebot3_navigation turtlebot_turtlebot3_navigation.launch map=$HOME/map.yaml

This package has to run in remote PC.

@velvetbleurose
Copy link
Author

velvetbleurose commented Feb 11, 2019

Yes, I am running it from remote PC. Both problems still persist, shown below. I just ran these right now.

navigation error
roswtf output

I noticed "Sim period" and "ROS time". Could this be a timing issue? TurtleBot and Remote PC have the same time.

@kijongGil
Copy link
Contributor

I'm sorry for late reply.
Did you try to sync time? Refer to this.
Type the following command in turtlebot3 and RemotePC.

sudo ntpdate ntp.ubuntu.com

@velvetbleurose
Copy link
Author

@kijongGil

I have done the time sync numerous times.

I got navigation to finally work by increasing the transform tolerance parameter and TurtleBot is able to navigate well so I fixed that issue!

I still get the error that the two nodes that should be connected are not. Is that a major problem or if is it one I can ignore?

@kijongGil
Copy link
Contributor

Don't care, It is not problem.
Increasing the transform tolerance parameter is not good way. Because the transform tolerance is that how many different ros time btw Remote PC and turtlebot3. For example, the transform tolerance is 0.5, you get warning log when ros time btw Remote PC and turtlebot3 is over 0.5s.

So, I recommend return to the transform tolerance. and update ntpdate frequently.

Thanks.

@HPaper
Copy link
Member

HPaper commented Feb 27, 2019

This issue will be closed since there were no actions for a while. You can reopen this issue to show this issue to the users whenever. Thanks.

@RNANDEZ22
Copy link

did you solve it? I have exactly the same issue

@DeMischi
Copy link

For future reference:

Had the same problem, syncing the time on the Turtlebot as well as on the remote PC fixed the problem using this:

$ sudo apt-get install ntpdate
$ sudo ntpdate ntp.ubuntu.com

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

5 participants