rviz学习笔记(二)——Markers: Points and Lines (C++) 点和线
一、在using_marker/src中编写点和线代码
vim ~/catkin_ws/src/using_marker/src/points_and_lines.cpp
编写代码,其中有注释
#include <ros/ros.h>
#include <visualization_msgs/Marker.h> #include <cmath> int main( int argc, char** argv )
{
//创建一个发布器
ros::init(argc, argv, "points_and_lines");
ros::NodeHandle n;
ros::Publisher marker_pub = n.advertise<visualization_msgs::Marker>("visualization_marker", ); ros::Rate r(); float f = 0.0; while (ros::ok())
{ visualization_msgs::Marker points, line_strip, line_list; //初始化
points.header.frame_id = line_strip.header.frame_id = line_list.header.frame_id = "/my_frame";
points.header.stamp = line_strip.header.stamp = line_list.header.stamp = ros::Time::now();
points.ns = line_strip.ns = line_list.ns = "points_and_lines";
points.action = line_strip.action = line_list.action = visualization_msgs::Marker::ADD;
points.pose.orientation.w = line_strip.pose.orientation.w = line_list.pose.orientation.w = 1.0; //分配3个id
points.id = ;
line_strip.id = ;
line_list.id = ; //初始化形状
points.type = visualization_msgs::Marker::POINTS;
line_strip.type = visualization_msgs::Marker::LINE_STRIP;
line_list.type = visualization_msgs::Marker::LINE_LIST; //初始化大小
// POINTS markers use x and y scale for width/height respectively
points.scale.x = 0.2;
points.scale.y = 0.2; // LINE_STRIP/LINE_LIST markers use only the x component of scale, for the line width
line_strip.scale.x = 0.1;
line_list.scale.x = 0.1; //初始化颜色
// Points are green
points.color.g = 1.0f;
points.color.a = 1.0; // Line strip is blue
line_strip.color.b = 1.0;
line_strip.color.a = 1.0; // Line list is red
line_list.color.r = 1.0;
line_list.color.a = 1.0; // Create the vertices for the points and lines
for (uint32_t i = ; i < ; ++i)
{
float y = * sin(f + i / 100.0f * * M_PI);
float z = * cos(f + i / 100.0f * * M_PI); geometry_msgs::Point p;
p.x = (int32_t)i - ;
p.y = y;
p.z = z; points.points.push_back(p);
line_strip.points.push_back(p); // The line list needs two points for each line
line_list.points.push_back(p);
p.z += 1.0;
line_list.points.push_back(p);
} marker_pub.publish(points);
marker_pub.publish(line_strip);
marker_pub.publish(line_list); r.sleep(); f += 0.04;
}
}
在CMakeLists.txt中添加
add_executable(points_and_lines src/points_and_lines.cpp)
target_link_libraries(points_and_lines ${catkin_LIBRARIES})
二、编译工程
cd ~/catkin_ws
catkin_make
三、测试
1、运行编写的发布器
rosrun using_markers points_and_lines
2、运行rviz进行设置
rosrun rviz rviz

3、运行结果

rviz学习笔记(二)——Markers: Points and Lines (C++) 点和线的更多相关文章
- Learning ROS for Robotics Programming Second Edition学习笔记(二) indigo tools
中文译著已经出版,详情请参考:http://blog.csdn.net/ZhangRelay/article/category/6506865 Learning ROS for Robotics Pr ...
- WPF的Binding学习笔记(二)
原文: http://www.cnblogs.com/pasoraku/archive/2012/10/25/2738428.htmlWPF的Binding学习笔记(二) 上次学了点点Binding的 ...
- AJax 学习笔记二(onreadystatechange的作用)
AJax 学习笔记二(onreadystatechange的作用) 当发送一个请求后,客户端无法确定什么时候会完成这个请求,所以需要用事件机制来捕获请求的状态XMLHttpRequest对象提供了on ...
- [Firefly引擎][学习笔记二][已完结]卡牌游戏开发模型的设计
源地址:http://bbs.9miao.com/thread-44603-1-1.html 在此补充一下Socket的验证机制:socket登陆验证.会采用session会话超时的机制做心跳接口验证 ...
- JMX学习笔记(二)-Notification
Notification通知,也可理解为消息,有通知,必然有发送通知的广播,JMX这里采用了一种订阅的方式,类似于观察者模式,注册一个观察者到广播里,当有通知时,广播通过调用观察者,逐一通知. 这里写 ...
- java之jvm学习笔记二(类装载器的体系结构)
java的class只在需要的时候才内转载入内存,并由java虚拟机的执行引擎来执行,而执行引擎从总的来说主要的执行方式分为四种, 第一种,一次性解释代码,也就是当字节码转载到内存后,每次需要都会重新 ...
- Java IO学习笔记二
Java IO学习笔记二 流的概念 在程序中所有的数据都是以流的方式进行传输或保存的,程序需要数据的时候要使用输入流读取数据,而当程序需要将一些数据保存起来的时候,就要使用输出流完成. 程序中的输入输 ...
- 《SQL必知必会》学习笔记二)
<SQL必知必会>学习笔记(二) 咱们接着上一篇的内容继续.这一篇主要回顾子查询,联合查询,复制表这三类内容. 上一部分基本上都是简单的Select查询,即从单个数据库表中检索数据的单条语 ...
- NumPy学习笔记 二
NumPy学习笔记 二 <NumPy学习笔记>系列将记录学习NumPy过程中的动手笔记,前期的参考书是<Python数据分析基础教程 NumPy学习指南>第二版.<数学分 ...
随机推荐
- Java try-catch-finally 返回值
1.只有 try-catch 的情况下,如果不发生异常,则会返回 try 中的 return ; 如果发生异常,则会返回 catch 中的 return, try 中的 return 被盖掉; ...
- 浅谈压缩感知(十四):傅里叶矩阵与小波变换矩阵的MATLAB实现
主要内容: 傅里叶矩阵及其MATLAB实现 小波变换矩阵及其MATLAB实现 傅里叶矩阵及其MATLAB实现 傅里叶矩阵的定义:(来源: http://mathworld.wolfram.com/F ...
- Android 模仿微信启动动画
本文内容 环境 项目结构 演示微信启动动画 本文演示微信启动动画.请点击此处下载,自行调试. 顺便抱怨一下,实践性(与研究性质的相对)技术博的"七宗罪": 第一宗罪,错字连篇,逻辑 ...
- iOS 里RGB 配色 UIColor colorWithRed
//比如rgb 色值为73. 148 .230 那么ios 里面要在后面加.0f 再除以255 [bline setBackgroundColor:[UIColor colorWithRed:73.0 ...
- Python过滤emoji
参考博客:http://my.oschina.net/jiemachina/blog/189460 1. 将emoji表情替换为指定字符串 import re def filter_emoji(des ...
- Linux下安装Supervisor的多种方法
一.安装 1.方法一: pip install supervisor #!/bin/bash wget http://pypi.python.org/packages/source/s/setupt ...
- 1049: 贝贝的车牌问题(car)
http://oj.lcsyzx.cn/JudgeOnline/problem.php?id=1049 var a : ]; m,n,t : integer; begin readln(m); n:= ...
- editcap的使用
editcap.exe -h Editcap (Wireshark) (v2.-gf42a0d2b6c) Edit and/or translate the format of capture fil ...
- A Dog's Way Home插曲列表
The movie songs A Dog's Way Home 文章来源:刘俊涛的博客 欢迎关注,有问题一起学习欢迎留言.评论
- linux目录结构介绍
目录 1.树状目录结构图 2./目录 3./etc/目录 4./usr/目录 5./var/目录 6./proc/目录 7./dev/目录 该文章主要来自于网络进行整理. 目录结构参考地址: http ...