Ubuntu 16.04 Roboware Turtlesim 测试
博客参考: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 测试的更多相关文章
- Ubuntu 16.04 Roboware安装和使用
博客参考:https://blog.csdn.net/qq_41450811/article/details/80305846 RoboWare Studio是一个ROS集成开发环境.它使 ROS开发 ...
- Ubuntu 16.04安装JMeter测试工具
JMeter是Java的测试工具,由Apache开发. 同样,JMeter是跨平台的. 下载: http://jmeter.apache.org/download_jmeter.cgi 安装: 7z ...
- Ubuntu 16.04 安装PCL库以及测试
参考链接:https://blog.csdn.net/dantengc/article/details/78446600 参考博客,官网一直安装不成功,后来参照一篇博客终于安装成功了,记录如下. 1. ...
- Ubuntu 16.04安装测试MQTT Mosquitto
环境:Ubuntu 16.04 介绍MQTT MQTT是一种机器到机器的消息传递协议,旨在为“物联网”设备提供轻量级的发布/订阅通信.它通常用于地理跟踪车队,家庭自动化,环境传感器网络和公用事业规模数 ...
- Ubuntu 16.04上安装SkyEye及测试
说明一下,在Ubuntu 16.04上安装SkyEye方法不是原创,是来自互联网,仅供学习参考. 一.检查支持软件包 gcc,make,vim(optional),ssh,subversionbinu ...
- 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/ 昨天在虚 ...
- ubuntu 16.04安装docker
环境 操作系统:ubuntu 16.04 64位,默认安装 准备 1. 添加GPG key: $ sudo apt-key adv --keyserver hkp://p80.pool.sks-key ...
- 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的一个分支首 ...
- tips of my ubuntu 16.04 LTS
update_0 : sudo .../idea.sh 才会把idea安装上,不加sudo也会启动,但是不会在开始菜单中找到程序. ---------------------------------- ...
随机推荐
- web服务器-nginx
一.nginx之前 同步与异步: 同步与异步的重点在消息通知的方式上,也就是调用结果的通知方式不同. 同步:当一个同步调用发出去后,调用者要一直等待调用的结果通知后,才能进行后续的操作. 异步:当一个 ...
- PAT甲级1015题解——令人迷茫的翻译
题目分析: 本题计算过程简单,但翻译令我迷茫:题意读清楚很重要(反正我是懵逼了)对于一个10进制的数,如果它是一个素数,把它转换成d进制,再将这个序列逆序排,这个逆序的d进制数的10进制表示如果也是素 ...
- centos7服务器部署django项目。
用到的工具,xftp(文件互传),xshell(远程连接) aliyun服务器防火墙开启的端口.80,22(ssh),3306(mysql),8000,9090 部署项目: 1,安装nginx 1&g ...
- Mincut 最小割 (BZOJ1797+最小割+tarjan)
题目链接 传送门 思路 根据题目给定的边跑一边最大流,然后再在残留网络上跑\(tarjan\). 对于每一条边有: 如果它是非满边,那么它一定不是最小割集里面的边: 如果\(c[u[i]] \not= ...
- vue 项目中安装npm--save-dev 和 --save 命令
在vue项目中我们常用npm install 安装模块或插件 有两种命令把他们写入到 package.json 文件里面去 例如安装axios 安装到开发环境npm axios --save-dev ...
- ArcGIS for Server 10.2 发布Feature Service
折腾一下午,终于把自带的例子发布成Feature Service了,这样就可以通过web编辑了.记录一下步骤. 环境:已经安装好SQL Server 2008 R2,ArcGIS for Deskto ...
- table的各种用法
使用 colgroup 和 col 实现响应式表格(table的各种用法):http://coderlt.coding.me/2017/11/20/table-colgroup/
- arrayAppend.php
<?php $t_full_projects = array(); $t_full_projects[] ='a'; $t_full_projects[] ='b'; $t_full_proje ...
- Properties 取值和设置函数 Hashtable的静态内部类Entry的结构和克隆方法
- 面试15--strcmp,strcpy,memmove实现
一. strcmp strcmp是用于比较两个字符串的大小的. int strcmp( const char *string1, const char *string2 ) char *strin ...