Mapping fails with CRSM SLAM and Turtlebot
Hi!!!
I'm trying to use CRSM SLAM with a Turtlebot in simulation, but when I run it in the console appears the next error: [ERROR] [1482804974.498150696, 10.510000000]: [CrsmSlam] Error in tf : "base_link" passed to lookupTransform argument target_frame does not exist.
. When I visualize the mapping in Rviz, the "Robot Model" and the "Laser Scan" menu appear in red. I changed the map topic to "slam/occupancyGridMap" and the map building begins but the Robot Model says "No transform from []
" in all the links, and the Laser Scan says "For frame [/camera_depth_frame]: No transform to fixed frame [map]. TF error: [Could not find a connection between 'map' and 'camera_depth_frame' because they are not part of the same tree. Tf has two or more unconnected trees.]
". I also changed the "Fixed Frame" from map
to base_footprint
and the Robot Model and the Laser Scan menu is OK but the "Map" menu goes with this error No transform from [map] to [base_footprint]
. What can I do? I don't understand the TF package yet. I hope that you can help me.
Thanks in advance!!!
---------------------------------------------------Edit-------------------------------------------------
I've changed the crsm_slam_parameters.yaml file like this:
#~ Topics for publishing/subscribing
occupancy_grid_publish_topic : /slam/occupancyGridMap
robot_trajectory_publish_topic : /robot_trajectory
trajectory_publisher_frame_id : map
laser_subscriber_topic : /scan
#~ Tf frames
world_frame : world
base_footprint_frame : base_footprint
base_frame : base_link
map_frame : map
laser_frame : camera_rgb_frame
#~ SLAM parameters
hill_climbing_disparity : 40
slam_container_size : 500
slam_occupancy_grid_dimentionality : 0.02
map_update_density : 40
map_update_obstacle_density : 3.0
scan_density_lower_boundary : 0.3
max_hill_climbing_iterations : 40000
desired_number_of_picked_rays : 40
#~ Publishing frequencies (Hz)
occupancy_grid_map_freq : 1.0
robot_pose_tf_freq : 5.0
trajectory_freq : 1.0
#~ Robot parameters
robot_width : 0.6
robot_length : 0.75
And I added a static publisher from map to odom to my launch file:
<!--Simulation Mode SLAM Launch -->
<launch>
<include file="$(find turtlebot_bringup)/launch/3dsensor.launch">
<arg name="rgb_processing" value="false" />
<arg name="depth_registration" value="false" />
<arg name="depth_processing" value="false" />
<arg name="scan_topic" value="/scan" />
</include>
<node name="crsm_slam_node" type="crsm_slam_node" pkg="crsm_slam" respawn="false" ns="crsm_slam" output="screen"/>
<rosparam file="$(find crsm_slam)/config/crsm_slam/crsm_slam_parameters.yaml" command="load" ns="crsm_slam"/>
<node pkg="tf" type="static_transform_publisher" name="world2map" args="0 0 0 0 0 0 world map 100" />
<node pkg="tf" type="static_transform_publisher" name="link0_broadcaster" args="0 0 0 0 0 0 1 map odom 100" />
</launch>
I don't have errors anymore, however, when I build the map the robot is quickly lost in Rviz because sometimes it appears in two places at the same time. For this reason the map generated has many errors. I hope that you can help me.
Thanks in advance!!!