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

一、安装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的文件夹下

ros_candata_rx放入ros_can/src

修改includePath

2.2编译

2.3运行

rosrun ros_can rx

rosrun ros_can roscan

完工!!!

  • 2
    点赞
  • 53
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 6
    评论
### 回答1: ros-melodic-can-msgs 是一个 ROS 包,用于在 ROS 中使用和操作 Controller Area Network (CAN) 协议进行通信。其中包含了相关的消息和服务类型,用于在 ROS 系统中传输 CAN 相关的数据。你可以在这里找到 ros-melodic-can-msgs 的源代码:https://github.com/ros-drivers/can_msgs ros-melodic-can-msgs 是针对 ROS Melodic 版本开发的,MelodicROS 的一个发行版本。如果你正在使用其他版本的 ROS,你需要使用对应版本的 ros-can-msgs 包。 ### 回答2: ros-melodic-can-msgs是ROS(机器人操作系统)的一个软件包,它是用于CAN(控制器局域网络)通信的消息定义和工具。CAN是一种常用于车辆和其他实时控制系统中的网络通信协议。 这个软件包包含了一些重要的消息类型,用于在ROS中进行CAN数据的传输和解析。例如,它定义了CAN消息的ID、数据格式和长度等信息。这些消息类型可以让ROS系统和连接在CAN总线上的设备进行通信。 在ros-melodic-can-msgs源码中,我们可以看到定义了各种用于CAN通信的消息类型,比如CAN_Frame、CAN_FD_Frame和CAN_Error等。这些消息类型可以用于接收和发送CAN数据,并且还包括了一些附加的属性,比如时间戳等。 此外,源码中还提供了一些工具和函数,用于CAN数据的解析和处理。例如,它提供了一个解析CAN帧的函数,可以从CAN消息中提取数据和控制信息。同时,还可以将ROS中的消息转换为CAN消息,并将CAN消息转换为ROS消息,方便在ROS系统中使用CAN数据。 总之,ros-melodic-can-msgs是一个用于CAN通信的ROS软件包,提供了消息定义和工具,用于在ROS系统中处理和交换CAN数据。通过使用这个软件包,开发人员可以方便地使用ROS构建与CAN设备之间的通信,实现车辆控制和实时系统的开发。 ### 回答3: ros-melodic-can-msgs是ROS的一个软件包,用于处理Controller Area Network(CAN)通信协议的消息。这个软件包提供了在ROS系统中处理CAN消息的功能。 CAN是一种广泛应用于汽车、工业控制和机器人等领域的通信协议,它允许不同的设备通过总线共享数据。ros-melodic-can-msgs软件包的目的是为ROS系统添加对CAN通信的支持。 这个软件包包含了一系列的消息类型,用于定义在ROS系统中传输CAN消息。这些消息类型包括CAN帧消息类型、CAN控制器状态消息类型以及一些其他辅助消息类型。通过这些消息类型,ROS系统可以接收和发送CAN消息,实现与CAN总线上其他设备的通信。 除了消息类型,ros-melodic-can-msgs还提供了一些辅助工具和函数,用于处理CAN消息。这些工具和函数可以用于解析CAN帧消息、生成CAN帧消息以及读取和修改CAN控制器的状态。 使用ros-melodic-can-msgs,开发者可以将CAN通信集成到ROS系统中。他们可以通过订阅CAN消息话题来接收其他设备发送的CAN消息,并可以通过发布CAN消息话题来向其他设备发送CAN消息。这样,开发者可以方便地与CAN总线上的其他设备进行数据交换,并能够利用ROS系统提供的各种功能进行数据处理和分析。 总之,ros-melodic-can-msgs是一个在ROS系统中处理CAN通信的软件包,它提供了一系列的消息类型、工具和函数,使得开发者可以方便地与CAN总线上的设备进行数据交换和通信。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

CPU疼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值