Paced

About the project

We are participating in the NXP Cup, it’s a competition where we build and program an autonomous robotic car. We want to demonstrate that anybody with determination can learn to code, with the majority of the team having never coded before. We would like your support to demonstrate that anybody can do it.

Project info

Difficulty: Difficult

Platforms: PX4

Estimated time: 6 months

License: GNU General Public License, version 3 or later (GPL3+)

Items used in this project

Hardware components

Jumper wires Jumper wires x 1
Power Distribution Board Power Distribution Board x 1
PX4 FMU PX4 FMU x 1
Battery Battery 7.4 V LiPo x 1
Ultrasonic Sensor Ultrasonic Sensor All the better to hear with, my child. x 1
Pixy2 CMUcam5 Pixy2 CMUcam5 All the better to see with, my child. x 1
DFROBOT 165 DFROBOT 165 x 1

Software apps and online services

QGroundControl QGroundControl
XCode XCode

Hand tools and fabrication machines

Screwdriver Screwdriver x 1
Electrical Tape Electrical Tape x 1
Soldering equipment Soldering equipment x 1

Story

2021 Back at it!

PACEd has signed up for the NXP Cup 2021. Our car is the same, building on our "Curries Futuristicus" project, except from that we have changed the servo as the original one was defect. However, the code is new and constantly changing. 

2021 Algorithm

Line Following 1

We find the angle of the line we're tracking and convert it to a linear scale. An angle in the range [0, 180] becomes a double in the range [-1.0, 1.0] where +1.0 is a left turn, -1.0 is a right turn, and 0.0 is straight forward. As the 0.0 doesn't necessarily make the car go straight forwards, we introduce a trim variable trying to adjust for this.

We then store the x latest angles (converted to a double [-1, 1]) in an array and use their average to set the servo angle. As per 04.01.21, our x is 10.

2021 Challenges

The Car Turns too Much to the Right

Even with trim corrections. We may need to use a non-linear mapping from the [0, 180] angle to the [-1, 1] steering value.

Battery Status

There's no way of telling whether out battery is fully charged or not.

Ultrasonic Sensor (USS)

The USS doesn't fit into the FMU. There exist adapters, but not yet obtained. Yet, we have not found out how to retrieve the signal from the USS to the FMU. We don't know what C++ commands we must use.

Give/Get Help

If you also participate in NXP Cup 2021 and have faced some challenges you'd like to discuss, don't hesitate to contact us on email or on our Facebook page.

email: uoenxp@gmail.com

Facebook: UoE NXP Cup 2019/20

Credits

Leave your feedback...