-
Notifications
You must be signed in to change notification settings - Fork 47
Naming Conventions
An overview of the nodes and topics is in our repository: Node Overview (open with inkscape)
- sailing_state
- wind_direction_apparent
- wind_direction_real
- wind_direction_average
- wind_speed_apparent
- wind_speed_real
- heading
- pitch
- roll
- goal_heading
- imu
- current_wp
- gps
- gps_satellites
- position
- position_error
- PoS_control
- tack_sail
- rudder_control
- tack_rudder
- distance_to_waypoint
- heading_to_waypoint
- camera_detection
- remote_control
- temporary_wp
- debug_sailsheet_normalized
- debug_sailsheet_pwm
- led_blink
- debugging_2D_plot
- debugging_2D_plot_origin
- debugging_2D_plot_wp
- gps_fix
- gpd_satellites
- mag_x_comp
- mag_y_comp
- mag_x
- mag_y
- mag_z
The coordinate system of the boat is z-axis down, y-axis point to star port.
See the picture below:
Data type: [String]
-
'normal'
sail towards goal heading -
'tack_to_port_tack'
and'tack_to_stbd_tack'
overwrites goal heading
Data type: [Float64]
- angle 0 to 360 degrees, giving the direction the wind is coming from, relative to the boat; 0 degrees means boat is heading directly upwind (see figure below)
Data type: [Float32]
- angle 0 to 360 degrees, giving an estimate of the actual direction the wind is coming from, 0 degrees is North (see figure below)
Data type: [Float32]
- angle 0 to 360 degrees, giving the average direction the wind is coming from, 0 degrees is North (see figure below)
Data type: [Float64]
- Speed in m/s
Data type: [Float32]
- Speed in m/s
Data type: [Float32]
- angle 0 to 360 degrees, giving the current heading of the boat; 0 degrees is North (see figure below)
Data type: [Float32]
- pitch angle in radian between -pi and pi based on the accelerometer
Data type: [Float32]
- roll angle in radian between -pi and pi based on the accelerometer
Data type: [Float32]
- angle 0 to 360 degrees, heading that the boat is currently trying to achieve; 0 degrees is North (see figure below)
Data type: self defined msg
- accx [Float32]
- accy [Float32]
- accz [Float32]
- gyrox [Float32]
- gyroy [Float32]
- gyroz [Float32]
- magx [Float32]
- magy [Float32]
- magz [Float32]
Data type: nmea NavSatFix: sensor_msgs/NavSatFix
- next point the path planning wants the boat to head to
Data type: nmea NavSatFix: sensor_msgs/NavSatFix
- rough position from the gps
Data type: [Int16]
- Number of satellites detected by the GPS
Data type: nmea NavSatFix: sensor_msgs/NavSatFix
- estimate of the position based on imu and gps
Data type: [Float32]
- In meters, giving the absolute error in global position.
Data type: [Float32]
- In degrees, giving the angle at which the sail should be, based on current heading and wind speed (see figure above)
Data type: [UInt16]
- In degrees, giving maximum winch servo the control angle (0 to 90)
Data type: [Float32]
- In degrees, giving the angle at which the sail should be for completing a tack
Data type: [Int16]
- In degrees, giving the angle at which the rudder should be for achieving the current goal heading (see figure above)
Data type: [Float32]
- In degrees, giving the rudder angle for completing a tack manoeuvre
Data type: [Float32]
- In metres, the cartesian distance between the boat's GPS location and the active waypoint. Only published while the current task is sailing to a waypoint.
Data type: [Float32]
- The heading from the boat's GPS location to the active waypoint. Only published while the current task is sailing to a waypoint.
Data type: [String]
- publish
nothing
when nothing is detected, anddetected
when something is detected
Data type: [Float32]
- The servo setting for the sail normalized between 0 and 1, 0 representing the sheet being fully in, 1 the sheet being fully out
Data type: [Float32]
- raw PWM value given to the sail pin
Data type: [Int32]
- rgb values given as an int with a shift of 300:
- red=
255*300*300 + 0*300 + 0
- green=
0*300*300 + 255*300 + 0
- lilac=
200*300*300 + 162*300 + 200
Data type: [MarkerArray]
- Pulish the history of the boat position for RViz
Data type: [NavSatFix]
- Pulish map origin position for RViz
Data type: [MarkerArray]
- Pulish the waypoints for RViz
Data type: [gpswtime]
- Publish the gps time as well as the boat position
Data tyoe: [Int16]
- Publish the amount of satellites visible by the gps
Data type: [Float32]
- magnetometer X compensated
Data type: [Float32]
- magnetometer Y compensated
Data type: [Float32]
- raw magnetometer X
Data type: [Float32]
- raw magnetometer Y
Data type: [Float32]
- raw magnetometer Z
Data type: self defined msg
- velx [Float32]
- vely [Float32]
- velz [Float32]
Data type: self defined msg
- fix [NavSatFix]
- time_h [uint16]
- time_m [uint16]
- time_s [uint16]
The parameters are defined in yaml files in the sailing_robot/launch/parameters folder. A few notes on parameters:
- make sure you add a comment above each parameter, explaining it and specifying what units it is in
- getting parameters from the parameter server takes noticeably time (tens of ms), so don't use it in loops
- parameters are values that may change from experiment to experiment, but not during the experiment
- think python dictionary! Parameters can be interpreted as python dictionaries containing python dictionaries...
- more information: ROS wiki
the output to be published