Skip to content

Commit

Permalink
mil_msgs: Migrate mil_msgs from ROS1 to ROS2
Browse files Browse the repository at this point in the history
  • Loading branch information
cbrxyz committed Dec 30, 2024
1 parent c995f71 commit 6b2d49f
Show file tree
Hide file tree
Showing 19 changed files with 236 additions and 0 deletions.
51 changes: 51 additions & 0 deletions src/mil_common/mil_msgs/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
cmake_minimum_required(VERSION 3.5)
project(mil_msgs)

# Default to C++17
if(NOT CMAKE_CXX_STANDARD)
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
endif()

find_package(ament_cmake REQUIRED)
find_package(rosidl_default_generators REQUIRED)
find_package(std_msgs REQUIRED)
find_package(action_msgs REQUIRED)
find_package(geometry_msgs REQUIRED)
find_package(sensor_msgs REQUIRED)

set(action_files
"action/MoveTo.action"
"action/BagOnline.action"
)

set(msg_files
"msg/DepthStamped.msg"
"msg/ObjectInImage.msg"
"msg/ObjectsInImage.msg"
"msg/PerceptionObject.msg"
"msg/PerceptionObjectArray.msg"
"msg/Point2D.msg"
"msg/PoseTwistStamped.msg"
"msg/PoseTwist.msg"
"msg/RangeStamped.msg"
"msg/VelocityMeasurements.msg"
"msg/VelocityMeasurement.msg"
)

set(srv_files
"srv/CameraToLidarTransform.srv"
"srv/ObjectDBQuery.srv"
"srv/SetGeometry.srv"
)

rosidl_generate_interfaces(${PROJECT_NAME}
${msg_files}
${srv_files}
DEPENDENCIES std_msgs action_msgs geometry_msgs sensor_msgs
ADD_LINTER_TESTS
)

ament_export_dependencies(rosidl_default_runtime)

ament_package()
25 changes: 25 additions & 0 deletions src/mil_common/mil_msgs/action/BagOnline.action
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
# Directory / filename of bag_name
# See examples below for what strings will produce what bags.
# <bag_package_path> is a ros param set when running online bagger node
# if param is not set, <bag_package_path> = $HOME/bags/<date> (ex: /home/bob/bags/2017-04-20)
# /home/example/2017/ -> /home/example/2017/2017-04-24-20:51:54.bag
# camera_tests/test1.bag -> <bag_package_path>/camera_tests/test1.bag
# my_lidar_bag -> <bag_package_path>/my_lidar_bag.bag
# sonar_tests/ -> <bag_package_path>/sonar_tests/2017-04-24-20:51:54.bag
string bag_name

# Space separated list of topics to bag. If empty string, all buffered topics will be bagged
string topics

# Time in seconds
float32 bag_time
---

bool success
string status # Contains error information if success is False
string filename # Full path to file where bag was written

---

# Proportion of messages that will be included in bag that have been written
float64 progress
14 changes: 14 additions & 0 deletions src/mil_common/mil_msgs/action/MoveTo.action
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
# goal. copies PoseTwistStamped.
std_msgs/Header header
mil_msgs/PoseTwist posetwist
float64 speed
bool uncoordinated # false goes in a straight line, true achieves some components before others
bool blind # true ignores waypoint validation, false will check for collisions
float64 linear_tolerance # distance from goal for result to be sent
float64 angular_tolerance
---
# result
string error # Returns waypoint error
bool success # true if successfully went to assigned waypoint
---
# feedback
4 changes: 4 additions & 0 deletions src/mil_common/mil_msgs/msg/DepthStamped.msg
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
std_msgs/Header header

# A depth in meters
float64 depth
17 changes: 17 additions & 0 deletions src/mil_common/mil_msgs/msg/ObjectInImage.msg
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
# Type of the object, like "buoy", "dock", or "human"
string name

# Points in an image of the object. It is to be interpreted as follows:
# len(points) == 0: Object is somewhere in image
# len(points) == 1: Center of object is at points[0]
# len(points) == 2: points[0] and points[1] are the upper left and bottom right corners of a bounding rectangle enclosing the object
# len(points) > 2: points are the vertices of a polygon around the object
mil_msgs/Point2D[] points

# Confidence that the object identified is correctly identified. It is to be interpreted as follows:
# -1: No confidence mechanism is in place, it is not clear how confident the classification is
# [0, 1.0]: The classification is this amount confident, with 0 being completely unsure and 1 being completely sure
float64 confidence

# Unspecified additional data associated with the object. May be used for things like color, variety, etc
string attributes
5 changes: 5 additions & 0 deletions src/mil_common/mil_msgs/msg/ObjectsInImage.msg
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# Header which should be identical to the header of the image these objects were observed in
std_msgs/Header header

# Array of objects simultaneously identified in the image
mil_msgs/ObjectInImage[] objects
26 changes: 26 additions & 0 deletions src/mil_common/mil_msgs/msg/PerceptionObject.msg
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
# Time stamp and frame of the object. All objects are in ENU frame.
std_msgs/Header header

# CURRENTLY UNUSED, see labeled_classification
string classification

# The classification of the object determined algorithmically or by a human.
string labeled_classification

# Pose of the object in ENU
geometry_msgs/Pose pose

# Size of the object, like markers, scale is applied first, then pose.
geometry_msgs/Vector3 scale

# The unique id of each object. It is a counter_id, so the later the object is found the
# higher the id will be.
uint32 id

# The confidence that this is an object of interest from 0-1
float32 confidence
# The confidence of the classification from 0-1
float32 classification_confidence

# Points in ENU frame that belong to the object
geometry_msgs/Point32[] points
1 change: 1 addition & 0 deletions src/mil_common/mil_msgs/msg/PerceptionObjectArray.msg
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
mil_msgs/PerceptionObject[] objects # Collection of all objects
2 changes: 2 additions & 0 deletions src/mil_common/mil_msgs/msg/Point2D.msg
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
float64 x
float64 y
3 changes: 3 additions & 0 deletions src/mil_common/mil_msgs/msg/PoseTwist.msg
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
geometry_msgs/Pose pose
geometry_msgs/Twist twist
geometry_msgs/Accel acceleration
3 changes: 3 additions & 0 deletions src/mil_common/mil_msgs/msg/PoseTwistStamped.msg
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# pose is in header.frame_id. twist is in frame defined by pose (ie. body)
std_msgs/Header header
PoseTwist posetwist
4 changes: 4 additions & 0 deletions src/mil_common/mil_msgs/msg/RangeStamped.msg
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
std_msgs/Header header

# A range in meters
float64 range
13 changes: 13 additions & 0 deletions src/mil_common/mil_msgs/msg/VelocityMeasurement.msg
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
# Generic representation of measurement from one beam of a Doppler Velocity Log (DVL)-like sensor

# unit vector pointing along beam (in sensor coordinate frame)
geometry_msgs/Vector3 direction

# measured velocity (in m/s) of sensor relative to pool floor, projected onto `direction` vector
# * should be NaN if measurement is bad/invalid/unknown
float64 velocity

# correlation value
# * describes the SNR of the return ping; currently only for diagnostic usage
# * should be NaN if unknown
float64 correlation
11 changes: 11 additions & 0 deletions src/mil_common/mil_msgs/msg/VelocityMeasurements.msg
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
# Generic representation of one measurement report from a Doppler Velocity Log (DVL)-like sensor

# stamp is the time the measurements were made
# frame_id ...
# * should have its origin at the location where the beam vectors intersect
# * defines the coordinate frame of the `velocity_measurements.direction` vectors
std_msgs/Header header

# velocity_measurements should have one element for each beam the hardware supports (typically 4)
# * invalid beams should still have VelocityMeasurement elements
VelocityMeasurement[] velocity_measurements
29 changes: 29 additions & 0 deletions src/mil_common/mil_msgs/package.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
<?xml version="1.0"?>
<package format="3">
<name>mil_msgs</name>
<version>2.0.0</version>
<description>Common ROS msgs,srvs and actions for MIL repos</description>
<maintainer email="[email protected]">Cameron Brown</maintainer>
<license>BSD</license>
<url type="website">http://github.com/uf-mil/mil2</url>
<author>Forrest Voight, David Soto</author>
<buildtool_depend>catkin</buildtool_depend>
<buildtool_depend>rosidl_default_generators</buildtool_depend>
<build_depend>actionlib_msgs</build_depend>
<build_depend>geometry_msgs</build_depend>
<build_depend>message_generation</build_depend>
<build_depend>message_runtime</build_depend>
<build_depend>sensor_msgs</build_depend>
<build_depend>std_msgs</build_depend>
<exec_depend>action_msgs</exec_depend>
<exec_depend>geometry_msgs</exec_depend>
<exec_depend>message_generation</exec_depend>
<exec_depend>message_runtime</exec_depend>
<exec_depend>rosidl_default_runtime</exec_depend>
<exec_depend>sensor_msgs</exec_depend>
<exec_depend>std_msgs</exec_depend>
<member_of_group>rosidl_interface_packages</member_of_group>
<export>
<cpp cflags="-I${prefix}/include `pkg-config --cflags eigen3`"/>
</export>
</package>
7 changes: 7 additions & 0 deletions src/mil_common/mil_msgs/srv/Bounds.srv
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
string to_frame # The frame you want the bounds in
# If not specified, it will default to 'enu'
---
std_msgs/Header header # Standard header, all points are in this frame
bool enforce # If false, don't listen to what the bounds say

geometry_msgs/Point[] bounds # List of points that define the boundaries
12 changes: 12 additions & 0 deletions src/mil_common/mil_msgs/srv/CameraToLidarTransform.srv
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
std_msgs/Header header #Stamp of time point was seen for tf
geometry_msgs/Point point #X and Y of point in camera frame, Z is ignored
uint16 tolerance #Number of pixels the projected 3D lidar point can be from the target point to be included in the response
---
bool success #True if at least one point found in lidar and transformed
geometry_msgs/Point[] transformed #Points in 3-D in camera frame if success is true
geometry_msgs/Point closest #3D point that is the closest to the target point when transformed and projected
geometry_msgs/Vector3 normal #Normal unit vector in camera frame estimated from transformed points
float64 distance #mean z of transformed points
string error #Describes when went wrong if success if false
string CLOUD_NOT_FOUND=pointcloud not found
string NO_POINTS_FOUND=no points
5 changes: 5 additions & 0 deletions src/mil_common/mil_msgs/srv/ObjectDBQuery.srv
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
string name #Request a particular object - names listed in PerceptionObject.msg (shooter,dock,scan_the_code,totem,start_gate,buoy,unknown,all)
string cmd #Change information in the database - ID=YYY where ID is the id number and YYY is a value to change: either the object name or rgb
---
bool found #Did we actually find the requested object?
mil_msgs/PerceptionObject[] objects #Collection of all objects found
4 changes: 4 additions & 0 deletions src/mil_common/mil_msgs/srv/SetGeometry.srv
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
geometry_msgs/Polygon model
---
bool success
string message

0 comments on commit 6b2d49f

Please sign in to comment.