这是一个用于ROS2的力传感器包,可以读取和发布三轴力传感器的数据。该包支持同时读取三个不同串口的力传感器数据,并将其作为ROS2话题进行发布。
- 支持三轴力传感器数据采集与发布
- 提供两种工作模式:
三轴合并模式:将三个轴的数据合并为一个消息发布(失败)- 三轴分离模式:为每个轴单独创建发布者,独立发布数据(成功)
- 使用ASCII通信模式与传感器进行串口通信
- 可靠的数据采集机制和错误处理
- 三个单轴力传感器,通过串口(如USB转串口)连接到计算机
- 默认串口设备名:
/dev/ttyUSB0,/dev/ttyUSB1,/dev/ttyUSB2
- ROS2(测试于Foxy/Humble)
- Python 3
- pyserial (python3-serial)
- rclpy
- std_msgs
-
首先确保您已经安装并配置了ROS2环境。
-
将此包克隆到您的ROS2工作空间的src目录下:
cd ~/your_ros2_ws/src git clone https://your-repository-url/sensor.git
-
安装依赖项:
pip3 install pyserial
-
构建工作空间:
cd ~/your_ros2_ws colcon build --symlink-install
-
加载环境:
source ~/your_ros2_ws/install/setup.bash
启动力传感器节点(默认使用分离模式)步骤如下:
新建终端:ctrl+alt+t
ros2 run sensor force_sensor建议使用plotjuggler进行数据可视化和保存
启动命令(如果已安装plotjuggler)
source install/setup.sh
ros2 run plotjuggler plotjuggler在分离模式下,可以订阅以下话题查看各轴数据:
# 查看X轴数据
ros2 topic echo /force_sensor_x
# 查看Y轴数据
ros2 topic echo /force_sensor_y
# 查看Z轴数据
ros2 topic echo /force_sensor_z在合并模式下,可以订阅以下话题查看三轴数据:
ros2 topic echo /force_sensor_data如需修改串口配置或工作模式,请编辑 sensor/force_sensor_node.py 文件:
要使用合并模式,取消注释三轴一起部分的代码,并注释掉三轴分开部分的代码- 要修改串口设备名称,修改相应的
port_name参数
默认的传感器通信参数:
- 波特率:115200
- 数据位:8
- 校验位:无 (N)
- 停止位:1
- 超时:1秒
如果遇到无法访问串口的问题,请确保:
-
串口设备存在:
ls -l /dev/ttyUSB* -
用户有权限访问串口设备:
sudo usermod -a -G dialout $USER添加权限后,需要注销并重新登录。
-
检查串口连接和传感器电源是否正常。
[添加您的许可证信息]
- 维护者:le
- 邮箱:2597769148@qq.com