How to set up a custom Mavlink message?

So, I have read the tutorial here: http://dev.ardupilot.com/wiki/code-overview-adding-a-new-mavlink-message/

I have successfully set up the .xml file and generated the .h file, but I am confused about what exactly I should do in the main vehicle code to send it. Since it is just a custom message, any sketchy but working solution is fine.

Also, since I am trying to send the data from a custom made lidar back to an onboard raspberry pi, how to make sure that I send the message at at least 20hz or something? Looking at the output of the raw Mavlink messages already existed (via Dronekit), they seem to be sent at a much lower rate than 20hz.

You need to be a member of diydrones to add comments!

Join diydrones

Email me when people reply –

Replies

  • Is there a reason you need to use a custom message? there's already a mavlink message for lidar sensors - DISTANCE_SENSOR.

    Take a look at the .\libraries\AP_RangeFinder folder of the APM source code. There's plenty of examples of lidar systems in there.

    • I am going to use lidar to do 3D scanning, so in addition I will need the information from two servos that control the mirror that spins the laser. Therefore I want to create a new custom message to group these info (along with another ultrasonic sensor reading and an index) together so I can access it via Dronekit more easily. However, it seems that I will still have to make a parser to read the raw mavlink messages, not sure if there is an easier way to do that. Also importantly, I want it to be sent at 20hz or above for obvious reasons. Thank you.

      • Sending of mavlink messages is limited to a maximum of 10Hz in APM.

        Since you've got an on-board Rasberry Pi, it should be easier to just connect the lidar directly to it and let Dronekit read the data from there.

        • Developer

          you can send mavlink at up to 50Hz in ArduPilot now

          • I have written my own library to make things more flexible, so I thought it might be worth it to create my own custom message.

            Also, 50hz would be great if that is possible.

            But, back to my original question, what should I do in the main vehicle code (like Arducopter.cpp or GCS_MAVLINK.cpp) to send the message? Thanks!

This reply was deleted.

Activity