Guidance Needed for Creating Custom ROS2 Communication with X500 Drone and Pixhawk 6C

Hello everyone,

I am working on a personal project to develop my knowledge of ROS2 and PX4. I have a Holybro X500 drone equipped with a Pixhawk 6C. I know that there is existing support for ROS2 communication with PX4, but I want to create my own custom communication between the drone and ROS2.

I am a beginner and still trying to understand the different options available, specifically MAVSDK and MAVROS. Here are my questions:

  1. Best Approach: Should I use MAVSDK or MAVROS for creating my custom communication? What are the pros and cons of each for a beginner?
  2. Understanding MAVSDK and MAVROS: Could someone explain in simple terms what MAVSDK and MAVROS are, and how they differ in the context of communicating with a PX4-based drone?
  3. Getting Started: What are the initial steps I should take to start developing my own ROS2 hardware component for the Pixhawk 6C? Are there any tutorials or resources you recommend for beginners?
  4. Integration Details: What key aspects should I consider when integrating PX4 with ROS2 for custom communication? Any specific topics or parameters that are crucial?

Any advice, resources, or pointers would be greatly appreciated as I embark on this learning journey.

Thank you!

Hello, I am doing a similar kind of thing. I have already partially set up MAVROS with ArduPilot. Now shifting to PX4. I have also used X500 V2 but with Pixhawk 6x. I would really appreciate the discussion if you share the updates.

Hello @Kelvin_Kefren,

I am really not an expert but I have worked with ROS2 + Ardupilot and now ROS2 + PX4 and I used MAVROS for communication.

From my understanding MAVROS has two sides:

  1. It is a ROS node that communicates through eg. publisher/subscriber with other nodes
  2. It is a MAVLINK access point through which it passes commands to eg. a flight controller

MAVROS translates ROS topics to MAVLINK protocoll and vice versa.

Again, I am not an expert in this topic, this is just my perception.