Actions in ROS 2 Explained

Explore ROS 2 actions for handling long-running tasks with feedback, results, and goal control.
Blog>
actions-in-ros-2-explained
Last updated: 
June 29, 2025

Not every task in robotics is quick. Sometimes you need your robot to start moving toward a goal, but also check in along the way — think navigation, arm motion planning, or docking maneuvers. That’s where ROS 2 Actions shine.

What’s a ROS 2 Action?

An Action in ROS 2 is a communication interface used for long-running tasks that:

  • ⏳ Take time to complete
  • 🔁 Might need to be cancelled mid-execution
  • 📡 Benefit from real-time feedback

Actions are built on top of topics and services. They consist of:

  • 🎯 A goal sent from a client
  • 🔄 Periodic feedback from the server
  • ✅ A final result when the task is complete

🤖 Why Actions Matter in Isaac Sim

Isaac Sim often simulates complex robotic behaviors like:

  • 🦾 Moving a robotic arm to a target pose
  • 🚧 Navigating a mobile robot through obstacles
  • 🧠 Performing multi-step object manipulation

In these cases, a service wouldn’t work — it’s blocking, meaning it halts execution until a result is returned, and it offers no insight into task progress. A topic is too open-ended — it streams data continuously but doesn’t define task boundaries or report when something is finished.

But an Action? Perfect. 🏁
It allows you to initiate a task, receive feedback while it's running, and handle results or cancellations with precision — exactly what’s needed when simulating time-sensitive or feedback-critical behaviors in Isaac Sim.

🛠️ Example Use Cases in Isaac Sim

  • Arm Control: An Action client sends a goal pose. Isaac Sim's action server simulates trajectory execution, publishing joint feedback at each step.
  • Robot Navigation: Use nav2's action interface to command a robot to drive across a scene, with Isaac visualizing the path and reporting travel progress.
  • Pick-and-Place: Execute a manipulation sequence with feedback from the gripper or motion planner, adjusting dynamically if things go wrong.

Available Now

Book a demo and get early access. Free trial!

Email Address:
Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.
Email Address:
Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.