rtabmap_demos tests and docs (#1462)

* rtabmap_demos tests and docs

* added bag testing

* added rtabmap_examples launch tests

* updating demo bag download paths

* added netherdrone demo

* Fixed rgb-only callback with lidar rejected.  Updated lidar params

* Added back OrbitOriented rviz view to ros2, with optional octomap wll clipping

* fixing ci

* lidar demo added intermediate_nodes option

* added netherdrone as demo test

* running rtabmap_demos tests on ci

* added rtabmap_launch tests, fixed ground_truth_base_frame_id usage

* ficing rolling

* updating demo test harnest

* densify golden trajectories to avoid tf missing

* fixing tf steps

* updated min icp ratio for netherdrone demo

* fixing image_transport arg->params

* export pose opt=0

* lets process all frames

* updated netherdrone golden

* fixing publishers queue size just for tests

* added playdback demo doc

* Adding more logs to debug ci

* Fixing QOS for CI to reliable, added find-object demo test

* name threads

* fixing camera info expected transient on lyrical/rolling. Fixing find_object not appearing idle

* 30 Hz polling backward comp

* fixing test tf sim lock

* fixing lyrical qos bag parsing

* faster replay

* lockstep

* fixing clock deadlock

* Added test on shutdown

* updated netherdrone golden poses

* Extended stereo outdoor test

* updated shutdown test

* updated test

* multi-thread flaky test

* adding backtrace when test fails

* increased closure slack for netherdrone

* g2o gauss newton on stereo

* adjusted maximum optimizer iterations

* updated default iterations

* Added netherdrone in list of demos
This commit is contained in:
matlabbe
2026-10-10 12:23:49 -07:00
committed by GitHub
parent cb2117f1ed
commit 82f0754bf7
80 changed files with 18405 additions and 98 deletions
+85 -12
View File
@@ -25,30 +25,36 @@ jobs:
include:
- ros_distro: humble
skip_keys: ''
packages: 'rtabmap_ros rtabmap_conversions rtabmap_odom rtabmap_slam rtabmap_sync rtabmap_util rtabmap_python'
packages: 'rtabmap_ros rtabmap_conversions rtabmap_odom rtabmap_slam rtabmap_sync rtabmap_util rtabmap_python rtabmap_launch rtabmap_examples rtabmap_demos'
- ros_distro: jazzy
skip_keys: ''
packages: 'rtabmap_ros rtabmap_conversions rtabmap_odom rtabmap_slam rtabmap_sync rtabmap_util rtabmap_python'
packages: 'rtabmap_ros rtabmap_conversions rtabmap_odom rtabmap_slam rtabmap_sync rtabmap_util rtabmap_python rtabmap_launch rtabmap_examples rtabmap_demos'
- ros_distro: kilted
skip_keys: 'grid_map_ros'
packages: 'rtabmap_ros rtabmap_conversions rtabmap_odom rtabmap_slam rtabmap_sync rtabmap_util rtabmap_python'
packages: 'rtabmap_ros rtabmap_conversions rtabmap_odom rtabmap_slam rtabmap_sync rtabmap_util rtabmap_python rtabmap_launch rtabmap_examples rtabmap_demos'
- ros_distro: lyrical
skip_keys: 'velodyne grid_map_ros libpointmatcher'
packages: 'rtabmap_ros rtabmap_conversions rtabmap_odom rtabmap_slam rtabmap_sync rtabmap_util rtabmap_python'
skip_keys: 'velodyne grid_map_ros libpointmatcher find_object_2d'
packages: 'rtabmap_ros rtabmap_conversions rtabmap_odom rtabmap_slam rtabmap_sync rtabmap_util rtabmap_python rtabmap_launch rtabmap_examples rtabmap_demos'
- ros_distro: rolling
# Rolling has moved to Ubuntu resolute and much of it has not been rebuilt for
# that yet, so rosdep finds nothing to install for these. They are all optional
# to rtabmap, which just builds without them.
skip_keys: 'velodyne libpointmatcher gtsam grid_map_ros'
# to rtabmap, which just builds without them. nav2 is missing from resolute
# too: optional to rtabmap_slam (nav2_msgs) and to the demos (nav2_bringup, for
# the navigation demos only), but not to rtabmap_costmap_plugins, so it and the
# rtabmap_ros metapackage, which pulls it in, are not built.
skip_keys: 'velodyne libpointmatcher gtsam grid_map_ros nav2_msgs nav2_bringup nav2_costmap_2d find_object_2d'
use_ros2_testing: true # Rolling is using ros2-testing (nightly)
# nav2 is missing from resolute too, and it is not optional: rtabmap_slam and
# rtabmap_costmap_plugins need it to compile at all, and the rtabmap_ros
# metapackage pulls both in. So rolling names the packages it can build.
packages: 'rtabmap_conversions rtabmap_odom rtabmap_sync rtabmap_util rtabmap_python'
packages: 'rtabmap_conversions rtabmap_odom rtabmap_slam rtabmap_sync rtabmap_util rtabmap_python rtabmap_launch rtabmap_examples rtabmap_demos'
fail-fast: false
timeout-minutes: 180
container:
image: osrf/ros:${{ matrix.ros_distro }}-desktop-full
steps:
env:
# Absolute and inside the container: ${{ github.workspace }} would be the
# runner's path, not the container's.
RTABMAP_DEMOS_TEST_DATA: /rtabmap_demos_test_data
RTABMAP_DEMOS_TEST_RESULTS: /rtabmap_demos_test_results
steps:
- uses: actions/checkout@v4
- uses: ros-tooling/[email protected]
with:
@@ -61,9 +67,76 @@ jobs:
- run: |
echo "repositories:\n introlab/rtabmap:\n type: git\n url: https://github.com/introlab/rtabmap.git\n version: master\n" > /tmp/deps.repos &&\
cat /tmp/deps.repos
# Build only: the tests are run below, the quick ones first, so that a failing unit
# test shows before the demos' playback, which takes tens of minutes.
- uses: ros-tooling/[email protected]
with:
package-name: ${{ matrix.packages }}
target-ros2-distro: ${{ matrix.ros_distro }}
vcs-repo-file-url: /tmp/deps.repos
rosdep-skip-keys: "${{ matrix.skip_keys }}"
skip-tests: true
- name: Unit tests
working-directory: ros_ws
shell: bash
run: |
source /opt/ros/${{ matrix.ros_distro }}/setup.bash
source install/setup.bash
colcon test --packages-select ${{ matrix.packages }} \
--event-handlers console_cohesion+ --ctest-args -E test_demo_playback
colcon test-result --verbose
# The demos' playback (rtabmap_demos/test/test_demo_playback.py) replays bags that
# are assets of the rtabmap_ros GitHub releases, listed with their SHA-256 in
# rtabmap_demos/test/data/manifest.txt. As rtabmap's own CI does with its test
# databases (cmake-ros.yml), they are cached between runs, keyed on that manifest
# only: every distro shares one entry, and a new or changed bag there fetches again.
- name: Restore test data
id: cache-testdata
uses: actions/cache@v4
with:
path: /rtabmap_demos_test_data
key: rtabmap-demos-test-data-${{ hashFiles('rtabmap_demos/test/data/manifest.txt') }}
- name: Fetch test data
if: steps.cache-testdata.outputs.cache-hit != 'true'
shell: bash
run: bash rtabmap_demos/test/fetch_test_data.sh
# Without its bag, a scenario skips itself and the step would pass having replayed
# nothing: check that every bag of the manifest is there.
- name: Check test data
shell: bash
run: |
missing=0
while IFS=$'\t' read -r name url sha extracted; do
[[ -z "${name// }" || "$name" =~ ^# ]] && continue
file="$RTABMAP_DEMOS_TEST_DATA/${extracted:-$name}"
if [[ ! -f "$file" ]]; then
echo "::error::$file is missing (from $url)"
missing=1
fi
done < rtabmap_demos/test/data/manifest.txt
exit $missing
# The golden graphs were made with humble: each scenario's tolerances
# (test_demo_playback.py) absorb small differences between distros.
- name: Demo playback tests
working-directory: ros_ws
shell: bash
run: |
source /opt/ros/${{ matrix.ros_distro }}/setup.bash
source install/setup.bash
colcon test --packages-select rtabmap_demos \
--event-handlers console_cohesion+ --ctest-args -R test_demo_playback
colcon test-result --verbose --test-result-base build/rtabmap_demos
# Each scenario's launch log, graph and database, to see what went wrong.
- name: Upload the playback results
if: failure()
uses: actions/upload-artifact@v4
with:
name: demo-playback-results-${{ matrix.ros_distro }}
path: /rtabmap_demos_test_results
retention-days: 7
+3 -1
View File
@@ -125,7 +125,9 @@ export RCUTILS_COLORIZED_OUTPUT=1
```
## Recommended DDS
If RTAB-Map's GUI or topic frequency feel laggy (even if processing time looks fast enough), it may be caused by the DDS. I recommend to use [Cyclone DDS](https://docs.ros.org/en/jazzy/Installation/RMW-Implementations/DDS-Implementations/Working-with-Eclipse-CycloneDDS.html), you can try it by adding this before launching any nodes/launch files (or add to your `.bashrc`):
If RTAB-Map's GUI or topic frequency feel laggy (even if processing time looks fast enough), or messages seem to get lost, it may be caused by the DDS. By default (`qos` parameters set to `0`), RTAB-Map's nodes subscribe with the DDS's own default reliability, and that differs between them: Cyclone DDS subscribes reliably, while Fast DDS, the default DDS of ROS 2 (still with Lyrical), subscribes in best effort. In best effort, a large message (image, point cloud) arriving while a node is still busy with the previous one can be dropped, without any warning.
With Fast DDS, you can make RTAB-Map's nodes subscribe reliably with their `qos` parameters set to `1` (e.g., `qos:=1` with `rtabmap.launch.py`). Otherwise, I recommend to use [Cyclone DDS](https://docs.ros.org/en/jazzy/Installation/RMW-Implementations/DDS-Implementations/Working-with-Eclipse-CycloneDDS.html), you can try it by adding this before launching any nodes/launch files (or add to your `.bashrc`):
```bash
export RMW_IMPLEMENTATION=rmw_cyclonedds_cpp
# Cyclone prefers multicast by default, if your router got too much spammed,
+31
View File
@@ -28,6 +28,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#include <rtabmap_conversions/PointCloudConversion.h>
#include "rtabmap_conversions/MsgConversion.h"
#include <algorithm>
#include <cmath>
#include <limits>
@@ -2148,6 +2149,36 @@ bool convertRGBDMsgs(
(cameraInfoMsgs.size() == depthMsgs.size() || depthMsgs.empty()) &&
(cameraInfoMsgs.size() == depthCameraInfoMsgs.size() || depthCameraInfoMsgs.empty()));
// An RGBDImage of a camera without depth (e.g., from rgb_sync) has an empty depth
// slot, which reaches here as empty depth images: convert the frame as color only,
// rather than as a stereo pair missing its right image.
if(!depthMsgs.empty() &&
std::all_of(depthMsgs.begin(), depthMsgs.end(),
[](const cv_bridge::CvImageConstPtr & msg) { return msg.get() == 0 || msg->image.empty(); }))
{
return convertRGBDMsgs(
imageMsgs,
std::vector<cv_bridge::CvImageConstPtr>(),
cameraInfoMsgs,
std::vector<sensor_msgs::msg::CameraInfo>(),
frameId,
odomFrameId,
odomStamp,
rgb,
depth,
cameraModels,
stereoCameraModels,
tfBuffer,
waitForTransform,
alreadRectifiedImages,
localKeyPointsMsgs,
localPoints3dMsgs,
localDescriptorsMsgs,
localKeyPoints,
localPoints3d,
localDescriptors);
}
int imageWidth = imageMsgs.size()?imageMsgs[0]->image.cols:cameraInfoMsgs[0].width;
int imageHeight = imageMsgs.size()?imageMsgs[0]->image.rows:cameraInfoMsgs[0].height;
int depthWidth = depthMsgs.size()?depthMsgs[0]->image.cols:0;
@@ -3048,6 +3048,43 @@ TEST(MsgConversion, convertRGBDMsgsSingleCamera)
EXPECT_EQ(depth.at<unsigned short>(0, 0), 1500);
}
// A camera without depth, through an RGBDImage as rgb_sync publishes it: the depth slot
// is left empty, and toCvShare() turns it into an empty depth image. The frame must
// come out as color only, not be rejected as a stereo pair without a right image.
TEST(MsgConversion, convertRGBDMsgsColorOnlyRGBDImage)
{
const std::shared_ptr<tf2_ros::Buffer> buffer = makeTfBuffer();
const rtabmap::Transform baseToCamera(0.1f, 0.0f, 0.2f, 0.0f, 0.0f, 0.0f);
addTf(*buffer, "base_link", "camera_link", baseToCamera, 1000.0);
const cv::Mat rgbImage(8, 8, CV_8UC3, cv::Scalar(10, 20, 30));
rtabmap_msgs::msg::RGBDImage rgbdImage;
rgbdImage.header = makeImage("camera_link", 1000.0, rgbImage, "bgr8")->header;
makeImage("camera_link", 1000.0, rgbImage, "bgr8")->toImageMsg(rgbdImage.rgb);
rgbdImage.rgb_camera_info = makeCameraInfo("camera_link", 1000.0, 8, 8);
cv_bridge::CvImageConstPtr image, depthImage;
toCvShare(rgbdImage, std::shared_ptr<void const>(), image, depthImage);
ASSERT_TRUE(depthImage.get() != 0);
ASSERT_TRUE(depthImage->image.empty()) << "an RGBDImage without depth gives an empty depth image";
cv::Mat rgb, depth;
std::vector<rtabmap::CameraModel> models;
std::vector<rtabmap::StereoCameraModel> stereoModels;
ASSERT_TRUE(convertRGBDMsgs({image}, {depthImage}, {rgbdImage.rgb_camera_info},
{rgbdImage.depth_camera_info}, "base_link", "",
timestampToROS(1000.0), rgb, depth, models, stereoModels,
*buffer, 0.0, /*alreadyRectifiedImages=*/true));
EXPECT_TRUE(stereoModels.empty());
ASSERT_EQ(models.size(), 1u);
EXPECT_NEAR(models[0].fx(), 100.0, 1e-9);
expectTransformNear(models[0].localTransform(), baseToCamera, 1e-4f);
ASSERT_EQ(rgb.cols, 8);
ASSERT_EQ(rgb.rows, 8);
EXPECT_TRUE(depth.empty());
}
TEST(MsgConversion, convertRGBDMsgsMultiCameraSideBySide)
{
// Two cameras are concatenated horizontally into one wide image, one model each.
+22
View File
@@ -6,5 +6,27 @@ find_package(ament_cmake REQUIRED)
install(DIRECTORY launch config params data
DESTINATION share/${PROJECT_NAME}
)
# find_object_2d's detections as landmarks, for find_object_demo.launch.py.
install(PROGRAMS scripts/find_object_to_landmarks.py
DESTINATION lib/${PROJECT_NAME}
)
if(BUILD_TESTING)
find_package(ament_cmake_pytest REQUIRED)
# rtabmap_launch's launch file test, on this package's installed launch files: each
# dry-run with each of its switches; nothing is started, so it needs no DDS domain of its
# own. Run from where rtabmap_launch installed it: no pytest cache written there.
find_package(rtabmap_launch REQUIRED)
ament_add_pytest_test(test_launch_files ${rtabmap_launch_DIR}/../test/test_launch_files.py
ENV RTABMAP_LAUNCH_TEST_PACKAGE=${PROJECT_NAME} "PYTEST_ADDOPTS=-p no:cacheprovider"
TIMEOUT 900)
# Replays the demo bags through the demo launch files and compares the graphs with
# test/golden. Skipped unless the bags were fetched (test/fetch_test_data.sh). The
# demos' nodes talk over DDS, so it gets a domain of its own; see rtabmap_slam's for
# the other packages' ranges.
ament_add_pytest_test(test_demo_playback test/test_demo_playback.py
ENV ROS_DOMAIN_ID=110
TIMEOUT 7200)
endif()
ament_package()
+21
View File
@@ -1,4 +1,7 @@
# rtabmap_demos
Ready-to-run demos of RTAB-Map. Each launch file sets up a complete pipeline for one of the demo bags or one simulated robot, so you can watch RTAB-Map map, close loops and navigate without any hardware. The bags can be downloaded from the [0.23.13 release](https://github.com/introlab/rtabmap_ros/releases/tag/0.23.13).
+ [Outdoor Stereo VSLAM](#outdoor-stereo-vslam)
+ [Indoor 2D LiDAR and RGB-D SLAM](#indoor-2d-lidar-and-rgb-d-slam)
+ [Multi-Session Indoor 2D LiDAR and RGB-D SLAM](#multi-session-indoor-2d-lidar-and-rgb-d-slam)
@@ -36,6 +39,11 @@
![Peek 2024-11-29 12-01](https://github.com/user-attachments/assets/b3cc0c67-517a-4f69-b4cc-35d288e96165)
### Netherdrone 3D LiDAR SLAM
[netherdrone_lidar3d_demo.launch.py](https://github.com/introlab/rtabmap_ros/blob/ros2/rtabmap_demos/launch/netherdrone_lidar3d_demo.launch.py)
![Peek 2026-10-10 12-12](https://github.com/user-attachments/assets/a79f0519-6c39-48a4-8c14-799c0775571e)
### Turtlebot4 Nav2, 2D LiDAR and RGB-D SLAM
[turtlebot4_sim_demo.launch.py](https://github.com/introlab/rtabmap_ros/blob/ros2/rtabmap_demos/launch/turtlebot4/turtlebot4_sim_demo.launch.py)
@@ -90,3 +98,16 @@ FusionCore (wheel + IMU UKF) and `icp_odometry` run in a feedback loop: FusionCo
[isaac_sim_vslam_demo.launch.py](https://github.com/introlab/rtabmap_ros/blob/ros2/rtabmap_demos/launch/isaac/isaac_sim_vslam_demo.launch.py) stereo:=false vo:=rtabmap
![Peek 2024-11-30 13-22](https://github.com/user-attachments/assets/240820c6-4dea-4cbf-9431-b4b3af695d51)
## Tests
`colcon test --packages-select rtabmap_demos` runs two tests:
* `test_launch_files` loads every launch file of this package, with its default arguments and with each of its switches flipped, without starting anything. It checks that the files, executables, components and included launch files exist, that the arguments passed to our own launch files are declared, and that RTAB-Map's parameters exist in the installed library. Packages that are not installed (simulators, robots) are stubbed and named in a warning.
* `test_demo_playback` replays demo bags through the demo launch files and compares the resulting graphs with the golden ones in `test/golden` (number of nodes and of loop closures, and the trajectory error rtabmap computes against the golden trajectory, replayed as ground truth). It is skipped unless the bags were downloaded first (a few GB):
```bash
rtabmap_demos/test/fetch_test_data.sh # or set RTABMAP_DEMOS_TEST_DATA to download elsewhere
```
The bags are replayed in lockstep with the demo's nodes: each sensor message is published only once every node is idle, so results do not depend on how loaded the machine is. A replay takes a few minutes per bag. To keep a run's graph, database and log, set `RTABMAP_DEMOS_TEST_RESULTS` to a directory. After a change that is expected to change the results, regenerate the golden graphs with `RTABMAP_DEMOS_UPDATE_GOLDEN=1` and commit them.
+267
View File
@@ -0,0 +1,267 @@
Panels:
- Class: rviz_common/Displays
Help Height: 0
Name: Displays
Property Tree Widget:
Expanded:
- /Image1/Topic1
Splitter Ratio: 0.5
Tree Height: 390
- Class: rviz_common/Views
Expanded:
- /Current View1
- /Current View1/Wall clipping1
Name: Views
Splitter Ratio: 0.5
Visualization Manager:
Class: ""
Displays:
- Alpha: 0.5
Cell Size: 1
Class: rviz_default_plugins/Grid
Color: 160; 160; 164
Enabled: true
Line Style:
Line Width: 0.029999999329447746
Value: Lines
Name: Grid
Normal Cell Count: 0
Offset:
X: 0
Y: 0
Z: 0
Plane: XY
Plane Cell Count: 10
Reference Frame: <Fixed Frame>
Value: true
- Class: rviz_default_plugins/TF
Enabled: true
Frame Timeout: 15
Frames:
All Enabled: true
arducam:
Value: true
base_link:
Value: true
base_link_stabilized:
Value: true
box_link:
Value: true
camera_link:
Value: true
dynamixel_base:
Value: true
dynamixel_shaft:
Value: true
icp_odom:
Value: true
imu_link:
Value: true
map:
Value: true
os_imu:
Value: true
os_lidar:
Value: true
os_sensor:
Value: true
os_sensor_base:
Value: true
rotor_0:
Value: true
rotor_1:
Value: true
rotor_2:
Value: true
rotor_3:
Value: true
Marker Scale: 1
Name: TF
Show Arrows: true
Show Axes: true
Show Names: false
Tree:
map:
icp_odom:
base_link_stabilized:
base_link:
box_link:
camera_link:
arducam:
{}
dynamixel_base:
dynamixel_shaft:
os_sensor_base:
os_sensor:
os_imu:
{}
os_lidar:
{}
imu_link:
{}
rotor_0:
{}
rotor_1:
{}
rotor_2:
{}
rotor_3:
{}
Update Interval: 0
Value: true
- Alpha: 1
Autocompute Intensity Bounds: false
Autocompute Value Bounds:
Max Value: 63.8961181640625
Min Value: -59.4283332824707
Value: true
Axis: Z
Channel Name: intensity
Class: rtabmap_rviz_plugins/MapCloud
Cloud decimation: 4
Cloud from scan: true
Cloud max depth (m): 0
Cloud min depth (m): 0
Cloud voxel size (m): 0
Color: 255; 255; 255
Color Transformer: Intensity
Download graph: false
Download map: false
Download namespace: rtabmap
Enabled: false
Filter ceiling (m): 0
Filter floor (m): 0
Invert Rainbow: false
Max Color: 255; 255; 255
Max Intensity: 750
Min Color: 0; 0; 0
Min Intensity: 0
Name: MapCloud
Node filtering angle (degrees): 30
Node filtering radius (m): 0
Position Transformer: XYZ
Size (Pixels): 3
Size (m): 0.009999999776482582
Style: Points
Topic:
Depth: 5
Durability Policy: Volatile
Filter size: 10
History Policy: Keep Last
Reliability Policy: Reliable
Value: /mapData
Use Fixed Frame: true
Use rainbow: true
Value: false
- Alpha: 1
Class: rtabmap_rviz_plugins/MapGraph
Enabled: true
Global loop closure: 255; 0; 0
Landmark: 0; 128; 0
Local loop closure: 255; 255; 0
Merged neighbor: 255; 170; 0
Name: MapGraph
Neighbor: 0; 0; 255
Topic:
Depth: 5
Durability Policy: Volatile
Filter size: 10
History Policy: Keep Last
Reliability Policy: Reliable
Value: /mapGraph
User: 255; 0; 0
Value: true
Virtual: 255; 0; 255
- Class: octomap_rviz_plugins/ColorOccupancyGrid
Enabled: true
Max. Height Display: 3.4028234663852886e+38
Max. Octree Depth: 14
Min. Height Display: -3.4028234663852886e+38
Name: ColorOccupancyGrid
Topic:
Depth: 5
Durability Policy: Volatile
Filter size: 10
History Policy: Keep Last
Reliability Policy: Reliable
Value: /octomap_binary
Value: true
Voxel Alpha: 1
Voxel Coloring: Z-Axis
Voxel Rendering: Occupied Voxels
- Class: rviz_default_plugins/Image
Enabled: true
Max Value: 1
Median window: 5
Min Value: 0
Name: Image
Normalize Range: true
Topic:
Depth: 5
Durability Policy: Volatile
History Policy: Keep Last
Reliability Policy: Reliable
Value: /camera/image_raw/compressed
Value: true
Enabled: true
Global Options:
Background Color: 48; 48; 48
Fixed Frame: map
Frame Rate: 30
Name: root
Tools:
- Class: rviz_default_plugins/Interact
Hide Inactive Objects: true
- Class: rviz_default_plugins/MoveCamera
- Class: rviz_default_plugins/Select
- Class: rviz_default_plugins/FocusCamera
- Class: rviz_default_plugins/Measure
Line color: 128; 128; 0
Transformation:
Current:
Class: rviz_default_plugins/TF
Value: true
Views:
Current:
Class: rtabmap_rviz_plugins/OrbitOriented
Distance: 2.5
Enable Stereo Rendering:
Stereo Eye Separation: 0.05999999865889549
Stereo Focal Distance: 1
Swap Stereo Eyes: false
Value: false
Field of View: 1.2000000476837158
Focal Point:
X: 0
Y: 0
Z: 0
Focal Shape Fixed Size: false
Focal Shape Size: 0.05000000074505806
Invert Z Axis: false
Name: Current View
Near Clip Distance: 0.009999999776482582
Pitch: 0.3403986096382141
Target Frame: base_link
Value: OrbitOriented (rtabmap_rviz_plugins)
Wall clipping:
Ignore Distance: 1
Octomap Topic: /octomap_binary
Octree Depth: 14
Value: true
Wall Margin: 0.05000000074505806
Yaw: 3.100417137145996
Saved: ~
Window Geometry:
Displays:
collapsed: false
Height: 876
Hide Left Dock: false
Hide Right Dock: false
Image:
collapsed: false
QMainWindow State: 000000ff00000000fd00000001000000000000015600000312fc0200000003fb000000100044006900730070006c006100790073010000003d000001c3000000c900fffffffb0000000a00560069006500770073000000016200000116000000a400fffffffb0000000a0049006d0061006700650100000206000001490000002800ffffff000002990000031200000004000000040000000800000008fc0000000100000002000000010000000a0054006f006f006c00730100000000ffffffff0000000000000000
Views:
collapsed: false
Width: 1013
X: 69
Y: 48
+454
View File
@@ -0,0 +1,454 @@
[Gui]
AboutDialog\geometry=@ByteArray(\x1\xd9\xd0\xcb\0\x3\0\0\0\0\0\0\0\0\0/\0\0\x2\xf7\0\0\x3\x10\0\0\0\0\0\0\0/\0\0\x2\xf7\0\0\x3\x10\0\0\0\0\0\0\0\0\a\x80\0\0\0\0\0\0\0/\0\0\x2\xf7\0\0\x3\x10)
DepthCalibrationDialog\bin_depth=2
DepthCalibrationDialog\bin_height=6
DepthCalibrationDialog\bin_width=8
DepthCalibrationDialog\cone_radius=0.02
DepthCalibrationDialog\cone_stddev_thresh=0.1
DepthCalibrationDialog\decimation=1
DepthCalibrationDialog\laser_scan=false
DepthCalibrationDialog\max_depth=3.5
DepthCalibrationDialog\max_model_depth=10
DepthCalibrationDialog\min_depth=0
DepthCalibrationDialog\smoothing=1
DepthCalibrationDialog\voxel=0.01
ExportBundlerDialog\exportPoints=false
ExportBundlerDialog\laplacianThr=0
ExportBundlerDialog\maxAngularSpeed=0
ExportBundlerDialog\maxLinearSpeed=0
ExportBundlerDialog\sba_iterations=20
ExportBundlerDialog\sba_rematch_features=true
ExportBundlerDialog\sba_type=1
ExportBundlerDialog\sba_variance=1
ExportCloudsDialog\assemble=true
ExportCloudsDialog\assemble_samples=0
ExportCloudsDialog\assemble_voxel=0.01
ExportCloudsDialog\bilateral=false
ExportCloudsDialog\bilateral_sigma_r=0.1
ExportCloudsDialog\bilateral_sigma_s=10
ExportCloudsDialog\binary=true
ExportCloudsDialog\cam_proj=false
ExportCloudsDialog\cam_proj_decimation=1
ExportCloudsDialog\cam_proj_distance_policy=true
ExportCloudsDialog\cam_proj_export_format=0
ExportCloudsDialog\cam_proj_keep_points=false
ExportCloudsDialog\cam_proj_mask=
ExportCloudsDialog\cam_proj_max_angle=0
ExportCloudsDialog\cam_proj_max_depth_error=0
ExportCloudsDialog\cam_proj_max_distance=0
ExportCloudsDialog\cam_proj_recolor_points=true
ExportCloudsDialog\cam_proj_roi_ratios=0.0 0.0 0.0 0.0
ExportCloudsDialog\cputsdf_flattenRadius=0.005
ExportCloudsDialog\cputsdf_minWeight=0
ExportCloudsDialog\cputsdf_randomSplit=1
ExportCloudsDialog\cputsdf_resolution=0.01
ExportCloudsDialog\cputsdf_size=12
ExportCloudsDialog\cputsdf_truncNeg=0.03
ExportCloudsDialog\cputsdf_truncPos=0.03
ExportCloudsDialog\filtering=false
ExportCloudsDialog\filtering_min_neighbors=5
ExportCloudsDialog\filtering_radius=0
ExportCloudsDialog\frame=0
ExportCloudsDialog\from_depth=true
ExportCloudsDialog\gain=false
ExportCloudsDialog\gain_beta=10
ExportCloudsDialog\gain_full=false
ExportCloudsDialog\gain_overlap=0
ExportCloudsDialog\gain_radius=0.02
ExportCloudsDialog\gain_rgb=true
ExportCloudsDialog\intensity_colormap=0
ExportCloudsDialog\mesh=false
ExportCloudsDialog\mesh_angle_tolerance=15
ExportCloudsDialog\mesh_clean=true
ExportCloudsDialog\mesh_color_radius=0.05
ExportCloudsDialog\mesh_decimation_factor=0
ExportCloudsDialog\mesh_dense_strategy=1
ExportCloudsDialog\mesh_max_polygons=0
ExportCloudsDialog\mesh_min_cluster_size=0
ExportCloudsDialog\mesh_mu=2.5
ExportCloudsDialog\mesh_quad=false
ExportCloudsDialog\mesh_radius=0.2
ExportCloudsDialog\mesh_texture=false
ExportCloudsDialog\mesh_textureBlending=true
ExportCloudsDialog\mesh_textureBlendingDecimation=0
ExportCloudsDialog\mesh_textureBrightnessConstrastRatioHigh=5
ExportCloudsDialog\mesh_textureBrightnessConstrastRatioLow=0
ExportCloudsDialog\mesh_textureCameraFiltering=false
ExportCloudsDialog\mesh_textureCameraFilteringAngle=30
ExportCloudsDialog\mesh_textureCameraFilteringLaplacian=0
ExportCloudsDialog\mesh_textureCameraFilteringRadius=0
ExportCloudsDialog\mesh_textureCameraFilteringVel=0
ExportCloudsDialog\mesh_textureCameraFilteringVelRad=0
ExportCloudsDialog\mesh_textureDistanceToCamPolicy=false
ExportCloudsDialog\mesh_textureExposureFusion=false
ExportCloudsDialog\mesh_textureFormat=0
ExportCloudsDialog\mesh_textureMaxAngle=0
ExportCloudsDialog\mesh_textureMaxCount=1
ExportCloudsDialog\mesh_textureMaxDepthError=0
ExportCloudsDialog\mesh_textureMaxDistance=3
ExportCloudsDialog\mesh_textureMinCluster=50
ExportCloudsDialog\mesh_textureMultiband=false
ExportCloudsDialog\mesh_textureMultibandAngleHardThr=90
ExportCloudsDialog\mesh_textureMultibandBestScoreThr=0.1
ExportCloudsDialog\mesh_textureMultibandDownScale=2
ExportCloudsDialog\mesh_textureMultibandFillHoles=false
ExportCloudsDialog\mesh_textureMultibandForceVisible=false
ExportCloudsDialog\mesh_textureMultibandNbContrib=1 5 10 0
ExportCloudsDialog\mesh_textureMultibandPadding=5
ExportCloudsDialog\mesh_textureMultibandUnwrap=0
ExportCloudsDialog\mesh_textureRoiRatios=0.0 0.0 0.0 0.0
ExportCloudsDialog\mesh_textureSize=6
ExportCloudsDialog\mesh_textureVertexColorPolicy=0
ExportCloudsDialog\mesh_triangle_size=1
ExportCloudsDialog\mls=false
ExportCloudsDialog\mls_dilation_iterations=1
ExportCloudsDialog\mls_dilation_voxel_size=0.005
ExportCloudsDialog\mls_output_voxel_size=0
ExportCloudsDialog\mls_point_density=10
ExportCloudsDialog\mls_polygonial_order=2
ExportCloudsDialog\mls_radius=0.04
ExportCloudsDialog\mls_upsampling_method=0
ExportCloudsDialog\mls_upsampling_radius=0.01
ExportCloudsDialog\mls_upsampling_step=0.005
ExportCloudsDialog\nodes_filtering=false
ExportCloudsDialog\nodes_filtering_xmax=0
ExportCloudsDialog\nodes_filtering_xmin=0
ExportCloudsDialog\nodes_filtering_ymax=0
ExportCloudsDialog\nodes_filtering_ymin=0
ExportCloudsDialog\nodes_filtering_zmax=0
ExportCloudsDialog\nodes_filtering_zmin=0
ExportCloudsDialog\normals_ground_normals_up=0
ExportCloudsDialog\normals_k=20
ExportCloudsDialog\normals_radius=0
ExportCloudsDialog\num_threads=0
ExportCloudsDialog\openchisel_carving_dist_m=0.05
ExportCloudsDialog\openchisel_chunk_size_x=16
ExportCloudsDialog\openchisel_chunk_size_y=16
ExportCloudsDialog\openchisel_chunk_size_z=16
ExportCloudsDialog\openchisel_far_plane_dist=1.1
ExportCloudsDialog\openchisel_integration_weight=1
ExportCloudsDialog\openchisel_merge_vertices=true
ExportCloudsDialog\openchisel_near_plane_dist=0.05
ExportCloudsDialog\openchisel_truncation_constant=0.001504
ExportCloudsDialog\openchisel_truncation_linear=0.00152
ExportCloudsDialog\openchisel_truncation_quadratic=0.0019
ExportCloudsDialog\openchisel_truncation_scale=10
ExportCloudsDialog\openchisel_use_voxel_carving=false
ExportCloudsDialog\pipeline=1
ExportCloudsDialog\poisson_depth=0
ExportCloudsDialog\poisson_iso=8
ExportCloudsDialog\poisson_manifold=true
ExportCloudsDialog\poisson_minDepth=5
ExportCloudsDialog\poisson_outputPolygons=false
ExportCloudsDialog\poisson_pointWeight=4
ExportCloudsDialog\poisson_polygon_size=0.03
ExportCloudsDialog\poisson_samples=1
ExportCloudsDialog\poisson_scale=1.1
ExportCloudsDialog\poisson_solver=8
ExportCloudsDialog\regenerate=false
ExportCloudsDialog\regenerate_ceiling=0
ExportCloudsDialog\regenerate_decimation=1
ExportCloudsDialog\regenerate_distortion_model=
ExportCloudsDialog\regenerate_edge_bleeding_error=0
ExportCloudsDialog\regenerate_fill_error=2
ExportCloudsDialog\regenerate_fill_size=0
ExportCloudsDialog\regenerate_floor=0
ExportCloudsDialog\regenerate_footprint_height=0
ExportCloudsDialog\regenerate_footprint_length=0
ExportCloudsDialog\regenerate_footprint_width=0
ExportCloudsDialog\regenerate_max_depth=4
ExportCloudsDialog\regenerate_min_depth=0
ExportCloudsDialog\regenerate_min_depth_confidence=0
ExportCloudsDialog\regenerate_offaxis_filtering=false
ExportCloudsDialog\regenerate_offaxis_filtering_angle=10
ExportCloudsDialog\regenerate_offaxis_filtering_neg_x=true
ExportCloudsDialog\regenerate_offaxis_filtering_neg_y=true
ExportCloudsDialog\regenerate_offaxis_filtering_neg_z=true
ExportCloudsDialog\regenerate_offaxis_filtering_pos_x=true
ExportCloudsDialog\regenerate_offaxis_filtering_pos_y=true
ExportCloudsDialog\regenerate_offaxis_filtering_pos_z=true
ExportCloudsDialog\regenerate_roi=0.0 0.0 0.0 0.0
ExportCloudsDialog\regenerate_scan_decimation=1
ExportCloudsDialog\regenerate_scan_max_range=0
ExportCloudsDialog\regenerate_scan_min_range=0
ExportCloudsDialog\subtract=false
ExportCloudsDialog\subtract_min_neighbors=5
ExportCloudsDialog\subtract_point_angle=0
ExportCloudsDialog\subtract_point_radius=0.02
Figures\counts=
Figures\curves=
Figures\thresholds=
General\beep=false
General\cloudCeilingHeight=0
General\cloudFiltering=false
General\cloudFilteringAngle=30
General\cloudFilteringRadius=0.1
General\cloudFloorHeight=0
General\cloudNoiseMinNeighbors=5
General\cloudNoiseRadius=0
General\cloudVoxel=0
General\cloudsKept=true
General\colorScheme0=0
General\colorScheme1=0
General\colorSchemeScan0=0
General\colorSchemeScan1=0
General\decimation0=4
General\decimation1=4
General\depthConf0=0
General\depthConf1=0
General\downsamplingScan0=1
General\downsamplingScan1=1
General\elevationMapShown=0
General\figure_cache=true
General\figure_time=false
General\gravityLength0=1
General\gravityLength1=1
General\gravityShown0=false
General\gravityShown1=false
General\gridMapOpacity=0.75
General\gridMapShown=false
General\gridUIResolution=0
General\gtAlign=true
General\imageHighestHypShown=false
General\imageRejectedShown=true
General\imagesKept=true
General\landmarkSize=0.1
General\localizationsGraphView=false
General\localizationsGraphViewOdomCache=false
General\loggerEventLevel=3
General\loggerLevel=2
General\loggerPauseLevel=3
General\loggerPrintThreadId=false
General\loggerPrintTime=true
General\loggerType=1
General\maxDepth0=0
General\maxDepth1=0
General\maxRange0=30
General\maxRange1=0
General\meshing=false
General\meshing_angle=15
General\meshing_quad=true
General\meshing_texture=false
General\meshing_triangle_size=2
General\minDepth0=0
General\minDepth1=0
General\minRange0=0
General\minRange1=0
General\missingRepublished=true
General\noFiltering=true
General\nochangeGraphView=false
General\normalKSearch=10
General\normalRadiusSearch=0
General\notifyNewGlobalPath=false
General\octomap=false
General\octomap_2dgrid=true
General\octomap_3dmap=true
General\octomap_depth=16
General\octomap_point_size=5
General\octomap_rendering_type=0
General\odomDisabled=false
General\odomF2MGravitySigma=-1
General\odomOnlyInliersShown=false
General\odomQualityThr=50
General\odomRegistration=3
General\opacity0=1
General\opacity1=0.75
General\opacityScan0=1
General\opacityScan1=0.5
General\posteriorGraphView=true
General\ptSize0=1
General\ptSize1=2
General\ptSizeFeatures0=3
General\ptSizeFeatures1=3
General\ptSizeScan0=1
General\ptSizeScan1=2
General\roiRatios0=0.0 0.0 0.0 0.0
General\roiRatios1=0.0 0.0 0.0 0.0
General\scanCeilingHeight=0
General\scanFloorHeight=0
General\scanNormalKSearch=0
General\scanNormalRadiusSearch=0
General\showClouds0=false
General\showClouds1=false
General\showFeatures0=false
General\showFeatures1=true
General\showFrames=false
General\showFrustums0=false
General\showFrustums1=false
General\showGraphs=true
General\showIMUAcc=false
General\showIMUGravity=false
General\showLabels=false
General\showLandmarks=true
General\showScans0=true
General\showScans1=true
General\subtractFiltering=false
General\subtractFilteringAngle=0
General\subtractFilteringMinPts=5
General\subtractFilteringRadius=0.02
General\verticalLayoutUsed=true
General\voxelSizeScan0=0
General\voxelSizeScan1=0
General\wordsGraphView=false
MainWindow\geometry=@ByteArray(\x1\xd9\xd0\xcb\0\x3\0\0\0\0\x2\x65\0\0\0\xb8\0\0\ad\0\0\x3\xac\0\0\x2\x65\0\0\0\xdd\0\0\ad\0\0\x3\xac\0\0\0\0\0\0\0\0\a\x80\0\0\x2\x65\0\0\0\xdd\0\0\ad\0\0\x3\xac)
MainWindow\maximized=false
MainWindow\state="@ByteArray(\0\0\0\xff\0\0\0\0\xfd\0\0\0\x3\0\0\0\0\0\0\x1\x9c\0\0\x2\x93\xfc\x2\0\0\0\x1\xfc\0\0\0=\0\0\x2\x93\0\0\0\x37\0\xff\xff\xff\xfc\x1\0\0\0\x2\xfb\0\0\0$\0\x64\0o\0\x63\0k\0W\0i\0\x64\0g\0\x65\0t\0_\0s\0t\0\x61\0t\0s\0V\0\x32\0\0\0\0\0\0\0\x1q\0\0\0O\0\xff\xff\xff\xfc\0\0\0\0\0\0\x1\x9c\0\0\0h\0\xff\xff\xff\xfc\x2\0\0\0\x2\xfb\0\0\0(\0\x64\0o\0\x63\0k\0W\0i\0\x64\0g\0\x65\0t\0_\0i\0m\0\x61\0g\0\x65\0V\0i\0\x65\0w\x1\0\0\0=\0\0\x2\x93\0\0\0\x37\0\xff\xff\xff\xfb\0\0\0&\0\x64\0o\0\x63\0k\0W\0i\0\x64\0g\0\x65\0t\0_\0o\0\x64\0o\0m\0\x65\0t\0r\0y\0\0\0\x1\xaa\0\0\x1&\0\0\0\x13\0\xff\xff\xff\0\0\0\x1\0\0\x3^\0\0\x2\x93\xfc\x2\0\0\0\x5\xfb\0\0\0,\0\x64\0o\0\x63\0k\0W\0i\0\x64\0g\0\x65\0t\0_\0g\0r\0\x61\0p\0h\0V\0i\0\x65\0w\0\x65\0r\0\0\0\0=\0\0\x1(\0\0\0Y\0\xff\xff\xff\xfb\0\0\0,\0\x64\0o\0\x63\0k\0W\0i\0\x64\0g\0\x65\0t\0_\0\x63\0l\0o\0u\0\x64\0V\0i\0\x65\0w\0\x65\0r\x1\0\0\0=\0\0\x2\x93\0\0\0\xdb\0\xff\xff\xff\xfb\0\0\0\x30\0\x64\0o\0\x63\0k\0W\0i\0\x64\0g\0\x65\0t\0_\0r\0\x61\0w\0l\0i\0k\0\x65\0l\0i\0h\0o\0o\0\x64\0\0\0\x2\xa1\0\0\0\xd2\0\0\0\x96\0\xff\xff\xff\xfb\0\0\0\x38\0\x64\0o\0\x63\0k\0W\0i\0\x64\0g\0\x65\0t\0_\0l\0o\0o\0p\0\x43\0l\0o\0s\0u\0r\0\x65\0V\0i\0\x65\0w\0\x65\0r\0\0\0\x2[\0\0\x1\x9d\0\0\0\xf2\0\xff\xff\xff\xfb\0\0\0\x34\0\x64\0o\0\x63\0k\0W\0i\0\x64\0g\0\x65\0t\0_\0m\0u\0l\0t\0i\0S\0\x65\0s\0s\0i\0o\0n\0L\0o\0\x63\0\0\0\0\0\xff\xff\xff\xff\0\0\0\x13\0\xff\xff\xff\0\0\0\x3\0\0\x5\xbf\0\0\0\x8b\xfc\x1\0\0\0\x4\xfb\0\0\0(\0\x64\0o\0\x63\0k\0W\0i\0\x64\0g\0\x65\0t\0_\0p\0o\0s\0t\0\x65\0r\0i\0o\0r\0\0\0\0\0\xff\xff\xff\xff\0\0\0\xcb\0\xff\xff\xff\xfb\0\0\0*\0\x64\0o\0\x63\0k\0W\0i\0\x64\0g\0\x65\0t\0_\0l\0i\0k\0\x65\0l\0i\0h\0o\0o\0\x64\0\0\0\0\0\xff\xff\xff\xff\0\0\0\xcb\0\xff\xff\xff\xfb\0\0\0$\0\x64\0o\0\x63\0k\0W\0i\0\x64\0g\0\x65\0t\0_\0\x63\0o\0n\0s\0o\0l\0\x65\0\0\0\0\0\0\0\x5\xbf\0\0\x1+\0\xff\xff\xff\xfb\0\0\0\x30\0\x64\0o\0\x63\0k\0W\0i\0\x64\0g\0\x65\0t\0_\0m\0\x61\0p\0V\0i\0s\0i\0\x62\0i\0l\0i\0t\0y\x2\0\0\0\x32\0\0\0\x1b\0\0\0\xc8\0\0\0\x8a\0\0\0\0\0\0\x2\x93\0\0\0\x4\0\0\0\x4\0\0\0\b\0\0\0\b\xfc\0\0\0\x1\0\0\0\x2\0\0\0\x2\0\0\0\xe\0t\0o\0o\0l\0\x42\0\x61\0r\0\0\0\0\0\xff\xff\xff\xff\0\0\0\0\0\0\0\0\0\0\0\x12\0t\0o\0o\0l\0\x42\0\x61\0r\0_\0\x32\x1\0\0\0\0\xff\xff\xff\xff\0\0\0\0\0\0\0\0)"
MainWindow\status_bar=false
PostProcessingDialog\cluster_angle=30
PostProcessingDialog\cluster_radius=1
PostProcessingDialog\detect_more_lc=true
PostProcessingDialog\inter_session=true
PostProcessingDialog\intra_session=true
PostProcessingDialog\iterations=5
PostProcessingDialog\min_graph_distance=10
PostProcessingDialog\refine_lc=false
PostProcessingDialog\refine_neigbors=false
PostProcessingDialog\sba=false
PostProcessingDialog\sba_iterations=20
PostProcessingDialog\sba_rematch_features=true
PostProcessingDialog\sba_type=1
PostProcessingDialog\sba_variance=1
PreferencesDialog\geometry=@ByteArray(\x1\xd9\xd0\xcb\0\x3\0\0\0\0\x2\xfb\xff\xff\xff\xf6\0\0\x6\xce\0\0\x4\x12\0\0\x2\xfb\0\0\0\x1b\0\0\x6\xce\0\0\x4\x12\0\0\0\0\0\0\0\0\a\x80\0\0\x2\xfb\0\0\0\x1b\0\0\x6\xce\0\0\x4\x12)
graphicsView_graphView\current_goal_color=@Variant(\0\0\0\x43\x1\xff\xff\x80\x80\0\0\x80\x80\0\0)
graphicsView_graphView\ensure_frame_visible=1
graphicsView_graphView\fast_zoom_min_nodes=0
graphicsView_graphView\global_color=@Variant(\0\0\0\x43\x1\xff\xff\xff\xff\0\0\0\0\0\0)
graphicsView_graphView\global_path_color=@Variant(\0\0\0\x43\x1\xff\xff\x80\x80\0\0\x80\x80\0\0)
graphicsView_graphView\global_path_visible=true
graphicsView_graphView\gps_color=@Variant(\0\0\0\x43\x1\xff\xff\0\0\x80\x80\x80\x80\0\0)
graphicsView_graphView\gps_graph_visible=true
graphicsView_graphView\graph_visible=true
graphicsView_graphView\grid_visible=true
graphicsView_graphView\gt_color=@Variant(\0\0\0\x43\x1\xff\xff\xa0\xa0\xa0\xa0\xa4\xa4\0\0)
graphicsView_graphView\gt_graph_visible=true
graphicsView_graphView\highlighting_color_0=@Variant(\0\0\0\x43\x1\xff\xff\xff\xff\xff\xff\0\0\0\0)
graphicsView_graphView\highlighting_color_1=@Variant(\0\0\0\x43\x1\xff\xff\xff\xff\0\0\xff\xff\0\0)
graphicsView_graphView\inter_session_color=@Variant(\0\0\0\x43\x1\xff\xff\0\0\xff\xff\0\0\0\0)
graphicsView_graphView\interaction_mode=0
graphicsView_graphView\intra_inter_session_colors_enabled=false
graphicsView_graphView\intra_session_color=@Variant(\0\0\0\x43\x1\xff\xff\xff\xff\0\0\0\0\0\0)
graphicsView_graphView\link_width=0
graphicsView_graphView\local_color=@Variant(\0\0\0\x43\x1\xff\xff\xff\xff\xff\xff\0\0\0\0)
graphicsView_graphView\local_path_color=@Variant(\0\0\0\x43\x1\xff\xff\0\0\xff\xff\xff\xff\0\0)
graphicsView_graphView\local_path_visible=true
graphicsView_graphView\local_radius_visible=false
graphicsView_graphView\loop_closure_outlier_thr=@Variant(\0\0\0\x87\0\0\0\0)
graphicsView_graphView\min_link_length=@Variant(\0\0\0\x87<\xa3\xd7\n)
graphicsView_graphView\neighbor_color=@Variant(\0\0\0\x43\x1\xff\xff\0\0\0\0\xff\xff\0\0)
graphicsView_graphView\neighbor_merged_color=@Variant(\0\0\0\x43\x1\xff\xff\xff\xff\xaa\xaa\0\0\0\0)
graphicsView_graphView\node_color=@Variant(\0\0\0\x43\x1\xff\xff\0\0\0\0\xff\xff\0\0)
graphicsView_graphView\node_odom_cache_color=@Variant(\0\0\0\x43\x1\xff\xff\0\0\x80\x80\0\0\0\0)
graphicsView_graphView\node_radius=0.009999999776482582
graphicsView_graphView\node_visible=true
graphicsView_graphView\odom_cache_overlay=true
graphicsView_graphView\orientation_ENU=false
graphicsView_graphView\origin_visible=true
graphicsView_graphView\referential_visible=true
graphicsView_graphView\rejected_color=@Variant(\0\0\0\x43\x1\xff\xff\0\0\0\0\0\0\0\0)
graphicsView_graphView\user_color=@Variant(\0\0\0\x43\x1\xff\xff\xff\xff\0\0\0\0\0\0)
graphicsView_graphView\view_plane=0
graphicsView_graphView\virtual_color=@Variant(\0\0\0\x43\x1\xff\xff\xff\xff\0\0\xff\xff\0\0)
imageView_loopClosure\alpha=100
imageView_loopClosure\bg_color=@Variant(\0\0\0\x43\x1\xff\xff\0\0\0\0\0\0\0\0)
imageView_loopClosure\colormap=2
imageView_loopClosure\colormap_camera_frame=true
imageView_loopClosure\colormap_max_range=@Variant(\0\0\0\x87\0\0\0\0)
imageView_loopClosure\colormap_min_range=@Variant(\0\0\0\x87\0\0\0\0)
imageView_loopClosure\confidence_shown=false
imageView_loopClosure\depth_shown=false
imageView_loopClosure\feature_color=@Variant(\0\0\0\x43\x1\xff\xff\xff\xff\xff\xff\0\0\0\0)
imageView_loopClosure\features_shown=true
imageView_loopClosure\features_size=0
imageView_loopClosure\graphics_view=false
imageView_loopClosure\graphics_view_scale=true
imageView_loopClosure\graphics_view_scale_to_height=false
imageView_loopClosure\image_shown=true
imageView_loopClosure\lines_shown=true
imageView_loopClosure\lines_width=0
imageView_loopClosure\matching_feature_color=@Variant(\0\0\0\x43\x1\xff\xff\xff\xff\0\0\xff\xff\0\0)
imageView_loopClosure\matching_line_color=@Variant(\0\0\0\x43\x1\xff\xff\0\0\xff\xff\xff\xff\0\0)
imageView_odometry\alpha=200
imageView_odometry\bg_color=@Variant(\0\0\0\x43\x1\xff\xff\0\0\0\0\0\0\0\0)
imageView_odometry\colormap=2
imageView_odometry\colormap_camera_frame=true
imageView_odometry\colormap_max_range=@Variant(\0\0\0\x87\0\0\0\0)
imageView_odometry\colormap_min_range=@Variant(\0\0\0\x87\0\0\0\0)
imageView_odometry\confidence_shown=false
imageView_odometry\depth_shown=false
imageView_odometry\feature_color=@Variant(\0\0\0\x43\x1\xff\xff\xff\xff\xff\xff\0\0\0\0)
imageView_odometry\features_shown=true
imageView_odometry\features_size=0
imageView_odometry\graphics_view=false
imageView_odometry\graphics_view_scale=true
imageView_odometry\graphics_view_scale_to_height=false
imageView_odometry\image_shown=true
imageView_odometry\lines_shown=true
imageView_odometry\lines_width=0
imageView_odometry\matching_feature_color=@Variant(\0\0\0\x43\x1\xff\xff\xff\xff\0\0\xff\xff\0\0)
imageView_odometry\matching_line_color=@Variant(\0\0\0\x43\x1\xff\xff\0\0\xff\xff\xff\xff\0\0)
imageView_source\alpha=100
imageView_source\bg_color=@Variant(\0\0\0\x43\x1\xff\xff\0\0\0\0\0\0\0\0)
imageView_source\colormap=2
imageView_source\colormap_camera_frame=true
imageView_source\colormap_max_range=@Variant(\0\0\0\x87\0\0\0\0)
imageView_source\colormap_min_range=@Variant(\0\0\0\x87\0\0\0\0)
imageView_source\confidence_shown=false
imageView_source\depth_shown=false
imageView_source\feature_color=@Variant(\0\0\0\x43\x1\xff\xff\xff\xff\xff\xff\0\0\0\0)
imageView_source\features_shown=true
imageView_source\features_size=0
imageView_source\graphics_view=false
imageView_source\graphics_view_scale=true
imageView_source\graphics_view_scale_to_height=false
imageView_source\image_shown=true
imageView_source\lines_shown=true
imageView_source\lines_width=0
imageView_source\matching_feature_color=@Variant(\0\0\0\x43\x1\xff\xff\xff\xff\0\0\xff\xff\0\0)
imageView_source\matching_line_color=@Variant(\0\0\0\x43\x1\xff\xff\0\0\xff\xff\xff\xff\0\0)
multisession_imageview\alpha=100
multisession_imageview\bg_color=@Variant(\0\0\0\x43\x1\xff\xff\0\0\0\0\0\0\0\0)
multisession_imageview\colormap=2
multisession_imageview\colormap_camera_frame=true
multisession_imageview\colormap_max_range=@Variant(\0\0\0\x87\0\0\0\0)
multisession_imageview\colormap_min_range=@Variant(\0\0\0\x87\0\0\0\0)
multisession_imageview\confidence_shown=false
multisession_imageview\depth_shown=false
multisession_imageview\feature_color=@Variant(\0\0\0\x43\x1\xff\xff\xff\xff\xff\xff\0\0\0\0)
multisession_imageview\features_shown=true
multisession_imageview\features_size=0
multisession_imageview\graphics_view=false
multisession_imageview\graphics_view_scale=true
multisession_imageview\graphics_view_scale_to_height=false
multisession_imageview\image_shown=true
multisession_imageview\lines_shown=true
multisession_imageview\lines_width=0
multisession_imageview\matching_feature_color=@Variant(\0\0\0\x43\x1\xff\xff\xff\xff\0\0\xff\xff\0\0)
multisession_imageview\matching_line_color=@Variant(\0\0\0\x43\x1\xff\xff\0\0\xff\xff\xff\xff\0\0)
widget_cloudViewer\bg_color=@Variant(\0\0\0\x43\x1\xff\xff\0\0\0\0\0\0\0\0)
widget_cloudViewer\camera_axis_shown=true
widget_cloudViewer\camera_focal=@Variant(\0\0\0T6\0\0\0\x35\xc0\0\0\0\0\0\0)
widget_cloudViewer\camera_free=false
widget_cloudViewer\camera_lockZ=true
widget_cloudViewer\camera_pose=@Variant(\0\0\0T\xbf\xa5\x91p<W&\0>\xa0{X)
widget_cloudViewer\camera_target_follow=true
widget_cloudViewer\camera_target_locked=false
widget_cloudViewer\camera_up=@Variant(\0\0\0T\0\0\0\0\0\0\0\0?\x80\0\0)
widget_cloudViewer\color_range_inverted=0
widget_cloudViewer\color_range_max=0
widget_cloudViewer\color_range_min=0
widget_cloudViewer\coordinate_frame_scale=1
widget_cloudViewer\frustum_color=@Variant(\0\0\0\x43\x1\xff\xff\xa0\xa0\xa0\xa0\xa4\xa4\0\0)
widget_cloudViewer\frustum_scale=@Variant(\0\0\0\x87?\0\0\0)
widget_cloudViewer\frustum_shown=false
widget_cloudViewer\grid=false
widget_cloudViewer\grid_cell_count=50
widget_cloudViewer\grid_cell_size=1
widget_cloudViewer\intensity_max=100
widget_cloudViewer\intensity_rainbow_colormap=false
widget_cloudViewer\intensity_red_colormap=true
widget_cloudViewer\normals=false
widget_cloudViewer\normals_scale=0.20000000298023224
widget_cloudViewer\normals_step=1
widget_cloudViewer\rendering_rate=5
widget_cloudViewer\trajectory_shown=true
widget_cloudViewer\trajectory_size=100
+1 -1
View File
@@ -6,7 +6,7 @@ windowState=@ByteArray(\0\0\0\xff\0\0\0\0\xfd\0\0\0\x3\0\0\0\0\0\0\0\xda\0\0\x2'
1deviceId=0
2imageWidth=640
3imageHeight=480
4imageRate=0
4imageRate=30
5mediaPath=
6useTcpCamera=false
7IP=127.0.0.1
@@ -1,7 +1,7 @@
# Requirements:
# find_object_2d package installed
# Download rosbag:
# * demo_find_object.db3: https://drive.google.com/file/d/1web54yQkxeGFr2UwOjKeoajGGDm0fZXT/view?usp=drive_link
# * demo_find_object_bag.zip: https://github.com/introlab/rtabmap_ros/releases/download/0.23.13/demo_find_object_bag.zip
#
# Example:
#
@@ -9,7 +9,7 @@
# $ ros2 launch rtabmap_demos find_object_demo.launch.py
#
# Rosbag:
# $ ros2 bag play demo_find_object.db3 --clock
# $ ros2 bag play demo_find_object_bag --clock
#
from launch import LaunchDescription
@@ -38,6 +38,15 @@ def generate_launch_description():
'RGBD/NeighborLinkRefining': 'true', # Do odometry correction with consecutive laser scans
'Reg/Strategy': '1', # 0=Visual, 1=ICP, 2=Visual+ICP
'Reg/Force3DoF': 'true', # 2D SLAM
# The objects find_object_2d detects become landmarks (see find_object_to_landmarks.py,
# which sets their covariance from these, as rtabmap does for its own markers).
# Range and bearing only (GTSAM): the objects' orientation is the least reliable
# part of find_object_2d's estimate. Linear: the range variance (m^2), angular:
# the bearing variance (rad^2).
'Marker/VarianceLinear': '0.001',
'Marker/VarianceAngular': '0.01',
'Marker/VarianceOrientationIgnored': 'true',
'Optimizer/Strategy': '2', # GTSAM
}
remappings=[
@@ -63,6 +72,7 @@ def generate_launch_description():
# Launch arguments
DeclareLaunchArgument('rtabmap_viz', default_value='false', description='Launch RTAB-Map UI (optional).'),
DeclareLaunchArgument('rviz', default_value='true', description='Launch RVIZ (optional).'),
DeclareLaunchArgument('find_object_gui', default_value='true', description='Show the Find-Object window (false: headless).'),
DeclareLaunchArgument('localization', default_value='false', description='Launch in localization mode.'),
DeclareLaunchArgument('rviz_cfg', default_value=config_rviz, description='Configuration path of rviz2.'),
@@ -73,12 +83,16 @@ def generate_launch_description():
# Uncompress images for find_object
Node(
package='image_transport', executable='republish', name='republish_rgb', output='screen',
# The transports: as arguments up to humble, as parameters from jazzy.
arguments=['compressed', 'raw'],
parameters=[{'in_transport': 'compressed', 'out_transport': 'raw'}],
remappings=[('in/compressed', '/camera/data_throttled_image/compressed'),
('out', '/camera/data_throttled_image')]),
Node(
package='image_transport', executable='republish', name='republish_depth', output='screen',
# The transports: as arguments up to humble, as parameters from jazzy.
arguments=['compressedDepth', 'raw'],
parameters=[{'in_transport': 'compressedDepth', 'out_transport': 'raw'}],
remappings=[('in/compressedDepth', '/camera/data_throttled_image_depth/compressedDepth'),
('out', '/camera/data_throttled_image_depth')]),
@@ -119,11 +133,15 @@ def generate_launch_description():
# Find-Object
Node(
package='find_object_2d', executable='find_object_2d', output='screen',
parameters=[{'gui': True,
parameters=[{'gui': LaunchConfiguration('find_object_gui'),
'subscribe_depth': True,
'settings_path': config_find_object,
'objects_path': data_find_object}],
remappings=[('rgb/image_rect_color', '/camera/data_throttled_image'),
('depth_registered/image_raw', '/camera/data_throttled_image_depth'),
('depth_registered/camera_info', '/camera/data_throttled_camera_info')]),
# Its detections as landmarks for rtabmap (landmark_detections)
Node(
package='rtabmap_demos', executable='find_object_to_landmarks.py', output='screen',
parameters=[parameters]),
])
@@ -87,6 +87,10 @@ def generate_launch_description():
'robot_ns', default_value='a200_0000',
description='Robot namespace.'),
DeclareLaunchArgument(
'rtabmap_viz', default_value='true', choices=['true', 'false'],
description='Start rtabmap_viz.'),
# Nodes to launch
Node(
package='rtabmap_sync', executable='rgbd_sync', output='screen',
@@ -121,6 +125,7 @@ def generate_launch_description():
remappings=remappings),
Node(
condition=IfCondition(LaunchConfiguration('rtabmap_viz')),
package='rtabmap_viz', executable='rtabmap_viz', output='screen',
namespace=robot_ns,
parameters=[rtabmap_parameters, shared_parameters,
@@ -100,6 +100,10 @@ def generate_launch_description():
'robot_ns', default_value='a200_0000',
description='Robot namespace.'),
DeclareLaunchArgument(
'rtabmap_viz', default_value='true', choices=['true', 'false'],
description='Start rtabmap_viz.'),
DeclareLaunchArgument(
'use_camera', default_value='true',
description='Use camera for global loop closure / re-localization.'),
@@ -139,6 +143,7 @@ def generate_launch_description():
remappings=remappings),
Node(
condition=IfCondition(LaunchConfiguration('rtabmap_viz')),
package='rtabmap_viz', executable='rtabmap_viz', output='screen',
namespace=robot_ns,
parameters=[rtabmap_parameters, shared_parameters,
@@ -25,6 +25,7 @@
from launch import LaunchDescription
from launch.actions import DeclareLaunchArgument
from launch.substitutions import LaunchConfiguration
from launch.conditions import IfCondition
from launch_ros.actions import Node
@@ -97,6 +98,10 @@ def generate_launch_description():
'robot_ns', default_value='a200_0000',
description='Robot namespace.'),
DeclareLaunchArgument(
'rtabmap_viz', default_value='true', choices=['true', 'false'],
description='Start rtabmap_viz.'),
# Nodes to launch
Node(
package='rtabmap_sync', executable='rgbd_sync', output='screen',
@@ -127,6 +132,7 @@ def generate_launch_description():
arguments=['-d']),
Node(
condition=IfCondition(LaunchConfiguration('rtabmap_viz')),
package='rtabmap_viz', executable='rtabmap_viz', output='screen',
namespace=robot_ns,
parameters=[rtabmap_parameters, shared_parameters,
@@ -1,10 +1,10 @@
# Requirements:
# Download one or more rosbags:
# * map1.db3: https://drive.google.com/file/d/1XajzWm0u1Tk7m7x63ybcKVMXj80r5P6r/view?usp=drive_link
# * map2.db3: https://drive.google.com/file/d/1_FxEalE2O-DQKq2tRpLIpDn5Mbvu0jZc/view?usp=drive_link
# * map3.db3: https://drive.google.com/file/d/1dJzMOoRPA28gQZUIWCeAa08Qn4wG9oRw/view?usp=drive_link
# * map4.db3: https://drive.google.com/file/d/19Y6yye0ndIIwdhEWMwTdoiSy9WlKS44c/view?usp=drive_link
# * map5.db3: https://drive.google.com/file/d/1zCx4Q4SftPplQtW1xeG-W3OkbTxwd5GD/view?usp=drive_link
# * map1_bag.zip: https://github.com/introlab/rtabmap_ros/releases/download/0.23.13/map1_bag.zip
# * map2_bag.zip: https://github.com/introlab/rtabmap_ros/releases/download/0.23.13/map2_bag.zip
# * map3_bag.zip: https://github.com/introlab/rtabmap_ros/releases/download/0.23.13/map3_bag.zip
# * map4_bag.zip: https://github.com/introlab/rtabmap_ros/releases/download/0.23.13/map4_bag.zip
# * map5_bag.zip: https://github.com/introlab/rtabmap_ros/releases/download/0.23.13/map5_bag.zip
#
# Example:
#
@@ -13,12 +13,12 @@
# $ ros2 launch rtabmap_demos multisession_mapping_demo.launch.py
#
# Rosbag:
# $ ros2 bag play map1.db3 --clock
# $ ros2 bag play map1_bag --clock
# when done, you can play the next bag(s):
# $ ros2 bag play map2.db3 --clock
# $ ros2 bag play map3.db3 --clock
# $ ros2 bag play map4.db3 --clock
# $ ros2 bag play map5.db3 --clock
# $ ros2 bag play map2_bag --clock
# $ ros2 bag play map3_bag --clock
# $ ros2 bag play map4_bag --clock
# $ ros2 bag play map5_bag --clock
#
# Refer to this paper for more info: https://arxiv.org/abs/2407.15305
#
@@ -0,0 +1,151 @@
# Description:
# 3D lidar SLAM with an Ouster OS1-32 turning on a motorized mast (a dynamixel
# joint), carried by a drone frame. The mast rotation sweeps the lidar's 32 beams
# over the whole sphere, but it also moves the lidar by a few degrees during each
# sweep: scans are deskewed point by point with TF, using the IMU orientation for
# the base and the joint states for the mast. This is rtabmap_examples'
# lidar3d_assemble.launch.py, set up for the bag: scans are assembled over half a
# turn of the mast, so each node of the map holds a full sphere.
#
# Note: the camera's rotation relative to the lidar (box_link -> camera_link in the
# bags' TF) was calibrated with rtabmap's rtabmap-lidarCameraCalibration tool; its
# translation is as measured.
#
# Requirements:
# Download one or more rosbags, the consecutive minutes of the same run:
# * netherdrone_ouster_vertige_bag_0.zip: https://github.com/introlab/rtabmap_ros/releases/download/0.23.13/netherdrone_ouster_vertige_bag_0.zip
# * netherdrone_ouster_vertige_bag_1.zip: https://github.com/introlab/rtabmap_ros/releases/download/0.23.13/netherdrone_ouster_vertige_bag_1.zip
# * netherdrone_ouster_vertige_bag_2.zip: https://github.com/introlab/rtabmap_ros/releases/download/0.23.13/netherdrone_ouster_vertige_bag_2.zip
# * netherdrone_ouster_vertige_bag_3.zip: https://github.com/introlab/rtabmap_ros/releases/download/0.23.13/netherdrone_ouster_vertige_bag_3.zip
# * netherdrone_ouster_vertige_bag_4.zip: https://github.com/introlab/rtabmap_ros/releases/download/0.23.13/netherdrone_ouster_vertige_bag_4.zip
# * netherdrone_ouster_vertige_bag_5.zip: https://github.com/introlab/rtabmap_ros/releases/download/0.23.13/netherdrone_ouster_vertige_bag_5.zip
#
# Example:
#
# SLAM:
# $ ros2 launch rtabmap_demos netherdrone_lidar3d_demo.launch.py
#
# Rosbag:
# $ ros2 bag play netherdrone_ouster_vertige_bag_0 --clock
# or, to play the bags one after the other:
# $ ros2 bag play netherdrone_ouster_vertige_bag_0 --clock && \
# ros2 bag play netherdrone_ouster_vertige_bag_1 --clock && \
# ros2 bag play netherdrone_ouster_vertige_bag_2 --clock && \
# ros2 bag play netherdrone_ouster_vertige_bag_3 --clock && \
# ros2 bag play netherdrone_ouster_vertige_bag_4 --clock && \
# ros2 bag play netherdrone_ouster_vertige_bag_5 --clock
#
import os
from ament_index_python.packages import get_package_share_directory
from launch import LaunchDescription
from launch.actions import DeclareLaunchArgument, IncludeLaunchDescription
from launch.conditions import IfCondition
from launch.launch_description_sources import PythonLaunchDescriptionSource
from launch.substitutions import LaunchConfiguration, PythonExpression
from launch_ros.actions import Node
def generate_launch_description():
lidar3d_assemble_launch = os.path.join(
get_package_share_directory('rtabmap_examples'), 'launch', 'lidar3d_assemble.launch.py')
config_rviz = os.path.join(
get_package_share_directory('rtabmap_demos'), 'config', 'demo_lidar3d.rviz')
config_rtabmap_viz = os.path.join(
get_package_share_directory('rtabmap_demos'), 'config', 'demo_lidar3d_gui.ini')
camera = LaunchConfiguration('camera')
rgbd_image_topic = PythonExpression(
["'/camera/rgbd_image' if '", camera, "'.lower() == 'true' else ''"])
return LaunchDescription([
# Launch arguments
DeclareLaunchArgument('rtabmap_viz', default_value='true', description='Launch RTAB-Map UI (optional).'),
DeclareLaunchArgument('rtabmap_viz_cfg', default_value=config_rtabmap_viz, description='Configuration path of rtabmap_viz.'),
DeclareLaunchArgument('rviz', default_value='true', description='Launch RVIZ (optional).'),
DeclareLaunchArgument('rviz_cfg', default_value=config_rviz, description='Configuration path of rviz2.'),
DeclareLaunchArgument('localization', default_value='false', description='Launch in localization mode.'),
DeclareLaunchArgument('voxel_size', default_value='0.3',
description='Voxel size (m) of the downsampled lidar point cloud. In this bag, the median range is 5-7 m and the farthest points are ~23 m.'),
DeclareLaunchArgument('camera', default_value='true',
description='Add the camera images to the map, with a depth made from the lidar, for visual loop closure detection (bag-of-words). Registration stays lidar only.'),
DeclareLaunchArgument('lidar_range_min', default_value='0.84',
description='Lidar points closer than this (m) are ignored. About 6% of each scan hits the drone itself, all within 0.6 m; the surroundings start at ~0.9 m.'),
DeclareLaunchArgument('assembler_voxel_size', default_value='0.05',
description='Voxel size (m) of the assembled clouds added to the map; 0 keeps every point (larger database, e.g., for camera-lidar calibration).'),
DeclareLaunchArgument('assembling_time', default_value='4.3',
description='How long (s) scans are assembled before being added to the map. The mast turns at 42 deg/s: 4.3 s is half a turn, in which the lidar\'s scanning plane sweeps the whole sphere.'),
DeclareLaunchArgument('intermediate_nodes', default_value='false',
description='Also save every odometry pose (10 Hz) between the map\'s nodes in the database.'),
IncludeLaunchDescription(
PythonLaunchDescriptionSource(lidar3d_assemble_launch),
launch_arguments={
'use_sim_time': 'true',
'frame_id': 'base_link',
'lidar_topic': '/os_cloud_node/points',
# The fixed frame for deskewing (base_link_stabilized) is made from its
# orientation.
'imu_topic': '/imu/data_filtered',
'voxel_size': LaunchConfiguration('voxel_size'),
'max_correspondence_distance': '1.0',
'icp_outlier_ratio': '0.3',
'odom_key_frame_threshold': '0.9',
'min_loop_closure_overlap': '0.1',
'odom_local_map_size': '20000',
'assembler_voxel_size': LaunchConfiguration('assembler_voxel_size'),
'rgbd_image_topic': rgbd_image_topic,
# The images are raw (k1=-0.34): rectify them, so that the lidar projected
# into them as their depth (gen_depth) lines up.
'rectify_images': 'true',
'gen_depth': camera,
'lidar_range_min': LaunchConfiguration('lidar_range_min'),
'expected_update_rate': '15.0', # the Ouster runs at 10 Hz
'assembling_time': LaunchConfiguration('assembling_time'),
# Look TF up at every point's own time ("t" field) rather than
# interpolating between the first and last points of the sweep: exact,
# for more TF lookups.
'deskewing_slerp': 'false',
'rtabmap_viz': LaunchConfiguration('rtabmap_viz'),
'rtabmap_viz_cfg': LaunchConfiguration('rtabmap_viz_cfg'),
'localization': LaunchConfiguration('localization'),
'intermediate_nodes': LaunchConfiguration('intermediate_nodes'),
}.items()),
# Camera image and calibration, together in one topic for rtabmap. Both have
# the same stamps. The camera has no depth: rtabmap makes it from the lidar.
Node(
condition=IfCondition(camera),
package='rtabmap_sync', executable='rgb_sync', output='screen',
parameters=[{
'use_sim_time': True,
'approx_sync': False,
'image_transport': 'compressed'}],
remappings=[('rgb/image', '/camera/image_raw'),
('rgb/camera_info', '/camera/camera_info'),
('rgbd_image', '/camera/rgbd_image')]),
# Orientation from the gyro and accelerometer of /imu/data_raw. Its own
# orientation (despite the name, it has one) is off from the accelerometer by a
# constant ~2 deg in roll and ~4 deg in pitch, so it is not used.
Node(
package='imu_complementary_filter', executable='complementary_filter_node', output='screen',
parameters=[{
'use_sim_time': True,
'use_mag': False,
'publish_tf': False,
'do_bias_estimation': True,
'do_adaptive_gain': True}],
remappings=[('imu/data_raw', '/imu/data_raw'),
('imu/data', '/imu/data_filtered')]),
Node(
package='rviz2', executable='rviz2', name='rviz2', output='screen',
condition=IfCondition(LaunchConfiguration('rviz')),
parameters=[{'use_sim_time': True}],
arguments=['-d', LaunchConfiguration('rviz_cfg')]),
])
@@ -1,6 +1,6 @@
# Requirements:
# Download rosbag:
# * demo_mapping.db3: https://drive.google.com/file/d/1v9qJ2U7GlYhqBJr7OQHWbDSCfgiVaLWb/view?usp=drive_link
# * demo_mapping_bag.zip: https://github.com/introlab/rtabmap_ros/releases/download/0.23.13/demo_mapping_bag.zip
#
# Example:
#
@@ -8,7 +8,7 @@
# $ ros2 launch rtabmap_demos robot_mapping_demo.launch.py rviz:=true rtabmap_viz:=true
#
# Rosbag:
# $ ros2 bag play demo_mapping.db3 --clock
# $ ros2 bag play demo_mapping_bag --clock
#
from launch import LaunchDescription
@@ -43,11 +43,11 @@ def generate_launch_description():
'RGBD/OptimizeFromGraphEnd': 'false', # Optimize graph from initial node so /map -> /odom transform will be generated
'RGBD/OptimizeMaxError': '4', # Reject any loop closure causing large errors (>3x link's covariance) in the map
'Reg/Force3DoF': 'true', # 2D SLAM
'Grid/FromDepth': 'false', # Create 2D occupancy grid from laser scan
'Grid/Sensor': '0', # Create 2D occupancy grid from laser scan
'Mem/STMSize': '30', # increased to 30 to avoid adding too many loop closures on just seen locations
'RGBD/LocalRadius': '5', # limit length of proximity detections
'Icp/CorrespondenceRatio': '0.2', # minimum scan overlap to accept loop closure
'Icp/PM': 'false',
'Icp/Strategy': '0', # 0=PCL, 1=libpointmatcher
'Icp/PointToPlane': 'false',
'Icp/MaxCorrespondenceDistance': '0.15',
'Icp/VoxelSize': '0.05'
@@ -1,7 +1,7 @@
# Requirements:
# Download one or both rosbags:
# * stereo_outdoorA.db3: https://drive.google.com/file/d/1O7mCXg_sw4tZY1S88a-n96O6OulmqvqI/view?usp=drive_link
# * stereo_outdoorB.db3: https://drive.google.com/file/d/1mSu7418Fkbe-hIz2-3Mi936PrWuD2un_/view?usp=drive_link
# * stereo_outdoorA_bag.zip: https://github.com/introlab/rtabmap_ros/releases/download/0.23.13/stereo_outdoorA_bag.zip
# * stereo_outdoorB_bag.zip: https://github.com/introlab/rtabmap_ros/releases/download/0.23.13/stereo_outdoorB_bag.zip
#
# Example:
#
@@ -9,9 +9,9 @@
# $ ros2 launch rtabmap_demos stereo_outdoor_demo.launch.py rviz:=true rtabmap_viz:=true
#
# Rosbag:
# $ ros2 bag play stereo_outdoorA.db3 --clock
# $ ros2 bag play stereo_outdoorA_bag --clock
# when done, you can play the secon bag:
# $ ros2 bag play stereo_outdoorB.db3 --clock
# $ ros2 bag play stereo_outdoorB_bag --clock
#
from launch import LaunchDescription
@@ -44,6 +44,7 @@ def generate_launch_description():
'OdomF2M/MaxSize': '1000',
'GFTT/MinDistance': '10',
'GFTT/QualityLevel': '0.00001',
'Optimizer/Iterations': '30', # With g2o (rtabmap built without GTSAM), Levenberg-Marquardt needs ~25 iterations to converge on this graph
#'Kp/DetectorStrategy': '6', # Uncommment to match ros1 noetic results, but opencv should be built with xfeatures2d
#'Vis/FeatureType': '6' # Uncommment to match ros1 noetic results, but opencv should be built with xfeatures2d
}
@@ -72,13 +73,17 @@ def generate_launch_description():
Node(
package='image_transport', executable='republish', name='republish_left', output='screen',
namespace='stereo_camera',
# The transports: as arguments up to humble, as parameters from jazzy.
arguments=['compressed', 'raw'],
parameters=[{'in_transport': 'compressed', 'out_transport': 'raw'}],
remappings=[('in/compressed', 'left/image_raw_throttle/compressed'),
('out', 'left/image_raw')]),
Node(
package='image_transport', executable='republish', name='republish_right', output='screen',
namespace='stereo_camera',
# The transports: as arguments up to humble, as parameters from jazzy.
arguments=['compressed', 'raw'],
parameters=[{'in_transport': 'compressed', 'out_transport': 'raw'}],
remappings=[('in/compressed', 'right/image_raw_throttle/compressed'),
('out', 'right/image_raw')]),
@@ -1,7 +1,7 @@
# Requirements:
# Download one or both rosbags:
# * stereo_outdoorA.db3: https://drive.google.com/file/d/1O7mCXg_sw4tZY1S88a-n96O6OulmqvqI/view?usp=drive_link
# * stereo_outdoorB.db3: https://drive.google.com/file/d/1mSu7418Fkbe-hIz2-3Mi936PrWuD2un_/view?usp=drive_link
# * stereo_outdoorA_bag.zip: https://github.com/introlab/rtabmap_ros/releases/download/0.23.13/stereo_outdoorA_bag.zip
# * stereo_outdoorB_bag.zip: https://github.com/introlab/rtabmap_ros/releases/download/0.23.13/stereo_outdoorB_bag.zip
#
# This is the "composition" variant of stereo_outdoor_demo.launch.py: the whole
# pipeline (image_proc rectification, stereo synchronization, visual odometry
@@ -16,9 +16,9 @@
# $ ros2 launch rtabmap_demos stereo_outdoor_demo_composition.launch.py rviz:=true rtabmap_viz:=true
#
# Rosbag:
# $ ros2 bag play stereo_outdoorA.db3 --clock
# $ ros2 bag play stereo_outdoorA_bag --clock
# when done, you can play the secon bag:
# $ ros2 bag play stereo_outdoorB.db3 --clock
# $ ros2 bag play stereo_outdoorB_bag --clock
#
from launch import LaunchDescription
@@ -123,13 +123,17 @@ def generate_launch_description():
Node(
package='image_transport', executable='republish', name='republish_left', output='screen',
namespace='stereo_camera',
# The transports: as arguments up to humble, as parameters from jazzy.
arguments=['compressed', 'raw'],
parameters=[{'in_transport': 'compressed', 'out_transport': 'raw'}],
remappings=[('in/compressed', 'left/image_raw_throttle/compressed'),
('out', 'left/image_raw')]),
Node(
package='image_transport', executable='republish', name='republish_right', output='screen',
namespace='stereo_camera',
# The transports: as arguments up to humble, as parameters from jazzy.
arguments=['compressed', 'raw'],
parameters=[{'in_transport': 'compressed', 'out_transport': 'raw'}],
remappings=[('in/compressed', 'right/image_raw_throttle/compressed'),
('out', 'right/image_raw')]),
+22
View File
@@ -18,6 +18,28 @@
<exec_depend>rtabmap_rviz_plugins</exec_depend>
<exec_depend>rtabmap_viz</exec_depend>
<exec_depend>nav2_bringup</exec_depend>
<exec_depend>rtabmap_examples</exec_depend>
<exec_depend>imu_complementary_filter</exec_depend>
<exec_depend>find_object_2d</exec_depend>
<!-- scripts/find_object_to_landmarks.py -->
<exec_depend>rclpy</exec_depend>
<exec_depend>tf2_ros_py</exec_depend>
<exec_depend>rtabmap_msgs</exec_depend>
<test_depend>ament_cmake_pytest</test_depend>
<test_depend>ament_index_python</test_depend>
<test_depend>rtabmap_launch</test_depend>
<test_depend>launch</test_depend>
<test_depend>launch_ros</test_depend>
<test_depend>python3-pytest</test_depend>
<test_depend>python3-yaml</test_depend>
<test_depend>python3-numpy</test_depend>
<test_depend>python3-scipy</test_depend>
<test_depend>rclpy</test_depend>
<test_depend>rosbag2_py</test_depend>
<test_depend>rosgraph_msgs</test_depend>
<test_depend>rosidl_runtime_py</test_depend>
<test_depend>rtabmap_msgs</test_depend>
<export>
<build_type>ament_cmake</build_type>
+145
View File
@@ -0,0 +1,145 @@
#!/usr/bin/env python3
"""
Republish find_object_2d's detections as landmark detections for rtabmap.
find_object_2d publishes which objects it detected on `objectsStamped`, with their
homography in the image only; their 3D pose, when the depth allows it, goes on TF only,
as a frame <object_prefix>_<id> relative to the camera. For each detected object, this
node looks that frame up at the detection's stamp and publishes it on
`landmark_detections` (rtabmap_msgs/LandmarkDetections), with the object's id as the
landmark's id. An object detected twice in the same image is used once.
Covariance: rtabmap's Marker/* parameters apply only to the markers it detects itself,
a landmark detection is used with the covariance it carries. This node sets it from the
same parameters, as rtabmap does for its own markers, so that both can be given the same
values:
Marker/VarianceLinear linear variance (m^2), or with the orientation
ignored and GTSAM, the range variance (9999: bearing
only)
Marker/VarianceAngular angular variance (rad^2), or with the orientation
ignored and GTSAM, the bearing variance
Marker/VarianceOrientationIgnored ignore the object's orientation, only its position
(g2o) or its range and bearing (GTSAM) constrain the
map
Optimizer/Strategy rtabmap's optimizer: 2 is GTSAM. Needed with the
orientation ignored, set it to rtabmap's.
Reg/Force3DoF rtabmap's, for the 2D range and bearing layout
"""
import signal
import rclpy
from find_object_2d.msg import ObjectsStamped
from rclpy.duration import Duration
from rclpy.node import Node
from rclpy.time import Time
from rtabmap_msgs.msg import LandmarkDetection, LandmarkDetections
from tf2_ros import Buffer, TransformException, TransformListener
# objectsStamped's objects.data: for each object, its id, width, height and 3x3 homography.
VALUES_PER_OBJECT = 12
IGNORED = 9999.0 # a variance this large disables that part of the constraint
def _bool(value: str) -> bool:
return str(value).strip().lower() == 'true'
class FindObjectToLandmarks(Node):
def __init__(self):
super().__init__('find_object_to_landmarks')
self.object_prefix = self.declare_parameter('object_prefix', 'object').value
self.wait_for_transform = self.declare_parameter('wait_for_transform', 0.2).value
# As rtabmap's parameters: strings.
linear = float(self.declare_parameter('Marker/VarianceLinear', '0.001').value)
angular = float(self.declare_parameter('Marker/VarianceAngular', '0.01').value)
orientation_ignored = _bool(
self.declare_parameter('Marker/VarianceOrientationIgnored', 'false').value)
strategy = self.declare_parameter('Optimizer/Strategy', '').value
force_3dof = _bool(self.declare_parameter('Reg/Force3DoF', 'false').value)
if orientation_ignored and not strategy:
self.get_logger().warn(
'Marker/VarianceOrientationIgnored is true but Optimizer/Strategy is not set: '
'assuming it is not GTSAM. Set it to rtabmap\'s.')
self.covariance = self._covariance(
linear, angular, orientation_ignored, strategy == '2', force_3dof)
self.get_logger().info(
f'object_prefix={self.object_prefix}, covariance diagonal='
f'{[self.covariance[i * 7] for i in range(6)]}')
self.tf_buffer = Buffer()
# Its own thread: on_objects() waits for the object's frame.
self.tf_listener = TransformListener(self.tf_buffer, self, spin_thread=True)
self.publisher = self.create_publisher(LandmarkDetections, 'landmark_detections', 10)
self.create_subscription(ObjectsStamped, 'objectsStamped', self.on_objects, 10)
@staticmethod
def _covariance(linear, angular, orientation_ignored, gtsam, force_3dof):
"""The 6x6 covariance rtabmap gives its own markers (see Memory.cpp), row-major."""
diagonal = [linear] * 3 + [angular] * 3
if orientation_ignored:
diagonal = [linear] * 3 + [IGNORED] * 3
if gtsam and force_3dof:
# 2D bearing and range: x is the bearing, y the range (see OptimizerGTSAM).
diagonal[0:3] = [angular, linear, 1.0]
elif gtsam:
# 3D bearing and range: x and y are the bearing, z the range.
diagonal[0:3] = [angular, angular, linear]
covariance = [0.0] * 36
for i, value in enumerate(diagonal):
covariance[i * 7] = value
return covariance
def on_objects(self, msg: ObjectsStamped):
detections = LandmarkDetections()
detections.header = msg.header
data = msg.objects.data
used = set()
for i in range(0, len(data) - VALUES_PER_OBJECT + 1, VALUES_PER_OBJECT):
object_id = int(data[i])
if object_id <= 0 or object_id in used:
continue
used.add(object_id)
frame = f'{self.object_prefix}_{object_id}'
try:
transform = self.tf_buffer.lookup_transform(
msg.header.frame_id, frame, Time.from_msg(msg.header.stamp),
Duration(seconds=self.wait_for_transform))
except TransformException as e:
# find_object_2d publishes no frame for an object without valid depth.
self.get_logger().debug(f'object {object_id} skipped: {e}')
continue
landmark = LandmarkDetection()
landmark.header = msg.header
landmark.landmark_frame_id = frame
landmark.id = object_id
t, r = transform.transform.translation, transform.transform.rotation
pose = landmark.pose.pose
pose.position.x, pose.position.y, pose.position.z = t.x, t.y, t.z
pose.orientation = r
landmark.pose.covariance = self.covariance
detections.landmarks.append(landmark)
if detections.landmarks:
self.publisher.publish(detections)
def main():
rclpy.init()
node = FindObjectToLandmarks()
try:
rclpy.spin(node)
except KeyboardInterrupt:
pass
finally:
# A second Ctrl-C (one from the terminal, one from ros2 launch) would interrupt
# the cleanup.
signal.signal(signal.SIGINT, signal.SIG_IGN)
# Its thread before rclpy: torn down after, it raises at exit.
node.tf_listener.unregister()
node.destroy_node()
rclpy.try_shutdown()
if __name__ == '__main__':
main()
+207
View File
@@ -0,0 +1,207 @@
# Demo playback tests
`test_demo_playback.py` replays a demo's bag through the demo's own launch file and compares the graph rtabmap builds with a golden one, saved in [golden/](golden/). It checks that a change anywhere in the pipeline (a node, a launch file, rtabmap itself) still produces the same map.
| Scenario | Launch file | Bag |
|---|---|---|
| `robot_mapping` | `robot_mapping_demo.launch.py` | `demo_mapping_bag` |
| `stereo_outdoor` | `stereo_outdoor_demo.launch.py` | `stereo_outdoorA_bag` then `stereo_outdoorB_bag` |
| `netherdrone_lidar3d` | `netherdrone_lidar3d_demo.launch.py` | `netherdrone_ouster_vertige_bag_0` to `_5`, played one after the other |
| `find_object` | `find_object_demo.launch.py` | `demo_find_object_bag` (skipped without `find_object_2d`, which Lyrical and Rolling do not have) |
## Running
The bags are about 5 GB, so they are not in the repository. Fetch them once, into `test/data` (each bag is listed with its SHA-256 in [data/manifest.txt](data/manifest.txt)):
```bash
bash test/fetch_test_data.sh
```
Without them, the scenarios skip themselves. Then, from the workspace:
```bash
colcon test --packages-select rtabmap_demos --ctest-args -R test_demo_playback
```
Each scenario replays its bag in about real time on a desktop, longer on a slower machine. The test's CMake registration gives it its own DDS domain (`ROS_DOMAIN_ID=110`): when running `pytest` directly instead, set it yourself, or any other ROS node running on the machine will talk to the pipeline and spoil the run.
| Environment variable | Effect |
|---|---|
| `RTABMAP_DEMOS_TEST_DATA` | Where the bags are (default `test/data`). |
| `RTABMAP_DEMOS_TEST_RESULTS` | Where each run's database, graph and launch log are kept (default: a temporary directory). In CI, they are uploaded when the test fails. |
| `RTABMAP_DEMOS_UPDATE_GOLDEN=1` | Write the run's graph as the new golden one instead of comparing with it. |
## How a run works
1. The demo's launch file is started through a small generated launch file (`demo.launch.py` in the results folder), which includes the demo with the scenario's `launch_arguments` after `launch_ros`' `SetParametersFromFile`. Its parameter file (`demo.launch.yaml`) gives the node named `rtabmap` its database path and ground truth frames, and every node the scenario's `parameters`. So the demos need no launch argument for the test, and a node's own value for a parameter, set by its launch file, wins over the file's.
2. The bag is replayed in lockstep with the pipeline (see below), and the golden trajectory is published in TF beside it, as `golden_map` → `golden_base`. rtabmap is given these as its ground truth frames, so it computes the error of its map against the golden trajectory itself (the `Gt/*` statistics of `/info`).
3. Once the bag is done, the launch file is stopped as Ctrl-C would, so rtabmap closes its database. The graph is exported from the database with `rtabmap-export`, every node optimized.
4. The run is compared with the golden graph: node count, loop closures and path length within each scenario's tolerances, and rtabmap's translational and rotational RMSE against the golden trajectory under each scenario's limits.
## The lockstep player
`ros2 bag play` publishes at the bag's pace, whatever the nodes do. On a loaded machine, a node still busy with the previous frame drops the next one, and which frames get dropped changes from run to run. `bag_lockstep.py` instead publishes each sensor message only once the whole pipeline has finished with the previous one, so a slower machine only takes longer.
- **Gated topics:** the large messages something subscribes to, the ones the pipeline takes time to process: images (raw and compressed), point clouds and laser scans (`GATED_TYPES`). The other topics, IMU, camera info, odometry, TF, go out in the bag's order without waiting: before the next large message, the pipeline is idle again, so it has processed them. Topics nobody subscribes to are published in the bag's order as well.
- **Idle:** read from the kernel, not from the nodes. The player reads the state of every thread of every process started by `ros2 launch` (`/proc/<pid>/task/*/stat`): a thread with work to do is runnable, also while it waits for a CPU, and a node waiting for its next message has all its threads asleep. A node passing a message on wakes the next one before going back to sleep, so the pipeline only looks idle once its last stage is done. Idle means no runnable thread in 2 checks in a row, 2 ms apart.
- **Clock:** `/clock` is set to each gated message's stamp before it is published.
- **TF:** not gated, and sent ahead of the large messages: those are held back by 0.2 s, so the transforms a node needs for a frame are in its buffer when the frame arrives. The other ungated topics go out at their own stamps too, so 0.2 s ahead of them as well. The golden trajectory goes out the same way, with poses at most 0.25 s apart and 0.5 s ahead of their stamps.
- **Synchronous publishing:** the test sets `RMW_FASTRTPS_PUBLICATION_MODE=SYNCHRONOUS`, so that `publish()` sends the message before returning. Otherwise right after a `publish()` nothing has woken up yet, and the pipeline looks idle.
A sleeping thread looks idle even when work is still under way: a node waiting for a transform with a timeout, or a message still on its way to a subscriber. A message then goes out early, and waits in its subscriber's queue, so nothing is lost as long as every subscriber keeps what it receives:
- **Reliable subscriptions:** every QoS parameter of rtabmap's nodes is set to reliable (`RELIABLE_QOS` in `test_demo_playback.py`). Their default, the system's, is best effort with Fast DDS (the ROS 2 default), which drops a message arriving while the node is busy: a loaded CI runner lost up to two thirds of the lidar sweeps that way.
- **Every frame processed:** odometry with `always_process_most_recent_frame` on drops a frame arriving while it is busy. The scenarios set it off, and deepen the queues that need it (`parameters`, `node_parameters`).
`RTABMAP_DEMOS_REPLAY=chunked` replays without the idle check instead: at the bag's pace, 10 s at a time, waiting after each until rtabmap's `/info` has caught up (within each scenario's `chunk_slack`). It is as fast, but within a chunk a node slower than real time builds up a backlog: lockstep, the default, waits for it instead.
## Examples
Each diagram follows one frame of a scenario through its pipeline. "Wait until every thread is asleep" is the player's idle check, before each gated message; the other messages go out without it.
### `robot_mapping`: one camera frame
The bag holds a robot's laser scans, its camera's compressed color and depth images and camera info, and TF, which also carries the wheel odometry (`odom` → `base_footprint`). `rgbd_sync` uncompresses the images and pairs them, and `rtabmap` pairs that with the closest laser scan (approximate sync), takes the odometry from TF and maps, one update per second (`Rtabmap/DetectionRate`). The three gated topics are `/jn0/base_scan`, `data_throttled_image/compressed` and `data_throttled_image_depth/compressedDepth`; `data_throttled_camera_info` goes out without waiting. There are about five scans per camera frame:
```mermaid
sequenceDiagram
autonumber
participant P as Lockstep player
participant S as rgbd_sync
participant M as rtabmap
participant T as Test
Note over P: /tf of the next 0.2 s already sent (wheel odometry,<br/>robot frames), and the golden trajectory 0.5 s ahead
loop about five times per camera frame
P->>P: wait until every thread is asleep
P->>M: /clock, then /jn0/base_scan
Note over M: kept in its synchronizer's queue
end
P->>S: data_throttled_camera_info (no wait)
P->>P: wait until every thread is asleep
P->>S: data_throttled_image/compressed
P->>P: wait until every thread is asleep
P->>S: data_throttled_image_depth/compressedDepth
S->>M: rgbd_image (color, depth and camera info, uncompressed)
alt once a second (Rtabmap/DetectionRate)
M->>M: pair with the closest scan, odometry from odom → base_footprint,<br/>add a node, look for loop closures,<br/>its ground truth from golden_map → golden_base
M->>T: /info (statistics, Gt/* errors)
end
Note over P: everything asleep again:<br/>the next message can go
```
With `output_queue_size: 10` on `rgbd_sync`, an image it publishes is not replaced before rtabmap has received it.
### `stereo_outdoor`: one stereo frame
Each of the two bags holds the left and right compressed images and camera infos of a stereo camera, and TF. The demo uncompresses the images (`image_transport` `republish`), rectifies them (`stereo_image_proc`), pairs them (`stereo_sync`), computes visual odometry from them (`stereo_odometry`) and maps (`rtabmap`, one update per second, `Rtabmap/DetectionRate`). The two gated topics are the left and right `image_raw_throttle/compressed`; their `camera_info_throttle` go out without waiting. For one stereo frame:
```mermaid
sequenceDiagram
autonumber
participant P as Lockstep player
participant R as republish (left, right)
participant I as stereo_image_proc
participant S as stereo_sync
participant O as stereo_odometry
participant M as rtabmap
participant T as Test
Note over P: /tf of the next 0.2 s already sent,<br/>and the golden trajectory 0.5 s ahead
P->>S: left and right camera_info (no wait)
Note over S: waits for the images
P->>P: wait until every thread is asleep
P->>R: /clock, then left image_raw_throttle/compressed
R->>I: left/image_raw
I->>S: left/image_rect (debayered, rectified)
Note over S: waits for the right image
P->>P: wait until every thread is asleep
P->>R: right image_raw_throttle/compressed
R->>I: right/image_raw
I->>S: right/image_rect
S->>O: rgbd_image (left and right, exact sync)
S->>M: rgbd_image
O->>M: /vo (odom), and odom → base_footprint on /tf
alt once a second (Rtabmap/DetectionRate)
M->>M: add a node, look for loop closures,<br/>its ground truth from golden_map → golden_base
M->>T: /info (statistics, Gt/* errors)
end
Note over P: everything asleep again:<br/>the next frame can go
```
The pipeline is idle only once rtabmap is done with the frame, so the next frame is never published while any node is still working on this one. With `always_process_most_recent_frame: False`, odometry registers each frame in turn rather than skipping to the most recent, and with `output_queue_size: 10` on `stereo_sync`, a frame it publishes is not replaced before odometry and rtabmap have received it.
### `netherdrone_lidar3d`: one lidar sweep
The bag holds a drone's lidar sweeps (Ouster, 10 Hz), an IMU, its camera's compressed images and camera info, and TF (the sensors' mounting, the lidar's rotating mast). The demo includes `lidar3d_assemble.launch.py` from `rtabmap_examples`:
- `complementary_filter_node` filters the IMU into `/imu/data_filtered`, and `imu_to_tf` turns its orientation into TF, `base_link_stabilized` → `base_link`.
- `lidar_deskewing` corrects each sweep for the motion during it, from that TF, into `/os_cloud_node/points/deskewed`.
- `icp_odometry` registers each deskewed sweep (with the filtered IMU, and the stabilized frame as guess) into `/icp_odom`, and TF `icp_odom` → `base_link_stabilized`.
- `point_cloud_assembler` accumulates the deskewed sweeps over 4.3 s (half a turn of the mast) into `/assembled_cloud`.
- `rgb_sync` uncompresses the camera images into `/camera/rgbd_image`.
- `rtabmap` adds a node for each assembled cloud, with the camera image closest to it and a depth made from the lidar, and an intermediate node for each odometry pose in between (`intermediate_nodes:=true`).
The two gated topics are `/os_cloud_node/points` and `/camera/image_raw/compressed`; `/imu/data_raw` and `/camera/camera_info` go out without waiting. Between two sweeps, the bag holds about eight IMU messages and three camera frames:
```mermaid
sequenceDiagram
autonumber
participant P as Lockstep player
participant F as complementary_filter
participant U as imu_to_tf
participant C as rgb_sync
participant D as lidar_deskewing
participant O as icp_odometry
participant A as point_cloud_assembler
participant M as rtabmap
participant T as Test
Note over P: /tf of the next 0.2 s already sent (mounting, mast),<br/>and the golden trajectory 0.5 s ahead
loop about eight times per sweep
P->>F: /imu/data_raw (no wait)
F->>O: /imu/data_filtered
F->>U: /imu/data_filtered
U->>U: TF base_link_stabilized → base_link
end
loop about three times per sweep
P->>C: /camera/camera_info (no wait)
P->>P: wait until every thread is asleep
P->>C: /clock, then /camera/image_raw/compressed
C->>M: /camera/rgbd_image
Note over M: kept in its synchronizer's queue
end
P->>P: wait until every thread is asleep
P->>D: /clock, then /os_cloud_node/points
D->>D: TF over the sweep (base_link_stabilized)
D->>O: /os_cloud_node/points/deskewed
D->>A: /os_cloud_node/points/deskewed
O->>A: /icp_odom, and icp_odom → base_link_stabilized on /tf
O->>M: /icp_odom (kept for an intermediate node)
alt every 4.3 s, half a turn of the mast
A->>M: /assembled_cloud
M->>M: sync with /icp_odom and the closest camera image,<br/>add a node and the intermediate nodes since the last one,<br/>their ground truth from golden_map → golden_base
M->>T: /info (statistics, Gt/* errors)
end
Note over P: everything asleep again:<br/>the next message can go
```
The idle check before each sweep comes after the IMU messages before it: by then, the filter and `imu_to_tf` have processed them, and the transforms `lidar_deskewing` needs are there. Every sweep reaches odometry with reliable subscriptions throughout (a best-effort `lidar_deskewing` lost up to two thirds of them on CI), and `icp_odometry` registers each in turn (`always_process_most_recent_frame: False`, `topic_queue_size: 10`). The six bags of the flight are played one after the other, about 6 minutes of data.
## Golden graphs
[golden/](golden/) holds each scenario's graph (`.g2o`) and trajectory (`.tum`). The golden graphs are made on a developer's machine, and the rtabmap built there with all its optional dependencies: CI builds rtabmap differently, which changes how many frames rtabmap merges into the previous node, hence each scenario's tolerances. To regenerate one after a deliberate change to the pipeline:
```bash
RTABMAP_DEMOS_UPDATE_GOLDEN=1 ROS_DOMAIN_ID=110 python3 -m pytest -s test/test_demo_playback.py -k stereo
```
Then replay it once more without `RTABMAP_DEMOS_UPDATE_GOLDEN`, to check a run matches it, and commit the two files.
+496
View File
@@ -0,0 +1,496 @@
"""
Play a rosbag2 bag in lockstep with the nodes consuming it.
`ros2 bag play` publishes at the bag's pace whatever the consumers do; on a loaded
machine a node still busy with the previous frame drops the next one, and which
frames it drops changes from run to run. Here a sensor message is only published
once every process of the pipeline is idle again, so on a slower machine the replay
just takes longer, and each node sees every message it would on an idle one.
This needs every publisher of the pipeline, this player's included, to send the
message before publish() returns (RMW_FASTRTPS_PUBLICATION_MODE=SYNCHRONOUS with Fast
DDS, which otherwise sends large messages from a thread of its own; Cyclone DDS always
does). Else, right after a publish(), nothing has woken up yet and all looks idle.
"Idle" is read from the kernel, not from the nodes: a thread with work to do is
runnable (state R) -- also while it waits for a CPU, which is what makes this hold
under load -- and a node waiting for its next message has every thread sleeping. A
node passing a message on wakes the next one before going back to sleep, so a
pipeline is idle only once its last stage is done. That needs no knowledge of what
each node publishes, or of which frames the SLAM node keeps (those it skips because
of Rtabmap/DetectionRate publish nothing at all).
TF is not gated. It is published ahead of the sensor data by a lookahead, so a
transform interpolated at a frame's stamp -- or at the stamp of a lidar sweep's last
point, for deskewing -- is already in the listener's buffer when the frame arrives.
Transforms not in the bag can be added to its TF (add_trajectory), each sent a lead
time before its stamp: a ground truth trajectory for rtabmap, for instance.
"""
import collections
import heapq
import os
import time
from typing import Callable, Dict, List, Optional, Set, Tuple
import numpy as np
import rosbag2_py
import yaml
from geometry_msgs.msg import TransformStamped
from rclpy.node import Node
from rclpy.serialization import serialize_message
from rclpy.qos import DurabilityPolicy, HistoryPolicy, QoSProfile, ReliabilityPolicy
from rosgraph_msgs.msg import Clock
from rosidl_runtime_py.utilities import get_message
from scipy.spatial.transform import Rotation, Slerp
from tf2_msgs.msg import TFMessage
# Only the large messages, those the pipeline takes time to process, wait for it to be
# idle: images, point clouds and laser scans. The others (IMU, camera info, odometry,
# TF...) go out in the bag's order without waiting, and wait in their subscribers'
# queues if need be: before the next large one, the pipeline is idle again, so it has
# processed them all.
GATED_TYPES = ('sensor_msgs/msg/Image', 'sensor_msgs/msg/CompressedImage',
'sensor_msgs/msg/PointCloud2', 'sensor_msgs/msg/LaserScan')
def _recorded_transient_local(offered_qos_profiles) -> bool:
"""Whether a topic was recorded with a TRANSIENT_LOCAL publisher.
rosbag2_py gives the recorded profiles as YAML text (humble; the durability as a
number, 1, or a name, transient_local, depending on the bag's version), or as its own
QoS objects (lyrical), whose durability() only sets it: those are converted to rclpy's.
"""
profiles = offered_qos_profiles
if isinstance(profiles, str):
profiles = yaml.safe_load(profiles) if profiles.strip() else []
for profile in profiles or []:
if isinstance(profile, dict):
durability = profile.get('durability')
else:
if not isinstance(profile, QoSProfile) and hasattr(rosbag2_py, 'convert_rclcpp_qos_to_rclpy_qos'):
profile = rosbag2_py.convert_rclcpp_qos_to_rclpy_qos(profile)
durability = getattr(profile, 'durability', None)
if durability in (1, DurabilityPolicy.TRANSIENT_LOCAL) or str(durability).lower() in (
'transient_local', 'durabilitypolicy.transient_local'):
return True
return False
def _read_stat(path: str):
with open(path) as f:
stat = f.read()
# The command name is in parentheses and may itself hold spaces or parentheses.
name = stat[stat.index('(') + 1:stat.rindex(')')]
return name, stat[stat.rindex(')') + 2:].split()
def _read_next(reader):
"""The next message of @p reader: topic, serialized data and receive timestamp.
read_next_ext() (Lyrical and later) also returns the send timestamp; read_next(),
deprecated there, warns at each message.
"""
if hasattr(reader, 'read_next_ext'):
return reader.read_next_ext()[:3]
return reader.read_next()
class ProcessTree:
"""The processes started under a root process (the `ros2 launch` one)."""
def __init__(self, root_pid: int):
self.root_pid = root_pid
self._pids: List[int] = []
self._refreshed = 0.0
# Each thread's stat file, kept open: re-reading it (pread) is a fraction of the
# cost of opening it again, at each poll, for hundreds of threads.
self._stat_fds: Dict[Tuple[int, str], int] = {}
def pids(self) -> List[int]:
# Nodes start in the first seconds and component containers may spawn later;
# walking /proc is the expensive part, so it is not done on every poll.
if time.monotonic() - self._refreshed > 1.0:
children: Dict[int, List[int]] = {}
for entry in os.listdir('/proc'):
if entry.isdigit():
try:
_, fields = _read_stat(f'/proc/{entry}/stat')
except (OSError, ValueError):
continue
children.setdefault(int(fields[1]), []).append(int(entry))
pids, todo = [], [self.root_pid]
while todo:
for child in children.get(todo.pop(), []):
pids.append(child)
todo.append(child)
self._pids = pids
self._refreshed = time.monotonic()
return self._pids
def busy_threads(self) -> List[str]:
"""Threads of the tree's processes (not of the root) that have work to do."""
busy = []
alive = set()
for pid in self.pids():
try:
# Listed at every poll (cheap): a thread started since is watched at once.
tids = os.listdir(f'/proc/{pid}/task')
except OSError:
continue
for tid in tids:
key = (pid, tid)
alive.add(key)
fd = self._stat_fds.get(key)
try:
if fd is None:
fd = os.open(f'/proc/{pid}/task/{tid}/stat', os.O_RDONLY)
self._stat_fds[key] = fd
stat = os.pread(fd, 512, 0)
except OSError:
continue
# The state follows the command name, which is in parentheses and may
# itself hold spaces or parentheses.
end = stat.rfind(b')')
if end < 0 or end + 2 >= len(stat):
continue
state = chr(stat[end + 2])
# R: running or runnable. D: in an uninterruptible wait, writing the
# database for instance -- busy as well. S, I, T, Z: nothing to do.
if state in ('R', 'D'):
name = stat[stat.find(b'(') + 1:end].decode(errors='replace')
busy.append(f'{pid}/{name}:{state}')
for key in [k for k in self._stat_fds if k not in alive]:
os.close(self._stat_fds.pop(key))
return busy
def wait_idle(self, idle_polls: int = 2, period: float = 0.002, timeout: float = 300.0):
"""Wait until idle_polls polls in a row see no busy thread.
A single quiet poll is not enough: timers wake threads briefly, and a message
in flight between two nodes leaves a gap of a few microseconds where both
sleep. Two, a period apart, cover a few milliseconds; a longer gap seen as idle
only lets the next message out early, to wait in its subscriber's queue. Raises
TimeoutError, naming the busy threads, if never idle.
"""
deadline = time.monotonic() + timeout
quiet = 0
polls = 0
# How often each thread was seen busy: one that keeps waking up (a timer) can keep
# the pipeline from ever looking idle long enough, without being busy at the last
# poll.
seen = collections.Counter()
while quiet < idle_polls:
if time.monotonic() > deadline:
most = ', '.join(f'{name} ({count})' for name, count in seen.most_common(5))
raise TimeoutError(
f'never idle for {idle_polls} polls in a row after {timeout:.0f} s; '
f'busy most often, of {polls} polls: {most}')
busy = self.busy_threads()
polls += 1
seen.update(busy)
quiet = 0 if busy else quiet + 1
if quiet < idle_polls:
time.sleep(period)
class LockstepPlayer:
"""Publish a bag's messages, each sensor message once the pipeline is idle.
Several bags (a list) are played one after the other, as `ros2 bag play` of each in
turn would: the recordings of a session split in parts.
"""
def __init__(self, node: Node, bag_dir, tree: ProcessTree, lookahead: float = 0.2):
self.node = node
self.bag_dirs = [bag_dir] if isinstance(bag_dir, str) else list(bag_dir)
self.tree = tree
self.lookahead = lookahead
self.gated: Set[str] = set()
self._publishers = {}
self._types = {}
self._clock = node.create_publisher(Clock, '/clock', 10)
self._extra = [] # (release time, serialized TFMessage)
self._extra_tf = node.create_publisher(
TFMessage, '/tf', QoSProfile(depth=100, history=HistoryPolicy.KEEP_LAST,
reliability=ReliabilityPolicy.RELIABLE))
metas = {}
for bag in self.bag_dirs:
for meta in self._open(bag).get_all_topics_and_types():
metas.setdefault(meta.name, meta)
for meta in metas.values():
name = meta.name if meta.name.startswith('/') else '/' + meta.name
# Durability as recorded, as ros2 bag play does: a subscriber asking for
# TRANSIENT_LOCAL is not matched with a VOLATILE publisher (image_proc's, for
# camera info, with Fast DDS since lyrical). Always reliable, and deep, to
# lose nothing.
transient = name == '/tf_static' or _recorded_transient_local(meta.offered_qos_profiles)
qos = QoSProfile(depth=100, history=HistoryPolicy.KEEP_LAST,
reliability=ReliabilityPolicy.RELIABLE,
durability=(DurabilityPolicy.TRANSIENT_LOCAL if transient
else DurabilityPolicy.VOLATILE))
self._publishers[meta.name] = (
name, node.create_publisher(get_message(meta.type), name, qos))
self._types[meta.name] = meta.type
def add_trajectory(self, frame_id: str, child_frame_id: str, trajectory,
step: float = 0.25):
"""Publish (stamp, (x y z qx qy qz qw)) poses as frame_id -> child_frame_id.
The first and last poses are held to the bags' start and end, so that no lookup
falls outside of it: one would make the node wait for the transform, asleep,
looking idle. Poses are then added, interpolated as TF would (linearly, and by
slerp for the rotation), so that none are more than `step` seconds apart: TF
returns the same from them at any stamp.
TF interpolates between two samples, so a lookup at a stamp needs the sample after
it: each is sent 2 * step ahead of its stamp. A node may still look a stamp up
late (rtabmap, an intermediate node when the next node with data arrives) and a
TF buffer keeps 10 s: the trajectory's own gaps can be several seconds (a robot
standing still adds no nodes), and a lead covering them would leave it no slack.
"""
spans = []
for bag in self.bag_dirs:
metadata = self._open(bag).get_metadata()
begin = metadata.starting_time.nanoseconds / 1e9
spans.append((begin, begin + metadata.duration.nanoseconds / 1e9))
start, end = min(s for s, _ in spans), max(e for _, e in spans)
trajectory = sorted(trajectory)
if not trajectory:
return
trajectory = [(start, trajectory[0][1])] + trajectory + [(end, trajectory[-1][1])]
stamps = np.array([stamp for stamp, _ in trajectory])
poses = np.array([pose for _, pose in trajectory])
stamps, unique = np.unique(stamps, return_index=True)
poses = poses[unique]
dense = np.union1d(stamps, np.arange(stamps[0], stamps[-1], step))
xyz = np.stack([np.interp(dense, stamps, poses[:, k]) for k in range(3)], axis=1)
quaternions = Slerp(stamps, Rotation.from_quat(poses[:, 3:]))(dense).as_quat()
lead = 2 * step
for stamp, (x, y, z), (qx, qy, qz, qw) in zip(dense, xyz, quaternions):
ns = int(round(stamp * 1e9))
msg = TransformStamped()
msg.header.stamp = _to_time(ns)
msg.header.frame_id = frame_id
msg.child_frame_id = child_frame_id
t, r = msg.transform.translation, msg.transform.rotation
t.x, t.y, t.z, r.x, r.y, r.z, r.w = x, y, z, qx, qy, qz, qw
self._extra.append(
(ns - int(lead * 1e9), serialize_message(TFMessage(transforms=[msg]))))
@staticmethod
def _open(bag_dir: str):
reader = rosbag2_py.SequentialReader()
reader.open(rosbag2_py.StorageOptions(uri=bag_dir, storage_id='sqlite3'),
rosbag2_py.ConverterOptions('cdr', 'cdr'))
return reader
def connect(self, required: List[str], timeout: float = 60.0):
"""Wait for the pipeline to subscribe, then choose which topics to gate.
A reliable publisher still loses what it publishes before discovery has
matched it with a subscriber. Only topics something subscribes to are gated:
waiting after a message nobody reads would only slow the replay down.
"""
deadline = time.monotonic() + timeout
by_name = {name: pub for name, pub in self._publishers.values()}
for topic in required:
while by_name[topic].get_subscription_count() == 0:
if time.monotonic() > deadline:
raise TimeoutError(f'nothing subscribed to {topic} after {timeout:.0f} s')
time.sleep(0.1)
# Subscribers to the other topics are created by the same nodes, in the same
# constructors; leave discovery a moment to catch up with them too.
time.sleep(2.0)
def wait_matched(name, publisher):
while publisher.get_subscription_count() < self.node.count_subscribers(name):
if time.monotonic() > deadline:
# Usually a subscriber asking for a QoS this publisher cannot offer.
subscribers = '\n'.join(
f' {info.node_namespace.rstrip("/")}/{info.node_name}: '
f'{info.qos_profile.reliability.name}, '
f'{info.qos_profile.durability.name}, '
f'{info.qos_profile.history.name} {info.qos_profile.depth}'
for info in self.node.get_subscriptions_info_by_topic(name))
raise TimeoutError(
f'{name} matched with {publisher.get_subscription_count()} of its '
f'{self.node.count_subscribers(name)} subscribers:\n{subscribers}')
time.sleep(0.1)
# Discovery may not have found every subscriber yet, and what is published before
# a subscriber is matched never reaches it: the first transforms of the bag, say,
# which the first frames need. Wait until the subscribers this node knows of, and
# those each publisher is matched with, have not changed for a while.
def counts():
return tuple((self.node.count_subscribers(name), publisher.get_subscription_count())
for name, publisher in list(self._publishers.values()) +
[('/tf', self._extra_tf)])
stable_since, last = time.monotonic(), counts()
while time.monotonic() - stable_since < 2.0:
if time.monotonic() > deadline:
raise TimeoutError('discovery did not settle')
time.sleep(0.1)
current = counts()
if current != last:
stable_since, last = time.monotonic(), current
for bag_topic, (name, publisher) in self._publishers.items():
if self.node.count_subscribers(name) > 0:
# TF too: the first frames' transforms would otherwise be lost, or not,
# depending on when discovery got there.
wait_matched(name, publisher)
if self._types[bag_topic] in GATED_TYPES:
self.gated.add(bag_topic)
wait_matched('/tf', self._extra_tf)
def play(self, progress: Optional[Callable[[int, int], None]] = None,
idle_timeout: float = 300.0) -> int:
"""Publish the whole bag(s); returns the number of gated messages published."""
pending = [] # (release time, sequence, topic, data, bag time)
sequence = 0
for release_ns, data in self._extra:
heapq.heappush(pending, (release_ns, sequence, None, data, release_ns))
sequence += 1
clock_ns = 0
published = 0
gated_total = self._count_gated()
def release(until_ns):
nonlocal clock_ns, published
while pending and pending[0][0] <= until_ns:
_, _, topic, data, t = heapq.heappop(pending)
if topic is None:
self._extra_tf.publish(data)
continue
_, publisher = self._publishers[topic]
if topic in self.gated:
# Also lets the TF listeners take in the TF released so far, before
# the frame needing it arrives: a node waiting for a transform
# sleeps, which would look idle.
self.tree.wait_idle(timeout=idle_timeout)
if t > clock_ns:
clock_ns = t
self._clock.publish(Clock(clock=_to_time(clock_ns)))
publisher.publish(data)
published += 1
if progress:
progress(published, gated_total)
else:
publisher.publish(data)
lookahead_ns = int(self.lookahead * 1e9)
for bag in self.bag_dirs:
reader = self._open(bag)
while reader.has_next():
topic, data, t = _read_next(reader)
# Sensor data is held back by the lookahead, so the TF of the next
# lookahead seconds goes out before it.
delay = lookahead_ns if topic in self.gated else 0
heapq.heappush(pending, (t + delay, sequence, topic, data, t))
sequence += 1
release(t)
release(float('inf'))
# A longer quiet than between two messages, for the last one. A node polling for
# its messages on a fast timer is never quiet that long (find_object_2d with
# Camera/4imageRate 0, as fast as possible: set a rate instead).
self.tree.wait_idle(idle_polls=50, timeout=idle_timeout)
return published
def play_chunked(self, done_stamp: Callable[[], float], chunk: float = 10.0,
slack: float = 2.0, stall_timeout: float = 30.0, rate: float = 1.0,
progress: Optional[Callable[[int, int], None]] = None) -> int:
"""Publish the whole bag(s) at their own pace (times `rate`), `chunk` seconds at a
time.
As `ros2 bag play`, but after each chunk, wait until the pipeline has caught up:
until done_stamp() (the stamp, in seconds, of the last output of its last node,
rtabmap's info for instance) is within `slack` seconds of the last sensor message
published. Waiting fails if done_stamp() stops moving for `stall_timeout` seconds,
as when a node crashed. Faster than play(), with no idle polling; but within a
chunk, a node slower than real time builds up a backlog in its queue, which must
be deep enough to hold it. Returns the number of gated messages published.
"""
pending = [] # (release time, sequence, topic, data, bag time)
sequence = 0
for release_ns, data in self._extra:
heapq.heappush(pending, (release_ns, sequence, None, data, release_ns))
sequence += 1
state = {'clock_ns': 0, 'published': 0, 'last_sensor_ns': 0, 'pace': None}
gated_total = self._count_gated()
chunk_ns = int(chunk * 1e9)
lookahead_ns = int(self.lookahead * 1e9)
def release(until_ns):
while pending and pending[0][0] <= until_ns:
release_ns, _, topic, data, t = heapq.heappop(pending)
# The bag's pace: from the wall time the chunk started at.
if state['pace'] is None:
state['pace'] = (time.monotonic(), release_ns)
wall, start_ns = state['pace']
delay = wall + (release_ns - start_ns) / 1e9 / rate - time.monotonic()
if delay > 0:
time.sleep(delay)
if topic is None:
self._extra_tf.publish(data)
continue
_, publisher = self._publishers[topic]
if topic in self.gated:
if t > state['clock_ns']:
state['clock_ns'] = t
self._clock.publish(Clock(clock=_to_time(t)))
publisher.publish(data)
state['last_sensor_ns'] = max(state['last_sensor_ns'], t)
state['published'] += 1
if progress:
progress(state['published'], gated_total)
else:
publisher.publish(data)
def wait_caught_up():
target = state['last_sensor_ns'] / 1e9 - slack
last, since = done_stamp(), time.monotonic()
while done_stamp() < target:
now, stamp = time.monotonic(), done_stamp()
if stamp != last:
last, since = stamp, now
elif now - since > stall_timeout:
raise TimeoutError(
f'the pipeline did not catch up: its last output is stamped '
f'{stamp:.3f}, {target - stamp:.1f} s short of the last sensor '
f'message published, and has not moved for {stall_timeout:.0f} s')
time.sleep(0.05)
state['pace'] = None # resume at the bag's pace from now
chunk_end = None
for bag in self.bag_dirs:
reader = self._open(bag)
while reader.has_next():
topic, data, t = _read_next(reader)
if chunk_end is None:
chunk_end = t + chunk_ns
elif t >= chunk_end:
release(chunk_end)
wait_caught_up()
chunk_end += chunk_ns
delay = lookahead_ns if topic in self.gated else 0
heapq.heappush(pending, (t + delay, sequence, topic, data, t))
sequence += 1
release(t)
release(float('inf'))
wait_caught_up()
return state['published']
def _count_gated(self) -> int:
return sum(t.message_count
for bag in self.bag_dirs
for t in self._open(bag).get_metadata().topics_with_message_count
if t.topic_metadata.name in self.gated)
def _to_time(ns: int):
from builtin_interfaces.msg import Time
return Time(sec=ns // 1000000000, nanosec=ns % 1000000000)
+4
View File
@@ -0,0 +1,4 @@
# Fetched by ../fetch_test_data.sh; only the manifest is committed.
*
!.gitignore
!manifest.txt
+26
View File
@@ -0,0 +1,26 @@
# Test data assets fetched by rtabmap_demos/test/fetch_test_data.sh.
# Format: <basename>\t<url>\t<sha256>[\t<extracted>]
# - basename is the file's name on disk under this directory.
# - url is a full http(s):// URL; the bags are assets of the rtabmap_ros GitHub releases.
# - sha256 must match the bytes of the file the tests read (compute with
# `sha256sum file.db3`), which for an archive is the file it holds rather than
# the archive itself: a corrupt archive is caught by the extractor. Leave as
# 3a55cb8344e5d555459da5fc3a9ab55ceaad8a0c6bef8d8ac6fff6cc65c8b614 to bypass the integrity check on first download then paste
# the actual hash back in.
# - extracted is optional and only for archives (.zip): the file the archive holds,
# relative to this directory. A bag archive holds a whole bag directory (the .db3
# and its metadata.yaml); the .db3 is the file named here. The archive is removed
# once extracted, so this file is both what the sha256 is of and what tells the
# script the asset is already there.
#
# Lines starting with '#' and blank lines are ignored.
demo_mapping_bag.zip https://github.com/introlab/rtabmap_ros/releases/download/0.23.13/demo_mapping_bag.zip b233777634dea8207677d7a76d76718b43bc7043f03d061f6c332f12a9e07be8 demo_mapping_bag/demo_mapping.db3
stereo_outdoorA_bag.zip https://github.com/introlab/rtabmap_ros/releases/download/0.23.13/stereo_outdoorA_bag.zip e63533a750cfd02bff1640d140552c002264f31802baf9d0182c4140749cd45d stereo_outdoorA_bag/stereo_outdoorA.db3
stereo_outdoorB_bag.zip https://github.com/introlab/rtabmap_ros/releases/download/0.23.13/stereo_outdoorB_bag.zip 3a55cb8344e5d555459da5fc3a9ab55ceaad8a0c6bef8d8ac6fff6cc65c8b614 stereo_outdoorB_bag/stereo_outdoorB.db3
netherdrone_ouster_vertige_bag_0.zip https://github.com/introlab/rtabmap_ros/releases/download/0.23.13/netherdrone_ouster_vertige_bag_0.zip f603088fb975a982f6e8d1f7c06b4c806eb9e97b6ba81d09eb42f07e85579402 netherdrone_ouster_vertige_bag_0/netherdrone_ouster_vertige_bag_0.db3
netherdrone_ouster_vertige_bag_1.zip https://github.com/introlab/rtabmap_ros/releases/download/0.23.13/netherdrone_ouster_vertige_bag_1.zip 2e7983e055164ae88464af1295c0f16c8d7e81faecfd4c489f0c8c773a95bba0 netherdrone_ouster_vertige_bag_1/netherdrone_ouster_vertige_bag_1.db3
netherdrone_ouster_vertige_bag_2.zip https://github.com/introlab/rtabmap_ros/releases/download/0.23.13/netherdrone_ouster_vertige_bag_2.zip 809f6008f4ea946f30767a962f02e05557070f897992fc9137821a6f924a8c92 netherdrone_ouster_vertige_bag_2/netherdrone_ouster_vertige_bag_2.db3
netherdrone_ouster_vertige_bag_3.zip https://github.com/introlab/rtabmap_ros/releases/download/0.23.13/netherdrone_ouster_vertige_bag_3.zip 491ea215522e844a898e4e3875c85bcc7e8a67728ff5239afefc8ffe20d9d1ee netherdrone_ouster_vertige_bag_3/netherdrone_ouster_vertige_bag_3.db3
netherdrone_ouster_vertige_bag_4.zip https://github.com/introlab/rtabmap_ros/releases/download/0.23.13/netherdrone_ouster_vertige_bag_4.zip 841b11ee7c0412f6add481f1da31930bfbdbfea634edeb5b8ebc2eb1705d4ea0 netherdrone_ouster_vertige_bag_4/netherdrone_ouster_vertige_bag_4.db3
netherdrone_ouster_vertige_bag_5.zip https://github.com/introlab/rtabmap_ros/releases/download/0.23.13/netherdrone_ouster_vertige_bag_5.zip 7052f7d54ac632436d4fa4e443d8be40cd92f9271204c90d7c3c09e919b69861 netherdrone_ouster_vertige_bag_5/netherdrone_ouster_vertige_bag_5.db3
demo_find_object_bag.zip https://github.com/introlab/rtabmap_ros/releases/download/0.23.13/demo_find_object_bag.zip d4b37af28153b1dbd0649c91e004b342044c7268fb179aa3428a345f08da8691 demo_find_object_bag/demo_find_object.db3
+127
View File
@@ -0,0 +1,127 @@
#!/usr/bin/env bash
# Fetch the bags the demo playback tests replay, as listed in data/manifest.txt.
# Same manifest format as rtabmap's scripts/fetch_test_data.sh. An entry with a
# fourth column is a .zip, which is extracted into the data directory and then
# removed, its SHA-256 being the one of the file it holds. Skips files that are
# already present and whose SHA-256 matches the manifest.
#
# Usage: fetch_test_data.sh [basename...]
# With no argument, fetches every entry of the manifest; otherwise only the named
# ones (e.g. stereo_outdoorA_bag.zip), so a job can fetch just what it replays.
#
# The data goes next to the manifest, unless RTABMAP_DEMOS_TEST_DATA names another
# directory (a CI cache, or a disk with room: the bags are several GB). The tests
# read the same variable.
set -euo pipefail
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
MANIFEST="${SCRIPT_DIR}/data/manifest.txt"
DEST_DIR="${RTABMAP_DEMOS_TEST_DATA:-${SCRIPT_DIR}/data}"
if [[ ! -f "$MANIFEST" ]]; then
echo "Error: manifest not found at $MANIFEST" >&2
exit 1
fi
mkdir -p "$DEST_DIR"
sha256_of() { sha256sum "$1" | awk '{print $1}'; }
# unzip where there is one, python3's zipfile where there is not (slim ROS images).
extract_zip() {
local archive="$1"
if command -v unzip >/dev/null 2>&1; then
unzip -o -q "$archive" -d "$DEST_DIR"
else
python3 -m zipfile -e "$archive" "$DEST_DIR"
fi
}
verify_sha() {
local file="$1" expected="$2"
if [[ "$expected" == "TODO_FILL_SHA256" || -z "$expected" ]]; then
echo " (no SHA in manifest yet for $file; skipping integrity check)" >&2
echo " sha256: $(sha256_of "$file")" >&2
return 0
fi
local actual
actual="$(sha256_of "$file")"
if [[ "$actual" != "$expected" ]]; then
echo " SHA mismatch for $file: expected $expected, got $actual" >&2
return 1
fi
}
wanted() {
local name="$1"
[[ $# -eq 0 || ${#REQUESTED[@]} -eq 0 ]] && return 0
for r in "${REQUESTED[@]}"; do
[[ "$r" == "$name" ]] && return 0
done
return 1
}
REQUESTED=("$@")
found=()
while IFS=$'\t' read -r name url expected_sha extracted; do
name="${name%$'\r'}"
url="${url%$'\r'}"
expected_sha="${expected_sha%$'\r'}"
extracted="${extracted-}"
extracted="${extracted%$'\r'}"
# Skip comments and blank lines.
[[ -z "${name// }" || "$name" =~ ^# ]] && continue
wanted "$name" || continue
found+=("$name")
target="$DEST_DIR/$name"
# An archive is not kept once it is extracted, so what has to be there, and
# what the sha is of, is the file it held.
kept="${extracted:-$name}"
if [[ -f "$DEST_DIR/$kept" ]] && verify_sha "$DEST_DIR/$kept" "$expected_sha" 2>/dev/null; then
echo "Already up-to-date: $kept"
continue
fi
echo "Fetching $name <- $url"
# -L follows the redirect to the release storage, -f fails on HTTP errors, -S
# shows errors on stderr. Retries cover the odd dropped connection on a GB file,
# and -C - resumes a .partial an interrupted run left behind; the SHA check
# below catches a partial that does not belong to this file.
curl -fsSL --retry 3 --retry-delay 5 -C - "$url" -o "$target.partial"
if [[ -z "$extracted" ]]; then
if ! verify_sha "$target.partial" "$expected_sha"; then
rm -f "$target.partial"
exit 1
fi
mv -f "$target.partial" "$target"
else
mv -f "$target.partial" "$target"
echo " Extracting $name"
if ! extract_zip "$target"; then
rm -f "$target"
exit 1
fi
# The archive has served its purpose, and these are large files.
rm -f "$target"
if [[ ! -f "$DEST_DIR/$extracted" ]]; then
echo " $name does not hold $extracted" >&2
exit 1
fi
if ! verify_sha "$DEST_DIR/$extracted" "$expected_sha"; then
rm -f "$DEST_DIR/$extracted"
exit 1
fi
echo " Extracted $extracted ($(du -h "$DEST_DIR/$extracted" | cut -f1))"
fi
done < "$MANIFEST"
for r in "${REQUESTED[@]}"; do
if [[ ! " ${found[*]} " == *" $r "* ]]; then
echo "Error: $r is not in $MANIFEST" >&2
exit 1
fi
done
echo "Test data ready under $DEST_DIR"
+705
View File
@@ -0,0 +1,705 @@
PARAMS_SE2OFFSET 0 0 0 0
VERTEX_XY 313 -1.531281 0.743078
VERTEX_XY 312 2.683548 8.495893
VERTEX_XY 311 12.425310 5.129662
VERTEX_XY 310 -0.407023 -2.934078
VERTEX_XY 309 2.954635 -1.946379
VERTEX_SE2 1 -0.018821 0.001903 -0.094178
VERTEX_SE2 16 0.010280 0.004205 -0.092277
VERTEX_SE2 17 0.087373 0.000889 -0.093239
VERTEX_SE2 19 0.296141 -0.013923 -0.238247
VERTEX_SE2 20 0.429407 -0.052602 -0.453230
VERTEX_SE2 21 0.553080 -0.128367 -0.666646
VERTEX_SE2 22 0.700719 -0.241444 -0.699778
VERTEX_SE2 23 0.881329 -0.384736 -0.649958
VERTEX_SE2 24 1.068297 -0.478649 -0.392923
VERTEX_SE2 25 1.272805 -0.542910 -0.340494
VERTEX_SE2 26 1.444832 -0.594900 -0.331000
VERTEX_SE2 27 1.661547 -0.648609 -0.322318
VERTEX_SE2 28 1.845740 -0.695034 -0.236747
VERTEX_SE2 29 2.039779 -0.716908 -0.102127
VERTEX_SE2 33 2.084039 -0.717966 -0.342204
VERTEX_SE2 34 2.083719 -0.717926 -0.559770
VERTEX_SE2 35 2.085240 -0.717822 -0.778068
VERTEX_SE2 36 2.082419 -0.715848 -0.897290
VERTEX_SE2 38 2.081128 -0.716880 -1.079198
VERTEX_SE2 39 2.077018 -0.717482 -1.368417
VERTEX_SE2 40 2.078360 -0.714059 -1.675985
VERTEX_SE2 41 2.074738 -0.718976 -2.017970
VERTEX_SE2 44 2.066952 -0.737120 -2.327875
VERTEX_SE2 45 2.037545 -0.753227 -2.553421
VERTEX_SE2 47 1.944562 -0.822564 -2.553548
VERTEX_SE2 48 1.857647 -0.877537 -2.552974
VERTEX_SE2 49 1.775841 -0.933880 -2.553725
VERTEX_SE2 50 1.687230 -0.987057 -2.553910
VERTEX_SE2 51 1.568787 -1.067911 -2.553830
VERTEX_SE2 52 1.449920 -1.149455 -2.554783
VERTEX_SE2 53 1.321487 -1.236644 -2.553375
VERTEX_SE2 54 1.158439 -1.368139 -2.559092
VERTEX_SE2 55 0.921535 -1.573748 -2.489984
VERTEX_SE2 56 0.709936 -1.748692 -2.482661
VERTEX_SE2 57 0.550565 -1.855901 -2.613801
VERTEX_SE2 58 0.554207 -1.844870 -2.653006
VERTEX_SE2 59 0.521571 -1.859931 -2.959286
VERTEX_SE2 60 0.482771 -1.863258 3.018296
VERTEX_SE2 61 0.463196 -1.859692 2.893722
VERTEX_SE2 64 0.354761 -1.822237 2.618411
VERTEX_SE2 65 0.312926 -1.789290 2.379122
VERTEX_SE2 67 0.127902 -1.610420 2.300442
VERTEX_SE2 68 -0.038672 -1.407648 2.203816
VERTEX_SE2 69 -0.171125 -1.208020 2.095275
VERTEX_SE2 70 -0.299669 -0.986095 2.067127
VERTEX_SE2 71 -0.429248 -0.777459 2.179514
VERTEX_SE2 72 -0.590374 -0.600904 2.380689
VERTEX_SE2 73 -0.789878 -0.425549 2.447297
VERTEX_SE2 74 -1.025665 -0.268512 2.633432
VERTEX_SE2 75 -1.262513 -0.101791 2.494839
VERTEX_SE2 76 -1.543017 0.112002 2.502520
VERTEX_SE2 77 -1.800448 0.287651 2.523294
VERTEX_SE2 78 -2.027234 0.429167 2.533855
VERTEX_SE2 79 -2.242492 0.564512 2.438442
VERTEX_SE2 80 -2.392437 0.735948 2.069438
VERTEX_SE2 81 -2.456007 0.915472 1.681330
VERTEX_SE2 82 -2.447401 1.119434 1.326110
VERTEX_SE2 83 -2.343626 1.399122 1.099011
VERTEX_SE2 84 -2.210320 1.618923 0.937183
VERTEX_SE2 85 -2.037981 1.826477 0.757503
VERTEX_SE2 86 -1.819214 2.017037 0.564038
VERTEX_SE2 87 -1.626484 2.141689 0.509969
VERTEX_SE2 88 -1.431843 2.268330 0.583944
VERTEX_SE2 89 -1.131725 2.565907 0.938458
VERTEX_SE2 90 -0.960305 2.856464 1.059988
VERTEX_SE2 91 -0.769098 3.212229 1.080189
VERTEX_SE2 92 -0.552196 3.612437 1.102807
VERTEX_SE2 93 -0.344824 4.002937 1.125975
VERTEX_SE2 94 -0.165980 4.372959 1.151504
VERTEX_SE2 95 -0.000840 4.754516 1.175819
VERTEX_SE2 96 0.160834 5.145348 1.184871
VERTEX_SE2 97 0.356474 5.576579 1.116362
VERTEX_SE2 98 0.575064 5.956397 1.031893
VERTEX_SE2 99 0.777945 6.354420 1.248669
VERTEX_SE2 100 0.934711 6.760097 1.100997
VERTEX_SE2 101 1.140618 7.092061 0.970154
VERTEX_SE2 102 1.288419 7.314858 0.950038
VERTEX_SE2 103 1.443200 7.539721 0.926369
VERTEX_SE2 104 1.612232 7.761541 0.930743
VERTEX_SE2 105 1.747502 7.979702 1.027895
VERTEX_SE2 106 1.902404 8.240162 1.052882
VERTEX_SE2 107 2.057402 8.517191 1.069742
VERTEX_SE2 108 2.231246 8.834553 1.015960
VERTEX_SE2 109 2.422175 9.197444 0.945637
VERTEX_SE2 110 2.635216 9.444225 0.751206
VERTEX_SE2 111 2.875369 9.649100 0.530222
VERTEX_SE2 112 3.153517 9.782751 0.371820
VERTEX_SE2 113 3.441708 9.893577 0.356335
VERTEX_SE2 114 3.778583 10.019657 0.340331
VERTEX_SE2 115 4.011800 10.101053 0.252090
VERTEX_SE2 118 4.127961 10.134566 0.251388
VERTEX_SE2 119 4.309738 10.187388 0.251350
VERTEX_SE2 120 4.517190 10.234516 0.107914
VERTEX_SE2 121 4.721990 10.245676 -0.158959
VERTEX_SE2 122 4.933336 10.200550 -0.338228
VERTEX_SE2 123 5.128973 10.130827 -0.515333
VERTEX_SE2 124 5.313501 9.992896 -0.688762
VERTEX_SE2 125 5.490282 9.820534 -0.870095
VERTEX_SE2 126 5.631853 9.593987 -1.056580
VERTEX_SE2 127 5.758283 9.358323 -1.141730
VERTEX_SE2 128 5.871795 9.097071 -1.103546
VERTEX_SE2 129 6.045954 8.796564 -0.979123
VERTEX_SE2 130 6.222126 8.525295 -0.958834
VERTEX_SE2 131 6.467393 8.217825 -0.823905
VERTEX_SE2 132 6.751177 7.932839 -0.690246
VERTEX_SE2 133 7.058990 7.671934 -0.669015
VERTEX_SE2 134 7.411540 7.411335 -0.663950
VERTEX_SE2 135 7.785484 7.131861 -0.649770
VERTEX_SE2 136 8.138420 6.877180 -0.633265
VERTEX_SE2 137 8.472431 6.623835 -0.575467
VERTEX_SE2 138 8.831738 6.409918 -0.508586
VERTEX_SE2 139 9.210677 6.246479 -0.379743
VERTEX_SE2 140 9.620081 6.129005 -0.207583
VERTEX_SE2 141 10.048700 6.041355 -0.181887
VERTEX_SE2 142 10.473604 5.949670 -0.219956
VERTEX_SE2 143 10.824802 5.861507 -0.276552
VERTEX_SE2 144 11.110338 5.745332 -0.472056
VERTEX_SE2 145 11.120676 5.709708 -0.477927
VERTEX_SE2 146 11.145561 5.700298 -0.437148
VERTEX_SE2 147 11.302622 5.648001 -0.182735
VERTEX_SE2 148 11.501653 5.644941 0.162054
VERTEX_SE2 149 11.683139 5.692550 0.308758
VERTEX_SE2 150 11.838415 5.744061 0.324735
VERTEX_SE2 151 12.025124 5.824342 0.500602
VERTEX_SE2 152 12.098145 5.873927 0.638589
VERTEX_SE2 153 12.250645 6.031888 0.900739
VERTEX_SE2 154 12.428667 6.271949 0.950878
VERTEX_SE2 155 12.617650 6.545463 0.961704
VERTEX_SE2 156 12.813262 6.854564 0.962789
VERTEX_SE2 157 13.027008 7.182564 0.973012
VERTEX_SE2 158 13.214071 7.533982 1.187408
VERTEX_SE2 159 13.292029 7.914859 1.339749
VERTEX_SE2 160 13.366314 8.284412 1.384894
VERTEX_SE2 161 13.440717 8.661846 1.425186
VERTEX_SE2 162 13.497700 9.093375 1.439536
VERTEX_SE2 163 13.567890 9.502327 1.459183
VERTEX_SE2 164 13.601342 9.944291 1.620485
VERTEX_SE2 165 13.524665 10.359732 1.764166
VERTEX_SE2 166 13.419994 10.737060 1.897609
VERTEX_SE2 167 13.267900 11.106734 1.957772
VERTEX_SE2 168 13.114239 11.479527 1.988709
VERTEX_SE2 169 12.883054 11.856753 2.321407
VERTEX_SE2 170 12.592793 12.122919 2.560434
VERTEX_SE2 171 12.283584 12.334467 2.610930
VERTEX_SE2 172 11.968527 12.523154 2.641502
VERTEX_SE2 173 11.611938 12.714665 2.658491
VERTEX_SE2 174 11.200474 12.912061 2.664508
VERTEX_SE2 175 10.830281 13.091339 2.686843
VERTEX_SE2 176 10.466040 13.266440 2.724235
VERTEX_SE2 177 10.004407 13.482061 2.416611
VERTEX_SE2 178 9.953629 13.702093 2.078517
VERTEX_SE2 179 9.784258 14.062366 2.217864
VERTEX_SE2 180 9.511174 14.327987 2.593690
VERTEX_SE2 181 9.166089 14.537284 2.679473
VERTEX_SE2 182 8.851828 14.719330 2.731733
VERTEX_SE2 183 8.481061 14.857229 2.868125
VERTEX_SE2 184 8.068318 14.961854 2.906482
VERTEX_SE2 185 7.664060 15.059411 2.925334
VERTEX_SE2 186 7.203820 15.122193 2.910894
VERTEX_SE2 187 6.793315 15.229306 2.865403
VERTEX_SE2 188 6.418293 15.345899 2.823447
VERTEX_SE2 189 6.048572 15.475858 2.769246
VERTEX_SE2 190 5.635717 15.615479 3.029494
VERTEX_SE2 191 5.318607 15.609688 -2.885100
VERTEX_SE2 192 4.951555 15.446385 -2.647889
VERTEX_SE2 193 4.646955 15.285171 -2.579491
VERTEX_SE2 194 4.333288 15.048895 -2.415813
VERTEX_SE2 195 4.069259 14.752964 -2.114926
VERTEX_SE2 196 3.908399 14.431222 -1.891248
VERTEX_SE2 197 3.764424 14.039219 -1.962196
VERTEX_SE2 198 3.499021 13.587311 -2.043217
VERTEX_SE2 199 3.327054 13.190822 -1.923482
VERTEX_SE2 200 3.167216 12.788557 -1.933712
VERTEX_SE2 201 2.936628 12.401476 -2.275160
VERTEX_SE2 202 2.638870 12.105069 -2.354145
VERTEX_SE2 203 2.429900 11.841890 -2.034630
VERTEX_SE2 204 2.396690 11.766837 -1.886915
VERTEX_SE2 205 2.381366 11.613591 -1.513359
VERTEX_SE2 206 2.428138 11.412343 -1.121899
VERTEX_SE2 207 2.500350 11.269558 -1.049356
VERTEX_SE2 208 2.570220 11.145095 -0.996652
VERTEX_SE2 209 2.693198 10.993080 -0.905072
VERTEX_SE2 210 2.798317 10.856039 -0.880863
VERTEX_SE2 211 2.928715 10.701303 -0.836120
VERTEX_SE2 212 3.065366 10.571947 -0.681172
VERTEX_SE2 213 3.259684 10.460336 -0.497209
VERTEX_SE2 214 3.479453 10.354414 -0.395820
VERTEX_SE2 215 3.747518 10.278508 -0.221928
VERTEX_SE2 216 3.993212 10.242328 -0.158604
VERTEX_SE2 217 4.274534 10.210611 -0.138778
VERTEX_SE2 218 4.570128 10.192375 -0.120011
VERTEX_SE2 219 4.905264 10.144276 -0.237552
VERTEX_SE2 220 5.191771 10.027675 -0.585408
VERTEX_SE2 221 5.380266 9.827485 -1.024948
VERTEX_SE2 222 5.470501 9.635613 -1.192038
VERTEX_SE2 224 5.413035 9.749311 -1.176439
VERTEX_SE2 225 5.344023 9.909112 -1.145838
VERTEX_SE2 226 5.211081 10.126799 -0.907357
VERTEX_SE2 227 5.102295 10.277414 -0.905161
VERTEX_SE2 228 5.019037 10.430739 -1.172661
VERTEX_SE2 229 4.963478 10.656530 -1.411376
VERTEX_SE2 230 4.939271 10.905259 -1.473135
VERTEX_SE2 231 4.929640 11.023314 -1.564099
VERTEX_SE2 232 4.960577 11.043861 -2.003158
VERTEX_SE2 233 4.969424 11.056915 -2.348028
VERTEX_SE2 236 4.774896 10.885308 -2.510532
VERTEX_SE2 238 4.510896 10.722442 -2.747792
VERTEX_SE2 239 4.054273 10.606713 -2.908174
VERTEX_SE2 240 3.616868 10.426530 -2.628752
VERTEX_SE2 241 3.243752 10.140330 -2.392511
VERTEX_SE2 242 2.926663 9.840525 -2.356037
VERTEX_SE2 243 2.636093 9.533817 -2.267675
VERTEX_SE2 244 2.419199 9.205997 -2.110781
VERTEX_SE2 245 2.223713 8.856527 -2.094242
VERTEX_SE2 246 2.028846 8.510715 -2.080320
VERTEX_SE2 247 1.839230 8.163676 -2.075402
VERTEX_SE2 248 1.629465 7.786239 -2.079977
VERTEX_SE2 249 1.409889 7.398134 -2.152653
VERTEX_SE2 250 1.133766 7.033633 -2.311474
VERTEX_SE2 251 0.836756 6.620115 -2.142233
VERTEX_SE2 252 0.615521 6.244519 -2.119757
VERTEX_SE2 253 0.375548 5.860326 -2.158762
VERTEX_SE2 254 0.067486 5.403631 -2.194093
VERTEX_SE2 255 -0.227616 4.964782 -2.229510
VERTEX_SE2 256 -0.524544 4.556489 -2.267238
VERTEX_SE2 257 -0.873339 4.176117 -2.237205
VERTEX_SE2 258 -1.210170 3.732924 -2.271230
VERTEX_SE2 259 -1.558892 3.304214 -2.306681
VERTEX_SE2 260 -1.897345 2.851030 -2.090397
VERTEX_SE2 261 -2.107149 2.336657 -1.922659
VERTEX_SE2 262 -2.297073 1.813996 -1.892842
VERTEX_SE2 263 -2.454002 1.307218 -1.762060
VERTEX_SE2 264 -2.453112 0.934530 -1.311743
VERTEX_SE2 265 -2.400525 0.741854 -1.238208
VERTEX_SE2 266 -2.319683 0.574985 -1.132768
VERTEX_SE2 267 -2.228700 0.422921 -0.995762
VERTEX_SE2 268 -2.098832 0.278685 -0.851724
VERTEX_SE2 269 -1.962795 0.151077 -0.702933
VERTEX_SE2 270 -1.800728 0.042119 -0.551610
VERTEX_SE2 271 -1.633392 -0.041112 -0.399641
VERTEX_SE2 272 -1.387108 -0.131647 -0.315337
VERTEX_SE2 273 -1.014358 -0.233021 -0.241393
VERTEX_SE2 274 -0.661803 -0.296855 -0.102033
VERTEX_SE2 275 -0.329467 -0.254126 0.310862
VERTEX_SE2 276 -0.157813 -0.192482 0.313386
VERTEX_SE2 277 0.079552 -0.125860 0.152714
VERTEX_SE2 278 0.391131 -0.083071 0.013776
VERTEX_SE2 279 0.735477 -0.112064 -0.303721
VERTEX_SE2 280 1.080853 -0.231889 -0.423343
VERTEX_SE2 281 1.395955 -0.363580 -0.485830
VERTEX_SE2 282 1.731903 -0.555912 -0.716591
VERTEX_SE2 283 2.004850 -0.852426 -0.827574
VERTEX_SE2 284 2.090989 -0.934615 -0.733525
VERTEX_SE2 285 2.087335 -0.934084 -0.976049
VERTEX_SE2 286 2.083795 -0.933405 -1.406534
VERTEX_SE2 287 2.081551 -0.934110 -1.927000
VERTEX_SE2 288 2.076729 -0.932850 -2.443086
VERTEX_SE2 289 2.071948 -0.931047 -2.576698
VERTEX_SE2 290 1.900907 -1.032970 -2.579228
VERTEX_SE2 291 1.668595 -1.174905 -2.732540
VERTEX_SE2 292 1.297986 -1.301518 -2.911765
VERTEX_SE2 293 0.873452 -1.413057 -2.896229
VERTEX_SE2 294 0.486445 -1.582506 -2.543739
VERTEX_SE2 295 0.358943 -1.707826 -2.236882
VERTEX_SE2 296 0.285028 -1.817967 -2.155664
VERTEX_SE2 297 0.277455 -1.831209 -2.572913
VERTEX_SE2 298 0.259271 -1.843225 -2.749073
VERTEX_SE2 299 -0.057732 -1.981481 -2.757502
VERTEX_SE2 300 -0.425157 -2.137960 -2.758719
VERTEX_SE2 301 -0.786341 -2.275560 -2.759375
VERTEX_SE2 302 -1.175288 -2.471748 -2.568460
VERTEX_SE2 303 -1.499282 -2.739618 -2.437669
VERTEX_SE2 304 -1.738787 -3.020583 -2.087487
VERTEX_SE2 305 -1.850849 -3.361660 -1.817725
EDGE_SE2_XY 1 309 3.087432 -1.560356 100.000000 0.000000 1000.000000 8
EDGE_SE2 1 16 0.037164 0.000002 0.000096 1000.000000 0.000000 0.000000 1000.000000 0.000000 1000.000000 0
EDGE_SE2 1 26 1.547359 -0.488068 -0.241077 86.530794 0.000000 0.000000 86.530794 0.000000 865.307936 2
EDGE_SE2 1 70 -0.211401 -1.063661 2.170820 218.759898 0.000000 0.000000 218.759898 0.000000 2187.598979 2
EDGE_SE2 1 275 -0.281531 -0.285337 0.404847 20696.437491 0.000000 0.000000 20696.437491 0.000000 206964.374912 1
EDGE_SE2 1 276 -0.108747 -0.207513 0.407431 229.906083 0.000000 0.000000 229.906083 0.000000 2299.060830 2
EDGE_SE2_XY 2 309 3.087432 -1.565520 100.000000 0.000000 1000.000000 8
EDGE_SE2_XY 3 309 3.087432 -1.590886 100.000000 0.000000 1000.000000 8
EDGE_SE2_XY 4 309 3.087432 -1.564046 100.000000 0.000000 1000.000000 8
EDGE_SE2_XY 5 309 3.114594 -1.584423 100.000000 0.000000 1000.000000 8
EDGE_SE2_XY 6 309 3.087432 -1.565578 100.000000 0.000000 1000.000000 8
EDGE_SE2_XY 7 309 3.087432 -1.554339 100.000000 0.000000 1000.000000 8
EDGE_SE2_XY 8 309 3.087432 -1.558815 100.000000 0.000000 1000.000000 8
EDGE_SE2_XY 9 309 3.087432 -1.557732 100.000000 0.000000 1000.000000 8
EDGE_SE2_XY 10 309 3.087432 -1.568219 100.000000 0.000000 1000.000000 8
EDGE_SE2_XY 11 309 3.087432 -1.563771 100.000000 0.000000 1000.000000 8
EDGE_SE2_XY 12 309 3.087432 -1.568782 100.000000 0.000000 1000.000000 8
EDGE_SE2_XY 14 309 3.087432 -1.570472 100.000000 0.000000 1000.000000 8
EDGE_SE2_XY 15 309 3.087432 -1.567223 100.000000 0.000000 1000.000000 8
EDGE_SE2_XY 16 309 3.024860 -1.547474 100.000000 0.000000 1000.000000 8
EDGE_SE2 16 17 0.078596 0.000008 0.000204 1000.000000 0.000000 0.000000 1000.000000 0.000000 1000.000000 0
EDGE_SE2 16 27 1.724425 -0.514393 -0.226868 167.637029 0.000000 0.000000 167.637029 0.000000 1676.370291 2
EDGE_SE2 16 274 -0.643580 -0.360586 -0.010180 20651.335713 0.000000 0.000000 20651.335713 0.000000 206513.357134 1
EDGE_SE2 16 277 0.082343 -0.124715 0.246142 27952.138993 0.000000 0.000000 27952.138993 0.000000 279521.389933 1
EDGE_SE2 16 278 0.393575 -0.053875 0.105044 20029.164161 0.000000 0.000000 20029.164161 0.000000 200291.641609 1
EDGE_SE2_XY 17 309 2.968137 -1.557966 100.000000 0.000000 1000.000000 8
EDGE_SE2 17 19 0.214939 0.004538 -0.145798 26969.316594 0.000000 0.000000 26969.316594 0.000000 269693.165940 0
EDGE_SE2 17 28 1.838782 -0.555672 -0.143275 110.419600 0.000000 0.000000 110.419600 0.000000 1104.196004 2
EDGE_SE2 17 273 -1.078764 -0.340022 -0.146110 26981.892663 0.000000 0.000000 26981.892663 0.000000 269818.926633 1
EDGE_SE2 17 276 -0.224145 -0.212037 0.404551 21330.512766 0.000000 0.000000 21330.512766 0.000000 213305.127663 1
EDGE_SE2 17 277 0.004324 -0.129937 0.253713 209.414468 0.000000 0.000000 209.414468 0.000000 2094.144682 2
EDGE_SE2_XY 19 309 3.002357 -1.157806 100.000000 0.000000 1000.000000 8
EDGE_SE2 19 20 0.146463 -0.006248 -0.215742 26944.185659 0.000000 0.000000 26944.185659 0.000000 269441.856592 0
EDGE_SE2 19 29 1.885224 -0.300205 0.134888 197.720970 0.000000 0.000000 197.720970 0.000000 1977.209704 2
EDGE_SE2_XY 20 309 3.084055 -0.525540 100.000000 0.000000 1000.000000 8
EDGE_SE2 20 21 0.148160 -0.013543 -0.214207 45872.010023 0.000000 0.000000 45872.010023 0.000000 458720.100230 0
EDGE_SE2 20 33 1.812398 0.113563 0.113650 114.320037 0.000000 0.000000 114.320037 0.000000 1143.200373 2
EDGE_SE2 20 278 -0.041393 -0.034537 0.465871 212.935149 0.000000 0.000000 212.935149 0.000000 2129.351487 2
EDGE_SE2 20 279 0.303758 0.081253 0.150159 23676.225949 0.000000 0.000000 23676.225949 0.000000 236762.259487 1
EDGE_SE2 21 22 0.190888 0.004079 -0.034240 33660.210741 0.000000 0.000000 33660.210741 0.000000 336602.107411 0
EDGE_SE2_XY 22 309 2.865312 0.214989 100.000000 0.000000 1000.000000 8
EDGE_SE2 22 23 0.235150 0.008962 0.048315 25683.762429 0.000000 0.000000 25683.762429 0.000000 256837.624292 0
EDGE_SE2 22 279 -0.072458 0.120847 0.395289 226.809757 0.000000 0.000000 226.809757 0.000000 2268.097570 2
EDGE_SE2_XY 23 309 2.657091 0.087106 100.000000 0.000000 1000.000000 8
EDGE_SE2 23 24 0.208586 0.040806 0.255128 20836.470496 0.000000 0.000000 20836.470496 0.000000 208364.704957 0
EDGE_SE2_XY 24 309 2.380735 -0.548350 100.000000 0.000000 1000.000000 8
EDGE_SE2 24 25 0.216985 0.019189 0.052228 22786.783938 0.000000 0.000000 22786.783938 0.000000 227867.839381 0
EDGE_SE2 24 280 -0.084637 0.233967 -0.031511 33565.367613 0.000000 0.000000 33565.367613 0.000000 335653.676128 1
EDGE_SE2_XY 25 309 2.123803 -0.667821 100.000000 0.000000 1000.000000 8
EDGE_SE2 25 26 0.181313 0.008924 0.009277 25133.368600 0.000000 0.000000 25133.368600 0.000000 251333.686001 0
EDGE_SE2 25 281 0.053470 0.209150 -0.144624 255.995818 0.000000 0.000000 255.995818 0.000000 2559.958180 2
EDGE_SE2_XY 26 309 1.944765 -0.681789 100.000000 0.000000 1000.000000 8
EDGE_SE2 26 27 0.223760 0.021620 0.007873 19379.742719 0.000000 0.000000 19379.742719 0.000000 193797.427186 0
EDGE_SE2 26 281 -0.121821 0.202135 -0.154503 24441.620905 0.000000 0.000000 24441.620905 0.000000 244416.209048 1
EDGE_SE2_XY 27 309 1.712760 -0.696025 100.000000 0.000000 1000.000000 8
EDGE_SE2 27 28 0.189001 0.013941 0.085887 29110.503037 0.000000 0.000000 29110.503037 0.000000 291105.030374 0
EDGE_SE2 27 282 0.037896 0.111255 -0.394786 48528.783821 0.000000 0.000000 48528.783821 0.000000 485287.838210 1
EDGE_SE2_XY 28 309 1.468962 -0.832445 100.000000 0.000000 1000.000000 8
EDGE_SE2 28 29 0.192503 0.023898 0.135015 21228.238231 0.000000 0.000000 21228.238231 0.000000 212282.382313 0
EDGE_SE2 29 33 0.043492 0.003181 -0.239850 36063.165553 0.000000 0.000000 36063.165553 0.000000 360631.655533 0
EDGE_SE2 33 34 -0.000950 -0.000728 -0.217241 26098.091600 0.000000 0.000000 26098.091600 0.000000 260980.915999 0
EDGE_SE2 34 35 0.000844 0.000260 -0.218033 31969.400143 0.000000 0.000000 31969.400143 0.000000 319694.001432 0
EDGE_SE2 35 36 -0.003534 -0.000646 -0.119761 48326.600997 0.000000 0.000000 48326.600997 0.000000 483266.009969 0
EDGE_SE2 35 283 0.037098 -0.154096 -0.048019 22878.835572 0.000000 0.000000 22878.835572 0.000000 228788.355715 2
EDGE_SE2 35 284 0.156342 -0.149397 0.044562 22407.028023 0.000000 0.000000 22407.028023 0.000000 224070.280231 1
EDGE_SE2 36 38 -0.000185 -0.001781 -0.182688 33464.912894 0.000000 0.000000 33464.912894 0.000000 334649.128938 0
EDGE_SE2_XY 38 309 1.475328 0.339453 100.000000 0.000000 1000.000000 8
EDGE_SE2 38 39 -0.001772 -0.004358 -0.290188 27984.195220 0.000000 0.000000 27984.195220 0.000000 279841.952200 0
EDGE_SE2 39 40 -0.003986 0.002595 -0.308459 50878.710449 0.000000 0.000000 50878.710449 0.000000 508787.104486 0
EDGE_SE2 39 285 0.214843 -0.033206 0.392973 27156.948918 0.000000 0.000000 27156.948918 0.000000 271569.489181 2
EDGE_SE2 39 286 0.213768 -0.038675 -0.038017 26773.700887 0.000000 0.000000 26773.700887 0.000000 267737.008871 1
EDGE_SE2 40 41 0.003771 -0.002664 -0.343271 35259.974311 0.000000 0.000000 35259.974311 0.000000 352599.743114 0
EDGE_SE2 41 44 0.018683 0.000810 -0.311235 26816.600820 0.000000 0.000000 26816.600820 0.000000 268166.008196 0
EDGE_SE2 41 287 0.189427 0.098972 0.090376 16670.448565 0.000000 0.000000 16670.448565 0.000000 166704.485648 2
EDGE_SE2 44 45 0.027401 -0.010899 -0.226800 26011.316172 0.000000 0.000000 26011.316172 0.000000 260113.161719 0
EDGE_SE2 44 288 0.140703 0.141899 -0.115306 17575.003222 0.000000 0.000000 17575.003222 0.000000 175750.032220 1
EDGE_SE2 45 47 0.110349 0.004066 -0.001721 20211.328695 0.000000 0.000000 20211.328695 0.000000 202113.286950 0
EDGE_SE2 47 48 0.102609 -0.002100 -0.000196 43222.436923 0.000000 0.000000 43222.436923 0.000000 432224.369229 0
EDGE_SE2 47 283 -0.028871 0.065119 1.730255 257.369560 0.000000 0.000000 257.369560 0.000000 2573.695605 2
EDGE_SE2 47 284 -0.055289 0.177958 1.823285 289.883975 0.000000 0.000000 289.883975 0.000000 2898.839751 2
EDGE_SE2 47 285 -0.050370 0.176821 1.581413 208.642556 0.000000 0.000000 208.642556 0.000000 2086.425559 2
EDGE_SE2 47 286 -0.045411 0.175705 1.149689 253.999468 0.000000 0.000000 253.999468 0.000000 2539.994682 2
EDGE_SE2 47 287 -0.042421 0.176493 0.627707 191.527031 0.000000 0.000000 191.527031 0.000000 1915.270307 2
EDGE_SE2 47 288 -0.051784 0.169023 0.109984 198.380107 0.000000 0.000000 198.380107 0.000000 1983.801070 2
EDGE_SE2 47 289 -0.052159 0.157151 -0.023419 17220.399606 0.000000 0.000000 17220.399606 0.000000 172203.996063 2
EDGE_SE2 48 49 0.099065 0.001916 -0.001731 34183.904535 0.000000 0.000000 34183.904535 0.000000 341839.045349 0
EDGE_SE2 49 50 0.103158 -0.005117 -0.000242 74195.628713 0.000000 0.000000 74195.628713 0.000000 741956.287133 0
EDGE_SE2 49 290 -0.049257 0.153099 -0.026635 25598.378638 0.000000 0.000000 25598.378638 0.000000 255983.786378 2
EDGE_SE2 50 51 0.143229 0.001067 -0.000053 30009.733241 0.000000 0.000000 30009.733241 0.000000 300097.332409 0
EDGE_SE2 51 52 0.146319 0.003438 -0.002199 22067.055515 0.000000 0.000000 22067.055515 0.000000 220670.555153 0
EDGE_SE2 51 291 -0.025860 0.142395 -0.177823 24974.481413 0.000000 0.000000 24974.481413 0.000000 249744.814130 2
EDGE_SE2_XY 52 310 2.510759 0.392322 100.000000 0.000000 1000.000000 8
EDGE_SE2 52 53 0.157510 0.002606 0.000628 35734.109668 0.000000 0.000000 35734.109668 0.000000 357341.096682 0
EDGE_SE2_XY 53 310 2.370634 0.407545 100.000000 0.000000 1000.000000 8
EDGE_SE2 53 54 0.212968 0.020701 -0.006890 22241.813033 0.000000 0.000000 22241.813033 0.000000 222418.130326 0
EDGE_SE2 53 292 0.064453 0.064040 -0.370957 178.687848 0.000000 0.000000 178.687848 0.000000 1786.878477 2
EDGE_SE2_XY 54 310 2.179721 0.407929 100.000000 0.000000 1000.000000 8
EDGE_SE2 54 55 0.312180 0.042534 0.067512 30837.865429 0.000000 0.000000 30837.865429 0.000000 308378.654295 0
EDGE_SE2 54 292 -0.151184 0.021301 -0.351856 27610.972702 0.000000 0.000000 27610.972702 0.000000 276109.727023 1
EDGE_SE2_XY 55 310 1.909460 0.254327 100.000000 0.000000 1000.000000 8
EDGE_SE2 55 56 0.274888 0.011891 0.005328 24062.079316 0.000000 0.000000 24062.079316 0.000000 240620.793156 0
EDGE_SE2 55 293 -0.046240 -0.141826 -0.415324 205.319272 0.000000 0.000000 205.319272 0.000000 2053.192718 2
EDGE_SE2_XY 56 310 1.650562 0.242859 100.000000 0.000000 1000.000000 8
EDGE_SE2 56 57 0.190485 -0.011855 -0.133309 22257.190049 0.000000 0.000000 22257.190049 0.000000 222571.900490 0
EDGE_SE2_XY 57 310 1.404453 0.431025 100.000000 0.000000 1000.000000 8
EDGE_SE2 57 58 0.005099 -0.000095 -0.041229 1000.000000 0.000000 0.000000 1000.000000 0.000000 1000.000000 0
EDGE_SE2 57 296 0.201727 -0.170847 0.459077 30446.946641 0.000000 0.000000 30446.946641 0.000000 304469.466415 1
EDGE_SE2 57 299 0.597291 -0.191937 -0.147280 22658.120081 0.000000 0.000000 22658.120081 0.000000 226581.200811 1
EDGE_SE2_XY 58 310 1.383563 0.486053 100.000000 0.000000 1000.000000 8
EDGE_SE2 58 59 0.034689 -0.003009 -0.306494 44203.002084 0.000000 0.000000 44203.002084 0.000000 442030.020839 0
EDGE_SE2 58 294 -0.066012 -0.261494 0.106898 31329.996506 0.000000 0.000000 31329.996506 0.000000 313299.965059 1
EDGE_SE2 58 295 0.112015 -0.213712 0.419115 32240.679277 0.000000 0.000000 32240.679277 0.000000 322406.792774 1
EDGE_SE2 58 297 0.236677 -0.140817 0.078532 30140.651722 0.000000 0.000000 30140.651722 0.000000 301406.517224 1
EDGE_SE2 58 298 0.261510 -0.140390 -0.094802 27007.282997 0.000000 0.000000 27007.282997 0.000000 270072.829972 1
EDGE_SE2_XY 59 310 1.125270 0.869302 100.000000 0.000000 1000.000000 8
EDGE_SE2 59 60 0.038132 -0.005473 -0.306686 37250.636643 0.000000 0.000000 37250.636643 0.000000 372506.366426 0
EDGE_SE2 59 300 0.980083 0.102257 0.203105 12054.268304 0.000000 0.000000 12054.268304 0.000000 120542.683040 1
EDGE_SE2 60 61 0.019772 -0.003141 -0.125767 33726.772023 0.000000 0.000000 33726.772023 0.000000 337267.720226 0
EDGE_SE2 61 64 0.114554 -0.012845 -0.277141 21561.457432 0.000000 0.000000 21561.457432 0.000000 215614.574318 0
EDGE_SE2 64 65 0.053703 -0.010356 -0.240960 23427.846496 0.000000 0.000000 23427.846496 0.000000 234278.464958 0
EDGE_SE2 65 67 0.258961 -0.004009 -0.080096 24743.214509 0.000000 0.000000 24743.214509 0.000000 247432.145087 0
EDGE_SE2 65 294 0.009731 -0.261672 1.349005 140.258021 0.000000 0.000000 140.258021 0.000000 1402.580210 2
EDGE_SE2 65 298 -0.006519 0.104257 1.147360 124.561273 0.000000 0.000000 124.561273 0.000000 1245.612732 2
EDGE_SE2 67 68 0.264480 -0.013927 -0.098244 20263.337262 0.000000 0.000000 20263.337262 0.000000 202633.372618 0
EDGE_SE2 67 299 -0.161004 0.393602 1.221624 219.073292 0.000000 0.000000 219.073292 0.000000 2190.732918 2
EDGE_SE2 68 69 0.240970 -0.013050 -0.109550 31244.825667 0.000000 0.000000 31244.825667 0.000000 312448.256669 0
EDGE_SE2 69 70 0.259046 -0.002043 -0.029506 22308.104026 0.000000 0.000000 22308.104026 0.000000 223081.040260 0
EDGE_SE2 70 71 0.247139 0.013241 0.111359 26520.926797 0.000000 0.000000 26520.926797 0.000000 265209.267970 0
EDGE_SE2 71 72 0.238039 0.031152 0.200638 31618.693782 0.000000 0.000000 31618.693782 0.000000 316186.937823 0
EDGE_SE2 71 81 2.588100 0.586335 -0.495916 359.732883 0.000000 0.000000 359.732883 0.000000 3597.328826 2
EDGE_SE2_XY 72 313 1.601231 -0.330682 100.000000 0.000000 1000.000000 8
EDGE_SE2 72 73 0.266783 0.010219 0.066004 27524.294418 0.000000 0.000000 27524.294418 0.000000 275242.944183 0
EDGE_SE2_XY 73 313 1.325901 -0.415690 100.000000 0.000000 1000.000000 8
EDGE_SE2 73 74 0.282644 0.030300 0.185594 25935.260714 0.000000 0.000000 25935.260714 0.000000 259352.607140 0
EDGE_SE2 73 274 0.014919 -0.247783 -2.562579 213.929260 0.000000 0.000000 213.929260 0.000000 2139.292601 2
EDGE_SE2 74 75 0.288568 -0.029902 -0.138833 40262.519588 0.000000 0.000000 40262.519588 0.000000 402625.195885 0
EDGE_SE2 74 273 0.020063 -0.117102 -2.892993 274.928015 0.000000 0.000000 274.928015 0.000000 2749.280146 2
EDGE_SE2 75 76 0.353599 -0.000419 0.007153 19902.610312 0.000000 0.000000 19902.610312 0.000000 199026.103116 0
EDGE_SE2 76 77 0.312141 0.013500 0.020317 24527.254824 0.000000 0.000000 24527.254824 0.000000 245272.548236 0
EDGE_SE2 77 78 0.267512 0.016961 0.010135 27615.840899 0.000000 0.000000 27615.840899 0.000000 276158.408990 0
EDGE_SE2 78 79 0.254333 0.012865 -0.095422 52543.404078 0.000000 0.000000 52543.404078 0.000000 525434.040778 0
EDGE_SE2 78 268 -0.027823 0.035881 2.848552 258.937038 0.000000 0.000000 258.937038 0.000000 2589.370377 2
EDGE_SE2 79 80 0.225555 -0.032312 -0.369054 38030.730358 0.000000 0.000000 38030.730358 0.000000 380307.303577 0
EDGE_SE2 80 81 0.187796 -0.028342 -0.388192 34272.922397 0.000000 0.000000 34272.922397 0.000000 342729.223968 0
EDGE_SE2 81 82 0.201803 -0.030161 -0.355321 25299.317619 0.000000 0.000000 25299.317619 0.000000 252993.176190 0
EDGE_SE2 82 83 0.296126 -0.031788 -0.227268 18798.053665 0.000000 0.000000 18798.053665 0.000000 187980.536648 0
EDGE_SE2 83 84 0.255645 -0.017899 -0.161859 23013.274270 0.000000 0.000000 23013.274270 0.000000 230132.742704 0
EDGE_SE2 83 263 -0.057236 0.015489 -2.905571 67.003133 0.000000 0.000000 67.003133 0.000000 670.031328 2
EDGE_SE2 84 85 0.267689 -0.015621 -0.179824 25576.027499 0.000000 0.000000 25576.027499 0.000000 255760.274987 0
EDGE_SE2 84 262 0.223390 0.238355 -2.812867 178.798565 0.000000 0.000000 178.798565 0.000000 1787.985650 2
EDGE_SE2 85 86 0.288331 -0.011783 -0.193601 27290.206572 0.000000 0.000000 27290.206572 0.000000 272902.065724 0
EDGE_SE2 86 87 0.228549 0.001971 -0.054239 34276.965673 0.000000 0.000000 34276.965673 0.000000 342769.656728 0
EDGE_SE2 86 261 -0.117757 0.452486 -2.476358 196.139400 0.000000 0.000000 196.139400 0.000000 1961.393999 2
EDGE_SE2 87 88 0.230911 0.014828 0.073717 29523.626183 0.000000 0.000000 29523.626183 0.000000 295236.261826 0
EDGE_SE2 87 260 0.072710 0.778225 -2.594560 252.360279 0.000000 0.000000 252.360279 0.000000 2523.602792 2
EDGE_SE2 88 89 0.413406 0.082024 0.354215 23602.165083 0.000000 0.000000 23602.165083 0.000000 236021.650831 0
EDGE_SE2 89 90 0.333658 0.032846 0.121056 14467.252839 0.000000 0.000000 14467.252839 0.000000 144672.528394 0
EDGE_SE2 90 91 0.401783 0.006306 0.019906 15696.533974 0.000000 0.000000 15696.533974 0.000000 156965.339741 0
EDGE_SE2 90 259 0.103369 0.763597 2.911695 344.264974 0.000000 0.000000 344.264974 0.000000 3442.649743 2
EDGE_SE2 91 92 0.452301 -0.003853 0.022254 11174.474933 0.000000 0.000000 11174.474933 0.000000 111744.749331 0
EDGE_SE2 92 93 0.440295 -0.009545 0.022977 18534.593655 0.000000 0.000000 18534.593655 0.000000 185345.936553 0
EDGE_SE2 93 94 0.408793 -0.002934 0.025325 15109.968286 0.000000 0.000000 15109.968286 0.000000 151099.682864 0
EDGE_SE2 94 95 0.414122 0.003909 0.024050 18897.912008 0.000000 0.000000 18897.912008 0.000000 188979.120085 0
EDGE_SE2 94 256 -0.002272 0.413095 2.884694 112.029801 0.000000 0.000000 112.029801 0.000000 1120.298005 2
EDGE_SE2 95 96 0.422699 0.000307 0.008557 16211.597632 0.000000 0.000000 16211.597632 0.000000 162115.976324 0
EDGE_SE2 95 105 3.628595 -0.376160 -0.141054 410.543178 0.000000 0.000000 410.543178 0.000000 4105.431781 2
EDGE_SE2 95 255 -0.041039 0.327797 2.886121 122.471116 0.000000 0.000000 122.471116 0.000000 1224.711157 2
EDGE_SE2 96 97 0.473682 -0.020158 -0.069673 15248.267188 0.000000 0.000000 15248.267188 0.000000 152482.671884 0
EDGE_SE2 96 106 3.482574 -0.430176 -0.095723 235.426290 0.000000 0.000000 235.426290 0.000000 2354.262899 2
EDGE_SE2 96 254 0.184826 0.185293 2.909433 151.794461 0.000000 0.000000 151.794461 0.000000 1517.944611 2
EDGE_SE2 97 98 0.437674 -0.030534 -0.085210 25951.189714 0.000000 0.000000 25951.189714 0.000000 259511.897143 0
EDGE_SE2 97 107 3.376065 -0.217452 -0.040715 195.277260 0.000000 0.000000 195.277260 0.000000 1952.772598 2
EDGE_SE2 98 99 0.446508 0.028930 0.215726 17417.342061 0.000000 0.000000 17417.342061 0.000000 174173.420614 0
EDGE_SE2 99 100 0.433930 -0.021491 -0.148877 14061.742311 0.000000 0.000000 14061.742311 0.000000 140617.423111 0
EDGE_SE2 99 252 -0.027337 0.067975 2.910941 123.764658 0.000000 0.000000 123.764658 0.000000 1237.646575 2
EDGE_SE2 100 101 0.389128 -0.034117 -0.131628 22490.090179 0.000000 0.000000 22490.090179 0.000000 224900.901789 0
EDGE_SE2 100 251 -0.181905 0.023810 3.046778 205.391006 0.000000 0.000000 205.391006 0.000000 2053.910061 2
EDGE_SE2 101 102 0.267559 0.003276 -0.020805 26921.484496 0.000000 0.000000 26921.484496 0.000000 269214.844959 0
EDGE_SE2 101 250 -0.087639 -0.021140 3.010654 158.239601 0.000000 0.000000 158.239601 0.000000 1582.396008 2
EDGE_SE2_XY 102 312 1.772508 -0.442583 100.000000 0.000000 1000.000000 8
EDGE_SE2 102 103 0.273301 0.004305 -0.024283 29751.295814 0.000000 0.000000 29751.295814 0.000000 297512.958138 0
EDGE_SE2 102 249 0.115708 -0.064360 -3.101348 148.505516 0.000000 0.000000 148.505516 0.000000 1485.055158 2
EDGE_SE2_XY 103 312 1.509469 -0.415246 100.000000 0.000000 1000.000000 8
EDGE_SE2 103 104 0.279570 -0.002907 0.003314 16778.066916 0.000000 0.000000 16778.066916 0.000000 167780.669163 0
EDGE_SE2_XY 104 312 1.229757 -0.422789 100.000000 0.000000 1000.000000 8
EDGE_SE2 104 105 0.256188 0.021190 0.096471 24541.568178 0.000000 0.000000 24541.568178 0.000000 245415.681776 0
EDGE_SE2 104 248 0.027831 -0.018429 -3.017896 93.214323 0.000000 0.000000 93.214323 0.000000 932.143232 2
EDGE_SE2 105 106 0.303050 0.001327 0.024553 30665.263518 0.000000 0.000000 30665.263518 0.000000 306652.635177 0
EDGE_SE2 106 107 0.317274 0.002196 0.016782 45758.401153 0.000000 0.000000 45758.401153 0.000000 457584.011531 0
EDGE_SE2 106 247 -0.126192 -0.006555 -3.136974 90.797646 0.000000 0.000000 90.797646 0.000000 907.976457 2
EDGE_SE2 107 108 0.361681 -0.000159 -0.053833 46814.591217 0.000000 0.000000 46814.591217 0.000000 468145.912172 0
EDGE_SE2 107 246 -0.032906 0.000769 3.133999 138.908121 0.000000 0.000000 138.908121 0.000000 1389.081214 2
EDGE_SE2 108 109 0.352427 -0.008137 -0.085381 105.103526 0.000000 0.000000 105.103526 0.000000 1051.035259 0
EDGE_SE2 108 245 -0.001915 -0.002688 -3.115518 120.735821 0.000000 0.000000 120.735821 0.000000 1207.358208 2
EDGE_SE2 109 110 0.321802 -0.030860 -0.196761 1000.000000 0.000000 0.000000 1000.000000 0.000000 1000.000000 0
EDGE_SE2 109 244 -0.011049 -0.003811 -3.064185 162.181103 0.000000 0.000000 162.181103 0.000000 1621.811030 2
EDGE_SE2 110 111 0.317506 -0.033313 -0.226908 132.874992 0.000000 0.000000 132.874992 0.000000 1328.749920 0
EDGE_SE2 110 243 0.045755 0.061718 -3.015239 170.134367 0.000000 0.000000 170.134367 0.000000 1701.343675 2
EDGE_SE2 111 112 0.308003 -0.032749 -0.159680 256.305928 0.000000 0.000000 256.305928 0.000000 2563.059282 0
EDGE_SE2 111 242 0.144840 0.136494 -2.888248 193.275798 0.000000 0.000000 193.275798 0.000000 1932.757984 2
EDGE_SE2 112 113 0.309174 -0.003301 -0.018189 1000.000000 0.000000 0.000000 1000.000000 0.000000 1000.000000 0
EDGE_SE2 113 114 0.359854 -0.002829 -0.015857 1000.000000 0.000000 0.000000 1000.000000 0.000000 1000.000000 0
EDGE_SE2 113 241 -0.098197 0.307345 -2.749432 231.527465 0.000000 0.000000 231.527465 0.000000 2315.274646 2
EDGE_SE2 114 115 0.247227 -0.004589 -0.087237 1000.000000 0.000000 0.000000 1000.000000 0.000000 1000.000000 0
EDGE_SE2 115 118 0.121372 0.000043 0.000720 1000.000000 0.000000 0.000000 1000.000000 0.000000 1000.000000 0
EDGE_SE2 118 119 0.190090 0.000100 0.000315 587.935656 0.000000 0.000000 587.935656 0.000000 5879.356563 0
EDGE_SE2 119 120 0.213184 -0.009384 -0.140633 1000.000000 0.000000 0.000000 1000.000000 0.000000 1000.000000 0
EDGE_SE2 120 121 0.210743 -0.030428 -0.264839 170.814575 0.000000 0.000000 170.814575 0.000000 1708.145749 0
EDGE_SE2 121 122 0.221488 -0.020098 -0.178019 327.025822 0.000000 0.000000 327.025822 0.000000 3270.258224 0
EDGE_SE2 122 123 0.224717 -0.019385 -0.173761 138.129108 0.000000 0.000000 138.129108 0.000000 1381.291084 0
EDGE_SE2 123 124 0.224752 -0.019390 -0.173787 206.678046 0.000000 0.000000 206.678046 0.000000 2066.780465 0
EDGE_SE2 123 220 0.105779 -0.059158 -0.070031 11748.164734 0.000000 0.000000 11748.164734 0.000000 117481.647343 1
EDGE_SE2 124 125 0.245960 -0.020593 -0.181341 15648.579146 0.000000 0.000000 15648.579146 0.000000 156485.791456 0
EDGE_SE2 125 126 0.264404 -0.037802 -0.186490 32406.750256 0.000000 0.000000 32406.750256 0.000000 324067.502558 0
EDGE_SE2 126 127 0.267823 -0.005301 -0.085295 24223.207605 0.000000 0.000000 24223.207605 0.000000 242232.076048 0
EDGE_SE2 126 221 -0.328764 -0.108463 0.035159 25823.144642 0.000000 0.000000 25823.144642 0.000000 258231.446417 2
EDGE_SE2 126 222 -0.113489 -0.114803 -0.138962 43508.469089 0.000000 0.000000 43508.469089 0.000000 435084.690890 1
EDGE_SE2 126 224 -0.245766 -0.120496 -0.116872 20224.627317 0.000000 0.000000 20224.627317 0.000000 202246.273172 1
EDGE_SE2 127 128 0.285307 -0.004744 0.037978 19098.076755 0.000000 0.000000 19098.076755 0.000000 190980.767553 0
EDGE_SE2 128 129 0.347346 0.020916 0.124167 17069.765752 0.000000 0.000000 17069.765752 0.000000 170697.657523 0
EDGE_SE2 129 130 0.323786 -0.004703 0.020141 32090.993157 0.000000 0.000000 32090.993157 0.000000 320909.931573 0
EDGE_SE2 130 131 0.393260 0.024791 0.134633 17595.431184 0.000000 0.000000 17595.431184 0.000000 175954.311842 0
EDGE_SE2 131 132 0.402524 0.015081 0.133409 22341.084206 0.000000 0.000000 22341.084206 0.000000 223410.842056 0
EDGE_SE2 132 133 0.404248 -0.004766 0.020922 19174.606381 0.000000 0.000000 19174.606381 0.000000 191746.063811 0
EDGE_SE2 133 134 0.439028 0.014675 0.004712 17640.681235 0.000000 0.000000 17640.681235 0.000000 176406.812354 0
EDGE_SE2 134 135 0.467347 0.010653 0.013908 24181.150969 0.000000 0.000000 24181.150969 0.000000 241811.509691 0
EDGE_SE2 135 136 0.435761 0.012653 0.016638 19947.046564 0.000000 0.000000 19947.046564 0.000000 199470.465636 0
EDGE_SE2 135 145 3.524508 0.748751 0.172069 223.531988 0.000000 0.000000 223.531988 0.000000 2235.319883 2
EDGE_SE2 136 137 0.420026 -0.004222 0.057862 16179.872885 0.000000 0.000000 16179.872885 0.000000 161798.728849 0
EDGE_SE2 137 138 0.418713 0.018121 0.066830 15524.462717 0.000000 0.000000 15524.462717 0.000000 155244.627173 0
EDGE_SE2 137 147 2.916665 0.743678 0.389358 240.234150 0.000000 0.000000 240.234150 0.000000 2402.341500 2
EDGE_SE2 138 139 0.411345 0.043513 0.128793 16661.906877 0.000000 0.000000 16661.906877 0.000000 166619.068767 0
EDGE_SE2 138 148 2.717082 0.640364 0.663384 191.909272 0.000000 0.000000 191.909272 0.000000 1919.092717 2
EDGE_SE2 139 140 0.424312 0.043579 0.172135 27883.102604 0.000000 0.000000 27883.102604 0.000000 278831.026040 0
EDGE_SE2 139 149 2.508490 0.406866 0.683258 274.069537 0.000000 0.000000 274.069537 0.000000 2740.695368 2
EDGE_SE2 140 141 0.438144 0.003393 0.025630 26896.604563 0.000000 0.000000 26896.604563 0.000000 268966.045626 0
EDGE_SE2 140 150 2.255505 0.083834 0.532292 214.942894 0.000000 0.000000 214.942894 0.000000 2149.428936 2
EDGE_SE2 141 142 0.435307 -0.012325 -0.038109 21006.940710 0.000000 0.000000 21006.940710 0.000000 210069.407097 0
EDGE_SE2 141 151 1.986158 0.147037 0.676013 319.844715 0.000000 0.000000 319.844715 0.000000 3198.447155 2
EDGE_SE2_XY 142 311 2.097475 -0.357923 100.000000 0.000000 1000.000000 8
EDGE_SE2 142 143 0.362209 -0.008553 -0.056619 26805.276872 0.000000 0.000000 26805.276872 0.000000 268052.768717 0
EDGE_SE2 142 152 1.599190 0.279817 0.851770 164.968873 0.000000 0.000000 164.968873 0.000000 1649.688731 2
EDGE_SE2_XY 143 311 1.740584 -0.248773 100.000000 0.000000 1000.000000 8
EDGE_SE2 143 144 0.306560 -0.033175 -0.195538 35200.169702 0.000000 0.000000 35200.169702 0.000000 352001.697021 0
EDGE_SE2 143 153 1.332463 0.557384 1.175568 147.379619 0.000000 0.000000 147.379619 0.000000 1473.796193 2
EDGE_SE2_XY 144 311 1.446217 0.059566 100.000000 0.000000 1000.000000 8
EDGE_SE2 144 145 0.028957 -0.000105 -0.007599 1000.000000 0.000000 0.000000 1000.000000 0.000000 1000.000000 0
EDGE_SE2 144 154 0.936736 1.056328 1.421038 393.669750 0.000000 0.000000 393.669750 0.000000 3936.697504 2
EDGE_SE2 144 155 0.986041 1.398564 1.435391 172.416997 0.000000 0.000000 172.416997 0.000000 1724.169970 2
EDGE_SE2_XY 145 311 1.420085 0.070959 100.000000 0.000000 1000.000000 8
EDGE_SE2 145 146 0.032282 0.000632 0.040600 1000.000000 0.000000 0.000000 1000.000000 0.000000 1000.000000 0
EDGE_SE2_XY 146 311 1.397978 0.012988 100.000000 0.000000 1000.000000 8
EDGE_SE2 146 147 0.164569 0.019459 0.254326 31908.021984 0.000000 0.000000 31908.021984 0.000000 319080.219845 0
EDGE_SE2 146 156 1.044483 1.691717 1.422196 215.999692 0.000000 0.000000 215.999692 0.000000 2159.996916 2
EDGE_SE2_XY 147 311 1.198903 -0.310302 100.000000 0.000000 1000.000000 8
EDGE_SE2 147 148 0.196487 0.033469 0.344707 45748.775598 0.000000 0.000000 45748.775598 0.000000 457487.755983 0
EDGE_SE2_XY 148 311 0.830419 -0.659171 100.000000 0.000000 1000.000000 8
EDGE_SE2 148 149 0.187092 0.017933 0.146595 49426.225788 0.000000 0.000000 49426.225788 0.000000 494262.257875 0
EDGE_SE2 149 150 0.164064 0.002119 0.015799 39278.098715 0.000000 0.000000 39278.098715 0.000000 392780.987147 0
EDGE_SE2 150 151 0.203186 0.016781 0.175649 32561.658659 0.000000 0.000000 32561.658659 0.000000 325616.586593 0
EDGE_SE2 151 152 0.088460 0.008589 0.137744 37887.822975 0.000000 0.000000 37887.822975 0.000000 378878.229748 0
EDGE_SE2 152 153 0.217139 0.035985 0.261910 42828.253082 0.000000 0.000000 42828.253082 0.000000 428282.530825 0
EDGE_SE2 153 154 0.300262 0.009254 0.049459 15285.612778 0.000000 0.000000 15285.612778 0.000000 152856.127780 0
EDGE_SE2 154 155 0.333210 0.004777 0.010365 23604.196568 0.000000 0.000000 23604.196568 0.000000 236041.965676 0
EDGE_SE2 155 156 0.366466 0.015932 0.000525 18307.687231 0.000000 0.000000 18307.687231 0.000000 183076.872309 0
EDGE_SE2 156 157 0.391435 0.011660 0.010140 58379.955309 0.000000 0.000000 58379.955309 0.000000 583799.553088 0
EDGE_SE2 157 158 0.401810 0.027404 0.172462 1000.000000 0.000000 0.000000 1000.000000 0.000000 1000.000000 0
EDGE_SE2 158 159 0.382478 0.069713 0.152242 35911.924371 0.000000 0.000000 35911.924371 0.000000 359119.243712 0
EDGE_SE2 159 160 0.376795 0.011102 0.044937 13879.600582 0.000000 0.000000 13879.600582 0.000000 138796.005815 0
EDGE_SE2 160 161 0.384681 -0.003977 0.040210 27281.383313 0.000000 0.000000 27281.383313 0.000000 272813.833135 0
EDGE_SE2 161 162 0.435211 0.005786 0.014309 37724.416734 0.000000 0.000000 37724.416734 0.000000 377244.167344 0
EDGE_SE2 162 163 0.414582 -0.016714 0.019615 25853.305974 0.000000 0.000000 25853.305974 0.000000 258533.059742 0
EDGE_SE2 163 164 0.442892 0.015361 0.161300 27047.132366 0.000000 0.000000 27047.132366 0.000000 270471.323661 0
EDGE_SE2 164 165 0.418628 0.055504 0.143697 36955.254996 0.000000 0.000000 36955.254996 0.000000 369552.549957 0
EDGE_SE2 165 166 0.390198 0.029684 0.133483 29770.918037 0.000000 0.000000 29770.918037 0.000000 297709.180366 0
EDGE_SE2 166 167 0.398568 0.024722 0.060240 22705.490113 0.000000 0.000000 22705.490113 0.000000 227054.901131 0
EDGE_SE2 167 168 0.402736 0.000870 0.031058 19110.666385 0.000000 0.000000 19110.666385 0.000000 191106.663847 0
EDGE_SE2 168 169 0.437893 0.057189 0.332904 13849.293186 0.000000 0.000000 13849.293186 0.000000 138492.931858 0
EDGE_SE2 169 170 0.391854 0.030151 0.239209 17748.501157 0.000000 0.000000 17748.501157 0.000000 177485.011574 0
EDGE_SE2 170 171 0.374074 -0.007274 0.050609 30630.351704 0.000000 0.000000 30630.351704 0.000000 306303.517037 0
EDGE_SE2 171 172 0.366704 -0.003471 0.030692 30570.950528 0.000000 0.000000 30570.950528 0.000000 305709.505279 0
EDGE_SE2 172 173 0.404057 0.002704 0.017157 23168.451194 0.000000 0.000000 23168.451194 0.000000 231684.511937 0
EDGE_SE2 173 174 0.455438 0.016140 0.006177 25488.381250 0.000000 0.000000 25488.381250 0.000000 254883.812496 0
EDGE_SE2 174 175 0.409745 0.010304 0.022713 11288.107821 0.000000 0.000000 11288.107821 0.000000 112881.078211 0
EDGE_SE2 175 176 0.402813 0.002322 0.037752 12310.163753 0.000000 0.000000 12310.163753 0.000000 123101.637534 0
EDGE_SE2 176 177 0.401340 -0.038624 -0.276836 150.962703 0.000000 0.000000 150.962703 0.000000 1509.627027 0
EDGE_SE2 177 178 0.182910 -0.131622 -0.337748 14433.621380 0.000000 0.000000 14433.621380 0.000000 144336.213804 0
EDGE_SE2 178 179 0.396171 -0.028351 0.139859 10810.880842 0.000000 0.000000 10810.880842 0.000000 108108.808422 0
EDGE_SE2 179 180 0.376013 0.057260 0.376082 23072.066773 0.000000 0.000000 23072.066773 0.000000 230720.667725 0
EDGE_SE2 180 181 0.402855 0.000818 0.086070 21387.480272 0.000000 0.000000 21387.480272 0.000000 213874.802720 0
EDGE_SE2 181 182 0.361557 -0.023094 0.052613 17930.418214 0.000000 0.000000 17930.418214 0.000000 179304.182138 0
EDGE_SE2 182 183 0.394200 0.021084 0.136709 20365.761270 0.000000 0.000000 20365.761270 0.000000 203657.612700 0
EDGE_SE2 183 184 0.424822 0.010662 0.038681 20029.713384 0.000000 0.000000 20029.713384 0.000000 200297.133842 0
EDGE_SE2 184 185 0.415145 -0.000734 0.019129 23480.274232 0.000000 0.000000 23480.274232 0.000000 234802.742316 0
EDGE_SE2 185 186 0.462135 0.037414 -0.014111 19702.664315 0.000000 0.000000 19702.664315 0.000000 197026.643149 0
EDGE_SE2 186 187 0.423179 -0.010450 -0.045126 17880.760499 0.000000 0.000000 17880.760499 0.000000 178807.604988 0
EDGE_SE2 187 188 0.392125 -0.009950 -0.041768 35103.197981 0.000000 0.000000 35103.197981 0.000000 351031.979806 0
EDGE_SE2 188 189 0.391204 -0.007866 -0.053955 27229.137247 0.000000 0.000000 27229.137247 0.000000 272291.372469 0
EDGE_SE2 189 190 0.434523 0.019987 0.260591 19823.732114 0.000000 0.000000 19823.732114 0.000000 198237.321143 0
EDGE_SE2 190 191 0.313937 0.041270 0.368804 31428.148684 0.000000 0.000000 31428.148684 0.000000 314281.486845 0
EDGE_SE2 191 192 0.395813 0.065157 0.237483 23116.988113 0.000000 0.000000 23116.988113 0.000000 231169.881128 0
EDGE_SE2 192 193 0.343954 -0.001838 0.068703 19517.701123 0.000000 0.000000 19517.701123 0.000000 195177.011229 0
EDGE_SE2 193 194 0.390753 0.033287 0.163933 21321.067303 0.000000 0.000000 21321.067303 0.000000 213210.673035 0
EDGE_SE2 194 195 0.393557 0.046560 0.301051 29683.294734 0.000000 0.000000 29683.294734 0.000000 296832.947340 0
EDGE_SE2 195 196 0.358361 0.029438 0.223816 31193.296448 0.000000 0.000000 31193.296448 0.000000 311932.964479 0
EDGE_SE2 196 197 0.417278 -0.012257 -0.070753 18369.608073 0.000000 0.000000 18369.608073 0.000000 183696.080727 0
EDGE_SE2 197 198 0.518748 -0.071808 -0.080832 14644.165385 0.000000 0.000000 14644.165385 0.000000 146441.653854 0
EDGE_SE2 198 199 0.431140 0.027882 0.119810 27282.216576 0.000000 0.000000 27282.216576 0.000000 272822.165757 0
EDGE_SE2 199 200 0.432632 -0.010538 -0.010190 32537.153810 0.000000 0.000000 32537.153810 0.000000 325371.538096 0
EDGE_SE2 200 201 0.443587 -0.077355 -0.341418 20815.365238 0.000000 0.000000 20815.365238 0.000000 208153.652381 0
EDGE_SE2 201 202 0.418348 -0.034371 -0.078984 24867.108902 0.000000 0.000000 24867.108902 0.000000 248671.089017 0
EDGE_SE2 202 203 0.333482 0.038320 0.319493 20763.180985 0.000000 0.000000 20763.180985 0.000000 207631.809847 0
EDGE_SE2 203 204 0.081828 0.004418 0.147694 30023.901247 0.000000 0.000000 30023.901247 0.000000 300239.012469 0
EDGE_SE2 204 205 0.150332 0.033738 0.373522 25296.232688 0.000000 0.000000 25296.232688 0.000000 252962.326876 0
EDGE_SE2 205 206 0.203747 0.035719 0.391418 28339.711634 0.000000 0.000000 28339.711634 0.000000 283397.116340 0
EDGE_SE2 206 207 0.160335 0.003577 0.072493 28044.598619 0.000000 0.000000 28044.598619 0.000000 280445.986187 0
EDGE_SE2 207 208 0.143034 -0.001056 0.052660 35785.668439 0.000000 0.000000 35785.668439 0.000000 357856.684387 0
EDGE_SE2 208 209 0.194998 0.021290 0.091493 20594.209193 0.000000 0.000000 20594.209193 0.000000 205942.091931 0
EDGE_SE2 209 210 0.172859 -0.001833 0.024185 81756.724999 0.000000 0.000000 81756.724999 0.000000 817567.249986 0
EDGE_SE2 210 211 0.202794 0.002462 0.044666 28753.986744 0.000000 0.000000 28753.986744 0.000000 287539.867439 0
EDGE_SE2 211 212 0.188101 0.015072 0.154858 26520.877301 0.000000 0.000000 26520.877301 0.000000 265208.773014 0
EDGE_SE2 212 213 0.221564 0.035836 0.183908 45223.526701 0.000000 0.000000 45223.526701 0.000000 452235.267010 0
EDGE_SE2 213 214 0.243832 0.011692 0.101362 33621.108591 0.000000 0.000000 33621.108591 0.000000 336211.085913 0
EDGE_SE2 213 241 0.167326 -0.279608 -1.899470 161.603973 0.000000 0.000000 161.603973 0.000000 1616.039734 2
EDGE_SE2 213 242 0.027727 -0.689552 -1.865324 205.550179 0.000000 0.000000 205.550179 0.000000 2055.501794 2
EDGE_SE2 213 243 -0.099157 -1.101570 -1.771484 181.378554 0.000000 0.000000 181.378554 0.000000 1813.785536 2
EDGE_SE2 214 215 0.276801 0.033253 0.173859 25306.640946 0.000000 0.000000 25306.640946 0.000000 253066.409460 0
EDGE_SE2 215 216 0.266123 0.008598 0.060206 248.165681 0.000000 0.000000 248.165681 0.000000 2481.656806 0
EDGE_SE2 216 217 0.298694 0.003009 0.017351 278.169357 0.000000 0.000000 278.169357 0.000000 2781.693567 0
EDGE_SE2 217 218 0.326001 0.002355 0.014585 141.894082 0.000000 0.000000 141.894082 0.000000 1418.940819 0
EDGE_SE2 218 219 0.346077 -0.012862 -0.118415 568.196702 0.000000 0.000000 568.196702 0.000000 5681.967022 0
EDGE_SE2 219 220 0.310524 -0.048367 -0.352284 1000.000000 0.000000 0.000000 1000.000000 0.000000 1000.000000 0
EDGE_SE2 220 221 0.268065 -0.062879 -0.439535 26221.501865 0.000000 0.000000 26221.501865 0.000000 262215.018649 0
EDGE_SE2 221 222 0.209544 -0.026202 -0.163892 29263.566731 0.000000 0.000000 29263.566731 0.000000 292635.667311 0
EDGE_SE2 222 224 -0.125410 -0.006837 0.013504 27389.653565 0.000000 0.000000 27389.653565 0.000000 273896.535646 0
EDGE_SE2 224 225 -0.174087 -0.002706 0.030694 30243.859312 0.000000 0.000000 30243.859312 0.000000 302438.593123 0
EDGE_SE2 225 226 -0.253184 -0.031764 0.238567 29689.651429 0.000000 0.000000 29689.651429 0.000000 296896.514287 0
EDGE_SE2 226 227 -0.185861 0.006516 0.002307 20939.017533 0.000000 0.000000 20939.017533 0.000000 209390.175327 0
EDGE_SE2 227 228 -0.172157 0.028821 -0.267428 28950.619738 0.000000 0.000000 28950.619738 0.000000 289506.197381 0
EDGE_SE2 228 229 -0.229700 0.036042 -0.238670 41485.394562 0.000000 0.000000 41485.394562 0.000000 414853.945623 0
EDGE_SE2 229 230 -0.249373 0.015273 -0.061718 37419.846840 0.000000 0.000000 37419.846840 0.000000 374198.468397 0
EDGE_SE2 230 231 -0.118370 0.001632 -0.090928 39366.172000 0.000000 0.000000 39366.172000 0.000000 393661.720003 0
EDGE_SE2 231 232 -0.020168 0.030502 -0.438988 19778.198710 0.000000 0.000000 19778.198710 0.000000 197781.987097 0
EDGE_SE2 232 233 -0.015163 0.002122 -0.344801 19949.125093 0.000000 0.000000 19949.125093 0.000000 199491.250933 0
EDGE_SE2 233 236 0.259078 -0.018495 -0.162457 32276.281464 0.000000 0.000000 32276.281464 0.000000 322762.814641 0
EDGE_SE2 236 238 0.309663 -0.024405 -0.237200 26777.016826 0.000000 0.000000 26777.016826 0.000000 267770.168258 0
EDGE_SE2 238 239 0.466657 -0.068391 -0.160304 20245.733610 0.000000 0.000000 20245.733610 0.000000 202457.336100 0
EDGE_SE2 239 240 0.467700 0.074156 0.279489 24574.470858 0.000000 0.000000 24574.470858 0.000000 245744.708577 0
EDGE_SE2 240 241 0.465978 0.066215 0.236310 26404.461858 0.000000 0.000000 26404.461858 0.000000 264044.618584 0
EDGE_SE2 241 242 0.436665 0.003511 0.036524 22952.786933 0.000000 0.000000 22952.786933 0.000000 229527.869330 0
EDGE_SE2 242 243 0.422408 0.011408 0.088339 28735.626281 0.000000 0.000000 28735.626281 0.000000 287356.262806 0
EDGE_SE2 243 244 0.390710 0.044191 0.156881 24435.517249 0.000000 0.000000 24435.517249 0.000000 244355.172495 0
EDGE_SE2 244 245 0.400742 0.012320 0.016395 12114.601883 0.000000 0.000000 12114.601883 0.000000 121146.018830 0
EDGE_SE2 245 246 0.397516 0.004549 0.013727 13460.352788 0.000000 0.000000 13460.352788 0.000000 134603.527884 0
EDGE_SE2 246 247 0.395741 0.004010 0.004835 33876.938192 0.000000 0.000000 33876.938192 0.000000 338769.381922 0
EDGE_SE2 247 248 0.432531 -0.000509 -0.004811 17556.548933 0.000000 0.000000 17556.548933 0.000000 175565.489327 0
EDGE_SE2 248 249 0.446855 -0.001592 -0.073066 13751.670956 0.000000 0.000000 13751.670956 0.000000 137516.709563 0
EDGE_SE2 249 250 0.457617 -0.028992 -0.159337 11525.716538 0.000000 0.000000 11525.716538 0.000000 115257.165382 0
EDGE_SE2 250 251 0.506957 0.061147 0.168853 13656.354236 0.000000 0.000000 13656.354236 0.000000 136563.542356 0
EDGE_SE2 251 252 0.436488 0.017614 0.022304 26200.396873 0.000000 0.000000 26200.396873 0.000000 262003.968731 0
EDGE_SE2 252 253 0.453310 -0.003438 -0.039280 20864.517370 0.000000 0.000000 20864.517370 0.000000 208645.173700 0
EDGE_SE2 253 254 0.551440 -0.001562 -0.035900 11725.415437 0.000000 0.000000 11725.415437 0.000000 117254.154366 0
EDGE_SE2 254 255 0.529221 0.017817 -0.035902 13994.096819 0.000000 0.000000 13994.096819 0.000000 139940.968190 0
EDGE_SE2 255 256 0.506786 0.016564 -0.038263 12461.897854 0.000000 0.000000 12461.897854 0.000000 124618.978543 0
EDGE_SE2 256 257 0.545688 -0.006544 -0.024214 1000.000000 0.000000 0.000000 1000.000000 0.000000 1000.000000 0
EDGE_SE2 257 258 0.558471 0.010325 -0.034429 15791.714554 0.000000 0.000000 15791.714554 0.000000 157917.145538 0
EDGE_SE2 258 259 0.554342 0.010862 -0.035907 16195.142503 0.000000 0.000000 16195.142503 0.000000 161951.425032 0
EDGE_SE2 259 260 0.565055 0.054133 0.215625 14526.671509 0.000000 0.000000 14526.671509 0.000000 145266.715090 0
EDGE_SE2 260 261 0.551959 0.073093 0.167455 26722.413223 0.000000 0.000000 26722.413223 0.000000 267224.132229 0
EDGE_SE2 261 262 0.558127 0.000698 0.029577 18163.637524 0.000000 0.000000 18163.637524 0.000000 181636.375243 0
EDGE_SE2 262 263 0.531319 0.009861 0.130782 14379.899077 0.000000 0.000000 14379.899077 0.000000 143798.990772 0
EDGE_SE2 263 264 0.365945 0.070888 0.450235 26160.924107 0.000000 0.000000 26160.924107 0.000000 261609.241074 0
EDGE_SE2 264 265 0.199575 0.000729 0.073478 29706.307314 0.000000 0.000000 29706.307314 0.000000 297063.073139 0
EDGE_SE2 265 266 0.183886 0.021068 0.105389 25250.579075 0.000000 0.000000 25250.579075 0.000000 252505.790748 0
EDGE_SE2 266 267 0.175954 0.016999 0.136965 23489.373858 0.000000 0.000000 23489.373858 0.000000 234893.738576 0
EDGE_SE2 267 268 0.191304 0.029877 0.144018 29904.215414 0.000000 0.000000 29904.215414 0.000000 299042.154141 0
EDGE_SE2 268 269 0.184630 0.018902 0.148206 23291.529809 0.000000 0.000000 23291.529809 0.000000 232915.298095 0
EDGE_SE2 269 270 0.192718 0.022775 0.150401 15176.710788 0.000000 0.000000 15176.710788 0.000000 151767.107877 0
EDGE_SE2 270 271 0.184908 0.018188 0.150983 14598.930864 0.000000 0.000000 14598.930864 0.000000 145989.308643 0
EDGE_SE2 271 272 0.261741 0.012985 0.083932 40404.994056 0.000000 0.000000 40404.994056 0.000000 404049.940560 0
EDGE_SE2 272 273 0.385378 0.020036 0.073403 29466.752942 0.000000 0.000000 29466.752942 0.000000 294667.529418 0
EDGE_SE2 273 274 0.353657 0.018270 0.141046 22054.203446 0.000000 0.000000 22054.203446 0.000000 220542.034462 0
EDGE_SE2 274 275 0.321858 0.075178 0.413705 31774.804978 0.000000 0.000000 31774.804978 0.000000 317748.049783 0
EDGE_SE2 275 276 0.179057 0.004965 0.003388 25826.402106 0.000000 0.000000 25826.402106 0.000000 258264.021061 0
EDGE_SE2 276 277 0.245778 -0.009170 -0.161542 25738.034543 0.000000 0.000000 25738.034543 0.000000 257380.345429 0
EDGE_SE2 277 278 0.314856 -0.006728 -0.138418 24287.798700 0.000000 0.000000 24287.798700 0.000000 242877.987000 0
EDGE_SE2 278 279 0.351300 -0.038632 -0.317787 18026.702316 0.000000 0.000000 18026.702316 0.000000 180267.023159 0
EDGE_SE2 279 280 0.374131 -0.012431 -0.119173 24405.345658 0.000000 0.000000 24405.345658 0.000000 244053.456581 0
EDGE_SE2_XY 280 309 2.453796 -0.696913 100.000000 0.000000 1000.000000 8
EDGE_SE2 280 281 0.347067 0.010646 -0.063550 25400.066509 0.000000 0.000000 25400.066509 0.000000 254000.665091 0
EDGE_SE2_XY 281 309 2.168801 -0.558632 100.000000 0.000000 1000.000000 8
EDGE_SE2 281 282 0.392151 -0.012103 -0.231691 22012.579263 0.000000 0.000000 22012.579263 0.000000 220125.792631 0
EDGE_SE2_XY 282 309 1.866603 -0.109361 100.000000 0.000000 1000.000000 8
EDGE_SE2 282 283 0.404429 -0.039947 -0.113087 24115.473151 0.000000 0.000000 24115.473151 0.000000 241154.731508 0
EDGE_SE2_XY 283 309 1.478673 0.106712 100.000000 0.000000 1000.000000 8
EDGE_SE2 283 284 0.120005 0.009496 0.093608 39365.398732 0.000000 0.000000 39365.398732 0.000000 393653.987323 0
EDGE_SE2_XY 284 309 1.365101 -0.020210 100.000000 0.000000 1000.000000 8
EDGE_SE2 284 285 -0.002573 -0.000200 -0.242931 42155.786954 0.000000 0.000000 42155.786954 0.000000 421557.869535 0
EDGE_SE2_XY 285 309 1.334329 0.298052 100.000000 0.000000 1000.000000 8
EDGE_SE2 285 286 -0.002898 -0.000791 -0.430512 38158.742515 0.000000 0.000000 38158.742515 0.000000 381587.425148 0
EDGE_SE2_XY 286 309 1.083820 0.796642 100.000000 0.000000 1000.000000 8
EDGE_SE2 286 287 -0.000471 -0.002654 -0.520393 20721.469692 0.000000 0.000000 20721.469692 0.000000 207214.696915 0
EDGE_SE2 287 288 -0.000476 -0.005364 -0.516309 36495.645080 0.000000 0.000000 36495.645080 0.000000 364956.450799 0
EDGE_SE2 288 289 0.004653 -0.004883 -0.133941 30235.520207 0.000000 0.000000 30235.520207 0.000000 302355.202067 0
EDGE_SE2 289 290 0.197383 -0.008307 -0.003051 25277.430273 0.000000 0.000000 25277.430273 0.000000 252774.302728 0
EDGE_SE2 290 291 0.270604 -0.005152 -0.154747 28573.455009 0.000000 0.000000 28573.455009 0.000000 285734.550091 0
EDGE_SE2 291 292 0.386867 -0.035641 -0.179844 23574.059606 0.000000 0.000000 23574.059606 0.000000 235740.596062 0
EDGE_SE2_XY 292 310 1.994084 1.084928 100.000000 0.000000 1000.000000 8
EDGE_SE2 292 293 0.442028 0.009779 0.015941 19747.247718 0.000000 0.000000 19747.247718 0.000000 197472.477176 0
EDGE_SE2 293 294 0.420927 0.067755 0.353042 14867.529462 0.000000 0.000000 14867.529462 0.000000 148675.294621 0
EDGE_SE2_XY 294 310 1.513021 0.573469 100.000000 0.000000 1000.000000 8
EDGE_SE2 294 295 0.174810 0.032438 0.304156 25061.576101 0.000000 0.000000 25061.576101 0.000000 250615.761012 0
EDGE_SE2_XY 295 310 1.447874 0.129168 100.000000 0.000000 1000.000000 8
EDGE_SE2 295 296 0.137116 0.005997 0.083225 14854.532675 0.000000 0.000000 14854.532675 0.000000 148545.326746 0
EDGE_SE2_XY 296 310 1.321593 0.035881 100.000000 0.000000 1000.000000 8
EDGE_SE2 296 297 0.007568 -0.001217 -0.415339 30625.898810 0.000000 0.000000 30625.898810 0.000000 306258.988100 0
EDGE_SE2_XY 297 310 1.196927 0.543089 100.000000 0.000000 1000.000000 8
EDGE_SE2 297 298 0.014571 -0.003451 -0.175798 33001.530904 0.000000 0.000000 33001.530904 0.000000 330015.309040 0
EDGE_SE2 298 299 0.339661 -0.000129 -0.006465 25920.268868 0.000000 0.000000 25920.268868 0.000000 259202.688684 0
EDGE_SE2 299 300 0.399778 0.007104 -0.002219 30525.066289 0.000000 0.000000 30525.066289 0.000000 305250.662886 0
EDGE_SE2 300 301 0.386438 -0.007296 -0.000656 18254.816525 0.000000 0.000000 18254.816525 0.000000 182548.165249 0
EDGE_SE2 301 302 0.434055 0.036961 0.190914 14459.853480 0.000000 0.000000 14459.853480 0.000000 144598.534795 0
EDGE_SE2 302 303 0.417479 0.049375 0.130791 19162.179039 0.000000 0.000000 19162.179039 0.000000 191621.790388 0
EDGE_SE2 303 304 0.364421 0.059172 0.350182 14327.029534 0.000000 0.000000 14327.029534 0.000000 143270.295335 0
EDGE_SE2 304 305 0.351911 0.071060 0.269762 19173.276377 0.000000 0.000000 19173.276377 0.000000 191732.763769 0
+275
View File
@@ -0,0 +1,275 @@
#timestamp x y z qx qy qz qw
1407866490.998574 -0.018821 0.001903 0.000000 0.000000 0.000000 -0.047072 0.998892
1407866507.619801 0.010280 0.004205 0.000000 0.000000 0.000000 -0.046122 0.998936
1407866508.714309 0.087373 0.000889 0.000000 0.000000 0.000000 -0.046603 0.998914
1407866511.002723 0.296141 -0.013923 0.000000 0.000000 0.000000 -0.118842 0.992913
1407866512.097148 0.429407 -0.052602 0.000000 0.000000 0.000000 -0.224680 0.974433
1407866513.191255 0.553080 -0.128367 0.000000 0.000000 0.000000 -0.327185 0.944960
1407866514.285776 0.700719 -0.241444 0.000000 0.000000 0.000000 -0.342793 0.939411
1407866515.381313 0.881329 -0.384736 0.000000 0.000000 0.000000 -0.319289 0.947657
1407866516.576688 1.068297 -0.478649 0.000000 0.000000 0.000000 -0.195200 0.980763
1407866517.671582 1.272805 -0.542910 0.000000 0.000000 0.000000 -0.169426 0.985543
1407866518.766523 1.444832 -0.594900 0.000000 0.000000 0.000000 -0.164745 0.986336
1407866519.861752 1.661547 -0.648609 0.000000 0.000000 0.000000 -0.160462 0.987042
1407866520.956763 1.845740 -0.695034 0.000000 0.000000 0.000000 -0.118097 0.993002
1407866522.052037 2.039779 -0.716908 0.000000 0.000000 0.000000 -0.051041 0.998697
1407866526.530236 2.084039 -0.717966 0.000000 0.000000 0.000000 -0.170268 0.985398
1407866527.624120 2.083719 -0.717926 0.000000 0.000000 0.000000 -0.276245 0.961087
1407866528.718138 2.085240 -0.717822 0.000000 0.000000 0.000000 -0.379295 0.925276
1407866529.812788 2.082419 -0.715848 0.000000 0.000000 0.000000 -0.433745 0.901036
1407866532.001323 2.081128 -0.716880 0.000000 0.000000 0.000000 -0.513792 0.857915
1407866533.095486 2.077018 -0.717482 0.000000 0.000000 0.000000 -0.632060 0.774919
1407866534.189364 2.078360 -0.714059 0.000000 0.000000 0.000000 -0.743302 0.668956
1407866535.284140 2.074738 -0.718976 0.000000 0.000000 0.000000 -0.846292 0.532720
1407866538.668554 2.066952 -0.737120 0.000000 0.000000 0.000000 0.918368 -0.395726
1407866539.763318 2.037545 -0.753227 0.000000 0.000000 0.000000 0.957068 -0.289865
1407866541.952727 1.944562 -0.822564 0.000000 0.000000 0.000000 0.957086 -0.289804
1407866543.047381 1.857647 -0.877537 0.000000 0.000000 0.000000 0.957003 -0.290079
1407866544.142148 1.775841 -0.933880 0.000000 0.000000 0.000000 0.957112 -0.289720
1407866545.237174 1.687230 -0.987057 0.000000 0.000000 0.000000 0.957138 -0.289631
1407866546.332307 1.568787 -1.067911 0.000000 0.000000 0.000000 0.957127 -0.289669
1407866547.426697 1.449920 -1.149455 0.000000 0.000000 0.000000 0.957265 -0.289213
1407866548.521370 1.321487 -1.236644 0.000000 0.000000 0.000000 0.957061 -0.289887
1407866549.615361 1.158439 -1.368139 0.000000 0.000000 0.000000 0.957886 -0.287150
1407866550.910384 0.921535 -1.573748 0.000000 0.000000 0.000000 0.947394 -0.320071
1407866552.005280 0.709936 -1.748692 0.000000 0.000000 0.000000 0.946215 -0.323538
1407866553.100058 0.550565 -1.855901 0.000000 0.000000 0.000000 0.965381 -0.260843
1407866554.194437 0.554207 -1.844870 0.000000 0.000000 0.000000 0.970309 -0.241871
1407866555.289701 0.521571 -1.859931 0.000000 0.000000 0.000000 0.995848 -0.091027
1407866556.385720 0.482771 -1.863258 0.000000 0.000000 0.000000 0.998100 0.061609
1407866557.480244 0.463196 -1.859692 0.000000 0.000000 0.000000 0.992330 0.123618
1407866560.764548 0.354761 -1.822237 0.000000 0.000000 0.000000 0.965980 0.258617
1407866561.860189 0.312926 -1.789290 0.000000 0.000000 0.000000 0.928206 0.372067
1407866564.148976 0.127902 -1.610420 0.000000 0.000000 0.000000 0.912854 0.408286
1407866565.244358 -0.038672 -1.407648 0.000000 0.000000 0.000000 0.892071 0.451895
1407866566.339509 -0.171125 -1.208020 0.000000 0.000000 0.000000 0.866245 0.499619
1407866567.434527 -0.299669 -0.986095 0.000000 0.000000 0.000000 0.859128 0.511761
1407866568.529605 -0.429248 -0.777459 0.000000 0.000000 0.000000 0.886515 0.462701
1407866569.624403 -0.590374 -0.600904 0.000000 0.000000 0.000000 0.928497 0.371340
1407866570.718956 -0.789878 -0.425549 0.000000 0.000000 0.000000 0.940347 0.340217
1407866571.814247 -1.025665 -0.268512 0.000000 0.000000 0.000000 0.967895 0.251355
1407866572.910246 -1.262513 -0.101791 0.000000 0.000000 0.000000 0.948168 0.317770
1407866574.006012 -1.543017 0.112002 0.000000 0.000000 0.000000 0.949381 0.314126
1407866575.099899 -1.800448 0.287651 0.000000 0.000000 0.000000 0.952593 0.304249
1407866576.192048 -2.027234 0.429167 0.000000 0.000000 0.000000 0.954186 0.299214
1407866577.287067 -2.242492 0.564512 0.000000 0.000000 0.000000 0.938831 0.344377
1407866578.383461 -2.392437 0.735948 0.000000 0.000000 0.000000 0.859719 0.510768
1407866579.477660 -2.456007 0.915472 0.000000 0.000000 0.000000 0.745087 0.666967
1407866580.571835 -2.447401 1.119434 0.000000 0.000000 0.000000 0.615528 0.788115
1407866581.766453 -2.343626 1.399122 0.000000 0.000000 0.000000 0.522266 0.852783
1407866582.862151 -2.210320 1.618923 0.000000 0.000000 0.000000 0.451630 0.892205
1407866583.957178 -2.037981 1.826477 0.000000 0.000000 0.000000 0.369761 0.929127
1407866585.051578 -1.819214 2.017037 0.000000 0.000000 0.000000 0.278296 0.960495
1407866586.146970 -1.626484 2.141689 0.000000 0.000000 0.000000 0.252230 0.967667
1407866587.241600 -1.431843 2.268330 0.000000 0.000000 0.000000 0.287841 0.957678
1407866588.336301 -1.131725 2.565907 0.000000 0.000000 0.000000 0.452199 0.891917
1407866589.430887 -0.960305 2.856464 0.000000 0.000000 0.000000 0.505528 0.862810
1407866590.525512 -0.769098 3.212229 0.000000 0.000000 0.000000 0.514217 0.857660
1407866591.720048 -0.552196 3.612437 0.000000 0.000000 0.000000 0.523883 0.851790
1407866592.915133 -0.344824 4.002937 0.000000 0.000000 0.000000 0.533715 0.845664
1407866594.009338 -0.165980 4.372959 0.000000 0.000000 0.000000 0.544466 0.838783
1407866595.104237 -0.000840 4.754516 0.000000 0.000000 0.000000 0.554623 0.832102
1407866596.199136 0.160834 5.145348 0.000000 0.000000 0.000000 0.558383 0.829583
1407866597.393019 0.356474 5.576579 0.000000 0.000000 0.000000 0.529644 0.848220
1407866598.488051 0.575064 5.956397 0.000000 0.000000 0.000000 0.493359 0.869826
1407866599.583084 0.777945 6.354420 0.000000 0.000000 0.000000 0.584557 0.811352
1407866600.677827 0.934711 6.760097 0.000000 0.000000 0.000000 0.523112 0.852264
1407866601.871843 1.140618 7.092061 0.000000 0.000000 0.000000 0.466277 0.884639
1407866602.966367 1.288419 7.314858 0.000000 0.000000 0.000000 0.457355 0.889284
1407866604.060880 1.443200 7.539721 0.000000 0.000000 0.000000 0.446799 0.894634
1407866605.155168 1.612232 7.761541 0.000000 0.000000 0.000000 0.448755 0.893655
1407866606.249554 1.747502 7.979702 0.000000 0.000000 0.000000 0.491619 0.870811
1407866607.343460 1.902404 8.240162 0.000000 0.000000 0.000000 0.502459 0.864601
1407866608.436581 2.057402 8.517191 0.000000 0.000000 0.000000 0.509730 0.860334
1407866609.528842 2.231246 8.834553 0.000000 0.000000 0.000000 0.486413 0.873729
1407866610.721871 2.422175 9.197444 0.000000 0.000000 0.000000 0.455397 0.890288
1407866611.817128 2.635216 9.444225 0.000000 0.000000 0.000000 0.366833 0.930287
1407866612.911280 2.875369 9.649100 0.000000 0.000000 0.000000 0.262017 0.965063
1407866614.005810 3.153517 9.782751 0.000000 0.000000 0.000000 0.184841 0.982768
1407866615.099568 3.441708 9.893577 0.000000 0.000000 0.000000 0.177227 0.984170
1407866616.293449 3.778583 10.019657 0.000000 0.000000 0.000000 0.169345 0.985557
1407866617.388358 4.011800 10.101053 0.000000 0.000000 0.000000 0.125711 0.992067
1407866620.673023 4.127961 10.134566 0.000000 0.000000 0.000000 0.125363 0.992111
1407866621.767547 4.309738 10.187388 0.000000 0.000000 0.000000 0.125344 0.992113
1407866622.862446 4.517190 10.234516 0.000000 0.000000 0.000000 0.053931 0.998545
1407866623.957714 4.721990 10.245676 0.000000 0.000000 0.000000 -0.079396 0.996843
1407866625.052727 4.933336 10.200550 0.000000 0.000000 0.000000 -0.168309 0.985734
1407866626.147958 5.128973 10.130827 0.000000 0.000000 0.000000 -0.254825 0.966987
1407866627.243350 5.313501 9.992896 0.000000 0.000000 0.000000 -0.337614 0.941285
1407866628.338405 5.490282 9.820534 0.000000 0.000000 0.000000 -0.421454 0.906850
1407866629.533171 5.631853 9.593987 0.000000 0.000000 0.000000 -0.504057 0.863670
1407866630.628695 5.758283 9.358323 0.000000 0.000000 0.000000 -0.540360 0.841434
1407866631.723830 5.871795 9.097071 0.000000 0.000000 0.000000 -0.524198 0.851596
1407866632.818599 6.045954 8.796564 0.000000 0.000000 0.000000 -0.470239 0.882539
1407866633.913630 6.222126 8.525295 0.000000 0.000000 0.000000 -0.461262 0.887264
1407866635.009017 6.467393 8.217825 0.000000 0.000000 0.000000 -0.400399 0.916341
1407866636.104661 6.751177 7.932839 0.000000 0.000000 0.000000 -0.338312 0.941034
1407866637.199800 7.058990 7.671934 0.000000 0.000000 0.000000 -0.328304 0.944572
1407866638.294829 7.411540 7.411335 0.000000 0.000000 0.000000 -0.325911 0.945400
1407866639.489217 7.785484 7.131861 0.000000 0.000000 0.000000 -0.319200 0.947687
1407866640.584486 8.138420 6.877180 0.000000 0.000000 0.000000 -0.311368 0.950289
1407866641.679626 8.472431 6.623835 0.000000 0.000000 0.000000 -0.283780 0.958889
1407866642.774170 8.831738 6.409918 0.000000 0.000000 0.000000 -0.251561 0.967841
1407866643.868312 9.210677 6.246479 0.000000 0.000000 0.000000 -0.188733 0.982028
1407866644.962570 9.620081 6.129005 0.000000 0.000000 0.000000 -0.103605 0.994618
1407866646.058079 10.048700 6.041355 0.000000 0.000000 0.000000 -0.090818 0.995867
1407866647.153083 10.473604 5.949670 0.000000 0.000000 0.000000 -0.109756 0.993959
1407866648.248065 10.824802 5.861507 0.000000 0.000000 0.000000 -0.137836 0.990455
1407866649.343127 11.110338 5.745332 0.000000 0.000000 0.000000 -0.233842 0.972274
1407866650.537535 11.120676 5.709708 0.000000 0.000000 0.000000 -0.236696 0.971584
1407866651.632160 11.145561 5.700298 0.000000 0.000000 0.000000 -0.216838 0.976208
1407866652.726947 11.302622 5.648001 0.000000 0.000000 0.000000 -0.091241 0.995829
1407866653.920195 11.501653 5.644941 0.000000 0.000000 0.000000 0.080939 0.996719
1407866655.014966 11.683139 5.692550 0.000000 0.000000 0.000000 0.153767 0.988107
1407866656.109619 11.838415 5.744061 0.000000 0.000000 0.000000 0.161655 0.986847
1407866657.203510 12.025124 5.824342 0.000000 0.000000 0.000000 0.247696 0.968838
1407866658.498191 12.098145 5.873927 0.000000 0.000000 0.000000 0.313897 0.949457
1407866659.591197 12.250645 6.031888 0.000000 0.000000 0.000000 0.435298 0.900286
1407866660.685716 12.428667 6.271949 0.000000 0.000000 0.000000 0.457729 0.889092
1407866661.780464 12.617650 6.545463 0.000000 0.000000 0.000000 0.462535 0.886601
1407866662.875132 12.813262 6.854564 0.000000 0.000000 0.000000 0.463016 0.886350
1407866663.969746 13.027008 7.182564 0.000000 0.000000 0.000000 0.467540 0.883972
1407866665.064138 13.214071 7.533982 0.000000 0.000000 0.000000 0.559435 0.828874
1407866666.257910 13.292029 7.914859 0.000000 0.000000 0.000000 0.620887 0.783900
1407866667.352799 13.366314 8.284412 0.000000 0.000000 0.000000 0.638423 0.769686
1407866668.447565 13.440717 8.661846 0.000000 0.000000 0.000000 0.653798 0.756669
1407866669.642344 13.497700 9.093375 0.000000 0.000000 0.000000 0.659210 0.751959
1407866670.737604 13.567890 9.502327 0.000000 0.000000 0.000000 0.666565 0.745447
1407866671.831618 13.601342 9.944291 0.000000 0.000000 0.000000 0.724454 0.689323
1407866672.927274 13.524665 10.359732 0.000000 0.000000 0.000000 0.772064 0.635544
1407866674.021791 13.419994 10.737060 0.000000 0.000000 0.000000 0.812720 0.582655
1407866675.116426 13.267900 11.106734 0.000000 0.000000 0.000000 0.829876 0.557947
1407866676.211560 13.114239 11.479527 0.000000 0.000000 0.000000 0.838407 0.545044
1407866677.305956 12.883054 11.856753 0.000000 0.000000 0.000000 0.917084 0.398695
1407866678.400099 12.592793 12.122919 0.000000 0.000000 0.000000 0.958078 0.286507
1407866679.494651 12.283584 12.334467 0.000000 0.000000 0.000000 0.965006 0.262229
1407866680.589012 11.968527 12.523154 0.000000 0.000000 0.000000 0.968901 0.247448
1407866681.683921 11.611938 12.714665 0.000000 0.000000 0.000000 0.970968 0.239209
1407866682.878047 11.200474 12.912061 0.000000 0.000000 0.000000 0.971683 0.236286
1407866683.972261 10.830281 13.091339 0.000000 0.000000 0.000000 0.974262 0.225420
1407866685.066381 10.466040 13.266440 0.000000 0.000000 0.000000 0.978305 0.207168
1407866686.161599 10.004407 13.482061 0.000000 0.000000 0.000000 0.935017 0.354604
1407866687.258029 9.953629 13.702093 0.000000 0.000000 0.000000 0.862029 0.506860
1407866688.352261 9.784258 14.062366 0.000000 0.000000 0.000000 0.895223 0.445618
1407866689.445889 9.511174 14.327987 0.000000 0.000000 0.000000 0.962709 0.270537
1407866690.640682 9.166089 14.537284 0.000000 0.000000 0.000000 0.973424 0.229009
1407866691.735569 8.851828 14.719330 0.000000 0.000000 0.000000 0.979075 0.203499
1407866692.830335 8.481061 14.857229 0.000000 0.000000 0.000000 0.990667 0.136308
1407866693.925241 8.068318 14.961854 0.000000 0.000000 0.000000 0.993098 0.117285
1407866695.018245 7.664060 15.059411 0.000000 0.000000 0.000000 0.994160 0.107919
1407866696.113389 7.203820 15.122193 0.000000 0.000000 0.000000 0.993355 0.115094
1407866697.208670 6.793315 15.229306 0.000000 0.000000 0.000000 0.990480 0.137656
1407866698.303582 6.418293 15.345899 0.000000 0.000000 0.000000 0.987375 0.158403
1407866699.398829 6.048572 15.475858 0.000000 0.000000 0.000000 0.982720 0.185100
1407866700.493212 5.635717 15.615479 0.000000 0.000000 0.000000 0.998430 0.056020
1407866701.588362 5.318607 15.609688 0.000000 0.000000 0.000000 0.991788 -0.127895
1407866702.782753 4.951555 15.446385 0.000000 0.000000 0.000000 0.969687 -0.244352
1407866703.879211 4.646955 15.285171 0.000000 0.000000 0.000000 0.960764 -0.277366
1407866704.971915 4.333288 15.048895 0.000000 0.000000 0.000000 0.934875 -0.354977
1407866706.066554 4.069259 14.752964 0.000000 0.000000 0.000000 0.871113 -0.491084
1407866707.160589 3.908399 14.431222 0.000000 0.000000 0.000000 -0.810862 0.585237
1407866708.255605 3.764424 14.039219 0.000000 0.000000 0.000000 -0.831109 0.556110
1407866709.351068 3.499021 13.587311 0.000000 0.000000 0.000000 -0.852949 0.521995
1407866710.446274 3.327054 13.190822 0.000000 0.000000 0.000000 -0.820189 0.572093
1407866711.541023 3.167216 12.788557 0.000000 0.000000 0.000000 -0.823104 0.567890
1407866712.637179 2.936628 12.401476 0.000000 0.000000 0.000000 0.907620 -0.419792
1407866713.733315 2.638870 12.105069 0.000000 0.000000 0.000000 0.923487 -0.383630
1407866714.827577 2.429900 11.841890 0.000000 0.000000 0.000000 -0.850700 0.525652
1407866715.921968 2.396690 11.766837 0.000000 0.000000 0.000000 -0.809593 0.586992
1407866717.015490 2.381366 11.613591 0.000000 0.000000 0.000000 -0.686511 0.727120
1407866718.109271 2.428138 11.412343 0.000000 0.000000 0.000000 -0.531990 0.846750
1407866719.203774 2.500350 11.269558 0.000000 0.000000 0.000000 -0.500935 0.865485
1407866720.298085 2.570220 11.145095 0.000000 0.000000 0.000000 -0.477956 0.878384
1407866721.491932 2.693198 10.993080 0.000000 0.000000 0.000000 -0.437248 0.899341
1407866722.586587 2.798317 10.856039 0.000000 0.000000 0.000000 -0.426330 0.904568
1407866723.680597 2.928715 10.701303 0.000000 0.000000 0.000000 -0.405988 0.913878
1407866724.775244 3.065366 10.571947 0.000000 0.000000 0.000000 -0.334040 0.942559
1407866725.870403 3.259684 10.460336 0.000000 0.000000 0.000000 -0.246052 0.969257
1407866726.965157 3.479453 10.354414 0.000000 0.000000 0.000000 -0.196621 0.980480
1407866728.058954 3.747518 10.278508 0.000000 0.000000 0.000000 -0.110736 0.993850
1407866729.153189 3.993212 10.242328 0.000000 0.000000 0.000000 -0.079219 0.996857
1407866730.247701 4.274534 10.210611 0.000000 0.000000 0.000000 -0.069333 0.997594
1407866731.342352 4.570128 10.192375 0.000000 0.000000 0.000000 -0.059969 0.998200
1407866732.437248 4.905264 10.144276 0.000000 0.000000 0.000000 -0.118497 0.992954
1407866733.533264 5.191771 10.027675 0.000000 0.000000 0.000000 -0.288542 0.957467
1407866734.628675 5.380266 9.827485 0.000000 0.000000 0.000000 -0.490335 0.871534
1407866735.724170 5.470501 9.635613 0.000000 0.000000 0.000000 -0.561352 0.827577
1407866737.913337 5.413035 9.749311 0.000000 0.000000 0.000000 -0.554881 0.831930
1407866739.007847 5.344023 9.909112 0.000000 0.000000 0.000000 -0.542087 0.840322
1407866740.102118 5.211081 10.126799 0.000000 0.000000 0.000000 -0.438275 0.898841
1407866741.197046 5.102295 10.277414 0.000000 0.000000 0.000000 -0.437288 0.899322
1407866742.291538 5.019037 10.430739 0.000000 0.000000 0.000000 -0.553308 0.832977
1407866743.386175 4.963478 10.656530 0.000000 0.000000 0.000000 -0.648558 0.761166
1407866744.480685 4.939271 10.905259 0.000000 0.000000 0.000000 -0.671749 0.740779
1407866745.575459 4.929640 11.023314 0.000000 0.000000 0.000000 -0.704735 0.709471
1407866746.670851 4.960577 11.043861 0.000000 0.000000 0.000000 -0.842323 0.538973
1407866747.866966 4.969424 11.056915 0.000000 0.000000 0.000000 0.922309 -0.386452
1407866751.451041 4.774896 10.885308 0.000000 0.000000 0.000000 0.950632 -0.310320
1407866753.641209 4.510896 10.722442 0.000000 0.000000 0.000000 0.980678 -0.195630
1407866754.736755 4.054273 10.606713 0.000000 0.000000 0.000000 0.993197 -0.116444
1407866755.831116 3.616868 10.426530 0.000000 0.000000 0.000000 0.967304 -0.253619
1407866756.925646 3.243752 10.140330 0.000000 0.000000 0.000000 0.930676 -0.365845
1407866758.021524 2.926663 9.840525 0.000000 0.000000 0.000000 0.923849 -0.382756
1407866759.116544 2.636093 9.533817 0.000000 0.000000 0.000000 0.906043 -0.423186
1407866760.212075 2.419199 9.205997 0.000000 0.000000 0.000000 0.870093 -0.492888
1407866761.306862 2.223713 8.856527 0.000000 0.000000 0.000000 -0.865987 0.500066
1407866762.401499 2.028846 8.510715 0.000000 0.000000 0.000000 -0.862485 0.506082
1407866763.495995 1.839230 8.163676 0.000000 0.000000 0.000000 -0.861238 0.508202
1407866764.590514 1.629465 7.786239 0.000000 0.000000 0.000000 -0.862399 0.506230
1407866765.685778 1.409889 7.398134 0.000000 0.000000 0.000000 0.880220 -0.474565
1407866766.781173 1.133766 7.033633 0.000000 0.000000 0.000000 0.915092 -0.403244
1407866767.875662 0.836756 6.620115 0.000000 0.000000 0.000000 0.877736 -0.479145
1407866768.970096 0.615521 6.244519 0.000000 0.000000 0.000000 0.872296 -0.488978
1407866770.064482 0.375548 5.860326 0.000000 0.000000 0.000000 0.881666 -0.471874
1407866771.159248 0.067486 5.403631 0.000000 0.000000 0.000000 0.889864 -0.456226
1407866772.255019 -0.227616 4.964782 0.000000 0.000000 0.000000 0.897803 -0.440398
1407866773.349909 -0.524544 4.556489 0.000000 0.000000 0.000000 0.905950 -0.423384
1407866774.444430 -0.873339 4.176117 0.000000 0.000000 0.000000 0.899491 -0.436940
1407866775.538947 -1.210170 3.732924 0.000000 0.000000 0.000000 0.906794 -0.421575
1407866776.633219 -1.558892 3.304214 0.000000 0.000000 0.000000 0.914123 -0.405436
1407866777.727293 -1.897345 2.851030 0.000000 0.000000 0.000000 -0.865024 0.501730
1407866778.821510 -2.107149 2.336657 0.000000 0.000000 0.000000 -0.819953 0.572430
1407866779.916408 -2.297073 1.813996 0.000000 0.000000 0.000000 -0.811328 0.584591
1407866781.010298 -2.454002 1.307218 0.000000 0.000000 0.000000 -0.771395 0.636357
1407866782.102704 -2.453112 0.934530 0.000000 0.000000 0.000000 -0.609850 0.792517
1407866783.197092 -2.400525 0.741854 0.000000 0.000000 0.000000 -0.580306 0.814399
1407866784.291728 -2.319683 0.574985 0.000000 0.000000 0.000000 -0.536584 0.843847
1407866785.387233 -2.228700 0.422921 0.000000 0.000000 0.000000 -0.477565 0.878596
1407866786.482751 -2.098832 0.278685 0.000000 0.000000 0.000000 -0.413106 0.910683
1407866787.577575 -1.962795 0.151077 0.000000 0.000000 0.000000 -0.344275 0.938869
1407866788.671803 -1.800728 0.042119 0.000000 0.000000 0.000000 -0.272322 0.962206
1407866789.766464 -1.633392 -0.041112 0.000000 0.000000 0.000000 -0.198493 0.980102
1407866790.861593 -1.387108 -0.131647 0.000000 0.000000 0.000000 -0.157016 0.987596
1407866792.056123 -1.014358 -0.233021 0.000000 0.000000 0.000000 -0.120404 0.992725
1407866793.151749 -0.661803 -0.296855 0.000000 0.000000 0.000000 -0.050994 0.998699
1407866794.251085 -0.329467 -0.254126 0.000000 0.000000 0.000000 0.154806 0.987945
1407866795.342674 -0.157813 -0.192482 0.000000 0.000000 0.000000 0.156053 0.987749
1407866796.436933 0.079552 -0.125860 0.000000 0.000000 0.000000 0.076283 0.997086
1407866797.531685 0.391131 -0.083071 0.000000 0.000000 0.000000 0.006888 0.999976
1407866798.625664 0.735477 -0.112064 0.000000 0.000000 0.000000 -0.151277 0.988491
1407866799.720232 1.080853 -0.231889 0.000000 0.000000 0.000000 -0.210095 0.977681
1407866800.814952 1.395955 -0.363580 0.000000 0.000000 0.000000 -0.240533 0.970641
1407866801.909138 1.731903 -0.555912 0.000000 0.000000 0.000000 -0.350678 0.936496
1407866803.004102 2.004850 -0.852426 0.000000 0.000000 0.000000 -0.402080 0.915605
1407866804.099176 2.090989 -0.934615 0.000000 0.000000 0.000000 -0.358595 0.933493
1407866805.192958 2.087335 -0.934084 0.000000 0.000000 0.000000 -0.468882 0.883261
1407866806.286079 2.083795 -0.933405 0.000000 0.000000 0.000000 -0.646713 0.762733
1407866807.380276 2.081551 -0.934110 0.000000 0.000000 0.000000 -0.821194 0.570649
1407866808.475632 2.076729 -0.932850 0.000000 0.000000 0.000000 0.939628 -0.342196
1407866809.570296 2.071948 -0.931047 0.000000 0.000000 0.000000 0.960376 -0.278707
1407866810.664539 1.900907 -1.032970 0.000000 0.000000 0.000000 0.960728 -0.277492
1407866811.760055 1.668595 -1.174905 0.000000 0.000000 0.000000 0.979157 -0.203104
1407866812.854820 1.297986 -1.301518 0.000000 0.000000 0.000000 0.993405 -0.114661
1407866814.049481 0.873452 -1.413057 0.000000 0.000000 0.000000 0.992484 -0.122374
1407866815.144108 0.486445 -1.582506 0.000000 0.000000 0.000000 0.955653 -0.294495
1407866816.239396 0.358943 -1.707826 0.000000 0.000000 0.000000 0.899420 -0.437085
1407866817.532543 0.285028 -1.817967 0.000000 0.000000 0.000000 0.880934 -0.473239
1407866818.627913 0.277455 -1.831209 0.000000 0.000000 0.000000 0.959847 -0.280524
1407866819.821809 0.259271 -1.843225 0.000000 0.000000 0.000000 0.980803 -0.195003
1407866820.917588 -0.057732 -1.981481 0.000000 0.000000 0.000000 0.981616 -0.190867
1407866822.013354 -0.425157 -2.137960 0.000000 0.000000 0.000000 0.981732 -0.190270
1407866823.109012 -0.786341 -2.275560 0.000000 0.000000 0.000000 0.981794 -0.189948
1407866824.205006 -1.175288 -2.471748 0.000000 0.000000 0.000000 0.959220 -0.282660
1407866825.299402 -1.499282 -2.739618 0.000000 0.000000 0.000000 0.938698 -0.344740
1407866826.394812 -1.738787 -3.020583 0.000000 0.000000 0.000000 -0.864293 0.502988
1407866827.589094 -1.850849 -3.361660 0.000000 0.000000 0.000000 -0.788805 0.614643
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+496
View File
@@ -0,0 +1,496 @@
PARAMS_SE2OFFSET 0 0 0 0
VERTEX_SE2 1 5.432196 0.254602 -0.229327
VERTEX_SE2 3 5.436132 0.259603 -0.090575
VERTEX_SE2 4 5.438802 0.270577 0.141903
VERTEX_SE2 5 5.434921 0.273598 0.393318
VERTEX_SE2 6 5.430181 0.280426 0.731832
VERTEX_SE2 7 5.420730 0.283825 1.069284
VERTEX_SE2 8 5.412755 0.284431 1.444093
VERTEX_SE2 9 5.406191 0.288904 1.673943
VERTEX_SE2 11 5.388476 0.531291 1.687084
VERTEX_SE2 12 5.366087 0.740713 1.712563
VERTEX_SE2 13 5.342164 0.970643 1.723413
VERTEX_SE2 14 5.306243 1.258806 1.736875
VERTEX_SE2 15 5.261275 1.564467 1.753258
VERTEX_SE2 16 5.217079 1.868440 1.756294
VERTEX_SE2 17 5.160835 2.167500 1.706944
VERTEX_SE2 18 5.136338 2.476868 1.666552
VERTEX_SE2 19 5.125064 2.777562 1.652174
VERTEX_SE2 20 5.098618 3.064319 1.639184
VERTEX_SE2 21 5.073434 3.312468 1.624882
VERTEX_SE2 22 5.060552 3.506781 1.615106
VERTEX_SE2 24 5.053852 3.508774 1.994745
VERTEX_SE2 25 5.045956 3.500682 2.389098
VERTEX_SE2 26 5.040254 3.488856 2.757928
VERTEX_SE2 27 5.030965 3.478173 3.049935
VERTEX_SE2 30 4.821219 3.471471 -3.133361
VERTEX_SE2 31 4.617237 3.472014 -3.133520
VERTEX_SE2 32 4.292758 3.481774 -3.122385
VERTEX_SE2 33 3.978209 3.470673 -3.089307
VERTEX_SE2 34 3.462369 3.445687 -3.065089
VERTEX_SE2 35 2.955282 3.419361 -3.078458
VERTEX_SE2 36 2.437344 3.408195 -3.105072
VERTEX_SE2 37 1.958812 3.406995 -3.127007
VERTEX_SE2 38 1.478481 3.413563 3.134259
VERTEX_SE2 39 0.989493 3.419495 -3.139882
VERTEX_SE2 40 0.483726 3.418069 -3.128543
VERTEX_SE2 41 -0.010636 3.411338 -3.112500
VERTEX_SE2 42 -0.506099 3.401712 -3.101809
VERTEX_SE2 43 -0.948010 3.400599 -3.126049
VERTEX_SE2 44 -1.395774 3.394989 3.135798
VERTEX_SE2 45 -1.893319 3.406191 3.112586
VERTEX_SE2 46 -2.346568 3.426152 3.087424
VERTEX_SE2 47 -2.685722 3.458398 3.068016
VERTEX_SE2 48 -2.987529 3.469844 3.116463
VERTEX_SE2 49 -3.285272 3.457978 3.131852
VERTEX_SE2 50 -3.421365 3.456553 3.130756
VERTEX_SE2 51 -3.431216 3.459015 2.939226
VERTEX_SE2 52 -3.423334 3.469413 2.642846
VERTEX_SE2 53 -3.407681 3.487920 2.325883
VERTEX_SE2 54 -3.391379 3.495983 2.017703
VERTEX_SE2 55 -3.373933 3.503381 1.740413
VERTEX_SE2 57 -3.387845 3.696378 1.667953
VERTEX_SE2 58 -3.412396 3.940190 1.665913
VERTEX_SE2 59 -3.440662 4.190451 1.663260
VERTEX_SE2 60 -3.466992 4.488984 1.660964
VERTEX_SE2 61 -3.498523 4.884151 1.660365
VERTEX_SE2 62 -3.536703 5.306705 1.642579
VERTEX_SE2 63 -3.544082 5.744429 1.603590
VERTEX_SE2 64 -3.552909 6.231499 1.582218
VERTEX_SE2 65 -3.540674 6.715886 1.560381
VERTEX_SE2 66 -3.533940 7.214649 1.607011
VERTEX_SE2 67 -3.549573 7.725758 1.616366
VERTEX_SE2 68 -3.559353 8.209032 1.608673
VERTEX_SE2 69 -3.559980 8.662723 1.602841
VERTEX_SE2 70 -3.567099 9.174342 1.591611
VERTEX_SE2 71 -3.564889 9.663434 1.585914
VERTEX_SE2 72 -3.554269 10.158614 1.580932
VERTEX_SE2 73 -3.541150 10.605854 1.575452
VERTEX_SE2 74 -3.525074 11.106726 1.569373
VERTEX_SE2 75 -3.518447 11.603410 1.569327
VERTEX_SE2 76 -3.518632 12.074003 1.584420
VERTEX_SE2 77 -3.517830 12.549440 1.603645
VERTEX_SE2 78 -3.528774 13.018722 1.614800
VERTEX_SE2 79 -3.540092 13.491566 1.601253
VERTEX_SE2 80 -3.541854 13.974113 1.577500
VERTEX_SE2 81 -3.533107 14.464190 1.553427
VERTEX_SE2 82 -3.517027 14.983357 1.563827
VERTEX_SE2 83 -3.529217 15.473991 1.571965
VERTEX_SE2 84 -3.512295 15.947618 1.581018
VERTEX_SE2 85 -3.502701 16.431015 1.588755
VERTEX_SE2 86 -3.501361 16.830746 1.595063
VERTEX_SE2 87 -3.495208 17.030264 1.599329
VERTEX_SE2 89 -3.490642 17.021646 2.024690
VERTEX_SE2 90 -3.489643 17.012506 2.516939
VERTEX_SE2 91 -3.482613 16.997498 2.926732
VERTEX_SE2 92 -3.482227 16.989279 -3.109100
VERTEX_SE2 94 -3.904314 16.982765 -3.106908
VERTEX_SE2 95 -4.350773 16.975651 -3.104828
VERTEX_SE2 96 -4.810039 16.976845 -3.103920
VERTEX_SE2 97 -5.263825 16.979422 -3.100673
VERTEX_SE2 98 -5.717861 16.970819 -3.101911
VERTEX_SE2 99 -6.173687 16.960958 -3.102233
VERTEX_SE2 100 -6.628410 16.955450 -3.102578
VERTEX_SE2 101 -7.116731 16.950577 -3.104093
VERTEX_SE2 102 -7.580166 16.941347 -3.106254
VERTEX_SE2 103 -8.027169 16.933388 -3.106890
VERTEX_SE2 104 -8.472034 16.926374 -3.106903
VERTEX_SE2 105 -8.926731 16.920912 -3.106880
VERTEX_SE2 106 -9.225541 16.917139 -3.106726
VERTEX_SE2 107 -9.475166 16.909079 -3.108968
VERTEX_SE2 109 -9.484236 16.920771 2.934719
VERTEX_SE2 110 -9.473295 16.936926 2.554584
VERTEX_SE2 111 -9.469715 16.947279 2.077486
VERTEX_SE2 112 -9.455665 16.948864 1.646700
VERTEX_SE2 113 -9.458348 16.941019 1.212941
VERTEX_SE2 114 -9.460509 16.918827 0.830517
VERTEX_SE2 115 -9.455755 16.905418 0.433966
VERTEX_SE2 116 -9.457547 16.883947 0.078862
VERTEX_SE2 119 -9.277041 16.886208 0.045899
VERTEX_SE2 120 -8.986329 16.896406 0.043459
VERTEX_SE2 121 -8.728965 16.900934 0.041262
VERTEX_SE2 122 -8.371084 16.905918 0.039035
VERTEX_SE2 123 -7.967924 16.918070 0.037416
VERTEX_SE2 124 -7.555351 16.926100 0.034824
VERTEX_SE2 125 -7.103616 16.935326 0.033524
VERTEX_SE2 126 -6.644004 16.942846 0.030947
VERTEX_SE2 127 -6.188236 16.942419 0.030358
VERTEX_SE2 128 -5.722981 16.950218 0.028143
VERTEX_SE2 129 -5.263544 16.965281 0.026136
VERTEX_SE2 130 -4.863196 16.973597 0.025357
VERTEX_SE2 131 -4.463703 16.983418 0.023773
VERTEX_SE2 132 -4.094602 16.985535 0.023450
VERTEX_SE2 133 -3.781827 16.991592 0.019021
VERTEX_SE2 134 -3.540430 16.994059 0.019108
VERTEX_SE2 136 -3.529014 16.984921 -0.286476
VERTEX_SE2 137 -3.539508 16.960062 -0.673823
VERTEX_SE2 138 -3.552583 16.951082 -1.068757
VERTEX_SE2 139 -3.567989 16.943043 -1.403266
VERTEX_SE2 140 -3.547411 16.940498 -1.516231
VERTEX_SE2 141 -3.542971 16.815336 -1.517330
VERTEX_SE2 142 -3.530093 16.437319 -1.518585
VERTEX_SE2 143 -3.509643 15.991532 -1.520739
VERTEX_SE2 144 -3.490628 15.530376 -1.533589
VERTEX_SE2 145 -3.484817 15.057600 -1.562831
VERTEX_SE2 146 -3.488762 14.582988 -1.589894
VERTEX_SE2 147 -3.508281 14.118348 -1.616521
VERTEX_SE2 148 -3.550539 13.620258 -1.629157
VERTEX_SE2 149 -3.575471 13.133912 -1.603367
VERTEX_SE2 150 -3.587972 12.663317 -1.582183
VERTEX_SE2 151 -3.592584 12.182328 -1.562770
VERTEX_SE2 152 -3.585702 11.701101 -1.544368
VERTEX_SE2 153 -3.575045 11.181039 -1.522974
VERTEX_SE2 154 -3.571074 10.682849 -1.553871
VERTEX_SE2 155 -3.582154 10.210915 -1.577832
VERTEX_SE2 156 -3.602424 9.707085 -1.590479
VERTEX_SE2 157 -3.596236 9.217596 -1.564005
VERTEX_SE2 158 -3.593774 8.738595 -1.541555
VERTEX_SE2 159 -3.576385 8.277225 -1.526676
VERTEX_SE2 160 -3.561893 7.791842 -1.506770
VERTEX_SE2 161 -3.533117 7.338616 -1.490124
VERTEX_SE2 162 -3.499608 6.862405 -1.467743
VERTEX_SE2 163 -3.453408 6.390543 -1.443564
VERTEX_SE2 164 -3.397997 5.891155 -1.444895
VERTEX_SE2 165 -3.354053 5.420840 -1.488744
VERTEX_SE2 166 -3.339693 4.906298 -1.520660
VERTEX_SE2 167 -3.325072 4.424062 -1.547055
VERTEX_SE2 168 -3.328049 4.136955 -1.564771
VERTEX_SE2 169 -3.322577 3.729138 -1.582258
VERTEX_SE2 170 -3.319728 3.490264 -1.544980
VERTEX_SE2 171 -3.323636 3.500852 -1.250756
VERTEX_SE2 172 -3.329754 3.513758 -0.689820
VERTEX_SE2 173 -3.325271 3.540545 -0.143376
VERTEX_SE2 174 -3.319020 3.529299 -0.020314
VERTEX_SE2 175 -2.964609 3.513731 -0.019963
VERTEX_SE2 176 -2.470369 3.497379 -0.018972
VERTEX_SE2 177 -1.955809 3.494789 0.045685
VERTEX_SE2 178 -1.482962 3.514132 0.066213
VERTEX_SE2 179 -1.014611 3.543930 0.085856
VERTEX_SE2 180 -0.518372 3.580777 0.091694
VERTEX_SE2 181 -0.010465 3.602128 0.041116
VERTEX_SE2 182 0.489931 3.595727 -0.016301
VERTEX_SE2 183 0.976889 3.575978 -0.059473
VERTEX_SE2 184 1.455418 3.532911 -0.080878
VERTEX_SE2 185 1.912617 3.488330 -0.071657
VERTEX_SE2 186 2.410408 3.462518 -0.018718
VERTEX_SE2 187 2.899761 3.458181 0.010547
VERTEX_SE2 188 3.364675 3.460949 0.030751
VERTEX_SE2 189 3.850313 3.476933 0.052445
VERTEX_SE2 190 4.338786 3.507058 0.073200
VERTEX_SE2 191 4.739137 3.526931 0.064743
VERTEX_SE2 192 5.078024 3.520674 -0.037168
VERTEX_SE2 193 5.176995 3.512674 -0.045593
VERTEX_SE2 194 5.179369 3.500028 -0.432442
VERTEX_SE2 195 5.165793 3.495121 -0.958678
VERTEX_SE2 196 5.149818 3.489748 -1.428876
VERTEX_SE2 197 5.130979 3.488077 -1.592301
VERTEX_SE2 199 5.123966 3.198531 -1.596829
VERTEX_SE2 200 5.123187 2.868127 -1.600115
VERTEX_SE2 201 5.128421 2.492212 -1.517645
VERTEX_SE2 202 5.198148 2.080047 -1.342926
VERTEX_SE2 203 5.291132 1.676067 -1.308142
VERTEX_SE2 204 5.391319 1.266329 -1.287723
VERTEX_SE2 205 5.493961 0.874165 -1.406470
VERTEX_SE2 206 5.527710 0.559425 -1.477756
VERTEX_SE2 207 5.541363 0.322834 -1.523586
VERTEX_SE2 208 5.544460 0.214535 -1.536196
VERTEX_SE2 211 5.544261 0.221155 -1.245626
VERTEX_SE2 212 5.548012 0.218679 -1.009045
VERTEX_SE2 213 5.549489 0.214053 -0.759815
VERTEX_SE2 214 5.552839 0.212687 -0.487635
VERTEX_SE2 215 5.559639 0.222143 -0.182563
VERTEX_SE2 216 5.561359 0.236229 0.143315
VERTEX_SE2 217 5.559348 0.245119 0.484723
VERTEX_SE2 218 5.555472 0.246451 0.797305
VERTEX_SE2 219 5.551507 0.247803 1.092350
VERTEX_SE2 220 5.542851 0.253104 1.390395
VERTEX_SE2 221 5.535200 0.250922 1.583832
VERTEX_SE2 225 5.534797 0.251065 1.694974
VERTEX_SE2 226 5.533773 0.253265 1.929392
VERTEX_SE2 227 5.521491 0.247170 2.102307
VERTEX_SE2 228 5.509952 0.242342 2.271706
EDGE_SE2 1 3 0.000825 0.006175 0.139260 25117.022908 0.000000 0.000000 25117.022908 0.000000 251170.229079 0
EDGE_SE2 1 211 0.122615 -0.019044 -1.018384 254.000624 0.000000 0.000000 254.000624 0.000000 2540.006238 2
EDGE_SE2 1 212 0.123189 -0.020503 -0.779410 236.739669 0.000000 0.000000 236.739669 0.000000 2367.396692 2
EDGE_SE2 1 213 0.128917 -0.019703 -0.532277 232.467597 0.000000 0.000000 232.467597 0.000000 2324.675966 2
EDGE_SE2 1 214 0.128380 -0.013484 -0.258679 31954.088183 0.000000 0.000000 31954.088183 0.000000 319540.881826 1
EDGE_SE2 3 4 0.000956 0.013318 0.231389 31179.172721 0.000000 0.000000 31179.172721 0.000000 311791.727209 0
EDGE_SE2 3 215 0.125591 -0.027890 -0.090334 28645.127271 0.000000 0.000000 28645.127271 0.000000 286451.272705 1
EDGE_SE2 4 5 -0.001505 0.005791 0.250320 26500.366027 0.000000 0.000000 26500.366027 0.000000 265003.660273 0
EDGE_SE2 4 216 0.114919 -0.051635 0.001332 33950.431420 0.000000 0.000000 33950.431420 0.000000 339504.314199 1
EDGE_SE2 4 217 0.120005 -0.040154 0.343530 282.949668 0.000000 0.000000 282.949668 0.000000 2829.496677 2
EDGE_SE2 4 218 0.119864 -0.035960 0.655429 256.280295 0.000000 0.000000 256.280295 0.000000 2562.802951 2
EDGE_SE2 4 219 0.110504 -0.026143 0.949933 277.652560 0.000000 0.000000 277.652560 0.000000 2776.525603 2
EDGE_SE2 4 220 0.096474 -0.016757 1.246137 325.800505 0.000000 0.000000 325.800505 0.000000 3258.005050 2
EDGE_SE2 4 221 0.095073 -0.018025 1.445473 215.054969 0.000000 0.000000 215.054969 0.000000 2150.549688 2
EDGE_SE2 4 225 0.081445 -0.019862 1.553007 276.748075 0.000000 0.000000 276.748075 0.000000 2767.480746 2
EDGE_SE2 4 226 0.084903 -0.024753 1.784787 305.445947 0.000000 0.000000 305.445947 0.000000 3054.459472 2
EDGE_SE2 4 227 0.069948 -0.026580 1.955272 238.250137 0.000000 0.000000 238.250137 0.000000 2382.501367 2
EDGE_SE2 5 6 -0.001556 0.008932 0.338804 38076.658165 0.000000 0.000000 38076.658165 0.000000 380766.581650 0
EDGE_SE2 5 217 0.105681 -0.073561 0.090192 33503.900104 0.000000 0.000000 33503.900104 0.000000 335039.001042 1
EDGE_SE2 6 7 -0.004496 0.010174 0.337617 34311.146135 0.000000 0.000000 34311.146135 0.000000 343111.461349 0
EDGE_SE2 6 218 0.070784 -0.109618 0.065650 31049.128955 0.000000 0.000000 31049.128955 0.000000 310491.289548 1
EDGE_SE2 7 8 -0.003818 0.006818 0.375397 40153.734847 0.000000 0.000000 40153.734847 0.000000 401537.348472 0
EDGE_SE2 7 219 0.032584 -0.130272 0.022517 34177.420758 0.000000 0.000000 34177.420758 0.000000 341774.207584 1
EDGE_SE2 8 9 0.003460 0.007328 0.230641 30557.420470 0.000000 0.000000 30557.420470 0.000000 305574.204700 0
EDGE_SE2 8 220 -0.013437 -0.134487 -0.051956 41782.116104 0.000000 0.000000 41782.116104 0.000000 417821.161038 1
EDGE_SE2 8 221 -0.021267 -0.123518 0.136156 20415.813896 0.000000 0.000000 20415.813896 0.000000 204158.138962 1
EDGE_SE2 9 11 0.242610 -0.004750 0.013944 25388.226645 0.000000 0.000000 25388.226645 0.000000 253882.266451 0
EDGE_SE2 9 225 -0.053485 -0.126534 0.019009 20758.120013 0.000000 0.000000 20758.120013 0.000000 207581.200132 1
EDGE_SE2 9 226 -0.049129 -0.126512 0.256550 27913.677112 0.000000 0.000000 27913.677112 0.000000 279136.771122 1
EDGE_SE2 9 227 -0.050491 -0.116747 0.432077 32259.588979 0.000000 0.000000 32259.588979 0.000000 322595.889794 1
EDGE_SE2 9 228 -0.058050 -0.079295 0.590787 15272.652493 0.000000 0.000000 15272.652493 0.000000 152726.524926 1
EDGE_SE2 11 12 0.210455 -0.000664 0.025883 47086.938727 0.000000 0.000000 47086.938727 0.000000 470869.387270 0
EDGE_SE2 12 13 0.230920 -0.006303 0.011529 27164.905826 0.000000 0.000000 27164.905826 0.000000 271649.058263 0
EDGE_SE2 12 205 0.103056 -0.152489 -3.122329 283.548226 0.000000 0.000000 283.548226 0.000000 2835.482264 2
EDGE_SE2 13 14 0.290229 -0.006296 0.013948 33841.034226 0.000000 0.000000 33841.034226 0.000000 338410.342255 0
EDGE_SE2 14 15 0.308875 -0.004596 0.016718 42878.082152 0.000000 0.000000 42878.082152 0.000000 428780.821525 0
EDGE_SE2 15 16 0.306958 -0.010053 0.003333 41432.407799 0.000000 0.000000 41432.407799 0.000000 414324.077990 0
EDGE_SE2 16 17 0.304342 0.003858 -0.048789 18187.524862 0.000000 0.000000 18187.524862 0.000000 181875.248621 0
EDGE_SE2 17 18 0.309777 -0.016344 -0.040227 49383.027808 0.000000 0.000000 49383.027808 0.000000 493830.278079 0
EDGE_SE2 18 19 0.300216 -0.015276 -0.014176 30107.744093 0.000000 0.000000 30107.744093 0.000000 301077.440926 0
EDGE_SE2 19 20 0.287613 0.006723 -0.012765 18419.905556 0.000000 0.000000 18419.905556 0.000000 184199.055561 0
EDGE_SE2 20 21 0.249013 0.010762 -0.014208 26057.064902 0.000000 0.000000 26057.064902 0.000000 260570.649021 0
EDGE_SE2 21 22 0.194494 0.004269 -0.009744 35320.193970 0.000000 0.000000 35320.193970 0.000000 353201.939698 0
EDGE_SE2 22 24 0.002047 0.008820 0.379737 29146.892326 0.000000 0.000000 29146.892326 0.000000 291468.923265 0
EDGE_SE2 22 193 -0.010076 -0.099566 -1.670917 167.833757 0.000000 0.000000 167.833757 0.000000 1678.337575 2
EDGE_SE2 24 25 -0.003419 0.013071 0.394471 24575.065831 0.000000 0.000000 24575.065831 0.000000 245750.658306 0
EDGE_SE2 25 26 -0.002277 0.014620 0.368951 24427.492575 0.000000 0.000000 24427.492575 0.000000 244274.925751 0
EDGE_SE2 26 27 0.007346 0.014937 0.292225 22552.830286 0.000000 0.000000 22552.830286 0.000000 225528.302857 0
EDGE_SE2 26 192 -0.059522 -0.054983 -2.806812 159.360011 0.000000 0.000000 159.360011 0.000000 1593.600106 2
EDGE_SE2 27 30 0.212176 0.026771 0.100160 17606.015948 0.000000 0.000000 17606.015948 0.000000 176060.159482 0
EDGE_SE2 30 31 0.206815 -0.001864 0.000026 24721.629359 0.000000 0.000000 24721.629359 0.000000 247216.293589 0
EDGE_SE2 31 32 0.327470 -0.011991 0.011319 22819.146898 0.000000 0.000000 22819.146898 0.000000 228191.468984 0
EDGE_SE2 32 33 0.317414 0.005369 0.033231 25992.324269 0.000000 0.000000 25992.324269 0.000000 259923.242691 0
EDGE_SE2 33 34 0.518960 -0.001826 0.024381 27497.212084 0.000000 0.000000 27497.212084 0.000000 274972.120838 0
EDGE_SE2 33 189 0.139032 -0.006441 3.135042 117.860078 0.000000 0.000000 117.860078 0.000000 1178.600777 2
EDGE_SE2 34 35 0.510195 -0.012375 -0.013141 23752.694713 0.000000 0.000000 23752.694713 0.000000 237526.947126 0
EDGE_SE2 34 188 0.141748 -0.022130 3.089178 177.713771 0.000000 0.000000 177.713771 0.000000 1777.137707 2
EDGE_SE2 35 36 0.519370 -0.021397 -0.026364 26271.039740 0.000000 0.000000 26271.039740 0.000000 262710.397395 0
EDGE_SE2 35 187 0.114794 -0.041222 3.082904 242.986021 0.000000 0.000000 242.986021 0.000000 2429.860211 2
EDGE_SE2 36 37 0.479082 -0.016008 -0.021608 33119.149388 0.000000 0.000000 33119.149388 0.000000 331191.493884 0
EDGE_SE2 36 186 0.085711 -0.069019 3.070594 308.040621 0.000000 0.000000 308.040621 0.000000 3080.406207 2
EDGE_SE2 37 38 0.480973 -0.013180 -0.021517 29747.926999 0.000000 0.000000 29747.926999 0.000000 297479.269988 0
EDGE_SE2 37 185 0.066210 -0.095726 3.045192 170.947803 0.000000 0.000000 170.947803 0.000000 1709.478035 2
EDGE_SE2 38 39 0.489723 -0.001933 0.009432 29979.171796 0.000000 0.000000 29979.171796 0.000000 299791.717958 0
EDGE_SE2 38 184 0.038805 -0.120227 3.066140 139.374902 0.000000 0.000000 139.374902 0.000000 1393.749021 2
EDGE_SE2 39 40 0.506578 0.001173 0.011880 22408.428512 0.000000 0.000000 22408.428512 0.000000 224084.285122 0
EDGE_SE2 39 183 0.029559 -0.165348 3.073399 180.650205 0.000000 0.000000 180.650205 0.000000 1806.502050 2
EDGE_SE2 40 41 0.495002 0.001060 0.016800 15729.083196 0.000000 0.000000 15729.083196 0.000000 157290.831965 0
EDGE_SE2 40 182 0.027029 -0.172706 3.110060 251.045382 0.000000 0.000000 251.045382 0.000000 2510.453819 2
EDGE_SE2 41 42 0.495868 -0.004261 0.011198 23896.685650 0.000000 0.000000 23896.685650 0.000000 238966.856496 0
EDGE_SE2 41 181 0.002224 -0.193369 -3.134037 195.014550 0.000000 0.000000 195.014550 0.000000 1950.145502 2
EDGE_SE2 42 43 0.442029 -0.015772 -0.023546 17939.213013 0.000000 0.000000 17939.213013 0.000000 179392.130128 0
EDGE_SE2 42 180 0.007239 -0.178840 -3.093150 255.854842 0.000000 0.000000 255.854842 0.000000 2558.548422 2
EDGE_SE2 43 44 0.447881 -0.000758 -0.020644 16541.115833 0.000000 0.000000 16541.115833 0.000000 165411.158334 0
EDGE_SE2 43 179 0.088503 -0.132979 -3.069578 244.330824 0.000000 0.000000 244.330824 0.000000 2443.308237 2
EDGE_SE2 44 45 0.497771 -0.007724 -0.022448 14873.036530 0.000000 0.000000 14873.036530 0.000000 148730.365303 0
EDGE_SE2 44 178 0.081534 -0.113815 -3.071096 210.732504 0.000000 0.000000 210.732504 0.000000 2107.325037 2
EDGE_SE2 45 46 0.453634 -0.006559 -0.024776 28959.008076 0.000000 0.000000 28959.008076 0.000000 289590.080756 0
EDGE_SE2 45 177 0.076391 -0.078783 -3.067683 210.993069 0.000000 0.000000 210.993069 0.000000 2109.930690 2
EDGE_SE2 46 47 0.340425 -0.013648 -0.018977 26343.323129 0.000000 0.000000 26343.323129 0.000000 263433.231293 0
EDGE_SE2 46 176 0.122554 -0.051289 -3.108515 172.913740 0.000000 0.000000 172.913740 0.000000 1729.137397 2
EDGE_SE2 47 48 0.301860 0.011048 0.049077 17773.712977 0.000000 0.000000 17773.712977 0.000000 177737.129766 0
EDGE_SE2 48 49 0.297583 0.019468 0.015985 19209.377664 0.000000 0.000000 19209.377664 0.000000 192093.776639 0
EDGE_SE2 48 175 -0.046550 -0.027570 -3.138341 150.528631 0.000000 0.000000 150.528631 0.000000 1505.286309 2
EDGE_SE2 49 50 0.135839 0.002574 -0.000776 32907.517712 0.000000 0.000000 32907.517712 0.000000 329075.177122 0
EDGE_SE2 49 170 0.094227 0.007918 1.610842 205.102189 0.000000 0.000000 205.102189 0.000000 2051.021893 2
EDGE_SE2 50 51 0.009408 -0.002709 -0.190891 16473.118496 0.000000 0.000000 16473.118496 0.000000 164731.184960 0
EDGE_SE2 51 52 -0.005975 -0.012152 -0.295819 18810.578937 0.000000 0.000000 18810.578937 0.000000 188105.789369 0
EDGE_SE2 52 53 -0.005131 -0.024250 -0.316348 17167.514667 0.000000 0.000000 17167.514667 0.000000 171675.146666 0
EDGE_SE2 53 54 -0.005359 -0.017874 -0.307656 20134.329929 0.000000 0.000000 20134.329929 0.000000 201343.299290 0
EDGE_SE2 54 55 -0.000774 -0.019418 -0.276748 19462.045747 0.000000 0.000000 19462.045747 0.000000 194620.457466 0
EDGE_SE2 55 57 0.193949 -0.019616 -0.071870 24878.821980 0.000000 0.000000 24878.821980 0.000000 248788.219801 0
EDGE_SE2 55 173 -0.030179 -0.033128 -1.889852 334.478024 0.000000 0.000000 334.478024 0.000000 3344.780242 2
EDGE_SE2 55 174 -0.038767 -0.041248 -1.769808 184.391895 0.000000 0.000000 184.391895 0.000000 1843.918947 2
EDGE_SE2 57 58 0.246153 0.000280 -0.001568 31956.730621 0.000000 0.000000 31956.730621 0.000000 319567.306211 0
EDGE_SE2 58 59 0.253089 0.003793 -0.002095 27800.197002 0.000000 0.000000 27800.197002 0.000000 278001.970018 0
EDGE_SE2 59 60 0.300839 -0.001864 -0.001779 30891.339226 0.000000 0.000000 30891.339226 0.000000 308913.392263 0
EDGE_SE2 60 61 0.397259 -0.004563 -0.000199 41481.425830 0.000000 0.000000 41481.425830 0.000000 414814.258303 0
EDGE_SE2 61 62 0.425741 -0.000424 -0.017074 24254.461868 0.000000 0.000000 24254.461868 0.000000 242544.618677 0
EDGE_SE2 62 63 0.438721 -0.024711 -0.038194 22459.921390 0.000000 0.000000 22459.921390 0.000000 224599.213905 0
EDGE_SE2 63 64 0.489554 -0.008078 -0.020124 14820.478128 0.000000 0.000000 14820.478128 0.000000 148204.781280 0
EDGE_SE2 64 65 0.485815 -0.018307 -0.020949 20521.515873 0.000000 0.000000 20521.515873 0.000000 205215.158733 0
EDGE_SE2 64 163 0.180200 -0.112296 -3.021499 174.377434 0.000000 0.000000 174.377434 0.000000 1743.774342 2
EDGE_SE2 65 66 0.500224 -0.002017 0.047492 20372.237568 0.000000 0.000000 20372.237568 0.000000 203722.375677 0
EDGE_SE2 65 162 0.173420 -0.043485 -3.020888 156.670849 0.000000 0.000000 156.670849 0.000000 1566.708486 2
EDGE_SE2 66 67 0.512525 -0.003424 0.010206 19358.636675 0.000000 0.000000 19358.636675 0.000000 193586.366748 0
EDGE_SE2 66 161 0.148814 -0.007828 -3.089750 218.963278 0.000000 0.000000 218.963278 0.000000 2189.632779 2
EDGE_SE2 67 68 0.484485 -0.012858 -0.006722 16461.677540 0.000000 0.000000 16461.677540 0.000000 164616.775402 0
EDGE_SE2 67 160 0.076097 0.006502 -3.118491 209.017821 0.000000 0.000000 209.017821 0.000000 2090.178212 2
EDGE_SE2 68 69 0.454085 -0.016891 -0.005029 21736.392951 0.000000 0.000000 21736.392951 0.000000 217363.929506 0
EDGE_SE2 68 159 0.094668 0.002545 -3.140499 224.126262 0.000000 0.000000 224.126262 0.000000 2241.262621 2
EDGE_SE2 69 70 0.512370 -0.009569 -0.010125 16837.427443 0.000000 0.000000 16837.427443 0.000000 168374.274430 0
EDGE_SE2 69 158 0.095560 0.009071 3.130293 103.496336 0.000000 0.000000 103.496336 0.000000 1034.963359 2
EDGE_SE2 70 71 0.489670 -0.012381 -0.004760 21938.646115 0.000000 0.000000 21938.646115 0.000000 219386.461148 0
EDGE_SE2 70 157 0.023822 -0.006525 3.113672 141.744416 0.000000 0.000000 141.744416 0.000000 1417.444162 2
EDGE_SE2 71 72 0.495472 -0.017936 -0.004227 29469.888915 0.000000 0.000000 29469.888915 0.000000 294698.889148 0
EDGE_SE2 71 156 0.053065 -0.006095 3.089295 109.558380 0.000000 0.000000 109.558380 0.000000 1095.583801 2
EDGE_SE2 72 73 0.447507 -0.017508 -0.004857 35330.484155 0.000000 0.000000 35330.484155 0.000000 353304.841548 0
EDGE_SE2 73 74 0.501306 -0.018161 -0.005380 30775.067050 0.000000 0.000000 30775.067050 0.000000 307750.670505 0
EDGE_SE2 73 154 0.072508 0.017008 -3.128975 197.929393 0.000000 0.000000 197.929393 0.000000 1979.293930 2
EDGE_SE2 74 75 0.497071 -0.005534 0.000586 34940.400231 0.000000 0.000000 34940.400231 0.000000 349404.002314 0
EDGE_SE2 74 153 0.084092 0.027874 -3.096967 260.403745 0.000000 0.000000 260.403745 0.000000 2604.037451 2
EDGE_SE2 75 76 0.470704 0.001540 0.015870 27647.975958 0.000000 0.000000 27647.975958 0.000000 276479.759578 0
EDGE_SE2 75 152 0.121138 0.056007 -3.113983 429.752000 0.000000 0.000000 429.752000 0.000000 4297.519999 2
EDGE_SE2 76 77 0.475552 -0.006736 0.019772 36717.055095 0.000000 0.000000 36717.055095 0.000000 367170.550949 0
EDGE_SE2 76 151 0.099511 0.066917 3.137594 292.248393 0.000000 0.000000 292.248393 0.000000 2922.483934 2
EDGE_SE2 77 78 0.469553 -0.003599 0.011965 23284.987996 0.000000 0.000000 23284.987996 0.000000 232849.879958 0
EDGE_SE2 77 150 0.134357 0.062428 3.099001 149.953578 0.000000 0.000000 149.953578 0.000000 1499.535783 2
EDGE_SE2 78 79 0.472786 -0.008167 -0.012501 17017.557882 0.000000 0.000000 17017.557882 0.000000 170175.578824 0
EDGE_SE2 78 149 0.135777 0.034413 3.065221 309.440493 0.000000 0.000000 309.440493 0.000000 3094.404929 2
EDGE_SE2 79 80 0.482221 -0.012148 -0.023210 30574.006010 0.000000 0.000000 30574.006010 0.000000 305740.060103 0
EDGE_SE2 79 148 0.139475 0.000948 3.053075 263.996502 0.000000 0.000000 263.996502 0.000000 2639.965020 2
EDGE_SE2 80 81 0.489591 -0.010787 -0.023292 19516.615501 0.000000 0.000000 19516.615501 0.000000 195166.155013 0
EDGE_SE2 80 147 0.156046 -0.036253 3.089925 231.262804 0.000000 0.000000 231.262804 0.000000 2312.628044 2
EDGE_SE2 81 82 0.518955 -0.005125 0.011470 12963.925393 0.000000 0.000000 12963.925393 0.000000 129639.253932 0
EDGE_SE2 81 146 0.106016 -0.046323 3.140210 247.613342 0.000000 0.000000 247.613342 0.000000 2476.133424 2
EDGE_SE2 82 83 0.490339 0.016722 0.008662 23595.504624 0.000000 0.000000 23595.504624 0.000000 235955.046238 0
EDGE_SE2 82 145 0.071529 -0.039652 -3.125051 140.407085 0.000000 0.000000 140.407085 0.000000 1404.070849 2
EDGE_SE2 83 84 0.473553 -0.016858 0.009291 39862.834762 0.000000 0.000000 39862.834762 0.000000 398628.347615 0
EDGE_SE2 83 144 0.044611 -0.030312 -3.096847 195.905249 0.000000 0.000000 195.905249 0.000000 1959.052487 2
EDGE_SE2 84 85 0.482983 -0.013676 0.008022 31966.804638 0.000000 0.000000 31966.804638 0.000000 319668.046385 0
EDGE_SE2 84 143 0.073668 -0.014463 -3.105576 246.320848 0.000000 0.000000 246.320848 0.000000 2463.208479 2
EDGE_SE2 85 86 0.399452 -0.007748 0.006498 31507.107349 0.000000 0.000000 31507.107349 0.000000 315071.073485 0
EDGE_SE2 85 142 -0.015995 0.050636 -3.091430 136.484833 0.000000 0.000000 136.484833 0.000000 1364.848330 2
EDGE_SE2 86 87 0.199396 -0.011209 0.004671 33939.330189 0.000000 0.000000 33939.330189 0.000000 339393.301890 0
EDGE_SE2 86 123 0.175719 4.552011 -1.566407 121.334767 0.000000 0.000000 121.334767 0.000000 1213.347670 2
EDGE_SE2 86 124 0.191245 4.108106 -1.581841 137.545279 0.000000 0.000000 137.545279 0.000000 1375.452785 2
EDGE_SE2 86 125 0.188181 3.638336 -1.585740 145.531105 0.000000 0.000000 145.531105 0.000000 1455.311045 2
EDGE_SE2 86 126 0.185409 3.163715 -1.590456 171.970366 0.000000 0.000000 171.970366 0.000000 1719.703664 2
EDGE_SE2 86 141 -0.046703 0.062801 -3.097230 139.869582 0.000000 0.000000 139.869582 0.000000 1398.695816 2
EDGE_SE2 87 89 -0.007836 -0.004451 0.426162 24930.205404 0.000000 0.000000 24930.205404 0.000000 249302.054035 0
EDGE_SE2 87 134 -0.110389 0.032681 -1.604341 262.525398 0.000000 0.000000 262.525398 0.000000 2625.253977 2
EDGE_SE2 89 90 -0.007973 0.002673 0.492953 28348.564489 0.000000 0.000000 28348.564489 0.000000 283485.644886 0
EDGE_SE2 90 91 -0.013909 0.007040 0.410815 19526.363615 0.000000 0.000000 19526.363615 0.000000 195263.636148 0
EDGE_SE2 91 92 -0.002037 0.007006 0.248177 24203.741497 0.000000 0.000000 24203.741497 0.000000 242037.414975 0
EDGE_SE2 92 94 0.421926 -0.008963 0.003151 20748.367614 0.000000 0.000000 20748.367614 0.000000 207483.676141 0
EDGE_SE2 92 137 0.047229 0.151303 2.430165 43.633367 0.000000 0.000000 43.633367 0.000000 436.333667 2
EDGE_SE2 92 138 0.052803 0.148072 2.030960 33.572745 0.000000 0.000000 33.572745 0.000000 335.727453 2
EDGE_SE2 92 140 0.072734 0.080882 1.607479 138.736864 0.000000 0.000000 138.736864 0.000000 1387.368635 2
EDGE_SE2 94 95 0.446125 -0.009960 0.003183 23284.337658 0.000000 0.000000 23284.337658 0.000000 232843.376584 0
EDGE_SE2 94 127 2.314152 -0.036721 3.106026 135.530096 0.000000 0.000000 135.530096 0.000000 1355.300963 2
EDGE_SE2 95 96 0.458552 -0.019863 0.002364 21540.785053 0.000000 0.000000 21540.785053 0.000000 215407.850530 0
EDGE_SE2 95 128 1.375777 -0.012538 3.100137 125.620973 0.000000 0.000000 125.620973 0.000000 1256.209731 2
EDGE_SE2 96 97 0.453101 -0.020987 0.004384 29129.096136 0.000000 0.000000 29129.096136 0.000000 291290.961364 0
EDGE_SE2 97 98 0.453734 -0.011311 -0.000030 28901.241188 0.000000 0.000000 28901.241188 0.000000 289012.411882 0
EDGE_SE2 98 99 0.455573 -0.009628 0.001008 27553.307156 0.000000 0.000000 27553.307156 0.000000 275533.071559 0
EDGE_SE2 99 100 0.454283 -0.013891 0.001153 25636.973907 0.000000 0.000000 25636.973907 0.000000 256369.739073 0
EDGE_SE2 100 101 0.487772 -0.015990 0.000382 21247.435330 0.000000 0.000000 21247.435330 0.000000 212474.353296 0
EDGE_SE2 101 102 0.463108 -0.009883 -0.000268 22239.656472 0.000000 0.000000 22239.656472 0.000000 222396.564717 0
EDGE_SE2 102 103 0.446874 -0.008493 0.000108 58877.733779 0.000000 0.000000 58877.733779 0.000000 588777.337792 0
EDGE_SE2 103 104 0.444678 -0.009241 0.000949 47319.067331 0.000000 0.000000 47319.067331 0.000000 473190.673314 0
EDGE_SE2 104 105 0.454353 -0.011623 0.001633 29367.177824 0.000000 0.000000 29367.177824 0.000000 293671.778243 0
EDGE_SE2 105 106 0.298651 -0.007154 0.000851 69598.836576 0.000000 0.000000 69598.836576 0.000000 695988.365764 0
EDGE_SE2 106 107 0.249663 -0.001104 -0.001655 84143.532904 0.000000 0.000000 84143.532904 0.000000 841435.329035 0
EDGE_SE2 107 109 0.008449 -0.013176 -0.237967 32279.300744 0.000000 0.000000 32279.300744 0.000000 322793.007443 0
EDGE_SE2 109 110 -0.007339 -0.019150 -0.378760 35960.634704 0.000000 0.000000 35960.634704 0.000000 359606.347042 0
EDGE_SE2 110 111 0.003286 -0.011776 -0.475479 30514.316637 0.000000 0.000000 30514.316637 0.000000 305143.166368 0
EDGE_SE2 111 112 -0.004573 -0.013733 -0.429410 35891.619251 0.000000 0.000000 35891.619251 0.000000 358916.192509 0
EDGE_SE2 112 113 -0.006051 0.002893 -0.431732 24356.700517 0.000000 0.000000 24356.700517 0.000000 243567.005170 0
EDGE_SE2 113 114 -0.018639 -0.005163 -0.378701 13261.011249 0.000000 0.000000 13261.011249 0.000000 132610.112488 0
EDGE_SE2 114 115 -0.005524 -0.011789 -0.394799 28143.680243 0.000000 0.000000 28143.680243 0.000000 281436.802432 0
EDGE_SE2 115 116 -0.009740 -0.017376 -0.353054 24074.023039 0.000000 0.000000 24074.023039 0.000000 240740.230388 0
EDGE_SE2 116 119 0.180528 -0.010303 -0.030844 22945.987684 0.000000 0.000000 22945.987684 0.000000 229459.876841 0
EDGE_SE2 119 120 0.291149 -0.001845 -0.000826 29430.702531 0.000000 0.000000 29430.702531 0.000000 294307.025311 0
EDGE_SE2 120 121 0.257574 -0.005424 -0.000704 31169.203600 0.000000 0.000000 31169.203600 0.000000 311692.036001 0
EDGE_SE2 121 122 0.358128 -0.008092 -0.000246 22772.509469 0.000000 0.000000 22772.509469 0.000000 227725.094685 0
EDGE_SE2 122 123 0.403566 -0.002419 -0.000292 32840.939125 0.000000 0.000000 32840.939125 0.000000 328409.391247 0
EDGE_SE2 123 124 0.412420 -0.005471 -0.000391 18642.156507 0.000000 0.000000 18642.156507 0.000000 186421.565073 0
EDGE_SE2 124 125 0.451357 -0.005134 0.000103 25974.000981 0.000000 0.000000 25974.000981 0.000000 259740.009806 0
EDGE_SE2 125 126 0.458763 -0.006139 -0.001012 20018.643627 0.000000 0.000000 20018.643627 0.000000 200186.436268 0
EDGE_SE2 126 127 0.454319 -0.012556 0.000862 17412.534302 0.000000 0.000000 17412.534302 0.000000 174125.343016 0
EDGE_SE2 127 128 0.463890 -0.004462 -0.001147 18217.403002 0.000000 0.000000 18217.403002 0.000000 182174.030019 0
EDGE_SE2 128 129 0.458536 0.003563 -0.001392 22516.932294 0.000000 0.000000 22516.932294 0.000000 225169.322943 0
EDGE_SE2 129 130 0.399522 -0.001015 -0.000337 28448.944766 0.000000 0.000000 28448.944766 0.000000 284489.447656 0
EDGE_SE2 130 131 0.398847 0.000647 -0.001249 33632.747922 0.000000 0.000000 33632.747922 0.000000 336327.479224 0
EDGE_SE2 131 132 0.367510 -0.004742 0.000277 16820.445419 0.000000 0.000000 16820.445419 0.000000 168204.454193 0
EDGE_SE2 132 133 0.311657 0.000182 -0.004017 22053.800505 0.000000 0.000000 22053.800505 0.000000 220538.005045 0
EDGE_SE2 133 134 0.240446 -0.000947 0.000394 27229.934117 0.000000 0.000000 27229.934117 0.000000 272299.341167 0
EDGE_SE2 134 136 0.010307 -0.008822 -0.305499 23342.374248 0.000000 0.000000 23342.374248 0.000000 233423.742476 0
EDGE_SE2 136 137 -0.004938 -0.026402 -0.387187 12919.818334 0.000000 0.000000 12919.818334 0.000000 129198.183345 0
EDGE_SE2 137 138 -0.005607 -0.015565 -0.394844 20945.244757 0.000000 0.000000 20945.244757 0.000000 209452.447567 0
EDGE_SE2 138 139 -0.001201 -0.018494 -0.334403 14836.362063 0.000000 0.000000 14836.362063 0.000000 148363.620632 0
EDGE_SE2 139 140 0.000000 0.000000 -0.097189 1000.000000 0.000000 0.000000 1000.000000 0.000000 1000.000000 0
EDGE_SE2 140 141 0.125262 -0.003655 -0.000870 16917.808646 0.000000 0.000000 16917.808646 0.000000 169178.086460 0
EDGE_SE2 141 142 0.378508 -0.008969 -0.000796 15040.048309 0.000000 0.000000 15040.048309 0.000000 150400.483087 0
EDGE_SE2 142 143 0.446579 -0.003981 -0.001730 24405.383762 0.000000 0.000000 24405.383762 0.000000 244053.837619 0
EDGE_SE2 143 144 0.461580 -0.005369 -0.012304 19242.633573 0.000000 0.000000 19242.633573 0.000000 192426.335726 0
EDGE_SE2 144 145 0.472791 -0.012727 -0.028758 27902.037905 0.000000 0.000000 27902.037905 0.000000 279020.379047 0
EDGE_SE2 145 146 0.474737 -0.008641 -0.026522 27540.957141 0.000000 0.000000 27540.957141 0.000000 275409.571414 0
EDGE_SE2 146 147 0.465242 -0.011511 -0.026047 27726.005556 0.000000 0.000000 27726.005556 0.000000 277260.055559 0
EDGE_SE2 147 148 0.499872 -0.020775 -0.011654 17757.610563 0.000000 0.000000 17757.610563 0.000000 177576.105629 0
EDGE_SE2 148 149 0.487153 0.002468 0.026633 22047.496929 0.000000 0.000000 22047.496929 0.000000 220474.969293 0
EDGE_SE2 149 150 0.470656 0.002039 0.021939 26019.356400 0.000000 0.000000 26019.356400 0.000000 260193.564002 0
EDGE_SE2 150 151 0.480757 -0.000023 0.020334 22616.826192 0.000000 0.000000 22616.826192 0.000000 226168.261922 0
EDGE_SE2 151 152 0.481116 0.002173 0.019427 21644.870441 0.000000 0.000000 21644.870441 0.000000 216448.704407 0
EDGE_SE2 152 153 0.519598 -0.003635 0.022342 23987.072032 0.000000 0.000000 23987.072032 0.000000 239870.720317 0
EDGE_SE2 153 154 0.496513 -0.020405 -0.029137 12452.288232 0.000000 0.000000 12452.288232 0.000000 124522.882322 0
EDGE_SE2 154 155 0.471260 -0.019204 -0.023338 35726.595861 0.000000 0.000000 35726.595861 0.000000 357265.958613 0
EDGE_SE2 155 156 0.503424 -0.016915 -0.011834 27721.747382 0.000000 0.000000 27721.747382 0.000000 277217.473820 0
EDGE_SE2 156 157 0.488573 0.015785 0.027375 22906.901228 0.000000 0.000000 22906.901228 0.000000 229069.012277 0
EDGE_SE2 157 158 0.478622 -0.000659 0.022983 34673.446457 0.000000 0.000000 34673.446457 0.000000 346734.464570 0
EDGE_SE2 158 159 0.460999 0.004215 0.015653 22242.142170 0.000000 0.000000 22242.142170 0.000000 222421.421704 0
EDGE_SE2 159 160 0.484721 -0.006530 0.020526 25176.192179 0.000000 0.000000 25176.192179 0.000000 251761.921791 0
EDGE_SE2 160 161 0.452882 0.000335 0.017536 18041.374535 0.000000 0.000000 18041.374535 0.000000 180413.745353 0
EDGE_SE2 161 162 0.476498 -0.004593 0.022912 32226.315548 0.000000 0.000000 32226.315548 0.000000 322263.155483 0
EDGE_SE2 162 163 0.473216 -0.002189 0.024676 35374.834783 0.000000 0.000000 35374.834783 0.000000 353748.347827 0
EDGE_SE2 163 164 0.501111 -0.007778 -0.000694 27449.563407 0.000000 0.000000 27449.563407 0.000000 274495.634071 0
EDGE_SE2 164 165 0.470863 -0.014849 -0.043251 28023.851562 0.000000 0.000000 28023.851562 0.000000 280238.515617 0
EDGE_SE2 165 166 0.512841 -0.027359 -0.031401 31107.473297 0.000000 0.000000 31107.473297 0.000000 311074.732972 0
EDGE_SE2 166 167 0.480907 -0.008984 -0.025776 24849.373297 0.000000 0.000000 24849.373297 0.000000 248493.732967 0
EDGE_SE2 167 168 0.285123 -0.009115 -0.016962 19933.595603 0.000000 0.000000 19933.595603 0.000000 199335.956033 0
EDGE_SE2 168 169 0.405369 0.003878 -0.016513 14860.415783 0.000000 0.000000 14860.415783 0.000000 148604.157826 0
EDGE_SE2 169 170 0.237672 0.005967 0.037720 32056.560906 0.000000 0.000000 32056.560906 0.000000 320565.609060 0
EDGE_SE2 170 171 -0.012369 -0.003573 0.295107 17110.382436 0.000000 0.000000 17110.382436 0.000000 171103.824359 0
EDGE_SE2 171 172 -0.015576 -0.001267 0.561713 19468.544295 0.000000 0.000000 19468.544295 0.000000 194685.442954 0
EDGE_SE2 172 173 -0.015041 0.025311 0.547655 12476.525351 0.000000 0.000000 12476.525351 0.000000 124765.253507 0
EDGE_SE2 173 174 0.007503 -0.009718 0.123939 14926.360985 0.000000 0.000000 14926.360985 0.000000 149263.609854 0
EDGE_SE2 174 175 0.354452 -0.008472 0.000868 22213.223178 0.000000 0.000000 22213.223178 0.000000 222132.231783 0
EDGE_SE2 175 176 0.494435 -0.006695 0.001488 23049.597584 0.000000 0.000000 23049.597584 0.000000 230495.975839 0
EDGE_SE2 176 177 0.514517 0.006833 0.065195 21282.393869 0.000000 0.000000 21282.393869 0.000000 212823.938688 0
EDGE_SE2 177 178 0.473122 -0.002608 0.020981 25822.969739 0.000000 0.000000 25822.969739 0.000000 258229.697389 0
EDGE_SE2 178 179 0.469228 -0.001607 0.020070 27695.033368 0.000000 0.000000 27695.033368 0.000000 276950.333679 0
EDGE_SE2 179 180 0.497224 -0.006353 0.006385 23536.680735 0.000000 0.000000 23536.680735 0.000000 235366.807348 0
EDGE_SE2 180 181 0.507427 -0.025663 -0.050145 29044.959314 0.000000 0.000000 29044.959314 0.000000 290449.593140 0
EDGE_SE2 181 182 0.499189 -0.027610 -0.056751 18583.228050 0.000000 0.000000 18583.228050 0.000000 185832.280496 0
EDGE_SE2 182 183 0.486553 -0.012330 -0.042708 26992.678827 0.000000 0.000000 26992.678827 0.000000 269926.788266 0
EDGE_SE2 183 184 0.479249 -0.015201 -0.020826 20584.110051 0.000000 0.000000 20584.110051 0.000000 205841.100510 0
EDGE_SE2 184 185 0.458021 -0.008301 0.009934 17291.341456 0.000000 0.000000 17291.341456 0.000000 172913.414557 0
EDGE_SE2 185 186 0.496906 0.009246 0.053557 18014.694373 0.000000 0.000000 18014.694373 0.000000 180146.943728 0
EDGE_SE2 186 187 0.487102 0.004460 0.029590 20369.415625 0.000000 0.000000 20369.415625 0.000000 203694.156252 0
EDGE_SE2 187 188 0.461753 -0.002508 0.020489 19261.550360 0.000000 0.000000 19261.550360 0.000000 192615.503599 0
EDGE_SE2 188 189 0.483327 0.000804 0.021865 26880.714492 0.000000 0.000000 26880.714492 0.000000 268807.144924 0
EDGE_SE2 189 190 0.485916 0.004196 0.020954 20385.770122 0.000000 0.000000 20385.770122 0.000000 203857.701215 0
EDGE_SE2 190 191 0.397184 -0.009674 -0.008241 19938.240848 0.000000 0.000000 19938.240848 0.000000 199382.408483 0
EDGE_SE2 191 192 0.333976 -0.028431 -0.101660 18625.420407 0.000000 0.000000 18625.420407 0.000000 186254.204071 0
EDGE_SE2 192 193 0.097076 -0.004724 -0.008327 30033.621383 0.000000 0.000000 30033.621383 0.000000 300336.213826 0
EDGE_SE2 193 194 -0.000275 -0.013246 -0.386784 20577.800407 0.000000 0.000000 20577.800407 0.000000 205778.004066 0
EDGE_SE2 194 195 -0.013331 -0.012271 -0.526163 18239.297217 0.000000 0.000000 18239.297217 0.000000 182392.972175 0
EDGE_SE2 195 196 -0.005807 -0.018357 -0.470150 28047.768812 0.000000 0.000000 28047.768812 0.000000 280477.688116 0
EDGE_SE2 196 197 -0.000928 -0.021421 -0.163375 26798.817885 0.000000 0.000000 26798.817885 0.000000 267988.178851 0
EDGE_SE2 197 199 0.290151 -0.003403 -0.004400 25457.503827 0.000000 0.000000 25457.503827 0.000000 254575.038273 0
EDGE_SE2 199 200 0.330984 0.004518 -0.003014 20163.816084 0.000000 0.000000 20163.816084 0.000000 201638.160840 0
EDGE_SE2 200 201 0.376295 0.012901 0.082872 19861.155915 0.000000 0.000000 19861.155915 0.000000 198611.559151 0
EDGE_SE2 201 202 0.415712 0.044273 0.175276 19502.939223 0.000000 0.000000 19502.939223 0.000000 195029.392229 0
EDGE_SE2 202 203 0.414368 -0.004007 0.035454 20400.649154 0.000000 0.000000 20400.649154 0.000000 204006.491543 0
EDGE_SE2 203 204 0.421335 -0.013807 0.021436 16234.487391 0.000000 0.000000 16234.487391 0.000000 162344.873906 0
EDGE_SE2 204 205 0.404839 -0.014556 -0.117727 18880.114000 0.000000 0.000000 18880.114000 0.000000 188801.139997 0
EDGE_SE2 205 206 0.316191 -0.021059 -0.070400 23039.932082 0.000000 0.000000 23039.932082 0.000000 230399.320820 0
EDGE_SE2 206 207 0.237199 -0.011154 -0.044903 23702.668878 0.000000 0.000000 23702.668878 0.000000 237026.688776 0
EDGE_SE2 207 208 0.108811 -0.004750 -0.011659 23831.951504 0.000000 0.000000 23831.951504 0.000000 238319.515040 0
EDGE_SE2 208 211 -0.006019 -0.003125 0.291668 20584.301148 0.000000 0.000000 20584.301148 0.000000 205843.011485 0
EDGE_SE2 211 212 0.003434 0.000590 0.237308 30428.517178 0.000000 0.000000 30428.517178 0.000000 304285.171779 0
EDGE_SE2 212 213 0.004027 -0.003896 0.250146 24286.708133 0.000000 0.000000 24286.708133 0.000000 242867.081333 0
EDGE_SE2 213 214 0.002324 -0.000761 0.272938 28768.123911 0.000000 0.000000 28768.123911 0.000000 287681.239108 0
EDGE_SE2 214 215 0.001510 0.010195 0.305398 30576.221766 0.000000 0.000000 30576.221766 0.000000 305762.217665 0
EDGE_SE2 215 216 -0.001708 0.011804 0.327367 38453.244081 0.000000 0.000000 38453.244081 0.000000 384532.440806 0
EDGE_SE2 216 217 -0.003606 0.006885 0.342807 38947.539585 0.000000 0.000000 38947.539585 0.000000 389475.395849 0
EDGE_SE2 217 218 -0.004479 0.002250 0.312889 45652.165660 0.000000 0.000000 45652.165660 0.000000 456521.656601 0
EDGE_SE2 218 219 -0.004209 0.002845 0.295685 30468.171557 0.000000 0.000000 30468.171557 0.000000 304681.715568 0
EDGE_SE2 219 220 -0.000036 0.011485 0.298059 39131.472998 0.000000 0.000000 39131.472998 0.000000 391314.729985 0
EDGE_SE2 220 221 -0.002404 0.007224 0.195242 40231.393295 0.000000 0.000000 40231.393295 0.000000 402313.932952 0
EDGE_SE2 221 225 -0.000377 0.001923 0.111150 31843.790920 0.000000 0.000000 31843.790920 0.000000 318437.909200 0
EDGE_SE2 225 226 0.000130 0.000818 0.232968 28791.006170 0.000000 0.000000 28791.006170 0.000000 287910.061702 0
EDGE_SE2 226 227 -0.004203 0.011706 0.172566 34329.536043 0.000000 0.000000 34329.536043 0.000000 343295.360434 0
EDGE_SE2 227 228 -0.001804 0.003199 0.172982 29732.810701 0.000000 0.000000 29732.810701 0.000000 297328.107007 0
+211
View File
@@ -0,0 +1,211 @@
#timestamp x y z qx qy qz qw
1368730003.896619 5.432196 0.254602 0.000000 0.000000 0.000000 -0.114412 0.993433
1368730006.071224 5.436132 0.259603 0.000000 0.000000 0.000000 -0.045272 0.998975
1368730007.096577 5.438802 0.270577 0.000000 0.000000 0.000000 0.070892 0.997484
1368730008.170692 5.434921 0.273598 0.000000 0.000000 0.000000 0.195394 0.980725
1368730009.270713 5.430181 0.280426 0.000000 0.000000 0.000000 0.357805 0.933796
1368730010.295340 5.420730 0.283825 0.000000 0.000000 0.000000 0.509533 0.860451
1368730011.420115 5.412755 0.284431 0.000000 0.000000 0.000000 0.660922 0.750455
1368730012.519620 5.406191 0.288904 0.000000 0.000000 0.000000 0.742618 0.669715
1368730014.669347 5.388476 0.531291 0.000000 0.000000 0.000000 0.747003 0.664821
1368730015.718884 5.366087 0.740713 0.000000 0.000000 0.000000 0.755411 0.655251
1368730016.793799 5.342164 0.970643 0.000000 0.000000 0.000000 0.758955 0.651143
1368730017.893205 5.306243 1.258806 0.000000 0.000000 0.000000 0.763320 0.646020
1368730019.017871 5.261275 1.564467 0.000000 0.000000 0.000000 0.768587 0.639746
1368730020.167420 5.217079 1.868440 0.000000 0.000000 0.000000 0.769557 0.638578
1368730021.267000 5.160835 2.167500 0.000000 0.000000 0.000000 0.753567 0.657371
1368730022.391565 5.136338 2.476868 0.000000 0.000000 0.000000 0.740138 0.672455
1368730023.491180 5.125064 2.777562 0.000000 0.000000 0.000000 0.735285 0.677758
1368730024.540761 5.098618 3.064319 0.000000 0.000000 0.000000 0.730867 0.682520
1368730025.565609 5.073434 3.312468 0.000000 0.000000 0.000000 0.725968 0.687728
1368730026.590074 5.060552 3.506781 0.000000 0.000000 0.000000 0.722598 0.691269
1368730028.689257 5.053852 3.508774 0.000000 0.000000 0.000000 0.840049 0.542511
1368730029.838911 5.045956 3.500682 0.000000 0.000000 0.000000 0.930050 0.367433
1368730030.963418 5.040254 3.488856 0.000000 0.000000 0.000000 0.981657 0.190658
1368730032.012846 5.030965 3.478173 0.000000 0.000000 0.000000 0.998950 0.045813
1368730035.111594 4.821219 3.471471 0.000000 0.000000 0.000000 0.999992 -0.004116
1368730036.161155 4.617237 3.472014 0.000000 0.000000 0.000000 0.999992 -0.004036
1368730037.260479 4.292758 3.481774 0.000000 0.000000 0.000000 0.999954 -0.009604
1368730038.285127 3.978209 3.470673 0.000000 0.000000 0.000000 0.999658 -0.026140
1368730039.434539 3.462369 3.445687 0.000000 0.000000 0.000000 0.999269 -0.038243
1368730040.558989 2.955282 3.419361 0.000000 0.000000 0.000000 0.999502 -0.031562
1368730041.683513 2.437344 3.408195 0.000000 0.000000 0.000000 0.999833 -0.018260
1368730042.757891 1.958812 3.406995 0.000000 0.000000 0.000000 0.999973 -0.007293
1368730043.832604 1.478481 3.413563 0.000000 0.000000 0.000000 0.999993 0.003667
1368730044.931829 0.989493 3.419495 0.000000 0.000000 0.000000 1.000000 -0.000856
1368730046.031182 0.483726 3.418069 0.000000 0.000000 0.000000 0.999979 -0.006525
1368730047.130669 -0.010636 3.411338 0.000000 0.000000 0.000000 0.999894 -0.014546
1368730048.230182 -0.506099 3.401712 0.000000 0.000000 0.000000 0.999802 -0.019891
1368730049.230434 -0.948010 3.400599 0.000000 0.000000 0.000000 0.999970 -0.007772
1368730050.230572 -1.395774 3.394989 0.000000 0.000000 0.000000 0.999996 0.002897
1368730051.328367 -1.893319 3.406191 0.000000 0.000000 0.000000 0.999895 0.014503
1368730052.427879 -2.346568 3.426152 0.000000 0.000000 0.000000 0.999633 0.027081
1368730053.530609 -2.685722 3.458398 0.000000 0.000000 0.000000 0.999323 0.036780
1368730054.551471 -2.987529 3.469844 0.000000 0.000000 0.000000 0.999921 0.012565
1368730055.575992 -3.285272 3.457978 0.000000 0.000000 0.000000 0.999988 0.004870
1368730056.700291 -3.421365 3.456553 0.000000 0.000000 0.000000 0.999985 0.005418
1368730057.824627 -3.431216 3.459015 0.000000 0.000000 0.000000 0.994885 0.101011
1368730058.948929 -3.423334 3.469413 0.000000 0.000000 0.000000 0.969067 0.246797
1368730060.023773 -3.407681 3.487920 0.000000 0.000000 0.000000 0.917974 0.396641
1368730061.047842 -3.391379 3.495983 0.000000 0.000000 0.000000 0.846220 0.532833
1368730062.096967 -3.373933 3.503381 0.000000 0.000000 0.000000 0.764462 0.644669
1368730064.270127 -3.387845 3.696378 0.000000 0.000000 0.000000 0.740609 0.671936
1368730065.369161 -3.412396 3.940190 0.000000 0.000000 0.000000 0.739923 0.672691
1368730066.418362 -3.440662 4.190451 0.000000 0.000000 0.000000 0.739031 0.673672
1368730067.467306 -3.466992 4.488984 0.000000 0.000000 0.000000 0.738257 0.674520
1368730068.591353 -3.498523 4.884151 0.000000 0.000000 0.000000 0.738055 0.674741
1368730069.665419 -3.536703 5.306705 0.000000 0.000000 0.000000 0.732025 0.681278
1368730070.764244 -3.544082 5.744429 0.000000 0.000000 0.000000 0.718606 0.695418
1368730071.888379 -3.552909 6.231499 0.000000 0.000000 0.000000 0.711133 0.703057
1368730072.987315 -3.540674 6.715886 0.000000 0.000000 0.000000 0.703415 0.710779
1368730074.086378 -3.533940 7.214649 0.000000 0.000000 0.000000 0.719794 0.694188
1368730075.235260 -3.549573 7.725758 0.000000 0.000000 0.000000 0.723033 0.690813
1368730076.285548 -3.559353 8.209032 0.000000 0.000000 0.000000 0.720371 0.693589
1368730077.293558 -3.559980 8.662723 0.000000 0.000000 0.000000 0.718345 0.695687
1368730078.432269 -3.567099 9.174342 0.000000 0.000000 0.000000 0.714427 0.699710
1368730079.506308 -3.564889 9.663434 0.000000 0.000000 0.000000 0.712431 0.701742
1368730080.580478 -3.554269 10.158614 0.000000 0.000000 0.000000 0.710681 0.703514
1368730081.584796 -3.541150 10.605854 0.000000 0.000000 0.000000 0.708751 0.705459
1368730082.703468 -3.525074 11.106726 0.000000 0.000000 0.000000 0.706603 0.707610
1368730083.802348 -3.518447 11.603410 0.000000 0.000000 0.000000 0.706587 0.707626
1368730084.851368 -3.518632 12.074003 0.000000 0.000000 0.000000 0.711907 0.702274
1368730085.900411 -3.517830 12.549440 0.000000 0.000000 0.000000 0.718625 0.695398
1368730086.949412 -3.528774 13.018722 0.000000 0.000000 0.000000 0.722492 0.691379
1368730087.973518 -3.540092 13.491566 0.000000 0.000000 0.000000 0.717792 0.696257
1368730089.047454 -3.541854 13.974113 0.000000 0.000000 0.000000 0.709473 0.704733
1368730090.146260 -3.533107 14.464190 0.000000 0.000000 0.000000 0.700939 0.713221
1368730091.270360 -3.517027 14.983357 0.000000 0.000000 0.000000 0.704638 0.709567
1368730092.344140 -3.529217 15.473991 0.000000 0.000000 0.000000 0.707520 0.706693
1368730093.368319 -3.512295 15.947618 0.000000 0.000000 0.000000 0.710711 0.703484
1368730094.442214 -3.502701 16.431015 0.000000 0.000000 0.000000 0.713427 0.700729
1368730095.466060 -3.501361 16.830746 0.000000 0.000000 0.000000 0.715634 0.698475
1368730096.540025 -3.495208 17.030264 0.000000 0.000000 0.000000 0.717122 0.696947
1368730098.737993 -3.490642 17.021646 0.000000 0.000000 0.000000 0.848077 0.529873
1368730099.811838 -3.489643 17.012506 0.000000 0.000000 0.000000 0.951621 0.307274
1368730100.910816 -3.482613 16.997498 0.000000 0.000000 0.000000 0.994235 0.107224
1368730102.059582 -3.482227 16.989279 0.000000 0.000000 0.000000 0.999868 -0.016246
1368730104.307391 -3.904314 16.982765 0.000000 0.000000 0.000000 0.999850 -0.017342
1368730105.381117 -4.350773 16.975651 0.000000 0.000000 0.000000 0.999831 -0.018381
1368730106.454965 -4.810039 16.976845 0.000000 0.000000 0.000000 0.999823 -0.018835
1368730107.503895 -5.263825 16.979422 0.000000 0.000000 0.000000 0.999791 -0.020458
1368730108.577911 -5.717861 16.970819 0.000000 0.000000 0.000000 0.999803 -0.019840
1368730109.676817 -6.173687 16.960958 0.000000 0.000000 0.000000 0.999806 -0.019678
1368730110.751092 -6.628410 16.955450 0.000000 0.000000 0.000000 0.999810 -0.019506
1368730111.874748 -7.116731 16.950577 0.000000 0.000000 0.000000 0.999824 -0.018749
1368730112.973603 -7.580166 16.941347 0.000000 0.000000 0.000000 0.999844 -0.017669
1368730113.997687 -8.027169 16.933388 0.000000 0.000000 0.000000 0.999849 -0.017351
1368730115.021649 -8.472034 16.926374 0.000000 0.000000 0.000000 0.999850 -0.017344
1368730116.095489 -8.926731 16.920912 0.000000 0.000000 0.000000 0.999849 -0.017355
1368730117.169447 -9.225541 16.917139 0.000000 0.000000 0.000000 0.999848 -0.017432
1368730118.268395 -9.475166 16.909079 0.000000 0.000000 0.000000 0.999867 -0.016312
1368730120.491288 -9.484236 16.920771 0.000000 0.000000 0.000000 0.994655 0.103253
1368730121.590045 -9.473295 16.936926 0.000000 0.000000 0.000000 0.957236 0.289308
1368730122.638938 -9.469715 16.947279 0.000000 0.000000 0.000000 0.861767 0.507304
1368730123.737758 -9.455665 16.948864 0.000000 0.000000 0.000000 0.733427 0.679768
1368730124.861432 -9.458348 16.941019 0.000000 0.000000 0.000000 0.569971 0.821665
1368730125.935427 -9.460509 16.918827 0.000000 0.000000 0.000000 0.403427 0.915012
1368730126.984383 -9.455755 16.905418 0.000000 0.000000 0.000000 0.215284 0.976551
1368730128.108295 -9.457547 16.883947 0.000000 0.000000 0.000000 0.039421 0.999223
1368730131.230269 -9.277041 16.886208 0.000000 0.000000 0.000000 0.022947 0.999737
1368730132.329361 -8.986329 16.896406 0.000000 0.000000 0.000000 0.021728 0.999764
1368730133.353194 -8.728965 16.900934 0.000000 0.000000 0.000000 0.020630 0.999787
1368730134.502119 -8.371084 16.905918 0.000000 0.000000 0.000000 0.019516 0.999810
1368730135.601206 -7.967924 16.918070 0.000000 0.000000 0.000000 0.018707 0.999825
1368730136.700136 -7.555351 16.926100 0.000000 0.000000 0.000000 0.017411 0.999848
1368730137.799108 -7.103616 16.935326 0.000000 0.000000 0.000000 0.016761 0.999860
1368730138.897897 -6.644004 16.942846 0.000000 0.000000 0.000000 0.015473 0.999880
1368730139.971933 -6.188236 16.942419 0.000000 0.000000 0.000000 0.015179 0.999885
1368730141.048516 -5.722981 16.950218 0.000000 0.000000 0.000000 0.014071 0.999901
1368730142.095132 -5.263544 16.965281 0.000000 0.000000 0.000000 0.013068 0.999915
1368730143.143947 -4.863196 16.973597 0.000000 0.000000 0.000000 0.012678 0.999920
1368730144.192939 -4.463703 16.983418 0.000000 0.000000 0.000000 0.011886 0.999929
1368730145.217007 -4.094602 16.985535 0.000000 0.000000 0.000000 0.011725 0.999931
1368730146.340841 -3.781827 16.991592 0.000000 0.000000 0.000000 0.009510 0.999955
1368730147.415115 -3.540430 16.994059 0.000000 0.000000 0.000000 0.009554 0.999954
1368730149.512934 -3.529014 16.984921 0.000000 0.000000 0.000000 -0.142749 0.989759
1368730150.562012 -3.539508 16.960062 0.000000 0.000000 0.000000 -0.330574 0.943780
1368730151.611006 -3.552583 16.951082 0.000000 0.000000 0.000000 -0.509306 0.860585
1368730152.685398 -3.567989 16.943043 0.000000 0.000000 0.000000 -0.645466 0.763789
1368730153.759215 -3.547411 16.940498 0.000000 0.000000 0.000000 -0.687554 0.726133
1368730154.808295 -3.542971 16.815336 0.000000 0.000000 0.000000 -0.687953 0.725755
1368730155.857295 -3.530093 16.437319 0.000000 0.000000 0.000000 -0.688409 0.725323
1368730156.906408 -3.509643 15.991532 0.000000 0.000000 0.000000 -0.689189 0.724582
1368730157.980413 -3.490628 15.530376 0.000000 0.000000 0.000000 -0.693831 0.720138
1368730159.054481 -3.484817 15.057600 0.000000 0.000000 0.000000 -0.704285 0.709917
1368730160.103443 -3.488762 14.582988 0.000000 0.000000 0.000000 -0.713826 0.700323
1368730161.128455 -3.508281 14.118348 0.000000 0.000000 0.000000 -0.723087 0.690757
1368730162.258562 -3.550539 13.620258 0.000000 0.000000 0.000000 -0.727436 0.686175
1368730163.325650 -3.575471 13.133912 0.000000 0.000000 0.000000 -0.718528 0.695498
1368730164.349760 -3.587972 12.663317 0.000000 0.000000 0.000000 -0.711121 0.703070
1368730165.423718 -3.592584 12.182328 0.000000 0.000000 0.000000 -0.704263 0.709939
1368730166.474588 -3.585702 11.701101 0.000000 0.000000 0.000000 -0.697702 0.716388
1368730167.621899 -3.575045 11.181039 0.000000 0.000000 0.000000 -0.689999 0.723811
1368730168.720974 -3.571074 10.682849 0.000000 0.000000 0.000000 -0.701098 0.713065
1368730169.744944 -3.582154 10.210915 0.000000 0.000000 0.000000 -0.709590 0.704615
1368730170.844144 -3.602424 9.707085 0.000000 0.000000 0.000000 -0.714032 0.700114
1368730171.943191 -3.596236 9.217596 0.000000 0.000000 0.000000 -0.704702 0.709504
1368730173.017248 -3.593774 8.738595 0.000000 0.000000 0.000000 -0.696693 0.717369
1368730174.041087 -3.576385 8.277225 0.000000 0.000000 0.000000 -0.691337 0.722532
1368730175.140222 -3.561893 7.791842 0.000000 0.000000 0.000000 -0.684112 0.729377
1368730176.164451 -3.533117 7.338616 0.000000 0.000000 0.000000 -0.678017 0.735046
1368730177.213535 -3.499608 6.862405 0.000000 0.000000 0.000000 -0.669750 0.742587
1368730178.262651 -3.453408 6.390543 0.000000 0.000000 0.000000 -0.660723 0.750629
1368730179.361627 -3.397997 5.891155 0.000000 0.000000 0.000000 -0.661223 0.750190
1368730180.410494 -3.354053 5.420840 0.000000 0.000000 0.000000 -0.677510 0.735514
1368730181.534637 -3.339693 4.906298 0.000000 0.000000 0.000000 -0.689161 0.724609
1368730182.583603 -3.325072 4.424062 0.000000 0.000000 0.000000 -0.698663 0.715451
1368730183.682676 -3.328049 4.136955 0.000000 0.000000 0.000000 -0.704973 0.709234
1368730184.781721 -3.322577 3.729138 0.000000 0.000000 0.000000 -0.711147 0.703043
1368730185.880802 -3.319728 3.490264 0.000000 0.000000 0.000000 -0.697921 0.716175
1368730186.979755 -3.323636 3.500852 0.000000 0.000000 0.000000 -0.585404 0.810742
1368730188.103821 -3.329754 3.513758 0.000000 0.000000 0.000000 -0.338112 0.941106
1368730189.202850 -3.325271 3.540545 0.000000 0.000000 0.000000 -0.071627 0.997432
1368730190.276746 -3.319020 3.529299 0.000000 0.000000 -0.000000 -0.010157 0.999948
1368730191.400758 -2.964609 3.513731 0.000000 0.000000 -0.000000 -0.009981 0.999950
1368730192.499877 -2.470369 3.497379 0.000000 0.000000 -0.000000 -0.009486 0.999955
1368730193.623868 -1.955809 3.494789 0.000000 0.000000 0.000000 0.022841 0.999739
1368730194.698032 -1.482962 3.514132 0.000000 0.000000 0.000000 0.033100 0.999452
1368730195.747044 -1.014611 3.543930 0.000000 0.000000 0.000000 0.042915 0.999079
1368730196.846036 -0.518372 3.580777 0.000000 0.000000 0.000000 0.045831 0.998949
1368730197.970107 -0.010465 3.602128 0.000000 0.000000 0.000000 0.020556 0.999789
1368730199.094106 0.489931 3.595727 0.000000 0.000000 0.000000 -0.008150 0.999967
1368730200.168682 0.976889 3.575978 0.000000 0.000000 0.000000 -0.029732 0.999558
1368730201.242715 1.455418 3.532911 0.000000 0.000000 0.000000 -0.040428 0.999182
1368730202.267271 1.912617 3.488330 0.000000 0.000000 0.000000 -0.035821 0.999358
1368730203.367170 2.410408 3.462518 0.000000 0.000000 0.000000 -0.009359 0.999956
1368730204.467129 2.899761 3.458181 0.000000 0.000000 0.000000 0.005274 0.999986
1368730205.491596 3.364675 3.460949 0.000000 0.000000 0.000000 0.015375 0.999882
1368730206.566978 3.850313 3.476933 0.000000 0.000000 0.000000 0.026219 0.999656
1368730207.641165 4.338786 3.507058 0.000000 0.000000 0.000000 0.036592 0.999330
1368730208.715898 4.739137 3.526931 0.000000 0.000000 0.000000 0.032366 0.999476
1368730209.790626 5.078024 3.520674 0.000000 0.000000 0.000000 -0.018583 0.999827
1368730210.815335 5.176995 3.512674 0.000000 0.000000 0.000000 -0.022795 0.999740
1368730211.940073 5.179369 3.500028 0.000000 0.000000 0.000000 -0.214540 0.976715
1368730213.089775 5.165793 3.495121 0.000000 0.000000 0.000000 -0.461193 0.887300
1368730214.214648 5.149818 3.489748 0.000000 0.000000 0.000000 -0.655193 0.755462
1368730215.289216 5.130979 3.488077 0.000000 0.000000 0.000000 -0.714669 0.699463
1368730217.463810 5.123966 3.198531 0.000000 0.000000 0.000000 -0.716251 0.697843
1368730218.538785 5.123187 2.868127 0.000000 0.000000 0.000000 -0.717396 0.696666
1368730219.663556 5.128421 2.492212 0.000000 0.000000 0.000000 -0.688068 0.725647
1368730220.763114 5.198148 2.080047 0.000000 0.000000 0.000000 -0.622132 0.782912
1368730221.813083 5.291132 1.676067 0.000000 0.000000 0.000000 -0.608422 0.793614
1368730222.862984 5.391319 1.266329 0.000000 0.000000 0.000000 -0.600288 0.799784
1368730223.937508 5.493961 0.874165 0.000000 0.000000 0.000000 -0.646689 0.762754
1368730224.962062 5.527710 0.559425 0.000000 0.000000 0.000000 -0.673459 0.739224
1368730226.036952 5.541363 0.322834 0.000000 0.000000 0.000000 -0.690220 0.723600
1368730227.136890 5.544460 0.214535 0.000000 0.000000 0.000000 -0.694768 0.719234
1368730230.386015 5.544261 0.221155 0.000000 0.000000 0.000000 -0.583322 0.812241
1368730231.411018 5.548012 0.218679 0.000000 0.000000 0.000000 -0.483390 0.875405
1368730232.486427 5.549489 0.214053 0.000000 0.000000 0.000000 -0.370834 0.928699
1368730233.585319 5.552839 0.212687 0.000000 0.000000 0.000000 -0.241409 0.970424
1368730234.710040 5.559639 0.222143 0.000000 0.000000 0.000000 -0.091155 0.995837
1368730235.810076 5.561359 0.236229 0.000000 0.000000 0.000000 0.071596 0.997434
1368730236.909555 5.559348 0.245119 0.000000 0.000000 0.000000 0.239996 0.970774
1368730237.984134 5.555472 0.246451 0.000000 0.000000 0.000000 0.388177 0.921585
1368730239.008957 5.551507 0.247803 0.000000 0.000000 0.000000 0.519422 0.854518
1368730240.058951 5.542851 0.253104 0.000000 0.000000 0.000000 0.640537 0.767927
1368730241.083391 5.535200 0.250922 0.000000 0.000000 0.000000 0.711700 0.702483
1368730245.432388 5.534797 0.251065 0.000000 0.000000 0.000000 0.749619 0.661869
1368730246.532059 5.533773 0.253265 0.000000 0.000000 0.000000 0.821876 0.569667
1368730247.556567 5.521491 0.247170 0.000000 0.000000 0.000000 0.867997 0.496570
1368730248.656215 5.509952 0.242342 0.000000 0.000000 0.000000 0.906894 0.421359
@@ -0,0 +1,982 @@
PARAMS_SE3OFFSET 0 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 1.000000
VERTEX_SE3:QUAT 1 -0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 1.000000
VERTEX_SE3:QUAT 4 0.297207 -0.007288 -0.000403 -0.000550 0.001382 -0.004274 0.999990
VERTEX_SE3:QUAT 5 0.700927 -0.019087 -0.005507 -0.003759 0.005078 -0.013508 0.999889
VERTEX_SE3:QUAT 6 1.087739 -0.039823 -0.008676 -0.005522 0.002517 -0.037999 0.999259
VERTEX_SE3:QUAT 7 1.466688 -0.113520 -0.006038 -0.006645 -0.002732 -0.180761 0.983501
VERTEX_SE3:QUAT 8 1.827479 -0.280288 -0.002561 -0.007300 0.002042 -0.256932 0.966400
VERTEX_SE3:QUAT 9 2.203717 -0.486904 -0.004910 -0.002223 0.005822 -0.269574 0.962960
VERTEX_SE3:QUAT 10 2.595227 -0.718986 -0.009439 0.001246 0.004420 -0.282126 0.959366
VERTEX_SE3:QUAT 11 3.014885 -0.982126 -0.011883 0.001032 0.000475 -0.295680 0.955286
VERTEX_SE3:QUAT 12 3.449838 -1.278228 -0.015086 -0.001560 -0.000849 -0.308351 0.951271
VERTEX_SE3:QUAT 13 3.849396 -1.563145 -0.008654 -0.001399 0.010471 -0.320922 0.947047
VERTEX_SE3:QUAT 14 4.247778 -1.863859 -0.023785 0.003899 0.033324 -0.335968 0.941276
VERTEX_SE3:QUAT 15 4.656878 -2.192277 -0.055698 -0.010879 0.017770 -0.340225 0.940113
VERTEX_SE3:QUAT 16 5.060324 -2.530946 -0.067071 -0.006963 0.001136 -0.352120 0.935928
VERTEX_SE3:QUAT 17 5.464753 -2.874362 -0.074274 -0.007662 -0.001656 -0.336040 0.941815
VERTEX_SE3:QUAT 18 5.858321 -3.177449 -0.082481 -0.012297 0.021808 -0.325598 0.945177
VERTEX_SE3:QUAT 19 6.244966 -3.465100 -0.098285 -0.018759 0.012571 -0.328595 0.944201
VERTEX_SE3:QUAT 20 6.473748 -3.676082 -0.102251 -0.012754 0.013476 -0.422325 0.906254
VERTEX_SE3:QUAT 21 6.475429 -3.669803 -0.101773 -0.018196 0.010295 -0.525981 0.850239
VERTEX_SE3:QUAT 22 6.477586 -3.668774 -0.100729 -0.020818 0.004589 -0.607632 0.793933
VERTEX_SE3:QUAT 23 6.587993 -4.050375 -0.094076 -0.014434 -0.000498 -0.611996 0.790729
VERTEX_SE3:QUAT 24 6.672512 -4.538860 -0.089237 -0.015221 -0.016942 -0.689126 0.724284
VERTEX_SE3:QUAT 25 6.688693 -4.829775 -0.085575 -0.001698 -0.000284 -0.699718 0.714417
VERTEX_SE3:QUAT 26 6.688115 -4.827434 -0.085183 0.000699 -0.001574 -0.632723 0.774376
VERTEX_SE3:QUAT 27 6.672915 -4.827210 -0.080454 -0.000520 0.002467 -0.393295 0.919409
VERTEX_SE3:QUAT 29 6.967871 -5.104074 -0.074587 -0.016565 -0.018221 -0.370161 0.928641
VERTEX_SE3:QUAT 30 7.255134 -5.366476 -0.069184 -0.025786 0.001132 -0.359093 0.932945
VERTEX_SE3:QUAT 31 7.578664 -5.650684 -0.061632 -0.013151 -0.013458 -0.362172 0.931921
VERTEX_SE3:QUAT 32 7.880760 -5.923184 -0.057641 -0.000078 -0.007423 -0.363681 0.931494
VERTEX_SE3:QUAT 33 8.216614 -6.221097 -0.060222 0.003348 0.012879 -0.367963 0.929745
VERTEX_SE3:QUAT 34 8.545370 -6.525254 -0.066648 -0.001936 0.004389 -0.370975 0.928630
VERTEX_SE3:QUAT 35 8.862854 -6.872303 -0.072708 -0.014754 -0.014297 -0.468278 0.883342
VERTEX_SE3:QUAT 36 9.046622 -7.283012 -0.066624 -0.006043 -0.005579 -0.647413 0.762095
VERTEX_SE3:QUAT 37 9.062366 -7.746761 -0.059782 -0.002661 -0.001460 -0.743846 0.668344
VERTEX_SE3:QUAT 38 9.020174 -8.251387 -0.057357 -0.011046 -0.014540 -0.726731 0.686680
VERTEX_SE3:QUAT 39 9.049316 -8.748811 -0.043592 -0.001912 -0.008602 -0.631169 0.775595
VERTEX_SE3:QUAT 40 9.207206 -9.224814 -0.032250 -0.007882 -0.019702 -0.554969 0.831600
VERTEX_SE3:QUAT 41 9.403651 -9.672992 -0.016622 0.002666 -0.008094 -0.550537 0.834767
VERTEX_SE3:QUAT 42 9.599689 -10.100506 -0.013644 0.017005 -0.007184 -0.536069 0.843972
VERTEX_SE3:QUAT 43 9.821524 -10.555017 -0.011231 0.012154 -0.016637 -0.532421 0.846229
VERTEX_SE3:QUAT 44 10.034784 -10.982931 0.001380 -0.003469 -0.014870 -0.538744 0.842331
VERTEX_SE3:QUAT 45 10.219577 -11.411628 0.011340 -0.017569 -0.027021 -0.575971 0.816835
VERTEX_SE3:QUAT 46 10.369317 -11.836936 0.034042 -0.017487 -0.027241 -0.598122 0.800751
VERTEX_SE3:QUAT 47 10.437685 -12.223157 0.052397 -0.014004 -0.032129 -0.715982 0.697238
VERTEX_SE3:QUAT 48 10.400947 -12.483871 0.060942 -0.013130 -0.045607 -0.787234 0.614826
VERTEX_SE3:QUAT 49 10.347826 -12.710611 0.077622 -0.012203 -0.040233 -0.792355 0.608609
VERTEX_SE3:QUAT 50 10.320610 -12.892543 0.086267 -0.018249 -0.035163 -0.719212 0.693660
VERTEX_SE3:QUAT 51 10.335244 -13.097770 0.097282 -0.018049 -0.022533 -0.658695 0.751856
VERTEX_SE3:QUAT 52 10.378508 -13.345840 0.112098 -0.039632 -0.036838 -0.604877 0.794478
VERTEX_SE3:QUAT 53 10.478564 -13.592049 0.137345 -0.045277 -0.036766 -0.482560 0.873919
VERTEX_SE3:QUAT 54 10.673715 -13.790077 0.159276 -0.039047 -0.019965 -0.261521 0.964201
VERTEX_SE3:QUAT 55 10.945212 -13.883882 0.164373 -0.038111 -0.010815 -0.083843 0.995691
VERTEX_SE3:QUAT 57 10.987339 -13.866891 0.172055 -0.021409 -0.020065 -0.469548 0.882419
VERTEX_SE3:QUAT 58 10.993478 -13.864888 0.164570 -0.025514 -0.033116 -0.695880 0.716941
VERTEX_SE3:QUAT 60 10.992141 -13.969542 0.177701 -0.033864 -0.029510 -0.693299 0.719249
VERTEX_SE3:QUAT 61 11.013530 -14.138080 0.186350 -0.034942 -0.040677 -0.624479 0.779198
VERTEX_SE3:QUAT 62 11.072386 -14.337712 0.208192 -0.044882 -0.041823 -0.569193 0.819912
VERTEX_SE3:QUAT 63 11.193892 -14.568810 0.234024 -0.047770 -0.041772 -0.445341 0.893109
VERTEX_SE3:QUAT 64 11.375619 -14.778193 0.259932 -0.049682 -0.050525 -0.444442 0.893001
VERTEX_SE3:QUAT 65 11.509504 -15.004620 0.289145 -0.052894 -0.062408 -0.594520 0.799909
VERTEX_SE3:QUAT 66 11.589595 -15.282693 0.326049 -0.050912 -0.061095 -0.655311 0.751161
VERTEX_SE3:QUAT 67 11.625100 -15.537633 0.358488 -0.040297 -0.063145 -0.688553 0.721307
VERTEX_SE3:QUAT 68 11.664193 -15.815841 0.387012 -0.016671 -0.058386 -0.614358 0.786688
VERTEX_SE3:QUAT 69 11.775672 -16.080564 0.412130 -0.009377 -0.047170 -0.515850 0.855328
VERTEX_SE3:QUAT 70 11.887134 -16.289068 0.431176 -0.008651 -0.051787 -0.500039 0.864410
VERTEX_SE3:QUAT 71 12.020911 -16.487286 0.453591 -0.005714 -0.042774 -0.424821 0.904248
VERTEX_SE3:QUAT 72 12.214423 -16.654669 0.475826 -0.016600 -0.040410 -0.259066 0.964871
VERTEX_SE3:QUAT 73 12.468792 -16.746426 0.485373 -0.021109 -0.009105 -0.088733 0.995790
VERTEX_SE3:QUAT 74 12.698627 -16.787113 0.490671 -0.025213 0.011689 -0.069354 0.997205
VERTEX_SE3:QUAT 75 12.975039 -16.823875 0.485736 -0.025202 -0.011869 -0.063500 0.997593
VERTEX_SE3:QUAT 76 13.235614 -16.855215 0.488868 -0.031404 -0.009837 -0.061728 0.997550
VERTEX_SE3:QUAT 77 13.521177 -16.883270 0.485400 -0.024576 0.003349 -0.048522 0.998514
VERTEX_SE3:QUAT 81 13.604019 -16.870800 0.483194 -0.022901 -0.006050 -0.216751 0.975940
VERTEX_SE3:QUAT 82 13.607748 -16.852610 0.485744 -0.033268 -0.018592 -0.564984 0.824221
VERTEX_SE3:QUAT 83 13.627279 -16.843246 0.481204 -0.017387 -0.021837 -0.850524 0.525196
VERTEX_SE3:QUAT 84 13.631705 -16.847717 0.483596 0.017652 0.034988 0.986849 -0.156825
VERTEX_SE3:QUAT 85 13.632862 -16.858263 0.483608 0.004911 0.023992 0.977731 0.208428
VERTEX_SE3:QUAT 86 13.626355 -16.865686 0.485385 -0.006408 0.034754 0.880643 0.472461
VERTEX_SE3:QUAT 87 13.618299 -16.866049 0.485939 -0.006858 0.031164 0.788237 0.614544
VERTEX_SE3:QUAT 88 13.612241 -16.865412 0.487283 -0.006935 0.026559 0.694979 0.718506
VERTEX_SE3:QUAT 89 13.611304 -16.865486 0.486370 -0.006749 0.019269 0.633615 0.773379
VERTEX_SE3:QUAT 92 13.612142 -16.863712 0.484743 -0.009159 0.011873 0.566627 0.823838
VERTEX_SE3:QUAT 93 13.557487 -17.010300 0.488934 -0.013677 0.020092 0.559029 0.828792
VERTEX_SE3:QUAT 94 13.424199 -17.280624 0.510242 -0.025009 0.037997 0.486443 0.872527
VERTEX_SE3:QUAT 95 13.205340 -17.509424 0.523417 -0.004289 -0.009070 0.285845 0.958224
VERTEX_SE3:QUAT 96 13.030069 -17.610830 0.524880 -0.006514 -0.006726 0.237544 0.971332
VERTEX_SE3:QUAT 97 13.036937 -17.612339 0.530340 -0.001943 0.004178 0.394454 0.918904
VERTEX_SE3:QUAT 98 13.049808 -17.618837 0.526642 -0.002961 0.007470 0.667683 0.744403
VERTEX_SE3:QUAT 99 13.065364 -17.616264 0.521120 0.001693 0.008871 0.872427 0.488661
VERTEX_SE3:QUAT 100 13.075343 -17.607410 0.523909 0.008525 0.014074 0.986105 0.165304
VERTEX_SE3:QUAT 101 13.055898 -17.600126 0.521865 0.009940 0.009908 0.994558 0.103232
VERTEX_SE3:QUAT 102 12.781411 -17.541058 0.522008 0.013750 0.017217 0.996631 0.078996
VERTEX_SE3:QUAT 103 12.463018 -17.508966 0.525637 0.012516 0.022749 0.999658 0.003257
VERTEX_SE3:QUAT 104 12.317531 -17.523022 0.526370 -0.006151 0.024410 0.994815 -0.098537
VERTEX_SE3:QUAT 105 12.317300 -17.514816 0.527909 -0.003727 0.023912 0.962994 -0.268436
VERTEX_SE3:QUAT 106 12.317035 -17.502182 0.533525 -0.012808 -0.024323 -0.826806 0.561816
VERTEX_SE3:QUAT 107 12.311630 -17.502693 0.536276 -0.011043 -0.021921 -0.562949 0.826127
VERTEX_SE3:QUAT 108 12.300429 -17.507277 0.539534 -0.022500 -0.008161 -0.197216 0.980068
VERTEX_SE3:QUAT 109 12.302053 -17.521849 0.536506 -0.015548 -0.007832 0.210629 0.977411
VERTEX_SE3:QUAT 110 12.308065 -17.530100 0.534841 -0.012684 -0.000897 0.406676 0.913484
VERTEX_SE3:QUAT 111 12.500440 -17.315769 0.532112 -0.017073 0.015421 0.408789 0.912339
VERTEX_SE3:QUAT 112 12.822581 -16.980978 0.514154 -0.014814 0.022882 0.313922 0.949057
VERTEX_SE3:QUAT 113 13.216861 -16.748306 0.487638 -0.018389 0.016906 0.232792 0.972206
VERTEX_SE3:QUAT 114 13.543225 -16.527870 0.472950 -0.017800 0.012967 0.373720 0.927280
VERTEX_SE3:QUAT 115 13.789813 -16.222313 0.457209 -0.024547 0.005641 0.456209 0.889516
VERTEX_SE3:QUAT 116 13.991039 -15.916025 0.444471 -0.025304 0.010620 0.484524 0.874348
VERTEX_SE3:QUAT 117 14.181281 -15.600853 0.427579 -0.019622 0.010315 0.490528 0.871144
VERTEX_SE3:QUAT 118 14.354988 -15.283593 0.409990 -0.024238 0.014888 0.547575 0.836273
VERTEX_SE3:QUAT 120 14.380777 -15.265206 0.411808 -0.014190 0.019285 0.828873 0.558924
VERTEX_SE3:QUAT 121 14.385307 -15.263857 0.412744 -0.009138 0.019876 0.881422 0.471822
VERTEX_SE3:QUAT 122 14.390368 -15.259765 0.409987 -0.008822 0.026707 0.943435 0.330361
VERTEX_SE3:QUAT 123 14.184569 -15.080460 0.399705 -0.011044 0.032937 0.924901 0.378617
VERTEX_SE3:QUAT 124 13.962880 -14.734529 0.383102 -0.003209 0.042137 0.795323 0.604712
VERTEX_SE3:QUAT 125 13.950537 -14.369042 0.348993 -0.040022 0.026557 0.608846 0.791833
VERTEX_SE3:QUAT 126 14.037263 -14.009762 0.312427 -0.057252 -0.001119 0.573788 0.817000
VERTEX_SE3:QUAT 127 14.148871 -13.683140 0.287283 -0.057165 0.009119 0.560024 0.826451
VERTEX_SE3:QUAT 128 14.333928 -13.362993 0.271356 -0.049846 -0.012207 0.359935 0.931565
VERTEX_SE3:QUAT 129 14.625889 -13.196788 0.283285 -0.042034 -0.040110 0.102668 0.993017
VERTEX_SE3:QUAT 130 14.997995 -13.103970 0.306374 -0.032630 -0.044596 0.128819 0.990127
VERTEX_SE3:QUAT 131 15.315399 -12.979806 0.316285 -0.036160 -0.007125 0.228567 0.972830
VERTEX_SE3:QUAT 132 15.573728 -12.839860 0.312657 -0.035191 0.002918 0.247162 0.968331
VERTEX_SE3:QUAT 133 15.564738 -12.834804 0.314199 -0.030819 -0.008555 0.097556 0.994716
VERTEX_SE3:QUAT 134 15.562998 -12.812402 0.316323 -0.027185 -0.030913 -0.319077 0.946834
VERTEX_SE3:QUAT 135 15.569216 -12.800784 0.312471 -0.022813 -0.035140 -0.697785 0.715081
VERTEX_SE3:QUAT 136 15.583553 -12.802828 0.309056 0.010375 0.044000 0.931006 -0.362193
VERTEX_SE3:QUAT 137 15.584132 -12.813410 0.309039 -0.011890 0.034232 0.997198 0.065447
VERTEX_SE3:QUAT 138 15.571840 -12.822796 0.308760 -0.021264 0.032722 0.884993 0.463966
VERTEX_SE3:QUAT 139 15.567374 -12.822525 0.305978 -0.026845 0.026809 0.790329 0.611507
VERTEX_SE3:QUAT 140 15.523145 -12.588450 0.291533 -0.025855 0.020274 0.732431 0.680048
VERTEX_SE3:QUAT 141 15.512638 -12.276415 0.269317 -0.035969 0.012015 0.689489 0.723303
VERTEX_SE3:QUAT 142 15.541712 -11.890884 0.257328 -0.021187 -0.022447 0.624226 0.780634
VERTEX_SE3:QUAT 143 15.634741 -11.494071 0.254826 -0.030679 -0.011806 0.600534 0.798923
VERTEX_SE3:QUAT 144 15.729422 -11.151771 0.247993 -0.019881 -0.010200 0.606182 0.795012
VERTEX_SE3:QUAT 147 15.755819 -11.057789 0.244842 -0.019187 -0.002302 0.670301 0.741838
VERTEX_SE3:QUAT 148 15.768134 -11.056891 0.248468 -0.025849 0.007118 0.835753 0.548450
VERTEX_SE3:QUAT 149 15.774804 -11.052881 0.245727 -0.018245 0.009746 0.917983 0.396080
VERTEX_SE3:QUAT 151 15.509745 -10.803608 0.230120 -0.018895 0.024122 0.942577 0.332580
VERTEX_SE3:QUAT 152 15.225884 -10.584762 0.208617 -0.023217 0.028200 0.946861 0.319563
VERTEX_SE3:QUAT 153 14.932817 -10.372270 0.189167 -0.016164 0.021911 0.950891 0.308328
VERTEX_SE3:QUAT 154 14.637596 -10.142470 0.169691 -0.016959 0.012494 0.933336 0.358386
VERTEX_SE3:QUAT 155 14.341645 -9.872950 0.148669 -0.014945 0.008148 0.926053 0.377010
VERTEX_SE3:QUAT 156 14.021996 -9.561430 0.133286 -0.007657 0.002477 0.923177 0.384291
VERTEX_SE3:QUAT 157 13.687910 -9.251025 0.120518 -0.012796 0.007487 0.937360 0.348047
VERTEX_SE3:QUAT 158 13.327748 -8.955702 0.103958 -0.014147 0.007350 0.941486 0.336676
VERTEX_SE3:QUAT 159 12.949648 -8.646025 0.082614 -0.013086 0.014340 0.945874 0.323952
VERTEX_SE3:QUAT 160 12.537619 -8.332017 0.066344 -0.012454 0.015600 0.948048 0.317501
VERTEX_SE3:QUAT 161 12.117064 -8.027689 0.038988 -0.019467 0.000132 0.949929 0.311858
VERTEX_SE3:QUAT 162 11.696435 -7.732824 0.018354 -0.012126 0.007047 0.954035 0.299368
VERTEX_SE3:QUAT 163 11.277628 -7.437942 -0.008521 -0.036452 0.007265 0.947120 0.318721
VERTEX_SE3:QUAT 164 10.858293 -7.122739 -0.033827 -0.018834 -0.005146 0.944103 0.329071
VERTEX_SE3:QUAT 165 10.446569 -6.788231 -0.055315 -0.016285 0.002944 0.941025 0.337933
VERTEX_SE3:QUAT 166 10.047589 -6.456465 -0.062509 0.011350 -0.006887 0.937210 0.348514
VERTEX_SE3:QUAT 167 9.654986 -6.109542 -0.067198 -0.002799 0.019218 0.934437 0.355600
VERTEX_SE3:QUAT 168 9.259235 -5.760267 -0.083034 0.003423 0.019863 0.945461 0.325112
VERTEX_SE3:QUAT 169 8.833440 -5.442094 -0.082966 0.011505 0.031118 0.951177 0.306859
VERTEX_SE3:QUAT 170 8.406234 -5.133014 -0.079857 0.023925 0.021193 0.952920 0.301534
VERTEX_SE3:QUAT 171 7.980869 -4.798532 -0.084596 -0.009678 0.009015 0.930929 0.364962
VERTEX_SE3:QUAT 172 7.593131 -4.426987 -0.102814 -0.004039 0.024863 0.924915 0.379338
VERTEX_SE3:QUAT 173 7.221503 -4.054790 -0.107618 0.024560 0.024307 0.925768 0.376510
VERTEX_SE3:QUAT 174 6.834067 -3.691391 -0.111397 0.013018 0.021275 0.930959 0.364270
VERTEX_SE3:QUAT 175 6.443308 -3.340591 -0.103624 0.022217 0.019439 0.935637 0.351728
VERTEX_SE3:QUAT 176 6.029097 -3.011795 -0.093223 0.037185 0.022772 0.947917 0.315520
VERTEX_SE3:QUAT 177 5.611187 -2.706734 -0.086129 0.006930 0.011137 0.952293 0.304904
VERTEX_SE3:QUAT 178 5.197616 -2.413291 -0.086063 0.011240 0.005947 0.955183 0.295743
VERTEX_SE3:QUAT 179 4.762222 -2.127129 -0.071002 0.029884 0.007106 0.959460 0.280165
VERTEX_SE3:QUAT 180 4.330885 -1.859460 -0.042345 0.047901 0.000585 0.958863 0.279797
VERTEX_SE3:QUAT 181 3.905581 -1.599417 -0.027026 0.017290 0.007271 0.963803 0.265955
VERTEX_SE3:QUAT 182 3.487514 -1.354672 -0.024979 0.003205 0.003897 0.965207 0.261438
VERTEX_SE3:QUAT 183 3.087719 -1.139348 -0.029233 0.004413 0.005229 0.972643 0.232203
VERTEX_SE3:QUAT 184 2.643431 -0.938845 -0.027110 0.008053 0.005755 0.981228 0.192598
VERTEX_SE3:QUAT 185 2.196143 -0.786437 -0.020710 0.013527 0.007048 0.989767 0.141874
VERTEX_SE3:QUAT 186 1.762994 -0.689241 -0.013394 0.009118 0.004835 0.995964 0.089162
VERTEX_SE3:QUAT 187 1.333916 -0.626403 -0.011475 0.003464 0.006973 0.997514 0.070040
VERTEX_SE3:QUAT 188 0.916439 -0.573764 -0.008202 0.008576 0.004585 0.994817 0.101217
VERTEX_SE3:QUAT 189 0.612154 -0.462964 -0.005270 0.007387 0.001601 0.955436 0.295102
VERTEX_SE3:QUAT 190 0.412232 -0.269832 -0.002031 0.005977 0.003392 0.902642 0.430337
VERTEX_SE3:QUAT 191 0.274273 -0.098838 -0.001370 0.006560 0.003383 0.892059 0.451859
VERTEX_SE3:QUAT 193 0.226080 -0.058898 -0.000343 0.004759 0.003418 0.616836 0.787070
VERTEX_SE3:QUAT 194 0.214815 -0.049327 -0.001331 0.002826 -0.001372 0.246386 0.969167
VERTEX_SE3:QUAT 195 0.212310 -0.037656 -0.001744 -0.002260 -0.000691 -0.037618 0.999289
VERTEX_SE3:QUAT 197 0.222042 0.102376 -0.001590 -0.001545 -0.000303 -0.018628 0.999825
VERTEX_SE3:QUAT 199 -0.022733 0.111379 -0.000166 0.000254 -0.000214 -0.002605 0.999997
VERTEX_SE3:QUAT 208 0.084286 0.112816 -0.000558 -0.000202 0.000717 -0.005799 0.999983
VERTEX_SE3:QUAT 209 0.232103 0.109418 -0.001761 -0.001134 0.002089 -0.035644 0.999362
VERTEX_SE3:QUAT 217 0.474408 0.104761 -0.003804 -0.002602 0.003634 -0.021074 0.999768
VERTEX_SE3:QUAT 228 0.776374 0.095967 -0.006372 -0.003764 0.005447 -0.021121 0.999755
VERTEX_SE3:QUAT 229 1.038842 0.086724 -0.010208 -0.003438 0.003018 -0.025421 0.999666
VERTEX_SE3:QUAT 230 1.321001 0.072308 -0.010645 -0.005726 -0.003550 -0.033207 0.999426
VERTEX_SE3:QUAT 231 1.662269 0.049851 -0.007910 -0.004445 -0.000521 -0.044285 0.999009
VERTEX_SE3:QUAT 232 2.050822 0.014229 -0.011802 -0.003057 0.002156 -0.065984 0.997814
VERTEX_SE3:QUAT 233 2.409886 -0.048684 -0.012535 -0.004243 0.004416 -0.147408 0.989057
VERTEX_SE3:QUAT 234 2.712650 -0.191384 -0.013055 -0.007022 -0.000883 -0.324296 0.945929
VERTEX_SE3:QUAT 235 3.008956 -0.448275 -0.011122 -0.002947 0.000161 -0.380393 0.924820
VERTEX_SE3:QUAT 236 3.282640 -0.720320 -0.008690 -0.000967 -0.006976 -0.409694 0.912196
VERTEX_SE3:QUAT 237 3.543260 -1.016227 -0.010420 0.000635 0.001113 -0.432035 0.901856
VERTEX_SE3:QUAT 238 3.820451 -1.351663 -0.004989 -0.014845 -0.000064 -0.446118 0.894851
VERTEX_SE3:QUAT 239 4.081958 -1.688289 -0.017949 -0.004607 0.026926 -0.456695 0.889204
VERTEX_SE3:QUAT 240 4.333947 -2.021163 -0.033836 -0.014104 0.030426 -0.443386 0.895703
VERTEX_SE3:QUAT 241 4.618527 -2.372107 -0.050238 -0.012707 0.016470 -0.473686 0.880448
VERTEX_SE3:QUAT 242 4.793990 -2.757437 -0.055005 -0.009633 0.010191 -0.605265 0.795901
VERTEX_SE3:QUAT 243 4.911946 -3.163985 -0.051857 -0.016910 0.005091 -0.603767 0.796965
VERTEX_SE3:QUAT 244 5.033749 -3.540643 -0.045170 -0.023254 -0.007299 -0.575962 0.817113
VERTEX_SE3:QUAT 245 5.136902 -3.906132 -0.041167 -0.013576 0.008166 -0.572926 0.819454
VERTEX_SE3:QUAT 246 5.240246 -4.298472 -0.040787 -0.021696 0.011933 -0.572747 0.819358
VERTEX_SE3:QUAT 247 5.355924 -4.740252 -0.043617 -0.009856 0.002648 -0.558167 0.829666
VERTEX_SE3:QUAT 248 5.480280 -5.157649 -0.046825 -0.008713 -0.005457 -0.526156 0.850326
VERTEX_SE3:QUAT 249 5.641327 -5.570795 -0.035737 -0.010371 -0.006700 -0.473535 0.880688
VERTEX_SE3:QUAT 250 5.820017 -5.958232 -0.033480 -0.015844 -0.001907 -0.434996 0.900291
VERTEX_SE3:QUAT 251 6.019396 -6.346899 -0.025842 -0.022230 0.000373 -0.371836 0.928032
VERTEX_SE3:QUAT 252 6.284937 -6.687123 -0.020561 -0.013565 -0.005375 -0.319740 0.947393
VERTEX_SE3:QUAT 253 6.521807 -6.960314 -0.018517 -0.002740 0.006001 -0.323541 0.946191
VERTEX_SE3:QUAT 254 6.744379 -7.262732 -0.022353 -0.001904 0.011145 -0.399061 0.916855
VERTEX_SE3:QUAT 255 6.948895 -7.597580 -0.020847 -0.001730 -0.000442 -0.403418 0.915014
VERTEX_SE3:QUAT 256 7.181215 -7.941017 -0.018311 -0.006793 -0.013939 -0.378275 0.925563
VERTEX_SE3:QUAT 257 7.391415 -8.259534 -0.013348 -0.001711 -0.013204 -0.375975 0.926534
VERTEX_SE3:QUAT 258 7.583969 -8.594996 -0.002576 -0.001553 -0.005754 -0.378578 0.925550
VERTEX_SE3:QUAT 259 7.758307 -8.941208 -0.006118 -0.002430 -0.010533 -0.375762 0.926653
VERTEX_SE3:QUAT 260 7.913909 -9.294748 0.004227 -0.007448 -0.012967 -0.382938 0.923653
VERTEX_SE3:QUAT 261 8.079233 -9.691836 0.007823 -0.008387 -0.019926 -0.371147 0.928322
VERTEX_SE3:QUAT 262 8.275148 -10.063763 0.014726 -0.004885 -0.009776 -0.296416 0.954997
VERTEX_SE3:QUAT 263 8.487873 -10.406416 0.023094 -0.008034 -0.012306 -0.288191 0.957460
VERTEX_SE3:QUAT 264 8.705660 -10.748962 0.034361 -0.010982 -0.013532 -0.282436 0.959128
VERTEX_SE3:QUAT 265 8.875661 -10.990728 0.042765 -0.010910 -0.016060 -0.221118 0.975054
VERTEX_SE3:QUAT 266 8.874748 -10.993511 0.043427 -0.010549 -0.015403 -0.160092 0.986925
VERTEX_SE3:QUAT 267 8.871044 -11.003353 0.049248 -0.018174 -0.009003 0.100131 0.994768
VERTEX_SE3:QUAT 269 9.261156 -10.920631 0.050201 -0.017507 -0.010499 0.075674 0.996924
VERTEX_SE3:QUAT 270 9.667365 -10.882385 0.055866 -0.010182 -0.010718 0.006996 0.999866
VERTEX_SE3:QUAT 271 10.088056 -10.876288 0.065365 -0.000394 -0.016846 -0.010178 0.999806
VERTEX_SE3:QUAT 272 10.529491 -10.887248 0.082761 -0.000069 -0.035922 -0.026384 0.999006
VERTEX_SE3:QUAT 273 11.001882 -10.914084 0.110668 -0.009976 -0.026712 -0.044655 0.998595
VERTEX_SE3:QUAT 274 11.480304 -10.957733 0.128112 0.000418 -0.021375 -0.051148 0.998462
VERTEX_SE3:QUAT 275 11.972815 -11.011531 0.139477 -0.004365 -0.014758 -0.067004 0.997634
VERTEX_SE3:QUAT 276 12.459638 -11.071979 0.157746 -0.011110 -0.045362 -0.079447 0.995744
VERTEX_SE3:QUAT 277 12.941046 -11.145134 0.181946 -0.007002 -0.028370 -0.092693 0.995266
VERTEX_SE3:QUAT 278 13.388262 -11.226751 0.205318 -0.014833 -0.034542 -0.107942 0.993446
VERTEX_SE3:QUAT 279 13.839608 -11.320506 0.234593 -0.013207 -0.043427 -0.123143 0.991350
VERTEX_SE3:QUAT 280 14.258964 -11.426625 0.273644 -0.007161 -0.038489 -0.135039 0.990067
VERTEX_SE3:QUAT 281 14.680033 -11.538947 0.299210 -0.004962 -0.027903 -0.121431 0.992195
VERTEX_SE3:QUAT 282 15.137338 -11.617734 0.322969 -0.003950 -0.038072 -0.055091 0.997747
VERTEX_SE3:QUAT 283 15.597423 -11.643414 0.349621 -0.019275 -0.039975 0.000451 0.999015
VERTEX_SE3:QUAT 284 16.057384 -11.623997 0.381712 -0.020853 -0.036589 0.030757 0.998639
VERTEX_SE3:QUAT 285 16.467577 -11.589320 0.406251 -0.021805 -0.031103 0.041409 0.998420
VERTEX_SE3:QUAT 286 16.579510 -11.577680 0.414239 -0.024648 -0.029919 0.045977 0.998190
VERTEX_SE3:QUAT 287 16.574102 -11.568793 0.414294 -0.014827 -0.032914 -0.110543 0.993216
VERTEX_SE3:QUAT 288 16.580492 -11.557902 0.415432 -0.009074 -0.040527 -0.512296 0.857804
VERTEX_SE3:QUAT 289 16.593969 -11.554049 0.415005 0.008244 -0.036217 -0.811437 0.583258
VERTEX_SE3:QUAT 290 16.603319 -11.562438 0.419581 -0.015418 0.033002 0.969778 -0.241256
VERTEX_SE3:QUAT 291 16.605511 -11.573357 0.419143 -0.024070 0.018230 0.991173 0.129094
VERTEX_SE3:QUAT 292 16.596891 -11.584069 0.420966 -0.029258 -0.001757 0.891507 0.452058
VERTEX_SE3:QUAT 293 16.585093 -11.589776 0.419196 -0.030288 -0.003514 0.664484 0.746680
VERTEX_SE3:QUAT 294 16.572720 -11.586373 0.419402 -0.026401 -0.013882 0.453532 0.890741
VERTEX_SE3:QUAT 296 16.808571 -11.250550 0.421818 -0.028682 -0.018940 0.455277 0.889686
VERTEX_SE3:QUAT 297 17.056040 -10.896603 0.432441 -0.020710 -0.036791 0.453178 0.890420
VERTEX_SE3:QUAT 298 17.325108 -10.556504 0.448522 -0.023818 -0.038538 0.379764 0.923974
VERTEX_SE3:QUAT 299 17.625343 -10.282960 0.467350 -0.023647 -0.044819 0.331492 0.942096
VERTEX_SE3:QUAT 300 17.931490 -10.023431 0.489077 -0.026673 -0.040668 0.326126 0.944075
VERTEX_SE3:QUAT 301 18.284433 -9.740867 0.508441 -0.019816 -0.040899 0.317558 0.947149
VERTEX_SE3:QUAT 302 18.686531 -9.426548 0.532720 -0.034463 -0.036037 0.306093 0.950695
VERTEX_SE3:QUAT 303 19.094294 -9.123113 0.553938 -0.035306 -0.054131 0.296478 0.952851
VERTEX_SE3:QUAT 304 19.494081 -8.829951 0.582495 -0.013222 -0.070263 0.291387 0.953930
VERTEX_SE3:QUAT 305 19.910110 -8.581560 0.624431 -0.031179 -0.052231 0.202700 0.977350
VERTEX_SE3:QUAT 306 20.357082 -8.416024 0.663909 -0.024716 -0.068207 0.142494 0.987133
VERTEX_SE3:QUAT 307 20.825367 -8.269218 0.700898 -0.033971 -0.044871 0.134165 0.989360
VERTEX_SE3:QUAT 308 21.310221 -8.128152 0.743470 -0.007032 -0.069959 0.118316 0.990484
VERTEX_SE3:QUAT 309 21.804642 -8.006191 0.804258 -0.010545 -0.062558 0.105701 0.992372
VERTEX_SE3:QUAT 310 22.291910 -7.897246 0.859787 -0.018062 -0.058252 0.085497 0.994470
VERTEX_SE3:QUAT 311 22.777880 -7.808217 0.908808 -0.005360 -0.064725 0.065487 0.995738
VERTEX_SE3:QUAT 312 23.275576 -7.738362 0.964458 -0.005210 -0.066195 0.049926 0.996543
VERTEX_SE3:QUAT 313 23.779047 -7.687256 1.033643 -0.006992 -0.078155 0.030548 0.996449
VERTEX_SE3:QUAT 314 24.291977 -7.632043 1.113084 -0.005642 -0.089488 0.087218 0.992146
VERTEX_SE3:QUAT 315 24.792595 -7.491662 1.184133 0.008676 -0.085349 0.140956 0.986292
VERTEX_SE3:QUAT 316 25.273830 -7.332484 1.253493 -0.008436 -0.075892 0.164623 0.983397
VERTEX_SE3:QUAT 317 25.744272 -7.155049 1.310197 -0.008616 -0.062020 0.176225 0.982356
VERTEX_SE3:QUAT 318 26.195368 -6.957319 1.361300 -0.000994 -0.066298 0.208694 0.975731
VERTEX_SE3:QUAT 319 26.675365 -6.779469 1.416106 -0.010273 -0.055514 0.077426 0.995398
VERTEX_SE3:QUAT 320 27.135004 -6.752932 1.473565 0.004955 -0.088463 -0.035523 0.995434
VERTEX_SE3:QUAT 321 27.563997 -6.749808 1.523215 -0.004917 -0.055344 0.039913 0.997657
VERTEX_SE3:QUAT 322 27.820385 -6.717770 1.546888 -0.013752 -0.044584 0.082152 0.995527
VERTEX_SE3:QUAT 324 27.834211 -6.701086 1.542744 0.003943 -0.044866 -0.230723 0.971977
VERTEX_SE3:QUAT 325 27.839441 -6.690993 1.544144 0.004797 -0.043670 -0.561113 0.826573
VERTEX_SE3:QUAT 326 27.850910 -6.694258 1.541177 0.026877 -0.030065 -0.825702 0.562664
VERTEX_SE3:QUAT 327 27.857662 -6.705317 1.540458 -0.024432 0.028956 0.974557 -0.220914
VERTEX_SE3:QUAT 328 27.854557 -6.718647 1.542822 -0.036607 0.002418 0.988678 0.145497
VERTEX_SE3:QUAT 329 27.845707 -6.733947 1.541870 -0.033986 -0.003342 0.861272 0.506996
VERTEX_SE3:QUAT 330 27.838381 -6.735634 1.546515 -0.033349 -0.020751 0.737413 0.674299
VERTEX_SE3:QUAT 332 27.755804 -6.287743 1.544057 -0.010806 -0.046738 0.775448 0.629586
VERTEX_SE3:QUAT 333 27.654737 -5.877909 1.540275 -0.031357 -0.017478 0.784842 0.618655
VERTEX_SE3:QUAT 334 27.545286 -5.442225 1.520766 -0.039374 -0.003106 0.785941 0.617038
VERTEX_SE3:QUAT 335 27.453588 -4.984910 1.465990 -0.087202 0.029665 0.743364 0.662514
VERTEX_SE3:QUAT 336 27.455030 -4.544573 1.394875 -0.083039 0.020144 0.640562 0.763137
VERTEX_SE3:QUAT 337 27.570303 -4.156039 1.368328 -0.039544 -0.043763 0.525858 0.848525
VERTEX_SE3:QUAT 338 27.780840 -3.731050 1.371342 -0.034201 -0.048594 0.496129 0.866213
VERTEX_SE3:QUAT 339 28.012302 -3.309901 1.388230 -0.030092 -0.041063 0.487566 0.871600
VERTEX_SE3:QUAT 340 28.264954 -2.886620 1.409291 -0.024634 -0.047214 0.476507 0.877557
VERTEX_SE3:QUAT 341 28.528309 -2.460763 1.423213 -0.030351 -0.030902 0.471505 0.880799
VERTEX_SE3:QUAT 342 28.804777 -2.034481 1.450338 0.002740 -0.058952 0.455733 0.888158
VERTEX_SE3:QUAT 343 29.096836 -1.618796 1.491691 0.005072 -0.059397 0.444513 0.893786
VERTEX_SE3:QUAT 344 29.396296 -1.221714 1.545861 0.009635 -0.071451 0.431218 0.899362
VERTEX_SE3:QUAT 345 29.702446 -0.819159 1.604625 -0.000906 -0.070650 0.442170 0.894144
VERTEX_SE3:QUAT 346 29.997828 -0.396948 1.651784 0.000759 -0.081769 0.461441 0.883394
VERTEX_SE3:QUAT 347 30.277575 0.035148 1.706107 0.011226 -0.061985 0.461716 0.884788
VERTEX_SE3:QUAT 348 30.557816 0.464081 1.764948 0.010376 -0.065617 0.468227 0.881107
VERTEX_SE3:QUAT 349 30.833395 0.893535 1.820807 0.013629 -0.068578 0.476225 0.876539
VERTEX_SE3:QUAT 350 31.099203 1.325442 1.889826 0.019662 -0.093585 0.489813 0.866567
VERTEX_SE3:QUAT 351 31.347250 1.760096 1.957145 0.010878 -0.083216 0.498705 0.862700
VERTEX_SE3:QUAT 352 31.584749 2.211750 2.029894 0.017954 -0.095138 0.514222 0.852175
VERTEX_SE3:QUAT 353 31.805700 2.657060 2.108452 0.029367 -0.108735 0.518552 0.847595
VERTEX_SE3:QUAT 354 32.017750 3.082842 2.211585 0.038143 -0.134616 0.517052 0.844441
VERTEX_SE3:QUAT 355 32.187698 3.466676 2.304099 0.033773 -0.118484 0.526608 0.841133
VERTEX_SE3:QUAT 356 32.289188 3.712737 2.361345 0.039389 -0.120328 0.524210 0.842125
VERTEX_SE3:QUAT 357 32.400845 3.981593 2.424612 0.045823 -0.130328 0.522495 0.841376
VERTEX_SE3:QUAT 358 32.529869 4.266738 2.495524 0.042920 -0.126211 0.536030 0.833607
VERTEX_SE3:QUAT 359 32.658627 4.581363 2.571919 0.046376 -0.135604 0.529245 0.836277
VERTEX_SE3:QUAT 360 32.787197 4.885087 2.652981 0.042366 -0.137540 0.549408 0.823067
VERTEX_SE3:QUAT 361 32.901146 5.209726 2.728580 0.032088 -0.135559 0.575263 0.806019
VERTEX_SE3:QUAT 362 33.003792 5.560705 2.806910 0.024848 -0.137303 0.614808 0.776236
VERTEX_SE3:QUAT 363 33.074104 5.909833 2.883196 0.028401 -0.138251 0.608990 0.780520
VERTEX_SE3:QUAT 364 33.148384 6.269364 2.961448 0.021124 -0.137061 0.627692 0.766010
VERTEX_SE3:QUAT 365 33.206356 6.641279 3.041515 0.027210 -0.148661 0.633811 0.758580
VERTEX_SE3:QUAT 366 33.251953 7.028308 3.120460 0.031739 -0.135737 0.626057 0.767216
VERTEX_SE3:QUAT 367 33.304138 7.423453 3.202112 0.022994 -0.136259 0.664523 0.734380
VERTEX_SE3:QUAT 368 33.326473 7.815955 3.278457 0.021422 -0.130322 0.684509 0.716941
VERTEX_SE3:QUAT 369 33.327862 8.213441 3.353490 0.022625 -0.150623 0.683289 0.714085
VERTEX_SE3:QUAT 370 33.324001 8.617139 3.422732 0.009371 -0.135454 0.685524 0.715277
VERTEX_SE3:QUAT 371 33.319912 9.019666 3.491332 0.018854 -0.125842 0.680158 0.721938
VERTEX_SE3:QUAT 372 33.321629 9.424438 3.553954 0.018412 -0.114575 0.688488 0.715903
VERTEX_SE3:QUAT 373 33.313702 9.830047 3.621280 0.028054 -0.124294 0.693673 0.708930
VERTEX_SE3:QUAT 374 33.300037 10.222215 3.682526 0.014414 -0.110223 0.697978 0.707439
VERTEX_SE3:QUAT 375 33.281502 10.629724 3.746484 0.017670 -0.122994 0.710468 0.692672
VERTEX_SE3:QUAT 376 33.253105 11.051411 3.806419 -0.001015 -0.103552 0.720533 0.685645
VERTEX_SE3:QUAT 377 33.221386 11.479393 3.853022 -0.005558 -0.107803 0.713651 0.692135
VERTEX_SE3:QUAT 378 33.215591 11.913457 3.899235 -0.016938 -0.115050 0.674869 0.728717
VERTEX_SE3:QUAT 379 33.249435 12.330256 3.946927 -0.003141 -0.107764 0.637940 0.762502
VERTEX_SE3:QUAT 380 33.309978 12.764791 3.997519 -0.005014 -0.093874 0.620871 0.778256
VERTEX_SE3:QUAT 381 33.396393 13.203510 4.056360 -0.004337 -0.095897 0.611579 0.785338
VERTEX_SE3:QUAT 382 33.497818 13.651236 4.109751 -0.011774 -0.093858 0.607775 0.788455
VERTEX_SE3:QUAT 383 33.591690 14.093039 4.153877 -0.014297 -0.087759 0.618445 0.780781
VERTEX_SE3:QUAT 384 33.678490 14.550439 4.196832 -0.012554 -0.089667 0.622561 0.777316
VERTEX_SE3:QUAT 385 33.770809 15.015245 4.237478 -0.022431 -0.071652 0.607380 0.790855
VERTEX_SE3:QUAT 386 33.883389 15.440796 4.273040 -0.015758 -0.065985 0.572565 0.817047
VERTEX_SE3:QUAT 387 34.034370 15.883390 4.311213 -0.022908 -0.078194 0.557888 0.825907
VERTEX_SE3:QUAT 388 34.208229 16.343330 4.341471 -0.029148 -0.070062 0.554803 0.828514
VERTEX_SE3:QUAT 389 34.384243 16.798771 4.371491 -0.030136 -0.062384 0.547947 0.833639
VERTEX_SE3:QUAT 390 34.572598 17.253666 4.405395 -0.018867 -0.066456 0.512526 0.855888
VERTEX_SE3:QUAT 391 34.840790 17.670954 4.423948 -0.025926 -0.038383 0.396481 0.916874
VERTEX_SE3:QUAT 392 35.191158 17.991026 4.439726 -0.027213 -0.039041 0.288751 0.956221
VERTEX_SE3:QUAT 393 35.544746 18.229256 4.456439 -0.024232 -0.023052 0.259216 0.965240
VERTEX_SE3:QUAT 397 35.559082 18.249735 4.457972 -0.018067 -0.033257 0.163861 0.985757
VERTEX_SE3:QUAT 398 35.552208 18.257189 4.461660 -0.013111 -0.039913 -0.077876 0.996077
VERTEX_SE3:QUAT 399 35.552715 18.267447 4.460780 -0.007307 -0.041499 -0.355498 0.933727
VERTEX_SE3:QUAT 400 35.560696 18.269531 4.455830 0.005270 -0.040174 -0.632368 0.773608
VERTEX_SE3:QUAT 401 35.572109 18.267443 4.459108 0.017345 -0.037132 -0.859021 0.510298
VERTEX_SE3:QUAT 402 35.575680 18.254501 4.452904 -0.027193 0.024046 0.987566 -0.152955
VERTEX_SE3:QUAT 403 35.573727 18.241451 4.459713 -0.031721 0.011521 0.975024 0.219519
VERTEX_SE3:QUAT 404 35.562965 18.232725 4.450885 -0.029628 -0.003129 0.850245 0.525544
VERTEX_SE3:QUAT 405 35.546982 18.229782 4.457685 -0.030610 -0.019112 0.600548 0.798774
VERTEX_SE3:QUAT 407 35.555405 18.232607 4.453088 -0.034436 -0.014779 0.718379 0.694642
VERTEX_SE3:QUAT 408 35.565243 18.246243 4.452926 -0.034642 -0.002497 0.883752 0.466665
VERTEX_SE3:QUAT 409 35.522732 18.299994 4.450194 -0.037296 0.004000 0.953035 0.300528
VERTEX_SE3:QUAT 411 35.223957 18.486122 4.425705 -0.030881 0.004920 0.965663 0.257909
VERTEX_SE3:QUAT 412 34.811295 18.683418 4.386946 -0.032925 0.002926 0.980659 0.192915
VERTEX_SE3:QUAT 413 34.346180 18.863613 4.348572 -0.046359 0.016250 0.984393 0.168991
VERTEX_SE3:QUAT 414 33.851406 19.019899 4.303417 -0.042239 0.011003 0.989591 0.137131
VERTEX_SE3:QUAT 415 33.339928 19.155518 4.248814 -0.044353 0.013826 0.990993 0.125595
VERTEX_SE3:QUAT 416 32.822739 19.274996 4.197287 -0.024787 -0.008966 0.993612 0.109730
VERTEX_SE3:QUAT 417 32.325958 19.374285 4.144011 -0.048198 -0.003418 0.993311 0.104873
VERTEX_SE3:QUAT 418 31.809158 19.432791 4.088175 -0.052920 0.012143 0.997939 -0.034196
VERTEX_SE3:QUAT 419 31.403078 19.341696 4.043233 -0.060414 0.018523 0.979349 -0.192046
VERTEX_SE3:QUAT 420 31.017797 19.147255 3.998242 -0.055098 0.016448 0.964194 -0.258890
VERTEX_SE3:QUAT 421 30.630638 18.918840 3.950291 -0.056207 0.014056 0.961014 -0.270361
VERTEX_SE3:QUAT 422 30.257895 18.686024 3.901164 -0.068738 0.013455 0.956639 -0.282728
VERTEX_SE3:QUAT 423 29.890127 18.447813 3.847298 -0.082549 0.006039 0.953868 -0.288593
VERTEX_SE3:QUAT 424 29.520809 18.198875 3.780673 -0.071963 0.002679 0.956672 -0.282122
VERTEX_SE3:QUAT 425 29.160166 17.981434 3.720740 -0.063989 -0.003921 0.971897 -0.226509
VERTEX_SE3:QUAT 426 28.770264 17.811836 3.665895 -0.068220 -0.012496 0.981383 -0.179104
VERTEX_SE3:QUAT 427 28.343561 17.623882 3.601425 -0.072814 -0.016083 0.969074 -0.235235
VERTEX_SE3:QUAT 428 27.949572 17.385513 3.531430 -0.073053 -0.015214 0.958874 -0.273846
VERTEX_SE3:QUAT 429 27.559280 17.133726 3.454342 -0.080388 -0.010136 0.952979 -0.292005
VERTEX_SE3:QUAT 430 27.123787 16.836073 3.373300 -0.074133 -0.009106 0.950502 -0.301607
VERTEX_SE3:QUAT 431 26.691824 16.518686 3.293905 -0.077365 -0.008386 0.947883 -0.308971
VERTEX_SE3:QUAT 432 26.283152 16.208092 3.211199 -0.082889 -0.007749 0.943038 -0.322099
VERTEX_SE3:QUAT 433 25.880690 15.881516 3.116146 -0.088960 -0.019900 0.941702 -0.323862
VERTEX_SE3:QUAT 434 25.489737 15.563180 3.020180 -0.099812 -0.025210 0.938369 -0.329947
VERTEX_SE3:QUAT 435 25.095928 15.254034 2.923961 -0.088812 -0.021528 0.944229 -0.316356
VERTEX_SE3:QUAT 436 24.694860 14.954555 2.836725 -0.077424 -0.026941 0.952316 -0.293895
VERTEX_SE3:QUAT 437 24.317261 14.692075 2.756510 -0.095003 -0.016168 0.951252 -0.292973
VERTEX_SE3:QUAT 438 23.934645 14.439216 2.673670 -0.094135 -0.025782 0.957382 -0.271834
VERTEX_SE3:QUAT 439 23.553333 14.199415 2.595723 -0.079188 -0.030454 0.963289 -0.254707
VERTEX_SE3:QUAT 440 23.155239 13.978079 2.515115 -0.086194 -0.033208 0.969704 -0.226148
VERTEX_SE3:QUAT 441 22.747770 13.786580 2.424417 -0.084723 -0.032386 0.975793 -0.198998
VERTEX_SE3:QUAT 442 22.289724 13.588583 2.334729 -0.096050 -0.049464 0.979505 -0.169996
VERTEX_SE3:QUAT 443 21.836105 13.380430 2.232276 -0.084173 -0.055601 0.971600 -0.214047
VERTEX_SE3:QUAT 444 21.390427 13.153634 2.132984 -0.100779 -0.046123 0.966531 -0.231374
VERTEX_SE3:QUAT 445 20.964718 12.917132 2.030506 -0.117819 -0.030605 0.959192 -0.255211
VERTEX_SE3:QUAT 446 20.530043 12.658166 1.921038 -0.096202 -0.033666 0.962619 -0.250952
VERTEX_SE3:QUAT 447 20.099110 12.387202 1.817786 -0.097190 -0.045722 0.958863 -0.262764
VERTEX_SE3:QUAT 448 19.682146 12.133961 1.739308 -0.061444 -0.034557 0.962238 -0.262922
VERTEX_SE3:QUAT 449 19.273048 11.869749 1.661907 -0.085684 -0.045045 0.956856 -0.273964
VERTEX_SE3:QUAT 450 18.844751 11.594966 1.567560 -0.092775 -0.058600 0.959314 -0.260146
VERTEX_SE3:QUAT 451 18.415010 11.349077 1.481246 -0.072319 -0.047457 0.973800 -0.210312
VERTEX_SE3:QUAT 452 17.964376 11.171651 1.411162 -0.074089 -0.047129 0.985148 -0.147560
VERTEX_SE3:QUAT 453 17.492418 11.025488 1.327724 -0.064313 -0.072573 0.993833 -0.053786
VERTEX_SE3:QUAT 454 17.057409 11.042339 1.280924 -0.048732 -0.069501 0.984860 0.151148
VERTEX_SE3:QUAT 455 16.674845 11.221495 1.248818 -0.036812 -0.078719 0.953083 0.289968
VERTEX_SE3:QUAT 456 16.263124 11.469635 1.233056 -0.032204 -0.087695 0.956666 0.275793
VERTEX_SE3:QUAT 457 15.786630 11.682530 1.201080 -0.042117 -0.079047 0.977150 0.192759
VERTEX_SE3:QUAT 458 15.278536 11.855065 1.167611 -0.048139 -0.081077 0.979400 0.178566
VERTEX_SE3:QUAT 459 14.768732 12.016353 1.121192 -0.049821 -0.084270 0.981264 0.165943
VERTEX_SE3:QUAT 460 14.257275 12.167140 1.079800 -0.060942 -0.077779 0.982854 0.155677
VERTEX_SE3:QUAT 461 13.743946 12.308007 1.031989 -0.059216 -0.078090 0.983954 0.149094
VERTEX_SE3:QUAT 462 13.230776 12.431698 0.984541 -0.037883 -0.079349 0.986853 0.135612
VERTEX_SE3:QUAT 463 12.711513 12.551973 0.947629 -0.065826 -0.072183 0.986772 0.129377
VERTEX_SE3:QUAT 464 12.200716 12.657652 0.901776 -0.052594 -0.073521 0.988758 0.119103
VERTEX_SE3:QUAT 465 11.724236 12.753448 0.859284 -0.041121 -0.064973 0.991202 0.107735
VERTEX_SE3:QUAT 466 11.212283 12.845047 0.812472 -0.057336 -0.059320 0.992214 0.093299
VERTEX_SE3:QUAT 467 10.712421 12.924524 0.766411 -0.051450 -0.055346 0.993330 0.087096
VERTEX_SE3:QUAT 468 10.226548 12.981379 0.719992 -0.038778 -0.056576 0.995034 0.072130
VERTEX_SE3:QUAT 469 9.701862 13.045084 0.659238 -0.080126 -0.062827 0.990298 0.094562
VERTEX_SE3:QUAT 470 9.189625 13.149431 0.591945 -0.046876 -0.073744 0.984378 0.152854
VERTEX_SE3:QUAT 471 8.681226 13.303854 0.553905 -0.034491 -0.083507 0.978474 0.185542
VERTEX_SE3:QUAT 472 8.175967 13.481631 0.510451 -0.056134 -0.069319 0.980727 0.173837
VERTEX_SE3:QUAT 473 7.656588 13.613882 0.469144 -0.044238 -0.058821 0.993584 0.085872
VERTEX_SE3:QUAT 474 7.117199 13.669314 0.402930 -0.055570 -0.049305 0.996111 0.047362
VERTEX_SE3:QUAT 475 6.583233 13.696100 0.339407 -0.067039 -0.041346 0.996307 0.034190
VERTEX_SE3:QUAT 476 6.053109 13.741391 0.274590 -0.062368 -0.056119 0.991614 0.098298
VERTEX_SE3:QUAT 477 5.526483 13.836130 0.214441 -0.042030 -0.084941 0.985320 0.141999
VERTEX_SE3:QUAT 478 5.013065 13.962714 0.166283 -0.071459 -0.066222 0.984264 0.147423
VERTEX_SE3:QUAT 479 4.491313 14.084204 0.079952 -0.086925 -0.055301 0.987965 0.115378
VERTEX_SE3:QUAT 480 3.973683 14.151369 -0.001272 -0.068014 -0.058344 0.994672 0.050966
VERTEX_SE3:QUAT 481 3.440813 14.180529 -0.072373 -0.061559 -0.059073 0.995719 0.035555
VERTEX_SE3:QUAT 482 2.914593 14.198448 -0.133835 -0.050801 -0.033056 0.998121 0.008966
VERTEX_SE3:QUAT 483 2.380990 14.175988 -0.210173 -0.081649 -0.029892 0.995443 -0.039159
VERTEX_SE3:QUAT 484 1.855898 14.115693 -0.301860 -0.071535 -0.017977 0.995098 -0.065870
VERTEX_SE3:QUAT 485 1.395934 14.032045 -0.370661 -0.071503 -0.030073 0.992943 -0.089703
VERTEX_SE3:QUAT 486 0.907340 13.903975 -0.441963 -0.048623 -0.023127 0.985356 -0.161783
VERTEX_SE3:QUAT 487 0.446358 13.693176 -0.503770 -0.065157 -0.019799 0.960814 -0.268699
VERTEX_SE3:QUAT 488 0.032817 13.404653 -0.561653 -0.050067 0.005387 0.940814 -0.335160
VERTEX_SE3:QUAT 489 -0.353337 13.086645 -0.602511 -0.025038 0.030007 0.931272 -0.362221
VERTEX_SE3:QUAT 490 -0.701135 12.734225 -0.602597 -0.012034 0.039573 0.903414 -0.426769
VERTEX_SE3:QUAT 491 -0.997827 12.335541 -0.594723 0.022109 0.044341 0.885617 -0.461765
VERTEX_SE3:QUAT 492 -1.266045 11.950690 -0.541891 0.056388 0.067458 0.882158 -0.462673
VERTEX_SE3:QUAT 493 -1.551188 11.543346 -0.485182 0.030664 0.059231 0.883306 -0.464027
VERTEX_SE3:QUAT 494 -1.815035 11.104977 -0.438625 -0.018373 -0.051690 -0.853764 0.517762
VERTEX_SE3:QUAT 495 -2.026942 10.641925 -0.382959 -0.059336 -0.061968 -0.813394 0.575352
VERTEX_SE3:QUAT 496 -2.181108 10.164027 -0.318914 -0.047547 -0.052790 -0.801243 0.594107
VERTEX_SE3:QUAT 497 -2.322972 9.671262 -0.268992 -0.036784 -0.051469 -0.800501 0.595984
VERTEX_SE3:QUAT 498 -2.425797 9.164010 -0.228990 -0.010813 -0.030818 -0.747290 0.663695
VERTEX_SE3:QUAT 499 -2.410897 8.631018 -0.201813 -0.025884 -0.025102 -0.639223 0.768176
VERTEX_SE3:QUAT 500 -2.238453 8.135892 -0.176685 -0.029469 -0.012155 -0.513120 0.857725
VERTEX_SE3:QUAT 501 -1.948015 7.681841 -0.161733 -0.021431 -0.014274 -0.463811 0.885560
VERTEX_SE3:QUAT 502 -1.652833 7.229115 -0.149567 -0.014654 -0.005358 -0.526897 0.849786
VERTEX_SE3:QUAT 503 -1.483992 6.733422 -0.126338 -0.028630 -0.024330 -0.669974 0.741433
VERTEX_SE3:QUAT 504 -1.527849 6.221029 -0.106948 -0.022282 -0.019857 -0.816195 0.577006
VERTEX_SE3:QUAT 505 -1.742129 5.726759 -0.098094 -0.013131 -0.010684 -0.859834 0.510293
VERTEX_SE3:QUAT 506 -1.995408 5.265228 -0.080843 0.016212 0.012918 0.873577 -0.486244
VERTEX_SE3:QUAT 507 -2.263726 4.821134 -0.061994 0.020528 0.036159 0.881033 -0.471224
VERTEX_SE3:QUAT 508 -2.553161 4.386517 -0.045464 0.010195 0.033688 0.891257 -0.452132
VERTEX_SE3:QUAT 509 -2.860879 3.970889 -0.024250 0.021470 0.043542 0.897840 -0.437637
VERTEX_SE3:QUAT 510 -3.171616 3.559585 0.014930 0.022056 0.047976 0.890552 -0.451807
VERTEX_SE3:QUAT 511 -3.453254 3.121180 0.027617 -0.001539 -0.003825 -0.831222 0.555925
VERTEX_SE3:QUAT 512 -3.622279 2.606106 0.024735 0.002940 -0.006466 -0.750615 0.660702
VERTEX_SE3:QUAT 513 -3.639881 2.072190 0.021394 0.006607 -0.006137 -0.685610 0.727914
VERTEX_SE3:QUAT 514 -3.592844 1.531369 0.013404 0.003648 -0.004246 -0.666796 0.745219
VERTEX_SE3:QUAT 515 -3.525791 1.000432 0.008110 0.002983 -0.001156 -0.658526 0.752551
VERTEX_SE3:QUAT 516 -3.440174 0.471049 0.007020 0.002110 -0.001954 -0.629885 0.776683
VERTEX_SE3:QUAT 517 -3.248914 -0.030999 0.006276 0.003767 -0.002458 -0.484001 0.875056
VERTEX_SE3:QUAT 518 -3.182820 -0.120055 0.005305 0.003987 -0.004343 -0.435168 0.900330
VERTEX_SE3:QUAT 519 -3.193723 -0.134997 0.006632 0.004132 -0.003315 -0.088418 0.996069
VERTEX_SE3:QUAT 520 -3.192149 -0.139245 0.005158 0.005615 -0.003179 0.006903 0.999955
VERTEX_SE3:QUAT 521 -2.958836 -0.138025 0.006041 0.004980 -0.003613 0.008706 0.999943
VERTEX_SE3:QUAT 522 -2.553928 -0.129973 0.005536 0.002844 -0.003061 0.007950 0.999960
VERTEX_SE3:QUAT 523 -2.160806 -0.123818 0.005523 0.005921 -0.005669 0.006941 0.999942
VERTEX_SE3:QUAT 524 -1.776202 -0.120779 0.009273 0.006342 -0.003542 0.005080 0.999961
VERTEX_SE3:QUAT 525 -1.372230 -0.108044 0.008401 0.006051 0.000302 0.045204 0.998959
VERTEX_SE3:QUAT 526 -0.954243 -0.055700 0.004468 0.005021 0.004963 0.072672 0.997331
VERTEX_SE3:QUAT 527 -0.599429 -0.007503 0.001811 0.004085 0.001593 0.057373 0.998343
VERTEX_SE3:QUAT 528 -0.248105 0.023860 0.001367 0.002333 0.000096 0.030308 0.999538
VERTEX_SE3:QUAT 529 0.106615 0.045166 -0.000073 0.000881 -0.002174 0.019533 0.999806
VERTEX_SE3:QUAT 530 0.409184 0.059367 -0.002466 -0.001186 0.000729 0.001534 0.999998
VERTEX_SE3:QUAT 531 0.539304 0.059408 -0.002721 -0.002739 0.002421 -0.007578 0.999965
EDGE_SE3:QUAT 1 4 0.297508 -0.007297 -0.000499 -0.000732 0.001328 -0.004405 0.999989 11608.253993 0.000000 0.000000 0.000000 0.000000 0.000000 11608.253993 0.000000 0.000000 0.000000 0.000000 11608.253993 0.000000 0.000000 0.000000 1986.025441 0.000000 0.000000 1986.025441 0.000000 1986.025441 0
EDGE_SE3:QUAT 1 199 -0.023634 0.111219 0.000726 0.000556 -0.000224 -0.002942 0.999996 2714.392606 0.000000 0.000000 0.000000 0.000000 0.000000 2714.392606 0.000000 0.000000 0.000000 0.000000 2714.392606 0.000000 0.000000 0.000000 236.599499 0.000000 0.000000 236.599499 0.000000 236.599499 1
EDGE_SE3:QUAT 1 208 0.081375 0.111813 0.000458 0.000301 0.000304 -0.006115 0.999981 1252.936024 0.000000 0.000000 0.000000 0.000000 0.000000 1252.936024 0.000000 0.000000 0.000000 0.000000 1252.936024 0.000000 0.000000 0.000000 148.224302 0.000000 0.000000 148.224302 0.000000 148.224302 1
EDGE_SE3:QUAT 1 528 -0.246595 0.023201 0.000923 0.001921 0.000586 0.029598 0.999560 2275.022875 0.000000 0.000000 0.000000 0.000000 0.000000 2275.022875 0.000000 0.000000 0.000000 0.000000 2275.022875 0.000000 0.000000 0.000000 131.746801 0.000000 0.000000 131.746801 0.000000 131.746801 1
EDGE_SE3:QUAT 1 529 0.106346 0.046226 -0.000579 0.001567 -0.002155 0.018578 0.999824 3116.597790 0.000000 0.000000 0.000000 0.000000 0.000000 3116.597790 0.000000 0.000000 0.000000 0.000000 3116.597790 0.000000 0.000000 0.000000 157.463513 0.000000 0.000000 157.463513 0.000000 157.463513 2
EDGE_SE3:QUAT 4 5 0.405300 -0.007432 -0.004583 -0.003533 0.003455 -0.009664 0.999941 5307.790546 0.000000 0.000000 0.000000 0.000000 0.000000 5307.790546 0.000000 0.000000 0.000000 0.000000 5307.790546 0.000000 0.000000 0.000000 1963.838798 0.000000 0.000000 1963.838798 0.000000 1963.838798 0
EDGE_SE3:QUAT 4 195 -0.084341 -0.030815 -0.001477 -0.001230 -0.001772 -0.033499 0.999436 1044.682639 0.000000 0.000000 0.000000 0.000000 0.000000 1044.682639 0.000000 0.000000 0.000000 0.000000 1044.682639 0.000000 0.000000 0.000000 164.678102 0.000000 0.000000 164.678102 0.000000 164.678102 1
EDGE_SE3:QUAT 4 197 -0.073716 0.109126 -0.002943 -0.000364 -0.001871 -0.014777 0.999889 496.994773 0.000000 0.000000 0.000000 0.000000 0.000000 496.994773 0.000000 0.000000 0.000000 0.000000 496.994773 0.000000 0.000000 0.000000 127.364987 0.000000 0.000000 127.364987 0.000000 127.364987 1
EDGE_SE3:QUAT 4 209 -0.064150 0.116635 -0.001622 -0.000340 0.000467 -0.031729 0.999496 1252.396254 0.000000 0.000000 0.000000 0.000000 0.000000 1252.396254 0.000000 0.000000 0.000000 0.000000 1252.396254 0.000000 0.000000 0.000000 136.614401 0.000000 0.000000 136.614401 0.000000 136.614401 1
EDGE_SE3:QUAT 4 530 0.107778 0.065036 -0.000390 -0.000345 -0.000994 0.005646 0.999983 2281.584765 0.000000 0.000000 0.000000 0.000000 0.000000 2281.584765 0.000000 0.000000 0.000000 0.000000 2281.584765 0.000000 0.000000 0.000000 160.949653 0.000000 0.000000 160.949653 0.000000 160.949653 2
EDGE_SE3:QUAT 5 6 0.386804 -0.010187 0.000655 -0.001634 -0.002762 -0.024491 0.999695 5746.831023 0.000000 0.000000 0.000000 0.000000 0.000000 5746.831023 0.000000 0.000000 0.000000 0.000000 5746.831023 0.000000 0.000000 0.000000 1792.762076 0.000000 0.000000 1792.762076 0.000000 1792.762076 0
EDGE_SE3:QUAT 5 217 -0.224844 0.116509 -0.001163 0.001114 -0.001428 -0.008216 0.999965 781.553073 0.000000 0.000000 0.000000 0.000000 0.000000 781.553073 0.000000 0.000000 0.000000 0.000000 781.553073 0.000000 0.000000 0.000000 111.748388 0.000000 0.000000 111.748388 0.000000 111.748388 2
EDGE_SE3:QUAT 5 228 0.075773 0.118494 -0.001449 -0.001083 0.000570 -0.007971 0.999968 897.354892 0.000000 0.000000 0.000000 0.000000 0.000000 897.354892 0.000000 0.000000 0.000000 0.000000 897.354892 0.000000 0.000000 0.000000 98.201523 0.000000 0.000000 98.201523 0.000000 98.201523 1
EDGE_SE3:QUAT 5 531 -0.162014 0.076177 0.001730 -0.000311 -0.002270 0.005204 0.999984 1975.221318 0.000000 0.000000 0.000000 0.000000 0.000000 1975.221318 0.000000 0.000000 0.000000 0.000000 1975.221318 0.000000 0.000000 0.000000 192.160892 0.000000 0.000000 192.160892 0.000000 192.160892 2
EDGE_SE3:QUAT 6 7 0.383001 -0.044362 0.003777 -0.000622 -0.004720 -0.143229 0.989678 5069.006537 0.000000 0.000000 0.000000 0.000000 0.000000 5069.006537 0.000000 0.000000 0.000000 0.000000 5069.006537 0.000000 0.000000 0.000000 1881.991382 0.000000 0.000000 1881.991382 0.000000 1881.991382 0
EDGE_SE3:QUAT 6 229 -0.058092 0.122460 -0.000860 0.001609 0.000901 0.011665 0.999930 2305.646837 0.000000 0.000000 0.000000 0.000000 0.000000 2305.646837 0.000000 0.000000 0.000000 0.000000 2305.646837 0.000000 0.000000 0.000000 182.690667 0.000000 0.000000 182.690667 0.000000 182.690667 1
EDGE_SE3:QUAT 6 230 0.222756 0.127422 0.002891 -0.000005 -0.005811 0.004134 0.999975 723.873029 0.000000 0.000000 0.000000 0.000000 0.000000 723.873029 0.000000 0.000000 0.000000 0.000000 723.873029 0.000000 0.000000 0.000000 114.672812 0.000000 0.000000 114.672812 0.000000 114.672812 1
EDGE_SE3:QUAT 7 8 0.395680 -0.027199 0.000148 -0.001878 0.004759 -0.077795 0.996956 6051.569838 0.000000 0.000000 0.000000 0.000000 0.000000 6051.569838 0.000000 0.000000 0.000000 0.000000 6051.569838 0.000000 0.000000 0.000000 2057.387741 0.000000 0.000000 2057.387741 0.000000 2057.387741 0
EDGE_SE3:QUAT 7 231 0.127710 0.221790 -0.001540 0.003709 0.002067 0.135970 0.990704 1326.441010 0.000000 0.000000 0.000000 0.000000 0.000000 1326.441010 0.000000 0.000000 0.000000 0.000000 1326.441010 0.000000 0.000000 0.000000 129.188691 0.000000 0.000000 129.188691 0.000000 129.188691 1
EDGE_SE3:QUAT 7 232 0.473397 0.316570 0.005993 0.004171 0.005529 0.114669 0.993380 57.485622 0.000000 0.000000 0.000000 0.000000 0.000000 57.485622 0.000000 0.000000 0.000000 0.000000 57.485622 0.000000 0.000000 0.000000 184.472736 0.000000 0.000000 184.472736 0.000000 184.472736 1
EDGE_SE3:QUAT 8 9 0.428529 0.007740 -0.002092 0.003915 0.004871 -0.013063 0.999895 8419.434900 0.000000 0.000000 0.000000 0.000000 0.000000 8419.434900 0.000000 0.000000 0.000000 0.000000 8419.434900 0.000000 0.000000 0.000000 2583.441100 0.000000 0.000000 2583.441100 0.000000 2583.441100 0
EDGE_SE3:QUAT 9 10 0.454692 0.005054 0.000099 0.003767 -0.000515 -0.013172 0.999906 12684.616296 0.000000 0.000000 0.000000 0.000000 0.000000 12684.616296 0.000000 0.000000 0.000000 0.000000 12684.616296 0.000000 0.000000 0.000000 2583.441100 0.000000 0.000000 2583.441100 0.000000 2583.441100 0
EDGE_SE3:QUAT 10 11 0.494963 0.006008 0.002131 0.000960 -0.003938 -0.014385 0.999888 16330.768724 0.000000 0.000000 0.000000 0.000000 0.000000 16330.768724 0.000000 0.000000 0.000000 0.000000 16330.768724 0.000000 0.000000 0.000000 2945.469494 0.000000 0.000000 2945.469494 0.000000 2945.469494 0
EDGE_SE3:QUAT 11 12 0.525845 0.001452 -0.002379 -0.002089 -0.002102 -0.013657 0.999902 16660.982400 0.000000 0.000000 0.000000 0.000000 0.000000 16660.982400 0.000000 0.000000 0.000000 0.000000 16660.982400 0.000000 0.000000 0.000000 2746.718904 0.000000 0.000000 2746.718904 0.000000 2746.718904 0
EDGE_SE3:QUAT 12 13 0.490292 0.003734 0.005216 -0.003362 0.010826 -0.013652 0.999843 12419.705793 0.000000 0.000000 0.000000 0.000000 0.000000 12419.705793 0.000000 0.000000 0.000000 0.000000 12419.705793 0.000000 0.000000 0.000000 3104.748017 0.000000 0.000000 3104.748017 0.000000 3104.748017 0
EDGE_SE3:QUAT 13 14 0.497582 0.003760 -0.005220 -0.002208 0.023399 -0.016440 0.999589 11769.921570 0.000000 0.000000 0.000000 0.000000 0.000000 11769.921570 0.000000 0.000000 0.000000 0.000000 11769.921570 0.000000 0.000000 0.000000 2808.433434 0.000000 0.000000 2808.433434 0.000000 2808.433434 0
EDGE_SE3:QUAT 13 238 -0.149475 0.150512 0.002154 -0.008859 -0.011359 -0.134761 0.990773 3045.860696 0.000000 0.000000 0.000000 0.000000 0.000000 3045.860696 0.000000 0.000000 0.000000 0.000000 3045.860696 0.000000 0.000000 0.000000 138.107298 0.000000 0.000000 138.107298 0.000000 138.107298 2
EDGE_SE3:QUAT 13 239 0.263869 0.041140 -0.005586 -0.005665 0.017598 -0.146308 0.989066 2781.052148 0.000000 0.000000 0.000000 0.000000 0.000000 2781.052148 0.000000 0.000000 0.000000 0.000000 2781.052148 0.000000 0.000000 0.000000 176.046308 0.000000 0.000000 176.046308 0.000000 176.046308 2
EDGE_SE3:QUAT 14 15 0.525536 0.005078 0.002520 -0.008576 -0.019610 -0.005085 0.999758 21970.467844 0.000000 0.000000 0.000000 0.000000 0.000000 21970.467844 0.000000 0.000000 0.000000 0.000000 21970.467844 0.000000 0.000000 0.000000 3802.259062 0.000000 0.000000 3802.259062 0.000000 3802.259062 0
EDGE_SE3:QUAT 14 240 0.161930 -0.066694 0.000755 -0.011351 -0.004925 -0.115488 0.993232 4329.450311 0.000000 0.000000 0.000000 0.000000 0.000000 4329.450311 0.000000 0.000000 0.000000 0.000000 4329.450311 0.000000 0.000000 0.000000 147.295123 0.000000 0.000000 147.295123 0.000000 147.295123 2
EDGE_SE3:QUAT 15 16 0.526849 -0.001875 0.002275 0.009477 -0.014115 -0.012894 0.999772 26083.931329 0.000000 0.000000 0.000000 0.000000 0.000000 26083.931329 0.000000 0.000000 0.000000 0.000000 26083.931329 0.000000 0.000000 0.000000 5889.204784 0.000000 0.000000 5889.204784 0.000000 5889.204784 0
EDGE_SE3:QUAT 16 17 0.530455 0.008451 -0.008555 0.000308 -0.002990 0.016848 0.999854 19482.866679 0.000000 0.000000 0.000000 0.000000 0.000000 19482.866679 0.000000 0.000000 0.000000 0.000000 19482.866679 0.000000 0.000000 0.000000 4390.212214 0.000000 0.000000 4390.212214 0.000000 4390.212214 0
EDGE_SE3:QUAT 17 18 0.496378 0.014694 -0.012097 -0.012272 0.020463 0.010716 0.999658 5291.259663 0.000000 0.000000 0.000000 0.000000 0.000000 5291.259663 0.000000 0.000000 0.000000 0.000000 5291.259663 0.000000 0.000000 0.000000 2746.718904 0.000000 0.000000 2746.718904 0.000000 2746.718904 0
EDGE_SE3:QUAT 18 19 0.482005 0.011804 0.000655 -0.003079 -0.010769 -0.003660 0.999931 20788.072098 0.000000 0.000000 0.000000 0.000000 0.000000 20788.072098 0.000000 0.000000 0.000000 0.000000 20788.072098 0.000000 0.000000 0.000000 4977.740325 0.000000 0.000000 4977.740325 0.000000 4977.740325 0
EDGE_SE3:QUAT 19 20 0.310352 -0.023231 -0.001436 0.005806 0.005069 -0.101119 0.994844 24207.283339 0.000000 0.000000 0.000000 0.000000 0.000000 24207.283339 0.000000 0.000000 0.000000 0.000000 24207.283339 0.000000 0.000000 0.000000 5376.359507 0.000000 0.000000 5376.359507 0.000000 5376.359507 0
EDGE_SE3:QUAT 20 21 -0.003754 0.005316 0.000615 -0.002944 -0.003106 -0.117990 0.993006 22403.845250 0.000000 0.000000 0.000000 0.000000 0.000000 22403.845250 0.000000 0.000000 0.000000 0.000000 22403.845250 0.000000 0.000000 0.000000 4656.399548 0.000000 0.000000 4656.399548 0.000000 4656.399548 0
EDGE_SE3:QUAT 21 22 0.000010 0.002351 0.001152 0.000547 -0.004176 -0.099467 0.995032 14190.681441 0.000000 0.000000 0.000000 0.000000 0.000000 14190.681441 0.000000 0.000000 0.000000 0.000000 14190.681441 0.000000 0.000000 0.000000 4390.212214 0.000000 0.000000 4390.212214 0.000000 4390.212214 0
EDGE_SE3:QUAT 22 23 0.396327 0.006784 -0.000016 0.008009 -0.000085 -0.006248 0.999948 530.626553 0.000000 0.000000 0.000000 0.000000 0.000000 530.626553 0.000000 0.000000 0.000000 0.000000 530.626553 0.000000 0.000000 0.000000 1729.849277 0.000000 0.000000 1729.849277 0.000000 1729.849277 0
EDGE_SE3:QUAT 23 24 0.491072 -0.040626 -0.004449 0.008321 -0.012446 -0.102732 0.994596 163.205652 0.000000 0.000000 0.000000 0.000000 0.000000 163.205652 0.000000 0.000000 0.000000 0.000000 163.205652 0.000000 0.000000 0.000000 1541.945174 0.000000 0.000000 1541.945174 0.000000 1541.945174 0
EDGE_SE3:QUAT 24 25 0.291160 0.001681 -0.009589 -0.002071 0.021351 -0.014885 0.999659 7422.225517 0.000000 0.000000 0.000000 0.000000 0.000000 7422.225517 0.000000 0.000000 0.000000 0.000000 7422.225517 0.000000 0.000000 0.000000 2945.469494 0.000000 0.000000 2945.469494 0.000000 2945.469494 0
EDGE_SE3:QUAT 25 26 -0.002388 -0.000538 0.000406 0.002701 0.000643 0.089504 0.995983 13164.647972 0.000000 0.000000 0.000000 0.000000 0.000000 13164.647972 0.000000 0.000000 0.000000 0.000000 13164.647972 0.000000 0.000000 0.000000 4165.015055 0.000000 0.000000 4165.015055 0.000000 4165.015055 0
EDGE_SE3:QUAT 26 27 -0.003264 -0.014836 0.004785 -0.003255 0.002751 0.276940 0.960878 21019.465533 0.000000 0.000000 0.000000 0.000000 0.000000 21019.465533 0.000000 0.000000 0.000000 0.000000 21019.465533 0.000000 0.000000 0.000000 5376.359507 0.000000 0.000000 5376.359507 0.000000 5376.359507 0
EDGE_SE3:QUAT 27 29 0.403887 0.022094 0.007603 -0.006698 -0.025353 0.024623 0.999353 19770.273864 0.000000 0.000000 0.000000 0.000000 0.000000 19770.273864 0.000000 0.000000 0.000000 0.000000 19770.273864 0.000000 0.000000 0.000000 5889.204784 0.000000 0.000000 5889.204784 0.000000 5889.204784 0
EDGE_SE3:QUAT 29 30 0.388816 0.007239 -0.012406 -0.015492 0.014481 0.012080 0.999702 16128.483784 0.000000 0.000000 0.000000 0.000000 0.000000 16128.483784 0.000000 0.000000 0.000000 0.000000 16128.483784 0.000000 0.000000 0.000000 4977.740325 0.000000 0.000000 4977.740325 0.000000 4977.740325 0
EDGE_SE3:QUAT 30 31 0.430616 0.005881 0.000788 0.016964 -0.008960 -0.003914 0.999808 9099.387671 0.000000 0.000000 0.000000 0.000000 0.000000 9099.387671 0.000000 0.000000 0.000000 0.000000 9099.387671 0.000000 0.000000 0.000000 4656.399548 0.000000 0.000000 4656.399548 0.000000 4656.399548 0
EDGE_SE3:QUAT 31 32 0.406696 0.003071 -0.010039 0.009943 0.010395 -0.001888 0.999895 15208.751139 0.000000 0.000000 0.000000 0.000000 0.000000 15208.751139 0.000000 0.000000 0.000000 0.000000 15208.751139 0.000000 0.000000 0.000000 6583.873645 0.000000 0.000000 6583.873645 0.000000 6583.873645 0
EDGE_SE3:QUAT 32 33 0.448744 0.008460 -0.008847 -0.004248 0.020171 -0.004917 0.999775 10075.853547 0.000000 0.000000 0.000000 0.000000 0.000000 10075.853547 0.000000 0.000000 0.000000 0.000000 10075.853547 0.000000 0.000000 0.000000 5889.204784 0.000000 0.000000 5889.204784 0.000000 5889.204784 0
EDGE_SE3:QUAT 33 34 0.445852 0.004535 0.005910 -0.001820 -0.009720 -0.004226 0.999942 203.791287 0.000000 0.000000 0.000000 0.000000 0.000000 203.791287 0.000000 0.000000 0.000000 0.000000 203.791287 0.000000 0.000000 0.000000 1686.782909 0.000000 0.000000 1686.782909 0.000000 1686.782909 0
EDGE_SE3:QUAT 34 35 0.469223 -0.032725 -0.003126 -0.004669 -0.021682 -0.107564 0.993951 16303.812159 0.000000 0.000000 0.000000 0.000000 0.000000 16303.812159 0.000000 0.000000 0.000000 0.000000 16303.812159 0.000000 0.000000 0.000000 5376.359507 0.000000 0.000000 5376.359507 0.000000 5376.359507 0
EDGE_SE3:QUAT 35 36 0.442918 -0.078365 -0.012222 -0.000793 0.012722 -0.215348 0.976454 18785.162266 0.000000 0.000000 0.000000 0.000000 0.000000 18785.162266 0.000000 0.000000 0.000000 0.000000 18785.162266 0.000000 0.000000 0.000000 4977.740325 0.000000 0.000000 4977.740325 0.000000 4977.740325 0
EDGE_SE3:QUAT 36 37 0.460170 -0.059442 -0.000773 -0.001294 0.005421 -0.134778 0.990860 6600.898717 0.000000 0.000000 0.000000 0.000000 0.000000 6600.898717 0.000000 0.000000 0.000000 0.000000 6600.898717 0.000000 0.000000 0.000000 2808.433434 0.000000 0.000000 2808.433434 0.000000 2808.433434 0
EDGE_SE3:QUAT 37 38 0.506197 0.011832 -0.000537 0.004106 -0.014972 0.024553 0.999578 8218.284427 0.000000 0.000000 0.000000 0.000000 0.000000 8218.284427 0.000000 0.000000 0.000000 0.000000 8218.284427 0.000000 0.000000 0.000000 3293.020587 0.000000 0.000000 3293.020587 0.000000 3293.020587 0
EDGE_SE3:QUAT 38 39 0.495102 0.057280 -0.004405 0.004265 0.010986 0.129823 0.991467 11053.418639 0.000000 0.000000 0.000000 0.000000 0.000000 11053.418639 0.000000 0.000000 0.000000 0.000000 11053.418639 0.000000 0.000000 0.000000 4656.399548 0.000000 0.000000 4656.399548 0.000000 4656.399548 0
EDGE_SE3:QUAT 39 40 0.498240 0.057932 0.003041 0.003099 -0.012007 0.094231 0.995473 17420.384539 0.000000 0.000000 0.000000 0.000000 0.000000 17420.384539 0.000000 0.000000 0.000000 0.000000 17420.384539 0.000000 0.000000 0.000000 6583.873645 0.000000 0.000000 6583.873645 0.000000 6583.873645 0
EDGE_SE3:QUAT 40 41 0.489448 0.009474 -0.004774 0.002418 0.015565 0.005148 0.999863 17847.363856 0.000000 0.000000 0.000000 0.000000 0.000000 17847.363856 0.000000 0.000000 0.000000 0.000000 17847.363856 0.000000 0.000000 0.000000 9308.464703 0.000000 0.000000 9308.464703 0.000000 9308.464703 0
EDGE_SE3:QUAT 41 42 0.470149 0.011865 -0.002149 0.011541 0.008797 0.016844 0.999753 20429.680603 0.000000 0.000000 0.000000 0.000000 0.000000 20429.680603 0.000000 0.000000 0.000000 0.000000 20429.680603 0.000000 0.000000 0.000000 9308.464703 0.000000 0.000000 9308.464703 0.000000 9308.464703 0
EDGE_SE3:QUAT 42 43 0.505653 0.007745 0.005227 0.000937 -0.010461 0.004256 0.999936 19215.670601 0.000000 0.000000 0.000000 0.000000 0.000000 19215.670601 0.000000 0.000000 0.000000 0.000000 19215.670601 0.000000 0.000000 0.000000 7601.627788 0.000000 0.000000 7601.627788 0.000000 7601.627788 0
EDGE_SE3:QUAT 43 44 0.478160 0.007390 0.005065 -0.014252 -0.006912 -0.007453 0.999847 14168.643930 0.000000 0.000000 0.000000 0.000000 0.000000 14168.643930 0.000000 0.000000 0.000000 0.000000 14168.643930 0.000000 0.000000 0.000000 6583.873645 0.000000 0.000000 6583.873645 0.000000 6583.873645 0
EDGE_SE3:QUAT 44 45 0.466756 -0.011991 -0.003353 -0.005994 -0.018051 -0.045059 0.998803 37230.862029 0.000000 0.000000 0.000000 0.000000 0.000000 37230.862029 0.000000 0.000000 0.000000 0.000000 37230.862029 0.000000 0.000000 0.000000 13159.083516 0.000000 0.000000 13159.083516 0.000000 13159.083516 0
EDGE_SE3:QUAT 45 46 0.451410 -0.001764 -0.006367 -0.000723 -0.000134 -0.027553 0.999620 43210.846494 0.000000 0.000000 0.000000 0.000000 0.000000 43210.846494 0.000000 0.000000 0.000000 0.000000 43210.846494 0.000000 0.000000 0.000000 9308.464703 0.000000 0.000000 9308.464703 0.000000 9308.464703 0
EDGE_SE3:QUAT 46 47 0.390112 -0.044005 -0.006634 0.000647 -0.002549 -0.156657 0.987650 39079.605135 0.000000 0.000000 0.000000 0.000000 0.000000 39079.605135 0.000000 0.000000 0.000000 0.000000 39079.605135 0.000000 0.000000 0.000000 9308.464703 0.000000 0.000000 9308.464703 0.000000 9308.464703 0
EDGE_SE3:QUAT 47 48 0.261611 -0.029802 -0.007648 0.006760 -0.010394 -0.109086 0.993955 30830.216720 0.000000 0.000000 0.000000 0.000000 0.000000 30830.216720 0.000000 0.000000 0.000000 0.000000 30830.216720 0.000000 0.000000 0.000000 9308.464703 0.000000 0.000000 9308.464703 0.000000 9308.464703 0
EDGE_SE3:QUAT 48 49 0.233423 0.003810 -0.001449 -0.004036 0.003839 -0.008197 0.999951 24669.360601 0.000000 0.000000 0.000000 0.000000 0.000000 24669.360601 0.000000 0.000000 0.000000 0.000000 24669.360601 0.000000 0.000000 0.000000 9308.464703 0.000000 0.000000 9308.464703 0.000000 9308.464703 0
EDGE_SE3:QUAT 49 50 0.182913 0.020706 -0.004876 -0.003772 0.000854 0.112031 0.993697 34010.581753 0.000000 0.000000 0.000000 0.000000 0.000000 34010.581753 0.000000 0.000000 0.000000 0.000000 34010.581753 0.000000 0.000000 0.000000 9308.464703 0.000000 0.000000 9308.464703 0.000000 9308.464703 0
EDGE_SE3:QUAT 50 51 0.204780 0.022119 -0.004921 -0.005802 0.009891 0.083878 0.996410 37380.196301 0.000000 0.000000 0.000000 0.000000 0.000000 37380.196301 0.000000 0.000000 0.000000 0.000000 37380.196301 0.000000 0.000000 0.000000 9308.464703 0.000000 0.000000 9308.464703 0.000000 9308.464703 0
EDGE_SE3:QUAT 51 52 0.252023 0.010280 0.000263 -0.004852 -0.024944 0.068640 0.997318 26367.469464 0.000000 0.000000 0.000000 0.000000 0.000000 26367.469464 0.000000 0.000000 0.000000 0.000000 26367.469464 0.000000 0.000000 0.000000 13159.083516 0.000000 0.000000 13159.083516 0.000000 13159.083516 0
EDGE_SE3:QUAT 52 53 0.265150 0.030724 -0.002430 0.003091 -0.005213 0.145265 0.989374 19511.136691 0.000000 0.000000 0.000000 0.000000 0.000000 19511.136691 0.000000 0.000000 0.000000 0.000000 19511.136691 0.000000 0.000000 0.000000 9308.464703 0.000000 0.000000 9308.464703 0.000000 9308.464703 0
EDGE_SE3:QUAT 53 54 0.272434 0.059311 -0.004916 0.009545 0.011074 0.237090 0.971378 13297.617499 0.000000 0.000000 0.000000 0.000000 0.000000 13297.617499 0.000000 0.000000 0.000000 0.000000 13297.617499 0.000000 0.000000 0.000000 9308.464703 0.000000 0.000000 9308.464703 0.000000 9308.464703 0
EDGE_SE3:QUAT 54 55 0.281584 0.056349 -0.007864 0.003312 0.002828 0.179705 0.983711 15400.875382 0.000000 0.000000 0.000000 0.000000 0.000000 15400.875382 0.000000 0.000000 0.000000 0.000000 15400.875382 0.000000 0.000000 0.000000 9308.464703 0.000000 0.000000 9308.464703 0.000000 9308.464703 0
EDGE_SE3:QUAT 55 57 0.038897 0.023250 0.008357 0.008928 0.005737 -0.394250 0.918942 9255.837188 0.000000 0.000000 0.000000 0.000000 0.000000 9255.837188 0.000000 0.000000 0.000000 0.000000 9255.837188 0.000000 0.000000 0.000000 9308.464703 0.000000 0.000000 9308.464703 0.000000 9308.464703 0
EDGE_SE3:QUAT 57 58 0.001324 0.006363 -0.007444 -0.005616 -0.011856 -0.277801 0.960549 15462.305430 0.000000 0.000000 0.000000 0.000000 0.000000 15462.305430 0.000000 0.000000 0.000000 0.000000 15462.305430 0.000000 0.000000 0.000000 9308.464703 0.000000 0.000000 9308.464703 0.000000 9308.464703 0
EDGE_SE3:QUAT 58 60 0.105289 -0.004374 0.004452 -0.008391 -0.003177 0.003691 0.999953 54125.834107 0.000000 0.000000 0.000000 0.000000 0.000000 54125.834107 0.000000 0.000000 0.000000 0.000000 54125.834107 0.000000 0.000000 0.000000 13159.083516 0.000000 0.000000 13159.083516 0.000000 13159.083516 0
EDGE_SE3:QUAT 60 61 0.169293 0.015171 -0.006389 0.010990 -0.009299 0.090582 0.995785 26781.762556 0.000000 0.000000 0.000000 0.000000 0.000000 26781.762556 0.000000 0.000000 0.000000 0.000000 26781.762556 0.000000 0.000000 0.000000 13159.083516 0.000000 0.000000 13159.083516 0.000000 13159.083516 0
EDGE_SE3:QUAT 61 62 0.208760 0.013923 -0.000443 -0.003405 -0.007308 0.068680 0.997606 10245.362260 0.000000 0.000000 0.000000 0.000000 0.000000 10245.362260 0.000000 0.000000 0.000000 0.000000 10245.362260 0.000000 0.000000 0.000000 9308.464703 0.000000 0.000000 9308.464703 0.000000 9308.464703 0
EDGE_SE3:QUAT 62 63 0.260212 0.032780 -0.004477 0.006035 -0.004022 0.143146 0.989675 7524.653513 0.000000 0.000000 0.000000 0.000000 0.000000 7524.653513 0.000000 0.000000 0.000000 0.000000 7524.653513 0.000000 0.000000 0.000000 9308.464703 0.000000 0.000000 9308.464703 0.000000 9308.464703 0
EDGE_SE3:QUAT 63 64 0.277712 0.018688 -0.005762 0.002198 -0.008634 0.000223 0.999960 7595.798914 0.000000 0.000000 0.000000 0.000000 0.000000 7595.798914 0.000000 0.000000 0.000000 0.000000 7595.798914 0.000000 0.000000 0.000000 9308.464703 0.000000 0.000000 9308.464703 0.000000 9308.464703 0
EDGE_SE3:QUAT 64 65 0.262754 -0.030156 -0.007478 -0.009837 -0.009205 -0.176013 0.984296 5662.035947 0.000000 0.000000 0.000000 0.000000 0.000000 5662.035947 0.000000 0.000000 0.000000 0.000000 5662.035947 0.000000 0.000000 0.000000 9308.464703 0.000000 0.000000 9308.464703 0.000000 9308.464703 0
EDGE_SE3:QUAT 65 66 0.291431 -0.003621 -0.010686 -0.005630 0.002474 -0.077855 0.996946 6676.516786 0.000000 0.000000 0.000000 0.000000 0.000000 6676.516786 0.000000 0.000000 0.000000 0.000000 6676.516786 0.000000 0.000000 0.000000 9308.464703 0.000000 0.000000 9308.464703 0.000000 9308.464703 0
EDGE_SE3:QUAT 66 67 0.259247 0.000628 -0.008758 0.005695 0.005352 -0.045480 0.998935 11405.580309 0.000000 0.000000 0.000000 0.000000 0.000000 11405.580309 0.000000 0.000000 0.000000 0.000000 11405.580309 0.000000 0.000000 0.000000 9308.464703 0.000000 0.000000 9308.464703 0.000000 9308.464703 0
EDGE_SE3:QUAT 67 68 0.280802 0.026343 -0.013542 0.021022 0.020907 0.097040 0.994839 18361.474225 0.000000 0.000000 0.000000 0.000000 0.000000 18361.474225 0.000000 0.000000 0.000000 0.000000 18361.474225 0.000000 0.000000 0.000000 9308.464703 0.000000 0.000000 9308.464703 0.000000 9308.464703 0
EDGE_SE3:QUAT 68 69 0.284719 0.044374 -0.008946 0.005704 0.015745 0.119226 0.992726 11821.841415 0.000000 0.000000 0.000000 0.000000 0.000000 11821.841415 0.000000 0.000000 0.000000 0.000000 11821.841415 0.000000 0.000000 0.000000 9308.464703 0.000000 0.000000 9308.464703 0.000000 9308.464703 0
EDGE_SE3:QUAT 69 70 0.237106 0.001596 -0.002427 0.003801 -0.003197 0.017881 0.999828 6824.427093 0.000000 0.000000 0.000000 0.000000 0.000000 6824.427093 0.000000 0.000000 0.000000 0.000000 6824.427093 0.000000 0.000000 0.000000 7601.627788 0.000000 0.000000 7601.627788 0.000000 7601.627788 0
EDGE_SE3:QUAT 70 71 0.239481 0.017548 -0.001740 0.002255 0.010755 0.084660 0.996349 8071.816404 0.000000 0.000000 0.000000 0.000000 0.000000 8071.816404 0.000000 0.000000 0.000000 0.000000 8071.816404 0.000000 0.000000 0.000000 9308.464703 0.000000 0.000000 9308.464703 0.000000 9308.464703 0
EDGE_SE3:QUAT 71 72 0.253283 0.042399 0.000316 -0.003407 -0.000780 0.175970 0.984389 23535.930990 0.000000 0.000000 0.000000 0.000000 0.000000 23535.930990 0.000000 0.000000 0.000000 0.000000 23535.930990 0.000000 0.000000 0.000000 13159.083516 0.000000 0.000000 13159.083516 0.000000 13159.083516 0
EDGE_SE3:QUAT 72 73 0.265955 0.048028 -0.012991 -0.005022 0.027541 0.172848 0.984551 21470.636546 0.000000 0.000000 0.000000 0.000000 0.000000 21470.636546 0.000000 0.000000 0.000000 0.000000 21470.636546 0.000000 0.000000 0.000000 9308.464703 0.000000 0.000000 9308.464703 0.000000 9308.464703 0
EDGE_SE3:QUAT 73 74 0.233459 0.000504 0.000216 -0.005658 0.020021 0.019682 0.999590 19705.198799 0.000000 0.000000 0.000000 0.000000 0.000000 19705.198799 0.000000 0.000000 0.000000 0.000000 19705.198799 0.000000 0.000000 0.000000 9308.464703 0.000000 0.000000 9308.464703 0.000000 9308.464703 0
EDGE_SE3:QUAT 74 75 0.278874 0.001980 0.000698 0.001654 -0.023567 0.005047 0.999708 30125.365636 0.000000 0.000000 0.000000 0.000000 0.000000 30125.365636 0.000000 0.000000 0.000000 0.000000 30125.365636 0.000000 0.000000 0.000000 9308.464703 0.000000 0.000000 9308.464703 0.000000 9308.464703 0
EDGE_SE3:QUAT 75 76 0.262432 0.001980 -0.003829 -0.006251 0.001644 0.001726 0.999978 39048.975548 0.000000 0.000000 0.000000 0.000000 0.000000 39048.975548 0.000000 0.000000 0.000000 0.000000 39048.975548 0.000000 0.000000 0.000000 13159.083516 0.000000 0.000000 13159.083516 0.000000 13159.083516 0
EDGE_SE3:QUAT 76 77 0.286685 0.007781 -0.009746 0.006206 0.013227 0.013413 0.999803 49043.681291 0.000000 0.000000 0.000000 0.000000 0.000000 49043.681291 0.000000 0.000000 0.000000 0.000000 49043.681291 0.000000 0.000000 0.000000 13159.083516 0.000000 0.000000 13159.083516 0.000000 13159.083516 0
EDGE_SE3:QUAT 77 81 0.081246 0.020528 -0.000842 0.002137 -0.005094 -0.169300 0.985549 57940.561692 0.000000 0.000000 0.000000 0.000000 0.000000 57940.561692 0.000000 0.000000 0.000000 0.000000 57940.561692 0.000000 0.000000 0.000000 10000000.000000 0.000000 0.000000 10000000.000000 0.000000 10000000.000000 0
EDGE_SE3:QUAT 81 82 -0.004274 0.017956 0.003409 -0.012981 -0.007355 -0.373121 0.927663 16938.387303 0.000000 0.000000 0.000000 0.000000 0.000000 16938.387303 0.000000 0.000000 0.000000 0.000000 16938.387303 0.000000 0.000000 0.000000 13159.083516 0.000000 0.000000 13159.083516 0.000000 13159.083516 0
EDGE_SE3:QUAT 82 83 -0.002026 0.021739 -0.003664 -0.000413 0.010313 -0.404914 0.914296 8596.139139 0.000000 0.000000 0.000000 0.000000 0.000000 8596.139139 0.000000 0.000000 0.000000 0.000000 8596.139139 0.000000 0.000000 0.000000 9308.464703 0.000000 0.000000 9308.464703 0.000000 9308.464703 0
EDGE_SE3:QUAT 83 84 0.002123 0.005993 0.002174 0.001555 -0.012810 -0.385348 0.922681 30096.213910 0.000000 0.000000 0.000000 0.000000 0.000000 30096.213910 0.000000 0.000000 0.000000 0.000000 30096.213910 0.000000 0.000000 0.000000 9308.464703 0.000000 0.000000 9308.464703 0.000000 9308.464703 0
EDGE_SE3:QUAT 84 85 0.002151 0.010342 -0.000741 -0.015060 0.001280 -0.359493 0.933025 24532.462756 0.000000 0.000000 0.000000 0.000000 0.000000 24532.462756 0.000000 0.000000 0.000000 0.000000 24532.462756 0.000000 0.000000 0.000000 9308.464703 0.000000 0.000000 9308.464703 0.000000 9308.464703 0
EDGE_SE3:QUAT 85 86 0.002922 0.009495 0.001319 0.009185 0.006422 -0.278875 0.960262 33332.855684 0.000000 0.000000 0.000000 0.000000 0.000000 33332.855684 0.000000 0.000000 0.000000 0.000000 33332.855684 0.000000 0.000000 0.000000 13159.083516 0.000000 0.000000 13159.083516 0.000000 13159.083516 0
EDGE_SE3:QUAT 86 87 0.004143 0.006935 0.000357 0.000772 -0.005721 -0.168988 0.985601 47579.516376 0.000000 0.000000 0.000000 0.000000 0.000000 47579.516376 0.000000 0.000000 0.000000 0.000000 47579.516376 0.000000 0.000000 0.000000 13159.083516 0.000000 0.000000 13159.083516 0.000000 13159.083516 0
EDGE_SE3:QUAT 87 88 0.002045 0.005772 0.001214 -0.000014 -0.005434 -0.139457 0.990213 42399.215609 0.000000 0.000000 0.000000 0.000000 0.000000 42399.215609 0.000000 0.000000 0.000000 0.000000 42399.215609 0.000000 0.000000 0.000000 13159.083516 0.000000 0.000000 13159.083516 0.000000 13159.083516 0
EDGE_SE3:QUAT 88 89 -0.000051 0.000912 -0.000938 -0.002844 -0.006474 -0.082510 0.996565 44206.063947 0.000000 0.000000 0.000000 0.000000 0.000000 44206.063947 0.000000 0.000000 0.000000 0.000000 44206.063947 0.000000 0.000000 0.000000 9308.464703 0.000000 0.000000 9308.464703 0.000000 9308.464703 0
EDGE_SE3:QUAT 89 92 0.001983 -0.000486 -0.001541 -0.004812 -0.004785 -0.084169 0.996428 25613.098700 0.000000 0.000000 0.000000 0.000000 0.000000 25613.098700 0.000000 0.000000 0.000000 0.000000 25613.098700 0.000000 0.000000 0.000000 7601.627788 0.000000 0.000000 7601.627788 0.000000 7601.627788 0
EDGE_SE3:QUAT 92 93 -0.156120 -0.001265 -0.000399 0.001249 0.009277 -0.009052 0.999915 29792.416774 0.000000 0.000000 0.000000 0.000000 0.000000 29792.416774 0.000000 0.000000 0.000000 0.000000 29792.416774 0.000000 0.000000 0.000000 9308.464703 0.000000 0.000000 9308.464703 0.000000 9308.464703 0
EDGE_SE3:QUAT 92 114 0.286155 0.183463 -0.003622 -0.005368 0.003345 -0.228759 0.973462 3568.787590 0.000000 0.000000 0.000000 0.000000 0.000000 3568.787590 0.000000 0.000000 0.000000 0.000000 3568.787590 0.000000 0.000000 0.000000 200.898142 0.000000 0.000000 200.898142 0.000000 200.898142 2
EDGE_SE3:QUAT 93 94 -0.300858 0.022469 0.006792 0.002860 0.021187 -0.084509 0.996193 28098.627114 0.000000 0.000000 0.000000 0.000000 0.000000 28098.627114 0.000000 0.000000 0.000000 0.000000 28098.627114 0.000000 0.000000 0.000000 9308.464703 0.000000 0.000000 9308.464703 0.000000 9308.464703 0
EDGE_SE3:QUAT 94 95 -0.309299 0.066080 -0.014392 0.005206 -0.049502 -0.216846 0.974936 30167.606840 0.000000 0.000000 0.000000 0.000000 0.000000 30167.606840 0.000000 0.000000 0.000000 0.000000 30167.606840 0.000000 0.000000 0.000000 7601.627788 0.000000 0.000000 7601.627788 0.000000 7601.627788 0
EDGE_SE3:QUAT 95 96 -0.201971 0.011395 0.004697 -0.001605 0.003146 -0.049683 0.998759 40433.564927 0.000000 0.000000 0.000000 0.000000 0.000000 40433.564927 0.000000 0.000000 0.000000 0.000000 40433.564927 0.000000 0.000000 0.000000 9308.464703 0.000000 0.000000 9308.464703 0.000000 9308.464703 0
EDGE_SE3:QUAT 96 97 0.005619 -0.004282 0.005413 0.007907 0.008067 0.165125 0.986208 33892.623525 0.000000 0.000000 0.000000 0.000000 0.000000 33892.623525 0.000000 0.000000 0.000000 0.000000 33892.623525 0.000000 0.000000 0.000000 13159.083516 0.000000 0.000000 13159.083516 0.000000 13159.083516 0
EDGE_SE3:QUAT 97 98 0.004503 -0.013515 -0.003568 -0.000921 0.003402 0.320266 0.947321 27859.077646 0.000000 0.000000 0.000000 0.000000 0.000000 27859.077646 0.000000 0.000000 0.000000 0.000000 27859.077646 0.000000 0.000000 0.000000 7601.627788 0.000000 0.000000 7601.627788 0.000000 7601.627788 0
EDGE_SE3:QUAT 98 99 0.004981 -0.015153 -0.005221 0.002131 -0.000998 0.323490 0.946229 18180.811631 0.000000 0.000000 0.000000 0.000000 0.000000 18180.811631 0.000000 0.000000 0.000000 0.000000 18180.811631 0.000000 0.000000 0.000000 9308.464703 0.000000 0.000000 9308.464703 0.000000 9308.464703 0
EDGE_SE3:QUAT 99 100 0.002813 -0.013396 0.003161 0.007285 -0.000553 0.337986 0.941123 20483.537105 0.000000 0.000000 0.000000 0.000000 0.000000 20483.537105 0.000000 0.000000 0.000000 0.000000 20483.537105 0.000000 0.000000 0.000000 9308.464703 0.000000 0.000000 9308.464703 0.000000 9308.464703 0
EDGE_SE3:QUAT 100 101 0.020950 -0.001266 -0.002111 -0.003661 -0.001262 0.062971 0.998008 17226.110622 0.000000 0.000000 0.000000 0.000000 0.000000 17226.110622 0.000000 0.000000 0.000000 0.000000 17226.110622 0.000000 0.000000 0.000000 9308.464703 0.000000 0.000000 9308.464703 0.000000 9308.464703 0
EDGE_SE3:QUAT 101 102 0.280943 -0.002572 -0.004543 0.007599 -0.002859 0.024972 0.999655 10776.598129 0.000000 0.000000 0.000000 0.000000 0.000000 10776.598129 0.000000 0.000000 0.000000 0.000000 10776.598129 0.000000 0.000000 0.000000 6583.873645 0.000000 0.000000 6583.873645 0.000000 6583.873645 0
EDGE_SE3:QUAT 102 103 0.319741 0.016578 -0.004464 0.005955 0.003056 0.077165 0.996996 6302.869215 0.000000 0.000000 0.000000 0.000000 0.000000 6302.869215 0.000000 0.000000 0.000000 0.000000 6302.869215 0.000000 0.000000 0.000000 4165.015055 0.000000 0.000000 4165.015055 0.000000 4165.015055 0
EDGE_SE3:QUAT 103 104 0.145358 0.011408 -0.002635 0.002302 0.021201 0.103805 0.994369 3357.206208 0.000000 0.000000 0.000000 0.000000 0.000000 3357.206208 0.000000 0.000000 0.000000 0.000000 3357.206208 0.000000 0.000000 0.000000 2874.504194 0.000000 0.000000 2874.504194 0.000000 2874.504194 0
EDGE_SE3:QUAT 104 105 -0.001677 -0.009289 0.002278 -0.001417 0.002289 0.173824 0.984773 9024.041195 0.000000 0.000000 0.000000 0.000000 0.000000 9024.041195 0.000000 0.000000 0.000000 0.000000 9024.041195 0.000000 0.000000 0.000000 4390.212214 0.000000 0.000000 4390.212214 0.000000 4390.212214 0
EDGE_SE3:QUAT 105 106 -0.008271 -0.013834 0.007152 -0.002088 -0.008040 0.321034 0.947031 3168.102666 0.000000 0.000000 0.000000 0.000000 0.000000 3168.102666 0.000000 0.000000 0.000000 0.000000 3168.102666 0.000000 0.000000 0.000000 4390.212214 0.000000 0.000000 4390.212214 0.000000 4390.212214 0
EDGE_SE3:QUAT 106 107 0.000950 -0.005388 0.003234 0.008877 0.006094 0.367484 0.929968 6706.206234 0.000000 0.000000 0.000000 0.000000 0.000000 6706.206234 0.000000 0.000000 0.000000 0.000000 6706.206234 0.000000 0.000000 0.000000 9308.464703 0.000000 0.000000 9308.464703 0.000000 9308.464703 0
EDGE_SE3:QUAT 107 108 -0.000633 -0.011680 0.003596 -0.007278 0.004377 0.389929 0.920806 11385.813878 0.000000 0.000000 0.000000 0.000000 0.000000 11385.813878 0.000000 0.000000 0.000000 0.000000 11385.813878 0.000000 0.000000 0.000000 9308.464703 0.000000 0.000000 9308.464703 0.000000 9308.464703 0
EDGE_SE3:QUAT 108 109 0.006891 -0.012277 -0.003613 0.010256 -0.007568 0.399861 0.916487 27892.903929 0.000000 0.000000 0.000000 0.000000 0.000000 27892.903929 0.000000 0.000000 0.000000 0.000000 27892.903929 0.000000 0.000000 0.000000 9308.464703 0.000000 0.000000 9308.464703 0.000000 9308.464703 0
EDGE_SE3:QUAT 109 110 0.002515 -0.008984 -0.001763 0.005108 0.002285 0.206597 0.978410 11316.202940 0.000000 0.000000 0.000000 0.000000 0.000000 11316.202940 0.000000 0.000000 0.000000 0.000000 11316.202940 0.000000 0.000000 0.000000 4977.740325 0.000000 0.000000 4977.740325 0.000000 4977.740325 0
EDGE_SE3:QUAT 110 111 0.288437 0.000874 -0.000085 0.002750 0.016464 0.003420 0.999855 21376.789857 0.000000 0.000000 0.000000 0.000000 0.000000 21376.789857 0.000000 0.000000 0.000000 0.000000 21376.789857 0.000000 0.000000 0.000000 7601.627788 0.000000 0.000000 7601.627788 0.000000 7601.627788 0
EDGE_SE3:QUAT 111 112 0.465111 -0.016998 0.001449 0.007352 0.006837 -0.100746 0.994862 18425.000054 0.000000 0.000000 0.000000 0.000000 0.000000 18425.000054 0.000000 0.000000 0.000000 0.000000 18425.000054 0.000000 0.000000 0.000000 6583.873645 0.000000 0.000000 6583.873645 0.000000 6583.873645 0
EDGE_SE3:QUAT 112 113 0.456221 -0.047882 -0.003054 -0.002954 -0.003848 -0.084220 0.996435 38627.467383 0.000000 0.000000 0.000000 0.000000 0.000000 38627.467383 0.000000 0.000000 0.000000 0.000000 38627.467383 0.000000 0.000000 0.000000 9308.464703 0.000000 0.000000 9308.464703 0.000000 9308.464703 0
EDGE_SE3:QUAT 113 114 0.391272 0.049292 0.003005 -0.003432 -0.005712 0.147413 0.989053 25250.101599 0.000000 0.000000 0.000000 0.000000 0.000000 25250.101599 0.000000 0.000000 0.000000 0.000000 25250.101599 0.000000 0.000000 0.000000 9308.464703 0.000000 0.000000 9308.464703 0.000000 9308.464703 0
EDGE_SE3:QUAT 114 115 0.389863 0.049381 -0.000022 -0.010593 -0.005261 0.090036 0.995868 18465.891533 0.000000 0.000000 0.000000 0.000000 0.000000 18465.891533 0.000000 0.000000 0.000000 0.000000 18465.891533 0.000000 0.000000 0.000000 6583.873645 0.000000 0.000000 6583.873645 0.000000 6583.873645 0
EDGE_SE3:QUAT 115 116 0.366390 0.015570 -0.000247 0.001238 0.004138 0.031781 0.999486 13814.860921 0.000000 0.000000 0.000000 0.000000 0.000000 13814.860921 0.000000 0.000000 0.000000 0.000000 13814.860921 0.000000 0.000000 0.000000 5376.359507 0.000000 0.000000 5376.359507 0.000000 5376.359507 0
EDGE_SE3:QUAT 116 117 0.368484 0.006079 -0.000805 0.004775 -0.003156 0.006592 0.999962 35384.423419 0.000000 0.000000 0.000000 0.000000 0.000000 35384.423419 0.000000 0.000000 0.000000 0.000000 35384.423419 0.000000 0.000000 0.000000 9308.464703 0.000000 0.000000 9308.464703 0.000000 9308.464703 0
EDGE_SE3:QUAT 117 118 0.361750 0.016239 -0.003735 -0.002981 0.005472 0.066653 0.997757 74615.497285 0.000000 0.000000 0.000000 0.000000 0.000000 74615.497285 0.000000 0.000000 0.000000 0.000000 74615.497285 0.000000 0.000000 0.000000 13159.083516 0.000000 0.000000 13159.083516 0.000000 13159.083516 0
EDGE_SE3:QUAT 118 120 0.027059 -0.016333 0.002822 -0.000021 -0.004578 0.387120 0.922018 29160.411838 0.000000 0.000000 0.000000 0.000000 0.000000 29160.411838 0.000000 0.000000 0.000000 0.000000 29160.411838 0.000000 0.000000 0.000000 9308.464703 0.000000 0.000000 9308.464703 0.000000 9308.464703 0
EDGE_SE3:QUAT 120 121 -0.000477 -0.004692 0.000995 0.001089 -0.002989 0.101483 0.994832 35608.473643 0.000000 0.000000 0.000000 0.000000 0.000000 35608.473643 0.000000 0.000000 0.000000 0.000000 35608.473643 0.000000 0.000000 0.000000 13159.083516 0.000000 0.000000 13159.083516 0.000000 13159.083516 0
EDGE_SE3:QUAT 121 122 0.000702 -0.006554 -0.002559 0.003645 0.005190 0.154014 0.988048 46993.784724 0.000000 0.000000 0.000000 0.000000 0.000000 46993.784724 0.000000 0.000000 0.000000 0.000000 46993.784724 0.000000 0.000000 0.000000 10000000.000000 0.000000 0.000000 10000000.000000 0.000000 10000000.000000 0
EDGE_SE3:QUAT 122 123 0.272890 -0.011994 -0.000388 0.006066 0.002957 -0.051841 0.998633 50965.127134 0.000000 0.000000 0.000000 0.000000 0.000000 50965.127134 0.000000 0.000000 0.000000 0.000000 50965.127134 0.000000 0.000000 0.000000 13159.083516 0.000000 0.000000 13159.083516 0.000000 13159.083516 0
EDGE_SE3:QUAT 123 124 0.400873 -0.091460 0.006412 0.018274 -0.009878 -0.258066 0.965904 23518.353063 0.000000 0.000000 0.000000 0.000000 0.000000 23518.353063 0.000000 0.000000 0.000000 0.000000 23518.353063 0.000000 0.000000 0.000000 9308.464703 0.000000 0.000000 9308.464703 0.000000 9308.464703 0
EDGE_SE3:QUAT 124 125 0.356695 -0.087167 -0.008635 -0.026113 0.012506 -0.263440 0.964241 47648.065603 0.000000 0.000000 0.000000 0.000000 0.000000 47648.065603 0.000000 0.000000 0.000000 0.000000 47648.065603 0.000000 0.000000 0.000000 9308.464703 0.000000 0.000000 9308.464703 0.000000 9308.464703 0
EDGE_SE3:QUAT 125 126 0.371294 0.009098 -0.002583 -0.028460 -0.010708 -0.044914 0.998528 41956.765679 0.000000 0.000000 0.000000 0.000000 0.000000 41956.765679 0.000000 0.000000 0.000000 0.000000 41956.765679 0.000000 0.000000 0.000000 9308.464703 0.000000 0.000000 9308.464703 0.000000 9308.464703 0
EDGE_SE3:QUAT 126 127 0.346021 0.007185 -0.002370 0.006622 0.009108 -0.016512 0.999800 16480.563106 0.000000 0.000000 0.000000 0.000000 0.000000 16480.563106 0.000000 0.000000 0.000000 0.000000 16480.563106 0.000000 0.000000 0.000000 5889.204784 0.000000 0.000000 5889.204784 0.000000 5889.204784 0
EDGE_SE3:QUAT 127 128 0.366276 -0.052874 0.008663 0.002148 -0.011197 -0.225989 0.974063 7430.189680 0.000000 0.000000 0.000000 0.000000 0.000000 7430.189680 0.000000 0.000000 0.000000 0.000000 7430.189680 0.000000 0.000000 0.000000 4165.015055 0.000000 0.000000 4165.015055 0.000000 4165.015055 0
EDGE_SE3:QUAT 128 129 0.327793 -0.074219 0.008767 -0.002654 -0.015044 -0.264079 0.964380 3644.337383 0.000000 0.000000 0.000000 0.000000 0.000000 3644.337383 0.000000 0.000000 0.000000 0.000000 3644.337383 0.000000 0.000000 0.000000 3194.730701 0.000000 0.000000 3194.730701 0.000000 3194.730701 0
EDGE_SE3:QUAT 129 130 0.383944 0.013878 -0.002911 0.009877 -0.006500 0.025180 0.999613 5969.151220 0.000000 0.000000 0.000000 0.000000 0.000000 5969.151220 0.000000 0.000000 0.000000 0.000000 5969.151220 0.000000 0.000000 0.000000 5376.359507 0.000000 0.000000 5376.359507 0.000000 5376.359507 0
EDGE_SE3:QUAT 130 131 0.338438 0.039072 -0.014224 0.005333 0.033672 0.101756 0.994225 5226.411767 0.000000 0.000000 0.000000 0.000000 0.000000 5226.411767 0.000000 0.000000 0.000000 0.000000 5226.411767 0.000000 0.000000 0.000000 4656.399548 0.000000 0.000000 4656.399548 0.000000 4656.399548 0
EDGE_SE3:QUAT 131 132 0.293633 0.010498 -0.002072 0.003288 0.008905 0.019161 0.999771 20901.199224 0.000000 0.000000 0.000000 0.000000 0.000000 20901.199224 0.000000 0.000000 0.000000 0.000000 20901.199224 0.000000 0.000000 0.000000 9308.464703 0.000000 0.000000 9308.464703 0.000000 9308.464703 0
EDGE_SE3:QUAT 132 133 -0.005504 0.008638 0.001998 0.002834 -0.006933 -0.152091 0.988338 44248.929279 0.000000 0.000000 0.000000 0.000000 0.000000 44248.929279 0.000000 0.000000 0.000000 0.000000 44248.929279 0.000000 0.000000 0.000000 9308.464703 0.000000 0.000000 9308.464703 0.000000 9308.464703 0
EDGE_SE3:QUAT 133 134 0.002675 0.022163 0.003504 -0.003589 -0.010067 -0.410768 0.911677 17858.519222 0.000000 0.000000 0.000000 0.000000 0.000000 17858.519222 0.000000 0.000000 0.000000 0.000000 17858.519222 0.000000 0.000000 0.000000 9308.464703 0.000000 0.000000 9308.464703 0.000000 9308.464703 0
EDGE_SE3:QUAT 134 135 -0.002422 0.013183 -0.003240 -0.012612 0.000633 -0.433170 0.901224 5275.949494 0.000000 0.000000 0.000000 0.000000 0.000000 5275.949494 0.000000 0.000000 0.000000 0.000000 5275.949494 0.000000 0.000000 0.000000 6583.873645 0.000000 0.000000 6583.873645 0.000000 6583.873645 0
EDGE_SE3:QUAT 135 136 0.002036 0.014211 -0.003814 -0.001353 -0.004732 -0.414144 0.910198 7768.249247 0.000000 0.000000 0.000000 0.000000 0.000000 7768.249247 0.000000 0.000000 0.000000 0.000000 7768.249247 0.000000 0.000000 0.000000 5376.359507 0.000000 0.000000 5376.359507 0.000000 5376.359507 0
EDGE_SE3:QUAT 136 137 0.006689 0.008135 -0.000964 -0.008478 0.006028 -0.423389 0.905888 22175.620508 0.000000 0.000000 0.000000 0.000000 0.000000 22175.620508 0.000000 0.000000 0.000000 0.000000 22175.620508 0.000000 0.000000 0.000000 6583.873645 0.000000 0.000000 6583.873645 0.000000 6583.873645 0
EDGE_SE3:QUAT 137 138 0.010977 0.010869 -0.000694 0.006467 -0.003131 -0.405287 0.914161 45089.331258 0.000000 0.000000 0.000000 0.000000 0.000000 45089.331258 0.000000 0.000000 0.000000 0.000000 45089.331258 0.000000 0.000000 0.000000 13159.083516 0.000000 0.000000 13159.083516 0.000000 13159.083516 0
EDGE_SE3:QUAT 138 139 0.002962 0.003410 -0.002716 -0.001521 -0.000701 -0.175109 0.984548 38169.336094 0.000000 0.000000 0.000000 0.000000 0.000000 38169.336094 0.000000 0.000000 0.000000 0.000000 38169.336094 0.000000 0.000000 0.000000 9308.464703 0.000000 0.000000 9308.464703 0.000000 9308.464703 0
EDGE_SE3:QUAT 139 140 0.238109 -0.016002 0.003632 -0.001066 -0.005133 -0.090107 0.995918 25094.353641 0.000000 0.000000 0.000000 0.000000 0.000000 25094.353641 0.000000 0.000000 0.000000 0.000000 25094.353641 0.000000 0.000000 0.000000 7601.627788 0.000000 0.000000 7601.627788 0.000000 7601.627788 0
EDGE_SE3:QUAT 140 141 0.312770 -0.012565 -0.001812 -0.010828 0.001978 -0.061689 0.998035 18749.331995 0.000000 0.000000 0.000000 0.000000 0.000000 18749.331995 0.000000 0.000000 0.000000 0.000000 18749.331995 0.000000 0.000000 0.000000 7601.627788 0.000000 0.000000 7601.627788 0.000000 7601.627788 0
EDGE_SE3:QUAT 141 142 0.386456 -0.010616 0.013565 -0.010105 -0.033483 -0.088250 0.995484 16771.803029 0.000000 0.000000 0.000000 0.000000 0.000000 16771.803029 0.000000 0.000000 0.000000 0.000000 16771.803029 0.000000 0.000000 0.000000 6583.873645 0.000000 0.000000 6583.873645 0.000000 6583.873645 0
EDGE_SE3:QUAT 142 143 0.407601 -0.003170 -0.006191 -0.000703 0.015144 -0.030341 0.999425 5387.202980 0.000000 0.000000 0.000000 0.000000 0.000000 5387.202980 0.000000 0.000000 0.000000 0.000000 5387.202980 0.000000 0.000000 0.000000 3520.307063 0.000000 0.000000 3520.307063 0.000000 3520.307063 0
EDGE_SE3:QUAT 143 144 0.355242 0.004436 -0.000152 0.009721 -0.005418 0.006041 0.999920 8506.748204 0.000000 0.000000 0.000000 0.000000 0.000000 8506.748204 0.000000 0.000000 0.000000 0.000000 8506.748204 0.000000 0.000000 0.000000 4165.015055 0.000000 0.000000 4165.015055 0.000000 4165.015055 0
EDGE_SE3:QUAT 144 147 0.097677 -0.000435 -0.002392 0.005099 0.004020 0.082694 0.996554 11361.805008 0.000000 0.000000 0.000000 0.000000 0.000000 11361.805008 0.000000 0.000000 0.000000 0.000000 11361.805008 0.000000 0.000000 0.000000 4656.399548 0.000000 0.000000 4656.399548 0.000000 4656.399548 0
EDGE_SE3:QUAT 147 148 0.002084 -0.012262 0.003294 -0.001850 0.007780 0.252107 0.967666 19228.406336 0.000000 0.000000 0.000000 0.000000 0.000000 19228.406336 0.000000 0.000000 0.000000 0.000000 19228.406336 0.000000 0.000000 0.000000 6583.873645 0.000000 0.000000 6583.873645 0.000000 6583.873645 0
EDGE_SE3:QUAT 148 149 0.001184 -0.007672 -0.002807 0.001898 -0.006022 0.172238 0.985035 27664.240150 0.000000 0.000000 0.000000 0.000000 0.000000 27664.240150 0.000000 0.000000 0.000000 0.000000 27664.240150 0.000000 0.000000 0.000000 9308.464703 0.000000 0.000000 9308.464703 0.000000 9308.464703 0
EDGE_SE3:QUAT 149 151 0.363560 0.021764 -0.000693 0.011586 0.006364 0.067890 0.997605 23254.483623 0.000000 0.000000 0.000000 0.000000 0.000000 23254.483623 0.000000 0.000000 0.000000 0.000000 23254.483623 0.000000 0.000000 0.000000 7601.627788 0.000000 0.000000 7601.627788 0.000000 7601.627788 0
EDGE_SE3:QUAT 151 152 0.359009 0.007322 -0.003194 0.002105 0.005543 0.013216 0.999895 14486.142757 0.000000 0.000000 0.000000 0.000000 0.000000 14486.142757 0.000000 0.000000 0.000000 0.000000 14486.142757 0.000000 0.000000 0.000000 6583.873645 0.000000 0.000000 6583.873645 0.000000 6583.873645 0
EDGE_SE3:QUAT 152 153 0.362429 0.008223 0.002711 -0.004045 -0.008546 0.011665 0.999887 29061.839285 0.000000 0.000000 0.000000 0.000000 0.000000 29061.839285 0.000000 0.000000 0.000000 0.000000 29061.839285 0.000000 0.000000 0.000000 9308.464703 0.000000 0.000000 9308.464703 0.000000 9308.464703 0
EDGE_SE3:QUAT 153 154 0.374418 -0.013218 -0.002481 -0.007962 -0.003065 -0.053617 0.998525 10051.856295 0.000000 0.000000 0.000000 0.000000 0.000000 10051.856295 0.000000 0.000000 0.000000 0.000000 10051.856295 0.000000 0.000000 0.000000 6583.873645 0.000000 0.000000 6583.873645 0.000000 6583.873645 0
EDGE_SE3:QUAT 154 155 0.400826 -0.002340 -0.004715 -0.002887 -0.003626 -0.020413 0.999781 16934.489712 0.000000 0.000000 0.000000 0.000000 0.000000 16934.489712 0.000000 0.000000 0.000000 0.000000 16934.489712 0.000000 0.000000 0.000000 7601.627788 0.000000 0.000000 7601.627788 0.000000 7601.627788 0
EDGE_SE3:QUAT 155 156 0.446640 0.000276 -0.000268 -0.002322 -0.008998 -0.008323 0.999922 12301.508235 0.000000 0.000000 0.000000 0.000000 0.000000 12301.508235 0.000000 0.000000 0.000000 0.000000 12301.508235 0.000000 0.000000 0.000000 5889.204784 0.000000 0.000000 5889.204784 0.000000 5889.204784 0
EDGE_SE3:QUAT 156 157 0.455851 0.018330 -0.005421 0.002384 0.006559 0.038476 0.999235 9765.516299 0.000000 0.000000 0.000000 0.000000 0.000000 9765.516299 0.000000 0.000000 0.000000 0.000000 9765.516299 0.000000 0.000000 0.000000 5889.204784 0.000000 0.000000 5889.204784 0.000000 5889.204784 0
EDGE_SE3:QUAT 157 158 0.465935 0.011225 -0.003006 -0.000735 0.001172 0.011682 0.999931 14771.161117 0.000000 0.000000 0.000000 0.000000 0.000000 14771.161117 0.000000 0.000000 0.000000 0.000000 14771.161117 0.000000 0.000000 0.000000 6583.873645 0.000000 0.000000 6583.873645 0.000000 6583.873645 0
EDGE_SE3:QUAT 158 159 0.489209 0.000209 -0.005882 0.006788 0.001262 0.012948 0.999892 8538.029789 0.000000 0.000000 0.000000 0.000000 0.000000 8538.029789 0.000000 0.000000 0.000000 0.000000 8538.029789 0.000000 0.000000 0.000000 4165.015055 0.000000 0.000000 4165.015055 0.000000 4165.015055 0
EDGE_SE3:QUAT 159 160 0.518304 0.004365 0.001303 0.001314 -0.000193 0.006506 0.999978 14990.138507 0.000000 0.000000 0.000000 0.000000 0.000000 14990.138507 0.000000 0.000000 0.000000 0.000000 14990.138507 0.000000 0.000000 0.000000 7601.627788 0.000000 0.000000 7601.627788 0.000000 7601.627788 0
EDGE_SE3:QUAT 160 161 0.519666 0.009906 -0.010153 -0.016952 0.001736 0.005280 0.999841 15770.232804 0.000000 0.000000 0.000000 0.000000 0.000000 15770.232804 0.000000 0.000000 0.000000 0.000000 15770.232804 0.000000 0.000000 0.000000 6583.873645 0.000000 0.000000 6583.873645 0.000000 6583.873645 0
EDGE_SE3:QUAT 161 162 0.513986 0.011932 -0.001434 0.008662 -0.004974 0.012814 0.999868 15005.267672 0.000000 0.000000 0.000000 0.000000 0.000000 15005.267672 0.000000 0.000000 0.000000 0.000000 15005.267672 0.000000 0.000000 0.000000 4977.740325 0.000000 0.000000 4977.740325 0.000000 4977.740325 0
EDGE_SE3:QUAT 162 163 0.512771 -0.002890 -0.012825 -0.006730 0.023143 -0.021183 0.999485 12637.975779 0.000000 0.000000 0.000000 0.000000 0.000000 12637.975779 0.000000 0.000000 0.000000 0.000000 12637.975779 0.000000 0.000000 0.000000 4656.399548 0.000000 0.000000 4656.399548 0.000000 4656.399548 0
EDGE_SE3:QUAT 163 164 0.525050 0.002474 0.013447 -0.005681 -0.020665 -0.011522 0.999704 13415.049792 0.000000 0.000000 0.000000 0.000000 0.000000 13415.049792 0.000000 0.000000 0.000000 0.000000 13415.049792 0.000000 0.000000 0.000000 4977.740325 0.000000 0.000000 4977.740325 0.000000 4977.740325 0
EDGE_SE3:QUAT 164 165 0.530904 -0.005852 -0.004528 0.008701 0.000286 -0.009830 0.999914 10000.763461 0.000000 0.000000 0.000000 0.000000 0.000000 10000.763461 0.000000 0.000000 0.000000 0.000000 10000.763461 0.000000 0.000000 0.000000 3520.307063 0.000000 0.000000 3520.307063 0.000000 3520.307063 0
EDGE_SE3:QUAT 165 166 0.518883 -0.002179 0.009743 0.000316 -0.029348 -0.011756 0.999500 12149.323185 0.000000 0.000000 0.000000 0.000000 0.000000 12149.323185 0.000000 0.000000 0.000000 0.000000 12149.323185 0.000000 0.000000 0.000000 4656.399548 0.000000 0.000000 4656.399548 0.000000 4656.399548 0
EDGE_SE3:QUAT 166 167 0.523634 -0.006093 -0.018365 0.019496 0.022298 -0.008411 0.999526 8077.109216 0.000000 0.000000 0.000000 0.000000 0.000000 8077.109216 0.000000 0.000000 0.000000 0.000000 8077.109216 0.000000 0.000000 0.000000 3194.730701 0.000000 0.000000 3194.730701 0.000000 3194.730701 0
EDGE_SE3:QUAT 167 168 0.528075 0.001800 -0.005911 0.002578 -0.005098 0.032045 0.999470 10891.103727 0.000000 0.000000 0.000000 0.000000 0.000000 10891.103727 0.000000 0.000000 0.000000 0.000000 10891.103727 0.000000 0.000000 0.000000 3802.259062 0.000000 0.000000 3802.259062 0.000000 3802.259062 0
EDGE_SE3:QUAT 168 169 0.531444 0.011026 0.003063 0.013267 -0.003667 0.018795 0.999729 14654.044938 0.000000 0.000000 0.000000 0.000000 0.000000 14654.044938 0.000000 0.000000 0.000000 0.000000 14654.044938 0.000000 0.000000 0.000000 3971.262987 0.000000 0.000000 3971.262987 0.000000 3971.262987 0
EDGE_SE3:QUAT 169 170 0.527323 -0.001013 0.001717 -0.005579 -0.014742 0.005641 0.999860 13795.561825 0.000000 0.000000 0.000000 0.000000 0.000000 13795.561825 0.000000 0.000000 0.000000 0.000000 13795.561825 0.000000 0.000000 0.000000 3653.146618 0.000000 0.000000 3653.146618 0.000000 3653.146618 0
EDGE_SE3:QUAT 170 171 0.539969 -0.029637 -0.020865 -0.022735 0.026434 -0.067948 0.997079 9488.028674 0.000000 0.000000 0.000000 0.000000 0.000000 9488.028674 0.000000 0.000000 0.000000 0.000000 9488.028674 0.000000 0.000000 0.000000 3520.307063 0.000000 0.000000 3520.307063 0.000000 3520.307063 0
EDGE_SE3:QUAT 171 172 0.537243 -0.009158 -0.004910 0.017064 0.000440 -0.015740 0.999730 21494.472424 0.000000 0.000000 0.000000 0.000000 0.000000 21494.472424 0.000000 0.000000 0.000000 0.000000 21494.472424 0.000000 0.000000 0.000000 4165.015055 0.000000 0.000000 4165.015055 0.000000 4165.015055 0
EDGE_SE3:QUAT 172 173 0.525910 -0.003989 0.009233 0.010363 -0.026625 0.003217 0.999587 20933.004075 0.000000 0.000000 0.000000 0.000000 0.000000 20933.004075 0.000000 0.000000 0.000000 0.000000 20933.004075 0.000000 0.000000 0.000000 3400.980409 0.000000 0.000000 3400.980409 0.000000 3400.980409 0
EDGE_SE3:QUAT 173 174 0.530829 0.009423 -0.018834 -0.006887 0.009931 0.012384 0.999850 10012.990167 0.000000 0.000000 0.000000 0.000000 0.000000 10012.990167 0.000000 0.000000 0.000000 0.000000 10012.990167 0.000000 0.000000 0.000000 2008.981417 0.000000 0.000000 2008.981417 0.000000 2008.981417 0
EDGE_SE3:QUAT 174 175 0.525136 0.007794 0.002811 0.001779 -0.008922 0.013058 0.999873 17662.264897 0.000000 0.000000 0.000000 0.000000 0.000000 17662.264897 0.000000 0.000000 0.000000 0.000000 17662.264897 0.000000 0.000000 0.000000 2446.201313 0.000000 0.000000 2446.201313 0.000000 2446.201313 0
EDGE_SE3:QUAT 175 176 0.528312 0.025603 -0.005675 0.008988 -0.011864 0.038099 0.999163 28470.707066 0.000000 0.000000 0.000000 0.000000 0.000000 28470.707066 0.000000 0.000000 0.000000 0.000000 28470.707066 0.000000 0.000000 0.000000 3971.262987 0.000000 0.000000 3971.262987 0.000000 3971.262987 0
EDGE_SE3:QUAT 176 177 0.516963 0.005725 -0.022381 -0.020215 0.025415 0.010744 0.999415 17078.894005 0.000000 0.000000 0.000000 0.000000 0.000000 17078.894005 0.000000 0.000000 0.000000 0.000000 17078.894005 0.000000 0.000000 0.000000 2634.589807 0.000000 0.000000 2634.589807 0.000000 2634.589807 0
EDGE_SE3:QUAT 177 178 0.507100 0.001285 -0.003213 -0.003524 -0.005542 0.009287 0.999935 29161.067351 0.000000 0.000000 0.000000 0.000000 0.000000 29161.067351 0.000000 0.000000 0.000000 0.000000 29161.067351 0.000000 0.000000 0.000000 2688.902394 0.000000 0.000000 2688.902394 0.000000 2688.902394 0
EDGE_SE3:QUAT 178 179 0.521136 0.010089 0.005534 0.006883 -0.017273 0.015586 0.999706 11705.013582 0.000000 0.000000 0.000000 0.000000 0.000000 11705.013582 0.000000 0.000000 0.000000 0.000000 11705.013582 0.000000 0.000000 0.000000 1521.250114 0.000000 0.000000 1521.250114 0.000000 1521.250114 0
EDGE_SE3:QUAT 179 180 0.508455 0.006906 0.001334 -0.001054 -0.019030 -0.000420 0.999818 6433.052840 0.000000 0.000000 0.000000 0.000000 0.000000 6433.052840 0.000000 0.000000 0.000000 0.000000 6433.052840 0.000000 0.000000 0.000000 987.516196 0.000000 0.000000 987.516196 0.000000 987.516196 0
EDGE_SE3:QUAT 180 181 0.497793 0.009206 -0.030618 -0.001298 0.031627 0.013255 0.999411 4328.791263 0.000000 0.000000 0.000000 0.000000 0.000000 4328.791263 0.000000 0.000000 0.000000 0.000000 4328.791263 0.000000 0.000000 0.000000 780.441885 0.000000 0.000000 780.441885 0.000000 780.441885 0
EDGE_SE3:QUAT 181 182 0.484322 0.004115 -0.012308 -0.006716 0.012908 0.003870 0.999887 6347.735672 0.000000 0.000000 0.000000 0.000000 0.000000 6347.735672 0.000000 0.000000 0.000000 0.000000 6347.735672 0.000000 0.000000 0.000000 902.751105 0.000000 0.000000 902.751105 0.000000 902.751105 0
EDGE_SE3:QUAT 182 183 0.453844 0.015785 -0.006266 0.001955 -0.000431 0.029262 0.999570 6660.239378 0.000000 0.000000 0.000000 0.000000 0.000000 6660.239378 0.000000 0.000000 0.000000 0.000000 6660.239378 0.000000 0.000000 0.000000 719.851830 0.000000 0.000000 719.851830 0.000000 719.851830 0
EDGE_SE3:QUAT 183 184 0.486985 0.021779 -0.001129 0.001732 -0.002960 0.039910 0.999197 8965.393413 0.000000 0.000000 0.000000 0.000000 0.000000 8965.393413 0.000000 0.000000 0.000000 0.000000 8965.393413 0.000000 0.000000 0.000000 892.339297 0.000000 0.000000 892.339297 0.000000 892.339297 0
EDGE_SE3:QUAT 184 185 0.471780 0.027981 -0.000403 0.002979 -0.004511 0.050846 0.998692 10754.018182 0.000000 0.000000 0.000000 0.000000 0.000000 10754.018182 0.000000 0.000000 0.000000 0.000000 10754.018182 0.000000 0.000000 0.000000 776.366737 0.000000 0.000000 776.366737 0.000000 776.366737 0
EDGE_SE3:QUAT 185 186 0.443067 0.028392 -0.004161 -0.001820 0.004759 0.052577 0.998604 14232.136065 0.000000 0.000000 0.000000 0.000000 0.000000 14232.136065 0.000000 0.000000 0.000000 0.000000 14232.136065 0.000000 0.000000 0.000000 764.514010 0.000000 0.000000 764.514010 0.000000 764.514010 0
EDGE_SE3:QUAT 186 187 0.433396 0.014326 -0.005735 0.002097 0.006159 0.018838 0.999801 16161.382179 0.000000 0.000000 0.000000 0.000000 0.000000 16161.382179 0.000000 0.000000 0.000000 0.000000 16161.382179 0.000000 0.000000 0.000000 874.472366 0.000000 0.000000 874.472366 0.000000 874.472366 0
EDGE_SE3:QUAT 187 188 0.420760 0.006213 0.000694 -0.001686 -0.005124 -0.031510 0.999489 15279.602489 0.000000 0.000000 0.000000 0.000000 0.000000 15279.602489 0.000000 0.000000 0.000000 0.000000 15279.602489 0.000000 0.000000 0.000000 618.360505 0.000000 0.000000 618.360505 0.000000 618.360505 0
EDGE_SE3:QUAT 188 189 0.320390 -0.047271 -0.001717 -0.004300 0.000055 -0.196973 0.980399 13808.650404 0.000000 0.000000 0.000000 0.000000 0.000000 13808.650404 0.000000 0.000000 0.000000 0.000000 13808.650404 0.000000 0.000000 0.000000 753.188019 0.000000 0.000000 753.188019 0.000000 753.188019 0
EDGE_SE3:QUAT 189 190 0.274051 -0.046753 -0.000018 0.000473 0.001645 -0.144864 0.989450 21920.128741 0.000000 0.000000 0.000000 0.000000 0.000000 21920.128741 0.000000 0.000000 0.000000 0.000000 21920.128741 0.000000 0.000000 0.000000 976.605089 0.000000 0.000000 976.605089 0.000000 976.605089 0
EDGE_SE3:QUAT 190 191 0.219715 -0.000481 -0.001061 0.000168 -0.000391 -0.024004 0.999712 49151.969810 0.000000 0.000000 0.000000 0.000000 0.000000 49151.969810 0.000000 0.000000 0.000000 0.000000 49151.969810 0.000000 0.000000 0.000000 1420.647713 0.000000 0.000000 1420.647713 0.000000 1420.647713 0
EDGE_SE3:QUAT 191 193 0.060734 0.015225 0.000324 -0.002167 -0.001035 -0.423415 0.905933 28657.990807 0.000000 0.000000 0.000000 0.000000 0.000000 28657.990807 0.000000 0.000000 0.000000 0.000000 28657.990807 0.000000 0.000000 0.000000 1291.886913 0.000000 0.000000 1291.886913 0.000000 1291.886913 0
EDGE_SE3:QUAT 193 194 0.006636 0.013232 -0.001138 -0.004366 -0.004866 -0.403892 0.914783 12454.270926 0.000000 0.000000 0.000000 0.000000 0.000000 12454.270926 0.000000 0.000000 0.000000 0.000000 12454.270926 0.000000 0.000000 0.000000 1291.886913 0.000000 0.000000 1291.886913 0.000000 1291.886913 0
EDGE_SE3:QUAT 194 195 0.003386 0.011502 -0.000470 -0.005509 0.001044 -0.282677 0.959199 8761.252159 0.000000 0.000000 0.000000 0.000000 0.000000 8761.252159 0.000000 0.000000 0.000000 0.000000 8761.252159 0.000000 0.000000 0.000000 1351.688986 0.000000 0.000000 1351.688986 0.000000 1351.688986 0
EDGE_SE3:QUAT 195 197 -0.000813 0.140423 0.000801 0.000535 0.000244 0.018972 0.999820 13620.938592 0.000000 0.000000 0.000000 0.000000 0.000000 13620.938592 0.000000 0.000000 0.000000 0.000000 13620.938592 0.000000 0.000000 0.000000 1472.951229 0.000000 0.000000 1472.951229 0.000000 1472.951229 0
EDGE_SE3:QUAT 197 199 -0.244740 0.000002 0.001499 0.001640 -0.000016 0.016037 0.999870 6739.880917 0.000000 0.000000 0.000000 0.000000 0.000000 6739.880917 0.000000 0.000000 0.000000 0.000000 6739.880917 0.000000 0.000000 0.000000 1187.936121 0.000000 0.000000 1187.936121 0.000000 1187.936121 0
EDGE_SE3:QUAT 199 208 0.106836 0.002053 -0.000143 -0.000569 0.000898 -0.003270 0.999994 6223.243090 0.000000 0.000000 0.000000 0.000000 0.000000 6223.243090 0.000000 0.000000 0.000000 0.000000 6223.243090 0.000000 0.000000 0.000000 1129.740484 0.000000 0.000000 1129.740484 0.000000 1129.740484 0
EDGE_SE3:QUAT 208 209 0.146654 -0.001719 -0.000686 -0.000880 0.001305 -0.029957 0.999550 4938.579783 0.000000 0.000000 0.000000 0.000000 0.000000 4938.579783 0.000000 0.000000 0.000000 0.000000 4938.579783 0.000000 0.000000 0.000000 1038.338929 0.000000 0.000000 1038.338929 0.000000 1038.338929 0
EDGE_SE3:QUAT 208 529 0.023502 -0.067637 0.001016 0.000876 -0.002214 0.025120 0.999682 3041.156210 0.000000 0.000000 0.000000 0.000000 0.000000 3041.156210 0.000000 0.000000 0.000000 0.000000 3041.156210 0.000000 0.000000 0.000000 152.125011 0.000000 0.000000 152.125011 0.000000 152.125011 1
EDGE_SE3:QUAT 209 217 0.241524 0.012654 -0.000844 -0.001504 0.001506 0.014423 0.999894 6937.025555 0.000000 0.000000 0.000000 0.000000 0.000000 6937.025555 0.000000 0.000000 0.000000 0.000000 6937.025555 0.000000 0.000000 0.000000 1388.723314 0.000000 0.000000 1388.723314 0.000000 1388.723314 0
EDGE_SE3:QUAT 217 228 0.301945 0.003675 0.000190 -0.001229 0.001847 -0.000119 0.999998 3673.594764 0.000000 0.000000 0.000000 0.000000 0.000000 3673.594764 0.000000 0.000000 0.000000 0.000000 3673.594764 0.000000 0.000000 0.000000 1291.886913 0.000000 0.000000 1291.886913 0.000000 1291.886913 0
EDGE_SE3:QUAT 217 530 -0.064159 -0.048110 0.001300 0.001070 -0.002492 0.022412 0.999745 2813.932796 0.000000 0.000000 0.000000 0.000000 0.000000 2813.932796 0.000000 0.000000 0.000000 0.000000 2813.932796 0.000000 0.000000 0.000000 194.237967 0.000000 0.000000 194.237967 0.000000 194.237967 2
EDGE_SE3:QUAT 217 531 0.067771 -0.042439 0.000144 0.000541 -0.001228 0.013305 0.999911 3306.921018 0.000000 0.000000 0.000000 0.000000 0.000000 3306.921018 0.000000 0.000000 0.000000 0.000000 3306.921018 0.000000 0.000000 0.000000 164.678102 0.000000 0.000000 164.678102 0.000000 164.678102 1
EDGE_SE3:QUAT 228 229 0.262994 0.001915 -0.000985 0.000311 -0.002337 -0.004413 0.999987 7552.220440 0.000000 0.000000 0.000000 0.000000 0.000000 7552.220440 0.000000 0.000000 0.000000 0.000000 7552.220440 0.000000 0.000000 0.000000 1646.781021 0.000000 0.000000 1646.781021 0.000000 1646.781021 0
EDGE_SE3:QUAT 229 230 0.282875 -0.000027 0.001123 -0.002246 -0.006561 -0.008067 0.999943 9153.579049 0.000000 0.000000 0.000000 0.000000 0.000000 9153.579049 0.000000 0.000000 0.000000 0.000000 9153.579049 0.000000 0.000000 0.000000 1531.492864 0.000000 0.000000 1531.492864 0.000000 1531.492864 0
EDGE_SE3:QUAT 230 231 0.342331 0.000066 0.000294 0.001011 0.003252 -0.011210 0.999931 7137.110869 0.000000 0.000000 0.000000 0.000000 0.000000 7137.110869 0.000000 0.000000 0.000000 0.000000 7137.110869 0.000000 0.000000 0.000000 1844.727364 0.000000 0.000000 1844.727364 0.000000 1844.727364 0
EDGE_SE3:QUAT 231 232 0.390679 -0.001302 -0.004546 0.001231 0.002863 -0.021643 0.999761 11785.892631 0.000000 0.000000 0.000000 0.000000 0.000000 11785.892631 0.000000 0.000000 0.000000 0.000000 11785.892631 0.000000 0.000000 0.000000 1921.608920 0.000000 0.000000 1921.608920 0.000000 1921.608920 0
EDGE_SE3:QUAT 232 233 0.364664 -0.015360 0.000563 -0.001093 0.002520 -0.081567 0.996664 9966.688776 0.000000 0.000000 0.000000 0.000000 0.000000 9966.688776 0.000000 0.000000 0.000000 0.000000 9966.688776 0.000000 0.000000 0.000000 1844.727364 0.000000 0.000000 1844.727364 0.000000 1844.727364 0
EDGE_SE3:QUAT 233 234 0.331515 -0.048343 0.001474 -0.001315 -0.004656 -0.181060 0.983460 15929.932812 0.000000 0.000000 0.000000 0.000000 0.000000 15929.932812 0.000000 0.000000 0.000000 0.000000 15929.932812 0.000000 0.000000 0.000000 2365.994995 0.000000 0.000000 2365.994995 0.000000 2365.994995 0
EDGE_SE3:QUAT 234 235 0.392063 -0.021077 -0.000802 0.003368 0.002734 -0.059567 0.998215 11209.704762 0.000000 0.000000 0.000000 0.000000 0.000000 11209.704762 0.000000 0.000000 0.000000 0.000000 11209.704762 0.000000 0.000000 0.000000 1942.379665 0.000000 0.000000 1942.379665 0.000000 1942.379665 0
EDGE_SE3:QUAT 235 236 0.386353 -0.000723 0.001652 0.004556 -0.005736 -0.031652 0.999472 11268.129113 0.000000 0.000000 0.000000 0.000000 0.000000 11268.129113 0.000000 0.000000 0.000000 0.000000 11268.129113 0.000000 0.000000 0.000000 2109.470743 0.000000 0.000000 2109.470743 0.000000 2109.470743 0
EDGE_SE3:QUAT 236 237 0.394506 -0.001737 -0.007072 -0.001987 0.007986 -0.024463 0.999667 20166.296294 0.000000 0.000000 0.000000 0.000000 0.000000 20166.296294 0.000000 0.000000 0.000000 0.000000 20166.296294 0.000000 0.000000 0.000000 2634.589807 0.000000 0.000000 2634.589807 0.000000 2634.589807 0
EDGE_SE3:QUAT 237 238 0.435614 0.005898 0.006514 -0.013391 -0.007785 -0.015653 0.999758 9767.352380 0.000000 0.000000 0.000000 0.000000 0.000000 9767.352380 0.000000 0.000000 0.000000 0.000000 9767.352380 0.000000 0.000000 0.000000 2195.587815 0.000000 0.000000 2195.587815 0.000000 2195.587815 0
EDGE_SE3:QUAT 238 239 0.426737 0.006886 -0.018523 -0.002995 0.028959 -0.011775 0.999507 15300.132088 0.000000 0.000000 0.000000 0.000000 0.000000 15300.132088 0.000000 0.000000 0.000000 0.000000 15300.132088 0.000000 0.000000 0.000000 2259.226780 0.000000 0.000000 2259.226780 0.000000 2259.226780 0
EDGE_SE3:QUAT 239 240 0.418616 0.011304 0.002519 -0.010330 -0.001552 0.014250 0.999844 20512.802589 0.000000 0.000000 0.000000 0.000000 0.000000 20512.802589 0.000000 0.000000 0.000000 0.000000 20512.802589 0.000000 0.000000 0.000000 3104.748017 0.000000 0.000000 3104.748017 0.000000 3104.748017 0
EDGE_SE3:QUAT 240 241 0.451894 0.013851 0.003312 0.008208 -0.010937 -0.034324 0.999317 18074.477518 0.000000 0.000000 0.000000 0.000000 0.000000 18074.477518 0.000000 0.000000 0.000000 0.000000 18074.477518 0.000000 0.000000 0.000000 3104.748017 0.000000 0.000000 3104.748017 0.000000 3104.748017 0
EDGE_SE3:QUAT 241 242 0.418268 -0.065799 -0.000166 0.006830 -0.000931 -0.156270 0.987690 13759.141130 0.000000 0.000000 0.000000 0.000000 0.000000 13759.141130 0.000000 0.000000 0.000000 0.000000 13759.141130 0.000000 0.000000 0.000000 2583.441100 0.000000 0.000000 2583.441100 0.000000 2583.441100 0
EDGE_SE3:QUAT 242 243 0.423235 0.004973 0.005228 -0.002663 -0.008391 0.001307 0.999960 7993.206010 0.000000 0.000000 0.000000 0.000000 0.000000 7993.206010 0.000000 0.000000 0.000000 0.000000 7993.206010 0.000000 0.000000 0.000000 2365.994995 0.000000 0.000000 2365.994995 0.000000 2365.994995 0
EDGE_SE3:QUAT 243 244 0.395590 0.015182 0.002333 0.002661 -0.014181 0.033680 0.999328 7203.411650 0.000000 0.000000 0.000000 0.000000 0.000000 7203.411650 0.000000 0.000000 0.000000 0.000000 7203.411650 0.000000 0.000000 0.000000 2535.160439 0.000000 0.000000 2535.160439 0.000000 2535.160439 0
EDGE_SE3:QUAT 244 245 0.378729 -0.025563 -0.011421 -0.000890 0.018234 0.003793 0.999826 9305.186553 0.000000 0.000000 0.000000 0.000000 0.000000 9305.186553 0.000000 0.000000 0.000000 0.000000 9305.186553 0.000000 0.000000 0.000000 3293.020587 0.000000 0.000000 3293.020587 0.000000 3293.020587 0
EDGE_SE3:QUAT 245 246 0.403957 -0.037608 -0.001684 -0.008784 -0.001499 -0.000194 0.999960 16069.486002 0.000000 0.000000 0.000000 0.000000 0.000000 16069.486002 0.000000 0.000000 0.000000 0.000000 16069.486002 0.000000 0.000000 0.000000 4165.015055 0.000000 0.000000 4165.015055 0.000000 4165.015055 0
EDGE_SE3:QUAT 246 247 0.454574 -0.042826 -0.007344 0.015122 -0.001149 0.017312 0.999735 6563.184113 0.000000 0.000000 0.000000 0.000000 0.000000 6563.184113 0.000000 0.000000 0.000000 0.000000 6563.184113 0.000000 0.000000 0.000000 2489.489447 0.000000 0.000000 2489.489447 0.000000 2489.489447 0
EDGE_SE3:QUAT 247 248 0.433442 -0.041984 -0.006881 0.005628 -0.006384 0.037682 0.999254 15484.214227 0.000000 0.000000 0.000000 0.000000 0.000000 15484.214227 0.000000 0.000000 0.000000 0.000000 15484.214227 0.000000 0.000000 0.000000 3802.259062 0.000000 0.000000 3802.259062 0.000000 3802.259062 0
EDGE_SE3:QUAT 248 249 0.440679 -0.038400 0.003036 -0.000019 -0.001900 0.059139 0.998248 168.244315 0.000000 0.000000 0.000000 0.000000 0.000000 168.244315 0.000000 0.000000 0.000000 0.000000 168.244315 0.000000 0.000000 0.000000 840.026375 0.000000 0.000000 840.026375 0.000000 840.026375 0
EDGE_SE3:QUAT 249 250 0.421669 -0.064528 -0.007626 -0.006579 0.001434 0.042943 0.999055 10362.738004 0.000000 0.000000 0.000000 0.000000 0.000000 10362.738004 0.000000 0.000000 0.000000 0.000000 10362.738004 0.000000 0.000000 0.000000 3802.259062 0.000000 0.000000 3802.259062 0.000000 3802.259062 0
EDGE_SE3:QUAT 250 251 0.428445 -0.085388 -0.002029 -0.006141 -0.001619 0.068707 0.997617 13179.432510 0.000000 0.000000 0.000000 0.000000 0.000000 13179.432510 0.000000 0.000000 0.000000 0.000000 13179.432510 0.000000 0.000000 0.000000 5376.359507 0.000000 0.000000 5376.359507 0.000000 5376.359507 0
EDGE_SE3:QUAT 251 252 0.427005 -0.062745 -0.004089 0.010637 -0.003226 0.055135 0.998417 15400.075775 0.000000 0.000000 0.000000 0.000000 0.000000 15400.075775 0.000000 0.000000 0.000000 0.000000 15400.075775 0.000000 0.000000 0.000000 5376.359507 0.000000 0.000000 5376.359507 0.000000 5376.359507 0
EDGE_SE3:QUAT 252 253 0.353931 -0.073717 -0.006270 0.006624 0.014321 -0.004132 0.999867 17264.399460 0.000000 0.000000 0.000000 0.000000 0.000000 17264.399460 0.000000 0.000000 0.000000 0.000000 17264.399460 0.000000 0.000000 0.000000 6583.873645 0.000000 0.000000 6583.873645 0.000000 6583.873645 0
EDGE_SE3:QUAT 253 254 0.361163 -0.102774 -0.001302 -0.000445 0.005572 -0.081239 0.996679 14509.275414 0.000000 0.000000 0.000000 0.000000 0.000000 14509.275414 0.000000 0.000000 0.000000 0.000000 14509.275414 0.000000 0.000000 0.000000 5376.359507 0.000000 0.000000 5376.359507 0.000000 5376.359507 0
EDGE_SE3:QUAT 254 255 0.384333 -0.078522 0.007814 0.004878 -0.010467 -0.005072 0.999920 7891.892603 0.000000 0.000000 0.000000 0.000000 0.000000 7891.892603 0.000000 0.000000 0.000000 0.000000 7891.892603 0.000000 0.000000 0.000000 5376.359507 0.000000 0.000000 5376.359507 0.000000 5376.359507 0
EDGE_SE3:QUAT 255 256 0.410247 -0.060110 0.001470 0.000877 -0.014385 0.026966 0.999532 11369.641785 0.000000 0.000000 0.000000 0.000000 0.000000 11369.641785 0.000000 0.000000 0.000000 0.000000 11369.641785 0.000000 0.000000 0.000000 6583.873645 0.000000 0.000000 6583.873645 0.000000 6583.873645 0
EDGE_SE3:QUAT 256 257 0.373090 -0.080097 -0.006744 0.004493 0.002641 0.002182 0.999984 21040.723524 0.000000 0.000000 0.000000 0.000000 0.000000 21040.723524 0.000000 0.000000 0.000000 0.000000 21040.723524 0.000000 0.000000 0.000000 7601.627788 0.000000 0.000000 7601.627788 0.000000 7601.627788 0
EDGE_SE3:QUAT 257 258 0.372026 -0.106360 0.001915 -0.002649 0.007006 -0.003101 0.999967 14387.153832 0.000000 0.000000 0.000000 0.000000 0.000000 14387.153832 0.000000 0.000000 0.000000 0.000000 14387.153832 0.000000 0.000000 0.000000 5889.204784 0.000000 0.000000 5889.204784 0.000000 5889.204784 0
EDGE_SE3:QUAT 258 259 0.366918 -0.124747 -0.007688 0.001062 -0.004691 0.002648 0.999985 7056.119743 0.000000 0.000000 0.000000 0.000000 0.000000 7056.119743 0.000000 0.000000 0.000000 0.000000 7056.119743 0.000000 0.000000 0.000000 5376.359507 0.000000 0.000000 5376.359507 0.000000 5376.359507 0
EDGE_SE3:QUAT 259 260 0.358029 -0.145256 0.003207 -0.003782 -0.004102 -0.008044 0.999952 9908.356120 0.000000 0.000000 0.000000 0.000000 0.000000 9908.356120 0.000000 0.000000 0.000000 0.000000 9908.356120 0.000000 0.000000 0.000000 6583.873645 0.000000 0.000000 6583.873645 0.000000 6583.873645 0
EDGE_SE3:QUAT 260 261 0.397313 -0.161338 -0.008357 0.002152 -0.006536 0.011026 0.999916 158.628362 0.000000 0.000000 0.000000 0.000000 0.000000 158.628362 0.000000 0.000000 0.000000 0.000000 158.628362 0.000000 0.000000 0.000000 1324.104304 0.000000 0.000000 1324.104304 0.000000 1324.104304 0
EDGE_SE3:QUAT 261 262 0.398245 -0.134311 -0.010417 0.001237 0.010681 0.078956 0.996820 10719.329001 0.000000 0.000000 0.000000 0.000000 0.000000 10719.329001 0.000000 0.000000 0.000000 0.000000 10719.329001 0.000000 0.000000 0.000000 6583.873645 0.000000 0.000000 6583.873645 0.000000 6583.873645 0
EDGE_SE3:QUAT 262 263 0.369444 -0.161973 -0.000168 -0.002123 -0.003321 0.008304 0.999958 14103.225190 0.000000 0.000000 0.000000 0.000000 0.000000 14103.225190 0.000000 0.000000 0.000000 0.000000 14103.225190 0.000000 0.000000 0.000000 7601.627788 0.000000 0.000000 7601.627788 0.000000 7601.627788 0
EDGE_SE3:QUAT 263 264 0.370834 -0.165443 -0.000557 -0.002343 -0.002001 0.005709 0.999979 17253.543366 0.000000 0.000000 0.000000 0.000000 0.000000 17253.543366 0.000000 0.000000 0.000000 0.000000 17253.543366 0.000000 0.000000 0.000000 7601.627788 0.000000 0.000000 7601.627788 0.000000 7601.627788 0
EDGE_SE3:QUAT 264 265 0.274001 -0.111071 -0.001895 0.001823 -0.002824 0.063025 0.998006 15622.179320 0.000000 0.000000 0.000000 0.000000 0.000000 15622.179320 0.000000 0.000000 0.000000 0.000000 15622.179320 0.000000 0.000000 0.000000 9308.464703 0.000000 0.000000 9308.464703 0.000000 9308.464703 0
EDGE_SE3:QUAT 265 266 0.000402 -0.002898 0.000610 0.001356 0.000278 0.061873 0.998083 23225.715614 0.000000 0.000000 0.000000 0.000000 0.000000 23225.715614 0.000000 0.000000 0.000000 0.000000 23225.715614 0.000000 0.000000 0.000000 9308.464703 0.000000 0.000000 9308.464703 0.000000 9308.464703 0
EDGE_SE3:QUAT 266 267 -0.000201 -0.010573 0.005669 -0.004362 0.002509 0.257764 0.966195 13258.951068 0.000000 0.000000 0.000000 0.000000 0.000000 13258.951068 0.000000 0.000000 0.000000 0.000000 13258.951068 0.000000 0.000000 0.000000 4656.399548 0.000000 0.000000 4656.399548 0.000000 4656.399548 0
EDGE_SE3:QUAT 267 269 0.398816 0.003450 -0.004593 0.000513 -0.001058 -0.025486 0.999674 3813.351673 0.000000 0.000000 0.000000 0.000000 0.000000 3813.351673 0.000000 0.000000 0.000000 0.000000 3813.351673 0.000000 0.000000 0.000000 2688.902394 0.000000 0.000000 2688.902394 0.000000 2688.902394 0
EDGE_SE3:QUAT 269 270 0.407389 -0.023527 -0.002635 0.006741 0.000496 -0.069426 0.997564 7587.666752 0.000000 0.000000 0.000000 0.000000 0.000000 7587.666752 0.000000 0.000000 0.000000 0.000000 7587.666752 0.000000 0.000000 0.000000 3802.259062 0.000000 0.000000 3802.259062 0.000000 3802.259062 0
EDGE_SE3:QUAT 270 271 0.420880 0.000160 0.000554 0.009655 -0.005990 -0.017890 0.999775 5560.467982 0.000000 0.000000 0.000000 0.000000 0.000000 5560.467982 0.000000 0.000000 0.000000 0.000000 5560.467982 0.000000 0.000000 0.000000 4656.399548 0.000000 0.000000 4656.399548 0.000000 4656.399548 0
EDGE_SE3:QUAT 271 272 0.441924 -0.001944 0.002515 0.000303 -0.019053 -0.016626 0.999680 9748.213977 0.000000 0.000000 0.000000 0.000000 0.000000 9748.213977 0.000000 0.000000 0.000000 0.000000 9748.213977 0.000000 0.000000 0.000000 6583.873645 0.000000 0.000000 6583.873645 0.000000 6583.873645 0
EDGE_SE3:QUAT 272 273 0.473968 -0.001788 -0.006112 -0.010722 0.008970 -0.018492 0.999731 5479.317355 0.000000 0.000000 0.000000 0.000000 0.000000 5479.317355 0.000000 0.000000 0.000000 0.000000 5479.317355 0.000000 0.000000 0.000000 4656.399548 0.000000 0.000000 4656.399548 0.000000 4656.399548 0
EDGE_SE3:QUAT 273 274 0.480667 -0.000813 -0.008648 0.010023 0.005890 -0.007139 0.999907 9025.184314 0.000000 0.000000 0.000000 0.000000 0.000000 9025.184314 0.000000 0.000000 0.000000 0.000000 9025.184314 0.000000 0.000000 0.000000 6583.873645 0.000000 0.000000 6583.873645 0.000000 6583.873645 0
EDGE_SE3:QUAT 274 275 0.495479 -0.003160 -0.009757 -0.005391 0.006375 -0.016210 0.999834 12458.679201 0.000000 0.000000 0.000000 0.000000 0.000000 12458.679201 0.000000 0.000000 0.000000 0.000000 12458.679201 0.000000 0.000000 0.000000 6583.873645 0.000000 0.000000 6583.873645 0.000000 6583.873645 0
EDGE_SE3:QUAT 275 276 0.490875 0.005146 0.003570 -0.004821 -0.030911 -0.013023 0.999426 13045.457957 0.000000 0.000000 0.000000 0.000000 0.000000 13045.457957 0.000000 0.000000 0.000000 0.000000 13045.457957 0.000000 0.000000 0.000000 6583.873645 0.000000 0.000000 6583.873645 0.000000 6583.873645 0
EDGE_SE3:QUAT 276 277 0.487095 0.004108 -0.020686 0.002175 0.017422 -0.013687 0.999752 10724.140768 0.000000 0.000000 0.000000 0.000000 0.000000 10724.140768 0.000000 0.000000 0.000000 0.000000 10724.140768 0.000000 0.000000 0.000000 6583.873645 0.000000 0.000000 6583.873645 0.000000 6583.873645 0
EDGE_SE3:QUAT 277 278 0.455198 0.002306 -0.002905 -0.007635 -0.006773 -0.015501 0.999828 14772.706442 0.000000 0.000000 0.000000 0.000000 0.000000 14772.706442 0.000000 0.000000 0.000000 0.000000 14772.706442 0.000000 0.000000 0.000000 9308.464703 0.000000 0.000000 9308.464703 0.000000 9308.464703 0
EDGE_SE3:QUAT 278 279 0.461880 0.005121 -0.003794 0.002044 -0.008454 -0.015859 0.999836 10447.470844 0.000000 0.000000 0.000000 0.000000 0.000000 10447.470844 0.000000 0.000000 0.000000 0.000000 10447.470844 0.000000 0.000000 0.000000 9308.464703 0.000000 0.000000 9308.464703 0.000000 9308.464703 0
EDGE_SE3:QUAT 279 280 0.434351 -0.000553 0.000241 0.004875 0.005786 -0.012500 0.999893 7261.148231 0.000000 0.000000 0.000000 0.000000 0.000000 7261.148231 0.000000 0.000000 0.000000 0.000000 7261.148231 0.000000 0.000000 0.000000 9308.464703 0.000000 0.000000 9308.464703 0.000000 9308.464703 0
EDGE_SE3:QUAT 280 281 0.436460 0.004583 -0.008536 0.001315 0.010807 0.013393 0.999851 5008.660014 0.000000 0.000000 0.000000 0.000000 0.000000 5008.660014 0.000000 0.000000 0.000000 0.000000 5008.660014 0.000000 0.000000 0.000000 9308.464703 0.000000 0.000000 9308.464703 0.000000 9308.464703 0
EDGE_SE3:QUAT 281 282 0.463425 0.033818 -0.002353 0.004151 -0.010101 0.066051 0.997757 12087.130766 0.000000 0.000000 0.000000 0.000000 0.000000 12087.130766 0.000000 0.000000 0.000000 0.000000 12087.130766 0.000000 0.000000 0.000000 9308.464703 0.000000 0.000000 9308.464703 0.000000 9308.464703 0
EDGE_SE3:QUAT 282 283 0.460829 0.025128 -0.008485 -0.013035 -0.002871 0.055688 0.998359 9900.948048 0.000000 0.000000 0.000000 0.000000 0.000000 9900.948048 0.000000 0.000000 0.000000 0.000000 9900.948048 0.000000 0.000000 0.000000 9308.464703 0.000000 0.000000 9308.464703 0.000000 9308.464703 0
EDGE_SE3:QUAT 283 284 0.461115 0.018478 -0.004030 -0.000335 0.002830 0.030022 0.999545 16026.310849 0.000000 0.000000 0.000000 0.000000 0.000000 16026.310849 0.000000 0.000000 0.000000 0.000000 16026.310849 0.000000 0.000000 0.000000 9308.464703 0.000000 0.000000 9308.464703 0.000000 9308.464703 0
EDGE_SE3:QUAT 284 285 0.412275 0.008946 -0.004681 -0.000356 0.005324 0.010406 0.999932 19236.027951 0.000000 0.000000 0.000000 0.000000 0.000000 19236.027951 0.000000 0.000000 0.000000 0.000000 19236.027951 0.000000 0.000000 0.000000 9308.464703 0.000000 0.000000 9308.464703 0.000000 9308.464703 0
EDGE_SE3:QUAT 285 286 0.112803 0.002130 0.001291 -0.002609 0.001240 0.004296 0.999987 24352.816512 0.000000 0.000000 0.000000 0.000000 0.000000 24352.816512 0.000000 0.000000 0.000000 0.000000 24352.816512 0.000000 0.000000 0.000000 9308.464703 0.000000 0.000000 9308.464703 0.000000 9308.464703 0
EDGE_SE3:QUAT 286 287 -0.004532 0.009336 0.000806 0.004897 0.000320 -0.156760 0.987625 21208.195079 0.000000 0.000000 0.000000 0.000000 0.000000 21208.195079 0.000000 0.000000 0.000000 0.000000 21208.195079 0.000000 0.000000 0.000000 9308.464703 0.000000 0.000000 9308.464703 0.000000 9308.464703 0
EDGE_SE3:QUAT 287 288 0.003922 0.012016 0.001141 -0.008675 -0.005426 -0.414299 0.910084 28193.127793 0.000000 0.000000 0.000000 0.000000 0.000000 28193.127793 0.000000 0.000000 0.000000 0.000000 28193.127793 0.000000 0.000000 0.000000 10000000.000000 0.000000 0.000000 10000000.000000 0.000000 10000000.000000 0
EDGE_SE3:QUAT 288 289 0.002932 0.013696 -0.001012 -0.002030 0.004213 -0.398353 0.917220 14819.786037 0.000000 0.000000 0.000000 0.000000 0.000000 14819.786037 0.000000 0.000000 0.000000 0.000000 14819.786037 0.000000 0.000000 0.000000 7601.627788 0.000000 0.000000 7601.627788 0.000000 7601.627788 0
EDGE_SE3:QUAT 289 290 0.005065 0.011824 0.003636 -0.001461 -0.005997 -0.370777 0.928702 14052.164810 0.000000 0.000000 0.000000 0.000000 0.000000 14052.164810 0.000000 0.000000 0.000000 0.000000 14052.164810 0.000000 0.000000 0.000000 5376.359507 0.000000 0.000000 5376.359507 0.000000 5376.359507 0
EDGE_SE3:QUAT 290 291 0.003162 0.010603 -0.001148 -0.007339 -0.000693 -0.365555 0.930761 11881.094076 0.000000 0.000000 0.000000 0.000000 0.000000 11881.094076 0.000000 0.000000 0.000000 0.000000 11881.094076 0.000000 0.000000 0.000000 4656.399548 0.000000 0.000000 4656.399548 0.000000 4656.399548 0
EDGE_SE3:QUAT 291 292 0.005489 0.012601 0.001740 -0.010901 -0.000991 -0.333922 0.942537 23608.864737 0.000000 0.000000 0.000000 0.000000 0.000000 23608.864737 0.000000 0.000000 0.000000 0.000000 23608.864737 0.000000 0.000000 0.000000 9308.464703 0.000000 0.000000 9308.464703 0.000000 9308.464703 0
EDGE_SE3:QUAT 292 293 0.002449 0.012925 -0.001264 0.006223 0.007229 -0.365697 0.930685 32718.225914 0.000000 0.000000 0.000000 0.000000 0.000000 32718.225914 0.000000 0.000000 0.000000 0.000000 32718.225914 0.000000 0.000000 0.000000 9308.464703 0.000000 0.000000 9308.464703 0.000000 9308.464703 0
EDGE_SE3:QUAT 293 294 0.001941 0.012648 0.000910 -0.000278 -0.003464 -0.254099 0.967172 19214.712794 0.000000 0.000000 0.000000 0.000000 0.000000 19214.712794 0.000000 0.000000 0.000000 0.000000 19214.712794 0.000000 0.000000 0.000000 6583.873645 0.000000 0.000000 6583.873645 0.000000 6583.873645 0
EDGE_SE3:QUAT 294 296 0.410338 0.006674 0.002502 -0.004230 -0.003541 0.001316 0.999984 15401.509664 0.000000 0.000000 0.000000 0.000000 0.000000 15401.509664 0.000000 0.000000 0.000000 0.000000 15401.509664 0.000000 0.000000 0.000000 5889.204784 0.000000 0.000000 5889.204784 0.000000 5889.204784 0
EDGE_SE3:QUAT 296 297 0.431969 0.005703 0.007767 -0.000920 -0.019442 -0.003821 0.999803 5442.000144 0.000000 0.000000 0.000000 0.000000 0.000000 5442.000144 0.000000 0.000000 0.000000 0.000000 5442.000144 0.000000 0.000000 0.000000 3802.259062 0.000000 0.000000 3802.259062 0.000000 3802.259062 0
EDGE_SE3:QUAT 297 298 0.433597 -0.017754 -0.005448 -0.005482 0.002617 -0.081174 0.996681 11591.436563 0.000000 0.000000 0.000000 0.000000 0.000000 11591.436563 0.000000 0.000000 0.000000 0.000000 11591.436563 0.000000 0.000000 0.000000 5376.359507 0.000000 0.000000 5376.359507 0.000000 5376.359507 0
EDGE_SE3:QUAT 298 299 0.406242 -0.017191 -0.004025 -0.003584 -0.003994 -0.052262 0.998619 12687.005808 0.000000 0.000000 0.000000 0.000000 0.000000 12687.005808 0.000000 0.000000 0.000000 0.000000 12687.005808 0.000000 0.000000 0.000000 5889.204784 0.000000 0.000000 5889.204784 0.000000 5889.204784 0
EDGE_SE3:QUAT 299 300 0.401804 0.010027 -0.005182 -0.001614 0.005157 -0.005961 0.999968 14070.237121 0.000000 0.000000 0.000000 0.000000 0.000000 14070.237121 0.000000 0.000000 0.000000 0.000000 14070.237121 0.000000 0.000000 0.000000 7601.627788 0.000000 0.000000 7601.627788 0.000000 7601.627788 0
EDGE_SE3:QUAT 300 301 0.452489 0.004007 -0.007230 0.006196 -0.002067 -0.009938 0.999929 11924.464434 0.000000 0.000000 0.000000 0.000000 0.000000 11924.464434 0.000000 0.000000 0.000000 0.000000 11924.464434 0.000000 0.000000 0.000000 6583.873645 0.000000 0.000000 6583.873645 0.000000 6583.873645 0
EDGE_SE3:QUAT 301 302 0.510836 0.007912 -0.008397 -0.012679 0.009657 -0.011690 0.999805 19724.977959 0.000000 0.000000 0.000000 0.000000 0.000000 19724.977959 0.000000 0.000000 0.000000 0.000000 19724.977959 0.000000 0.000000 0.000000 9308.464703 0.000000 0.000000 9308.464703 0.000000 9308.464703 0
EDGE_SE3:QUAT 302 303 0.508672 0.007696 -0.002238 -0.006568 -0.016496 -0.010798 0.999784 19838.843918 0.000000 0.000000 0.000000 0.000000 0.000000 19838.843918 0.000000 0.000000 0.000000 0.000000 19838.843918 0.000000 0.000000 0.000000 9308.464703 0.000000 0.000000 9308.464703 0.000000 9308.464703 0
EDGE_SE3:QUAT 303 304 0.496308 0.013718 -0.010970 0.016067 -0.021621 -0.007580 0.999608 8646.474361 0.000000 0.000000 0.000000 0.000000 0.000000 8646.474361 0.000000 0.000000 0.000000 0.000000 8646.474361 0.000000 0.000000 0.000000 5889.204784 0.000000 0.000000 5889.204784 0.000000 5889.204784 0
EDGE_SE3:QUAT 304 305 0.485135 -0.027153 -0.021371 -0.017771 0.025293 -0.090335 0.995432 25072.584087 0.000000 0.000000 0.000000 0.000000 0.000000 25072.584087 0.000000 0.000000 0.000000 0.000000 25072.584087 0.000000 0.000000 0.000000 9308.464703 0.000000 0.000000 9308.464703 0.000000 9308.464703 0
EDGE_SE3:QUAT 305 306 0.477482 -0.027262 -0.005511 0.000262 -0.014480 -0.062076 0.997966 15964.534273 0.000000 0.000000 0.000000 0.000000 0.000000 15964.534273 0.000000 0.000000 0.000000 0.000000 15964.534273 0.000000 0.000000 0.000000 9308.464703 0.000000 0.000000 9308.464703 0.000000 9308.464703 0
EDGE_SE3:QUAT 306 307 0.491442 0.007993 -0.025445 -0.006300 0.024773 -0.007752 0.999643 19066.164516 0.000000 0.000000 0.000000 0.000000 0.000000 19066.164516 0.000000 0.000000 0.000000 0.000000 19066.164516 0.000000 0.000000 0.000000 9308.464703 0.000000 0.000000 9308.464703 0.000000 9308.464703 0
EDGE_SE3:QUAT 307 308 0.506733 0.005064 0.002622 0.022627 -0.027807 -0.018195 0.999192 17979.693682 0.000000 0.000000 0.000000 0.000000 0.000000 17979.693682 0.000000 0.000000 0.000000 0.000000 17979.693682 0.000000 0.000000 0.000000 13159.083516 0.000000 0.000000 13159.083516 0.000000 13159.083516 0
EDGE_SE3:QUAT 308 309 0.512785 0.001299 -0.009473 -0.003467 0.008002 -0.012729 0.999881 17040.783603 0.000000 0.000000 0.000000 0.000000 0.000000 17040.783603 0.000000 0.000000 0.000000 0.000000 17040.783603 0.000000 0.000000 0.000000 13159.083516 0.000000 0.000000 13159.083516 0.000000 13159.083516 0
EDGE_SE3:QUAT 309 310 0.502348 0.003019 -0.005663 -0.008236 0.005453 -0.020069 0.999750 23532.814694 0.000000 0.000000 0.000000 0.000000 0.000000 23532.814694 0.000000 0.000000 0.000000 0.000000 23532.814694 0.000000 0.000000 0.000000 13159.083516 0.000000 0.000000 13159.083516 0.000000 13159.083516 0
EDGE_SE3:QUAT 310 311 0.496429 0.003813 -0.006835 0.010943 -0.007048 -0.021182 0.999691 30819.220728 0.000000 0.000000 0.000000 0.000000 0.000000 30819.220728 0.000000 0.000000 0.000000 0.000000 30819.220728 0.000000 0.000000 0.000000 13159.083516 0.000000 0.000000 13159.083516 0.000000 13159.083516 0
EDGE_SE3:QUAT 311 312 0.505560 0.003633 -0.009167 -0.000947 -0.001299 -0.015889 0.999873 27747.234485 0.000000 0.000000 0.000000 0.000000 0.000000 27747.234485 0.000000 0.000000 0.000000 0.000000 27747.234485 0.000000 0.000000 0.000000 13159.083516 0.000000 0.000000 13159.083516 0.000000 13159.083516 0
EDGE_SE3:QUAT 312 313 0.510777 -0.000062 0.002085 -0.003658 -0.011694 -0.019579 0.999733 16731.327129 0.000000 0.000000 0.000000 0.000000 0.000000 16731.327129 0.000000 0.000000 0.000000 0.000000 16731.327129 0.000000 0.000000 0.000000 13159.083516 0.000000 0.000000 13159.083516 0.000000 13159.083516 0
EDGE_SE3:QUAT 313 314 0.521488 0.022979 -0.001138 0.005386 -0.012008 0.055944 0.998347 10881.901655 0.000000 0.000000 0.000000 0.000000 0.000000 10881.901655 0.000000 0.000000 0.000000 0.000000 10881.901655 0.000000 0.000000 0.000000 9308.464703 0.000000 0.000000 9308.464703 0.000000 9308.464703 0
EDGE_SE3:QUAT 314 315 0.521984 0.050214 -0.020099 0.019332 0.002080 0.052090 0.998453 15707.752450 0.000000 0.000000 0.000000 0.000000 0.000000 15707.752450 0.000000 0.000000 0.000000 0.000000 15707.752450 0.000000 0.000000 0.000000 9308.464703 0.000000 0.000000 9308.464703 0.000000 9308.464703 0
EDGE_SE3:QUAT 315 316 0.510986 0.017839 -0.018057 -0.013500 0.011732 0.024785 0.999533 20256.281464 0.000000 0.000000 0.000000 0.000000 0.000000 20256.281464 0.000000 0.000000 0.000000 0.000000 20256.281464 0.000000 0.000000 0.000000 13159.083516 0.000000 0.000000 13159.083516 0.000000 13159.083516 0
EDGE_SE3:QUAT 316 317 0.505527 0.013733 -0.016970 0.002987 0.013533 0.011364 0.999839 14621.350986 0.000000 0.000000 0.000000 0.000000 0.000000 14621.350986 0.000000 0.000000 0.000000 0.000000 14621.350986 0.000000 0.000000 0.000000 13159.083516 0.000000 0.000000 13159.083516 0.000000 13159.083516 0
EDGE_SE3:QUAT 317 318 0.494368 0.027748 -0.006607 0.008709 -0.006187 0.032058 0.999429 18486.393387 0.000000 0.000000 0.000000 0.000000 0.000000 18486.393387 0.000000 0.000000 0.000000 0.000000 18486.393387 0.000000 0.000000 0.000000 9308.464703 0.000000 0.000000 9308.464703 0.000000 9308.464703 0
EDGE_SE3:QUAT 318 319 0.513554 -0.034649 -0.012545 -0.015465 0.013961 -0.132170 0.991008 5098.822157 0.000000 0.000000 0.000000 0.000000 0.000000 5098.822157 0.000000 0.000000 0.000000 0.000000 5098.822157 0.000000 0.000000 0.000000 7601.627788 0.000000 0.000000 7601.627788 0.000000 7601.627788 0
EDGE_SE3:QUAT 319 320 0.461720 -0.045732 0.005888 0.006329 -0.032750 -0.114121 0.992907 5675.912163 0.000000 0.000000 0.000000 0.000000 0.000000 5675.912163 0.000000 0.000000 0.000000 0.000000 5675.912163 0.000000 0.000000 0.000000 9308.464703 0.000000 0.000000 9308.464703 0.000000 9308.464703 0
EDGE_SE3:QUAT 320 321 0.429777 0.034008 -0.026832 -0.004356 0.033278 0.075153 0.996607 2497.464279 0.000000 0.000000 0.000000 0.000000 0.000000 2497.464279 0.000000 0.000000 0.000000 0.000000 2497.464279 0.000000 0.000000 0.000000 6583.873645 0.000000 0.000000 6583.873645 0.000000 6583.873645 0
EDGE_SE3:QUAT 321 322 0.259209 0.011359 -0.004707 -0.006038 0.010831 0.042248 0.999030 6925.221635 0.000000 0.000000 0.000000 0.000000 0.000000 6925.221635 0.000000 0.000000 0.000000 0.000000 6925.221635 0.000000 0.000000 0.000000 9308.464703 0.000000 0.000000 9308.464703 0.000000 9308.464703 0
EDGE_SE3:QUAT 322 324 0.016014 0.014391 -0.005041 0.003326 0.001593 -0.310826 0.950460 6763.874628 0.000000 0.000000 0.000000 0.000000 0.000000 6763.874628 0.000000 0.000000 0.000000 0.000000 6763.874628 0.000000 0.000000 0.000000 9308.464703 0.000000 0.000000 9308.464703 0.000000 9308.464703 0
EDGE_SE3:QUAT 324 325 0.000244 0.011417 0.001063 -0.013727 -0.006419 -0.355064 0.934719 23466.655397 0.000000 0.000000 0.000000 0.000000 0.000000 23466.655397 0.000000 0.000000 0.000000 0.000000 23466.655397 0.000000 0.000000 0.000000 13159.083516 0.000000 0.000000 13159.083516 0.000000 13159.083516 0
EDGE_SE3:QUAT 325 326 0.007002 0.009308 -0.003967 0.000190 0.010881 -0.368646 0.929506 5892.481500 0.000000 0.000000 0.000000 0.000000 0.000000 5892.481500 0.000000 0.000000 0.000000 0.000000 5892.481500 0.000000 0.000000 0.000000 5376.359507 0.000000 0.000000 5376.359507 0.000000 5376.359507 0
EDGE_SE3:QUAT 326 327 0.007783 0.010256 -0.001451 0.002282 -0.015731 -0.366728 0.930193 7190.487460 0.000000 0.000000 0.000000 0.000000 0.000000 7190.487460 0.000000 0.000000 0.000000 0.000000 7190.487460 0.000000 0.000000 0.000000 5376.359507 0.000000 0.000000 5376.359507 0.000000 5376.359507 0
EDGE_SE3:QUAT 327 328 0.008461 0.010824 0.001939 -0.014656 0.006718 -0.361551 0.932213 22133.527783 0.000000 0.000000 0.000000 0.000000 0.000000 22133.527783 0.000000 0.000000 0.000000 0.000000 22133.527783 0.000000 0.000000 0.000000 13159.083516 0.000000 0.000000 13159.083516 0.000000 13159.083516 0
EDGE_SE3:QUAT 328 329 0.004112 0.017178 -0.000546 0.008253 0.000284 -0.376628 0.926328 12321.889195 0.000000 0.000000 0.000000 0.000000 0.000000 12321.889195 0.000000 0.000000 0.000000 0.000000 12321.889195 0.000000 0.000000 0.000000 9308.464703 0.000000 0.000000 9308.464703 0.000000 9308.464703 0
EDGE_SE3:QUAT 329 330 0.001825 0.007004 0.005044 -0.009321 -0.004666 -0.208104 0.978051 12920.667798 0.000000 0.000000 0.000000 0.000000 0.000000 12920.667798 0.000000 0.000000 0.000000 0.000000 12920.667798 0.000000 0.000000 0.000000 7601.627788 0.000000 0.000000 7601.627788 0.000000 7601.627788 0
EDGE_SE3:QUAT 330 332 0.453449 0.041929 0.010372 -0.004561 -0.036408 0.056196 0.997745 4726.725258 0.000000 0.000000 0.000000 0.000000 0.000000 4726.725258 0.000000 0.000000 0.000000 0.000000 4726.725258 0.000000 0.000000 0.000000 4390.212214 0.000000 0.000000 4390.212214 0.000000 4390.212214 0
EDGE_SE3:QUAT 332 333 0.421517 0.015583 -0.020229 0.010238 0.033621 0.013802 0.999287 1503.094791 0.000000 0.000000 0.000000 0.000000 0.000000 1503.094791 0.000000 0.000000 0.000000 0.000000 1503.094791 0.000000 0.000000 0.000000 2535.160439 0.000000 0.000000 2535.160439 0.000000 2535.160439 0
EDGE_SE3:QUAT 333 334 0.449649 0.005442 -0.006732 0.006465 0.015013 0.001271 0.999866 2746.396536 0.000000 0.000000 0.000000 0.000000 0.000000 2746.396536 0.000000 0.000000 0.000000 0.000000 2746.396536 0.000000 0.000000 0.000000 3653.146618 0.000000 0.000000 3653.146618 0.000000 3653.146618 0
EDGE_SE3:QUAT 334 335 0.468474 -0.017273 -0.028579 -0.001909 0.059564 -0.061411 0.996332 6119.146122 0.000000 0.000000 0.000000 0.000000 0.000000 6119.146122 0.000000 0.000000 0.000000 0.000000 6119.146122 0.000000 0.000000 0.000000 5376.359507 0.000000 0.000000 5376.359507 0.000000 5376.359507 0
EDGE_SE3:QUAT 335 336 0.443317 -0.049370 0.000265 0.007645 -0.003431 -0.144081 0.989530 22219.479562 0.000000 0.000000 0.000000 0.000000 0.000000 22219.479562 0.000000 0.000000 0.000000 0.000000 22219.479562 0.000000 0.000000 0.000000 9308.464703 0.000000 0.000000 9308.464703 0.000000 9308.464703 0
EDGE_SE3:QUAT 336 337 0.402801 -0.046085 0.024398 0.001761 -0.068798 -0.147135 0.986719 17496.585984 0.000000 0.000000 0.000000 0.000000 0.000000 17496.585984 0.000000 0.000000 0.000000 0.000000 17496.585984 0.000000 0.000000 0.000000 9308.464703 0.000000 0.000000 9308.464703 0.000000 9308.464703 0
EDGE_SE3:QUAT 337 338 0.474182 0.001112 -0.012432 0.001467 -0.004908 -0.035542 0.999355 6379.663243 0.000000 0.000000 0.000000 0.000000 0.000000 6379.663243 0.000000 0.000000 0.000000 0.000000 6379.663243 0.000000 0.000000 0.000000 7601.627788 0.000000 0.000000 7601.627788 0.000000 7601.627788 0
EDGE_SE3:QUAT 338 339 0.480690 0.012844 -0.005920 0.007123 0.005080 -0.010515 0.999906 9823.121258 0.000000 0.000000 0.000000 0.000000 0.000000 9823.121258 0.000000 0.000000 0.000000 0.000000 9823.121258 0.000000 0.000000 0.000000 9308.464703 0.000000 0.000000 9308.464703 0.000000 9308.464703 0
EDGE_SE3:QUAT 339 340 0.493405 0.005207 0.000712 0.001541 -0.007404 -0.013435 0.999881 11199.742418 0.000000 0.000000 0.000000 0.000000 0.000000 11199.742418 0.000000 0.000000 0.000000 0.000000 11199.742418 0.000000 0.000000 0.000000 9308.464703 0.000000 0.000000 9308.464703 0.000000 9308.464703 0
EDGE_SE3:QUAT 340 341 0.500572 0.011086 -0.014911 0.002643 0.017344 -0.005602 0.999830 26434.175235 0.000000 0.000000 0.000000 0.000000 0.000000 26434.175235 0.000000 0.000000 0.000000 0.000000 26434.175235 0.000000 0.000000 0.000000 13159.083516 0.000000 0.000000 13159.083516 0.000000 13159.083516 0
EDGE_SE3:QUAT 341 342 0.508600 0.004599 0.014433 0.015692 -0.039578 -0.019578 0.998901 22513.107013 0.000000 0.000000 0.000000 0.000000 0.000000 22513.107013 0.000000 0.000000 0.000000 0.000000 22513.107013 0.000000 0.000000 0.000000 13159.083516 0.000000 0.000000 13159.083516 0.000000 13159.083516 0
EDGE_SE3:QUAT 342 343 0.509537 0.004465 -0.013147 0.001212 -0.001137 -0.013008 0.999914 21064.833039 0.000000 0.000000 0.000000 0.000000 0.000000 21064.833039 0.000000 0.000000 0.000000 0.000000 21064.833039 0.000000 0.000000 0.000000 13159.083516 0.000000 0.000000 13159.083516 0.000000 13159.083516 0
EDGE_SE3:QUAT 343 344 0.500315 -0.000357 -0.001226 -0.002083 -0.012516 -0.014915 0.999808 11673.220011 0.000000 0.000000 0.000000 0.000000 0.000000 11673.220011 0.000000 0.000000 0.000000 0.000000 11673.220011 0.000000 0.000000 0.000000 13159.083516 0.000000 0.000000 13159.083516 0.000000 13159.083516 0
EDGE_SE3:QUAT 344 345 0.508909 0.012283 -0.010431 -0.008289 0.005025 0.012502 0.999875 22526.580818 0.000000 0.000000 0.000000 0.000000 0.000000 22526.580818 0.000000 0.000000 0.000000 0.000000 22526.580818 0.000000 0.000000 0.000000 13159.083516 0.000000 0.000000 13159.083516 0.000000 13159.083516 0
EDGE_SE3:QUAT 345 346 0.516802 0.020565 -0.016560 -0.002059 -0.011413 0.021372 0.999704 8540.985612 0.000000 0.000000 0.000000 0.000000 0.000000 8540.985612 0.000000 0.000000 0.000000 0.000000 8540.985612 0.000000 0.000000 0.000000 9308.464703 0.000000 0.000000 9308.464703 0.000000 9308.464703 0
EDGE_SE3:QUAT 346 347 0.517008 0.015953 -0.019808 0.018409 0.012786 -0.001615 0.999748 14328.067561 0.000000 0.000000 0.000000 0.000000 0.000000 14328.067561 0.000000 0.000000 0.000000 0.000000 14328.067561 0.000000 0.000000 0.000000 13159.083516 0.000000 0.000000 13159.083516 0.000000 13159.083516 0
EDGE_SE3:QUAT 347 348 0.515553 0.014387 -0.002529 -0.001968 -0.002957 0.007211 0.999968 13901.981789 0.000000 0.000000 0.000000 0.000000 0.000000 13901.981789 0.000000 0.000000 0.000000 0.000000 13901.981789 0.000000 0.000000 0.000000 13159.083516 0.000000 0.000000 13159.083516 0.000000 13159.083516 0
EDGE_SE3:QUAT 348 349 0.513159 0.010885 -0.008063 0.002066 -0.004329 0.008660 0.999951 19030.327951 0.000000 0.000000 0.000000 0.000000 0.000000 19030.327951 0.000000 0.000000 0.000000 0.000000 19030.327951 0.000000 0.000000 0.000000 13159.083516 0.000000 0.000000 13159.083516 0.000000 13159.083516 0
EDGE_SE3:QUAT 349 350 0.511732 0.010572 0.001309 -0.005549 -0.025270 0.016244 0.999533 17287.783423 0.000000 0.000000 0.000000 0.000000 0.000000 17287.783423 0.000000 0.000000 0.000000 0.000000 17287.783423 0.000000 0.000000 0.000000 13159.083516 0.000000 0.000000 13159.083516 0.000000 13159.083516 0
EDGE_SE3:QUAT 350 351 0.504311 0.010393 -0.024027 -0.001624 0.013126 0.009875 0.999864 11985.488049 0.000000 0.000000 0.000000 0.000000 0.000000 11985.488049 0.000000 0.000000 0.000000 0.000000 11985.488049 0.000000 0.000000 0.000000 13159.083516 0.000000 0.000000 13159.083516 0.000000 13159.083516 0
EDGE_SE3:QUAT 351 352 0.515139 0.017426 -0.005763 0.001565 -0.014497 0.017835 0.999735 25709.094607 0.000000 0.000000 0.000000 0.000000 0.000000 25709.094607 0.000000 0.000000 0.000000 0.000000 25709.094607 0.000000 0.000000 0.000000 13159.083516 0.000000 0.000000 13159.083516 0.000000 13159.083516 0
EDGE_SE3:QUAT 352 353 0.503069 0.009836 -0.011859 0.003219 -0.017791 0.004863 0.999825 15796.842778 0.000000 0.000000 0.000000 0.000000 0.000000 15796.842778 0.000000 0.000000 0.000000 0.000000 15796.842778 0.000000 0.000000 0.000000 13159.083516 0.000000 0.000000 13159.083516 0.000000 13159.083516 0
EDGE_SE3:QUAT 353 354 0.486725 0.001812 -0.001323 -0.006052 -0.026875 0.000169 0.999620 23611.680212 0.000000 0.000000 0.000000 0.000000 0.000000 23611.680212 0.000000 0.000000 0.000000 0.000000 23611.680212 0.000000 0.000000 0.000000 10000000.000000 0.000000 0.000000 10000000.000000 0.000000 10000000.000000 0
EDGE_SE3:QUAT 354 355 0.428860 0.020414 -0.021203 0.006035 0.015825 0.009415 0.999812 18363.739159 0.000000 0.000000 0.000000 0.000000 0.000000 18363.739159 0.000000 0.000000 0.000000 0.000000 18363.739159 0.000000 0.000000 0.000000 13159.083516 0.000000 0.000000 13159.083516 0.000000 13159.083516 0
EDGE_SE3:QUAT 355 356 0.271826 0.014410 -0.005798 0.003412 -0.004451 -0.003479 0.999978 29877.842219 0.000000 0.000000 0.000000 0.000000 0.000000 29877.842219 0.000000 0.000000 0.000000 0.000000 29877.842219 0.000000 0.000000 0.000000 13159.083516 0.000000 0.000000 13159.083516 0.000000 13159.083516 0
EDGE_SE3:QUAT 356 357 0.297346 0.016834 -0.008533 -0.000031 -0.011932 -0.001767 0.999927 12359.061821 0.000000 0.000000 0.000000 0.000000 0.000000 12359.061821 0.000000 0.000000 0.000000 0.000000 12359.061821 0.000000 0.000000 0.000000 13159.083516 0.000000 0.000000 13159.083516 0.000000 13159.083516 0
EDGE_SE3:QUAT 357 358 0.320477 0.009077 -0.014738 0.001797 0.004607 0.015303 0.999871 11377.838855 0.000000 0.000000 0.000000 0.000000 0.000000 11377.838855 0.000000 0.000000 0.000000 0.000000 11377.838855 0.000000 0.000000 0.000000 13159.083516 0.000000 0.000000 13159.083516 0.000000 13159.083516 0
EDGE_SE3:QUAT 358 359 0.348043 0.011328 -0.012574 -0.003158 -0.009618 -0.007454 0.999921 14622.566921 0.000000 0.000000 0.000000 0.000000 0.000000 14622.566921 0.000000 0.000000 0.000000 0.000000 14622.566921 0.000000 0.000000 0.000000 13159.083516 0.000000 0.000000 13159.083516 0.000000 13159.083516 0
EDGE_SE3:QUAT 359 360 0.339239 0.011492 -0.012274 -0.001067 -0.000331 0.024155 0.999708 15329.028315 0.000000 0.000000 0.000000 0.000000 0.000000 15329.028315 0.000000 0.000000 0.000000 0.000000 15329.028315 0.000000 0.000000 0.000000 13159.083516 0.000000 0.000000 13159.083516 0.000000 13159.083516 0
EDGE_SE3:QUAT 360 361 0.351336 0.016949 -0.019733 -0.003140 0.006062 0.031509 0.999480 10785.965979 0.000000 0.000000 0.000000 0.000000 0.000000 10785.965979 0.000000 0.000000 0.000000 0.000000 10785.965979 0.000000 0.000000 0.000000 9308.464703 0.000000 0.000000 9308.464703 0.000000 9308.464703 0
EDGE_SE3:QUAT 361 362 0.373398 0.013704 -0.016250 -0.000551 0.000018 0.049716 0.998763 13905.335653 0.000000 0.000000 0.000000 0.000000 0.000000 13905.335653 0.000000 0.000000 0.000000 0.000000 13905.335653 0.000000 0.000000 0.000000 13159.083516 0.000000 0.000000 13159.083516 0.000000 13159.083516 0
EDGE_SE3:QUAT 362 363 0.363966 0.007229 -0.011936 0.001241 -0.002448 -0.007942 0.999965 21145.182945 0.000000 0.000000 0.000000 0.000000 0.000000 21145.182945 0.000000 0.000000 0.000000 0.000000 21145.182945 0.000000 0.000000 0.000000 13159.083516 0.000000 0.000000 13159.083516 0.000000 13159.083516 0
EDGE_SE3:QUAT 363 364 0.374929 0.011360 -0.014809 -0.001984 0.003914 0.024082 0.999700 15090.310326 0.000000 0.000000 0.000000 0.000000 0.000000 15090.310326 0.000000 0.000000 0.000000 0.000000 15090.310326 0.000000 0.000000 0.000000 13159.083516 0.000000 0.000000 13159.083516 0.000000 13159.083516 0
EDGE_SE3:QUAT 364 365 0.384566 0.011236 -0.009680 -0.001665 -0.013552 0.008306 0.999872 13367.989821 0.000000 0.000000 0.000000 0.000000 0.000000 13367.989821 0.000000 0.000000 0.000000 0.000000 13367.989821 0.000000 0.000000 0.000000 9308.464703 0.000000 0.000000 9308.464703 0.000000 9308.464703 0
EDGE_SE3:QUAT 365 366 0.396535 0.019661 -0.022287 0.010208 0.008033 -0.012701 0.999835 12905.544614 0.000000 0.000000 0.000000 0.000000 0.000000 12905.544614 0.000000 0.000000 0.000000 0.000000 12905.544614 0.000000 0.000000 0.000000 13159.083516 0.000000 0.000000 13159.083516 0.000000 13159.083516 0
EDGE_SE3:QUAT 366 367 0.405821 0.024103 -0.016722 -0.000799 0.001864 0.050955 0.998699 13183.833208 0.000000 0.000000 0.000000 0.000000 0.000000 13183.833208 0.000000 0.000000 0.000000 0.000000 13183.833208 0.000000 0.000000 0.000000 13159.083516 0.000000 0.000000 13159.083516 0.000000 13159.083516 0
EDGE_SE3:QUAT 367 368 0.400046 0.012238 -0.014696 0.005891 0.003513 0.026028 0.999638 14627.936414 0.000000 0.000000 0.000000 0.000000 0.000000 14627.936414 0.000000 0.000000 0.000000 0.000000 14627.936414 0.000000 0.000000 0.000000 13159.083516 0.000000 0.000000 13159.083516 0.000000 13159.083516 0
EDGE_SE3:QUAT 368 369 0.404202 0.012165 -0.010932 -0.013168 -0.015737 0.000918 0.999789 12453.615063 0.000000 0.000000 0.000000 0.000000 0.000000 12453.615063 0.000000 0.000000 0.000000 0.000000 12453.615063 0.000000 0.000000 0.000000 9308.464703 0.000000 0.000000 9308.464703 0.000000 9308.464703 0
EDGE_SE3:QUAT 369 370 0.408184 0.018085 -0.029404 0.001175 0.020162 0.001999 0.999794 10064.742285 0.000000 0.000000 0.000000 0.000000 0.000000 10064.742285 0.000000 0.000000 0.000000 0.000000 10064.742285 0.000000 0.000000 0.000000 9308.464703 0.000000 0.000000 9308.464703 0.000000 9308.464703 0
EDGE_SE3:QUAT 370 371 0.407849 0.016300 -0.013345 0.012552 0.001272 -0.010308 0.999867 7458.865207 0.000000 0.000000 0.000000 0.000000 0.000000 7458.865207 0.000000 0.000000 0.000000 0.000000 7458.865207 0.000000 0.000000 0.000000 7601.627788 0.000000 0.000000 7601.627788 0.000000 7601.627788 0
EDGE_SE3:QUAT 371 372 0.408682 0.019249 -0.019985 0.008485 0.007861 0.009534 0.999888 9665.725071 0.000000 0.000000 0.000000 0.000000 0.000000 9665.725071 0.000000 0.000000 0.000000 0.000000 9665.725071 0.000000 0.000000 0.000000 9308.464703 0.000000 0.000000 9308.464703 0.000000 9308.464703 0
EDGE_SE3:QUAT 372 373 0.410717 0.019779 -0.008075 0.000910 -0.014276 0.007164 0.999872 8248.845167 0.000000 0.000000 0.000000 0.000000 0.000000 8248.845167 0.000000 0.000000 0.000000 0.000000 8248.845167 0.000000 0.000000 0.000000 9308.464703 0.000000 0.000000 9308.464703 0.000000 9308.464703 0
EDGE_SE3:QUAT 373 374 0.396100 0.019524 -0.022094 0.000642 0.019402 0.004872 0.999800 7678.633535 0.000000 0.000000 0.000000 0.000000 0.000000 7678.633535 0.000000 0.000000 0.000000 0.000000 7678.633535 0.000000 0.000000 0.000000 7601.627788 0.000000 0.000000 7601.627788 0.000000 7601.627788 0
EDGE_SE3:QUAT 374 375 0.412450 0.020065 -0.006120 -0.005051 -0.012710 0.018252 0.999740 4329.486173 0.000000 0.000000 0.000000 0.000000 0.000000 4329.486173 0.000000 0.000000 0.000000 0.000000 4329.486173 0.000000 0.000000 0.000000 5376.359507 0.000000 0.000000 5376.359507 0.000000 5376.359507 0
EDGE_SE3:QUAT 375 376 0.426080 0.014767 -0.021811 0.002225 0.026075 0.013629 0.999565 13387.995198 0.000000 0.000000 0.000000 0.000000 0.000000 13387.995198 0.000000 0.000000 0.000000 0.000000 13387.995198 0.000000 0.000000 0.000000 13159.083516 0.000000 0.000000 13159.083516 0.000000 13159.083516 0
EDGE_SE3:QUAT 376 377 0.431455 0.007870 -0.013117 -0.006883 0.001080 -0.009499 0.999931 6266.132035 0.000000 0.000000 0.000000 0.000000 0.000000 6266.132035 0.000000 0.000000 0.000000 0.000000 6266.132035 0.000000 0.000000 0.000000 6583.873645 0.000000 0.000000 6583.873645 0.000000 6583.873645 0
EDGE_SE3:QUAT 377 378 0.436122 -0.009865 -0.017402 -0.017023 0.007304 -0.052159 0.998467 12008.028985 0.000000 0.000000 0.000000 0.000000 0.000000 12008.028985 0.000000 0.000000 0.000000 0.000000 12008.028985 0.000000 0.000000 0.000000 9308.464703 0.000000 0.000000 9308.464703 0.000000 9308.464703 0
EDGE_SE3:QUAT 378 379 0.420628 -0.004856 -0.014483 0.011295 0.000541 -0.051454 0.998611 14786.668099 0.000000 0.000000 0.000000 0.000000 0.000000 14786.668099 0.000000 0.000000 0.000000 0.000000 14786.668099 0.000000 0.000000 0.000000 13159.083516 0.000000 0.000000 13159.083516 0.000000 13159.083516 0
EDGE_SE3:QUAT 379 380 0.441038 0.014771 -0.018442 0.005645 0.013563 -0.023096 0.999625 10623.971416 0.000000 0.000000 0.000000 0.000000 0.000000 10623.971416 0.000000 0.000000 0.000000 0.000000 10623.971416 0.000000 0.000000 0.000000 13159.083516 0.000000 0.000000 13159.083516 0.000000 13159.083516 0
EDGE_SE3:QUAT 380 381 0.450933 0.009699 -0.003079 -0.001559 -0.001249 -0.012088 0.999925 7554.530090 0.000000 0.000000 0.000000 0.000000 0.000000 7554.530090 0.000000 0.000000 0.000000 0.000000 7554.530090 0.000000 0.000000 0.000000 9308.464703 0.000000 0.000000 9308.464703 0.000000 9308.464703 0
EDGE_SE3:QUAT 381 382 0.461927 0.008802 -0.012875 -0.004938 0.006491 -0.004443 0.999957 13518.727031 0.000000 0.000000 0.000000 0.000000 0.000000 13518.727031 0.000000 0.000000 0.000000 0.000000 13518.727031 0.000000 0.000000 0.000000 13159.083516 0.000000 0.000000 13159.083516 0.000000 13159.083516 0
EDGE_SE3:QUAT 382 383 0.453203 0.019657 -0.014103 0.002638 0.005524 0.013117 0.999895 10760.560886 0.000000 0.000000 0.000000 0.000000 0.000000 10760.560886 0.000000 0.000000 0.000000 0.000000 10760.560886 0.000000 0.000000 0.000000 13159.083516 0.000000 0.000000 13159.083516 0.000000 13159.083516 0
EDGE_SE3:QUAT 383 384 0.467167 0.018057 -0.010589 0.000511 -0.002885 0.004718 0.999985 3589.296213 0.000000 0.000000 0.000000 0.000000 0.000000 3589.296213 0.000000 0.000000 0.000000 0.000000 3589.296213 0.000000 0.000000 0.000000 7601.627788 0.000000 0.000000 7601.627788 0.000000 7601.627788 0
EDGE_SE3:QUAT 384 385 0.475336 0.009832 -0.017152 0.002378 0.021610 -0.019642 0.999571 2821.059517 0.000000 0.000000 0.000000 0.000000 0.000000 2821.059517 0.000000 0.000000 0.000000 0.000000 2821.059517 0.000000 0.000000 0.000000 6583.873645 0.000000 0.000000 6583.873645 0.000000 6583.873645 0
EDGE_SE3:QUAT 385 386 0.441690 -0.001036 -0.002601 0.006848 0.003131 -0.044243 0.998992 4625.280029 0.000000 0.000000 0.000000 0.000000 0.000000 4625.280029 0.000000 0.000000 0.000000 0.000000 4625.280029 0.000000 0.000000 0.000000 7601.627788 0.000000 0.000000 7601.627788 0.000000 7601.627788 0
EDGE_SE3:QUAT 386 387 0.469246 0.007334 -0.003219 -0.013630 -0.005015 -0.017232 0.999746 2968.815965 0.000000 0.000000 0.000000 0.000000 0.000000 2968.815965 0.000000 0.000000 0.000000 0.000000 2968.815965 0.000000 0.000000 0.000000 7601.627788 0.000000 0.000000 7601.627788 0.000000 7601.627788 0
EDGE_SE3:QUAT 387 388 0.492287 0.009743 -0.019759 -0.000765 0.010531 -0.003771 0.999937 2449.004539 0.000000 0.000000 0.000000 0.000000 0.000000 2449.004539 0.000000 0.000000 0.000000 0.000000 2449.004539 0.000000 0.000000 0.000000 7601.627788 0.000000 0.000000 7601.627788 0.000000 7601.627788 0
EDGE_SE3:QUAT 388 389 0.489119 0.009384 -0.009852 0.003143 0.007517 -0.008589 0.999930 3148.548916 0.000000 0.000000 0.000000 0.000000 0.000000 3148.548916 0.000000 0.000000 0.000000 0.000000 3148.548916 0.000000 0.000000 0.000000 9308.464703 0.000000 0.000000 9308.464703 0.000000 9308.464703 0
EDGE_SE3:QUAT 389 390 0.493603 0.005493 -0.000464 0.005660 -0.007055 -0.042982 0.999035 3028.046909 0.000000 0.000000 0.000000 0.000000 0.000000 3028.046909 0.000000 0.000000 0.000000 0.000000 3028.046909 0.000000 0.000000 0.000000 7601.627788 0.000000 0.000000 7601.627788 0.000000 7601.627788 0
EDGE_SE3:QUAT 390 391 0.493923 -0.038736 -0.032260 0.001817 0.033938 -0.129933 0.990940 3696.293483 0.000000 0.000000 0.000000 0.000000 0.000000 3696.293483 0.000000 0.000000 0.000000 0.000000 3696.293483 0.000000 0.000000 0.000000 9308.464703 0.000000 0.000000 9308.464703 0.000000 9308.464703 0
EDGE_SE3:QUAT 391 392 0.473347 -0.036247 -0.010672 -0.004534 0.004255 -0.114593 0.993393 10226.386363 0.000000 0.000000 0.000000 0.000000 0.000000 10226.386363 0.000000 0.000000 0.000000 0.000000 10226.386363 0.000000 0.000000 0.000000 13159.083516 0.000000 0.000000 13159.083516 0.000000 13159.083516 0
EDGE_SE3:QUAT 392 393 0.426628 0.002409 -0.008287 0.006580 0.015632 -0.030781 0.999382 10483.803867 0.000000 0.000000 0.000000 0.000000 0.000000 10483.803867 0.000000 0.000000 0.000000 0.000000 10483.803867 0.000000 0.000000 0.000000 13159.083516 0.000000 0.000000 13159.083516 0.000000 13159.083516 0
EDGE_SE3:QUAT 393 397 0.022739 0.010467 0.001430 0.001604 -0.008665 -0.097749 0.995172 12802.212932 0.000000 0.000000 0.000000 0.000000 0.000000 12802.212932 0.000000 0.000000 0.000000 0.000000 12802.212932 0.000000 0.000000 0.000000 10000000.000000 0.000000 0.000000 10000000.000000 0.000000 10000000.000000 0
EDGE_SE3:QUAT 397 398 -0.003841 0.009099 0.004356 -0.004058 -0.002662 -0.240271 0.970694 24898.175725 0.000000 0.000000 0.000000 0.000000 0.000000 24898.175725 0.000000 0.000000 0.000000 0.000000 24898.175725 0.000000 0.000000 0.000000 10000000.000000 0.000000 0.000000 10000000.000000 0.000000 10000000.000000 0
EDGE_SE3:QUAT 398 399 -0.001144 0.010242 -0.000582 -0.006024 0.000067 -0.281883 0.959430 20478.655791 0.000000 0.000000 0.000000 0.000000 0.000000 20478.655791 0.000000 0.000000 0.000000 0.000000 20478.655791 0.000000 0.000000 0.000000 13159.083516 0.000000 0.000000 13159.083516 0.000000 13159.083516 0
EDGE_SE3:QUAT 399 400 0.004139 0.006832 -0.005411 -0.001460 0.001116 -0.316295 0.948659 7586.559772 0.000000 0.000000 0.000000 0.000000 0.000000 7586.559772 0.000000 0.000000 0.000000 0.000000 7586.559772 0.000000 0.000000 0.000000 9308.464703 0.000000 0.000000 9308.464703 0.000000 9308.464703 0
EDGE_SE3:QUAT 400 401 0.004404 0.011013 0.002413 -0.000419 -0.001816 -0.342882 0.939377 3526.949844 0.000000 0.000000 0.000000 0.000000 0.000000 3526.949844 0.000000 0.000000 0.000000 0.000000 3526.949844 0.000000 0.000000 0.000000 5889.204784 0.000000 0.000000 5889.204784 0.000000 5889.204784 0
EDGE_SE3:QUAT 401 402 0.009552 0.008793 -0.007011 -0.004821 -0.000407 -0.373389 0.927662 7055.210182 0.000000 0.000000 0.000000 0.000000 0.000000 7055.210182 0.000000 0.000000 0.000000 0.000000 7055.210182 0.000000 0.000000 0.000000 13159.083516 0.000000 0.000000 13159.083516 0.000000 13159.083516 0
EDGE_SE3:QUAT 402 403 0.005486 0.012203 0.006403 -0.001239 -0.002280 -0.366611 0.930371 16568.553408 0.000000 0.000000 0.000000 0.000000 0.000000 16568.553408 0.000000 0.000000 0.000000 0.000000 16568.553408 0.000000 0.000000 0.000000 13159.083516 0.000000 0.000000 13159.083516 0.000000 13159.083516 0
EDGE_SE3:QUAT 403 404 0.006563 0.012409 -0.008511 -0.002641 -0.004859 -0.326454 0.945197 27975.788427 0.000000 0.000000 0.000000 0.000000 0.000000 27975.788427 0.000000 0.000000 0.000000 0.000000 27975.788427 0.000000 0.000000 0.000000 13159.083516 0.000000 0.000000 13159.083516 0.000000 13159.083516 0
EDGE_SE3:QUAT 404 405 0.004203 0.015301 0.007580 -0.006706 0.000688 -0.364420 0.931210 6357.104531 0.000000 0.000000 0.000000 0.000000 0.000000 6357.104531 0.000000 0.000000 0.000000 0.000000 6357.104531 0.000000 0.000000 0.000000 7601.627788 0.000000 0.000000 7601.627788 0.000000 7601.627788 0
EDGE_SE3:QUAT 405 407 0.005135 -0.006977 -0.005069 -0.001321 0.000180 0.156508 0.987676 6780.844956 0.000000 0.000000 0.000000 0.000000 0.000000 6780.844956 0.000000 0.000000 0.000000 0.000000 6780.844956 0.000000 0.000000 0.000000 9308.464703 0.000000 0.000000 9308.464703 0.000000 9308.464703 0
EDGE_SE3:QUAT 407 408 0.013382 -0.010326 -0.000472 0.003386 -0.000406 0.278529 0.960422 3958.075199 0.000000 0.000000 0.000000 0.000000 0.000000 3958.075199 0.000000 0.000000 0.000000 0.000000 3958.075199 0.000000 0.000000 0.000000 5889.204784 0.000000 0.000000 5889.204784 0.000000 5889.204784 0
EDGE_SE3:QUAT 408 409 0.068410 0.004791 0.001484 -0.001023 0.002518 0.179035 0.983839 11734.234530 0.000000 0.000000 0.000000 0.000000 0.000000 11734.234530 0.000000 0.000000 0.000000 0.000000 11734.234530 0.000000 0.000000 0.000000 9308.464703 0.000000 0.000000 9308.464703 0.000000 9308.464703 0
EDGE_SE3:QUAT 409 411 0.352337 0.019070 0.001696 0.001210 -0.006192 0.044121 0.999006 14472.572416 0.000000 0.000000 0.000000 0.000000 0.000000 14472.572416 0.000000 0.000000 0.000000 0.000000 14472.572416 0.000000 0.000000 0.000000 9308.464703 0.000000 0.000000 9308.464703 0.000000 9308.464703 0
EDGE_SE3:QUAT 411 412 0.457600 0.034859 -0.010097 -0.004498 0.001260 0.066216 0.997794 13377.559703 0.000000 0.000000 0.000000 0.000000 0.000000 13377.559703 0.000000 0.000000 0.000000 0.000000 13377.559703 0.000000 0.000000 0.000000 9308.464703 0.000000 0.000000 9308.464703 0.000000 9308.464703 0
EDGE_SE3:QUAT 412 413 0.500149 0.009541 -0.005453 0.009703 0.015649 0.024346 0.999534 18488.201602 0.000000 0.000000 0.000000 0.000000 0.000000 18488.201602 0.000000 0.000000 0.000000 0.000000 18488.201602 0.000000 0.000000 0.000000 13159.083516 0.000000 0.000000 13159.083516 0.000000 13159.083516 0
EDGE_SE3:QUAT 413 414 0.520508 0.017311 0.004960 -0.005993 -0.004726 0.031743 0.999467 9848.143528 0.000000 0.000000 0.000000 0.000000 0.000000 9848.143528 0.000000 0.000000 0.000000 0.000000 9848.143528 0.000000 0.000000 0.000000 9308.464703 0.000000 0.000000 9308.464703 0.000000 9308.464703 0
EDGE_SE3:QUAT 414 415 0.531822 0.008234 -0.008652 0.002025 0.002505 0.011484 0.999929 17817.875822 0.000000 0.000000 0.000000 0.000000 0.000000 17817.875822 0.000000 0.000000 0.000000 0.000000 17817.875822 0.000000 0.000000 0.000000 13159.083516 0.000000 0.000000 13159.083516 0.000000 13159.083516 0
EDGE_SE3:QUAT 415 416 0.533133 0.012859 -0.003028 -0.020850 -0.022187 0.015095 0.999422 22039.165931 0.000000 0.000000 0.000000 0.000000 0.000000 22039.165931 0.000000 0.000000 0.000000 0.000000 22039.165931 0.000000 0.000000 0.000000 13159.083516 0.000000 0.000000 13159.083516 0.000000 13159.083516 0
EDGE_SE3:QUAT 416 417 0.508417 0.012451 -0.028981 0.002839 0.023802 0.004932 0.999700 30469.908348 0.000000 0.000000 0.000000 0.000000 0.000000 30469.908348 0.000000 0.000000 0.000000 0.000000 30469.908348 0.000000 0.000000 0.000000 13159.083516 0.000000 0.000000 13159.083516 0.000000 13159.083516 0
EDGE_SE3:QUAT 417 418 0.520540 0.051214 -0.005524 0.008275 0.005624 0.139390 0.990187 23713.391154 0.000000 0.000000 0.000000 0.000000 0.000000 23713.391154 0.000000 0.000000 0.000000 0.000000 23713.391154 0.000000 0.000000 0.000000 10000000.000000 0.000000 0.000000 10000000.000000 0.000000 10000000.000000 0
EDGE_SE3:QUAT 418 419 0.413887 0.062393 -0.003323 -0.001505 0.010160 0.158407 0.987321 17759.471574 0.000000 0.000000 0.000000 0.000000 0.000000 17759.471574 0.000000 0.000000 0.000000 0.000000 17759.471574 0.000000 0.000000 0.000000 10000000.000000 0.000000 0.000000 10000000.000000 0.000000 10000000.000000 0
EDGE_SE3:QUAT 419 420 0.432617 0.033216 0.001160 -0.006811 -0.002654 0.068347 0.997635 25905.712662 0.000000 0.000000 0.000000 0.000000 0.000000 25905.712662 0.000000 0.000000 0.000000 0.000000 25905.712662 0.000000 0.000000 0.000000 10000000.000000 0.000000 0.000000 10000000.000000 0.000000 10000000.000000 0
EDGE_SE3:QUAT 420 421 0.452030 0.002194 -0.003928 -0.002599 0.002053 0.011733 0.999926 26133.529178 0.000000 0.000000 0.000000 0.000000 0.000000 26133.529178 0.000000 0.000000 0.000000 0.000000 26133.529178 0.000000 0.000000 0.000000 10000000.000000 0.000000 0.000000 10000000.000000 0.000000 10000000.000000 0
EDGE_SE3:QUAT 421 422 0.442165 0.002757 -0.004907 0.002177 0.012624 0.012858 0.999835 21422.741353 0.000000 0.000000 0.000000 0.000000 0.000000 21422.741353 0.000000 0.000000 0.000000 0.000000 21422.741353 0.000000 0.000000 0.000000 10000000.000000 0.000000 0.000000 10000000.000000 0.000000 10000000.000000 0
EDGE_SE3:QUAT 422 423 0.441452 -0.001704 0.000956 -0.003555 0.015579 0.005698 0.999856 21065.504404 0.000000 0.000000 0.000000 0.000000 0.000000 21065.504404 0.000000 0.000000 0.000000 0.000000 21065.504404 0.000000 0.000000 0.000000 10000000.000000 0.000000 0.000000 10000000.000000 0.000000 10000000.000000 0
EDGE_SE3:QUAT 423 424 0.450317 0.000544 0.002729 -0.005744 -0.009399 -0.007195 0.999913 25966.044556 0.000000 0.000000 0.000000 0.000000 0.000000 25966.044556 0.000000 0.000000 0.000000 0.000000 25966.044556 0.000000 0.000000 0.000000 10000000.000000 0.000000 0.000000 10000000.000000 0.000000 10000000.000000 0
EDGE_SE3:QUAT 424 425 0.425102 -0.014456 -0.001393 -0.004602 -0.007011 -0.057952 0.998284 22125.900691 0.000000 0.000000 0.000000 0.000000 0.000000 22125.900691 0.000000 0.000000 0.000000 0.000000 22125.900691 0.000000 0.000000 0.000000 10000000.000000 0.000000 0.000000 10000000.000000 0.000000 10000000.000000 0
EDGE_SE3:QUAT 425 426 0.428196 -0.020852 -0.000381 -0.004306 0.005633 -0.048753 0.998786 33206.421586 0.000000 0.000000 0.000000 0.000000 0.000000 33206.421586 0.000000 0.000000 0.000000 0.000000 33206.421586 0.000000 0.000000 0.000000 10000000.000000 0.000000 0.000000 10000000.000000 0.000000 10000000.000000 0
EDGE_SE3:QUAT 426 427 0.470009 0.025099 0.000580 -0.006670 0.005262 0.056926 0.998342 16002.766963 0.000000 0.000000 0.000000 0.000000 0.000000 16002.766963 0.000000 0.000000 0.000000 0.000000 16002.766963 0.000000 0.000000 0.000000 13159.083516 0.000000 0.000000 13159.083516 0.000000 13159.083516 0
EDGE_SE3:QUAT 427 428 0.464725 0.031094 -0.000998 -0.002076 0.000149 0.039883 0.999202 31600.837191 0.000000 0.000000 0.000000 0.000000 0.000000 31600.837191 0.000000 0.000000 0.000000 0.000000 31600.837191 0.000000 0.000000 0.000000 10000000.000000 0.000000 0.000000 10000000.000000 0.000000 10000000.000000 0
EDGE_SE3:QUAT 428 429 0.470688 0.007231 -0.007382 0.005461 0.005797 0.019509 0.999778 26945.242005 0.000000 0.000000 0.000000 0.000000 0.000000 26945.242005 0.000000 0.000000 0.000000 0.000000 26945.242005 0.000000 0.000000 0.000000 10000000.000000 0.000000 0.000000 10000000.000000 0.000000 10000000.000000 0
EDGE_SE3:QUAT 429 430 0.533653 0.001505 0.003893 -0.001634 -0.006187 0.009724 0.999932 21562.984547 0.000000 0.000000 0.000000 0.000000 0.000000 21562.984547 0.000000 0.000000 0.000000 0.000000 21562.984547 0.000000 0.000000 0.000000 13159.083516 0.000000 0.000000 13159.083516 0.000000 13159.083516 0
EDGE_SE3:QUAT 430 431 0.541782 0.009157 -0.000318 0.001097 0.002955 0.007704 0.999965 21009.540911 0.000000 0.000000 0.000000 0.000000 0.000000 21009.540911 0.000000 0.000000 0.000000 0.000000 21009.540911 0.000000 0.000000 0.000000 13159.083516 0.000000 0.000000 13159.083516 0.000000 13159.083516 0
EDGE_SE3:QUAT 431 432 0.519821 0.008702 -0.004097 0.001254 0.005305 0.014037 0.999887 24529.408026 0.000000 0.000000 0.000000 0.000000 0.000000 24529.408026 0.000000 0.000000 0.000000 0.000000 24529.408026 0.000000 0.000000 0.000000 10000000.000000 0.000000 0.000000 10000000.000000 0.000000 10000000.000000 0
EDGE_SE3:QUAT 432 433 0.526714 0.010066 -0.010612 -0.009650 0.009710 0.000970 0.999906 17967.438472 0.000000 0.000000 0.000000 0.000000 0.000000 17967.438472 0.000000 0.000000 0.000000 0.000000 17967.438472 0.000000 0.000000 0.000000 13159.083516 0.000000 0.000000 13159.083516 0.000000 13159.083516 0
EDGE_SE3:QUAT 433 434 0.513100 0.009517 -0.003632 -0.002080 0.012091 0.006392 0.999904 22045.579781 0.000000 0.000000 0.000000 0.000000 0.000000 22045.579781 0.000000 0.000000 0.000000 0.000000 22045.579781 0.000000 0.000000 0.000000 13159.083516 0.000000 0.000000 13159.083516 0.000000 13159.083516 0
EDGE_SE3:QUAT 434 435 0.509705 -0.006184 0.008027 0.001329 -0.011780 -0.014597 0.999823 27634.424289 0.000000 0.000000 0.000000 0.000000 0.000000 27634.424289 0.000000 0.000000 0.000000 0.000000 27634.424289 0.000000 0.000000 0.000000 10000000.000000 0.000000 0.000000 10000000.000000 0.000000 10000000.000000 0
EDGE_SE3:QUAT 435 436 0.508041 -0.003243 0.005028 -0.006544 -0.009275 -0.024493 0.999636 31914.881495 0.000000 0.000000 0.000000 0.000000 0.000000 31914.881495 0.000000 0.000000 0.000000 0.000000 31914.881495 0.000000 0.000000 0.000000 10000000.000000 0.000000 0.000000 10000000.000000 0.000000 10000000.000000 0
EDGE_SE3:QUAT 436 437 0.466757 0.004273 -0.004020 0.015480 0.013659 0.000588 0.999787 21092.142260 0.000000 0.000000 0.000000 0.000000 0.000000 21092.142260 0.000000 0.000000 0.000000 0.000000 21092.142260 0.000000 0.000000 0.000000 13159.083516 0.000000 0.000000 13159.083516 0.000000 13159.083516 0
EDGE_SE3:QUAT 437 438 0.465935 -0.007187 0.006084 -0.007293 0.001750 -0.022832 0.999711 28162.351895 0.000000 0.000000 0.000000 0.000000 0.000000 28162.351895 0.000000 0.000000 0.000000 0.000000 28162.351895 0.000000 0.000000 0.000000 10000000.000000 0.000000 0.000000 10000000.000000 0.000000 10000000.000000 0
EDGE_SE3:QUAT 438 439 0.456980 0.003572 0.011034 -0.006757 -0.013175 -0.018978 0.999710 24038.613456 0.000000 0.000000 0.000000 0.000000 0.000000 24038.613456 0.000000 0.000000 0.000000 0.000000 24038.613456 0.000000 0.000000 0.000000 13159.083516 0.000000 0.000000 13159.083516 0.000000 13159.083516 0
EDGE_SE3:QUAT 439 440 0.462521 -0.003596 -0.002974 0.001608 0.007785 -0.029357 0.999537 16019.182955 0.000000 0.000000 0.000000 0.000000 0.000000 16019.182955 0.000000 0.000000 0.000000 0.000000 16019.182955 0.000000 0.000000 0.000000 9308.464703 0.000000 0.000000 9308.464703 0.000000 9308.464703 0
EDGE_SE3:QUAT 440 441 0.459137 -0.007260 -0.007357 0.003024 -0.001254 -0.027826 0.999607 20319.966203 0.000000 0.000000 0.000000 0.000000 0.000000 20319.966203 0.000000 0.000000 0.000000 0.000000 20319.966203 0.000000 0.000000 0.000000 13159.083516 0.000000 0.000000 13159.083516 0.000000 13159.083516 0
EDGE_SE3:QUAT 441 442 0.506975 0.004136 0.000810 -0.011814 0.015060 -0.030259 0.999359 27308.280201 0.000000 0.000000 0.000000 0.000000 0.000000 27308.280201 0.000000 0.000000 0.000000 0.000000 27308.280201 0.000000 0.000000 0.000000 13159.083516 0.000000 0.000000 13159.083516 0.000000 13159.083516 0
EDGE_SE3:QUAT 442 443 0.507355 0.046296 0.004631 -0.012625 -0.012029 0.043123 0.998918 15825.905694 0.000000 0.000000 0.000000 0.000000 0.000000 15825.905694 0.000000 0.000000 0.000000 0.000000 15825.905694 0.000000 0.000000 0.000000 9308.464703 0.000000 0.000000 9308.464703 0.000000 9308.464703 0
EDGE_SE3:QUAT 443 444 0.509327 0.022210 -0.002306 0.011043 0.013555 0.019508 0.999657 27436.147711 0.000000 0.000000 0.000000 0.000000 0.000000 27436.147711 0.000000 0.000000 0.000000 0.000000 27436.147711 0.000000 0.000000 0.000000 13159.083516 0.000000 0.000000 13159.083516 0.000000 13159.083516 0
EDGE_SE3:QUAT 444 445 0.497198 0.020164 0.006002 0.016221 0.012501 0.026958 0.999427 23481.520866 0.000000 0.000000 0.000000 0.000000 0.000000 23481.520866 0.000000 0.000000 0.000000 0.000000 23481.520866 0.000000 0.000000 0.000000 13159.083516 0.000000 0.000000 13159.083516 0.000000 13159.083516 0
EDGE_SE3:QUAT 445 446 0.517345 0.008637 0.016010 -0.007826 -0.020248 -0.006108 0.999746 31191.855099 0.000000 0.000000 0.000000 0.000000 0.000000 31191.855099 0.000000 0.000000 0.000000 0.000000 31191.855099 0.000000 0.000000 0.000000 13159.083516 0.000000 0.000000 13159.083516 0.000000 13159.083516 0
EDGE_SE3:QUAT 446 447 0.518698 0.026931 0.002071 -0.012603 0.003923 0.011063 0.999852 38909.022502 0.000000 0.000000 0.000000 0.000000 0.000000 38909.022502 0.000000 0.000000 0.000000 0.000000 38909.022502 0.000000 0.000000 0.000000 13159.083516 0.000000 0.000000 13159.083516 0.000000 13159.083516 0
EDGE_SE3:QUAT 447 448 0.493370 0.006262 0.026169 0.001466 -0.037561 -0.001407 0.999292 29303.028251 0.000000 0.000000 0.000000 0.000000 0.000000 29303.028251 0.000000 0.000000 0.000000 0.000000 29303.028251 0.000000 0.000000 0.000000 13159.083516 0.000000 0.000000 13159.083516 0.000000 13159.083516 0
EDGE_SE3:QUAT 448 449 0.492561 0.020957 -0.009583 -0.004572 0.026016 0.012114 0.999578 29415.350165 0.000000 0.000000 0.000000 0.000000 0.000000 29415.350165 0.000000 0.000000 0.000000 0.000000 29415.350165 0.000000 0.000000 0.000000 13159.083516 0.000000 0.000000 13159.083516 0.000000 13159.083516 0
EDGE_SE3:QUAT 449 450 0.517452 0.008263 0.003669 -0.009716 0.010896 -0.014854 0.999783 49002.723635 0.000000 0.000000 0.000000 0.000000 0.000000 49002.723635 0.000000 0.000000 0.000000 0.000000 49002.723635 0.000000 0.000000 0.000000 13159.083516 0.000000 0.000000 13159.083516 0.000000 13159.083516 0
EDGE_SE3:QUAT 450 451 0.502218 -0.002715 0.018670 0.010856 -0.020959 -0.051853 0.998376 35159.445889 0.000000 0.000000 0.000000 0.000000 0.000000 35159.445889 0.000000 0.000000 0.000000 0.000000 35159.445889 0.000000 0.000000 0.000000 13159.083516 0.000000 0.000000 13159.083516 0.000000 13159.083516 0
EDGE_SE3:QUAT 451 452 0.488773 -0.022402 0.007237 0.005791 0.003794 -0.063541 0.997955 34312.734832 0.000000 0.000000 0.000000 0.000000 0.000000 34312.734832 0.000000 0.000000 0.000000 0.000000 34312.734832 0.000000 0.000000 0.000000 9308.464703 0.000000 0.000000 9308.464703 0.000000 9308.464703 0
EDGE_SE3:QUAT 452 453 0.501020 0.004545 -0.003052 -0.019127 -0.002113 -0.096157 0.995180 15362.247983 0.000000 0.000000 0.000000 0.000000 0.000000 15362.247983 0.000000 0.000000 0.000000 0.000000 15362.247983 0.000000 0.000000 0.000000 9308.464703 0.000000 0.000000 9308.464703 0.000000 9308.464703 0
EDGE_SE3:QUAT 453 454 0.433588 -0.060727 0.003745 0.014770 -0.000204 -0.204259 0.978805 26793.477670 0.000000 0.000000 0.000000 0.000000 0.000000 26793.477670 0.000000 0.000000 0.000000 0.000000 26793.477670 0.000000 0.000000 0.000000 9308.464703 0.000000 0.000000 9308.464703 0.000000 9308.464703 0
EDGE_SE3:QUAT 454 455 0.420220 -0.053080 -0.008770 -0.002693 -0.001933 -0.142932 0.989727 24862.334767 0.000000 0.000000 0.000000 0.000000 0.000000 24862.334767 0.000000 0.000000 0.000000 0.000000 24862.334767 0.000000 0.000000 0.000000 9308.464703 0.000000 0.000000 9308.464703 0.000000 9308.464703 0
EDGE_SE3:QUAT 455 456 0.480348 0.024536 0.000226 -0.007434 -0.008233 0.013732 0.999844 31639.179155 0.000000 0.000000 0.000000 0.000000 0.000000 31639.179155 0.000000 0.000000 0.000000 0.000000 31639.179155 0.000000 0.000000 0.000000 9308.464703 0.000000 0.000000 9308.464703 0.000000 9308.464703 0
EDGE_SE3:QUAT 456 457 0.516987 0.077429 -0.010949 0.004692 0.003936 0.086095 0.996268 21733.023147 0.000000 0.000000 0.000000 0.000000 0.000000 21733.023147 0.000000 0.000000 0.000000 0.000000 21733.023147 0.000000 0.000000 0.000000 7601.627788 0.000000 0.000000 7601.627788 0.000000 7601.627788 0
EDGE_SE3:QUAT 457 458 0.536410 0.036165 0.000520 -0.003537 0.004281 0.014589 0.999878 33304.930749 0.000000 0.000000 0.000000 0.000000 0.000000 33304.930749 0.000000 0.000000 0.000000 0.000000 33304.930749 0.000000 0.000000 0.000000 9308.464703 0.000000 0.000000 9308.464703 0.000000 9308.464703 0
EDGE_SE3:QUAT 458 459 0.535632 0.033607 -0.005601 -0.003858 -0.000032 0.012586 0.999913 19335.417662 0.000000 0.000000 0.000000 0.000000 0.000000 19335.417662 0.000000 0.000000 0.000000 0.000000 19335.417662 0.000000 0.000000 0.000000 9308.464703 0.000000 0.000000 9308.464703 0.000000 9308.464703 0
EDGE_SE3:QUAT 459 460 0.534010 0.029449 0.001269 0.004175 0.011049 0.011516 0.999864 38355.295592 0.000000 0.000000 0.000000 0.000000 0.000000 38355.295592 0.000000 0.000000 0.000000 0.000000 38355.295592 0.000000 0.000000 0.000000 9308.464703 0.000000 0.000000 9308.464703 0.000000 9308.464703 0
EDGE_SE3:QUAT 460 461 0.533640 0.028080 0.008182 -0.000312 -0.002320 0.006386 0.999977 16521.279089 0.000000 0.000000 0.000000 0.000000 0.000000 16521.279089 0.000000 0.000000 0.000000 0.000000 16521.279089 0.000000 0.000000 0.000000 6583.873645 0.000000 0.000000 6583.873645 0.000000 6583.873645 0
EDGE_SE3:QUAT 461 462 0.528613 0.037252 0.008390 0.001402 -0.022400 0.011881 0.999678 26581.699970 0.000000 0.000000 0.000000 0.000000 0.000000 26581.699970 0.000000 0.000000 0.000000 0.000000 26581.699970 0.000000 0.000000 0.000000 7601.627788 0.000000 0.000000 7601.627788 0.000000 7601.627788 0
EDGE_SE3:QUAT 462 463 0.533550 0.027674 -0.003941 0.003067 0.028057 0.008578 0.999565 26832.113184 0.000000 0.000000 0.000000 0.000000 0.000000 26832.113184 0.000000 0.000000 0.000000 0.000000 26832.113184 0.000000 0.000000 0.000000 9308.464703 0.000000 0.000000 9308.464703 0.000000 9308.464703 0
EDGE_SE3:QUAT 463 464 0.522353 0.031830 0.017666 -0.000114 -0.014102 0.009310 0.999857 29506.402693 0.000000 0.000000 0.000000 0.000000 0.000000 29506.402693 0.000000 0.000000 0.000000 0.000000 29506.402693 0.000000 0.000000 0.000000 9308.464703 0.000000 0.000000 9308.464703 0.000000 9308.464703 0
EDGE_SE3:QUAT 464 465 0.487299 0.023191 0.003376 0.009437 -0.011289 0.011089 0.999830 21056.838145 0.000000 0.000000 0.000000 0.000000 0.000000 21056.838145 0.000000 0.000000 0.000000 0.000000 21056.838145 0.000000 0.000000 0.000000 6583.873645 0.000000 0.000000 6583.873645 0.000000 6583.873645 0
EDGE_SE3:QUAT 465 466 0.521544 0.024332 -0.008344 0.003367 0.015700 0.015670 0.999748 21016.712934 0.000000 0.000000 0.000000 0.000000 0.000000 21016.712934 0.000000 0.000000 0.000000 0.000000 21016.712934 0.000000 0.000000 0.000000 6583.873645 0.000000 0.000000 6583.873645 0.000000 6583.873645 0
EDGE_SE3:QUAT 466 467 0.507853 0.017513 0.008468 0.004235 -0.005902 0.006119 0.999955 24019.001740 0.000000 0.000000 0.000000 0.000000 0.000000 24019.001740 0.000000 0.000000 0.000000 0.000000 24019.001740 0.000000 0.000000 0.000000 7601.627788 0.000000 0.000000 7601.627788 0.000000 7601.627788 0
EDGE_SE3:QUAT 467 468 0.490382 0.031166 0.002717 -0.000760 -0.013612 0.014242 0.999806 25803.923518 0.000000 0.000000 0.000000 0.000000 0.000000 25803.923518 0.000000 0.000000 0.000000 0.000000 25803.923518 0.000000 0.000000 0.000000 7601.627788 0.000000 0.000000 7601.627788 0.000000 7601.627788 0
EDGE_SE3:QUAT 468 469 0.531259 0.017546 -0.022225 -0.008568 0.042144 -0.020562 0.998863 26801.507888 0.000000 0.000000 0.000000 0.000000 0.000000 26801.507888 0.000000 0.000000 0.000000 0.000000 26801.507888 0.000000 0.000000 0.000000 7601.627788 0.000000 0.000000 7601.627788 0.000000 7601.627788 0
EDGE_SE3:QUAT 469 470 0.526969 -0.001492 0.010076 -0.003341 -0.029821 -0.061237 0.997672 48536.897242 0.000000 0.000000 0.000000 0.000000 0.000000 48536.897242 0.000000 0.000000 0.000000 0.000000 48536.897242 0.000000 0.000000 0.000000 9308.464703 0.000000 0.000000 9308.464703 0.000000 9308.464703 0
EDGE_SE3:QUAT 470 471 0.532597 0.010010 0.000715 -0.006593 -0.010993 -0.034429 0.999325 38534.477054 0.000000 0.000000 0.000000 0.000000 0.000000 38534.477054 0.000000 0.000000 0.000000 0.000000 38534.477054 0.000000 0.000000 0.000000 9308.464703 0.000000 0.000000 9308.464703 0.000000 9308.464703 0
EDGE_SE3:QUAT 471 472 0.536427 0.025139 -0.019761 0.009678 0.022760 0.014201 0.999593 42565.621534 0.000000 0.000000 0.000000 0.000000 0.000000 42565.621534 0.000000 0.000000 0.000000 0.000000 42565.621534 0.000000 0.000000 0.000000 9308.464703 0.000000 0.000000 9308.464703 0.000000 9308.464703 0
EDGE_SE3:QUAT 472 473 0.534389 0.056479 0.013653 0.008345 -0.016657 0.088313 0.995919 36808.697968 0.000000 0.000000 0.000000 0.000000 0.000000 36808.697968 0.000000 0.000000 0.000000 0.000000 36808.697968 0.000000 0.000000 0.000000 9308.464703 0.000000 0.000000 9308.464703 0.000000 9308.464703 0
EDGE_SE3:QUAT 473 474 0.544214 0.043230 -0.018688 0.006966 0.009701 0.039641 0.999143 20805.349741 0.000000 0.000000 0.000000 0.000000 0.000000 20805.349741 0.000000 0.000000 0.000000 0.000000 20805.349741 0.000000 0.000000 0.000000 6583.873645 0.000000 0.000000 6583.873645 0.000000 6583.873645 0
EDGE_SE3:QUAT 474 475 0.537679 0.027491 -0.003703 0.006689 0.011142 0.014201 0.999815 59770.146935 0.000000 0.000000 0.000000 0.000000 0.000000 59770.146935 0.000000 0.000000 0.000000 0.000000 59770.146935 0.000000 0.000000 0.000000 9308.464703 0.000000 0.000000 9308.464703 0.000000 9308.464703 0
EDGE_SE3:QUAT 475 476 0.535923 -0.006231 0.004779 -0.010418 -0.002191 -0.065114 0.997821 21929.500328 0.000000 0.000000 0.000000 0.000000 0.000000 21929.500328 0.000000 0.000000 0.000000 0.000000 21929.500328 0.000000 0.000000 0.000000 6583.873645 0.000000 0.000000 6583.873645 0.000000 6583.873645 0
EDGE_SE3:QUAT 476 477 0.538253 0.014082 0.002264 -0.024171 -0.020151 -0.046778 0.998410 20310.796562 0.000000 0.000000 0.000000 0.000000 0.000000 20310.796562 0.000000 0.000000 0.000000 0.000000 20310.796562 0.000000 0.000000 0.000000 6583.873645 0.000000 0.000000 6583.873645 0.000000 6583.873645 0
EDGE_SE3:QUAT 477 478 0.530049 0.028978 -0.012062 0.014430 0.032164 -0.002117 0.999376 45559.012571 0.000000 0.000000 0.000000 0.000000 0.000000 45559.012571 0.000000 0.000000 0.000000 0.000000 45559.012571 0.000000 0.000000 0.000000 9308.464703 0.000000 0.000000 9308.464703 0.000000 9308.464703 0
EDGE_SE3:QUAT 478 479 0.540608 0.044399 -0.014387 0.006446 0.014451 0.033994 0.999297 42479.842744 0.000000 0.000000 0.000000 0.000000 0.000000 42479.842744 0.000000 0.000000 0.000000 0.000000 42479.842744 0.000000 0.000000 0.000000 9308.464703 0.000000 0.000000 9308.464703 0.000000 9308.464703 0
EDGE_SE3:QUAT 479 480 0.524893 0.058558 0.010020 -0.006024 -0.023176 0.063236 0.997711 29210.740773 0.000000 0.000000 0.000000 0.000000 0.000000 29210.740773 0.000000 0.000000 0.000000 0.000000 29210.740773 0.000000 0.000000 0.000000 7601.627788 0.000000 0.000000 7601.627788 0.000000 7601.627788 0
EDGE_SE3:QUAT 480 481 0.537553 0.029726 0.002128 -0.001356 -0.007428 0.015076 0.999858 39060.640855 0.000000 0.000000 0.000000 0.000000 0.000000 39060.640855 0.000000 0.000000 0.000000 0.000000 39060.640855 0.000000 0.000000 0.000000 9308.464703 0.000000 0.000000 9308.464703 0.000000 9308.464703 0
EDGE_SE3:QUAT 481 482 0.529572 0.023174 0.004124 0.024823 -0.011503 0.027655 0.999243 38890.878913 0.000000 0.000000 0.000000 0.000000 0.000000 38890.878913 0.000000 0.000000 0.000000 0.000000 38890.878913 0.000000 0.000000 0.000000 9308.464703 0.000000 0.000000 9308.464703 0.000000 9308.464703 0
EDGE_SE3:QUAT 482 483 0.537977 0.035265 -0.019886 0.000375 0.029368 0.049328 0.998351 40265.855920 0.000000 0.000000 0.000000 0.000000 0.000000 40265.855920 0.000000 0.000000 0.000000 0.000000 40265.855920 0.000000 0.000000 0.000000 9308.464703 0.000000 0.000000 9308.464703 0.000000 9308.464703 0
EDGE_SE3:QUAT 483 484 0.535991 0.021355 -0.002199 0.009317 -0.011298 0.027526 0.999514 15893.354137 0.000000 0.000000 0.000000 0.000000 0.000000 15893.354137 0.000000 0.000000 0.000000 0.000000 15893.354137 0.000000 0.000000 0.000000 5376.359507 0.000000 0.000000 5376.359507 0.000000 5376.359507 0
EDGE_SE3:QUAT 484 485 0.471938 0.023161 0.000127 -0.013709 0.000498 0.023408 0.999632 7154.661537 0.000000 0.000000 0.000000 0.000000 0.000000 7154.661537 0.000000 0.000000 0.000000 0.000000 7154.661537 0.000000 0.000000 0.000000 3400.980409 0.000000 0.000000 3400.980409 0.000000 3400.980409 0
EDGE_SE3:QUAT 485 486 0.508489 0.039963 0.005592 -0.000476 -0.024970 0.072376 0.997065 13875.976347 0.000000 0.000000 0.000000 0.000000 0.000000 13875.976347 0.000000 0.000000 0.000000 0.000000 13875.976347 0.000000 0.000000 0.000000 4656.399548 0.000000 0.000000 4656.399548 0.000000 4656.399548 0
EDGE_SE3:QUAT 486 487 0.507782 0.053366 -0.007802 0.000227 0.014465 0.110063 0.993819 35174.292029 0.000000 0.000000 0.000000 0.000000 0.000000 35174.292029 0.000000 0.000000 0.000000 0.000000 35174.292029 0.000000 0.000000 0.000000 7601.627788 0.000000 0.000000 7601.627788 0.000000 7601.627788 0
EDGE_SE3:QUAT 487 488 0.506398 0.032211 0.011113 0.015456 -0.021289 0.070776 0.997145 29377.473500 0.000000 0.000000 0.000000 0.000000 0.000000 29377.473500 0.000000 0.000000 0.000000 0.000000 29377.473500 0.000000 0.000000 0.000000 7601.627788 0.000000 0.000000 7601.627788 0.000000 7601.627788 0
EDGE_SE3:QUAT 488 489 0.501871 0.001435 0.004574 0.013526 -0.031184 0.030261 0.998964 22992.645569 0.000000 0.000000 0.000000 0.000000 0.000000 22992.645569 0.000000 0.000000 0.000000 0.000000 22992.645569 0.000000 0.000000 0.000000 6583.873645 0.000000 0.000000 6583.873645 0.000000 6583.873645 0
EDGE_SE3:QUAT 489 490 0.494380 0.025179 0.010392 0.003464 -0.012947 0.070999 0.997386 38671.815641 0.000000 0.000000 0.000000 0.000000 0.000000 38671.815641 0.000000 0.000000 0.000000 0.000000 38671.815641 0.000000 0.000000 0.000000 9308.464703 0.000000 0.000000 9308.464703 0.000000 9308.464703 0
EDGE_SE3:QUAT 490 491 0.496422 0.024357 -0.000090 -0.009928 -0.031291 0.040785 0.998628 36120.527103 0.000000 0.000000 0.000000 0.000000 0.000000 36120.527103 0.000000 0.000000 0.000000 0.000000 36120.527103 0.000000 0.000000 0.000000 9308.464703 0.000000 0.000000 9308.464703 0.000000 9308.464703 0
EDGE_SE3:QUAT 491 492 0.471782 0.002387 0.014979 0.004936 -0.041088 0.003711 0.999136 9945.257764 0.000000 0.000000 0.000000 0.000000 0.000000 9945.257764 0.000000 0.000000 0.000000 0.000000 9945.257764 0.000000 0.000000 0.000000 4977.740325 0.000000 0.000000 4977.740325 0.000000 4977.740325 0
EDGE_SE3:QUAT 492 493 0.499824 -0.001902 -0.024462 0.004747 0.026645 -0.000356 0.999634 13990.599125 0.000000 0.000000 0.000000 0.000000 0.000000 13990.599125 0.000000 0.000000 0.000000 0.000000 13990.599125 0.000000 0.000000 0.000000 5889.204784 0.000000 0.000000 5889.204784 0.000000 5889.204784 0
EDGE_SE3:QUAT 493 494 0.512551 0.032812 -0.011986 0.002541 0.016623 0.060955 0.997999 16474.980455 0.000000 0.000000 0.000000 0.000000 0.000000 16474.980455 0.000000 0.000000 0.000000 0.000000 16474.980455 0.000000 0.000000 0.000000 5376.359507 0.000000 0.000000 5376.359507 0.000000 5376.359507 0
EDGE_SE3:QUAT 494 495 0.511307 0.028425 0.010365 -0.009129 -0.038089 0.072416 0.996605 5168.458740 0.000000 0.000000 0.000000 0.000000 0.000000 5168.458740 0.000000 0.000000 0.000000 0.000000 5168.458740 0.000000 0.000000 0.000000 3520.307063 0.000000 0.000000 3520.307063 0.000000 3520.307063 0
EDGE_SE3:QUAT 495 496 0.505500 0.014499 -0.021574 0.001300 0.015282 0.022347 0.999633 6865.750526 0.000000 0.000000 0.000000 0.000000 0.000000 6865.750526 0.000000 0.000000 0.000000 0.000000 6865.750526 0.000000 0.000000 0.000000 4977.740325 0.000000 0.000000 4977.740325 0.000000 4977.740325 0
EDGE_SE3:QUAT 496 497 0.514655 0.007799 -0.022010 0.005547 0.009453 0.001654 0.999939 17611.368540 0.000000 0.000000 0.000000 0.000000 0.000000 17611.368540 0.000000 0.000000 0.000000 0.000000 17611.368540 0.000000 0.000000 0.000000 6583.873645 0.000000 0.000000 6583.873645 0.000000 6583.873645 0
EDGE_SE3:QUAT 497 498 0.516373 0.047264 -0.024097 0.004256 0.034603 0.085576 0.995721 15315.520134 0.000000 0.000000 0.000000 0.000000 0.000000 15315.520134 0.000000 0.000000 0.000000 0.000000 15315.520134 0.000000 0.000000 0.000000 5889.204784 0.000000 0.000000 5889.204784 0.000000 5889.204784 0
EDGE_SE3:QUAT 498 499 0.528084 0.078097 -0.005439 -0.009731 -0.005463 0.150614 0.988530 7802.515774 0.000000 0.000000 0.000000 0.000000 0.000000 7802.515774 0.000000 0.000000 0.000000 0.000000 7802.515774 0.000000 0.000000 0.000000 4656.399548 0.000000 0.000000 4656.399548 0.000000 4656.399548 0
EDGE_SE3:QUAT 499 500 0.518664 0.079589 -0.011443 -0.005480 0.006566 0.154823 0.987905 5692.056915 0.000000 0.000000 0.000000 0.000000 0.000000 5692.056915 0.000000 0.000000 0.000000 0.000000 5692.056915 0.000000 0.000000 0.000000 4390.212214 0.000000 0.000000 4390.212214 0.000000 4390.212214 0
EDGE_SE3:QUAT 500 501 0.537505 0.041156 -0.010959 0.009449 0.001114 0.056685 0.998347 10523.146919 0.000000 0.000000 0.000000 0.000000 0.000000 10523.146919 0.000000 0.000000 0.000000 0.000000 10523.146919 0.000000 0.000000 0.000000 4390.212214 0.000000 0.000000 4390.212214 0.000000 4390.212214 0
EDGE_SE3:QUAT 501 502 0.540221 -0.015132 -0.012614 0.000262 0.011782 -0.072011 0.997334 9878.504844 0.000000 0.000000 0.000000 0.000000 0.000000 9878.504844 0.000000 0.000000 0.000000 0.000000 9878.504844 0.000000 0.000000 0.000000 3104.748017 0.000000 0.000000 3104.748017 0.000000 3104.748017 0
EDGE_SE3:QUAT 502 503 0.519449 -0.069439 0.009152 -0.004156 -0.022035 -0.178594 0.983667 9035.214899 0.000000 0.000000 0.000000 0.000000 0.000000 9035.214899 0.000000 0.000000 0.000000 0.000000 9035.214899 0.000000 0.000000 0.000000 3520.307063 0.000000 0.000000 3520.307063 0.000000 3520.307063 0
EDGE_SE3:QUAT 503 504 0.505327 -0.095367 -0.019215 -0.006479 0.007737 -0.218399 0.975807 12425.428790 0.000000 0.000000 0.000000 0.000000 0.000000 12425.428790 0.000000 0.000000 0.000000 0.000000 12425.428790 0.000000 0.000000 0.000000 4656.399548 0.000000 0.000000 4656.399548 0.000000 4656.399548 0
EDGE_SE3:QUAT 504 505 0.537008 -0.037195 -0.022772 -0.004468 0.012418 -0.079358 0.996759 22185.109548 0.000000 0.000000 0.000000 0.000000 0.000000 22185.109548 0.000000 0.000000 0.000000 0.000000 22185.109548 0.000000 0.000000 0.000000 3802.259062 0.000000 0.000000 3802.259062 0.000000 3802.259062 0
EDGE_SE3:QUAT 505 506 0.526723 -0.001184 -0.000376 -0.000023 -0.003843 -0.027429 0.999616 18741.416978 0.000000 0.000000 0.000000 0.000000 0.000000 18741.416978 0.000000 0.000000 0.000000 0.000000 18741.416978 0.000000 0.000000 0.000000 3653.146618 0.000000 0.000000 3653.146618 0.000000 3653.146618 0
EDGE_SE3:QUAT 506 507 0.519141 0.006018 -0.002417 0.017976 -0.015099 -0.016767 0.999584 18657.525071 0.000000 0.000000 0.000000 0.000000 0.000000 18657.525071 0.000000 0.000000 0.000000 0.000000 18657.525071 0.000000 0.000000 0.000000 3104.748017 0.000000 0.000000 3104.748017 0.000000 3104.748017 0
EDGE_SE3:QUAT 507 508 0.522016 0.000444 -0.020226 0.002059 0.009859 -0.021618 0.999716 13836.766112 0.000000 0.000000 0.000000 0.000000 0.000000 13836.766112 0.000000 0.000000 0.000000 0.000000 13836.766112 0.000000 0.000000 0.000000 2688.902394 0.000000 0.000000 2688.902394 0.000000 2688.902394 0
EDGE_SE3:QUAT 508 509 0.517500 -0.002377 -0.003832 0.003527 -0.014781 -0.015043 0.999771 6221.070994 0.000000 0.000000 0.000000 0.000000 0.000000 6221.070994 0.000000 0.000000 0.000000 0.000000 6221.070994 0.000000 0.000000 0.000000 1609.496533 0.000000 0.000000 1609.496533 0.000000 1609.496533 0
EDGE_SE3:QUAT 509 510 0.516843 0.009743 -0.001019 0.004515 -0.001880 0.016277 0.999856 9145.890437 0.000000 0.000000 0.000000 0.000000 0.000000 9145.890437 0.000000 0.000000 0.000000 0.000000 9145.890437 0.000000 0.000000 0.000000 2109.470743 0.000000 0.000000 2109.470743 0.000000 2109.470743 0
EDGE_SE3:QUAT 510 511 0.519263 0.031001 -0.032429 -0.024719 0.042020 0.120004 0.991576 11442.245920 0.000000 0.000000 0.000000 0.000000 0.000000 11442.245920 0.000000 0.000000 0.000000 0.000000 11442.245920 0.000000 0.000000 0.000000 1901.490659 0.000000 0.000000 1901.490659 0.000000 1901.490659 0
EDGE_SE3:QUAT 511 512 0.540497 0.040473 -0.006740 0.005411 0.002627 0.132549 0.991158 6486.095651 0.000000 0.000000 0.000000 0.000000 0.000000 6486.095651 0.000000 0.000000 0.000000 0.000000 6486.095651 0.000000 0.000000 0.000000 1373.547703 0.000000 0.000000 1373.547703 0.000000 1373.547703 0
EDGE_SE3:QUAT 512 513 0.531765 0.050255 -0.006211 0.002618 0.003641 0.093893 0.995572 6663.239685 0.000000 0.000000 0.000000 0.000000 0.000000 6663.239685 0.000000 0.000000 0.000000 0.000000 6663.239685 0.000000 0.000000 0.000000 1673.126769 0.000000 0.000000 1673.126769 0.000000 1673.126769 0
EDGE_SE3:QUAT 513 514 0.542605 0.014513 -0.008169 -0.003165 -0.000386 0.026184 0.999652 4710.193589 0.000000 0.000000 0.000000 0.000000 0.000000 4710.193589 0.000000 0.000000 0.000000 0.000000 4710.193589 0.000000 0.000000 0.000000 1304.489403 0.000000 0.000000 1304.489403 0.000000 1304.489403 0
EDGE_SE3:QUAT 514 515 0.535015 0.007847 -0.006146 -0.002205 0.001964 0.011733 0.999927 3744.477638 0.000000 0.000000 0.000000 0.000000 0.000000 3744.477638 0.000000 0.000000 0.000000 0.000000 3744.477638 0.000000 0.000000 0.000000 1079.337243 0.000000 0.000000 1079.337243 0.000000 1079.337243 0
EDGE_SE3:QUAT 515 516 0.535973 0.014701 0.000018 0.000181 -0.001019 0.038088 0.999274 3005.902867 0.000000 0.000000 0.000000 0.000000 0.000000 3005.902867 0.000000 0.000000 0.000000 0.000000 3005.902867 0.000000 0.000000 0.000000 1054.845947 0.000000 0.000000 1054.845947 0.000000 1054.845947 0
EDGE_SE3:QUAT 516 517 0.530619 0.083574 -0.001394 0.002008 0.001139 0.175778 0.984427 2483.663322 0.000000 0.000000 0.000000 0.000000 0.000000 2483.663322 0.000000 0.000000 0.000000 0.000000 2483.663322 0.000000 0.000000 0.000000 1142.409451 0.000000 0.000000 1142.409451 0.000000 1142.409451 0
EDGE_SE3:QUAT 517 518 0.110538 0.008707 -0.001109 0.001432 -0.001375 0.055454 0.998459 5532.450265 0.000000 0.000000 0.000000 0.000000 0.000000 5532.450265 0.000000 0.000000 0.000000 0.000000 5532.450265 0.000000 0.000000 0.000000 1187.936121 0.000000 0.000000 1187.936121 0.000000 1187.936121 0
EDGE_SE3:QUAT 518 519 0.004926 -0.017759 0.001511 0.001017 0.002620 0.354235 0.935152 6792.701560 0.000000 0.000000 0.000000 0.000000 0.000000 6792.701560 0.000000 0.000000 0.000000 0.000000 6792.701560 0.000000 0.000000 0.000000 1388.723314 0.000000 0.000000 1388.723314 0.000000 1388.723314 0
EDGE_SE3:QUAT 519 520 0.002311 -0.003869 -0.001443 0.001933 0.000319 0.095896 0.995389 6881.421492 0.000000 0.000000 0.000000 0.000000 0.000000 6881.421492 0.000000 0.000000 0.000000 0.000000 6881.421492 0.000000 0.000000 0.000000 938.692159 0.000000 0.000000 938.692159 0.000000 938.692159 0
EDGE_SE3:QUAT 520 521 0.233339 -0.001957 -0.000587 -0.000497 -0.000785 0.002393 0.999997 7024.067985 0.000000 0.000000 0.000000 0.000000 0.000000 7024.067985 0.000000 0.000000 0.000000 0.000000 7024.067985 0.000000 0.000000 0.000000 924.717104 0.000000 0.000000 924.717104 0.000000 924.717104 0
EDGE_SE3:QUAT 521 522 0.405038 0.001071 -0.003455 -0.001981 0.000163 -0.000155 0.999998 3300.246137 0.000000 0.000000 0.000000 0.000000 0.000000 3300.246137 0.000000 0.000000 0.000000 0.000000 3300.246137 0.000000 0.000000 0.000000 804.812238 0.000000 0.000000 804.812238 0.000000 804.812238 0
EDGE_SE3:QUAT 522 523 0.393212 -0.000033 -0.002422 0.003189 -0.002974 -0.000551 0.999990 4336.995727 0.000000 0.000000 0.000000 0.000000 0.000000 4336.995727 0.000000 0.000000 0.000000 0.000000 4336.995727 0.000000 0.000000 0.000000 917.959628 0.000000 0.000000 917.959628 0.000000 917.959628 0
EDGE_SE3:QUAT 523 524 0.384671 -0.002221 -0.000602 0.000561 0.001790 -0.001480 0.999997 4864.492492 0.000000 0.000000 0.000000 0.000000 0.000000 4864.492492 0.000000 0.000000 0.000000 0.000000 4864.492492 0.000000 0.000000 0.000000 920.195602 0.000000 0.000000 920.195602 0.000000 920.195602 0
EDGE_SE3:QUAT 524 525 0.404103 0.008656 -0.003857 -0.000024 0.003838 0.040378 0.999177 5426.160642 0.000000 0.000000 0.000000 0.000000 0.000000 5426.160642 0.000000 0.000000 0.000000 0.000000 5426.160642 0.000000 0.000000 0.000000 1113.486203 0.000000 0.000000 1113.486203 0.000000 1113.486203 0
EDGE_SE3:QUAT 525 526 0.421034 0.014363 -0.004076 -0.000747 0.004652 0.027677 0.999606 8461.885509 0.000000 0.000000 0.000000 0.000000 0.000000 8461.885509 0.000000 0.000000 0.000000 0.000000 8461.885509 0.000000 0.000000 0.000000 1285.721126 0.000000 0.000000 1285.721126 0.000000 1285.721126 0
EDGE_SE3:QUAT 526 527 0.358131 -0.003683 0.000687 -0.001005 -0.003701 -0.015077 0.999879 3622.674684 0.000000 0.000000 0.000000 0.000000 0.000000 3622.674684 0.000000 0.000000 0.000000 0.000000 3622.674684 0.000000 0.000000 0.000000 823.457550 0.000000 0.000000 823.457550 0.000000 823.457550 0
EDGE_SE3:QUAT 527 528 0.352648 -0.009039 0.000600 -0.001720 -0.001706 -0.026969 0.999633 5427.564646 0.000000 0.000000 0.000000 0.000000 0.000000 5427.564646 0.000000 0.000000 0.000000 0.000000 5427.564646 0.000000 0.000000 0.000000 1261.912452 0.000000 0.000000 1261.912452 0.000000 1261.912452 0
EDGE_SE3:QUAT 528 529 0.355899 -0.000446 -0.001561 -0.001474 -0.002522 -0.010535 0.999940 6608.293678 0.000000 0.000000 0.000000 0.000000 0.000000 6608.293678 0.000000 0.000000 0.000000 0.000000 6608.293678 0.000000 0.000000 0.000000 1279.642826 0.000000 0.000000 1279.642826 0.000000 1279.642826 0
EDGE_SE3:QUAT 529 530 0.303994 0.002693 -0.003984 -0.001919 0.002593 -0.018043 0.999832 3613.629311 0.000000 0.000000 0.000000 0.000000 0.000000 3613.629311 0.000000 0.000000 0.000000 0.000000 3613.629311 0.000000 0.000000 0.000000 1117.483876 0.000000 0.000000 1117.483876 0.000000 1117.483876 0
EDGE_SE3:QUAT 530 531 0.128729 -0.001240 0.000734 -0.001427 0.001639 -0.008971 0.999957 4937.732074 0.000000 0.000000 0.000000 0.000000 0.000000 4937.732074 0.000000 0.000000 0.000000 0.000000 4937.732074 0.000000 0.000000 0.000000 1197.712395 0.000000 0.000000 1197.712395 0.000000 1197.712395 0
@@ -0,0 +1,481 @@
#timestamp x y z qx qy qz qw
1415737702.883420 -0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 1.000000
1415737706.070552 0.297207 -0.007288 -0.000403 -0.000550 0.001382 -0.004274 0.999990
1415737707.132929 0.700927 -0.019087 -0.005507 -0.003759 0.005078 -0.013508 0.999889
1415737708.195304 1.087739 -0.039823 -0.008676 -0.005522 0.002517 -0.037999 0.999259
1415737709.257684 1.466688 -0.113520 -0.006038 -0.006645 -0.002732 -0.180761 0.983501
1415737710.320058 1.827479 -0.280288 -0.002561 -0.007300 0.002042 -0.256932 0.966400
1415737711.382436 2.203717 -0.486904 -0.004910 -0.002223 0.005822 -0.269574 0.962960
1415737712.444813 2.595227 -0.718986 -0.009439 0.001246 0.004420 -0.282126 0.959366
1415737713.507190 3.014885 -0.982126 -0.011883 0.001032 0.000475 -0.295680 0.955286
1415737714.569567 3.449838 -1.278228 -0.015086 -0.001560 -0.000849 -0.308351 0.951271
1415737715.631947 3.849396 -1.563145 -0.008654 -0.001399 0.010471 -0.320922 0.947047
1415737716.694322 4.247778 -1.863859 -0.023785 0.003899 0.033324 -0.335968 0.941276
1415737717.756699 4.656878 -2.192277 -0.055698 -0.010879 0.017770 -0.340225 0.940113
1415737718.819076 5.060324 -2.530946 -0.067071 -0.006963 0.001136 -0.352120 0.935928
1415737719.881456 5.464753 -2.874362 -0.074274 -0.007662 -0.001656 -0.336040 0.941815
1415737720.943833 5.858321 -3.177449 -0.082481 -0.012297 0.021808 -0.325598 0.945177
1415737722.006208 6.244966 -3.465100 -0.098285 -0.018759 0.012571 -0.328595 0.944201
1415737723.068585 6.473748 -3.676082 -0.102251 -0.012754 0.013476 -0.422325 0.906254
1415737724.130963 6.475429 -3.669803 -0.101773 -0.018196 0.010295 -0.525981 0.850239
1415737725.193342 6.477586 -3.668774 -0.100729 -0.020818 0.004589 -0.607632 0.793933
1415737726.255718 6.587993 -4.050375 -0.094076 -0.014434 -0.000498 -0.611996 0.790729
1415737727.318101 6.672512 -4.538860 -0.089237 -0.015221 -0.016942 -0.689126 0.724284
1415737728.380474 6.688693 -4.829775 -0.085575 -0.001698 -0.000284 -0.699718 0.714417
1415737729.442850 6.688115 -4.827434 -0.085183 0.000699 -0.001574 -0.632723 0.774376
1415737730.505227 6.672915 -4.827210 -0.080454 -0.000520 0.002467 -0.393295 0.919409
1415737732.629982 6.967871 -5.104074 -0.074587 -0.016565 -0.018221 -0.370161 0.928641
1415737733.692359 7.255134 -5.366476 -0.069184 -0.025786 0.001132 -0.359093 0.932945
1415737734.754739 7.578664 -5.650684 -0.061632 -0.013151 -0.013458 -0.362172 0.931921
1415737735.817114 7.880760 -5.923184 -0.057641 -0.000078 -0.007423 -0.363681 0.931494
1415737736.879492 8.216614 -6.221097 -0.060222 0.003348 0.012879 -0.367963 0.929745
1415737737.941869 8.545370 -6.525254 -0.066648 -0.001936 0.004389 -0.370975 0.928630
1415737739.004247 8.862854 -6.872303 -0.072708 -0.014754 -0.014297 -0.468278 0.883342
1415737740.066624 9.046622 -7.283012 -0.066624 -0.006043 -0.005579 -0.647413 0.762095
1415737741.129001 9.062366 -7.746761 -0.059782 -0.002661 -0.001460 -0.743846 0.668344
1415737742.191380 9.020174 -8.251387 -0.057357 -0.011046 -0.014540 -0.726731 0.686680
1415737743.253755 9.049316 -8.748811 -0.043592 -0.001912 -0.008602 -0.631169 0.775595
1415737744.316133 9.207206 -9.224814 -0.032250 -0.007882 -0.019702 -0.554969 0.831600
1415737745.378510 9.403651 -9.672992 -0.016622 0.002666 -0.008094 -0.550537 0.834767
1415737746.440890 9.599689 -10.100506 -0.013644 0.017005 -0.007184 -0.536069 0.843972
1415737747.503266 9.821524 -10.555017 -0.011231 0.012154 -0.016637 -0.532421 0.846229
1415737748.565642 10.034784 -10.982931 0.001380 -0.003469 -0.014870 -0.538744 0.842331
1415737749.628019 10.219577 -11.411628 0.011340 -0.017569 -0.027021 -0.575971 0.816835
1415737750.690397 10.369317 -11.836936 0.034042 -0.017487 -0.027241 -0.598122 0.800751
1415737751.752774 10.437685 -12.223157 0.052397 -0.014004 -0.032129 -0.715982 0.697238
1415737752.815151 10.400947 -12.483871 0.060942 -0.013130 -0.045607 -0.787234 0.614826
1415737753.877528 10.347826 -12.710611 0.077622 -0.012203 -0.040233 -0.792355 0.608609
1415737754.939905 10.320610 -12.892543 0.086267 -0.018249 -0.035163 -0.719212 0.693660
1415737756.002283 10.335244 -13.097770 0.097282 -0.018049 -0.022533 -0.658695 0.751856
1415737757.064662 10.378508 -13.345840 0.112098 -0.039632 -0.036838 -0.604877 0.794478
1415737758.127038 10.478564 -13.592049 0.137345 -0.045277 -0.036766 -0.482560 0.873919
1415737759.189415 10.673715 -13.790077 0.159276 -0.039047 -0.019965 -0.261521 0.964201
1415737760.251794 10.945212 -13.883882 0.164373 -0.038111 -0.010815 -0.083843 0.995691
1415737762.376547 10.987339 -13.866891 0.172055 -0.021409 -0.020065 -0.469548 0.882419
1415737763.438925 10.993478 -13.864888 0.164570 -0.025514 -0.033116 -0.695880 0.716941
1415737765.563678 10.992141 -13.969542 0.177701 -0.033864 -0.029510 -0.693299 0.719249
1415737766.626055 11.013530 -14.138080 0.186350 -0.034942 -0.040677 -0.624479 0.779198
1415737767.688433 11.072386 -14.337712 0.208192 -0.044882 -0.041823 -0.569193 0.819912
1415737768.750810 11.193892 -14.568810 0.234024 -0.047770 -0.041772 -0.445341 0.893109
1415737769.813193 11.375619 -14.778193 0.259932 -0.049682 -0.050525 -0.444442 0.893001
1415737770.875565 11.509504 -15.004620 0.289145 -0.052894 -0.062408 -0.594520 0.799909
1415737771.937943 11.589595 -15.282693 0.326049 -0.050912 -0.061095 -0.655311 0.751161
1415737773.000320 11.625100 -15.537633 0.358488 -0.040297 -0.063145 -0.688553 0.721307
1415737774.062697 11.664193 -15.815841 0.387012 -0.016671 -0.058386 -0.614358 0.786688
1415737775.125075 11.775672 -16.080564 0.412130 -0.009377 -0.047170 -0.515850 0.855328
1415737776.187452 11.887134 -16.289068 0.431176 -0.008651 -0.051787 -0.500039 0.864410
1415737777.249832 12.020911 -16.487286 0.453591 -0.005714 -0.042774 -0.424821 0.904248
1415737778.312208 12.214423 -16.654669 0.475826 -0.016600 -0.040410 -0.259066 0.964871
1415737779.374584 12.468792 -16.746426 0.485373 -0.021109 -0.009105 -0.088733 0.995790
1415737780.436963 12.698627 -16.787113 0.490671 -0.025213 0.011689 -0.069354 0.997205
1415737781.499339 12.975039 -16.823875 0.485736 -0.025202 -0.011869 -0.063500 0.997593
1415737782.561716 13.235614 -16.855215 0.488868 -0.031404 -0.009837 -0.061728 0.997550
1415737783.624093 13.521177 -16.883270 0.485400 -0.024576 0.003349 -0.048522 0.998514
1415737787.873604 13.604019 -16.870800 0.483194 -0.022901 -0.006050 -0.216751 0.975940
1415737788.935981 13.607748 -16.852610 0.485744 -0.033268 -0.018592 -0.564984 0.824221
1415737789.998356 13.627279 -16.843246 0.481204 -0.017387 -0.021837 -0.850524 0.525196
1415737791.060733 13.631705 -16.847717 0.483596 0.017652 0.034988 0.986849 -0.156825
1415737792.123113 13.632862 -16.858263 0.483608 0.004911 0.023992 0.977731 0.208428
1415737793.185490 13.626355 -16.865686 0.485385 -0.006408 0.034754 0.880643 0.472461
1415737794.247866 13.618299 -16.866049 0.485939 -0.006858 0.031164 0.788237 0.614544
1415737795.310243 13.612241 -16.865412 0.487283 -0.006935 0.026559 0.694979 0.718506
1415737796.372620 13.611304 -16.865486 0.486370 -0.006749 0.019269 0.633615 0.773379
1415737799.559752 13.612142 -16.863712 0.484743 -0.009159 0.011873 0.566627 0.823838
1415737800.622129 13.557487 -17.010300 0.488934 -0.013677 0.020092 0.559029 0.828792
1415737801.684508 13.424199 -17.280624 0.510242 -0.025009 0.037997 0.486443 0.872527
1415737802.746884 13.205340 -17.509424 0.523417 -0.004289 -0.009070 0.285845 0.958224
1415737803.809260 13.030069 -17.610830 0.524880 -0.006514 -0.006726 0.237544 0.971332
1415737804.871638 13.036937 -17.612339 0.530340 -0.001943 0.004178 0.394454 0.918904
1415737805.934016 13.049808 -17.618837 0.526642 -0.002961 0.007470 0.667683 0.744403
1415737806.996393 13.065364 -17.616264 0.521120 0.001693 0.008871 0.872427 0.488661
1415737808.058769 13.075343 -17.607410 0.523909 0.008525 0.014074 0.986105 0.165304
1415737809.121147 13.055898 -17.600126 0.521865 0.009940 0.009908 0.994558 0.103232
1415737810.183524 12.781411 -17.541058 0.522008 0.013750 0.017217 0.996631 0.078996
1415737811.245901 12.463018 -17.508966 0.525637 0.012516 0.022749 0.999658 0.003257
1415737812.308280 12.317531 -17.523022 0.526370 -0.006151 0.024410 0.994815 -0.098537
1415737813.370656 12.317300 -17.514816 0.527909 -0.003727 0.023912 0.962994 -0.268436
1415737814.433034 12.317035 -17.502182 0.533525 -0.012808 -0.024323 -0.826806 0.561816
1415737815.495410 12.311630 -17.502693 0.536276 -0.011043 -0.021921 -0.562949 0.826127
1415737816.557787 12.300429 -17.507277 0.539534 -0.022500 -0.008161 -0.197216 0.980068
1415737817.620166 12.302053 -17.521849 0.536506 -0.015548 -0.007832 0.210629 0.977411
1415737818.682542 12.308065 -17.530100 0.534841 -0.012684 -0.000897 0.406676 0.913484
1415737819.744921 12.500440 -17.315769 0.532112 -0.017073 0.015421 0.408789 0.912339
1415737820.807296 12.822581 -16.980978 0.514154 -0.014814 0.022882 0.313922 0.949057
1415737821.869673 13.216861 -16.748306 0.487638 -0.018389 0.016906 0.232792 0.972206
1415737822.932050 13.543225 -16.527870 0.472950 -0.017800 0.012967 0.373720 0.927280
1415737823.994428 13.789813 -16.222313 0.457209 -0.024547 0.005641 0.456209 0.889516
1415737825.056805 13.991039 -15.916025 0.444471 -0.025304 0.010620 0.484524 0.874348
1415737826.119182 14.181281 -15.600853 0.427579 -0.019622 0.010315 0.490528 0.871144
1415737827.181559 14.354988 -15.283593 0.409990 -0.024238 0.014888 0.547575 0.836273
1415737829.306314 14.380777 -15.265206 0.411808 -0.014190 0.019285 0.828873 0.558924
1415737830.368692 14.385307 -15.263857 0.412744 -0.009138 0.019876 0.881422 0.471822
1415737831.431068 14.390368 -15.259765 0.409987 -0.008822 0.026707 0.943435 0.330361
1415737832.493447 14.184569 -15.080460 0.399705 -0.011044 0.032937 0.924901 0.378617
1415737833.555825 13.962880 -14.734529 0.383102 -0.003209 0.042137 0.795323 0.604712
1415737834.618200 13.950537 -14.369042 0.348993 -0.040022 0.026557 0.608846 0.791833
1415737835.680580 14.037263 -14.009762 0.312427 -0.057252 -0.001119 0.573788 0.817000
1415737836.742954 14.148871 -13.683140 0.287283 -0.057165 0.009119 0.560024 0.826451
1415737837.805332 14.333928 -13.362993 0.271356 -0.049846 -0.012207 0.359935 0.931565
1415737838.867709 14.625889 -13.196788 0.283285 -0.042034 -0.040110 0.102668 0.993017
1415737839.930086 14.997995 -13.103970 0.306374 -0.032630 -0.044596 0.128819 0.990127
1415737840.992463 15.315399 -12.979806 0.316285 -0.036160 -0.007125 0.228567 0.972830
1415737842.054841 15.573728 -12.839860 0.312657 -0.035191 0.002918 0.247162 0.968331
1415737843.117218 15.564738 -12.834804 0.314199 -0.030819 -0.008555 0.097556 0.994716
1415737844.179596 15.562998 -12.812402 0.316323 -0.027185 -0.030913 -0.319077 0.946834
1415737845.241973 15.569216 -12.800784 0.312471 -0.022813 -0.035140 -0.697785 0.715081
1415737846.304350 15.583553 -12.802828 0.309056 0.010375 0.044000 0.931006 -0.362193
1415737847.366727 15.584132 -12.813410 0.309039 -0.011890 0.034232 0.997198 0.065447
1415737848.429104 15.571840 -12.822796 0.308760 -0.021264 0.032722 0.884993 0.463966
1415737849.491481 15.567374 -12.822525 0.305978 -0.026845 0.026809 0.790329 0.611507
1415737850.553859 15.523145 -12.588450 0.291533 -0.025855 0.020274 0.732431 0.680048
1415737851.616236 15.512638 -12.276415 0.269317 -0.035969 0.012015 0.689489 0.723303
1415737852.678613 15.541712 -11.890884 0.257328 -0.021187 -0.022447 0.624226 0.780634
1415737853.740990 15.634741 -11.494071 0.254826 -0.030679 -0.011806 0.600534 0.798923
1415737854.803367 15.729422 -11.151771 0.247993 -0.019881 -0.010200 0.606182 0.795012
1415737857.990499 15.755819 -11.057789 0.244842 -0.019187 -0.002302 0.670301 0.741838
1415737859.052876 15.768134 -11.056891 0.248468 -0.025849 0.007118 0.835753 0.548450
1415737860.115254 15.774804 -11.052881 0.245727 -0.018245 0.009746 0.917983 0.396080
1415737862.240008 15.509745 -10.803608 0.230120 -0.018895 0.024122 0.942577 0.332580
1415737863.302385 15.225884 -10.584762 0.208617 -0.023217 0.028200 0.946861 0.319563
1415737864.364762 14.932817 -10.372270 0.189167 -0.016164 0.021911 0.950891 0.308328
1415737865.427139 14.637596 -10.142470 0.169691 -0.016959 0.012494 0.933336 0.358386
1415737866.489516 14.341645 -9.872950 0.148669 -0.014945 0.008148 0.926053 0.377010
1415737867.551894 14.021996 -9.561430 0.133286 -0.007657 0.002477 0.923177 0.384291
1415737868.614271 13.687910 -9.251025 0.120518 -0.012796 0.007487 0.937360 0.348047
1415737869.676649 13.327748 -8.955702 0.103958 -0.014147 0.007350 0.941486 0.336676
1415737870.739025 12.949648 -8.646025 0.082614 -0.013086 0.014340 0.945874 0.323952
1415737871.801403 12.537619 -8.332017 0.066344 -0.012454 0.015600 0.948048 0.317501
1415737872.863780 12.117064 -8.027689 0.038988 -0.019467 0.000132 0.949929 0.311858
1415737873.926157 11.696435 -7.732824 0.018354 -0.012126 0.007047 0.954035 0.299368
1415737874.988534 11.277628 -7.437942 -0.008521 -0.036452 0.007265 0.947120 0.318721
1415737876.050912 10.858293 -7.122739 -0.033827 -0.018834 -0.005146 0.944103 0.329071
1415737877.113289 10.446569 -6.788231 -0.055315 -0.016285 0.002944 0.941025 0.337933
1415737878.175666 10.047589 -6.456465 -0.062509 0.011350 -0.006887 0.937210 0.348514
1415737879.238044 9.654986 -6.109542 -0.067198 -0.002799 0.019218 0.934437 0.355600
1415737880.300421 9.259235 -5.760267 -0.083034 0.003423 0.019863 0.945461 0.325112
1415737881.362798 8.833440 -5.442094 -0.082966 0.011505 0.031118 0.951177 0.306859
1415737882.425175 8.406234 -5.133014 -0.079857 0.023925 0.021193 0.952920 0.301534
1415737883.487558 7.980869 -4.798532 -0.084596 -0.009678 0.009015 0.930929 0.364962
1415737884.549930 7.593131 -4.426987 -0.102814 -0.004039 0.024863 0.924915 0.379338
1415737885.612307 7.221503 -4.054790 -0.107618 0.024560 0.024307 0.925768 0.376510
1415737886.674685 6.834067 -3.691391 -0.111397 0.013018 0.021275 0.930959 0.364270
1415737887.737062 6.443308 -3.340591 -0.103624 0.022217 0.019439 0.935637 0.351728
1415737888.799438 6.029097 -3.011795 -0.093223 0.037185 0.022772 0.947917 0.315520
1415737889.861816 5.611187 -2.706734 -0.086129 0.006930 0.011137 0.952293 0.304904
1415737890.924193 5.197616 -2.413291 -0.086063 0.011240 0.005947 0.955183 0.295743
1415737891.986570 4.762222 -2.127129 -0.071002 0.029884 0.007106 0.959460 0.280165
1415737893.048948 4.330885 -1.859460 -0.042345 0.047901 0.000585 0.958863 0.279797
1415737894.111328 3.905581 -1.599417 -0.027026 0.017290 0.007271 0.963803 0.265955
1415737895.173703 3.487514 -1.354672 -0.024979 0.003205 0.003897 0.965207 0.261438
1415737896.236080 3.087719 -1.139348 -0.029233 0.004413 0.005229 0.972643 0.232203
1415737897.298457 2.643431 -0.938845 -0.027110 0.008053 0.005755 0.981228 0.192598
1415737898.360835 2.196143 -0.786437 -0.020710 0.013527 0.007048 0.989767 0.141874
1415737899.423211 1.762994 -0.689241 -0.013394 0.009118 0.004835 0.995964 0.089162
1415737900.485589 1.333916 -0.626403 -0.011475 0.003464 0.006973 0.997514 0.070040
1415737901.547966 0.916439 -0.573764 -0.008202 0.008576 0.004585 0.994817 0.101217
1415737902.610343 0.612154 -0.462964 -0.005270 0.007387 0.001601 0.955436 0.295102
1415737903.672720 0.412232 -0.269832 -0.002031 0.005977 0.003392 0.902642 0.430337
1415737904.735099 0.274273 -0.098838 -0.001370 0.006560 0.003383 0.892059 0.451859
1415737906.859854 0.226080 -0.058898 -0.000343 0.004759 0.003418 0.616836 0.787070
1415737907.922231 0.214815 -0.049327 -0.001331 0.002826 -0.001372 0.246386 0.969167
1415737908.984606 0.212310 -0.037656 -0.001744 -0.002260 -0.000691 -0.037618 0.999289
1415737911.109363 0.222042 0.102376 -0.001590 -0.001545 -0.000303 -0.018628 0.999825
1415737913.234115 -0.022733 0.111379 -0.000166 0.000254 -0.000214 -0.002605 0.999997
1415737922.795509 0.084286 0.112816 -0.000558 -0.000202 0.000717 -0.005799 0.999983
1415737923.857887 0.232103 0.109418 -0.001761 -0.001134 0.002089 -0.035644 0.999362
1415737932.356904 0.474408 0.104761 -0.003804 -0.002602 0.003634 -0.021074 0.999768
1415737947.480156 0.776374 0.095967 -0.006372 -0.003764 0.005447 -0.021121 0.999755
1415737948.542533 1.038842 0.086724 -0.010208 -0.003438 0.003018 -0.025421 0.999666
1415737949.604910 1.321001 0.072308 -0.010645 -0.005726 -0.003550 -0.033207 0.999426
1415737950.667288 1.662269 0.049851 -0.007910 -0.004445 -0.000521 -0.044285 0.999009
1415737951.729665 2.050822 0.014229 -0.011802 -0.003057 0.002156 -0.065984 0.997814
1415737952.792042 2.409886 -0.048684 -0.012535 -0.004243 0.004416 -0.147408 0.989057
1415737953.854419 2.712650 -0.191384 -0.013055 -0.007022 -0.000883 -0.324296 0.945929
1415737954.916797 3.008956 -0.448275 -0.011122 -0.002947 0.000161 -0.380393 0.924820
1415737955.979173 3.282640 -0.720320 -0.008690 -0.000967 -0.006976 -0.409694 0.912196
1415737957.041551 3.543260 -1.016227 -0.010420 0.000635 0.001113 -0.432035 0.901856
1415737958.103929 3.820451 -1.351663 -0.004989 -0.014845 -0.000064 -0.446118 0.894851
1415737959.166305 4.081958 -1.688289 -0.017949 -0.004607 0.026926 -0.456695 0.889204
1415737960.228684 4.333947 -2.021163 -0.033836 -0.014104 0.030426 -0.443386 0.895703
1415737961.291060 4.618527 -2.372107 -0.050238 -0.012707 0.016470 -0.473686 0.880448
1415737962.353437 4.793990 -2.757437 -0.055005 -0.009633 0.010191 -0.605265 0.795901
1415737963.415814 4.911946 -3.163985 -0.051857 -0.016910 0.005091 -0.603767 0.796965
1415737964.478192 5.033749 -3.540643 -0.045170 -0.023254 -0.007299 -0.575962 0.817113
1415737965.540569 5.136902 -3.906132 -0.041167 -0.013576 0.008166 -0.572926 0.819454
1415737966.602946 5.240246 -4.298472 -0.040787 -0.021696 0.011933 -0.572747 0.819358
1415737967.665324 5.355924 -4.740252 -0.043617 -0.009856 0.002648 -0.558167 0.829666
1415737968.727701 5.480280 -5.157649 -0.046825 -0.008713 -0.005457 -0.526156 0.850326
1415737969.790078 5.641327 -5.570795 -0.035737 -0.010371 -0.006700 -0.473535 0.880688
1415737970.852458 5.820017 -5.958232 -0.033480 -0.015844 -0.001907 -0.434996 0.900291
1415737971.914833 6.019396 -6.346899 -0.025842 -0.022230 0.000373 -0.371836 0.928032
1415737972.977211 6.284937 -6.687123 -0.020561 -0.013565 -0.005375 -0.319740 0.947393
1415737974.039589 6.521807 -6.960314 -0.018517 -0.002740 0.006001 -0.323541 0.946191
1415737975.101964 6.744379 -7.262732 -0.022353 -0.001904 0.011145 -0.399061 0.916855
1415737976.164344 6.948895 -7.597580 -0.020847 -0.001730 -0.000442 -0.403418 0.915014
1415737977.226722 7.181215 -7.941017 -0.018311 -0.006793 -0.013939 -0.378275 0.925563
1415737978.289097 7.391415 -8.259534 -0.013348 -0.001711 -0.013204 -0.375975 0.926534
1415737979.351474 7.583969 -8.594996 -0.002576 -0.001553 -0.005754 -0.378578 0.925550
1415737980.413852 7.758307 -8.941208 -0.006118 -0.002430 -0.010533 -0.375762 0.926653
1415737981.476228 7.913909 -9.294748 0.004227 -0.007448 -0.012967 -0.382938 0.923653
1415737982.538606 8.079233 -9.691836 0.007823 -0.008387 -0.019926 -0.371147 0.928322
1415737983.600985 8.275148 -10.063763 0.014726 -0.004885 -0.009776 -0.296416 0.954997
1415737984.663360 8.487873 -10.406416 0.023094 -0.008034 -0.012306 -0.288191 0.957460
1415737985.725743 8.705660 -10.748962 0.034361 -0.010982 -0.013532 -0.282436 0.959128
1415737986.788115 8.875661 -10.990728 0.042765 -0.010910 -0.016060 -0.221118 0.975054
1415737987.850492 8.874748 -10.993511 0.043427 -0.010549 -0.015403 -0.160092 0.986925
1415737988.912870 8.871044 -11.003353 0.049248 -0.018174 -0.009003 0.100131 0.994768
1415737991.037624 9.261156 -10.920631 0.050201 -0.017507 -0.010499 0.075674 0.996924
1415737992.100001 9.667365 -10.882385 0.055866 -0.010182 -0.010718 0.006996 0.999866
1415737993.162379 10.088056 -10.876288 0.065365 -0.000394 -0.016846 -0.010178 0.999806
1415737994.224758 10.529491 -10.887248 0.082761 -0.000069 -0.035922 -0.026384 0.999006
1415737995.287135 11.001882 -10.914084 0.110668 -0.009976 -0.026712 -0.044655 0.998595
1415737996.349511 11.480304 -10.957733 0.128112 0.000418 -0.021375 -0.051148 0.998462
1415737997.411888 11.972815 -11.011531 0.139477 -0.004365 -0.014758 -0.067004 0.997634
1415737998.474268 12.459638 -11.071979 0.157746 -0.011110 -0.045362 -0.079447 0.995744
1415737999.536643 12.941046 -11.145134 0.181946 -0.007002 -0.028370 -0.092693 0.995266
1415738000.599020 13.388262 -11.226751 0.205318 -0.014833 -0.034542 -0.107942 0.993446
1415738001.661397 13.839608 -11.320506 0.234593 -0.013207 -0.043427 -0.123143 0.991350
1415738002.723774 14.258964 -11.426625 0.273644 -0.007161 -0.038489 -0.135039 0.990067
1415738003.786152 14.680033 -11.538947 0.299210 -0.004962 -0.027903 -0.121431 0.992195
1415738004.848529 15.137338 -11.617734 0.322969 -0.003950 -0.038072 -0.055091 0.997747
1415738005.910906 15.597423 -11.643414 0.349621 -0.019275 -0.039975 0.000451 0.999015
1415738006.973284 16.057384 -11.623997 0.381712 -0.020853 -0.036589 0.030757 0.998639
1415738008.035661 16.467577 -11.589320 0.406251 -0.021805 -0.031103 0.041409 0.998420
1415738009.098041 16.579510 -11.577680 0.414239 -0.024648 -0.029919 0.045977 0.998190
1415738010.160416 16.574102 -11.568793 0.414294 -0.014827 -0.032914 -0.110543 0.993216
1415738011.222793 16.580492 -11.557902 0.415432 -0.009074 -0.040527 -0.512296 0.857804
1415738012.285176 16.593969 -11.554049 0.415005 0.008244 -0.036217 -0.811437 0.583258
1415738013.347547 16.603319 -11.562438 0.419581 -0.015418 0.033002 0.969778 -0.241256
1415738014.409925 16.605511 -11.573357 0.419143 -0.024070 0.018230 0.991173 0.129094
1415738015.472302 16.596891 -11.584069 0.420966 -0.029258 -0.001757 0.891507 0.452058
1415738016.534679 16.585093 -11.589776 0.419196 -0.030288 -0.003514 0.664484 0.746680
1415738017.597057 16.572720 -11.586373 0.419402 -0.026401 -0.013882 0.453532 0.890741
1415738019.721812 16.808571 -11.250550 0.421818 -0.028682 -0.018940 0.455277 0.889686
1415738020.784188 17.056040 -10.896603 0.432441 -0.020710 -0.036791 0.453178 0.890420
1415738021.846566 17.325108 -10.556504 0.448522 -0.023818 -0.038538 0.379764 0.923974
1415738022.908946 17.625343 -10.282960 0.467350 -0.023647 -0.044819 0.331492 0.942096
1415738023.971321 17.931490 -10.023431 0.489077 -0.026673 -0.040668 0.326126 0.944075
1415738025.033698 18.284433 -9.740867 0.508441 -0.019816 -0.040899 0.317558 0.947149
1415738026.096076 18.686531 -9.426548 0.532720 -0.034463 -0.036037 0.306093 0.950695
1415738027.158453 19.094294 -9.123113 0.553938 -0.035306 -0.054131 0.296478 0.952851
1415738028.220830 19.494081 -8.829951 0.582495 -0.013222 -0.070263 0.291387 0.953930
1415738029.283209 19.910110 -8.581560 0.624431 -0.031179 -0.052231 0.202700 0.977350
1415738030.345584 20.357082 -8.416024 0.663909 -0.024716 -0.068207 0.142494 0.987133
1415738031.407963 20.825367 -8.269218 0.700898 -0.033971 -0.044871 0.134165 0.989360
1415738032.470340 21.310221 -8.128152 0.743470 -0.007032 -0.069959 0.118316 0.990484
1415738033.532718 21.804642 -8.006191 0.804258 -0.010545 -0.062558 0.105701 0.992372
1415738034.595093 22.291910 -7.897246 0.859787 -0.018062 -0.058252 0.085497 0.994470
1415738035.657473 22.777880 -7.808217 0.908808 -0.005360 -0.064725 0.065487 0.995738
1415738036.719848 23.275576 -7.738362 0.964458 -0.005210 -0.066195 0.049926 0.996543
1415738037.782225 23.779047 -7.687256 1.033643 -0.006992 -0.078155 0.030548 0.996449
1415738038.844603 24.291977 -7.632043 1.113084 -0.005642 -0.089488 0.087218 0.992146
1415738039.906979 24.792595 -7.491662 1.184133 0.008676 -0.085349 0.140956 0.986292
1415738040.969359 25.273830 -7.332484 1.253493 -0.008436 -0.075892 0.164623 0.983397
1415738042.031736 25.744272 -7.155049 1.310197 -0.008616 -0.062020 0.176225 0.982356
1415738043.094112 26.195368 -6.957319 1.361300 -0.000994 -0.066298 0.208694 0.975731
1415738044.156491 26.675365 -6.779469 1.416106 -0.010273 -0.055514 0.077426 0.995398
1415738045.218865 27.135004 -6.752932 1.473565 0.004955 -0.088463 -0.035523 0.995434
1415738046.281244 27.563997 -6.749808 1.523215 -0.004917 -0.055344 0.039913 0.997657
1415738047.343621 27.820385 -6.717770 1.546888 -0.013752 -0.044584 0.082152 0.995527
1415738049.468375 27.834211 -6.701086 1.542744 0.003943 -0.044866 -0.230723 0.971977
1415738050.530752 27.839441 -6.690993 1.544144 0.004797 -0.043670 -0.561113 0.826573
1415738051.593130 27.850910 -6.694258 1.541177 0.026877 -0.030065 -0.825702 0.562664
1415738052.655507 27.857662 -6.705317 1.540458 -0.024432 0.028956 0.974557 -0.220914
1415738053.717884 27.854557 -6.718647 1.542822 -0.036607 0.002418 0.988678 0.145497
1415738054.780262 27.845707 -6.733947 1.541870 -0.033986 -0.003342 0.861272 0.506996
1415738055.842639 27.838381 -6.735634 1.546515 -0.033349 -0.020751 0.737413 0.674299
1415738057.967394 27.755804 -6.287743 1.544057 -0.010806 -0.046738 0.775448 0.629586
1415738059.029771 27.654737 -5.877909 1.540275 -0.031357 -0.017478 0.784842 0.618655
1415738060.092150 27.545286 -5.442225 1.520766 -0.039374 -0.003106 0.785941 0.617038
1415738061.154528 27.453588 -4.984910 1.465990 -0.087202 0.029665 0.743364 0.662514
1415738062.216903 27.455030 -4.544573 1.394875 -0.083039 0.020144 0.640562 0.763137
1415738063.279281 27.570303 -4.156039 1.368328 -0.039544 -0.043763 0.525858 0.848525
1415738064.341658 27.780840 -3.731050 1.371342 -0.034201 -0.048594 0.496129 0.866213
1415738065.404035 28.012302 -3.309901 1.388230 -0.030092 -0.041063 0.487566 0.871600
1415738066.466413 28.264954 -2.886620 1.409291 -0.024634 -0.047214 0.476507 0.877557
1415738067.528789 28.528309 -2.460763 1.423213 -0.030351 -0.030902 0.471505 0.880799
1415738068.591168 28.804777 -2.034481 1.450338 0.002740 -0.058952 0.455733 0.888158
1415738069.653545 29.096836 -1.618796 1.491691 0.005072 -0.059397 0.444513 0.893786
1415738070.715921 29.396296 -1.221714 1.545861 0.009635 -0.071451 0.431218 0.899362
1415738071.778300 29.702446 -0.819159 1.604625 -0.000906 -0.070650 0.442170 0.894144
1415738072.840676 29.997828 -0.396948 1.651784 0.000759 -0.081769 0.461441 0.883394
1415738073.903053 30.277575 0.035148 1.706107 0.011226 -0.061985 0.461716 0.884788
1415738074.965433 30.557816 0.464081 1.764948 0.010376 -0.065617 0.468227 0.881107
1415738076.027807 30.833395 0.893535 1.820807 0.013629 -0.068578 0.476225 0.876539
1415738077.090188 31.099203 1.325442 1.889826 0.019662 -0.093585 0.489813 0.866567
1415738078.152562 31.347250 1.760096 1.957145 0.010878 -0.083216 0.498705 0.862700
1415738079.214940 31.584749 2.211750 2.029894 0.017954 -0.095138 0.514222 0.852175
1415738080.277317 31.805700 2.657060 2.108452 0.029367 -0.108735 0.518552 0.847595
1415738081.339694 32.017750 3.082842 2.211585 0.038143 -0.134616 0.517052 0.844441
1415738082.402072 32.187698 3.466676 2.304099 0.033773 -0.118484 0.526608 0.841133
1415738083.464449 32.289188 3.712737 2.361345 0.039389 -0.120328 0.524210 0.842125
1415738084.526827 32.400845 3.981593 2.424612 0.045823 -0.130328 0.522495 0.841376
1415738085.589203 32.529869 4.266738 2.495524 0.042920 -0.126211 0.536030 0.833607
1415738086.651582 32.658627 4.581363 2.571919 0.046376 -0.135604 0.529245 0.836277
1415738087.713958 32.787197 4.885087 2.652981 0.042366 -0.137540 0.549408 0.823067
1415738088.776336 32.901146 5.209726 2.728580 0.032088 -0.135559 0.575263 0.806019
1415738089.838715 33.003792 5.560705 2.806910 0.024848 -0.137303 0.614808 0.776236
1415738090.901090 33.074104 5.909833 2.883196 0.028401 -0.138251 0.608990 0.780520
1415738091.963467 33.148384 6.269364 2.961448 0.021124 -0.137061 0.627692 0.766010
1415738093.025844 33.206356 6.641279 3.041515 0.027210 -0.148661 0.633811 0.758580
1415738094.088221 33.251953 7.028308 3.120460 0.031739 -0.135737 0.626057 0.767216
1415738095.150599 33.304138 7.423453 3.202112 0.022994 -0.136259 0.664523 0.734380
1415738096.212978 33.326473 7.815955 3.278457 0.021422 -0.130322 0.684509 0.716941
1415738097.275356 33.327862 8.213441 3.353490 0.022625 -0.150623 0.683289 0.714085
1415738098.337731 33.324001 8.617139 3.422732 0.009371 -0.135454 0.685524 0.715277
1415738099.400107 33.319912 9.019666 3.491332 0.018854 -0.125842 0.680158 0.721938
1415738100.462485 33.321629 9.424438 3.553954 0.018412 -0.114575 0.688488 0.715903
1415738101.524862 33.313702 9.830047 3.621280 0.028054 -0.124294 0.693673 0.708930
1415738102.587239 33.300037 10.222215 3.682526 0.014414 -0.110223 0.697978 0.707439
1415738103.649617 33.281502 10.629724 3.746484 0.017670 -0.122994 0.710468 0.692672
1415738104.711995 33.253105 11.051411 3.806419 -0.001015 -0.103552 0.720533 0.685645
1415738105.774372 33.221386 11.479393 3.853022 -0.005558 -0.107803 0.713651 0.692135
1415738106.836749 33.215591 11.913457 3.899235 -0.016938 -0.115050 0.674869 0.728717
1415738107.899125 33.249435 12.330256 3.946927 -0.003141 -0.107764 0.637940 0.762502
1415738108.961504 33.309978 12.764791 3.997519 -0.005014 -0.093874 0.620871 0.778256
1415738110.023881 33.396393 13.203510 4.056360 -0.004337 -0.095897 0.611579 0.785338
1415738111.086258 33.497818 13.651236 4.109751 -0.011774 -0.093858 0.607775 0.788455
1415738112.148635 33.591690 14.093039 4.153877 -0.014297 -0.087759 0.618445 0.780781
1415738113.211012 33.678490 14.550439 4.196832 -0.012554 -0.089667 0.622561 0.777316
1415738114.273390 33.770809 15.015245 4.237478 -0.022431 -0.071652 0.607380 0.790855
1415738115.335765 33.883389 15.440796 4.273040 -0.015758 -0.065985 0.572565 0.817047
1415738116.398144 34.034370 15.883390 4.311213 -0.022908 -0.078194 0.557888 0.825907
1415738117.460521 34.208229 16.343330 4.341471 -0.029148 -0.070062 0.554803 0.828514
1415738118.522901 34.384243 16.798771 4.371491 -0.030136 -0.062384 0.547947 0.833639
1415738119.585276 34.572598 17.253666 4.405395 -0.018867 -0.066456 0.512526 0.855888
1415738120.647653 34.840790 17.670954 4.423948 -0.025926 -0.038383 0.396481 0.916874
1415738121.710032 35.191158 17.991026 4.439726 -0.027213 -0.039041 0.288751 0.956221
1415738122.772408 35.544746 18.229256 4.456439 -0.024232 -0.023052 0.259216 0.965240
1415738127.021917 35.559082 18.249735 4.457972 -0.018067 -0.033257 0.163861 0.985757
1415738128.084296 35.552208 18.257189 4.461660 -0.013111 -0.039913 -0.077876 0.996077
1415738129.146677 35.552715 18.267447 4.460780 -0.007307 -0.041499 -0.355498 0.933727
1415738130.209049 35.560696 18.269531 4.455830 0.005270 -0.040174 -0.632368 0.773608
1415738131.271426 35.572109 18.267443 4.459108 0.017345 -0.037132 -0.859021 0.510298
1415738132.333804 35.575680 18.254501 4.452904 -0.027193 0.024046 0.987566 -0.152955
1415738133.396180 35.573727 18.241451 4.459713 -0.031721 0.011521 0.975024 0.219519
1415738134.458557 35.562965 18.232725 4.450885 -0.029628 -0.003129 0.850245 0.525544
1415738135.520935 35.546982 18.229782 4.457685 -0.030610 -0.019112 0.600548 0.798774
1415738137.645689 35.555405 18.232607 4.453088 -0.034436 -0.014779 0.718379 0.694642
1415738138.708066 35.565243 18.246243 4.452926 -0.034642 -0.002497 0.883752 0.466665
1415738139.770444 35.522732 18.299994 4.450194 -0.037296 0.004000 0.953035 0.300528
1415738141.895198 35.223957 18.486122 4.425705 -0.030881 0.004920 0.965663 0.257909
1415738142.957575 34.811295 18.683418 4.386946 -0.032925 0.002926 0.980659 0.192915
1415738144.019952 34.346180 18.863613 4.348572 -0.046359 0.016250 0.984393 0.168991
1415738145.082330 33.851406 19.019899 4.303417 -0.042239 0.011003 0.989591 0.137131
1415738146.144707 33.339928 19.155518 4.248814 -0.044353 0.013826 0.990993 0.125595
1415738147.207084 32.822739 19.274996 4.197287 -0.024787 -0.008966 0.993612 0.109730
1415738148.269462 32.325958 19.374285 4.144011 -0.048198 -0.003418 0.993311 0.104873
1415738149.331839 31.809158 19.432791 4.088175 -0.052920 0.012143 0.997939 -0.034196
1415738150.394216 31.403078 19.341696 4.043233 -0.060414 0.018523 0.979349 -0.192046
1415738151.456594 31.017797 19.147255 3.998242 -0.055098 0.016448 0.964194 -0.258890
1415738152.518970 30.630638 18.918840 3.950291 -0.056207 0.014056 0.961014 -0.270361
1415738153.581348 30.257895 18.686024 3.901164 -0.068738 0.013455 0.956639 -0.282728
1415738154.643725 29.890127 18.447813 3.847298 -0.082549 0.006039 0.953868 -0.288593
1415738155.706105 29.520809 18.198875 3.780673 -0.071963 0.002679 0.956672 -0.282122
1415738156.768480 29.160166 17.981434 3.720740 -0.063989 -0.003921 0.971897 -0.226509
1415738157.830857 28.770264 17.811836 3.665895 -0.068220 -0.012496 0.981383 -0.179104
1415738158.893234 28.343561 17.623882 3.601425 -0.072814 -0.016083 0.969074 -0.235235
1415738159.955612 27.949572 17.385513 3.531430 -0.073053 -0.015214 0.958874 -0.273846
1415738160.977934 27.559280 17.133726 3.454342 -0.080388 -0.010136 0.952979 -0.292005
1415738162.009087 27.123787 16.836073 3.373300 -0.074133 -0.009106 0.950502 -0.301607
1415738163.040255 26.691824 16.518686 3.293905 -0.077365 -0.008386 0.947883 -0.308971
1415738164.071426 26.283152 16.208092 3.211199 -0.082889 -0.007749 0.943038 -0.322099
1415738165.102595 25.880690 15.881516 3.116146 -0.088960 -0.019900 0.941702 -0.323862
1415738166.133762 25.489737 15.563180 3.020180 -0.099812 -0.025210 0.938369 -0.329947
1415738167.164935 25.095928 15.254034 2.923961 -0.088812 -0.021528 0.944229 -0.316356
1415738168.196103 24.694860 14.954555 2.836725 -0.077424 -0.026941 0.952316 -0.293895
1415738169.239281 24.317261 14.692075 2.756510 -0.095003 -0.016168 0.951252 -0.292973
1415738170.301126 23.934645 14.439216 2.673670 -0.094135 -0.025782 0.957382 -0.271834
1415738171.363012 23.553333 14.199415 2.595723 -0.079188 -0.030454 0.963289 -0.254707
1415738172.425145 23.155239 13.978079 2.515115 -0.086194 -0.033208 0.969704 -0.226148
1415738173.487523 22.747770 13.786580 2.424417 -0.084723 -0.032386 0.975793 -0.198998
1415738174.549898 22.289724 13.588583 2.334729 -0.096050 -0.049464 0.979505 -0.169996
1415738175.612275 21.836105 13.380430 2.232276 -0.084173 -0.055601 0.971600 -0.214047
1415738176.674653 21.390427 13.153634 2.132984 -0.100779 -0.046123 0.966531 -0.231374
1415738177.737030 20.964718 12.917132 2.030506 -0.117819 -0.030605 0.959192 -0.255211
1415738178.799408 20.530043 12.658166 1.921038 -0.096202 -0.033666 0.962619 -0.250952
1415738179.861785 20.099110 12.387202 1.817786 -0.097190 -0.045722 0.958863 -0.262764
1415738180.924162 19.682146 12.133961 1.739308 -0.061444 -0.034557 0.962238 -0.262922
1415738181.986539 19.273048 11.869749 1.661907 -0.085684 -0.045045 0.956856 -0.273964
1415738183.048917 18.844751 11.594966 1.567560 -0.092775 -0.058600 0.959314 -0.260146
1415738184.111296 18.415010 11.349077 1.481246 -0.072319 -0.047457 0.973800 -0.210312
1415738185.173673 17.964376 11.171651 1.411162 -0.074089 -0.047129 0.985148 -0.147560
1415738186.236049 17.492418 11.025488 1.327724 -0.064313 -0.072573 0.993833 -0.053786
1415738187.298426 17.057409 11.042339 1.280924 -0.048732 -0.069501 0.984860 0.151148
1415738188.360806 16.674845 11.221495 1.248818 -0.036812 -0.078719 0.953083 0.289968
1415738189.423183 16.263124 11.469635 1.233056 -0.032204 -0.087695 0.956666 0.275793
1415738190.485557 15.786630 11.682530 1.201080 -0.042117 -0.079047 0.977150 0.192759
1415738191.547934 15.278536 11.855065 1.167611 -0.048139 -0.081077 0.979400 0.178566
1415738192.610312 14.768732 12.016353 1.121192 -0.049821 -0.084270 0.981264 0.165943
1415738193.672689 14.257275 12.167140 1.079800 -0.060942 -0.077779 0.982854 0.155677
1415738194.735067 13.743946 12.308007 1.031989 -0.059216 -0.078090 0.983954 0.149094
1415738195.797445 13.230776 12.431698 0.984541 -0.037883 -0.079349 0.986853 0.135612
1415738196.859827 12.711513 12.551973 0.947629 -0.065826 -0.072183 0.986772 0.129377
1415738197.922199 12.200716 12.657652 0.901776 -0.052594 -0.073521 0.988758 0.119103
1415738198.984576 11.724236 12.753448 0.859284 -0.041121 -0.064973 0.991202 0.107735
1415738200.046954 11.212283 12.845047 0.812472 -0.057336 -0.059320 0.992214 0.093299
1415738201.109330 10.712421 12.924524 0.766411 -0.051450 -0.055346 0.993330 0.087096
1415738202.171708 10.226548 12.981379 0.719992 -0.038778 -0.056576 0.995034 0.072130
1415738203.234085 9.701862 13.045084 0.659238 -0.080126 -0.062827 0.990298 0.094562
1415738204.296462 9.189625 13.149431 0.591945 -0.046876 -0.073744 0.984378 0.152854
1415738205.358840 8.681226 13.303854 0.553905 -0.034491 -0.083507 0.978474 0.185542
1415738206.421217 8.175967 13.481631 0.510451 -0.056134 -0.069319 0.980727 0.173837
1415738207.483594 7.656588 13.613882 0.469144 -0.044238 -0.058821 0.993584 0.085872
1415738208.545972 7.117199 13.669314 0.402930 -0.055570 -0.049305 0.996111 0.047362
1415738209.608348 6.583233 13.696100 0.339407 -0.067039 -0.041346 0.996307 0.034190
1415738210.670726 6.053109 13.741391 0.274590 -0.062368 -0.056119 0.991614 0.098298
1415738211.733103 5.526483 13.836130 0.214441 -0.042030 -0.084941 0.985320 0.141999
1415738212.795480 5.013065 13.962714 0.166283 -0.071459 -0.066222 0.984264 0.147423
1415738213.857857 4.491313 14.084204 0.079952 -0.086925 -0.055301 0.987965 0.115378
1415738214.920234 3.973683 14.151369 -0.001272 -0.068014 -0.058344 0.994672 0.050966
1415738215.982613 3.440813 14.180529 -0.072373 -0.061559 -0.059073 0.995719 0.035555
1415738217.044989 2.914593 14.198448 -0.133835 -0.050801 -0.033056 0.998121 0.008966
1415738218.107367 2.380990 14.175988 -0.210173 -0.081649 -0.029892 0.995443 -0.039159
1415738219.169744 1.855898 14.115693 -0.301860 -0.071535 -0.017977 0.995098 -0.065870
1415738220.232121 1.395934 14.032045 -0.370661 -0.071503 -0.030073 0.992943 -0.089703
1415738221.294499 0.907340 13.903975 -0.441963 -0.048623 -0.023127 0.985356 -0.161783
1415738222.356876 0.446358 13.693176 -0.503770 -0.065157 -0.019799 0.960814 -0.268699
1415738223.419253 0.032817 13.404653 -0.561653 -0.050067 0.005387 0.940814 -0.335160
1415738224.481632 -0.353337 13.086645 -0.602511 -0.025038 0.030007 0.931272 -0.362221
1415738225.544008 -0.701135 12.734225 -0.602597 -0.012034 0.039573 0.903414 -0.426769
1415738226.606384 -0.997827 12.335541 -0.594723 0.022109 0.044341 0.885617 -0.461765
1415738227.668764 -1.266045 11.950690 -0.541891 0.056388 0.067458 0.882158 -0.462673
1415738228.731140 -1.551188 11.543346 -0.485182 0.030664 0.059231 0.883306 -0.464027
1415738229.793517 -1.815035 11.104977 -0.438625 -0.018373 -0.051690 -0.853764 0.517762
1415738230.855894 -2.026942 10.641925 -0.382959 -0.059336 -0.061968 -0.813394 0.575352
1415738231.918272 -2.181108 10.164027 -0.318914 -0.047547 -0.052790 -0.801243 0.594107
1415738232.980651 -2.322972 9.671262 -0.268992 -0.036784 -0.051469 -0.800501 0.595984
1415738234.043026 -2.425797 9.164010 -0.228990 -0.010813 -0.030818 -0.747290 0.663695
1415738235.105404 -2.410897 8.631018 -0.201813 -0.025884 -0.025102 -0.639223 0.768176
1415738236.167783 -2.238453 8.135892 -0.176685 -0.029469 -0.012155 -0.513120 0.857725
1415738237.230158 -1.948015 7.681841 -0.161733 -0.021431 -0.014274 -0.463811 0.885560
1415738238.292536 -1.652833 7.229115 -0.149567 -0.014654 -0.005358 -0.526897 0.849786
1415738239.354913 -1.483992 6.733422 -0.126338 -0.028630 -0.024330 -0.669974 0.741433
1415738240.417290 -1.527849 6.221029 -0.106948 -0.022282 -0.019857 -0.816195 0.577006
1415738241.479668 -1.742129 5.726759 -0.098094 -0.013131 -0.010684 -0.859834 0.510293
1415738242.542045 -1.995408 5.265228 -0.080843 0.016212 0.012918 0.873577 -0.486244
1415738243.604424 -2.263726 4.821134 -0.061994 0.020528 0.036159 0.881033 -0.471224
1415738244.666802 -2.553161 4.386517 -0.045464 0.010195 0.033688 0.891257 -0.452132
1415738245.729178 -2.860879 3.970889 -0.024250 0.021470 0.043542 0.897840 -0.437637
1415738246.791556 -3.171616 3.559585 0.014930 0.022056 0.047976 0.890552 -0.451807
1415738247.853932 -3.453254 3.121180 0.027617 -0.001539 -0.003825 -0.831222 0.555925
1415738248.916310 -3.622279 2.606106 0.024735 0.002940 -0.006466 -0.750615 0.660702
1415738249.978687 -3.639881 2.072190 0.021394 0.006607 -0.006137 -0.685610 0.727914
1415738251.041067 -3.592844 1.531369 0.013404 0.003648 -0.004246 -0.666796 0.745219
1415738252.103442 -3.525791 1.000432 0.008110 0.002983 -0.001156 -0.658526 0.752551
1415738253.165819 -3.440174 0.471049 0.007020 0.002110 -0.001954 -0.629885 0.776683
1415738254.228197 -3.248914 -0.030999 0.006276 0.003767 -0.002458 -0.484001 0.875056
1415738255.290574 -3.182820 -0.120055 0.005305 0.003987 -0.004343 -0.435168 0.900330
1415738256.352952 -3.193723 -0.134997 0.006632 0.004132 -0.003315 -0.088418 0.996069
1415738257.415329 -3.192149 -0.139245 0.005158 0.005615 -0.003179 0.006903 0.999955
1415738258.477707 -2.958836 -0.138025 0.006041 0.004980 -0.003613 0.008706 0.999943
1415738259.540085 -2.553928 -0.129973 0.005536 0.002844 -0.003061 0.007950 0.999960
1415738260.602462 -2.160806 -0.123818 0.005523 0.005921 -0.005669 0.006941 0.999942
1415738261.664839 -1.776202 -0.120779 0.009273 0.006342 -0.003542 0.005080 0.999961
1415738262.727219 -1.372230 -0.108044 0.008401 0.006051 0.000302 0.045204 0.998959
1415738263.789594 -0.954243 -0.055700 0.004468 0.005021 0.004963 0.072672 0.997331
1415738264.851972 -0.599429 -0.007503 0.001811 0.004085 0.001593 0.057373 0.998343
1415738265.914350 -0.248105 0.023860 0.001367 0.002333 0.000096 0.030308 0.999538
1415738266.976727 0.106615 0.045166 -0.000073 0.000881 -0.002174 0.019533 0.999806
1415738268.039104 0.409184 0.059367 -0.002466 -0.001186 0.000729 0.001534 0.999998
1415738269.101482 0.539304 0.059408 -0.002721 -0.002739 0.002421 -0.007578 0.999965
+100
View File
@@ -0,0 +1,100 @@
"""
A SLAM graph as the playback tests keep and compare it, exported from rtabmap's
database by rtabmap-export (export_graph):
<prefix>.g2o the graph (--poses_format 4). OptimizerG2O::saveGraph() writes each
edge's link type as a column past the information matrix; that is
what tells the loop closures apart.
<prefix>.tum the optimized poses with their stamps (--poses_format 10: stamp x y z
qx qy qz qw). The test replays a golden one as ground truth, from which
rtabmap computes the trajectory error itself (Gt/* statistics).
"""
import shutil
import subprocess
from dataclasses import dataclass, field
from pathlib import Path
from typing import Dict, List, Set, Tuple
import numpy as np
# rtabmap::Link::Type
NEIGHBOR, GLOBAL_CLOSURE, LOCAL_SPACE_CLOSURE, LOCAL_TIME_CLOSURE = 0, 1, 2, 3
LANDMARK = 8
@dataclass
class Graph:
poses: Dict[int, Tuple[float, ...]] = field(default_factory=dict) # x y z qx qy qz qw
link_types: List[int] = field(default_factory=list)
# Vertices that are landmarks, not nodes: rtabmap-export writes them after the nodes,
# with positive ids, the ends of the landmark links.
landmarks: Set[int] = field(default_factory=set)
@classmethod
def load(cls, g2o_path: str) -> 'Graph':
"""Read the vertices and the edges' types; a 2D graph (Reg/Force3DoF) is SE2."""
graph = cls()
# Fields each edge tag defines; the link type is the column after them.
edge_fields = {'EDGE_SE2': 12, 'EDGE_SE3:QUAT': 31}
with open(g2o_path) as f:
for line in f:
v = line.split()
if not v:
continue
if v[0] == 'VERTEX_SE3:QUAT':
graph.poses[int(v[1])] = tuple(float(x) for x in v[2:9])
elif v[0] == 'VERTEX_SE2':
yaw = float(v[4])
graph.poses[int(v[1])] = (float(v[2]), float(v[3]), 0.0,
0.0, 0.0, np.sin(yaw / 2), np.cos(yaw / 2))
elif v[0] in edge_fields:
n = edge_fields[v[0]]
link_type = int(v[n]) if len(v) > n else NEIGHBOR
graph.link_types.append(link_type)
if link_type == LANDMARK:
graph.landmarks.add(int(v[2]))
return graph
def summary(self) -> dict:
ids = sorted(set(self.poses) - self.landmarks)
xyz = np.array([self.poses[i][:3] for i in ids]).reshape(-1, 3)
return {
'nodes': len(ids),
'landmarks': len(self.landmarks),
'global_closures': sum(t == GLOBAL_CLOSURE for t in self.link_types),
'local_closures': sum(t in (LOCAL_SPACE_CLOSURE, LOCAL_TIME_CLOSURE)
for t in self.link_types),
'path_length': round(float(np.linalg.norm(np.diff(xyz, axis=0), axis=1).sum()), 2),
}
def export_graph(database: Path, prefix: Path):
"""Write <prefix>.g2o and <prefix>.tum from an rtabmap database.
The graph of every node in the database, optimized (--opt 0). Not the optimized poses
rtabmap saved when it closed (--opt 2): they are those of its local map only, without
the intermediate nodes, and are saved or not depending on how it closed, while
rtabmap-export falls back to optimizing every node when there are none.
"""
tool = shutil.which('rtabmap-export')
if tool is None:
raise FileNotFoundError('rtabmap-export not found on PATH (RTAB-Map built without '
'its tools?)')
out_dir = database.parent
for poses_format, extension, suffix in ((4, 'g2o', '.g2o'), (10, 'txt', '.tum')):
subprocess.run([tool, '--poses', '--poses_format', str(poses_format), '--opt', '0',
'--output_dir', str(out_dir), str(database)],
check=True, stdout=subprocess.DEVNULL, stderr=subprocess.PIPE, text=True)
exported = out_dir / f'{database.stem}_poses.{extension}'
exported.replace(str(prefix) + suffix)
def load_tum(path: str) -> List[Tuple[float, Tuple[float, ...]]]:
"""(stamp, (x y z qx qy qz qw)) of each line of a TUM trajectory file."""
trajectory = []
with open(path) as f:
for line in f:
v = line.split()
if len(v) == 8 and not line.startswith('#'):
trajectory.append((float(v[0]), tuple(float(x) for x in v[1:])))
return trajectory
+401
View File
@@ -0,0 +1,401 @@
"""
Replay a demo's bag through the demo's own launch file and compare the resulting
graph with a golden one.
The golden trajectory is replayed in TF beside the bag as ground truth, so rtabmap
computes the error of its map against it itself, as it would for any ground truth
(Gt/* statistics, in /info). The loop closures are counted from the graph.
The bag is played in lockstep with the pipeline (see bag_lockstep.py), so the result
does not depend on how loaded the machine is. Skipped when the bag has not been
fetched (test/fetch_test_data.sh): the bags are several GB.
Environment:
RTABMAP_DEMOS_TEST_DATA where the bags are (default: test/data)
RTABMAP_DEMOS_TEST_RESULTS where each run's graph, database and launch log are kept
(default: a pytest temporary directory)
RTABMAP_DEMOS_UPDATE_GOLDEN set to 1 to write the run's graph as the new golden one
instead of comparing with it
RTABMAP_DEMOS_REPLAY lockstep (default): each sensor message once the pipeline is
idle; chunked: at the bag's pace, 10 s at a time, waiting
for rtabmap to catch up after each
RTABMAP_DEMOS_RATE with chunked: how many times the bag's pace (default 1)
"""
import ctypes
import os
import shutil
import signal
import subprocess
import sys
import threading
import time
from dataclasses import dataclass, field
from pathlib import Path
from typing import Dict, List, Union
import pytest
import yaml
import rclpy
from ament_index_python.packages import PackageNotFoundError, get_package_share_directory
from rclpy.executors import SingleThreadedExecutor
from rtabmap_msgs.msg import Info
from bag_lockstep import LockstepPlayer, ProcessTree
from graph_metrics import Graph, export_graph, load_tum
TEST_DIR = Path(__file__).resolve().parent
DATA_DIR = Path(os.environ.get('RTABMAP_DEMOS_TEST_DATA', TEST_DIR / 'data'))
# lockstep (default, see bag_lockstep.py) or chunked (LockstepPlayer.play_chunked()).
REPLAY = os.environ.get('RTABMAP_DEMOS_REPLAY', 'lockstep')
# chunked only: how many times the bag's own pace.
REPLAY_RATE = float(os.environ.get('RTABMAP_DEMOS_RATE', '1.0'))
GOLDEN_DIR = TEST_DIR / 'golden'
# The golden trajectory's frames in TF; unconnected to the robot's own tree.
GROUND_TRUTH_FRAME = 'golden_map'
GROUND_TRUTH_BASE_FRAME = 'golden_base'
@dataclass
class Scenario:
name: str
launch_file: str
bag: Union[str, List[str]] # several: played one after the other
# Topics the pipeline must have subscribed to before the replay can start.
required_topics: List[str]
launch_arguments: Dict[str, str] = field(default_factory=dict)
# ROS parameters set on every node the launch file starts (see _wrapper_launch()), for
# settings the launch file has no argument for. A node's own value for one wins.
parameters: Dict[str, object] = field(default_factory=dict)
# ROS parameters for one node, by node name, for a parameter name other nodes use too.
node_parameters: Dict[str, Dict[str, object]] = field(default_factory=dict)
# Packages the launch file needs besides ours: the scenario is skipped without them
# (not every ROS distro has them).
packages: List[str] = field(default_factory=list)
# With RTABMAP_DEMOS_REPLAY=chunked: how far rtabmap's last output may lag the last
# sensor message published, as it processes the data (seconds).
chunk_slack: float = 2.0
# How far a run may be from the golden graph.
max_node_difference: float = 0.02 # relative
# Loop closures, global and local together, may be fewer than the golden graph's by
# this ratio of them, or by 2, whichever is more: from one run to the next, a closure
# more or less is noise, however few there are. Together, as a place revisited can be
# closed by either: in stereo_outdoor, 13 global and 9 local closures in one run, 15
# and 5 in another.
closure_slack: float = 0.2
# False when the scenario turns loop closure detection off, against a golden graph
# made with it.
compare_closures: bool = True
max_rmse: float = 0.05 # m, Gt/Translational_rmse
max_rotational_rmse: float = 1.0 # deg, Gt/Rotational_rmse
def __str__(self):
return self.name
SCENARIOS = [
Scenario(
name='robot_mapping',
launch_file='robot_mapping_demo.launch.py',
bag='demo_mapping_bag',
required_topics=['/jn0/base_scan', '/data_throttled_image/compressed'],
launch_arguments={'rtabmap_viz': 'false', 'rviz': 'false'},
# Every image rgbd_sync makes reaches rtabmap: with a history of 1, the next one
# replaces one rtabmap has not received yet when it is busy.
parameters={'output_queue_size': 10},
# How many frames rtabmap merges into the previous node (rehearsal) depends on
# its build (its optional dependencies): 205 nodes in CI against 210 here. Loop
# closures vary from run to run (11 to 13 global ones), and so the errors:
# 0.046-0.053 m and up to 1.22 deg.
max_node_difference=0.05,
max_rmse=0.1,
max_rotational_rmse=2.0),
Scenario(
name='stereo_outdoor',
launch_file='stereo_outdoor_demo.launch.py',
# Both parts of the run, played one after the other.
bag=['stereo_outdoorA_bag', 'stereo_outdoorB_bag'],
required_topics=['/stereo_camera/left/image_raw_throttle/compressed',
'/stereo_camera/right/image_raw_throttle/compressed'],
launch_arguments={'rtabmap_viz': 'false', 'rviz': 'false'},
# As for netherdrone_lidar3d below: every pair stereo_sync makes reaches odometry
# and is registered (all 3741 of them on an idle machine).
parameters={'output_queue_size': 10,
'always_process_most_recent_frame': False},
# As for robot_mapping: with bag A alone, 161 nodes in CI against 185 here, and
# up to 3.06 deg.
max_node_difference=0.15,
max_rmse=0.1,
max_rotational_rmse=4.0),
Scenario(
name='netherdrone_lidar3d',
launch_file='netherdrone_lidar3d_demo.launch.py',
# The whole flight, its six parts played one after the other.
bag=[f'netherdrone_ouster_vertige_bag_{i}' for i in range(6)],
required_topics=['/os_cloud_node/points', '/imu/data_raw',
'/camera/image_raw/compressed', '/camera/camera_info'],
# A node is half a turn of the lidar's mast, about 4.4 s apart; the odometry
# poses in between are saved too (intermediate nodes), and compared as well.
launch_arguments={'rtabmap_viz': 'false', 'rviz': 'false', 'intermediate_nodes': 'true'},
# Every scan reaches odometry, and is registered. By default odometry drops those
# arriving while it is busy (as when lidar_deskewing, waiting for a transform
# asleep, looks idle to the lockstep player), and lidar_deskewing replaces a scan
# odometry has not received yet with the next one: how many depends on the
# machine. output_queue_size also reaches rgb_sync, for the camera. topic_queue_size
# reaches only icp_odometry: rgb_sync and point_cloud_assembler already default
# to 10, and rtabmap sets its own.
parameters={'output_queue_size': 10,
'topic_queue_size': 10,
'always_process_most_recent_frame': False},
# A node every 4.3 s, when the assembled cloud of half a turn of the mast is ready.
chunk_slack=5.0,
# Local closures only (no global ones: the camera's bag-of-words finds none),
# 25 in the golden graph, 19 in a Kilted CI run.
closure_slack=0.3,
max_rmse=0.1,
max_rotational_rmse=2.0,
max_node_difference=0.05),
Scenario(
name='find_object',
launch_file='find_object_demo.launch.py',
bag='demo_find_object_bag',
required_topics=['/base_scan', '/camera/data_throttled_image/compressed'],
launch_arguments={'rtabmap_viz': 'false', 'rviz': 'false', 'find_object_gui': 'false'},
# As for robot_mapping, with the same pipeline (find_object_2d besides it).
parameters={'output_queue_size': 10},
# Without loop closures (neither from the images nor by proximity), only odometry
# and the objects as landmarks constrain the map: how far it stays from the golden
# one, made with all of them, is what the landmarks are worth. 0.124 m and 1.06
# deg with the landmarks, against 0.708 m without them.
node_parameters={'rtabmap': {'Kp/MaxFeatures': '-1',
'RGBD/ProximityBySpace': 'false'}},
compare_closures=False,
packages=['find_object_2d'],
max_node_difference=0.05,
max_rmse=0.2,
max_rotational_rmse=2.0),
]
# Every QoS parameter of rtabmap's nodes: reliable (1). Their default, the system's, is best
# effort for a subscriber with Fast DDS, which drops what arrives while the node is busy:
# the lockstep player cannot see that (see bag_lockstep.py).
RELIABLE_QOS = {name: 1 for name in (
'qos', 'qos_camera_info', 'qos_env_sensor', 'qos_global_pose', 'qos_gps', 'qos_image',
'qos_imu', 'qos_odom', 'qos_pub', 'qos_scan', 'qos_scan_cloud', 'qos_sensor_data',
'qos_sub', 'qos_user_data')}
def _wrapper_launch(scenario: Scenario, rtabmap_parameters: Dict[str, object],
arguments: Dict[str, str], path: Path) -> Path:
"""Write a launch file that sets parameters on the demo's nodes, then includes the
demo's launch file with `arguments`.
The parameters go in a parameter file next to it, which launch_ros'
SetParametersFromFile gives to every node launched after it, whatever launch file they
come from: each node reads its own section. RELIABLE_QOS and scenario.parameters are
for every node (/**), and `rtabmap_parameters` for the node named rtabmap only (/**/rtabmap): the
ground truth frames, which the odometry nodes also read. A node's own value for a
parameter, set by its launch file, wins over the file's.
"""
demo = Path(get_package_share_directory('rtabmap_demos')) / 'launch' / scenario.launch_file
parameter_file = path.with_suffix('.yaml')
# The nodes' own sections first: after /**, rcl would not apply /** to the other nodes.
sections = {f'/**/{node}': {'ros__parameters': dict(values)}
for node, values in scenario.node_parameters.items()}
rtabmap_section = sections.setdefault('/**/rtabmap', {'ros__parameters': {}})
rtabmap_section['ros__parameters'].update(rtabmap_parameters)
sections['/**'] = {'ros__parameters': dict(RELIABLE_QOS, **scenario.parameters)}
parameter_file.write_text(yaml.safe_dump(sections, sort_keys=False))
path.write_text(
'from launch import LaunchDescription\n'
'from launch.actions import IncludeLaunchDescription\n'
'from launch.launch_description_sources import PythonLaunchDescriptionSource\n'
'from launch_ros.actions import SetParametersFromFile\n'
'\n'
'\n'
'def generate_launch_description():\n'
' return LaunchDescription([\n'
f' SetParametersFromFile({str(parameter_file)!r}),\n'
f' IncludeLaunchDescription(PythonLaunchDescriptionSource({str(demo)!r}),\n'
f' launch_arguments={list(arguments.items())!r}),\n'
' ])\n')
return path
def _stop(process: subprocess.Popen) -> bool:
"""Stop `ros2 launch` the way Ctrl-C does, so rtabmap closes its database.
Returns False if it had to be killed: rtabmap then did not close its database.
"""
if process.poll() is not None:
return True
os.killpg(process.pid, signal.SIGINT)
try:
process.wait(timeout=60)
return True
except subprocess.TimeoutExpired:
os.killpg(process.pid, signal.SIGKILL)
process.wait()
return False
# See bag_lockstep.py: publish() must have sent the message when it returns, in this
# process and in the demo's nodes alike. Read when each process initializes its RMW.
os.environ['RMW_FASTRTPS_PUBLICATION_MODE'] = 'SYNCHRONOUS'
def _die_with_parent():
"""In the launch process before exec: SIGINT it if the test process dies.
The launch runs in a session of its own (so it can be stopped as a group); without
this, a test killed by a timeout would leave the demo running.
"""
PR_SET_PDEATHSIG = 1
ctypes.CDLL('libc.so.6', use_errno=True).prctl(PR_SET_PDEATHSIG, signal.SIGINT)
def _replay(scenario: Scenario, bag: List[Path], results: Path, ground_truth=None):
"""Replay the bag; returns the statistics of rtabmap's last update.
rtabmap is stopped when this returns, its database closed with the optimized graph.
"""
# The database and the ground truth are for rtabmap only: the demos have no launch
# argument for them, they are set from the parameter file (see _wrapper_launch()).
rtabmap_parameters = {'database_path': str(results / 'rtabmap.db')}
if ground_truth:
rtabmap_parameters.update(ground_truth_frame_id=GROUND_TRUTH_FRAME,
ground_truth_base_frame_id=GROUND_TRUTH_BASE_FRAME)
arguments = dict(scenario.launch_arguments)
log = open(results / 'launch.log', 'w')
launch = subprocess.Popen(
['ros2', 'launch', str(_wrapper_launch(scenario, rtabmap_parameters, arguments,
results / 'demo.launch.py'))],
stdout=log, stderr=subprocess.STDOUT, start_new_session=True,
preexec_fn=_die_with_parent)
context = rclpy.Context()
rclpy.init(context=context)
node = rclpy.create_node('demo_playback_test', context=context)
stats = {}
info_stamp = [0.0]
def on_info(msg):
stats.clear()
stats.update(zip(msg.stats_keys, msg.stats_values))
info_stamp[0] = max(info_stamp[0], msg.header.stamp.sec + msg.header.stamp.nanosec * 1e-9)
node.create_subscription(Info, '/info', on_info, 10)
executor = SingleThreadedExecutor(context=context)
executor.add_node(node)
spinner = threading.Thread(target=executor.spin, daemon=True)
spinner.start()
try:
tree = ProcessTree(launch.pid)
player = LockstepPlayer(node, [str(b) for b in bag], tree)
if ground_truth:
player.add_trajectory(GROUND_TRUTH_FRAME, GROUND_TRUTH_BASE_FRAME, ground_truth)
player.connect(scenario.required_topics)
nodes = {pid: Path(f'/proc/{pid}/comm').read_text().strip() for pid in tree.pids()}
print(f'\n{scenario.name}: {len(nodes)} processes ({", ".join(nodes.values())}), '
f'gating {", ".join(sorted(player.gated))}', flush=True)
start = time.monotonic()
last_report = [0.0]
def progress(done, total):
# A node that died leaves the others idle forever: the replay would go on
# into nothing and only fail at the end. Stop at once instead.
if done % 100 == 0:
gone = [name for pid, name in nodes.items() if not Path(f'/proc/{pid}').exists()]
if gone:
raise RuntimeError(f'{", ".join(gone)} exited during the replay '
f'(see {results / "launch.log"})')
now = time.monotonic()
if now - last_report[0] > 30 or done == total:
last_report[0] = now
print(f' {done}/{total} messages, {now - start:.0f} s', flush=True)
if REPLAY == 'chunked':
player.play_chunked(lambda: info_stamp[0], slack=scenario.chunk_slack,
rate=REPLAY_RATE, progress=progress)
else:
player.play(progress=progress)
print(f' replayed in {time.monotonic() - start:.0f} s', flush=True)
result = dict(stats)
finally:
executor.shutdown()
node.destroy_node()
rclpy.shutdown(context=context)
spinner.join(timeout=10)
stopped = _stop(launch)
log.close()
if not stopped:
raise RuntimeError(f'{scenario.launch_file} did not stop within 60 s and was killed: '
f'rtabmap did not close its database (see {results / "launch.log"})')
return result
@pytest.mark.parametrize('scenario', SCENARIOS, ids=str)
def test_demo_playback(scenario: Scenario, tmp_path):
for package in scenario.packages:
try:
get_package_share_directory(package)
except PackageNotFoundError:
pytest.skip(f'{package} is not installed')
bag = [DATA_DIR / name for name in
([scenario.bag] if isinstance(scenario.bag, str) else scenario.bag)]
for b in bag:
if not b.is_dir():
pytest.skip(f'{b} not found; fetch it with {TEST_DIR / "fetch_test_data.sh"}')
results = Path(os.environ.get('RTABMAP_DEMOS_TEST_RESULTS', tmp_path)) / scenario.name
results.mkdir(parents=True, exist_ok=True)
golden_prefix = GOLDEN_DIR / scenario.name
update = os.environ.get('RTABMAP_DEMOS_UPDATE_GOLDEN') == '1'
if not update and not Path(str(golden_prefix) + '.g2o').is_file():
pytest.fail(f'no golden graph {golden_prefix}.g2o; '
'run once with RTABMAP_DEMOS_UPDATE_GOLDEN=1 to create it')
ground_truth = None if update else load_tum(str(golden_prefix) + '.tum')
stats = _replay(scenario, bag, results, ground_truth)
prefix = results / scenario.name
export_graph(results / 'rtabmap.db', prefix)
summary = Graph.load(str(prefix) + '.g2o').summary()
print(f' {summary}; graph exported to {prefix}.g2o', flush=True)
if update:
GOLDEN_DIR.mkdir(exist_ok=True)
for suffix in ('.g2o', '.tum'):
shutil.copyfile(str(prefix) + suffix, str(golden_prefix) + suffix)
print(f' golden graph updated: {golden_prefix}.g2o', flush=True)
return
expected = Graph.load(str(golden_prefix) + '.g2o').summary()
rmse = stats.get('Gt/Translational_rmse/m')
rotational_rmse = stats.get('Gt/Rotational_rmse/deg')
problems = []
if abs(summary['nodes'] - expected['nodes']) > scenario.max_node_difference * expected['nodes']:
problems.append(f'nodes: {summary["nodes"]}, golden {expected["nodes"]}')
if scenario.compare_closures:
closures, golden_closures = (
g['global_closures'] + g['local_closures'] for g in (summary, expected))
minimum = golden_closures - max(2, scenario.closure_slack * golden_closures)
if closures < minimum:
problems.append(f'loop closures (global and local): {closures}, golden '
f'{golden_closures} (at least {minimum:.0f} expected)')
if rmse is None:
problems.append('rtabmap reported no Gt/* statistics: the golden trajectory did not '
f'reach it as ground truth (see {results / "launch.log"})')
else:
if rmse > scenario.max_rmse:
problems.append(f'Gt/Translational_rmse: {rmse:.3f} m (max {scenario.max_rmse} m)')
if rotational_rmse > scenario.max_rotational_rmse:
problems.append(f'Gt/Rotational_rmse: {rotational_rmse:.2f} deg '
f'(max {scenario.max_rotational_rmse} deg)')
print(f' vs golden {expected}: RMSE {rmse:.3f} m, {rotational_rmse:.2f} deg',
flush=True)
assert not problems, f'{scenario.name}:\n ' + '\n '.join(problems)
if __name__ == '__main__':
sys.exit(pytest.main([__file__, '-s', *sys.argv[1:]]))
+11
View File
@@ -7,4 +7,15 @@ install(DIRECTORY launch config
DESTINATION share/${PROJECT_NAME}
)
if(BUILD_TESTING)
find_package(ament_cmake_pytest REQUIRED)
# rtabmap_launch's launch file test, on this package's installed launch files: each
# dry-run with each of its switches; nothing is started, so it needs no DDS domain of its
# own. Run from where rtabmap_launch installed it: no pytest cache written there.
find_package(rtabmap_launch REQUIRED)
ament_add_pytest_test(test_launch_files ${rtabmap_launch_DIR}/../test/test_launch_files.py
ENV RTABMAP_LAUNCH_TEST_PACKAGE=${PROJECT_NAME} "PYTEST_ADDOPTS=-p no:cacheprovider"
TIMEOUT 900)
endif()
ament_package()
+3
View File
@@ -0,0 +1,3 @@
# rtabmap_examples
Starting points for running RTAB-Map with your own sensor. Each launch file connects one camera or lidar driver (or a public dataset) to RTAB-Map's odometry and SLAM nodes with working parameters. Copy the one closest to your setup and adapt it.
@@ -14,13 +14,20 @@
#
# If a camera is used, make sure TF between lidar/base frame and camera is
# already calibrated. To provide image data to this example, you should use
# rtabmap_sync's rgbd_sync or stereo_sync node.
# rtabmap_sync's rgbd_sync or stereo_sync node. For a camera without depth, use
# rgb_sync and set gen_depth:=true to make its depth from the lidar.
#
# Launch the example by adjusting the lidar topic, imu topic and base frame:
# $ ros2 launch rtabmap_examples lidar3d.launch.py lidar_topic:=/velodyne_points imu_topic:=/imu/data frame_id:=velodyne
#
# For a complete example with a recorded bag (Ouster on a rotating mast, IMU and
# a camera without depth), see rtabmap_demos' netherdrone_lidar3d_demo.launch.py.
import os
from launch import LaunchDescription, LaunchContext
from launch.actions import DeclareLaunchArgument, OpaqueFunction
from launch.conditions import IfCondition
from launch.substitutions import LaunchConfiguration
from launch_ros.actions import Node
@@ -52,6 +59,8 @@ def launch_setup(context: LaunchContext, *args, **kwargs):
voxel_size = LaunchConfiguration('voxel_size')
voxel_size_value = float(voxel_size.perform(context))
lidar_range_min = float(LaunchConfiguration('lidar_range_min').perform(context))
use_sim_time = LaunchConfiguration('use_sim_time')
@@ -61,8 +70,12 @@ def launch_setup(context: LaunchContext, *args, **kwargs):
deskewing_slerp = LaunchConfiguration('deskewing_slerp').perform(context)
deskewing_slerp = deskewing_slerp == 'true' or deskewing_slerp == 'True'
# Rule of thumb:
max_correspondence_distance = voxel_size_value * 10.0
max_correspondence_distance = LaunchConfiguration('max_correspondence_distance').perform(context)
if max_correspondence_distance:
max_correspondence_distance = float(max_correspondence_distance)
else:
# Rule of thumb:
max_correspondence_distance = voxel_size_value * 10.0
shared_parameters = {
'use_sim_time': use_sim_time,
@@ -80,7 +93,7 @@ def launch_setup(context: LaunchContext, *args, **kwargs):
'Icp/MaxTranslation': '3',
'Icp/MaxCorrespondenceDistance': str(max_correspondence_distance),
'Icp/Strategy': '1',
'Icp/OutlierRatio': '0.7',
'Icp/OutlierRatio': LaunchConfiguration('icp_outlier_ratio').perform(context),
}
icp_odometry_parameters = {
@@ -88,10 +101,11 @@ def launch_setup(context: LaunchContext, *args, **kwargs):
'wait_imu_to_init': True,
'odom_frame_id': 'icp_odom',
'guess_frame_id': fixed_frame_id,
'scan_range_min': lidar_range_min,
# RTAB-Map's internal parameters are strings:
'Odom/ScanKeyFrameThr': '0.4',
'Odom/ScanKeyFrameThr': LaunchConfiguration('odom_key_frame_threshold').perform(context),
'OdomF2M/ScanSubtractRadius': str(voxel_size_value),
'OdomF2M/ScanMaxSize': '15000',
'OdomF2M/ScanMaxSize': LaunchConfiguration('odom_local_map_size').perform(context),
'OdomF2M/BundleAdjustment': 'false',
'Icp/CorrespondenceRatio': '0.01'
}
@@ -107,6 +121,7 @@ def launch_setup(context: LaunchContext, *args, **kwargs):
'Rtabmap/DetectionRate': '0', # indirectly set to 1 Hz by the assembling time below (1s)
'RGBD/ProximityMaxGraphDepth': '0',
'RGBD/ProximityPathMaxNeighbors': '1',
'RGBD/ProximityAngle': '0', # assuming 360 lidar
'RGBD/AngularUpdate': '0.05',
'RGBD/LinearUpdate': '0.05',
'RGBD/CreateOccupancyGrid': 'false',
@@ -115,6 +130,21 @@ def launch_setup(context: LaunchContext, *args, **kwargs):
'Reg/Strategy': '1',
'Icp/CorrespondenceRatio': str(LaunchConfiguration('min_loop_closure_overlap').perform(context))
}
# Only for the camera, if any
camera_parameters = {
'gen_depth': LaunchConfiguration('gen_depth').perform(context).lower() == 'true',
'gen_depth_decimation': int(LaunchConfiguration('gen_depth_decimation').perform(context)),
'gen_depth_fill_holes_size': int(LaunchConfiguration('gen_depth_fill_holes_size').perform(context)),
'Rtabmap/ImagesAlreadyRectified': str(LaunchConfiguration('rectify_images').perform(context).lower() != 'true').lower(),
}
if camera_parameters['gen_depth']:
# The depth made from the lidar is 32 bits float: save it in 16 bits (mm), the
# format compressed depth images use.
camera_parameters['Mem/SaveDepth16Format'] = 'true'
database_parameters = {
}
remappings = [('imu', imu_topic),
('odom', 'icp_odom')]
@@ -124,6 +154,11 @@ def launch_setup(context: LaunchContext, *args, **kwargs):
else:
remappings.append(('rgbd_images', LaunchConfiguration('rgbd_images_topic')))
intermediate_nodes = LaunchConfiguration('intermediate_nodes').perform(context).lower() == 'true'
if intermediate_nodes and not external_odom_frame_id:
# Every odometry pose between the nodes is saved as a node without data.
rtabmap_parameters['Rtabmap/CreateIntermediateNodes'] = 'true'
arguments = []
if localization:
rtabmap_parameters['Mem/IncrementalMemory'] = 'False'
@@ -144,7 +179,8 @@ def launch_setup(context: LaunchContext, *args, **kwargs):
'use_sim_time': use_sim_time,
'fixed_frame_id': fixed_frame_id,
'wait_for_transform': 0.2,
'slerp': deskewing_slerp}],
'slerp': deskewing_slerp,
'qos': LaunchConfiguration('qos')}],
remappings=[
('input_cloud', lidar_topic)
]),
@@ -155,6 +191,10 @@ def launch_setup(context: LaunchContext, *args, **kwargs):
parameters=[{
'use_sim_time': use_sim_time,
'assembling_time': LaunchConfiguration('assembling_time'),
'range_min': lidar_range_min,
'voxel_size': float(LaunchConfiguration('assembler_voxel_size').perform(context)),
'qos': LaunchConfiguration('qos'),
'qos_odom': LaunchConfiguration('qos'),
'fixed_frame_id': (external_odom_frame_id if external_odom_frame_id else "")}], # This will make the node subscribing to icp odometry topic "icp_odom"
remappings=[('cloud', lidar_topic_deskewed),
('odom', 'icp_odom')]),
@@ -162,20 +202,23 @@ def launch_setup(context: LaunchContext, *args, **kwargs):
# Update the map
Node(
package='rtabmap_slam', executable='rtabmap', output='screen',
parameters=[shared_parameters, rtabmap_parameters,
parameters=[shared_parameters, rtabmap_parameters, database_parameters, camera_parameters,
{'subscribe_rgbd': rgbd_image_used,
'rgbd_cameras': rgbd_cameras,
'topic_queue_size': 40,
'sync_queue_size': 40,}],
remappings=remappings + [('scan_cloud', 'assembled_cloud'), ('gps/fix', LaunchConfiguration('gps_topic'))],
remappings=remappings + [('scan_cloud', 'assembled_cloud'), ('gps/fix', LaunchConfiguration('gps_topic')),
('inter_odom', 'icp_odom')],
arguments=arguments),
# Just for visualization
Node(
condition=IfCondition(LaunchConfiguration('rtabmap_viz')),
package='rtabmap_viz', executable='rtabmap_viz', output='screen',
parameters=[shared_parameters, rtabmap_parameters,
{'odometry_node_name': "icp_odometry"}],
remappings=remappings + [('scan_cloud', viz_topic)])
remappings=remappings + [('scan_cloud', viz_topic)],
arguments=['-d', LaunchConfiguration('rtabmap_viz_cfg')])
]
if not external_odom_frame_id:
@@ -195,7 +238,8 @@ def launch_setup(context: LaunchContext, *args, **kwargs):
'use_sim_time': use_sim_time,
'fixed_frame_id': fixed_frame_id,
'base_frame_id': frame_id,
'wait_for_transform_duration': 0.001}],
'wait_for_transform_duration': 0.001,
'qos': LaunchConfiguration('qos')}],
remappings=[('imu/data', imu_topic)]))
return nodes
@@ -244,10 +288,50 @@ def generate_launch_description():
'rgbd_images_topic', default_value='',
description='RGBD images topic (ignored if empty, override "rgbd_image_topic" if set). Would be the output of a rtabmap_sync\'s rgbdx_sync node.'),
DeclareLaunchArgument(
'gen_depth', default_value='false',
description='With a camera without depth (rgbd_image_topic from rgb_sync), make its depth image by projecting the assembled lidar cloud into it, so that its visual features get 3D positions.'),
DeclareLaunchArgument(
'gen_depth_decimation', default_value='4',
description='Resolution divider of the depth made by gen_depth; it must divide the image size. Lidar points are sparse in a full resolution image anyway.'),
DeclareLaunchArgument(
'gen_depth_fill_holes_size', default_value='2',
description='Fill holes up to this many pixels (after decimation) in the depth made by gen_depth, between lidar points; 0 disables.'),
DeclareLaunchArgument(
'rectify_images', default_value='false',
description='The camera images are not rectified: rectify them with their camera_info before use.'),
DeclareLaunchArgument(
'voxel_size', default_value='0.1',
description='Voxel size (m) of the downsampled lidar point cloud. For indoor, set it between 0.1 and 0.3. For outdoor, set it to 0.5 or over.'),
DeclareLaunchArgument(
'max_correspondence_distance', default_value='',
description='Maximum distance (m) between ICP correspondences. Empty: 10 times voxel_size.'),
DeclareLaunchArgument(
'icp_outlier_ratio', default_value='0.7',
description='Icp/OutlierRatio: expected ratio of outliers between scans.'),
DeclareLaunchArgument(
'odom_key_frame_threshold', default_value='0.4',
description='Odom/ScanKeyFrameThr: a new scan is added to the odometry local map when its overlap with it is below this ratio.'),
DeclareLaunchArgument(
'odom_local_map_size', default_value='15000',
description='OdomF2M/ScanMaxSize: maximum number of points of the odometry local map.'),
DeclareLaunchArgument(
'assembler_voxel_size', default_value='0.0',
description='Voxel size (m) of the clouds assembled for the map; 0 keeps every point.'),
DeclareLaunchArgument(
'lidar_range_min', default_value='0.0',
description='Lidar points closer than this (m) are ignored, by odometry and in the map; 0 keeps them all. Set it to remove hits on the robot itself.'),
DeclareLaunchArgument(
'min_loop_closure_overlap', default_value='0.2',
description='Minimum scan overlap pourcentage to accept a loop closure.'),
@@ -264,10 +348,25 @@ def generate_launch_description():
'deskewing_slerp', default_value='true',
description='Use fast slerp interpolation between first and last stamps of the scan for deskewing. It would less accruate than requesting TF for every points, but a lot faster. Enable this if the delay of the deskewed scan is significant larger than the original scan.'),
DeclareLaunchArgument(
'intermediate_nodes', default_value='false',
description='Also save every odometry pose between the map\'s nodes in the database, as nodes without data (Rtabmap/CreateIntermediateNodes). Only with icp_odometry (external_odom_frame_id empty).'),
DeclareLaunchArgument(
'qos', default_value='1',
description='Quality of Service: 0=system default, 1=reliable, 2=best effort.'),
DeclareLaunchArgument(
'rtabmap_viz', default_value='true',
description='Launch RTAB-Map UI.'),
DeclareLaunchArgument(
'rtabmap_viz_cfg', default_value='~/.ros/rtabmapGUI.ini',
description='Configuration file of rtabmap_viz, where it also saves its settings.'),
OpaqueFunction(function=launch_setup),
])
@@ -36,7 +36,7 @@ def generate_launch_description():
get_package_share_directory('realsense2_camera'), 'launch'),
'/rs_launch.py']),
launch_arguments={'align_depth.enable': 'true',
'rgb_camera.profile': '640x360x30'}.items(),
'rgb_camera.color_profile': '640x360x30'}.items(),
),
Node(
@@ -58,7 +58,7 @@ def generate_launch_description():
'unite_imu_method': LaunchConfiguration('unite_imu_method'),
'align_depth.enable': 'true',
'enable_sync': 'true',
'rgb_camera.profile': '640x360x30'}.items(),
'rgb_camera.color_profile': '640x360x30'}.items(),
),
Node(
@@ -81,7 +81,7 @@ def generate_launch_description():
'unite_imu_method': LaunchConfiguration('unite_imu_method'),
'align_depth.enable': True,
'enable_sync': True,
'rgb_camera.profile': '640x360x30',
'rgb_camera.color_profile': '640x360x30',
'depth_module.emitter_enabled': 1}], # Make sure IR emitter is enabled
extra_arguments=intra_process),
@@ -75,7 +75,7 @@ def generate_launch_description():
'enable_infra2': 'true',
'align_depth.enable': 'true',
'enable_sync': 'true',
'rgb_camera.profile': '640x360x30'}.items(),
'rgb_camera.color_profile': '640x360x30'}.items(),
),
Node(
+8
View File
@@ -23,6 +23,14 @@
<exec_depend>tf2_ros</exec_depend>
<exec_depend>realsense2_camera</exec_depend>
<exec_depend>velodyne</exec_depend>
<test_depend>ament_cmake_pytest</test_depend>
<test_depend>launch</test_depend>
<test_depend>launch_ros</test_depend>
<test_depend>python3-pytest</test_depend>
<test_depend>python3-yaml</test_depend>
<test_depend>ament_index_python</test_depend>
<test_depend>rtabmap_launch</test_depend>
<export>
<build_type>ament_cmake</build_type>
+14
View File
@@ -6,5 +6,19 @@ find_package(ament_cmake REQUIRED)
install(DIRECTORY launch
DESTINATION share/${PROJECT_NAME}
)
# The launch file test, also run by rtabmap_examples and rtabmap_demos on their own
# launch files.
install(FILES test/launch_dry_run.py test/test_launch_files.py
DESTINATION share/${PROJECT_NAME}/test
)
if(BUILD_TESTING)
find_package(ament_cmake_pytest REQUIRED)
# Dry-runs every installed launch file with each of its switches; nothing is started,
# so it needs no DDS domain of its own. See test/launch_dry_run.py.
ament_add_pytest_test(test_launch_files test/test_launch_files.py
ENV RTABMAP_LAUNCH_TEST_PACKAGE=${PROJECT_NAME}
TIMEOUT 900)
endif()
ament_package()
+9 -1
View File
@@ -84,7 +84,9 @@ def launch_setup(context, *args, **kwargs):
remappings=[
(['in/', LaunchConfiguration('rgb_image_transport')], [LaunchConfiguration('rgb_topic'), '/', LaunchConfiguration('rgb_image_transport')]),
('out', LaunchConfiguration('rgb_topic_relay'))],
# The transports: as arguments up to humble, as parameters from jazzy.
arguments=[LaunchConfiguration('rgb_image_transport'), 'raw'],
parameters=[{'in_transport': LaunchConfiguration('rgb_image_transport'), 'out_transport': 'raw'}],
namespace=LaunchConfiguration('namespace')),
Node(
package='image_transport', executable='republish', name='republish_depth',
@@ -92,7 +94,9 @@ def launch_setup(context, *args, **kwargs):
remappings=[
(['in/', LaunchConfiguration('depth_image_transport')], [LaunchConfiguration('depth_topic'), '/', LaunchConfiguration('depth_image_transport')]),
('out', LaunchConfiguration('depth_topic_relay'))],
# The transports: as arguments up to humble, as parameters from jazzy.
arguments=[LaunchConfiguration('depth_image_transport'), 'raw'],
parameters=[{'in_transport': LaunchConfiguration('depth_image_transport'), 'out_transport': 'raw'}],
namespace=LaunchConfiguration('namespace')),
Node(
package='rtabmap_sync', executable='rgbd_sync', name="rgbd_sync", output="screen",
@@ -120,7 +124,9 @@ def launch_setup(context, *args, **kwargs):
remappings=[
(['in/', LaunchConfiguration('rgb_image_transport')], [LaunchConfiguration('left_image_topic'), '/', LaunchConfiguration('rgb_image_transport')]),
('out', LaunchConfiguration('left_image_topic_relay'))],
# The transports: as arguments up to humble, as parameters from jazzy.
arguments=[LaunchConfiguration('rgb_image_transport'), 'raw'],
parameters=[{'in_transport': LaunchConfiguration('rgb_image_transport'), 'out_transport': 'raw'}],
namespace=LaunchConfiguration('namespace')),
Node(
package='image_transport', executable='republish', name='republish_right',
@@ -128,7 +134,9 @@ def launch_setup(context, *args, **kwargs):
remappings=[
(['in/', LaunchConfiguration('rgb_image_transport')], [LaunchConfiguration('right_image_topic'), '/', LaunchConfiguration('rgb_image_transport')]),
('out', LaunchConfiguration('right_image_topic_relay'))],
# The transports: as arguments up to humble, as parameters from jazzy.
arguments=[LaunchConfiguration('rgb_image_transport'), 'raw'],
parameters=[{'in_transport': LaunchConfiguration('rgb_image_transport'), 'out_transport': 'raw'}],
namespace=LaunchConfiguration('namespace')),
Node(
package='rtabmap_sync', executable='stereo_sync', name="stereo_sync", output="screen",
@@ -463,7 +471,7 @@ def generate_launch_description():
DeclareLaunchArgument('use_action_for_goal', default_value='false', description='Connect to nav2\'s navigate_to_pose action server instead of publishing the output goal topic.'),
DeclareLaunchArgument('ground_truth_frame_id', default_value='', description='e.g., "world"'),
DeclareLaunchArgument('ground_truth_base_frame_id', default_value='', description='e.g., "tracker", a fake frame matching the frame "frame_id" (but on different TF tree)'),
DeclareLaunchArgument('ground_truth_base_frame_id', default_value=[LaunchConfiguration('frame_id'), '_gt'], description='e.g., "tracker", a fake frame matching the frame "frame_id" (but on different TF tree). Empty: the ground truth is not used.'),
DeclareLaunchArgument('approx_sync', default_value='false', description='If timestamps of the input topics should be synchronized using approximate or exact time policy.'),
DeclareLaunchArgument('approx_sync_max_interval', default_value='0.0', description='(sec) 0 means infinite interval duration (used with approx_sync=true)'),
+8 -1
View File
@@ -20,7 +20,14 @@
<exec_depend>rtabmap_slam</exec_depend>
<exec_depend>rtabmap_util</exec_depend>
<exec_depend>rtabmap_viz</exec_depend>
<test_depend>ament_cmake_pytest</test_depend>
<test_depend>ament_index_python</test_depend>
<test_depend>launch</test_depend>
<test_depend>launch_ros</test_depend>
<test_depend>python3-pytest</test_depend>
<test_depend>python3-yaml</test_depend>
<export>
<build_type>ament_cmake</build_type>
</export>
+492
View File
@@ -0,0 +1,492 @@
"""
Run a launch file through a real LaunchService without starting any process.
Every action is visited as it would be by `ros2 launch`: arguments are declared and
validated, conditions evaluated, OpaqueFunctions called, includes loaded, and every
substitution of every node resolved. Only the very last step -- spawning the process,
or asking a container to load a component -- is replaced by recording what would have
been started. What a demo breaks on is almost always visible at that point: a file
moved, an argument renamed in an included launch file, an RTAB-Map parameter renamed,
an executable that no longer exists.
Packages the machine does not have (simulators, robot descriptions) are replaced by
empty stubs instead of failing the run: their launch files include nothing and their
nodes are recorded unchecked. What the demo itself passes on is still checked. Packages
named rtabmap* are never stubbed, so a typo in one of ours still fails.
check_launch_file() is the whole check of one launch file, as test_launch_files.py runs
it. Both are installed with rtabmap_launch (share/rtabmap_launch/test), so that the
launch files of rtabmap_launch, rtabmap_examples and rtabmap_demos are all checked by the
same test.
"""
import contextlib
import functools
import logging
import os
import subprocess
import tempfile
from dataclasses import dataclass, field
from pathlib import Path
from typing import Dict, List, Optional, Set, Tuple
import ament_index_python
import ament_index_python.packages
import launch_ros.substitutions.find_package
import yaml
from ament_index_python.packages import (PackageNotFoundError, get_package_prefix,
get_package_share_directory)
from launch import LaunchContext, LaunchService
from launch.actions import (DeclareLaunchArgument, ExecuteLocal, IncludeLaunchDescription,
TimerAction)
from launch.launch_description_sources import (AnyLaunchDescriptionSource,
FrontendLaunchDescriptionSource,
PythonLaunchDescriptionSource)
from launch.launch_description_sources.python_launch_file_utilities import \
get_launch_description_from_python_launch_file
from launch.substitutions.substitution_failure import SubstitutionFailure
from launch.utilities import normalize_to_list_of_substitutions, perform_substitutions
from launch_ros.actions import LifecycleNode, LoadComposableNodes, Node
from launch_ros.utilities import evaluate_parameters
@dataclass
class Started:
"""A process or component the launch file would have started."""
kind: str # 'node', 'component' or 'process'
package: Optional[str]
executable: str # executable, component plugin, or cmd[0]
stubbed: bool
cmd: List[str] = field(default_factory=list)
parameters: Dict[str, object] = field(default_factory=dict)
def describe(self) -> str:
if self.package:
return f'{self.kind} {self.package}/{self.executable}'
return f'{self.kind} {self.executable}'
@dataclass
class DryRunResult:
started: List[Started] = field(default_factory=list)
includes: List[str] = field(default_factory=list)
stubbed_packages: Set[str] = field(default_factory=set)
problems: List[str] = field(default_factory=list)
def _is_rtabmap_package(package: Optional[str]) -> bool:
return bool(package) and package.startswith('rtabmap')
def _flatten(params: dict, prefix: str = '') -> Dict[str, object]:
out = {}
for key, value in params.items():
name = f'{prefix}{key}'
if isinstance(value, dict):
out.update(_flatten(value, name + '.'))
else:
out[name] = value
return out
class _ParamsLoader(yaml.SafeLoader):
"""launch_ros writes a list parameter given as a Python tuple with its Python tag."""
_ParamsLoader.add_constructor(
'tag:yaml.org,2002:python/tuple',
lambda loader, node: tuple(loader.construct_sequence(node)))
def _load_param_file(path: str) -> Dict[str, object]:
"""All parameters of a ROS 2 params file, every node block merged."""
with open(path) as f:
content = yaml.load(f, Loader=_ParamsLoader) or {}
params = {}
for block in content.values():
if isinstance(block, dict) and isinstance(block.get('ros__parameters'), dict):
params.update(_flatten(block['ros__parameters']))
return params
class _DryRun:
"""The patched hooks. One instance per run; they all record into self.result."""
def __init__(self, stub_root: str, known_parameters: Optional[Set[str]]):
self.result = DryRunResult()
self.stub_root = stub_root
self.known_parameters = known_parameters
self.rtabmap_shares = sorted(
os.path.join(prefix, 'share', name)
for name, prefix in ament_index_python.get_packages_with_prefixes().items()
if _is_rtabmap_package(name))
self._real_get_package_prefix = ament_index_python.packages.get_package_prefix
# -- checks -------------------------------------------------------------------------
def problem(self, msg: str):
if msg not in self.result.problems:
self.result.problems.append(msg)
def is_stub_path(self, path: str) -> bool:
return path.startswith(self.stub_root + os.sep)
def in_rtabmap_share(self, path: str) -> bool:
return any(path == share or path.startswith(share + os.sep)
for share in self.rtabmap_shares)
def check_path(self, value, where: str):
"""A path into one of our packages must exist. Others are not ours to check."""
if isinstance(value, str) and self.in_rtabmap_share(value) and not os.path.exists(value):
self.problem(f'{where}: {value} does not exist')
def check_parameters(self, started: Started):
"""RTAB-Map's own parameters ("Group/Name") must exist in the installed library."""
if self.known_parameters is None or not _is_rtabmap_package(started.package):
return
for name, value in started.parameters.items():
self.check_path(value, f'{started.describe()} parameter {name}')
group, sep, rest = name.partition('/')
if not sep or not group.isalnum() or '/' in rest or '.' in name:
continue
if name not in self.known_parameters:
# Renamed parameters still work, with a warning asking to update the
# launch file; the installed library no longer lists the old name.
self.problem(f'{started.describe()}: "{name}" is not a parameter of the '
'installed RTAB-Map (renamed or removed)')
def record(self, started: Started):
self.check_parameters(started)
self.result.started.append(started)
# -- package lookup -----------------------------------------------------------------
def get_package_prefix(self, package_name):
try:
return self._real_get_package_prefix(package_name)
except PackageNotFoundError:
if _is_rtabmap_package(package_name):
raise
prefix = os.path.join(self.stub_root, package_name)
os.makedirs(os.path.join(prefix, 'share', package_name), exist_ok=True)
self.result.stubbed_packages.add(package_name)
return prefix
def is_stubbed(self, package: Optional[str]) -> bool:
return package in self.result.stubbed_packages
# -- launch hooks -------------------------------------------------------------------
def wrap_get_launch_description(self, original):
def _get_launch_description(source, location):
if self.is_stub_path(location):
from launch import LaunchDescription
return LaunchDescription([])
return original(source, location)
return _get_launch_description
def wrap_include_execute(self, original):
def execute(action: IncludeLaunchDescription, context: LaunchContext):
entities = original(action, context)
location = action.launch_description_source.location
self.result.includes.append(location)
passed = {
perform_substitutions(context, normalize_to_list_of_substitutions(name)):
perform_substitutions(context, normalize_to_list_of_substitutions(value))
for name, value in action.launch_arguments}
for name, value in passed.items():
self.check_path(value, f'argument {name} passed to {os.path.basename(location)}')
# Launch accepts any argument and silently ignores the ones the included file
# does not declare, so a renamed argument breaks the demo without a word. For
# our own files it is always a mistake; others may read undeclared ones.
if any(location.startswith(share + os.sep) for share in self.rtabmap_shares):
declared = {
arg.name for arg in
action.launch_description_source.get_launch_description(context)
.get_launch_arguments()}
for name in sorted(set(passed) - declared):
self.problem(
f'argument "{name}" passed to {os.path.basename(location)}, '
'which does not declare it')
return entities
return execute
def wrap_declare_execute(self, original):
def execute(action: DeclareLaunchArgument, context: LaunchContext):
entities = original(action, context)
self.check_path(context.launch_configurations.get(action.name),
f'launch argument {action.name}')
return entities
return execute
def execute_local(self, action: ExecuteLocal, context: LaunchContext):
"""Record the process instead of starting it."""
package = None
if isinstance(action, Node):
package = perform_substitutions(
context, normalize_to_list_of_substitutions(action.node_package))
cmd = []
for i, part in enumerate(action.cmd):
try:
cmd.append(perform_substitutions(context, part))
except (SubstitutionFailure, PackageNotFoundError) as e:
# The executable of a stubbed package cannot be found, and a plain
# ExecuteProcess may call a tool (gz, xacro) this machine does not have.
if i == 0 and (self.is_stubbed(package) or not isinstance(action, Node)):
cmd.append('<unresolved>')
else:
self.problem(f'{package or "process"}: {e}')
return None
if isinstance(action, Node):
executable = perform_substitutions(
context, normalize_to_list_of_substitutions(action.node_executable))
started = Started('node', package, executable, self.is_stubbed(package), cmd)
else:
started = Started('process', None, os.path.basename(cmd[0]), False, cmd)
for i, token in enumerate(cmd):
self.check_path(token, started.describe())
previous = cmd[i - 1] if i > 0 else None
if previous == '--params-file':
if not self.is_stub_path(token) and not os.path.isfile(token):
self.problem(f'{started.describe()}: params file {token} does not exist')
continue
if not self.is_stub_path(token):
started.parameters.update(_load_param_file(token))
elif previous == '-p' and ':=' in token:
name, value = token.split(':=', 1)
started.parameters[name] = value
elif (previous == '-d' and os.path.isabs(token) and not self.is_stub_path(token)
and not self.in_rtabmap_share(token) and not os.path.exists(token)):
# rviz2's config; rtabmap's own -d (delete the database) takes no value.
self.problem(f'{started.describe()}: -d {token} does not exist')
self.record(started)
return None
def wrap_load_composable_nodes_init(self, original):
def __init__(action, *args, **kwargs):
original(action, *args, **kwargs)
descriptions = kwargs.get('composable_node_descriptions')
if descriptions is None and args:
descriptions = args[0]
action._dry_run_descriptions = list(descriptions or [])
return __init__
def load_composable_nodes(self, action: LoadComposableNodes, context: LaunchContext):
"""Record the components instead of asking the container to load them."""
for description in action._dry_run_descriptions:
package = perform_substitutions(context, description.package)
plugin = perform_substitutions(context, description.node_plugin)
# A component's package is not looked up by launch, only by the container
# loading it: look it up here, so a package not installed gets stubbed like
# a node's would.
self.get_package_prefix(package)
stubbed = self.is_stubbed(package)
started = Started('component', package, plugin, stubbed)
if not stubbed:
try:
content, _ = ament_index_python.get_resource('rclcpp_components', package)
plugins = [line.split(';')[0] for line in content.splitlines()]
if plugin not in plugins:
self.problem(f'component {plugin} is not registered by {package}')
except LookupError:
self.problem(f'package {package} registers no components (wanted {plugin})')
if description.parameters is not None:
for evaluated in evaluate_parameters(context, description.parameters):
if isinstance(evaluated, dict):
started.parameters.update(_flatten(evaluated))
else:
path = str(evaluated)
if not os.path.isfile(path):
self.problem(f'{started.describe()}: params file {path} does not exist')
else:
started.parameters.update(_load_param_file(path))
self.record(started)
return None
class _ErrorCollector(logging.Handler):
"""LaunchService reports an exception by logging it and returning 1.
launch_ros only warns about a parameter file that does not exist, and starts the
node without it; for a demo that is as broken as an exception.
"""
def __init__(self):
super().__init__(logging.WARNING)
self.messages = []
def emit(self, record):
message = record.getMessage()
if record.levelno >= logging.ERROR or 'Parameter file path is not a file' in message:
self.messages.append(message)
@contextlib.contextmanager
def _patched(session: _DryRun):
patches = []
def patch(owner, name, value):
patches.append((owner, name, getattr(owner, name)))
setattr(owner, name, value)
# Launch files bind these by name when they are loaded -- which happens inside the
# run, after the patch -- but launch_ros bound its copies at import.
for module in (ament_index_python.packages, ament_index_python,
launch_ros.substitutions.find_package):
patch(module, 'get_package_prefix', session.get_package_prefix)
for cls in (PythonLaunchDescriptionSource, AnyLaunchDescriptionSource,
FrontendLaunchDescriptionSource):
patch(cls, '_get_launch_description',
session.wrap_get_launch_description(cls._get_launch_description))
patch(IncludeLaunchDescription, 'execute',
session.wrap_include_execute(IncludeLaunchDescription.execute))
patch(DeclareLaunchArgument, 'execute',
session.wrap_declare_execute(DeclareLaunchArgument.execute))
# Node and ExecuteProcess do all their substitutions, then hand over to
# ExecuteLocal.execute to spawn. Stopping there keeps everything before it real.
patch(ExecuteLocal, 'execute', lambda action, context: session.execute_local(action, context))
# LifecycleNode subscribes to the node through rclpy before running it.
patch(LifecycleNode, 'execute', lambda action, context: Node.execute(action, context))
patch(LoadComposableNodes, '__init__',
session.wrap_load_composable_nodes_init(LoadComposableNodes.__init__))
patch(LoadComposableNodes, 'execute',
lambda action, context: session.load_composable_nodes(action, context))
# Timers only wait for a simulator that is not there; what they start is what matters.
patch(TimerAction, 'execute', lambda action, context: list(action.actions))
try:
yield
finally:
for owner, name, value in reversed(patches):
setattr(owner, name, value)
@contextlib.contextmanager
def _restored_environ():
# On Humble SetEnvironmentVariable writes os.environ directly, and some demos set
# os.environ themselves (TURTLEBOT3_MODEL). Keep each run from seeing the last one's.
saved = os.environ.copy()
try:
yield
finally:
os.environ.clear()
os.environ.update(saved)
@contextlib.contextmanager
def _session(known_parameters):
with tempfile.TemporaryDirectory(prefix='launch_dry_run_stubs_') as stub_root:
session = _DryRun(os.path.realpath(stub_root), known_parameters)
with _patched(session), _restored_environ():
yield session
def declared_arguments(launch_file: str) -> List[DeclareLaunchArgument]:
"""The arguments a launch file declares itself, loaded with the same package stubs.
Not get_launch_arguments(): it also returns those of every file it includes, and
their switches are the business of those files.
"""
with _session(None):
description = get_launch_description_from_python_launch_file(launch_file)
return [e for e in description.entities if isinstance(e, DeclareLaunchArgument)]
def dry_run(launch_file: str, launch_arguments: Dict[str, str],
known_parameters: Optional[Set[str]] = None) -> DryRunResult:
"""Run launch_file with launch_arguments; see the module docstring."""
with _session(known_parameters) as session:
errors = _ErrorCollector()
# Launch loggers do not propagate: listen on each one that reports something.
loggers = [logging.getLogger('launch'), logging.getLogger('launch_ros.actions.node')]
for logger in loggers:
logger.addHandler(errors)
try:
service = LaunchService(noninteractive=True)
service.include_launch_description(IncludeLaunchDescription(
PythonLaunchDescriptionSource(launch_file),
launch_arguments=list(launch_arguments.items())))
return_code = service.run()
finally:
for logger in loggers:
logger.removeHandler(errors)
for message in errors.messages:
session.problem(message)
if return_code != 0 and not errors.messages:
session.problem(f'launch returned {return_code}')
return session.result
@functools.lru_cache(maxsize=None)
def known_rtabmap_parameters() -> frozenset:
"""All RTAB-Map parameters of the installed library.
The SLAM node leaves the odometry ones out of its --params listing, and the
odometry node the SLAM ones, so it takes both.
"""
names = set()
for package, executable in (('rtabmap_slam', 'rtabmap'), ('rtabmap_odom', 'rgbd_odometry')):
path = Path(get_package_prefix(package)) / 'lib' / package / executable
output = subprocess.run([str(path), '--params'], capture_output=True, text=True,
timeout=60, check=True).stdout
for line in output.splitlines():
if line.startswith('Param: '):
names.add(line[len('Param: '):].split(' = ', 1)[0].strip())
if len(names) < 300:
raise RuntimeError(f'could not read the parameter list ({len(names)} found)')
return frozenset(names)
def variants(launch_file: str):
"""The default arguments, then each boolean flipped and each other choice, one at a time."""
yield {}
context = LaunchContext()
for argument in declared_arguments(launch_file):
if argument.choices:
default = None
if argument.default_value is not None:
default = perform_substitutions(context, argument.default_value)
for choice in argument.choices:
if choice != default:
yield {argument.name: choice}
continue
if argument.default_value is None:
continue
try:
default = perform_substitutions(context, argument.default_value)
except Exception:
continue # default made of other arguments; not a switch
if default.lower() in ('true', 'false'):
yield {argument.name: 'false' if default.lower() == 'true' else 'true'}
def launch_files(source_dir: Path) -> List[str]:
"""The launch files under a package's launch directory, relative to it."""
return sorted(str(p.relative_to(source_dir)) for p in source_dir.rglob('*.launch.py'))
def check_launch_file(package: str, launch_file: str) -> Tuple[List[str], Set[str]]:
"""Dry-run the installed share/<package>/launch/<launch_file> with each variant.
Returns the failures, one per variant that has problems, and the packages that had
to be stubbed.
"""
installed = Path(get_package_share_directory(package)) / 'launch' / launch_file
if not installed.is_file():
return [f'{launch_file} is not installed'], set()
failures = []
stubbed = set()
for arguments in variants(str(installed)):
result = dry_run(str(installed), arguments, known_rtabmap_parameters())
stubbed |= result.stubbed_packages
problems = list(result.problems)
# Every launch file here is there to run some part of RTAB-Map. A condition or
# an include gone wrong can drop it without any error.
if not arguments and not any(_is_rtabmap_package(s.package) for s in result.started):
problems.append('starts nothing from an rtabmap package')
if problems:
shown = ' '.join(f'{k}:={v}' for k, v in arguments.items()) or '(defaults)'
failures.append(f'{shown}\n ' + '\n '.join(problems))
return failures, stubbed
+63
View File
@@ -0,0 +1,63 @@
"""
Dry-run every launch file of a package, with its default arguments and with each of its
switches flipped, and check what it would start. See launch_dry_run.py, next to this file.
Installed with rtabmap_launch, and run by each package whose launch files it checks,
which names itself in RTABMAP_LAUNCH_TEST_PACKAGE (see their CMakeLists.txt): the
installed launch files of that package are the ones checked.
A launch file is only checked as far as this machine can resolve it: the drivers or
simulators that are not installed are stubbed, and the test says which.
"""
import os
import warnings
from pathlib import Path
import pytest
from ament_index_python.packages import get_package_share_directory
from launch_dry_run import check_launch_file, declared_arguments, dry_run, launch_files
PACKAGE = os.environ.get('RTABMAP_LAUNCH_TEST_PACKAGE', 'rtabmap_launch')
LAUNCH_DIR = Path(get_package_share_directory(PACKAGE)) / 'launch'
LAUNCH_FILES = launch_files(LAUNCH_DIR)
@pytest.mark.parametrize('launch_file', LAUNCH_FILES)
def test_launch_file(launch_file):
failures, stubbed = check_launch_file(PACKAGE, launch_file)
if stubbed:
warnings.warn(f'{launch_file}: not installed, stubbed: {", ".join(sorted(stubbed))}')
assert not failures, f'{launch_file}:\n ' + '\n '.join(failures)
def _with_ground_truth_arguments(launch_file: str) -> bool:
names = {a.name for a in declared_arguments(str(LAUNCH_DIR / launch_file))}
return {'frame_id', 'ground_truth_frame_id', 'ground_truth_base_frame_id'} <= names
GROUND_TRUTH_LAUNCH_FILES = [f for f in LAUNCH_FILES if _with_ground_truth_arguments(f)]
# Where a launch file declares frame_id and the ground truth's frames, the robot frame of
# the ground truth defaults to frame_id + "_gt", as in the nodes; set empty, it reaches the
# nodes empty, which turns the ground truth off. Defined only where there is one: an empty
# parametrization would be reported as skipped.
if GROUND_TRUTH_LAUNCH_FILES:
@pytest.mark.parametrize('launch_file', GROUND_TRUTH_LAUNCH_FILES)
@pytest.mark.parametrize('arguments, expected', [
({}, 'base_footprint_gt'),
({'ground_truth_base_frame_id': 'tracker'}, 'tracker'),
({'ground_truth_base_frame_id': ''}, ''),
], ids=['default', 'set', 'empty'])
def test_ground_truth_base_frame_id(launch_file, arguments, expected):
arguments = dict(arguments, frame_id='base_footprint', ground_truth_frame_id='world')
result = dry_run(str(LAUNCH_DIR / launch_file), arguments)
assert not result.problems, '\n'.join(result.problems)
given = {s.describe(): s.parameters.get('ground_truth_base_frame_id')
for s in result.started if 'ground_truth_frame_id' in s.parameters}
assert given, f'{launch_file} starts no node with a ground truth'
for node, value in given.items():
assert value == expected, \
f'{node}: ground_truth_base_frame_id={value!r}, expected {expected!r}'
+1 -1
View File
@@ -78,7 +78,7 @@ These apply to all three nodes.
| `wait_for_transform` | `double` | `0.1` | Seconds to wait for a needed transform before giving up on the frame. |
| `initial_pose` | `string` | `""` | Starting pose, `"x y z roll pitch yaw"`. Also settable at runtime through `reset_odom_to_pose`. |
| `ground_truth_frame_id` | `string` | `""` | When set, the pose is taken from this TF instead of being computed — for replaying a dataset with a known trajectory. |
| `ground_truth_base_frame_id` | `string` | value of `frame_id` | The robot frame within the ground truth TF tree. |
| `ground_truth_base_frame_id` | `string` | value of `frame_id` + `"_gt"` | The robot frame within the ground truth TF tree. Empty: the ground truth is not used. |
| `guess_frame_id` | `string` | `""` | A frame carrying another odometry source, used as the initial guess for each registration. Documented with its companions under [Feeding in an external guess](#feeding-in-an-external-guess) -- **the highest-value parameter here for a wheeled robot**. |
The sensor must be connected to `frame_id` in TF **before the first frame arrives**, or that frame is dropped with a warning. A static publisher is the usual answer.
+2 -2
View File
@@ -177,7 +177,7 @@ OdometryROS::OdometryROS(const std::string & name, const rclcpp::NodeOptions & o
waitForTransform_ = this->declare_parameter("wait_for_transform", waitForTransform_);
initialPoseStr = this->declare_parameter("initial_pose", initialPoseStr); // "x y z roll pitch yaw"
groundTruthFrameId_ = this->declare_parameter("ground_truth_frame_id", groundTruthFrameId_);
groundTruthBaseFrameId_ = this->declare_parameter("ground_truth_base_frame_id", frameId_);
groundTruthBaseFrameId_ = this->declare_parameter("ground_truth_base_frame_id", frameId_+"_gt");
configPath_ = this->declare_parameter("config_path", configPath_);
publishNullWhenLost_ = this->declare_parameter("publish_null_when_lost", publishNullWhenLost_);
@@ -746,7 +746,7 @@ void OdometryROS::processData()
return;
}
if(!groundTruthFrameId_.empty())
if(!groundTruthFrameId_.empty() && !groundTruthBaseFrameId_.empty())
{
groundTruth = rtabmap_conversions::getTransform(groundTruthFrameId_, groundTruthBaseFrameId_, header.stamp, *tfBuffer_, waitForTransform_);
+34 -2
View File
@@ -32,6 +32,11 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#include <rclcpp/rclcpp.hpp>
#include <execinfo.h>
#include <unistd.h>
#include <csignal>
#include <chrono>
#include <functional>
#include <memory>
@@ -66,11 +71,38 @@ public:
}
};
/**
* @brief Prints the stack of a test binary that crashes, then crashes as it would have.
*
* A crash in CI shows only the return code otherwise (-11 for SIGSEGV), there being no
* debugger or core dump there. Library frames come with their function names; this
* binary's with an offset, for `addr2line -C -f -e <binary> <offset>`.
*/
inline void printStackOnCrash(int signal)
{
void * frames[64];
const int count = ::backtrace(frames, 64);
const char header[] = "\n*** Crashed, stack trace:\n";
if(::write(STDERR_FILENO, header, sizeof(header) - 1) < 0) {}
::backtrace_symbols_fd(frames, count, STDERR_FILENO);
std::signal(signal, SIG_DFL);
std::raise(signal);
}
/// Registers RclcppEnvironment. Call once at file scope in each test binary.
inline ::testing::Environment * registerRclcppEnvironment()
{
static ::testing::Environment * const env =
::testing::AddGlobalTestEnvironment(new RclcppEnvironment);
static ::testing::Environment * const env = []() {
// backtrace() loads libgcc on its first call, which is not safe in a signal
// handler: done here.
void * frame;
::backtrace(&frame, 1);
for(int signal : {SIGSEGV, SIGBUS, SIGFPE, SIGILL, SIGABRT})
{
std::signal(signal, printStackOnCrash);
}
return ::testing::AddGlobalTestEnvironment(new RclcppEnvironment);
}();
return env;
}
+57
View File
@@ -454,6 +454,63 @@ TEST_F(OdometryRosTest, starts_from_the_configured_initial_pose)
EXPECT_NEAR(3.0, odom->back().pose.pose.position.z, 1e-3);
}
/**
* With a ground truth frame, the odometry starts from the ground truth's first pose:
* ground_truth_frame_id -> ground_truth_base_frame_id, which defaults to frame_id + "_gt".
* Empty, ground_truth_base_frame_id turns the ground truth off.
*/
class OdometryRosGroundTruthTest : public OdometryRosTest
{
protected:
/// Latches world -> base_link_gt at (1, 2, 3), the only ground truth in TF.
void publishGroundTruth()
{
geometry_msgs::msg::TransformStamped gt;
gt.header.stamp = helper()->now();
gt.header.frame_id = "world";
gt.child_frame_id = "base_link_gt";
gt.transform.translation.x = 1.0;
gt.transform.translation.y = 2.0;
gt.transform.translation.z = 3.0;
gt.transform.rotation.w = 1.0;
gtTf_ = std::make_shared<tf2_ros::StaticTransformBroadcaster>(*helper());
gtTf_->sendTransform(gt);
}
/// The pose of the first frame, with the ground truth and @p params.
geometry_msgs::msg::Point firstPose(const std::vector<rclcpp::Parameter> & params)
{
publishSensorTf();
publishGroundTruth();
std::shared_ptr<Collector<nav_msgs::msg::Odometry>> odom =
collect<nav_msgs::msg::Odometry>("odom");
makeNode(params);
rclcpp::Publisher<sensor_msgs::msg::PointCloud2>::SharedPtr pub = scanPublisher();
EXPECT_TRUE(waitForSubscriber(pub));
feedFrames(pub, odom, 1);
return odom->empty() ? geometry_msgs::msg::Point() : odom->back().pose.pose.position;
}
std::shared_ptr<tf2_ros::StaticTransformBroadcaster> gtTf_;
};
TEST_F(OdometryRosGroundTruthTest, starts_from_the_ground_truth_of_frame_id_gt_by_default)
{
geometry_msgs::msg::Point p = firstPose({rclcpp::Parameter("ground_truth_frame_id", "world")});
EXPECT_NEAR(1.0, p.x, 1e-3);
EXPECT_NEAR(2.0, p.y, 1e-3);
EXPECT_NEAR(3.0, p.z, 1e-3);
}
TEST_F(OdometryRosGroundTruthTest, ignores_the_ground_truth_when_its_base_frame_is_empty)
{
geometry_msgs::msg::Point p = firstPose({rclcpp::Parameter("ground_truth_frame_id", "world"),
rclcpp::Parameter("ground_truth_base_frame_id", "")});
EXPECT_NEAR(0.0, p.x, 1e-3);
EXPECT_NEAR(0.0, p.y, 1e-3);
EXPECT_NEAR(0.0, p.z, 1e-3);
}
/// reset_odom puts the pose back to the identity and starts the map again.
TEST_F(OdometryRosTest, reset_odom_returns_the_pose_to_the_origin)
{
+24
View File
@@ -30,6 +30,15 @@ find_package(tf2 REQUIRED)
find_package(rtabmap_conversions REQUIRED)
find_package(rtabmap_msgs REQUIRED)
# Optional: wall clipping of the OrbitOriented view controller
find_package(octomap QUIET)
find_package(octomap_msgs QUIET)
IF(octomap_FOUND AND octomap_msgs_FOUND)
MESSAGE(STATUS "WITH octomap (OrbitOriented's wall clipping)")
ELSE()
MESSAGE(STATUS "WITHOUT octomap (OrbitOriented's wall clipping disabled)")
ENDIF()
include_directories(
${CMAKE_CURRENT_SOURCE_DIR}/include
)
@@ -78,9 +87,11 @@ add_library(rtabmap_rviz_plugins SHARED
src/MapCloudDisplay.cpp
src/MapGraphDisplay.cpp
src/InfoDisplay.cpp
src/OrbitOrientedViewController.cpp
include/${PROJECT_NAME}/MapCloudDisplay.h
include/${PROJECT_NAME}/MapGraphDisplay.h
include/${PROJECT_NAME}/InfoDisplay.h
include/${PROJECT_NAME}/OrbitOrientedViewController.h
)
set_property(TARGET rtabmap_rviz_plugins PROPERTY AUTOMOC ON)
target_include_directories(rtabmap_rviz_plugins
@@ -94,6 +105,19 @@ ELSE()
target_link_libraries(rtabmap_rviz_plugins PRIVATE ${Libraries})
ENDIF()
IF(octomap_FOUND AND octomap_msgs_FOUND)
target_compile_definitions(rtabmap_rviz_plugins PRIVATE RTABMAP_RVIZ_PLUGINS_OCTOMAP)
target_include_directories(rtabmap_rviz_plugins PRIVATE ${OCTOMAP_INCLUDE_DIRS})
# octomap's config only sets variables. The same signature as above, as CMake
# requires for a target.
if("$ENV{ROS_DISTRO}" STRLESS "lyrical")
ament_target_dependencies(rtabmap_rviz_plugins octomap_msgs)
target_link_libraries(rtabmap_rviz_plugins ${OCTOMAP_LIBRARIES})
ELSE()
target_link_libraries(rtabmap_rviz_plugins PRIVATE octomap_msgs::octomap_msgs ${OCTOMAP_LIBRARIES})
ENDIF()
ENDIF()
# Causes the visibility macros to use dllexport rather than dllimport,
# which is appropriate when building the dll but not consuming it.
target_compile_definitions(rtabmap_rviz_plugins PRIVATE "RTABMAP_ROS_BUILDING_LIBRARY")
@@ -0,0 +1,113 @@
/*
Copyright (c) 2010-2026, Mathieu Labbe - IntRoLab - Universite de Sherbrooke
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
* Neither the name of the Universite de Sherbrooke nor the
names of its contributors may be used to endorse or promote products
derived from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY
DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
#ifndef ORBIT_ORIENTED_VIEW_CONTROLLER_H
#define ORBIT_ORIENTED_VIEW_CONTROLLER_H
#include <memory>
#include <mutex>
#include <thread>
#include <rtabmap_rviz_plugins/visibility.h>
#include <rviz_default_plugins/view_controllers/orbit/orbit_view_controller.hpp>
#ifdef RTABMAP_RVIZ_PLUGINS_OCTOMAP
#include <octomap_msgs/msg/octomap.hpp>
#include <rclcpp/subscription.hpp>
namespace octomap
{
class AbstractOcTree;
}
#endif
namespace rviz_common
{
namespace properties
{
class BoolProperty;
class FloatProperty;
class IntProperty;
class RosTopicProperty;
}
}
namespace rtabmap_rviz_plugins
{
/**
* An orbit view controller whose camera turns with the target frame's yaw: the view
* stays behind the robot as it turns. With "Wall clipping" (needs octomap), the camera
* is moved in front of any obstacle of an octomap that would hide the target.
*/
class RTABMAP_RVIZ_PLUGINS_PUBLIC OrbitOrientedViewController :
public rviz_default_plugins::view_controllers::OrbitViewController
{
Q_OBJECT
public:
OrbitOrientedViewController();
virtual ~OrbitOrientedViewController();
void onInitialize() override;
protected:
void updateCamera() override;
private Q_SLOTS:
void updateWallClipping();
private:
float targetYaw() const;
rviz_common::properties::FloatProperty * fov_property_;
rviz_common::properties::BoolProperty * wall_clipping_property_;
#ifdef RTABMAP_RVIZ_PLUGINS_OCTOMAP
Ogre::Vector3 clipToWalls(const Ogre::Vector3 & focal_point, const Ogre::Vector3 & position);
void octomapCallback(const octomap_msgs::msg::Octomap::ConstSharedPtr msg);
void decodeOctomaps();
rviz_common::properties::RosTopicProperty * octomap_topic_property_;
rviz_common::properties::FloatProperty * ignore_distance_property_;
rviz_common::properties::IntProperty * octree_depth_property_;
rviz_common::properties::FloatProperty * wall_margin_property_;
rclcpp::Subscription<octomap_msgs::msg::Octomap>::SharedPtr octomap_sub_;
// Decoding a large octomap takes too long for rviz's thread, which runs the
// subscription: it is done by a thread of its own, which keeps only the latest map.
std::mutex octomap_mutex_;
octomap_msgs::msg::Octomap::ConstSharedPtr pending_octomap_;
std::shared_ptr<octomap::AbstractOcTree> octree_;
std::thread decoding_thread_;
bool decoding_;
bool warned_no_octomap_;
#endif
};
} // namespace rtabmap_rviz_plugins
#endif // ORBIT_ORIENTED_VIEW_CONTROLLER_H
+2
View File
@@ -26,6 +26,8 @@
<depend>tf2</depend>
<depend>rtabmap_conversions</depend>
<depend>rtabmap_msgs</depend>
<depend>liboctomap-dev</depend> <!-- optional: OrbitOriented's wall clipping -->
<depend>octomap_msgs</depend> <!-- optional: OrbitOriented's wall clipping -->
<export>
<build_type>ament_cmake</build_type>
+7
View File
@@ -23,4 +23,11 @@
</description>
<message_type>rtabmap_rviz_plugins/msg/Info</message_type>
</class>
<class name="rtabmap_rviz_plugins/OrbitOriented"
type="rtabmap_rviz_plugins::OrbitOrientedViewController"
base_class_type="rviz_common::ViewController">
<description>
Orbit camera turning with the target frame's yaw, so the view stays behind the robot. Optionally (built with octomap), the camera is moved in front of the octomap obstacles that would hide the target.
</description>
</class>
</library>
@@ -36,6 +36,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#include <OgreSceneManager.h>
#include "rclcpp/clock.hpp"
#include "rclcpp/node.hpp"
#include "rviz_common/display.hpp"
#include "rviz_default_plugins/displays/pointcloud/point_cloud_to_point_cloud2.hpp"
@@ -0,0 +1,384 @@
/*
Copyright (c) 2010-2026, Mathieu Labbe - IntRoLab - Universite de Sherbrooke
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
* Neither the name of the Universite de Sherbrooke nor the
names of its contributors may be used to endorse or promote products
derived from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY
DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
#include "rtabmap_rviz_plugins/OrbitOrientedViewController.h"
#include <algorithm>
#include <cmath>
#include <stdexcept>
#include <OgreCamera.h>
#include <OgreQuaternion.h>
#include <OgreSceneNode.h>
#include <OgreVector3.h>
#include <rviz_common/display_context.hpp>
#include <rviz_common/logging.hpp>
#include <rviz_common/properties/bool_property.hpp>
#include <rviz_common/properties/float_property.hpp>
#include <rviz_common/properties/int_property.hpp>
#include <rviz_common/properties/ros_topic_property.hpp>
#include <rviz_common/properties/vector_property.hpp>
#include <rviz_common/ros_integration/ros_node_abstraction_iface.hpp>
#include <rviz_rendering/objects/shape.hpp>
#include <rclcpp/node.hpp>
#ifdef RTABMAP_RVIZ_PLUGINS_OCTOMAP
#include <octomap/ColorOcTree.h>
#include <octomap/OcTree.h>
#include <octomap_msgs/conversions.h>
#endif
namespace rtabmap_rviz_plugins
{
namespace
{
// Ogre's default, 45 degrees.
const float kDefaultFov = Ogre::Math::HALF_PI / 2.0f;
#ifdef RTABMAP_RVIZ_PLUGINS_OCTOMAP
/// How far along a ray from origin to end the first occupied voxel of the tree starts,
/// if the ray crosses one. Voxels are taken at the given depth of the tree, as an
/// octomap display showing that depth draws them: a coarser voxel is occupied if any of
/// its leaves is, and the ray may cross it without crossing that leaf.
template<class TREE>
bool firstHit(const TREE & tree, unsigned int depth, const octomath::Vector3 & origin,
const octomath::Vector3 & end, float & distance)
{
octomap::KeyRay keys;
if(!tree.computeRayKeys(origin, end, keys))
{
return false; // out of the tree's bounds
}
if(depth == 0 || depth > tree.getTreeDepth())
{
depth = tree.getTreeDepth();
}
const double halfSize = tree.getNodeSize(depth) / 2.0;
const octomath::Vector3 direction = (end - origin).normalized();
bool first = true;
octomap::OcTreeKey previous;
for(octomap::KeyRay::const_iterator iter = keys.begin(); iter != keys.end(); ++iter)
{
const octomap::OcTreeKey key = tree.adjustKeyAtDepth(*iter, depth);
if(!first && key == previous)
{
continue; // still in the same coarse voxel
}
first = false;
previous = key;
const typename TREE::NodeType * node = tree.search(key, depth);
if(node == 0 || !tree.isNodeOccupied(node))
{
continue; // free or unknown
}
// Where the ray enters that voxel's cube.
const octomath::Vector3 center = tree.keyToCoord(key, depth);
double entry = 0.0;
for(int i = 0; i < 3; ++i)
{
if(std::fabs(direction(i)) > 1e-9)
{
const double t1 = (center(i) - halfSize - origin(i)) / direction(i);
const double t2 = (center(i) + halfSize - origin(i)) / direction(i);
entry = std::max(entry, std::min(t1, t2));
}
}
distance = static_cast<float>(entry);
return true;
}
return false;
}
#endif
} // namespace
OrbitOrientedViewController::OrbitOrientedViewController()
#ifdef RTABMAP_RVIZ_PLUGINS_OCTOMAP
: decoding_(false),
warned_no_octomap_(false)
#endif
{
fov_property_ = new rviz_common::properties::FloatProperty(
"Field of View", kDefaultFov, "Vertical field of view of the camera (rad).", this);
fov_property_->setMin(0.001f);
fov_property_->setMax(Ogre::Math::PI - 0.001f);
wall_clipping_property_ = new rviz_common::properties::BoolProperty(
"Wall clipping", false,
"Move the camera in front of the octomap obstacles that would hide the target.",
this, SLOT(updateWallClipping()), this);
#ifdef RTABMAP_RVIZ_PLUGINS_OCTOMAP
octomap_topic_property_ = new rviz_common::properties::RosTopicProperty(
"Octomap Topic", "/octomap_binary", "octomap_msgs/msg/Octomap",
"Octomap in which obstacles are looked for, e.g., rtabmap's octomap_binary (occupancy only, smaller) or octomap_full.",
wall_clipping_property_, SLOT(updateWallClipping()), this);
ignore_distance_property_ = new rviz_common::properties::FloatProperty(
"Ignore Distance", 1.0f,
"Obstacles closer than this to the focal point (m) are ignored, so that the "
"target's own voxels do not count.",
wall_clipping_property_);
ignore_distance_property_->setMin(0.0f);
octree_depth_property_ = new rviz_common::properties::IntProperty(
"Octree Depth", 16,
"Depth of the octomap at which obstacles are looked for: set it as the octomap "
"display's \"Max. Octree Depth\", so that the camera stops in front of the cubes "
"shown. 16 is the full resolution.",
wall_clipping_property_);
octree_depth_property_->setMin(1);
octree_depth_property_->setMax(16);
wall_margin_property_ = new rviz_common::properties::FloatProperty(
"Wall Margin", 0.05f,
"How far in front of an obstacle the camera is put (m).",
wall_clipping_property_);
wall_margin_property_->setMin(0.0f);
#else
wall_clipping_property_->setReadOnly(true);
wall_clipping_property_->setDescription(
"Not available: rtabmap_rviz_plugins was built without octomap.");
#endif
}
OrbitOrientedViewController::~OrbitOrientedViewController()
{
#ifdef RTABMAP_RVIZ_PLUGINS_OCTOMAP
{
std::lock_guard<std::mutex> lock(octomap_mutex_);
pending_octomap_.reset();
}
if(decoding_thread_.joinable())
{
decoding_thread_.join();
}
#endif
}
void OrbitOrientedViewController::onInitialize()
{
OrbitViewController::onInitialize();
#ifdef RTABMAP_RVIZ_PLUGINS_OCTOMAP
octomap_topic_property_->initialize(context_->getRosNodeAbstraction());
#endif
updateWallClipping();
}
void OrbitOrientedViewController::updateWallClipping()
{
#ifdef RTABMAP_RVIZ_PLUGINS_OCTOMAP
const bool enabled = wall_clipping_property_->getBool();
octomap_topic_property_->setHidden(!enabled);
ignore_distance_property_->setHidden(!enabled);
octree_depth_property_->setHidden(!enabled);
wall_margin_property_->setHidden(!enabled);
octomap_sub_.reset();
{
std::lock_guard<std::mutex> lock(octomap_mutex_);
pending_octomap_.reset();
octree_.reset();
}
warned_no_octomap_ = false;
if(!enabled || !context_)
{
return;
}
const std::string topic = octomap_topic_property_->getTopicStd();
if(topic.empty())
{
return;
}
auto node = context_->getRosNodeAbstraction().lock();
if(!node)
{
return;
}
try
{
octomap_sub_ = node->get_raw_node()->create_subscription<octomap_msgs::msg::Octomap>(
topic, rclcpp::QoS(1).reliable(),
std::bind(&OrbitOrientedViewController::octomapCallback, this, std::placeholders::_1));
}
catch(const rclcpp::exceptions::InvalidTopicNameError & e)
{
RVIZ_COMMON_LOG_WARNING_STREAM("OrbitOriented: invalid octomap topic \"" << topic << "\": " << e.what());
}
#endif
}
float OrbitOrientedViewController::targetYaw() const
{
// Yaw only: the view turns with the target, but stays level when the target tilts.
const Ogre::Quaternion & q = reference_orientation_;
return std::atan2(2.0f * (q.w * q.z + q.x * q.y), 1.0f - 2.0f * (q.y * q.y + q.z * q.z));
}
void OrbitOrientedViewController::updateCamera()
{
const float distance = distance_property_->getFloat();
const float yaw = yaw_property_->getFloat() + targetYaw();
const float pitch = pitch_property_->getFloat();
const Ogre::Vector3 focal_point = focal_point_property_->getVector();
// As OrbitViewController, in the target's node (the target frame's position,
// with the fixed frame's orientation).
Ogre::Vector3 position(
distance * std::cos(yaw) * std::cos(pitch) + focal_point.x,
distance * std::sin(yaw) * std::cos(pitch) + focal_point.y,
distance * std::sin(pitch) + focal_point.z);
#ifdef RTABMAP_RVIZ_PLUGINS_OCTOMAP
if(wall_clipping_property_->getBool())
{
position = clipToWalls(focal_point, position);
}
#endif
Ogre::SceneNode * camera_parent = camera_->getParentSceneNode();
if(!camera_parent)
{
throw std::runtime_error("camera's parent scene node pointer unexpectedly nullptr");
}
camera_parent->setPosition(position);
camera_parent->setFixedYawAxis(true, target_scene_node_->getOrientation() * Ogre::Vector3::UNIT_Z);
camera_parent->setDirection(focal_point - position, Ogre::SceneNode::TS_PARENT);
camera_->setFOVy(Ogre::Radian(fov_property_->getFloat()));
focal_shape_->setPosition(focal_point);
}
#ifdef RTABMAP_RVIZ_PLUGINS_OCTOMAP
Ogre::Vector3 OrbitOrientedViewController::clipToWalls(
const Ogre::Vector3 & focal_point, const Ogre::Vector3 & position)
{
std::shared_ptr<octomap::AbstractOcTree> tree;
{
std::lock_guard<std::mutex> lock(octomap_mutex_);
tree = octree_;
}
if(!tree)
{
if(!warned_no_octomap_)
{
RVIZ_COMMON_LOG_WARNING_STREAM("OrbitOriented: no octomap received yet on "
<< octomap_topic_property_->getTopicStd() << ", wall clipping is not done.");
warned_no_octomap_ = true;
}
return position;
}
// The ray goes from the focal point to the camera, in the fixed frame.
const Ogre::Vector3 target = target_scene_node_->getPosition();
const Ogre::Vector3 from = target + focal_point;
const Ogre::Vector3 to = target + position;
const float length = from.distance(to);
const float ignored = ignore_distance_property_->getFloat();
if(length <= ignored)
{
return position;
}
const Ogre::Vector3 start = from + (to - from) * (ignored / length);
const octomath::Vector3 origin(start.x, start.y, start.z);
const octomath::Vector3 end(to.x, to.y, to.z);
float hitDistance = 0.0f;
bool hasHit = false;
if(const octomap::ColorOcTree * colorTree = dynamic_cast<const octomap::ColorOcTree *>(tree.get()))
{
hasHit = firstHit(*colorTree, octree_depth_property_->getInt(), origin, end, hitDistance);
}
else if(const octomap::OcTree * ocTree = dynamic_cast<const octomap::OcTree *>(tree.get()))
{
hasHit = firstHit(*ocTree, octree_depth_property_->getInt(), origin, end, hitDistance);
}
if(!hasHit)
{
return position;
}
// Short of the obstacle by the margin, but not closer to the focal point than the
// camera can see.
const float distance = std::max(
ignored + hitDistance - wall_margin_property_->getFloat(),
static_cast<float>(camera_->getNearClipDistance()));
if(distance >= length)
{
return position;
}
return focal_point + (position - focal_point) * (distance / length);
}
void OrbitOrientedViewController::octomapCallback(const octomap_msgs::msg::Octomap::ConstSharedPtr msg)
{
{
std::lock_guard<std::mutex> lock(octomap_mutex_);
pending_octomap_ = msg;
if(decoding_)
{
return; // the decoding thread takes it when done with the current one
}
decoding_ = true;
}
if(decoding_thread_.joinable())
{
decoding_thread_.join(); // finished: decoding_ was false
}
decoding_thread_ = std::thread(&OrbitOrientedViewController::decodeOctomaps, this);
}
void OrbitOrientedViewController::decodeOctomaps()
{
while(true)
{
octomap_msgs::msg::Octomap::ConstSharedPtr msg;
{
std::lock_guard<std::mutex> lock(octomap_mutex_);
msg.swap(pending_octomap_);
if(!msg)
{
decoding_ = false;
return;
}
}
std::shared_ptr<octomap::AbstractOcTree> tree(octomap_msgs::msgToMap(*msg));
if(!tree)
{
RVIZ_COMMON_LOG_WARNING_STREAM("OrbitOriented: could not decode the octomap (tree type \""
<< msg->id << "\").");
continue;
}
std::lock_guard<std::mutex> lock(octomap_mutex_);
octree_ = tree;
}
}
#endif
} // namespace rtabmap_rviz_plugins
#include <pluginlib/class_list_macros.hpp>
PLUGINLIB_EXPORT_CLASS(rtabmap_rviz_plugins::OrbitOrientedViewController, rviz_common::ViewController)
+6
View File
@@ -277,6 +277,12 @@ if(BUILD_TESTING)
rtabmap_slam_add_node_test(test_core_wrapper_services)
rtabmap_slam_add_node_test(test_core_wrapper_planning)
rtabmap_slam_add_node_test(test_core_wrapper_inputs)
# The `rtabmap` executable under `ros2 launch`, stopped as Ctrl-C does.
find_package(ament_cmake_pytest REQUIRED)
ament_add_pytest_test(test_shutdown test/test_shutdown.py
ENV ROS_DOMAIN_ID=${rtabmap_slam_test_domain_id} "PYTEST_ADDOPTS=-p no:cacheprovider"
TIMEOUT 300)
endif()
ament_package()
+1 -1
View File
@@ -485,7 +485,7 @@ The ones that set how often a node is added, explained in [Update rate and dropp
| `tf_tolerance` | `double` | `0.1` | How far in the future the transform is stamped, in seconds, so that lookups at the latest sensor stamp do not have to wait for it. |
| `wait_for_transform` | `double` | `0.2` | Seconds to wait for a TF lookup before giving up on it. |
| `ground_truth_frame_id` | `string` | `""` | The fixed frame of a ground truth system, for example `world` published by an external localization system like Vicon or OptiTrack. `ground_truth_frame_id` → `ground_truth_base_frame_id` is looked up and stored with each node, for evaluating a trajectory afterwards. |
| `ground_truth_base_frame_id` | `string` | value of `frame_id` | The robot frame in the ground truth tree, for example `base_link_gt`. To avoid breaking the TF tree, it represents the same frame as `frame_id`, but in a parallel TF tree, so that the robot frame does not get two parents. |
| `ground_truth_base_frame_id` | `string` | value of `frame_id` + `"_gt"` | The robot frame in the ground truth tree, for example `base_link_gt`. Empty: the ground truth is not used. To avoid breaking the TF tree, it represents the same frame as `frame_id`, but in a parallel TF tree, so that the robot frame does not get two parents. |
**This node publishes exactly one transform: `map` → `odom`.** It is the correction that puts the odometry frame where the optimized graph says it belongs — the identity until a loop closure moves it. Odometry keeps publishing `odom` → `base_link`, and the sensors must be attached to `base_link` in TF, as in the [TF tree](../README.md#frames-and-tf).
+7
View File
@@ -37,6 +37,13 @@
<test_depend>ament_cmake_gtest</test_depend>
<test_depend>rtabmap_conversions</test_depend>
<test_depend>ament_cmake_pytest</test_depend>
<test_depend>launch</test_depend>
<test_depend>launch_ros</test_depend>
<test_depend>python3-pytest</test_depend>
<test_depend>rclpy</test_depend>
<test_depend>ros2launch</test_depend>
<test_depend>tf2_msgs</test_depend>
<export>
<build_type>ament_cmake</build_type>
+5
View File
@@ -99,6 +99,11 @@ int main(int argc, char** argv)
executor.add_node(node);
UINFO("rtabmap %s started...", RTABMAP_VERSION);
executor.spin();
// Close the database before rclcpp::shutdown(), which uninstalls the signal
// handlers: a second SIGINT (e.g., Ctrl-C then ros2 launch's own) would otherwise
// kill the node while it is still saving.
executor.remove_node(node);
node.reset();
rclcpp::shutdown();
return 0;
}
+3 -3
View File
@@ -176,7 +176,7 @@ CoreWrapper::CoreWrapper(const rclcpp::NodeOptions & options) :
odomFrameIdInit = this->declare_parameter("odom_frame_id_init", odomFrameIdInit); // set to publish map->odom TF before receiving odom topic
mapFrameId_ = this->declare_parameter("map_frame_id", mapFrameId_);
groundTruthFrameId_ = this->declare_parameter("ground_truth_frame_id", groundTruthFrameId_);
groundTruthBaseFrameId_ = this->declare_parameter("ground_truth_base_frame_id", frameId_);
groundTruthBaseFrameId_ = this->declare_parameter("ground_truth_base_frame_id", frameId_+"_gt");
if(!odomFrameIdInit.empty())
{
@@ -2131,7 +2131,7 @@ void CoreWrapper::process(
SensorData interData(cv::Mat(), cv::Mat(), rtabmap::CameraModel(), -1, rtabmap_conversions::timestampFromROS(iter->first.header.stamp));
Transform gt;
if(!groundTruthFrameId_.empty())
if(!groundTruthFrameId_.empty() && !groundTruthBaseFrameId_.empty())
{
gt = rtabmap_conversions::getTransform(groundTruthFrameId_, groundTruthBaseFrameId_, iter->first.header.stamp, *tfBuffer_, waitForTransform_);
}
@@ -2185,7 +2185,7 @@ void CoreWrapper::process(
//Add async stuff
Transform groundTruthPose;
if(!groundTruthFrameId_.empty())
if(!groundTruthFrameId_.empty() && !groundTruthBaseFrameId_.empty())
{
groundTruthPose = rtabmap_conversions::getTransform(groundTruthFrameId_, groundTruthBaseFrameId_, stamp, *tfBuffer_, waitForTransform_);
}
+34 -2
View File
@@ -32,6 +32,11 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#include <rclcpp/rclcpp.hpp>
#include <execinfo.h>
#include <unistd.h>
#include <csignal>
#include <chrono>
#include <functional>
#include <memory>
@@ -66,11 +71,38 @@ public:
}
};
/**
* @brief Prints the stack of a test binary that crashes, then crashes as it would have.
*
* A crash in CI shows only the return code otherwise (-11 for SIGSEGV), there being no
* debugger or core dump there. Library frames come with their function names; this
* binary's with an offset, for `addr2line -C -f -e <binary> <offset>`.
*/
inline void printStackOnCrash(int signal)
{
void * frames[64];
const int count = ::backtrace(frames, 64);
const char header[] = "\n*** Crashed, stack trace:\n";
if(::write(STDERR_FILENO, header, sizeof(header) - 1) < 0) {}
::backtrace_symbols_fd(frames, count, STDERR_FILENO);
std::signal(signal, SIG_DFL);
std::raise(signal);
}
/// Registers RclcppEnvironment. Call once at file scope in each test binary.
inline ::testing::Environment * registerRclcppEnvironment()
{
static ::testing::Environment * const env =
::testing::AddGlobalTestEnvironment(new RclcppEnvironment);
static ::testing::Environment * const env = []() {
// backtrace() loads libgcc on its first call, which is not safe in a signal
// handler: done here.
void * frame;
::backtrace(&frame, 1);
for(int signal : {SIGSEGV, SIGBUS, SIGFPE, SIGILL, SIGABRT})
{
std::signal(signal, printStackOnCrash);
}
return ::testing::AddGlobalTestEnvironment(new RclcppEnvironment);
}();
return env;
}
@@ -0,0 +1,22 @@
# rtabmap alone, mapping from odometry only, for test_shutdown.py.
from launch import LaunchDescription
from launch.actions import DeclareLaunchArgument
from launch.substitutions import LaunchConfiguration
from launch_ros.actions import Node
def generate_launch_description():
return LaunchDescription([
DeclareLaunchArgument('database_path'),
DeclareLaunchArgument('working_directory'),
Node(
package='rtabmap_slam', executable='rtabmap', output='screen',
parameters=[{
'database_path': LaunchConfiguration('database_path'),
'Rtabmap/WorkingDirectory': LaunchConfiguration('working_directory'),
'subscribe_depth': False,
'subscribe_rgb': False,
'Rtabmap/DetectionRate': '0'}],
arguments=['-d']),
])
+51 -11
View File
@@ -68,6 +68,45 @@ protected:
return nullptr;
}
/**
* @brief Calls @p send until the node processes the update stamped @p stamp: an info
* at that stamp.
*
* For a node on its own multi-threaded executor (makeMultiThreadedNode()): it
* publishes info from inside its update, and takes new data only once that update
* has returned, dropping what arrives in between. Woken by info, the test can send
* the next update in that window, on a slow machine; it is then sent again. A copy
* sent while the first is still being processed is dropped the same way; one that
* was processed anyway only adds an info at a stamp already seen. A node that never
* takes new data again still fails.
*/
bool sendUntilProcessed(
const std::function<void()> & send,
const std::shared_ptr<Collector<rtabmap_msgs::msg::Info>> & info,
double stamp)
{
const rclcpp::Time expected(stampOf(stamp));
auto processed = [&]() {
for(const rtabmap_msgs::msg::Info::ConstSharedPtr & msg : info->messages)
{
if(rclcpp::Time(msg->header.stamp) == expected)
{
return true;
}
}
return false;
};
for(int attempt=0; attempt<10; ++attempt)
{
send();
if(spinUntil(processed, std::chrono::milliseconds(500)))
{
return true;
}
}
return false;
}
static bool hasPose(const rtabmap_msgs::msg::MapGraph & graph, int id)
{
return std::find(graph.poses_id.begin(), graph.poses_id.end(), id) != graph.poses_id.end();
@@ -304,11 +343,10 @@ TEST_F(CoreWrapperInputsTest, maps_the_next_scans_after_one_without_its_tf)
publishStaticTf("laser");
for(int i=1; i<=3; ++i)
{
const size_t before = info->size();
sendOdom(odom, 1.0 + i, 0.5*i);
scan->publish(makeRoomScan("laser", 1.0 + i, 0.5*i));
ASSERT_TRUE(spinUntil([&]() { return info->size() > before; }))
<< "scan " << i << " was not processed after the one without TF";
ASSERT_TRUE(sendUntilProcessed([&]() {
sendOdom(odom, 1.0 + i, 0.5*i);
scan->publish(makeRoomScan("laser", 1.0 + i, 0.5*i));
}, info, 1.0 + i)) << "scan " << i << " was not processed after the one without TF";
}
EXPECT_EQ(3u, getGraph().graph.poses_id.size());
}
@@ -332,11 +370,10 @@ TEST_F(CoreWrapperInputsTest, maps_the_next_clouds_after_one_without_its_tf)
publishStaticTf("lidar", 0.0, 0.0, 0.5);
for(int i=1; i<=3; ++i)
{
const size_t before = info->size();
sendOdom(odom, 1.0 + i, 0.5*i);
cloud->publish(makeCloud("lidar", 1.0 + i, roomScan3d(0.5*i, 0.0, 0.5)));
ASSERT_TRUE(spinUntil([&]() { return info->size() > before; }))
<< "cloud " << i << " was not processed after the one without TF";
ASSERT_TRUE(sendUntilProcessed([&]() {
sendOdom(odom, 1.0 + i, 0.5*i);
cloud->publish(makeCloud("lidar", 1.0 + i, roomScan3d(0.5*i, 0.0, 0.5)));
}, info, 1.0 + i)) << "cloud " << i << " was not processed after the one without TF";
}
EXPECT_EQ(3u, getGraph().graph.poses_id.size());
}
@@ -354,7 +391,10 @@ TEST_F(CoreWrapperInputsTest, reads_odometry_from_tf_with_odom_frame_id)
rclcpp::Publisher<sensor_msgs::msg::LaserScan>::SharedPtr scan =
helper()->create_publisher<sensor_msgs::msg::LaserScan>("scan", 10);
ASSERT_TRUE(waitForSubscriber(scan));
EXPECT_EQ(0u, helper()->count_publishers("odom") + helper()->count_subscribers("odom"));
// Waits: the graph can still list the previous test's odom endpoints for a moment.
EXPECT_TRUE(spinUntil([&]() {
return helper()->count_publishers("odom") + helper()->count_subscribers("odom") == 0; }))
<< "something subscribes or publishes on odom";
driveWithScans(nullptr, scan, info, 3, 0.0);
@@ -93,6 +93,48 @@ TEST_F(CoreWrapperMappingTest, adds_a_node_per_odometry_update)
EXPECT_NE(0, neighborLink(map.graph, 2, 3).from_id);
}
/**
* With a ground truth frame, each node gets the ground truth's pose at its stamp, and
* rtabmap reports its error against it (Gt/* statistics): ground_truth_frame_id ->
* ground_truth_base_frame_id, which defaults to frame_id + "_gt". Here only base_link_gt
* is in TF, following the odometry exactly. Empty, ground_truth_base_frame_id turns the
* ground truth off.
*/
class CoreWrapperGroundTruthTest : public CoreWrapperMappingTest
{
protected:
/// Gt/Translational_rmse/m after three updates with @p params, -1 if not reported.
float groundTruthRmse(const std::vector<rclcpp::Parameter> & params)
{
makeNode(params);
std::shared_ptr<Collector<rtabmap_msgs::msg::Info>> info = collectInfo();
rclcpp::Publisher<nav_msgs::msg::Odometry>::SharedPtr odom = odomPublisher();
for(int i=0; i<3; ++i)
{
const size_t before = info->size();
publishTf(makeTransform("world", "base_link_gt", 1.0 + i, 0.5 * i));
sendOdom(odom, 1.0 + i, 0.5 * i);
EXPECT_TRUE(spinUntil([&]() { return info->size() > before; }))
<< "update " << i << " was not processed";
}
return info->empty() ? -1.0f : stat(info->back(), "Gt/Translational_rmse/m");
}
};
TEST_F(CoreWrapperGroundTruthTest, compares_with_the_ground_truth_of_frame_id_gt_by_default)
{
const float rmse = groundTruthRmse({rclcpp::Parameter("ground_truth_frame_id", "world")});
ASSERT_GE(rmse, 0.0f) << "no Gt/* statistics: the ground truth was not found";
EXPECT_NEAR(0.0f, rmse, 1e-3);
}
TEST_F(CoreWrapperGroundTruthTest, ignores_the_ground_truth_when_its_base_frame_is_empty)
{
EXPECT_LT(groundTruthRmse({rclcpp::Parameter("ground_truth_frame_id", "world"),
rclcpp::Parameter("ground_truth_base_frame_id", "")}), 0.0f)
<< "Gt/* statistics reported although the ground truth is off";
}
/**
* An update that did not move at least RGBD/LinearUpdate (or turn RGBD/AngularUpdate)
* since the last node is not added: a robot standing still does not grow the map.
@@ -50,7 +50,14 @@ protected:
ASSERT_TRUE(waitForPublisher(goalReached_->subscription));
ASSERT_TRUE(waitForPublisher(globalPath_->subscription));
ASSERT_TRUE(waitForPublisher(globalPathNodes_->subscription));
driveStraight(odom_, info_, 5); // nodes 1..5 at x = 0, 0.5, 1.0, 1.5, 2.0
// Nodes 1..5 at x = 0, 0.5, 1.0, 1.5, 2.0.
for(int i=0; i<5; ++i)
{
const size_t before = info_->size();
sendUpdate(1.0 + i, 0.5 * i);
ASSERT_TRUE(spinUntil([&]() { return info_->size() > before; }))
<< "update " << i << " was not processed";
}
nextStamp_ = 6.0;
}
@@ -65,11 +72,17 @@ protected:
virtual std::vector<rclcpp::Parameter> nodeParameters() { return {}; }
/// Sends one odometry update stamped @p stamp, the robot at (@p x, 0, @p yaw).
virtual void sendUpdate(double stamp, double x, double yaw = 0.0)
{
sendOdom(odom_, stamp, x, 0.0, yaw);
}
/// Moves the robot to @p x and waits for the update to be processed.
bool moveTo(double x)
{
const size_t before = info_->size();
sendOdom(odom_, nextStamp_, x);
sendUpdate(nextStamp_, x);
nextStamp_ += 1.0;
return spinUntil([&]() { return info_->size() > before; });
}
@@ -244,9 +257,13 @@ TEST_F(CoreWrapperPlanningTest, plans_through_the_graph_beyond_the_local_radius)
/**
* The same corridor, with the node on the tests' own clock (use_sim_time): map -> odom is
* then stamped in the odometry's time base, and with tf_tolerance at 0, exactly at the
* clock's time. Only for tests whose TF lookups never have to wait: with a clock that only
* moves when told to, a lookup waiting for a transform that is not there -- a goal in an
* unknown frame, say -- would wait forever.
* clock's time. The clock is set to each update's stamp before it is sent. A TF lookup
* waits on that clock (tf2_ros sleeps on it since Rolling/Lyrical): frozen, a lookup that
* has to wait never returns, even once its transform is there. Each update's transform is
* then sent first, the clock and some time for the node's listener after it, the odometry
* last, so that its lookup never has to wait. Only for tests whose lookups find their
* transform: one for a transform that is not there -- a goal in an unknown frame, say --
* would wait forever.
*/
class CoreWrapperPlanningSimTimeTest : public CoreWrapperPlanningTest
{
@@ -257,6 +274,13 @@ protected:
rclcpp::Parameter("tf_tolerance", 0.0)};
}
void sendUpdate(double stamp, double x, double yaw = 0.0) override
{
publishTf(makeTransform("odom", "base_link", stamp, x, 0.0, yaw));
setClock(stamp);
odom_->publish(makeOdometry(stamp, x, 0.0, yaw));
}
/// Sets the node's clock to @p seconds.
void setClock(double seconds)
{
@@ -278,7 +302,7 @@ TEST_F(CoreWrapperPlanningSimTimeTest, transforms_a_goal_in_the_robot_frame_to_t
{
// Turn the robot to face +y where it stands, at x = 2.
const size_t before = info_->size();
sendOdom(odom_, nextStamp_, 2.0, 0.0, M_PI/2.0);
sendUpdate(nextStamp_, 2.0, M_PI/2.0);
ASSERT_TRUE(spinUntil([&]() { return info_->size() > before; }));
rclcpp::Publisher<geometry_msgs::msg::PoseStamped>::SharedPtr goal =
+112
View File
@@ -0,0 +1,112 @@
"""
Ctrl-C on `ros2 launch` leaves rtabmap's database complete.
Ctrl-C sends SIGINT to the whole process group, and `ros2 launch` then sends its own
SIGINT to each node: rtabmap gets two. It saves what it kept in memory only -- the
optimized graph, the links added to nodes already in the database -- when it closes the
database, so it has to survive the second SIGINT until then.
"""
import os
import signal
import sqlite3
import subprocess
import time
from pathlib import Path
import rclpy
from geometry_msgs.msg import TransformStamped
from nav_msgs.msg import Odometry
from rclpy.qos import QoSProfile
from rtabmap_msgs.msg import Info
from tf2_msgs.msg import TFMessage
LAUNCH_FILE = Path(__file__).parent / 'rtabmap_odom_only.launch.py'
NODES = 5
def _odometry(stamp: float, x: float):
"""odom -> base_link at @p x, as TF and as an odometry message, the way the C++
tests' sendOdom() sends them."""
tf = TransformStamped()
tf.header.frame_id = 'odom'
tf.header.stamp.sec = int(stamp)
tf.child_frame_id = 'base_link'
tf.transform.translation.x = x
tf.transform.rotation.w = 1.0
odom = Odometry()
odom.header = tf.header
odom.child_frame_id = 'base_link'
odom.pose.pose.position.x = x
odom.pose.pose.orientation.w = 1.0
odom.pose.covariance = [0.001 if i % 7 == 0 else 0.0 for i in range(36)]
odom.twist.covariance = odom.pose.covariance
return TFMessage(transforms=[tf]), odom
def _spin_until(node, done, timeout: float) -> bool:
end = time.monotonic() + timeout
while time.monotonic() < end:
if done():
return True
rclpy.spin_once(node, timeout_sec=0.05)
return done()
def _map(node, launch):
"""Drives NODES odometry updates into rtabmap, waiting for each to be processed."""
tf_pub = node.create_publisher(TFMessage, '/tf', QoSProfile(depth=100))
odom_pub = node.create_publisher(Odometry, 'odom', 10)
info = []
node.create_subscription(Info, 'info', info.append, 10)
started = lambda: (launch.poll() is not None or ( # noqa: E731
odom_pub.get_subscription_count() > 0 and tf_pub.get_subscription_count() > 0
and node.count_publishers('info') > 0))
assert _spin_until(node, started, 60.0) and launch.poll() is None, 'rtabmap did not start'
# Matched on this side only: rtabmap's side matches on its own time, and until then
# its best-effort subscription (Fast DDS's default) drops what it is sent, and it
# does not publish info, having no subscriber.
_spin_until(node, lambda: False, 1.0)
for i in range(NODES):
tf, odom = _odometry(1.0 + i, 0.5 * i)
tf_pub.publish(tf)
odom_pub.publish(odom)
assert _spin_until(node, lambda: len(info) > i, 10.0), f'update {i} was not processed'
def test_ctrl_c_saves_the_database(tmp_path):
database = tmp_path / 'rtabmap.db'
log_path = tmp_path / 'launch.log'
with open(log_path, 'w') as log:
launch = subprocess.Popen(
['ros2', 'launch', str(LAUNCH_FILE), f'database_path:={database}',
f'working_directory:={tmp_path}'],
stdout=log, stderr=subprocess.STDOUT, start_new_session=True)
rclpy.init()
try:
node = rclpy.create_node('rtabmap_slam_test_shutdown')
try:
_map(node, launch)
finally:
node.destroy_node()
os.killpg(launch.pid, signal.SIGINT) # Ctrl-C
launch.wait(timeout=60)
except AssertionError as e:
raise AssertionError(f'{e}\n{log_path.read_text()}') from None
finally:
rclpy.try_shutdown()
if launch.poll() is None:
os.killpg(launch.pid, signal.SIGKILL)
launch.wait()
log = log_path.read_text()
assert 'process has finished cleanly' in log, log
with sqlite3.connect(database) as db:
optimized = db.execute('SELECT opt_poses FROM Admin').fetchone()[0]
# Each neighbor link is in both directions; new -> old goes in with the new node,
# old -> new is added to a node already saved, and is written at closing.
forward, backward = (
db.execute(f'SELECT COUNT(*) FROM Link WHERE type = 0 AND from_id {op} to_id')
.fetchone()[0] for op in ('<', '>'))
assert optimized, 'no optimized graph saved'
assert (forward, backward) == (NODES - 1, NODES - 1)
+1
View File
@@ -70,6 +70,7 @@ The output's `header.frame_id` comes from the camera_info; its `header.stamp` is
| `approx_sync` | `bool` | `false` | Match the image and its calibration by nearest stamp. Defaults to **exact**; see [Synchronization](#synchronization). |
| `approx_sync_max_interval` | `double` | `0.0` | Reject pairs spanning more than this many seconds. `0` disables. |
| `topic_queue_size` | `int` | `10` | Queue depth of each input subscription. |
| `output_queue_size` | `int` | `1` | History depth of the `rgbd_image` publishers. |
| `sync_queue_size` | `int` | `10` | Queue depth of the synchronizer. |
| `queue_size` | `int` | — | **Deprecated**, renamed to `sync_queue_size`. |
| `qos` | `int` | `0` | Reliability of the subscription and the publishers: `0` system default, `1` reliable, `2` best effort. |
+1
View File
@@ -124,6 +124,7 @@ The output's `header.stamp` is the **later** of the color and depth stamps, so t
| `approx_sync` | `bool` | `true` | Match the inputs by nearest stamp. **Set `false` if your camera allows it** — see [Synchronization](#synchronization). |
| `approx_sync_max_interval` | `double` | `0.0` | Reject sets spanning more than this many seconds. `0` disables. Worth setting; see [Synchronization](#synchronization). |
| `topic_queue_size` | `int` | `10` | Queue depth of each input subscription. |
| `output_queue_size` | `int` | `1` | History depth of the `rgbd_image` publishers. |
| `sync_queue_size` | `int` | `10` | Queue depth of the synchronizer. |
| `queue_size` | `int` | — | **Deprecated**, renamed to `sync_queue_size`. Still copied to it, with a warning. |
| `qos` | `int` | `0` | Reliability of the subscriptions and the publishers: `0` system default, `1` reliable, `2` best effort. |
+1
View File
@@ -103,6 +103,7 @@ The output's `header.frame_id` comes from the **left** camera_info, and its `hea
| `approx_sync` | `bool` | `false` | Match the inputs by nearest stamp. Defaults to **exact** here; see [Synchronization](#synchronization). |
| `approx_sync_max_interval` | `double` | `0.0` | Reject sets spanning more than this many seconds. `0` disables. Only meaningful with `approx_sync`. |
| `topic_queue_size` | `int` | `10` | Queue depth of each input subscription. |
| `output_queue_size` | `int` | `1` | History depth of the `rgbd_image` publishers. |
| `sync_queue_size` | `int` | `10` | Queue depth of the synchronizer. |
| `queue_size` | `int` | — | **Deprecated**, renamed to `sync_queue_size`. |
| `qos` | `int` | `0` | Reliability of the subscriptions and the publishers: `0` system default, `1` reliable, `2` best effort. |
+4 -2
View File
@@ -63,6 +63,7 @@ RGBSync::RGBSync(const rclcpp::NodeOptions & options) :
approxSync = this->declare_parameter("approx_sync", approxSync);
approxSyncMaxInterval = this->declare_parameter("approx_sync_max_interval", approxSyncMaxInterval);
topicQueueSize = this->declare_parameter("topic_queue_size", topicQueueSize);
int outputQueueSize = this->declare_parameter("output_queue_size", 1);
int queueSize = this->declare_parameter("queue_size", -1);
if(queueSize != -1)
{
@@ -83,6 +84,7 @@ RGBSync::RGBSync(const rclcpp::NodeOptions & options) :
if(approxSync)
RCLCPP_INFO(this->get_logger(), "%s: approx_sync_max_interval = %f", get_name(), approxSyncMaxInterval);
RCLCPP_INFO(this->get_logger(), "%s: topic_queue_size = %d", get_name(), topicQueueSize);
RCLCPP_INFO(this->get_logger(), "%s: output_queue_size = %d", get_name(), outputQueueSize);
RCLCPP_INFO(this->get_logger(), "%s: sync_queue_size = %d", get_name(), syncQueueSize);
RCLCPP_INFO(this->get_logger(), "%s: qos = %d", get_name(), qos);
RCLCPP_INFO(this->get_logger(), "%s: qos_camera_info = %d", get_name(), qosCaminfo);
@@ -90,8 +92,8 @@ RGBSync::RGBSync(const rclcpp::NodeOptions & options) :
RCLCPP_INFO(this->get_logger(), "%s: image_transport = %s", get_name(), imageTransport.c_str());
RCLCPP_INFO(this->get_logger(), "%s: fill_empty_depth = %s", get_name(), fillEmptyDepth_?"true":"false");
rgbdImagePub_ = this->create_publisher<rtabmap_msgs::msg::RGBDImage>("rgbd_image", rclcpp::QoS(1).reliability((rmw_qos_reliability_policy_t)qos));
rgbdImageCompressedPub_ = this->create_publisher<rtabmap_msgs::msg::RGBDImage>("rgbd_image/compressed", rclcpp::QoS(1).reliability((rmw_qos_reliability_policy_t)qos));
rgbdImagePub_ = this->create_publisher<rtabmap_msgs::msg::RGBDImage>("rgbd_image", rclcpp::QoS(outputQueueSize).reliability((rmw_qos_reliability_policy_t)qos));
rgbdImageCompressedPub_ = this->create_publisher<rtabmap_msgs::msg::RGBDImage>("rgbd_image/compressed", rclcpp::QoS(outputQueueSize).reliability((rmw_qos_reliability_policy_t)qos));
if(approxSync)
{
+4 -2
View File
@@ -62,6 +62,7 @@ RGBDSync::RGBDSync(const rclcpp::NodeOptions & options) :
approxSync = this->declare_parameter("approx_sync", approxSync);
approxSyncMaxInterval_ = this->declare_parameter("approx_sync_max_interval", approxSyncMaxInterval_);
topicQueueSize = this->declare_parameter("topic_queue_size", topicQueueSize);
int outputQueueSize = this->declare_parameter("output_queue_size", 1);
int queueSize = this->declare_parameter("queue_size", -1);
if(queueSize != -1)
{
@@ -103,6 +104,7 @@ RGBDSync::RGBDSync(const rclcpp::NodeOptions & options) :
if(approxSync)
RCLCPP_INFO(this->get_logger(), "%s: approx_sync_max_interval = %f", get_name(), approxSyncMaxInterval_);
RCLCPP_INFO(this->get_logger(), "%s: topic_queue_size = %d", get_name(), topicQueueSize);
RCLCPP_INFO(this->get_logger(), "%s: output_queue_size = %d", get_name(), outputQueueSize);
RCLCPP_INFO(this->get_logger(), "%s: sync_queue_size = %d", get_name(), syncQueueSize);
RCLCPP_INFO(this->get_logger(), "%s: qos = %d", get_name(), qos);
RCLCPP_INFO(this->get_logger(), "%s: qos_camera_info = %d", get_name(), qosCamInfo);
@@ -112,8 +114,8 @@ RGBDSync::RGBDSync(const rclcpp::NodeOptions & options) :
RCLCPP_INFO(this->get_logger(), "%s: image_transport = %s", get_name(), imageTransport.c_str());
RCLCPP_INFO(this->get_logger(), "%s: depth_transport = %s", get_name(), depthTransport.c_str());
rgbdImagePub_ = this->create_publisher<rtabmap_msgs::msg::RGBDImage>("rgbd_image", rclcpp::QoS(1).reliability((rmw_qos_reliability_policy_t)qos));
rgbdImageCompressedPub_ = this->create_publisher<rtabmap_msgs::msg::RGBDImage>("rgbd_image/compressed", rclcpp::QoS(1).reliability((rmw_qos_reliability_policy_t)qos));
rgbdImagePub_ = this->create_publisher<rtabmap_msgs::msg::RGBDImage>("rgbd_image", rclcpp::QoS(outputQueueSize).reliability((rmw_qos_reliability_policy_t)qos));
rgbdImageCompressedPub_ = this->create_publisher<rtabmap_msgs::msg::RGBDImage>("rgbd_image/compressed", rclcpp::QoS(outputQueueSize).reliability((rmw_qos_reliability_policy_t)qos));
if(approxSync)
{
+4 -2
View File
@@ -59,6 +59,7 @@ StereoSync::StereoSync(const rclcpp::NodeOptions & options) :
approxSync = this->declare_parameter("approx_sync", approxSync);
approxSyncMaxInterval_ = this->declare_parameter("approx_sync_max_interval", approxSyncMaxInterval_);
topicQueueSize = this->declare_parameter("topic_queue_size", topicQueueSize);
int outputQueueSize = this->declare_parameter("output_queue_size", 1);
int queueSize = this->declare_parameter("queue_size", -1);
if(queueSize != -1)
{
@@ -77,14 +78,15 @@ StereoSync::StereoSync(const rclcpp::NodeOptions & options) :
RCLCPP_INFO(this->get_logger(), "%s: approx_sync = %s", get_name(), approxSync?"true":"false");
RCLCPP_INFO(this->get_logger(), "%s: approx_sync_max_interval = %f", get_name(), approxSyncMaxInterval_);
RCLCPP_INFO(this->get_logger(), "%s: topic_queue_size = %d", get_name(), topicQueueSize);
RCLCPP_INFO(this->get_logger(), "%s: output_queue_size = %d", get_name(), outputQueueSize);
RCLCPP_INFO(this->get_logger(), "%s: sync_queue_size = %d", get_name(), syncQueueSize);
RCLCPP_INFO(this->get_logger(), "%s: qos = %d", get_name(), qos);
RCLCPP_INFO(this->get_logger(), "%s: qos_camera_info = %d", get_name(), qosCamInfo);
RCLCPP_INFO(this->get_logger(), "%s: compressed_rate = %f", get_name(), compressedRate_);
RCLCPP_INFO(this->get_logger(), "%s: image_transport = %s", get_name(), imageTransport.c_str());
rgbdImagePub_ = create_publisher<rtabmap_msgs::msg::RGBDImage>("rgbd_image", rclcpp::QoS(1).reliability((rmw_qos_reliability_policy_t)qos));
rgbdImageCompressedPub_ = create_publisher<rtabmap_msgs::msg::RGBDImage>("rgbd_image/compressed", rclcpp::QoS(1).reliability((rmw_qos_reliability_policy_t)qos));
rgbdImagePub_ = create_publisher<rtabmap_msgs::msg::RGBDImage>("rgbd_image", rclcpp::QoS(outputQueueSize).reliability((rmw_qos_reliability_policy_t)qos));
rgbdImageCompressedPub_ = create_publisher<rtabmap_msgs::msg::RGBDImage>("rgbd_image/compressed", rclcpp::QoS(outputQueueSize).reliability((rmw_qos_reliability_policy_t)qos));
if(approxSync)
{
+34 -2
View File
@@ -32,6 +32,11 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#include <rclcpp/rclcpp.hpp>
#include <execinfo.h>
#include <unistd.h>
#include <csignal>
#include <chrono>
#include <functional>
#include <memory>
@@ -65,11 +70,38 @@ public:
}
};
/**
* @brief Prints the stack of a test binary that crashes, then crashes as it would have.
*
* A crash in CI shows only the return code otherwise (-11 for SIGSEGV), there being no
* debugger or core dump there. Library frames come with their function names; this
* binary's with an offset, for `addr2line -C -f -e <binary> <offset>`.
*/
inline void printStackOnCrash(int signal)
{
void * frames[64];
const int count = ::backtrace(frames, 64);
const char header[] = "\n*** Crashed, stack trace:\n";
if(::write(STDERR_FILENO, header, sizeof(header) - 1) < 0) {}
::backtrace_symbols_fd(frames, count, STDERR_FILENO);
std::signal(signal, SIG_DFL);
std::raise(signal);
}
/// Registers RclcppEnvironment. Call once at file scope in each test binary.
inline ::testing::Environment * registerRclcppEnvironment()
{
static ::testing::Environment * const env =
::testing::AddGlobalTestEnvironment(new RclcppEnvironment);
static ::testing::Environment * const env = []() {
// backtrace() loads libgcc on its first call, which is not safe in a signal
// handler: done here.
void * frame;
::backtrace(&frame, 1);
for(int signal : {SIGSEGV, SIGBUS, SIGFPE, SIGILL, SIGABRT})
{
std::signal(signal, printStackOnCrash);
}
return ::testing::AddGlobalTestEnvironment(new RclcppEnvironment);
}();
return env;
}
+2 -1
View File
@@ -65,7 +65,8 @@ Output names are derived from the **resolved** input names, so remapping the inp
| `fixed_frame_id` | `string` | `""` | **Required.** Frame the motion is measured against, usually `odom`. |
| `wait_for_transform` | `double` | `0.01` | Seconds to wait for the transforms spanning the sweep. Raise it if odometry lags the lidar. |
| `slerp` | `bool` | `false` | Interpolate between the poses at the start and end of the sweep instead of looking up TF per point. Much cheaper, and accurate enough at constant velocity. |
| `queue_size` | `int` | `1` | Queue depth of the input subscriptions. |
| `queue_size` | `int` | `5` | Queue depth of the input subscriptions. |
| `output_queue_size` | `int` | `1` | History depth of the deskewed cloud publishers. |
| `qos` | `int` | `0` | Reliability of the input subscriptions: `0` system default, `1` reliable, `2` best effort. |
## Requirements
@@ -19,6 +19,8 @@ LidarDeskewing::LidarDeskewing(const rclcpp::NodeOptions & options) :
int queueSize = 5;
int qos = RMW_QOS_POLICY_RELIABILITY_SYSTEM_DEFAULT;
queueSize = this->declare_parameter("queue_size", queueSize);
int outputQueueSize = 1;
outputQueueSize = this->declare_parameter("output_queue_size", outputQueueSize);
qos = this->declare_parameter("qos", qos);
fixedFrameId_ = this->declare_parameter("fixed_frame_id", fixedFrameId_);
waitForTransformDuration_ = this->declare_parameter("wait_for_transform", waitForTransformDuration_);
@@ -36,8 +38,8 @@ LidarDeskewing::LidarDeskewing(const rclcpp::NodeOptions & options) :
subScan_ = create_subscription<sensor_msgs::msg::LaserScan>("input_scan", rclcpp::QoS(queueSize).reliability((rmw_qos_reliability_policy_t)qos), std::bind(&LidarDeskewing::callbackScan, this, std::placeholders::_1));
subCloud_ = create_subscription<sensor_msgs::msg::PointCloud2>("input_cloud", rclcpp::QoS(queueSize).reliability((rmw_qos_reliability_policy_t)qos), std::bind(&LidarDeskewing::callbackCloud, this, std::placeholders::_1));
pubScan_ = create_publisher<sensor_msgs::msg::PointCloud2>(std::string(subScan_->get_topic_name()) + "/deskewed", rclcpp::QoS(1).reliability((rmw_qos_reliability_policy_t)qos));
pubCloud_ = create_publisher<sensor_msgs::msg::PointCloud2>(std::string(subCloud_->get_topic_name()) + "/deskewed", rclcpp::QoS(1).reliability((rmw_qos_reliability_policy_t)qos));
pubScan_ = create_publisher<sensor_msgs::msg::PointCloud2>(std::string(subScan_->get_topic_name()) + "/deskewed", rclcpp::QoS(outputQueueSize).reliability((rmw_qos_reliability_policy_t)qos));
pubCloud_ = create_publisher<sensor_msgs::msg::PointCloud2>(std::string(subCloud_->get_topic_name()) + "/deskewed", rclcpp::QoS(outputQueueSize).reliability((rmw_qos_reliability_policy_t)qos));
}
LidarDeskewing::~LidarDeskewing()
+34 -2
View File
@@ -31,6 +31,11 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#include <gtest/gtest.h>
#include <rclcpp/rclcpp.hpp>
#include <execinfo.h>
#include <unistd.h>
#include <csignal>
#include <geometry_msgs/msg/transform_stamped.hpp>
#include <tf2/LinearMath/Quaternion.hpp>
#include <tf2_geometry_msgs/tf2_geometry_msgs.hpp>
@@ -71,11 +76,38 @@ public:
}
};
/**
* @brief Prints the stack of a test binary that crashes, then crashes as it would have.
*
* A crash in CI shows only the return code otherwise (-11 for SIGSEGV), there being no
* debugger or core dump there. Library frames come with their function names; this
* binary's with an offset, for `addr2line -C -f -e <binary> <offset>`.
*/
inline void printStackOnCrash(int signal)
{
void * frames[64];
const int count = ::backtrace(frames, 64);
const char header[] = "\n*** Crashed, stack trace:\n";
if(::write(STDERR_FILENO, header, sizeof(header) - 1) < 0) {}
::backtrace_symbols_fd(frames, count, STDERR_FILENO);
std::signal(signal, SIG_DFL);
std::raise(signal);
}
/// Registers RclcppEnvironment. Call once at file scope in each test binary.
inline ::testing::Environment * registerRclcppEnvironment()
{
static ::testing::Environment * const env =
::testing::AddGlobalTestEnvironment(new RclcppEnvironment);
static ::testing::Environment * const env = []() {
// backtrace() loads libgcc on its first call, which is not safe in a signal
// handler: done here.
void * frame;
::backtrace(&frame, 1);
for(int signal : {SIGSEGV, SIGBUS, SIGFPE, SIGILL, SIGABRT})
{
std::signal(signal, printStackOnCrash);
}
return ::testing::AddGlobalTestEnvironment(new RclcppEnvironment);
}();
return env;
}
+3 -1
View File
@@ -102,7 +102,9 @@ GuiWrapper::GuiWrapper(const rclcpp::NodeOptions & options) :
uSleep(500);
prefDialog_ = new PreferencesDialogROS(this, configFile, rtabmapNodeName_);
mainWindow_ = new MainWindow(prefDialog_);
mainWindow_->setWindowTitle(mainWindow_->windowTitle()+" [ROS]");
// The configuration file in the title, as rviz does: it is where the settings are
// saved, so which one is in use matters.
mainWindow_->setWindowTitle(mainWindow_->windowTitle()+" [ROS] - "+prefDialog_->getIniFilePath());
mainWindow_->show();
bool paused = false;