A robot as fast as the famous pod racer driven by Anakin Skywalker with the powerful engines from Radon Ulzer. :-)
Several kind of exclusive applications are available:
- Convoy leader - A line follower, providing information to the DroidControlShip in a convoy leader role.
- Line follower - Just a line follower, using a PID controller.
- Remote Control - The robot is remote controlled by e.g. the DroidControlShip in a convoy follower role.
The main target of the firmware is the Pololu Zumo32U4 robot (see https://www.pololu.com/category/129/zumo-robots-and-accessories) from Pololu.
The simulation is based on the open source robot simulator Webots. The application and the services are equal to the target firmware. Only the HAL is different in the simulation.
- Website: https://cyberbotics.com/#cyberbotics
- Github: https://github.com/cyberbotics/webots
- Compatible webots versions:
- v2023a
- v2023b
- Install Webots.
- Setup for external controllers:
- Set environment variable
WEBOTS_HOME
to installation directory of Webots. - Add to path:
- Linux:
${WEBOTS_HOME}/lib/controller
- Windows:
%WEBOTS_HOME%\lib\controller
- Linux:
- Set environment variable
- Install the native compiler toolchain:
- Linux: Install the gcc toolchain, depended on your distribution.
- Windows: Install the MSYS2 toolchain and follow the instructions there.
To adapt the HAL to the simulation, some sourcecode files from Webots are necessary. Currently there is no Webots library in the platformio registry available. Therefore a local library is created during the build. Ensure that that Webots is already installed, before you try to build it!
The library creation is handled in the ./scripts/create_webots_library.py
script and runs automatically after building for the WebotsSim environment.
Platformio project tasks --> WebotsSim --> Build
- Start the Webots simulation.
- File --> Open World
- Select
webots/LineFollower_track.wbt
. - The loaded world should now look like this:
- Open a command line (shell) and change to the folder with the built executable in
.pio/build/native
. This folder contains all necessary shared libraries as well. - Start the executable and the simulated display should show the name of the team and etc.
- Click in simulation on the display to focus the simulation.
- Now the keyboard keys a, b and c can be used to control the robot according to the implemented application logic.
Library | Description | License |
---|---|---|
Zumo32U4 library | Provides access to the Zumo32U4 hardware. | MIT |
SerialMuxProt | Multiplexing Communication Protocol | MIT |
If you have further ideas or you found some bugs, great! Create a issue or if you are able and willing to fix it by yourself, clone the repository and create a pull request.
The whole source code is published under the MIT license. Consider the different licenses of the used third party libraries too!
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, shall be licensed as above, without any additional terms or conditions.