diff --git a/PlanConfigure.json b/PlanConfigure.json new file mode 100644 index 0000000..861e03d --- /dev/null +++ b/PlanConfigure.json @@ -0,0 +1,175 @@ +{ + "east_waypt_survey" : + { + "boardStamp" : 1698135269.1985879, + "clientStamp" : 1698135269.1812179, + "closedLoop" : true, + "constSpeed" : -1.0, + "duration" : -1.0, + "maxDepth" : -1.0, + "minDepth" : -1.0, + "origin" : + { + "altitude" : 0.0, + "lat" : 43.825298309326172, + "lon" : -70.330398559570312 + }, + "perpetual" : false, + "points" : + [ + { + "depth" : 9.0, + "east" : 121.51780491942634, + "lat" : 43.824428558349609, + "lon" : -70.328887939453125, + "name" : "station_1", + "north" : -96.635898081838207, + "speed" : 2.0, + "type" : "point" + }, + { + "depth" : 7.0, + "east" : 201.91511278899367, + "lat" : 43.824676513671875, + "lon" : -70.327888488769531, + "name" : "station_2", + "north" : -69.083922179977421, + "speed" : 2.5, + "type" : "point" + } + ], + "priority" : 10, + "repeat" : 3, + "sourceAddress" : "10.25.0.160", + "sourceName" : "CCU Neptus 0_163", + "taskId" : "1", + "taskName" : "east_waypt_survey" + }, + "plan1_toMoos" : + { + "boardStamp" : 1699602762.2845099, + "clientStamp" : 1699602762.7520001, + "closedLoop" : false, + "duration" : -1.0, + "maxDepth" : -1.0, + "minDepth" : -1.0, + "origin" : + { + "altitude" : 0.0, + "lat" : 43.825299999999999, + "lon" : -70.330399999999997 + }, + "perpetual" : false, + "points" : + [ + { + "depth" : 2.0, + "east" : 117.83291847226671, + "lat" : 43.825713999999998, + "lon" : -70.32893, + "name" : "Goto1", + "north" : 46.200319317940647, + "speed" : 2.0, + "type" : "point" + }, + { + "depth" : 2.0, + "east" : -17.18366087421261, + "lat" : 43.826782000000001, + "lon" : -70.330609999999993, + "name" : "Goto2", + "north" : 164.87635389378988, + "speed" : 2.0, + "type" : "point" + }, + { + "depth" : 2.0, + "east" : -241.19025325837993, + "lat" : 43.825465999999999, + "lon" : -70.333399999999997, + "name" : "Goto3", + "north" : 18.653618776002617, + "speed" : 2.0, + "type" : "point" + }, + { + "depth" : 2.0, + "east" : -203.76118848802312, + "lat" : 43.823234999999997, + "lon" : -70.332930000000005, + "name" : "Goto4", + "north" : -229.29782627916489, + "speed" : 2.0, + "type" : "point" + } + ], + "priority" : 10, + "repeat" : 1, + "sourceAddress" : "10.25.0.163", + "sourceName" : "CCU JHL 0_163", + "taskId" : "0,106,3,-96,8,-103,13,6,9,32,50,-13,47,-71,61,1", + "taskName" : "plan1_toMoos" + }, + "west_waypt_survey" : + { + "boardStamp" : 1698135268.3958621, + "clientStamp" : 1698135268.2057669, + "closedLoop" : true, + "constSpeed" : -1.0, + "duration" : -1.0, + "maxDepth" : -1.0, + "minDepth" : -1.0, + "origin" : + { + "altitude" : 0.0, + "lat" : 43.825298309326172, + "lon" : -70.330398559570312 + }, + "perpetual" : true, + "points" : + [ + { + "depth" : 9.0, + "east" : -91.445572043530944, + "lat" : 43.824195861816406, + "lon" : -70.331535339355469, + "name" : "station_1", + "north" : -122.49101460421512, + "speed" : 4.0 + }, + { + "depth" : 7.0, + "east" : 5.5235485468483718, + "lat" : 43.824298858642578, + "lon" : -70.330329895019531, + "name" : "station_2", + "north" : -111.04778559533926, + "speed" : 6.0 + }, + { + "depth" : 5.0, + "east" : 4.2961493948725868, + "lat" : 43.823516845703125, + "lon" : -70.330345153808594, + "name" : "station_3", + "north" : -197.93630920628678, + "speed" : 8.0 + }, + { + "depth" : 3.0, + "east" : -81.013520711457318, + "lat" : 43.823207855224609, + "lon" : -70.331405639648438, + "name" : "station_4", + "north" : -232.26737690334403, + "speed" : 10.0 + } + ], + "priority" : 10, + "repeat" : -1, + "sourceAddress" : "10.25.0.160", + "sourceName" : "CCU Neptus 0_163", + "taskId" : "2", + "taskName" : "west_waypt_survey" + } +} diff --git a/README b/README new file mode 100644 index 0000000..1220cf3 --- /dev/null +++ b/README @@ -0,0 +1,84 @@ +############################################################################## +# FILE: moos-ivp-extend/README +# DATE: 2014/01/02 +# DESCRIPTION: Contains important information regarding the moos-ivp-extend +# repository. +############################################################################## + +#============================================================================= +# Introduction +#============================================================================= +The moos-ivp-extend repository contains examples for extending the MOOS-IvP +Autonomy system. This includes a MOOS application and an IvP behavior. + + +#============================================================================= +# Directory Structure +#============================================================================= +The directory structure for the moos-ivp-extend is decribed below: + +bin - Directory for generated executable files +build - Directory for build object files +build.sh - Script for building moos-ivp-extend +CMakeLists.txt - CMake configuration file for the project +data - Directory for storing data +lib - Directory for generated library files +missions - Directory for mission files +README - Contains helpful information - (this file). +scripts - Directory for script files +src - Directory for source code + + +#============================================================================= +# Build Instructions +#============================================================================= +#-------------------- +# Linux and Mac Users +#-------------------- + +To build on Linux and Apple platforms, execute the build script within this +directory: + + $ ./build.sh + +To build without using the supplied script, execute the following commands +within this directory: + + $ mkdir -p build + $ cd build + $ cmake ../ + $ make + $ cd .. + + +#-------------- +# Windows Users +#-------------- +To build on Windows platform, open CMake using your favorite shortcut. Then +set the source directory to be this directory and set the build directory +to the "build" directory inside this directory. + +The source directory is typically next to the question: + "Where is the source code?" + +The build directory is typically next to the question: + "Where to build the binaries?" + +Alternatively, CMake can be invoked via the command line. However, you must +specify your gernerator. Use "cmake --help" for a list of generators and +additional help. + +#============================================================================= +# Environment variables +#============================================================================= +The moos-ivp-extend binaries files should be added to your path to allow them +to be launched from pAntler. + +In order for generated IvP Behaviors to be recognized by the IvP Helm, you +should add the library directory to the "IVP_BEHAVIOR_DIRS" environment +variable. + +############################################################################## +# END of README +############################################################################## + diff --git a/build/read.txt b/build/read.txt new file mode 100644 index 0000000..ad3abe1 --- /dev/null +++ b/build/read.txt @@ -0,0 +1 @@ +存放CMake和编译的中间文件,如果报错编译目录错误可以将这个文件夹清空,或使用./clean.sh命令。 \ No newline at end of file diff --git a/missions/alder/README b/missions/alder/README new file mode 100644 index 0000000..3a49d99 --- /dev/null +++ b/missions/alder/README @@ -0,0 +1,11 @@ +To Run this mission, make sure that the following two bin +directories are in your path: + +moos-ivp/ivp/bin/ +moos-ivp-extend/bin/ + +Then launch the mission by: + +pAntler alder.moos + + diff --git a/missions/alder/alder.bhv b/missions/alder/alder.bhv new file mode 100644 index 0000000..08f2ddc --- /dev/null +++ b/missions/alder/alder.bhv @@ -0,0 +1,33 @@ +//-------- FILE: alder.bhv ------------- + +initialize DEPLOY = false +initialize RETURN = false + +//---------------------------------------------- +Behavior = BHV_SimpleWaypoint +{ + name = waypt_to_point + pwt = 100 + condition = RETURN = false + condition = DEPLOY = true + endflag = RETURN = true + + speed = 2.0 // meters per second + radius = 8.0 + ptx = 100 + pty = -50 +} + +//---------------------------------------------- +Behavior = BHV_Waypoint +{ + name = waypt_return + pwt = 100 + condition = (RETURN = true) + condition = (DEPLOY = true) + + speed = 2.0 + radius = 8.0 + point = 0,0 +} + diff --git a/missions/alder/alder.moos b/missions/alder/alder.moos new file mode 100644 index 0000000..0675010 --- /dev/null +++ b/missions/alder/alder.moos @@ -0,0 +1,166 @@ +// Level 2 Configuration file: M. Benjamin + +ServerHost = localhost +ServerPort = 9000 +Simulator = true + +Community = alder + +MOOSTimeWarp = 1 + +LatOrigin = 43.825300 +LongOrigin = -70.330400 + +//------------------------------------------ +// Antler configuration block +ProcessConfig = ANTLER +{ + MSBetweenLaunches = 200 + + Run = MOOSDB @ NewConsole = false + Run = uSimMarine @ NewConsole = false + Run = pNodeReporter @ NewConsole = false + Run = pMarinePID @ NewConsole = false + Run = pMarineViewer @ NewConsole = false + Run = uProcessWatch @ NewConsole = false + Run = pHelmIvP @ NewConsole = false + Run = pOdometry @ NewConsole = false + Run = pBoardSupportComm @ NewConsole = false +} + +//------------------------------------------ +// uSimMarine config block + +ProcessConfig = uSimMarine +{ + AppTick = 10 + CommsTick = 10 + + START_X = 0 + START_Y = 0 + START_SPEED = 0 + START_HEADING = 180 + + PREFIX = NAV +} + + +//------------------------------------------ +// uProcessWatch config block + +ProcessConfig = uProcessWatch +{ + AppTick = 4 + CommsTick = 4 + + term_report_interval = 0.8 + + summary_wait = 5 + + nowatch = uXMS* + nowatch = uPokeDB* + nowatch = uTermCommand* + watch_all = true +} + + +//------------------------------------------ +// pHelmIvP config block + +ProcessConfig = pHelmIvP +{ + AppTick = 4 + CommsTick = 4 + + Behaviors = alder.bhv + Verbose = quiet + Domain = course:0:359:360 + Domain = speed:0:4:21 + + IVP_BEHAVIOR_DIR = ../../lib + //IVP_BEHAVIOR_DIR = /Users/mikerb/Research/moos-ivp-extend/trunk/lib + + ok_skew = any + start_in_drive = false +} + +//------------------------------------------ +// pMarinePID config block + +ProcessConfig = pMarinePID +{ + AppTick = 20 + CommsTick = 20 + + VERBOSE = true + DEPTH_CONTROL = false + + // Yaw PID controller + YAW_PID_KP = 0.5 + YAW_PID_KD = 0.0 + YAW_PID_KI = 0.0 + YAW_PID_INTEGRAL_LIMIT = 0.07 + + // Speed PID controller + SPEED_PID_KP = 1.0 + SPEED_PID_KD = 0.0 + SPEED_PID_KI = 0.0 + SPEED_PID_INTEGRAL_LIMIT = 0.07 + + //MAXIMUMS + MAXRUDDER = 100 + MAXTHRUST = 100 + + // A non-zero SPEED_FACTOR overrides use of SPEED_PID + // Will set DESIRED_THRUST = DESIRED_SPEED * SPEED_FACTOR + SPEED_FACTOR = 20 +} + +//------------------------------------------ +// pMarineViewer config block + +ProcessConfig = pMarineViewer +{ + AppTick = 4 + CommsTick = 4 + + TIFF_FILE = forrest19.tif + set_pan_x = -90 + set_pan_y = -280 + zoom = 0.65 + vehicle_shape_scale = 1.5 + hash_delta = 50 + hash_shade = 0.4 + hash_viewable = true + + scope = ODOMETRY_DIST + + // Appcast configuration + appcast_height = 75 + appcast_width = 30 + appcast_viewable = true + appcast_color_scheme = indigo + nodes_font_size = medium + procs_font_size = medium + appcast_font_size = small + + BUTTON_ONE = DEPLOY # DEPLOY=true + BUTTON_ONE = MOOS_MANUAL_OVERIDE=false # RETURN=false + BUTTON_TWO = RETURN # RETURN=true +} + +//------------------------------------------ +// pNodeReporter config block + +ProcessConfig = pNodeReporter +{ + AppTick = 2 + CommsTick = 2 + VESSEL_TYPE = KAYAK +} + +ProcessConfig = pBoardSupportComm +{ + AppTick = 4 + CommsTick = 4 +} \ No newline at end of file diff --git a/missions/alder/alder_orig.bhv b/missions/alder/alder_orig.bhv new file mode 100644 index 0000000..fcd9b0a --- /dev/null +++ b/missions/alder/alder_orig.bhv @@ -0,0 +1,41 @@ +//-------- FILE: alder.bhv ------------- + +initialize DEPLOY = false +initialize RETURN = false + +//---------------------------------------------- +Behavior = BHV_SimpleWaypoint +{ + name = waypt_to_point + pwt = 100 + condition = RETURN = false + condition = DEPLOY = true + endflag = RETURN = true + + speed = 2.0 // meters per second + radius = 8.0 + ptx = 100 + pty = -50 +} + +//---------------------------------------------- +Behavior = BHV_SimpleWaypoint +{ + name = waypt_return + pwt = 100 + condition = (RETURN = true) + condition = (DEPLOY = true) + + speed = 2.0 + radius = 8.0 + ptx = 0 + pty = 0 +} + +//---------------------------------------------- +Behavior = BHV_HSLine +{ + name = hsline + time_on_leg = 20 +} + diff --git a/missions/s3_alpha/alpha.bhv b/missions/s3_alpha/alpha.bhv new file mode 100755 index 0000000..b5c8d4c --- /dev/null +++ b/missions/s3_alpha/alpha.bhv @@ -0,0 +1,93 @@ +//-------- FILE: alpha.bhv ------------- + +initialize DEPLOY = false +initialize RETURN = false +initialize REGION = east + +//---------------------------------------------- +Behavior = BHV_Waypoint +{ + name = waypt_survey + pwt = 100 + condition = RETURN = false + condition = DEPLOY = true + condition = REGION = east + endflag = REGION = west + + updates = WPT_UPDATE + perpetual = true + + lead = 8 + lead_damper = 1 + lead_to_start = true + speed = 3 // meters per second + capture_line = true + capture_radius = 5.0 + slip_radius = 15.0 + efficiency_measure = all + + polygon = 60,-40 : 60,-160 : 150,-160 : 180,-100 : 150,-40 + + order = normal + repeat = forever + + visual_hints = nextpt_color=yellow + visual_hints = nextpt_vertex_size=8 + visual_hints = nextpt_lcolor=gray70 + visual_hints = vertex_color=dodger_blue, edge_color=white + visual_hints = vertex_size=5, edge_size=1 +} + +//---------------------------------------------- +Behavior = BHV_Waypoint +{ + name = west_waypt_survey + pwt = 100 + condition = RETURN = false + condition = DEPLOY = true + condition = REGION = west + endflag = RETURN = true + + updates = WPT_UPDATE + perpetual = true + + lead = 8 + lead_damper = 1 + lead_to_start = true + speed = 3 // meters per second + capture_line = true + capture_radius = 5.0 + slip_radius = 15.0 + efficiency_measure = all + + points = -35,-65 : -35,-125 : 20,-125 : 20, -65 + + order = normal + repeat = forever + + visual_hints = nextpt_color=yellow + visual_hints = nextpt_vertex_size=8 + visual_hints = nextpt_lcolor=gray70 + visual_hints = vertex_color=dodger_blue, edge_color=white + visual_hints = vertex_size=5, edge_size=1 +} + +//---------------------------------------------- +Behavior=BHV_Waypoint +{ + name = waypt_return + pwt = 100 + condition = RETURN = true + condition = DEPLOY = true + perpetual = true + updates = RETURN_UPDATE + endflag = RETURN = false + endflag = DEPLOY = false + endflag = MISSION = complete + + speed = 2.0 + capture_radius = 2.0 + slip_radius = 8.0 + points = 0,-20 + } + diff --git a/missions/s3_alpha/alpha.moos b/missions/s3_alpha/alpha.moos new file mode 100755 index 0000000..a06d443 --- /dev/null +++ b/missions/s3_alpha/alpha.moos @@ -0,0 +1,310 @@ +/------------------------------------------------- +// NAME: M. Benjamin, MIT CSAIL +// FILE: alpha.moos +//------------------------------------------------- + +ServerHost = localhost +ServerPort = 9000 +Community = alpha +MOOSTimeWarp = 1 + +// Forest Lake +LatOrigin = 43.825300 +LongOrigin = -70.330400 + +// MIT Sailing Pavilion (use this one) +// LatOrigin = 42.358456 +// LongOrigin = -71.087589 + +ReferenceLongitude = LongOrigin +ReferenceLatitude = LatOrigin +ReferenceAltitude = 0 + +//ReferenceLongitude = -70.330400 +//ReferenceLatitude = 43.825300 +//ReferenceAltitude = 0 + + +PlanConfigPath = "PlanConfigure.json" + +//------------------------------------------ +// Antler configuration block +ProcessConfig = ANTLER +{ + MSBetweenLaunches = 200 + + Run = MOOSDB @ NewConsole = false + //Run = pLogger @ NewConsole = false + Run = uSimMarineV22 @ NewConsole = false + Run = pMarinePIDV22 @ NewConsole = false + Run = pHelmIvP @ NewConsole = false + Run = pMarineViewer @ NewConsole = false + Run = uProcessWatch @ NewConsole = false + Run = pNodeReporter @ NewConsole = false + Run = pBoardSupportComm @ NewConsole = false + Run = pSurfaceSupportComm @ NewConsole = false + //Run = pDataManagement @ NewConsole = false + //Run = pClientViewer @ NewConsole = false +} + +//------------------------------------------ +// pLogger config block + +ProcessConfig = pLogger +{ + AppTick = 8 + CommsTick = 8 + + AsyncLog = true + FileTimeStamp = true + + // For variables that are published in a bundle on their first post, + // explicitly declare their logging request + Log = IVPHELM_LIFE_EVENT @ 0 NOSYNC + Log = REPORT @ 0 NOSYNC + + LogAuxSrc = true + WildCardLogging = true + WildCardOmitPattern = *_STATUS + WildCardOmitPattern = DB_VARSUMMARY + WildCardOmitPattern = DB_RWSUMMARY + WildCardExclusionLog = true +} + +//------------------------------------------ +// uProcessWatch + +ProcessConfig = uProcessWatch +{ + AppTick = 4 + CommsTick = 4 + + watch_all = true + nowatch = uPokeDB* + nowatch = uXMS* +} + +//------------------------------------------ +// uSimMarine config block + +ProcessConfig = uSimMarine +{ + AppTick = 5 + CommsTick = 5 + + start_x = 0 + start_y = -40 + start_heading = 180 + start_speed = 0 + + prefix = NAV + + turn_rate = 40 Run = pNodeReporter @ NewConsole = false + thrust_map = 0:0, 20:1, 40:2, 60:3, 80:4, 100:5 + thrust_reflect = true +} + +//------------------------------------------ +// uSimMarineV22 config block + +ProcessConfig = uSimMarineV22 +{ + AppTick = 4 + CommsTick = 4 + + start_pos = x=0, y=-20, heading=180, speed=0 + + prefix = NAV + + turn_rate = 40 + thrust_map = 0:0, 20:1, 40:2, 60:3, 80:4, 100:5 + //thrust_reflect = true +} + +ProcessConfig = pHelmIvP +{ + AppTick = 4 + CommsTick = 4 + + bhv_dir_not_found_ok = true + + behaviors = alpha.bhv + domain = course:0:359:360 + domain = speed:0:4:41 +} + + +//------------------------------------------ +// pMarinePID config block Run = pNodeReporter @ NewConsole = false + +ProcessConfig = pMarinePID +{ + AppTick = 20 + CommsTick = 20 + + verbose = true + depth_control = false + + // SIM_INSTABILITY = 20 + + // Yaw PID controller + yaw_pid_kp = 1.2 + yaw_pid_kd = 0.0 + yaw_pid_ki = 0.3 + yaw_pid_integral_limit = 0.07 + + // Speed PID controller + speed_pid_kp = 1.0 + speed_pid_kd = 0.0 + speed_pid_ki = 0.0 + speed_pid_integral_limit = 0.07 + + //MAXIMUMS + maxrudder = 100 + maxthrust = 100 + + // A non-zero SPEED_FACTOR overrides use of SPEED_PID + // Will set DESIRED_THRUST = DESIRED_SPEED * SPEED_FACTOR + speed_factor = 20 +} + +//------------------------------------------ +// pMarinePID config block + +ProcessConfig = pMarinePIDV22 +{ + AppTick = 20 + CommsTick = 20 + + verbose = true + depth_control = false + + // SIM_INSTABILITY = 20 + + // Yaw PID controller + yaw_pid_kp = 1.2 + yaw_pid_kd = 0.0 + yaw_pid_ki = 0.3 + yaw_pid_integral_limit = 0.07 + + // Speed PID controller + speed_pid_kp = 1.0 + speed_pid_kd = 0.0 + speed_pid_ki = 0.0 + speed_pid_integral_limit = 0.07 + + //MAXIMUMS + maxrudder = 100 + maxthrust = 100 + + // A non-zero SPEED_FACTOR overrides use of SPEED_PID + // Will set DESIRED_THRUST = DESIRED_SPEED * SPEED_FACTOR + speed_factor = 20 +} + +ProcessConfig = pMarineViewer +{ + AppTick = 4 + CommsTick = 4 + + tiff_file = forrest19.tif + //tiff_file = MIT_SP.tif + + set_pan_x = -90 + set_pan_y = -280 + zoom = 0.65 + vehicle_shape_scale = 1.5 + hash_delta = 50 + hash_shade = 0.22 + hash_viewable = true + + trails_point_size = 1 + + //op_vertex = x=-83, y=-47, lwidth=1,lcolor=yellow,looped=true,group=moa + //op_vertex = x=-46.4, y=-129.2, lwidth=1,lcolor=yellow,looped=true,group=moa + //op_vertex = x=94.6, y=-62.2, lwidth=1,lcolor=yellow,looped=true,group=moa + //op_vertex = x=58, y=20, lwidth=1,lcolor=yellow,looped=true,group=moa + + // vcolor = alpha=dodgerblue + + // Appcast configuration + appcast_height = 75 + appcast_width = 30 + appcast_viewable = true + appcast_color_scheme = indigo + nodes_font_size = medium + procs_font_size = medium + appcast_font_size = small + + // datum_viewable = true + // datum_size = 18 + // gui_size = small + + // left_context[survey-point] = DEPLOY=true + // left_context[survey-point] = MOOS_MANUAL_OVERRIDE=false + // left_context[survey-point] = RETURN=false + + right_context[return] = DEPLOY=true + right_context[return] = MOOS_MANUAL_OVERRIDE=false + right_context[return] = RETURN=false + + scope = RETURN + scope = WPT_STAT + scope = VIEW_SEGLIST + scope = VIEW_POINT + scope = VIEW_POLYGON + scope = MVIEWER_LCLICK + scope = MVIEWER_RCLICK + + button_one = DEPLOY # DEPLOY=true + button_one = MOOS_MANUAL_OVERRIDE=false # RETURN=false + button_two = RETURN # RETURN=true + + button_three = WEST # REGION=west + button_four = EAST # REGION=east + + button_five = SLOWER # WPT_UPDATE=speed=1.5 + button_six = FASTER # WPT_UPDATE=speed=3.5 + + action = MENU_KEY=deploy # DEPLOY = true # RETURN = false + action+ = MENU_KEY=deploy # MOOS_MANUAL_OVERRIDE=false + action = RETURN=true + action = UPDATES_RETURN=speed=1.4 +} + +//------------------------------------------ +// pNodeReporter config block + +ProcessConfig = pNodeReporter +{ + AppTick = 2 + CommsTick = 2 + + platform_type = kayak + platform_color = yellow + platform_length = 4 +} + +ProcessConfig = pBoardSupportComm +{ + AppTick = 4 + CommsTick = 4 +} + +ProcessConfig = pSurfaceSupportComm +{ + AppTick = 4 + CommsTick = 4 +} + +ProcessConfig = pDataManagement +{ + AppTick = 4 + CommsTick = 4 +} + +ProcessConfig = pClientViewer +{ + AppTick = 4 + CommsTick = 4 +} diff --git a/missions/s3_alpha/clean.sh b/missions/s3_alpha/clean.sh new file mode 100755 index 0000000..a7464c1 --- /dev/null +++ b/missions/s3_alpha/clean.sh @@ -0,0 +1,6 @@ +#!/bin/bash + +rm -rf MOOSLog_* +rm -f *~ +rm -f *.moos++ +rm -f .LastOpenedMOOSLogDirectory diff --git a/missions/s3_alpha/launch.sh b/missions/s3_alpha/launch.sh new file mode 100755 index 0000000..7510b07 --- /dev/null +++ b/missions/s3_alpha/launch.sh @@ -0,0 +1,34 @@ +#!/bin/bash -e +COMMUNITY="alpha" + +#------------------------------------------------------- +# Part 1: Check for and handle command-line arguments +#------------------------------------------------------- +TIME_WARP=10 +for ARGI; do + if [ "${ARGI}" = "--help" -o "${ARGI}" = "-h" ] ; then + printf "%s [SWITCHES] [time_warp] \n" $0 + printf " --help, -h \n" + exit 0; + elif [ "${ARGI//[^0-9]/}" = "$ARGI" -a "$TIME_WARP" = 1 ]; then + TIME_WARP=$ARGI + else + printf "Bad Argument: %s \n" $ARGI + exit 0 + fi +done + + +#------------------------------------------------------- +# Part 2: Launch the processes +#------------------------------------------------------- +printf "Launching the %s MOOS Community (WARP=%s) \n" $COMMUNITY $TIME_WARP +pAntler $COMMUNITY.moos --MOOSTimeWarp=$TIME_WARP >& /dev/null & + +uMAC -t $COMMUNITY.moos + +printf "Killing all processes ... \n" +kill %1 +mykill +printf "Done killing processes. \n" + diff --git a/missions/xrelay/xrelay.moos b/missions/xrelay/xrelay.moos new file mode 100644 index 0000000..b53b39a --- /dev/null +++ b/missions/xrelay/xrelay.moos @@ -0,0 +1,54 @@ +// MOOS file + +ServerHost = localhost +ServerPort = 9000 + +//------------------------------------------ +// Antler configuration block +ProcessConfig = ANTLER +{ + MSBetweenLaunches = 200 + + Run = MOOSDB @ NewConsole = false + Run = pXRelay @ NewConsole = true ~ pXRelay_APPLES + Run = pXRelay @ NewConsole = true ~ pXRelay_PEARS + Run = uXMS @ NewConsole = true +} + + +//------------------------------------------ +// First pXRelay configuration block + +ProcessConfig = pXRelay_APPLES +{ + AppTick = 4 + CommsTick = 4 + + OUTGOING_VAR = APPLES + INCOMING_VAR = PEARS +} + +//------------------------------------------ +// Second pXRelay configuration block + +ProcessConfig = pXRelay_PEARS +{ + AppTick = 4 + CommsTick = 4 + + OUTGOING_VAR = PEARS + INCOMING_VAR = APPLES +} + +//------------------------------------------ +// uXMS configuration block + +ProcessConfig = uXMS +{ + AppTick = 4 + CommsTick = 4 + + VAR = PEARS, PEARS_ITER_HZ, PEARS_POST_HZ + VAR = APPLES, APPLES_ITER_HZ, APPLES_POST_HZ +} + diff --git a/src/pDataManagement/NavigationInfo.pb.h b/src/pDataManagement/NavigationInfo.pb.h new file mode 100644 index 0000000..b7e4a5d --- /dev/null +++ b/src/pDataManagement/NavigationInfo.pb.h @@ -0,0 +1,809 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: NavigationInfo.proto + +#ifndef GOOGLE_PROTOBUF_INCLUDED_NavigationInfo_2eproto +#define GOOGLE_PROTOBUF_INCLUDED_NavigationInfo_2eproto + +#include +#include + +#include +#if PROTOBUF_VERSION < 3021000 +#error This file was generated by a newer version of protoc which is +#error incompatible with your Protocol Buffer headers. Please update +#error your headers. +#endif +#if 3021012 < PROTOBUF_MIN_PROTOC_VERSION +#error This file was generated by an older version of protoc which is +#error incompatible with your Protocol Buffer headers. Please +#error regenerate this file with a newer version of protoc. +#endif + +#include +#include +#include +#include +#include +#include +#include +#include +#include // IWYU pragma: export +#include // IWYU pragma: export +#include +// @@protoc_insertion_point(includes) +#include +#define PROTOBUF_INTERNAL_EXPORT_NavigationInfo_2eproto +PROTOBUF_NAMESPACE_OPEN +namespace internal { +class AnyMetadata; +} // namespace internal +PROTOBUF_NAMESPACE_CLOSE + +// Internal implementation detail -- do not use these members. +struct TableStruct_NavigationInfo_2eproto { + static const uint32_t offsets[]; +}; +extern const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable descriptor_table_NavigationInfo_2eproto; +namespace NavigationInfo { +class EstimatedState; +struct EstimatedStateDefaultTypeInternal; +extern EstimatedStateDefaultTypeInternal _EstimatedState_default_instance_; +} // namespace NavigationInfo +PROTOBUF_NAMESPACE_OPEN +template<> ::NavigationInfo::EstimatedState* Arena::CreateMaybeMessage<::NavigationInfo::EstimatedState>(Arena*); +PROTOBUF_NAMESPACE_CLOSE +namespace NavigationInfo { + +// =================================================================== + +class EstimatedState final : + public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:NavigationInfo.EstimatedState) */ { + public: + inline EstimatedState() : EstimatedState(nullptr) {} + ~EstimatedState() override; + explicit PROTOBUF_CONSTEXPR EstimatedState(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized); + + EstimatedState(const EstimatedState& from); + EstimatedState(EstimatedState&& from) noexcept + : EstimatedState() { + *this = ::std::move(from); + } + + inline EstimatedState& operator=(const EstimatedState& from) { + CopyFrom(from); + return *this; + } + inline EstimatedState& operator=(EstimatedState&& from) noexcept { + if (this == &from) return *this; + if (GetOwningArena() == from.GetOwningArena() + #ifdef PROTOBUF_FORCE_COPY_IN_MOVE + && GetOwningArena() != nullptr + #endif // !PROTOBUF_FORCE_COPY_IN_MOVE + ) { + InternalSwap(&from); + } else { + CopyFrom(from); + } + return *this; + } + + static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() { + return GetDescriptor(); + } + static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() { + return default_instance().GetMetadata().descriptor; + } + static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() { + return default_instance().GetMetadata().reflection; + } + static const EstimatedState& default_instance() { + return *internal_default_instance(); + } + static inline const EstimatedState* internal_default_instance() { + return reinterpret_cast( + &_EstimatedState_default_instance_); + } + static constexpr int kIndexInFileMessages = + 0; + + friend void swap(EstimatedState& a, EstimatedState& b) { + a.Swap(&b); + } + inline void Swap(EstimatedState* other) { + if (other == this) return; + #ifdef PROTOBUF_FORCE_COPY_IN_SWAP + if (GetOwningArena() != nullptr && + GetOwningArena() == other->GetOwningArena()) { + #else // PROTOBUF_FORCE_COPY_IN_SWAP + if (GetOwningArena() == other->GetOwningArena()) { + #endif // !PROTOBUF_FORCE_COPY_IN_SWAP + InternalSwap(other); + } else { + ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other); + } + } + void UnsafeArenaSwap(EstimatedState* other) { + if (other == this) return; + GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena()); + InternalSwap(other); + } + + // implements Message ---------------------------------------------- + + EstimatedState* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final { + return CreateMaybeMessage(arena); + } + using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom; + void CopyFrom(const EstimatedState& from); + using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom; + void MergeFrom( const EstimatedState& from) { + EstimatedState::MergeImpl(*this, from); + } + private: + static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg); + public: + PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final; + bool IsInitialized() const final; + + size_t ByteSizeLong() const final; + const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final; + uint8_t* _InternalSerialize( + uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final; + int GetCachedSize() const final { return _impl_._cached_size_.Get(); } + + private: + void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena, bool is_message_owned); + void SharedDtor(); + void SetCachedSize(int size) const final; + void InternalSwap(EstimatedState* other); + + private: + friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata; + static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() { + return "NavigationInfo.EstimatedState"; + } + protected: + explicit EstimatedState(::PROTOBUF_NAMESPACE_ID::Arena* arena, + bool is_message_owned = false); + public: + + static const ClassData _class_data_; + const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final; + + ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final; + + // nested types ---------------------------------------------------- + + // accessors ------------------------------------------------------- + + enum : int { + kInfoFieldNumber = 1, + kLonFieldNumber = 2, + kLatFieldNumber = 3, + kHeightFieldNumber = 4, + kOffsetNorthFieldNumber = 5, + kOffsetEastFieldNumber = 6, + kOffsetDownFieldNumber = 7, + kRollFieldNumber = 8, + kPitchFieldNumber = 9, + kYawFieldNumber = 10, + kLinearVelocityNorthFieldNumber = 11, + kLinearVelocityEastFieldNumber = 12, + kLinearVelocityDownFieldNumber = 13, + kAngularVelocityNorthFieldNumber = 14, + kAngularVelocityEastFieldNumber = 15, + kAngularVelocityDownFieldNumber = 16, + kDepthFieldNumber = 17, + kAltitudeFieldNumber = 18, + }; + // string info = 1; + void clear_info(); + const std::string& info() const; + template + void set_info(ArgT0&& arg0, ArgT... args); + std::string* mutable_info(); + PROTOBUF_NODISCARD std::string* release_info(); + void set_allocated_info(std::string* info); + private: + const std::string& _internal_info() const; + inline PROTOBUF_ALWAYS_INLINE void _internal_set_info(const std::string& value); + std::string* _internal_mutable_info(); + public: + + // float lon = 2; + void clear_lon(); + float lon() const; + void set_lon(float value); + private: + float _internal_lon() const; + void _internal_set_lon(float value); + public: + + // float lat = 3; + void clear_lat(); + float lat() const; + void set_lat(float value); + private: + float _internal_lat() const; + void _internal_set_lat(float value); + public: + + // float height = 4; + void clear_height(); + float height() const; + void set_height(float value); + private: + float _internal_height() const; + void _internal_set_height(float value); + public: + + // float offsetNorth = 5; + void clear_offsetnorth(); + float offsetnorth() const; + void set_offsetnorth(float value); + private: + float _internal_offsetnorth() const; + void _internal_set_offsetnorth(float value); + public: + + // float offsetEast = 6; + void clear_offseteast(); + float offseteast() const; + void set_offseteast(float value); + private: + float _internal_offseteast() const; + void _internal_set_offseteast(float value); + public: + + // float offsetDown = 7; + void clear_offsetdown(); + float offsetdown() const; + void set_offsetdown(float value); + private: + float _internal_offsetdown() const; + void _internal_set_offsetdown(float value); + public: + + // float roll = 8; + void clear_roll(); + float roll() const; + void set_roll(float value); + private: + float _internal_roll() const; + void _internal_set_roll(float value); + public: + + // float pitch = 9; + void clear_pitch(); + float pitch() const; + void set_pitch(float value); + private: + float _internal_pitch() const; + void _internal_set_pitch(float value); + public: + + // float yaw = 10; + void clear_yaw(); + float yaw() const; + void set_yaw(float value); + private: + float _internal_yaw() const; + void _internal_set_yaw(float value); + public: + + // float linearVelocityNorth = 11; + void clear_linearvelocitynorth(); + float linearvelocitynorth() const; + void set_linearvelocitynorth(float value); + private: + float _internal_linearvelocitynorth() const; + void _internal_set_linearvelocitynorth(float value); + public: + + // float linearVelocityEast = 12; + void clear_linearvelocityeast(); + float linearvelocityeast() const; + void set_linearvelocityeast(float value); + private: + float _internal_linearvelocityeast() const; + void _internal_set_linearvelocityeast(float value); + public: + + // float linearVelocityDown = 13; + void clear_linearvelocitydown(); + float linearvelocitydown() const; + void set_linearvelocitydown(float value); + private: + float _internal_linearvelocitydown() const; + void _internal_set_linearvelocitydown(float value); + public: + + // float angularVelocityNorth = 14; + void clear_angularvelocitynorth(); + float angularvelocitynorth() const; + void set_angularvelocitynorth(float value); + private: + float _internal_angularvelocitynorth() const; + void _internal_set_angularvelocitynorth(float value); + public: + + // float angularVelocityEast = 15; + void clear_angularvelocityeast(); + float angularvelocityeast() const; + void set_angularvelocityeast(float value); + private: + float _internal_angularvelocityeast() const; + void _internal_set_angularvelocityeast(float value); + public: + + // float angularVelocityDown = 16; + void clear_angularvelocitydown(); + float angularvelocitydown() const; + void set_angularvelocitydown(float value); + private: + float _internal_angularvelocitydown() const; + void _internal_set_angularvelocitydown(float value); + public: + + // float depth = 17; + void clear_depth(); + float depth() const; + void set_depth(float value); + private: + float _internal_depth() const; + void _internal_set_depth(float value); + public: + + // float altitude = 18; + void clear_altitude(); + float altitude() const; + void set_altitude(float value); + private: + float _internal_altitude() const; + void _internal_set_altitude(float value); + public: + + // @@protoc_insertion_point(class_scope:NavigationInfo.EstimatedState) + private: + class _Internal; + + template friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper; + typedef void InternalArenaConstructable_; + typedef void DestructorSkippable_; + struct Impl_ { + ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr info_; + float lon_; + float lat_; + float height_; + float offsetnorth_; + float offseteast_; + float offsetdown_; + float roll_; + float pitch_; + float yaw_; + float linearvelocitynorth_; + float linearvelocityeast_; + float linearvelocitydown_; + float angularvelocitynorth_; + float angularvelocityeast_; + float angularvelocitydown_; + float depth_; + float altitude_; + mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_; + }; + union { Impl_ _impl_; }; + friend struct ::TableStruct_NavigationInfo_2eproto; +}; +// =================================================================== + + +// =================================================================== + +#ifdef __GNUC__ + #pragma GCC diagnostic push + #pragma GCC diagnostic ignored "-Wstrict-aliasing" +#endif // __GNUC__ +// EstimatedState + +// string info = 1; +inline void EstimatedState::clear_info() { + _impl_.info_.ClearToEmpty(); +} +inline const std::string& EstimatedState::info() const { + // @@protoc_insertion_point(field_get:NavigationInfo.EstimatedState.info) + return _internal_info(); +} +template +inline PROTOBUF_ALWAYS_INLINE +void EstimatedState::set_info(ArgT0&& arg0, ArgT... args) { + + _impl_.info_.Set(static_cast(arg0), args..., GetArenaForAllocation()); + // @@protoc_insertion_point(field_set:NavigationInfo.EstimatedState.info) +} +inline std::string* EstimatedState::mutable_info() { + std::string* _s = _internal_mutable_info(); + // @@protoc_insertion_point(field_mutable:NavigationInfo.EstimatedState.info) + return _s; +} +inline const std::string& EstimatedState::_internal_info() const { + return _impl_.info_.Get(); +} +inline void EstimatedState::_internal_set_info(const std::string& value) { + + _impl_.info_.Set(value, GetArenaForAllocation()); +} +inline std::string* EstimatedState::_internal_mutable_info() { + + return _impl_.info_.Mutable(GetArenaForAllocation()); +} +inline std::string* EstimatedState::release_info() { + // @@protoc_insertion_point(field_release:NavigationInfo.EstimatedState.info) + return _impl_.info_.Release(); +} +inline void EstimatedState::set_allocated_info(std::string* info) { + if (info != nullptr) { + + } else { + + } + _impl_.info_.SetAllocated(info, GetArenaForAllocation()); +#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING + if (_impl_.info_.IsDefault()) { + _impl_.info_.Set("", GetArenaForAllocation()); + } +#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING + // @@protoc_insertion_point(field_set_allocated:NavigationInfo.EstimatedState.info) +} + +// float lon = 2; +inline void EstimatedState::clear_lon() { + _impl_.lon_ = 0; +} +inline float EstimatedState::_internal_lon() const { + return _impl_.lon_; +} +inline float EstimatedState::lon() const { + // @@protoc_insertion_point(field_get:NavigationInfo.EstimatedState.lon) + return _internal_lon(); +} +inline void EstimatedState::_internal_set_lon(float value) { + + _impl_.lon_ = value; +} +inline void EstimatedState::set_lon(float value) { + _internal_set_lon(value); + // @@protoc_insertion_point(field_set:NavigationInfo.EstimatedState.lon) +} + +// float lat = 3; +inline void EstimatedState::clear_lat() { + _impl_.lat_ = 0; +} +inline float EstimatedState::_internal_lat() const { + return _impl_.lat_; +} +inline float EstimatedState::lat() const { + // @@protoc_insertion_point(field_get:NavigationInfo.EstimatedState.lat) + return _internal_lat(); +} +inline void EstimatedState::_internal_set_lat(float value) { + + _impl_.lat_ = value; +} +inline void EstimatedState::set_lat(float value) { + _internal_set_lat(value); + // @@protoc_insertion_point(field_set:NavigationInfo.EstimatedState.lat) +} + +// float height = 4; +inline void EstimatedState::clear_height() { + _impl_.height_ = 0; +} +inline float EstimatedState::_internal_height() const { + return _impl_.height_; +} +inline float EstimatedState::height() const { + // @@protoc_insertion_point(field_get:NavigationInfo.EstimatedState.height) + return _internal_height(); +} +inline void EstimatedState::_internal_set_height(float value) { + + _impl_.height_ = value; +} +inline void EstimatedState::set_height(float value) { + _internal_set_height(value); + // @@protoc_insertion_point(field_set:NavigationInfo.EstimatedState.height) +} + +// float offsetNorth = 5; +inline void EstimatedState::clear_offsetnorth() { + _impl_.offsetnorth_ = 0; +} +inline float EstimatedState::_internal_offsetnorth() const { + return _impl_.offsetnorth_; +} +inline float EstimatedState::offsetnorth() const { + // @@protoc_insertion_point(field_get:NavigationInfo.EstimatedState.offsetNorth) + return _internal_offsetnorth(); +} +inline void EstimatedState::_internal_set_offsetnorth(float value) { + + _impl_.offsetnorth_ = value; +} +inline void EstimatedState::set_offsetnorth(float value) { + _internal_set_offsetnorth(value); + // @@protoc_insertion_point(field_set:NavigationInfo.EstimatedState.offsetNorth) +} + +// float offsetEast = 6; +inline void EstimatedState::clear_offseteast() { + _impl_.offseteast_ = 0; +} +inline float EstimatedState::_internal_offseteast() const { + return _impl_.offseteast_; +} +inline float EstimatedState::offseteast() const { + // @@protoc_insertion_point(field_get:NavigationInfo.EstimatedState.offsetEast) + return _internal_offseteast(); +} +inline void EstimatedState::_internal_set_offseteast(float value) { + + _impl_.offseteast_ = value; +} +inline void EstimatedState::set_offseteast(float value) { + _internal_set_offseteast(value); + // @@protoc_insertion_point(field_set:NavigationInfo.EstimatedState.offsetEast) +} + +// float offsetDown = 7; +inline void EstimatedState::clear_offsetdown() { + _impl_.offsetdown_ = 0; +} +inline float EstimatedState::_internal_offsetdown() const { + return _impl_.offsetdown_; +} +inline float EstimatedState::offsetdown() const { + // @@protoc_insertion_point(field_get:NavigationInfo.EstimatedState.offsetDown) + return _internal_offsetdown(); +} +inline void EstimatedState::_internal_set_offsetdown(float value) { + + _impl_.offsetdown_ = value; +} +inline void EstimatedState::set_offsetdown(float value) { + _internal_set_offsetdown(value); + // @@protoc_insertion_point(field_set:NavigationInfo.EstimatedState.offsetDown) +} + +// float roll = 8; +inline void EstimatedState::clear_roll() { + _impl_.roll_ = 0; +} +inline float EstimatedState::_internal_roll() const { + return _impl_.roll_; +} +inline float EstimatedState::roll() const { + // @@protoc_insertion_point(field_get:NavigationInfo.EstimatedState.roll) + return _internal_roll(); +} +inline void EstimatedState::_internal_set_roll(float value) { + + _impl_.roll_ = value; +} +inline void EstimatedState::set_roll(float value) { + _internal_set_roll(value); + // @@protoc_insertion_point(field_set:NavigationInfo.EstimatedState.roll) +} + +// float pitch = 9; +inline void EstimatedState::clear_pitch() { + _impl_.pitch_ = 0; +} +inline float EstimatedState::_internal_pitch() const { + return _impl_.pitch_; +} +inline float EstimatedState::pitch() const { + // @@protoc_insertion_point(field_get:NavigationInfo.EstimatedState.pitch) + return _internal_pitch(); +} +inline void EstimatedState::_internal_set_pitch(float value) { + + _impl_.pitch_ = value; +} +inline void EstimatedState::set_pitch(float value) { + _internal_set_pitch(value); + // @@protoc_insertion_point(field_set:NavigationInfo.EstimatedState.pitch) +} + +// float yaw = 10; +inline void EstimatedState::clear_yaw() { + _impl_.yaw_ = 0; +} +inline float EstimatedState::_internal_yaw() const { + return _impl_.yaw_; +} +inline float EstimatedState::yaw() const { + // @@protoc_insertion_point(field_get:NavigationInfo.EstimatedState.yaw) + return _internal_yaw(); +} +inline void EstimatedState::_internal_set_yaw(float value) { + + _impl_.yaw_ = value; +} +inline void EstimatedState::set_yaw(float value) { + _internal_set_yaw(value); + // @@protoc_insertion_point(field_set:NavigationInfo.EstimatedState.yaw) +} + +// float linearVelocityNorth = 11; +inline void EstimatedState::clear_linearvelocitynorth() { + _impl_.linearvelocitynorth_ = 0; +} +inline float EstimatedState::_internal_linearvelocitynorth() const { + return _impl_.linearvelocitynorth_; +} +inline float EstimatedState::linearvelocitynorth() const { + // @@protoc_insertion_point(field_get:NavigationInfo.EstimatedState.linearVelocityNorth) + return _internal_linearvelocitynorth(); +} +inline void EstimatedState::_internal_set_linearvelocitynorth(float value) { + + _impl_.linearvelocitynorth_ = value; +} +inline void EstimatedState::set_linearvelocitynorth(float value) { + _internal_set_linearvelocitynorth(value); + // @@protoc_insertion_point(field_set:NavigationInfo.EstimatedState.linearVelocityNorth) +} + +// float linearVelocityEast = 12; +inline void EstimatedState::clear_linearvelocityeast() { + _impl_.linearvelocityeast_ = 0; +} +inline float EstimatedState::_internal_linearvelocityeast() const { + return _impl_.linearvelocityeast_; +} +inline float EstimatedState::linearvelocityeast() const { + // @@protoc_insertion_point(field_get:NavigationInfo.EstimatedState.linearVelocityEast) + return _internal_linearvelocityeast(); +} +inline void EstimatedState::_internal_set_linearvelocityeast(float value) { + + _impl_.linearvelocityeast_ = value; +} +inline void EstimatedState::set_linearvelocityeast(float value) { + _internal_set_linearvelocityeast(value); + // @@protoc_insertion_point(field_set:NavigationInfo.EstimatedState.linearVelocityEast) +} + +// float linearVelocityDown = 13; +inline void EstimatedState::clear_linearvelocitydown() { + _impl_.linearvelocitydown_ = 0; +} +inline float EstimatedState::_internal_linearvelocitydown() const { + return _impl_.linearvelocitydown_; +} +inline float EstimatedState::linearvelocitydown() const { + // @@protoc_insertion_point(field_get:NavigationInfo.EstimatedState.linearVelocityDown) + return _internal_linearvelocitydown(); +} +inline void EstimatedState::_internal_set_linearvelocitydown(float value) { + + _impl_.linearvelocitydown_ = value; +} +inline void EstimatedState::set_linearvelocitydown(float value) { + _internal_set_linearvelocitydown(value); + // @@protoc_insertion_point(field_set:NavigationInfo.EstimatedState.linearVelocityDown) +} + +// float angularVelocityNorth = 14; +inline void EstimatedState::clear_angularvelocitynorth() { + _impl_.angularvelocitynorth_ = 0; +} +inline float EstimatedState::_internal_angularvelocitynorth() const { + return _impl_.angularvelocitynorth_; +} +inline float EstimatedState::angularvelocitynorth() const { + // @@protoc_insertion_point(field_get:NavigationInfo.EstimatedState.angularVelocityNorth) + return _internal_angularvelocitynorth(); +} +inline void EstimatedState::_internal_set_angularvelocitynorth(float value) { + + _impl_.angularvelocitynorth_ = value; +} +inline void EstimatedState::set_angularvelocitynorth(float value) { + _internal_set_angularvelocitynorth(value); + // @@protoc_insertion_point(field_set:NavigationInfo.EstimatedState.angularVelocityNorth) +} + +// float angularVelocityEast = 15; +inline void EstimatedState::clear_angularvelocityeast() { + _impl_.angularvelocityeast_ = 0; +} +inline float EstimatedState::_internal_angularvelocityeast() const { + return _impl_.angularvelocityeast_; +} +inline float EstimatedState::angularvelocityeast() const { + // @@protoc_insertion_point(field_get:NavigationInfo.EstimatedState.angularVelocityEast) + return _internal_angularvelocityeast(); +} +inline void EstimatedState::_internal_set_angularvelocityeast(float value) { + + _impl_.angularvelocityeast_ = value; +} +inline void EstimatedState::set_angularvelocityeast(float value) { + _internal_set_angularvelocityeast(value); + // @@protoc_insertion_point(field_set:NavigationInfo.EstimatedState.angularVelocityEast) +} + +// float angularVelocityDown = 16; +inline void EstimatedState::clear_angularvelocitydown() { + _impl_.angularvelocitydown_ = 0; +} +inline float EstimatedState::_internal_angularvelocitydown() const { + return _impl_.angularvelocitydown_; +} +inline float EstimatedState::angularvelocitydown() const { + // @@protoc_insertion_point(field_get:NavigationInfo.EstimatedState.angularVelocityDown) + return _internal_angularvelocitydown(); +} +inline void EstimatedState::_internal_set_angularvelocitydown(float value) { + + _impl_.angularvelocitydown_ = value; +} +inline void EstimatedState::set_angularvelocitydown(float value) { + _internal_set_angularvelocitydown(value); + // @@protoc_insertion_point(field_set:NavigationInfo.EstimatedState.angularVelocityDown) +} + +// float depth = 17; +inline void EstimatedState::clear_depth() { + _impl_.depth_ = 0; +} +inline float EstimatedState::_internal_depth() const { + return _impl_.depth_; +} +inline float EstimatedState::depth() const { + // @@protoc_insertion_point(field_get:NavigationInfo.EstimatedState.depth) + return _internal_depth(); +} +inline void EstimatedState::_internal_set_depth(float value) { + + _impl_.depth_ = value; +} +inline void EstimatedState::set_depth(float value) { + _internal_set_depth(value); + // @@protoc_insertion_point(field_set:NavigationInfo.EstimatedState.depth) +} + +// float altitude = 18; +inline void EstimatedState::clear_altitude() { + _impl_.altitude_ = 0; +} +inline float EstimatedState::_internal_altitude() const { + return _impl_.altitude_; +} +inline float EstimatedState::altitude() const { + // @@protoc_insertion_point(field_get:NavigationInfo.EstimatedState.altitude) + return _internal_altitude(); +} +inline void EstimatedState::_internal_set_altitude(float value) { + + _impl_.altitude_ = value; +} +inline void EstimatedState::set_altitude(float value) { + _internal_set_altitude(value); + // @@protoc_insertion_point(field_set:NavigationInfo.EstimatedState.altitude) +} + +#ifdef __GNUC__ + #pragma GCC diagnostic pop +#endif // __GNUC__ + +// @@protoc_insertion_point(namespace_scope) + +} // namespace NavigationInfo + +// @@protoc_insertion_point(global_scope) + +#include +#endif // GOOGLE_PROTOBUF_INCLUDED_GOOGLE_PROTOBUF_INCLUDED_NavigationInfo_2eproto