使用ros2来跑通mid360的驱动包

mid360的驱动已经适配ros2了接下来是详细的跑通步骤

目录结构:

这个是对应的目录结构

1.跑通livox_sdk

复制代码
git clone https://github.com/Livox-SDK/Livox-SDK2.git
 
cd ./Livox-SDK2/
 
mkdir build
 
cd build
 
cmake .. && make -j4
 
sudo make install

2.跑通livox_ros2_driver

修改

需要把pcakage_ROS2.xml修改成package.xml这样才能被ros2识别

在294到296行添加几行代码

复制代码
   if(NOT LIVOX_INTERFACES_INCLUDE_DIRECTORIES)
      set(LIVOX_INTERFACES_INCLUDE_DIRECTORIES "")
    endif()

修改mid360_config.json

复制代码
{
  "lidar_summary_info" : {
    "lidar_type": 8
  },
  "MID360": {
    "lidar_net_info" : {
      "cmd_data_port": 56100,
      "push_msg_port": 56200,
      "point_data_port": 56300,
      "imu_data_port": 56400,
      "log_data_port": 56500
    },
    "host_net_info" : {
      "cmd_data_ip" : "192.168.1.50",
      "cmd_data_port": 56101,
      "push_msg_ip": "192.168.1.50",
      "push_msg_port": 56201,
      "point_data_ip": "192.168.1.50",
      "point_data_port": 56301,
      "imu_data_ip" : "192.168.1.50",
      "imu_data_port": 56401,
      "log_data_ip" : "",
      "log_data_port": 56501
    }
  },
  "lidar_configs" : [
    {
      "ip" : "192.168.1.188",//最后俩位改成自己雷达的sn吗
      "pcl_data_type" : 1,
      "pattern_mode" : 0,
      "extrinsic_parameter" : {
        "roll": 0.0,
        "pitch": 0.0,
        "yaw": 0.0,
        "x": 0,
        "y": 0,
        "z": 0
      }
    }
  ]
}

编译指令

复制代码
cd ~/test2
colcon build --packages-select livox_ros_driver2

参考文章:https://blog.csdn.net/2301_79618994/article/details/146067579?spm=1001.2014.3001.5501

运行指令

复制代码
cd /home/af/qf 
source install/setup.bash  
LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH 
ros2 launch livox_ros_driver2 rviz_MID360_launch.py

运行之后就可以实现获取到点云数据了

遇到的问题:qt冲突

主要是,我使用的海康相机的驱动MVS里面自带qt5的库和rviz的冲突了

解决办法:

复制代码
#!/bin/bash
# 使用LD_PRELOAD强制加载正确的Qt库来启动RViz
export QT_PLUGIN_PATH=""
export QML2_IMPORT_PATH=""

# 找到系统Qt库的位置
SYSTEM_QTCORE=$(ldconfig -p | grep -m1 libQt5Core.so.5 | awk '{print $NF}')
SYSTEM_QTWIDGETS=$(ldconfig -p | grep -m1 libQt5Widgets.so.5 | awk '{print $NF}')
SYSTEM_QTGUI=$(ldconfig -p | grep -m1 libQt5Gui.so.5 | awk '{print $NF}')

echo "Using system Qt libraries:"
echo "Qt5Core: $SYSTEM_QTCORE"
echo "Qt5Widgets: $SYSTEM_QTWIDGETS"
echo "Qt5Gui: $SYSTEM_QTGUI"

cd /home/af/qf && source /opt/ros/humble/setup.bash

# 设置LD_PRELOAD来强制使用系统Qt库
LD_PRELOAD="$SYSTEM_QTCORE:$SYSTEM_QTWIDGETS:$SYSTEM_QTGUI" \
/opt/ros/humble/lib/rviz2/rviz2 "$@"

改成自己的路径,然后放到.sh文件之后,开始运行,原理就是强制使用系统的qt5的库

相关推荐
艾芯微科技5 分钟前
钰泰 ETA6973PQ3Y|QFN3×3 2A 同步降压 Buck,I2C 可配置多档输出,动态调压 PMIC
网络·单片机·嵌入式硬件·fpga开发·集成测试·51单片机
默|笙5 分钟前
【Linux网络】_udp_socket(认识)
linux·网络·udp
程序员梅雨31 分钟前
ZooKeeper面经总结
java·大数据·linux·分布式·后端·zookeeper·中间件
lingran__35 分钟前
Linux进程万字详解(二)|进程状态深度剖析:调度队列、内核链表、D状态设计哲学、僵尸孤儿进程与Slab机制
linux·进程管理·内核链表·pcb·僵尸进程·孤儿进程·进程状态
Brilliantwxx39 分钟前
【STM32】 通用定时器:输入捕获与输出比较详解 测脉宽、测频率
stm32·单片机·嵌入式硬件·mcu
GeW1 小时前
以Linux为基、数据库为核:新质生产力路线图下的企业架构升级
linux
意法半导体STM321 小时前
【官方原创】LAT1703 STM32C5 LL Cordic例程
stm32·单片机·嵌入式硬件·stm32c5·ll cordic
忆挽篱笙歌2 小时前
进程的状态
linux·ubuntu
FPGA小徐2 小时前
电子工程师面试真题:LM7805 扩流 + 过流保护电路原理分析
单片机·嵌入式硬件
kyle~2 小时前
Linux --- Socket 用户进程与内核网络协议栈之间的统一接口
linux·arm开发·网络协议