NXP Cup Example Application
Reading the example code
The example code in the PX4 repository you cloned on the last page is located at PX4-Autopilot/src/examples/nxpcup/
. The only file you should have to edit is nxpcup_race.cpp
. This file contains the raceTrack() function, which is where your self-driving algorithm code should live. You can use the pixy_vector_s structure to write your algorithms. The structure is as follows:
You will use this data to populate the roverControl control{} structure which contains steer and speed values. The steer value is rad/s, and the speed value is m/s. This structure is returned in the raceTrack function and is used in the nxpcup_work.cpp file to control the rover. The nxpcup_work file should not be edited.
Running the example code
On the previous page, you flashed the PX4 software to your rover and set it up in QGroundControl. In the software you downloaded, there are two example applications for driving the MR-Buggy3 around a NXP Cup track. One is called pixy_uorb
, and the other is called nxpcup_work
. pixy_uorb
uses the standard Pixy driver to publish Pixy vector data to uORB, the publish/subscribe protocol in PX4. This data is subscribed to by nxpcup_work
, the application that tells the Buggy3 how to drive around the track using the Pixy data. To run this code, you can open QGroundControl and navigate to the Q logo -> Analyze Tools -> Mavlink Console and run:
Your car should start driving on the track by recognizing the two outer lines.
Last updated