博客参考:https://www.jianshu.com/p/5509c8ba522b?utm_campaign

利用Turtlesim,编写简单的消息发布器和订阅器

1. Twist消息,它的Topic是/cmd_vel,base controler订阅Twist消息来控制电机, 在终端中执行以下指令查看Twist消息的具体内容

rosmsg show geometry_msgs/Twist

2. 编写一个控制turtlesim的发布器

2.1 Roboware 创建turtlesim package, then add Src Folder including source file talker.cpp

#include <ros/ros.h>
#include <std_msgs/String.h>
#include <geometry_msgs/Twist.h> int main(int argc, char** argv)
{
ros::init(argc, argv,"talker");
ros::NodeHandle n; ros::Publisher pub = n.advertise<geometry_msgs::Twist>("/turtle1/cmd_vel", 1000);
ros::Rate loop_rate(10); while(ros::ok())
{
geometry_msgs::Twist msg; msg.linear.x = 1;
msg.angular.z = 1; pub.publish(msg);
ros::spinOnce();
loop_rate.sleep();
} return 0;
}

源代码内重要的部分

1. 定义一个publisher类的对象,其中advertise内的参数为(话题,发布的缓冲区大小)

ros::Publisher chatter_pub = n.advertise<geometry_msgs::Twist>("/turtle1/cmd_vel", 1000);

2 geometry_msgs::Twist msg

//定义一个twist类消息对象
msg.linear.x = 1; // 设置线速度为1m/s,正为前进,负为后退
msg.angular.z = 1; // 设置角速度为1rad/s,正为左转,负为右转

3 pub.publish(msg)

通过刚才创建的publisher对象发布刚才创建的twist类对象, 这样执行完上面的代码,我们就可以将复制好linear和angular参数的twist对象广播出去,广播的topic是/turtle1/cmd_vel,也就是turtlesim会自动订阅的topic.

运行

1. 运行roscore

2. 运行turtlesim仿真器

rosrun turtlesim turtlesim_node

3. 运行编译的消息发布结点

source devel/setup.bash
rosrun turrlesim talker

测试效果如下

Ubuntu 16.04 Roboware Turtlesim 测试的更多相关文章

  1. Ubuntu 16.04 Roboware安装和使用

    博客参考:https://blog.csdn.net/qq_41450811/article/details/80305846 RoboWare Studio是一个ROS集成开发环境.它使 ROS开发 ...

  2. Ubuntu 16.04安装JMeter测试工具

    JMeter是Java的测试工具,由Apache开发. 同样,JMeter是跨平台的. 下载: http://jmeter.apache.org/download_jmeter.cgi 安装: 7z ...

  3. Ubuntu 16.04 安装PCL库以及测试

    参考链接:https://blog.csdn.net/dantengc/article/details/78446600 参考博客,官网一直安装不成功,后来参照一篇博客终于安装成功了,记录如下. 1. ...

  4. Ubuntu 16.04安装测试MQTT Mosquitto

    环境:Ubuntu 16.04 介绍MQTT MQTT是一种机器到机器的消息传递协议,旨在为“物联网”设备提供轻量级的发布/订阅通信.它通常用于地理跟踪车队,家庭自动化,环境传感器网络和公用事业规模数 ...

  5. Ubuntu 16.04上安装SkyEye及测试

    说明一下,在Ubuntu 16.04上安装SkyEye方法不是原创,是来自互联网,仅供学习参考. 一.检查支持软件包 gcc,make,vim(optional),ssh,subversionbinu ...

  6. Ubuntu 16.04 LAMP server 指南 - 配置 Apache2.4,PHP7,和MariaDB(而不是MySQL)

    翻译自:https://www.howtoforge.com/tutorial/install-apache-with-php-and-mysql-on-ubuntu-16-04-lamp/ 昨天在虚 ...

  7. ubuntu 16.04安装docker

    环境 操作系统:ubuntu 16.04 64位,默认安装 准备 1. 添加GPG key: $ sudo apt-key adv --keyserver hkp://p80.pool.sks-key ...

  8. Ubuntu 16.04 LTS 安装 Nginx/PHP 5.6/MySQL 5.7 (LNMP) 与Laravel

    Ubuntu 16.04 LTS 安装 Nginx/PHP 5.6/MySQL 5.7 (LNMP) 与Laravel 1.MySQL安装[安装 MariaDB]MariaDB是MySQL的一个分支首 ...

  9. tips of my ubuntu 16.04 LTS

    update_0 : sudo .../idea.sh 才会把idea安装上,不加sudo也会启动,但是不会在开始菜单中找到程序. ---------------------------------- ...

随机推荐

  1. 控制跳转的tree视图显示的列表项数量

    在act_window中,定义limit字段,可以指定打开的tree视图的记录数量.   limit:列表视图中每个页面的记录数.

  2. linux 提升NFS性能

    如何修改同时发起的NFS请求数量 阿里云ecs服务器请查看官方文档 linux上NFS性能只有几MB速度.NFS客户端对于同时发起的NFS请求数量进行了控制,默认编译的内核中此参数值为2,严重影响性能 ...

  3. 没有rc.local的解决办法

    转载请注明来源https://www.cnblogs.com/sogeisetsu/p/11395098.html linux 开机自启动 我是小白,最近在想如何使用linux开机自启动,有一个办法是 ...

  4. 一文弄懂Pytorch的DataLoader, DataSet, Sampler之间的关系

    以下内容都是针对Pytorch 1.0-1.1介绍. 很多文章都是从Dataset等对象自下往上进行介绍,但是对于初学者而言,其实这并不好理解,因为有的时候会不自觉地陷入到一些细枝末节中去,而不能把握 ...

  5. python 使用 requests 做 http 请求

    1. get import requests # 最简单的get请求 r = requests.get(url) print(r.status_code) print(r.json()) # url ...

  6. VoIP基本原理

    VoIP基本原理 VoIP是通过Internet等互联网络传递语音信息的,主要包括终端设备.网关.网守和网络管理等部分.网关负责提供IP网络和传统的PSTN接口. VoIP的基本原理:通过语音压缩算法 ...

  7. wordpress导航当前页面菜单高亮显示如何操作

    我们在制作wordpress主题时有些客户要求导航在访问某个菜单时,这个菜单项会高亮显示,让用户知道自己正在访问的是哪个菜单下的内容,这个要如何实现呢?wordpress早就为你想好了,.curren ...

  8. 利用restassured实现http/https接口请求

    话不多说,直接上代码: package com.nuanshui.frms.test.utils.http; import io.restassured.response.Response; impo ...

  9. Collections.synchronizedList使用

    1.SynchronizedList类具体代码: static class SynchronizedList<E> extends SynchronizedCollection<E& ...

  10. linux 查看硬盘使用情况

    在windows系统中,我们可以很容易的查看磁盘的使用情况,在linux系统中,我们可以使用命令来查看磁盘使用情况. 1.df命令 作用:用来查看硬盘的挂载点,以及对应的硬盘容量信息.包括硬盘的总大小 ...