diff --git a/.gitignore b/.gitignore index d0e58f1..bb0cfe4 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,6 @@ -.idea build cmake-build-* .DS_Store +.idea +.vscode diff --git a/CMakeLists.txt b/CMakeLists.txt index b6ebd07..58f4fa2 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -2,7 +2,7 @@ cmake_minimum_required(VERSION 3.0.2) project(easondrone_mapping) set(CMAKE_BUILD_TYPE "Release") -set(CMAKE_CXX_FLAGS "-std=c++14") +set(CMAKE_CXX_FLAGS "-std=c++17") set(CMAKE_CXX_FLAGS_RELEASE "-O3 -Wall -g") set(PYTHON_EXECUTABLE "/usr/bin/python3.8") @@ -19,8 +19,8 @@ find_package(catkin REQUIRED COMPONENTS sensor_msgs geometry_msgs nav_msgs - visualization_msgs - easondrone_msgs + tf2_ros + tf2_sensor_msgs ) catkin_package( @@ -41,19 +41,8 @@ include_directories( link_directories(${PCL_LIBRARY_DIRS}) add_definitions(${PCL_DEFINITIONS}) -add_executable(uav_octomapping - src/octomap/octomapping_node.cpp - src/octomap/octomapping.cpp - src/octomap/occupy_map.cpp -) -target_link_libraries(uav_octomapping - ${catkin_LIBRARIES} - ${PCL_LIBRARIES} - ${OCTOMAP_LIBRARIES} -) - -add_executable(pcl_merge src/merge_pcl/pcl_merge.cpp) -target_link_libraries(pcl_merge +add_executable(merge_pcl src/merge_pcl/merge_pcl.cpp) +target_link_libraries(merge_pcl ${catkin_LIBRARIES} ${PCL_LIBRARIES} ) diff --git a/README.md b/README.md index c46f276..f012dee 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ ![HitCount](https://img.shields.io/endpoint?url=https%3A%2F%2Fhits.dwyl.com%2FHuaYuXiao%2FEasonDrone_Mapping.json%3Fcolor%3Dpink) ![Static Badge](https://img.shields.io/badge/ROS-melodic-22314E?logo=ros) -![Static Badge](https://img.shields.io/badge/C%2B%2B-14-00599C?logo=cplusplus) +![Static Badge](https://img.shields.io/badge/C%2B%2B-17-00599C?logo=cplusplus) ![Static Badge](https://img.shields.io/badge/Python-3.8.10-3776AB?logo=python) ![Static Badge](https://img.shields.io/badge/Ubuntu-18.04.6-E95420?logo=ubuntu) @@ -11,8 +11,8 @@ A ROS package for mapping via octomap. ## Installation ```bash -cd ~/EasonDrone -catkin_make --source Reconstruction/easondrone_mapping --build Reconstruction/easondrone_mapping/build +git clone https://github.com/HuaYuXiao/easondrone_mapping.git ~/easondrone_ws/reconstruct/easondrone_mapping +cd ~/easondrone_ws && catkin_make install --source reconstruct/easondrone_mapping --build reconstruct/easondrone_mapping/build ``` ## 转发点云 @@ -37,7 +37,7 @@ roslaunch easondrone_mapping simulation.launch 控制无人机完成建图后,用以下指令保存.ot(或者.bt,相较于.ot体积更小)格式的地图文件 ```bash -rosrun octomap_server octomap_saver -f ~/EasonDrone/Reconstruction/EasonDrone_Mapping/map.ot +rosrun octomap_server octomap_saver -f ~/easondrone_ws/reconstruct/easondrone_mapping/map.ot ``` ![image](doc/log/2024-03-11/%E6%97%A0%E6%A0%87%E9%A2%98.png) @@ -55,7 +55,7 @@ rosrun octomap_server octomap_saver -f ~/EasonDrone/Reconstruction/EasonDrone_Ma 也可以借助`octovis`工具查看 ```bash -octovis ~/EasonDrone/Reconstruction/EasonDrone_Mapping/map.bt +octovis ~/easondrone_ws/reconstruct/easondrone_mapping/map.bt ``` ### 方法2:rviz @@ -63,8 +63,8 @@ octovis ~/EasonDrone/Reconstruction/EasonDrone_Mapping/map.bt 一种方法是在`rviz`中查看 ```bash -rosrun rviz rviz -rosrun octomap_server octomap_server_node ~/EasonDrone/Reconstruction/EasonDrone_Mapping/map.bt +rviz +rosrun octomap_server octomap_server_node ~/easondrone_ws/reconstruct/easondrone_mapping/map.bt ``` 添加`OccupancyGrid`,话题选择`/octomap_binary`, @@ -80,9 +80,3 @@ rosrun octomap_server octomap_server_node ~/EasonDrone/Reconstruction/EasonDrone 参考: - ⭐ [how to use octomap_server?](https://answers.ros.org/question/361841/how-to-use-octomap_server/) - ⭐ [OctoMap/octomap_mapping](https://github.com/OctoMap/octomap_mapping/blob/kinetic-devel/octomap_server/launch/octomap_tracking_server.launch) - -## Acknowledgement - -Thanks for following packages: - -- [global_planning](https://github.com/amov-lab/Prometheus/Modules/planning/global_planning) diff --git a/config/rviz_config.rviz b/config/easondrone.rviz similarity index 85% rename from config/rviz_config.rviz rename to config/easondrone.rviz index 1195d53..14c3124 100644 --- a/config/rviz_config.rviz +++ b/config/easondrone.rviz @@ -6,7 +6,7 @@ Panels: Expanded: - /State1 - /Sensor1 - - /Sensor1/RGBD1 + - /Sensor1/realsense_d435i1 - /Mapping1 Splitter Ratio: 0.43611112236976624 Tree Height: 786 @@ -64,6 +64,8 @@ Visualization Manager: Value: true base_link_frd: Value: false + laser_livox: + Value: true map: Value: false map_ned: @@ -85,20 +87,22 @@ Visualization Manager: Show Axes: true Show Names: true Tree: - base_link: - VLP16_link: - {} - base_link_frd: - {} - monocular_link: - {} - realsense_camera_frame: - {} odom: odom_ned: {} world: map: + base_link: + VLP16_link: + {} + base_link_frd: + {} + laser_livox: + {} + monocular_link: + {} + realsense_camera_frame: + {} map_ned: {} Update Interval: 0 @@ -180,11 +184,11 @@ Visualization Manager: Color: 255; 255; 255 Color Transformer: AxisColor Decay Time: 0 - Enabled: true + Enabled: false Invert Rainbow: false Max Color: 255; 255; 255 Min Color: 0; 0; 0 - Name: LaserScan + Name: velodyne_vlp16 Position Transformer: XYZ Queue Size: 10 Selectable: true @@ -195,7 +199,35 @@ Visualization Manager: Unreliable: false Use Fixed Frame: true Use rainbow: true - Value: true + Value: false + - Alpha: 1 + Autocompute Intensity Bounds: true + Autocompute Value Bounds: + Max Value: 4.867906093597412 + Min Value: -0.20269186794757843 + Value: true + Axis: Z + Channel Name: intensity + Class: rviz/PointCloud2 + Color: 255; 255; 255 + Color Transformer: AxisColor + Decay Time: 0 + Enabled: false + Invert Rainbow: false + Max Color: 255; 255; 255 + Min Color: 0; 0; 0 + Name: livox_mid360 + Position Transformer: XYZ + Queue Size: 10 + Selectable: true + Size (Pixels): 3 + Size (m): 0.05000000074505806 + Style: Points + Topic: /livox/lidar + Unreliable: false + Use Fixed Frame: true + Use rainbow: true + Value: false - Class: rviz/Group Displays: - Class: rviz/Image @@ -241,7 +273,7 @@ Visualization Manager: Decay Time: 0 Depth Map Topic: /realsense/depth_camera/depth/image_raw Depth Map Transport Hint: raw - Enabled: true + Enabled: false Invert Rainbow: false Max Color: 255; 255; 255 Min Color: 0; 0; 0 @@ -257,9 +289,9 @@ Visualization Manager: Topic Filter: true Use Fixed Frame: true Use rainbow: true - Value: true + Value: false Enabled: true - Name: RGBD + Name: realsense_d435i Enabled: true Name: Sensor - Class: rviz/Group @@ -292,6 +324,34 @@ Visualization Manager: Use Fixed Frame: true Use rainbow: true Value: true + - Alpha: 1 + Autocompute Intensity Bounds: true + Autocompute Value Bounds: + Max Value: 4.96946907043457 + Min Value: -0.4458925724029541 + Value: true + Axis: Z + Channel Name: intensity + Class: rviz/PointCloud2 + Color: 255; 0; 0 + Color Transformer: FlatColor + Decay Time: 0 + Enabled: true + Invert Rainbow: false + Max Color: 255; 255; 255 + Min Color: 0; 0; 0 + Name: merge_pcl + Position Transformer: XYZ + Queue Size: 10 + Selectable: true + Size (Pixels): 3 + Size (m): 0.009999999776482582 + Style: Points + Topic: /sensor/pcl2_out + Unreliable: false + Use Fixed Frame: true + Use rainbow: true + Value: true Enabled: true Name: Mapping Enabled: true diff --git a/config/merge_pcl.yaml b/config/merge_pcl.yaml new file mode 100644 index 0000000..40cc9bf --- /dev/null +++ b/config/merge_pcl.yaml @@ -0,0 +1,6 @@ +pcl2_source_num: 2 +pcl2_topic_0: /livox/lidar +pcl2_frame_0: laser_livox +pcl2_topic_1: /realsense/depth_camera/depth/points +pcl2_frame_0: realsense_camera_frame +pcl2_topic_out: /sensor/pcl2_out diff --git a/doc/1_1010438054_171_85_3_817331037_6289f0b6e656374ac4421c1c3b5f12c2.png b/doc/1_1010438054_171_85_3_817331037_6289f0b6e656374ac4421c1c3b5f12c2.png deleted file mode 100644 index 599a268..0000000 Binary files a/doc/1_1010438054_171_85_3_817331037_6289f0b6e656374ac4421c1c3b5f12c2.png and /dev/null differ diff --git a/doc/A2D4DC183292848C6C6F3BBF864275E8.png b/doc/A2D4DC183292848C6C6F3BBF864275E8.png deleted file mode 100644 index 2b3cb6a..0000000 Binary files a/doc/A2D4DC183292848C6C6F3BBF864275E8.png and /dev/null differ diff --git a/doc/D6E40B6520659FDAE5DA75590E3FF88A.png b/doc/D6E40B6520659FDAE5DA75590E3FF88A.png deleted file mode 100644 index 533cbb8..0000000 Binary files a/doc/D6E40B6520659FDAE5DA75590E3FF88A.png and /dev/null differ diff --git a/doc/Untitled Diagram.drawio b/doc/Untitled Diagram.drawio deleted file mode 100644 index 3114ce5..0000000 --- a/doc/Untitled Diagram.drawio +++ /dev/null @@ -1,78 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/doc/log/2024-03-05/Snipaste_2024-03-05_16-40-57.png b/doc/log/2024-03-05/Snipaste_2024-03-05_16-40-57.png deleted file mode 100644 index 8bc0ded..0000000 Binary files a/doc/log/2024-03-05/Snipaste_2024-03-05_16-40-57.png and /dev/null differ diff --git a/doc/log/2024-03-05/Snipaste_2024-03-05_19-09-55.png b/doc/log/2024-03-05/Snipaste_2024-03-05_19-09-55.png deleted file mode 100644 index 4f196bd..0000000 Binary files a/doc/log/2024-03-05/Snipaste_2024-03-05_19-09-55.png and /dev/null differ diff --git a/doc/log/2024-03-05/Snipaste_2024-03-05_19-10-22.png b/doc/log/2024-03-05/Snipaste_2024-03-05_19-10-22.png deleted file mode 100644 index e59a999..0000000 Binary files a/doc/log/2024-03-05/Snipaste_2024-03-05_19-10-22.png and /dev/null differ diff --git a/doc/log/2024-03-05/Snipaste_2024-03-05_19-10-47.png b/doc/log/2024-03-05/Snipaste_2024-03-05_19-10-47.png deleted file mode 100644 index e785354..0000000 Binary files a/doc/log/2024-03-05/Snipaste_2024-03-05_19-10-47.png and /dev/null differ diff --git a/doc/log/2024-03-05/Snipaste_2024-03-05_19-11-03.png b/doc/log/2024-03-05/Snipaste_2024-03-05_19-11-03.png deleted file mode 100644 index d288d78..0000000 Binary files a/doc/log/2024-03-05/Snipaste_2024-03-05_19-11-03.png and /dev/null differ diff --git a/doc/log/2024-03-05/Snipaste_2024-03-05_19-11-14.png b/doc/log/2024-03-05/Snipaste_2024-03-05_19-11-14.png deleted file mode 100644 index 24435bb..0000000 Binary files a/doc/log/2024-03-05/Snipaste_2024-03-05_19-11-14.png and /dev/null differ diff --git a/doc/log/2024-03-05/Snipaste_2024-03-05_20-04-05.png b/doc/log/2024-03-05/Snipaste_2024-03-05_20-04-05.png deleted file mode 100644 index 2e9d49f..0000000 Binary files a/doc/log/2024-03-05/Snipaste_2024-03-05_20-04-05.png and /dev/null differ diff --git a/doc/log/2024-03-05/Snipaste_2024-03-05_20-04-16.png b/doc/log/2024-03-05/Snipaste_2024-03-05_20-04-16.png deleted file mode 100644 index 2c65436..0000000 Binary files a/doc/log/2024-03-05/Snipaste_2024-03-05_20-04-16.png and /dev/null differ diff --git a/doc/log/2024-03-05/Snipaste_2024-03-05_20-04-41.png b/doc/log/2024-03-05/Snipaste_2024-03-05_20-04-41.png deleted file mode 100644 index e7e1c95..0000000 Binary files a/doc/log/2024-03-05/Snipaste_2024-03-05_20-04-41.png and /dev/null differ diff --git a/doc/log/2024-03-05/Snipaste_2024-03-05_20-06-19.png b/doc/log/2024-03-05/Snipaste_2024-03-05_20-06-19.png deleted file mode 100644 index b37c8b9..0000000 Binary files a/doc/log/2024-03-05/Snipaste_2024-03-05_20-06-19.png and /dev/null differ diff --git a/doc/log/2024-03-05/Snipaste_2024-03-05_20-07-30.png b/doc/log/2024-03-05/Snipaste_2024-03-05_20-07-30.png deleted file mode 100644 index 8fb4173..0000000 Binary files a/doc/log/2024-03-05/Snipaste_2024-03-05_20-07-30.png and /dev/null differ diff --git "a/doc/log/2024-03-05/\346\226\260\345\273\272 \346\226\207\346\234\254\346\226\207\346\241\243.txt" "b/doc/log/2024-03-05/\346\226\260\345\273\272 \346\226\207\346\234\254\346\226\207\346\241\243.txt" deleted file mode 100644 index 9ad8129..0000000 --- "a/doc/log/2024-03-05/\346\226\260\345\273\272 \346\226\207\346\234\254\346\226\207\346\241\243.txt" +++ /dev/null @@ -1,243 +0,0 @@ -amov@amov:~$ rostopic list -/diagnostics -/free_cells_vis_array -/lidar01/parameter_descriptions -/lidar01/parameter_updates -/mavlink/from -/mavlink/gcs_ip -/mavlink/to -/mavros/actuator_control -/mavros/battery -/mavros/camera/image_captured -/mavros/cellular_status/status -/mavros/esc_info -/mavros/esc_status -/mavros/esc_telemetry -/mavros/estimator_status -/mavros/extended_state -/mavros/geofence/waypoints -/mavros/global_position/gp_origin -/mavros/global_position/rel_alt -/mavros/gps_input/gps_input -/mavros/gpsstatus/gps1/raw -/mavros/gpsstatus/gps1/rtk -/mavros/gpsstatus/gps2/raw -/mavros/gpsstatus/gps2/rtk -/mavros/imu/data -/mavros/imu/data_raw -/mavros/imu/diff_pressure -/mavros/imu/mag -/mavros/imu/static_pressure -/mavros/imu/temperature_baro -/mavros/imu/temperature_imu -/mavros/local_position/accel -/mavros/local_position/odom -/mavros/local_position/pose -/mavros/local_position/pose_cov -/mavros/local_position/velocity_body -/mavros/local_position/velocity_body_cov -/mavros/local_position/velocity_local -/mavros/log_transfer/raw/log_data -/mavros/log_transfer/raw/log_entry -/mavros/mag_calibration/report -/mavros/mag_calibration/status -/mavros/manual_control/control -/mavros/manual_control/send -/mavros/nav_controller_output -/mavros/onboard_computer/status -/mavros/param/param_value -/mavros/play_tune -/mavros/rallypoint/waypoints -/mavros/rangefinder/rangefinder -/mavros/setpoint_raw/attitude -/mavros/setpoint_raw/global -/mavros/setpoint_raw/local -/mavros/setpoint_raw/target_attitude -/mavros/setpoint_raw/target_global -/mavros/setpoint_raw/target_local -/mavros/setpoint_trajectory/desired -/mavros/setpoint_trajectory/local -/mavros/state -/mavros/statustext/recv -/mavros/statustext/send -/mavros/target_actuator_control -/mavros/terrain/report -/mavros/time_reference -/mavros/timesync_status -/mavros/trajectory/desired -/mavros/trajectory/generated -/mavros/trajectory/path -/mavros/tunnel/in -/mavros/tunnel/out -/mavros/vision_pose/pose -/mavros/vision_pose/pose_cov -/mavros/vision_speed/speed_twist_cov -/move_base_simple/goal -/occupied_cells_vis_array -/octomap_binary -/octomap_full -/octomap_point_cloud_centers -/octomap_server/parameter_descriptions -/octomap_server/parameter_updates -/projected_map -/prometheus/control/ref_pose_rviz -/prometheus/control_command -/prometheus/control_command_station -/prometheus/drone_odom -/prometheus/drone_state -/prometheus/drone_trajectory -/prometheus/global_planning/path_cmd -/prometheus/ground_truth/p300_basic -/prometheus/log/control -/prometheus/message/circle_det -/prometheus/message/fast_planner -/prometheus/message/global_planner -/prometheus/message/kcf_det -/prometheus/message/landpad_det -/prometheus/message/local_planner -/prometheus/message/main -/prometheus/message/num_det -/prometheus/planning/global_inflate_pcl -/prometheus/planning/global_pcl -/prometheus/planning/goal -/prometheus/reference_trajectory -/prometheus/sensors/2Dlidar_scan -/prometheus/sensors/pcl2 -/rosout -/rosout_agg -/slam/pose -/t265/accel/imu_info -/t265/accel/sample -/t265/gyro/imu_info -/t265/gyro/sample -/t265/odom/sample -/t265/realsense2_camera_manager/bond -/t265/tracking_module/parameter_descriptions -/t265/tracking_module/parameter_updates -/tf -/tf_static -/vrpn_client_node/UAV/pose - - - - - -amov@amov:~$ rostopic list -/diagnostics -/free_cells_vis_array -/lidar01/parameter_descriptions -/lidar01/parameter_updates -/mavlink/from -/mavlink/gcs_ip -/mavlink/to -/mavros/actuator_control -/mavros/battery -/mavros/camera/image_captured -/mavros/cellular_status/status -/mavros/esc_info -/mavros/esc_status -/mavros/esc_telemetry -/mavros/estimator_status -/mavros/extended_state -/mavros/geofence/waypoints -/mavros/global_position/gp_origin -/mavros/global_position/rel_alt -/mavros/gps_input/gps_input -/mavros/gpsstatus/gps1/raw -/mavros/gpsstatus/gps1/rtk -/mavros/gpsstatus/gps2/raw -/mavros/gpsstatus/gps2/rtk -/mavros/imu/data -/mavros/imu/data_raw -/mavros/imu/diff_pressure -/mavros/imu/mag -/mavros/imu/static_pressure -/mavros/imu/temperature_baro -/mavros/imu/temperature_imu -/mavros/local_position/accel -/mavros/local_position/odom -/mavros/local_position/pose -/mavros/local_position/pose_cov -/mavros/local_position/velocity_body -/mavros/local_position/velocity_body_cov -/mavros/local_position/velocity_local -/mavros/log_transfer/raw/log_data -/mavros/log_transfer/raw/log_entry -/mavros/mag_calibration/report -/mavros/mag_calibration/status -/mavros/manual_control/control -/mavros/manual_control/send -/mavros/nav_controller_output -/mavros/onboard_computer/status -/mavros/param/param_value -/mavros/play_tune -/mavros/rallypoint/waypoints -/mavros/rangefinder/rangefinder -/mavros/setpoint_raw/attitude -/mavros/setpoint_raw/global -/mavros/setpoint_raw/local -/mavros/setpoint_raw/target_attitude -/mavros/setpoint_raw/target_global -/mavros/setpoint_raw/target_local -/mavros/setpoint_trajectory/desired -/mavros/setpoint_trajectory/local -/mavros/state -/mavros/statustext/recv -/mavros/statustext/send -/mavros/target_actuator_control -/mavros/terrain/report -/mavros/time_reference -/mavros/timesync_status -/mavros/trajectory/desired -/mavros/trajectory/generated -/mavros/trajectory/path -/mavros/tunnel/in -/mavros/tunnel/out -/mavros/vision_pose/pose -/mavros/vision_pose/pose_cov -/mavros/vision_speed/speed_twist_cov -/move_base_simple/goal -/occupied_cells_vis_array -/octomap_binary -/octomap_full -/octomap_point_cloud_centers -/octomap_server/parameter_descriptions -/octomap_server/parameter_updates -/projected_map -/prometheus/control/ref_pose_rviz -/prometheus/control_command -/prometheus/control_command_station -/prometheus/drone_odom -/prometheus/drone_state -/prometheus/drone_trajectory -/prometheus/global_planning/path_cmd -/prometheus/ground_truth/p300_basic -/prometheus/log/control -/prometheus/message/circle_det -/prometheus/message/fast_planner -/prometheus/message/global_planner -/prometheus/message/kcf_det -/prometheus/message/landpad_det -/prometheus/message/local_planner -/prometheus/message/main -/prometheus/message/num_det -/prometheus/planning/global_inflate_pcl -/prometheus/planning/global_pcl -/prometheus/planning/goal -/prometheus/reference_trajectory -/prometheus/sensors/2Dlidar_scan -/prometheus/sensors/pcl2 -/rosout -/rosout_agg -/slam/pose -/t265/accel/imu_info -/t265/accel/sample -/t265/gyro/imu_info -/t265/gyro/sample -/t265/odom/sample -/t265/realsense2_camera_manager/bond -/t265/tracking_module/parameter_descriptions -/t265/tracking_module/parameter_updates -/tf -/tf_static -/vrpn_client_node/UAV/pose \ No newline at end of file diff --git a/doc/log/2024-03-06.pptx b/doc/log/2024-03-06.pptx deleted file mode 100644 index 8a0bc63..0000000 Binary files a/doc/log/2024-03-06.pptx and /dev/null differ diff --git a/doc/log/2024-03-08/Screenshot 2024-03-08 at 18.18.13.png b/doc/log/2024-03-08/Screenshot 2024-03-08 at 18.18.13.png deleted file mode 100644 index c68a191..0000000 Binary files a/doc/log/2024-03-08/Screenshot 2024-03-08 at 18.18.13.png and /dev/null differ diff --git a/doc/log/2024-03-11/terminal_ground.log b/doc/log/2024-03-11/terminal_ground.log deleted file mode 100644 index 4e6d971..0000000 --- a/doc/log/2024-03-11/terminal_ground.log +++ /dev/null @@ -1,58 +0,0 @@ -amov@amov:~$ roslaunch octomapping octomapping_ground.launch -... logging to /home/amov/.ros/log/38f205b4-dfa5-11ee-9953-48b02d67bcf5/roslaunch-amov-13944.log -Checking log directory for disk usage. This may take a while. -Press Ctrl-C to interrupt -Done checking log file disk usage. Usage is <1GB. - -started roslaunch server http://amov:42255/ - -SUMMARY -======== - -PARAMETERS - * /rosdistro: melodic - * /rosversion: 1.14.13 - * /terminal_control/Disarm_height: 0.18 - * /terminal_control/Land_mode: 1 - * /terminal_control/Land_speed: 0.2 - * /terminal_control/Takeoff_height: 0.4 - * /terminal_control/geo_fence/x_max: 6.3 - * /terminal_control/geo_fence/x_min: -0.3 - * /terminal_control/geo_fence/y_max: 6.3 - * /terminal_control/geo_fence/y_min: -0.3 - * /terminal_control/geo_fence/z_max: 3.3 - * /terminal_control/geo_fence/z_min: -0.3 - -NODES - / - ground_station (prometheus_station/ground_station) - ground_station_msg (prometheus_station/ground_station_msg) - pub_goal (prometheus_mission/pub_goal) - rviz (rviz/rviz) - terminal_control (prometheus_control/terminal_control) - -ROS_MASTER_URI=http://localhost:11311 - -process[ground_station-1]: started with pid [13963] -process[ground_station_msg-2]: started with pid [13964] -process[pub_goal-3]: started with pid [13965] -process[terminal_control-4]: started with pid [13966] -process[rviz-5]: started with pid [13967] -[ground_station_msg-2] process has finished cleanly -log file: /home/amov/.ros/log/38f205b4-dfa5-11ee-9953-48b02d67bcf5/ground_station_msg-2*.log -[ground_station-1] process has finished cleanly -log file: /home/amov/.ros/log/38f205b4-dfa5-11ee-9953-48b02d67bcf5/ground_station-1*.log -[pub_goal-3] process has finished cleanly -log file: /home/amov/.ros/log/38f205b4-dfa5-11ee-9953-48b02d67bcf5/pub_goal-3*.log -[terminal_control-4] process has finished cleanly -log file: /home/amov/.ros/log/38f205b4-dfa5-11ee-9953-48b02d67bcf5/terminal_control-4*.log -QObject::connect: Cannot queue arguments of type 'QVector' -(Make sure 'QVector' is registered using qRegisterMetaType().) -QObject::connect: Cannot queue arguments of type 'QVector' -(Make sure 'QVector' is registered using qRegisterMetaType().) -[rviz-5] process has finished cleanly -log file: /home/amov/.ros/log/38f205b4-dfa5-11ee-9953-48b02d67bcf5/rviz-5*.log -all processes on machine have died, roslaunch will exit -shutting down processing monitor... -... shutting down processing monitor complete -done \ No newline at end of file diff --git a/doc/log/2024-03-11/terminal_onboard.log b/doc/log/2024-03-11/terminal_onboard.log deleted file mode 100644 index 5bfa9ae..0000000 --- a/doc/log/2024-03-11/terminal_onboard.log +++ /dev/null @@ -1,476 +0,0 @@ -amov@amov:~$ roslaunch octomapping octomapping_onboard.launch -... logging to /home/amov/.ros/log/38f205b4-dfa5-11ee-9953-48b02d67bcf5/roslaunch-amov-12546.log -Checking log directory for disk usage. This may take a while. -Press Ctrl-C to interrupt -Done checking log file disk usage. Usage is <1GB. - -started roslaunch server http://amov:34041/ - -SUMMARY -======== - -PARAMETERS - * /lidar01/baud_rate: 768000 - * /lidar01/frame_id: lidar_link - * /lidar01/hard_resample: False - * /lidar01/max_angle: 3.14 - * /lidar01/max_dist: 50.0 - * /lidar01/min_angle: -3.14 - * /lidar01/output_360: True - * /lidar01/output_cloud: False - * /lidar01/output_scan: True - * /lidar01/platform: LDS-50C-2 - * /lidar01/port: /dev/ttyTHS1 - * /lidar01/rate_list: [500000, 768000, ... - * /lidar01/raw_bytes: 3 - * /lidar01/resample_res: 0.4 - * /lidar01/soft_resample: True - * /lidar01/type: uart - * /lidar01/unit_is_mm: True - * /lidar01/with_angle_filter: True - * /lidar01/with_checksum: True - * /lidar01/with_confidence: True - * /mavros/cmd/use_comp_id_system_control: False - * /mavros/conn/heartbeat_rate: 1.0 - * /mavros/conn/system_time_rate: 1.0 - * /mavros/conn/timeout: 10.0 - * /mavros/conn/timesync_rate: 10.0 - * /mavros/distance_sensor/hrlv_ez4_pub/field_of_view: 0.0 - * /mavros/distance_sensor/hrlv_ez4_pub/frame_id: hrlv_ez4_sonar - * /mavros/distance_sensor/hrlv_ez4_pub/id: 0 - * /mavros/distance_sensor/hrlv_ez4_pub/orientation: PITCH_270 - * /mavros/distance_sensor/hrlv_ez4_pub/send_tf: True - * /mavros/distance_sensor/hrlv_ez4_pub/sensor_position/x: 0.0 - * /mavros/distance_sensor/hrlv_ez4_pub/sensor_position/y: 0.0 - * /mavros/distance_sensor/hrlv_ez4_pub/sensor_position/z: -0.1 - * /mavros/distance_sensor/laser_1_sub/id: 3 - * /mavros/distance_sensor/laser_1_sub/orientation: PITCH_270 - * /mavros/distance_sensor/laser_1_sub/subscriber: True - * /mavros/distance_sensor/lidarlite_pub/field_of_view: 0.0 - * /mavros/distance_sensor/lidarlite_pub/frame_id: lidarlite_laser - * /mavros/distance_sensor/lidarlite_pub/id: 1 - * /mavros/distance_sensor/lidarlite_pub/orientation: PITCH_270 - * /mavros/distance_sensor/lidarlite_pub/send_tf: True - * /mavros/distance_sensor/lidarlite_pub/sensor_position/x: 0.0 - * /mavros/distance_sensor/lidarlite_pub/sensor_position/y: 0.0 - * /mavros/distance_sensor/lidarlite_pub/sensor_position/z: -0.1 - * /mavros/distance_sensor/sonar_1_sub/id: 2 - * /mavros/distance_sensor/sonar_1_sub/orientation: PITCH_270 - * /mavros/distance_sensor/sonar_1_sub/subscriber: True - * /mavros/fake_gps/eph: 2.0 - * /mavros/fake_gps/epv: 2.0 - * /mavros/fake_gps/fix_type: 3 - * /mavros/fake_gps/geo_origin/alt: 408.0 - * /mavros/fake_gps/geo_origin/lat: 47.3667 - * /mavros/fake_gps/geo_origin/lon: 8.55 - * /mavros/fake_gps/gps_rate: 5.0 - * /mavros/fake_gps/mocap_transform: True - * /mavros/fake_gps/satellites_visible: 5 - * /mavros/fake_gps/tf/child_frame_id: fix - * /mavros/fake_gps/tf/frame_id: map - * /mavros/fake_gps/tf/listen: False - * /mavros/fake_gps/tf/rate_limit: 10.0 - * /mavros/fake_gps/tf/send: False - * /mavros/fake_gps/use_mocap: True - * /mavros/fake_gps/use_vision: False - * /mavros/fcu_url: /dev/ttyTHS2:921600 - * /mavros/gcs_url: - * /mavros/global_position/child_frame_id: base_link - * /mavros/global_position/frame_id: map - * /mavros/global_position/gps_uere: 1.0 - * /mavros/global_position/rot_covariance: 99999.0 - * /mavros/global_position/tf/child_frame_id: base_link - * /mavros/global_position/tf/frame_id: map - * /mavros/global_position/tf/global_frame_id: earth - * /mavros/global_position/tf/send: False - * /mavros/global_position/use_relative_alt: True - * /mavros/image/frame_id: px4flow - * /mavros/imu/angular_velocity_stdev: 0.0003490659 // 0... - * /mavros/imu/frame_id: base_link - * /mavros/imu/linear_acceleration_stdev: 0.0003 - * /mavros/imu/magnetic_stdev: 0.0 - * /mavros/imu/orientation_stdev: 1.0 - * /mavros/landing_target/camera/fov_x: 2.0071286398 - * /mavros/landing_target/camera/fov_y: 2.0071286398 - * /mavros/landing_target/image/height: 480 - * /mavros/landing_target/image/width: 640 - * /mavros/landing_target/land_target_type: VISION_FIDUCIAL - * /mavros/landing_target/listen_lt: False - * /mavros/landing_target/mav_frame: LOCAL_NED - * /mavros/landing_target/target_size/x: 0.3 - * /mavros/landing_target/target_size/y: 0.3 - * /mavros/landing_target/tf/child_frame_id: camera_center - * /mavros/landing_target/tf/frame_id: landing_target - * /mavros/landing_target/tf/listen: False - * /mavros/landing_target/tf/rate_limit: 10.0 - * /mavros/landing_target/tf/send: True - * /mavros/local_position/frame_id: world - * /mavros/local_position/tf/child_frame_id: base_link - * /mavros/local_position/tf/frame_id: world - * /mavros/local_position/tf/send: True - * /mavros/local_position/tf/send_fcu: False - * /mavros/mission/pull_after_gcs: True - * /mavros/mission/use_mission_item_int: True - * /mavros/mocap/use_pose: True - * /mavros/mocap/use_tf: False - * /mavros/odometry/fcu/odom_child_id_des: base_link - * /mavros/odometry/fcu/odom_parent_id_des: map - * /mavros/plugin_blacklist: ['actuator_contro... - * /mavros/plugin_whitelist: [] - * /mavros/px4flow/frame_id: px4flow - * /mavros/px4flow/ranger_fov: 0.118682 - * /mavros/px4flow/ranger_max_range: 5.0 - * /mavros/px4flow/ranger_min_range: 0.3 - * /mavros/safety_area/p1/x: 1.0 - * /mavros/safety_area/p1/y: 1.0 - * /mavros/safety_area/p1/z: 1.0 - * /mavros/safety_area/p2/x: -1.0 - * /mavros/safety_area/p2/y: -1.0 - * /mavros/safety_area/p2/z: -1.0 - * /mavros/setpoint_accel/send_force: False - * /mavros/setpoint_attitude/reverse_thrust: False - * /mavros/setpoint_attitude/tf/child_frame_id: target_attitude - * /mavros/setpoint_attitude/tf/frame_id: map - * /mavros/setpoint_attitude/tf/listen: False - * /mavros/setpoint_attitude/tf/rate_limit: 50.0 - * /mavros/setpoint_attitude/use_quaternion: False - * /mavros/setpoint_position/mav_frame: LOCAL_NED - * /mavros/setpoint_position/tf/child_frame_id: target_position - * /mavros/setpoint_position/tf/frame_id: map - * /mavros/setpoint_position/tf/listen: False - * /mavros/setpoint_position/tf/rate_limit: 50.0 - * /mavros/setpoint_raw/thrust_scaling: 1.0 - * /mavros/setpoint_velocity/mav_frame: LOCAL_NED - * /mavros/startup_px4_usb_quirk: True - * /mavros/sys/disable_diag: False - * /mavros/sys/min_voltage: 10.0 - * /mavros/target_component_id: 1 - * /mavros/target_system_id: 1 - * /mavros/tdr_radio/low_rssi: 40 - * /mavros/time/time_ref_source: fcu - * /mavros/time/timesync_avg_alpha: 0.6 - * /mavros/time/timesync_mode: MAVLINK - * /mavros/vibration/frame_id: base_link - * /mavros/vision_pose/tf/child_frame_id: vision_estimate - * /mavros/vision_pose/tf/frame_id: odom - * /mavros/vision_pose/tf/listen: False - * /mavros/vision_pose/tf/rate_limit: 10.0 - * /mavros/vision_speed/listen_twist: True - * /mavros/vision_speed/twist_cov: True - * /mavros/wheel_odometry/child_frame_id: base_link - * /mavros/wheel_odometry/count: 2 - * /mavros/wheel_odometry/frame_id: odom - * /mavros/wheel_odometry/send_raw: True - * /mavros/wheel_odometry/send_twist: False - * /mavros/wheel_odometry/tf/child_frame_id: base_link - * /mavros/wheel_odometry/tf/frame_id: odom - * /mavros/wheel_odometry/tf/send: False - * /mavros/wheel_odometry/use_rpm: False - * /mavros/wheel_odometry/vel_error: 0.1 - * /mavros/wheel_odometry/wheel0/radius: 0.05 - * /mavros/wheel_odometry/wheel0/x: 0.0 - * /mavros/wheel_odometry/wheel0/y: -0.15 - * /mavros/wheel_odometry/wheel1/radius: 0.05 - * /mavros/wheel_odometry/wheel1/x: 0.0 - * /mavros/wheel_odometry/wheel1/y: 0.15 - * /octomap_server/frame_id: world - * /octomap_server/resolution: 0.05 - * /octomap_server/sensor_model/max_range: 3.0 - * /prometheus_control/px4_pos_estimator/input_source: 3 - * /prometheus_control/px4_sender/Disarm_height: 0.18 - * /prometheus_control/px4_sender/Land_mode: 1 - * /prometheus_control/px4_sender/Land_speed: 0.2 - * /prometheus_control/px4_sender/Takeoff_height: 0.4 - * /prometheus_control/px4_sender/geo_fence/x_max: 6.3 - * /prometheus_control/px4_sender/geo_fence/x_min: -0.3 - * /prometheus_control/px4_sender/geo_fence/y_max: 6.3 - * /prometheus_control/px4_sender/geo_fence/y_min: -0.3 - * /prometheus_control/px4_sender/geo_fence/z_max: 3.3 - * /prometheus_control/px4_sender/geo_fence/z_min: -0.3 - * /rosdistro: melodic - * /rosversion: 1.14.13 - * /t265/realsense2_camera/accel_fps: 62 - * /t265/realsense2_camera/accel_frame_id: t265_accel_frame - * /t265/realsense2_camera/accel_optical_frame_id: t265_accel_optica... - * /t265/realsense2_camera/align_depth: False - * /t265/realsense2_camera/aligned_depth_to_color_frame_id: t265_aligned_dept... - * /t265/realsense2_camera/aligned_depth_to_fisheye1_frame_id: t265_aligned_dept... - * /t265/realsense2_camera/aligned_depth_to_fisheye2_frame_id: t265_aligned_dept... - * /t265/realsense2_camera/aligned_depth_to_fisheye_frame_id: t265_aligned_dept... - * /t265/realsense2_camera/aligned_depth_to_infra1_frame_id: t265_aligned_dept... - * /t265/realsense2_camera/aligned_depth_to_infra2_frame_id: t265_aligned_dept... - * /t265/realsense2_camera/allow_no_texture_points: False - * /t265/realsense2_camera/base_frame_id: t265_link - * /t265/realsense2_camera/calib_odom_file: - * /t265/realsense2_camera/clip_distance: -1.0 - * /t265/realsense2_camera/color_fps: 30 - * /t265/realsense2_camera/color_frame_id: t265_color_frame - * /t265/realsense2_camera/color_height: 480 - * /t265/realsense2_camera/color_optical_frame_id: t265_color_optica... - * /t265/realsense2_camera/color_width: 640 - * /t265/realsense2_camera/depth_fps: 30 - * /t265/realsense2_camera/depth_frame_id: t265_depth_frame - * /t265/realsense2_camera/depth_height: 480 - * /t265/realsense2_camera/depth_optical_frame_id: t265_depth_optica... - * /t265/realsense2_camera/depth_width: 640 - * /t265/realsense2_camera/device_type: t265 - * /t265/realsense2_camera/enable_accel: True - * /t265/realsense2_camera/enable_color: True - * /t265/realsense2_camera/enable_depth: True - * /t265/realsense2_camera/enable_fisheye1: False - * /t265/realsense2_camera/enable_fisheye2: False - * /t265/realsense2_camera/enable_fisheye: False - * /t265/realsense2_camera/enable_gyro: True - * /t265/realsense2_camera/enable_infra1: False - * /t265/realsense2_camera/enable_infra2: False - * /t265/realsense2_camera/enable_infra: False - * /t265/realsense2_camera/enable_pointcloud: False - * /t265/realsense2_camera/enable_pose: True - * /t265/realsense2_camera/enable_sync: False - * /t265/realsense2_camera/filters: - * /t265/realsense2_camera/fisheye1_frame_id: t265_fisheye1_frame - * /t265/realsense2_camera/fisheye1_optical_frame_id: t265_fisheye1_opt... - * /t265/realsense2_camera/fisheye2_frame_id: t265_fisheye2_frame - * /t265/realsense2_camera/fisheye2_optical_frame_id: t265_fisheye2_opt... - * /t265/realsense2_camera/fisheye_fps: 30 - * /t265/realsense2_camera/fisheye_frame_id: t265_fisheye_frame - * /t265/realsense2_camera/fisheye_height: 800 - * /t265/realsense2_camera/fisheye_optical_frame_id: t265_fisheye_opti... - * /t265/realsense2_camera/fisheye_width: 848 - * /t265/realsense2_camera/gyro_fps: 200 - * /t265/realsense2_camera/gyro_frame_id: t265_gyro_frame - * /t265/realsense2_camera/gyro_optical_frame_id: t265_gyro_optical... - * /t265/realsense2_camera/imu_optical_frame_id: t265_imu_optical_... - * /t265/realsense2_camera/infra1_frame_id: t265_infra1_frame - * /t265/realsense2_camera/infra1_optical_frame_id: t265_infra1_optic... - * /t265/realsense2_camera/infra2_frame_id: t265_infra2_frame - * /t265/realsense2_camera/infra2_optical_frame_id: t265_infra2_optic... - * /t265/realsense2_camera/infra_fps: 30 - * /t265/realsense2_camera/infra_height: 480 - * /t265/realsense2_camera/infra_width: 640 - * /t265/realsense2_camera/initial_reset: False - * /t265/realsense2_camera/json_file_path: - * /t265/realsense2_camera/linear_accel_cov: 0.01 - * /t265/realsense2_camera/odom_frame_id: t265_odom_frame - * /t265/realsense2_camera/pointcloud_texture_index: 0 - * /t265/realsense2_camera/pointcloud_texture_stream: RS2_STREAM_COLOR - * /t265/realsense2_camera/pose_frame_id: t265_pose_frame - * /t265/realsense2_camera/pose_optical_frame_id: t265_pose_optical... - * /t265/realsense2_camera/publish_odom_tf: True - * /t265/realsense2_camera/publish_tf: True - * /t265/realsense2_camera/rosbag_filename: - * /t265/realsense2_camera/serial_no: - * /t265/realsense2_camera/tf_publish_rate: 0.0 - * /t265/realsense2_camera/topic_odom_in: t265/odom_in - * /t265/realsense2_camera/unite_imu_method: - * /t265/realsense2_camera/usb_port_id: - -NODES - / - laser_to_pointcloud (prometheus_gazebo/laser_to_pointcloud.py) - lidar01 (bluesea2/bluesea2_node) - mavros (mavros/mavros_node) - octomap_server (octomap_server/octomap_server_node) - tf_2Dlidar (tf/static_transform_publisher) - tf_t265 (tf/static_transform_publisher) - tf_world_map (tf/static_transform_publisher) - /prometheus_control/ - px4_pos_estimator (prometheus_control/px4_pos_estimator) - px4_sender (prometheus_control/px4_sender) - /t265/ - realsense2_camera (nodelet/nodelet) - realsense2_camera_manager (nodelet/nodelet) - -auto-starting new master -process[master]: started with pid [12556] -ROS_MASTER_URI=http://localhost:11311 - -setting /run_id to 38f205b4-dfa5-11ee-9953-48b02d67bcf5 -process[rosout-1]: started with pid [12569] -started core service [/rosout] -process[mavros-2]: started with pid [12586] -process[t265/realsense2_camera_manager-3]: started with pid [12587] -process[t265/realsense2_camera-4]: started with pid [12588] -process[prometheus_control/px4_pos_estimator-5]: started with pid [12597] -process[prometheus_control/px4_sender-6]: started with pid [12615] -process[lidar01-7]: started with pid [12624] -process[tf_world_map-8]: started with pid [12636] -process[tf_t265-9]: started with pid [12656] -process[tf_2Dlidar-10]: started with pid [12665] -type is uart -[ INFO] [1710161125.638777244]: Initializing nodelet with 4 worker threads. -process[laser_to_pointcloud-11]: started with pid [12760] -process[octomap_server-12]: started with pid [12782] -[ INFO] [1710161126.663892615]: FCU URL: /dev/ttyTHS2:921600 -[ INFO] [1710161126.735187602]: serial0: device: /dev/ttyTHS2 @ 921600 bps -[ INFO] [1710161126.738556160]: GCS bridge disabled -[ INFO] [1710161126.917890881]: Plugin 3dr_radio blacklisted -[ INFO] [1710161126.918412202]: Plugin actuator_control blacklisted -[ INFO] [1710161126.919294681]: Plugin adsb blacklisted -[ INFO] [1710161126.920189505]: Plugin altitude blacklisted -[ INFO] [1710161126.920255549]: Plugin cam_imu_sync blacklisted -[ INFO] [1710161126.927546590]: Change RPM to [600] -[0] => 500000 -[1] => 768000 -[2] => 921600 -reported 768000 -send command : 'LUUIDH' ->>>>>>>>>>>>>>>>>>>>>>>> px4_sender Parameter <<<<<<<<<<<<<<<<<<<<<< -Takeoff_height : 0.4 [m] -Disarm_height : 0.18 [m] -Land_speed : 0.2 [m/s] -Land_mode : 1 -geo_fence_x : -0.3 [m] to 6.3 [m] -geo_fence_y : -0.3 [m] to 6.3 [m] -geo_fence_z : -0.3 [m] to 3.3 [m] -read 4753 bytes, not found PRODUCT SN: -send command : 'LUUIDH' -[ INFO] [1710161127.131602661]: Plugin camera loaded -[ INFO] [1710161127.137204631]: Plugin camera initialized -[ INFO] [1710161127.138895994]: Plugin cellular_status loaded -read 4864 bytes, not found PRODUCT SN: -send command : 'LUUIDH' -[ INFO] [1710161127.229592558]: Plugin cellular_status initialized -read 4919 bytes, not found PRODUCT SN: -send command : 'LUUIDH' -read 5428 bytes, not found PRODUCT SN: -send command : 'LUUIDH' -[ INFO] [1710161127.446072925]: Plugin command loaded -read 4918 bytes, not found PRODUCT SN: -send command : 'LUUIDH' -read 4923 bytes, not found PRODUCT SN: -send command : 'LUUIDH' -[ INFO] [1710161127.608683822]: Plugin command initialized -[ INFO] [1710161127.608855495]: Plugin companion_process_status blacklisted -[ INFO] [1710161127.609468798]: Plugin debug_value blacklisted -[ INFO] [1710161127.609557916]: Plugin distance_sensor blacklisted -[ INFO] [1710161127.610109394]: Plugin esc_status loaded -[ INFO] [1710161127.624607566]: Plugin esc_status initialized -[ INFO] [1710161127.625122637]: Plugin esc_telemetry loaded -[ INFO] [1710161127.640389118]: Plugin esc_telemetry initialized -[ INFO] [1710161127.640786788]: Plugin fake_gps blacklisted -[ INFO] [1710161127.642004071]: Plugin ftp loaded -read 4922 bytes, not found PRODUCT SN: -send command : 'LUUIDH' -read 4919 bytes, not found PRODUCT SN: -send command : 'LUUIDH' -[ INFO] [1710161127.773409377]: Plugin ftp initialized -[ INFO] [1710161127.773856060]: Plugin geofence loaded -read 4925 bytes, not found PRODUCT SN: -send command : 'LUUIDH' -[ INFO] [1710161127.959836018]: Plugin geofence initialized -[ INFO] [1710161127.960604327]: Plugin global_position blacklisted -read 5362 bytes, not found PRODUCT SN: -send command : 'LMDMMH' -[ INFO] [1710161127.960934963]: Plugin gps_input loaded -[ INFO] [1710161128.072652849]: Plugin gps_input initialized -[ INFO] [1710161128.072776291]: Plugin gps_rtk blacklisted -[ INFO] [1710161128.073060989]: Plugin gps_status loaded -[ INFO] [1710161128.141879794]: Plugin gps_status initialized -[ INFO] [1710161128.142799254]: Plugin guided_target loaded -set LiDAR unit to MM OUT OK -send command : 'LOCONH' -[ INFO] [1710161128.269087607]: Plugin guided_target initialized -[ INFO] [1710161128.269231675]: Plugin hil blacklisted -[ INFO] [1710161128.269429494]: Plugin home_position blacklisted -[ INFO] [1710161128.270272024]: Plugin imu loaded -set LiDAR confidence to CONFI -send command : 'LFFF1H' -[ INFO] [1710161128.375193001]: Plugin imu initialized -[ INFO] [1710161128.375337746]: Plugin landing_target blacklisted -[ INFO] [1710161128.375707551]: Plugin local_position loaded -[ INFO] [1710161128.542194679]: Plugin local_position initialized -[ INFO] [1710161128.542590266]: Plugin log_transfer loaded -[ INFO] [1710161128.570197708]: Plugin log_transfer initialized -set LiDAR shadow filter to set f -send command : 'LSSS1H' -[ INFO] [1710161128.573677415]: Plugin mag_calibration_status loaded -[ INFO] [1710161128.584275293]: Plugin mag_calibration_status initialized -[ INFO] [1710161128.584660827]: Plugin manual_control loaded -[ INFO] [1710161128.635540869]: Plugin manual_control initialized -[ INFO] [1710161128.635726032]: Plugin mocap_pose_estimate blacklisted -[ INFO] [1710161128.635836036]: Plugin mount_control blacklisted -[ INFO] [1710161128.636194017]: Plugin nav_controller_output loaded -[ INFO] [1710161128.657307269]: Plugin nav_controller_output initialized -[ INFO] [1710161128.657442639]: Plugin obstacle_distance blacklisted -[ INFO] [1710161128.657546028]: Plugin odom blacklisted -[ INFO] [1710161128.657851768]: Plugin onboard_computer_status loaded -[ INFO] [1710161128.719524069]: Plugin onboard_computer_status initialized -[ INFO] [1710161128.719902676]: Plugin param loaded -set LiDAR smooth to set s -[ INFO] [1710161128.778023184]: Plugin param initialized -[ INFO] [1710161128.778367259]: Plugin play_tune loaded -unkown 32 bytes 22 08 01 22 -[ INFO] [1710161128.827596512]: Plugin play_tune initialized -[ INFO] [1710161128.827760789]: Plugin px4flow blacklisted -[ INFO] [1710161128.828170960]: Plugin rallypoint loaded -2880 drop 8 fans -[ INFO] [1710161128.891564937]: Plugin rallypoint initialized -[ INFO] [1710161128.891937242]: Plugin rangefinder loaded -[ INFO] [1710161128.898574666]: Plugin rangefinder initialized -[ INFO] [1710161128.898723473]: Plugin rc_io blacklisted -[ INFO] [1710161128.898784986]: Plugin safety_area blacklisted -[ INFO] [1710161128.898841029]: Plugin setpoint_accel blacklisted -[ INFO] [1710161128.898895667]: Plugin setpoint_attitude blacklisted -[ INFO] [1710161128.898948325]: Plugin setpoint_position blacklisted -[ INFO] [1710161128.899532825]: Plugin setpoint_raw loaded -[ WARN] [1710161129.048441827]: Nothing to publish, octree is empty -[ INFO] [1710161129.078401228]: Plugin setpoint_raw initialized -[ INFO] [1710161129.078804836]: Plugin setpoint_trajectory loaded -[ INFO] [1710161129.191888239]: Plugin setpoint_trajectory initialized -[ INFO] [1710161129.194807770]: Plugin setpoint_velocity blacklisted -[ INFO] [1710161129.195295913]: Plugin sys_status loaded -[ INFO] [1710161129.280872294]: Plugin sys_status initialized -[ INFO] [1710161129.281246891]: Plugin sys_time loaded -[ INFO] [1710161129.327761413]: TM: Timesync mode: MAVLINK -[ INFO] [1710161129.339544072]: TM: Not publishing sim time -[ INFO] [1710161129.348577467]: Plugin sys_time initialized -[ INFO] [1710161129.349054254]: Plugin terrain loaded -[ INFO] [1710161129.352573963]: Plugin terrain initialized -[ INFO] [1710161129.353439463]: Plugin trajectory loaded -[ INFO] [1710161129.398973376]: Plugin trajectory initialized -[ INFO] [1710161129.399425319]: Plugin tunnel loaded -[ INFO] [1710161129.428331037]: Plugin tunnel initialized -[ INFO] [1710161129.428517241]: Plugin vfr_hud blacklisted -[ INFO] [1710161129.428603130]: Plugin vibration blacklisted -[ INFO] [1710161129.429014498]: Plugin vision_pose_estimate loaded -[ INFO] [1710161129.508638376]: Plugin vision_pose_estimate initialized -[ INFO] [1710161129.508970784]: Plugin vision_speed_estimate loaded -[ INFO] [1710161129.561928087]: Plugin vision_speed_estimate initialized -[ INFO] [1710161129.562062832]: Plugin waypoint blacklisted -[ INFO] [1710161129.562131688]: Plugin wheel_odometry blacklisted -[ INFO] [1710161129.562190024]: Plugin wind_estimation blacklisted -[ INFO] [1710161129.562394146]: Autostarting mavlink via USB on PX4 -[ INFO] [1710161129.562511077]: Built-in SIMD instructions: ARM NEON -[ INFO] [1710161129.562785618]: Built-in MAVLink package version: 2022.12.30 -[ INFO] [1710161129.562869787]: Known MAVLink dialects: common ardupilotmega ASLUAV AVSSUAS all cubepilot development icarous matrixpilot paparazzi standard storm32 uAvionix ualberta -[ INFO] [1710161129.562934061]: MAVROS started. MY ID 1.240, TARGET ID 1.1 -[ INFO] [1710161129.564723031]: IMU: Attitude quaternion IMU detected! -[ INFO] [1710161129.564935434]: IMU: High resolution IMU detected! -[ INFO] [1710161129.565258570]: CON: Got HEARTBEAT, connected. FCU: PX4 Autopilot -[ INFO] [1710161129.580117641]: IMU: Attitude quaternion IMU detected! -[ INFO] [1710161129.580859335]: IMU: High resolution IMU detected! -[ INFO] [1710161130.594392209]: GF: Using MISSION_ITEM_INT -[ INFO] [1710161130.594534298]: RP: Using MISSION_ITEM_INT -[ INFO] [1710161130.594649458]: VER: 1.1: Capabilities 0x000000000000e4ff -[ INFO] [1710161130.594745815]: VER: 1.1: Flight software: 010d0100 (6c8880dcd417010d) -[ INFO] [1710161130.594818943]: VER: 1.1: Middleware software: 010d0100 (6c8880dcd4000000) -[ INFO] [1710161130.594891602]: VER: 1.1: OS software: 0b0000ff (91bece51afbe7da9) -[ INFO] [1710161130.594955198]: VER: 1.1: Board hardware: 00000038 -[ INFO] [1710161130.595028534]: VER: 1.1: VID/PID: 3185:0038 -[ INFO] [1710161130.595089474]: VER: 1.1: UID: 3031510b34373938 -[ WARN] [1710161130.600725820]: CMD: Unexpected command 520, result 0 -[ INFO] [1710161131.467713735]: RealSense ROS v2.2.15 -[ INFO] [1710161131.467807697]: Built with LibRealSense v2.36.0 -[ INFO] [1710161131.467898221]: Running with LibRealSense v2.36.0 - 11/03 20:45:32,546 WARNING [547826090368] (messenger-libusb.cpp:66) bulk_transfer returned error, endpoint: 0x1, error: No data available, err. num: 61 - 11/03 20:45:32,546 ERROR [547826090368] (tm-boot.h:39) Error booting T265 -[ WARN] [1710161134.564234194]: No RealSense devices were found! - 11/03 20:45:41,611 WARNING [547826090368] (messenger-libusb.cpp:66) bulk_transfer returned error, endpoint: 0x1, error: No data available, err. num: 61 - 11/03 20:45:41,611 ERROR [547826090368] (tm-boot.h:39) Error booting T265 -[ WARN] [1710161143.638591240]: No RealSense devices were found! -[ INFO] [1710161144.566803992]: GF: mission received -[ INFO] [1710161144.576381625]: RP: mission received -[ WARN] [1710161144.743022092]: PR: request param #234 timeout, retries left 2, and 2 params still missing - 11/03 20:45:50,657 WARNING [547826090368] (messenger-libusb.cpp:66) bulk_transfer returned error, endpoint: 0x1, error: No data available, err. num: 61 - 11/03 20:45:50,657 ERROR [547826090368] (tm-boot.h:39) Error booting T265 diff --git a/doc/log/2024-03-13/Presentation.pptx b/doc/log/2024-03-13/Presentation.pptx deleted file mode 100644 index 67ab936..0000000 Binary files a/doc/log/2024-03-13/Presentation.pptx and /dev/null differ diff --git a/doc/log/2024-05-02/rosgraph.png b/doc/log/2024-05-02/rosgraph.png deleted file mode 100644 index ba5c1ef..0000000 Binary files a/doc/log/2024-05-02/rosgraph.png and /dev/null differ diff --git a/doc/paper/481.pdf b/doc/paper/481.pdf deleted file mode 100644 index 0a086f0..0000000 Binary files a/doc/paper/481.pdf and /dev/null differ diff --git a/doc/paper/FULLTEXT01.pdf b/doc/paper/FULLTEXT01.pdf deleted file mode 100644 index 0733e4c..0000000 Binary files a/doc/paper/FULLTEXT01.pdf and /dev/null differ diff --git a/doc/uml_overview.png b/doc/uml_overview.png deleted file mode 100644 index b61e48b..0000000 Binary files a/doc/uml_overview.png and /dev/null differ diff --git a/include/merge_pcl/merge_pcl.h b/include/merge_pcl/merge_pcl.h index 8871392..860619a 100644 --- a/include/merge_pcl/merge_pcl.h +++ b/include/merge_pcl/merge_pcl.h @@ -1,9 +1,9 @@ // -// Created by hyx020222 on 5/2/24. +// Created by Eason Hua on 5/2/24. // -#ifndef UAV_OCTOMAPPING_ADD_PCL_H -#define UAV_OCTOMAPPING_ADD_PCL_H +#ifndef MERGE_PCL_H +#define MERGE_PCL_H #include #include @@ -19,8 +19,34 @@ #include #include #include - -#include #include -#endif //UAV_OCTOMAPPING_ADD_PCL_H +using namespace std; + +class PointCloudMerger { +public: + PointCloudMerger(); + ~PointCloudMerger() = default; + + void mergeCallback(const sensor_msgs::PointCloud2ConstPtr& pcl2_0, + const sensor_msgs::PointCloud2ConstPtr& pcl2_1); + +private: + typedef message_filters::sync_policies::ApproximateTime + SyncPolicy; + typedef shared_ptr> Synchronizer; + + ros::NodeHandle nh; + + int pcl2_source_num; + std::string pcl2_topic_0, pcl2_topic_1, pcl2_topic_out; + std::string pcl2_frame_0, pcl2_frame_1; + + + shared_ptr> pcl2_sub_0, pcl2_sub_1; + Synchronizer synchronizer_; + tf::TransformListener listener0, listener1; + ros::Publisher pcl2_pub; +}; + +#endif //MERGE_PCL_H diff --git a/include/octomap/occupy_map.h b/include/octomap/occupy_map.h deleted file mode 100644 index abc7a2a..0000000 --- a/include/octomap/occupy_map.h +++ /dev/null @@ -1,35 +0,0 @@ -#ifndef _OCCUPY_MAP_H -#define _OCCUPY_MAP_H - -#include "tools.h" - -namespace octomapping{ - class Occupy_map{ - public: - Occupy_map(){} - - // 定义该类的指针 - typedef std::shared_ptr Ptr; - - // 地图原点,地图尺寸 - Eigen::Vector3d origin_, map_size_3d_; - // 地图分辨率 - double resolution; - - // 发布点云用于rviz显示 - ros::Publisher global_pcl_pub; - - // 全局点云指针 - sensor_msgs::PointCloud2ConstPtr global_env_ptr; - - //初始化 - void init(ros::NodeHandle& nodehandle); - - // 地图更新函数 - 输入:全局点云 - void map_update_gpcl(const sensor_msgs::PointCloud2ConstPtr &global_point); - - // 地图更新函数 - 输入:二维激光雷达 - void map_update_laser(const sensor_msgs::LaserScanConstPtr &local_point, const nav_msgs::Odometry &odom); - }; -} -#endif diff --git a/include/octomap/octomapping.h b/include/octomap/octomapping.h deleted file mode 100644 index 15056f2..0000000 --- a/include/octomap/octomapping.h +++ /dev/null @@ -1,41 +0,0 @@ -#ifndef OCTOMAPPING -#define OCTOMAPPING - -#include "occupy_map.h" - -using namespace std; - -namespace octomapping{ - class OctoMapping{ - private: - ros::NodeHandle nodehandle; - - // 参数 - bool map_input; - - // 订阅无人机状态、目标点、传感器数据(生成地图) - ros::Subscriber drone_state_sub; - // 支持直接输入全局已知点云 - ros::Subscriber Gpointcloud_sub; - // 支持2维激光雷达实体传感器 - ros::Subscriber laserscan_sub; - - // 占据图类 - Occupy_map::Ptr Occupy_map_ptr; - - nav_msgs::Odometry Drone_odom; - - // 回调函数 - void Gpointcloud_cb(const sensor_msgs::PointCloud2ConstPtr &msg); - void laser_cb(const sensor_msgs::LaserScanConstPtr &msg); - - public: - OctoMapping(void): - nodehandle("~") - {}~OctoMapping(){} - - void init(ros::NodeHandle& nodehandle); - }; -} - -#endif diff --git a/include/octomap/tools.h b/include/octomap/tools.h deleted file mode 100644 index 0ee4584..0000000 --- a/include/octomap/tools.h +++ /dev/null @@ -1,29 +0,0 @@ -#ifndef _TOOLS_H -#define _TOOLS_H - -#include -#include -#include -#include - -#include -#include -#include -#include -#include -#include -#include -#include - -#include -#include -#include -#include -#include -#include -#include -#include - -#include "easondrone_msgs/ControlCommand.h" - -#endif diff --git a/launch/octomap_server.launch b/launch/octomap_server.launch index 9643613..5032ab4 100644 --- a/launch/octomap_server.launch +++ b/launch/octomap_server.launch @@ -10,6 +10,6 @@ - + diff --git a/launch/simulation.launch b/launch/simulation.launch index 8651ae0..5eeebd2 100644 --- a/launch/simulation.launch +++ b/launch/simulation.launch @@ -1,17 +1,24 @@ + + + + + - + - - - + + + + + diff --git a/package.xml b/package.xml index f3297a1..552dfd8 100644 --- a/package.xml +++ b/package.xml @@ -22,7 +22,8 @@ octomap message_filters tf - easondrone_msgs + tf2_ros + tf2_sensor_msgs catkin diff --git a/src/merge_pcl/merge_pcl.cpp b/src/merge_pcl/merge_pcl.cpp new file mode 100644 index 0000000..36c7d87 --- /dev/null +++ b/src/merge_pcl/merge_pcl.cpp @@ -0,0 +1,63 @@ +#include "merge_pcl/merge_pcl.h" + +using namespace std; + +PointCloudMerger::PointCloudMerger() : nh("~"){ + nh.param("pcl2_source_num", pcl2_source_num, 2); + nh.param("pcl2_topic_0", pcl2_topic_0, ""); + nh.param("pcl2_frame_0", pcl2_frame_0, ""); + nh.param("pcl2_topic_1", pcl2_topic_1, ""); + nh.param("pcl2_frame_1", pcl2_frame_1, ""); + nh.param("pcl2_topic_out", pcl2_topic_out, ""); + + pcl2_sub_0.reset(new message_filters::Subscriber(nh, pcl2_topic_0, 50)); + pcl2_sub_1.reset(new message_filters::Subscriber(nh, pcl2_topic_1, 50)); + + synchronizer_.reset(new message_filters::Synchronizer(SyncPolicy(100), *pcl2_sub_0, *pcl2_sub_1)); + synchronizer_->registerCallback(boost::bind(&PointCloudMerger::mergeCallback, this, _1, _2)); + + pcl2_pub = nh.advertise(pcl2_topic_out, 10); + + listener0.waitForTransform("base_link", pcl2_frame_0, ros::Time(0), ros::Duration(0.05)); + listener1.waitForTransform("base_link", pcl2_frame_1, ros::Time(0), ros::Duration(0.05)); + + std::cout << "[easondrone_mapping] merge_pcl initialized!" << std::endl; +} + +void PointCloudMerger::mergeCallback(const sensor_msgs::PointCloud2ConstPtr& pcl2_0, const sensor_msgs::PointCloud2ConstPtr& pcl2_1) { + pcl::PointCloud::Ptr pcl_xyz_0, pcl_xyz_1, pcl_xyz_output; + + pcl_xyz_0.reset(new pcl::PointCloud()); + pcl::fromROSMsg(*pcl2_0, *pcl_xyz_0); + // 转换D435i点云到map坐标系 + pcl_ros::transformPointCloud("base_link", *pcl_xyz_0, *pcl_xyz_0, listener1); + + pcl_xyz_1.reset(new pcl::PointCloud()); + pcl::fromROSMsg(*pcl2_1, *pcl_xyz_1); + // 转换LiDAR点云到map坐标系 + pcl_ros::transformPointCloud("base_link", *pcl_xyz_1, *pcl_xyz_1, listener0); + + pcl_xyz_output.reset(new pcl::PointCloud()); + + pcl_xyz_output->header.seq = pcl_xyz_1->header.seq; + pcl_xyz_output->header.stamp = pcl_xyz_1->header.stamp; + pcl_xyz_output->header.frame_id = "base_link"; + + *pcl_xyz_output += *pcl_xyz_1; + *pcl_xyz_output += *pcl_xyz_0; + + sensor_msgs::PointCloud2 pcl2_output; + pcl::toROSMsg(*pcl_xyz_output, pcl2_output); + + if(pcl2_pub){ + pcl2_pub.publish(pcl2_output); + } +} + +int main(int argc, char** argv) { + ros::init(argc, argv, "merge_pcl"); + PointCloudMerger pc_merger; + + ros::spin(); + return 0; +} diff --git a/src/merge_pcl/pcl_merge.cpp b/src/merge_pcl/pcl_merge.cpp deleted file mode 100644 index afbc39f..0000000 --- a/src/merge_pcl/pcl_merge.cpp +++ /dev/null @@ -1,80 +0,0 @@ -#include "merge_pcl/merge_pcl.h" - -using namespace std; - -class PointCloudMerger { -public: - PointCloudMerger(); - ~PointCloudMerger() = default; - - void mergeCallback(const sensor_msgs::PointCloud2ConstPtr& depth, - const sensor_msgs::PointCloud2ConstPtr& scan); - -private: - typedef message_filters::sync_policies::ApproximateTime - SyncPolicy; - typedef shared_ptr> Synchronizer; - - ros::NodeHandle nh; - - shared_ptr> LiDAR_sub_, D435i_sub_; - Synchronizer synchronizer_; - tf::TransformListener listener_LiDAR, listener_D435i; - ros::Publisher merged_pub_; - tf::StampedTransform transform_LiDAR, transform_D435i; -}; - -PointCloudMerger::PointCloudMerger() : nh("~"){ - LiDAR_sub_.reset(new message_filters::Subscriber(nh, "/sensors/3Dlidar_scan", 50)); - D435i_sub_.reset(new message_filters::Subscriber(nh, "/camera/depth/color/points", 50)); - - synchronizer_.reset(new message_filters::Synchronizer(SyncPolicy(100), *LiDAR_sub_, *D435i_sub_)); - synchronizer_->registerCallback(boost::bind(&PointCloudMerger::mergeCallback, this, _1, _2)); - - merged_pub_ = nh.advertise("/sensors/merged_pcl", 10); - - listener_LiDAR.waitForTransform("base_link", "3Dlidar_link", ros::Time(0), ros::Duration(0.05)); - listener_D435i.waitForTransform("base_link", "D435i::camera_depth_frame", ros::Time(0), ros::Duration(0.05)); - - // 设置cout的精度为小数点后两位 - std::cout << std::fixed << std::setprecision(2); - - std::cout << "[mapping] merge_pcl initialized!" << std::endl; -} - -void PointCloudMerger::mergeCallback(const sensor_msgs::PointCloud2ConstPtr& depth, - const sensor_msgs::PointCloud2ConstPtr& scan) { - pcl::PointCloud::Ptr D435i_pcl, LiDAR_pcl, merged_pcl; - - D435i_pcl.reset(new pcl::PointCloud()); - pcl::fromROSMsg(*depth, *D435i_pcl); - // 转换D435i点云到map坐标系 - pcl_ros::transformPointCloud("base_link", *D435i_pcl, *D435i_pcl, listener_D435i); - - LiDAR_pcl.reset(new pcl::PointCloud()); - pcl::fromROSMsg(*scan, *LiDAR_pcl); - // 转换LiDAR点云到map坐标系 - pcl_ros::transformPointCloud("base_link", *LiDAR_pcl, *LiDAR_pcl, listener_LiDAR); - - merged_pcl.reset(new pcl::PointCloud()); - - merged_pcl->header.seq = LiDAR_pcl->header.seq; - merged_pcl->header.stamp = LiDAR_pcl->header.stamp; - merged_pcl->header.frame_id = "base_link"; - - *merged_pcl += *LiDAR_pcl; - *merged_pcl += *D435i_pcl; - - sensor_msgs::PointCloud2 merged_cloud_msg; - pcl::toROSMsg(*merged_pcl, merged_cloud_msg); - - merged_pub_.publish(merged_cloud_msg); -} - -int main(int argc, char** argv) { - ros::init(argc, argv, "pointcloud_merger"); - PointCloudMerger pc_merger; - - ros::spin(); - return 0; -} diff --git a/src/octomap/occupy_map.cpp b/src/octomap/occupy_map.cpp deleted file mode 100644 index a146312..0000000 --- a/src/octomap/occupy_map.cpp +++ /dev/null @@ -1,36 +0,0 @@ -#include - -namespace octomapping{ - // 初始化函数 - void Occupy_map::init(ros::NodeHandle& nodehandle){ - // 地图原点 - nodehandle.param("map/origin_x", origin_(0), 0.0); - nodehandle.param("map/origin_y", origin_(1), 0.0); - nodehandle.param("map/origin_z", origin_(2), 0.0); - // 地图实际尺寸,单位:米 - nodehandle.param("map/map_size_x", map_size_3d_(0), 8.0); - nodehandle.param("map/map_size_y", map_size_3d_(1), 8.0); - nodehandle.param("map/map_size_z", map_size_3d_(2), 4.0); - // 地图分辨率,单位:米 - nodehandle.param("map/resolution", resolution, 0.05); - - // 发布点云地图 - global_pcl_pub = nodehandle.advertise("/sensor_msgs/PointCloud2", 10); - } - - // 地图更新函数 - 输入:全局点云 - void Occupy_map::map_update_gpcl(const sensor_msgs::PointCloud2ConstPtr & global_point){ - global_env_ptr = global_point; - - // 发布未膨胀点云 - global_pcl_pub.publish(*global_env_ptr); - } - - // 地图更新函数 - 输入:laser - void Occupy_map::map_update_laser(const sensor_msgs::LaserScanConstPtr & local_point, const nav_msgs::Odometry & odom){ - // TODO 将传递过来的数据转为全局点云 - - // 发布未膨胀点云 - global_pcl_pub.publish(*global_env_ptr); - } -} diff --git a/src/octomap/octomapping.cpp b/src/octomap/octomapping.cpp deleted file mode 100644 index e21bf73..0000000 --- a/src/octomap/octomapping.cpp +++ /dev/null @@ -1,43 +0,0 @@ -#include "octomap/octomapping.h" - -namespace octomapping{ - // 初始化函数 - void OctoMapping::init(ros::NodeHandle& nodehandle){ - // 选择地图更新方式: true代表全局点云,false代表激光雷达scan数据 - nodehandle.param("global_planner/map_input", map_input, true); - - // 根据map_input选择地图更新方式 - if(map_input){ - Gpointcloud_sub = nodehandle.subscribe("/sensor_msgs/PointCloud2", 1, &OctoMapping::Gpointcloud_cb, this); - } - else{ - laserscan_sub = nodehandle.subscribe("/easondrone/global_planning/laser_scan", 1, &OctoMapping::laser_cb, this); - } - - // 初始化占据地图 - Occupy_map_ptr.reset(new Occupy_map); - Occupy_map_ptr->init(nodehandle); - } - - // 根据全局点云更新地图:已知全局点云的场景、由SLAM实时获取的全局点云 - void OctoMapping::Gpointcloud_cb(const sensor_msgs::PointCloud2ConstPtr &msg){ - // 此时的点云要么是仿真下的点云插件生成的点云或者是实机中传感器通过octomap生成的点云,这种就需要循环10次进行膨胀层 - static int update_num=0; - update_num++; - - // TODO: 此处改为根据循环时间计算的数值 - if(update_num == 10){ - // 对地图进行更新 - Occupy_map_ptr->map_update_gpcl(msg); - update_num = 0; - } - } - - // 根据2维雷达数据更新地图:2维激光雷达 - void OctoMapping::laser_cb(const sensor_msgs::LaserScanConstPtr &msg){ - /* need odom_ for center radius sensing */ - - // 对地图进行更新(laser+odom) - Occupy_map_ptr->map_update_laser(msg, Drone_odom); - } -} diff --git a/src/octomap/octomapping_node.cpp b/src/octomap/octomapping_node.cpp deleted file mode 100644 index 53ba295..0000000 --- a/src/octomap/octomapping_node.cpp +++ /dev/null @@ -1,16 +0,0 @@ -#include "octomap/octomapping.h" - -using namespace octomapping; - -int main(int argc, char** argv){ - ros::init(argc, argv, "octomapping"); - - ros::NodeHandle nodehandle("~"); - - OctoMapping MyOctoMapping; - MyOctoMapping.init(nodehandle); - - ros::spin(); - - return 0; -}