mirror of
https://github.com/introlab/rtabmap_ros.git
synced 2026-10-11 20:19:50 +08:00
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:
+85
-12
@@ -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
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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 @@
|
||||
|
||||

|
||||
|
||||
### 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)
|
||||
|
||||

|
||||
|
||||
### 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
|
||||
|
||||

|
||||
|
||||
## 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.
|
||||
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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')]),
|
||||
|
||||
|
||||
@@ -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
@@ -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()
|
||||
@@ -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.
|
||||
@@ -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)
|
||||
@@ -0,0 +1,4 @@
|
||||
# Fetched by ../fetch_test_data.sh; only the manifest is committed.
|
||||
*
|
||||
!.gitignore
|
||||
!manifest.txt
|
||||
@@ -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
|
||||
Executable
+127
@@ -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"
|
||||
@@ -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
|
||||
@@ -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
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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:]]))
|
||||
@@ -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()
|
||||
|
||||
@@ -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(
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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)'),
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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
|
||||
@@ -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}'
|
||||
@@ -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.
|
||||
|
||||
@@ -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_);
|
||||
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
@@ -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)
|
||||
{
|
||||
|
||||
@@ -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
|
||||
@@ -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>
|
||||
|
||||
@@ -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)
|
||||
@@ -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()
|
||||
|
||||
@@ -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).
|
||||
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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_);
|
||||
}
|
||||
|
||||
@@ -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']),
|
||||
])
|
||||
@@ -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 =
|
||||
|
||||
@@ -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)
|
||||
@@ -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. |
|
||||
|
||||
@@ -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. |
|
||||
|
||||
@@ -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. |
|
||||
|
||||
@@ -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)
|
||||
{
|
||||
|
||||
@@ -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)
|
||||
{
|
||||
|
||||
@@ -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)
|
||||
{
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user