Can't call "/rtabmap/get_map" service

classic Classic list List threaded Threaded
8 messages Options
Reply | Threaded
Open this post in threaded view
|

Can't call "/rtabmap/get_map" service

zelda
Hello, I was working with rtabmap with your help.

For some reason, I re installed rtabmap on my WS.(Not turtlebot).
After that, when I try to download the map via RViz(download map checkbox), I get this error.

[ERROR] [1463488181.047780959]: MapCloudDisplay: Can't call "/rtabmap/get_map" service. Tip: if rtabmap node is not in rtabmap namespace, you can remap the service to "get_map" in the launch file like: <remap from="rtabmap/get_map" to="get_map"/>.

I struggled with this for days, but it isn't getting better. Would it be because of different rtabmap version?

I tried these so far.

1) I made a new map with the current setting, but same error occurs when I press the box.
2) I tried "$roslaunch rtabmap_ros demo_turtlebot_rviz.launch /rtabmap/get_map:=/get_map", but nothing changed.

Thank you for reading.
Reply | Threaded
Open this post in threaded view
|

Re: Can't call "/rtabmap/get_map" service

matlabbe
Administrator
Hi,

If you show rqt_graph, does "rtabmap" node is in rtabmap namespace? Maybe the node is not running (see terminal for errors).

You cannot remap the service name as argument of the launch. You should do that in the launch file:
<launch>
  <node name="rviz" pkg="rviz" type="rviz" args="-d $(find rtabmap_ros)/launch/config/turtlebot_navigation.rviz">
     <remap from="rtabmap/get_map" to="get_map"/>
  </node>
</launch>
 
You can also type this to show all available services (to track down where /get_map service is):

$ rosservice list


cheers
Reply | Threaded
Open this post in threaded view
|

Re: Can't call "/rtabmap/get_map" service

zelda
This post was updated on .
Here is the steps I followed.

On Turtlebot
$roslaunch turtlebot_bringup minimal.launch
$roslaunch rtabmap_ros demo_turtlebot_mapping.launch

Then on WS I did
$rqt_graph


Doesn't this mean "rtabmap" node is working and is in rtabmap namespace??
I also did rqt and I could also see rtabmap.

I did rosservice list on WS, and I could find /rtabmap/get_map.

I don't know the difference I made compared to past.
I did (on WS)
$sudo apt-get remove ros-indigo-rtabmap
$sudo apt-get install ros-indigo-rtabmap-ros

I also did(following here https://github.com/introlab/rtabmap_ros)
$ cd ~/catkin_ws
$ git clone https://github.com/introlab/rtabmap_ros.git src/rtabmap_ros
$ catkin_make

$ cd rtabmap
$ git pull origin master
$ cd build
$ make
$ make install

$ roscd rtabmap_ros
$ git pull origin master
$ cd ~/catkin_ws
$ catkin_make

If it changed the version of rtabmap at WS, (Didn't touch Turtlbot due to fear of being worse) would it be problem..?
I am also considering formatting WS.

Thank you..

(I also tried adding <remap from="rtabmap/get_map" to="get_map"/> to demo_turtlebot_rviz.launch file on WS, but didn't work)
Reply | Threaded
Open this post in threaded view
|

Re: Can't call "/rtabmap/get_map" service

matlabbe
Administrator
Hi,

It should have worked as /rtabmap/get_map service exists. If RVIZ cannot find it, it may because ROS_IP is not set on both machines (are you running RVIZ on a remote machine?).

Note that if you want to use rtabmap 0.11, the easiest way for now (until the binaries are released public) is to use the shadow-fixed repository of ROS: http://wiki.ros.org/ShadowRepository

cheers
Reply | Threaded
Open this post in threaded view
|

Re: Can't call "/rtabmap/get_map" service

zelda
This post was updated on .
I run the rtabmap_ros pkg demo_turtlebot_mapping.launch on Turtlebot, demo_turtlebot_rviz.launch on Remote PC(Workstation which = WS)

on WS, I could check


rosversion : 1.11.19
ROS_MASTER_URI : http://192.168.0.17:11311

on Turtlebot :
when log inning via ssh : started roslaunch server http://192.168.0.17:40017/ (when doing bringup, it's 40017 and when doing mapping, it is 50584. Both Turtlebot)

/rosversion: 1.11.16
ROS_MASTER_URI=http://localhost:11311
(doesn't rtabmap version appear when I start these rtabmap_ros pkg launch files??)

Also, what I wanted isn't getting newer rtabmap version. I am mentioning rtabmap version just because
I want to know if this get_map error is occuring due to the version difference between my Turtlebot and remote PC.
In the case upgrading both of two PCs to newer rtabmap version might help, then I am going to try.

I am really stuck with this issue.. I am a bit urgent because have not much time left for this demo. Sorry for keep uploading questions.


By the way, do you know meaning of [ERROR] (2016-05-27 02:13:15.781) VWDictionary.cpp:736::addWordRef() Not found word 14028?
(But above questions are more important to me... so you could neglect this)

Thank you.
Reply | Threaded
Open this post in threaded view
|

Re: Can't call "/rtabmap/get_map" service

matlabbe
Administrator
Hi,

If you are on Indigo, rtabmap binary packages (ros-indigo-rtabmap and ros-indigo-rtabmap-ros) have been just updated to latest version (0.11).

If your remote PC has IP 192.168.0.10, then setting IPs can be done like that:

Turtlebot:
$ export ROS_IP=192.168.0.17
$ roslaunch turtlebot_bringup minimal.launch
$ roslaunch rtabmap_ros demo_turtlebot_mapping.launch

Workstation:
$ export ROS_MASTER_URI=http://192.168.0.17:11311
$ export ROS_IP=192.168.0.10
$ roslaunch rtabmap_ros demo_turtlebot_rviz.launch

For the VWDictionary error, this means that the loaded map is somewhat corrupted. If you don't care about your previous map, you can safely delete "~/.ros/rtabmap.db" before launching the launch files or launch demo_turtlebot_mapping.launch like this:
$ roslaunch rtabmap_ros demo_turtlebot_mapping.launch args:="--delete_db_on_start"


cheers
Reply | Threaded
Open this post in threaded view
|

Re: Can't call "/rtabmap/get_map" service

zelda
This post was updated on .
Hello, thank you for reply.

Sadly, I think I had right network configuration(since it worked well before).
It were all same as you wrote.

So I formatted my computer and re installed it. (Workstation)
I updated apt-get and did $ sudo apt-get install ros-indigo-turtlebot-bringup ros-indigo-turtlebot-navigation ros-indigo-rtabmap-ros
as written here http://wiki.ros.org/rtabmap_ros/Tutorials/MappingAndNavigationOnTurtlebot

Unfortunately downloading map failure still occured.
So I also updated apt-get of Turtlebot and installed same things as above.

Now I get this error when beginning mapping.launch file at Turtlebot.
[rtabmap/rtabmap-19] process has died [pid 19049, exit code 127, cmd /opt/ros/indigo/lib/rtabmap_ros/rtabmap --delete_db_on_start scan:=/scan rgb/image:=/camera/rgb/image_rect_color depth/image:=/camera/depth_registered/image_raw rgb/camera_info:=/camera/rgb/camera_info grid_map:=/map __name:=rtabmap __log:=/home/ubuntu/.ros/log/d79dcaee-25cd-11e6-9157-742f68e0ff10/rtabmap-rtabmap-19.log].
log file: /home/ubuntu/.ros/log/d79dcaee-25cd-11e6-9157-742f68e0ff10/rtabmap-rtabmap-19*.log

I found same issue and your reply, but this case when I try to run $rtabmap at Turtlebot, it says
'cannot connect to X server'.
What should I do??
Reply | Threaded
Open this post in threaded view
|

Re: Can't call "/rtabmap/get_map" service

zelda
Never mind. It was problem of not installing sudo apt-get install ros-indigo-rtabmap on Turtlebot.
After that, mapping succeeded without failure.

Eventually, downloading map succeded.

Formatting Workstation and reinstallation && Turtlebot $sudo apt-get update && $sudo apt-get install ros-indigo-rtabmap-ros
$sudo apt-get ros-indigo-rtabmap

Helped me restore to the state that downloading map was able.

Thank you.