"rosmsg package <packagename>" does not show action messages from the package

asked 2020-12-03 12:11:45 -0500

joaobraun gravatar image

I am using Ubuntu 20.04.1 LTS focal and ROS noetic.

I've created and built an action file using catkin_make under the package called basics. The code using action server and client works fine, but when I was inspecting the messages to understand the details of ROS actions I encountered some problems. Turns out that when I type "rosmsg show basics/" and press tab, it doesn't find the action defined messages. Instead, it just autocompletes for another message that I've defined. The output from "rosmsg package basics" is shown below.

braun@braun-HP-Pavilion-Power-Laptop-15-cb0xx:~/catkin_ws$ rosmsg package basics 
basics/Complex

Which is the message that I've defined in another occasion. However, when I list the messages the output is this:

braun@braun-HP-Pavilion-Power-Laptop-15-cb0xx:~/catkin_ws$ rosmsg list | grep basics
basics/TimerAction
basics/TimerActionFeedback
basics/TimerActionGoal
basics/TimerActionResult
basics/TimerFeedback
basics/TimerGoal
basics/TimerResult

Furthermore, when I type "rosmsg packages" the "basics" package appears two times.

braun@braun-HP-Pavilion-Power-Laptop-15-cb0xx:~/catkin_ws$ rosmsg packages | grep basics
basics
basics

Finally, if I type just "rosmsg show TimerAction" or any other action message it works. However, only if I don't specify the package.

braun@braun-HP-Pavilion-Power-Laptop-15-cb0xx:~/catkin_ws$ rosmsg show TimerAction
[basics/TimerAction]:
basics/TimerActionGoal action_goal
  std_msgs/Header header
    uint32 seq
    time stamp
    string frame_id
  actionlib_msgs/GoalID goal_id
    time stamp
    string id
  basics/TimerGoal goal
    duration time_to_wait
basics/TimerActionResult action_result
  std_msgs/Header header
    uint32 seq
    time stamp
    string frame_id
  actionlib_msgs/GoalStatus status
    uint8 PENDING=0
    uint8 ACTIVE=1
    uint8 PREEMPTED=2
    uint8 SUCCEEDED=3
    uint8 ABORTED=4
    uint8 REJECTED=5
    uint8 PREEMPTING=6
    uint8 RECALLING=7
    uint8 RECALLED=8
    uint8 LOST=9
    actionlib_msgs/GoalID goal_id
      time stamp
      string id
    uint8 status
    string text
  basics/TimerResult result
    duration time_elapsed
    uint32 updates_sent
basics/TimerActionFeedback action_feedback
  std_msgs/Header header
    uint32 seq
    time stamp
    string frame_id
  actionlib_msgs/GoalStatus status
    uint8 PENDING=0
    uint8 ACTIVE=1
    uint8 PREEMPTED=2
    uint8 SUCCEEDED=3
    uint8 ABORTED=4
    uint8 REJECTED=5
    uint8 PREEMPTING=6
    uint8 RECALLING=7
    uint8 RECALLED=8
    uint8 LOST=9
    actionlib_msgs/GoalID goal_id
      time stamp
      string id
    uint8 status
    string text
  basics/TimerFeedback feedback
    duration time_elapsed
    duration time_remaining

I don't know why this is happening. It appears that there are two packages with the name basics, but I can assure that this is not the case.

edit retag flag offensive close merge delete