Coder Social home page Coder Social logo

microsoft / azure_spatial_anchors_ros Goto Github PK

View Code? Open in Web Editor NEW
84.0 9.0 20.0 152 KB

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.

Home Page: https://azure.microsoft.com/en-us/services/spatial-anchors/

License: MIT License

CMake 21.85% C++ 78.15%

azure_spatial_anchors_ros's Introduction

Azure Spatial Anchors Linux SDK ROS Wrapper

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:

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.

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.

Requirements

Input data requirements

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.

Get Started

See the Wiki for getting started and installation instructions.

Support

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.

Contributing

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 [email protected] with any additional questions or comments.

azure_spatial_anchors_ros's People

Contributors

chriswsuarez avatar ericvoll avatar helenol avatar jeffdelmerico avatar microsoft-github-operations[bot] avatar microsoftopensource avatar robertblakeanderson avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

azure_spatial_anchors_ros's Issues

catkin build asa_ros fails in wsl, with Noetic for Ubuntu 20.04

Hi

I was trying to set up the demo in
https://github.com/microsoft/azure_spatial_anchors_ros/wiki/Installation

For a quick run i tried do this in windows linux subsystem 2 - ros was doing well when testing with: roscore & rosrun rviz rviz

Installation went well until i tried

catkin build asa_ros

Any suggestions to get around this?

Thank you,
knyt

Error log attached
the command returned with
ktun@DESKTOP-KQ9F1HH:~/catkin_ws/src$ catkin build asa_ros
---------------------------------------------------------
Profile:                     default
Extending:        [explicit] /opt/ros/noetic
Workspace:                   /home/ktun/catkin_ws
---------------------------------------------------------
Build Space:        [exists] /home/ktun/catkin_ws/build
Devel Space:        [exists] /home/ktun/catkin_ws/devel
Install Space:      [unused] /home/ktun/catkin_ws/install
Log Space:          [exists] /home/ktun/catkin_ws/logs
Source Space:       [exists] /home/ktun/catkin_ws/src
DESTDIR:            [unused] None
---------------------------------------------------------
Devel Space Layout:          merged
Install Space Layout:        None
---------------------------------------------------------
Additional CMake Args:       -DCMAKE_BUILD_TYPE=Release
Additional Make Args:        None
Additional catkin Make Args: None
Internal Make Job Server:    True
Cache Job Environments:      False
---------------------------------------------------------
Whitelisted Packages:        None
Blacklisted Packages:        None
---------------------------------------------------------
Workspace configuration appears valid.
---------------------------------------------------------
[build] Found '3' packages in 0.0 seconds.
[build] Package table is up to date.
Starting  >>> catkin_simple
Finished  <<< catkin_simple                [ 0.1 seconds ]
Starting  >>> asa_ros_msgs
Finished  <<< asa_ros_msgs                 [ 0.1 seconds ]
Starting  >>> asa_ros
__________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
Errors     << asa_ros:make /home/ktun/catkin_ws/logs/asa_ros/build.make.002.log
< see attached file>
..........................................................................................................................................................................................................................................................................................................................................
Failed     << asa_ros:make                 [ Exited with code 2 ]
Failed    <<< asa_ros                      [ 3.1 seconds ]
[build] Summary: 2 of 3 packages succeeded.
[build]   Ignored:   None.
[build]   Warnings:  None.
[build]   Abandoned: None.
[build]   Failed:    1 packages failed.
[build] Runtime: 3.4 seconds total.

build.make.log

Running the demo with Jetson Xavier NX

Thank you for the demo.

I am new to ROS but able to follow the wiki up until buiding catkin build asa_ros

CMake Error stated:

By not providing "FindAzureSpatialAnchors.cmake" in CMAKE_MODULE_PATH this
  project has asked CMake to find a package configuration file provided by
  "AzureSpatialAnchors", but CMake did not find one.

  Could not find a package configuration file provided by
  "AzureSpatialAnchors" with any of the following names:

    AzureSpatialAnchorsConfig.cmake
    azurespatialanchors-config.cmake

  Add the installation prefix of "AzureSpatialAnchors" to CMAKE_PREFIX_PATH
  or set "AzureSpatialAnchors_DIR" to a directory containing one of the above
  files.  If "AzureSpatialAnchors" provides a separate development package or
  SDK, be sure it has been installed.

I went to re-install the Azure Spatial Anchor SDK .deb file that I received by email. By doubled-click the .deb file, after the installation is done, the Install button still remains as it is (does not change to Remove button, like I observed in your IROS video).

I tried installing it with sudo dpkg -i azure-spatial-anchors-2.7.0-release0005-Linux.deb. It appears that package architecture (amd64) does not match system (arm64).

I am new to ROS and Ubuntu. I am using Jetson Xavier NX.

Is it possible to have .deb SDK complied in arm64?

Have you tried running this on Windows 10 with WSL 2? If Jetson Xavier NX cannot be used, I would try on Windows 10.

Thank you.

Crash of "find_anchors" service when querying anchor IDs a few days old

I've encountered an issue yesterday when querying anchors which were place a few days back using the find_anchors service.
Using the hololens it worked fine. It was only when using the ROS SDK.

Using the ROS sdk I've queried the anchor ID's from the cloud using the TableService of the from azure.cosmosdb.table package which works fine. I then create a comma separated string including all IDs and send a ROS service request for find_anchors to the running instance of the asa_ros_node which then crashed, leaving the following log in the message:

[INFO] [1645543136.273818]: Searching for ID 03c156dd-89ad-45d7-85d6-65ad556fd2e2 I0222 10:18:56.506862 11279 asa_interface.cpp:404] Starting to look for anchor ID: 03c156dd-89ad-45d7-85d6-65ad556fd2e2 *** Aborted at 1645543136 (unix time) try "date -d @1645543136" if you are using GNU date *** PC: @ 0x7f331db3ac38 Microsoft::Azure::SpatialAnchors::CloudSpatialAnchor::LocalAnchor() *** SIGSEGV (@0x10) received by PID 11279 (TID 0x7f32ca7f4700) from PID 16; stack trace: *** @ 0x7f331dd78980 (unknown) @ 0x7f331db3ac38 Microsoft::Azure::SpatialAnchors::CloudSpatialAnchor::LocalAnchor() @ 0x7f331db0864f _ZZN7asa_ros28AzureSpatialAnchorsInterface24queryAnchorsWithCallbackERKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS7_EERKSt8functionIFvRKS7_RKN5Eigen9TransformIdLi3ELi2ELi0EEEEEENKUlPvRKSt10shared_ptrIN9Microsoft5Azure14SpatialAnchors22AnchorLocatedEventArgsEEE_clESO_SW_.isra.1173 @ 0x7f331db40e01 _ZZN9Microsoft5Azure14Spatia

[INFO] [1645543136.273818]: Searching for ID 03c156dd-89ad-45d7-85d6-65ad556fd2e2 I0222 10:18:56.506862 11279 asa_interface.cpp:404] Starting to look for anchor ID: 03c156dd-89ad-45d7-85d6-65ad556fd2e2 *** Aborted at 1645543136 (unix time) try "date -d @1645543136" if you are using GNU date *** PC: @ 0x7f331db3ac38 Microsoft::Azure::SpatialAnchors::CloudSpatialAnchor::LocalAnchor() *** SIGSEGV (@0x10) received by PID 11279 (TID 0x7f32ca7f4700) from PID 16; stack trace: *** @ 0x7f331dd78980 (unknown) @ 0x7f331db3ac38 Microsoft::Azure::SpatialAnchors::CloudSpatialAnchor::LocalAnchor() @ 0x7f331db0864f _ZZN7asa_ros28AzureSpatialAnchorsInterface24queryAnchorsWithCallbackERKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS7_EERKSt8functionIFvRKS7_RKN5Eigen9TransformIdLi3ELi2ELi0EEEEEENKUlPvRKSt10shared_ptrIN9Microsoft5Azure14SpatialAnchors22AnchorLocatedEventArgsEEE_clESO_SW_.isra.1173 @ 0x7f331db40e01 _ZZN9Microsoft5Azure14Spatia

[front_asa_ros-1] process has died [pid 11279, exit code -11, cmd /home/administrator/STIHL_ASA_SPOT_AUTDE/50_Software-EdgeDomain/00_Spot_Core/01_catkin_ws/devel/lib/asa_ros/asa_ros_node image:=/camera/fisheye1_rect/image camera_info:=/camera/fisheye1_rect/camera_info __name:=front_asa_ros __log:=/home/administrator/.ros/log/a3916d12-93ec-11ec-9cec-a8a1595b2d28/front_asa_ros-1.log]. log file: /home/administrator/.ros/log/a3916d12-93ec-11ec-9cec-a8a1595b2d28/front_asa_ros-1*.log

[front_asa_ros-1] process has died [pid 11279, exit code -11, cmd /home/administrator/STIHL_ASA_SPOT_AUTDE/50_Software-EdgeDomain/00_Spot_Core/01_catkin_ws/devel/lib/asa_ros/asa_ros_node image:=/camera/fisheye1_rect/image camera_info:=/camera/fisheye1_rect/camera_info __name:=front_asa_ros __log:=/home/administrator/.ros/log/a3916d12-93ec-11ec-9cec-a8a1595b2d28/front_asa_ros-1.log]. log file: /home/administrator/.ros/log/a3916d12-93ec-11ec-9cec-a8a1595b2d28/front_asa_ros-1*.log

The nodes are all running on a SPOT Core and were occuring with and without any other nodes running (eg. Spot Driver, Realsense Driver). The crash happened immediately and each time after calling the find_anchors service.
However, those errors did not occur, when querying an ID of a spatial anchor which was recently (same day

  • few days back) set. The exact timeframe required for an ID to cause those errors is unknown.

Is it possible to run the ASA Linux SDK from a computer that is separate from the robot or does the robot itself have to run this SDK?

Hi all,

I'm trying to use the ASA Linux SDK with a drone and was confused on how the robot's computer should be set up. I think that the robot will have to be running Ubuntu with the ASA Linux SDK on its personal computer so that it can query the spatial anchors. Is this correct, or could I have the ASA Linux SDK on my laptop while the drone is only connected to it via a radio link?

In one of Microsoft's videos, I saw them using a turtlebot4, which is controlled by a RaspberryPi 4. The ASA Linux SDK requires an amd64 architecture, which wouldn't work directly on a RaspberryPi. Were they able to use a separate computer running Ubuntu on an amd64 architecture in order to bypass the ARM architecture of the Pi, or were they using a method separate from the ASA Linux SDK?

Any help is appreciated

HTTP Error 400 when creating anchors

When trying to create anchors, I receive an "http error 400 BadRequest" response.
The exact terminal output after sending the create anchor request is:

I0223 08:18:43.222517 21792 asa_interface.cpp:261] Starting to create anchor with anchor_in_world_frame:
1 0 0 1
0 1 0 1
0 0 1 1
0 0 0 1
I0223 08:18:43.222587 21792 asa_interface.cpp:268] T_W_A_asa:
[  1.000000,  0.000000,  0.000000 ] [  1.000000 ]  1.000000
[  0.000000,  1.000000,  0.000000 ] [  1.000000 ]
[  0.000000,  0.000000,  1.000000 ] [  1.000000 ]
I0223 08:18:43.229473 21847 asa_interface.cpp:458] ----------------------------------------------------------
I0223 08:18:43.229506 21847 asa_interface.cpp:459]       ReadyForCreateProgress : 1.75049
I0223 08:18:43.229527 21847 asa_interface.cpp:461] RecommendedForCreateProgress : 1.40049
I0223 08:18:43.229537 21847 asa_interface.cpp:463]                 UserFeedback : SessionUserFeedback::NotEnoughMotion
Message: Unexpected response code. Request CV: DpTpNRQkR86oCJulx1Eqqw. Response CV: UDi40SA8kUuyC3jeaqfGAw.0. HTTP Error: 400.
I0223 08:55:52.889111  3557 asa_interface.cpp:283] Create anchor status: Status::Failed
[ WARN] [1614070552.889167125]: Unable to create anchor. Reason: Status::Failed

Performed debugging steps:

  • The request does not appear in the Activity Logs on portal.azure.com
  • I tried two different ASA accounts. Same result with both of them
  • There is not much debugging I can do in the ros wrapper, since the request is quickly passed on to the Linux SDK.
  • Running the demo from the Wiki with the pre-recorded rosbags works, even with the "new" main branch.
  • The creation does not fail immediately but takes about 400ms. The request seems to go to the server.
  • This line does not throw an exception. Generally no exceptions are thrown/catched in the ros-wrapper. Probably or maybe somewhere in the linux SDK

@jeffdelmerico Do you have any idea what could go wrong? The Request CV (DpTpNRQkR86oCJulx1Eqqw) and the response CV (UDi40SA8kUuyC3jeaqfGAw.0.) might give us more info, but I can't look them up. Error 400 is super general, but at least there are other reports of this error for other platforms.

Any help/ideas/hints would be appreciated, Thanks!

Question about using output poses from SLAM for to create an anchor

Hi,

I've been running into accuracy issues when I try to create an anchor. I'm running RGBD orbslam2 with an Azure Kinect. I use the output poses from orbslam2 to create an anchor.

The issue that I'm having is that whenever orbslam2 performs loop closure, the poses received by asa_ros are not updated, which causes the anchor localization to be inaccurate. Is there a way to have asa_ros re-check the tf2 messages it previously received and then request the updated tf2 poses after loop closure is performed? Or is this performed automatically already by the asa_ros node?

Thanks

*** Aborted at 1632322639 (unix time) try "date -d @1632322639" if you are using GNU date ***

Hi there,

I've been using ASA ROS successfully under different setups, very useful tool ๐Ÿ‘ However, recently I started receiving the same (not very informative) error over and over again:

*** Aborted at 1632322639 (unix time) try "date -d @1632322639" if you are using GNU date ***
PC: @     0x7fda47cc6be8 Microsoft::Azure::SpatialAnchors::CloudSpatialAnchor::LocalAnchor()
*** SIGSEGV (@0x10) received by PID 21909 (TID 0x7fd9ee7ec700) from PID 16; stack trace: ***
    @     0x7fda47f04980 (unknown)
    @     0x7fda47cc6be8 Microsoft::Azure::SpatialAnchors::CloudSpatialAnchor::LocalAnchor()
    @     0x7fda47c9496f _ZZN7asa_ros28AzureSpatialAnchorsInterface24queryAnchorsWithCallbackERKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS7_EERKSt8functionIFvRKS7_RKN5Eigen9TransformIdLi3ELi2ELi0EEEEEENKUlPvRKSt10shared_ptrIN9Microsoft5Azure14SpatialAnchors22AnchorLocatedEventArgsEEE_clESO_SW_.isra.1146
    @     0x7fda47cccdb1 _ZZN9Microsoft5Azure14SpatialAnchors25CloudSpatialAnchorSession13AnchorLocatedERKSt8functionIFvPvRKSt10shared_ptrINS1_22AnchorLocatedEventArgsEEEEENUlxP29ssc_anchor_located_event_argsE_4_FUNExSF_
    @     0x7fda433ae337 CallbackAnchorObserver::OnNext()
    @     0x7fda4339fd60 SpatialServices::Client::LocationOperation::OnNotification()
    @     0x7fda433ca921 SpatialServices::Internal::StoreAndWatcherTrackedState::EvaluateDesiredSpatialAnchorStateForNotifications()
    @     0x7fda433cb853 SpatialServices::Internal::StoreAndWatcherTrackedState::SetWillNeverBeFoundStateForDesiredSpatialAnchor()
    @     0x7fda433d01ff SpatialServices::Internal::StoreAndWatcherTrackedState::ProcessPoseQueryStreamingPropertiesEvent()
    @     0x7fda433d4247 SpatialServices::Internal::StoreAndWatcherTrackedState::ProcessPoseQueryStreamingEvents()
    @     0x7fda433de034 SpatialServices::Internal::StoreAndWatcherTrackedState::ProcessPoseQueryStreamingEventsUntilCompletion()
    @     0x7fda433e33c1 _ZNK4pplx7details14_PPLTaskHandleIN15SpatialServices36SpatialAnchorStoreDiscoverResultInfoENS_4taskIhE23_ContinuationTaskHandleIvS3_ZNS2_8Internal27StoreAndWatcherTrackedState46ProcessPoseQueryStreamingEventsUntilCompletionESt10shared_ptrINS8_27DiscoverAsyncOperationStateEENS2_32SpatialAnchorStoreDiscoverResultEEUlNS4_IvEEE_St17integral_constantIbLb1EENS0_22_TypeSelectorAsyncTaskEEENS0_27_ContinuationTaskHandleBaseEE6invokeEv
    @     0x7fda4327d34f pplx::details::_TaskProcHandle::_RunChoreBridge()
    @     0x7fda4349f9c2 boost::asio::detail::completion_handler<>::do_complete()
    @     0x7fda434a4cb8 boost::asio::detail::scheduler::run()
    @     0x7fda434a1d02 _ZN5boost4asio6detail12posix_thread4funcIZN12_GLOBAL__N_115threadpool_impl10add_threadEvEUlvE_E3runEv
    @     0x7fda434a285f boost_asio_detail_posix_thread_function
    @     0x7fda47ef96db start_thread
    @     0x7fda46e1171f clone

I've tried in different computers already (including fresh installations), all using ROS Melodic @ Ubuntu 18.04.

If I just launch the asa_ros_node I don't get any errors. This happens just after my robot starts publishing under the image topic and camera_info topic.

Any ideas? Thank you in advance!

Strings in message and service and definitions

Currently in definitions such as FindAnchor.srv, the client is required to concatenate a string of semicolon-separated IDs in order to reference multiple anchors.

I propose it would be better practice for the server to take a vector of IDs. If the backend requires the combined string, it should be created within the ROS service callback.

asa_ros node is not triggering image subscription callback

Hi :)

I am currently trying to get asa_ros running on the setup described below.
The problem is, that the asa_ros node successfully initializes, but then does nothing. Debugging showed, that the image/camera_info callback is never invoked.

rqt_graph shows that the asa_ros node is correclty subscribing to the correct topics (via remapping in the launch file)
image

This is the relevant part of the launch file, where you can see the remapping of the topics.

<arg name="print_status" default="true" />
<node name="asa_ros" type="asa_ros_node" pkg="asa_ros" output="screen" clear_params="true">
    <remap from="image" to="versavis/cam0/image_raw" />
    <remap from="camera_info" to="versavis/cam0/camera_info" />

    <!-- The frame ID of your world/odometry frame. Should be static relative to, well, the world. -->
    <param name="world_frame_id" value="world" />
    <!-- Optical frame of the camera, z facing "forward" (out of the camera frame). -->
    <param name="camera_frame_id" value="camera0" />
    [...]
</node>

When launching roslaunch asa_ros asa_ros.launch everything startup nicely, but then just stops to do anything. The callback in the synchronized image/camera_info callback is never called.

I checked the following:

  • I can lookup the tf between the tf frames world and camera0 (Which is also what the ros wrapper does in the callback) and the tf exists/can be resolved. The frames are also correctly drawn in rviz
  • I can rostopic echo the required topics (versavis/cam0/image_raw of type sensor_msgs/Image and versavis/cam0/camera_info of type sensor_msgs/CameraInfo) and the terminal prints tons of data. The header-time-stamps also are the same.
  • The asa_ros node is not running inside a namespace
  • I do know, that the linux SDK requires undistorted images, and that my images are not undistorted yet, but the message types are the same so I assume that this would not change anything currently. (right?)

Am I missing something? Do you have any idea what could be wrong?
Thanks in advance,
Eric


My setup:
Intel NUC with AMD architecture, Ubuntu 18.04, ROS Melodic
Flir Camera


Terminal output of the asa_ros node:

process[asa_ros-1]: started with pid [28792]
[ INFO] [1613830867.870088335]: Subscribing to mapped image topic
[ INFO] [1613830867.879779699]: Account domain: SomeURL account ID: NotGoodForGitHub account key:AlsoNotGoodForGitHub
I0220 14:21:07.881736 28811 asa_interface.cpp:458] ----------------------------------------------------------
I0220 14:21:07.881778 28811 asa_interface.cpp:459]       ReadyForCreateProgress : 0
I0220 14:21:07.881817 28811 asa_interface.cpp:461] RecommendedForCreateProgress : 0
I0220 14:21:07.881831 28811 asa_interface.cpp:463]                 UserFeedback : SessionUserFeedback::NotEnoughMotion
[ INFO] [1613830867.882225986]: Now done with ctor
[ INFO] [1613830867.882250994]: [Azure Spatial Anchors ROS] Now running.
{No new output until I kill it manually}
^C[asa_ros-1] killing on exit

(Note: I added a few ROS_INFO calls while debugging, but did not change anything else. When git-resetting to the current master the same thing happens)


Edit:

On further debugging: I added a subscriber for the image and camera_info topic and the node receives the data correctly. So I guess there is something wrong with the synchronizer. I'll dig deeper there.

Azure Kinect DK NotEnoughSpatialData

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.

Demo Instructions on Wiki are slightly wrong

The instructions on the Demo page reference the node type, not the node name. I was able to get things to run using rosservice call /asa_ros/create_anchor, instead of rosservice call /asa_ros_node/create_anchor. Is this correct?

Additionally, while trying to launch the demos, it looks the parameter names for account information doesn't have underscores in the launch file. Using _account_id instead of account_id gave me server errors.

Otherwise, cool demo! Thanks for sharing!

Franklin Wu

Coarse relocalization support?

The Azure Spatial Anchors documentation lists support for coarse localization (see here), or using GPS, Wi-Fi, and Bluetooth beacons to determine your approximate location in order to determine which anchors to look for. I was wondering if this feature is also supported via the ROS wrapper, given the robot has the relevant sensors.

Crash when trying to query an asa_id that is too old or doesn't exist and also sometimes when resetting session

Our setup is complex where we are looking for multiple anchors in multiple spaces. We have our own database where we are determining which anchors to look for at a specific time or place but we are often seeing this node crashing because of anchors being too old. We are sending this information to the node with an arbitrary sized vector of anchors_ids so we don't know which anchor(s) are causing the crash at run time.

If possible, the best solution here would be to try and catch an error and explain which asa_id(s) are no longer in existence on the azure cloud. I'm, also, not sure if this can be done in the ros node or if it must also be done on a lower level.

This error is also thrown sometimes when resetting the session. I have don't have a good conception when or why it happens in that case but the error text is very similar if not exactly the same.

We would be willing to implement this fix ourselves if only on the ros node so any input or feedback would be much appreciated. This is the error that is thrown.

#22

*** Aborted at 1655154922 (unix time) try "date -d @1655154922" if you are using GNU date ***
PC: @     0x7f3de70b26bb Microsoft::Azure::SpatialAnchors::CloudSpatialAnchor::LocalAnchor()
*** SIGSEGV (@0x10) received by PID 3712 (TID 0x7f3d7cfe1700) from PID 16; stack trace: ***
    @     0x7f3de7385980 (unknown)
    @     0x7f3de70b26bb Microsoft::Azure::SpatialAnchors::CloudSpatialAnchor::LocalAnchor()
    @     0x7f3de703689d _ZZN7asa_ros28AzureSpatialAnchorsInterface24queryAnchorsWithCallbackERKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS7_EERKSt8functionIFvRKS7_RKN5Eigen9TransformIdLi3ELi2ELi0EEEEEENKUlPvRKSt10shared_ptrIN9Microsoft5Azure14SpatialAnchors22AnchorLocatedEventArgsEEE_clESO_SW_
    @     0x7f3de70385d2 _ZNSt17_Function_handlerIFvPvRKSt10shared_ptrIN9Microsoft5Azure14SpatialAnchors22AnchorLocatedEventArgsEEEZN7asa_ros28AzureSpatialAnchorsInterface24queryAnchorsWithCallbackERKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaISI_EERKSt8functionIFvRKSI_RKN5Eigen9TransformIdLi3ELi2ELi0EEEEEEUlS0_S8_E_E9_M_invokeERKSt9_Any_dataOS0_S8_
    @     0x7f3de70c6c99 std::function<>::operator()()
    @     0x7f3de70c125e _ZN9Microsoft5Azure14SpatialAnchors5eventISt8functionIFvPvRKSt10shared_ptrINS1_22AnchorLocatedEventArgsEEEEEclIJPNS1_25CloudSpatialAnchorSessionERS7_EEEvDpOT_
    @     0x7f3de70b4229 _ZZN9Microsoft5Azure14SpatialAnchors25CloudSpatialAnchorSession13AnchorLocatedERKSt8functionIFvPvRKSt10shared_ptrINS1_22AnchorLocatedEventArgsEEEEENKUlxP29ssc_anchor_located_event_argsE_clExSF_
    @     0x7f3de70b42af _ZZN9Microsoft5Azure14SpatialAnchors25CloudSpatialAnchorSession13AnchorLocatedERKSt8functionIFvPvRKSt10shared_ptrINS1_22AnchorLocatedEventArgsEEEEENUlxP29ssc_anchor_located_event_argsE_4_FUNExSF_
    @     0x7f3de256e337 CallbackAnchorObserver::OnNext()
    @     0x7f3de255fd60 SpatialServices::Client::LocationOperation::OnNotification()
    @     0x7f3de258a921 SpatialServices::Internal::StoreAndWatcherTrackedState::EvaluateDesiredSpatialAnchorStateForNotifications()
    @     0x7f3de258b853 SpatialServices::Internal::StoreAndWatcherTrackedState::SetWillNeverBeFoundStateForDesiredSpatialAnchor()
    @     0x7f3de25901ff SpatialServices::Internal::StoreAndWatcherTrackedState::ProcessPoseQueryStreamingPropertiesEvent()
    @     0x7f3de2594247 SpatialServices::Internal::StoreAndWatcherTrackedState::ProcessPoseQueryStreamingEvents()
    @     0x7f3de259e034 SpatialServices::Internal::StoreAndWatcherTrackedState::ProcessPoseQueryStreamingEventsUntilCompletion()
    @     0x7f3de25a33c1 _ZNK4pplx7details14_PPLTaskHandleIN15SpatialServices36SpatialAnchorStoreDiscoverResultInfoENS_4taskIhE23_ContinuationTaskHandleIvS3_ZNS2_8Internal27StoreAndWatcherTrackedState46ProcessPoseQueryStreamingEventsUntilCompletionESt10shared_ptrINS8_27DiscoverAsyncOperationStateEENS2_32SpatialAnchorStoreDiscoverResultEEUlNS4_IvEEE_St17integral_constantIbLb1EENS0_22_TypeSelectorAsyncTaskEEENS0_27_ContinuationTaskHandleBaseEE6invokeEv
    @     0x7f3de243d34f pplx::details::_TaskProcHandle::_RunChoreBridge()
    @     0x7f3de265f9c2 boost::asio::detail::completion_handler<>::do_complete()
    @     0x7f3de2664cb8 boost::asio::detail::scheduler::run()
    @     0x7f3de2661d02 _ZN5boost4asio6detail12posix_thread4funcIZN12_GLOBAL__N_115threadpool_impl10add_threadEvEUlvE_E3runEv
    @     0x7f3de266285f boost_asio_detail_posix_thread_function
    @     0x7f3de737a6db start_thread
    @     0x7f3de5fd261f clone

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.