0
$\begingroup$

Rosanswers logo

Hi,

I am trying to move from stage simulation to real robot. In simulation all things were working quite good, but when I replaced stage_ros node with the robot package, it failed. I want to use Lego Mindstorms NXT 2 robot. I simulated it in stage without laser, using only odometry for localisation (I used fake_localisation node). You can see the difference in graphs. Here is the simulation graph:

image description http://storage4.static.itmages.ru/i/15/0604/h_1433413787_6234683_150499e9fb.png

And here is the connection to real robot:

image description http://storage3.static.itmages.ru/i/15/0604/h_1433413753_7481985_0ef46da453.png

As you can see /map_server lost connection to move_base, there are no move_base/action_topics, also /base_pose_ground_truth became hidden, because it connects only to fake_localisation. Goal_giver is the same as listengoal node, it is for sending coordinates of goal to move_base.

Does anyone have some ideas how to fix that?

Update

I got some results when I launched the simulation together with my real robot package. The tf errors were eliminated, and the planning worked. The problem remained that move_base was thinking that robot in stage_ros was my real robot, and it was trying to move it. Of course it did not move, as it was not receiving cmd_vel messages, but the real robot was trying to implement move_base commands. I tried to solve this localization problem, but the only thing I could do is to retranslate messages from /gripper/cmd_vel to /cmd_vel. Here is the graph:

image description http://storage3.static.itmages.ru/i/15/0610/h_1433929612_1617180_90a4fb733a.png

The robot really seemed to be moving, but it works awful. I understand why, of course. I should remove simulation part and set up normal localization package. But now I do not know what package should I use. Fake_localization, as I read, is suitable only for simulation, and amcl needs laser for work. What package can I use for localization only with odometry?


Originally posted by Dio Eraclea on ROS Answers with karma: 23 on 2015-06-04

Post score: 0


Original comments

Comment by David Lu on 2015-06-04:
Can you check the output of the move_base node for hints? I'm guessing it's outputting error messages about tf frames.

Comment by Dio Eraclea on 2015-06-05:
Actually, there is no reaction at all. I am trying to send simple goal to /gripper/move_base_node and I have no reaction in the terminal. Though, I can see that the goal is really sent through rqt_graph

Comment by Dio Eraclea on 2015-06-05:
Sorry, I tried it in different way, by using several launch files and now it is really giving me errors. Something like Waiting on transform from gripper/base to map to become available before running costmap, tf error;

$\endgroup$

1 Answer 1

0
$\begingroup$

Rosanswers logo

You need to make sure your real robot is publishing the transform from /map to gripper/base. This is usually done by running localization which will publish the transform from /map to /odom.


Originally posted by David Lu with karma: 10932 on 2015-06-09

This answer was ACCEPTED on the original site

Post score: 0


Original comments

Comment by Dio Eraclea on 2015-06-10:
I have already understood that my problem is with localization. I figured out that if I run stage_ros and fake_localization with simulation settings, my navigation will run with the robot. The problem is that it thinks, that robot is not moving (if you will not move it manually in stage_ros).

Comment by Dio Eraclea on 2015-06-10:
As I understand, my mistake is trying to use fake_localization for real robot. This package can only be used for simulation. I know that for real robots, amcl package is used. But if I understand it correctly, amcl needs laser for work, and I do not have it. What should I use?

Comment by David Lu on 2015-06-10:
Do you have a real map that you're trying to move around in? Or do you just want to move relative to the odom frame?

Comment by Dio Eraclea on 2015-06-10:
Yes, I want my robot to move through a map.

Comment by David Lu on 2015-06-12:
So how do you want to stay localized if not amcl?

$\endgroup$

Your Answer

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