Skip to content

ROS metapackage enabling FRC teams to use ROS on their robots

License

Notifications You must be signed in to change notification settings

uwreact/frc_control

Repository files navigation

frc_control

Build Status License

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.

Compiling

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

Code Style

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

Contributing

We facilitate a completely open source environment for all of our projects, and are always welcoming contributors.

Contributing Guide

Before opening your editor, read this project's contributing guide to learn about its development and contribution process.

License

The frc_control project is BSD 3-Clause licensed.