Ground control station and optimization code from Tango on Quadrotors project - NTR 50759
Switch branches/tags
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.


Ground control station and optimization code from Tango on Quadrotors project - NTR 50759


For Ubuntu 16.04

  1. Install ROS

  2. Create a catkin workspace, or use an existing one

mkdir -p ~/catkin_ws/src
cd ~/catkin_ws
catkin init
  1. Install voxblox in the workspace (

  2. Get TORQ_GCS code In src

git clone
  1. Install Scipy and numpy
sudo apt-get install libblas-dev liblapack-dev libatlas-base-dev gfortran 

Get pip

sudo apt-get install python-pip 

Install numpy and scipy:

sudo pip install numpy scipy
  1. Install dependencies Install cvx opt dependencis
sudo apt-get install libsuitesparse-dev 
sudo apt-get install libxml2-dev libxslt1-dev
  1. Install traj
cd ~/catkin_ws/src/torq/traj
sudo python install 
// OR:
sudo python develop 
  1. Build px4 messages and torqgcs from catkin Get into the catkin workspace root (e.g. catkin_ws)
cd ~/catkin_ws
catkin build px4_msgs torq_gcs


Start a ros core


Source the workspace

cd ~/catkin_ws
source devel/setup.bash
cd src/torq/torq_gcs

Run Rviz with the config

rviz -d config/race_conops.rviz

Start a node

python nodes/

Basic Functionality

Images and more details are in this googlc document, but may mention data not available here. The basic steps, without images are included below.

  1. Load waypoints
  • In the RDP tab, click Load Waypoints
  • Select file
    • Choose rand_waypoints_82_001.yaml in (in demo_data) 2.Click Simplify Waypoints
    • This will then initialise the trajectory in the planner - you should see it on the RViz display
  1. Manipulate waypoints - Test the capability to change the trajectory with the waypoints
  • Move with interactive markers in RVIz -Trajectories should update
  • Right click markers and delete
  • Right click markers and insert
  1. Go into the UNCO Tab
  2. Optimise time
  • Choose a time penalty
  • Click optimise
  • Wait up to 10-20 seconds
  • Trajectory should change, smooth and traj time should change
  • Note this will take longer for trajectories with more waypoints
  • You can try different weightings to see the effect
  1. Scale total time -Input desired time
  • Click Change Total Time
  • Observe changes - will go faster, but path will be the same
  1. Create take-off and landing
  2. Click Setup Take-Off and Land
  • Observer result
  • Will set start position to the origin as default
  • Right click waypoints and change type to entry or exit
  • Take-off and landing will move
  1. Create Laps
  • Input number of laps
  • Click Close Loop
  • Click Create N Laps
  1. Animate
  • Click checkbox Animate
  • Ensure the tf and mesh is being displayed in RViz
  1. Save trajectory
  • Click Save Trajectory
  • It is recommended to load trajectories with the same planner gui as saved
  1. Save waypoints
  • Click Save Waypoints
  • Will just save the waypoints for the given trajectory
  1. Check performance
  • Click Load Quad Params
  • Find and select quad_params_nightwing.yaml (in demo_data)
  • In the right table in UNCO, click (Re-calculate) under Max RPM
  • The output will be in the table
  1. Change Segment time
  • Select segment and time under the Change Seg Time tab in the UNCO tab
  • Click Change Seg Time
  • This will change the time for that specific segment