一、安装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目录
make
./test
不带参数运行测试程序,会打印CAN测试参数说明
2.3 加入参数,调用test,可进行收发测试:
./test 4 0 3 0x1400 2 0 3 1000
报错libusb_open failed: ret=-3,是权限问题
2.3.1修改权限
第一步:执行以下命令
sudo chmod -R 777 /dev/bus/usb/
重新运行测试程序,若还报错,执行第二步
第二步:永久赋予普通用户操作USBCAN设备的权限,修改udev配置
su
touch /etc/udev/rules.d/50-usbcan.rules
gedit /etc/udev/rules.d/50-usbcan.rules
在50-usbcan.rules文件中输入:
SUBSYSTEMS=="usb", ATTRS{idVendor}=="067b", ATTRS{idProduct}=="2303", GROUP="users", MODE="0666"
保存并退出
重新加载 udev 规则:
sudo udevadm control --reload
重启电脑或插拔设备
2.3.2再次执行
./test 4 0 3 0x1400 2 0 3 1000
二、编译ros包(绝对干货)
1.创建工作空间
在根目录下新建文件夹can_demo
cd can_demo
mkdir src
catkin_make
1.2.在src下创建功能包ros_can,添加依赖roscpp rospy std_msgs
在功能包ros_can下创建msg文件夹,将文件Frame.msg放入该文件夹下
1.3.package.xml中添加编译依赖与执行依赖
<build_depend>message_generation</build_depend>
<exec_depend>message_runtime</exec_depend>
1.4.CMakeLists.txt编辑 msg 相关配置
find_package(catkin REQUIRED COMPONENTS
roscpp
rospy
std_msgs
message_generation
)
# 需要加入 message_generation,必须有 std_msgs
Copy
## 配置 msg 源文件
add_message_files(
FILES
Person.msg
)
Copy
# 生成消息时依赖于 std_msgs
generate_messages(DEPENDENCIES
std_msgs
)
#执行时依赖
catkin_package(
#
INCLUDE_DIRS include
#
LIBRARIES demo02_talker_listener
CATKIN_DEPENDS roscpp rospy std_msgs message_runtime
#
DEPENDS system_lib
)
1.5 编译
会在 .../工作空间/devel/include/包名/ 目录生成Frame.h文件
2.配置通讯
2.1将cmakelist.txt中第3行以下的部分替换你自己的内容
将controlcan.h放入1.5所述生成Frame.h的文件夹下
修改includePath
2.2编译
2.3运行
rosrun ros_can rx
rosrun ros_can roscan
完工!!!