Visible to the public 2021 CPS ChallengeConflict Detection Enabled

2021 NSF Student CPS Challenge -- Lunar Lander ExoCam -- Earth Analog

Visible to the public 


2021 CPS Challenge

"Lunar Lander ExoCam -- Earth Analog"


Rolling virtual competition on CPS-VO: Started June 2, 2021

Rolling hardware competition at ASU Drone Studio:  Starting November 2021

Outdoor competition at TIMPA Airfield, Tucson Arizona: May 2022

In the 2021 NSF CPS Challenge, we will explore agile maneuvers with a multi-rotor drone, with the PX4 autopilot stack. For three rounds, we will challenge teams to show us, virtually, that they can use a multirotor drone to throw a sensor probe outside a perimeter, so that the landing of the drone can be imaged. Then, through November, we will have a Hardware event at the ASU Drone Studio


This project is themed around a NASA TechFlights project, Lunar Exocam


Virtual competition rounds:


Qualifying: Throw the probe using the UAV at least 20 metres away for the given limits in positions of the UAV.


Scoring: Participants have to publish a Bool(0) message on the topic “/probe_attached” immediately after the probe is detached, and then the evaluation code displays the score after the probe touches the ground.

Step 1: For launching the world in the qualifying phase, type the following command:

roslaunch cps_challenge_2021 qualifying.launch

Step 2: A sample code has been provided in the scripts folder. You may use this or create your own file to achieve the task. To run this code, type the following in a new terminal after Step 1:

rosrun cps_challenge_2021


[Minimum limit, Maximum limit]

x position

[-5,5] m

y position

[-5,5] m

z position

[0,30] m


Make use of the attitude target command in order to catapult the probe.



Phase 1: This phase challenge is composed of two sub-challenges, covering optimal throw of a probe, and visual-servoing with a moving receiver platform, and throwing the probe onboard that. 

Phase 1A: Given a target 2D point as target, throw the probe as close as possible to that point. 

For launching the world in the Phase 1A, type the following command:

roslaunch cps_challenge_2021 phase1a.launch

Phase 1B: Throw the probe onto the trunk of a stationary Polaris Ranger, which is to be detected through an onboard camera.

Phase 2: Throw the probe onto the trunk of a moving Polaris Ranger, which is to be detected through an onboard camera.

For launching the world in the Phase 2, type the following command:

roslaunch cps_challenge_2021 phase2.launch


Sample code is provided for getting used to accessing the onboard camera. For this round, we will be using the exocam model!

Instructions to access the container:

  • Create an account on
  • Under the Design tab select Challenge21-DL (ASU server). 
  • Then click on the Launch Resource button. This will create a container for the respective user id.
  • Note: There will be an error modal window when you start the container for the first time, just click OK and ignore the warning. 
  • An option to pause the container, when not in use, is available under the Actions header.


Technical committee:

Jason Achilles, Zandef Deksit Inc

Dr. Ramon Arrowsmith, Arizona State University  

Dr. Heather Throop, Arizona State University 


2021 CPS Challenge Interns: 

Srikar Siddharth, National Institute of Technology, Karnataka, India 

Hariharan Ravichandran, Indian Institute of Technology, Kharagpur, India 

Abdullah Masud, Arizona State University 


If you have questions, please contact Jnaneshwar Das 



* See Previous CPS Challenges: