Bird
Raised Fist0
ROSframework~5 mins

ROS 1 vs ROS 2 overview - Quick Revision & Key Differences

Choose your learning style10 modes available
Recall & Review
beginner
What is ROS 1?
ROS 1 is the first version of the Robot Operating System, a flexible framework for writing robot software. It provides tools and libraries to help build robot applications.
Click to reveal answer
intermediate
What major improvement does ROS 2 have over ROS 1?
ROS 2 improves on ROS 1 by supporting real-time communication, better security, and multi-robot systems. It uses DDS (Data Distribution Service) for communication, making it more reliable and scalable.
Click to reveal answer
beginner
How does ROS 1 handle communication between nodes?
ROS 1 uses a centralized master node to manage communication between nodes. This means all nodes register with the master to find each other.
Click to reveal answer
intermediate
What communication model does ROS 2 use?
ROS 2 uses a decentralized communication model based on DDS, which allows nodes to communicate directly without a central master. This improves robustness and flexibility.
Click to reveal answer
intermediate
Why is ROS 2 better for real-time applications?
ROS 2 supports real-time systems by allowing deterministic communication and better control over timing, which ROS 1 lacks due to its design and communication methods.
Click to reveal answer
Which version of ROS uses a centralized master node for communication?
AROS 1
BROS 2
CBoth ROS 1 and ROS 2
DNeither ROS 1 nor ROS 2
What communication technology does ROS 2 use?
ATCP/IP only
BHTTP
CDDS (Data Distribution Service)
DMQTT
Which ROS version is designed to better support real-time robotic applications?
AROS 1
BROS 2
CBoth equally
DNeither
Which ROS version is more suitable for multi-robot systems?
AROS 2
BROS 1
CBoth are equally suitable
DNeither
What is a key limitation of ROS 1 compared to ROS 2?
ALack of a graphical interface
BNo support for Python
CNo support for sensors
DCentralized communication master node
Explain the main differences between ROS 1 and ROS 2 communication models.
Think about how nodes find and talk to each other in each version.
You got /4 concepts.
    Describe why ROS 2 is better suited for real-time and multi-robot applications compared to ROS 1.
    Focus on timing and communication technology differences.
    You got /4 concepts.

      Practice

      (1/5)
      1. Which statement best describes the main difference between ROS 1 and ROS 2?
      easy
      A. ROS 1 is older and simpler, while ROS 2 supports real-time and better scalability.
      B. ROS 1 supports real-time better than ROS 2.
      C. ROS 2 is older and less flexible than ROS 1.
      D. ROS 1 and ROS 2 have the same features and design.

      Solution

      1. Step 1: Understand ROS 1 characteristics

        ROS 1 is the original version, simpler but limited in real-time and scalability.
      2. Step 2: Understand ROS 2 improvements

        ROS 2 was designed to fix these limits, adding real-time support and better scalability.
      3. Final Answer:

        ROS 1 is older and simpler, while ROS 2 supports real-time and better scalability. -> Option A
      4. Quick Check:

        ROS 1 simpler, ROS 2 modern and scalable = A [OK]
      Hint: Remember ROS 2 is the newer, more advanced version [OK]
      Common Mistakes:
      • Thinking ROS 2 is older than ROS 1
      • Believing ROS 1 has better real-time support
      • Assuming both versions have identical features
      2. Which of the following is a correct way to describe ROS 2's communication middleware?
      easy
      A. ROS 2 does not support middleware communication.
      B. ROS 2 uses DDS (Data Distribution Service) for flexible communication.
      C. ROS 2 uses TCP only for all communication.
      D. ROS 2 uses HTTP protocol for message passing.

      Solution

      1. Step 1: Identify ROS 2 communication method

        ROS 2 uses DDS, a middleware standard, for flexible and scalable communication.
      2. Step 2: Check other options

        TCP only or HTTP are not used as the main middleware in ROS 2.
      3. Final Answer:

        ROS 2 uses DDS (Data Distribution Service) for flexible communication. -> Option B
      4. Quick Check:

        ROS 2 middleware = DDS [OK]
      Hint: DDS is the key middleware in ROS 2 communication [OK]
      Common Mistakes:
      • Confusing TCP with DDS
      • Thinking ROS 2 lacks middleware
      • Assuming HTTP is used for ROS 2 messages
      3. Consider this code snippet in ROS 1 and ROS 2:
      node = Node('example_node')
      node.create_publisher(String, 'topic', 10)

      What is a key difference in how this code behaves in ROS 1 vs ROS 2?
      medium
      A. ROS 2 does not support publishers.
      B. ROS 1 uses create_publisher with QoS settings; ROS 2 ignores QoS.
      C. Both ROS 1 and ROS 2 use create_publisher identically.
      D. ROS 1 does not support create_publisher method; ROS 2 does.

      Solution

      1. Step 1: Check ROS 1 publisher creation

        ROS 1 uses rospy.Publisher or roscpp::Publisher, not create_publisher.
      2. Step 2: Check ROS 2 publisher creation

        ROS 2 uses create_publisher with QoS settings for flexible communication.
      3. Final Answer:

        ROS 1 does not support create_publisher method; ROS 2 does. -> Option D
      4. Quick Check:

        ROS 2 uses create_publisher, ROS 1 does not [OK]
      Hint: Remember ROS 2 introduced create_publisher method [OK]
      Common Mistakes:
      • Assuming ROS 1 has create_publisher method
      • Thinking QoS is ignored in ROS 2
      • Believing ROS 2 lacks publisher support
      4. You try to run a ROS 2 node but get an error about missing rclcpp::init. What is the likely cause?
      medium
      A. The error means your topic name is invalid.
      B. ROS 1 nodes require rclcpp::init but ROS 2 does not.
      C. You forgot to initialize the ROS 2 client library before creating nodes.
      D. You used ROS 1 syntax in a ROS 2 project.

      Solution

      1. Step 1: Understand ROS 2 initialization

        ROS 2 requires calling rclcpp::init before creating nodes to set up communication.
      2. Step 2: Check error cause

        Missing rclcpp::init causes runtime errors when nodes try to start.
      3. Final Answer:

        You forgot to initialize the ROS 2 client library before creating nodes. -> Option C
      4. Quick Check:

        Missing rclcpp::init means no ROS 2 initialization [OK]
      Hint: Always call rclcpp::init before node creation in ROS 2 [OK]
      Common Mistakes:
      • Confusing ROS 1 and ROS 2 initialization steps
      • Assuming topic name causes this error
      • Ignoring the need for client library init
      5. You want to build a robot system that requires real-time control and works on multiple platforms including Windows and Linux. Which ROS version should you choose and why?
      hard
      A. Choose ROS 2 because it supports real-time control and multi-platform compatibility.
      B. Choose ROS 1 because it is simpler and supports all platforms equally.
      C. Choose ROS 1 because ROS 2 does not support Windows.
      D. Choose ROS 2 but only if you use Linux, not Windows.

      Solution

      1. Step 1: Identify real-time and platform needs

        The project needs real-time control and multi-platform support including Windows and Linux.
      2. Step 2: Match requirements to ROS versions

        ROS 2 supports real-time features and runs on Windows and Linux, unlike ROS 1 which is limited.
      3. Final Answer:

        Choose ROS 2 because it supports real-time control and multi-platform compatibility. -> Option A
      4. Quick Check:

        Real-time + multi-platform = ROS 2 [OK]
      Hint: ROS 2 is designed for real-time and multi-platform use [OK]
      Common Mistakes:
      • Assuming ROS 1 supports Windows well
      • Thinking ROS 2 lacks real-time features
      • Believing ROS 2 only works on Linux
      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