资源简介
程序版本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.Office.Interop.Graph.dll
- 机器人在ros下的KCF跟踪算法实现
- 基于 ROS 与 Kinect 的移动机器人同时定
- ZeroServer_2
- ZeroServer_1 界面图标
- ZeroServer_01
- 用于rosserial-stm32的库RosLibs
- Microsoft ACPI Source Language (ASL) Compi
- HOKUYO日本北洋URG-04LX激光雷达用户手册
- Microsoft.ReportViewer.WebForms.dll (11.0)
- org.eclipse.cdt.cross.arm.gnu_0.5.3.2010073118
- A*全局路径规划器ros
- 已安装ROS-Kinectic的树莓派ubuntu16的im
- Microsoft Visual Studio 2010 Service Pack 1exe
- Microsoft Root Certificate Authority 2010 2011
- 安装Rational_Rose用libatriagu.dll
- Rosenbrock函数的优化方法
- Rosenbrock函数源程序
- Microsoft.Office.Interop.Excel 11.0
- 网上书店系统UML图
- microsoftfixit50450.msi169195
- license.upd---Rational Rose2007激活文件
- LOPEX数据库
- RouterOS 通过netwatch实现掉线自动切换线
- ROS中smartcar机器人的描述文件
- Delphi7 应用微软Speech SDK 5.4SAPI 5.4语音
- 2010 卸载工具MicrosoftEasyFix50450_2010.zi
- 微软microsoft_xbox360摄像头驱动
- ROS-STM32-KEIL
- 《Spring微服务实战Spring Microservices i
评论
共有 条评论