OpenMower
From World Wide Wiegert Wiki - WWWW
Subscribers:
1. cmd_vel_sub: Subscribes to the cmd_vel topic. ◦ Message Type: geometry_msgs::Twist ◦ Description: Contains the desired linear and angular velocities for the robot. ◦ Contents: ▪ linear.x: Linear velocity in the x-axis direction (m/s). ▪ linear.y: Linear velocity in the y-axis direction (m/s). ▪ linear.z: Linear velocity in the z-axis direction (m/s). ▪ angular.x: Angular velocity around the x-axis (rad/s). ▪ angular.y: Angular velocity around the y-axis (rad/s). ▪ angular.z: Angular velocity around the z-axis (rad/s). 2. high_level_status_sub: Subscribes to the /mower_logic/current_state topic. ◦ Message Type: mower_msgs::HighLevelStatus ◦ Description: Receives the high-level state of the mower from the mower logic node. This state includes information about the current operating mode, substate, GPS quality, battery status, charging status, and emergency flag. ◦ Fields: ▪ state: An integer representing the current high-level state of the mower (e.g., idle, autonomous, recording, etc.). ▪ state_name: A string representing the name of the current high-level state (e.g., "IDLE", "AUTONOMOUS", "RECORDING"). ▪ sub_state_name: A string representing the name of the current substate (e.g., "SUBSTATE_1", "SUBSTATE_2", "SUBSTATE_3", "SUBSTATE_4"). ▪ gps_quality_percent: A float32 value representing the GPS quality as a percentage, where 0% indicates no GPS signal and 100% indicates a perfect GPS signal. ▪ battery_percent: A float32 value representing the battery charge level as a percentage, where 0% indicates an empty battery and 100% indicates a fully charged battery. ▪ is_charging: A boolean value indicating whether the mower is currently charging or not. ▪ emergency: A boolean value indicating if there is an active emergency situation, such as a collision, detected by the mower. ◦ Callback Function: highLevelStatusReceived ▪ Description: Handles the received high-level state of the mower, updating the internal state representation for the mower communication node.
Publishers:
1. status_pub: Publishes to the /mower/status topic. ◦ Message Type: mower_msgs::Status ◦ Description: Publishes the current status of the mower, including information about the mower's low-level systems, power status, ultrasonic range measurements, emergency status, battery, and ESC statuses. ◦ Fields: ▪ stamp: A time object representing the timestamp of the message. ▪ mower_status: An integer representing the mower's status, such as initializing or OK. ▪ raspberry_pi_power: A boolean value indicating if the Raspberry Pi has power. ▪ gps_power: A boolean value indicating if the GPS module has power. ▪ esc_power: A boolean value indicating if the Electronic Speed Controllers (ESCs) have power. ▪ rain_detected: A boolean value indicating if rain is detected. ▪ sound_module_available: A boolean value indicating if the sound module is available. ▪ sound_module_busy: A boolean value indicating if the sound module is busy. ▪ ui_board_available: A boolean value indicating if the UI board is available. ▪ ultrasonic_ranges: An array of 5 float32 values representing the ultrasonic range measurements. ▪ emergency: A boolean value indicating if there is an active emergency situation, such as a collision, detected by the mower. ▪ v_charge: A float32 value representing the charge voltage. ▪ v_battery: A float32 value representing the battery voltage. ▪ charge_current: A float32 value representing the charge current. ▪ left_esc_status: An ESCStatus object containing information about the status of the left ESC. ▪ right_esc_status: An ESCStatus object containing information about the status of the right ESC. ▪ mow_esc_status: An ESCStatus object containing information about the status of the mow ESC. 2. wheel_tick_pub: Publishes the mower/wheel_ticks topic. ◦ Message Type: xbot_msgs::WheelTick ◦ Description: Publishes the wheel tick information for the left and right wheels of the mower, which is used to calculate odometry. ◦ Fields: ▪ header: Standard ROS message header containing a timestamp and frame_id. ▪ left_ticks: The number of ticks for the left wheel since the last message. ▪ right_ticks: The number of ticks for the right wheel since the last message. ▪ interval: The time interval in seconds between the current and previous wheel tick message. 3. sensor_imu_pub: Publishes to the imu/data_raw topic. ◦ Message Type: sensor_msgs::Imu ◦ Description: Provides raw IMU data, including linear acceleration and angular velocity. ◦ Contents: ▪ header: Message header, containing timestamp and frame ID. ▪ orientation: Orientation as a quaternion (x, y, z, w). ▪ orientation_covariance: Orientation covariance matrix (3x3). ▪ angular_velocity: Angular velocity vector (x, y, z) in rad/s. ▪ angular_velocity_covariance: Angular velocity covariance matrix (3x3). ▪ linear_acceleration: Linear acceleration vector (x, y, z) in m/s^2. ▪ linear_acceleration_covariance: Linear acceleration covariance matrix (3x3). 4. sensor_mag_pub: Publishes to the imu/mag topic. ◦ Message Type: sensor_msgs::MagneticField ◦ Description: Provides magnetic field data from the IMU. ◦ Contents: ▪ header: Message header, containing timestamp and frame ID. ▪ magnetic_field: Magnetic field vector (x, y, z) in Tesla. ▪ magnetic_field_covariance: Magnetic field covariance matrix (3x3).
Services:
1. mow_service: Advertises the mower_service/mow_enabled service. ◦ Service Type: std_srvs::SetBool ◦ Description: Allows enabling or disabling the mower's mowing functionality. ◦ Request Fields: ▪ data: A boolean value representing the desired state of the mower's mowing functionality. True for enabling and False for disabling. ◦ Response Fields: ▪ success: A boolean value indicating if the requested operation was successful. ▪ message: A string providing additional information about the outcome of the operation. 2. emergency_service: Advertises the mower_service/emergency service. ◦ Service Type: std_srvs::Trigger ◦ Description: Triggers an emergency stop for the mower. ◦ Request Fields: No fields required. ◦ Response Fields: ▪ success: A boolean value indicating if the emergency stop was successfully triggered. ▪ message: A string providing additional information about the outcome of the operation.