ROS kinetic 与arduino 的通信

ROS kinetic 与arduino 的通信

通过查阅网上各种大神的相关博文,最终成功通信,现将我的过程总结如下

1.安装arduino,
$ sudo apt-get install arduino

2.启动arduino,查看sketchbook文件夹的地址,一般而言在home 文件夹中
$ arduino

在这里插入图片描述3.新建一个工作空间(已省略),然后源码下载rosserial,进行编译
$cd xxx/src
$git clone https://github.com/ros-drivers/rosserial.git
$cd …
$catkin_make
$catkin_make install

4.进人sketchbook/libraries,安装
$cd ~/sketchbook/libraries
$rm -rf ros_lib
$rosrun rosserial_arduino make_libraries.py .
到这里就ok了
在这里插入图片描述

5.去找个例子来试试
https://os.mbed.com/users/garyservin/code/ros_lib_kinetic/

在这里插入图片描述

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在ROS中构建与Arduino的串口通信,您需要按照以下步骤进行操作: 1. 首先,您需要将Arduino连接到计算机上,并确定它所在的串口号。您可以在Arduino IDE中查找串口号或使用命令行工具如ls /dev/tty*在Linux系统中查找。 2. 接下来,您需要在ROS中安装ros-serial软件包。您可以使用以下命令在Ubuntu上安装它: ``` sudo apt-get install ros-kinetic-rosserial-arduino sudo apt-get install ros-kinetic-rosserial ``` 3. 然后,在Arduino IDE中打开一个新的空白文件,并将以下示例代码复制并粘贴到文件中: ``` #include <ros.h> #include <std_msgs/Float32.h> ros::NodeHandle nh; std_msgs::Float32 msg; ros::Publisher pub("chatter", &msg); void setup() { nh.initNode(); nh.advertise(pub); } void loop() { msg.data = analogRead(0); pub.publish(&msg); nh.spinOnce(); delay(1); } ``` 4. 上传该代码到Arduino板上,并确保它正在运行。 5. 接下来,在ROS中创建一个名为“ard_to_ros”(或其他任何您喜欢的名称)的包,并创建一个名为“src”的目录。 6. 在“src”目录中,创建一个名为“ard_to_ros.ino”的文件,并将以下代码复制并粘贴到文件中: ``` #include <ros.h> #include <std_msgs/Float32.h> ros::NodeHandle nh; std_msgs::Float32 msg; ros::Subscriber< std_msgs::Float32 > sub("chatter", &chatterCallback); void setup() { nh.initNode(); nh.subscribe(sub); } void loop() { nh.spinOnce(); delay(1); } void chatterCallback(const std_msgs::Float32& msg) { // Do something with the message received } ``` 7. 然后,在“ard_to_ros”包的根目录中创建一个名为“CMakeLists.txt”的文件,并将以下代码复制并粘贴到文件中: ``` cmake_minimum_required(VERSION 2.8.3) project(ard_to_ros) find_package(catkin REQUIRED COMPONENTS rosserial_arduino rosserial_client std_msgs ) catkin_package( CATKIN_DEPENDS rosserial_arduino rosserial_client std_msgs ) rosserial_generate_ros_lib( PACKAGE rosserial_arduino SCRIPT make_libraries.py ) rosserial_configure_client( DIRECTORY firmware TOOLCHAIN_FILE ${ROSSERIAL_ARDUINO_TOOLCHAIN} ) include_directories( ${catkin_INCLUDE_DIRS} ) ``` 8. 最后,在“ard_to_ros”包的根目录中创建一个名为“firmware”的目录,并将刚刚创建的“ard_to_ros.ino”文件复制到该目录中。 9. 打开终端,并进入“ard_to_ros”包的根目录中。运行以下命令来编译并上传代码到Arduino板上: ``` catkin_make sudo chmod a+rw /dev/ttyACM0 rosrun rosserial_python serial_node.py /dev/ttyACM0 ``` 请注意,/dev/ttyACM0应替换为您的Arduino板所在的串口号。 10. 如果一切正常,您现在应该可以在ROS中订阅名为“chatter”的主题,并接收从Arduino板发送的消息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值