ROS中使用CAN通信的调查记录

  • Post author:
  • Post category:其他


驱动的安装参照下面文档进行下载:


https://www.ftdichip.com/Support/Documents/AppNotes/AN_220_FTDI_Drivers_Installation_Guide_for_Linux.pdf

libftd2xx0.4.16_x86_64.tar.gz     测试程序 ,没有设置成功。

里面的README说添加这句

none /proc/bus/usb usbdevfs defaults,devmode=0666 0 0

添加完成后,运行会报错,提示/proc/bus/usb找不到。而且重启电脑的话,会卡在命令行,不能进入系统。

所以这句要谨慎设置。我是没有运行成功,就不运行了。

libftd2xx-x86_64-1.4.22.tgz    canussb线的驱动,看里面的readme了解详细设置步骤。

这里最好是用window系统的上位机查看线是否好用。


我这里可能硬件有点问题。所以下面就用虚拟CAN来运行,查看环境。

=====================================================

ROS的CAN用这个包

git

https://github.com/ros-industrial/ros_canopen.git

安装方法参考

https://blog.csdn.net/YiYeZhiNian/article/details/100296371

到编译OK这个一步就行了。原文有点问题。

我的路径是下面这样:

asdfasdfasdf:~/catkin_ws/src$ ls
can_msgs            canopen_master      CMakeLists.txt    socketcan_interface
canopen_402         canopen_motor_node  ros_canopen
canopen_chain_node           socketcan_bridge

下面创建虚拟CAN。只做粗体部分即可。


1.sudo modprobe vcan


加载虚拟can模块


2.sudo ip link add dev can0 type vcan


添加can0网卡


3.ifconfig -a


查看can0


4.sudo ip link set dev can0 up


开启can0

5.sudo ip link set dev can0 down

关闭can0

6. sudo ip link del dev can0

删除can0

启动roscore

roscore

启动节点

rosrun socketcan_bridge socketcan_to_topic_node

打印通道内容

rostopic echo /received_messages   (这里的数据是ROS MSG格式)

接受CAN数据

candump can0            (原样的数据显示)

发送CAN数据测试

cansend can0 7ff#123456

其他相关资料:


https://github.com/spiralray/canusb

上面这个是ROS的canusb包。测试也是可以实现ros之间can通信。只是没有创建虚拟can.

其他相关资料:

gnss simulator related:

https://zhuanlan.zhihu.com/p/343421679

can cmd

https://www.cnblogs.com/real-bert/p/11692047.html

https://blog.csdn.net/faihung/article/details/83176639

cansend usage:

https://www.cnblogs.com/chenfulin5/p/7816220.html

http://wiki.ros.org/socketcan_bridge

ros can:

https://blog.csdn.net/YiYeZhiNian/article/details/100296371



版权声明:本文为wangrunhuan原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。