ros_arduino_bridge控制舵机

好久以前我写过这么一篇博客,当时是为了单独控制机械臂夹爪。前些天突然发现我一直都弄错了,我以为我用的是ros_arduino_bridge,事实上我用的是rosserial_arduino。

这是当初的标题,现在已经改掉了。 

这篇博客会先提一下在ros中使用ros_arduino_bridge和rosserial_arduino控制舵机的区别,然后根据ros_arduino_bridge包进行修改写一个ros_arduino_bridge控制舵机的例子。


Table of Contents

正文

一、ros_arduino_bridge和rosserial_arduino控制舵机的区别

二、arduino部分

三、ros部分

1.下载ros_arduino_bridge包

2.修改arduino_node.py(/ros_arduino_servo/ros_arduino_bridge/ros_arduino_python/nodes/arduino_node.py)

3.修改 arduino_driver.py(ros_arduino_servo/ros_arduino_bridge/ros_arduino_python/src/ros_arduino_python/arduino_driver.py)

4.新建srv文件

5.编译并运行


正文

github连接:https://github.com/zhangjiali1201/ros_and_arduino

一、ros_arduino_bridge和rosserial_arduino控制舵机的区别

最主要的区别就是rosserial_arduino将控制舵机这件事视为一个话题,通过往话题发消息来控制舵机,这种方法易操作,也不需要获知通信协议。我之前博客有写过rosserial_arduino控制舵机

ros_arduino_bridge如其名所言,在ros和arduino直接搭建了一座桥梁,可以直接从ros通过串口和arduino通信,稳定性高。如果下位机代码都是自己写的,知道通信协议,用这种方式更好。然后用服务,或者用话题都可以控制舵机。

二、arduino部分

arduino部分代码主要参考了ROS小课堂人脸追踪云台的开源代码。具体链接我会全部列在参考2里。

ROS小课堂使用的是DFROBOT的arduino uno+拓展版,我们这里就简单一些,直接使用arduino uno接个小舵机。接线方式还是老样子,舵机的红线接5V,黑线接地,数据线(棕色或者橙色居多)接9或10。

在arduino主程序代码中,增加了一个z指令方便控制舵机,在串口监视器输入z 1舵机旋转到45°,输入z 2旋转到90°,以此类推。

case SERVO_TEST:  // 'z'
      if (serialObj.arg1 == 0)
      {
        myServos[0].setTargetPos(0, 10);
      }
      else if (serialObj.arg1 == 1)
      {
        myServos[0].set
ros_arduino_bridge 是一个 ROS 软件包,它可以将 Arduino 板与 ROS 系统进行通信。下面是关于 ros_arduino_bridge 的安装和使用步骤: 安装: 1. 首先,在你的系统上安装 Arduino IDE。你可以从 Arduino 官方网站下载并安装适合你操作系统的版本。 2. 确保你的系统上已经正确安装了 ROS. 如果没有,请按照 ROS 官方网站的说明进行安装。 3. 在 ROS 中创建一个工作空间,可以使用以下命令: ``` mkdir -p ~/ros_arduino_bridge_ws/src cd ~/ros_arduino_bridge_ws/src catkin_init_workspace ``` 4. 将 ros_arduino_bridge 软件包克隆到你的工作空间中的 src 目录下: ``` git clone https://github.com/hbrobotics/ros_arduino_bridge.git ``` 5. 使用以下命令编译并安装软件包: ``` cd ~/ros_arduino_bridge_ws catkin_make source devel/setup.bash ``` 使用: 1. 首先,打开 Arduino IDE,并将你的 Arduino 板连接到电脑上。 2. 使用 Arduino IDE 打开 ros_arduino_bridge 软件包中的 Arduino 代码文件。代码文件位于 ros_arduino_firmware 文件夹中。 3. 在 Arduino IDE 中按下上传按钮将代码上传到你的 Arduino 板上。 4. 在终端中,使用以下命令启动 ros_arduino_bridge: ``` roslaunch ros_arduino_bridge arduino.launch ``` 5. 现在,你可以通过发布 ROS 消息来与 Arduino 板进行通信。例如,可以使用 rostopic 命令发布消息。可以通过查看软件包文档了解更多关于 ROS 消息和话题的信息。 以上就是关于安装和使用 ros_arduino_bridge 的简要步骤。通过这个软件包,你可以在 ROS 系统中与 Arduino 板进行通信并控制各种传感器和执行器。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

zhangjiali12011

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

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

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

打赏作者

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

抵扣说明:

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

余额充值