microsoft / azure_spatial_anchors_ros

ROS wrapper for the Azure Spatial Anchors Linux SDK, allowing robots (and other devices with vision-based sensors) to co-localize with other robots, AR-enabled phones, and Hololens devices.
https://azure.microsoft.com/en-us/services/spatial-anchors/
MIT License
87 stars 20 forks source link

Azure Kinect DK NotEnoughSpatialData #29

Open JaVo93 opened 2 years ago

JaVo93 commented 2 years ago

hi,

I have a question: Someone got ASA and ROS running with the Azure Kinect DK?

I run Azure Kinect DK on Ubuntu 20.04 and ROS noetic. I'm using the SLAM RTA b map to get the position of the camera: https://github.com/microsoft/Azure_Kinect_ROS_Driver/blob/melodic/launch/slam_rtabmap.launch

Further I use image proc http://wiki.ros.org/image_proc to get the undistorted grayscale images.

When I run ASA ROS I got the error "NotEnoughSpatialData" based on the live Azure Kinect DK rostopics. I receive frames that is also confirmed by the statement "Add frames". The demo with the rosbags works well.

Did I miss something? Any advice would be great.

159chenJie159 commented 1 year ago

Did you fix the error, I also encountered this error using Realense's D435 camera, D435 has no imu.And I also used image proc to get the undistorted grayscale images. I don't know exactly how this problem came about, whether it was my setting up wrong "world_frame_id" or "camera_frame_id".

EricVoll commented 1 year ago

Hi @JaVo93 Not enough spatial data is an error that usually is returned when the device hasn't uploaded enough data yet: link

So the solution should be relatively easy - just collect more view points before attempting to create an anchor. Does that solve the problem?

soeroesg commented 1 year ago

one reason can be that the ASA library cannot look up the poses of the images in the TF because the timestamps of the images and poses are different. check that the timestamps of the images and the corresponding poses are the same (or very close to each other) and try to increase tf_lookup_timeout in the launchfile

Also check the same with the camera_info, and try passing use_approx_sync_policy:=true