建图导航问题集合
-
1.9.5.1章节在驱动雷达节点的时候,点云数据可以正常显示。但是会出现红色字体。如下所示;
(我使用的是串口电脑连接雷达。波特率是115200,之前换过921600 但是没啥反应,结构一样)
2.在9.55章的时候,出现如下问题:
(我使用的是串口,然后驱动launch 文件)
li@ubantu:~/navigation_project/bot_ws$ ros2 launch bringup bringup.launch.py
[INFO] [launch]: All log files can be found below /home/li/.ros/log/2025-04-29-00-17-18-478907-ubantu-7199
[INFO] [launch]: Default logging verbosity is set to INFO
[INFO] [joint_state_publisher-1]: process started with pid [7201]
[INFO] [robot_state_publisher-2]: process started with pid [7203]
[INFO] [odom2tf-3]: process started with pid [7205]
[INFO] [micro_ros_agent-4]: process started with pid [7207]
[robot_state_publisher-2] [INFO] [1745857038.701965528] [robot_state_publisher]: got segment base_footprint
[robot_state_publisher-2] [INFO] [1745857038.702253980] [robot_state_publisher]: got segment base_link
[robot_state_publisher-2] [INFO] [1745857038.702289228] [robot_state_publisher]: got segment laser_link
[micro_ros_agent-4] [1745857039.582356] info | TermiosAgentLinux.cpp | init | running... | fd: 3
[micro_ros_agent-4] [1745857039.583524] info | Root.cpp | set_verbose_level | logger setup | verbose_level: 6
[joint_state_publisher-1] [INFO] [1745857039.762095517] [joint_state_publisher]: Waiting for robot_description to be published on the robot_description topic...
[INFO] [ydlidar_node-5]: process started with pid [7252]
[ydlidar_node-5] [INFO] [1745857044.257399143] [ydlidar_node]: [YDLIDAR INFO] Current ROS Driver Version: 1.0.1
[ydlidar_node-5]
[ydlidar_node-5] [2025-04-29 00:17:24][info] SDK initializing
[ydlidar_node-5] [2025-04-29 00:17:24][info] SDK has been initialized
[ydlidar_node-5] [2025-04-29 00:17:24][info] SDK Version: 1.2.9
[ydlidar_node-5] [2025-04-29 00:17:24][info] Connect elapsed time 5 ms
[ydlidar_node-5] [2025-04-29 00:17:24][info] Lidar successfully connected [/dev/ttyUSB0:115200]
[ydlidar_node-5] [2025-04-29 00:17:24][info] Lidar running correctly! The health status good
[ydlidar_node-5] [2025-04-29 00:17:24][info] Current Lidar Model Code 12
[ydlidar_node-5] [2025-04-29 00:17:24][info] Check status, Elapsed time 1 ms
[ydlidar_node-5] [2025-04-29 00:17:24][info] Lidar init success, Elapsed time [7]ms
[ydlidar_node-5] [2025-04-29 00:17:24][info] Start to getting intensity flag
[ydlidar_node-5] [2025-04-29 00:17:25][info] [YDLIDAR] End to getting intensity flag
[ydlidar_node-5] [2025-04-29 00:17:25][info] [YDLIDAR] Create thread 0xC5261640
[ydlidar_node-5] [2025-04-29 00:17:26][info] Successed to start scan mode, Elapsed time 1900 ms
[ydlidar_node-5] [2025-04-29 00:17:26][error] Timeout count: 1
[ydlidar_node-5] [2025-04-29 00:17:27][error] Timeout count: 2
[ydlidar_node-5] [2025-04-29 00:17:28][error] Timeout count: 1
[ydlidar_node-5] [2025-04-29 00:17:29][error] Timeout count: 2
[ydlidar_node-5] [2025-04-29 00:17:30][error] Timeout count: 3
[ydlidar_node-5] [2025-04-29 00:17:33][error] Timeout count: 1
[ydlidar_node-5] [2025-04-29 00:17:34][error] Timeout count: 2
[ydlidar_node-5] [2025-04-29 00:17:35][error] Timeout count: 3
^C[WARNING] [launch]: user interrupted with ctrl-c (SIGINT)
[ydlidar_node-5] [INFO] [1745857056.449131595] [rclcpp]: signal_handler(signum=2)
[robot_state_publisher-2] [INFO] [1745857056.449596325] [rclcpp]: signal_handler(signum=2)
[ERROR] [micro_ros_agent-4]: process has died [pid 7207, exit code -2, cmd '/home/li/navigation_project/bot_ws/install/micro_ros_agent/lib/micro_ros_agent/micro_ros_agent serial -b 115200 --dev /dev/ttyUSB0 -v6 --ros-args'].
[INFO] [robot_state_publisher-2]: process has finished cleanly [pid 7203]
[INFO] [odom2tf-3]: process has finished cleanly [pid 7205]
[INFO] [joint_state_publisher-1]: process has finished cleanly [pid 7201]
[odom2tf-3] [INFO] [1745857056.450243764] [rclcpp]: signal_handler(signum=2)
[ydlidar_node-5] [2025-04-29 00:17:36][error] Failed to turn on the Lidar, because the lidar is [Operation timed out].
[ydlidar_node-5] terminate called after throwing an instance of 'rclcpp::exceptions::RCLError'
[ydlidar_node-5] what(): could not create publisher: rcl node's context is invalid, at ./src/rcl/node.c:428
[ERROR] [ydlidar_node-5]: process has died [pid 7252, exit code -6, cmd '/home/li/navigation_project/bot_ws/install/ydlidar/lib/ydlidar/ydlidar_node --ros-args -r __node:=ydlidar_node -r __ns:=/ --params-file /home/li/navigation_project/bot_ws/install/ydlidar/share/ydlidar/params/ydlidar.yaml'].
[ydlidar_node-5]
然后是没有scan话题的(如上),我的启动的launch文件如下:
import launch
import launch_ros
from ament_index_python.packages import get_package_share_directory
from launch.launch_description_sources import PythonLaunchDescriptionSourcedef generate_launch_description():
bringup_dir = get_package_share_directory(
'bringup')
ydlidar_ros2_dir = get_package_share_directory(
'ydlidar')urdf2tf = launch.actions.IncludeLaunchDescription( PythonLaunchDescriptionSource( [bringup_dir, '/launch', '/urdf2tf.launch.py']), ) odom2tf = launch_ros.actions.Node( package='bringup', executable='odom2tf', output='screen' ) microros_agent = launch_ros.actions.Node( package='micro_ros_agent', executable='micro_ros_agent', arguments=[ 'serial', # 切换为串口模式 '-b', '115200', # 波特率参数(需字符串类型) '--dev', '/dev/ttyUSB0', # 设备路径 '-v6' # 日志详细级别 ], output='screen' # 保持终端输出可见 ) ydlidar = launch.actions.IncludeLaunchDescription( PythonLaunchDescriptionSource( [ydlidar_ros2_dir, '/launch', '/ydlidar_launch.py']), ) # 使用 TimerAction 启动后 5 秒执行 ydlidar 节点 ydlidar_delay = launch.actions.TimerAction(period=5.0, actions=[ydlidar]) return launch.LaunchDescription([ urdf2tf, odom2tf, microros_agent, ydlidar_delay ])
我的雷达yaml文件如下:
然后我后面单独驱动雷达节点如下:
我应该怎么修改呢?