您当前的位置: 首页 >  ar
  • 5浏览

    0关注

    483博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

ROS2 humble + windows10,如何安装调试rplidar a1激光扫描传感器

高精度计算机视觉 发布时间:2022-10-07 17:00:45 ,浏览量:5

玩ROS一直是在ubuntu,最近因为各种原因,在windows10上调试ROS2。这一典型的问题是,很多硬件都是没有库文件的支持,国内的很多硬件也大多只支持ROS1。完全不调试源码直接使用各种相关硬件就不太现实了。

先把rplidar a1这个小玩具用起来。

先安装windows下的驱动 ,

https://github.com/Slamtec/rplidar_sdk

找到文件夹下的,

~\rplidar_sdk\tools\cp2102_driver\CP210xVCPInstaller_x64.exe

安装即可。

然后找了一下ROS2的相关库文件,发现有个作者已经做了一些相关工作,源码在这里,

GitHub - allenh1/rplidar_ros

不过我没有调试通过。大约修改了CMakeLists.txt中的两处,然后又把源码中相关的串口位置做了修改,主要修改内容如下,

(1)CMakeLists.txt中

  #"${RPLIDAR_SDK_PATH}/src/arch/linux/*.cpp" 

  "${RPLIDAR_SDK_PATH}/src/arch/win32/*.cpp"

...

# build composition node

add_library(rplidar_composition_node SHARED

  src/rplidar_node.cpp

  ${RPLIDAR_SDK_SRC}

)

target_compile_definitions(rplidar_composition_node PRIVATE RPLIDAR_ROS_DLL=1)

其一是linux修改为win32平台,作者已经有提供windows的代码了;其二是添加预定义: RPLIDAR_ROS_DLL,这个大家只要看一下rplidar_composition_node的源码就知道了,它决定了dll中的输入和输出,

    #define RPLIDAR_ROS_EXPORT __declspec(dllexport)     #define RPLIDAR_ROS_IMPORT __declspec(dllimport)

(2)rplidar_node.cpp中的ttyUSB0修改为COM3,

如果你要运行这个指令,ros2 run rplidar_ros rplidar_composition,那么就要把

serial_port_ = this->declare_parameter("serial_port", "/dev/ttyUSB0");

修改为

serial_port_ = this->declare_parameter("serial_port", "\\\\.\\COM3");

注意、这里COM3是变化的,我的设备上是COM3。

 (3)rplidar.launch.py中的ttyUSB0修改为COM3,

如果你要运行指令:ros2 launch rplidar_ros rplidar.launch.py,那相应的串口也要改,如下,

#'serial_port': '/dev/ttyUSB0',  

修改为

'serial_port': '\\\\.\\COM3',

//-----------------------//-----------------------//-----------------------

到这里一般colcon build之后就能跑起来了,修改过后的源码在这里,

https://github.com/SpaceView/rplidar_ros

给张测试结果的全图吧,

 本文结束。

关注
打赏
1661664439
查看更多评论
立即登录/注册

微信扫码登录

0.0368s