This fork of the ROSplane repository, is an example of how to appropriately fork and modify ROSplane. A few of the key points are outlined below.
- Move unchanged ROS packages to a directory that will not be built if you have the normal ROSplane built on your system as well. Having ROS packages with the same name can cause issues when running and building.
- For example, in this repository, the
rosplane_extra
,rosplane_gcs
,rosplane_msgs
,rosplane_sim
androsplane_tuning
ROS packages (folders) have been moved to the.unchanged
directory.
- For example, in this repository, the
- Rename the modified package for clarity and to avoid aforementioned build issues. This is done in the
CMakeLists.txt
and in thepackages.xml
. - For additional clarity archive or remove the unchanged/unused files within the modified ROSplane package. This will help when bugs inevitably arise. You can know if the issue originates in the original repository or is due to your changes.
- Update the rclcpp entry point at the bottom of the
controller_base.hpp
. This tells ROS to run your node.
To build this, you must have a built and sourced version of the original repository. You can then build this workspace as normal.
ROSplane is a basic fixed-wing autopilot build around ROS2 for use with the ROSflight autopilot. It is a continuation of the original ROSplane project. It is built according to the methods published in Small Unmanned Aircraft: Theory and Practice by Dr. Randy Beard and Dr. Tim McLain.
For more information, see the ROSplane overview or the ROSplane setup guide on the ROSflight documentation.