Hello! The goal of this is to give you an introduction to what it is like to work with C++ / ROS2 and data we record during every run. To join our team, we want to see both completion of these tasks and high quality work.
What is expected (in decreasing order of importance)
- Testing your code (i.e. visualize the data as plots in Foxglove, create informative layouts, etc.)
- Asking good questions in Slack (i.e. questions that ChatGPT can't answer with one prompt)
- Starting work before the deadline + seeing consistent progress
- High quality code (i.e. clean code, good variable names, etc.)
- Completing all four tasks
Use this tutorial as an example: https://docs.ros.org/en/foxy/Tutorials/Beginner-Client-Libraries/Writing-A-Simple-Cpp-Publisher-And-Subscriber.html
You can also reference the trajectory_propagator package for a example of how to write nodes (NOTE: this package won't build here because we haven't included all the necessary dependencies)
In ROS 2 we use colcon for building all of our packages. Always build your packages from ~/cav_take_home
(must join with @virginia.edu email) https://join.slack.com/t/cavaliertakehomeslack/shared_invite/zt-309wg9j29-RbvdsdKOC7ls_C34z7jGNw
git clone <>
colcon build --packages-up-to deep_orange_msgs uva_iac_msgs localization_msgs raptor_dbw_msgs
Whenever you run anything, it is critical that you source your workspace. This allows you to work with our custom ROS2 message types and run the packages you've built.
source ~/cav_take_home/install/setup.sh