Global Optimization Software

本文档提供了广泛的全球优化软件资源,包括公共领域的系统、分支定界法代码、代数技术求解器等,并涵盖商用系统介绍及比较评估信息。

Global Optimization Software


Global Search, As Timely As Ever

``Consider everything. Keep the good. Avoid evil whenever you notice it.'' 
(1 Thess. 5:21-22)


This file is part of my global optimization web site. It contains sections on


We are working on a comparative evaluation of a number of currently available constrained global optimization programs. The results will be made publicly available here. If, as an authors of such software, you are interested in our evaluation of your code, the notes on Global Optimization Software Evaluation will tell you what you need to know.


Janos Pintér's recent Optima Newsletter survey on continuous global optimization software is now available online. Please send new or updated information regarding your global optimization software to Janos Pintér.


Below is a list of publicly available global optimization programs (and a few commercial ones). The quality in terms of speed, reliability, and/or automatic parameter choices, stopping tests and ease of use differs widely. I have not checked out the codes (will perhaps be done some day); but I am very interested in comparisons (cf. test results available online) or any other useful comments (mail here) on the sources given.

In a few cases, I added information on problems where a code has difficulties. This is not meant to criticize the code (it may work excellent on other classes of problems) but as a service to the research community: to challenge researchers to overcome current limitations, and to compete for better and better techniques.

Lack of critical information doesn't mean that a code has no problems, but only that nobody informed me about any weaknesses. Indeed, all current global optimization codes for nonlinear problems are unreliable (i.e., cannot always find the global optimum in a reasonable, predictable amount of time and space), with unknown performance limits.

At the present stage of knowledge, if you need global optimization you must experiment with the known methods (or packages) until you have something satisfying you. Unfortunately, this is a rather unsatisfactory state of the art... In general, performance must be expected to deteriorate with increasing dimension. Dimension 50-100 is probably already very high for general-purpose codes on all but the simplest problems. Many codes allow no constraints or only bound constraints.

Since I was asked repeatedly what to try first, here are some suggestions for continuous problems. But they are backed up by little else than my feelings of what I'd try first, and I am using a small font size to emphasize that this is information of a poorer quality than in the rest of my pages. Please write me if you have significant experience that leads to improved suggestions, or that confirms the ones given.

  • If the problem has the particular structure required for cGOP, BARON, or Q01SUBS, try these.
  • Otherwise, try Boender-Timmer-Rinnoy-Kan (for unconstrained problems), ASA (for bound constrained problems), or GENOCOP III (for general constrained problems). 
    In a comparison of several stochastic algorithms in Fortran or C on 45 problems of dimension 2-30, Tibor Csendes' implementation of the Boender-Timmer-Rinnoy-Kan algorithm was the clear winner. (But MCS and DIRECT/gblSolve that are publicly available in Matlab only and did not fit the environment of the above study are even better, at least on the limited Dixon-Szego test set.) So you might want to use a penalty or barrier formulation of a constrained problem to be able to apply one of these algorithms.
  • If these first choices turn out to be not reliable enough on your problem class, but the problem is in factorable form (i.e., uses arithmetic operations and elementary functions but no branches), try INTOPT_90. These are generally slow since they use directed rounding; but, unless the program is overwhelmed by the number of boxes to be processed, you can be sure with mathematical certainty that you found all global minima!


Public Domain Systems


Some Commercial Systems

  • (no attempt for completeness is made)
GloMIQO, Global Mixed-Integer Quadratic Optimizer  in GAMS (by Misener and Floudas) 
solves quadratically constrained quadratic programs with optional integer constraints to global optimality.

BARON, Branch-And-Reduce Optimization Navigator in Fortran (by Nikos Sahinidis) 
A general purpose solver for optimization problems with nonlinear constraints and/or integer variables. Fast specialized solvers for many linearly constrained problems. GAMS interface.

LINDO/LINGO now has global optimization facilities

Interval Global Solver from Frontline Systems. Visual Basic and Excel interfaces

LSGRG Nonlinear Mixed Integer Solver for AMPL

MINOPT (Mixed Integer Nonlinear Programming)

GAMS/DICOPT Solver for Mixed Integer Nonlinear Programming

EZMod Quadratic Mixed Integer Programming (QMIP) Solver

CPLEX Linear Mixed Integer Solver (branch-and-bound for mixed integer linear programs)

CMMIP, Mixed Integer Programming for mixed integer LPs 
``In CMMIP, each processor runs a version of CPLEX ... Parallelism is attained by looking at multiple nodes of the branch-and-bound search tree simultaneously ... near-linear speedups on up to 128 processors''

MINTO, Mixed INTeger Optimizer for mixed integer LPs

IBM Optimization Subroutine Library (OSL) (with a branch-and-bound mixed integer QP solver)

NAG FortMP (branch-and-bound mixed integer LP solver)

XPRESS-MP (mixed integer LP, QP and MINLP solver)

TOMLAB modeling and optimization environment. It includes, apart from many local algorithms, improved versions of the global optimization algorithms DIRECT and EGO of Jones, rbfSolve of Gutmann and Powell, Pinter's LGO, and mixed integer nonlinear solvers of Leyffer and Fletcher.

OptQuest (Tabu and Scatter search, etc.)

OptiREX, Cutting optimizer for rectangular sheets

ILOG Solver C++ software library which solves industrial problems for which generating or optimizing a solution is a highly combinatorial task, using constraint satisfaction techniques

Koalog Constraint Solver in Java

HEURO, Integrated Optimization Environment (for large scale black box global optimization with expensive objective function)


Constrained local and global optimization  (by Janos Pinter) 
includes MathOptimizer for Mathematica and LGO on various platforms

IOSO, Indirect Optimization Based on Self-Organization in Fortran 77, for large-scale and possibly multiobjective inequality constrained problems 
heuristic: builds local statistical models from function values and optimizes these

Constrained Global Optimization with Mathematica (including mixed integer problems and 0-1 integer problems) using adaptive grid refinement (by Loehle Enterprises, commercial)

Generator, Genetic Algorithm (for Excel worksheets) 
``You can use Generator to maximize profits...'' (... of New Light Industries, Ltd., of course)

Magestic, Data Fitting by Global Optimization (for Excel worksheets, commercial)

GLO Global Local Optimizer (by Michael J. Murphy) 
genetic algorithm for expensive black box (finite element) objective functions with constraints

Pointer, Constrained Optimization Tool with automatic selection or combination of up to four different search algorithms, including their tuning parameters (by Synaps, Inc.)

OptiA 
``Options for global optimization include algorithms based on cluster analysis and Monte Carlo techniques.''

Curvi for bound constrained optimization (by Windward Technologies)

OPTECH guided stochastic search for constrained global optimization

GEATbx Matlab Genetic and Evolutionary Algorithm Toolbox (by Hartmut Pohlheim)

Astrokettle Bin Packing in 2D and 3D

HIRON, stochastic global search for multivariate functions on a box

GIRAFFE Production Scheduling


UNICALC Interval Branch and Bound  (by Alexander Semenov) 
accepts inequality and/or equality constraints and decision variables (free demo version)

CLP(BNR), Constraint Logic Programming for Boolean, Natural and Real variables

ECLiPSe, ECRC Constraint Logic Parallel System constraint satisfaction (cheap for academic users)

IF/Prolog Prolog constraint satisfaction package

CHIP Prolog, C, and C++ programs for constraint satisfaction and scheduling

Constraint Logic Programming over Finite Domains in SICStus Prolog

Integer Programming Links from the Optimization Software Guide


Some of My Other Pages

Global (and Local) Optimization

Mathematics Links
Statistics Links
Computational Mathematics Links
Mathematical Software

Interval Methods
Regularization
Protein Folding

my home page (http://www.mat.univie.ac.at/~neum) 

Arnold Neumaier (Arnold.Neumaier@univie.ac.at)
elcome to Atlas 200I DK A2 This system is based on Ubuntu 22.04.5 LTS (GNU/Linux 5.10.0+ aarch64) This system is only applicable to individual developers and cannot be used for c By using this system, you have agreed to the Huawei Software License Agreement. Please refer to the agreement for details on https://www.hiascend.com/software/p Reference resources * Home page: https://www.hiascend.com/hardware/developer-kit-a2 * Documentation: https://www.hiascend.com/hardware/developer-kit-a2/resource * Online courses: https://www.hiascend.com/edu/courses * Online experiments: https://www.hiascend.com/zh/edu/experiment * Forum: https://www.hiascend.com/forum/ * Code: https://gitee.com/HUAWEI-ASCEND/ascend-devkit * Documentation: https://help.ubuntu.com * Management: https://landscape.canonical.com * Support: https://ubuntu.com/pro (base) root@davinci-mini:~# davinci-mini0 root@davinci-mini:/# cd racecar/ root@davinci-mini:/racecar# ls RedAndGreen Run_car.sh build_isolated docker-compose.yml nav.sh Run_car.log amcl_nav.launch.log devel_isolated gmapping.sh nav2.log root@davinci-mini:/racecar# bash nav_one.sh ... logging to /root/.ros/log/1ba06f92-cbc5-11f0-be3e-2c52afb5f6d1/roslaunch-davinci-mini-59.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://192.168.5.100:34989/ SUMMARY ======== CLEAR PARAMETERS * /ekf_se/ PARAMETERS * /amcl/base_frame_id: base_footprint * /amcl/first_map_only: True * /amcl/global_frame_id: map * /amcl/gui_publish_rate: 30.0 * /amcl/initial_cov_aa: 0.2 * /amcl/initial_cov_xx: 0.25 * /amcl/initial_cov_yy: 0.25 * /amcl/initial_pose_a: 0.0 * /amcl/initial_pose_x: 0.0 * /amcl/initial_pose_y: 0.0 * /amcl/kld_err: 0.01 * /amcl/kld_z: 0.99 * /amcl/laser_lambda_short: 0.1 * /amcl/laser_likelihood_max_dist: 2.0 * /amcl/laser_max_beams: 30 * /amcl/laser_model_type: likelihood_field * /amcl/laser_sigma_hit: 0.2 * /amcl/laser_z_hit: 0.5 * /amcl/laser_z_max: 0.05 * /amcl/laser_z_rand: 0.5 * /amcl/laser_z_short: 0.05 * /amcl/max_particles: 5000 * /amcl/min_particles: 100 * /amcl/odom_alpha1: 0.2 * /amcl/odom_alpha2: 0.2 * /amcl/odom_alpha3: 0.8 * /amcl/odom_alpha4: 0.2 * /amcl/odom_frame_id: odom * /amcl/odom_model_type: diff * /amcl/recovery_alpha_fast: 0.1 * /amcl/recovery_alpha_slow: 0.0 * /amcl/resample_interval: 2 * /amcl/tf_broadcast: True * /amcl/transform_tolerance: 0.1 * /amcl/update_min_a: 0.1 * /amcl/update_min_d: 0.1 * /amcl/use_map_topic: True * /car_controller/Angle_gain_d: -4.0 * /car_controller/Angle_gain_p: -4.0 * /car_controller/Lfw: 1.5 * /car_controller/Person1: 666 * /car_controller/Person2: 580 * /car_controller/Stopcar: 52 * /car_controller/Stoplight: 43 * /car_controller/Vcmd: 1.5 * /car_controller/baseAngle: 65.0 * /car_controller/baseSpeed: 1670 * /car_controller/first_lap: 100 * /car_controller/goalRadius: 0.7 * /car_controller/second_lap: 510 * /car_controller/vp_max_base: 75 * /car_controller/vp_min: 60 * /ekf_se/base_link_frame: /base_footprint * /ekf_se/debug: False * /ekf_se/debug_out_file: /path/to/debug/fi... * /ekf_se/frequency: 20 * /ekf_se/imu0: /imu_data * /ekf_se/imu0_config: [False, False, Fa... * /ekf_se/imu0_differential: False * /ekf_se/imu0_linear_acceleration_rejection_threshold: 2 * /ekf_se/imu0_nodelay: False * /ekf_se/imu0_pose_rejection_threshold: 2.0 * /ekf_se/imu0_queue_size: 8 * /ekf_se/imu0_relative: True * /ekf_se/imu0_remove_gravitational_acceleration: True * /ekf_se/imu0_twist_rejection_threshold: 2.0 * /ekf_se/initial_estimate_covariance: ['1e-9', 0, 0, 0,... * /ekf_se/map_frame: /map * /ekf_se/odom0: /rf2o_laser_odome... * /ekf_se/odom0_config: [False, False, Fa... * /ekf_se/odom0_differential: True * /ekf_se/odom0_nodelay: True * /ekf_se/odom0_pose_rejection_threshold: 8 * /ekf_se/odom0_queue_size: 5 * /ekf_se/odom0_twist_rejection_threshold: 4 * /ekf_se/odom1: /encoder_imu_odom * /ekf_se/odom1_config: [True, True, Fals... * /ekf_se/odom1_differential: True * /ekf_se/odom1_nodelay: True * /ekf_se/odom1_queue_size: 5 * /ekf_se/odom1_relative: False * /ekf_se/odom_frame: /odom * /ekf_se/print_diagnostics: False * /ekf_se/process_noise_covariance: [0.25, 0, 0, 0, 0... * /ekf_se/publish_acceleration: True * /ekf_se/publish_tf: True * /ekf_se/sensor_timeout: 0.025 * /ekf_se/transform_time_offset: 0.0001 * /ekf_se/transform_timeout: 0.025 * /ekf_se/two_d_mode: True * /ekf_se/world_frame: /odom * /move_base/GlobalPlanner/allow_unknown: True * /move_base/GlobalPlanner/cost_factor: 0.54 * /move_base/GlobalPlanner/default_tolerance: 0.2 * /move_base/GlobalPlanner/lethal_cost: 253 * /move_base/GlobalPlanner/neutral_cost: 21 * /move_base/GlobalPlanner/old_navfn_behavior: False * /move_base/GlobalPlanner/orientation_mode: 0 * /move_base/GlobalPlanner/orientation_window_size: 1 * /move_base/GlobalPlanner/publish_potential: True * /move_base/GlobalPlanner/use_dijkstra: False * /move_base/GlobalPlanner/use_grid_path: True * /move_base/GlobalPlanner/use_quadratic: True * /move_base/GlobalPlanner/visualize_potential: False * /move_base/NavfnROS/allow_unknown: False * /move_base/TebLocalPlannerROS/acc_lim_theta: 60 * /move_base/TebLocalPlannerROS/acc_lim_x: 0.188 * /move_base/TebLocalPlannerROS/allow_init_with_backwards_motion: False * /move_base/TebLocalPlannerROS/cmd_angle_instead_rotvel: False * /move_base/TebLocalPlannerROS/complete_global_plan: True * /move_base/TebLocalPlannerROS/costmap_converter_plugin: * /move_base/TebLocalPlannerROS/costmap_converter_rate: 8 * /move_base/TebLocalPlannerROS/costmap_converter_spin_thread: True * /move_base/TebLocalPlannerROS/costmap_obstacles_behind_robot_dist: 0.1 * /move_base/TebLocalPlannerROS/delete_detours_backwards: True * /move_base/TebLocalPlannerROS/dt_hysteresis: 0.05 * /move_base/TebLocalPlannerROS/dt_ref: 0.21 * /move_base/TebLocalPlannerROS/dynamic_obstacle_inflation_dist: 0.1 * /move_base/TebLocalPlannerROS/enable_homotopy_class_planning: True * /move_base/TebLocalPlannerROS/enable_multithreading: False * /move_base/TebLocalPlannerROS/exact_arc_length: True * /move_base/TebLocalPlannerROS/feasibility_check_no_poses: 10 * /move_base/TebLocalPlannerROS/footprint_model: polygon * /move_base/TebLocalPlannerROS/free_goal_vel: True * /move_base/TebLocalPlannerROS/global_plan_overwrite_orientation: True * /move_base/TebLocalPlannerROS/global_plan_prune_distance: 1 * /move_base/TebLocalPlannerROS/global_plan_viapoint_sep: -1 * /move_base/TebLocalPlannerROS/h_signature_prescaler: 0.5 * /move_base/TebLocalPlannerROS/h_signature_threshold: 0.1 * /move_base/TebLocalPlannerROS/include_costmap_obstacles: True * /move_base/TebLocalPlannerROS/include_dynamic_obstacles: True * /move_base/TebLocalPlannerROS/inflation_dist: 0.62 * /move_base/TebLocalPlannerROS/max_global_plan_lookahead_dist: 4.0 * /move_base/TebLocalPlannerROS/max_number_classes: 5 * /move_base/TebLocalPlannerROS/max_ratio_detours_duration_best_duration: 3.0 * /move_base/TebLocalPlannerROS/max_samples: 500 * /move_base/TebLocalPlannerROS/max_vel_theta: 85 * /move_base/TebLocalPlannerROS/max_vel_x: 3 * /move_base/TebLocalPlannerROS/max_vel_x_backwards: 1.2 * /move_base/TebLocalPlannerROS/max_vel_y: 0.288 * /move_base/TebLocalPlannerROS/min_turning_radius: 0.01 * /move_base/TebLocalPlannerROS/no_inner_iterations: -1 * /move_base/TebLocalPlannerROS/no_outer_iterations: -1 * /move_base/TebLocalPlannerROS/obstacle_cost_exponent: -1 * /move_base/TebLocalPlannerROS/obstacle_heading_threshold: 0.45 * /move_base/TebLocalPlannerROS/obstacle_poses_affected: 20 * /move_base/TebLocalPlannerROS/odom_topic: odom * /move_base/TebLocalPlannerROS/optimization_activate: True * /move_base/TebLocalPlannerROS/optimization_verbose: False * /move_base/TebLocalPlannerROS/oscillation_filter_duration: 10 * /move_base/TebLocalPlannerROS/oscillation_omega_eps: 10 * /move_base/TebLocalPlannerROS/oscillation_recovery: False * /move_base/TebLocalPlannerROS/oscillation_recovery_min_duration: 20 * /move_base/TebLocalPlannerROS/oscillation_v_eps: 10 * /move_base/TebLocalPlannerROS/penalty_epsilon: 0.01 * /move_base/TebLocalPlannerROS/publish_feedback: False * /move_base/TebLocalPlannerROS/roadmap_graph_area_length_scale: 1.0 * /move_base/TebLocalPlannerROS/roadmap_graph_area_width: 5 * /move_base/TebLocalPlannerROS/roadmap_graph_no_samples: 15 * /move_base/TebLocalPlannerROS/selection_alternative_time_cost: False * /move_base/TebLocalPlannerROS/selection_cost_hysteresis: 1.0 * /move_base/TebLocalPlannerROS/selection_obst_cost_scale: 1.0 * /move_base/TebLocalPlannerROS/selection_prefer_initial_plan: 0.95 * /move_base/TebLocalPlannerROS/shrink_horizon_backup: True * /move_base/TebLocalPlannerROS/shrink_horizon_min_duration: 3 * /move_base/TebLocalPlannerROS/switching_blocking_period: 0.0 * /move_base/TebLocalPlannerROS/teb_autosize: True * /move_base/TebLocalPlannerROS/type: polygon * /move_base/TebLocalPlannerROS/vertices: [[-0.175, -0.25],... * /move_base/TebLocalPlannerROS/viapoints_all_candidates: True * /move_base/TebLocalPlannerROS/visualize_hc_graph: True * /move_base/TebLocalPlannerROS/visualize_with_time_as_z_axis_scale: False * /move_base/TebLocalPlannerROS/weight_acc_lim_theta: 10 * /move_base/TebLocalPlannerROS/weight_acc_lim_x: 1 * /move_base/TebLocalPlannerROS/weight_adapt_factor: 20 * /move_base/TebLocalPlannerROS/weight_dynamic_obstacle: 10 * /move_base/TebLocalPlannerROS/weight_dynamic_obstacle_inflation: 5 * /move_base/TebLocalPlannerROS/weight_inflation: 50 * /move_base/TebLocalPlannerROS/weight_kinematics_forward_drive: 1000 * /move_base/TebLocalPlannerROS/weight_kinematics_nh: 1000 * /move_base/TebLocalPlannerROS/weight_kinematics_turning_radius: 1000 * /move_base/TebLocalPlannerROS/weight_max_vel_theta: 10 * /move_base/TebLocalPlannerROS/weight_max_vel_x: 1 * /move_base/TebLocalPlannerROS/weight_obstacle: 50 * /move_base/TebLocalPlannerROS/weight_optimaltime: 1000 * /move_base/TebLocalPlannerROS/weight_shortest_path: 1 * /move_base/TebLocalPlannerROS/weight_viapoint: 1 * /move_base/TebLocalPlannerROS/wheelbase: 0.335 * /move_base/TebLocalPlannerROS/xy_goal_tolerance: 0.01 * /move_base/TebLocalPlannerROS/yaw_goal_tolerance: 0.03 * /move_base/base_global_planner: navfn/NavfnROS * /move_base/base_local_planner: teb_local_planner... * /move_base/clearing_rotation_allowed: False * /move_base/controller_frequency: 10.0 * /move_base/controller_patience: 6.0 * /move_base/global_costmap/footprint: [[-0.175, -0.25],... * /move_base/global_costmap/footprint_padding: 0.01 * /move_base/global_costmap/global_frame: map * /move_base/global_costmap/height: 25.0 * /move_base/global_costmap/inflation/cost_scaling_factor: 2.0 * /move_base/global_costmap/inflation/inflation_radius: 0. 1 * /move_base/global_costmap/plugins: [{'name': 'static... * /move_base/global_costmap/publish_frequency: 1.0 * /move_base/global_costmap/resolution: 0.05 * /move_base/global_costmap/robot_base_frame: base_footprint * /move_base/global_costmap/rolling_window: True * /move_base/global_costmap/sensor/laser_scan_sensor/clearing: True * /move_base/global_costmap/sensor/laser_scan_sensor/data_type: LaserScan * /move_base/global_costmap/sensor/laser_scan_sensor/marking: True * /move_base/global_costmap/sensor/laser_scan_sensor/observation_persistence: 0.5 * /move_base/global_costmap/sensor/laser_scan_sensor/sensor_frame: laser_link * /move_base/global_costmap/sensor/laser_scan_sensor/topic: scan * /move_base/global_costmap/sensor/observation_sources: laser_scan_sensor * /move_base/global_costmap/static/map_topic: /map * /move_base/global_costmap/static/subscribe_to_updates: True * /move_base/global_costmap/track_unknown_space: False * /move_base/global_costmap/transform_tolerance: 0.5 * /move_base/global_costmap/update_frequency: 1.0 * /move_base/global_costmap/width: 25.0 * /move_base/local_costmap/footprint: [[-0.175, -0.25],... * /move_base/local_costmap/footprint_padding: 0.01 * /move_base/local_costmap/global_frame: map * /move_base/local_costmap/height: 3.0 * /move_base/local_costmap/inflation/cost_scaling_factor: 6.0 * /move_base/local_costmap/inflation/inflation_radius: 0.1 * /move_base/local_costmap/plugins: [{'name': 'sensor... * /move_base/local_costmap/publish_frequency: 1.0 * /move_base/local_costmap/resolution: 0.05 * /move_base/local_costmap/robot_base_frame: base_footprint * /move_base/local_costmap/rolling_window: True * /move_base/local_costmap/sensor/laser_scan_sensor/clearing: True * /move_base/local_costmap/sensor/laser_scan_sensor/data_type: LaserScan * /move_base/local_costmap/sensor/laser_scan_sensor/marking: True * /move_base/local_costmap/sensor/laser_scan_sensor/sensor_frame: laser_link * /move_base/local_costmap/sensor/laser_scan_sensor/topic: scan * /move_base/local_costmap/sensor/observation_sources: laser_scan_sensor * /move_base/local_costmap/track_unknown_space: False * /move_base/local_costmap/transform_tolerance: 0.5 * /move_base/local_costmap/update_frequency: 1.0 * /move_base/local_costmap/width: 3.0 * /move_base/oscillation_distance: 0.2 * /move_base/oscillation_timeout: 10.0 * /move_base/planner_frequency: 10.0 * /move_base/planner_patience: 5.0 * /move_base/shutdown_costmaps: False * /rf2o_laser_odometry/base_frame_id: base_footprint * /rf2o_laser_odometry/freq: 20.0 * /rf2o_laser_odometry/laser_scan_topic: scan * /rf2o_laser_odometry/odom_frame_id: odom * /rf2o_laser_odometry/odom_topic: odom_rf2o * /rf2o_laser_odometry/publish_tf: False * /rf2o_laser_odometry/verbose: True * /rosdistro: noetic * /rosversion: 1.15.13 NODES / amcl (amcl/amcl) car_controller (racecar/car_controller_new) ekf_se (robot_localization/ekf_localization_node) map_server (map_server/map_server) move_base (move_base/move_base) rf2o_laser_odometry (rf2o_laser_odometry/rf2o_laser_odometry_node) wheel_odom (encoder_driver/encoder_driver_node1) RLException: run_id on parameter server does not match declared run_id: 1a54deac-cbc5-11f0-9652-2c52afb5f6d1 vs 1ba06f92-cbc5-11f0-be3e-2c52afb5f6d1 The traceback for the exception was written to the log file ROS_MASTER_URI=http://192.168.5.100:11311 2025-11-27 19:13:12+0000 [-] Log opened. 2025-11-27 19:13:12+0000 [-] registered capabilities (classes): 2025-11-27 19:13:12+0000 [-] - <class 'rosbridge_library.capabilities.call_service.CallService'> 2025-11-27 19:13:12+0000 [-] - <class 'rosbridge_library.capabilities.advertise.Advertise'> 2025-11-27 19:13:12+0000 [-] - <class 'rosbridge_library.capabilities.publish.Publish'> 2025-11-27 19:13:12+0000 [-] - <class 'rosbridge_library.capabilities.subscribe.Subscribe'> 2025-11-27 19:13:12+0000 [-] - <class 'rosbridge_library.capabilities.defragmentation.Defragment'> 2025-11-27 19:13:12+0000 [-] - <class 'rosbridge_library.capabilities.advertise_service.AdvertiseService'> 2025-11-27 19:13:12+0000 [-] - <class 'rosbridge_library.capabilities.service_response.ServiceResponse'> 2025-11-27 19:13:12+0000 [-] - <class 'rosbridge_library.capabilities.unadvertise_service.UnadvertiseService'> 2025-11-27 19:13:13+0000 [-] WebSocketServerFactory starting on 9090 2025-11-27 19:13:13+0000 [-] Starting factory <autobahn.twisted.websocket.WebSocketServerFactory object at 0xe7ffca3420a0> 2025-11-27 19:13:13+0000 [-] [INFO] [1764270793.062939]: Rosbridge WebSocket server started at ws://0.0.0.0:9090 ^C终止 ROS 启动进程... lslidar_x10_driver_node: /usr/include/boost/thread/pthread/condition_variable_fwd.hpp:81: boost::condition_variable::~condition_variable(): Assertion `!posix::pthread_mutex_destroy(&internal_mutex)' failed. 2025-11-27 19:14:41+0000 [autobahn.twisted.websocket.WebSocketServerFactory] (TCP Port 9090 Closed) [DEBUG] [1764270791.133628]: init_node, name[/encoder_vel], pid[87] [DEBUG] [1764270791.140349]: binding to 0.0.0.0 0 [DEBUG] [1764270791.143836]: bound to 0.0.0.0 43043 [DEBUG] [1764270791.147385]: ... service URL is rosrpc://192.168.5.100:43043 [DEBUG] [1764270791.150428]: [/encoder_vel/get_loggers]: new Service instance [DEBUG] [1764270791.155703]: ... service URL is rosrpc://192.168.5.100:43043 [DEBUG] [1764270791.158360]: [/encoder_vel/set_logger_level]: new Service instance True 2025-11-27 19:14:41+0000 [-] Stopping factory <autobahn.twisted.websocket.WebSocketServerFactory object at 0xe7ffca3420a0> 2025-11-27 19:14:41+0000 [-] Main loop terminated. WARNING: ignoring defunct <master /> tag ... logging to /root/.ros/log/1a54deac-cbc5-11f0-9652-2c52afb5f6d1/roslaunch-davinci-mini-53.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://192.168.5.100:39739/ SUMMARY ======== PARAMETERS * /encoder_vel/baud_rate: 57600 * /encoder_vel/k: 0.88 * /encoder_vel/serial_port: /dev/encoder * /lslidar_x10_driver_node/angle_disable_max: 0.0 * /lslidar_x10_driver_node/angle_disable_min: 0.0 * /lslidar_x10_driver_node/child_frame_id: laser_link * /lslidar_x10_driver_node/interface_selection: serial * /lslidar_x10_driver_node/lidar_name: M10 * /lslidar_x10_driver_node/max_range: 100.0 * /lslidar_x10_driver_node/min_range: 0 * /lslidar_x10_driver_node/scan_topic: scan * /lslidar_x10_driver_node/serial_port: /dev/laser * /lslidar_x10_driver_node/use_gps_ts: False * /rosbridge_server/websocket_port: 9090 * /rosdistro: noetic * /rosversion: 1.15.13 NODES / base_footprint2base_link (tf/static_transform_publisher) base_link2imu (tf/static_transform_publisher) base_link2laser_link (tf/static_transform_publisher) encoder_vel (encoder_driver/Encoder_vel.py) imu_sonser_spec (serial_imu/serial_imu) lslidar_x10_driver_node (lslidar_x10_driver/lslidar_x10_driver_node) racecar_driver (racecar_driver/racecar_driver_node) rosbridge_server (rosbridge_server/rosbridge_websocket) auto-starting new master process[master]: started with pid [66] ROS_MASTER_URI=http://192.168.5.100:11311 setting /run_id to 1a54deac-cbc5-11f0-9652-2c52afb5f6d1 process[rosout-1]: started with pid [79] started core service [/rosout] process[base_footprint2base_link-2]: started with pid [82] process[base_link2laser_link-3]: started with pid [83] process[base_link2imu-4]: started with pid [84] process[lslidar_x10_driver_node-5]: started with pid [85] process[imu_sonser_spec-6]: started with pid [86] process[encoder_vel-7]: started with pid [87] process[racecar_driver-8]: started with pid [88] process[rosbridge_server-9]: started with pid [89] [rosbridge_server-9] killing on exit [racecar_driver-8] killing on exit [encoder_vel-7] killing on exit [imu_sonser_spec-6] killing on exit [lslidar_x10_driver_node-5] killing on exit [base_link2imu-4] killing on exit [base_link2laser_link-3] killing on exit [base_footprint2base_link-2] killing on exit [rosout-1] killing on exit [master] killing on exit shutting down processing monitor... ... shutting down processing monitor complete done Run_car.launch 进程已终止。 amcl_nav.launch 进程已终止。 root@davinci-mini:/racecar# ^C root@davinci-mini:/racecar# bash nav_one.sh 2025-11-27 19:14:55+0000 [-] Log opened. 2025-11-27 19:14:55+0000 [-] registered capabilities (classes): 2025-11-27 19:14:55+0000 [-] - <class 'rosbridge_library.capabilities.call_service.CallService'> 2025-11-27 19:14:55+0000 [-] - <class 'rosbridge_library.capabilities.advertise.Advertise'> 2025-11-27 19:14:55+0000 [-] - <class 'rosbridge_library.capabilities.publish.Publish'> 2025-11-27 19:14:55+0000 [-] - <class 'rosbridge_library.capabilities.subscribe.Subscribe'> 2025-11-27 19:14:55+0000 [-] - <class 'rosbridge_library.capabilities.defragmentation.Defragment'> 2025-11-27 19:14:55+0000 [-] - <class 'rosbridge_library.capabilities.advertise_service.AdvertiseService'> 2025-11-27 19:14:55+0000 [-] - <class 'rosbridge_library.capabilities.service_response.ServiceResponse'> 2025-11-27 19:14:55+0000 [-] - <class 'rosbridge_library.capabilities.unadvertise_service.UnadvertiseService'> 2025-11-27 19:14:55+0000 [-] WebSocketServerFactory starting on 9090 2025-11-27 19:14:55+0000 [-] Starting factory <autobahn.twisted.websocket.WebSocketServerFactory object at 0xe7ffef3acfd0> 2025-11-27 19:14:55+0000 [-] [INFO] [1764270895.708127]: Rosbridge WebSocket server started at ws://0.0.0.0:9090 ... logging to /root/.ros/log/593a31d0-cbc5-11f0-acbf-2c52afb5f6d1/roslaunch-davinci-mini-235.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://192.168.5.100:35929/ SUMMARY ======== CLEAR PARAMETERS * /ekf_se/ PARAMETERS * /amcl/base_frame_id: base_footprint * /amcl/first_map_only: True * /amcl/global_frame_id: map * /amcl/gui_publish_rate: 30.0 * /amcl/initial_cov_aa: 0.2 * /amcl/initial_cov_xx: 0.25 * /amcl/initial_cov_yy: 0.25 * /amcl/initial_pose_a: 0.0 * /amcl/initial_pose_x: 0.0 * /amcl/initial_pose_y: 0.0 * /amcl/kld_err: 0.01 * /amcl/kld_z: 0.99 * /amcl/laser_lambda_short: 0.1 * /amcl/laser_likelihood_max_dist: 2.0 * /amcl/laser_max_beams: 30 * /amcl/laser_model_type: likelihood_field * /amcl/laser_sigma_hit: 0.2 * /amcl/laser_z_hit: 0.5 * /amcl/laser_z_max: 0.05 * /amcl/laser_z_rand: 0.5 * /amcl/laser_z_short: 0.05 * /amcl/max_particles: 5000 * /amcl/min_particles: 100 * /amcl/odom_alpha1: 0.2 * /amcl/odom_alpha2: 0.2 * /amcl/odom_alpha3: 0.8 * /amcl/odom_alpha4: 0.2 * /amcl/odom_frame_id: odom * /amcl/odom_model_type: diff * /amcl/recovery_alpha_fast: 0.1 * /amcl/recovery_alpha_slow: 0.0 * /amcl/resample_interval: 2 * /amcl/tf_broadcast: True * /amcl/transform_tolerance: 0.1 * /amcl/update_min_a: 0.1 * /amcl/update_min_d: 0.1 * /amcl/use_map_topic: True * /car_controller/Angle_gain_d: -4.0 * /car_controller/Angle_gain_p: -4.0 * /car_controller/Lfw: 1.5 * /car_controller/Person1: 666 * /car_controller/Person2: 580 * /car_controller/Stopcar: 52 * /car_controller/Stoplight: 43 * /car_controller/Vcmd: 1.5 * /car_controller/baseAngle: 65.0 * /car_controller/baseSpeed: 1670 * /car_controller/first_lap: 100 * /car_controller/goalRadius: 0.7 * /car_controller/second_lap: 510 * /car_controller/vp_max_base: 75 * /car_controller/vp_min: 60 * /ekf_se/base_link_frame: /base_footprint * /ekf_se/debug: False * /ekf_se/debug_out_file: /path/to/debug/fi... * /ekf_se/frequency: 20 * /ekf_se/imu0: /imu_data * /ekf_se/imu0_config: [False, False, Fa... * /ekf_se/imu0_differential: False * /ekf_se/imu0_linear_acceleration_rejection_threshold: 2 * /ekf_se/imu0_nodelay: False * /ekf_se/imu0_pose_rejection_threshold: 2.0 * /ekf_se/imu0_queue_size: 8 * /ekf_se/imu0_relative: True * /ekf_se/imu0_remove_gravitational_acceleration: True * /ekf_se/imu0_twist_rejection_threshold: 2.0 * /ekf_se/initial_estimate_covariance: ['1e-9', 0, 0, 0,... * /ekf_se/map_frame: /map * /ekf_se/odom0: /rf2o_laser_odome... * /ekf_se/odom0_config: [False, False, Fa... * /ekf_se/odom0_differential: True * /ekf_se/odom0_nodelay: True * /ekf_se/odom0_pose_rejection_threshold: 8 * /ekf_se/odom0_queue_size: 5 * /ekf_se/odom0_twist_rejection_threshold: 4 * /ekf_se/odom1: /encoder_imu_odom * /ekf_se/odom1_config: [True, True, Fals... * /ekf_se/odom1_differential: True * /ekf_se/odom1_nodelay: True * /ekf_se/odom1_queue_size: 5 * /ekf_se/odom1_relative: False * /ekf_se/odom_frame: /odom * /ekf_se/print_diagnostics: False * /ekf_se/process_noise_covariance: [0.25, 0, 0, 0, 0... * /ekf_se/publish_acceleration: True * /ekf_se/publish_tf: True * /ekf_se/sensor_timeout: 0.025 * /ekf_se/transform_time_offset: 0.0001 * /ekf_se/transform_timeout: 0.025 * /ekf_se/two_d_mode: True * /ekf_se/world_frame: /odom * /move_base/GlobalPlanner/allow_unknown: True * /move_base/GlobalPlanner/cost_factor: 0.54 * /move_base/GlobalPlanner/default_tolerance: 0.2 * /move_base/GlobalPlanner/lethal_cost: 253 * /move_base/GlobalPlanner/neutral_cost: 21 * /move_base/GlobalPlanner/old_navfn_behavior: False * /move_base/GlobalPlanner/orientation_mode: 0 * /move_base/GlobalPlanner/orientation_window_size: 1 * /move_base/GlobalPlanner/publish_potential: True * /move_base/GlobalPlanner/use_dijkstra: False * /move_base/GlobalPlanner/use_grid_path: True * /move_base/GlobalPlanner/use_quadratic: True * /move_base/GlobalPlanner/visualize_potential: False * /move_base/NavfnROS/allow_unknown: False * /move_base/TebLocalPlannerROS/acc_lim_theta: 60 * /move_base/TebLocalPlannerROS/acc_lim_x: 0.188 * /move_base/TebLocalPlannerROS/allow_init_with_backwards_motion: False * /move_base/TebLocalPlannerROS/cmd_angle_instead_rotvel: False * /move_base/TebLocalPlannerROS/complete_global_plan: True * /move_base/TebLocalPlannerROS/costmap_converter_plugin: * /move_base/TebLocalPlannerROS/costmap_converter_rate: 8 * /move_base/TebLocalPlannerROS/costmap_converter_spin_thread: True * /move_base/TebLocalPlannerROS/costmap_obstacles_behind_robot_dist: 0.1 * /move_base/TebLocalPlannerROS/delete_detours_backwards: True * /move_base/TebLocalPlannerROS/dt_hysteresis: 0.05 * /move_base/TebLocalPlannerROS/dt_ref: 0.21 * /move_base/TebLocalPlannerROS/dynamic_obstacle_inflation_dist: 0.1 * /move_base/TebLocalPlannerROS/enable_homotopy_class_planning: True * /move_base/TebLocalPlannerROS/enable_multithreading: False * /move_base/TebLocalPlannerROS/exact_arc_length: True * /move_base/TebLocalPlannerROS/feasibility_check_no_poses: 10 * /move_base/TebLocalPlannerROS/footprint_model: polygon * /move_base/TebLocalPlannerROS/free_goal_vel: True * /move_base/TebLocalPlannerROS/global_plan_overwrite_orientation: True * /move_base/TebLocalPlannerROS/global_plan_prune_distance: 1 * /move_base/TebLocalPlannerROS/global_plan_viapoint_sep: -1 * /move_base/TebLocalPlannerROS/h_signature_prescaler: 0.5 * /move_base/TebLocalPlannerROS/h_signature_threshold: 0.1 * /move_base/TebLocalPlannerROS/include_costmap_obstacles: True * /move_base/TebLocalPlannerROS/include_dynamic_obstacles: True * /move_base/TebLocalPlannerROS/inflation_dist: 0.62 * /move_base/TebLocalPlannerROS/max_global_plan_lookahead_dist: 4.0 * /move_base/TebLocalPlannerROS/max_number_classes: 5 * /move_base/TebLocalPlannerROS/max_ratio_detours_duration_best_duration: 3.0 * /move_base/TebLocalPlannerROS/max_samples: 500 * /move_base/TebLocalPlannerROS/max_vel_theta: 85 * /move_base/TebLocalPlannerROS/max_vel_x: 3 * /move_base/TebLocalPlannerROS/max_vel_x_backwards: 1.2 * /move_base/TebLocalPlannerROS/max_vel_y: 0.288 * /move_base/TebLocalPlannerROS/min_turning_radius: 0.01 * /move_base/TebLocalPlannerROS/no_inner_iterations: -1 * /move_base/TebLocalPlannerROS/no_outer_iterations: -1 * /move_base/TebLocalPlannerROS/obstacle_cost_exponent: -1 * /move_base/TebLocalPlannerROS/obstacle_heading_threshold: 0.45 * /move_base/TebLocalPlannerROS/obstacle_poses_affected: 20 * /move_base/TebLocalPlannerROS/odom_topic: odom * /move_base/TebLocalPlannerROS/optimization_activate: True * /move_base/TebLocalPlannerROS/optimization_verbose: False * /move_base/TebLocalPlannerROS/oscillation_filter_duration: 10 * /move_base/TebLocalPlannerROS/oscillation_omega_eps: 10 * /move_base/TebLocalPlannerROS/oscillation_recovery: False * /move_base/TebLocalPlannerROS/oscillation_recovery_min_duration: 20 * /move_base/TebLocalPlannerROS/oscillation_v_eps: 10 * /move_base/TebLocalPlannerROS/penalty_epsilon: 0.01 * /move_base/TebLocalPlannerROS/publish_feedback: False * /move_base/TebLocalPlannerROS/roadmap_graph_area_length_scale: 1.0 * /move_base/TebLocalPlannerROS/roadmap_graph_area_width: 5 * /move_base/TebLocalPlannerROS/roadmap_graph_no_samples: 15 * /move_base/TebLocalPlannerROS/selection_alternative_time_cost: False * /move_base/TebLocalPlannerROS/selection_cost_hysteresis: 1.0 * /move_base/TebLocalPlannerROS/selection_obst_cost_scale: 1.0 * /move_base/TebLocalPlannerROS/selection_prefer_initial_plan: 0.95 * /move_base/TebLocalPlannerROS/shrink_horizon_backup: True * /move_base/TebLocalPlannerROS/shrink_horizon_min_duration: 3 * /move_base/TebLocalPlannerROS/switching_blocking_period: 0.0 * /move_base/TebLocalPlannerROS/teb_autosize: True * /move_base/TebLocalPlannerROS/type: polygon * /move_base/TebLocalPlannerROS/vertices: [[-0.175, -0.25],... * /move_base/TebLocalPlannerROS/viapoints_all_candidates: True * /move_base/TebLocalPlannerROS/visualize_hc_graph: True * /move_base/TebLocalPlannerROS/visualize_with_time_as_z_axis_scale: False * /move_base/TebLocalPlannerROS/weight_acc_lim_theta: 10 * /move_base/TebLocalPlannerROS/weight_acc_lim_x: 1 * /move_base/TebLocalPlannerROS/weight_adapt_factor: 20 * /move_base/TebLocalPlannerROS/weight_dynamic_obstacle: 10 * /move_base/TebLocalPlannerROS/weight_dynamic_obstacle_inflation: 5 * /move_base/TebLocalPlannerROS/weight_inflation: 50 * /move_base/TebLocalPlannerROS/weight_kinematics_forward_drive: 1000 * /move_base/TebLocalPlannerROS/weight_kinematics_nh: 1000 * /move_base/TebLocalPlannerROS/weight_kinematics_turning_radius: 1000 * /move_base/TebLocalPlannerROS/weight_max_vel_theta: 10 * /move_base/TebLocalPlannerROS/weight_max_vel_x: 1 * /move_base/TebLocalPlannerROS/weight_obstacle: 50 * /move_base/TebLocalPlannerROS/weight_optimaltime: 1000 * /move_base/TebLocalPlannerROS/weight_shortest_path: 1 * /move_base/TebLocalPlannerROS/weight_viapoint: 1 * /move_base/TebLocalPlannerROS/wheelbase: 0.335 * /move_base/TebLocalPlannerROS/xy_goal_tolerance: 0.01 * /move_base/TebLocalPlannerROS/yaw_goal_tolerance: 0.03 * /move_base/base_global_planner: navfn/NavfnROS * /move_base/base_local_planner: teb_local_planner... * /move_base/clearing_rotation_allowed: False * /move_base/controller_frequency: 10.0 * /move_base/controller_patience: 6.0 * /move_base/global_costmap/footprint: [[-0.175, -0.25],... * /move_base/global_costmap/footprint_padding: 0.01 * /move_base/global_costmap/global_frame: map * /move_base/global_costmap/height: 25.0 * /move_base/global_costmap/inflation/cost_scaling_factor: 2.0 * /move_base/global_costmap/inflation/inflation_radius: 0. 1 * /move_base/global_costmap/plugins: [{'name': 'static... * /move_base/global_costmap/publish_frequency: 1.0 * /move_base/global_costmap/resolution: 0.05 * /move_base/global_costmap/robot_base_frame: base_footprint * /move_base/global_costmap/rolling_window: True * /move_base/global_costmap/sensor/laser_scan_sensor/clearing: True * /move_base/global_costmap/sensor/laser_scan_sensor/data_type: LaserScan * /move_base/global_costmap/sensor/laser_scan_sensor/marking: True * /move_base/global_costmap/sensor/laser_scan_sensor/observation_persistence: 0.5 * /move_base/global_costmap/sensor/laser_scan_sensor/sensor_frame: laser_link * /move_base/global_costmap/sensor/laser_scan_sensor/topic: scan * /move_base/global_costmap/sensor/observation_sources: laser_scan_sensor * /move_base/global_costmap/static/map_topic: /map * /move_base/global_costmap/static/subscribe_to_updates: True * /move_base/global_costmap/track_unknown_space: False * /move_base/global_costmap/transform_tolerance: 0.5 * /move_base/global_costmap/update_frequency: 1.0 * /move_base/global_costmap/width: 25.0 * /move_base/local_costmap/footprint: [[-0.175, -0.25],... * /move_base/local_costmap/footprint_padding: 0.01 * /move_base/local_costmap/global_frame: map * /move_base/local_costmap/height: 3.0 * /move_base/local_costmap/inflation/cost_scaling_factor: 6.0 * /move_base/local_costmap/inflation/inflation_radius: 0.1 * /move_base/local_costmap/plugins: [{'name': 'sensor... * /move_base/local_costmap/publish_frequency: 1.0 * /move_base/local_costmap/resolution: 0.05 * /move_base/local_costmap/robot_base_frame: base_footprint * /move_base/local_costmap/rolling_window: True * /move_base/local_costmap/sensor/laser_scan_sensor/clearing: True * /move_base/local_costmap/sensor/laser_scan_sensor/data_type: LaserScan * /move_base/local_costmap/sensor/laser_scan_sensor/marking: True * /move_base/local_costmap/sensor/laser_scan_sensor/sensor_frame: laser_link * /move_base/local_costmap/sensor/laser_scan_sensor/topic: scan * /move_base/local_costmap/sensor/observation_sources: laser_scan_sensor * /move_base/local_costmap/track_unknown_space: False * /move_base/local_costmap/transform_tolerance: 0.5 * /move_base/local_costmap/update_frequency: 1.0 * /move_base/local_costmap/width: 3.0 * /move_base/oscillation_distance: 0.2 * /move_base/oscillation_timeout: 10.0 * /move_base/planner_frequency: 10.0 * /move_base/planner_patience: 5.0 * /move_base/shutdown_costmaps: False * /rf2o_laser_odometry/base_frame_id: base_footprint * /rf2o_laser_odometry/freq: 20.0 * /rf2o_laser_odometry/laser_scan_topic: scan * /rf2o_laser_odometry/odom_frame_id: odom * /rf2o_laser_odometry/odom_topic: odom_rf2o * /rf2o_laser_odometry/publish_tf: False * /rf2o_laser_odometry/verbose: True * /rosdistro: noetic * /rosversion: 1.15.13 NODES / amcl (amcl/amcl) car_controller (racecar/car_controller_new) ekf_se (robot_localization/ekf_localization_node) map_server (map_server/map_server) move_base (move_base/move_base) rf2o_laser_odometry (rf2o_laser_odometry/rf2o_laser_odometry_node) wheel_odom (encoder_driver/encoder_driver_node1) [ WARN] [1764270901.074929580]: Failed to meet update rate! Took 0.1020085420000000076 ^C终止 ROS 启动进程... lslidar_x10_driver_node: /usr/include/boost/thread/pthread/condition_variable_fwd.hpp:81: boost::condition_variable::~condition_variable(): Assertion `!posix::pthread_mutex_destroy(&internal_mutex)' failed. [ INFO] [1764270899.968804781]: ?????????????????????????????? [ INFO] [1764270901.013836659]: Subscribed to map topic. [ INFO] [1764270901.452807176]: Received a 608 X 384 map @ 0.050 m/pix [ INFO] [1764270901.485205220]: Initializing likelihood field model; this can take some time on large maps... [ INFO] [1764270901.599203612]: Done initializing likelihood field model. [DEBUG] [1764270895.085141]: init_node, name[/encoder_vel], pid[205] [DEBUG] [1764270895.091976]: binding to 0.0.0.0 0 [DEBUG] [1764270895.095563]: bound to 0.0.0.0 34779 [DEBUG] [1764270895.099010]: ... service URL is rosrpc://192.168.5.100:34779 [DEBUG] [1764270895.102058]: [/encoder_vel/get_loggers]: new Service instance [DEBUG] [1764270895.107122]: ... service URL is rosrpc://192.168.5.100:34779 [DEBUG] [1764270895.109904]: [/encoder_vel/set_logger_level]: new Service instance True 2025-11-27 19:16:49+0000 [autobahn.twisted.websocket.WebSocketServerFactory] (TCP Port 9090 Closed) 2025-11-27 19:16:49+0000 [-] Stopping factory <autobahn.twisted.websocket.WebSocketServerFactory object at 0xe7ffef3acfd0> 2025-11-27 19:16:49+0000 [-] Main loop terminated. ROS_MASTER_URI=http://192.168.5.100:11311 process[map_server-1]: started with pid [256] process[rf2o_laser_odometry-2]: started with pid [257] process[wheel_odom-3]: started with pid [258] process[ekf_se-4]: started with pid [259] process[amcl-5]: started with pid [266] process[move_base-6]: started with pid [268] process[car_controller-7]: started with pid [269] [car_controller-7] killing on exit [move_base-6] killing on exit [amcl-5] killing on exit [ekf_se-4] killing on exit [map_server-1] killing on exit [wheel_odom-3] killing on exit [rf2o_laser_odometry-2] killing on exit shutting down processing monitor... ... shutting down processing monitor complete done WARNING: ignoring defunct <master /> tag ... logging to /root/.ros/log/593a31d0-cbc5-11f0-acbf-2c52afb5f6d1/roslaunch-davinci-mini-159.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://192.168.5.100:35239/ SUMMARY ======== PARAMETERS * /encoder_vel/baud_rate: 57600 * /encoder_vel/k: 0.88 * /encoder_vel/serial_port: /dev/encoder * /lslidar_x10_driver_node/angle_disable_max: 0.0 * /lslidar_x10_driver_node/angle_disable_min: 0.0 * /lslidar_x10_driver_node/child_frame_id: laser_link * /lslidar_x10_driver_node/interface_selection: serial * /lslidar_x10_driver_node/lidar_name: M10 * /lslidar_x10_driver_node/max_range: 100.0 * /lslidar_x10_driver_node/min_range: 0 * /lslidar_x10_driver_node/scan_topic: scan * /lslidar_x10_driver_node/serial_port: /dev/laser * /lslidar_x10_driver_node/use_gps_ts: False * /rosbridge_server/websocket_port: 9090 * /rosdistro: noetic * /rosversion: 1.15.13 NODES / base_footprint2base_link (tf/static_transform_publisher) base_link2imu (tf/static_transform_publisher) base_link2laser_link (tf/static_transform_publisher) encoder_vel (encoder_driver/Encoder_vel.py) imu_sonser_spec (serial_imu/serial_imu) lslidar_x10_driver_node (lslidar_x10_driver/lslidar_x10_driver_node) racecar_driver (racecar_driver/racecar_driver_node) rosbridge_server (rosbridge_server/rosbridge_websocket) auto-starting new master process[master]: started with pid [169] ROS_MASTER_URI=http://192.168.5.100:11311 setting /run_id to 593a31d0-cbc5-11f0-acbf-2c52afb5f6d1 process[rosout-1]: started with pid [179] started core service [/rosout] process[base_footprint2base_link-2]: started with pid [186] process[base_link2laser_link-3]: started with pid [187] process[base_link2imu-4]: started with pid [188] process[lslidar_x10_driver_node-5]: started with pid [193] process[imu_sonser_spec-6]: started with pid [199] process[encoder_vel-7]: started with pid [205] process[racecar_driver-8]: started with pid [211] process[rosbridge_server-9]: started with pid [217] [rosbridge_server-9] killing on exit [racecar_driver-8] killing on exit [encoder_vel-7] killing on exit [imu_sonser_spec-6] killing on exit [lslidar_x10_driver_node-5] killing on exit [base_footprint2base_link-2] killing on exit [base_link2imu-4] killing on exit [base_link2laser_link-3] killing on exit [rosout-1] killing on exit [master] killing on exit shutting down processing monitor... ... shutting down processing monitor complete done Run_car.launch 进程已终止。 amcl_nav.launch 进程已终止。 root@davinci-mini:/racecar# bash nav_one.sh 2025-11-27 19:16:56+0000 [-] Log opened. 2025-11-27 19:16:56+0000 [-] registered capabilities (classes): 2025-11-27 19:16:56+0000 [-] - <class 'rosbridge_library.capabilities.call_service.CallService'> 2025-11-27 19:16:56+0000 [-] - <class 'rosbridge_library.capabilities.advertise.Advertise'> 2025-11-27 19:16:56+0000 [-] - <class 'rosbridge_library.capabilities.publish.Publish'> 2025-11-27 19:16:56+0000 [-] - <class 'rosbridge_library.capabilities.subscribe.Subscribe'> 2025-11-27 19:16:56+0000 [-] - <class 'rosbridge_library.capabilities.defragmentation.Defragment'> 2025-11-27 19:16:56+0000 [-] - <class 'rosbridge_library.capabilities.advertise_service.AdvertiseService'> 2025-11-27 19:16:56+0000 [-] - <class 'rosbridge_library.capabilities.service_response.ServiceResponse'> 2025-11-27 19:16:56+0000 [-] - <class 'rosbridge_library.capabilities.unadvertise_service.UnadvertiseService'> 2025-11-27 19:16:57+0000 [-] WebSocketServerFactory starting on 9090 2025-11-27 19:16:57+0000 [-] Starting factory <autobahn.twisted.websocket.WebSocketServerFactory object at 0xe7ffc75d7c70> 2025-11-27 19:16:57+0000 [-] [INFO] [1764271017.157078]: Rosbridge WebSocket server started at ws://0.0.0.0:9090 ... logging to /root/.ros/log/a199425e-cbc5-11f0-86b4-2c52afb5f6d1/roslaunch-davinci-mini-476.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://192.168.5.100:43287/ SUMMARY ======== CLEAR PARAMETERS * /ekf_se/ PARAMETERS * /amcl/base_frame_id: base_footprint * /amcl/first_map_only: True * /amcl/global_frame_id: map * /amcl/gui_publish_rate: 30.0 * /amcl/initial_cov_aa: 0.2 * /amcl/initial_cov_xx: 0.25 * /amcl/initial_cov_yy: 0.25 * /amcl/initial_pose_a: 0.0 * /amcl/initial_pose_x: 0.0 * /amcl/initial_pose_y: 0.0 * /amcl/kld_err: 0.01 * /amcl/kld_z: 0.99 * /amcl/laser_lambda_short: 0.1 * /amcl/laser_likelihood_max_dist: 2.0 * /amcl/laser_max_beams: 30 * /amcl/laser_model_type: likelihood_field * /amcl/laser_sigma_hit: 0.2 * /amcl/laser_z_hit: 0.5 * /amcl/laser_z_max: 0.05 * /amcl/laser_z_rand: 0.5 * /amcl/laser_z_short: 0.05 * /amcl/max_particles: 5000 * /amcl/min_particles: 100 * /amcl/odom_alpha1: 0.2 * /amcl/odom_alpha2: 0.2 * /amcl/odom_alpha3: 0.8 * /amcl/odom_alpha4: 0.2 * /amcl/odom_frame_id: odom * /amcl/odom_model_type: diff * /amcl/recovery_alpha_fast: 0.1 * /amcl/recovery_alpha_slow: 0.0 * /amcl/resample_interval: 2 * /amcl/tf_broadcast: True * /amcl/transform_tolerance: 0.1 * /amcl/update_min_a: 0.1 * /amcl/update_min_d: 0.1 * /amcl/use_map_topic: True * /car_controller/Angle_gain_d: -4.0 * /car_controller/Angle_gain_p: -4.0 * /car_controller/Lfw: 1.5 * /car_controller/Person1: 666 * /car_controller/Person2: 580 * /car_controller/Stopcar: 52 * /car_controller/Stoplight: 43 * /car_controller/Vcmd: 1.5 * /car_controller/baseAngle: 65.0 * /car_controller/baseSpeed: 1670 * /car_controller/first_lap: 100 * /car_controller/goalRadius: 0.7 * /car_controller/second_lap: 510 * /car_controller/vp_max_base: 75 * /car_controller/vp_min: 60 * /ekf_se/base_link_frame: /base_footprint * /ekf_se/debug: False * /ekf_se/debug_out_file: /path/to/debug/fi... * /ekf_se/frequency: 20 * /ekf_se/imu0: /imu_data * /ekf_se/imu0_config: [False, False, Fa... * /ekf_se/imu0_differential: False * /ekf_se/imu0_linear_acceleration_rejection_threshold: 2 * /ekf_se/imu0_nodelay: False * /ekf_se/imu0_pose_rejection_threshold: 2.0 * /ekf_se/imu0_queue_size: 8 * /ekf_se/imu0_relative: True * /ekf_se/imu0_remove_gravitational_acceleration: True * /ekf_se/imu0_twist_rejection_threshold: 2.0 * /ekf_se/initial_estimate_covariance: ['1e-9', 0, 0, 0,... * /ekf_se/map_frame: /map * /ekf_se/odom0: /rf2o_laser_odome... * /ekf_se/odom0_config: [False, False, Fa... * /ekf_se/odom0_differential: True * /ekf_se/odom0_nodelay: True * /ekf_se/odom0_pose_rejection_threshold: 8 * /ekf_se/odom0_queue_size: 5 * /ekf_se/odom0_twist_rejection_threshold: 4 * /ekf_se/odom1: /encoder_imu_odom * /ekf_se/odom1_config: [True, True, Fals... * /ekf_se/odom1_differential: True * /ekf_se/odom1_nodelay: True * /ekf_se/odom1_queue_size: 5 * /ekf_se/odom1_relative: False * /ekf_se/odom_frame: /odom * /ekf_se/print_diagnostics: False * /ekf_se/process_noise_covariance: [0.25, 0, 0, 0, 0... * /ekf_se/publish_acceleration: True * /ekf_se/publish_tf: True * /ekf_se/sensor_timeout: 0.025 * /ekf_se/transform_time_offset: 0.0001 * /ekf_se/transform_timeout: 0.025 * /ekf_se/two_d_mode: True * /ekf_se/world_frame: /odom * /move_base/GlobalPlanner/allow_unknown: True * /move_base/GlobalPlanner/cost_factor: 0.54 * /move_base/GlobalPlanner/default_tolerance: 0.2 * /move_base/GlobalPlanner/lethal_cost: 253 * /move_base/GlobalPlanner/neutral_cost: 21 * /move_base/GlobalPlanner/old_navfn_behavior: False * /move_base/GlobalPlanner/orientation_mode: 0 * /move_base/GlobalPlanner/orientation_window_size: 1 * /move_base/GlobalPlanner/publish_potential: True * /move_base/GlobalPlanner/use_dijkstra: False * /move_base/GlobalPlanner/use_grid_path: True * /move_base/GlobalPlanner/use_quadratic: True * /move_base/GlobalPlanner/visualize_potential: False * /move_base/NavfnROS/allow_unknown: False * /move_base/TebLocalPlannerROS/acc_lim_theta: 60 * /move_base/TebLocalPlannerROS/acc_lim_x: 0.188 * /move_base/TebLocalPlannerROS/allow_init_with_backwards_motion: False * /move_base/TebLocalPlannerROS/cmd_angle_instead_rotvel: False * /move_base/TebLocalPlannerROS/complete_global_plan: True * /move_base/TebLocalPlannerROS/costmap_converter_plugin: * /move_base/TebLocalPlannerROS/costmap_converter_rate: 8 * /move_base/TebLocalPlannerROS/costmap_converter_spin_thread: True * /move_base/TebLocalPlannerROS/costmap_obstacles_behind_robot_dist: 0.1 * /move_base/TebLocalPlannerROS/delete_detours_backwards: True * /move_base/TebLocalPlannerROS/dt_hysteresis: 0.05 * /move_base/TebLocalPlannerROS/dt_ref: 0.21 * /move_base/TebLocalPlannerROS/dynamic_obstacle_inflation_dist: 0.1 * /move_base/TebLocalPlannerROS/enable_homotopy_class_planning: True * /move_base/TebLocalPlannerROS/enable_multithreading: False * /move_base/TebLocalPlannerROS/exact_arc_length: True * /move_base/TebLocalPlannerROS/feasibility_check_no_poses: 10 * /move_base/TebLocalPlannerROS/footprint_model: polygon * /move_base/TebLocalPlannerROS/free_goal_vel: True * /move_base/TebLocalPlannerROS/global_plan_overwrite_orientation: True * /move_base/TebLocalPlannerROS/global_plan_prune_distance: 1 * /move_base/TebLocalPlannerROS/global_plan_viapoint_sep: -1 * /move_base/TebLocalPlannerROS/h_signature_prescaler: 0.5 * /move_base/TebLocalPlannerROS/h_signature_threshold: 0.1 * /move_base/TebLocalPlannerROS/include_costmap_obstacles: True * /move_base/TebLocalPlannerROS/include_dynamic_obstacles: True * /move_base/TebLocalPlannerROS/inflation_dist: 0.62 * /move_base/TebLocalPlannerROS/max_global_plan_lookahead_dist: 4.0 * /move_base/TebLocalPlannerROS/max_number_classes: 5 * /move_base/TebLocalPlannerROS/max_ratio_detours_duration_best_duration: 3.0 * /move_base/TebLocalPlannerROS/max_samples: 500 * /move_base/TebLocalPlannerROS/max_vel_theta: 85 * /move_base/TebLocalPlannerROS/max_vel_x: 3 * /move_base/TebLocalPlannerROS/max_vel_x_backwards: 1.2 * /move_base/TebLocalPlannerROS/max_vel_y: 0.288 * /move_base/TebLocalPlannerROS/min_turning_radius: 0.01 * /move_base/TebLocalPlannerROS/no_inner_iterations: -1 * /move_base/TebLocalPlannerROS/no_outer_iterations: -1 * /move_base/TebLocalPlannerROS/obstacle_cost_exponent: -1 * /move_base/TebLocalPlannerROS/obstacle_heading_threshold: 0.45 * /move_base/TebLocalPlannerROS/obstacle_poses_affected: 20 * /move_base/TebLocalPlannerROS/odom_topic: odom * /move_base/TebLocalPlannerROS/optimization_activate: True * /move_base/TebLocalPlannerROS/optimization_verbose: False * /move_base/TebLocalPlannerROS/oscillation_filter_duration: 10 * /move_base/TebLocalPlannerROS/oscillation_omega_eps: 10 * /move_base/TebLocalPlannerROS/oscillation_recovery: False * /move_base/TebLocalPlannerROS/oscillation_recovery_min_duration: 20 * /move_base/TebLocalPlannerROS/oscillation_v_eps: 10 * /move_base/TebLocalPlannerROS/penalty_epsilon: 0.01 * /move_base/TebLocalPlannerROS/publish_feedback: False * /move_base/TebLocalPlannerROS/roadmap_graph_area_length_scale: 1.0 * /move_base/TebLocalPlannerROS/roadmap_graph_area_width: 5 * /move_base/TebLocalPlannerROS/roadmap_graph_no_samples: 15 * /move_base/TebLocalPlannerROS/selection_alternative_time_cost: False * /move_base/TebLocalPlannerROS/selection_cost_hysteresis: 1.0 * /move_base/TebLocalPlannerROS/selection_obst_cost_scale: 1.0 * /move_base/TebLocalPlannerROS/selection_prefer_initial_plan: 0.95 * /move_base/TebLocalPlannerROS/shrink_horizon_backup: True * /move_base/TebLocalPlannerROS/shrink_horizon_min_duration: 3 * /move_base/TebLocalPlannerROS/switching_blocking_period: 0.0 * /move_base/TebLocalPlannerROS/teb_autosize: True * /move_base/TebLocalPlannerROS/type: polygon * /move_base/TebLocalPlannerROS/vertices: [[-0.175, -0.25],... * /move_base/TebLocalPlannerROS/viapoints_all_candidates: True * /move_base/TebLocalPlannerROS/visualize_hc_graph: True * /move_base/TebLocalPlannerROS/visualize_with_time_as_z_axis_scale: False * /move_base/TebLocalPlannerROS/weight_acc_lim_theta: 10 * /move_base/TebLocalPlannerROS/weight_acc_lim_x: 1 * /move_base/TebLocalPlannerROS/weight_adapt_factor: 20 * /move_base/TebLocalPlannerROS/weight_dynamic_obstacle: 10 * /move_base/TebLocalPlannerROS/weight_dynamic_obstacle_inflation: 5 * /move_base/TebLocalPlannerROS/weight_inflation: 50 * /move_base/TebLocalPlannerROS/weight_kinematics_forward_drive: 1000 * /move_base/TebLocalPlannerROS/weight_kinematics_nh: 1000 * /move_base/TebLocalPlannerROS/weight_kinematics_turning_radius: 1000 * /move_base/TebLocalPlannerROS/weight_max_vel_theta: 10 * /move_base/TebLocalPlannerROS/weight_max_vel_x: 1 * /move_base/TebLocalPlannerROS/weight_obstacle: 50 * /move_base/TebLocalPlannerROS/weight_optimaltime: 1000 * /move_base/TebLocalPlannerROS/weight_shortest_path: 1 * /move_base/TebLocalPlannerROS/weight_viapoint: 1 * /move_base/TebLocalPlannerROS/wheelbase: 0.335 * /move_base/TebLocalPlannerROS/xy_goal_tolerance: 0.01 * /move_base/TebLocalPlannerROS/yaw_goal_tolerance: 0.03 * /move_base/base_global_planner: navfn/NavfnROS * /move_base/base_local_planner: teb_local_planner... * /move_base/clearing_rotation_allowed: False * /move_base/controller_frequency: 10.0 * /move_base/controller_patience: 6.0 * /move_base/global_costmap/footprint: [[-0.175, -0.25],... * /move_base/global_costmap/footprint_padding: 0.01 * /move_base/global_costmap/global_frame: map * /move_base/global_costmap/height: 25.0 * /move_base/global_costmap/inflation/cost_scaling_factor: 2.0 * /move_base/global_costmap/inflation/inflation_radius: 0. 1 * /move_base/global_costmap/plugins: [{'name': 'static... * /move_base/global_costmap/publish_frequency: 1.0 * /move_base/global_costmap/resolution: 0.05 * /move_base/global_costmap/robot_base_frame: base_footprint * /move_base/global_costmap/rolling_window: True * /move_base/global_costmap/sensor/laser_scan_sensor/clearing: True * /move_base/global_costmap/sensor/laser_scan_sensor/data_type: LaserScan * /move_base/global_costmap/sensor/laser_scan_sensor/marking: True * /move_base/global_costmap/sensor/laser_scan_sensor/observation_persistence: 0.5 * /move_base/global_costmap/sensor/laser_scan_sensor/sensor_frame: laser_link * /move_base/global_costmap/sensor/laser_scan_sensor/topic: scan * /move_base/global_costmap/sensor/observation_sources: laser_scan_sensor * /move_base/global_costmap/static/map_topic: /map * /move_base/global_costmap/static/subscribe_to_updates: True * /move_base/global_costmap/track_unknown_space: False * /move_base/global_costmap/transform_tolerance: 0.5 * /move_base/global_costmap/update_frequency: 1.0 * /move_base/global_costmap/width: 25.0 * /move_base/local_costmap/footprint: [[-0.175, -0.25],... * /move_base/local_costmap/footprint_padding: 0.01 * /move_base/local_costmap/global_frame: map * /move_base/local_costmap/height: 3.0 * /move_base/local_costmap/inflation/cost_scaling_factor: 6.0 * /move_base/local_costmap/inflation/inflation_radius: 0.1 * /move_base/local_costmap/plugins: [{'name': 'sensor... * /move_base/local_costmap/publish_frequency: 1.0 * /move_base/local_costmap/resolution: 0.05 * /move_base/local_costmap/robot_base_frame: base_footprint * /move_base/local_costmap/rolling_window: True * /move_base/local_costmap/sensor/laser_scan_sensor/clearing: True * /move_base/local_costmap/sensor/laser_scan_sensor/data_type: LaserScan * /move_base/local_costmap/sensor/laser_scan_sensor/marking: True * /move_base/local_costmap/sensor/laser_scan_sensor/sensor_frame: laser_link * /move_base/local_costmap/sensor/laser_scan_sensor/topic: scan * /move_base/local_costmap/sensor/observation_sources: laser_scan_sensor * /move_base/local_costmap/track_unknown_space: False * /move_base/local_costmap/transform_tolerance: 0.5 * /move_base/local_costmap/update_frequency: 1.0 * /move_base/local_costmap/width: 3.0 * /move_base/oscillation_distance: 0.2 * /move_base/oscillation_timeout: 10.0 * /move_base/planner_frequency: 10.0 * /move_base/planner_patience: 5.0 * /move_base/shutdown_costmaps: False * /rf2o_laser_odometry/base_frame_id: base_footprint * /rf2o_laser_odometry/freq: 20.0 * /rf2o_laser_odometry/laser_scan_topic: scan * /rf2o_laser_odometry/odom_frame_id: odom * /rf2o_laser_odometry/odom_topic: odom_rf2o * /rf2o_laser_odometry/publish_tf: False * /rf2o_laser_odometry/verbose: True * /rosdistro: noetic * /rosversion: 1.15.13 NODES / amcl (amcl/amcl) car_controller (racecar/car_controller_new) ekf_se (robot_localization/ekf_localization_node) map_server (map_server/map_server) move_base (move_base/move_base) rf2o_laser_odometry (rf2o_laser_odometry/rf2o_laser_odometry_node) wheel_odom (encoder_driver/encoder_driver_node1) ^C终止 ROS 启动进程... [ INFO] [1764271020.971795831]: ?????????????????????????????? [ INFO] [1764271020.886512045]: Subscribed to map topic. [ INFO] [1764271021.127392896]: Received a 608 X 384 map @ 0.050 m/pix [ INFO] [1764271021.158670011]: Initializing likelihood field model; this can take some time on large maps... [ INFO] [1764271021.265183670]: Done initializing likelihood field model. lslidar_x10_driver_node: /usr/include/boost/thread/pthread/condition_variable_fwd.hpp:81: boost::condition_variable::~condition_variable(): Assertion `!posix::pthread_mutex_destroy(&internal_mutex)' failed. 2025-11-27 19:18:26+0000 [autobahn.twisted.websocket.WebSocketServerFactory] (TCP Port 9090 Closed) 2025-11-27 19:18:26+0000 [-] Stopping factory <autobahn.twisted.websocket.WebSocketServerFactory object at 0xe7ffc75d7c70> 2025-11-27 19:18:26+0000 [-] Main loop terminated. [DEBUG] [1764271016.495434]: init_node, name[/encoder_vel], pid[443] [DEBUG] [1764271016.503376]: binding to 0.0.0.0 0 [DEBUG] [1764271016.507268]: bound to 0.0.0.0 38955 [DEBUG] [1764271016.511287]: ... service URL is rosrpc://192.168.5.100:38955 [DEBUG] [1764271016.514807]: [/encoder_vel/get_loggers]: new Service instance [DEBUG] [1764271016.520463]: ... service URL is rosrpc://192.168.5.100:38955 [DEBUG] [1764271016.523488]: [/encoder_vel/set_logger_level]: new Service instance True ROS_MASTER_URI=http://192.168.5.100:11311 process[map_server-1]: started with pid [496] process[rf2o_laser_odometry-2]: started with pid [497] process[wheel_odom-3]: started with pid [498] process[ekf_se-4]: started with pid [499] process[amcl-5]: started with pid [513] process[move_base-6]: started with pid [522] process[car_controller-7]: started with pid [526] [car_controller-7] killing on exit [move_base-6] killing on exit [amcl-5] killing on exit [ekf_se-4] killing on exit [wheel_odom-3] killing on exit [rf2o_laser_odometry-2] killing on exit [map_server-1] killing on exit shutting down processing monitor... ... shutting down processing monitor complete done WARNING: ignoring defunct <master /> tag ... logging to /root/.ros/log/a199425e-cbc5-11f0-86b4-2c52afb5f6d1/roslaunch-davinci-mini-400.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://192.168.5.100:37043/ SUMMARY ======== PARAMETERS * /encoder_vel/baud_rate: 57600 * /encoder_vel/k: 0.88 * /encoder_vel/serial_port: /dev/encoder * /lslidar_x10_driver_node/angle_disable_max: 0.0 * /lslidar_x10_driver_node/angle_disable_min: 0.0 * /lslidar_x10_driver_node/child_frame_id: laser_link * /lslidar_x10_driver_node/interface_selection: serial * /lslidar_x10_driver_node/lidar_name: M10 * /lslidar_x10_driver_node/max_range: 100.0 * /lslidar_x10_driver_node/min_range: 0 * /lslidar_x10_driver_node/scan_topic: scan * /lslidar_x10_driver_node/serial_port: /dev/laser * /lslidar_x10_driver_node/use_gps_ts: False * /rosbridge_server/websocket_port: 9090 * /rosdistro: noetic * /rosversion: 1.15.13 NODES / base_footprint2base_link (tf/static_transform_publisher) base_link2imu (tf/static_transform_publisher) base_link2laser_link (tf/static_transform_publisher) encoder_vel (encoder_driver/Encoder_vel.py) imu_sonser_spec (serial_imu/serial_imu) lslidar_x10_driver_node (lslidar_x10_driver/lslidar_x10_driver_node) racecar_driver (racecar_driver/racecar_driver_node) rosbridge_server (rosbridge_server/rosbridge_websocket) auto-starting new master process[master]: started with pid [410] ROS_MASTER_URI=http://192.168.5.100:11311 setting /run_id to a199425e-cbc5-11f0-86b4-2c52afb5f6d1 process[rosout-1]: started with pid [420] started core service [/rosout] process[base_footprint2base_link-2]: started with pid [427] process[base_link2laser_link-3]: started with pid [428] process[base_link2imu-4]: started with pid [429] process[lslidar_x10_driver_node-5]: started with pid [434] process[imu_sonser_spec-6]: started with pid [440] process[encoder_vel-7]: started with pid [443] process[racecar_driver-8]: started with pid [449] process[rosbridge_server-9]: started with pid [459] [rosbridge_server-9] killing on exit [racecar_driver-8] killing on exit [encoder_vel-7] killing on exit [imu_sonser_spec-6] killing on exit [lslidar_x10_driver_node-5] killing on exit [base_link2imu-4] killing on exit [base_link2laser_link-3] killing on exit [base_footprint2base_link-2] killing on exit [rosout-1] killing on exit [master] killing on exit shutting down processing monitor... ... shutting down processing monitor complete done Run_car.launch 进程已终止。 amcl_nav.launch 进程已终止。 分析一下有啥问题吗
最新发布
11-28
你提供的日志是基于 **ROS (Robot Operating System)** 的一个机器人导航系统在 **华为 Atlas 200I DK A2** 开发板上运行时的完整启动和终止过程。从你的操作来看,你多次执行了 `bash nav_one.sh` 脚本(可能是用于启动自动导航任务),但每次都被中断或异常退出。 下面我将详细分析整个流程中的问题、潜在原因以及优化建议。 --- ### ✅ 正常行为部分 1. **环境初始化正常** - 系统为 Ubuntu 22.04 + ROS Noetic(尽管 Noetic 官方主要支持 x86/x64,但在 ARM 架构如 aarch64 上通过源码编译也可运行)。 - 使用的是 `davinci-mini` 设备,搭载激光雷达(lslidar_x10)、编码器、IMU 等传感器。 - 启动了必要的 TF 变换节点(`base_footprint2base_link`, `base_link2laser_link` 等),说明坐标系设置基本正确。 2. **地图加载成功** ```log [ INFO] [1764270901.452807176]: Received a 608 X 384 map @ 0.050 m/pix ``` 表明 `map_server` 成功加载了一张分辨率为 608×384、粒度为 5cm 的静态地图。 3. **AMCL 和 move_base 初始化完成** - AMCL(自适应蒙特卡洛定位)已订阅 `/map` 主题,并初始化了 likelihood field 模型: ```log [ INFO] [1764270901.599203612]: Done initializing likelihood field model. ``` - move_base 已加载全局规划器(GlobalPlanner)和局部规划器(TebLocalPlannerROS),参数配置合理,适合差速驱动小车。 4. **EKF 融合定位启用** - `ekf_se` 节点融合了以下信息: - IMU 数据 (`/imu_data`) - 激光里程计 (`/rf2o_laser_odometry`) - 编码器里程计 (`/encoder_imu_odom`) - 这是一个典型的多传感器融合方案,提升定位精度。 --- ## ❌ 存在的问题与错误分析 ### 🔴 1. **频繁 Ctrl+C 中断导致进程非正常退出** 你在终端中反复按了 `^C`(Ctrl+C),导致: ```log ^C终止 ROS 启动进程... [car_controller-7] killing on exit [move_base-6] killing on exit ... shutting down processing monitor... ... shutting down processing monitor complete done ``` > **问题:这不是程序崩溃,而是人为强制终止。** #### ⚠️ 影响: - 所有 ROS 节点被 SIGINT 信号杀死。 - 若没有优雅关闭机制,可能导致资源未释放(例如串口锁死、共享内存残留等)。 - 多次快速重启可能造成 `run_id` 不一致问题(见下一点)。 --- ### 🔴 2. **Run ID 冲突警告(严重性中等)** 首次启动时报错: ```log RLException: run_id on parameter server does not match declared run_id: 1a54deac-cbc5-11f0-9652-2c52afb5f6d1 vs 1ba06f92-cbc5-11f0-be3e-2c52afb5f6d1 ``` 这是由于 `.ros` 目录下保留了旧的 `run_id` 参数,而新的 roslaunch 尝试使用不同的 UUID 引起的冲突。 #### ✅ 解决方法: 清理旧状态: ```bash rm -rf ~/.ros/log/* rosparam delete /run_id ``` 或者直接重启 `roscore` 或整个设备以清空状态。 --- ### 🔴 3. **Boost 条件变量析构断言失败(关键 Bug)** ```log lslidar_x10_driver_node: /usr/include/boost/thread/pthread/condition_variable_fwd.hpp:81: boost::condition_variable::~condition_variable(): Assertion `!posix::pthread_mutex_destroy(&internal_mutex)' failed. ``` 这是一个典型的 **线程资源竞争/析构顺序错误** 导致的 C++ 崩溃。 #### 📌 原因分析: - `lslidar_x10_driver_node` 是激光雷达驱动节点,在收到 SIGINT 后尝试退出。 - 但它内部使用的 Boost 线程库中,某个 `condition_variable` 在互斥锁仍被占用的情况下被析构。 - 很可能是: - 驱动线程未正确 join; - 或者主线程过早退出,子线程仍在访问共享资源; - 或驱动代码存在 bug(尤其是在 ARM 平台交叉编译时兼容性问题)。 #### ✅ 解决建议: 1. **升级或修复 lslidar 驱动** - 查看是否使用最新版驱动:[GitHub - LiSLIDAR/Livox-SDK](https://github.com/Livox-SDK) - 或改用更稳定的替代品,比如 `rplidar`, `ydlidar` 等开源驱动。 2. **添加延迟退出机制** 在 `nav_one.sh` 中,在 kill 前加个延时: ```bash trap 'echo "Shutting down..."; sleep 2; kill $(rosnode list | grep -v "/rosout" | xargs); sleep 1' INT TERM ``` 3. **避免频繁重启** - 改成调试模式运行关键节点,而不是每次都 `bash nav_one.sh`。 --- ### 🔴 4. **Encoder 和 Driver 节点频繁重启失败** 观察到如下现象: ```log process[encoder_vel-7]: started with pid [87] ... True ``` 只有一个 `True` 输出,且无后续日志 → 表示该节点可能立即退出或阻塞。 检查 `/dev/encoder` 是否存在: ```bash ls /dev/encoder ``` 如果不存在,则会报错无法打开串口。 #### ✅ 检查项: - 是否正确连接编码器硬件? - 波特率是否匹配?当前设为 `57600` - 是否有权限读取 `/dev/encoder`? ```bash ls -l /dev/encoder # 应类似 crw-rw---- 1 root dialout ``` 若无权限,加入用户组: ```bash usermod -aG dialout root ``` --- ### 🔴 5. **Failed to meet update rate 警告** ```log [ WARN] [1764270791.133628]: Failed to meet update rate! Took 0.102008542 s ``` 表示某节点期望 10Hz 更新,但实际耗时超过 100ms。 常见于: - CPU 占用过高(Atlas 200I DK A2 性能有限) - 频繁打印 debug 日志 - TF 查询延迟 #### ✅ 优化建议: - 降低 `controller_frequency` 和 `planner_frequency` 至 `5 Hz` - 关闭不必要的可视化输出(RViz 中 Topic 减少) - 使用 `top` 查看 CPU 使用情况: ```bash top -H -p $(pgrep -f "python|ros") ``` --- ### 🔴 6. **两个 launch 文件交替启动又终止** 日志末尾显示: ``` Run_car.launch 进程已终止。 amcl_nav.launch 进程已终止。 ``` 说明 `nav_one.sh` 实际上可能做了两件事: 1. 先启动 `Run_car.launch`(底层控制) 2. 再启动 `amcl_nav.launch`(导航) 但由于脚本逻辑不清或异常退出,两者都挂掉了。 #### ✅ 建议做法: 拆分测试: ```bash # 先单独测试底层驱动 roslaunch Run_car.launch # 再测试导航 roslaunch amcl_nav.launch map_file:=your_map.yaml ``` 确保每层稳定后再联合调试。 --- ## ✅ 推荐解决方案汇总 | 问题 | 解法 | |------|------| | `run_id` 冲突 | 删除 `~/.ros/log` 和 `/run_id` 参数 | | Boost 断言崩溃 | 更新 `lslidar` 驱动或软重启设备 | | 编码器打不开 | 检查 `/dev/encoder` 是否存在及权限 | | 更新频率不达标 | 降低频率至 5Hz,减少日志输出 | | 节点频繁退出 | 分步启动调试,不要反复 Ctrl+C | --- ## 💡 建议增强稳定性措施 ### ✅ 修改 `nav_one.sh` 示例(增加容错): ```bash #!/bin/bash # 清理旧参数 rosparam delete /run_id > /dev/null 2>&1 || true # 设置工作空间 source /racecar/devel_isolated/setup.bash # 启动主控节点(分离模式) echo "Starting sensor and driver nodes..." roslaunch /racecar/Run_car.launch & LAUNCH_PID=$! # 等待关键主题出现 sleep 3 while ! rostopic list | grep -q "/scan"; do echo "Waiting for /scan topic..." sleep 1 done echo "Starting navigation stack..." roslaunch /racecar/amcl_nav.launch & # 捕获中断信号 trap "kill $LAUNCH_PID; wait $LAUNCH_PID; exit" INT TERM wait ``` --- ##
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值