This is a ROS wrapper for the Azure Spatial Anchors Linux SDK, allowing robots (and other devices equipped with a vision-based sensors and a pose estimation system) to create and query Azure Spatial Anchors, allowing the robot to co-localize with AR-enabled phones and Hololens devices.
This was presented as part of the IROS 2020 Tutorial on Mixed Reality and Robotics. The tutorial was available from October 2020 until January 2021 at https://www.iros2020.org/.
The lecture content of the tutorial is now available as a Microsoft Research Webinar: https://note.microsoft.com/MSR-Webinar-Reality-and-Robotics-Registration-On-Demand.html
The hands-on video walkthroughs for the demos are available on the MSR YouTube channel:
- Demo 1: Interaction (the demo that uses the sample code in this repo)
- Demo 2: Colocalization (the demo that goes with this repo and is described in the wiki)
You can sign up to get access to the Azure Spatial Anchors Linux SDK here: aka.ms/ASALinuxSDKSignup. This is REQUIRED to use this repo. It may take us up to 2 business days to add you. This requires an Azure Devops account.
You should have an Azure Spatial Anchors account in Azure to use this SDK and wrapper. Please see instructions for the ASA Quickstarts to create one. Keep the Account ID, and Account Key, and Account Domain nearby. This is free up to 10k queries/month.
- Ubuntu 18.04/20.04
- ROS melodic or noetic
- Azure Portal account with an Azure Spatial Anchors resource.
- Azure Devops account account.
- Signed up for Azure Spatial Anchors Linux SDK, which may take 1-2 days.
Timeseries of:
- Undistorted grayscale images
- 6 DoF poses of the cameras for the corresponding images
- Camera intrinsics (focal length, principal point)
See this description of camera calibration for more details.
See the Wiki for getting started and installation instructions.
Check out the FAQ and Known Issues page on the Wiki first!
Please file an issue on the Github repo if it is not covered in the Wiki.
This project welcomes contributions and suggestions. Most contributions require you to agree to a Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us the rights to use your contribution. For details, visit https://cla.opensource.microsoft.com.
When you submit a pull request, a CLA bot will automatically determine whether you need to provide a CLA and decorate the PR appropriately (e.g., status check, comment). Simply follow the instructions provided by the bot. You will only need to do this once across all repos using our CLA.
This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact opencode@microsoft.com with any additional questions or comments.