当前位置:   article > 正文

ROS-Melodic 实现CAN(周立功CAN卡)通讯_libusbcan.so

libusbcan.so

一、安装CAN驱动

1.官网下载MiniPCIe接口CAN卡-广州致远电子有限公司

(百度网盘连接:链接: https://pan.baidu.com/s/1JKeDpe33g88Z6PAcSJMDoQ 提取码: l8p1)

apt-get install libusb-1.0-0  ##确保安装依赖

2.安装

2.1将文件夹里的libusbcan.so文件复制到/lib(其他位置-计算机-lib)目录下

2.2进入test目录

  1. make
  2. ./test

不带参数运行测试程序,会打印CAN测试参数说明

2.3 加入参数,调用test,可进行收发测试:

./test 4 0 3 0x1400 2 0 3 1000

报错libusb_open failed: ret=-3,是权限问题

2.3.1修改权限

  1. 第一步:执行以下命令
  2. sudo chmod -R 777 /dev/bus/usb/
  3. 重新运行测试程序,若还报错,执行第二步
  4. 第二步:永久赋予普通用户操作USBCAN设备的权限,修改udev配置
  5. su
  6. touch /etc/udev/rules.d/50-usbcan.rules
  7. gedit /etc/udev/rules.d/50-usbcan.rules
  8. 50-usbcan.rules文件中输入:
  9. SUBSYSTEMS=="usb", ATTRS{idVendor}=="067b", ATTRS{idProduct}=="2303", GROUP="users", MODE="0666"
  10. 保存并退出
  11. 重新加载 udev 规则:
  12. sudo udevadm control --reload

重启电脑或插拔设备

2.3.2再次执行

./test 4 0 3 0x1400 2 0 3 1000

二、编译ros包(绝对干货)

1.创建工作空间

  1. 在根目录下新建文件夹can_demo
  2. cd can_demo
  3. mkdir src
  4. catkin_make

1.2.在src下创建功能包ros_can,添加依赖roscpp rospy std_msgs
在功能包ros_can下创建msg文件夹,将文件Frame.msg放入该文件夹下

1.3.package.xml中添加编译依赖与执行依赖

  1. <build_depend>message_generation</build_depend>
  2. <exec_depend>message_runtime</exec_depend>

1.4.CMakeLists.txt编辑 msg 相关配置

  1. find_package(catkin REQUIRED COMPONENTS
  2. roscpp
  3. rospy
  4. std_msgs
  5. message_generation
  6. )
  7. # 需要加入 message_generation,必须有 std_msgs
  8. Copy
  9. ## 配置 msg 源文件
  10. add_message_files(
  11. FILES
  12. Person.msg
  13. )
  14. Copy
  15. # 生成消息时依赖于 std_msgs
  16. generate_messages(DEPENDENCIES
  17. std_msgs
  18. )
  19. #执行时依赖
  20. catkin_package(
  21. #
  22. INCLUDE_DIRS include
  23. #
  24. LIBRARIES demo02_talker_listener
  25. CATKIN_DEPENDS roscpp rospy std_msgs message_runtime
  26. #
  27. DEPENDS system_lib
  28. )

1.5 编译

会在  .../工作空间/devel/include/包名/  目录生成Frame.h文件

2.配置通讯

2.1将cmakelist.txt中第3行以下的部分替换你自己的内容

controlcan.h放入1.5所述生成Frame.h的文件夹下

ros_candata_rx放入ros_can/src

修改includePath

2.2编译

2.3运行

  1. rosrun ros_can rx
  2. rosrun ros_can roscan

完工!!!

本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号