no map recived using slam gmapping
I am trying to do slam gmapping using a quadrotor uses px4 as an autopilot in gazebo simulator. I am trying to follow the tutorial shown in the following link:
http://wilselby.herokuapp.com/sample-...
I didn’t use a fake laser since my quad is equipped with a laser scan that publishes a topic called \quad\scan
I have the following launch file:
<?xml version="1.0"?>
<launch>
<arg name="paused" default="false"/>
<arg name="debug" default="false"/>
<arg name="gui" default="true" />
<arg name="headless" default="false"/>
<arg name="enable_logging" default="false"/>
<arg name="enable_ground_truth" default="true"/>
<arg name="ns" default="quad"/>
<arg name="log_file" default="$(arg ns)"/>
<arg name="gazebo_arg" default=""/>
<arg name="world" default="sar_world1.world"/>
<include file="$(find my_pack)/launch/world.launch" >
<arg name="paused" default="$(arg paused)"/>
<arg name="debug" default="$(arg debug)"/>
<arg name="gui" value="$(arg gui)" />
<arg name="headless" default="$(arg headless)"/>
</include>
<group ns="quad">
<include file="$(find rotors_gazebo)/launch/spawn_ardrone.launch">
<arg name="model" value="$(find rotors_description)/urdf/drone_sensors.gazebo" />
<arg name="enable_logging" value="$(arg enable_logging)" />
<arg name="enable_ground_truth" value="$(arg enable_ground_truth)" />
<arg name="log_file" value="$(arg log_file)"/>
<arg name="x" value="-3.0"/>
<arg name="y" value="-2.0"/>
<arg name="Y" value="3.14"/>
<arg name="name" value="quad"/>
</include>
<arg name="fcu_url" default="udp://localhost:14560@localhost:14565" />
<include file="$(find mavros)/launch/px4.launch">
<arg name="fcu_url" value="$(arg fcu_url)" />
</include>
</group>
<include file="$(find rotors_gazebo)/launch/ardrone.launch">
<arg name="ns" value="quad"/>
</include>
<!-- Fake laser -->
<!-- <node pkg="nodelet" type="nodelet" name="laserscan_nodelet_manager" args="manager"/>
<node pkg="nodelet" type="nodelet" name="depthimage_to_laserscan"
args="load depthimage_to_laserscan/DepthImageToLaserScanNodelet laserscan_nodelet_manager">
<param name="scan_height" value="10"/>
<param name="scan_time" value="0.033"/>
<param name="range_min" value="0.45"/>
<param name="range_max" value="10.0"/>
<param name="min_height" value=".10"/>
<param name="max_height" value="2.0"/>
<param name="output_frame_id" value="quad/depth_optical_frame"/>
<remap from="image" to="depth/image_raw"/>
<remap from="/scan" to="/sim_scan"/>
</node>
-->
<node name="slam_gmapping" pkg="gmapping" type="slam_gmapping">
<remap from="scan" to="uav_1/scan"/>
<param name="map_frame" value="map" />
<param name="odom_frame" value="world" />
<param name="base_frame_id" value="/quad/odometry_frame" />
</node>
<node pkg="tf" type="static_transform_publisher" name="link3_broadcaster" args="0 0 0 0 0 0 map world 500" />
<node pkg="rviz" type="rviz" name="rviz" args="-d $(find my_pack)/config/sim_rviz.rviz" />
</launch>
when I am trying to see the map in RVIZ, I added the map with topic map and it says that there is "no map received" ? I don't know where is the error ?
Does the slam_gmapping node need to subsrcibe /tf and /scan? (same as gmapping?) If yes, I wonder whether the <remap from="scan" to="uav_1/scan"/> will cause the problem due to the "/scan" topic doesn't exist, no to mention any data in it. Maybe you can check this.
@WeiShih When I did Slam Gmaping using the command line it worked but using it here in the launch file it did not work. So what exactly are the tags that I should use in order for this code to work ?
I saw that you are using namespace "quad" in your launch file. Pay extra attention to the topic/service name. Maybe you can try to run rosnode info /slam_gmapping to make sure it subscribes to correct scan topic.
Sorry I'm not going to run this launch file. But just like @DavidN said, you have to check whether the topic names are correct. Make sure the slam_gmapping gets all the data it wants. You can also use $rostopic echo <topic_name> to show if there is any data in the topic.
@David and @WeiShih I fixed the name space but the error was not from the namespace, I removed the Gmapping and I run it from the command line and it worked. the error was from the parameters names I will post the solution now