Source code
Our ROS parameters can be found in src/global_launch/config
.
Its README has been copied below.
Sailbot ROS Parameter Configuration¶
The description of each parameter contained in globals.yaml
are described in this README. Descriptions of parameters
for each node are included. These parameters can be changed dynamically as well via the command line interface. To
learn more, see the ROS 2 documentation on ROS 2 Parameters.
Each parameter is specified in the following format:
- Description: The description of the parameter.
- Datatype: The datatype. If it happens to be an array, the datatype of the elements should be specified and the length of the array.
- Range/Acceptable Values: Ranges of integers and floating point values are specified with interval notation.
Namely,
[]
denotes inclusive boundaries, while()
denotes non-inclusive boundaries. For strings, the acceptable values are listed.
Additional information may be included when necessary.
[!IMPORTANT] This document should be updated when any changes occur to the ROS parameters specified in
globals.yaml
.
Global Parameters¶
ROS parameters common across all ROS nodes in the network.
pub_period_sec
- Description: The period at which the publishers publish.
- Datatype:
double
- Range:
(0.0, MAX_DOUBLE)
Local Pathfinding Parameters¶
ROS parameters specific to the nodes in the local_pathfinding package.
mgp_main
¶
global_path_filepath
- Description: The absolute filepath to a global path csv file.
- Datatype:
string
- Acceptable Values: Any valid filepath to a properly formatted csv file.
interval_spacing
- Description: The upper bound on spacing between each point in the global path in km.
- Datatype:
double
- Range:
(0.0, MAX_DOUBLE)
write
- Description: Whether or not to write a generated global path to a new csv file.
- Datatype:
boolean
- Acceptable Values:
true
,false
gps_threshold
- Description: A new path will be generated if the GPS position changed by more thangps_threshold*interval_spacing.
- Datatype:
double
- Acceptable Values:
(1.0, MAX_DOUBLE)
force
- Description: Force the mock global path callback to update the global path when set to true.
- Datatype:
boolean
- Acceptable Values:
true
,false
navigate_main
¶
path_planner
- Description: The path planner to use. Planners are from OMPL Library.
- Datatype:
string
- Acceptable Values:
"bitstar"
,"bfmtstar"
,"fmtstar"
,"informedrrtstar"
,"lazylbtrrt"
,"lazyprmstar"
,"lbtrrt"
,"prmstar"
,"rrtconnect"
,"rrtsharp"
,"rrtstar"
,"rrtxstatic"
,"sorrtstar"
Controller Parameters¶
ROS parameters specific to the nodes in the Controller.
wingsail_ctrl_node¶
reynolds_number
- Description: The Reynolds number of the wind.
- Datatype:
double
- Range:
(0.0, MAX_DOUBLE)
angle_of_attack
- Description: The angle of attack of the sail.
- Datatype:
double
- Range:
(-180.0, 180.0]
Boat Simulator Parameters¶
ROS parameters specific to the nodes in the boat simulator.
low_level_control_node
¶
info_log_throttle_period_sec
- Description: Limits the info logs to avoid overwhelming the terminal.
- Datatype:
double
- Range:
(0.0, MAX_DOUBLE)
logging_throttle_period_sec
- Description: Controls the message logging throttle period.
- Datatype:
double
- Range:
(0.0, MAX_DOUBLE)
qos_depth
- Description: The maximum number of subscription messages to queue for further processing.
- Datatype:
int
- Range:
[1, MAX_INT)
rudder.actuation_execution_period_sec
- Description: The period at which the main loop in the rudder action server executes in seconds.
- Datatype:
double
- Range:
(0.0, MAX_DOUBLE)
rudder.disable_actuation
- Description: Controls whether or not rudder actuation is disabled. If true, the rudder angle is fixed to some value. Otherwise, the PID mechanism is used to control the rudder angle.
- Datatype:
boolean
- Acceptable Values:
true
,false
rudder.fixed_angle_deg
- Description: The angle to fix the rudder in degrees. Only used if
rudder.disable_actuation
is true. - Datatype:
double
- Range:
[-45.0, 45.0]
rudder.pid.buffer_size
- Description: The buffer size of PID that stores previously computed errors over time.
- Datatype:
int
- Range:
[1, MAX_INT)
rudder.pid.kd
- Description: The PID Derivative constant for the rudder. Only used if
rudder.disable_actuation
is false. - Datatype:
double
- Range:
[0.0, MAX_DOUBLE)
rudder.pid.ki
- Description: The PID Integral constant for the rudder. Only used if
rudder.disable_actuation
is false. - Datatype:
double
- Range:
[0.0, MAX_DOUBLE)
rudder.pid.kp
- Description: The PID Proportionality constant for the rudder. Only used if
rudder.disable_actuation
is false. - Datatype:
double
- Range:
[0.0, MAX_DOUBLE)
wingsail.actuation_execution_period_sec
- Description: The period at which the main loop in the sail action server executes in seconds.
- Datatype:
double
- Range:
(0.0, MAX_DOUBLE)
wingsail.actuation_speed_deg_per_sec
- Description: The speed at which the wingsail trim tab actuates in degrees per second.
- Datatype:
double
- Range:
(0.0, MAX_DOUBLE)
wingsail.disable_actuation
- Description: Controls whether or not wingsail trim tab actuation is disabled. If true, the trim tab is fixed to some value. Otherwise, the trim tab angle is determined by the wingsail controller.
- Datatype:
boolean
- Acceptable Values:
true
,false
wingsail.fixed_angle_degree
- Description: Fixed the wingsail trim tab to some angle in degrees. Only used if
wingsail.disable_actuation
is true. - Datatype:
double
- Range:
[-180.0, 180.0)
physics_engine_node
¶
action_send_goal_timeout_sec
- Description: How long the action clients wait for the action server to respond to a request before timing out in seconds.
- Datatype:
double
- Range:
(0.0, MAX_DOUBLE)
info_log_throttle_period_sec
- Description: Limits the info logs to avoid overwhelming the terminal.
- Datatype:
double
- Range:
(0.0, MAX_DOUBLE)
logging_throttle_period_sec
- Description: Controls the message logging throttle period.
- Datatype:
double
- Range:
(0.0, MAX_DOUBLE)
qos_depth
- Description: The maximum number of subscription messages to queue for further processing.
- Datatype:
int
- Range:
[1, MAX_INT)
rudder.actuation_request_period_sec
- Description: How often the rudder action client requests a rudder actuation in seconds.
- Datatype:
double
- Range:
(0.0, MAX_DOUBLE)
wingsail.actuation_request_period_sec
- Description: How often the sail action server requests a wingsail actuation.
- Datatype:
double
- Range:
(0.0, MAX_DOUBLE)
wind_sensor.constant_params.value
- Description: Specifies the constant vector returned by the constant generator that represents the wind velocity in kmph.
Namely, the same value is fixed in the wind sensors. The value is an array containing the
x
andy
components of the velocity. Only used ifwind_sensor.generator_type
isconstant
. - Datatype:
double
array, length 2 - Range:
(MIN_DOUBLE, MAX_DOUBLE)
wind_sensor.gaussian_params.corr_xy
- Description: The correlation coefficient between x and y components of the wind velocity. Only used if
wind_sensor.generator_type
isgaussian
. - Datatype:
double
- Range:
[-1.0, 1.0]
wind_sensor.gaussian_params.mean
- Description: The mean wind velocity parameter in kmph for the gaussian generator. The mean is an array containing
the
x
andy
components of the velocity. Only used ifwind_sensor.generator_type
isgaussian
. - Datatype:
double
array, length 2 - Range:
(MIN_DOUBLE, MAX_DOUBLE)
wind_sensor.gaussian_params.std_dev
- Description: The standard deviation parameters in kmph for the gaussian generator. There are two standard deviations
specified within an array: one for the
x
component, and one for they
component. Only used ifwind_sensor.generator_type
isgaussian
. - Datatype:
double
array, length 2 - Range:
(0.0, MAX_DOUBLE)
- If a standard deviation of zero is desired, then consider using the constant generator instead.
wind_sensor.generator_type
- Description: Determines the type of random number generator that will be used to generate wind sensor data.
- Datatype:
string
- Acceptable Values:
gaussian
,constant
wind_generation.mvgaussian_params.mean
- Description: The mean value for the wind generated, expressed in kilometers per hour (km/h), for the multivariate Gaussian generator.
- Datatype:
double
array, length 2 - Range:
(0.0, MAX_DOUBLE)
wind_generation.mvgaussian_params.cov
- Description: The covariance matrix for the generated wind, represented as a string formatted as a 2D
double
array, since ROS parameters do not support native 2D array types. - Datatype:
string
- Range:
(0.0, MAX_DOUBLE)
current_generation.mvgaussian_params.mean
- Description: The mean value for the current generated, expressed in kilometers per hour (km/h), for the multivariate Gaussian generator.
- Datatype:
double
array, length 2 - Range:
(0.0, MAX_DOUBLE)
current_generation.mvgaussian_params.cov
- Description: The covariance matrix for the generated current, represented as a string formatted as a 2D
double
array, since ROS parameters do not support native 2D array types. - Datatype:
string
- Range:
(0.0, MAX_DOUBLE)
data_collection_node
¶
file_name
- Description: The name of the file in which the data is saved, excluding the file extension.
- Datatype:
string
- Acceptable Values: Any valid file name.
qos_depth
- Description: The maximum number of subscription messages to queue for further processing.
- Datatype:
int
- Range:
[1, MAX_INT)
topics
- Description: Specifies the topics to subscribe to. It should adhere to the format
['topic_name_1', 'topic_type_1', ...]
. - Datatype:
string
array with an even length - Acceptable Values: Each pair within the array must consist of a valid topic name as the first string and the corresponding correct type as the second string.
bag
- Description: Determines whether to save recorded data as a ROS bag.
- Datatype:
boolean
- Acceptable Values:
true
,false
json
- Description: Determines whether to save recorded data as a JSON file.
- Datatype:
boolean
- Acceptable Values:
true
,false
write_period_sec
- Description: The interval (in seconds) for writing queued data to the JSON file.
- Datatype:
double
- Range:
(0.0, MAX_DOUBLE)