Bird
Raised Fist0
ROSframework~10 mins

Action definition (.action files) in ROS - Interactive Code Practice

Choose your learning style10 modes available
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to define the goal part of a ROS action file.

ROS
int32 [1]
---
# Result
bool success
---
# Feedback
string status
Drag options to blanks, or click blank then click option'
Afeedback
Bresult
Cgoal_position
Dtarget_position
Attempts:
3 left
💡 Hint
Common Mistakes
Using 'result' or 'feedback' in the goal section
Leaving out the variable name
2fill in blank
medium

Complete the code to define the result part of a ROS action file.

ROS
int32 target_position
---
bool [1]
---
# Feedback
string status
Drag options to blanks, or click blank then click option'
Adone
Bfinished
Ccomplete
Dsuccess
Attempts:
3 left
💡 Hint
Common Mistakes
Using 'done' or 'finished' which are less standard
Omitting the boolean type
3fill in blank
hard

Fix the error in the feedback part of this ROS action file.

ROS
int32 target_position
---
bool success
---
string [1]
Drag options to blanks, or click blank then click option'
Aresult
Bstatus
Cstate
Dgoal
Attempts:
3 left
💡 Hint
Common Mistakes
Using 'result' or 'goal' in feedback
Omitting the string type
4fill in blank
hard

Fill both blanks to complete a minimal ROS action file with goal and result.

ROS
[1] distance
---
[2] finished
---
# Feedback
string status
Drag options to blanks, or click blank then click option'
Aint32
Bbool
Attempts:
3 left
💡 Hint
Common Mistakes
Mixing types between goal and result
Using the wrong order of sections
5fill in blank
hard

Fill all three blanks to define a complete ROS action file with goal, result, and feedback.

ROS
[1] speed
---
[2] success
---
string [3]
Drag options to blanks, or click blank then click option'
Afloat32
Bbool
Cstatus
Dint32
Attempts:
3 left
💡 Hint
Common Mistakes
Using int32 instead of float32 for speed
Wrong names for feedback string

Practice

(1/5)
1. What is the main purpose of an .action file in ROS?
easy
A. To define goals, results, and feedback for long-running tasks
B. To list all the nodes in a ROS system
C. To configure robot sensors
D. To specify message types for topics

Solution

  1. Step 1: Understand the role of .action files

    .action files are designed to define the structure of actions, which include goals, feedback, and results for tasks that take time.
  2. Step 2: Compare with other ROS files

    Unlike message or service files, .action files specifically handle long-running tasks with progress updates.
  3. Final Answer:

    To define goals, results, and feedback for long-running tasks -> Option A
  4. Quick Check:

    Action files = goals + feedback + results [OK]
Hint: Remember: .action files split into goal, result, feedback [OK]
Common Mistakes:
  • Confusing .action files with .msg or .srv files
  • Thinking .action files configure hardware
  • Assuming .action files list nodes
2. Which of the following is the correct structure of a ROS .action file?
easy
A. goal fields --- feedback fields --- result fields
B. goal fields --- result fields --- feedback fields
C. result fields --- feedback fields --- goal fields
D. feedback fields --- goal fields --- result fields

Solution

  1. Step 1: Recall the .action file format

    The .action file has three parts separated by lines with three dashes (---): first goal, then result, then feedback.
  2. Step 2: Match the order

    The correct order is goal fields first, result fields second, and feedback fields last.
  3. Final Answer:

    goal fields --- result fields --- feedback fields -> Option B
  4. Quick Check:

    Order = goal, result, feedback [OK]
Hint: Remember order: Goal first, Result second, Feedback last [OK]
Common Mistakes:
  • Mixing up the order of feedback and result
  • Using only two sections instead of three
  • Forgetting the --- separators
3. Given this .action file snippet:
int32 goal_value
---
int32 result_value
---
float32 progress

What is the type of the feedback field?
medium
A. int32
B. bool
C. string
D. float32

Solution

  1. Step 1: Identify the feedback section

    The .action file is split by --- lines. The third section after the second --- is the feedback part.
  2. Step 2: Check the feedback field type

    The third section contains float32 progress, so the feedback field type is float32.
  3. Final Answer:

    float32 -> Option D
  4. Quick Check:

    Feedback type = float32 [OK]
Hint: Feedback is always after second --- line [OK]
Common Mistakes:
  • Confusing result and feedback sections
  • Choosing goal field type instead
  • Ignoring the --- separators
4. What is wrong with this .action file?
int32 goal_value
---
float32 feedback_value
---
int32 result_value
medium
A. Result section must come before feedback
B. The order of sections is correct; no error
C. Feedback section cannot have fields
D. Feedback section is in the wrong place

Solution

  1. Step 1: Check the order of sections

    The file has goal fields first, then feedback fields, then result fields, separated by --- lines.
  2. Step 2: Verify field types in each section

    Goal has int32, feedback has float32, result has int32. However, the correct order is goal, result, feedback.
  3. Final Answer:

    Result section must come before feedback -> Option A
  4. Quick Check:

    Correct order is goal, result, feedback [OK]
Hint: Check section order and field types carefully [OK]
Common Mistakes:
  • Thinking feedback must come last
  • Assuming feedback cannot have fields
  • Mixing up result and feedback order
5. You want to define an action for a robot to move to a position with feedback on distance left and a result indicating success. Which .action file snippet correctly defines this?
hard
A. float64 target_x float64 target_y --- bool success --- float64 distance_left
B. bool success --- float64 target_x float64 target_y --- float64 distance_left
C. float64 target_x float64 target_y --- float64 distance_left --- bool success
D. float64 distance_left --- float64 target_x float64 target_y --- bool success

Solution

  1. Step 1: Identify goal, feedback, and result roles

    The goal should specify the target position (target_x, target_y). Feedback should provide ongoing info (distance_left). Result should indicate success (bool success).
  2. Step 2: Match the correct order in the .action file

    The order is goal fields first, then feedback fields, then result fields. float64 target_x float64 target_y --- float64 distance_left --- bool success matches this order correctly.
  3. Final Answer:

    float64 target_x float64 target_y --- float64 distance_left --- bool success -> Option C
  4. Quick Check:

    Goal=target, Feedback=distance, Result=success [OK]
Hint: Goal first, feedback second, result last with correct fields [OK]
Common Mistakes:
  • Swapping feedback and result sections
  • Putting result fields in goal section
  • Mislabeling feedback as result
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