我是靠谱客的博主 坚定电灯胆,最近开发中收集的这篇文章主要介绍机器人程序设计入门(C++/Arduino/ROS)(转载2020版)安装1.1 下载Arduino并安装1.2 安装ROS测试2.1 Arduino程序2.2 ROS示例总结,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

本文主要介绍机器人程序设计入门的安装和配置,并通过简洁的示例演示基于Arduino和ROS构建的机器人物联网系统雏形。Arduino和ROS都支持使用C++进行程序设计。

 

机器人程序设计入门(C++/Arduino/ROS)

ROS+Arduino

安装

推荐使用安装环境为windows10,当然也支持MacOS和Linux,为保证通用性,以Windows环境为默认配置。

 

机器人程序设计入门(C++/Arduino/ROS)

UNO

 

1.1 下载Arduino并安装

目前最新版本为arduino-1.8.10-windows,双击下载的安装包(管理员权限)。

机器人程序设计入门(C++/Arduino/ROS)

同意协议

 

机器人程序设计入门(C++/Arduino/ROS)

全选组件

 

机器人程序设计入门(C++/Arduino/ROS)

安装目录

如果需要更改,在此步骤进行修改,然后点击安装:

 

机器人程序设计入门(C++/Arduino/ROS)

等待安装结束

 

机器人程序设计入门(C++/Arduino/ROS)

点击关闭,安装完成

双击桌面Arduino图标,就可以打开IDE进行程序设计了。

 

机器人程序设计入门(C++/Arduino/ROS)

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灯程序

 

机器人程序设计入门(C++/Arduino/ROS)

Uno

编译并上传到Arduino:

 

机器人程序设计入门(C++/Arduino/ROS)

LED13灯闪烁

一切正常!

2.2 ROS

启动roscore,然后启动turtlesim。

 

机器人程序设计入门(C++/Arduino/ROS)

rosrun

 

机器人程序设计入门(C++/Arduino/ROS)

turtlesim

一切正常!

示例

Arduino的A0/A1引脚分别接滑动变阻器和光敏电阻。使用如下程序,将数值发送到电脑端:

打开Arduino IDE,选择工具->管理库……

 

机器人程序设计入门(C++/Arduino/ROS)

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

 

机器人程序设计入门(C++/Arduino/ROS)

开启rosserial_python使用COM3口

使用rostopic list,查看一下:

 

机器人程序设计入门(C++/Arduino/ROS)

/adc

将主题/adc数值显示出来:

 

机器人程序设计入门(C++/Arduino/ROS)

模拟量数据

使用rqt_plot:

 

机器人程序设计入门(C++/Arduino/ROS)

传感器数据的曲线

总结

本文实现在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示例总结所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(48)

评论列表共有 0 条评论

立即
投稿
返回
顶部