<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.wiegert.link/index.php?action=history&amp;feed=atom&amp;title=OpenMower</id>
	<title>OpenMower - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.wiegert.link/index.php?action=history&amp;feed=atom&amp;title=OpenMower"/>
	<link rel="alternate" type="text/html" href="https://wiki.wiegert.link/index.php?title=OpenMower&amp;action=history"/>
	<updated>2026-05-06T09:03:07Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.37.1</generator>
	<entry>
		<id>https://wiki.wiegert.link/index.php?title=OpenMower&amp;diff=371&amp;oldid=prev</id>
		<title>Damme: Created page with &quot;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: Ang...&quot;</title>
		<link rel="alternate" type="text/html" href="https://wiki.wiegert.link/index.php?title=OpenMower&amp;diff=371&amp;oldid=prev"/>
		<updated>2023-04-18T09:42:07Z</updated>

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