Bird
Raised Fist0
ROSframework~20 mins

LiDAR-based SLAM (gmapping, cartographer) in ROS - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
LiDAR SLAM Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ component_behavior
intermediate
2:00remaining
How does gmapping handle loop closure in LiDAR-based SLAM?
In gmapping, what is the primary method used to detect and correct loop closures during mapping?
ABy matching current laser scans with previously stored scans using a particle filter to update the map.
BBy using GPS data to reset the robot's position when a loop is detected.
CBy relying on odometry data alone to detect when the robot returns to a previous location.
DBy manually inputting loop closure points during the mapping process.
Attempts:
2 left
💡 Hint
Think about how gmapping uses sensor data to recognize places.
📝 Syntax
intermediate
2:00remaining
Identify the correct ROS launch command to start Cartographer with a LiDAR sensor
Which of the following commands correctly launches Cartographer with a LiDAR sensor configuration in ROS?
Aroslaunch cartographer_ros cartographer.launch lidar:=true
Brosrun cartographer_ros cartographer_lidar_node
Croslaunch cartographer_ros demo_lidar.launch
Droslaunch cartographer_ros start_lidar.launch
Attempts:
2 left
💡 Hint
Look for the standard demo launch file name in Cartographer packages.
❓ state_output
advanced
2:00remaining
What is the expected output topic from gmapping after successful SLAM?
After running gmapping successfully, which ROS topic will publish the updated map data?
A/scan
B/map
C/odom
D/tf
Attempts:
2 left
💡 Hint
The map topic contains the occupancy grid map.
🔧 Debug
advanced
2:00remaining
Why does Cartographer fail to build a map when odometry data is missing?
You notice Cartographer is not building a map and the robot's position drifts heavily. What is the most likely cause?
ACartographer requires odometry data to constrain pose estimation; without it, localization drifts.
BCartographer only works with GPS data, so missing odometry is irrelevant.
CCartographer automatically generates odometry data internally, so missing input is not a problem.
DThe LiDAR sensor must be disabled for Cartographer to build a map without odometry.
Attempts:
2 left
💡 Hint
Consider how Cartographer estimates the robot's position over time.
🧠 Conceptual
expert
3:00remaining
Comparing gmapping and Cartographer: Which is better for large-scale environments and why?
Between gmapping and Cartographer, which SLAM framework is more suitable for large-scale, complex environments and what is the main reason?
AGmapping, because it uses a particle filter that scales better with large environments.
BCartographer, because it ignores loop closures to speed up mapping in large areas.
CGmapping, because it requires less computational power and is more accurate in large spaces.
DCartographer, because it uses pose graph optimization and loop closure detection for globally consistent maps.
Attempts:
2 left
💡 Hint
Think about how each framework handles map consistency over time.

Practice

(1/5)
1. What is the main purpose of LiDAR-based SLAM in ROS?
easy
A. To process camera images for object detection
B. To control robot motors directly
C. To help robots create maps and know their location using laser scans
D. To send commands to robot arms

Solution

  1. Step 1: Understand SLAM basics

    SLAM stands for Simultaneous Localization and Mapping, which means building a map and knowing the robot's position at the same time.
  2. Step 2: Identify LiDAR role

    LiDAR uses laser scans to sense the environment, which helps SLAM create accurate maps and localize the robot.
  3. Final Answer:

    To help robots create maps and know their location using laser scans -> Option C
  4. Quick Check:

    LiDAR-based SLAM = mapping + localization with lasers [OK]
Hint: SLAM = map + location using sensors like LiDAR [OK]
Common Mistakes:
  • Confusing SLAM with motor control
  • Thinking SLAM processes camera images only
  • Assuming SLAM sends commands to robot arms
2. Which ROS launch command correctly starts the gmapping SLAM node?
easy
A. rosstart gmapping slam.launch
B. roslaunch gmapping slam_gmapping.launch
C. rosrun gmapping slam_gmapping.py
D. roslaunch cartographer slam.launch

Solution

  1. Step 1: Recall ROS launch syntax

    ROS uses roslaunch to start nodes with launch files, specifying package and launch file name.
  2. Step 2: Match gmapping launch file

    The gmapping package provides slam_gmapping.launch to start the SLAM node.
  3. Final Answer:

    roslaunch gmapping slam_gmapping.launch -> Option B
  4. Quick Check:

    Use roslaunch + package + launch file [OK]
Hint: Use roslaunch with package and launch file name [OK]
Common Mistakes:
  • Using rosrun instead of roslaunch for launch files
  • Typing rosstart which is invalid
  • Confusing cartographer launch with gmapping
3. Given this ROS launch snippet for Cartographer:
<launch>
  <include file="$(find cartographer_ros)/launch/demo_backpack_2d.launch" />
</launch>
What will happen when you run this launch file?
medium
A. It launches a robot simulation without SLAM
B. It starts gmapping SLAM with a 3D map
C. It causes a syntax error due to missing parameters
D. It starts Cartographer SLAM with a 2D LiDAR backpack demo configuration

Solution

  1. Step 1: Understand the include tag

    The <include> tag loads another launch file from the cartographer_ros package.
  2. Step 2: Identify the included launch file

    demo_backpack_2d.launch is a Cartographer demo for 2D SLAM using a backpack LiDAR sensor.
  3. Final Answer:

    It starts Cartographer SLAM with a 2D LiDAR backpack demo configuration -> Option D
  4. Quick Check:

    Include demo_backpack_2d.launch = Cartographer 2D SLAM [OK]
Hint: Include demo_backpack_2d.launch means Cartographer 2D SLAM [OK]
Common Mistakes:
  • Confusing Cartographer with gmapping
  • Assuming missing parameters cause errors here
  • Thinking it launches simulation without SLAM
4. You try to run gmapping with this command:
roslaunch gmapping slam_gmapping.launch
But get an error: "Could not find node of type slam_gmapping in package gmapping". What is the likely cause?
medium
A. The gmapping package is not installed or sourced properly
B. You used rosrun instead of roslaunch
C. The launch file name is misspelled
D. Your LiDAR sensor is not connected

Solution

  1. Step 1: Analyze the error message

    The error says it cannot find the node type in the gmapping package, meaning the package or node is missing.
  2. Step 2: Check common causes

    This usually happens if the gmapping package is not installed or the ROS environment is not sourced to find it.
  3. Final Answer:

    The gmapping package is not installed or sourced properly -> Option A
  4. Quick Check:

    Missing package or source = node not found error [OK]
Hint: Check package installed and sourced if node not found error [OK]
Common Mistakes:
  • Assuming rosrun vs roslaunch causes this error
  • Thinking a typo in launch file name causes node type error
  • Blaming LiDAR connection for node not found
5. You want to create a 3D map using Cartographer with a LiDAR sensor on a robot. Which approach is best?
hard
A. Use Cartographer's 3D SLAM launch files and configure sensor topics properly
B. Use gmapping with default 2D settings and add a 3D camera
C. Run gmapping and Cartographer simultaneously for better accuracy
D. Use Cartographer's 2D demo launch files and convert output to 3D later

Solution

  1. Step 1: Understand SLAM capabilities

    Gmapping supports only 2D SLAM, so it cannot create 3D maps directly.
  2. Step 2: Choose Cartographer for 3D

    Cartographer supports 3D SLAM and has launch files designed for 3D mapping with LiDAR sensors.
  3. Step 3: Configure sensor topics

    Properly setting sensor topics in Cartographer launch files ensures correct data flow for 3D mapping.
  4. Final Answer:

    Use Cartographer's 3D SLAM launch files and configure sensor topics properly -> Option A
  5. Quick Check:

    3D map needs Cartographer 3D launch + sensor config [OK]
Hint: 3D mapping needs Cartographer 3D launch and sensor setup [OK]
Common Mistakes:
  • Trying to use gmapping for 3D maps
  • Running both SLAM systems at once
  • Using 2D demos and expecting 3D output
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard