ROS交流群
ROS Group 产品服务
Product Service 开源代码库
Github 官网
Official website 技术交流
Technological exchanges 激光雷达
LIDAR ROS教程
ROS Tourials 深度学习
Deep Learning 机器视觉
Computer Vision
ROS Group 产品服务
Product Service 开源代码库
Github 官网
Official website 技术交流
Technological exchanges 激光雷达
LIDAR ROS教程
ROS Tourials 深度学习
Deep Learning 机器视觉
Computer Vision
小强ROS机器人教程(24)___使用ROS topic控制蓝鲸电机套件
-
蓝鲸电机套件和小强底盘的控制方式是一样的,即通过串口控制,通信协议也是一样的。下文将演示借助bw_motors包在ros中同时控制两个电机的速度的详细步骤。
基础概念:
1.两个电机mA、mB分别对应驱动板中的MA、MB接口所接入的电机,mA电机又称为左电机,mB又称为右电机
2.电机套件usb转串口模块接入小车主机后,在dev目录下一般会自动添加ttyUSB1设备。如果主机还插有其它usb转串口模块,可能不会是ttyUSB1
这个名字,蓝鲸电机套件接入主机指定的usb口“电机串口”,这个名字可以自动固定为stm32Motor,这是由udev规则实现的,小车出厂时已经配置好。
3.电机的速度是通过bw_motors包中的Motors这个topic类型来指定,里面有两个8位整数变量,分别对应左右电机的速度。这里的速度是百分比,取值范围-100到100,对应最大反转速度到最大正转速度。例如:-50 表示以最大反转速度的百分之五十运动,50表示以最大正转速度的百分之五十运动。bwbot_motors包的安装与启动:
1.下载与安装
#以小强平台为例,其它平台请修改对应ros工作空间目录 cd ~/Documents/ros/src git clone https://github.com/BlueWhaleRobot/bw_motors.git cd .. catkin_make
2.启动驱动
rosrun bw_motors motors_control.py _port:=/dev/stm32Motor
3.驱动启动后,motors_control.py会持续监听/bw_motors/cmd这个topic,将这个topic内容转换成电机控制命令,最后通过串口下发给电机套件进行控制。
在ros中发布两电机速度控制量:
1.首次测试,为了防止电机飞转造成安全事故,请把电机负载悬空使电机可以自由空转。紧急情况下,关闭motors_control.py的运行即可制动电机。
2.发布话题/bw_motors/cmd#mA_speed后面值-10可以修改成为-100到100内的任意整数,对应左轮电机速度控制量 #mB_speed后面值10可以修改成为-100到100内的任意整数,对应右轮电机速度控制量 rostopic pub bw_motors/cmd bw_motors/Motors '{mA_speed: -10, mB_speed: 10}' -l
3.现在电机开始运动,修改mA_speed、mB_speed值即可改变电机速度,切断motors_control.py的运行可以制动电机。