apex-solver 1.4.0

High-performance nonlinear least squares optimization with Lie group support for SLAM and bundle adjustment
Documentation
1
2
3
4
5
6
7
<html>
<head><meta charset="utf-8" /></head>
<body>
    <div style="height:900px; width:1400px;">                        <script>window.PlotlyConfig = {MathJaxConfig: 'local'};</script>
        <script charset="utf-8" src="https://cdn.plot.ly/plotly-3.7.0.min.js" integrity="sha256-jvTGqxNp8AGWEcvNLVuKr+8j5dGe9Yw51LQkmDH+IYA=" crossorigin="anonymous"></script>                <div id="1873080f-65fa-436c-8a30-ad60f63c39bf" class="plotly-graph-div" style="height:100%; width:100%;"></div>            <script>                window.PLOTLYENV=window.PLOTLYENV || {};                                if (document.getElementById("1873080f-65fa-436c-8a30-ad60f63c39bf")) {                    Plotly.newPlot(                        "1873080f-65fa-436c-8a30-ad60f63c39bf",                        [{"error_y":{"array":{"dtype":"f8","bdata":"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA="},"type":"data","visible":true},"legendgroup":"apex-solver","marker":{"color":"#4C78A8"},"name":"apex-solver","showlegend":true,"x":["Ladybug","Trafalgar","Dubrovnik","Venice"],"y":{"dtype":"f8","bdata":"mYI1zqaj6D+qCg3EshnpP7nH0ocuKOc\u002f2ZWWkXrP5D8="},"type":"bar","xaxis":"x","yaxis":"y"},{"error_y":{"array":{"dtype":"f8","bdata":"CylG9uavSz8nfyxp\u002fcGRP58YSC2tUQo\u002fAAAAAAAAAAA="},"type":"data","visible":true},"legendgroup":"Ceres","marker":{"color":"#EECA3B"},"name":"Ceres","showlegend":true,"x":["Ladybug","Trafalgar","Dubrovnik","Venice"],"y":{"dtype":"f8","bdata":"M8UcBB2t8j82I4PcRRj1P\u002f0zg\u002fjADvA\u002fAAAAAAAA+H8="},"type":"bar","xaxis":"x","yaxis":"y"},{"error_y":{"array":{"dtype":"f8","bdata":"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA="},"type":"data","visible":true},"legendgroup":"GTSAM","marker":{"color":"#E45756"},"name":"GTSAM","showlegend":true,"x":["Ladybug","Trafalgar","Dubrovnik","Venice"],"y":{"dtype":"f8","bdata":"veMUHcll7z+XN4drtQfkPyEf9GxW\u002feE\u002fAAAAAAAA+H8="},"type":"bar","xaxis":"x","yaxis":"y"},{"error_y":{"array":{"dtype":"f8","bdata":"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA="},"type":"data","visible":true},"legendgroup":"g2o","marker":{"color":"#B279A2"},"name":"g2o","showlegend":true,"x":["Ladybug","Trafalgar","Dubrovnik","Venice"],"y":{"dtype":"f8","bdata":"FvvL7skDK0Bb07zjFE0gQKCJsOHpVShAGw3gLZBAJEA="},"type":"bar","xaxis":"x","yaxis":"y"},{"error_y":{"array":{"dtype":"f8","bdata":"Mvk7MxTl4T+JkSUUgiKRPxvCWFPPycM\u002fhz4AzfxB4D8="},"type":"data","visible":true},"legendgroup":"apex-solver","marker":{"color":"#4C78A8"},"name":"apex-solver","showlegend":false,"x":["Ladybug","Trafalgar","Dubrovnik","Venice"],"y":{"dtype":"f8","bdata":"MQisHFqUVUAj2\u002fl+arwUQArXo3A9ykJAEFg5tMhWSEA="},"type":"bar","xaxis":"x2","yaxis":"y2"},{"error_y":{"array":{"dtype":"f8","bdata":"9otj2YOY7T8+\u002fbbeMgQVQCRPqCBU1S1AAAAAAAAAAAA="},"type":"data","visible":true},"legendgroup":"Ceres","marker":{"color":"#EECA3B"},"name":"Ceres","showlegend":false,"x":["Ladybug","Trafalgar","Dubrovnik","Venice"],"y":{"dtype":"f8","bdata":"OrTIdr7fMUD6fmq8dFNFQH0\u002fNV66iVVAAAAAAAAA+H8="},"type":"bar","xaxis":"x2","yaxis":"y2"},{"error_y":{"array":{"dtype":"f8","bdata":"Eft0Efnsyj\u002faEIvASSHAP8D9H5BeTs0\u002fAAAAAAAAAAA="},"type":"data","visible":true},"legendgroup":"GTSAM","marker":{"color":"#E45756"},"name":"GTSAM","showlegend":false,"x":["Ladybug","Trafalgar","Dubrovnik","Venice"],"y":{"dtype":"f8","bdata":"j8L1KFyvVEB66SYxCMxMQHjpJjEIfF1AAAAAAAAA+H8="},"type":"bar","xaxis":"x2","yaxis":"y2"},{"error_y":{"array":{"dtype":"f8","bdata":"AmM9x+qKuj9frbeeGlqwP31nCyuacrg\u002fI2\u002fTrUJ61j8="},"type":"data","visible":true},"legendgroup":"g2o","marker":{"color":"#B279A2"},"name":"g2o","showlegend":false,"x":["Ladybug","Trafalgar","Dubrovnik","Venice"],"y":{"dtype":"f8","bdata":"MzMzMzPLYkAGgZVDi2wwQDq0yHa+X0FA61G4HoWbbkA="},"type":"bar","xaxis":"x2","yaxis":"y2"}],                        {"template":{"data":{"barpolar":[{"marker":{"line":{"color":"white","width":0.5},"pattern":{"fillmode":"overlay","size":10,"solidity":0.2}},"type":"barpolar"}],"bar":[{"error_x":{"color":"#2a3f5f"},"error_y":{"color":"#2a3f5f"},"marker":{"line":{"color":"white","width":0.5},"pattern":{"fillmode":"overlay","size":10,"solidity":0.2}},"type":"bar"}],"carpet":[{"aaxis":{"endlinecolor":"#2a3f5f","gridcolor":"#C8D4E3","linecolor":"#C8D4E3","minorgridcolor":"#C8D4E3","startlinecolor":"#2a3f5f"},"baxis":{"endlinecolor":"#2a3f5f","gridcolor":"#C8D4E3","linecolor":"#C8D4E3","minorgridcolor":"#C8D4E3","startlinecolor":"#2a3f5f"},"type":"carpet"}],"choropleth":[{"colorbar":{"outlinewidth":0,"ticks":""},"type":"choropleth"}],"contourcarpet":[{"colorbar":{"outlinewidth":0,"ticks":""},"type":"contourcarpet"}],"contour":[{"colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]],"type":"contour"}],"heatmap":[{"colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]],"type":"heatmap"}],"histogram2dcontour":[{"colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]],"type":"histogram2dcontour"}],"histogram2d":[{"colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]],"type":"histogram2d"}],"histogram":[{"marker":{"pattern":{"fillmode":"overlay","size":10,"solidity":0.2}},"type":"histogram"}],"mesh3d":[{"colorbar":{"outlinewidth":0,"ticks":""},"type":"mesh3d"}],"parcoords":[{"line":{"colorbar":{"outlinewidth":0,"ticks":""}},"type":"parcoords"}],"pie":[{"automargin":true,"type":"pie"}],"scatter3d":[{"line":{"colorbar":{"outlinewidth":0,"ticks":""}},"marker":{"colorbar":{"outlinewidth":0,"ticks":""}},"type":"scatter3d"}],"scattercarpet":[{"marker":{"colorbar":{"outlinewidth":0,"ticks":""}},"type":"scattercarpet"}],"scattergeo":[{"marker":{"colorbar":{"outlinewidth":0,"ticks":""}},"type":"scattergeo"}],"scattergl":[{"marker":{"colorbar":{"outlinewidth":0,"ticks":""}},"type":"scattergl"}],"scattermapbox":[{"marker":{"colorbar":{"outlinewidth":0,"ticks":""}},"type":"scattermapbox"}],"scattermap":[{"marker":{"colorbar":{"outlinewidth":0,"ticks":""}},"type":"scattermap"}],"scatterpolargl":[{"marker":{"colorbar":{"outlinewidth":0,"ticks":""}},"type":"scatterpolargl"}],"scatterpolar":[{"marker":{"colorbar":{"outlinewidth":0,"ticks":""}},"type":"scatterpolar"}],"scatter":[{"fillpattern":{"fillmode":"overlay","size":10,"solidity":0.2},"type":"scatter"}],"scatterternary":[{"marker":{"colorbar":{"outlinewidth":0,"ticks":""}},"type":"scatterternary"}],"surface":[{"colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]],"type":"surface"}],"table":[{"cells":{"fill":{"color":"#EBF0F8"},"line":{"color":"white"}},"header":{"fill":{"color":"#C8D4E3"},"line":{"color":"white"}},"type":"table"}]},"layout":{"annotationdefaults":{"arrowcolor":"#2a3f5f","arrowhead":0,"arrowwidth":1},"autotypenumbers":"strict","coloraxis":{"colorbar":{"outlinewidth":0,"ticks":""}},"colorscale":{"diverging":[[0,"#8e0152"],[0.1,"#c51b7d"],[0.2,"#de77ae"],[0.3,"#f1b6da"],[0.4,"#fde0ef"],[0.5,"#f7f7f7"],[0.6,"#e6f5d0"],[0.7,"#b8e186"],[0.8,"#7fbc41"],[0.9,"#4d9221"],[1,"#276419"]],"sequential":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]],"sequentialminus":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]},"colorway":["#636efa","#EF553B","#00cc96","#ab63fa","#FFA15A","#19d3f3","#FF6692","#B6E880","#FF97FF","#FECB52"],"font":{"color":"#2a3f5f"},"geo":{"bgcolor":"white","lakecolor":"white","landcolor":"white","showlakes":true,"showland":true,"subunitcolor":"#C8D4E3"},"hoverlabel":{"align":"left"},"hovermode":"closest","mapbox":{"style":"light"},"paper_bgcolor":"white","plot_bgcolor":"white","polar":{"angularaxis":{"gridcolor":"#EBF0F8","linecolor":"#EBF0F8","ticks":""},"bgcolor":"white","radialaxis":{"gridcolor":"#EBF0F8","linecolor":"#EBF0F8","ticks":""}},"scene":{"xaxis":{"backgroundcolor":"white","gridcolor":"#DFE8F3","gridwidth":2,"linecolor":"#EBF0F8","showbackground":true,"ticks":"","zerolinecolor":"#EBF0F8"},"yaxis":{"backgroundcolor":"white","gridcolor":"#DFE8F3","gridwidth":2,"linecolor":"#EBF0F8","showbackground":true,"ticks":"","zerolinecolor":"#EBF0F8"},"zaxis":{"backgroundcolor":"white","gridcolor":"#DFE8F3","gridwidth":2,"linecolor":"#EBF0F8","showbackground":true,"ticks":"","zerolinecolor":"#EBF0F8"}},"shapedefaults":{"line":{"color":"#2a3f5f"}},"ternary":{"aaxis":{"gridcolor":"#DFE8F3","linecolor":"#A2B1C6","ticks":""},"baxis":{"gridcolor":"#DFE8F3","linecolor":"#A2B1C6","ticks":""},"bgcolor":"white","caxis":{"gridcolor":"#DFE8F3","linecolor":"#A2B1C6","ticks":""}},"title":{"x":0.05},"xaxis":{"automargin":true,"gridcolor":"#EBF0F8","linecolor":"#EBF0F8","ticks":"","title":{"standoff":15},"zerolinecolor":"#EBF0F8","zerolinewidth":2},"yaxis":{"automargin":true,"gridcolor":"#EBF0F8","linecolor":"#EBF0F8","ticks":"","title":{"standoff":15},"zerolinecolor":"#EBF0F8","zerolinewidth":2}}},"xaxis":{"anchor":"y","domain":[0.0,1.0],"matches":"x2","showticklabels":false},"yaxis":{"anchor":"x","domain":[0.55,1.0],"title":{"text":"RMSE (pixels)"},"type":"log"},"xaxis2":{"anchor":"y2","domain":[0.0,1.0],"title":{"text":"BAL dataset"}},"yaxis2":{"anchor":"x2","domain":[0.0,0.45],"title":{"text":"time (s)"},"type":"log"},"annotations":[{"font":{"size":16},"showarrow":false,"text":"Final reprojection RMSE (lower is better)","x":0.5,"xanchor":"center","xref":"paper","y":1.0,"yanchor":"bottom","yref":"paper"},{"font":{"size":16},"showarrow":false,"text":"Runtime (lower is better)","x":0.5,"xanchor":"center","xref":"paper","y":0.45,"yanchor":"bottom","yref":"paper"}],"legend":{"title":{"text":"solver"}},"title":{"text":"Bundle Adjustment — reprojection RMSE and runtime (mean ± std over 5 runs)\u003cbr\u003e\u003csup\u003emissing bars = solver exceeded the 10-minute timeout\u003c\u002fsup\u003e"},"barmode":"group","height":900,"width":1400},                        {"responsive": true}                    )                };            </script>        </div>
</body>
</html>