无人驾驶——ros_canopen安装

文章介绍了在CAN测试中不完全依赖CAN卡软件,而是采用ros_canopen和socketcan_interface的方法。作者详细记录了从安装ros_canopen,解决编译问题,到遇到周立功USBCAN-2E-U不支持Linux环境而转向CANalyst-2,以及如何设置虚拟CAN进行测试的过程。在启动节点时遇到缺少socketcan_bridge包的问题,安装后成功连接并开始数据收发测试。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 上篇文章提到过,对于CAN测试,不能完全依靠CAN卡对应的软件,指导老师推荐了ros_canopen、socketcan_interface方法。记录一下使用该方法的过程。  

安装ros_canopen,对应ros版本git clone下载资源并安装。

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

ros的常规过程

看网上教程安装libmuparser-dev

sudo apt-get install libmuparser-dev

然后catkin_make 编译。

bug:缺少相关的包,对照提示sudo apt-get install ***,错误不全部贴出来了。

CMake Error at ros_canopen/socketcan_bridge/CMakeLists.txt:109 (find_package):
  By not providing "Findroslint.cmake" in CMAKE_MODULE_PATH this project has
  asked CMake to find a package configuration file provided by "roslint", but
  CMake did not find one.

sudo apt-get install ros-melodic-roslint

sudo apt-get install ros-melodic-controller-manager

sudo apt-get install ros-melodic-filters

 sudo apt-get install ros-melodic-joint-limits-interface
最后编译成功

查阅资料得知,周立功USBCAN-2E-U仅支持win环境,所以改换使用CANalyst-2(Linux版),网上有资料使用虚拟CAN进行测试,先测试一下虚拟CAN,参考下方教程

ros_canopen使用心得_NIgori_MrW的博客-CSDN博客

启动节点时报错缺少包

pilot@pilot:~$ rosrun socketcan_bridge socketcan_to_topic_node
[rospack] Error: package 'socketcan_bridge' not found

安装socketcan_bridge包:

sudo apt-get install  ros-melodic-socketcan-bridge

重新启动节点

pilot@pilot:~$ rosrun socketcan_bridge socketcan_to_topic_node
[ INFO] [1678264578.378877740]: Successfully connected to can0.

新开一个终端用于打印通道内容:rostopic echo /received_messages

新开一个终端用于接受CAN数据:candump can0  

新开一个终端发送CAN数据测试,发送完之后,前面两个终端就可以显示接收到的数据

cansend can0 7ff#123456

参考上述教程了解到后续就可以自己写程序和launch文件进行集成运行。


官方教程:ros_canopen - ROS Wiki

socketcan_interface - ROS Wiki

### 基于 Ubuntu 20.04 的 ROS Canopen 安装指南 #### 准备工作 在开始之前,确保已经安装了 Ubuntu 20.04 和 ROS Noetic。如果尚未完成这些操作,请先按照官方文档进行设置。 --- #### 步骤说明 ##### 1. 创建 Catkin 工作空间 创建一个新的 Catkin 工作空间用于管理 `ros_canopen` 包及其依赖项。 ```bash mkdir -p ~/canopen_ws/src && cd ~/canopen_ws/ catkin_init_workspace src ``` ##### 2. 获取 ros_canopen 源码 通过 Git 克隆 `ros_canopen` 库到工作空间中[^2]。 ```bash cd ~/canopen_ws/src git clone https://github.com/ros-industrial/ros_canopen.git ``` ##### 3. 更新并解决依赖关系 运行以下命令来更新系统的软件源列表,并使用 `rosdep` 解决可能存在的依赖问题。 ```bash sudo apt update rosdep install --from-paths src --ignore-src -r -y ``` 注意:如果在此过程中遇到路径错误(如 “given path 'src' does not exist”),请确认当前目录位于 `~/canopen_ws/src` 下[^4]。 ##### 4. 安装额外的依赖库 某些特定的功能模块需要额外的第三方库支持,例如 `libmuparser-dev`。可以通过以下命令安装必要的依赖: ```bash sudo apt-get install libmuparser-dev ``` ##### 5. 编译工作空间 返回至工作区根目录并执行编译过程。此步骤会构建所有的包以及其关联组件。 ```bash cd ~/canopen_ws catkin_make source devel/setup.bash ``` ##### 6. 验证安装成功 为了验证安装是否正常,可以尝试启动一个简单的测试节点或检查可用的目标程序集。 ```bash rospack find canopen_motor_node ``` 如果没有报错,则表示已正确加载该节点。 --- #### 可能遇到的问题及解决方案 1. **GPG 密钥问题** 如果在添加 ROS 软件仓库时出现 GPG 错误消息(如找不到有效的 OpenPGP 数据),可按如下方式重新导入密钥[^3]: ```bash curl -s https://raw.githubusercontent.com/ros/rosdistro/master/ros.asc | sudo apt-key add - ``` 2. **Python 包镜像加速** 若因网络原因无法顺利获取 Python 相关依赖,可以在本地配置阿里云 PyPI 镜像以提高速度: 将以下内容写入 `/etc/pip.conf` 文件: ```ini [global] index-url = http://mirrors.aliyun.com/pypi/simple/ [install] trusted-host=mirrors.aliyun.com ``` 3. **ROS 论坛求助** 对于更复杂或者少见的技术难题,建议访问 ROS 社区论坛寻求帮助[^5]。地址为:https://discourse.ros.org/. --- ### 总结 上述流程涵盖了从创建工作空间到最终验证的所有必要环节。遵循以上指导即可顺利完成基于 Ubuntu 20.04 平台下的 ROS Canopen 环境搭建。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值