A set of packages enabling FRC teams to use ROS on their robots.
The project primary consists of tools to interface ros_control with the WPILib tools required to develop FRC-legal robots, as well as compiling and running ROS on the NI roboRIO. We also provide tools to enable running the robot in Gazebo simulation.
Read the project's design goals in DESIGN.md for details on the direction and design of the project.
Full instructions for cross-compiling ROS for the roboRIO and linking the WPI libraries can be found in INSTALLATION.md.
Once the workspace has been setup for cross-compilation, you can native or cross compile the code using:
catkin profile set <native|cross>
catkin build
We largely follow the ROS coding guidelines, with a few noteable exceptions. To make development easy, we provide configuration files for standard linting and static analysis tools such as clang-format, clang-tidy and yapf.
Install the linters:
sudo apt install clang-format-7 clang-tidy-7
pip install yapf pylint --user
# If ~/.local/bin is not on your path:
echo "PATH=\"$PATH:$HOME/.local/bin\"" >> ~/.bashrc
To run the formatters:
find . -name "*.h" -o -name "*.cpp" | xargs clang-format-7 -i -style=file
yapf -ir .
To run the linters:
./scripts/run_clang_tidy.py uwreact_robot
find . -iname "*.py" -o -iregex ".*/scripts/.*" | xargs pylint
We facilitate a completely open source environment for all of our projects, and are always welcoming contributors.
Before opening your editor, read this project's contributing guide to learn about its development and contribution process.
The frc_control
project is BSD 3-Clause licensed.