No version for distro humble showing jazzy. Known supported distros are highlighted in the buttons above.
Package symbol

rosbot_mavlink_bridge package from rosbot_mavlink_bridge repo

rosbot_mavlink_bridge

ROS Distro
jazzy

Package Summary

Version 2.0.2
License Apache-2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/husarion/rosbot-firmware.git
VCS Type git
VCS Version jazzy
Last Updated 2026-06-19
Dev Status MAINTAINED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Bridge node that translates the firmware's MAVLink wire protocol into the same ROS 2 API the micro-ROS agent currently exposes, so downstream consumers (e.g. rosbot_ros) see byte-identical topics/services. Single source tree builds for both jazzy and humble (see MAVLINK_MIGRATION.md D24).

Additional Links

Maintainers

  • Husarion

Authors

  • Rafal Gorecki

rosbot_mavlink_bridge

ROS 2 bridge that talks MAVLink to the firmware (rosbot_mavlink / rosbot_xl_mavlink PlatformIO envs) and exposes the same topics and services that the existing micro-ROS firmware advertises today. From a downstream consumer’s perspective (e.g. the rosbot_ros driver inside rosbot-snap), there is no migration: same node name, same namespace, same QoS — only the wire format changes.

See MAVLINK_MIGRATION.md for the full implementation spec.

Build

The bridge is a regular ament_cmake package and is self-contained — the MAVLink dialect headers it needs are the canonical mavlink_dialect/ tree shipped inside the package. just mavgen (from the repo root) regenerates them in place; the firmware build (PlatformIO) reads from the same directory via its include path. Single source of truth, no duplication.

# from the repo root
colcon build --packages-select rosbot_mavlink_bridge
. install/setup.bash

The CI matrix builds the same source tree against both jazzy and humble containers (see .github/workflows/ci.yaml — D24).

Apt install (rosdistro)

Once released through bloom, the bridge is available as ros-<distro>-rosbot-mavlink-bridge and is pulled in automatically as an exec_depend of rosbot_bringup. Users on apt do not need this repo — the bridge ships alongside rosbot_ros.

Run

ROSbot XL (UDP transport):

ros2 launch rosbot_mavlink_bridge rosbot_xl.launch.py namespace:=rosbot

ROSbot (serial transport — pick the SBC’s SBC<->MCU UART):

ros2 launch rosbot_mavlink_bridge rosbot.launch.py namespace:=rosbot \
  --ros-args -p serial_port:=/dev/ttyS4

The bridge waits for the firmware’s boot banner (rosbot[_xl] <version> mavlink) before declaring itself CONNECTED and publishing telemetry — that’s the D19 mismatch detector.

Topics / services

Path (relative to namespace) Type QoS
battery sensor_msgs/BatteryState best_effort, depth 1
_imu/data sensor_msgs/Imu best_effort, depth 1
_motors/feedback sensor_msgs/JointState best_effort, depth 1
buttons std_msgs/UInt8 best_effort, depth 1
ranges (rosbot only) sensor_msgs/Range best_effort, depth 1
_motors/cmd std_msgs/Float32MultiArray best_effort, depth 1
leds std_msgs/UInt8 best_effort, depth 1
led_strip (rosbot_xl only) sensor_msgs/Image best_effort, depth 1
_mcu_id (service) std_srvs/Trigger

ros2 node info /<ns>/rosbot_mcu and ros2 topic info -v /<ns>/<topic> output is byte-identical between this bridge and the micro-ROS agent — that is the Phase-4 acceptance criterion.

Parameters

See config/rosbot.yaml and config/rosbot_xl.yaml for variants. Key parameters:

  • transport: udp serial
  • peer_ip / peer_port / local_port — UDP only (mavros default ports)
  • serial_port / serial_baudrate — serial only
  • ros_namespace — prefixed onto every advertised topic/service/node name
  • enable_ranges, enable_led_strip — variant gates
  • publish_link_state — if true, advertise an extra mcu_link_state std_msgs/UInt8 topic for diagnostics (off by default for API parity)
  • timesync_alpha — EWMA factor for the time-offset filter (D15)
  • expected_banner_regex — boot-banner gate string
CHANGELOG
No CHANGELOG found.

Package Dependencies

System Dependencies

No direct system dependencies.

Dependant Packages

Name Deps
rosbot_bringup

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged rosbot_mavlink_bridge at Robotics Stack Exchange

Package symbol

rosbot_mavlink_bridge package from rosbot_mavlink_bridge repo

rosbot_mavlink_bridge

ROS Distro
jazzy

Package Summary

Version 2.0.2
License Apache-2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/husarion/rosbot-firmware.git
VCS Type git
VCS Version jazzy
Last Updated 2026-06-19
Dev Status MAINTAINED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Bridge node that translates the firmware's MAVLink wire protocol into the same ROS 2 API the micro-ROS agent currently exposes, so downstream consumers (e.g. rosbot_ros) see byte-identical topics/services. Single source tree builds for both jazzy and humble (see MAVLINK_MIGRATION.md D24).

Additional Links

Maintainers

  • Husarion

Authors

  • Rafal Gorecki

rosbot_mavlink_bridge

ROS 2 bridge that talks MAVLink to the firmware (rosbot_mavlink / rosbot_xl_mavlink PlatformIO envs) and exposes the same topics and services that the existing micro-ROS firmware advertises today. From a downstream consumer’s perspective (e.g. the rosbot_ros driver inside rosbot-snap), there is no migration: same node name, same namespace, same QoS — only the wire format changes.

See MAVLINK_MIGRATION.md for the full implementation spec.

Build

The bridge is a regular ament_cmake package and is self-contained — the MAVLink dialect headers it needs are the canonical mavlink_dialect/ tree shipped inside the package. just mavgen (from the repo root) regenerates them in place; the firmware build (PlatformIO) reads from the same directory via its include path. Single source of truth, no duplication.

# from the repo root
colcon build --packages-select rosbot_mavlink_bridge
. install/setup.bash

The CI matrix builds the same source tree against both jazzy and humble containers (see .github/workflows/ci.yaml — D24).

Apt install (rosdistro)

Once released through bloom, the bridge is available as ros-<distro>-rosbot-mavlink-bridge and is pulled in automatically as an exec_depend of rosbot_bringup. Users on apt do not need this repo — the bridge ships alongside rosbot_ros.

Run

ROSbot XL (UDP transport):

ros2 launch rosbot_mavlink_bridge rosbot_xl.launch.py namespace:=rosbot

ROSbot (serial transport — pick the SBC’s SBC<->MCU UART):

ros2 launch rosbot_mavlink_bridge rosbot.launch.py namespace:=rosbot \
  --ros-args -p serial_port:=/dev/ttyS4

The bridge waits for the firmware’s boot banner (rosbot[_xl] <version> mavlink) before declaring itself CONNECTED and publishing telemetry — that’s the D19 mismatch detector.

Topics / services

Path (relative to namespace) Type QoS
battery sensor_msgs/BatteryState best_effort, depth 1
_imu/data sensor_msgs/Imu best_effort, depth 1
_motors/feedback sensor_msgs/JointState best_effort, depth 1
buttons std_msgs/UInt8 best_effort, depth 1
ranges (rosbot only) sensor_msgs/Range best_effort, depth 1
_motors/cmd std_msgs/Float32MultiArray best_effort, depth 1
leds std_msgs/UInt8 best_effort, depth 1
led_strip (rosbot_xl only) sensor_msgs/Image best_effort, depth 1
_mcu_id (service) std_srvs/Trigger

ros2 node info /<ns>/rosbot_mcu and ros2 topic info -v /<ns>/<topic> output is byte-identical between this bridge and the micro-ROS agent — that is the Phase-4 acceptance criterion.

Parameters

See config/rosbot.yaml and config/rosbot_xl.yaml for variants. Key parameters:

  • transport: udp serial
  • peer_ip / peer_port / local_port — UDP only (mavros default ports)
  • serial_port / serial_baudrate — serial only
  • ros_namespace — prefixed onto every advertised topic/service/node name
  • enable_ranges, enable_led_strip — variant gates
  • publish_link_state — if true, advertise an extra mcu_link_state std_msgs/UInt8 topic for diagnostics (off by default for API parity)
  • timesync_alpha — EWMA factor for the time-offset filter (D15)
  • expected_banner_regex — boot-banner gate string
CHANGELOG
No CHANGELOG found.

Package Dependencies

System Dependencies

No direct system dependencies.

Dependant Packages

Name Deps
rosbot_bringup

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged rosbot_mavlink_bridge at Robotics Stack Exchange

No version for distro kilted showing jazzy. Known supported distros are highlighted in the buttons above.
Package symbol

rosbot_mavlink_bridge package from rosbot_mavlink_bridge repo

rosbot_mavlink_bridge

ROS Distro
jazzy

Package Summary

Version 2.0.2
License Apache-2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/husarion/rosbot-firmware.git
VCS Type git
VCS Version jazzy
Last Updated 2026-06-19
Dev Status MAINTAINED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Bridge node that translates the firmware's MAVLink wire protocol into the same ROS 2 API the micro-ROS agent currently exposes, so downstream consumers (e.g. rosbot_ros) see byte-identical topics/services. Single source tree builds for both jazzy and humble (see MAVLINK_MIGRATION.md D24).

Additional Links

Maintainers

  • Husarion

Authors

  • Rafal Gorecki

rosbot_mavlink_bridge

ROS 2 bridge that talks MAVLink to the firmware (rosbot_mavlink / rosbot_xl_mavlink PlatformIO envs) and exposes the same topics and services that the existing micro-ROS firmware advertises today. From a downstream consumer’s perspective (e.g. the rosbot_ros driver inside rosbot-snap), there is no migration: same node name, same namespace, same QoS — only the wire format changes.

See MAVLINK_MIGRATION.md for the full implementation spec.

Build

The bridge is a regular ament_cmake package and is self-contained — the MAVLink dialect headers it needs are the canonical mavlink_dialect/ tree shipped inside the package. just mavgen (from the repo root) regenerates them in place; the firmware build (PlatformIO) reads from the same directory via its include path. Single source of truth, no duplication.

# from the repo root
colcon build --packages-select rosbot_mavlink_bridge
. install/setup.bash

The CI matrix builds the same source tree against both jazzy and humble containers (see .github/workflows/ci.yaml — D24).

Apt install (rosdistro)

Once released through bloom, the bridge is available as ros-<distro>-rosbot-mavlink-bridge and is pulled in automatically as an exec_depend of rosbot_bringup. Users on apt do not need this repo — the bridge ships alongside rosbot_ros.

Run

ROSbot XL (UDP transport):

ros2 launch rosbot_mavlink_bridge rosbot_xl.launch.py namespace:=rosbot

ROSbot (serial transport — pick the SBC’s SBC<->MCU UART):

ros2 launch rosbot_mavlink_bridge rosbot.launch.py namespace:=rosbot \
  --ros-args -p serial_port:=/dev/ttyS4

The bridge waits for the firmware’s boot banner (rosbot[_xl] <version> mavlink) before declaring itself CONNECTED and publishing telemetry — that’s the D19 mismatch detector.

Topics / services

Path (relative to namespace) Type QoS
battery sensor_msgs/BatteryState best_effort, depth 1
_imu/data sensor_msgs/Imu best_effort, depth 1
_motors/feedback sensor_msgs/JointState best_effort, depth 1
buttons std_msgs/UInt8 best_effort, depth 1
ranges (rosbot only) sensor_msgs/Range best_effort, depth 1
_motors/cmd std_msgs/Float32MultiArray best_effort, depth 1
leds std_msgs/UInt8 best_effort, depth 1
led_strip (rosbot_xl only) sensor_msgs/Image best_effort, depth 1
_mcu_id (service) std_srvs/Trigger

ros2 node info /<ns>/rosbot_mcu and ros2 topic info -v /<ns>/<topic> output is byte-identical between this bridge and the micro-ROS agent — that is the Phase-4 acceptance criterion.

Parameters

See config/rosbot.yaml and config/rosbot_xl.yaml for variants. Key parameters:

  • transport: udp serial
  • peer_ip / peer_port / local_port — UDP only (mavros default ports)
  • serial_port / serial_baudrate — serial only
  • ros_namespace — prefixed onto every advertised topic/service/node name
  • enable_ranges, enable_led_strip — variant gates
  • publish_link_state — if true, advertise an extra mcu_link_state std_msgs/UInt8 topic for diagnostics (off by default for API parity)
  • timesync_alpha — EWMA factor for the time-offset filter (D15)
  • expected_banner_regex — boot-banner gate string
CHANGELOG
No CHANGELOG found.

Package Dependencies

System Dependencies

No direct system dependencies.

Dependant Packages

Name Deps
rosbot_bringup

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged rosbot_mavlink_bridge at Robotics Stack Exchange

No version for distro lyrical showing jazzy. Known supported distros are highlighted in the buttons above.
Package symbol

rosbot_mavlink_bridge package from rosbot_mavlink_bridge repo

rosbot_mavlink_bridge

ROS Distro
jazzy

Package Summary

Version 2.0.2
License Apache-2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/husarion/rosbot-firmware.git
VCS Type git
VCS Version jazzy
Last Updated 2026-06-19
Dev Status MAINTAINED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Bridge node that translates the firmware's MAVLink wire protocol into the same ROS 2 API the micro-ROS agent currently exposes, so downstream consumers (e.g. rosbot_ros) see byte-identical topics/services. Single source tree builds for both jazzy and humble (see MAVLINK_MIGRATION.md D24).

Additional Links

Maintainers

  • Husarion

Authors

  • Rafal Gorecki

rosbot_mavlink_bridge

ROS 2 bridge that talks MAVLink to the firmware (rosbot_mavlink / rosbot_xl_mavlink PlatformIO envs) and exposes the same topics and services that the existing micro-ROS firmware advertises today. From a downstream consumer’s perspective (e.g. the rosbot_ros driver inside rosbot-snap), there is no migration: same node name, same namespace, same QoS — only the wire format changes.

See MAVLINK_MIGRATION.md for the full implementation spec.

Build

The bridge is a regular ament_cmake package and is self-contained — the MAVLink dialect headers it needs are the canonical mavlink_dialect/ tree shipped inside the package. just mavgen (from the repo root) regenerates them in place; the firmware build (PlatformIO) reads from the same directory via its include path. Single source of truth, no duplication.

# from the repo root
colcon build --packages-select rosbot_mavlink_bridge
. install/setup.bash

The CI matrix builds the same source tree against both jazzy and humble containers (see .github/workflows/ci.yaml — D24).

Apt install (rosdistro)

Once released through bloom, the bridge is available as ros-<distro>-rosbot-mavlink-bridge and is pulled in automatically as an exec_depend of rosbot_bringup. Users on apt do not need this repo — the bridge ships alongside rosbot_ros.

Run

ROSbot XL (UDP transport):

ros2 launch rosbot_mavlink_bridge rosbot_xl.launch.py namespace:=rosbot

ROSbot (serial transport — pick the SBC’s SBC<->MCU UART):

ros2 launch rosbot_mavlink_bridge rosbot.launch.py namespace:=rosbot \
  --ros-args -p serial_port:=/dev/ttyS4

The bridge waits for the firmware’s boot banner (rosbot[_xl] <version> mavlink) before declaring itself CONNECTED and publishing telemetry — that’s the D19 mismatch detector.

Topics / services

Path (relative to namespace) Type QoS
battery sensor_msgs/BatteryState best_effort, depth 1
_imu/data sensor_msgs/Imu best_effort, depth 1
_motors/feedback sensor_msgs/JointState best_effort, depth 1
buttons std_msgs/UInt8 best_effort, depth 1
ranges (rosbot only) sensor_msgs/Range best_effort, depth 1
_motors/cmd std_msgs/Float32MultiArray best_effort, depth 1
leds std_msgs/UInt8 best_effort, depth 1
led_strip (rosbot_xl only) sensor_msgs/Image best_effort, depth 1
_mcu_id (service) std_srvs/Trigger

ros2 node info /<ns>/rosbot_mcu and ros2 topic info -v /<ns>/<topic> output is byte-identical between this bridge and the micro-ROS agent — that is the Phase-4 acceptance criterion.

Parameters

See config/rosbot.yaml and config/rosbot_xl.yaml for variants. Key parameters:

  • transport: udp serial
  • peer_ip / peer_port / local_port — UDP only (mavros default ports)
  • serial_port / serial_baudrate — serial only
  • ros_namespace — prefixed onto every advertised topic/service/node name
  • enable_ranges, enable_led_strip — variant gates
  • publish_link_state — if true, advertise an extra mcu_link_state std_msgs/UInt8 topic for diagnostics (off by default for API parity)
  • timesync_alpha — EWMA factor for the time-offset filter (D15)
  • expected_banner_regex — boot-banner gate string
CHANGELOG
No CHANGELOG found.

Package Dependencies

System Dependencies

No direct system dependencies.

Dependant Packages

Name Deps
rosbot_bringup

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged rosbot_mavlink_bridge at Robotics Stack Exchange

No version for distro rolling showing jazzy. Known supported distros are highlighted in the buttons above.
Package symbol

rosbot_mavlink_bridge package from rosbot_mavlink_bridge repo

rosbot_mavlink_bridge

ROS Distro
jazzy

Package Summary

Version 2.0.2
License Apache-2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/husarion/rosbot-firmware.git
VCS Type git
VCS Version jazzy
Last Updated 2026-06-19
Dev Status MAINTAINED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Bridge node that translates the firmware's MAVLink wire protocol into the same ROS 2 API the micro-ROS agent currently exposes, so downstream consumers (e.g. rosbot_ros) see byte-identical topics/services. Single source tree builds for both jazzy and humble (see MAVLINK_MIGRATION.md D24).

Additional Links

Maintainers

  • Husarion

Authors

  • Rafal Gorecki

rosbot_mavlink_bridge

ROS 2 bridge that talks MAVLink to the firmware (rosbot_mavlink / rosbot_xl_mavlink PlatformIO envs) and exposes the same topics and services that the existing micro-ROS firmware advertises today. From a downstream consumer’s perspective (e.g. the rosbot_ros driver inside rosbot-snap), there is no migration: same node name, same namespace, same QoS — only the wire format changes.

See MAVLINK_MIGRATION.md for the full implementation spec.

Build

The bridge is a regular ament_cmake package and is self-contained — the MAVLink dialect headers it needs are the canonical mavlink_dialect/ tree shipped inside the package. just mavgen (from the repo root) regenerates them in place; the firmware build (PlatformIO) reads from the same directory via its include path. Single source of truth, no duplication.

# from the repo root
colcon build --packages-select rosbot_mavlink_bridge
. install/setup.bash

The CI matrix builds the same source tree against both jazzy and humble containers (see .github/workflows/ci.yaml — D24).

Apt install (rosdistro)

Once released through bloom, the bridge is available as ros-<distro>-rosbot-mavlink-bridge and is pulled in automatically as an exec_depend of rosbot_bringup. Users on apt do not need this repo — the bridge ships alongside rosbot_ros.

Run

ROSbot XL (UDP transport):

ros2 launch rosbot_mavlink_bridge rosbot_xl.launch.py namespace:=rosbot

ROSbot (serial transport — pick the SBC’s SBC<->MCU UART):

ros2 launch rosbot_mavlink_bridge rosbot.launch.py namespace:=rosbot \
  --ros-args -p serial_port:=/dev/ttyS4

The bridge waits for the firmware’s boot banner (rosbot[_xl] <version> mavlink) before declaring itself CONNECTED and publishing telemetry — that’s the D19 mismatch detector.

Topics / services

Path (relative to namespace) Type QoS
battery sensor_msgs/BatteryState best_effort, depth 1
_imu/data sensor_msgs/Imu best_effort, depth 1
_motors/feedback sensor_msgs/JointState best_effort, depth 1
buttons std_msgs/UInt8 best_effort, depth 1
ranges (rosbot only) sensor_msgs/Range best_effort, depth 1
_motors/cmd std_msgs/Float32MultiArray best_effort, depth 1
leds std_msgs/UInt8 best_effort, depth 1
led_strip (rosbot_xl only) sensor_msgs/Image best_effort, depth 1
_mcu_id (service) std_srvs/Trigger

ros2 node info /<ns>/rosbot_mcu and ros2 topic info -v /<ns>/<topic> output is byte-identical between this bridge and the micro-ROS agent — that is the Phase-4 acceptance criterion.

Parameters

See config/rosbot.yaml and config/rosbot_xl.yaml for variants. Key parameters:

  • transport: udp serial
  • peer_ip / peer_port / local_port — UDP only (mavros default ports)
  • serial_port / serial_baudrate — serial only
  • ros_namespace — prefixed onto every advertised topic/service/node name
  • enable_ranges, enable_led_strip — variant gates
  • publish_link_state — if true, advertise an extra mcu_link_state std_msgs/UInt8 topic for diagnostics (off by default for API parity)
  • timesync_alpha — EWMA factor for the time-offset filter (D15)
  • expected_banner_regex — boot-banner gate string
CHANGELOG
No CHANGELOG found.

Package Dependencies

System Dependencies

No direct system dependencies.

Dependant Packages

Name Deps
rosbot_bringup

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged rosbot_mavlink_bridge at Robotics Stack Exchange

No version for distro ardent showing jazzy. Known supported distros are highlighted in the buttons above.
Package symbol

rosbot_mavlink_bridge package from rosbot_mavlink_bridge repo

rosbot_mavlink_bridge

ROS Distro
jazzy

Package Summary

Version 2.0.2
License Apache-2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/husarion/rosbot-firmware.git
VCS Type git
VCS Version jazzy
Last Updated 2026-06-19
Dev Status MAINTAINED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Bridge node that translates the firmware's MAVLink wire protocol into the same ROS 2 API the micro-ROS agent currently exposes, so downstream consumers (e.g. rosbot_ros) see byte-identical topics/services. Single source tree builds for both jazzy and humble (see MAVLINK_MIGRATION.md D24).

Additional Links

Maintainers

  • Husarion

Authors

  • Rafal Gorecki

rosbot_mavlink_bridge

ROS 2 bridge that talks MAVLink to the firmware (rosbot_mavlink / rosbot_xl_mavlink PlatformIO envs) and exposes the same topics and services that the existing micro-ROS firmware advertises today. From a downstream consumer’s perspective (e.g. the rosbot_ros driver inside rosbot-snap), there is no migration: same node name, same namespace, same QoS — only the wire format changes.

See MAVLINK_MIGRATION.md for the full implementation spec.

Build

The bridge is a regular ament_cmake package and is self-contained — the MAVLink dialect headers it needs are the canonical mavlink_dialect/ tree shipped inside the package. just mavgen (from the repo root) regenerates them in place; the firmware build (PlatformIO) reads from the same directory via its include path. Single source of truth, no duplication.

# from the repo root
colcon build --packages-select rosbot_mavlink_bridge
. install/setup.bash

The CI matrix builds the same source tree against both jazzy and humble containers (see .github/workflows/ci.yaml — D24).

Apt install (rosdistro)

Once released through bloom, the bridge is available as ros-<distro>-rosbot-mavlink-bridge and is pulled in automatically as an exec_depend of rosbot_bringup. Users on apt do not need this repo — the bridge ships alongside rosbot_ros.

Run

ROSbot XL (UDP transport):

ros2 launch rosbot_mavlink_bridge rosbot_xl.launch.py namespace:=rosbot

ROSbot (serial transport — pick the SBC’s SBC<->MCU UART):

ros2 launch rosbot_mavlink_bridge rosbot.launch.py namespace:=rosbot \
  --ros-args -p serial_port:=/dev/ttyS4

The bridge waits for the firmware’s boot banner (rosbot[_xl] <version> mavlink) before declaring itself CONNECTED and publishing telemetry — that’s the D19 mismatch detector.

Topics / services

Path (relative to namespace) Type QoS
battery sensor_msgs/BatteryState best_effort, depth 1
_imu/data sensor_msgs/Imu best_effort, depth 1
_motors/feedback sensor_msgs/JointState best_effort, depth 1
buttons std_msgs/UInt8 best_effort, depth 1
ranges (rosbot only) sensor_msgs/Range best_effort, depth 1
_motors/cmd std_msgs/Float32MultiArray best_effort, depth 1
leds std_msgs/UInt8 best_effort, depth 1
led_strip (rosbot_xl only) sensor_msgs/Image best_effort, depth 1
_mcu_id (service) std_srvs/Trigger

ros2 node info /<ns>/rosbot_mcu and ros2 topic info -v /<ns>/<topic> output is byte-identical between this bridge and the micro-ROS agent — that is the Phase-4 acceptance criterion.

Parameters

See config/rosbot.yaml and config/rosbot_xl.yaml for variants. Key parameters:

  • transport: udp serial
  • peer_ip / peer_port / local_port — UDP only (mavros default ports)
  • serial_port / serial_baudrate — serial only
  • ros_namespace — prefixed onto every advertised topic/service/node name
  • enable_ranges, enable_led_strip — variant gates
  • publish_link_state — if true, advertise an extra mcu_link_state std_msgs/UInt8 topic for diagnostics (off by default for API parity)
  • timesync_alpha — EWMA factor for the time-offset filter (D15)
  • expected_banner_regex — boot-banner gate string
CHANGELOG
No CHANGELOG found.

Package Dependencies

System Dependencies

No direct system dependencies.

Dependant Packages

Name Deps
rosbot_bringup

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged rosbot_mavlink_bridge at Robotics Stack Exchange

No version for distro bouncy showing jazzy. Known supported distros are highlighted in the buttons above.
Package symbol

rosbot_mavlink_bridge package from rosbot_mavlink_bridge repo

rosbot_mavlink_bridge

ROS Distro
jazzy

Package Summary

Version 2.0.2
License Apache-2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/husarion/rosbot-firmware.git
VCS Type git
VCS Version jazzy
Last Updated 2026-06-19
Dev Status MAINTAINED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Bridge node that translates the firmware's MAVLink wire protocol into the same ROS 2 API the micro-ROS agent currently exposes, so downstream consumers (e.g. rosbot_ros) see byte-identical topics/services. Single source tree builds for both jazzy and humble (see MAVLINK_MIGRATION.md D24).

Additional Links

Maintainers

  • Husarion

Authors

  • Rafal Gorecki

rosbot_mavlink_bridge

ROS 2 bridge that talks MAVLink to the firmware (rosbot_mavlink / rosbot_xl_mavlink PlatformIO envs) and exposes the same topics and services that the existing micro-ROS firmware advertises today. From a downstream consumer’s perspective (e.g. the rosbot_ros driver inside rosbot-snap), there is no migration: same node name, same namespace, same QoS — only the wire format changes.

See MAVLINK_MIGRATION.md for the full implementation spec.

Build

The bridge is a regular ament_cmake package and is self-contained — the MAVLink dialect headers it needs are the canonical mavlink_dialect/ tree shipped inside the package. just mavgen (from the repo root) regenerates them in place; the firmware build (PlatformIO) reads from the same directory via its include path. Single source of truth, no duplication.

# from the repo root
colcon build --packages-select rosbot_mavlink_bridge
. install/setup.bash

The CI matrix builds the same source tree against both jazzy and humble containers (see .github/workflows/ci.yaml — D24).

Apt install (rosdistro)

Once released through bloom, the bridge is available as ros-<distro>-rosbot-mavlink-bridge and is pulled in automatically as an exec_depend of rosbot_bringup. Users on apt do not need this repo — the bridge ships alongside rosbot_ros.

Run

ROSbot XL (UDP transport):

ros2 launch rosbot_mavlink_bridge rosbot_xl.launch.py namespace:=rosbot

ROSbot (serial transport — pick the SBC’s SBC<->MCU UART):

ros2 launch rosbot_mavlink_bridge rosbot.launch.py namespace:=rosbot \
  --ros-args -p serial_port:=/dev/ttyS4

The bridge waits for the firmware’s boot banner (rosbot[_xl] <version> mavlink) before declaring itself CONNECTED and publishing telemetry — that’s the D19 mismatch detector.

Topics / services

Path (relative to namespace) Type QoS
battery sensor_msgs/BatteryState best_effort, depth 1
_imu/data sensor_msgs/Imu best_effort, depth 1
_motors/feedback sensor_msgs/JointState best_effort, depth 1
buttons std_msgs/UInt8 best_effort, depth 1
ranges (rosbot only) sensor_msgs/Range best_effort, depth 1
_motors/cmd std_msgs/Float32MultiArray best_effort, depth 1
leds std_msgs/UInt8 best_effort, depth 1
led_strip (rosbot_xl only) sensor_msgs/Image best_effort, depth 1
_mcu_id (service) std_srvs/Trigger

ros2 node info /<ns>/rosbot_mcu and ros2 topic info -v /<ns>/<topic> output is byte-identical between this bridge and the micro-ROS agent — that is the Phase-4 acceptance criterion.

Parameters

See config/rosbot.yaml and config/rosbot_xl.yaml for variants. Key parameters:

  • transport: udp serial
  • peer_ip / peer_port / local_port — UDP only (mavros default ports)
  • serial_port / serial_baudrate — serial only
  • ros_namespace — prefixed onto every advertised topic/service/node name
  • enable_ranges, enable_led_strip — variant gates
  • publish_link_state — if true, advertise an extra mcu_link_state std_msgs/UInt8 topic for diagnostics (off by default for API parity)
  • timesync_alpha — EWMA factor for the time-offset filter (D15)
  • expected_banner_regex — boot-banner gate string
CHANGELOG
No CHANGELOG found.

Package Dependencies

System Dependencies

No direct system dependencies.

Dependant Packages

Name Deps
rosbot_bringup

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged rosbot_mavlink_bridge at Robotics Stack Exchange

No version for distro crystal showing jazzy. Known supported distros are highlighted in the buttons above.
Package symbol

rosbot_mavlink_bridge package from rosbot_mavlink_bridge repo

rosbot_mavlink_bridge

ROS Distro
jazzy

Package Summary

Version 2.0.2
License Apache-2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/husarion/rosbot-firmware.git
VCS Type git
VCS Version jazzy
Last Updated 2026-06-19
Dev Status MAINTAINED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Bridge node that translates the firmware's MAVLink wire protocol into the same ROS 2 API the micro-ROS agent currently exposes, so downstream consumers (e.g. rosbot_ros) see byte-identical topics/services. Single source tree builds for both jazzy and humble (see MAVLINK_MIGRATION.md D24).

Additional Links

Maintainers

  • Husarion

Authors

  • Rafal Gorecki

rosbot_mavlink_bridge

ROS 2 bridge that talks MAVLink to the firmware (rosbot_mavlink / rosbot_xl_mavlink PlatformIO envs) and exposes the same topics and services that the existing micro-ROS firmware advertises today. From a downstream consumer’s perspective (e.g. the rosbot_ros driver inside rosbot-snap), there is no migration: same node name, same namespace, same QoS — only the wire format changes.

See MAVLINK_MIGRATION.md for the full implementation spec.

Build

The bridge is a regular ament_cmake package and is self-contained — the MAVLink dialect headers it needs are the canonical mavlink_dialect/ tree shipped inside the package. just mavgen (from the repo root) regenerates them in place; the firmware build (PlatformIO) reads from the same directory via its include path. Single source of truth, no duplication.

# from the repo root
colcon build --packages-select rosbot_mavlink_bridge
. install/setup.bash

The CI matrix builds the same source tree against both jazzy and humble containers (see .github/workflows/ci.yaml — D24).

Apt install (rosdistro)

Once released through bloom, the bridge is available as ros-<distro>-rosbot-mavlink-bridge and is pulled in automatically as an exec_depend of rosbot_bringup. Users on apt do not need this repo — the bridge ships alongside rosbot_ros.

Run

ROSbot XL (UDP transport):

ros2 launch rosbot_mavlink_bridge rosbot_xl.launch.py namespace:=rosbot

ROSbot (serial transport — pick the SBC’s SBC<->MCU UART):

ros2 launch rosbot_mavlink_bridge rosbot.launch.py namespace:=rosbot \
  --ros-args -p serial_port:=/dev/ttyS4

The bridge waits for the firmware’s boot banner (rosbot[_xl] <version> mavlink) before declaring itself CONNECTED and publishing telemetry — that’s the D19 mismatch detector.

Topics / services

Path (relative to namespace) Type QoS
battery sensor_msgs/BatteryState best_effort, depth 1
_imu/data sensor_msgs/Imu best_effort, depth 1
_motors/feedback sensor_msgs/JointState best_effort, depth 1
buttons std_msgs/UInt8 best_effort, depth 1
ranges (rosbot only) sensor_msgs/Range best_effort, depth 1
_motors/cmd std_msgs/Float32MultiArray best_effort, depth 1
leds std_msgs/UInt8 best_effort, depth 1
led_strip (rosbot_xl only) sensor_msgs/Image best_effort, depth 1
_mcu_id (service) std_srvs/Trigger

ros2 node info /<ns>/rosbot_mcu and ros2 topic info -v /<ns>/<topic> output is byte-identical between this bridge and the micro-ROS agent — that is the Phase-4 acceptance criterion.

Parameters

See config/rosbot.yaml and config/rosbot_xl.yaml for variants. Key parameters:

  • transport: udp serial
  • peer_ip / peer_port / local_port — UDP only (mavros default ports)
  • serial_port / serial_baudrate — serial only
  • ros_namespace — prefixed onto every advertised topic/service/node name
  • enable_ranges, enable_led_strip — variant gates
  • publish_link_state — if true, advertise an extra mcu_link_state std_msgs/UInt8 topic for diagnostics (off by default for API parity)
  • timesync_alpha — EWMA factor for the time-offset filter (D15)
  • expected_banner_regex — boot-banner gate string
CHANGELOG
No CHANGELOG found.

Package Dependencies

System Dependencies

No direct system dependencies.

Dependant Packages

Name Deps
rosbot_bringup

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged rosbot_mavlink_bridge at Robotics Stack Exchange

No version for distro eloquent showing jazzy. Known supported distros are highlighted in the buttons above.
Package symbol

rosbot_mavlink_bridge package from rosbot_mavlink_bridge repo

rosbot_mavlink_bridge

ROS Distro
jazzy

Package Summary

Version 2.0.2
License Apache-2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/husarion/rosbot-firmware.git
VCS Type git
VCS Version jazzy
Last Updated 2026-06-19
Dev Status MAINTAINED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Bridge node that translates the firmware's MAVLink wire protocol into the same ROS 2 API the micro-ROS agent currently exposes, so downstream consumers (e.g. rosbot_ros) see byte-identical topics/services. Single source tree builds for both jazzy and humble (see MAVLINK_MIGRATION.md D24).

Additional Links

Maintainers

  • Husarion

Authors

  • Rafal Gorecki

rosbot_mavlink_bridge

ROS 2 bridge that talks MAVLink to the firmware (rosbot_mavlink / rosbot_xl_mavlink PlatformIO envs) and exposes the same topics and services that the existing micro-ROS firmware advertises today. From a downstream consumer’s perspective (e.g. the rosbot_ros driver inside rosbot-snap), there is no migration: same node name, same namespace, same QoS — only the wire format changes.

See MAVLINK_MIGRATION.md for the full implementation spec.

Build

The bridge is a regular ament_cmake package and is self-contained — the MAVLink dialect headers it needs are the canonical mavlink_dialect/ tree shipped inside the package. just mavgen (from the repo root) regenerates them in place; the firmware build (PlatformIO) reads from the same directory via its include path. Single source of truth, no duplication.

# from the repo root
colcon build --packages-select rosbot_mavlink_bridge
. install/setup.bash

The CI matrix builds the same source tree against both jazzy and humble containers (see .github/workflows/ci.yaml — D24).

Apt install (rosdistro)

Once released through bloom, the bridge is available as ros-<distro>-rosbot-mavlink-bridge and is pulled in automatically as an exec_depend of rosbot_bringup. Users on apt do not need this repo — the bridge ships alongside rosbot_ros.

Run

ROSbot XL (UDP transport):

ros2 launch rosbot_mavlink_bridge rosbot_xl.launch.py namespace:=rosbot

ROSbot (serial transport — pick the SBC’s SBC<->MCU UART):

ros2 launch rosbot_mavlink_bridge rosbot.launch.py namespace:=rosbot \
  --ros-args -p serial_port:=/dev/ttyS4

The bridge waits for the firmware’s boot banner (rosbot[_xl] <version> mavlink) before declaring itself CONNECTED and publishing telemetry — that’s the D19 mismatch detector.

Topics / services

Path (relative to namespace) Type QoS
battery sensor_msgs/BatteryState best_effort, depth 1
_imu/data sensor_msgs/Imu best_effort, depth 1
_motors/feedback sensor_msgs/JointState best_effort, depth 1
buttons std_msgs/UInt8 best_effort, depth 1
ranges (rosbot only) sensor_msgs/Range best_effort, depth 1
_motors/cmd std_msgs/Float32MultiArray best_effort, depth 1
leds std_msgs/UInt8 best_effort, depth 1
led_strip (rosbot_xl only) sensor_msgs/Image best_effort, depth 1
_mcu_id (service) std_srvs/Trigger

ros2 node info /<ns>/rosbot_mcu and ros2 topic info -v /<ns>/<topic> output is byte-identical between this bridge and the micro-ROS agent — that is the Phase-4 acceptance criterion.

Parameters

See config/rosbot.yaml and config/rosbot_xl.yaml for variants. Key parameters:

  • transport: udp serial
  • peer_ip / peer_port / local_port — UDP only (mavros default ports)
  • serial_port / serial_baudrate — serial only
  • ros_namespace — prefixed onto every advertised topic/service/node name
  • enable_ranges, enable_led_strip — variant gates
  • publish_link_state — if true, advertise an extra mcu_link_state std_msgs/UInt8 topic for diagnostics (off by default for API parity)
  • timesync_alpha — EWMA factor for the time-offset filter (D15)
  • expected_banner_regex — boot-banner gate string
CHANGELOG
No CHANGELOG found.

Package Dependencies

System Dependencies

No direct system dependencies.

Dependant Packages

Name Deps
rosbot_bringup

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged rosbot_mavlink_bridge at Robotics Stack Exchange

No version for distro dashing showing jazzy. Known supported distros are highlighted in the buttons above.
Package symbol

rosbot_mavlink_bridge package from rosbot_mavlink_bridge repo

rosbot_mavlink_bridge

ROS Distro
jazzy

Package Summary

Version 2.0.2
License Apache-2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/husarion/rosbot-firmware.git
VCS Type git
VCS Version jazzy
Last Updated 2026-06-19
Dev Status MAINTAINED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Bridge node that translates the firmware's MAVLink wire protocol into the same ROS 2 API the micro-ROS agent currently exposes, so downstream consumers (e.g. rosbot_ros) see byte-identical topics/services. Single source tree builds for both jazzy and humble (see MAVLINK_MIGRATION.md D24).

Additional Links

Maintainers

  • Husarion

Authors

  • Rafal Gorecki

rosbot_mavlink_bridge

ROS 2 bridge that talks MAVLink to the firmware (rosbot_mavlink / rosbot_xl_mavlink PlatformIO envs) and exposes the same topics and services that the existing micro-ROS firmware advertises today. From a downstream consumer’s perspective (e.g. the rosbot_ros driver inside rosbot-snap), there is no migration: same node name, same namespace, same QoS — only the wire format changes.

See MAVLINK_MIGRATION.md for the full implementation spec.

Build

The bridge is a regular ament_cmake package and is self-contained — the MAVLink dialect headers it needs are the canonical mavlink_dialect/ tree shipped inside the package. just mavgen (from the repo root) regenerates them in place; the firmware build (PlatformIO) reads from the same directory via its include path. Single source of truth, no duplication.

# from the repo root
colcon build --packages-select rosbot_mavlink_bridge
. install/setup.bash

The CI matrix builds the same source tree against both jazzy and humble containers (see .github/workflows/ci.yaml — D24).

Apt install (rosdistro)

Once released through bloom, the bridge is available as ros-<distro>-rosbot-mavlink-bridge and is pulled in automatically as an exec_depend of rosbot_bringup. Users on apt do not need this repo — the bridge ships alongside rosbot_ros.

Run

ROSbot XL (UDP transport):

ros2 launch rosbot_mavlink_bridge rosbot_xl.launch.py namespace:=rosbot

ROSbot (serial transport — pick the SBC’s SBC<->MCU UART):

ros2 launch rosbot_mavlink_bridge rosbot.launch.py namespace:=rosbot \
  --ros-args -p serial_port:=/dev/ttyS4

The bridge waits for the firmware’s boot banner (rosbot[_xl] <version> mavlink) before declaring itself CONNECTED and publishing telemetry — that’s the D19 mismatch detector.

Topics / services

Path (relative to namespace) Type QoS
battery sensor_msgs/BatteryState best_effort, depth 1
_imu/data sensor_msgs/Imu best_effort, depth 1
_motors/feedback sensor_msgs/JointState best_effort, depth 1
buttons std_msgs/UInt8 best_effort, depth 1
ranges (rosbot only) sensor_msgs/Range best_effort, depth 1
_motors/cmd std_msgs/Float32MultiArray best_effort, depth 1
leds std_msgs/UInt8 best_effort, depth 1
led_strip (rosbot_xl only) sensor_msgs/Image best_effort, depth 1
_mcu_id (service) std_srvs/Trigger

ros2 node info /<ns>/rosbot_mcu and ros2 topic info -v /<ns>/<topic> output is byte-identical between this bridge and the micro-ROS agent — that is the Phase-4 acceptance criterion.

Parameters

See config/rosbot.yaml and config/rosbot_xl.yaml for variants. Key parameters:

  • transport: udp serial
  • peer_ip / peer_port / local_port — UDP only (mavros default ports)
  • serial_port / serial_baudrate — serial only
  • ros_namespace — prefixed onto every advertised topic/service/node name
  • enable_ranges, enable_led_strip — variant gates
  • publish_link_state — if true, advertise an extra mcu_link_state std_msgs/UInt8 topic for diagnostics (off by default for API parity)
  • timesync_alpha — EWMA factor for the time-offset filter (D15)
  • expected_banner_regex — boot-banner gate string
CHANGELOG
No CHANGELOG found.

Package Dependencies

System Dependencies

No direct system dependencies.

Dependant Packages

Name Deps
rosbot_bringup

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged rosbot_mavlink_bridge at Robotics Stack Exchange

No version for distro galactic showing jazzy. Known supported distros are highlighted in the buttons above.
Package symbol

rosbot_mavlink_bridge package from rosbot_mavlink_bridge repo

rosbot_mavlink_bridge

ROS Distro
jazzy

Package Summary

Version 2.0.2
License Apache-2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/husarion/rosbot-firmware.git
VCS Type git
VCS Version jazzy
Last Updated 2026-06-19
Dev Status MAINTAINED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Bridge node that translates the firmware's MAVLink wire protocol into the same ROS 2 API the micro-ROS agent currently exposes, so downstream consumers (e.g. rosbot_ros) see byte-identical topics/services. Single source tree builds for both jazzy and humble (see MAVLINK_MIGRATION.md D24).

Additional Links

Maintainers

  • Husarion

Authors

  • Rafal Gorecki

rosbot_mavlink_bridge

ROS 2 bridge that talks MAVLink to the firmware (rosbot_mavlink / rosbot_xl_mavlink PlatformIO envs) and exposes the same topics and services that the existing micro-ROS firmware advertises today. From a downstream consumer’s perspective (e.g. the rosbot_ros driver inside rosbot-snap), there is no migration: same node name, same namespace, same QoS — only the wire format changes.

See MAVLINK_MIGRATION.md for the full implementation spec.

Build

The bridge is a regular ament_cmake package and is self-contained — the MAVLink dialect headers it needs are the canonical mavlink_dialect/ tree shipped inside the package. just mavgen (from the repo root) regenerates them in place; the firmware build (PlatformIO) reads from the same directory via its include path. Single source of truth, no duplication.

# from the repo root
colcon build --packages-select rosbot_mavlink_bridge
. install/setup.bash

The CI matrix builds the same source tree against both jazzy and humble containers (see .github/workflows/ci.yaml — D24).

Apt install (rosdistro)

Once released through bloom, the bridge is available as ros-<distro>-rosbot-mavlink-bridge and is pulled in automatically as an exec_depend of rosbot_bringup. Users on apt do not need this repo — the bridge ships alongside rosbot_ros.

Run

ROSbot XL (UDP transport):

ros2 launch rosbot_mavlink_bridge rosbot_xl.launch.py namespace:=rosbot

ROSbot (serial transport — pick the SBC’s SBC<->MCU UART):

ros2 launch rosbot_mavlink_bridge rosbot.launch.py namespace:=rosbot \
  --ros-args -p serial_port:=/dev/ttyS4

The bridge waits for the firmware’s boot banner (rosbot[_xl] <version> mavlink) before declaring itself CONNECTED and publishing telemetry — that’s the D19 mismatch detector.

Topics / services

Path (relative to namespace) Type QoS
battery sensor_msgs/BatteryState best_effort, depth 1
_imu/data sensor_msgs/Imu best_effort, depth 1
_motors/feedback sensor_msgs/JointState best_effort, depth 1
buttons std_msgs/UInt8 best_effort, depth 1
ranges (rosbot only) sensor_msgs/Range best_effort, depth 1
_motors/cmd std_msgs/Float32MultiArray best_effort, depth 1
leds std_msgs/UInt8 best_effort, depth 1
led_strip (rosbot_xl only) sensor_msgs/Image best_effort, depth 1
_mcu_id (service) std_srvs/Trigger

ros2 node info /<ns>/rosbot_mcu and ros2 topic info -v /<ns>/<topic> output is byte-identical between this bridge and the micro-ROS agent — that is the Phase-4 acceptance criterion.

Parameters

See config/rosbot.yaml and config/rosbot_xl.yaml for variants. Key parameters:

  • transport: udp serial
  • peer_ip / peer_port / local_port — UDP only (mavros default ports)
  • serial_port / serial_baudrate — serial only
  • ros_namespace — prefixed onto every advertised topic/service/node name
  • enable_ranges, enable_led_strip — variant gates
  • publish_link_state — if true, advertise an extra mcu_link_state std_msgs/UInt8 topic for diagnostics (off by default for API parity)
  • timesync_alpha — EWMA factor for the time-offset filter (D15)
  • expected_banner_regex — boot-banner gate string
CHANGELOG
No CHANGELOG found.

Package Dependencies

System Dependencies

No direct system dependencies.

Dependant Packages

Name Deps
rosbot_bringup

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged rosbot_mavlink_bridge at Robotics Stack Exchange

No version for distro foxy showing jazzy. Known supported distros are highlighted in the buttons above.
Package symbol

rosbot_mavlink_bridge package from rosbot_mavlink_bridge repo

rosbot_mavlink_bridge

ROS Distro
jazzy

Package Summary

Version 2.0.2
License Apache-2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/husarion/rosbot-firmware.git
VCS Type git
VCS Version jazzy
Last Updated 2026-06-19
Dev Status MAINTAINED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Bridge node that translates the firmware's MAVLink wire protocol into the same ROS 2 API the micro-ROS agent currently exposes, so downstream consumers (e.g. rosbot_ros) see byte-identical topics/services. Single source tree builds for both jazzy and humble (see MAVLINK_MIGRATION.md D24).

Additional Links

Maintainers

  • Husarion

Authors

  • Rafal Gorecki

rosbot_mavlink_bridge

ROS 2 bridge that talks MAVLink to the firmware (rosbot_mavlink / rosbot_xl_mavlink PlatformIO envs) and exposes the same topics and services that the existing micro-ROS firmware advertises today. From a downstream consumer’s perspective (e.g. the rosbot_ros driver inside rosbot-snap), there is no migration: same node name, same namespace, same QoS — only the wire format changes.

See MAVLINK_MIGRATION.md for the full implementation spec.

Build

The bridge is a regular ament_cmake package and is self-contained — the MAVLink dialect headers it needs are the canonical mavlink_dialect/ tree shipped inside the package. just mavgen (from the repo root) regenerates them in place; the firmware build (PlatformIO) reads from the same directory via its include path. Single source of truth, no duplication.

# from the repo root
colcon build --packages-select rosbot_mavlink_bridge
. install/setup.bash

The CI matrix builds the same source tree against both jazzy and humble containers (see .github/workflows/ci.yaml — D24).

Apt install (rosdistro)

Once released through bloom, the bridge is available as ros-<distro>-rosbot-mavlink-bridge and is pulled in automatically as an exec_depend of rosbot_bringup. Users on apt do not need this repo — the bridge ships alongside rosbot_ros.

Run

ROSbot XL (UDP transport):

ros2 launch rosbot_mavlink_bridge rosbot_xl.launch.py namespace:=rosbot

ROSbot (serial transport — pick the SBC’s SBC<->MCU UART):

ros2 launch rosbot_mavlink_bridge rosbot.launch.py namespace:=rosbot \
  --ros-args -p serial_port:=/dev/ttyS4

The bridge waits for the firmware’s boot banner (rosbot[_xl] <version> mavlink) before declaring itself CONNECTED and publishing telemetry — that’s the D19 mismatch detector.

Topics / services

Path (relative to namespace) Type QoS
battery sensor_msgs/BatteryState best_effort, depth 1
_imu/data sensor_msgs/Imu best_effort, depth 1
_motors/feedback sensor_msgs/JointState best_effort, depth 1
buttons std_msgs/UInt8 best_effort, depth 1
ranges (rosbot only) sensor_msgs/Range best_effort, depth 1
_motors/cmd std_msgs/Float32MultiArray best_effort, depth 1
leds std_msgs/UInt8 best_effort, depth 1
led_strip (rosbot_xl only) sensor_msgs/Image best_effort, depth 1
_mcu_id (service) std_srvs/Trigger

ros2 node info /<ns>/rosbot_mcu and ros2 topic info -v /<ns>/<topic> output is byte-identical between this bridge and the micro-ROS agent — that is the Phase-4 acceptance criterion.

Parameters

See config/rosbot.yaml and config/rosbot_xl.yaml for variants. Key parameters:

  • transport: udp serial
  • peer_ip / peer_port / local_port — UDP only (mavros default ports)
  • serial_port / serial_baudrate — serial only
  • ros_namespace — prefixed onto every advertised topic/service/node name
  • enable_ranges, enable_led_strip — variant gates
  • publish_link_state — if true, advertise an extra mcu_link_state std_msgs/UInt8 topic for diagnostics (off by default for API parity)
  • timesync_alpha — EWMA factor for the time-offset filter (D15)
  • expected_banner_regex — boot-banner gate string
CHANGELOG
No CHANGELOG found.

Package Dependencies

System Dependencies

No direct system dependencies.

Dependant Packages

Name Deps
rosbot_bringup

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged rosbot_mavlink_bridge at Robotics Stack Exchange

No version for distro iron showing jazzy. Known supported distros are highlighted in the buttons above.
Package symbol

rosbot_mavlink_bridge package from rosbot_mavlink_bridge repo

rosbot_mavlink_bridge

ROS Distro
jazzy

Package Summary

Version 2.0.2
License Apache-2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/husarion/rosbot-firmware.git
VCS Type git
VCS Version jazzy
Last Updated 2026-06-19
Dev Status MAINTAINED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Bridge node that translates the firmware's MAVLink wire protocol into the same ROS 2 API the micro-ROS agent currently exposes, so downstream consumers (e.g. rosbot_ros) see byte-identical topics/services. Single source tree builds for both jazzy and humble (see MAVLINK_MIGRATION.md D24).

Additional Links

Maintainers

  • Husarion

Authors

  • Rafal Gorecki

rosbot_mavlink_bridge

ROS 2 bridge that talks MAVLink to the firmware (rosbot_mavlink / rosbot_xl_mavlink PlatformIO envs) and exposes the same topics and services that the existing micro-ROS firmware advertises today. From a downstream consumer’s perspective (e.g. the rosbot_ros driver inside rosbot-snap), there is no migration: same node name, same namespace, same QoS — only the wire format changes.

See MAVLINK_MIGRATION.md for the full implementation spec.

Build

The bridge is a regular ament_cmake package and is self-contained — the MAVLink dialect headers it needs are the canonical mavlink_dialect/ tree shipped inside the package. just mavgen (from the repo root) regenerates them in place; the firmware build (PlatformIO) reads from the same directory via its include path. Single source of truth, no duplication.

# from the repo root
colcon build --packages-select rosbot_mavlink_bridge
. install/setup.bash

The CI matrix builds the same source tree against both jazzy and humble containers (see .github/workflows/ci.yaml — D24).

Apt install (rosdistro)

Once released through bloom, the bridge is available as ros-<distro>-rosbot-mavlink-bridge and is pulled in automatically as an exec_depend of rosbot_bringup. Users on apt do not need this repo — the bridge ships alongside rosbot_ros.

Run

ROSbot XL (UDP transport):

ros2 launch rosbot_mavlink_bridge rosbot_xl.launch.py namespace:=rosbot

ROSbot (serial transport — pick the SBC’s SBC<->MCU UART):

ros2 launch rosbot_mavlink_bridge rosbot.launch.py namespace:=rosbot \
  --ros-args -p serial_port:=/dev/ttyS4

The bridge waits for the firmware’s boot banner (rosbot[_xl] <version> mavlink) before declaring itself CONNECTED and publishing telemetry — that’s the D19 mismatch detector.

Topics / services

Path (relative to namespace) Type QoS
battery sensor_msgs/BatteryState best_effort, depth 1
_imu/data sensor_msgs/Imu best_effort, depth 1
_motors/feedback sensor_msgs/JointState best_effort, depth 1
buttons std_msgs/UInt8 best_effort, depth 1
ranges (rosbot only) sensor_msgs/Range best_effort, depth 1
_motors/cmd std_msgs/Float32MultiArray best_effort, depth 1
leds std_msgs/UInt8 best_effort, depth 1
led_strip (rosbot_xl only) sensor_msgs/Image best_effort, depth 1
_mcu_id (service) std_srvs/Trigger

ros2 node info /<ns>/rosbot_mcu and ros2 topic info -v /<ns>/<topic> output is byte-identical between this bridge and the micro-ROS agent — that is the Phase-4 acceptance criterion.

Parameters

See config/rosbot.yaml and config/rosbot_xl.yaml for variants. Key parameters:

  • transport: udp serial
  • peer_ip / peer_port / local_port — UDP only (mavros default ports)
  • serial_port / serial_baudrate — serial only
  • ros_namespace — prefixed onto every advertised topic/service/node name
  • enable_ranges, enable_led_strip — variant gates
  • publish_link_state — if true, advertise an extra mcu_link_state std_msgs/UInt8 topic for diagnostics (off by default for API parity)
  • timesync_alpha — EWMA factor for the time-offset filter (D15)
  • expected_banner_regex — boot-banner gate string
CHANGELOG
No CHANGELOG found.

Package Dependencies

System Dependencies

No direct system dependencies.

Dependant Packages

Name Deps
rosbot_bringup

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged rosbot_mavlink_bridge at Robotics Stack Exchange

No version for distro lunar showing jazzy. Known supported distros are highlighted in the buttons above.
Package symbol

rosbot_mavlink_bridge package from rosbot_mavlink_bridge repo

rosbot_mavlink_bridge

ROS Distro
jazzy

Package Summary

Version 2.0.2
License Apache-2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/husarion/rosbot-firmware.git
VCS Type git
VCS Version jazzy
Last Updated 2026-06-19
Dev Status MAINTAINED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Bridge node that translates the firmware's MAVLink wire protocol into the same ROS 2 API the micro-ROS agent currently exposes, so downstream consumers (e.g. rosbot_ros) see byte-identical topics/services. Single source tree builds for both jazzy and humble (see MAVLINK_MIGRATION.md D24).

Additional Links

Maintainers

  • Husarion

Authors

  • Rafal Gorecki

rosbot_mavlink_bridge

ROS 2 bridge that talks MAVLink to the firmware (rosbot_mavlink / rosbot_xl_mavlink PlatformIO envs) and exposes the same topics and services that the existing micro-ROS firmware advertises today. From a downstream consumer’s perspective (e.g. the rosbot_ros driver inside rosbot-snap), there is no migration: same node name, same namespace, same QoS — only the wire format changes.

See MAVLINK_MIGRATION.md for the full implementation spec.

Build

The bridge is a regular ament_cmake package and is self-contained — the MAVLink dialect headers it needs are the canonical mavlink_dialect/ tree shipped inside the package. just mavgen (from the repo root) regenerates them in place; the firmware build (PlatformIO) reads from the same directory via its include path. Single source of truth, no duplication.

# from the repo root
colcon build --packages-select rosbot_mavlink_bridge
. install/setup.bash

The CI matrix builds the same source tree against both jazzy and humble containers (see .github/workflows/ci.yaml — D24).

Apt install (rosdistro)

Once released through bloom, the bridge is available as ros-<distro>-rosbot-mavlink-bridge and is pulled in automatically as an exec_depend of rosbot_bringup. Users on apt do not need this repo — the bridge ships alongside rosbot_ros.

Run

ROSbot XL (UDP transport):

ros2 launch rosbot_mavlink_bridge rosbot_xl.launch.py namespace:=rosbot

ROSbot (serial transport — pick the SBC’s SBC<->MCU UART):

ros2 launch rosbot_mavlink_bridge rosbot.launch.py namespace:=rosbot \
  --ros-args -p serial_port:=/dev/ttyS4

The bridge waits for the firmware’s boot banner (rosbot[_xl] <version> mavlink) before declaring itself CONNECTED and publishing telemetry — that’s the D19 mismatch detector.

Topics / services

Path (relative to namespace) Type QoS
battery sensor_msgs/BatteryState best_effort, depth 1
_imu/data sensor_msgs/Imu best_effort, depth 1
_motors/feedback sensor_msgs/JointState best_effort, depth 1
buttons std_msgs/UInt8 best_effort, depth 1
ranges (rosbot only) sensor_msgs/Range best_effort, depth 1
_motors/cmd std_msgs/Float32MultiArray best_effort, depth 1
leds std_msgs/UInt8 best_effort, depth 1
led_strip (rosbot_xl only) sensor_msgs/Image best_effort, depth 1
_mcu_id (service) std_srvs/Trigger

ros2 node info /<ns>/rosbot_mcu and ros2 topic info -v /<ns>/<topic> output is byte-identical between this bridge and the micro-ROS agent — that is the Phase-4 acceptance criterion.

Parameters

See config/rosbot.yaml and config/rosbot_xl.yaml for variants. Key parameters:

  • transport: udp serial
  • peer_ip / peer_port / local_port — UDP only (mavros default ports)
  • serial_port / serial_baudrate — serial only
  • ros_namespace — prefixed onto every advertised topic/service/node name
  • enable_ranges, enable_led_strip — variant gates
  • publish_link_state — if true, advertise an extra mcu_link_state std_msgs/UInt8 topic for diagnostics (off by default for API parity)
  • timesync_alpha — EWMA factor for the time-offset filter (D15)
  • expected_banner_regex — boot-banner gate string
CHANGELOG
No CHANGELOG found.

Package Dependencies

System Dependencies

No direct system dependencies.

Dependant Packages

Name Deps
rosbot_bringup

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged rosbot_mavlink_bridge at Robotics Stack Exchange

No version for distro jade showing jazzy. Known supported distros are highlighted in the buttons above.
Package symbol

rosbot_mavlink_bridge package from rosbot_mavlink_bridge repo

rosbot_mavlink_bridge

ROS Distro
jazzy

Package Summary

Version 2.0.2
License Apache-2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/husarion/rosbot-firmware.git
VCS Type git
VCS Version jazzy
Last Updated 2026-06-19
Dev Status MAINTAINED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Bridge node that translates the firmware's MAVLink wire protocol into the same ROS 2 API the micro-ROS agent currently exposes, so downstream consumers (e.g. rosbot_ros) see byte-identical topics/services. Single source tree builds for both jazzy and humble (see MAVLINK_MIGRATION.md D24).

Additional Links

Maintainers

  • Husarion

Authors

  • Rafal Gorecki

rosbot_mavlink_bridge

ROS 2 bridge that talks MAVLink to the firmware (rosbot_mavlink / rosbot_xl_mavlink PlatformIO envs) and exposes the same topics and services that the existing micro-ROS firmware advertises today. From a downstream consumer’s perspective (e.g. the rosbot_ros driver inside rosbot-snap), there is no migration: same node name, same namespace, same QoS — only the wire format changes.

See MAVLINK_MIGRATION.md for the full implementation spec.

Build

The bridge is a regular ament_cmake package and is self-contained — the MAVLink dialect headers it needs are the canonical mavlink_dialect/ tree shipped inside the package. just mavgen (from the repo root) regenerates them in place; the firmware build (PlatformIO) reads from the same directory via its include path. Single source of truth, no duplication.

# from the repo root
colcon build --packages-select rosbot_mavlink_bridge
. install/setup.bash

The CI matrix builds the same source tree against both jazzy and humble containers (see .github/workflows/ci.yaml — D24).

Apt install (rosdistro)

Once released through bloom, the bridge is available as ros-<distro>-rosbot-mavlink-bridge and is pulled in automatically as an exec_depend of rosbot_bringup. Users on apt do not need this repo — the bridge ships alongside rosbot_ros.

Run

ROSbot XL (UDP transport):

ros2 launch rosbot_mavlink_bridge rosbot_xl.launch.py namespace:=rosbot

ROSbot (serial transport — pick the SBC’s SBC<->MCU UART):

ros2 launch rosbot_mavlink_bridge rosbot.launch.py namespace:=rosbot \
  --ros-args -p serial_port:=/dev/ttyS4

The bridge waits for the firmware’s boot banner (rosbot[_xl] <version> mavlink) before declaring itself CONNECTED and publishing telemetry — that’s the D19 mismatch detector.

Topics / services

Path (relative to namespace) Type QoS
battery sensor_msgs/BatteryState best_effort, depth 1
_imu/data sensor_msgs/Imu best_effort, depth 1
_motors/feedback sensor_msgs/JointState best_effort, depth 1
buttons std_msgs/UInt8 best_effort, depth 1
ranges (rosbot only) sensor_msgs/Range best_effort, depth 1
_motors/cmd std_msgs/Float32MultiArray best_effort, depth 1
leds std_msgs/UInt8 best_effort, depth 1
led_strip (rosbot_xl only) sensor_msgs/Image best_effort, depth 1
_mcu_id (service) std_srvs/Trigger

ros2 node info /<ns>/rosbot_mcu and ros2 topic info -v /<ns>/<topic> output is byte-identical between this bridge and the micro-ROS agent — that is the Phase-4 acceptance criterion.

Parameters

See config/rosbot.yaml and config/rosbot_xl.yaml for variants. Key parameters:

  • transport: udp serial
  • peer_ip / peer_port / local_port — UDP only (mavros default ports)
  • serial_port / serial_baudrate — serial only
  • ros_namespace — prefixed onto every advertised topic/service/node name
  • enable_ranges, enable_led_strip — variant gates
  • publish_link_state — if true, advertise an extra mcu_link_state std_msgs/UInt8 topic for diagnostics (off by default for API parity)
  • timesync_alpha — EWMA factor for the time-offset filter (D15)
  • expected_banner_regex — boot-banner gate string
CHANGELOG
No CHANGELOG found.

Package Dependencies

System Dependencies

No direct system dependencies.

Dependant Packages

Name Deps
rosbot_bringup

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged rosbot_mavlink_bridge at Robotics Stack Exchange

No version for distro indigo showing jazzy. Known supported distros are highlighted in the buttons above.
Package symbol

rosbot_mavlink_bridge package from rosbot_mavlink_bridge repo

rosbot_mavlink_bridge

ROS Distro
jazzy

Package Summary

Version 2.0.2
License Apache-2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/husarion/rosbot-firmware.git
VCS Type git
VCS Version jazzy
Last Updated 2026-06-19
Dev Status MAINTAINED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Bridge node that translates the firmware's MAVLink wire protocol into the same ROS 2 API the micro-ROS agent currently exposes, so downstream consumers (e.g. rosbot_ros) see byte-identical topics/services. Single source tree builds for both jazzy and humble (see MAVLINK_MIGRATION.md D24).

Additional Links

Maintainers

  • Husarion

Authors

  • Rafal Gorecki

rosbot_mavlink_bridge

ROS 2 bridge that talks MAVLink to the firmware (rosbot_mavlink / rosbot_xl_mavlink PlatformIO envs) and exposes the same topics and services that the existing micro-ROS firmware advertises today. From a downstream consumer’s perspective (e.g. the rosbot_ros driver inside rosbot-snap), there is no migration: same node name, same namespace, same QoS — only the wire format changes.

See MAVLINK_MIGRATION.md for the full implementation spec.

Build

The bridge is a regular ament_cmake package and is self-contained — the MAVLink dialect headers it needs are the canonical mavlink_dialect/ tree shipped inside the package. just mavgen (from the repo root) regenerates them in place; the firmware build (PlatformIO) reads from the same directory via its include path. Single source of truth, no duplication.

# from the repo root
colcon build --packages-select rosbot_mavlink_bridge
. install/setup.bash

The CI matrix builds the same source tree against both jazzy and humble containers (see .github/workflows/ci.yaml — D24).

Apt install (rosdistro)

Once released through bloom, the bridge is available as ros-<distro>-rosbot-mavlink-bridge and is pulled in automatically as an exec_depend of rosbot_bringup. Users on apt do not need this repo — the bridge ships alongside rosbot_ros.

Run

ROSbot XL (UDP transport):

ros2 launch rosbot_mavlink_bridge rosbot_xl.launch.py namespace:=rosbot

ROSbot (serial transport — pick the SBC’s SBC<->MCU UART):

ros2 launch rosbot_mavlink_bridge rosbot.launch.py namespace:=rosbot \
  --ros-args -p serial_port:=/dev/ttyS4

The bridge waits for the firmware’s boot banner (rosbot[_xl] <version> mavlink) before declaring itself CONNECTED and publishing telemetry — that’s the D19 mismatch detector.

Topics / services

Path (relative to namespace) Type QoS
battery sensor_msgs/BatteryState best_effort, depth 1
_imu/data sensor_msgs/Imu best_effort, depth 1
_motors/feedback sensor_msgs/JointState best_effort, depth 1
buttons std_msgs/UInt8 best_effort, depth 1
ranges (rosbot only) sensor_msgs/Range best_effort, depth 1
_motors/cmd std_msgs/Float32MultiArray best_effort, depth 1
leds std_msgs/UInt8 best_effort, depth 1
led_strip (rosbot_xl only) sensor_msgs/Image best_effort, depth 1
_mcu_id (service) std_srvs/Trigger

ros2 node info /<ns>/rosbot_mcu and ros2 topic info -v /<ns>/<topic> output is byte-identical between this bridge and the micro-ROS agent — that is the Phase-4 acceptance criterion.

Parameters

See config/rosbot.yaml and config/rosbot_xl.yaml for variants. Key parameters:

  • transport: udp serial
  • peer_ip / peer_port / local_port — UDP only (mavros default ports)
  • serial_port / serial_baudrate — serial only
  • ros_namespace — prefixed onto every advertised topic/service/node name
  • enable_ranges, enable_led_strip — variant gates
  • publish_link_state — if true, advertise an extra mcu_link_state std_msgs/UInt8 topic for diagnostics (off by default for API parity)
  • timesync_alpha — EWMA factor for the time-offset filter (D15)
  • expected_banner_regex — boot-banner gate string
CHANGELOG
No CHANGELOG found.

Package Dependencies

System Dependencies

No direct system dependencies.

Dependant Packages

Name Deps
rosbot_bringup

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged rosbot_mavlink_bridge at Robotics Stack Exchange

No version for distro hydro showing jazzy. Known supported distros are highlighted in the buttons above.
Package symbol

rosbot_mavlink_bridge package from rosbot_mavlink_bridge repo

rosbot_mavlink_bridge

ROS Distro
jazzy

Package Summary

Version 2.0.2
License Apache-2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/husarion/rosbot-firmware.git
VCS Type git
VCS Version jazzy
Last Updated 2026-06-19
Dev Status MAINTAINED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Bridge node that translates the firmware's MAVLink wire protocol into the same ROS 2 API the micro-ROS agent currently exposes, so downstream consumers (e.g. rosbot_ros) see byte-identical topics/services. Single source tree builds for both jazzy and humble (see MAVLINK_MIGRATION.md D24).

Additional Links

Maintainers

  • Husarion

Authors

  • Rafal Gorecki

rosbot_mavlink_bridge

ROS 2 bridge that talks MAVLink to the firmware (rosbot_mavlink / rosbot_xl_mavlink PlatformIO envs) and exposes the same topics and services that the existing micro-ROS firmware advertises today. From a downstream consumer’s perspective (e.g. the rosbot_ros driver inside rosbot-snap), there is no migration: same node name, same namespace, same QoS — only the wire format changes.

See MAVLINK_MIGRATION.md for the full implementation spec.

Build

The bridge is a regular ament_cmake package and is self-contained — the MAVLink dialect headers it needs are the canonical mavlink_dialect/ tree shipped inside the package. just mavgen (from the repo root) regenerates them in place; the firmware build (PlatformIO) reads from the same directory via its include path. Single source of truth, no duplication.

# from the repo root
colcon build --packages-select rosbot_mavlink_bridge
. install/setup.bash

The CI matrix builds the same source tree against both jazzy and humble containers (see .github/workflows/ci.yaml — D24).

Apt install (rosdistro)

Once released through bloom, the bridge is available as ros-<distro>-rosbot-mavlink-bridge and is pulled in automatically as an exec_depend of rosbot_bringup. Users on apt do not need this repo — the bridge ships alongside rosbot_ros.

Run

ROSbot XL (UDP transport):

ros2 launch rosbot_mavlink_bridge rosbot_xl.launch.py namespace:=rosbot

ROSbot (serial transport — pick the SBC’s SBC<->MCU UART):

ros2 launch rosbot_mavlink_bridge rosbot.launch.py namespace:=rosbot \
  --ros-args -p serial_port:=/dev/ttyS4

The bridge waits for the firmware’s boot banner (rosbot[_xl] <version> mavlink) before declaring itself CONNECTED and publishing telemetry — that’s the D19 mismatch detector.

Topics / services

Path (relative to namespace) Type QoS
battery sensor_msgs/BatteryState best_effort, depth 1
_imu/data sensor_msgs/Imu best_effort, depth 1
_motors/feedback sensor_msgs/JointState best_effort, depth 1
buttons std_msgs/UInt8 best_effort, depth 1
ranges (rosbot only) sensor_msgs/Range best_effort, depth 1
_motors/cmd std_msgs/Float32MultiArray best_effort, depth 1
leds std_msgs/UInt8 best_effort, depth 1
led_strip (rosbot_xl only) sensor_msgs/Image best_effort, depth 1
_mcu_id (service) std_srvs/Trigger

ros2 node info /<ns>/rosbot_mcu and ros2 topic info -v /<ns>/<topic> output is byte-identical between this bridge and the micro-ROS agent — that is the Phase-4 acceptance criterion.

Parameters

See config/rosbot.yaml and config/rosbot_xl.yaml for variants. Key parameters:

  • transport: udp serial
  • peer_ip / peer_port / local_port — UDP only (mavros default ports)
  • serial_port / serial_baudrate — serial only
  • ros_namespace — prefixed onto every advertised topic/service/node name
  • enable_ranges, enable_led_strip — variant gates
  • publish_link_state — if true, advertise an extra mcu_link_state std_msgs/UInt8 topic for diagnostics (off by default for API parity)
  • timesync_alpha — EWMA factor for the time-offset filter (D15)
  • expected_banner_regex — boot-banner gate string
CHANGELOG
No CHANGELOG found.

Package Dependencies

System Dependencies

No direct system dependencies.

Dependant Packages

Name Deps
rosbot_bringup

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged rosbot_mavlink_bridge at Robotics Stack Exchange

No version for distro kinetic showing jazzy. Known supported distros are highlighted in the buttons above.
Package symbol

rosbot_mavlink_bridge package from rosbot_mavlink_bridge repo

rosbot_mavlink_bridge

ROS Distro
jazzy

Package Summary

Version 2.0.2
License Apache-2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/husarion/rosbot-firmware.git
VCS Type git
VCS Version jazzy
Last Updated 2026-06-19
Dev Status MAINTAINED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Bridge node that translates the firmware's MAVLink wire protocol into the same ROS 2 API the micro-ROS agent currently exposes, so downstream consumers (e.g. rosbot_ros) see byte-identical topics/services. Single source tree builds for both jazzy and humble (see MAVLINK_MIGRATION.md D24).

Additional Links

Maintainers

  • Husarion

Authors

  • Rafal Gorecki

rosbot_mavlink_bridge

ROS 2 bridge that talks MAVLink to the firmware (rosbot_mavlink / rosbot_xl_mavlink PlatformIO envs) and exposes the same topics and services that the existing micro-ROS firmware advertises today. From a downstream consumer’s perspective (e.g. the rosbot_ros driver inside rosbot-snap), there is no migration: same node name, same namespace, same QoS — only the wire format changes.

See MAVLINK_MIGRATION.md for the full implementation spec.

Build

The bridge is a regular ament_cmake package and is self-contained — the MAVLink dialect headers it needs are the canonical mavlink_dialect/ tree shipped inside the package. just mavgen (from the repo root) regenerates them in place; the firmware build (PlatformIO) reads from the same directory via its include path. Single source of truth, no duplication.

# from the repo root
colcon build --packages-select rosbot_mavlink_bridge
. install/setup.bash

The CI matrix builds the same source tree against both jazzy and humble containers (see .github/workflows/ci.yaml — D24).

Apt install (rosdistro)

Once released through bloom, the bridge is available as ros-<distro>-rosbot-mavlink-bridge and is pulled in automatically as an exec_depend of rosbot_bringup. Users on apt do not need this repo — the bridge ships alongside rosbot_ros.

Run

ROSbot XL (UDP transport):

ros2 launch rosbot_mavlink_bridge rosbot_xl.launch.py namespace:=rosbot

ROSbot (serial transport — pick the SBC’s SBC<->MCU UART):

ros2 launch rosbot_mavlink_bridge rosbot.launch.py namespace:=rosbot \
  --ros-args -p serial_port:=/dev/ttyS4

The bridge waits for the firmware’s boot banner (rosbot[_xl] <version> mavlink) before declaring itself CONNECTED and publishing telemetry — that’s the D19 mismatch detector.

Topics / services

Path (relative to namespace) Type QoS
battery sensor_msgs/BatteryState best_effort, depth 1
_imu/data sensor_msgs/Imu best_effort, depth 1
_motors/feedback sensor_msgs/JointState best_effort, depth 1
buttons std_msgs/UInt8 best_effort, depth 1
ranges (rosbot only) sensor_msgs/Range best_effort, depth 1
_motors/cmd std_msgs/Float32MultiArray best_effort, depth 1
leds std_msgs/UInt8 best_effort, depth 1
led_strip (rosbot_xl only) sensor_msgs/Image best_effort, depth 1
_mcu_id (service) std_srvs/Trigger

ros2 node info /<ns>/rosbot_mcu and ros2 topic info -v /<ns>/<topic> output is byte-identical between this bridge and the micro-ROS agent — that is the Phase-4 acceptance criterion.

Parameters

See config/rosbot.yaml and config/rosbot_xl.yaml for variants. Key parameters:

  • transport: udp serial
  • peer_ip / peer_port / local_port — UDP only (mavros default ports)
  • serial_port / serial_baudrate — serial only
  • ros_namespace — prefixed onto every advertised topic/service/node name
  • enable_ranges, enable_led_strip — variant gates
  • publish_link_state — if true, advertise an extra mcu_link_state std_msgs/UInt8 topic for diagnostics (off by default for API parity)
  • timesync_alpha — EWMA factor for the time-offset filter (D15)
  • expected_banner_regex — boot-banner gate string
CHANGELOG
No CHANGELOG found.

Package Dependencies

System Dependencies

No direct system dependencies.

Dependant Packages

Name Deps
rosbot_bringup

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged rosbot_mavlink_bridge at Robotics Stack Exchange

No version for distro melodic showing jazzy. Known supported distros are highlighted in the buttons above.
Package symbol

rosbot_mavlink_bridge package from rosbot_mavlink_bridge repo

rosbot_mavlink_bridge

ROS Distro
jazzy

Package Summary

Version 2.0.2
License Apache-2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/husarion/rosbot-firmware.git
VCS Type git
VCS Version jazzy
Last Updated 2026-06-19
Dev Status MAINTAINED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Bridge node that translates the firmware's MAVLink wire protocol into the same ROS 2 API the micro-ROS agent currently exposes, so downstream consumers (e.g. rosbot_ros) see byte-identical topics/services. Single source tree builds for both jazzy and humble (see MAVLINK_MIGRATION.md D24).

Additional Links

Maintainers

  • Husarion

Authors

  • Rafal Gorecki

rosbot_mavlink_bridge

ROS 2 bridge that talks MAVLink to the firmware (rosbot_mavlink / rosbot_xl_mavlink PlatformIO envs) and exposes the same topics and services that the existing micro-ROS firmware advertises today. From a downstream consumer’s perspective (e.g. the rosbot_ros driver inside rosbot-snap), there is no migration: same node name, same namespace, same QoS — only the wire format changes.

See MAVLINK_MIGRATION.md for the full implementation spec.

Build

The bridge is a regular ament_cmake package and is self-contained — the MAVLink dialect headers it needs are the canonical mavlink_dialect/ tree shipped inside the package. just mavgen (from the repo root) regenerates them in place; the firmware build (PlatformIO) reads from the same directory via its include path. Single source of truth, no duplication.

# from the repo root
colcon build --packages-select rosbot_mavlink_bridge
. install/setup.bash

The CI matrix builds the same source tree against both jazzy and humble containers (see .github/workflows/ci.yaml — D24).

Apt install (rosdistro)

Once released through bloom, the bridge is available as ros-<distro>-rosbot-mavlink-bridge and is pulled in automatically as an exec_depend of rosbot_bringup. Users on apt do not need this repo — the bridge ships alongside rosbot_ros.

Run

ROSbot XL (UDP transport):

ros2 launch rosbot_mavlink_bridge rosbot_xl.launch.py namespace:=rosbot

ROSbot (serial transport — pick the SBC’s SBC<->MCU UART):

ros2 launch rosbot_mavlink_bridge rosbot.launch.py namespace:=rosbot \
  --ros-args -p serial_port:=/dev/ttyS4

The bridge waits for the firmware’s boot banner (rosbot[_xl] <version> mavlink) before declaring itself CONNECTED and publishing telemetry — that’s the D19 mismatch detector.

Topics / services

Path (relative to namespace) Type QoS
battery sensor_msgs/BatteryState best_effort, depth 1
_imu/data sensor_msgs/Imu best_effort, depth 1
_motors/feedback sensor_msgs/JointState best_effort, depth 1
buttons std_msgs/UInt8 best_effort, depth 1
ranges (rosbot only) sensor_msgs/Range best_effort, depth 1
_motors/cmd std_msgs/Float32MultiArray best_effort, depth 1
leds std_msgs/UInt8 best_effort, depth 1
led_strip (rosbot_xl only) sensor_msgs/Image best_effort, depth 1
_mcu_id (service) std_srvs/Trigger

ros2 node info /<ns>/rosbot_mcu and ros2 topic info -v /<ns>/<topic> output is byte-identical between this bridge and the micro-ROS agent — that is the Phase-4 acceptance criterion.

Parameters

See config/rosbot.yaml and config/rosbot_xl.yaml for variants. Key parameters:

  • transport: udp serial
  • peer_ip / peer_port / local_port — UDP only (mavros default ports)
  • serial_port / serial_baudrate — serial only
  • ros_namespace — prefixed onto every advertised topic/service/node name
  • enable_ranges, enable_led_strip — variant gates
  • publish_link_state — if true, advertise an extra mcu_link_state std_msgs/UInt8 topic for diagnostics (off by default for API parity)
  • timesync_alpha — EWMA factor for the time-offset filter (D15)
  • expected_banner_regex — boot-banner gate string
CHANGELOG
No CHANGELOG found.

Package Dependencies

System Dependencies

No direct system dependencies.

Dependant Packages

Name Deps
rosbot_bringup

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged rosbot_mavlink_bridge at Robotics Stack Exchange

No version for distro noetic showing jazzy. Known supported distros are highlighted in the buttons above.
Package symbol

rosbot_mavlink_bridge package from rosbot_mavlink_bridge repo

rosbot_mavlink_bridge

ROS Distro
jazzy

Package Summary

Version 2.0.2
License Apache-2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/husarion/rosbot-firmware.git
VCS Type git
VCS Version jazzy
Last Updated 2026-06-19
Dev Status MAINTAINED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Bridge node that translates the firmware's MAVLink wire protocol into the same ROS 2 API the micro-ROS agent currently exposes, so downstream consumers (e.g. rosbot_ros) see byte-identical topics/services. Single source tree builds for both jazzy and humble (see MAVLINK_MIGRATION.md D24).

Additional Links

Maintainers

  • Husarion

Authors

  • Rafal Gorecki

rosbot_mavlink_bridge

ROS 2 bridge that talks MAVLink to the firmware (rosbot_mavlink / rosbot_xl_mavlink PlatformIO envs) and exposes the same topics and services that the existing micro-ROS firmware advertises today. From a downstream consumer’s perspective (e.g. the rosbot_ros driver inside rosbot-snap), there is no migration: same node name, same namespace, same QoS — only the wire format changes.

See MAVLINK_MIGRATION.md for the full implementation spec.

Build

The bridge is a regular ament_cmake package and is self-contained — the MAVLink dialect headers it needs are the canonical mavlink_dialect/ tree shipped inside the package. just mavgen (from the repo root) regenerates them in place; the firmware build (PlatformIO) reads from the same directory via its include path. Single source of truth, no duplication.

# from the repo root
colcon build --packages-select rosbot_mavlink_bridge
. install/setup.bash

The CI matrix builds the same source tree against both jazzy and humble containers (see .github/workflows/ci.yaml — D24).

Apt install (rosdistro)

Once released through bloom, the bridge is available as ros-<distro>-rosbot-mavlink-bridge and is pulled in automatically as an exec_depend of rosbot_bringup. Users on apt do not need this repo — the bridge ships alongside rosbot_ros.

Run

ROSbot XL (UDP transport):

ros2 launch rosbot_mavlink_bridge rosbot_xl.launch.py namespace:=rosbot

ROSbot (serial transport — pick the SBC’s SBC<->MCU UART):

ros2 launch rosbot_mavlink_bridge rosbot.launch.py namespace:=rosbot \
  --ros-args -p serial_port:=/dev/ttyS4

The bridge waits for the firmware’s boot banner (rosbot[_xl] <version> mavlink) before declaring itself CONNECTED and publishing telemetry — that’s the D19 mismatch detector.

Topics / services

Path (relative to namespace) Type QoS
battery sensor_msgs/BatteryState best_effort, depth 1
_imu/data sensor_msgs/Imu best_effort, depth 1
_motors/feedback sensor_msgs/JointState best_effort, depth 1
buttons std_msgs/UInt8 best_effort, depth 1
ranges (rosbot only) sensor_msgs/Range best_effort, depth 1
_motors/cmd std_msgs/Float32MultiArray best_effort, depth 1
leds std_msgs/UInt8 best_effort, depth 1
led_strip (rosbot_xl only) sensor_msgs/Image best_effort, depth 1
_mcu_id (service) std_srvs/Trigger

ros2 node info /<ns>/rosbot_mcu and ros2 topic info -v /<ns>/<topic> output is byte-identical between this bridge and the micro-ROS agent — that is the Phase-4 acceptance criterion.

Parameters

See config/rosbot.yaml and config/rosbot_xl.yaml for variants. Key parameters:

  • transport: udp serial
  • peer_ip / peer_port / local_port — UDP only (mavros default ports)
  • serial_port / serial_baudrate — serial only
  • ros_namespace — prefixed onto every advertised topic/service/node name
  • enable_ranges, enable_led_strip — variant gates
  • publish_link_state — if true, advertise an extra mcu_link_state std_msgs/UInt8 topic for diagnostics (off by default for API parity)
  • timesync_alpha — EWMA factor for the time-offset filter (D15)
  • expected_banner_regex — boot-banner gate string
CHANGELOG
No CHANGELOG found.

Package Dependencies

System Dependencies

No direct system dependencies.

Dependant Packages

Name Deps
rosbot_bringup

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged rosbot_mavlink_bridge at Robotics Stack Exchange