Collection of files for the UWB drone experiments
As of now (Oct 7th, 2024), the repository contains the following files, with the following purposes:
These are the different launch files we run
launch/mocap_offboard.launch: Launch file for the offboard control node with the motion capture system. This is the one used to do waypoint/trajectory followinglaunch/my_sensors.launch: Launch file for the sensors that Andrew and Alan are using (vectornav, realsense, etc.)launch/record_data.launch: Launch file for recording all of the different topics that we (Andrew and Alan) are interested in recording. This is set so each robot records its own data.
These are the key MAVROS files we use
scripts/base_mavros_interface.py: Python file that contains the base class for the MAVROS interface. This is a generic class that we then build on top of for the offboard control node.scripts/offboard_node.py: Python node that contains the offboard control node. This node is responsible for sending the setpoints to the PX4 flight controller. This extends thebase_mavros_interface.pyclass. This also launches a ROS node.
These are files we use to generate trajectories offline and then publish them so that the offboard control node can follow them
scripts/make_experiment_trajectories.py: Python script that generates the trajectories that we want to follow. This script generates the trajectories and saves them to a CSV file.scripts/trajectories.csv: CSV file that contains the trajectories that we want to follow. This file is generated by themake_experiment_trajectories.pyscript. It is rewritten every time the script is run.scripts/publish_trajectories.py: Python script that publishes the trajectories that we want to follow. This script reads the CSV file and publishes the trajectories to the appropriate ROS topic for the offboard control node to follow.scripts/drone_vars.py: Generic file that contains the drone variables that we use in the different scripts. This file is imported by the other scripts.
These are the other (miscellaneous) files that we use
scripts/my_transform_broadcaster.py: Python script that broadcasts the transform between the motion capture system and the drone. This is used to get the position of the drone in the motion capture system. It is not clear that this is useful I think this is not usedscripts/repub_mocap.py: Python script that republishes the motion capture data. This is used to republish the motion capture data to the proper topic so that the offboard control node can use it for state estimation.scripts/spoofed_mocap.py: Python script that spoofs the motion capture data. We used this to test things before we worked out the mocap system. This is not used
These files were created to test the offboard control node with a square trajectory. They are just example code now (that we occasionally use to test things)
launch/offboard_square_example.launch: Launch file for the offboard control node with a square trajectoryscripts/track_square_node.py: Python node that publishes a square trajectory for the offboard control node to follow.
CMakeLists.txt: CMake file for the ROS packagepackage.xml: Package file for the ROS package