在ROS中使用Arduino

让我们首先来看一下如何在ROS中使用Arduino。

现在其实我们已经一步一步迈入实用阶段了。使用传感器是创建你自己机器人的第一步。


Arduino环境的搭建

Arduino的搭建相当简单。 

1. 从arduino.cc/en/Main/Software下载最新的IDE。在你的系统中解压。

2. 执行以下命令让你的帐号可以打开串口设备

sudo adduser yourname dialout

3. 连接你的Arduino设备,进行测试

如果你的Sketch的Tool > Port 菜单不为灰色的话,选中他,然后你的Arduino可以正常使用了。


键入下列代码,

首先编译 Sketch > Verify/Compile

然后上传到你的Arduino File > Upload

const unsigned int LED_PIN = 13;
const unsigned int PAUSE = 10000;
void setup(){
  pinMode(LED_PIN,OUTPUT);
}

void loop(){
  digitalWrite(LED_PIN,HIGH);
  delay(PAUSE);
  digitalWrite(LED_PIN,LOW);
  delay(PAUSE);
}
  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
要在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板发送的消息。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值