Bird
Raised Fist0
ROSframework~5 mins

Keyboard teleoperation (teleop_twist_keyboard) in ROS - Cheat Sheet & Quick Revision

Choose your learning style10 modes available

Start learning this pattern below

Jump into concepts and practice - no test required

or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Recall & Review
beginner
What is the purpose of the teleop_twist_keyboard package in ROS?
It allows you to control a robot by sending velocity commands using your keyboard. You can move the robot forward, backward, and turn it by pressing keys.
Click to reveal answer
beginner
Which ROS message type does teleop_twist_keyboard publish to control robot movement?
It publishes geometry_msgs/Twist messages, which contain linear and angular velocity data for the robot.
Click to reveal answer
beginner
How do you start the teleop_twist_keyboard node from the command line?
You run the command: rosrun teleop_twist_keyboard teleop_twist_keyboard.py in your terminal.
Click to reveal answer
beginner
What keys are commonly used to move the robot forward and backward in teleop_twist_keyboard?
The i key moves the robot forward, and the k key moves it backward.
Click to reveal answer
beginner
Why is it important to have a terminal window focused when using teleop_twist_keyboard?
Because the node reads keyboard input from the terminal, it must be active and focused to capture your key presses and send commands to the robot.
Click to reveal answer
Which message type does teleop_twist_keyboard publish to control robot velocity?
Asensor_msgs/Image
Bgeometry_msgs/Twist
Cstd_msgs/String
Dnav_msgs/Odometry
What command starts the teleop_twist_keyboard node?
Arosrun teleop_twist_keyboard teleop_twist_keyboard.py
Broslaunch teleop_twist_keyboard.launch
Crosnode start teleop_twist_keyboard
Drosmsg show teleop_twist_keyboard
Which key moves the robot forward in teleop_twist_keyboard?
Ak
Bj
Ci
Dl
Why must the terminal window be focused when using teleop_twist_keyboard?
ATo launch RViz visualization
BTo display robot camera feed
CTo run ROS core
DTo capture keyboard input for controlling the robot
What type of robot movement can you control with teleop_twist_keyboard?
ALinear and angular velocity (move and turn)
BOnly turning left and right
COnly stop and start
DOnly forward and backward
Explain how teleop_twist_keyboard allows you to control a robot using your keyboard.
Think about how key presses translate to robot speed and direction.
You got /4 concepts.
    Describe the steps to start and use teleop_twist_keyboard to move a robot.
    Consider the command, keyboard focus, and key functions.
    You got /4 concepts.

      Practice

      (1/5)
      1. What is the main purpose of the teleop_twist_keyboard node in ROS?
      easy
      A. To control a robot using keyboard keys
      B. To visualize robot sensor data
      C. To simulate robot movements automatically
      D. To compile ROS packages

      Solution

      1. Step 1: Understand the node's function

        The teleop_twist_keyboard node allows manual control of a robot using keyboard inputs.
      2. Step 2: Compare options with the node's purpose

        Only To control a robot using keyboard keys describes controlling a robot with keyboard keys, which matches the node's purpose.
      3. Final Answer:

        To control a robot using keyboard keys -> Option A
      4. Quick Check:

        Keyboard control = A [OK]
      Hint: Remember: teleop means tele-operation via keyboard [OK]
      Common Mistakes:
      • Confusing teleop with simulation or visualization
      • Thinking it compiles code
      • Assuming it runs robot automatically
      2. Which command correctly runs the teleop_twist_keyboard node in ROS 2?
      easy
      A. ros run teleop_twist_keyboard teleop_twist_keyboard
      B. ros2 launch teleop_twist_keyboard teleop_twist_keyboard.launch
      C. ros2 run teleop_twist_keyboard teleop_twist_keyboard
      D. ros2 start teleop_twist_keyboard

      Solution

      1. Step 1: Identify the correct ROS 2 run syntax

        In ROS 2, the command to run a node is ros2 run <package> <executable>.
      2. Step 2: Match the command to teleop_twist_keyboard

        ros2 run teleop_twist_keyboard teleop_twist_keyboard uses the correct syntax and package/executable names.
      3. Final Answer:

        ros2 run teleop_twist_keyboard teleop_twist_keyboard -> Option C
      4. Quick Check:

        ros2 run + package + executable = B [OK]
      Hint: Use 'ros2 run' for running nodes in ROS 2 [OK]
      Common Mistakes:
      • Using 'ros' instead of 'ros2'
      • Using 'launch' instead of 'run' for this node
      • Typing 'start' which is not a ROS command
      3. Given the following keys pressed in teleop_twist_keyboard: i, j, k, what is the expected robot movement sequence?
      medium
      A. Turn left, move forward, stop
      B. Move backward, turn right, stop
      C. Stop, move forward, turn right
      D. Move forward, turn left, move backward

      Solution

      1. Step 1: Recall key functions in teleop_twist_keyboard

        Key 'i' moves robot forward, 'j' turns left, 'k' moves backward.
      2. Step 2: Match keys to movements in sequence

        Pressing 'i' then 'j' then 'k' results in moving forward, turning left, then moving backward.
      3. Final Answer:

        Move forward, turn left, move backward -> Option D
      4. Quick Check:

        i = forward, j = left, k = backward [OK]
      Hint: Remember i=forward, j=left, k=backward keys [OK]
      Common Mistakes:
      • Mixing up 'j' and 'l' keys for turning
      • Assuming 'k' stops movement
      • Confusing forward and backward keys
      4. You run ros2 run teleop_twist_keyboard teleop_twist_keyboard but pressing keys does not move the robot. What is the most likely cause?
      medium
      A. The robot is not connected or not receiving velocity commands
      B. The keyboard keys are incorrect; use arrow keys instead
      C. The teleop_twist_keyboard node must be launched with a launch file
      D. ROS 2 is not installed properly

      Solution

      1. Step 1: Check common reasons for no robot movement

        If keys are pressed but robot doesn't move, often the robot is not connected or not subscribed to velocity commands.
      2. Step 2: Evaluate other options

        Keyboard keys are correct as per documentation; launch file is not required; ROS 2 installation issues would prevent node running.
      3. Final Answer:

        The robot is not connected or not receiving velocity commands -> Option A
      4. Quick Check:

        No movement = no connection [OK]
      Hint: Check robot connection before blaming keys or launch files [OK]
      Common Mistakes:
      • Assuming arrow keys must be used
      • Thinking launch file is mandatory
      • Blaming ROS 2 install without checking connection
      5. You want to increase the robot's forward speed using teleop_twist_keyboard. Which method correctly achieves this?
      hard
      A. Press 'i' key twice quickly to double speed
      B. Press 'w' key to increase speed while running teleop_twist_keyboard
      C. Restart teleop_twist_keyboard with a higher speed parameter
      D. Edit the robot's URDF file to increase max speed

      Solution

      1. Step 1: Understand teleop_twist_keyboard speed control

        The node allows speed adjustment during runtime using 'w' and 'x' keys to increase or decrease linear speed.
      2. Step 2: Evaluate other options

        Editing URDF changes robot model, not teleop speed; restarting with parameters is possible but less direct; pressing 'i' twice does not increase speed.
      3. Final Answer:

        Press 'w' key to increase speed while running teleop_twist_keyboard -> Option B
      4. Quick Check:

        Use 'w' to increase speed live [OK]
      Hint: Use 'w' and 'x' keys to adjust speed live [OK]
      Common Mistakes:
      • Trying to speed up by pressing movement keys repeatedly
      • Editing URDF for speed instead of teleop parameters
      • Restarting node instead of adjusting speed live