资源简介
程序版本Ubuntu16.04+kinetic
该package利用订阅控制小海龟运动的cmd_vel话题,读取键盘方向键。
然后通过串口发送控制指令到电机控制器,控制电机前进后退转向。
是学习ROS控制机器人运动的一个基础例程。
使用前需安装ros的serial工具包
sudo apt-get install ros-kinetic-serial
关于串口:
程序使用的是电脑主板自带的9针232串口,可以根据自己具体串口调整程序
查看设备dmesg,如果使用USB转串口一般设备号是ttyUSB0
我用的是Ubuntu16.04实际测试USB转串口芯片ch340和PL2302都可以直接识别
可以先安装cutecom进行串口调试,看看是否可用,该工具是窗口界面,比较方便
安装sudo apt-get install cutecom
安装完成运行要root权限才能读取串口
sudo cutecom
程序使用的是serial_example_node1节点,另外一个节点listen1没有用到
将代码解压到自己的工作空间后编译
然后启动serial_example_node1节点和turtle_teleop_key节点
rosrun serial_msgs serial_example_node1
rosrun turtlesim turtle_teleop_key
保证当前窗口在key读取命令窗口,按键盘方向键,串口节点会收到数据,并串口发送数据。
如果串口启动提示失败,提示Unable to open port,可能是权限问题需运行命令
sudo chmod 666 /dev/ttyS0
节点读取串口做了5个字节的测试
发多个字节需自己修改读取字节数
代码片段和文件信息
#include “ros/ros.h“
#include “std_msgs/String.h“
#include “serial_msgs/serial.h“
#include
#include
#define sBUFFERSIZE 25
unsigned char s_buffer[sBUFFERSIZE];
unsigned char r_buffer[5];
serial::Serial ser;
void chatterCallback(const serial_msgs::serial::ConstPtr& msg)
{
ROS_INFO_STREAM(“Writing to serial port“);
for(int i=0;iserial.size();++i)
{
ROS_INFO(“Writing: [0x%02x]“ msg->serial[i]);
s_buffer[i]=msg->serial[i];
}
ser.write(s_buffersBUFFERSIZE);
}
int main(int argc char **argv)
{
ros::init(argc argv “listen1“);
ros::NodeHandle n;
//订阅read主题(即接受串口数据)
try
{
ser.setPort(“/dev/ttyS0“);
ser.setBaudrate(9600);
serial::Timeout to = serial::Timeout::simpleTimeout(1000);
ser.setTimeout(to);
ser.open();
}
catch (serial::IOException& e)
{
ROS_ERROR_STREAM(“Unable to open port “);
return -1;
}
if(ser.isOpen()){
ROS_INFO_STREAM(“Serial Port initialized“);
}else{
return -1;
}
ros::Subscriber sub = n.subscribe(“read1“ 1000 chatterCallback);
ros::spin();
return 0;
}
- 上一篇:另外一个更加详细的SED1520驱动程序
- 下一篇:ACT动作游戏《武士2》源码
相关资源
- Microsoft Forms 2.0107770
- Rational Rose Common破解文件
- Microsoft基本类库 (MFC)(C 库)
- 软件工程课程设计【网上选课系统】
- MikroTik RouterOS密码破解 mtpass.exe
- 机器人操作系统ROS2
- wifi电路调试经验之谈
- Oxford Industries 采用 Microsoft.NET 平台实
- IBM CAW for Microsoft Cluster Server 简介
- IBM.Rational.Rose.Enterprise的license.upd
- Symantec AntiVirus for Microsoft SharePoint产品
- Microservice patterns
- Microsoft Visio 2013 Professional 64位简体中
- Microsoft Project 2016
- 含Microsoft.Office.Interop.Owc11
- The Existence and Stability of Nontrivial St
- DS4000存储系统上Microsoft Exchange 2003的存
- Microsoft Visual Studio 2017 Installer Project
- 通过 Microsoft Services for UNIX 将 UNIX 应用
- Microsoft Windows Services for UNIX 3.5 版中的
- Ross-Konno手术后左心室流出道梗阻
- Genome doubling and chromosome elimination wit
- Improvement of the coercivity and corrosion re
- Effects of cerium on the microstructure and me
- crossfilter tutorial
- RoboWare Studio中文版(2018).pdf
- 倍加福二维码识别模块使用手册
- Bioinformatics analysis of tyrosinase-related
- Effect of isovalent substitution on martensiti
- Facile hydrothermal synthesis of Tb2(MoO4)
评论
共有 条评论