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

Hardware competition at ASU Drone StudioOctober 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. It links to ASU graduate level special topics course SES 598 Autonomous Exploration Systems. Informal recordings of the class lectures are available at this Youtube playlist


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: