同问,wsl2上运行gazebo报错:D3D12: Removing Device.
但是如果不使用GPU就比较卡。
我是ros2 humble 安装的moveit2
使用moveit_setup_assistant配置好的config文件夹,该做的设置都做了,demo.launch.py也能跑起来。
在我运行一个运动规划时报错:
[ERROR] [1755228331.551841031] [move_group_interface]: MoveGroupInterface::plan() failed or timeout reached
[ERROR] [1755228331.552188515] [moveit_ik_demo]: Plan (pose goal) FAILED
同时[WARN] [1755228291.666113659] [moveit_ros.robot_model_loader]: No kinematics plugins defined. Fill and load kinematics.yaml!
很奇怪,
demo.launch.py内容如下
demo.launch.py运行信息:
root@DESKTOP-AOGOC7F:~/dev_ws/src/ros2_21_tutorials# ros2 launch zhijiao_robot0802_moveit_config demo.launch.py [INFO] [launch]: All log files can be found below /home/wzy/.ros/log/2025-08-15-15-08-09-668257-DESKTOP-AOGOC7F-56360 [INFO] [launch]: Default logging verbosity is set to INFO Using load_yaml() directly is deprecated. Use xacro.load_yaml() instead. Using load_yaml() directly is deprecated. Use xacro.load_yaml() instead. Using load_yaml() directly is deprecated. Use xacro.load_yaml() instead. Using load_yaml() directly is deprecated. Use xacro.load_yaml() instead. Using load_yaml() directly is deprecated. Use xacro.load_yaml() instead. Using load_yaml() directly is deprecated. Use xacro.load_yaml() instead. Using load_yaml() directly is deprecated. Use xacro.load_yaml() instead. Using load_yaml() directly is deprecated. Use xacro.load_yaml() instead. Using load_yaml() directly is deprecated. Use xacro.load_yaml() instead. Using load_yaml() directly is deprecated. Use xacro.load_yaml() instead. Using load_yaml() directly is deprecated. Use xacro.load_yaml() instead. Using load_yaml() directly is deprecated. Use xacro.load_yaml() instead. [INFO] [robot_state_publisher-1]: process started with pid [56375] [INFO] [move_group-2]: process started with pid [56377] [INFO] [rviz2-3]: process started with pid [56379] [INFO] [ros2_control_node-4]: process started with pid [56381] [INFO] [spawner-5]: process started with pid [56383] [INFO] [spawner-6]: process started with pid [56385] [robot_state_publisher-1] [INFO] [1755241690.281353069] [robot_state_publisher]: got segment base_link [robot_state_publisher-1] [INFO] [1755241690.281527387] [robot_state_publisher]: got segment gripper [robot_state_publisher-1] [INFO] [1755241690.281539478] [robot_state_publisher]: got segment link1 [robot_state_publisher-1] [INFO] [1755241690.281543484] [robot_state_publisher]: got segment link2 [robot_state_publisher-1] [INFO] [1755241690.281546746] [robot_state_publisher]: got segment link3 [robot_state_publisher-1] [INFO] [1755241690.281549728] [robot_state_publisher]: got segment world [ros2_control_node-4] [WARN] [1755241690.294639111] [controller_manager]: [Deprecated] Passing the robot description parameter directly to the control_manager node is deprecated. Use '~/robot_description' topic from 'robot_state_publisher' instead. [ros2_control_node-4] [INFO] [1755241690.294971940] [resource_manager]: Loading hardware 'FakeSystem' [ros2_control_node-4] [INFO] [1755241690.296947580] [resource_manager]: Initialize hardware 'FakeSystem' [ros2_control_node-4] [INFO] [1755241690.297019335] [resource_manager]: Successful initialization of hardware 'FakeSystem' [ros2_control_node-4] [INFO] [1755241690.297073423] [resource_manager]: 'configure' hardware 'FakeSystem' [ros2_control_node-4] [INFO] [1755241690.297080134] [resource_manager]: Successful 'configure' of hardware 'FakeSystem' [ros2_control_node-4] [INFO] [1755241690.297084450] [resource_manager]: 'activate' hardware 'FakeSystem' [ros2_control_node-4] [INFO] [1755241690.297089252] [resource_manager]: Successful 'activate' of hardware 'FakeSystem' [ros2_control_node-4] [INFO] [1755241690.303197239] [controller_manager]: update rate is 1000 Hz [ros2_control_node-4] [INFO] [1755241690.303236810] [controller_manager]: Spawning controller_manager RT thread with scheduler priority: 50 [ros2_control_node-4] [WARN] [1755241690.303419561] [controller_manager]: No real-time kernel detected on this system. See [https://control.ros.org/master/doc/ros2_control/controller_manager/doc/userdoc.html] for details on how to enable realtime scheduling. [move_group-2] [INFO] [1755241690.311139169] [moveit_rdf_loader.rdf_loader]: Loaded robot model in 0.0282244 seconds [move_group-2] [INFO] [1755241690.311553283] [moveit_robot_model.robot_model]: Loading robot model 'zhijiao_robot'... [move_group-2] [INFO] [1755241690.311573804] [moveit_robot_model.robot_model]: No root/virtual joint specified in SRDF. Assuming fixed joint [rviz2-3] QStandardPaths: runtime directory '/run/user/1000/' is not owned by UID 0, but a directory permissions 0755 owned by UID 1000 GID 1000 [move_group-2] [INFO] [1755241690.368560280] [moveit_ros.planning_scene_monitor.planning_scene_monitor]: Publishing maintained planning scene on 'monitored_planning_scene' [move_group-2] [INFO] [1755241690.368718765] [moveit.ros_planning_interface.moveit_cpp]: Listening to 'joint_states' for joint states [move_group-2] [INFO] [1755241690.369369249] [moveit_ros.current_state_monitor]: Listening to joint states on topic 'joint_states' [move_group-2] [INFO] [1755241690.370079608] [moveit_ros.planning_scene_monitor.planning_scene_monitor]: Listening to '/attached_collision_object' for attached collision objects [move_group-2] [INFO] [1755241690.370111037] [moveit_ros.planning_scene_monitor.planning_scene_monitor]: Starting planning scene monitor [move_group-2] [INFO] [1755241690.370440117] [moveit_ros.planning_scene_monitor.planning_scene_monitor]: Listening to '/planning_scene' [move_group-2] [INFO] [1755241690.370459247] [moveit_ros.planning_scene_monitor.planning_scene_monitor]: Starting world geometry update monitor for collision objects, attached objects, octomap updates. [move_group-2] [INFO] [1755241690.370769098] [moveit_ros.planning_scene_monitor.planning_scene_monitor]: Listening to 'collision_object' [move_group-2] [INFO] [1755241690.371073262] [moveit_ros.planning_scene_monitor.planning_scene_monitor]: Listening to 'planning_scene_world' for planning scene world geometry [move_group-2] [WARN] [1755241690.373731793] [moveit.ros.occupancy_map_monitor.middleware_handle]: Resolution not specified for Octomap. Assuming resolution = 0.1 instead [move_group-2] [ERROR] [1755241690.373763222] [moveit.ros.occupancy_map_monitor.middleware_handle]: No 3D sensor plugin(s) defined for octomap updates [move_group-2] [INFO] [1755241690.374607806] [moveit.ros_planning_interface.moveit_cpp]: Loading planning pipeline 'ompl' [move_group-2] [INFO] [1755241690.408689412] [moveit.ros_planning.planning_pipeline]: Using planning interface 'OMPL' [move_group-2] [INFO] [1755241690.418498010] [moveit_ros.add_time_optimal_parameterization]: Param 'ompl.path_tolerance' was not set. Using default value: 0.100000 [move_group-2] [INFO] [1755241690.418534052] [moveit_ros.add_time_optimal_parameterization]: Param 'ompl.resample_dt' was not set. Using default value: 0.100000 [move_group-2] [INFO] [1755241690.418540057] [moveit_ros.add_time_optimal_parameterization]: Param 'ompl.min_angle_change' was not set. Using default value: 0.001000 [move_group-2] [INFO] [1755241690.418584222] [moveit_ros.fix_workspace_bounds]: Param 'ompl.default_workspace_bounds' was not set. Using default value: 10.000000 [move_group-2] [INFO] [1755241690.418601224] [moveit_ros.fix_start_state_bounds]: Param 'ompl.start_state_max_bounds_error' was set to 0.100000 [move_group-2] [INFO] [1755241690.418606265] [moveit_ros.fix_start_state_bounds]: Param 'ompl.start_state_max_dt' was not set. Using default value: 0.500000 [move_group-2] [INFO] [1755241690.418617808] [moveit_ros.fix_start_state_collision]: Param 'ompl.start_state_max_dt' was not set. Using default value: 0.500000 [move_group-2] [INFO] [1755241690.418625534] [moveit_ros.fix_start_state_collision]: Param 'ompl.jiggle_fraction' was not set. Using default value: 0.020000 [move_group-2] [INFO] [1755241690.418645399] [moveit_ros.fix_start_state_collision]: Param 'ompl.max_sampling_attempts' was not set. Using default value: 100 [move_group-2] [INFO] [1755241690.418658623] [moveit.ros_planning.planning_pipeline]: Using planning request adapter 'Add Time Optimal Parameterization' [move_group-2] [INFO] [1755241690.418665235] [moveit.ros_planning.planning_pipeline]: Using planning request adapter 'Resolve constraint frames to robot links' [move_group-2] [INFO] [1755241690.418668675] [moveit.ros_planning.planning_pipeline]: Using planning request adapter 'Fix Workspace Bounds' [move_group-2] [INFO] [1755241690.418672274] [moveit.ros_planning.planning_pipeline]: Using planning request adapter 'Fix Start State Bounds' [move_group-2] [INFO] [1755241690.418675456] [moveit.ros_planning.planning_pipeline]: Using planning request adapter 'Fix Start State In Collision' [move_group-2] [INFO] [1755241690.418678747] [moveit.ros_planning.planning_pipeline]: Using planning request adapter 'Fix Start State Path Constraints' [move_group-2] [INFO] [1755241690.428663890] [moveit.ros_planning_interface.moveit_cpp]: Loading planning pipeline 'pilz_industrial_motion_planner' [move_group-2] [INFO] [1755241690.438158376] [moveit.pilz_industrial_motion_planner.joint_limits_aggregator]: Reading limits from namespace robot_description_planning [move_group-2] [INFO] [1755241690.443647834] [moveit.pilz_industrial_motion_planner]: Available plugins: pilz_industrial_motion_planner/PlanningContextLoaderCIRC pilz_industrial_motion_planner/PlanningContextLoaderLIN pilz_industrial_motion_planner/PlanningContextLoaderPTP [move_group-2] [INFO] [1755241690.443686819] [moveit.pilz_industrial_motion_planner]: About to load: pilz_industrial_motion_planner/PlanningContextLoaderCIRC [move_group-2] [INFO] [1755241690.451073455] [moveit.pilz_industrial_motion_planner]: Registered Algorithm [CIRC] [move_group-2] [INFO] [1755241690.451116228] [moveit.pilz_industrial_motion_planner]: About to load: pilz_industrial_motion_planner/PlanningContextLoaderLIN [move_group-2] [INFO] [1755241690.453484318] [moveit.pilz_industrial_motion_planner]: Registered Algorithm [LIN] [move_group-2] [INFO] [1755241690.453519057] [moveit.pilz_industrial_motion_planner]: About to load: pilz_industrial_motion_planner/PlanningContextLoaderPTP [move_group-2] [INFO] [1755241690.455588758] [moveit.pilz_industrial_motion_planner]: Registered Algorithm [PTP] [move_group-2] [INFO] [1755241690.455650502] [moveit.ros_planning.planning_pipeline]: Using planning interface 'Pilz Industrial Motion Planner' [move_group-2] [INFO] [1755241690.456677437] [moveit.ros_planning_interface.moveit_cpp]: Loading planning pipeline 'chomp' [ros2_control_node-4] [INFO] [1755241690.468645836] [controller_manager]: Loading controller 'joint_state_broadcaster' [move_group-2] [INFO] [1755241690.473649728] [moveit.ros_planning.planning_pipeline]: Using planning interface 'CHOMP' [move_group-2] [INFO] [1755241690.481751971] [moveit_ros.add_time_optimal_parameterization]: Param 'chomp.path_tolerance' was not set. Using default value: 0.100000 [move_group-2] [INFO] [1755241690.481792060] [moveit_ros.add_time_optimal_parameterization]: Param 'chomp.resample_dt' was not set. Using default value: 0.100000 [move_group-2] [INFO] [1755241690.481797836] [moveit_ros.add_time_optimal_parameterization]: Param 'chomp.min_angle_change' was not set. Using default value: 0.001000 [move_group-2] [INFO] [1755241690.481822365] [moveit_ros.fix_workspace_bounds]: Param 'chomp.default_workspace_bounds' was not set. Using default value: 10.000000 [move_group-2] [INFO] [1755241690.481835549] [moveit_ros.fix_start_state_bounds]: Param 'chomp.start_state_max_bounds_error' was set to 0.100000 [move_group-2] [INFO] [1755241690.481839844] [moveit_ros.fix_start_state_bounds]: Param 'chomp.start_state_max_dt' was not set. Using default value: 0.500000 [move_group-2] [INFO] [1755241690.481847649] [moveit_ros.fix_start_state_collision]: Param 'chomp.start_state_max_dt' was not set. Using default value: 0.500000 [move_group-2] [INFO] [1755241690.481851586] [moveit_ros.fix_start_state_collision]: Param 'chomp.jiggle_fraction' was set to 0.050000 [move_group-2] [INFO] [1755241690.481855832] [moveit_ros.fix_start_state_collision]: Param 'chomp.max_sampling_attempts' was not set. Using default value: 100 [move_group-2] [INFO] [1755241690.481862692] [moveit.ros_planning.planning_pipeline]: Using planning request adapter 'Add Time Optimal Parameterization' [move_group-2] [INFO] [1755241690.481866470] [moveit.ros_planning.planning_pipeline]: Using planning request adapter 'Resolve constraint frames to robot links' [move_group-2] [INFO] [1755241690.481868966] [moveit.ros_planning.planning_pipeline]: Using planning request adapter 'Fix Workspace Bounds' [move_group-2] [INFO] [1755241690.481871392] [moveit.ros_planning.planning_pipeline]: Using planning request adapter 'Fix Start State Bounds' [move_group-2] [INFO] [1755241690.481873659] [moveit.ros_planning.planning_pipeline]: Using planning request adapter 'Fix Start State In Collision' [move_group-2] [INFO] [1755241690.481876681] [moveit.ros_planning.planning_pipeline]: Using planning request adapter 'Fix Start State Path Constraints' [ros2_control_node-4] [INFO] [1755241690.486809260] [controller_manager]: Loading controller 'manipulator_controller' [ros2_control_node-4] [WARN] [1755241690.506926912] [manipulator_controller]: [Deprecated]: "allow_nonzero_velocity_at_trajectory_end" is set to true. The default behavior will change to false. [spawner-6] [INFO] [1755241690.507374786] [spawner_joint_state_broadcaster]: Loaded joint_state_broadcaster [ros2_control_node-4] [INFO] [1755241690.508775132] [controller_manager]: Configuring controller 'joint_state_broadcaster' [ros2_control_node-4] [INFO] [1755241690.508911455] [joint_state_broadcaster]: 'joints' or 'interfaces' parameter is empty. All available state interfaces will be published [spawner-6] [INFO] [1755241690.524652598] [spawner_joint_state_broadcaster]: Configured and activated joint_state_broadcaster [spawner-5] [INFO] [1755241690.527026593] [spawner_manipulator_controller]: Loaded manipulator_controller [ros2_control_node-4] [INFO] [1755241690.528512523] [controller_manager]: Configuring controller 'manipulator_controller' [ros2_control_node-4] [INFO] [1755241690.528679032] [manipulator_controller]: No specific joint names are used for command interfaces. Using 'joints' parameter. [ros2_control_node-4] [INFO] [1755241690.528761923] [manipulator_controller]: Command interfaces are [position velocity] and state interfaces are [position velocity]. [ros2_control_node-4] [INFO] [1755241690.528796106] [manipulator_controller]: Using 'splines' interpolation method. [ros2_control_node-4] [INFO] [1755241690.529828635] [manipulator_controller]: Controller state will be published at 50.00 Hz. [ros2_control_node-4] [INFO] [1755241690.532093829] [manipulator_controller]: Action status changes will be monitored at 20.00 Hz. [move_group-2] [INFO] [1755241690.535834790] [moveit.plugins.moveit_simple_controller_manager]: Added FollowJointTrajectory controller for manipulator_controller [move_group-2] [INFO] [1755241690.536050315] [moveit.plugins.moveit_simple_controller_manager]: Returned 1 controllers in list [move_group-2] [INFO] [1755241690.536090076] [moveit.plugins.moveit_simple_controller_manager]: Returned 1 controllers in list [move_group-2] [INFO] [1755241690.536626986] [moveit_ros.trajectory_execution_manager]: Trajectory execution is managing controllers [move_group-2] [INFO] [1755241690.536644664] [move_group.move_group]: MoveGroup debug mode is ON [spawner-5] [INFO] [1755241690.542301507] [spawner_manipulator_controller]: Configured and activated manipulator_controller [move_group-2] [INFO] [1755241690.569099677] [move_group.move_group]: [move_group-2] [move_group-2] ******************************************************** [move_group-2] * MoveGroup using: [move_group-2] * - ApplyPlanningSceneService [move_group-2] * - ClearOctomapService [move_group-2] * - CartesianPathService [move_group-2] * - ExecuteTrajectoryAction [move_group-2] * - GetPlanningSceneService [move_group-2] * - KinematicsService [move_group-2] * - MoveAction [move_group-2] * - MotionPlanService [move_group-2] * - QueryPlannersService [move_group-2] * - StateValidationService [move_group-2] ******************************************************** [move_group-2] [move_group-2] [INFO] [1755241690.569172566] [moveit_move_group_capabilities_base.move_group_context]: MoveGroup context using planning plugin ompl_interface/OMPLPlanner [move_group-2] [INFO] [1755241690.569180659] [moveit_move_group_capabilities_base.move_group_context]: MoveGroup context initialization complete [move_group-2] Loading 'move_group/ApplyPlanningSceneService'... [move_group-2] Loading 'move_group/ClearOctomapService'... [move_group-2] Loading 'move_group/MoveGroupCartesianPathService'... [move_group-2] Loading 'move_group/MoveGroupExecuteTrajectoryAction'... [move_group-2] Loading 'move_group/MoveGroupGetPlanningSceneService'... [move_group-2] Loading 'move_group/MoveGroupKinematicsService'... [move_group-2] Loading 'move_group/MoveGroupMoveAction'... [move_group-2] Loading 'move_group/MoveGroupPlanService'... [move_group-2] Loading 'move_group/MoveGroupQueryPlannersService'... [move_group-2] Loading 'move_group/MoveGroupStateValidationService'... [move_group-2] [move_group-2] You can start planning now! [move_group-2] [INFO] [spawner-6]: process has finished cleanly [pid 56385] [INFO] [spawner-5]: process has finished cleanly [pid 56383] [rviz2-3] [INFO] [1755241691.973746834] [rviz2]: Stereo is NOT SUPPORTED [rviz2-3] [INFO] [1755241691.973846150] [rviz2]: OpenGl version: 4.2 (GLSL 4.2) [rviz2-3] [INFO] [1755241692.041048352] [rviz2]: Stereo is NOT SUPPORTED [rviz2-3] Warning: class_loader.impl: SEVERE WARNING!!! A namespace collision has occurred with plugin factory for class rviz_default_plugins::displays::InteractiveMarkerDisplay. New factory will OVERWRITE existing one. This situation occurs when libraries containing plugins are directly linked against an executable (the one running right now generating this message). Please separate plugins out into their own library or just don't link against the library and use either class_loader::ClassLoader/MultiLibraryClassLoader to open. [rviz2-3] at line 253 in /opt/ros/humble/include/class_loader/class_loader/class_loader_core.hpp [rviz2-3] [ERROR] [1755241695.253089703] [moveit_ros_visualization.motion_planning_frame]: Action server: /recognize_objects not available [rviz2-3] [INFO] [1755241695.278270515] [moveit_ros_visualization.motion_planning_frame]: MoveGroup namespace changed: / -> . Reloading params. [rviz2-3] [INFO] [1755241695.431960017] [moveit_rdf_loader.rdf_loader]: Loaded robot model in 0.0707571 seconds [rviz2-3] [INFO] [1755241695.432019926] [moveit_robot_model.robot_model]: Loading robot model 'zhijiao_robot'... [rviz2-3] [INFO] [1755241695.432038295] [moveit_robot_model.robot_model]: No root/virtual joint specified in SRDF. Assuming fixed joint [rviz2-3] [INFO] [1755241695.529597457] [moveit_ros.planning_scene_monitor.planning_scene_monitor]: Starting planning scene monitor [rviz2-3] [INFO] [1755241695.530216213] [moveit_ros.planning_scene_monitor.planning_scene_monitor]: Listening to '/monitored_planning_scene' [rviz2-3] [INFO] [1755241695.546024051] [interactive_marker_display_109107901472208]: Connected on namespace: /rviz_moveit_motion_planning_display/robot_interaction_interactive_marker_topic [rviz2-3] [INFO] [1755241695.553036098] [moveit_ros_visualization.motion_planning_frame]: group manipulator [rviz2-3] [INFO] [1755241695.553079000] [moveit_ros_visualization.motion_planning_frame]: Constructing new MoveGroup connection for group 'manipulator' in namespace '' [rviz2-3] [INFO] [1755241695.562488219] [move_group_interface]: Ready to take commands for planning group manipulator. [rviz2-3] [INFO] [1755241695.563656181] [moveit_ros_visualization.motion_planning_frame]: group manipulator [rviz2-3] [INFO] [1755241695.583086131] [interactive_marker_display_109107901472208]: Sending request for interactive markers [rviz2-3] [INFO] [1755241695.606071280] [interactive_marker_display_109107901472208]: Service response received for initialization``` 运行信息看起来一切正常 moveit_ik_demo.cpp内容如下:#include <rclcpp/rclcpp.hpp>
#include<moveit/move_group_interface/move_group_interface.h>
#include <geometry_msgs/msg/pose.hpp>
#include <chrono>
#include <thread>
int main(int argc, char **argv)
{
// 初始化 ROS 2 节点
rclcpp::init(argc, argv);
rclcpp::NodeOptions options;
auto node = rclcpp::Node::make_shared("moveit_ik_demo", options);
}
运行信息如下:root@DESKTOP-AOGOC7F:~/dev_ws/src/ros2_21_tutorials# ros2 run zhijiao_robot0802_moveit_cpp_demo moveit_ik_demo
[INFO] [1755228291.660353144] [moveit_rdf_loader.rdf_loader]: Loaded robot model in 1.02404 seconds
[INFO] [1755228291.660437959] [moveit_robot_model.robot_model]: Loading robot model 'zhijiao_robot'...
[INFO] [1755228291.660458754] [moveit_robot_model.robot_model]: No root/virtual joint specified in SRDF. Assuming fixed joint
[WARN] [1755228291.666113659] [moveit_ros.robot_model_loader]: No kinematics plugins defined. Fill and load kinematics.yaml!
[INFO] [1755228291.681796533] [move_group_interface]: Ready to take commands for planning group manipulator.
[INFO] [1755228291.681837878] [moveit_ik_demo]: End effector link: gripper
[INFO] [1755228291.682709957] [move_group_interface]: Plan and Execute request accepted
[INFO] [1755228324.873389855] [move_group_interface]: Plan and Execute request complete!
[INFO] [1755228325.873665930] [move_group_interface]: MoveGroup action client/server ready
[INFO] [1755228325.874464459] [move_group_interface]: Planning request accepted
[INFO] [1755228331.551459726] [move_group_interface]: Planning request aborted
[ERROR] [1755228331.551841031] [move_group_interface]: MoveGroupInterface::plan() failed or timeout reached
[ERROR] [1755228331.552188515] [moveit_ik_demo]: Plan (pose goal) FAILED
[INFO] [1755228331.552770564] [move_group_interface]: Plan and Execute request accepted
[INFO] [1755228364.918952103] [move_group_interface]: Plan and Execute request complete!```
我也怀疑过是未正确加载kinematics.yaml,于是我在demo.launch.py中加上print(moveit_config),运行信息中打印出了moveit_config信息,其中包含
robot_description_kinematics={'robot_description_kinematics': {'manipulator': {'kinematics_solver': 'kdl_kinematics_plugin/KDLKinematicsPlugin', 'kinematics_solver_search_resolution': 0.005, 'kinematics_solver_timeout': 0.005}}},
各位大神,有没有遇到同样问题的,怎么解决
b7a9cc31-913a-4bb6-8646-e135e61f2cad-8463f1d1469274cd98c573eb906baea7.png
求救求救,呜呜呜
fishbot_ros2_controller.yaml文件内容:
controller_manager: ros__parameters: update_rate: 100 # Hz use_sim_time: true fishbot_joint_state_broadcaster: type: joint_state_broadcaster/JointStateBroadcaster use_sim_time: true fishbot_effort_controller: type: effort_controllers/JointGroupEffortController fishbot_effort_controller: ros__parameters: joints: - left_wheel_joint - right_wheel_joint command_interfaces: - effort state_interfaces: - position - velocity - effortgazebo_sim.launch.py文件内容:
import launch import launch_ros from ament_index_python.packages import get_package_share_directory import os def generate_launch_description(): # 获取功能包的share路径 urdf_package_path = get_package_share_directory('fishbot_description') defualt_xacro_path = os.path.join(urdf_package_path, 'urdf', 'fishbot/fishbot.urdf.xacro') defualt_gazebo_world_path = os.path.join(urdf_package_path, 'world', 'custom_room.world') # 声明一个urdf目录的参数,方便修改 action_declare_arg_mode_path = launch.actions.DeclareLaunchArgument( name='model', default_value=str(defualt_xacro_path), description='加载的模型文件路径' ) # 通过文件路径,获取内容,并转换成参数值对象,以供传入 robot_state_publisher substitutions_command_result = launch.substitutions.Command(['xacro ', launch.substitutions.LaunchConfiguration('model')]) robot_description_value = launch_ros.parameter_descriptions.ParameterValue(substitutions_command_result, value_type=str) action_robot_state_publisher = launch_ros.actions.Node( package='robot_state_publisher', executable='robot_state_publisher', parameters=[{'robot_description':robot_description_value}] ) action_launch_gazebo = launch.actions.IncludeLaunchDescription( launch.launch_description_sources.PythonLaunchDescriptionSource( [get_package_share_directory('gazebo_ros'),'/launch','/gazebo.launch.py'] ), launch_arguments=[('world',defualt_gazebo_world_path),('verbose','true')] ) action_spawm_entity = launch_ros.actions.Node( package='gazebo_ros', executable='spawn_entity.py', arguments=['-topic','/robot_description','-entity','fishbot'] ) action_load_joint_state_controller = launch.actions.ExecuteProcess( cmd='ros2 control load_controller fishbot_joint_state_broadcaster --set-state active'.split(' '), output='screen' ) action_load_effort_controller = launch.actions.ExecuteProcess( cmd='ros2 control load_controller fishbot_effort_broadcaster --set-state active'.split(' '), output='screen' ) return launch.LaunchDescription([ action_declare_arg_mode_path, action_robot_state_publisher, action_launch_gazebo, action_spawm_entity, launch.actions.RegisterEventHandler( event_handler=launch.event_handlers.OnProcessExit( target_action=action_spawm_entity, on_exit=[action_load_joint_state_controller], ) ), launch.actions.RegisterEventHandler( event_handler=launch.event_handlers.OnProcessExit( target_action=action_load_joint_state_controller, on_exit=[action_load_effort_controller], ) ), ])报错内容:
charlie@charlie-VirtualBox:~/chapt6/chapt6_ws$ ros2 launch fishbot_description gazebo_sim.launch.py [INFO] [launch]: All log files can be found below /home/charlie/.ros/log/2025-08-14-13-26-32-002900-charlie-VirtualBox-14576 [INFO] [launch]: Default logging verbosity is set to INFO [INFO] [robot_state_publisher-1]: process started with pid [14582] [INFO] [gzserver-2]: process started with pid [14584] [INFO] [gzclient-3]: process started with pid [14586] [INFO] [spawn_entity.py-4]: process started with pid [14588] [robot_state_publisher-1] [INFO] [1755149192.409618885] [robot_state_publisher]: got segment back_wheel_link [robot_state_publisher-1] [INFO] [1755149192.409707476] [robot_state_publisher]: got segment base_footprint [robot_state_publisher-1] [INFO] [1755149192.409716020] [robot_state_publisher]: got segment base_link [robot_state_publisher-1] [INFO] [1755149192.409720830] [robot_state_publisher]: got segment camera_link [robot_state_publisher-1] [INFO] [1755149192.409725466] [robot_state_publisher]: got segment camera_optical_link [robot_state_publisher-1] [INFO] [1755149192.409730113] [robot_state_publisher]: got segment front_wheel_link [robot_state_publisher-1] [INFO] [1755149192.409734683] [robot_state_publisher]: got segment imu_link [robot_state_publisher-1] [INFO] [1755149192.409739214] [robot_state_publisher]: got segment laser_cylinder_link [robot_state_publisher-1] [INFO] [1755149192.409743668] [robot_state_publisher]: got segment laser_link [robot_state_publisher-1] [INFO] [1755149192.409748291] [robot_state_publisher]: got segment left_wheel_link [robot_state_publisher-1] [INFO] [1755149192.409752794] [robot_state_publisher]: got segment right_wheel_link [gzclient-3] Gazebo multi-robot simulator, version 11.10.2 [gzclient-3] Copyright (C) 2012 Open Source Robotics Foundation. [gzclient-3] Released under the Apache 2 License. [gzclient-3] http://gazebosim.org [gzclient-3] [gzserver-2] Gazebo multi-robot simulator, version 11.10.2 [gzserver-2] Copyright (C) 2012 Open Source Robotics Foundation. [gzserver-2] Released under the Apache 2 License. [gzserver-2] http://gazebosim.org [gzserver-2] [spawn_entity.py-4] [INFO] [1755149192.721795812] [spawn_entity]: Spawn Entity started [spawn_entity.py-4] [INFO] [1755149192.722152998] [spawn_entity]: Loading entity published on topic /robot_description [spawn_entity.py-4] [INFO] [1755149192.723538076] [spawn_entity]: Waiting for entity xml on /robot_description [spawn_entity.py-4] [INFO] [1755149192.737648830] [spawn_entity]: Waiting for service /spawn_entity, timeout = 30 [spawn_entity.py-4] [INFO] [1755149192.737973586] [spawn_entity]: Waiting for service /spawn_entity [gzserver-2] [Wrn] [gazebo_ros_init.cpp:178] [gzserver-2] # # ####### ####### ### ##### ####### [gzserver-2] ## # # # # # # # # [gzserver-2] # # # # # # # # # [gzserver-2] # # # # # # # # ##### [gzserver-2] # # # # # # # # # [gzserver-2] # ## # # # # # # # [gzserver-2] # # ####### # ### ##### ####### [gzserver-2] [gzserver-2] This version of Gazebo, now called Gazebo classic, reaches end-of-life [gzserver-2] in January 2025. Users are highly encouraged to migrate to the new Gazebo [gzserver-2] using our migration guides (https://gazebosim.org/docs/latest/gazebo_classic_migration?utm_source=gazebo_ros_pkgs&utm_medium=cli) [gzserver-2] [gzserver-2] [spawn_entity.py-4] [INFO] [1755149193.630002076] [spawn_entity]: Calling service /spawn_entity [gzclient-3] [Msg] Waiting for master. [gzclient-3] [Msg] Connected to gazebo master @ http://127.0.0.1:11345 [gzclient-3] [Msg] Publicized address: 10.0.2.15 [gzclient-3] [Wrn] [GuiIface.cc:120] Could not find the Qt platform plugin "wayland" in "" [gzserver-2] [Msg] Waiting for master. [gzserver-2] [Msg] Connected to gazebo master @ http://127.0.0.1:11345 [gzserver-2] [Msg] Publicized address: 10.0.2.15 [gzserver-2] [Msg] Loading world file [/home/charlie/chapt6/chapt6_ws/install/fishbot_description/share/fishbot_description/world/custom_room.world] [gzserver-2] [Wrn] [Event.cc:61] Warning: Deleting a connection right after creation. Make sure to save the ConnectionPtr from a Connect call [gzserver-2] [INFO] [1755149194.040022442] [depth_camera]: Publishing camera info to [/camera_sensor/camera_info] [gzserver-2] [INFO] [1755149194.041348511] [depth_camera]: Publishing depth camera info to [/camera_sensor/depth/camera_info] [gzserver-2] [INFO] [1755149194.041969718] [depth_camera]: Publishing pointcloud to [/camera_sensor/points] [spawn_entity.py-4] [INFO] [1755149194.167642949] [spawn_entity]: Spawn status: SpawnEntity: Successfully spawned entity [fishbot] [gzserver-2] [INFO] [1755149194.188820356] [gazebo_ros2_control]: Loading gazebo_ros2_control plugin [gzserver-2] [INFO] [1755149194.196361687] [gazebo_ros2_control]: Starting gazebo_ros2_control plugin in namespace: / [gzserver-2] [INFO] [1755149194.196411774] [gazebo_ros2_control]: Starting gazebo_ros2_control plugin in ros 2 node: gazebo_ros2_control [gzserver-2] [INFO] [1755149194.202945161] [gazebo_ros2_control]: connected to service!! robot_state_publisher [gzserver-2] [INFO] [1755149194.204511542] [gazebo_ros2_control]: Received urdf from param server, parsing... [gzserver-2] [INFO] [1755149194.204661865] [gazebo_ros2_control]: Loading parameter files /home/charlie/chapt6/chapt6_ws/install/fishbot_description/share/fishbot_description/config/fishbot_ros2_controller.yaml [gzserver-2] [INFO] [1755149194.216888925] [gazebo_ros2_control]: Loading joint: left_wheel_joint [gzserver-2] [INFO] [1755149194.216973229] [gazebo_ros2_control]: State: [gzserver-2] [INFO] [1755149194.216996699] [gazebo_ros2_control]: position [gzserver-2] [INFO] [1755149194.217017614] [gazebo_ros2_control]: velocity [gzserver-2] [INFO] [1755149194.217035265] [gazebo_ros2_control]: effort [gzserver-2] [INFO] [1755149194.217410237] [gazebo_ros2_control]: Command: [gzserver-2] [INFO] [1755149194.217472195] [gazebo_ros2_control]: velocity [gzserver-2] [INFO] [1755149194.217882558] [gazebo_ros2_control]: effort [gzserver-2] [INFO] [1755149194.217932050] [gazebo_ros2_control]: Loading joint: right_wheel_joint [gzserver-2] [INFO] [1755149194.217953011] [gazebo_ros2_control]: State: [gzserver-2] [INFO] [1755149194.217970816] [gazebo_ros2_control]: position [gzserver-2] [INFO] [1755149194.217992609] [gazebo_ros2_control]: velocity [gzserver-2] [INFO] [1755149194.218018592] [gazebo_ros2_control]: effort [gzserver-2] [INFO] [1755149194.218073496] [gazebo_ros2_control]: Command: [gzserver-2] [INFO] [1755149194.218104275] [gazebo_ros2_control]: velocity [gzserver-2] [INFO] [1755149194.218310209] [gazebo_ros2_control]: effort [gzserver-2] [INFO] [1755149194.218444212] [resource_manager]: Initialize hardware 'FishBotGazeboSystem' [gzserver-2] [INFO] [1755149194.218787765] [resource_manager]: Successful initialization of hardware 'FishBotGazeboSystem' [gzserver-2] [INFO] [1755149194.219203076] [resource_manager]: 'configure' hardware 'FishBotGazeboSystem' [gzserver-2] [INFO] [1755149194.219228919] [resource_manager]: Successful 'configure' of hardware 'FishBotGazeboSystem' [gzserver-2] [INFO] [1755149194.219242935] [resource_manager]: 'activate' hardware 'FishBotGazeboSystem' [gzserver-2] [INFO] [1755149194.219255560] [resource_manager]: Successful 'activate' of hardware 'FishBotGazeboSystem' [gzserver-2] [INFO] [1755149194.219508454] [gazebo_ros2_control]: Loading controller_manager [gzserver-2] [WARN] [1755149194.240378504] [gazebo_ros2_control]: Desired controller update period (0.01 s) is slower than the gazebo simulation period (0.001 s). [gzserver-2] [INFO] [1755149194.240584522] [gazebo_ros2_control]: Loaded gazebo_ros2_control. [INFO] [spawn_entity.py-4]: process has finished cleanly [pid 14588] [INFO] [ros2-5]: process started with pid [14745] [gzserver-2] [INFO] [1755149195.120629564] [controller_manager]: Loading controller 'fishbot_joint_state_broadcaster' [gzserver-2] [INFO] [1755149195.145931071] [controller_manager]: Configuring controller 'fishbot_joint_state_broadcaster' [gzserver-2] [INFO] [1755149195.146586668] [fishbot_joint_state_broadcaster]: 'joints' or 'interfaces' parameter is empty. All available state interfaces will be published [ros2-5] Successfully loaded controller fishbot_joint_state_broadcaster into state active [gzclient-3] context mismatch in svga_surface_destroy [gzclient-3] context mismatch in svga_surface_destroy [INFO] [ros2-5]: process has finished cleanly [pid 14745] [INFO] [ros2-6]: process started with pid [14781] [gzserver-2] [ERROR] [1755149196.607657076] [controller_manager]: The 'type' param was not defined for 'fishbot_effort_broadcaster'. [ros2-6] Error loading controller, check controller_manager logs [ERROR] [ros2-6]: process has died [pid 14781, exit code 1, cmd 'ros2 control load_controller fishbot_effort_broadcaster --set-state active'].e303b6248484e1f5a1c006982b7633b2.png :
ros,docker```
code_text
wros@wros-VirtualBox:~/chapt2$ make
Consolidate compiler generated dependencies of target ros2_cpp_node
[ 50%] Building CXX object CMakeFiles/ros2_cpp_node.dir/ros2_cpp_node.cpp.o
/home/wros/chapt2/ros2_cpp_node.cpp: In function ‘int main(int, char**)’:
/home/wros/chapt2/ros2_cpp_node.cpp:5:22: error: parse error in template argument list
5 | auto node = std::make_sharedrclcpp:::Node("cpp_node"); //创建节点
| ^~~~~~~~~~~~~~~~~~~~~~~~~~
/home/wros/chapt2/ros2_cpp_node.cpp:5:48: error: no matching function for call to ‘make_shared<<expression error> >(const char [9])’
5 | auto node = std::make_sharedrclcpp:::Node("cpp_node"); //创建节点
| ~^~
In file included from /usr/include/c++/11/memory:77,
from /opt/ros/humble/include/rclcpp/rclcpp/rclcpp.hpp:153,
from /home/wros/chapt2/ros2_cpp_node.cpp:1:
/usr/include/c++/11/bits/shared_ptr.h:875:5: note: candidate: ‘template<class _Tp, class ... _Args> std::shared_ptr<_Tp> std::make_shared(_Args&& ...)’
875 | make_shared(_Args&&... __args)
| ^
/usr/include/c++/11/bits/shared_ptr.h:875:5: note: template argument deduction/substitution failed:
/home/wros/chapt2/ros2_cpp_node.cpp:5:48: error: template argument 1 is invalid
5 | auto node = std::make_sharedrclcpp:::Node("cpp_node"); //创建节点
| ~^~
In file included from /opt/ros/humble/include/rclcpp/rclcpp/client.hpp:40,
from /opt/ros/humble/include/rclcpp/rclcpp/callback_group.hpp:24,
from /opt/ros/humble/include/rclcpp/rclcpp/any_executable.hpp:20,
from /opt/ros/humble/include/rclcpp/rclcpp/memory_strategy.hpp:25,
from /opt/ros/humble/include/rclcpp/rclcpp/memory_strategies.hpp:18,
from /opt/ros/humble/include/rclcpp/rclcpp/executor_options.hpp:20,
from /opt/ros/humble/include/rclcpp/rclcpp/executor.hpp:37,
from /opt/ros/humble/include/rclcpp/rclcpp/executors/multi_threaded_executor.hpp:25,
from /opt/ros/humble/include/rclcpp/rclcpp/executors.hpp:21,
from /opt/ros/humble/include/rclcpp/rclcpp/rclcpp.hpp:155,
from /home/wros/chapt2/ros2_cpp_node.cpp:1:
/opt/ros/humble/include/rclcpp/rclcpp/logging.hpp:531:81: error: template argument 1 is invalid
531 | ::std::is_same<typename std::remove_cv_t<typename std::remove_reference_t<decltype(logger)>>,
| ^~
/home/wros/chapt2/ros2_cpp_node.cpp:6:5: note: in expansion of macro ‘RCLCPP_INFO’
6 | RCLCPP_INFO(node->get_logger(),"你好,C++节点!"); //打印日志
| ^
/opt/ros/humble/include/rclcpp/rclcpp/logging.hpp:531:97: error: template argument 1 is invalid
531 | ::std::is_same<typename std::remove_cv_t<typename std::remove_reference_t<decltype(logger)>>,
| ^~
/home/wros/chapt2/ros2_cpp_node.cpp:6:5: note: in expansion of macro ‘RCLCPP_INFO’
6 | RCLCPP_INFO(node->get_logger(),"你好,C++节点!"); //打印日志
| ^~~~~
/opt/ros/humble/include/rclcpp/rclcpp/logging.hpp:532:32: error: template argument 1 is invalid
532 | typename ::rclcpp::Logger>::value,
| ^
/home/wros/chapt2/ros2_cpp_node.cpp:6:5: note: in expansion of macro ‘RCLCPP_INFO’
6 | RCLCPP_INFO(node->get_logger(),"你好,C++节点!"); //打印日志
| ^~~~~~~~~~~
make[2]: *** [CMakeFiles/ros2_cpp_node.dir/build.make:76:CMakeFiles/ros2_cpp_node.dir/ros2_cpp_node.cpp.o] 错误 1
make[1]: *** [CMakeFiles/Makefile2:85:CMakeFiles/ros2_cpp_node.dir/all] 错误 2
make: *** [Makefile:101:all] 错误 2
系统:20.04,ros:noetic,使用一键安装指令安装rosdepc。
问题:尝试了所有的pip源,在执行sudo pip3 install -i https://mirrors.aliyun.com/pypi/simple rosdepc --break-system-packages失败
QQ图片20250812151116.png
打开终端执行这条指令显示没有--break-system-packages这个参数
QQ图片20250812151301.png
检测到程序发生异常退出,请打开:https://fishros.org.cn/forum 携带如下内容进行反馈
标题:使用一键安装过程中遇到程序崩溃
Traceback (most recent call last): File "/tmp/fishinstall/install.py", line 134, in <module> main() File "/tmp/fishinstall/install.py", line 123, in main run_tool_file(tools[code]['tool'].replace("/",".")) File "/tmp/fishinstall/tools/base.py", line 1478, in run_tool_file if tool.run()==False: return False File "/tmp/fishinstall/tools/tool_config_rosdep.py", line 94, in run self.install_rosdepc() File "/tmp/fishinstall/tools/tool_config_rosdep.py", line 85, in install_rosdepc PrintUtils.print_warning("安装失败,尝试使用其他方式安装...") AttributeError: type object 'PrintUtils' has no attribute 'print_warning'本次运行详细日志文件已保存至 /tmp/fishros_install.log
sudo rosdep init
/usr/bin/rosdep:6: UserWarning: pkg_resources is deprecated as an API. See https://setuptools.pypa.io/en/latest/pkg_resources.html. The pkg_resources package is slated for removal as early as 2025-11-30. Refrain from using this package or pin to Setuptools<81.
from pkg_resources import load_entry_point
ERROR: cannot download default sources list from:
https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/sources.list.d/20-default.list
Website may be down.
<urlopen error <urlopen error [Errno 111] Connection refused> (https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/sources.list.d/20-default.list)>
配置ros源时:小鱼:检测当前系统ubuntu22.04:jammy 支持一键安装ROS
============正在添加ROS源密钥=================
Run CMD Task:[sudo apt update]
[-][11.15s] CMD Result:success
Run CMD Task:[sudo apt search curl ]
[-][0.45s] CMD Result:success
Run CMD Task:[sudo apt install curl -y]
[-][0.33s] CMD Result:success
Run CMD Task:[sudo apt search gnupg2 ]
[-][0.43s] CMD Result:success
Run CMD Task:[sudo apt install gnupg2 -y]
[-][0.31s] CMD Result:success
正在挑选最快的密钥服务:['https://gitee.com/ohhuo/rosdistro/raw/master/ros.asc', 'https://raw.githubusercontent.com/ros/rosdistro/master/ros.asc']
https://gitee.com/ohhuo/rosdistro/raw/master/ros.asc 延时:0.33s https://raw.githubusercontent.com/ros/rosdistro/master/ros.asc 超时已自动选择最快密钥服务:https://gitee.com/ohhuo/rosdistro/raw/master/ros.asc
Run CMD Task:[curl -s https://gitee.com/ohhuo/rosdistro/raw/master/ros.asc | sudo apt-key add -]
[-][0.38s] CMD Result:success
Run CMD Task:[sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys F42ED6FBAB17C654]
[-][10.07s] CMD Result:code:2
Run CMD Task:[curl -s https://gitee.com/ohhuo/rosdistro/raw/master/ros.asc | sudo gpg --no-default-keyring --keyring gnupg-ring:/etc/apt/trusted.gpg.d/ros.gpg --import]
[-][0.36s] CMD Result:success
Run CMD Task:[sudo chmod 644 /etc/apt/trusted.gpg.d/ros.gpg]
[-][0.00s] CMD Result:success
Run CMD Task:[dpkg --print-architecture]
[-][0.00s] CMD Result:success
根据您的系统,为您推荐安装源为['http://mirrors.tuna.tsinghua.edu.cn/ros2/ubuntu/']
创建文件:/etc/apt/sources.list.d/ros-fish.list
Run CMD Task:[sudo apt update]
[-][11.62s] CMD Result:success
Run CMD Task:[sudo apt search ros-base ]
[-][0.50s] CMD Result:success
恭喜,成功添加ROS源,接下来可以使用apt安装ROS或者使用[1]一键安装ROS安装!
欢迎加入机器人学习交流QQ群:438144612(入群口令:一键安装)
鱼香小铺正式开业,最低499可入手一台能建图会导航的移动机器人,淘宝搜店:鱼香ROS 或打开链接查看:https://item.taobao.com/item.htm?id=696573635888
如在使用过程中遇到问题,请打开:https://fishros.org.cn/forum 进行反馈
检测到本次运行出现失败命令,直接退出按Ctrl+C,按任意键上传日志并退出
colcon build时find_package(OpenMP REQUIRED)报错,显示为:
CMake Error at /usr/share/cmake-3.22/Modules/FindPackageHandleStandardArgs.cmake:230 (message):
Could NOT find OpenMP_CXX (missing: OpenMP_CXX_FLAGS OpenMP_CXX_LIB_NAMES)
已经安装了ibomp-dev (1:14.0-55~exp2),编译器版本是g++ 11.4.0,ROS版本是Humble。



E: 无法下载 https://mirrors.ustc.edu.cn/ubuntu/pool/universe/f/freeimage/libfreeimage-dev_3.18.0%2Bds2-6ubuntu5.1_amd64.deb 暂时不能解析域名“mirrors.ustc.edu.cn”
E: 无法下载 https://mirrors.ustc.edu.cn/ubuntu/pool/universe/o/ogre-1.9/libogre-1.9-dev_1.9.0%2Bdfsg1-12.1ubuntu1_amd64.deb 暂时不能解析域名“mirrors.ustc.edu.cn”
E: 无法下载 https://mirrors.ustc.edu.cn/ubuntu/pool/universe/libt/libtar/libtar-dev_1.2.20-8ubuntu0.22.04.1_amd64.deb 暂时不能解析域名“mirrors.ustc.edu.cn”
友友们有使用过第四代控制器版本的睿尔曼机械臂吗,ros1版本控制,在跑官方ros包时出现Rviz中的姿态和真实机械臂姿态不一致的问题,利用rostopic echo /joint_states也没有数据反馈,一直处于待接收状态 ,但是虚拟机和机械臂可以ping通,不知道是什么原因如何解决。
出错截图如下:
c6020ed3-713f-4843-8847-cfa67fc658dc-5657331a82cd254b005f37e06551d7e.png
编译的时候报错:src/main.cpp:45:5: error: 'set_microros_wifi_transports' was not declared in this scope,set_microros_wifi_transports函数未声明
635071ff-1004-4bda-9349-791640de5ee5-1754583071097.png
[-][1.00s] CMD Result:code:2
检测到程序发生异常退出,请打开:https://fishros.org.cn/forum 携带如下内容进行反馈
标题:使用一键安装过程中遇到程序崩溃
Traceback (most recent call last): File "/tmp/fishinstall/install.py", line 134, in <module> main() File "/tmp/fishinstall/install.py", line 123, in main run_tool_file(tools[code]['tool'].replace("/",".")) File "/tmp/fishinstall/tools/base.py", line 1478, in run_tool_file if tool.run()==False: return False File "/tmp/fishinstall/tools/tool_config_rosdep.py", line 94, in run self.install_rosdepc() File "/tmp/fishinstall/tools/tool_config_rosdep.py", line 85, in install_rosdepc PrintUtils.print_warning("安装失败,尝试使用其他方式安装...") AttributeError: type object 'PrintUtils' has no attribute 'print_warning'最后输入ros2 run demo_cpp_pkg cpp_node时报错是什么原因呢,应该怎么解决这种情况?局部截取_20250807_210846.png
[自己用gazebo创建了个环境,用nav2进行导航, 给定目标点后,小车在行走过程中,局部膨胀地图随着激光雷达出现了偏移,将路线给挡住了,导致导航失败]
具体细节和上下文:1,机器人的仿真模型是根据鱼哥的视频一步步走下来的;
2.我的param.yaml对全局和局部的配置如下:
2.1 全局配置:
global_costmap:
global_costmap:
ros__parameters:
update_frequency: 2.0 #1.0
publish_frequency: 1.0
global_frame: map
robot_base_frame: base_footprint
use_sim_time: True
# robot_radius: 0.2
footprint: "[[0.325,-0.275],[0.325,0.275],[-0.325,0.275],[-0.325,-0.275]]"
resolution: 0.05
track_unknown_space: true
plugins: ["static_layer", "obstacle_layer", "inflation_layer"]
obstacle_layer:
plugin: "nav2_costmap_2d::ObstacleLayer"
enabled: True
observation_sources: scan
scan:
topic: /scan
max_obstacle_height: 2.0
clearing: True
marking: True
data_type: "LaserScan"
raytrace_max_range: 3.0
raytrace_min_range: 0.0
obstacle_max_range: 2.5
obstacle_min_range: 0.0
static_layer:
plugin: "nav2_costmap_2d::StaticLayer"
map_subscribe_transient_local: True
inflation_layer:
plugin: "nav2_costmap_2d::InflationLayer"
cost_scaling_factor: 6.0 #3.0
inflation_radius: 0.35 #0.15
always_send_full_costmap: True
2.2 局部配置:
local_costmap:
local_costmap:
ros__parameters:
update_frequency: 2.0 #2.0 #5.0
publish_frequency: 0.5 #2.0
global_frame: odom
robot_base_frame: base_footprint
use_sim_time: True
rolling_window: true
width: 5 #3
height: 5 #3
resolution: 0.02 #0.05
robot_radius: 0.46 #robot_radius: 0.2
footprint: "[[0.325,-0.275],[0.325,0.275],[-0.325,0.275],[-0.325,-0.275]]"
plugins: ["voxel_layer", "inflation_layer"]
inflation_layer:
plugin: "nav2_costmap_2d::InflationLayer"
cost_scaling_factor: 6.0 #3.0
inflation_radius: 0.45 #0.35 # 0.2 #0.15
obstacle_layer:
plugin: "nav2_costmap_2d::ObstacleLayer"
enabled: True
observation_sources: scan
scan:
topic: /scan
max_obstacle_height: 2.0
clearing: True
marking: True
data_type: "LaserScan"
raytrace_max_range: 3.0
raytrace_min_range: 0.0
obstacle_max_range: 2.5
obstacle_min_range: 0.0
voxel_layer:
plugin: "nav2_costmap_2d::VoxelLayer"
enabled: True
publish_voxel_map: True
origin_z: 0.0
z_resolution: 0.05
z_voxels: 16
max_obstacle_height: 2.0
mark_threshold: 0
observation_sources: scan
scan:
topic: /scan
max_obstacle_height: 2.0
clearing: True
marking: True
data_type: "LaserScan"
raytrace_max_range: 3.0
raytrace_min_range: 0.0
obstacle_max_range: 2.5
obstacle_min_range: 0.0
static_layer:
plugin: "nav2_costmap_2d::StaticLayer"
map_subscribe_transient_local: True
always_send_full_costmap: True
a818fc44-b97e-41dc-8db9-ba8c1c59aa45-image.png 尝试过的解决方法:
我尝试将全局和局部地图的更新频率设置成一样的,但是没有效果。不知道是什么原因,求大佬帮忙分析下。
root@6c45ca8f7aff:/home/yby# sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg |
sudo gpg --dearmor -o /etc/apt/keyrings/docker.asc
root@6c45ca8f7aff:/home/yby# sudo apt update
Get:1 http://mirrors.tuna.tsinghua.edu.cn/ros2/ubuntu jammy InRelease [4682 B]
Err:1 http://mirrors.tuna.tsinghua.edu.cn/ros2/ubuntu jammy InRelease
The following signatures were invalid: EXPKEYSIG F42ED6FBAB17C654 Open Robotics info@osrfoundation.org
Hit:2 https://mirrors.ustc.edu.cn/ubuntu jammy InRelease
Hit:3 https://mirrors.ustc.edu.cn/ubuntu jammy-updates InRelease
Hit:4 https://mirrors.ustc.edu.cn/ubuntu jammy-backports InRelease
Get:5 https://mirrors.aliyun.com/docker-ce/linux/ubuntu focal InRelease [57.7 kB]
Hit:6 https://mirrors.ustc.edu.cn/ubuntu jammy-security InRelease
Err:5 https://mirrors.aliyun.com/docker-ce/linux/ubuntu focal InRelease
The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 7EA0A9C3F273FCD8
Reading package lists... Done
W: http://mirrors.tuna.tsinghua.edu.cn/ros2/ubuntu/dists/jammy/InRelease: Key is stored in legacy trusted.gpg keyring (/etc/apt/trusted.gpg), see the DEPRECATION section in apt-key(8) for details.
W: GPG error: http://mirrors.tuna.tsinghua.edu.cn/ros2/ubuntu jammy InRelease: The following signatures were invalid: EXPKEYSIG F42ED6FBAB17C654 Open Robotics info@osrfoundation.org
E: The repository 'http://mirrors.tuna.tsinghua.edu.cn/ros2/ubuntu jammy InRelease' is not signed.
N: Updating from such a repository can't be done securely, and is therefore disabled by default.
N: See apt-secure(8) manpage for repository creation and user configuration details.
W: GPG error: https://mirrors.aliyun.com/docker-ce/linux/ubuntu focal InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 7EA0A9C3F273FCD8
E: The repository 'https://mirrors.aliyun.com/docker-ce/linux/ubuntu focal InRelease' is not signed.
N: Updating from such a repository can't be done securely, and is therefore disabled by default.
N: See apt-secure(8) manpage for repository creation and user configuration details.
root@6c45ca8f7aff:/home/yby# ^C
root@6c45ca8f7aff:/home/yby#
按照教程一键安装docker+ros,在sudo apt update时出现问题,显示ros2所用的清华源已经过期。因为不知道如何修改容器里的ros源,所以想着修改docker源,修改后觉得不太对。
尝试过的解决方法:修改 Docker 源为阿里云(Ubuntu 20.04)
编辑 docker.listbash
复制
sudo nano /etc/apt/sources.list.d/docker.list 替换为阿里云 Docker CE 源
把原来的:
deb [arch=amd64 signed-by=/etc/apt/keyrings/docker.asc] https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/ubuntu focal stable
改成:
deb [arch=amd64 signed-by=/etc/apt/keyrings/docker.asc] https://mirrors.aliyun.com/docker-ce/linux/ubuntu focal stable
注意:保留 signed-by=/etc/apt/keyrings/docker.asc,确保用的是官方 GPG 密钥。
截图 2025-08-05 18-13-59.png 截图 2025-08-05 18-14-25.png 截图 2025-08-05 18-14-25.png
版块
-
1.4k
主题4.9k
帖子 -
460
主题3.0k
帖子 -
68
主题263
帖子 -
1.1k
主题4.3k
帖子 -
1.0k
主题3.7k
帖子 -
5
主题11
帖子 -
358
主题1.6k
帖子