概述
本文主要介绍机器人程序设计入门的安装和配置,并通过简洁的示例演示基于Arduino和ROS构建的机器人物联网系统雏形。Arduino和ROS都支持使用C++进行程序设计。
ROS+Arduino
安装
推荐使用安装环境为windows10,当然也支持MacOS和Linux,为保证通用性,以Windows环境为默认配置。
UNO
1.1 下载Arduino并安装
目前最新版本为arduino-1.8.10-windows,双击下载的安装包(管理员权限)。
同意协议
全选组件
安装目录
如果需要更改,在此步骤进行修改,然后点击安装:
等待安装结束
点击关闭,安装完成
双击桌面Arduino图标,就可以打开IDE进行程序设计了。
Arduino IDE
1.2 安装ROS
机器人操作系统ROS,可以被理解为一个特定的应用于机器人领域的物联网(IoT)系统,很多知识点和技能相似相通,学习并掌握这个工具非常重要。ROS接口丰富,并可与OpenCV,OpenAI等多种第三方开源工具结合,开发出新奇实用的各类机器人。
Windows的ROS1&2需要64位Windows 10桌面版或Windows 10 IoT物联网企业版。
- 在继续操作之前,请清理并备份c:opt下的所有现有数据。
- c:opt是指定的安装位置。当前未启用重定位。不支持安装在其他位置!!!
- 请确保C: 驱动器上有10 GB的可用空间用于安装和开发。
- 安装Visual Studio 2019
- 安装软件包管理器
- 安装Git:choco upgrade git -y
- 安装ROS 1 Melodic或ROS 2 Dashing,这里以ROS 1为例。
choco source add -n=ros-win -s="https://roswin.azurewebsites.net/api/v2" --priority=1
choco upgrade ros-melodic-desktop_full -y --execution-timeout=0
创建ROS启动快捷方式:
C:WindowsSystem32cmd.exe /k "C:Program Files (x86)Microsoft Visual Studio2019CommunityCommon7ToolsVsDevCmd.bat" -arch=amd64 -host_arch=amd64 && c:optrosmelodic\x64setup.bat
更新ROS:
choco upgrade ros-melodic-desktop_full -y --execution-timeout=0
测试
2.1 Arduino程序
void setup() {
// initialize digital pin LED_BUILTIN as an output.
pinMode(LED_BUILTIN, OUTPUT);
}
// the loop function runs over and over again forever
void loop() {
digitalWrite(LED_BUILTIN, HIGH); // turn the LED on (HIGH is the voltage level)
delay(1000); // wait for a second
digitalWrite(LED_BUILTIN, LOW); // turn the LED off by making the voltage LOW
delay(1000); // wait for a second
}
如上所示,是Arduino闪烁13号引脚LED灯程序
Uno
编译并上传到Arduino:
LED13灯闪烁
一切正常!
2.2 ROS
启动roscore,然后启动turtlesim。
rosrun
turtlesim
一切正常!
示例
Arduino的A0/A1引脚分别接滑动变阻器和光敏电阻。使用如下程序,将数值发送到电脑端:
打开Arduino IDE,选择工具->管理库……
rosserial库
然后,打开文件->示例->第三方库示例->Rosserial Arduino Library->ADC:
/*
* rosserial ADC Example
*
* This is a poor man's Oscilloscope. It does not have the sampling
* rate or accuracy of a commerical scope, but it is great to get
* an analog value into ROS in a pinch.
*/
#if (ARDUINO >= 100)
#include <Arduino.h>
#else
#include <WProgram.h>
#endif
#include <ros.h>
#include <rosserial_arduino/Adc.h>
ros::NodeHandle nh;
rosserial_arduino::Adc adc_msg;
ros::Publisher p("adc", &adc_msg);
void setup()
{
pinMode(13, OUTPUT);
nh.initNode();
nh.advertise(p);
}
//We average the analog reading to elminate some of the noise
int averageAnalog(int pin){
int v=0;
for(int i=0; i<4; i++) v+= analogRead(pin);
return v/4;
}
long adc_timer;
void loop()
{
adc_msg.adc0 = averageAnalog(0);
adc_msg.adc1 = averageAnalog(1);
adc_msg.adc2 = averageAnalog(2);
adc_msg.adc3 = averageAnalog(3);
adc_msg.adc4 = averageAnalog(4);
adc_msg.adc5 = averageAnalog(5);
p.publish(&adc_msg);
nh.spinOnce();
}
这段代码的作用是将Arduino全部AD口数据以ROS消息的格式发送到电脑端,编译上传。
这里,已经知道Arduino下载程序端口为COM3,开启roscore后,启动如下命令:
rosrun rosserial_python serial_node.py COM3
开启rosserial_python使用COM3口
使用rostopic list,查看一下:
/adc
将主题/adc数值显示出来:
模拟量数据
使用rqt_plot:
传感器数据的曲线
总结
本文实现在windows10系统下,进行Arduino和ROS编程的安装和配置,并将示例C++程序进行演示,将单片机传感器数据发送到电脑端并用绘图工具制作出数值曲线,更多细节与详细内容,将在后续内容中,逐步介绍。
最后
以上就是坚定电灯胆为你收集整理的机器人程序设计入门(C++/Arduino/ROS)(转载2020版)安装1.1 下载Arduino并安装1.2 安装ROS测试2.1 Arduino程序2.2 ROS示例总结的全部内容,希望文章能够帮你解决机器人程序设计入门(C++/Arduino/ROS)(转载2020版)安装1.1 下载Arduino并安装1.2 安装ROS测试2.1 Arduino程序2.2 ROS示例总结所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复